@ukic/web-components 2.4.1 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/core.cjs.js +3 -3
- package/dist/cjs/core.cjs.js.map +1 -1
- package/dist/cjs/ic-accordion-group.cjs.entry.js +94 -0
- package/dist/cjs/ic-accordion-group.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-accordion.cjs.entry.js +117 -0
- package/dist/cjs/ic-accordion.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-alert.cjs.entry.js +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js +1 -1
- package/dist/cjs/ic-back-to-top.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-badge.cjs.entry.js +156 -0
- package/dist/cjs/ic-badge.cjs.entry.js.map +1 -0
- package/dist/cjs/ic-breadcrumb-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ic-button_3.cjs.entry.js +3 -3
- package/dist/cjs/ic-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-card.cjs.entry.js +2 -2
- package/dist/cjs/ic-card.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/ic-chip.cjs.entry.js +2 -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 +1 -1
- package/dist/cjs/ic-dialog.cjs.entry.js +37 -15
- package/dist/cjs/ic-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-divider.cjs.entry.js +1 -1
- package/dist/cjs/ic-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer-link.cjs.entry.js +1 -1
- package/dist/cjs/ic-footer.cjs.entry.js +1 -1
- package/dist/cjs/ic-hero.cjs.entry.js +1 -1
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js +2 -2
- package/dist/cjs/ic-horizontal-scroll.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-input-component-container_3.cjs.entry.js +1 -1
- package/dist/cjs/ic-input-label_2.cjs.entry.js +1 -1
- package/dist/cjs/ic-link.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-button.cjs.entry.js +1 -1
- package/dist/cjs/ic-navigation-group.cjs.entry.js +53 -29
- package/dist/cjs/ic-navigation-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-item.cjs.entry.js +27 -6
- package/dist/cjs/ic-navigation-item.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-navigation-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-page-header.cjs.entry.js +1 -1
- package/dist/cjs/ic-pagination-item.cjs.entry.js +1 -1
- package/dist/cjs/ic-pagination.cjs.entry.js +1 -1
- package/dist/cjs/ic-popover-menu.cjs.entry.js +1 -1
- package/dist/cjs/ic-radio-group.cjs.entry.js +51 -5
- package/dist/cjs/ic-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-radio-option.cjs.entry.js +1 -1
- package/dist/cjs/ic-search-bar.cjs.entry.js +1 -1
- package/dist/cjs/ic-section-container.cjs.entry.js +1 -1
- package/dist/cjs/ic-select.cjs.entry.js +1 -1
- package/dist/cjs/ic-side-navigation.cjs.entry.js +29 -7
- 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 +1 -1
- package/dist/cjs/ic-step.cjs.entry.js +1 -1
- package/dist/cjs/ic-stepper.cjs.entry.js +4 -1
- package/dist/cjs/ic-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-switch.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-context.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-group.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/ic-tab.cjs.entry.js +2 -2
- package/dist/cjs/ic-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/ic-text-field.cjs.entry.js +1 -1
- package/dist/cjs/ic-theme.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast-region.cjs.entry.js +1 -1
- package/dist/cjs/ic-toast.cjs.entry.js +1 -1
- package/dist/cjs/ic-top-navigation.cjs.entry.js +1 -1
- package/dist/cjs/ic-typography.cjs.entry.js +2 -2
- package/dist/cjs/ic-typography.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-54d2bed9.js → index-afe53465.js} +57 -15
- package/dist/cjs/index-afe53465.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/types-7d67439f.js.map +1 -1
- package/dist/collection/collection-manifest.json +7 -4
- package/dist/collection/components/ic-accordion/ic-accordion.css +551 -0
- package/dist/collection/components/ic-accordion/ic-accordion.js +291 -0
- package/dist/collection/components/ic-accordion/ic-accordion.js.map +1 -0
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js +57 -0
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.e2e.js.map +1 -0
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js +346 -0
- package/dist/collection/components/ic-accordion/test/basic/ic-accordion.spec.js.map +1 -0
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.css +465 -0
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.js +216 -0
- package/dist/collection/components/ic-accordion-group/ic-accordion-group.js.map +1 -0
- package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js +31 -0
- package/dist/collection/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js +114 -0
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.e2e.js.map +1 -0
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js +126 -0
- package/dist/collection/components/ic-accordion-group/test/basic/ic-accordion-group.spec.js.map +1 -0
- package/dist/collection/components/ic-badge/ic-badge.css +179 -0
- package/dist/collection/components/ic-badge/ic-badge.js +374 -0
- package/dist/collection/components/ic-badge/ic-badge.js.map +1 -0
- package/dist/collection/components/ic-badge/ic-badge.types.js +2 -0
- package/dist/collection/components/ic-badge/ic-badge.types.js.map +1 -0
- package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js +16 -0
- package/dist/collection/components/ic-badge/test/a11y/ic-badge.test.a11y.js.map +1 -0
- package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js +167 -0
- package/dist/collection/components/ic-badge/test/basic/ic-badge.spec.js.map +1 -0
- package/dist/collection/components/ic-button/ic-button.css +9 -5
- package/dist/collection/components/ic-button/ic-button.js +2 -1
- package/dist/collection/components/ic-button/ic-button.js.map +1 -1
- package/dist/collection/components/ic-card/ic-card.css +22 -0
- package/dist/collection/components/ic-chip/ic-chip.js +2 -1
- package/dist/collection/components/ic-chip/ic-chip.js.map +1 -1
- package/dist/collection/components/ic-dialog/ic-dialog.js +36 -14
- package/dist/collection/components/ic-dialog/ic-dialog.js.map +1 -1
- package/dist/collection/components/ic-horizontal-scroll/ic-horizontal-scroll.css +1 -1
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js +52 -28
- package/dist/collection/components/ic-navigation-group/ic-navigation-group.js.map +1 -1
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.css +18 -4
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js +25 -4
- package/dist/collection/components/ic-navigation-item/ic-navigation-item.js.map +1 -1
- package/dist/collection/components/ic-radio-group/ic-radio-group.css +3 -3
- package/dist/collection/components/ic-radio-group/ic-radio-group.js +57 -6
- package/dist/collection/components/ic-radio-group/ic-radio-group.js.map +1 -1
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js +33 -2
- package/dist/collection/components/ic-radio-group/test/basic/ic-radio-group.spec.js.map +1 -1
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js +4 -0
- package/dist/collection/components/ic-search-bar/test/basic/ic-search-bar.e2e.js.map +1 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js +3 -1
- package/dist/collection/components/ic-select/test/basic/ic-select.e2e.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.css +46 -5
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js +27 -5
- package/dist/collection/components/ic-side-navigation/ic-side-navigation.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.js +171 -0
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js +45 -1
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.e2e.js.map +1 -1
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js +33 -0
- package/dist/collection/components/ic-side-navigation/test/basic/ic-side-navigation.spec.js.map +1 -1
- package/dist/collection/components/ic-stepper/ic-stepper.js +3 -0
- package/dist/collection/components/ic-stepper/ic-stepper.js.map +1 -1
- package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js +3 -1
- package/dist/collection/components/ic-stepper/test/basic/ic-stepper.spec.js.map +1 -1
- package/dist/collection/components/ic-tab/ic-tab.js +3 -2
- package/dist/collection/components/ic-tab/ic-tab.js.map +1 -1
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js +2 -0
- package/dist/collection/components/ic-top-navigation/test/basic/ic-top-navigation.mobile.e2e.js.map +1 -1
- package/dist/collection/components/ic-typography/ic-typography.css +10 -0
- package/dist/collection/components/ic-typography/ic-typography.js +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.e2e.js.map +1 -1
- package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js +14 -0
- package/dist/collection/components/ic-typography/test/basic/ic-typography.spec.js.map +1 -1
- package/dist/collection/utils/types.js.map +1 -1
- package/dist/components/helpers.js +1 -1
- package/dist/components/ic-accordion-group.d.ts +11 -0
- package/dist/components/ic-accordion-group.js +140 -0
- package/dist/components/ic-accordion-group.js.map +1 -0
- package/dist/components/ic-accordion.d.ts +11 -0
- package/dist/components/ic-accordion.js +146 -0
- package/dist/components/ic-accordion.js.map +1 -0
- package/dist/components/ic-back-to-top.js +2 -0
- package/dist/components/ic-back-to-top.js.map +1 -1
- package/dist/components/ic-badge.d.ts +11 -0
- package/dist/components/ic-badge.js +188 -0
- package/dist/components/ic-badge.js.map +1 -0
- package/dist/components/ic-breadcrumb-group.js +1 -1
- package/dist/components/ic-button2.js +2 -2
- package/dist/components/ic-button2.js.map +1 -1
- package/dist/components/ic-card.js +1 -1
- package/dist/components/ic-card.js.map +1 -1
- package/dist/components/ic-checkbox-group.js +1 -1
- package/dist/components/ic-checkbox.js +1 -1
- package/dist/components/ic-chip.js +1 -1
- package/dist/components/ic-chip.js.map +1 -1
- package/dist/components/ic-data-row.js +1 -1
- package/dist/components/ic-dialog.js +39 -15
- package/dist/components/ic-dialog.js.map +1 -1
- package/dist/components/ic-divider2.js +1 -1
- package/dist/components/ic-footer-link-group.js +1 -1
- package/dist/components/ic-footer-link.js +1 -1
- package/dist/components/ic-footer.js +1 -1
- package/dist/components/ic-hero.js +1 -1
- package/dist/components/ic-hero.js.map +1 -1
- package/dist/components/ic-horizontal-scroll2.js +2 -2
- package/dist/components/ic-horizontal-scroll2.js.map +1 -1
- package/dist/components/ic-input-component-container2.js +1 -1
- package/dist/components/ic-input-component-container2.js.map +1 -1
- package/dist/components/ic-input-label2.js +1 -1
- package/dist/components/ic-input-validation2.js +1 -1
- package/dist/components/ic-loading-indicator2.js +3 -0
- package/dist/components/ic-loading-indicator2.js.map +1 -1
- package/dist/components/ic-menu-item2.js +1 -1
- package/dist/components/ic-menu2.js +3 -0
- package/dist/components/ic-menu2.js.map +1 -1
- package/dist/components/ic-navigation-button.js +1 -1
- package/dist/components/ic-navigation-group.js +53 -29
- package/dist/components/ic-navigation-group.js.map +1 -1
- package/dist/components/ic-navigation-item.js +27 -6
- package/dist/components/ic-navigation-item.js.map +1 -1
- package/dist/components/ic-navigation-menu2.js +1 -1
- package/dist/components/ic-page-header.js +1 -1
- package/dist/components/ic-pagination.js +4 -1
- package/dist/components/ic-pagination.js.map +1 -1
- package/dist/components/ic-popover-menu.js +4 -2
- package/dist/components/ic-popover-menu.js.map +1 -1
- package/dist/components/ic-radio-group.js +57 -7
- package/dist/components/ic-radio-group.js.map +1 -1
- package/dist/components/ic-radio-option.js +4 -2
- package/dist/components/ic-radio-option.js.map +1 -1
- package/dist/components/ic-search-bar.js +7 -2
- package/dist/components/ic-search-bar.js.map +1 -1
- package/dist/components/ic-select.js +6 -1
- package/dist/components/ic-select.js.map +1 -1
- package/dist/components/ic-side-navigation.js +29 -7
- package/dist/components/ic-side-navigation.js.map +1 -1
- package/dist/components/ic-step.js +2 -0
- package/dist/components/ic-step.js.map +1 -1
- package/dist/components/ic-stepper.js +4 -1
- package/dist/components/ic-stepper.js.map +1 -1
- package/dist/components/ic-switch.js +1 -1
- package/dist/components/ic-switch.js.map +1 -1
- package/dist/components/ic-tab-context.js +3 -1
- package/dist/components/ic-tab-context.js.map +1 -1
- package/dist/components/ic-tab.js +4 -2
- package/dist/components/ic-tab.js.map +1 -1
- package/dist/components/ic-text-field2.js +5 -2
- package/dist/components/ic-text-field2.js.map +1 -1
- package/dist/components/ic-theme.js +3 -1
- package/dist/components/ic-theme.js.map +1 -1
- package/dist/components/ic-toast.js +1 -1
- package/dist/components/ic-toast.js.map +1 -1
- package/dist/components/ic-tooltip2.js +2 -0
- package/dist/components/ic-tooltip2.js.map +1 -1
- package/dist/components/ic-top-navigation.js +4 -2
- package/dist/components/ic-top-navigation.js.map +1 -1
- package/dist/components/ic-typography2.js +3 -1
- package/dist/components/ic-typography2.js.map +1 -1
- package/dist/components/types.js.map +1 -1
- package/dist/core/core.css +6 -3
- package/dist/core/core.esm.js +1 -1
- package/dist/core/core.esm.js.map +1 -1
- package/dist/core/{p-937ecd5b.entry.js → p-0353a1d8.entry.js} +2 -2
- package/dist/core/p-038601a3.entry.js +2 -0
- package/dist/core/p-038601a3.entry.js.map +1 -0
- package/dist/core/{p-a421d3a1.entry.js → p-05249867.entry.js} +2 -2
- package/dist/core/p-08c6119a.entry.js +2 -0
- package/dist/core/p-08c6119a.entry.js.map +1 -0
- package/dist/core/{p-a0a02a13.entry.js → p-09004694.entry.js} +2 -2
- package/dist/core/{p-d16100e8.entry.js → p-0d71a937.entry.js} +2 -2
- package/dist/core/{p-1c54269e.entry.js → p-0e1a4f8d.entry.js} +2 -2
- package/dist/core/{p-607e7bf2.entry.js → p-0fdb1e52.entry.js} +2 -2
- package/dist/core/{p-d20917ae.entry.js → p-10bfc292.entry.js} +2 -2
- package/dist/core/{p-27bf4783.entry.js → p-1650c1c2.entry.js} +2 -2
- package/dist/core/{p-e2d0039d.entry.js → p-1db57a3f.entry.js} +2 -2
- package/dist/core/p-1ed0a71d.entry.js +2 -0
- package/dist/core/{p-0dcc76b1.entry.js.map → p-1ed0a71d.entry.js.map} +1 -1
- package/dist/core/{p-4c4261e7.entry.js → p-2184a72f.entry.js} +2 -2
- package/dist/core/p-293f4c5f.entry.js +2 -0
- package/dist/core/p-293f4c5f.entry.js.map +1 -0
- package/dist/core/{p-62499150.entry.js → p-2afa6d29.entry.js} +2 -2
- package/dist/core/{p-cb2c18de.entry.js → p-2c09f9e0.entry.js} +2 -2
- package/dist/core/{p-3297713b.entry.js → p-2d21de19.entry.js} +2 -2
- package/dist/core/{p-5b8be53f.entry.js → p-32510505.entry.js} +2 -2
- package/dist/core/{p-99741b0f.entry.js → p-482397ae.entry.js} +2 -2
- package/dist/core/p-482397ae.entry.js.map +1 -0
- package/dist/core/{p-831b0f3f.entry.js → p-4ef8342f.entry.js} +2 -2
- package/dist/core/{p-c390fbad.entry.js → p-4f070381.entry.js} +2 -2
- package/dist/core/{p-9650e00e.entry.js → p-4fbe1dc3.entry.js} +2 -2
- package/dist/core/{p-68fda79a.entry.js → p-5401863e.entry.js} +2 -2
- package/dist/core/{p-83e535de.entry.js → p-59b24198.entry.js} +2 -2
- package/dist/core/p-5cc070c4.entry.js +2 -0
- package/dist/core/p-5cc070c4.entry.js.map +1 -0
- package/dist/core/p-5f881644.entry.js +2 -0
- package/dist/core/p-5f881644.entry.js.map +1 -0
- package/dist/core/p-60fef702.entry.js +2 -0
- package/dist/core/p-60fef702.entry.js.map +1 -0
- package/dist/core/p-613aa265.js.map +1 -1
- package/dist/core/{p-94903a21.entry.js → p-64999983.entry.js} +2 -2
- package/dist/core/p-64999983.entry.js.map +1 -0
- package/dist/core/{p-521c8f40.entry.js → p-675fe4db.entry.js} +2 -2
- package/dist/core/p-675fe4db.entry.js.map +1 -0
- package/dist/core/{p-67c18f72.entry.js → p-6aec6bce.entry.js} +2 -2
- package/dist/core/{p-27897d29.entry.js → p-6ec3cd12.entry.js} +2 -2
- package/dist/core/p-76daa5b0.entry.js +2 -0
- package/dist/core/{p-8e6169e0.entry.js → p-777e5556.entry.js} +2 -2
- package/dist/core/p-7a61d94a.entry.js +2 -0
- package/dist/core/p-7a61d94a.entry.js.map +1 -0
- package/dist/core/{p-18068237.js → p-85903a81.js} +3 -3
- package/dist/core/p-85903a81.js.map +1 -0
- package/dist/core/{p-ebd60291.entry.js → p-913da6d0.entry.js} +2 -2
- package/dist/core/{p-77266738.entry.js → p-932fe2a0.entry.js} +2 -2
- package/dist/core/p-9bd160bb.entry.js +2 -0
- package/dist/core/p-9bd160bb.entry.js.map +1 -0
- package/dist/core/{p-5fcbcc3f.entry.js → p-9ee852d9.entry.js} +2 -2
- package/dist/core/{p-d65ace31.entry.js → p-a388750d.entry.js} +2 -2
- package/dist/core/{p-b0b1de0e.entry.js → p-a46c1690.entry.js} +2 -2
- package/dist/core/{p-3fc638fc.entry.js → p-abf60097.entry.js} +2 -2
- package/dist/core/{p-630ae754.entry.js → p-ac82781b.entry.js} +2 -2
- package/dist/core/{p-6781620e.entry.js → p-ad520f36.entry.js} +2 -2
- package/dist/core/p-b42b8ffa.entry.js +2 -0
- package/dist/core/p-b42b8ffa.entry.js.map +1 -0
- package/dist/core/p-b96bd8be.entry.js +2 -0
- package/dist/core/p-b96bd8be.entry.js.map +1 -0
- package/dist/core/{p-85dd5e5b.entry.js → p-c1e8d13e.entry.js} +2 -2
- package/dist/core/{p-ebe76390.js → p-c30d9b20.js} +2 -2
- package/dist/core/p-ca6e5474.entry.js +2 -0
- package/dist/core/p-ca6e5474.entry.js.map +1 -0
- package/dist/core/{p-0a30f1e5.entry.js → p-ceed0fee.entry.js} +2 -2
- package/dist/core/{p-c1859843.entry.js → p-cf95dd66.entry.js} +2 -2
- package/dist/core/{p-87149cbd.entry.js → p-d005a71a.entry.js} +2 -2
- package/dist/core/{p-65df7222.entry.js → p-d5282ede.entry.js} +2 -2
- package/dist/core/{p-4f7c20b3.entry.js → p-d9fc7243.entry.js} +2 -2
- package/dist/core/{p-16e8bb5a.entry.js → p-db4a15bd.entry.js} +2 -2
- package/dist/core/{p-c31e6dbb.entry.js → p-e59d2d50.entry.js} +2 -2
- package/dist/core/p-e75b04af.entry.js +2 -0
- package/dist/core/p-e75b04af.entry.js.map +1 -0
- package/dist/core/{p-e3923b67.entry.js → p-e904d985.entry.js} +2 -2
- package/dist/core/{p-7194c255.entry.js → p-ea55f25c.entry.js} +2 -2
- package/dist/core/p-ea55f25c.entry.js.map +1 -0
- package/dist/esm/core.js +4 -4
- package/dist/esm/core.js.map +1 -1
- package/dist/esm/{helpers-b0e80358.js → helpers-81a88a11.js} +2 -2
- package/dist/esm/{helpers-b0e80358.js.map → helpers-81a88a11.js.map} +1 -1
- package/dist/esm/ic-accordion-group.entry.js +90 -0
- package/dist/esm/ic-accordion-group.entry.js.map +1 -0
- package/dist/esm/ic-accordion.entry.js +113 -0
- package/dist/esm/ic-accordion.entry.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-back-to-top.entry.js.map +1 -1
- package/dist/esm/ic-badge.entry.js +152 -0
- package/dist/esm/ic-badge.entry.js.map +1 -0
- package/dist/esm/ic-breadcrumb-group.entry.js +2 -2
- package/dist/esm/ic-breadcrumb.entry.js +2 -2
- package/dist/esm/ic-button_3.entry.js +4 -4
- package/dist/esm/ic-button_3.entry.js.map +1 -1
- package/dist/esm/ic-card.entry.js +3 -3
- package/dist/esm/ic-card.entry.js.map +1 -1
- package/dist/esm/ic-checkbox-group.entry.js +2 -2
- package/dist/esm/ic-checkbox.entry.js +2 -2
- package/dist/esm/ic-chip.entry.js +3 -3
- 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 +38 -16
- package/dist/esm/ic-dialog.entry.js.map +1 -1
- package/dist/esm/ic-divider.entry.js +2 -2
- package/dist/esm/ic-empty-state.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 +2 -2
- package/dist/esm/ic-hero.entry.js +2 -2
- package/dist/esm/ic-horizontal-scroll.entry.js +3 -3
- package/dist/esm/ic-horizontal-scroll.entry.js.map +1 -1
- package/dist/esm/ic-input-component-container_3.entry.js +2 -2
- package/dist/esm/ic-input-label_2.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/ic-navigation-button.entry.js +2 -2
- package/dist/esm/ic-navigation-group.entry.js +54 -30
- package/dist/esm/ic-navigation-group.entry.js.map +1 -1
- package/dist/esm/ic-navigation-item.entry.js +28 -7
- package/dist/esm/ic-navigation-item.entry.js.map +1 -1
- package/dist/esm/ic-navigation-menu.entry.js +2 -2
- package/dist/esm/ic-page-header.entry.js +2 -2
- package/dist/esm/ic-pagination-item.entry.js +2 -2
- package/dist/esm/ic-pagination.entry.js +2 -2
- package/dist/esm/ic-popover-menu.entry.js +2 -2
- package/dist/esm/ic-radio-group.entry.js +52 -6
- package/dist/esm/ic-radio-group.entry.js.map +1 -1
- package/dist/esm/ic-radio-option.entry.js +2 -2
- package/dist/esm/ic-search-bar.entry.js +2 -2
- package/dist/esm/ic-section-container.entry.js +1 -1
- package/dist/esm/ic-select.entry.js +2 -2
- package/dist/esm/ic-side-navigation.entry.js +30 -8
- 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 +2 -2
- package/dist/esm/ic-step.entry.js +1 -1
- package/dist/esm/ic-stepper.entry.js +5 -2
- package/dist/esm/ic-stepper.entry.js.map +1 -1
- package/dist/esm/ic-switch.entry.js +2 -2
- package/dist/esm/ic-tab-context.entry.js +1 -1
- package/dist/esm/ic-tab-group.entry.js +2 -2
- package/dist/esm/ic-tab-panel.entry.js +1 -1
- package/dist/esm/ic-tab.entry.js +3 -3
- package/dist/esm/ic-tab.entry.js.map +1 -1
- package/dist/esm/ic-text-field.entry.js +2 -2
- 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 +3 -3
- package/dist/esm/ic-typography.entry.js.map +1 -1
- package/dist/esm/{index-14c9f375.js → index-b006ae9d.js} +57 -15
- package/dist/esm/index-b006ae9d.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/types-b2398b37.js.map +1 -1
- package/dist/types/components/ic-accordion/ic-accordion.d.ts +55 -0
- package/dist/types/components/ic-accordion-group/ic-accordion-group.d.ts +33 -0
- package/dist/types/components/ic-accordion-group/test/a11y/ic-accordion-group.test.a11y.d.ts +1 -0
- package/dist/types/components/ic-badge/ic-badge.d.ts +57 -0
- package/dist/types/components/ic-badge/ic-badge.types.d.ts +9 -0
- package/dist/types/components/ic-badge/test/a11y/ic-badge.test.a11y.d.ts +1 -0
- package/dist/types/components/ic-button/ic-button.d.ts +2 -1
- package/dist/types/components/ic-chip/ic-chip.d.ts +1 -0
- package/dist/types/components/ic-dialog/ic-dialog.d.ts +4 -0
- package/dist/types/components/ic-navigation-group/ic-navigation-group.d.ts +4 -2
- package/dist/types/components/ic-navigation-item/ic-navigation-item.d.ts +2 -0
- package/dist/types/components/ic-radio-group/ic-radio-group.d.ts +8 -0
- package/dist/types/components/ic-side-navigation/test/basic/ic-side-navigation-test-examples.d.ts +2 -0
- package/dist/types/components/ic-stepper/ic-stepper.d.ts +1 -0
- package/dist/types/components/ic-tab/ic-tab.d.ts +1 -0
- package/dist/types/components.d.ts +202 -0
- package/dist/types/utils/types.d.ts +2 -2
- package/hydrate/index.js +638 -88
- package/package.json +12 -3
- package/dist/cjs/index-54d2bed9.js.map +0 -1
- package/dist/core/p-0dcc76b1.entry.js +0 -2
- package/dist/core/p-101bce17.entry.js +0 -2
- package/dist/core/p-101bce17.entry.js.map +0 -1
- package/dist/core/p-18068237.js.map +0 -1
- package/dist/core/p-433cfd47.entry.js +0 -2
- package/dist/core/p-433cfd47.entry.js.map +0 -1
- package/dist/core/p-455bfed1.entry.js +0 -2
- package/dist/core/p-455bfed1.entry.js.map +0 -1
- package/dist/core/p-521c8f40.entry.js.map +0 -1
- package/dist/core/p-7194c255.entry.js.map +0 -1
- package/dist/core/p-7be2b1fd.entry.js +0 -2
- package/dist/core/p-7be2b1fd.entry.js.map +0 -1
- package/dist/core/p-9248228e.entry.js +0 -2
- package/dist/core/p-9248228e.entry.js.map +0 -1
- package/dist/core/p-932a67ca.entry.js +0 -2
- package/dist/core/p-94903a21.entry.js.map +0 -1
- package/dist/core/p-96022913.entry.js +0 -2
- package/dist/core/p-96022913.entry.js.map +0 -1
- package/dist/core/p-99741b0f.entry.js.map +0 -1
- package/dist/core/p-a6f48272.entry.js +0 -2
- package/dist/core/p-a6f48272.entry.js.map +0 -1
- package/dist/core/p-d78c90fe.entry.js +0 -2
- package/dist/core/p-d78c90fe.entry.js.map +0 -1
- package/dist/core/p-fedcfea3.entry.js +0 -2
- package/dist/core/p-fedcfea3.entry.js.map +0 -1
- package/dist/esm/index-14c9f375.js.map +0 -1
- /package/dist/core/{p-937ecd5b.entry.js.map → p-0353a1d8.entry.js.map} +0 -0
- /package/dist/core/{p-a421d3a1.entry.js.map → p-05249867.entry.js.map} +0 -0
- /package/dist/core/{p-a0a02a13.entry.js.map → p-09004694.entry.js.map} +0 -0
- /package/dist/core/{p-d16100e8.entry.js.map → p-0d71a937.entry.js.map} +0 -0
- /package/dist/core/{p-1c54269e.entry.js.map → p-0e1a4f8d.entry.js.map} +0 -0
- /package/dist/core/{p-607e7bf2.entry.js.map → p-0fdb1e52.entry.js.map} +0 -0
- /package/dist/core/{p-d20917ae.entry.js.map → p-10bfc292.entry.js.map} +0 -0
- /package/dist/core/{p-27bf4783.entry.js.map → p-1650c1c2.entry.js.map} +0 -0
- /package/dist/core/{p-e2d0039d.entry.js.map → p-1db57a3f.entry.js.map} +0 -0
- /package/dist/core/{p-4c4261e7.entry.js.map → p-2184a72f.entry.js.map} +0 -0
- /package/dist/core/{p-62499150.entry.js.map → p-2afa6d29.entry.js.map} +0 -0
- /package/dist/core/{p-cb2c18de.entry.js.map → p-2c09f9e0.entry.js.map} +0 -0
- /package/dist/core/{p-3297713b.entry.js.map → p-2d21de19.entry.js.map} +0 -0
- /package/dist/core/{p-5b8be53f.entry.js.map → p-32510505.entry.js.map} +0 -0
- /package/dist/core/{p-831b0f3f.entry.js.map → p-4ef8342f.entry.js.map} +0 -0
- /package/dist/core/{p-c390fbad.entry.js.map → p-4f070381.entry.js.map} +0 -0
- /package/dist/core/{p-9650e00e.entry.js.map → p-4fbe1dc3.entry.js.map} +0 -0
- /package/dist/core/{p-68fda79a.entry.js.map → p-5401863e.entry.js.map} +0 -0
- /package/dist/core/{p-83e535de.entry.js.map → p-59b24198.entry.js.map} +0 -0
- /package/dist/core/{p-67c18f72.entry.js.map → p-6aec6bce.entry.js.map} +0 -0
- /package/dist/core/{p-27897d29.entry.js.map → p-6ec3cd12.entry.js.map} +0 -0
- /package/dist/core/{p-932a67ca.entry.js.map → p-76daa5b0.entry.js.map} +0 -0
- /package/dist/core/{p-8e6169e0.entry.js.map → p-777e5556.entry.js.map} +0 -0
- /package/dist/core/{p-ebd60291.entry.js.map → p-913da6d0.entry.js.map} +0 -0
- /package/dist/core/{p-77266738.entry.js.map → p-932fe2a0.entry.js.map} +0 -0
- /package/dist/core/{p-5fcbcc3f.entry.js.map → p-9ee852d9.entry.js.map} +0 -0
- /package/dist/core/{p-d65ace31.entry.js.map → p-a388750d.entry.js.map} +0 -0
- /package/dist/core/{p-b0b1de0e.entry.js.map → p-a46c1690.entry.js.map} +0 -0
- /package/dist/core/{p-3fc638fc.entry.js.map → p-abf60097.entry.js.map} +0 -0
- /package/dist/core/{p-630ae754.entry.js.map → p-ac82781b.entry.js.map} +0 -0
- /package/dist/core/{p-6781620e.entry.js.map → p-ad520f36.entry.js.map} +0 -0
- /package/dist/core/{p-85dd5e5b.entry.js.map → p-c1e8d13e.entry.js.map} +0 -0
- /package/dist/core/{p-ebe76390.js.map → p-c30d9b20.js.map} +0 -0
- /package/dist/core/{p-0a30f1e5.entry.js.map → p-ceed0fee.entry.js.map} +0 -0
- /package/dist/core/{p-c1859843.entry.js.map → p-cf95dd66.entry.js.map} +0 -0
- /package/dist/core/{p-87149cbd.entry.js.map → p-d005a71a.entry.js.map} +0 -0
- /package/dist/core/{p-65df7222.entry.js.map → p-d5282ede.entry.js.map} +0 -0
- /package/dist/core/{p-4f7c20b3.entry.js.map → p-d9fc7243.entry.js.map} +0 -0
- /package/dist/core/{p-16e8bb5a.entry.js.map → p-db4a15bd.entry.js.map} +0 -0
- /package/dist/core/{p-c31e6dbb.entry.js.map → p-e59d2d50.entry.js.map} +0 -0
- /package/dist/core/{p-e3923b67.entry.js.map → p-e904d985.entry.js.map} +0 -0
@@ -0,0 +1,374 @@
|
|
1
|
+
import { Host, h, } from "@stencil/core";
|
2
|
+
import { IcThemeForegroundEnum, } from "../../utils/types";
|
3
|
+
import { getCssProperty, getParentElement, getParentElementType, hexToRgba, rgbaStrToObj, } from "../../utils/helpers";
|
4
|
+
export class Badge {
|
5
|
+
constructor() {
|
6
|
+
this.setBadgeColour = () => {
|
7
|
+
let colorRGBA = null;
|
8
|
+
if (this.customColor !== null) {
|
9
|
+
const firstChar = this.customColor.slice(0, 1);
|
10
|
+
if (firstChar === "#") {
|
11
|
+
colorRGBA = hexToRgba(this.customColor);
|
12
|
+
}
|
13
|
+
else if (firstChar.toLowerCase() === "r") {
|
14
|
+
colorRGBA = rgbaStrToObj(this.customColor);
|
15
|
+
}
|
16
|
+
this.customColorRGBA = colorRGBA;
|
17
|
+
this.el.style.backgroundColor = `rgba(${colorRGBA.r.toString()}, ${colorRGBA.g.toString()}, ${colorRGBA.b.toString()}, ${colorRGBA.a.toString()})`;
|
18
|
+
}
|
19
|
+
};
|
20
|
+
this.getBadgeForeground = () => {
|
21
|
+
let red;
|
22
|
+
let green;
|
23
|
+
let blue;
|
24
|
+
switch (this.variant) {
|
25
|
+
case "custom":
|
26
|
+
red = this.customColorRGBA.r;
|
27
|
+
green = this.customColorRGBA.g;
|
28
|
+
blue = this.customColorRGBA.b;
|
29
|
+
break;
|
30
|
+
case "error":
|
31
|
+
red = parseInt(getCssProperty("--ic-status-error-r"));
|
32
|
+
green = parseInt(getCssProperty("--ic-status-error-g"));
|
33
|
+
blue = parseInt(getCssProperty("--ic-status-error-b"));
|
34
|
+
break;
|
35
|
+
case "success":
|
36
|
+
red = parseInt(getCssProperty("--ic-status-success-r"));
|
37
|
+
green = parseInt(getCssProperty("--ic-status-success-g"));
|
38
|
+
blue = parseInt(getCssProperty("--ic-status-success-b"));
|
39
|
+
break;
|
40
|
+
case "warning":
|
41
|
+
red = parseInt(getCssProperty("--ic-status-warning-r"));
|
42
|
+
green = parseInt(getCssProperty("--ic-status-warning-g"));
|
43
|
+
blue = parseInt(getCssProperty("--ic-status-warning-b"));
|
44
|
+
break;
|
45
|
+
case "info": {
|
46
|
+
const info = hexToRgba(getCssProperty("--ic-status-info"));
|
47
|
+
red = info.r;
|
48
|
+
green = info.g;
|
49
|
+
blue = info.b;
|
50
|
+
break;
|
51
|
+
}
|
52
|
+
case "neutral": {
|
53
|
+
const neutral = hexToRgba(getCssProperty("--ic-architectural-500"));
|
54
|
+
red = neutral.r;
|
55
|
+
green = neutral.g;
|
56
|
+
blue = neutral.b;
|
57
|
+
break;
|
58
|
+
}
|
59
|
+
case "light": {
|
60
|
+
const light = hexToRgba(getCssProperty("--ic-architectural-40"));
|
61
|
+
red = light.r;
|
62
|
+
green = light.g;
|
63
|
+
blue = light.b;
|
64
|
+
break;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
const brightness = (red * 299 + green * 587 + blue * 114) / 1000;
|
68
|
+
this.foregroundColour =
|
69
|
+
brightness > 133.3505
|
70
|
+
? IcThemeForegroundEnum.Dark
|
71
|
+
: IcThemeForegroundEnum.Light;
|
72
|
+
};
|
73
|
+
this.getTextLabel = () => {
|
74
|
+
let label;
|
75
|
+
if (this.textLabel !== null) {
|
76
|
+
if (this.maxNumber !== null) {
|
77
|
+
label =
|
78
|
+
Number(this.textLabel) > this.maxNumber
|
79
|
+
? `${this.maxNumber}+`
|
80
|
+
: this.textLabel;
|
81
|
+
}
|
82
|
+
else {
|
83
|
+
label = this.textLabel;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
return label;
|
87
|
+
};
|
88
|
+
this.setAccessibleLabel = () => {
|
89
|
+
if (getParentElement(this.el) !== null) {
|
90
|
+
if (getParentElementType(this.el) === "IC-TAB") {
|
91
|
+
getParentElement(this.el).setAttribute("aria-describedby", "badge");
|
92
|
+
}
|
93
|
+
else {
|
94
|
+
getParentElement(this.el).ariaLabel = `badge displaying ${this.accessibleLabel}`;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
};
|
98
|
+
this.isAccessibleLabelDefined = () => {
|
99
|
+
return this.accessibleLabel !== undefined && this.accessibleLabel !== null;
|
100
|
+
};
|
101
|
+
this.visible = true;
|
102
|
+
this.accessibleLabel = undefined;
|
103
|
+
this.customColor = null;
|
104
|
+
this.maxNumber = undefined;
|
105
|
+
this.position = "far";
|
106
|
+
this.size = "default";
|
107
|
+
this.textLabel = undefined;
|
108
|
+
this.type = "text";
|
109
|
+
this.variant = "neutral";
|
110
|
+
}
|
111
|
+
componentWillLoad() {
|
112
|
+
this.variant === "custom" && this.setBadgeColour();
|
113
|
+
this.getBadgeForeground();
|
114
|
+
this.isAccessibleLabelDefined() && this.setAccessibleLabel();
|
115
|
+
}
|
116
|
+
/**
|
117
|
+
* Use to show the badge.
|
118
|
+
*/
|
119
|
+
async showBadge() {
|
120
|
+
this.visible = true;
|
121
|
+
}
|
122
|
+
/**
|
123
|
+
* Use to hide the badge.
|
124
|
+
*/
|
125
|
+
async hideBadge() {
|
126
|
+
this.visible = false;
|
127
|
+
}
|
128
|
+
render() {
|
129
|
+
const { position, size, type, variant, foregroundColour, visible } = this;
|
130
|
+
return (h(Host, { class: {
|
131
|
+
[`${position}`]: true,
|
132
|
+
[`${size}`]: true,
|
133
|
+
[`${variant}`]: true,
|
134
|
+
[`${type}`]: true,
|
135
|
+
[`foreground-${foregroundColour}`]: foregroundColour !== null,
|
136
|
+
["show"]: visible,
|
137
|
+
["hide"]: !visible,
|
138
|
+
}, id: "badge", "aria-label": this.isAccessibleLabelDefined() &&
|
139
|
+
`badge displaying ${this.accessibleLabel}` }, type === "icon" && h("slot", { name: "badge-icon" }), type === "text" && (h("ic-typography", { variant: size === "small" ? "badge-small" : "badge" }, this.getTextLabel()))));
|
140
|
+
}
|
141
|
+
static get is() { return "ic-badge"; }
|
142
|
+
static get encapsulation() { return "shadow"; }
|
143
|
+
static get delegatesFocus() { return true; }
|
144
|
+
static get originalStyleUrls() {
|
145
|
+
return {
|
146
|
+
"$": ["ic-badge.css"]
|
147
|
+
};
|
148
|
+
}
|
149
|
+
static get styleUrls() {
|
150
|
+
return {
|
151
|
+
"$": ["ic-badge.css"]
|
152
|
+
};
|
153
|
+
}
|
154
|
+
static get properties() {
|
155
|
+
return {
|
156
|
+
"accessibleLabel": {
|
157
|
+
"type": "string",
|
158
|
+
"mutable": false,
|
159
|
+
"complexType": {
|
160
|
+
"original": "string",
|
161
|
+
"resolved": "string",
|
162
|
+
"references": {}
|
163
|
+
},
|
164
|
+
"required": false,
|
165
|
+
"optional": true,
|
166
|
+
"docs": {
|
167
|
+
"tags": [],
|
168
|
+
"text": "The accessible label of the badge component to provide context for screen reader users."
|
169
|
+
},
|
170
|
+
"attribute": "accessible-label",
|
171
|
+
"reflect": false
|
172
|
+
},
|
173
|
+
"customColor": {
|
174
|
+
"type": "string",
|
175
|
+
"mutable": false,
|
176
|
+
"complexType": {
|
177
|
+
"original": "IcColor",
|
178
|
+
"resolved": "`#${string}` | `rgb(${string})` | `rgba(${string})`",
|
179
|
+
"references": {
|
180
|
+
"IcColor": {
|
181
|
+
"location": "import",
|
182
|
+
"path": "./ic-badge.types",
|
183
|
+
"id": "src/components/ic-badge/ic-badge.types.ts::IcColor"
|
184
|
+
}
|
185
|
+
}
|
186
|
+
},
|
187
|
+
"required": false,
|
188
|
+
"optional": true,
|
189
|
+
"docs": {
|
190
|
+
"tags": [],
|
191
|
+
"text": "The custom badge colour. This will only style the badge component if variant=\"custom\".\nCan be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\"."
|
192
|
+
},
|
193
|
+
"attribute": "custom-color",
|
194
|
+
"reflect": false,
|
195
|
+
"defaultValue": "null"
|
196
|
+
},
|
197
|
+
"maxNumber": {
|
198
|
+
"type": "number",
|
199
|
+
"mutable": false,
|
200
|
+
"complexType": {
|
201
|
+
"original": "number",
|
202
|
+
"resolved": "number",
|
203
|
+
"references": {}
|
204
|
+
},
|
205
|
+
"required": false,
|
206
|
+
"optional": true,
|
207
|
+
"docs": {
|
208
|
+
"tags": [],
|
209
|
+
"text": "The maximum number shown on the badge appended with a +.\nThis will only be displayed if type=\"text\" and textLabel is not empty."
|
210
|
+
},
|
211
|
+
"attribute": "max-number",
|
212
|
+
"reflect": false
|
213
|
+
},
|
214
|
+
"position": {
|
215
|
+
"type": "string",
|
216
|
+
"mutable": false,
|
217
|
+
"complexType": {
|
218
|
+
"original": "IcBadgePositions",
|
219
|
+
"resolved": "\"far\" | \"inline\" | \"near\"",
|
220
|
+
"references": {
|
221
|
+
"IcBadgePositions": {
|
222
|
+
"location": "import",
|
223
|
+
"path": "./ic-badge.types",
|
224
|
+
"id": "src/components/ic-badge/ic-badge.types.ts::IcBadgePositions"
|
225
|
+
}
|
226
|
+
}
|
227
|
+
},
|
228
|
+
"required": false,
|
229
|
+
"optional": true,
|
230
|
+
"docs": {
|
231
|
+
"tags": [],
|
232
|
+
"text": "The positioning of the badge in reference to the parent element."
|
233
|
+
},
|
234
|
+
"attribute": "position",
|
235
|
+
"reflect": false,
|
236
|
+
"defaultValue": "\"far\""
|
237
|
+
},
|
238
|
+
"size": {
|
239
|
+
"type": "string",
|
240
|
+
"mutable": false,
|
241
|
+
"complexType": {
|
242
|
+
"original": "IcSizes",
|
243
|
+
"resolved": "\"default\" | \"large\" | \"small\"",
|
244
|
+
"references": {
|
245
|
+
"IcSizes": {
|
246
|
+
"location": "import",
|
247
|
+
"path": "../../utils/types",
|
248
|
+
"id": "src/utils/types.ts::IcSizes"
|
249
|
+
}
|
250
|
+
}
|
251
|
+
},
|
252
|
+
"required": false,
|
253
|
+
"optional": true,
|
254
|
+
"docs": {
|
255
|
+
"tags": [],
|
256
|
+
"text": "The size of the badge to be displayed."
|
257
|
+
},
|
258
|
+
"attribute": "size",
|
259
|
+
"reflect": false,
|
260
|
+
"defaultValue": "\"default\""
|
261
|
+
},
|
262
|
+
"textLabel": {
|
263
|
+
"type": "string",
|
264
|
+
"mutable": false,
|
265
|
+
"complexType": {
|
266
|
+
"original": "string",
|
267
|
+
"resolved": "string",
|
268
|
+
"references": {}
|
269
|
+
},
|
270
|
+
"required": false,
|
271
|
+
"optional": true,
|
272
|
+
"docs": {
|
273
|
+
"tags": [],
|
274
|
+
"text": "The text displayed in the badge. This will only be displayed if type=\"text\"."
|
275
|
+
},
|
276
|
+
"attribute": "text-label",
|
277
|
+
"reflect": false
|
278
|
+
},
|
279
|
+
"type": {
|
280
|
+
"type": "string",
|
281
|
+
"mutable": false,
|
282
|
+
"complexType": {
|
283
|
+
"original": "IcBadgeTypes",
|
284
|
+
"resolved": "\"dot\" | \"icon\" | \"text\"",
|
285
|
+
"references": {
|
286
|
+
"IcBadgeTypes": {
|
287
|
+
"location": "import",
|
288
|
+
"path": "./ic-badge.types",
|
289
|
+
"id": "src/components/ic-badge/ic-badge.types.ts::IcBadgeTypes"
|
290
|
+
}
|
291
|
+
}
|
292
|
+
},
|
293
|
+
"required": false,
|
294
|
+
"optional": true,
|
295
|
+
"docs": {
|
296
|
+
"tags": [],
|
297
|
+
"text": "The type of badge to be displayed."
|
298
|
+
},
|
299
|
+
"attribute": "type",
|
300
|
+
"reflect": false,
|
301
|
+
"defaultValue": "\"text\""
|
302
|
+
},
|
303
|
+
"variant": {
|
304
|
+
"type": "string",
|
305
|
+
"mutable": false,
|
306
|
+
"complexType": {
|
307
|
+
"original": "IcBadgeVariants",
|
308
|
+
"resolved": "\"custom\" | \"error\" | \"info\" | \"light\" | \"neutral\" | \"success\" | \"warning\"",
|
309
|
+
"references": {
|
310
|
+
"IcBadgeVariants": {
|
311
|
+
"location": "import",
|
312
|
+
"path": "./ic-badge.types",
|
313
|
+
"id": "src/components/ic-badge/ic-badge.types.ts::IcBadgeVariants"
|
314
|
+
}
|
315
|
+
}
|
316
|
+
},
|
317
|
+
"required": false,
|
318
|
+
"optional": true,
|
319
|
+
"docs": {
|
320
|
+
"tags": [],
|
321
|
+
"text": "The variant of the badge to be displayed."
|
322
|
+
},
|
323
|
+
"attribute": "variant",
|
324
|
+
"reflect": false,
|
325
|
+
"defaultValue": "\"neutral\""
|
326
|
+
}
|
327
|
+
};
|
328
|
+
}
|
329
|
+
static get states() {
|
330
|
+
return {
|
331
|
+
"visible": {}
|
332
|
+
};
|
333
|
+
}
|
334
|
+
static get methods() {
|
335
|
+
return {
|
336
|
+
"showBadge": {
|
337
|
+
"complexType": {
|
338
|
+
"signature": "() => Promise<void>",
|
339
|
+
"parameters": [],
|
340
|
+
"references": {
|
341
|
+
"Promise": {
|
342
|
+
"location": "global",
|
343
|
+
"id": "global::Promise"
|
344
|
+
}
|
345
|
+
},
|
346
|
+
"return": "Promise<void>"
|
347
|
+
},
|
348
|
+
"docs": {
|
349
|
+
"text": "Use to show the badge.",
|
350
|
+
"tags": []
|
351
|
+
}
|
352
|
+
},
|
353
|
+
"hideBadge": {
|
354
|
+
"complexType": {
|
355
|
+
"signature": "() => Promise<void>",
|
356
|
+
"parameters": [],
|
357
|
+
"references": {
|
358
|
+
"Promise": {
|
359
|
+
"location": "global",
|
360
|
+
"id": "global::Promise"
|
361
|
+
}
|
362
|
+
},
|
363
|
+
"return": "Promise<void>"
|
364
|
+
},
|
365
|
+
"docs": {
|
366
|
+
"text": "Use to hide the badge.",
|
367
|
+
"tags": []
|
368
|
+
}
|
369
|
+
}
|
370
|
+
};
|
371
|
+
}
|
372
|
+
static get elementRef() { return "el"; }
|
373
|
+
}
|
374
|
+
//# sourceMappingURL=ic-badge.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ic-badge.js","sourceRoot":"","sources":["../../../src/components/ic-badge/ic-badge.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Host,\n Method,\n Prop,\n State,\n h,\n} from \"@stencil/core\";\nimport {\n IcBadgePositions,\n IcBadgeTypes,\n IcBadgeVariants,\n IcColor,\n} from \"./ic-badge.types\";\nimport {\n IcColorRGBA,\n IcSizes,\n IcThemeForeground,\n IcThemeForegroundEnum,\n} from \"../../utils/types\";\nimport {\n getCssProperty,\n getParentElement,\n getParentElementType,\n hexToRgba,\n rgbaStrToObj,\n} from \"../../utils/helpers\";\n\n@Component({\n tag: \"ic-badge\",\n styleUrl: \"ic-badge.css\",\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class Badge {\n private customColorRGBA: IcColorRGBA;\n private foregroundColour: IcThemeForeground;\n\n @Element() el: HTMLIcBadgeElement;\n\n @State() visible: boolean = true;\n\n /**\n * The accessible label of the badge component to provide context for screen reader users.\n */\n @Prop() accessibleLabel?: string;\n\n /**\n * The custom badge colour. This will only style the badge component if variant=\"custom\".\n * Can be a hex value e.g. \"#ff0000\", RGB e.g. \"rgb(255, 0, 0)\", or RGBA e.g. \"rgba(255, 0, 0, 1)\".\n */\n @Prop() customColor?: IcColor = null;\n\n /**\n * The maximum number shown on the badge appended with a +.\n * This will only be displayed if type=\"text\" and textLabel is not empty.\n */\n @Prop() maxNumber?: number;\n\n /**\n * The positioning of the badge in reference to the parent element.\n */\n @Prop() position?: IcBadgePositions = \"far\";\n\n /**\n * The size of the badge to be displayed.\n */\n @Prop() size?: IcSizes = \"default\";\n\n /**\n * The text displayed in the badge. This will only be displayed if type=\"text\".\n */\n @Prop() textLabel?: string;\n\n /**\n * The type of badge to be displayed.\n */\n @Prop() type?: IcBadgeTypes = \"text\";\n\n /**\n * The variant of the badge to be displayed.\n */\n @Prop() variant?: IcBadgeVariants = \"neutral\";\n\n componentWillLoad(): void {\n this.variant === \"custom\" && this.setBadgeColour();\n\n this.getBadgeForeground();\n\n this.isAccessibleLabelDefined() && this.setAccessibleLabel();\n }\n\n /**\n * Use to show the badge.\n */\n @Method()\n async showBadge(): Promise<void> {\n this.visible = true;\n }\n\n /**\n * Use to hide the badge.\n */\n @Method()\n async hideBadge(): Promise<void> {\n this.visible = false;\n }\n\n private setBadgeColour = () => {\n let colorRGBA = null;\n if (this.customColor !== null) {\n const firstChar = this.customColor.slice(0, 1);\n if (firstChar === \"#\") {\n colorRGBA = hexToRgba(this.customColor);\n } else if (firstChar.toLowerCase() === \"r\") {\n colorRGBA = rgbaStrToObj(this.customColor);\n }\n this.customColorRGBA = colorRGBA;\n this.el.style.backgroundColor = `rgba(${colorRGBA.r.toString()}, ${colorRGBA.g.toString()}, ${colorRGBA.b.toString()}, ${colorRGBA.a.toString()})`;\n }\n };\n\n private getBadgeForeground = () => {\n let red: number;\n let green: number;\n let blue: number;\n\n switch (this.variant) {\n case \"custom\":\n red = this.customColorRGBA.r;\n green = this.customColorRGBA.g;\n blue = this.customColorRGBA.b;\n break;\n case \"error\":\n red = parseInt(getCssProperty(\"--ic-status-error-r\"));\n green = parseInt(getCssProperty(\"--ic-status-error-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-error-b\"));\n break;\n case \"success\":\n red = parseInt(getCssProperty(\"--ic-status-success-r\"));\n green = parseInt(getCssProperty(\"--ic-status-success-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-success-b\"));\n break;\n case \"warning\":\n red = parseInt(getCssProperty(\"--ic-status-warning-r\"));\n green = parseInt(getCssProperty(\"--ic-status-warning-g\"));\n blue = parseInt(getCssProperty(\"--ic-status-warning-b\"));\n break;\n case \"info\": {\n const info = hexToRgba(getCssProperty(\"--ic-status-info\"));\n red = info.r;\n green = info.g;\n blue = info.b;\n break;\n }\n case \"neutral\": {\n const neutral = hexToRgba(getCssProperty(\"--ic-architectural-500\"));\n red = neutral.r;\n green = neutral.g;\n blue = neutral.b;\n break;\n }\n case \"light\": {\n const light = hexToRgba(getCssProperty(\"--ic-architectural-40\"));\n red = light.r;\n green = light.g;\n blue = light.b;\n break;\n }\n }\n\n const brightness = (red * 299 + green * 587 + blue * 114) / 1000;\n this.foregroundColour =\n brightness > 133.3505\n ? IcThemeForegroundEnum.Dark\n : IcThemeForegroundEnum.Light;\n };\n\n private getTextLabel = () => {\n let label;\n if (this.textLabel !== null) {\n if (this.maxNumber !== null) {\n label =\n Number(this.textLabel) > this.maxNumber\n ? `${this.maxNumber}+`\n : this.textLabel;\n } else {\n label = this.textLabel;\n }\n }\n return label;\n };\n\n private setAccessibleLabel = () => {\n if (getParentElement(this.el) !== null) {\n if (getParentElementType(this.el) === \"IC-TAB\") {\n getParentElement(this.el).setAttribute(\"aria-describedby\", \"badge\");\n } else {\n getParentElement(\n this.el\n ).ariaLabel = `badge displaying ${this.accessibleLabel}`;\n }\n }\n };\n\n private isAccessibleLabelDefined = () => {\n return this.accessibleLabel !== undefined && this.accessibleLabel !== null;\n };\n\n render() {\n const { position, size, type, variant, foregroundColour, visible } = this;\n\n return (\n <Host\n class={{\n [`${position}`]: true,\n [`${size}`]: true,\n [`${variant}`]: true,\n [`${type}`]: true,\n [`foreground-${foregroundColour}`]: foregroundColour !== null,\n [\"show\"]: visible,\n [\"hide\"]: !visible,\n }}\n id=\"badge\"\n aria-label={\n this.isAccessibleLabelDefined() &&\n `badge displaying ${this.accessibleLabel}`\n }\n >\n {type === \"icon\" && <slot name=\"badge-icon\"></slot>}\n {type === \"text\" && (\n <ic-typography variant={size === \"small\" ? \"badge-small\" : \"badge\"}>\n {this.getTextLabel()}\n </ic-typography>\n )}\n </Host>\n );\n }\n}\n"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ic-badge.types.js","sourceRoot":"","sources":["../../../src/components/ic-badge/ic-badge.types.ts"],"names":[],"mappings":"","sourcesContent":["import { IcStatusVariants } from \"../../utils/types\";\n\nexport type IcBadgeTypes = \"dot\" | \"text\" | \"icon\";\n\nexport type IcBadgePositions = \"far\" | \"near\" | \"inline\";\n\nexport type IcBadgeVariants = IcStatusVariants | \"light\" | \"custom\";\n\ntype RGB = `rgb(${string})`;\ntype RGBA = `rgba(${string})`;\ntype HEX = `#${string}`;\n\nexport type IcColor = RGB | RGBA | HEX;\n"]}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { fixture } from "@open-wc/testing-helpers";
|
2
|
+
import { axe } from "jest-axe";
|
3
|
+
import { checkShadowElementRendersCorrectly } from "../../../../utils/testa11y.helpers";
|
4
|
+
describe("badge component", () => {
|
5
|
+
it("passes accessibility", async () => {
|
6
|
+
const el = await fixture("<ic-button>Button<ic-badge slot='badge' text-label='1'/></ic-button>");
|
7
|
+
checkShadowElementRendersCorrectly(el);
|
8
|
+
expect(await axe(el)).toHaveNoViolations();
|
9
|
+
});
|
10
|
+
it("passes accessibility with accessible label prop set", async () => {
|
11
|
+
const el = await fixture("<ic-button>Button<ic-badge slot='badge' text-label='1' accessible-label='1 notification found'/></ic-button>");
|
12
|
+
checkShadowElementRendersCorrectly(el);
|
13
|
+
expect(await axe(el)).toHaveNoViolations();
|
14
|
+
});
|
15
|
+
});
|
16
|
+
//# sourceMappingURL=ic-badge.test.a11y.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ic-badge.test.a11y.js","sourceRoot":"","sources":["../../../../../src/components/ic-badge/test/a11y/ic-badge.test.a11y.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,kCAAkC,EAAE,MAAM,oCAAoC,CAAC;AAExF,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;EAC/B,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,sEAAsE,CACvE,CAAC;IACF,kCAAkC,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;EAC7C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;IACnE,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,8GAA8G,CAC/G,CAAC;IACF,kCAAkC,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;EAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { fixture } from \"@open-wc/testing-helpers\";\nimport { axe } from \"jest-axe\";\nimport { checkShadowElementRendersCorrectly } from \"../../../../utils/testa11y.helpers\";\n\ndescribe(\"badge component\", () => {\n it(\"passes accessibility\", async () => {\n const el = await fixture(\n \"<ic-button>Button<ic-badge slot='badge' text-label='1'/></ic-button>\"\n );\n checkShadowElementRendersCorrectly(el);\n expect(await axe(el)).toHaveNoViolations();\n });\n\n it(\"passes accessibility with accessible label prop set\", async () => {\n const el = await fixture(\n \"<ic-button>Button<ic-badge slot='badge' text-label='1' accessible-label='1 notification found'/></ic-button>\"\n );\n checkShadowElementRendersCorrectly(el);\n expect(await axe(el)).toHaveNoViolations();\n });\n});\n"]}
|
@@ -0,0 +1,167 @@
|
|
1
|
+
import { newSpecPage } from "@stencil/core/testing";
|
2
|
+
import { Badge } from "../../ic-badge";
|
3
|
+
import { Button } from "../../../ic-button/ic-button";
|
4
|
+
import { Chip } from "../../../ic-chip/ic-chip";
|
5
|
+
import { Tab } from "../../../ic-tab/ic-tab";
|
6
|
+
describe("ic-badge", () => {
|
7
|
+
it("should render with text slotted in a button", async () => {
|
8
|
+
const page = await newSpecPage({
|
9
|
+
components: [Button, Badge],
|
10
|
+
html: `<ic-button>Button<ic-badge slot="badge" text-label="1"/></ic-button>`,
|
11
|
+
});
|
12
|
+
expect(page.root).toMatchSnapshot("should render with text slotted in a button");
|
13
|
+
});
|
14
|
+
it("should render light variant", async () => {
|
15
|
+
const page = await newSpecPage({
|
16
|
+
components: [Button, Badge],
|
17
|
+
html: `<ic-button>Button<ic-badge slot="badge" variant="light" text-label="1"/></ic-button>`,
|
18
|
+
});
|
19
|
+
expect(page.root).toMatchSnapshot("should render light variant");
|
20
|
+
});
|
21
|
+
it("should render error variant", async () => {
|
22
|
+
const page = await newSpecPage({
|
23
|
+
components: [Button, Badge],
|
24
|
+
html: `<ic-button>Button<ic-badge slot="badge" variant="error" text-label="1"/></ic-button>`,
|
25
|
+
});
|
26
|
+
expect(page.root).toMatchSnapshot("should render error variant");
|
27
|
+
});
|
28
|
+
it("should render success variant", async () => {
|
29
|
+
const page = await newSpecPage({
|
30
|
+
components: [Button, Badge],
|
31
|
+
html: `<ic-button>Button<ic-badge slot="badge" variant="success" text-label="1"/></ic-button>`,
|
32
|
+
});
|
33
|
+
expect(page.root).toMatchSnapshot("should render success variant");
|
34
|
+
});
|
35
|
+
it("should render warning variant", async () => {
|
36
|
+
const page = await newSpecPage({
|
37
|
+
components: [Button, Badge],
|
38
|
+
html: `<ic-button>Button<ic-badge slot="badge" variant="warning" text-label="1"/></ic-button>`,
|
39
|
+
});
|
40
|
+
expect(page.root).toMatchSnapshot("should render warning variant");
|
41
|
+
});
|
42
|
+
it("should render info variant", async () => {
|
43
|
+
const page = await newSpecPage({
|
44
|
+
components: [Button, Badge],
|
45
|
+
html: `<ic-button>Button<ic-badge slot="badge" variant="info" text-label="1"/></ic-button>`,
|
46
|
+
});
|
47
|
+
expect(page.root).toMatchSnapshot("should render info variant");
|
48
|
+
});
|
49
|
+
it("should render custom variant with custom colour in hex", async () => {
|
50
|
+
const page = await newSpecPage({
|
51
|
+
components: [Button, Badge],
|
52
|
+
html: `<ic-button>Button<ic-badge slot="badge" variant="custom" text-label="1" custom-color="#F8C8DC"/></ic-button>`,
|
53
|
+
});
|
54
|
+
expect(page.root).toMatchSnapshot("should render custom variant with custom colour in hex");
|
55
|
+
});
|
56
|
+
it("should render custom variant with custom colour in rgb", async () => {
|
57
|
+
const page = await newSpecPage({
|
58
|
+
components: [Button, Badge],
|
59
|
+
html: `<ic-button>Button<ic-badge slot="badge" variant="custom" text-label="1" custom-color="rgb(248,200,220)"/></ic-button>`,
|
60
|
+
});
|
61
|
+
expect(page.root).toMatchSnapshot("should render custom variant with custom colour in rgb");
|
62
|
+
});
|
63
|
+
it("should render with max number prop set", async () => {
|
64
|
+
const page = await newSpecPage({
|
65
|
+
components: [Button, Badge],
|
66
|
+
html: `<ic-button>Button<ic-badge slot="badge" text-label="100" max-number="9"/></ic-button>`,
|
67
|
+
});
|
68
|
+
expect(page.root).toMatchSnapshot("should render with max number prop set");
|
69
|
+
});
|
70
|
+
it("should render with accessible label", async () => {
|
71
|
+
const page = await newSpecPage({
|
72
|
+
components: [Button, Badge],
|
73
|
+
html: `<ic-button>Button<ic-badge slot="badge" text-label="1" accessible-label="1 notification found"/></ic-button>`,
|
74
|
+
});
|
75
|
+
expect(page.root).toMatchSnapshot("should render with accessible label");
|
76
|
+
});
|
77
|
+
it("should render size small", async () => {
|
78
|
+
const page = await newSpecPage({
|
79
|
+
components: [Button, Badge],
|
80
|
+
html: `<ic-button>Button<ic-badge slot="badge" text-label="100" size="small"/></ic-button>`,
|
81
|
+
});
|
82
|
+
expect(page.root).toMatchSnapshot("should render size small");
|
83
|
+
});
|
84
|
+
it("should render size large", async () => {
|
85
|
+
const page = await newSpecPage({
|
86
|
+
components: [Button, Badge],
|
87
|
+
html: `<ic-button>Button<ic-badge slot="badge" text-label="100" size="large"/></ic-button>`,
|
88
|
+
});
|
89
|
+
expect(page.root).toMatchSnapshot("should render size large");
|
90
|
+
});
|
91
|
+
it("should render type dot", async () => {
|
92
|
+
const page = await newSpecPage({
|
93
|
+
components: [Button, Badge],
|
94
|
+
html: `<ic-button>Button<ic-badge slot="badge" type="dot"/></ic-button>`,
|
95
|
+
});
|
96
|
+
expect(page.root).toMatchSnapshot("should render type dot");
|
97
|
+
});
|
98
|
+
it("should render type icon", async () => {
|
99
|
+
const page = await newSpecPage({
|
100
|
+
components: [Button, Badge],
|
101
|
+
html: `<ic-button>Button<ic-badge slot="badge" type="icon">
|
102
|
+
<svg slot='badge-icon' xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000">
|
103
|
+
<path d="M0 0h24v24H0V0z" fill="none"/>
|
104
|
+
<path d="M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"/>
|
105
|
+
</svg>
|
106
|
+
</ic-badge></ic-button>`,
|
107
|
+
});
|
108
|
+
expect(page.root).toMatchSnapshot("should render type icon");
|
109
|
+
});
|
110
|
+
it("should render slotted in a chip", async () => {
|
111
|
+
const page = await newSpecPage({
|
112
|
+
components: [Chip, Badge],
|
113
|
+
html: `<ic-chip label="Badge"><ic-badge slot="badge" text-label="1" position="near"/></ic-chip>`,
|
114
|
+
});
|
115
|
+
expect(page.root).toMatchSnapshot("should render slotted in a chip");
|
116
|
+
});
|
117
|
+
it("should render slotted in a tab", async () => {
|
118
|
+
const page = await newSpecPage({
|
119
|
+
components: [Tab, Badge],
|
120
|
+
html: `<ic-tab>Tab<ic-badge slot="badge" text-label="1" position="inline"/></ic-tab>`,
|
121
|
+
});
|
122
|
+
expect(page.root).toMatchSnapshot("should render slotted in a tab");
|
123
|
+
});
|
124
|
+
it("should hide and show the badge using methods", async () => {
|
125
|
+
const page = await newSpecPage({
|
126
|
+
components: [Badge],
|
127
|
+
html: `<ic-button>Button<ic-badge slot="badge" text-label="1"/></ic-button>`,
|
128
|
+
});
|
129
|
+
const badge = document.querySelector("ic-badge");
|
130
|
+
expect(page.rootInstance.visible).toBe(true);
|
131
|
+
await badge.hideBadge();
|
132
|
+
await page.waitForChanges();
|
133
|
+
expect(page.rootInstance.visible).toBe(false);
|
134
|
+
await badge.showBadge();
|
135
|
+
await page.waitForChanges();
|
136
|
+
expect(page.rootInstance.visible).toBe(true);
|
137
|
+
});
|
138
|
+
it("should set the correct badge colour", async () => {
|
139
|
+
const page = await newSpecPage({
|
140
|
+
components: [Badge],
|
141
|
+
html: `<ic-button>Button<ic-badge slot="badge" variant="custom" text-label="1" custom-color="#F8C8DC"/></ic-button>`,
|
142
|
+
});
|
143
|
+
await page.rootInstance.setBadgeColour();
|
144
|
+
expect(page.rootInstance.customColorRGBA).toEqual({
|
145
|
+
a: 1,
|
146
|
+
b: 220,
|
147
|
+
g: 200,
|
148
|
+
r: 248,
|
149
|
+
});
|
150
|
+
});
|
151
|
+
it("should set the correct foreground colour", async () => {
|
152
|
+
const page = await newSpecPage({
|
153
|
+
components: [Badge],
|
154
|
+
html: `<ic-button>Button<ic-badge slot="badge" variant="custom" text-label="1" custom-color="#F8C8DC"/></ic-button>`,
|
155
|
+
});
|
156
|
+
await page.rootInstance.getBadgeForeground();
|
157
|
+
expect(page.rootInstance.foregroundColour).toBe("dark");
|
158
|
+
});
|
159
|
+
it("should set the correct text label when max number is set", async () => {
|
160
|
+
const page = await newSpecPage({
|
161
|
+
components: [Badge],
|
162
|
+
html: `<ic-button>Button<ic-badge slot="badge" text-label="100" max-number="9"/></ic-button>`,
|
163
|
+
});
|
164
|
+
expect(page.rootInstance.getTextLabel()).toBe("9+");
|
165
|
+
});
|
166
|
+
});
|
167
|
+
//# sourceMappingURL=ic-badge.spec.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ic-badge.spec.js","sourceRoot":"","sources":["../../../../../src/components/ic-badge/test/basic/ic-badge.spec.tsx"],"names":[],"mappings":"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","sourcesContent":["import { newSpecPage } from \"@stencil/core/testing\";\nimport { Badge } from \"../../ic-badge\";\nimport { Button } from \"../../../ic-button/ic-button\";\nimport { Chip } from \"../../../ic-chip/ic-chip\";\nimport { Tab } from \"../../../ic-tab/ic-tab\";\n\ndescribe(\"ic-badge\", () => {\n it(\"should render with text slotted in a button\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\n \"should render with text slotted in a button\"\n );\n });\n\n it(\"should render light variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"light\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render light variant\");\n });\n\n it(\"should render error variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"error\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render error variant\");\n });\n\n it(\"should render success variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"success\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render success variant\");\n });\n\n it(\"should render warning variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"warning\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render warning variant\");\n });\n it(\"should render info variant\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"info\" text-label=\"1\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render info variant\");\n });\n\n it(\"should render custom variant with custom colour in hex\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"custom\" text-label=\"1\" custom-color=\"#F8C8DC\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\n \"should render custom variant with custom colour in hex\"\n );\n });\n\n it(\"should render custom variant with custom colour in rgb\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"custom\" text-label=\"1\" custom-color=\"rgb(248,200,220)\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\n \"should render custom variant with custom colour in rgb\"\n );\n });\n\n it(\"should render with max number prop set\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"100\" max-number=\"9\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render with max number prop set\");\n });\n\n it(\"should render with accessible label\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"1\" accessible-label=\"1 notification found\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render with accessible label\");\n });\n\n it(\"should render size small\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"100\" size=\"small\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render size small\");\n });\n\n it(\"should render size large\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"100\" size=\"large\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render size large\");\n });\n\n it(\"should render type dot\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" type=\"dot\"/></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render type dot\");\n });\n\n it(\"should render type icon\", async () => {\n const page = await newSpecPage({\n components: [Button, Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" type=\"icon\">\n <svg slot='badge-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 </ic-badge></ic-button>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render type icon\");\n });\n\n it(\"should render slotted in a chip\", async () => {\n const page = await newSpecPage({\n components: [Chip, Badge],\n html: `<ic-chip label=\"Badge\"><ic-badge slot=\"badge\" text-label=\"1\" position=\"near\"/></ic-chip>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render slotted in a chip\");\n });\n\n it(\"should render slotted in a tab\", async () => {\n const page = await newSpecPage({\n components: [Tab, Badge],\n html: `<ic-tab>Tab<ic-badge slot=\"badge\" text-label=\"1\" position=\"inline\"/></ic-tab>`,\n });\n\n expect(page.root).toMatchSnapshot(\"should render slotted in a tab\");\n });\n\n it(\"should hide and show the badge using methods\", async () => {\n const page = await newSpecPage({\n components: [Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"1\"/></ic-button>`,\n });\n\n const badge = document.querySelector(\"ic-badge\");\n\n expect(page.rootInstance.visible).toBe(true);\n\n await badge.hideBadge();\n await page.waitForChanges();\n\n expect(page.rootInstance.visible).toBe(false);\n\n await badge.showBadge();\n await page.waitForChanges();\n\n expect(page.rootInstance.visible).toBe(true);\n });\n\n it(\"should set the correct badge colour\", async () => {\n const page = await newSpecPage({\n components: [Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"custom\" text-label=\"1\" custom-color=\"#F8C8DC\"/></ic-button>`,\n });\n\n await page.rootInstance.setBadgeColour();\n\n expect(page.rootInstance.customColorRGBA).toEqual({\n a: 1,\n b: 220,\n g: 200,\n r: 248,\n });\n });\n\n it(\"should set the correct foreground colour\", async () => {\n const page = await newSpecPage({\n components: [Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" variant=\"custom\" text-label=\"1\" custom-color=\"#F8C8DC\"/></ic-button>`,\n });\n\n await page.rootInstance.getBadgeForeground();\n\n expect(page.rootInstance.foregroundColour).toBe(\"dark\");\n });\n\n it(\"should set the correct text label when max number is set\", async () => {\n const page = await newSpecPage({\n components: [Badge],\n html: `<ic-button>Button<ic-badge slot=\"badge\" text-label=\"100\" max-number=\"9\"/></ic-button>`,\n });\n\n expect(page.rootInstance.getTextLabel()).toBe(\"9+\");\n });\n});\n"]}
|