wcs-core 7.3.0 → 7.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -9
- package/design-tokens/dist/sncf-groupe-root-scoped.css +227 -227
- package/design-tokens/dist/sncf-groupe.css +227 -227
- package/design-tokens/dist/sncf-holding-root-scoped.css +227 -227
- package/design-tokens/dist/sncf-holding.css +227 -227
- package/design-tokens/dist/sncf-reseau-root-scoped.css +227 -227
- package/design-tokens/dist/sncf-reseau.css +227 -227
- package/design-tokens/dist/sncf-voyageurs-root-scoped.css +242 -242
- package/design-tokens/dist/sncf-voyageurs.css +242 -242
- package/dist/cjs/{popper-8d6e7fca.js → popper-1b61df21.js} +10 -17
- package/dist/cjs/popper-1b61df21.js.map +1 -0
- package/dist/cjs/wcs-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/wcs-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
- package/dist/cjs/wcs-com-nav-item.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-com-nav.cjs.entry.js +3 -3
- package/dist/cjs/wcs-com-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/wcs-error_3.cjs.entry.js +1 -1
- package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-galactic-menu.cjs.entry.js +1 -1
- package/dist/cjs/wcs-grid.cjs.entry.js +5 -4
- package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +3 -2
- package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-modal.cjs.entry.js +2 -2
- package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-select_2.cjs.entry.js +59 -24
- package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
- package/dist/cjs/wcs-tabs.cjs.entry.js +1 -1
- package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
- package/dist/collection/components/accordion/{accordion.e2e.js → accordion.e2e.playwright.js} +51 -55
- package/dist/collection/components/accordion/accordion.e2e.playwright.js.map +1 -0
- package/dist/collection/components/accordion-panel/accordion-panel.js +1 -1
- package/dist/collection/components/alert/alert.e2e.playwright.js +125 -0
- package/dist/collection/components/alert/alert.e2e.playwright.js.map +1 -0
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js +107 -0
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js.map +1 -0
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js +188 -0
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js.map +1 -0
- package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
- package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/collection/components/button/button.e2e.playwright.js +26 -0
- package/dist/collection/components/button/button.e2e.playwright.js.map +1 -0
- package/dist/collection/components/button/button.js +1 -1
- package/dist/collection/components/checkbox/checkbox.e2e.playwright.js +39 -0
- package/dist/collection/components/checkbox/checkbox.e2e.playwright.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox.js +1 -1
- package/dist/collection/components/chip/chip.e2e.playwright.js +190 -0
- package/dist/collection/components/chip/chip.e2e.playwright.js.map +1 -0
- package/dist/collection/components/com-nav/com-nav.css +15 -0
- package/dist/collection/components/com-nav/{com-nav.e2e.js → com-nav.e2e.playwright.js} +60 -44
- package/dist/collection/components/com-nav/com-nav.e2e.playwright.js.map +1 -0
- package/dist/collection/components/com-nav/com-nav.js +3 -3
- package/dist/collection/components/com-nav/com-nav.js.map +1 -1
- package/dist/collection/components/com-nav-category/com-nav-category.js +1 -1
- package/dist/collection/components/com-nav-item/com-nav-item.css +2 -2
- package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +1 -1
- package/dist/collection/components/counter/counter.e2e.playwright.js +187 -0
- package/dist/collection/components/counter/counter.e2e.playwright.js.map +1 -0
- package/dist/collection/components/counter/counter.js +1 -1
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +320 -0
- package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -0
- package/dist/collection/components/dropdown/dropdown.js +1 -1
- package/dist/collection/components/editable-field/editable-field.e2e.playwright.js +156 -0
- package/dist/collection/components/editable-field/editable-field.e2e.playwright.js.map +1 -0
- package/dist/collection/components/form-field/form-field.e2e.playwright.js +104 -0
- package/dist/collection/components/form-field/form-field.e2e.playwright.js.map +1 -0
- package/dist/collection/components/galactic-menu/galactic-menu.js +1 -1
- package/dist/collection/components/grid/grid.e2e.playwright.js +153 -0
- package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -0
- package/dist/collection/components/grid/grid.js +6 -5
- package/dist/collection/components/grid/grid.js.map +1 -1
- package/dist/collection/components/grid-column/grid-column.js +1 -1
- package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
- package/dist/collection/components/header/header.js +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-step.js +2 -1
- package/dist/collection/components/horizontal-stepper/horizontal-step.js.map +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper-interface.js.map +1 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +5 -1
- package/dist/collection/components/horizontal-stepper/horizontal-stepper.js.map +1 -1
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/input/input.e2e.playwright.js +157 -0
- package/dist/collection/components/input/input.e2e.playwright.js.map +1 -0
- package/dist/collection/components/input/input.js +2 -2
- package/dist/collection/components/label/label.css +4 -6
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/mat-icon/mat-icon.js +1 -1
- package/dist/collection/components/modal/modal.css +4 -0
- package/dist/collection/components/modal/modal.e2e.playwright.js +35 -0
- package/dist/collection/components/modal/modal.e2e.playwright.js.map +1 -0
- package/dist/collection/components/modal/modal.js +2 -2
- package/dist/collection/components/modal/modal.js.map +1 -1
- package/dist/collection/components/native-select/native-select.js +1 -1
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/progress-radial/progress-radial.js +1 -1
- package/dist/collection/components/radio/radio.js +1 -1
- package/dist/collection/components/radio-group/radio-group.e2e.playwright.js +231 -0
- package/dist/collection/components/radio-group/radio-group.e2e.playwright.js.map +1 -0
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/select/select.e2e.playwright.js +1702 -0
- package/dist/collection/components/select/select.e2e.playwright.js.map +1 -0
- package/dist/collection/components/select/select.js +49 -20
- package/dist/collection/components/select/select.js.map +1 -1
- package/dist/collection/components/select-option/select-option.js +3 -3
- package/dist/collection/components/select-option/select-option.js.map +1 -1
- package/dist/collection/components/switch/switch.e2e.playwright.js +40 -0
- package/dist/collection/components/switch/switch.e2e.playwright.js.map +1 -0
- package/dist/collection/components/switch/switch.js +1 -1
- package/dist/collection/components/tabs/tabs.e2e.playwright.js +205 -0
- package/dist/collection/components/tabs/tabs.e2e.playwright.js.map +1 -0
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/textarea/textarea.e2e.playwright.js +133 -0
- package/dist/collection/components/textarea/textarea.e2e.playwright.js.map +1 -0
- package/dist/collection/components/textarea/textarea.js +1 -1
- package/dist/collection/utils/playwright/test-expect.js +2 -0
- package/dist/collection/utils/playwright/test-expect.js.map +1 -0
- package/dist/collection/utils/playwright/test.js +16 -0
- package/dist/collection/utils/playwright/test.js.map +1 -0
- package/dist/esm/{popper-e491c314.js → popper-ac238961.js} +10 -17
- package/dist/esm/popper-ac238961.js.map +1 -0
- package/dist/esm/wcs-breadcrumb.entry.js +1 -1
- package/dist/esm/wcs-breadcrumb.entry.js.map +1 -1
- package/dist/esm/wcs-com-nav-item.entry.js +1 -1
- package/dist/esm/wcs-com-nav-item.entry.js.map +1 -1
- package/dist/esm/wcs-com-nav.entry.js +3 -3
- package/dist/esm/wcs-com-nav.entry.js.map +1 -1
- package/dist/esm/wcs-dropdown.entry.js +1 -1
- package/dist/esm/wcs-error_3.entry.js +1 -1
- package/dist/esm/wcs-error_3.entry.js.map +1 -1
- package/dist/esm/wcs-galactic-menu.entry.js +1 -1
- package/dist/esm/wcs-grid.entry.js +5 -4
- package/dist/esm/wcs-grid.entry.js.map +1 -1
- package/dist/esm/wcs-horizontal-stepper.entry.js +3 -2
- package/dist/esm/wcs-horizontal-stepper.entry.js.map +1 -1
- package/dist/esm/wcs-modal.entry.js +2 -2
- package/dist/esm/wcs-modal.entry.js.map +1 -1
- package/dist/esm/wcs-select_2.entry.js +59 -24
- package/dist/esm/wcs-select_2.entry.js.map +1 -1
- package/dist/esm/wcs-tabs.entry.js +1 -1
- package/dist/esm/wcs-tooltip.entry.js +1 -1
- package/dist/types/components/accordion/accordion.e2e.playwright.d.ts +1 -0
- package/dist/types/components/alert/alert.e2e.playwright.d.ts +1 -0
- package/dist/types/components/alert-drawer/alert-drawer.e2e.playwright.d.ts +1 -0
- package/dist/types/components/breadcrumb/breadcrumb.e2e.playwright.d.ts +1 -0
- package/dist/types/components/button/button.e2e.playwright.d.ts +1 -0
- package/dist/types/components/checkbox/checkbox.e2e.playwright.d.ts +1 -0
- package/dist/types/components/chip/chip.e2e.playwright.d.ts +1 -0
- package/dist/types/components/com-nav/com-nav.e2e.playwright.d.ts +1 -0
- package/dist/types/components/counter/counter.e2e.playwright.d.ts +1 -0
- package/dist/types/components/dropdown/dropdown.e2e.playwright.d.ts +1 -0
- package/dist/types/components/editable-field/editable-field.e2e.playwright.d.ts +1 -0
- package/dist/types/components/form-field/form-field.e2e.playwright.d.ts +1 -0
- package/dist/types/components/grid/grid.e2e.playwright.d.ts +1 -0
- package/dist/types/components/horizontal-stepper/horizontal-stepper-interface.d.ts +2 -0
- package/dist/types/components/horizontal-stepper/horizontal-stepper.d.ts +4 -0
- package/dist/types/components/input/input.e2e.playwright.d.ts +1 -0
- package/dist/types/components/modal/modal.e2e.playwright.d.ts +1 -0
- package/dist/types/components/radio-group/radio-group.e2e.playwright.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +7 -1
- package/dist/types/components/select/select.e2e.playwright.d.ts +1 -0
- package/dist/types/components/switch/switch.e2e.playwright.d.ts +1 -0
- package/dist/types/components/tabs/tabs.e2e.playwright.d.ts +1 -0
- package/dist/types/components/textarea/textarea.e2e.playwright.d.ts +1 -0
- package/dist/types/components.d.ts +12 -0
- package/dist/types/utils/playwright/test-expect.d.ts +33 -0
- package/dist/types/utils/playwright/test.d.ts +7 -0
- package/dist/wcs/{p-8e9bd0f1.entry.js → p-0326f834.entry.js} +2 -2
- package/dist/wcs/{p-8e9bd0f1.entry.js.map → p-0326f834.entry.js.map} +1 -1
- package/dist/wcs/p-2221bf0c.entry.js +16 -0
- package/dist/wcs/p-2221bf0c.entry.js.map +1 -0
- package/dist/wcs/p-4ae08567.entry.js +2 -0
- package/dist/wcs/p-4ae08567.entry.js.map +1 -0
- package/dist/wcs/p-4e2d6227.entry.js +2 -0
- package/dist/wcs/p-4e2d6227.entry.js.map +1 -0
- package/dist/wcs/p-8332a7e3.entry.js +2 -0
- package/dist/wcs/p-8332a7e3.entry.js.map +1 -0
- package/dist/wcs/{p-ec383729.entry.js → p-9b76b8e6.entry.js} +2 -2
- package/dist/wcs/{p-ec383729.entry.js.map → p-9b76b8e6.entry.js.map} +1 -1
- package/dist/wcs/{p-1f593d06.entry.js → p-abd8d5a0.entry.js} +2 -2
- package/dist/wcs/{p-622f7403.entry.js → p-c6f8c45c.entry.js} +2 -2
- package/dist/wcs/{p-a94e685c.entry.js → p-db7ba599.entry.js} +2 -2
- package/dist/wcs/p-e1fb3625.js +2 -0
- package/dist/wcs/p-e1fb3625.js.map +1 -0
- package/dist/wcs/{p-a956dc84.entry.js → p-f2f7595e.entry.js} +2 -2
- package/dist/wcs/{p-a956dc84.entry.js.map → p-f2f7595e.entry.js.map} +1 -1
- package/dist/wcs/p-fbd68522.entry.js +2 -0
- package/dist/wcs/p-fbd68522.entry.js.map +1 -0
- package/dist/wcs/{p-8c2605fd.entry.js → p-fe303f58.entry.js} +2 -2
- package/dist/wcs/wcs.esm.js +1 -1
- package/package.json +18 -24
- package/dist/cjs/popper-8d6e7fca.js.map +0 -1
- package/dist/collection/components/accordion/accordion.e2e.js.map +0 -1
- package/dist/collection/components/alert/alert.e2e.js +0 -142
- package/dist/collection/components/alert/alert.e2e.js.map +0 -1
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.js +0 -111
- package/dist/collection/components/alert-drawer/alert-drawer.e2e.js.map +0 -1
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.js +0 -223
- package/dist/collection/components/breadcrumb/breadcrumb.e2e.js.map +0 -1
- package/dist/collection/components/button/button.e2e.js +0 -25
- package/dist/collection/components/button/button.e2e.js.map +0 -1
- package/dist/collection/components/checkbox/checkbox.e2e.js +0 -45
- package/dist/collection/components/checkbox/checkbox.e2e.js.map +0 -1
- package/dist/collection/components/chip/chip.e2e.js +0 -209
- package/dist/collection/components/chip/chip.e2e.js.map +0 -1
- package/dist/collection/components/com-nav/com-nav.e2e.js.map +0 -1
- package/dist/collection/components/counter/counter.e2e.js +0 -206
- package/dist/collection/components/counter/counter.e2e.js.map +0 -1
- package/dist/collection/components/dropdown/dropdown.e2e.js +0 -156
- package/dist/collection/components/dropdown/dropdown.e2e.js.map +0 -1
- package/dist/collection/components/editable-field/editable-field.e2e.js +0 -176
- package/dist/collection/components/editable-field/editable-field.e2e.js.map +0 -1
- package/dist/collection/components/form-field/form-field.e2e.js +0 -122
- package/dist/collection/components/form-field/form-field.e2e.js.map +0 -1
- package/dist/collection/components/grid/grid.e2e.js +0 -147
- package/dist/collection/components/grid/grid.e2e.js.map +0 -1
- package/dist/collection/components/input/input.e2e.js +0 -152
- package/dist/collection/components/input/input.e2e.js.map +0 -1
- package/dist/collection/components/modal/modal.e2e.js +0 -36
- package/dist/collection/components/modal/modal.e2e.js.map +0 -1
- package/dist/collection/components/radio-group/radio-group.e2e.js +0 -239
- package/dist/collection/components/radio-group/radio-group.e2e.js.map +0 -1
- package/dist/collection/components/select/select.e2e.js +0 -1081
- package/dist/collection/components/select/select.e2e.js.map +0 -1
- package/dist/collection/components/switch/switch.e2e.js +0 -45
- package/dist/collection/components/switch/switch.e2e.js.map +0 -1
- package/dist/collection/components/tabs/tabs.e2e.js +0 -207
- package/dist/collection/components/tabs/tabs.e2e.js.map +0 -1
- package/dist/collection/components/textarea/textarea.e2e.js +0 -132
- package/dist/collection/components/textarea/textarea.e2e.js.map +0 -1
- package/dist/collection/utils/tests.js +0 -23
- package/dist/collection/utils/tests.js.map +0 -1
- package/dist/esm/popper-e491c314.js.map +0 -1
- package/dist/types/utils/tests.d.ts +0 -4
- package/dist/wcs/p-0dd07842.entry.js +0 -2
- package/dist/wcs/p-0dd07842.entry.js.map +0 -1
- package/dist/wcs/p-0f864e86.js +0 -2
- package/dist/wcs/p-0f864e86.js.map +0 -1
- package/dist/wcs/p-1244daa0.entry.js +0 -2
- package/dist/wcs/p-1244daa0.entry.js.map +0 -1
- package/dist/wcs/p-1fbe0328.entry.js +0 -2
- package/dist/wcs/p-1fbe0328.entry.js.map +0 -1
- package/dist/wcs/p-b94a09b6.entry.js +0 -16
- package/dist/wcs/p-b94a09b6.entry.js.map +0 -1
- package/dist/wcs/p-fd187bce.entry.js +0 -2
- package/dist/wcs/p-fd187bce.entry.js.map +0 -1
- /package/dist/wcs/{p-1f593d06.entry.js.map → p-abd8d5a0.entry.js.map} +0 -0
- /package/dist/wcs/{p-622f7403.entry.js.map → p-c6f8c45c.entry.js.map} +0 -0
- /package/dist/wcs/{p-a94e685c.entry.js.map → p-db7ba599.entry.js.map} +0 -0
- /package/dist/wcs/{p-8c2605fd.entry.js.map → p-fe303f58.entry.js.map} +0 -0
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
const index = require('./index-6f0140d8.js');
|
|
6
6
|
const helpers = require('./helpers-2f1a8ddc.js');
|
|
7
7
|
const selectArrow = require('./select-arrow-a8a47fe4.js');
|
|
8
|
-
const popper = require('./popper-
|
|
8
|
+
const popper = require('./popper-1b61df21.js');
|
|
9
9
|
|
|
10
10
|
const tabsCss = ":host{--wcs-tabs-indicator-height:calc(var(--wcs-semantic-size-base) / 2);--wcs-tabs-indicator-background-color:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-tabs-indicator-border-radius:var(--wcs-semantic-border-radius-full);--wcs-tabs-color-default:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-tabs-color-hover:var(--wcs-semantic-color-foreground-action-secondary-hover);--wcs-tabs-color-press:var(--wcs-semantic-color-foreground-action-secondary-press);--wcs-tabs-color-selected:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-tabs-background-color-focus:var(--wcs-semantic-color-background-action-secondary-focus);--wcs-tabs-background-color-hover:var(--wcs-semantic-color-background-action-secondary-hover);--wcs-tabs-background-color-press:var(--wcs-semantic-color-background-action-secondary-press);--wcs-tabs-border-radius:var(--wcs-semantic-border-radius-base);--wcs-tabs-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-tabs-font-weight-default:var(--wcs-semantic-font-weight-roman);--wcs-tabs-font-weight-selected:var(--wcs-semantic-font-weight-roman);--wcs-tabs-padding-top:var(--wcs-semantic-spacing-base);--wcs-tabs-padding-right:var(--wcs-semantic-spacing-large);--wcs-tabs-padding-bottom:calc(var(--wcs-semantic-spacing-base) + var(--wcs-tabs-indicator-height));--wcs-tabs-padding-left:var(--wcs-semantic-spacing-large);--wcs-tabs-gutter-border-width:var(--wcs-semantic-border-width-default);--wcs-tabs-gutter-background-color:var(--wcs-semantic-color-border-secondary);--wcs-tabs-headers-border-bottom:var(--wcs-tabs-gutter-border-width) solid var(--wcs-tabs-gutter-background-color);--wcs-tabs-mobile-breakpoint:var(--wcs-phone-breakpoint-max-width, 575px);--wcs-tabs-mobile-overlay-border-width:var(--wcs-semantic-border-width-default);--wcs-tabs-mobile-overlay-border-color:var(--wcs-semantic-color-border-secondary);--wcs-tabs-mobile-overlay-background-color:var(--wcs-semantic-color-background-surface-primary);--wcs-tabs-mobile-overlay-padding:var(--wcs-semantic-spacing-base);--wcs-tabs-mobile-overlay-border-radius:var(--wcs-semantic-border-radius-base);--wcs-tabs-mobile-gap:var(--wcs-semantic-spacing-base);--wcs-tabs-mobile-padding:0 var(--wcs-semantic-spacing-base);--wcs-tabs-mobile-height:var(--wcs-semantic-size-m);--wcs-tabs-mobile-font-weight-default:var(--wcs-semantic-font-weight-medium);--wcs-tabs-mobile-font-weight-active:var(--wcs-semantic-font-weight-black);--wcs-tabs-mobile-font-size:var(--wcs-semantic-font-size-base);--wcs-tabs-mobile-color:var(--wcs-semantic-color-text-primary);--wcs-tabs-mobile-background-color-default:var(--wcs-semantic-color-background-action-secondary-default);--wcs-tabs-mobile-background-color-focus:var(--wcs-semantic-color-background-action-secondary-focus);--wcs-tabs-mobile-background-color-hover:var(--wcs-semantic-color-background-action-secondary-hover);--wcs-tabs-mobile-background-color-press:var(--wcs-semantic-color-background-action-secondary-press);--wcs-tabs-mobile-border-radius:var(--wcs-semantic-border-radius-base);--wcs-tabs-transition-duration:var(--wcs-semantic-motion-duration-feedback-base);display:block}:host([align=start]) .wcs-tabs-headers{justify-content:start}:host([align=end]) .wcs-tabs-headers{justify-content:end}:host([align=center]) .wcs-tabs-headers{justify-content:center}.wcs-tabs-headers{overflow-x:auto;display:flex;flex-direction:row;position:relative}:host([gutter]) .wcs-tabs-headers{border-bottom:var(--wcs-tabs-headers-border-bottom)}.wcs-tab-header{position:relative;padding:var(--wcs-tabs-padding-top) var(--wcs-tabs-padding-right) var(--wcs-tabs-padding-bottom) var(--wcs-tabs-padding-left);border-radius:var(--wcs-tabs-border-radius) var(--wcs-tabs-border-radius) 0 0;display:flex;flex-shrink:0;align-items:center;justify-content:center;cursor:pointer;outline:none;transition:all var(--wcs-tabs-transition-duration) ease-out}.wcs-tab-header span{text-align:center;color:var(--wcs-tabs-color-default);font-size:1rem;font-weight:var(--wcs-tabs-font-weight-default)}.wcs-tab-header:hover{background-color:var(--wcs-tabs-background-color-hover)}.wcs-tab-header:hover span{color:var(--wcs-tabs-color-hover)}.wcs-tab-header:focus-visible>span{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-tabs-border-color-focus);outline-offset:var(--wcs-semantic-spacing-small);border-radius:0.1rem}.wcs-tab-header:active{background-color:var(--wcs-tabs-background-color-press)}.wcs-tab-header:active span{color:var(--wcs-tabs-color-press)}.active span{font-weight:var(--wcs-tabs-font-weight-selected);color:var(--wcs-tabs-color-selected)}.active::after{position:absolute;bottom:0;left:0;width:100%;content:\"\";height:var(--wcs-tabs-indicator-height);background-color:var(--wcs-tabs-indicator-background-color);border-radius:var(--wcs-tabs-indicator-border-radius)}button{background-color:inherit}#mobile-button{border:0;font-family:var(--wcs-font-sans-serif), sans-serif;text-align:center;color:var(--wcs-tabs-color-default);font-size:1rem;font-weight:var(--wcs-tabs-font-weight-default);padding-right:calc(0.75 * var(--wcs-tabs-padding-right));}#mobile-button span{display:flex;align-items:center}#mobile-button .arrow{fill:var(--wcs-tabs-color-default)}#mobile-button:hover .arrow{fill:var(--wcs-tabs-color-hover)}#mobile-button:active .arrow{fill:var(--wcs-tabs-color-press)}.popover{display:none;z-index:9999;overflow:hidden;border:var(--wcs-tabs-mobile-overlay-border-width) solid var(--wcs-tabs-mobile-overlay-border-color);border-radius:var(--wcs-tabs-mobile-overlay-border-radius);padding:var(--wcs-tabs-mobile-overlay-padding);background-color:var(--wcs-tabs-mobile-overlay-background-color)}.popover [role=tab]{display:flex;flex-direction:row;align-items:center;cursor:pointer;user-select:none;gap:var(--wcs-tabs-mobile-gap);padding:var(--wcs-tabs-mobile-padding);height:var(--wcs-tabs-mobile-height);font-weight:var(--wcs-tabs-mobile-font-weight-default);font-size:var(--wcs-tabs-mobile-font-size);color:var(--wcs-tabs-mobile-color);background-color:var(--wcs-tabs-mobile-background-color);border-radius:var(--wcs-tabs-mobile-border-radius);transition-duration:var(--wcs-tabs-transition-duration);transition-property:background-color, color;transition-timing-function:ease;overflow:hidden;white-space:nowrap}.popover [role=tab]:focus{background-color:var(--wcs-tabs-mobile-background-color-focus)}.popover [role=tab]:focus-visible{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-semantic-color-border-focus-base);outline-offset:0;border-radius:var(--wcs-tabs-mobile-border-radius)}.popover [role=tab]:hover{background-color:var(--wcs-tabs-mobile-background-color-hover)}.popover [role=tab]:active{background-color:var(--wcs-tabs-mobile-background-color-press)}.popover .mobile-active{font-weight:var(--wcs-tabs-mobile-font-weight-active)}.show{display:block}";
|
|
11
11
|
const WcsTabsStyle0 = tabsCss;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-6f0140d8.js');
|
|
6
|
-
const popper = require('./popper-
|
|
6
|
+
const popper = require('./popper-1b61df21.js');
|
|
7
7
|
const helpers = require('./helpers-2f1a8ddc.js');
|
|
8
8
|
const mutableAriaAttribute = require('./mutable-aria-attribute-342a2304.js');
|
|
9
9
|
|
package/dist/collection/components/accordion/{accordion.e2e.js → accordion.e2e.playwright.js}
RENAMED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { setWcsContent } from "../../utils/playwright/test";
|
|
2
|
+
import { test } from "@stencil/playwright";
|
|
3
|
+
import { expect } from "@playwright/test";
|
|
4
|
+
test.describe('accordion', () => {
|
|
5
|
+
test('should open and close accordion panels', async ({ page }) => {
|
|
5
6
|
// Given
|
|
6
|
-
const page = await newE2EPage();
|
|
7
7
|
await setWcsContent(page, `
|
|
8
8
|
<wcs-accordion>
|
|
9
9
|
<wcs-accordion-panel>
|
|
@@ -16,17 +16,16 @@ describe('accordion', () => {
|
|
|
16
16
|
</wcs-accordion-panel>
|
|
17
17
|
</wcs-accordion>
|
|
18
18
|
`);
|
|
19
|
-
const panels =
|
|
19
|
+
const panels = page.locator('wcs-accordion-panel');
|
|
20
20
|
// When
|
|
21
|
-
await panels
|
|
21
|
+
await panels.nth(0).click();
|
|
22
22
|
await page.waitForChanges();
|
|
23
23
|
// Then
|
|
24
|
-
expect(
|
|
25
|
-
expect(
|
|
24
|
+
await expect(panels.nth(0)).toHaveJSProperty('open', true);
|
|
25
|
+
await expect(panels.nth(1)).toHaveJSProperty('open', false);
|
|
26
26
|
});
|
|
27
|
-
|
|
27
|
+
test('should close other panels when opening a new one at the same level', async ({ page }) => {
|
|
28
28
|
// Given
|
|
29
|
-
const page = await newE2EPage();
|
|
30
29
|
await setWcsContent(page, `
|
|
31
30
|
<wcs-accordion>
|
|
32
31
|
<wcs-accordion-panel>
|
|
@@ -39,23 +38,22 @@ describe('accordion', () => {
|
|
|
39
38
|
</wcs-accordion-panel>
|
|
40
39
|
</wcs-accordion>
|
|
41
40
|
`);
|
|
42
|
-
const panels =
|
|
41
|
+
const panels = page.locator('wcs-accordion-panel');
|
|
43
42
|
// When - Open first panel
|
|
44
|
-
await panels
|
|
43
|
+
await panels.nth(0).click();
|
|
45
44
|
await page.waitForChanges();
|
|
46
45
|
// Then
|
|
47
|
-
expect(
|
|
48
|
-
expect(
|
|
46
|
+
await expect(panels.nth(0)).toHaveJSProperty('open', true);
|
|
47
|
+
await expect(panels.nth(1)).toHaveJSProperty('open', false);
|
|
49
48
|
// When - Open second panel
|
|
50
|
-
await panels
|
|
49
|
+
await panels.nth(1).click();
|
|
51
50
|
await page.waitForChanges();
|
|
52
51
|
// Then - First panel should be closed
|
|
53
|
-
expect(
|
|
54
|
-
expect(
|
|
52
|
+
await expect(panels.nth(0)).toHaveJSProperty('open', false);
|
|
53
|
+
await expect(panels.nth(1)).toHaveJSProperty('open', true);
|
|
55
54
|
});
|
|
56
|
-
|
|
55
|
+
test('should not close parent accordion when opening nested accordion', async ({ page }) => {
|
|
57
56
|
// Given
|
|
58
|
-
const page = await newE2EPage();
|
|
59
57
|
await setWcsContent(page, `
|
|
60
58
|
<wcs-accordion>
|
|
61
59
|
<wcs-accordion-panel>
|
|
@@ -80,23 +78,22 @@ describe('accordion', () => {
|
|
|
80
78
|
</wcs-accordion-panel>
|
|
81
79
|
</wcs-accordion>
|
|
82
80
|
`);
|
|
83
|
-
const parentPanels =
|
|
81
|
+
const parentPanels = page.locator('wcs-accordion > wcs-accordion-panel');
|
|
84
82
|
// When - Open parent panel first
|
|
85
|
-
await parentPanels
|
|
83
|
+
await parentPanels.nth(0).click();
|
|
86
84
|
await page.waitForChanges();
|
|
87
85
|
// Then
|
|
88
|
-
expect(
|
|
86
|
+
await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);
|
|
89
87
|
// When - Open nested accordion panel
|
|
90
|
-
const nestedPanels =
|
|
91
|
-
await nestedPanels
|
|
88
|
+
const nestedPanels = page.locator('wcs-accordion wcs-accordion wcs-accordion-panel');
|
|
89
|
+
await nestedPanels.nth(0).click();
|
|
92
90
|
await page.waitForChanges();
|
|
93
91
|
// Then - Parent should remain open, nested panel should be open
|
|
94
|
-
expect(
|
|
95
|
-
expect(
|
|
92
|
+
await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);
|
|
93
|
+
await expect(nestedPanels.nth(0)).toHaveJSProperty('open', true);
|
|
96
94
|
});
|
|
97
|
-
|
|
95
|
+
test('should not close nested accordions when opening another parent panel', async ({ page }) => {
|
|
98
96
|
// Given
|
|
99
|
-
const page = await newE2EPage();
|
|
100
97
|
await setWcsContent(page, `
|
|
101
98
|
<wcs-accordion id="parent-accordion">
|
|
102
99
|
<wcs-accordion-panel>
|
|
@@ -123,40 +120,39 @@ describe('accordion', () => {
|
|
|
123
120
|
</wcs-accordion-panel>
|
|
124
121
|
</wcs-accordion>
|
|
125
122
|
`);
|
|
126
|
-
const parentPanels =
|
|
123
|
+
const parentPanels = page.locator('#parent-accordion > wcs-accordion-panel');
|
|
127
124
|
// When - Open first parent and its nested panel
|
|
128
|
-
await parentPanels
|
|
125
|
+
await parentPanels.nth(0).click();
|
|
129
126
|
await page.waitForChanges();
|
|
130
|
-
const firstNestedPanel =
|
|
127
|
+
const firstNestedPanel = page.locator('wcs-accordion > wcs-accordion-panel:first-child wcs-accordion-panel');
|
|
131
128
|
await firstNestedPanel.click();
|
|
132
129
|
await page.waitForChanges();
|
|
133
130
|
// Then
|
|
134
|
-
expect(
|
|
135
|
-
expect(
|
|
131
|
+
await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);
|
|
132
|
+
await expect(firstNestedPanel).toHaveJSProperty('open', true);
|
|
136
133
|
// When - Open second parent
|
|
137
|
-
await parentPanels
|
|
134
|
+
await parentPanels.nth(1).click();
|
|
138
135
|
await page.waitForChanges();
|
|
139
|
-
const secondNestedPanel =
|
|
136
|
+
const secondNestedPanel = page.locator('wcs-accordion > wcs-accordion-panel:nth-child(2) wcs-accordion-panel');
|
|
140
137
|
// Then - First parent should close but nested panel state should be preserved
|
|
141
|
-
expect(
|
|
142
|
-
expect(
|
|
143
|
-
expect(
|
|
144
|
-
expect(
|
|
138
|
+
await expect(parentPanels.nth(0)).toHaveJSProperty('open', false);
|
|
139
|
+
await expect(parentPanels.nth(1)).toHaveJSProperty('open', true);
|
|
140
|
+
await expect(firstNestedPanel).toHaveJSProperty('open', true); // Nested panel keeps its state
|
|
141
|
+
await expect(secondNestedPanel).toHaveJSProperty('open', false);
|
|
145
142
|
});
|
|
146
|
-
|
|
143
|
+
test('should handle deeply nested accordions independently', async ({ page, }) => {
|
|
147
144
|
// Given
|
|
148
|
-
const page = await newE2EPage();
|
|
149
145
|
await setWcsContent(page, `
|
|
150
|
-
<wcs-accordion>
|
|
151
|
-
<wcs-accordion-panel>
|
|
146
|
+
<wcs-accordion id="level1-accordion">
|
|
147
|
+
<wcs-accordion-panel id="level1-panel">
|
|
152
148
|
<wcs-accordion-header>Level 1</wcs-accordion-header>
|
|
153
149
|
<wcs-accordion-content>
|
|
154
|
-
<wcs-accordion>
|
|
155
|
-
<wcs-accordion-panel>
|
|
150
|
+
<wcs-accordion id="level2-accordion">
|
|
151
|
+
<wcs-accordion-panel id="level2-panel">
|
|
156
152
|
<wcs-accordion-header>Level 2</wcs-accordion-header>
|
|
157
153
|
<wcs-accordion-content>
|
|
158
|
-
<wcs-accordion>
|
|
159
|
-
<wcs-accordion-panel>
|
|
154
|
+
<wcs-accordion id="level3-accordion">
|
|
155
|
+
<wcs-accordion-panel id="level3-panel">
|
|
160
156
|
<wcs-accordion-header>Level 3</wcs-accordion-header>
|
|
161
157
|
<wcs-accordion-content>Deep content</wcs-accordion-content>
|
|
162
158
|
</wcs-accordion-panel>
|
|
@@ -169,19 +165,19 @@ describe('accordion', () => {
|
|
|
169
165
|
</wcs-accordion>
|
|
170
166
|
`);
|
|
171
167
|
// When - Open all levels progressively
|
|
172
|
-
const level1Panel =
|
|
168
|
+
const level1Panel = page.locator('#level1-panel');
|
|
173
169
|
await level1Panel.click();
|
|
174
170
|
await page.waitForChanges();
|
|
175
|
-
const level2Panel =
|
|
171
|
+
const level2Panel = page.locator('#level2-panel');
|
|
176
172
|
await level2Panel.click();
|
|
177
173
|
await page.waitForChanges();
|
|
178
|
-
const level3Panel =
|
|
174
|
+
const level3Panel = page.locator('#level3-panel');
|
|
179
175
|
await level3Panel.click();
|
|
180
176
|
await page.waitForChanges();
|
|
181
177
|
// Then - All levels should be open
|
|
182
|
-
expect(
|
|
183
|
-
expect(
|
|
184
|
-
expect(
|
|
178
|
+
await expect(level1Panel).toHaveJSProperty('open', true);
|
|
179
|
+
await expect(level2Panel).toHaveJSProperty('open', true);
|
|
180
|
+
await expect(level3Panel).toHaveJSProperty('open', true);
|
|
185
181
|
});
|
|
186
182
|
});
|
|
187
|
-
//# sourceMappingURL=accordion.e2e.js.map
|
|
183
|
+
//# sourceMappingURL=accordion.e2e.playwright.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\nimport { expect } from \"@playwright/test\";\n\ntest.describe('accordion', () => {\n test('should open and close accordion panels', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const panels = page.locator('wcs-accordion-panel');\n\n // When\n await panels.nth(0).click();\n await page.waitForChanges();\n\n // Then\n await expect(panels.nth(0)).toHaveJSProperty('open', true);\n await expect(panels.nth(1)).toHaveJSProperty('open', false);\n });\n\n test('should close other panels when opening a new one at the same level', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const panels = page.locator('wcs-accordion-panel');\n\n // When - Open first panel\n await panels.nth(0).click();\n await page.waitForChanges();\n\n // Then\n await expect(panels.nth(0)).toHaveJSProperty('open', true);\n await expect(panels.nth(1)).toHaveJSProperty('open', false);\n\n // When - Open second panel\n await panels.nth(1).click();\n await page.waitForChanges();\n\n // Then - First panel should be closed\n await expect(panels.nth(0)).toHaveJSProperty('open', false);\n await expect(panels.nth(1)).toHaveJSProperty('open', true);\n });\n\n test('should not close parent accordion when opening nested accordion', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 1</wcs-accordion-header>\n <wcs-accordion-content>\n <p>Parent content</p>\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Child content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Child content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Parent content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const parentPanels = page.locator('wcs-accordion > wcs-accordion-panel');\n\n // When - Open parent panel first\n await parentPanels.nth(0).click();\n await page.waitForChanges();\n\n // Then\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);\n\n // When - Open nested accordion panel\n const nestedPanels = page.locator('wcs-accordion wcs-accordion wcs-accordion-panel');\n await nestedPanels.nth(0).click();\n await page.waitForChanges();\n\n // Then - Parent should remain open, nested panel should be open\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);\n await expect(nestedPanels.nth(0)).toHaveJSProperty('open', true);\n });\n\n test('should not close nested accordions when opening another parent panel', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion id=\"parent-accordion\">\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 1</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Child content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 2</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Child content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const parentPanels = page.locator('#parent-accordion > wcs-accordion-panel');\n\n // When - Open first parent and its nested panel\n await parentPanels.nth(0).click();\n await page.waitForChanges();\n\n const firstNestedPanel = page.locator('wcs-accordion > wcs-accordion-panel:first-child wcs-accordion-panel');\n await firstNestedPanel.click();\n await page.waitForChanges();\n\n // Then\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);\n await expect(firstNestedPanel).toHaveJSProperty('open', true);\n\n // When - Open second parent\n await parentPanels.nth(1).click();\n await page.waitForChanges();\n\n const secondNestedPanel = page.locator('wcs-accordion > wcs-accordion-panel:nth-child(2) wcs-accordion-panel');\n\n // Then - First parent should close but nested panel state should be preserved\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', false);\n await expect(parentPanels.nth(1)).toHaveJSProperty('open', true);\n await expect(firstNestedPanel).toHaveJSProperty('open', true); // Nested panel keeps its state\n await expect(secondNestedPanel).toHaveJSProperty('open', false);\n });\n\n test('should handle deeply nested accordions independently', async ({ page, }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion id=\"level1-accordion\">\n <wcs-accordion-panel id=\"level1-panel\">\n <wcs-accordion-header>Level 1</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion id=\"level2-accordion\">\n <wcs-accordion-panel id=\"level2-panel\">\n <wcs-accordion-header>Level 2</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion id=\"level3-accordion\">\n <wcs-accordion-panel id=\"level3-panel\">\n <wcs-accordion-header>Level 3</wcs-accordion-header>\n <wcs-accordion-content>Deep content</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n // When - Open all levels progressively\n const level1Panel = page.locator('#level1-panel');\n await level1Panel.click();\n await page.waitForChanges();\n\n const level2Panel = page.locator('#level2-panel');\n await level2Panel.click();\n await page.waitForChanges();\n\n const level3Panel = page.locator('#level3-panel');\n await level3Panel.click();\n await page.waitForChanges();\n\n // Then - All levels should be open\n await expect(level1Panel).toHaveJSProperty('open', true);\n await expect(level2Panel).toHaveJSProperty('open', true);\n await expect(level3Panel).toHaveJSProperty('open', true);\n });\n});\n"]}
|
|
@@ -168,7 +168,7 @@ export class AccordionPanel {
|
|
|
168
168
|
"signature": "(attr: AriaAttributeName, value: string | null | undefined) => Promise<void>",
|
|
169
169
|
"parameters": [{
|
|
170
170
|
"name": "attr",
|
|
171
|
-
"type": "
|
|
171
|
+
"type": "`aria-${string}` | \"role\"",
|
|
172
172
|
"docs": ""
|
|
173
173
|
}, {
|
|
174
174
|
"name": "value",
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { setWcsContent } from "../../utils/playwright/test";
|
|
2
|
+
import { test } from "@stencil/playwright";
|
|
3
|
+
import { expect } from "@playwright/test";
|
|
4
|
+
const WAITING_DELAY_BEFORE_ASSERTIONS = 4000;
|
|
5
|
+
test.describe('alert', () => {
|
|
6
|
+
test('should display title and subtitle content', async ({ page }) => {
|
|
7
|
+
// Given
|
|
8
|
+
await setWcsContent(page, `
|
|
9
|
+
<wcs-alert>
|
|
10
|
+
<span slot="title">Test Title</span>
|
|
11
|
+
<span slot="subtitle">Test Subtitle</span>
|
|
12
|
+
</wcs-alert>
|
|
13
|
+
`);
|
|
14
|
+
// Then
|
|
15
|
+
const title = page.locator('wcs-alert > [slot="title"]');
|
|
16
|
+
const subtitle = page.locator('wcs-alert > [slot="subtitle"]');
|
|
17
|
+
await expect(title).toHaveText('Test Title');
|
|
18
|
+
await expect(subtitle).toHaveText('Test Subtitle');
|
|
19
|
+
});
|
|
20
|
+
test('should emit wcsAlertDismiss event when close button is clicked', async ({ page }) => {
|
|
21
|
+
// Given
|
|
22
|
+
await setWcsContent(page, `
|
|
23
|
+
<wcs-alert>
|
|
24
|
+
<span slot="title">Test Title</span>
|
|
25
|
+
<span slot="subtitle">Test Subtitle</span>
|
|
26
|
+
</wcs-alert>
|
|
27
|
+
`);
|
|
28
|
+
const alertDismissSpy = await page.spyOnEvent('wcsAlertDismiss');
|
|
29
|
+
const alert = page.locator('wcs-alert');
|
|
30
|
+
const closeButton = alert.locator('.close-button');
|
|
31
|
+
// When
|
|
32
|
+
await closeButton.click();
|
|
33
|
+
await page.waitForChanges();
|
|
34
|
+
// Then
|
|
35
|
+
expect(alertDismissSpy).toHaveReceivedEventTimes(1);
|
|
36
|
+
await expect(alert).toHaveJSProperty('show', false);
|
|
37
|
+
});
|
|
38
|
+
test('should auto-dismiss after timeout', async ({ page }) => {
|
|
39
|
+
// Given
|
|
40
|
+
const timeout = 500;
|
|
41
|
+
await setWcsContent(page, `
|
|
42
|
+
<wcs-alert timeout="${timeout}">
|
|
43
|
+
<span slot="title">Test Title</span>
|
|
44
|
+
<span slot="subtitle">Test Subtitle</span>
|
|
45
|
+
</wcs-alert>
|
|
46
|
+
`);
|
|
47
|
+
const alertDismissSpy = await page.spyOnEvent('wcsAlertDismiss');
|
|
48
|
+
const alert = page.locator('wcs-alert');
|
|
49
|
+
// Wait longer than the specified timeout to account for processing time
|
|
50
|
+
await page.waitForTimeout(timeout + WAITING_DELAY_BEFORE_ASSERTIONS);
|
|
51
|
+
await page.waitForChanges();
|
|
52
|
+
// Then
|
|
53
|
+
expect(alertDismissSpy).toHaveReceivedEventTimes(1);
|
|
54
|
+
await expect(alert).toHaveJSProperty('show', false);
|
|
55
|
+
});
|
|
56
|
+
test('should not auto-dismiss if timeout is 0', async ({ page }) => {
|
|
57
|
+
// Given
|
|
58
|
+
await setWcsContent(page, `
|
|
59
|
+
<wcs-alert timeout="0">
|
|
60
|
+
<span slot="title">Test Title</span>
|
|
61
|
+
<span slot="subtitle">Test Subtitle</span>
|
|
62
|
+
</wcs-alert>
|
|
63
|
+
`);
|
|
64
|
+
const alertDismissSpy = await page.spyOnEvent('wcsAlertDismiss');
|
|
65
|
+
const alert = page.locator('wcs-alert');
|
|
66
|
+
// Wait for some time to ensure the alert doesn't auto-dismiss
|
|
67
|
+
await page.waitForTimeout(WAITING_DELAY_BEFORE_ASSERTIONS);
|
|
68
|
+
await page.waitForChanges();
|
|
69
|
+
// Then
|
|
70
|
+
expect(alertDismissSpy).toHaveReceivedEventTimes(0);
|
|
71
|
+
await expect(alert).toHaveJSProperty('show', true);
|
|
72
|
+
});
|
|
73
|
+
test('should display progress bar when showProgressBar is true', async ({ page }) => {
|
|
74
|
+
// Given
|
|
75
|
+
await setWcsContent(page, `
|
|
76
|
+
<wcs-alert show-progress-bar>
|
|
77
|
+
<span slot="title">Test Title</span>
|
|
78
|
+
<span slot="subtitle">Test Subtitle</span>
|
|
79
|
+
</wcs-alert>
|
|
80
|
+
`);
|
|
81
|
+
// Then
|
|
82
|
+
const progressBar = page.locator('wcs-alert').locator('.progress-bar:not(.hidden)');
|
|
83
|
+
await expect(progressBar).toBeVisible();
|
|
84
|
+
});
|
|
85
|
+
test('should not display progress bar when showProgressBar is false', async ({ page }) => {
|
|
86
|
+
// Given
|
|
87
|
+
await setWcsContent(page, `
|
|
88
|
+
<wcs-alert>
|
|
89
|
+
<span slot="title">Test Title</span>
|
|
90
|
+
<span slot="subtitle">Test Subtitle</span>
|
|
91
|
+
</wcs-alert>
|
|
92
|
+
`);
|
|
93
|
+
// Then
|
|
94
|
+
const progressBar = page.locator('wcs-alert').locator('.progress-bar.hidden');
|
|
95
|
+
await expect(progressBar).toHaveCount(1);
|
|
96
|
+
});
|
|
97
|
+
test('should not auto-dismiss when mouse is hovering', async ({ page }) => {
|
|
98
|
+
// Given
|
|
99
|
+
const timeout = 500;
|
|
100
|
+
await setWcsContent(page, `
|
|
101
|
+
<wcs-alert timeout="${timeout}">
|
|
102
|
+
<span slot="title">Test Title</span>
|
|
103
|
+
<span slot="subtitle">Test Subtitle</span>
|
|
104
|
+
</wcs-alert>
|
|
105
|
+
`);
|
|
106
|
+
const alertDismissHover = await page.spyOnEvent('wcsAlertDismiss');
|
|
107
|
+
const alert = page.locator('wcs-alert');
|
|
108
|
+
await expect(alert).toHaveJSProperty('show', true);
|
|
109
|
+
// Simulate mouse hover
|
|
110
|
+
await alert.dispatchEvent('mouseover');
|
|
111
|
+
// Wait longer than the component timeout
|
|
112
|
+
await page.waitForTimeout(timeout + 500);
|
|
113
|
+
await page.waitForChanges();
|
|
114
|
+
// Then - The alert should still be visible while mouse is hovering
|
|
115
|
+
expect(alertDismissHover).toHaveReceivedEventTimes(0);
|
|
116
|
+
await expect(alert).toHaveJSProperty('show', true);
|
|
117
|
+
// When - Mouse leaves using dispatchEvent
|
|
118
|
+
await alert.dispatchEvent('mouseout');
|
|
119
|
+
await page.waitForChanges();
|
|
120
|
+
// Then - The alert should dismiss
|
|
121
|
+
expect(alertDismissHover).toHaveReceivedEventTimes(1);
|
|
122
|
+
await expect(alert).toHaveJSProperty('show', false);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
//# sourceMappingURL=alert.e2e.playwright.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/alert/alert.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\nimport { expect } from \"@playwright/test\";\nconst WAITING_DELAY_BEFORE_ASSERTIONS = 4_000;\n\ntest.describe('alert', () => {\n test('should display title and subtitle content', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert>\n <span slot=\"title\">Test Title</span>\n <span slot=\"subtitle\">Test Subtitle</span>\n </wcs-alert>\n `);\n\n // Then\n const title = page.locator('wcs-alert > [slot=\"title\"]');\n const subtitle = page.locator('wcs-alert > [slot=\"subtitle\"]');\n await expect(title).toHaveText('Test Title');\n await expect(subtitle).toHaveText('Test Subtitle');\n });\n\n test('should emit wcsAlertDismiss event when close button is clicked', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert>\n <span slot=\"title\">Test Title</span>\n <span slot=\"subtitle\">Test Subtitle</span>\n </wcs-alert>\n `);\n\n const alertDismissSpy = await page.spyOnEvent('wcsAlertDismiss');\n\n const alert = page.locator('wcs-alert');\n const closeButton = alert.locator('.close-button');\n\n // When\n await closeButton.click();\n await page.waitForChanges();\n\n // Then\n expect(alertDismissSpy).toHaveReceivedEventTimes(1);\n await expect(alert).toHaveJSProperty('show', false);\n });\n\n test('should auto-dismiss after timeout', async ({ page }: { page: E2EPage }) => {\n // Given\n const timeout = 500;\n await setWcsContent(page, `\n <wcs-alert timeout=\"${timeout}\">\n <span slot=\"title\">Test Title</span>\n <span slot=\"subtitle\">Test Subtitle</span>\n </wcs-alert>\n `);\n\n const alertDismissSpy = await page.spyOnEvent('wcsAlertDismiss');\n\n const alert = page.locator('wcs-alert');\n\n // Wait longer than the specified timeout to account for processing time\n await page.waitForTimeout(timeout + WAITING_DELAY_BEFORE_ASSERTIONS);\n await page.waitForChanges();\n\n // Then\n expect(alertDismissSpy).toHaveReceivedEventTimes(1);\n await expect(alert).toHaveJSProperty('show', false);\n });\n\n test('should not auto-dismiss if timeout is 0', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert timeout=\"0\">\n <span slot=\"title\">Test Title</span>\n <span slot=\"subtitle\">Test Subtitle</span>\n </wcs-alert>\n `);\n\n const alertDismissSpy = await page.spyOnEvent('wcsAlertDismiss');\n\n const alert = page.locator('wcs-alert');\n\n // Wait for some time to ensure the alert doesn't auto-dismiss\n await page.waitForTimeout(WAITING_DELAY_BEFORE_ASSERTIONS);\n await page.waitForChanges();\n\n // Then\n expect(alertDismissSpy).toHaveReceivedEventTimes(0);\n await expect(alert).toHaveJSProperty('show', true);\n });\n\n test('should display progress bar when showProgressBar is true', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert show-progress-bar>\n <span slot=\"title\">Test Title</span>\n <span slot=\"subtitle\">Test Subtitle</span>\n </wcs-alert>\n `);\n\n // Then\n const progressBar = page.locator('wcs-alert').locator('.progress-bar:not(.hidden)');\n await expect(progressBar).toBeVisible();\n });\n\n test('should not display progress bar when showProgressBar is false', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert>\n <span slot=\"title\">Test Title</span>\n <span slot=\"subtitle\">Test Subtitle</span>\n </wcs-alert>\n `);\n\n // Then\n const progressBar = page.locator('wcs-alert').locator('.progress-bar.hidden');\n await expect(progressBar).toHaveCount(1);\n });\n\n test('should not auto-dismiss when mouse is hovering', async ({ page }: { page: E2EPage }) => {\n // Given\n const timeout = 500;\n await setWcsContent(page, `\n <wcs-alert timeout=\"${timeout}\">\n <span slot=\"title\">Test Title</span>\n <span slot=\"subtitle\">Test Subtitle</span>\n </wcs-alert>\n `);\n\n const alertDismissHover = await page.spyOnEvent('wcsAlertDismiss');\n\n const alert = page.locator('wcs-alert');\n\n await expect(alert).toHaveJSProperty('show', true);\n\n // Simulate mouse hover\n await alert.dispatchEvent('mouseover');\n\n // Wait longer than the component timeout\n await page.waitForTimeout(timeout + 500);\n await page.waitForChanges();\n\n // Then - The alert should still be visible while mouse is hovering\n expect(alertDismissHover).toHaveReceivedEventTimes(0);\n await expect(alert).toHaveJSProperty('show', true);\n\n // When - Mouse leaves using dispatchEvent\n await alert.dispatchEvent('mouseout');\n await page.waitForChanges();\n\n // Then - The alert should dismiss\n expect(alertDismissHover).toHaveReceivedEventTimes(1);\n await expect(alert).toHaveJSProperty('show', false);\n });\n});\n"]}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { setWcsContent } from "../../utils/playwright/test";
|
|
2
|
+
import { test } from "@stencil/playwright";
|
|
3
|
+
import { expect } from "@playwright/test";
|
|
4
|
+
const WAITING_DELAY_BEFORE_ASSERTIONS = 1000;
|
|
5
|
+
test.describe('alert-drawer', () => {
|
|
6
|
+
test('should show an alert when using show() method', async ({ page }) => {
|
|
7
|
+
// Given
|
|
8
|
+
await setWcsContent(page, `
|
|
9
|
+
<wcs-alert-drawer position="bottom-right"></wcs-alert-drawer>
|
|
10
|
+
`);
|
|
11
|
+
const alertDrawer = page.locator('wcs-alert-drawer');
|
|
12
|
+
// When
|
|
13
|
+
await alertDrawer.evaluate((el) => el.show({
|
|
14
|
+
title: 'Test Title',
|
|
15
|
+
subtitle: 'Test Subtitle',
|
|
16
|
+
intent: 'success',
|
|
17
|
+
showProgressBar: false,
|
|
18
|
+
timeout: 0
|
|
19
|
+
}));
|
|
20
|
+
await page.waitForChanges();
|
|
21
|
+
// Then
|
|
22
|
+
const alert = alertDrawer.locator('wcs-alert');
|
|
23
|
+
await expect(alert).toHaveCount(1);
|
|
24
|
+
const title = alertDrawer.locator('wcs-alert > [slot="title"]');
|
|
25
|
+
const subtitle = alertDrawer.locator('wcs-alert > [slot="subtitle"]');
|
|
26
|
+
await expect(title).toHaveText('Test Title');
|
|
27
|
+
await expect(subtitle).toHaveText('Test Subtitle');
|
|
28
|
+
});
|
|
29
|
+
test('should close the alert after timeout', async ({ page }) => {
|
|
30
|
+
// Given
|
|
31
|
+
await setWcsContent(page, `
|
|
32
|
+
<wcs-alert-drawer></wcs-alert-drawer>
|
|
33
|
+
`);
|
|
34
|
+
const alertDrawer = page.locator('wcs-alert-drawer');
|
|
35
|
+
// When
|
|
36
|
+
await alertDrawer.evaluate((el) => el.show({
|
|
37
|
+
title: 'Test Title',
|
|
38
|
+
subtitle: 'Test Subtitle',
|
|
39
|
+
intent: 'success',
|
|
40
|
+
showProgressBar: false,
|
|
41
|
+
timeout: 100 // Short timeout for testing
|
|
42
|
+
}));
|
|
43
|
+
// Wait for the alert to be removed
|
|
44
|
+
await page.waitForTimeout(WAITING_DELAY_BEFORE_ASSERTIONS); // Wait a bit longer than the timeout
|
|
45
|
+
await page.waitForChanges();
|
|
46
|
+
// Then
|
|
47
|
+
const alert = alertDrawer.locator('wcs-alert');
|
|
48
|
+
await expect(alert).toHaveCount(0);
|
|
49
|
+
});
|
|
50
|
+
test('should show progress bar when showProgressBar is true', async ({ page }) => {
|
|
51
|
+
// Given
|
|
52
|
+
await setWcsContent(page, `
|
|
53
|
+
<wcs-alert-drawer></wcs-alert-drawer>
|
|
54
|
+
`);
|
|
55
|
+
const alertDrawer = page.locator('wcs-alert-drawer');
|
|
56
|
+
// When
|
|
57
|
+
await alertDrawer.evaluate((el) => el.show({
|
|
58
|
+
title: 'Test Title',
|
|
59
|
+
subtitle: 'Test Subtitle',
|
|
60
|
+
intent: 'success',
|
|
61
|
+
showProgressBar: true,
|
|
62
|
+
timeout: 5000
|
|
63
|
+
}));
|
|
64
|
+
await page.waitForChanges();
|
|
65
|
+
// Then
|
|
66
|
+
const progressBar = alertDrawer.locator('wcs-alert').locator('.progress-bar');
|
|
67
|
+
await expect(progressBar).toBeVisible();
|
|
68
|
+
});
|
|
69
|
+
test('should have correct ARIA attributes for accessibility', async ({ page }) => {
|
|
70
|
+
// Given
|
|
71
|
+
await setWcsContent(page, `
|
|
72
|
+
<wcs-alert-drawer></wcs-alert-drawer>
|
|
73
|
+
`);
|
|
74
|
+
const alertDrawer = page.locator('wcs-alert-drawer');
|
|
75
|
+
// Then
|
|
76
|
+
await expect(alertDrawer).toHaveAttribute('role', 'region');
|
|
77
|
+
await expect(alertDrawer).toHaveAttribute('aria-live', 'polite');
|
|
78
|
+
await expect(alertDrawer).toHaveAttribute('aria-atomic', 'true');
|
|
79
|
+
});
|
|
80
|
+
test('should handle multiple alerts', async ({ page }) => {
|
|
81
|
+
// Given
|
|
82
|
+
await setWcsContent(page, `
|
|
83
|
+
<wcs-alert-drawer></wcs-alert-drawer>
|
|
84
|
+
`);
|
|
85
|
+
const alertDrawer = page.locator('wcs-alert-drawer');
|
|
86
|
+
// When
|
|
87
|
+
await alertDrawer.evaluate((el) => el.show({
|
|
88
|
+
title: 'First Alert',
|
|
89
|
+
subtitle: 'First Subtitle',
|
|
90
|
+
intent: 'success',
|
|
91
|
+
showProgressBar: false,
|
|
92
|
+
timeout: 0
|
|
93
|
+
}));
|
|
94
|
+
await alertDrawer.evaluate((el) => el.show({
|
|
95
|
+
title: 'Second Alert',
|
|
96
|
+
subtitle: 'Second Subtitle',
|
|
97
|
+
intent: 'warning',
|
|
98
|
+
showProgressBar: false,
|
|
99
|
+
timeout: 0
|
|
100
|
+
}));
|
|
101
|
+
await page.waitForChanges();
|
|
102
|
+
// Then
|
|
103
|
+
const alerts = alertDrawer.locator('wcs-alert');
|
|
104
|
+
await expect(alerts).toHaveCount(2);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=alert-drawer.e2e.playwright.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-drawer.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/alert-drawer/alert-drawer.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\nimport { expect } from \"@playwright/test\";\nconst WAITING_DELAY_BEFORE_ASSERTIONS = 1_000;\n\ntest.describe('alert-drawer', () => {\n test('should show an alert when using show() method', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert-drawer position=\"bottom-right\"></wcs-alert-drawer>\n `);\n\n const alertDrawer = page.locator('wcs-alert-drawer');\n\n // When\n await alertDrawer.evaluate((el: any) => el.show({\n title: 'Test Title',\n subtitle: 'Test Subtitle',\n intent: 'success',\n showProgressBar: false,\n timeout: 0\n }));\n await page.waitForChanges();\n\n // Then\n const alert = alertDrawer.locator('wcs-alert');\n await expect(alert).toHaveCount(1);\n\n const title = alertDrawer.locator('wcs-alert > [slot=\"title\"]');\n const subtitle = alertDrawer.locator('wcs-alert > [slot=\"subtitle\"]');\n await expect(title).toHaveText('Test Title');\n await expect(subtitle).toHaveText('Test Subtitle');\n });\n\n test('should close the alert after timeout', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert-drawer></wcs-alert-drawer>\n `);\n\n const alertDrawer = page.locator('wcs-alert-drawer');\n\n // When\n await alertDrawer.evaluate((el: any) => el.show({\n title: 'Test Title',\n subtitle: 'Test Subtitle',\n intent: 'success',\n showProgressBar: false,\n timeout: 100 // Short timeout for testing\n }));\n\n // Wait for the alert to be removed\n await page.waitForTimeout(WAITING_DELAY_BEFORE_ASSERTIONS); // Wait a bit longer than the timeout\n await page.waitForChanges();\n\n // Then\n const alert = alertDrawer.locator('wcs-alert');\n await expect(alert).toHaveCount(0);\n });\n\n test('should show progress bar when showProgressBar is true', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert-drawer></wcs-alert-drawer>\n `);\n\n const alertDrawer = page.locator('wcs-alert-drawer');\n\n // When\n await alertDrawer.evaluate((el: any) => el.show({\n title: 'Test Title',\n subtitle: 'Test Subtitle',\n intent: 'success',\n showProgressBar: true,\n timeout: 5000\n }));\n await page.waitForChanges();\n\n // Then\n const progressBar = alertDrawer.locator('wcs-alert').locator('.progress-bar');\n await expect(progressBar).toBeVisible();\n });\n\n test('should have correct ARIA attributes for accessibility', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert-drawer></wcs-alert-drawer>\n `);\n\n const alertDrawer = page.locator('wcs-alert-drawer');\n\n // Then\n await expect(alertDrawer).toHaveAttribute('role', 'region');\n await expect(alertDrawer).toHaveAttribute('aria-live', 'polite');\n await expect(alertDrawer).toHaveAttribute('aria-atomic', 'true');\n });\n\n test('should handle multiple alerts', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-alert-drawer></wcs-alert-drawer>\n `);\n\n const alertDrawer = page.locator('wcs-alert-drawer');\n\n // When\n await alertDrawer.evaluate((el: any) => el.show({\n title: 'First Alert',\n subtitle: 'First Subtitle',\n intent: 'success',\n showProgressBar: false,\n timeout: 0\n }));\n await alertDrawer.evaluate((el: any) => el.show({\n title: 'Second Alert',\n subtitle: 'Second Subtitle',\n intent: 'warning',\n showProgressBar: false,\n timeout: 0\n }));\n await page.waitForChanges();\n\n // Then\n const alerts = alertDrawer.locator('wcs-alert');\n await expect(alerts).toHaveCount(2);\n });\n});\n"]}
|