dimsum-e2e-tests 3.60.0-next.62 → 3.60.0-next.64

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.
Files changed (27) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/ds-form-date-range-picker/DateRangePicker.applyAriaDisabled-invalid.visual.spec.js +30 -0
  3. package/ds-form-date-range-picker/DateRangePicker.applyAriaDisabled.visual.spec.js +30 -0
  4. package/ds-form-date-range-picker/DateRangePicker.readOnly-invalid.visual.spec.js +30 -0
  5. package/ds-form-date-range-picker/DateRangePicker.readOnly.visual.spec.js +26 -0
  6. package/ds-form-date-range-picker/DateRangePickerCO.js +10 -0
  7. package/ds-form-date-time-picker/DSControlledDateTimePickerCO.js +20 -1
  8. package/ds-form-date-time-picker/date-time-full/DateTimePicker.DateTimeFull.output-validation.func.spec.js +31 -0
  9. package/ds-form-date-time-picker/date-time-full/DateTimePicker.DateTimeFull.visual.spec.js +49 -0
  10. package/ds-form-date-time-picker/date-time-full/DateTimePicker.applyAriaDisabled.keyboard-nav.func.spec.js +1 -1
  11. package/ds-form-date-time-picker/date-time-full/DateTimePicker.invalid-selection.func.spec.js +3 -1
  12. package/ds-form-date-time-picker/date-time-full/DateTimePicker.keyboard-nav.func.spec.js +1 -1
  13. package/ds-form-date-time-picker/date-time-full/DateTimePicker.readOnly.keyboard-nav.func.spec.js +2 -2
  14. package/ds-form-date-time-picker/showcase/DateTimePicker.applyAriaDisabled-invalid-selection-showcase.func.spec.js +40 -0
  15. package/ds-form-date-time-picker/showcase/DateTimePicker.applyAriaDisabled-invalid-selection-showcase.visual.spec.js +53 -0
  16. package/ds-form-date-time-picker/showcase/DateTimePicker.invalid-selection-showcase.axe-core.func.spec.js +60 -0
  17. package/ds-form-date-time-picker/showcase/DateTimePicker.invalid-selection-showcase.keyboard-nav.func.spec.js +97 -0
  18. package/ds-form-date-time-picker/showcase/DateTimePicker.readOnly-invalid-selection-showcase.func.spec.js +40 -0
  19. package/ds-form-date-time-picker/showcase/DateTimePicker.readOnly-invalid-selection-showcase.visual.spec.js +53 -0
  20. package/ds-form-date-time-picker/time-full/TimeFull.axe-core.func.spec.js +15 -0
  21. package/ds-form-date-time-picker/time-full/TimeFull.meridiem-a11y.func.spec.js +35 -0
  22. package/ds-form-date-time-picker/time-full/TimeFull.meridiem-keyboard-nav.func.spec.js +41 -0
  23. package/ds-global-header/GlobalHeader.axe-core.func.spec.js +4 -2
  24. package/ds-menu-button/nexttabstop/DSMenuButton.nextTabstop.keyboardnav.func.spec.js +1 -1
  25. package/ds-modal-slide/apply-aria-disabled/ModalSlide.applyAriaDisabled.visual.spec.js +5 -0
  26. package/ds-tabs/DSTabs.visual.spec.js +2 -2
  27. package/package.json +151 -151
package/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 3.60.0-next.64 (2026-04-17)
7
+
8
+ ### Features
9
+
10
+ - ds-form-date-range-picker:: add visual E2E tests for readOnly and applyAriaDisabled states [PUI-16394](https://jira.elliemae.io/browse/PUI-16394) ([#7992](https://git.elliemae.io/platform-ui/dimsum/issues/7992)) ([8c47f6d](https://git.elliemae.io/platform-ui/dimsum/commit/8c47f6d27d63ba2aaed8527adc66bde3be113141))
11
+
12
+ ## [3.60.0-next.63](https://git.elliemae.io/platform-ui/dimsum/compare/v3.60.0-next.62...v3.60.0-next.63) (2026-04-17)
13
+
14
+ **Note:** Version bump only for package dimsum-e2e-tests
15
+
6
16
  ## 3.60.0-next.62 (2026-04-16)
7
17
 
8
18
  ### Bug Fixes
@@ -0,0 +1,30 @@
1
+ import DateRangePickerCO from './DateRangePickerCO';
2
+ import { mouseOver } from '../helpers';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ // Tests for the style changes introduced in PUI-18310 (applyAriaDisabled + invalid selection state styles)
6
+ describe('PUI-18343 - DSControlledDateRangePicker:: ApplyAriaDisabled + Invalid Selection - visual', () => {
7
+ before('loading page', async () => {
8
+ const errorOnGo = await DateRangePickerCO.applyAriaDisabledInvalidSelection.go();
9
+ if (errorOnGo) throw errorOnGo;
10
+ });
11
+ it('01: should display applyAriaDisabled+invalid picker at rest (closed, error styling)', async () => {
12
+ const calendarTrigger = await DateRangePickerCO.getPickerBtn();
13
+ await calendarTrigger.waitForDisplayed();
14
+ const snapshot = await browser.checkSnapshot(
15
+ DateRangePickerCO.snapshotPath('date-range-picker-applyAriaDisabled-invalid'),
16
+ );
17
+ await expect(snapshot).toEqual(0);
18
+ });
19
+ it('02: should display applyAriaDisabled+invalid picker with open calendar and range', async () => {
20
+ const calendarTrigger = await DateRangePickerCO.getPickerBtn();
21
+ await calendarTrigger.click();
22
+ const rangeStartDay = await DateRangePickerCO.getRangeStartDay();
23
+ await mouseOver(rangeStartDay);
24
+ const snapshot = await browser.checkSnapshot(
25
+ DateRangePickerCO.snapshotPath('date-range-picker-applyAriaDisabled-invalid-open'),
26
+ );
27
+ await expect(snapshot).toEqual(0);
28
+ });
29
+ });
30
+ }
@@ -0,0 +1,30 @@
1
+ import DateRangePickerCO from './DateRangePickerCO';
2
+ import { mouseOver } from '../helpers';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ // Tests for the style changes introduced in PUI-18310 (applyAriaDisabled state styles)
6
+ describe('PUI-18341 - DSControlledDateRangePicker:: ApplyAriaDisabled - visual', () => {
7
+ before('loading page', async () => {
8
+ const errorOnGo = await DateRangePickerCO.applyAriaDisabled.go();
9
+ if (errorOnGo) throw errorOnGo;
10
+ });
11
+ it('01: should display applyAriaDisabled date range picker at rest (closed, with range in inputs)', async () => {
12
+ const calendarTrigger = await DateRangePickerCO.getPickerBtn();
13
+ await calendarTrigger.waitForDisplayed();
14
+ const snapshot = await browser.checkSnapshot(
15
+ DateRangePickerCO.snapshotPath('date-range-picker-applyAriaDisabled'),
16
+ );
17
+ await expect(snapshot).toEqual(0);
18
+ });
19
+ it('02: should display applyAriaDisabled date range picker with open calendar and selected range', async () => {
20
+ const calendarTrigger = await DateRangePickerCO.getPickerBtn();
21
+ await calendarTrigger.click();
22
+ const inRangeDay = await DateRangePickerCO.getInRangeDayByIndex(0);
23
+ await mouseOver(inRangeDay);
24
+ const snapshot = await browser.checkSnapshot(
25
+ DateRangePickerCO.snapshotPath('date-range-picker-applyAriaDisabled-open'),
26
+ );
27
+ await expect(snapshot).toEqual(0);
28
+ });
29
+ });
30
+ }
@@ -0,0 +1,30 @@
1
+ import DateRangePickerCO from './DateRangePickerCO';
2
+ import { mouseOver } from '../helpers';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ // Tests for the style changes introduced in PUI-18310 (readOnly + invalid selection state styles)
6
+ describe('PUI-18342 - DSControlledDateRangePicker:: ReadOnly + Invalid Selection - visual', () => {
7
+ before('loading page', async () => {
8
+ const errorOnGo = await DateRangePickerCO.readOnlyInvalidSelection.go();
9
+ if (errorOnGo) throw errorOnGo;
10
+ });
11
+ it('01: should display readOnly+invalid date range picker at rest (closed, error styling on inputs)', async () => {
12
+ const calendarTrigger = await DateRangePickerCO.getPickerBtn();
13
+ await calendarTrigger.waitForDisplayed();
14
+ const snapshot = await browser.checkSnapshot(
15
+ DateRangePickerCO.snapshotPath('date-range-picker-readOnly-invalid'),
16
+ );
17
+ await expect(snapshot).toEqual(0);
18
+ });
19
+ it('02: should display readOnly+invalid date range picker with open calendar and selected range', async () => {
20
+ const calendarTrigger = await DateRangePickerCO.getPickerBtn();
21
+ await calendarTrigger.click();
22
+ const rangeStartDay = await DateRangePickerCO.getRangeStartDay();
23
+ await mouseOver(rangeStartDay);
24
+ const snapshot = await browser.checkSnapshot(
25
+ DateRangePickerCO.snapshotPath('date-range-picker-readOnly-invalid-open'),
26
+ );
27
+ await expect(snapshot).toEqual(0);
28
+ });
29
+ });
30
+ }
@@ -0,0 +1,26 @@
1
+ import DateRangePickerCO from './DateRangePickerCO';
2
+ import { mouseOver } from '../helpers';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ // Tests for the style changes introduced in PUI-18310 (readOnly state styles)
6
+ describe('PUI-18340 - DSControlledDateRangePicker:: ReadOnly - visual', () => {
7
+ before('loading page', async () => {
8
+ const errorOnGo = await DateRangePickerCO.readOnly.go();
9
+ if (errorOnGo) throw errorOnGo;
10
+ });
11
+ it('01: should display readOnly date range picker at rest (closed, with range in inputs)', async () => {
12
+ const calendarTrigger = await DateRangePickerCO.getPickerBtn();
13
+ await calendarTrigger.waitForDisplayed();
14
+ const snapshot = await browser.checkSnapshot(DateRangePickerCO.snapshotPath('date-range-picker-readOnly'));
15
+ await expect(snapshot).toEqual(0);
16
+ });
17
+ it('02: should display readOnly date range picker with open calendar and selected range', async () => {
18
+ const calendarTrigger = await DateRangePickerCO.getPickerBtn();
19
+ await calendarTrigger.click();
20
+ const inRangeDay = await DateRangePickerCO.getInRangeDayByIndex(0);
21
+ await mouseOver(inRangeDay);
22
+ const snapshot = await browser.checkSnapshot(DateRangePickerCO.snapshotPath('date-range-picker-readOnly-open'));
23
+ await expect(snapshot).toEqual(0);
24
+ });
25
+ });
26
+ }
@@ -20,6 +20,16 @@ export default class DateRangePickerCO extends PageObject {
20
20
 
21
21
  static applyAriaDisabled = new Urlbuilder(PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER, 'apply-aria-disabled-test');
22
22
 
23
+ static readOnlyInvalidSelection = new Urlbuilder(
24
+ PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER,
25
+ 'read-only-invalid-selection-test',
26
+ );
27
+
28
+ static applyAriaDisabledInvalidSelection = new Urlbuilder(
29
+ PATH_E2E_CONTROLLED_FORM_DATE_RANGE_PICKER,
30
+ 'apply-aria-disabled-invalid-selection-test',
31
+ );
32
+
23
33
  // Story elements
24
34
 
25
35
  static getNextMonthBtn = async () => $('[data-testid="ds-controlled-date-time-picker-calendar-next-month"]');
@@ -69,6 +69,8 @@ export default class DSDateTimePickerCO extends PageObject {
69
69
 
70
70
  static timeWithMinuteIntervals = new Urlbuilder(PATH_E2E_FORM_TIME, 'time-with-minute-intervals');
71
71
 
72
+ static timeFullMeridiemInteractive = new Urlbuilder(PATH_E2E_FORM_TIME, 'time-full-meridiem-interactive');
73
+
72
74
  static timeInputApplyAriaDisabled = new Urlbuilder(PATH_E2E_FORM_TIME, 'time-input-apply-aria-disabled');
73
75
 
74
76
  static timeFullApplyAriaDisabled = new Urlbuilder(PATH_E2E_FORM_TIME, 'time-full-apply-aria-disabled');
@@ -92,6 +94,16 @@ export default class DSDateTimePickerCO extends PageObject {
92
94
 
93
95
  static applyAriaDisabledShowCase = new Urlbuilder(PATH_E2E_FORM_DATE_TIME_SHOWCASE, 'apply-aria-disabled-show-case');
94
96
 
97
+ static readOnlyInvalidSelectionShowcase = new Urlbuilder(
98
+ PATH_E2E_FORM_DATE_TIME_SHOWCASE,
99
+ 'read-only-invalid-selection-showcase',
100
+ );
101
+
102
+ static applyAriaDisabledInvalidSelectionShowcase = new Urlbuilder(
103
+ PATH_E2E_FORM_DATE_TIME_SHOWCASE,
104
+ 'apply-aria-disabled-invalid-selection-showcase',
105
+ );
106
+
95
107
  // z-tests
96
108
  static invalidSelection = new Urlbuilder(PATH_E2E_FORM_DATE_TIME_TESTS, 'invalid-selection-test');
97
109
 
@@ -216,6 +228,10 @@ export default class DSDateTimePickerCO extends PageObject {
216
228
  : $(`[data-testid="ds-controlled-date-time-picker-meridiem-input"]`);
217
229
  }
218
230
 
231
+ static getMeridiemListbox = async () => $('[role="listbox"][aria-label="Meridiem"]');
232
+
233
+ static getMeridiemOptionByValue = async (value) => $(`[role="option"]*=${value}`);
234
+
219
235
  // PICKER ICONS
220
236
  static async getCalendarPickerBtn(testId) {
221
237
  return testId
@@ -284,7 +300,7 @@ export default class DSDateTimePickerCO extends PageObject {
284
300
  $(`[data-testid="ds-controlled-date-time-picker-timewheel-minute"]*=${value}`);
285
301
 
286
302
  static getTimeWheelMeridiemByValue = async (value) =>
287
- $(`[data-testid="ds-controlled-date-time-picker-timewheel-meridiem"]*=${value}`);
303
+ $(`[data-testid="ds-controlled-date-time-picker-timewheel-meridiem-visual-element"]*=${value}`);
288
304
 
289
305
  static getTimeWheelCurrentMinute = async () =>
290
306
  $(`[data-testid="ds-controlled-date-time-picker-timewheel-current-minute"]`);
@@ -299,6 +315,9 @@ export default class DSDateTimePickerCO extends PageObject {
299
315
  static getTimeWheelCurrentMeridiem = async () =>
300
316
  $(`[data-testid="ds-controlled-date-time-picker-timewheel-current-meridiem"]`);
301
317
 
318
+ static getTimeWheelCurrentMeridiemVisual = async () =>
319
+ $(`[data-testid="ds-controlled-date-time-picker-timewheel-current-meridiem-visual-element"]`);
320
+
302
321
  static getTimeWheelNextMeridiem = async () =>
303
322
  $(`[data-testid="ds-controlled-date-time-picker-timewheel-next-meridiem"]`);
304
323
 
@@ -0,0 +1,31 @@
1
+ /* eslint-disable max-lines */
2
+ import { Key } from 'webdriverio';
3
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ // Tests for the fix introduced in PUI-18310 (output string validation)
7
+ describe('PUI-18339 - DateTimePicker:: DateTimeFull output string validation - func', () => {
8
+ before('loading page', async () => {
9
+ const errorOnGo = await DateTimePickerCO.dateTimeFull.go();
10
+ if (errorOnGo) throw errorOnGo;
11
+ });
12
+ it('01: should display empty output string before any interaction', async () => {
13
+ const dateTimeString = await DateTimePickerCO.getDateTimeString(2);
14
+ await expect(dateTimeString).toHaveText('');
15
+ });
16
+ it('02: should select a date and time and verify the output string reflects the full selection', async () => {
17
+ const pickerBtn = await DateTimePickerCO.getCalendarTimeWheelPickerBtn();
18
+ await pickerBtn.click();
19
+ const focusedDay = await DateTimePickerCO.getCalendarFocusedDay();
20
+ await focusedDay.click();
21
+ const hours = await DateTimePickerCO.getTimeWheelCurrentHour();
22
+ await hours.click();
23
+ await browser.keys(Key.ArrowDown);
24
+ await browser.keys(Key.Tab);
25
+ await browser.keys(Key.ArrowDown);
26
+ const dateTimeString = await DateTimePickerCO.getDateTimeString(2);
27
+ await expect(dateTimeString).toHaveText(expect.stringContaining('03/29/2025'));
28
+ await expect(dateTimeString).toHaveText(expect.stringContaining('02:01'));
29
+ });
30
+ });
31
+ }
@@ -0,0 +1,49 @@
1
+ /* eslint-disable max-lines */
2
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
3
+ import { mouseOver } from '../../helpers';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ // Tests for the style changes introduced in PUI-18310 (idle state interaction styles)
7
+ describe('PUI-18338 - DateTimePicker:: DateTimeFull idle state - visual', () => {
8
+ before('loading page', async () => {
9
+ const errorOnGo = await DateTimePickerCO.dateTimeFull.go();
10
+ if (errorOnGo) throw errorOnGo;
11
+ });
12
+ it('01: should display DateTimeFull in initial idle state (empty, closed)', async () => {
13
+ const pickerBtn = await DateTimePickerCO.getCalendarTimeWheelPickerBtn();
14
+ await pickerBtn.waitForDisplayed();
15
+ const snapshot = await browser.checkSnapshot(DateTimePickerCO.snapshotPath('date-time-full-idle-initial'));
16
+ await expect(snapshot).toEqual(0);
17
+ });
18
+ it('02: should display open calendar with focused day and hover on another day', async () => {
19
+ const pickerBtn = await DateTimePickerCO.getCalendarTimeWheelPickerBtn();
20
+ await pickerBtn.click();
21
+ const focusedDay = await DateTimePickerCO.getCalendarFocusedDay();
22
+ await expect(focusedDay).toHaveText('29');
23
+ const day10 = await DateTimePickerCO.getCalendarDay(10);
24
+ await mouseOver(day10);
25
+ const snapshot = await browser.checkSnapshot(DateTimePickerCO.snapshotPath('date-time-full-idle-focus-hover'));
26
+ await expect(snapshot).toEqual(0);
27
+ });
28
+ it('03: should display selected day with focus on next day and hover on another', async () => {
29
+ const focusedDay = await DateTimePickerCO.getCalendarFocusedDay();
30
+ await focusedDay.click();
31
+ await browser.keys('ArrowRight');
32
+ const day10 = await DateTimePickerCO.getCalendarDay(10);
33
+ await mouseOver(day10);
34
+ const snapshot = await browser.checkSnapshot(
35
+ DateTimePickerCO.snapshotPath('date-time-full-idle-selected-focus-hover'),
36
+ );
37
+ await expect(snapshot).toEqual(0);
38
+ });
39
+ it('04: should display selected+focused day with hover on another', async () => {
40
+ await browser.keys('ArrowLeft');
41
+ const day10 = await DateTimePickerCO.getCalendarDay(10);
42
+ await mouseOver(day10);
43
+ const snapshot = await browser.checkSnapshot(
44
+ DateTimePickerCO.snapshotPath('date-time-full-idle-selected-focused-hover'),
45
+ );
46
+ await expect(snapshot).toEqual(0);
47
+ });
48
+ });
49
+ }
@@ -55,7 +55,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
55
55
  });
56
56
  it('08: should not be able to select AM', async () => {
57
57
  await browser.keys(Key.ArrowUp);
58
- const timeWheelMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiem();
58
+ const timeWheelMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiemVisual();
59
59
  await expect(timeWheelMeridiem).toHaveText('PM');
60
60
  });
61
61
  it('09: should focus prev month btn', async () => {
@@ -23,7 +23,9 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
23
23
  const prevMeridiemBtn = await DateTimePickerCO.getTimeWheelPrevMeridiem();
24
24
  await prevMeridiemBtn.click();
25
25
  const currentMeridiemSelection = await DateTimePickerCO.getTimeWheelCurrentMeridiem();
26
- await expect(currentMeridiemSelection).toHaveAttribute('aria-label', 'AM selected');
26
+ const currentMeridiemSelectionVisual = await DateTimePickerCO.getTimeWheelCurrentMeridiemVisual();
27
+ await expect(currentMeridiemSelectionVisual).toHaveText('AM');
28
+ await expect(currentMeridiemSelection).toHaveAttribute('aria-label', 'Meridiem');
27
29
  });
28
30
  });
29
31
  }
@@ -54,7 +54,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
54
54
  });
55
55
  it('08: should select PM', async () => {
56
56
  await browser.keys(Key.ArrowDown);
57
- const timeWheelMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiem();
57
+ const timeWheelMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiemVisual();
58
58
  await expect(timeWheelMeridiem).toHaveText('PM');
59
59
  });
60
60
  it('09: should focus prev month btn', async () => {
@@ -53,9 +53,9 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
53
53
  const timeWheelMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiem();
54
54
  await expect(timeWheelMeridiem).toBeFocused();
55
55
  });
56
- it('08: should not be able to select AM', async () => {
56
+ it('08: should not be able to select PM', async () => {
57
57
  await browser.keys(Key.ArrowUp);
58
- const timeWheelMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiem();
58
+ const timeWheelMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiemVisual();
59
59
  await expect(timeWheelMeridiem).toHaveText('PM');
60
60
  });
61
61
  it('09: should focus prev month btn', async () => {
@@ -0,0 +1,40 @@
1
+ /* eslint-disable max-lines */
2
+ import { Key } from 'webdriverio';
3
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ // Tests for the fix introduced in PUI-16394 (aria-disabled + read-only N/A state styles)
7
+ describe('PUI-18331 - DateTimePicker:: applyAriaDisabled invalid selection showcase - func', () => {
8
+ before('loading page', async () => {
9
+ const errorOnGo = await DateTimePickerCO.applyAriaDisabledInvalidSelectionShowcase.go();
10
+ if (errorOnGo) throw errorOnGo;
11
+ });
12
+ it('01: should render month input with aria-disabled="true"', async () => {
13
+ const monthInput = await DateTimePickerCO.getMonthInput();
14
+ await expect(monthInput).toHaveAttribute('aria-disabled', 'true');
15
+ });
16
+ it('02: should open calendar picker and display footer error message', async () => {
17
+ const picker = await DateTimePickerCO.getCalendarPickerBtn();
18
+ await picker.click();
19
+ const footer = await DateTimePickerCO.getFooterCalendar();
20
+ await expect(footer).toBeDisplayed();
21
+ await expect(footer).toHaveText(expect.stringContaining('The selected date is not valid'));
22
+ });
23
+ it('03: should not change selected date when pressing ArrowRight and Enter in calendar', async () => {
24
+ const selectedDay = await DateTimePickerCO.getCalendarSelectedFocusedDay();
25
+ const initialText = await selectedDay.getText();
26
+ await browser.keys(Key.ArrowRight);
27
+ await browser.keys(Key.Return);
28
+ const stillSelected = await DateTimePickerCO.getCalendarSelectedDay();
29
+ await expect(stillSelected).toHaveText(initialText);
30
+ });
31
+ it('04: should open time wheel and render meridiem listbox with aria-disabled="true"', async () => {
32
+ await browser.keys(Key.Escape);
33
+ const timePicker = await DateTimePickerCO.getTimeWheelPickerBtnByIndex(0);
34
+ await timePicker.click();
35
+ const meridiemListbox = await DateTimePickerCO.getMeridiemListbox();
36
+ await meridiemListbox.waitForExist();
37
+ await expect(meridiemListbox).toHaveAttribute('aria-disabled', 'true');
38
+ });
39
+ });
40
+ }
@@ -0,0 +1,53 @@
1
+ /* eslint-disable max-lines */
2
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
3
+ import { mouseOver } from '../../helpers';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ // Tests for the fix introduced in PUI-16394 (aria-disabled + read-only N/A state styles)
7
+ describe('PUI-18330 - DateTimePicker:: applyAriaDisabled invalid selection showcase - visual', () => {
8
+ before('loading page', async () => {
9
+ const errorOnGo = await DateTimePickerCO.applyAriaDisabledInvalidSelectionShowcase.go();
10
+ if (errorOnGo) throw errorOnGo;
11
+ });
12
+ it('01: should display all applyAriaDisabled + N/A state variants at rest with hover', async () => {
13
+ const selectedDay = await DateTimePickerCO.getCalendarSelectedDay();
14
+ const day10 = await DateTimePickerCO.getCalendarDay(10);
15
+ await selectedDay.click();
16
+ await mouseOver(day10);
17
+ const snapshot = await browser.checkSnapshot(
18
+ DateTimePickerCO.snapshotPath('applyAriaDisabled-invalid-selection-showcase'),
19
+ );
20
+ await expect(snapshot).toEqual(0);
21
+ });
22
+ it('02: should display focus and hover states on the controller only calendar', async () => {
23
+ const currentMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiem();
24
+ await browser.keys('ArrowRight');
25
+ await mouseOver(currentMeridiem);
26
+ const snapshot = await browser.checkSnapshot(
27
+ DateTimePickerCO.snapshotPath('applyAriaDisabled-invalid-selection-showcase-interaction'),
28
+ );
29
+ await expect(snapshot).toEqual(0);
30
+ });
31
+ it('03: should display applyAriaDisabled + N/A state with open date picker', async () => {
32
+ const picker = await DateTimePickerCO.getCalendarPickerBtn();
33
+ await picker.click();
34
+ const day1 = await DateTimePickerCO.getCalendarDay(1);
35
+ await mouseOver(day1);
36
+ const snapshot = await browser.checkSnapshot(
37
+ DateTimePickerCO.snapshotPath('applyAriaDisabled-invalid-selection-showcase-open-date'),
38
+ );
39
+ await expect(snapshot).toEqual(0);
40
+ });
41
+ it('04: should display applyAriaDisabled + N/A state with open time wheel', async () => {
42
+ await browser.keys('Escape');
43
+ const timePicker = await DateTimePickerCO.getTimeWheelPickerBtnByIndex(0);
44
+ await timePicker.click();
45
+ const currentMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiem();
46
+ await mouseOver(currentMeridiem);
47
+ const snapshot = await browser.checkSnapshot(
48
+ DateTimePickerCO.snapshotPath('applyAriaDisabled-invalid-selection-showcase-open-time'),
49
+ );
50
+ await expect(snapshot).toEqual(0);
51
+ });
52
+ });
53
+ }
@@ -0,0 +1,60 @@
1
+ /* eslint-disable prettier/prettier */
2
+ /* eslint-disable max-len */
3
+ /* eslint-disable max-lines */
4
+ import { axeCoreCheck } from '../../helpers';
5
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
6
+
7
+ if (
8
+ (!browser.capabilities['ice:options'].isPhone &&
9
+ !browser.capabilities['ice:options'].isTablet &&
10
+ browser.capabilities.browserName === 'chrome') ||
11
+ browser.capabilities.browserName === 'Chrome'
12
+ ) {
13
+ // Tests for the fix introduced in PUI-16394 (aria-disabled + read-only N/A state styles)
14
+ describe('PUI-18328 - DateTimePicker:: readOnly invalid selection showcase - AxeCore', () => {
15
+ before('loading page', async () => {
16
+ const errorOnGo = await DateTimePickerCO.readOnlyInvalidSelectionShowcase.go();
17
+ if (errorOnGo) throw errorOnGo;
18
+ });
19
+ it('01: should pass axe-core scan at rest', async () => {
20
+ const result = await axeCoreCheck({ extraDisabledRules: ['landmark-unique'] });
21
+ expect(result.length).toBe(0);
22
+ });
23
+ it('02: should pass axe-core scan with calendar picker open', async () => {
24
+ const picker = await DateTimePickerCO.getCalendarPickerBtn();
25
+ await picker.click();
26
+ const result = await axeCoreCheck({ extraDisabledRules: ['landmark-unique'] });
27
+ expect(result.length).toBe(0);
28
+ });
29
+ it('03: should pass axe-core scan with time picker open', async () => {
30
+ await browser.keys('Escape');
31
+ const timePicker = await DateTimePickerCO.getTimeWheelPickerBtnByIndex(0);
32
+ await timePicker.click();
33
+ const result = await axeCoreCheck({ extraDisabledRules: ['landmark-unique'] });
34
+ expect(result.length).toBe(0);
35
+ });
36
+ });
37
+ describe('PUI-18329 - DateTimePicker:: applyAriaDisabled invalid selection showcase - AxeCore', () => {
38
+ before('loading page', async () => {
39
+ const errorOnGo = await DateTimePickerCO.applyAriaDisabledInvalidSelectionShowcase.go();
40
+ if (errorOnGo) throw errorOnGo;
41
+ });
42
+ it('01: should pass axe-core scan at rest', async () => {
43
+ const result = await axeCoreCheck({ extraDisabledRules: ['landmark-unique'] });
44
+ expect(result.length).toBe(0);
45
+ });
46
+ it('02: should pass axe-core scan with calendar picker open', async () => {
47
+ const picker = await DateTimePickerCO.getCalendarPickerBtn();
48
+ await picker.click();
49
+ const result = await axeCoreCheck({ extraDisabledRules: ['landmark-unique'] });
50
+ expect(result.length).toBe(0);
51
+ });
52
+ it('03: should pass axe-core scan with time picker open', async () => {
53
+ await browser.keys('Escape');
54
+ const timePicker = await DateTimePickerCO.getTimeWheelPickerBtnByIndex(0);
55
+ await timePicker.click();
56
+ const result = await axeCoreCheck({ extraDisabledRules: ['landmark-unique'] });
57
+ expect(result.length).toBe(0);
58
+ });
59
+ });
60
+ }
@@ -0,0 +1,97 @@
1
+ /* eslint-disable max-lines */
2
+ import { Key } from 'webdriverio';
3
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ // Tests for the fix introduced in PUI-16394 (aria-disabled + read-only N/A state styles)
7
+ describe('PUI-18325 - DateTimePicker:: readOnly invalid selection - keyboard nav - func', () => {
8
+ before('loading page', async () => {
9
+ const errorOnGo = await DateTimePickerCO.readOnlyInvalidSelectionShowcase.go();
10
+ if (errorOnGo) throw errorOnGo;
11
+ });
12
+ it('01: should Tab to month input field', async () => {
13
+ await browser.keys(Key.Tab);
14
+ const monthInput = await DateTimePickerCO.getMonthInput();
15
+ await expect(monthInput).toBeFocused();
16
+ });
17
+ it('02: should open calendar picker and display the selected focused day', async () => {
18
+ const picker = await DateTimePickerCO.getCalendarPickerBtn();
19
+ await picker.click();
20
+ const selectedDay = await DateTimePickerCO.getCalendarSelectedFocusedDay();
21
+ await expect(selectedDay).toBeDisplayed();
22
+ });
23
+ it('03: should not move the selected day when pressing ArrowRight in readOnly calendar', async () => {
24
+ const before = await (await DateTimePickerCO.getCalendarSelectedFocusedDay()).getText();
25
+ await browser.keys(Key.ArrowRight);
26
+ await browser.keys(Key.Return);
27
+ await expect(await DateTimePickerCO.getCalendarSelectedDay()).toHaveText(before);
28
+ });
29
+ it('04: should Tab to meridiem listbox in the date-time time wheel and find it aria-disabled', async () => {
30
+ await browser.keys(Key.Escape);
31
+ const timePicker = await DateTimePickerCO.getCalendarTimeWheelPickerBtnByIndex(0);
32
+ await timePicker.click();
33
+ // Scope to the popup — the showcase has duplicate data-testids across multiple pickers.
34
+ const popup = await DateTimePickerCO.getContextualMenuCalendarTimeWheel();
35
+ const currHour = await popup.$('[data-testid="ds-controlled-date-time-picker-timewheel-current-hour"]');
36
+ await currHour.click();
37
+ await browser.keys(Key.Tab); // hour → minute
38
+ await browser.keys(Key.Tab); // minute → meridiem listbox
39
+ const meridiemListbox = await popup.$(
40
+ '[data-testid="ds-controlled-date-time-picker-timewheel-current-meridiem"]',
41
+ );
42
+ await expect(meridiemListbox).toBeFocused();
43
+ await expect(meridiemListbox).toHaveAttribute('aria-disabled', 'true');
44
+ });
45
+ it('05: should not change meridiem when pressing ArrowDown in readOnly meridiem listbox', async () => {
46
+ const amOption = await DateTimePickerCO.getMeridiemOptionByValue('AM');
47
+ const wasSelected = await amOption.getAttribute('aria-selected');
48
+ await browser.keys(Key.ArrowDown);
49
+ await expect(amOption).toHaveAttribute('aria-selected', wasSelected);
50
+ });
51
+ });
52
+ describe('PUI-18326 - DateTimePicker:: applyAriaDisabled invalid selection - keyboard nav - func', () => {
53
+ before('loading page', async () => {
54
+ const errorOnGo = await DateTimePickerCO.applyAriaDisabledInvalidSelectionShowcase.go();
55
+ if (errorOnGo) throw errorOnGo;
56
+ });
57
+ it('01: should Tab to month input field', async () => {
58
+ await browser.keys(Key.Tab);
59
+ const monthInput = await DateTimePickerCO.getMonthInput();
60
+ await expect(monthInput).toBeFocused();
61
+ });
62
+ it('02: should open calendar picker and display the selected focused day', async () => {
63
+ const picker = await DateTimePickerCO.getCalendarPickerBtn();
64
+ await picker.click();
65
+ const selectedDay = await DateTimePickerCO.getCalendarSelectedFocusedDay();
66
+ await expect(selectedDay).toBeDisplayed();
67
+ });
68
+ it('03: should not move the selected day when pressing ArrowRight in applyAriaDisabled calendar', async () => {
69
+ const before = await (await DateTimePickerCO.getCalendarSelectedFocusedDay()).getText();
70
+ await browser.keys(Key.ArrowRight);
71
+ await browser.keys(Key.Return);
72
+ await expect(await DateTimePickerCO.getCalendarSelectedDay()).toHaveText(before);
73
+ });
74
+ it('04: should Tab to meridiem listbox in the date-time time wheel and find it aria-disabled', async () => {
75
+ await browser.keys(Key.Escape);
76
+ const timePicker = await DateTimePickerCO.getCalendarTimeWheelPickerBtnByIndex(0);
77
+ await timePicker.click();
78
+ // Scope to the popup — the showcase has duplicate data-testids across multiple pickers.
79
+ const popup = await DateTimePickerCO.getContextualMenuCalendarTimeWheel();
80
+ const currHour = await popup.$('[data-testid="ds-controlled-date-time-picker-timewheel-current-hour"]');
81
+ await currHour.click();
82
+ await browser.keys(Key.Tab); // hour → minute
83
+ await browser.keys(Key.Tab); // minute → meridiem listbox
84
+ const meridiemListbox = await popup.$(
85
+ '[data-testid="ds-controlled-date-time-picker-timewheel-current-meridiem"]',
86
+ );
87
+ await expect(meridiemListbox).toBeFocused();
88
+ await expect(meridiemListbox).toHaveAttribute('aria-disabled', 'true');
89
+ });
90
+ it('05: should not change meridiem when pressing ArrowDown in applyAriaDisabled meridiem listbox', async () => {
91
+ const amOption = await DateTimePickerCO.getMeridiemOptionByValue('AM');
92
+ const wasSelected = await amOption.getAttribute('aria-selected');
93
+ await browser.keys(Key.ArrowDown);
94
+ await expect(amOption).toHaveAttribute('aria-selected', wasSelected);
95
+ });
96
+ });
97
+ }
@@ -0,0 +1,40 @@
1
+ /* eslint-disable max-lines */
2
+ import { Key } from 'webdriverio';
3
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ // Tests for the fix introduced in PUI-16394 (aria-disabled + read-only N/A state styles)
7
+ describe('PUI-18327 - DateTimePicker:: readOnly invalid selection showcase - func', () => {
8
+ before('loading page', async () => {
9
+ const errorOnGo = await DateTimePickerCO.readOnlyInvalidSelectionShowcase.go();
10
+ if (errorOnGo) throw errorOnGo;
11
+ });
12
+ it('01: should render month input with readOnly attribute', async () => {
13
+ const monthInput = await DateTimePickerCO.getMonthInput();
14
+ await expect(monthInput).toHaveAttribute('readonly');
15
+ });
16
+ it('02: should open calendar picker and display footer error message', async () => {
17
+ const picker = await DateTimePickerCO.getCalendarPickerBtn();
18
+ await picker.click();
19
+ const footer = await DateTimePickerCO.getFooterCalendar();
20
+ await expect(footer).toBeDisplayed();
21
+ await expect(footer).toHaveText(expect.stringContaining('The selected date is not valid'));
22
+ });
23
+ it('03: should not change the selected date when pressing ArrowRight and Enter in readOnly calendar', async () => {
24
+ const selectedDay = await DateTimePickerCO.getCalendarSelectedFocusedDay();
25
+ const initialText = await selectedDay.getText();
26
+ await browser.keys(Key.ArrowRight);
27
+ await browser.keys(Key.Return);
28
+ const stillSelected = await DateTimePickerCO.getCalendarSelectedDay();
29
+ await expect(stillSelected).toHaveText(initialText);
30
+ });
31
+ it('04: should open time wheel and render meridiem listbox with aria-disabled="true"', async () => {
32
+ await browser.keys(Key.Escape);
33
+ const timePicker = await DateTimePickerCO.getTimeWheelPickerBtnByIndex(0);
34
+ await timePicker.click();
35
+ const meridiemListbox = await DateTimePickerCO.getMeridiemListbox();
36
+ await meridiemListbox.waitForExist();
37
+ await expect(meridiemListbox).toHaveAttribute('aria-disabled', 'true');
38
+ });
39
+ });
40
+ }
@@ -0,0 +1,53 @@
1
+ /* eslint-disable max-len */
2
+ /* eslint-disable max-lines */
3
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
4
+ import { mouseOver } from '../../helpers';
5
+
6
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
7
+ // Tests for the fix introduced in PUI-16394 (aria-disabled + read-only N/A state styles)
8
+ describe('PUI-18332 - DateTimePicker:: readOnly invalid selection showcase - visual', () => {
9
+ before('loading page', async () => {
10
+ const errorOnGo = await DateTimePickerCO.readOnlyInvalidSelectionShowcase.go();
11
+ if (errorOnGo) throw errorOnGo;
12
+ });
13
+ it('01: should display all readOnly + N/A state variants at rest with hover', async () => {
14
+ const selectedDay = await DateTimePickerCO.getCalendarSelectedDay();
15
+ const day10 = await DateTimePickerCO.getCalendarDay(10);
16
+ await selectedDay.click();
17
+ await mouseOver(day10);
18
+ const snapshotName = 'readOnly-invalid-selection-showcase';
19
+ const snapshot = await browser.checkSnapshot(DateTimePickerCO.snapshotPath(snapshotName));
20
+ await expect(snapshot).toEqual(0);
21
+ });
22
+ it('02: should display focus and hover states on the controller only calendar', async () => {
23
+ const am = await DateTimePickerCO.getTimeWheelMeridiemByValue('AM');
24
+ await browser.keys('ArrowRight');
25
+ await mouseOver(am);
26
+ const snapshot = await browser.checkSnapshot(
27
+ DateTimePickerCO.snapshotPath('readOnly-invalid-selection-showcase-interaction'),
28
+ );
29
+ await expect(snapshot).toEqual(0);
30
+ });
31
+ it('03: should display readOnly + N/A state with open date picker', async () => {
32
+ const picker = await DateTimePickerCO.getCalendarPickerBtn();
33
+ await picker.click();
34
+ const focusedDay = await DateTimePickerCO.getCalendarFocusedDay();
35
+ await mouseOver(focusedDay);
36
+ const snapshot = await browser.checkSnapshot(
37
+ DateTimePickerCO.snapshotPath('readOnly-invalid-selection-showcase-open-date'),
38
+ );
39
+ await expect(snapshot).toEqual(0);
40
+ });
41
+ it('04: should display readOnly + N/A state with open time wheel', async () => {
42
+ await browser.keys('Escape');
43
+ const timePicker = await DateTimePickerCO.getTimeWheelPickerBtnByIndex(0);
44
+ await timePicker.click();
45
+ const currentMeridiem = await DateTimePickerCO.getTimeWheelCurrentMeridiem();
46
+ await mouseOver(currentMeridiem);
47
+ const snapshot = await browser.checkSnapshot(
48
+ DateTimePickerCO.snapshotPath('readOnly-invalid-selection-showcase-open-time'),
49
+ );
50
+ await expect(snapshot).toEqual(0);
51
+ });
52
+ });
53
+ }
@@ -34,4 +34,19 @@ if (
34
34
  expect(result.length).toBe(0);
35
35
  });
36
36
  });
37
+ // Tests for the fix introduced in PUI-18277 (meridiem role="spinbutton" → role="listbox")
38
+ describe('PUI-18337 - TimeFull:: meridiem listbox role - AxeCore', () => {
39
+ before('loading page', async () => {
40
+ const errorOnGo = await DateTimePickerCO.timeFullReadOnly.go();
41
+ if (errorOnGo) throw errorOnGo;
42
+ });
43
+ it('01: should open the time picker and pass axe-core scan with listbox meridiem', async () => {
44
+ const picker = await DateTimePickerCO.getTimeWheelPickerBtn();
45
+ await picker.click();
46
+ const meridiemListbox = await DateTimePickerCO.getMeridiemListbox();
47
+ await meridiemListbox.waitForExist();
48
+ const result = await axeCoreCheck();
49
+ expect(result.length).toBe(0);
50
+ });
51
+ });
37
52
  }
@@ -0,0 +1,35 @@
1
+ /* eslint-disable max-lines */
2
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ // Tests for the fix introduced in PUI-18277 (meridiem role="spinbutton" → role="listbox")
6
+ describe('PUI-18333 - TimeFull:: meridiem a11y layer ARIA attributes - func', () => {
7
+ before('loading page', async () => {
8
+ const errorOnGo = await DateTimePickerCO.timeFullReadOnly.go();
9
+ if (errorOnGo) throw errorOnGo;
10
+ });
11
+ it('01: should render listbox with correct role, aria-label and orientation', async () => {
12
+ const picker = await DateTimePickerCO.getTimeWheelPickerBtn();
13
+ await picker.click();
14
+ const meridiemListbox = await DateTimePickerCO.getMeridiemListbox();
15
+ await meridiemListbox.waitForExist();
16
+ await expect(meridiemListbox).toHaveAttribute('role', 'listbox');
17
+ await expect(meridiemListbox).toHaveAttribute('aria-label', 'Meridiem');
18
+ await expect(meridiemListbox).toHaveAttribute('aria-orientation', 'vertical');
19
+ });
20
+ it('02: should have AM and PM option children with correct role and exactly one aria-selected=true', async () => {
21
+ const amOption = await DateTimePickerCO.getMeridiemOptionByValue('AM');
22
+ const pmOption = await DateTimePickerCO.getMeridiemOptionByValue('PM');
23
+ await expect(amOption).toHaveAttribute('role', 'option');
24
+ await expect(pmOption).toHaveAttribute('role', 'option');
25
+ const amSelected = await amOption.getAttribute('aria-selected');
26
+ const pmSelected = await pmOption.getAttribute('aria-selected');
27
+ expect([amSelected, pmSelected].filter((v) => v === 'true').length).toBe(1);
28
+ });
29
+ it('03: should have aria-hidden=true on the visual meridiem display element', async () => {
30
+ const currentMeridiemVisual = await DateTimePickerCO.getTimeWheelCurrentMeridiemVisual();
31
+ const parentListItem = await currentMeridiemVisual.$('..');
32
+ await expect(parentListItem).toHaveAttribute('aria-hidden', 'true');
33
+ });
34
+ });
35
+ }
@@ -0,0 +1,41 @@
1
+ /* eslint-disable max-lines */
2
+ import { Key } from 'webdriverio';
3
+ import DateTimePickerCO from '../DSControlledDateTimePickerCO';
4
+
5
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
+ // Tests for the fix introduced in PUI-18277 (meridiem role="spinbutton" → role="listbox")
7
+ describe('PUI-18334 - TimeFull:: meridiem listbox keyboard navigation - func', () => {
8
+ before('loading page', async () => {
9
+ const errorOnGo = await DateTimePickerCO.timeFullMeridiemInteractive.go();
10
+ if (errorOnGo) throw errorOnGo;
11
+ });
12
+ it('01: should open time picker and Tab to meridiem listbox', async () => {
13
+ const picker = await DateTimePickerCO.getTimeWheelPickerBtn();
14
+ await picker.click();
15
+ await browser.keys(Key.Tab);
16
+ await browser.keys(Key.Tab);
17
+ const meridiemListbox = await DateTimePickerCO.getMeridiemListbox();
18
+ await expect(meridiemListbox).toBeFocused();
19
+ });
20
+ it('02: should toggle to PM with ArrowDown from the listbox', async () => {
21
+ await browser.keys(Key.ArrowDown);
22
+ const pmOption = await DateTimePickerCO.getMeridiemOptionByValue('PM');
23
+ await expect(pmOption).toHaveAttribute('aria-selected', 'true');
24
+ });
25
+ it('03: should toggle back to AM with ArrowUp', async () => {
26
+ await browser.keys(Key.ArrowUp);
27
+ const amOption = await DateTimePickerCO.getMeridiemOptionByValue('AM');
28
+ await expect(amOption).toHaveAttribute('aria-selected', 'true');
29
+ });
30
+ it('04: should Tab away from the meridiem listbox', async () => {
31
+ await browser.keys(Key.Tab);
32
+ const meridiemListbox = await DateTimePickerCO.getMeridiemListbox();
33
+ await expect(meridiemListbox).not.toBeFocused();
34
+ });
35
+ it('05: should return focus to meridiem listbox with Shift+Tab', async () => {
36
+ await browser.keys([Key.Shift, Key.Tab]);
37
+ const meridiemListbox = await DateTimePickerCO.getMeridiemListbox();
38
+ await expect(meridiemListbox).toBeFocused();
39
+ });
40
+ });
41
+ }
@@ -51,7 +51,8 @@ if (
51
51
  });
52
52
  });
53
53
 
54
- describe('PUI-12447 - GlobalHeader: toggle search -AxeCore', () => {
54
+ // Skipped due to defect PUI-17970
55
+ describe.skip('PUI-12447 - GlobalHeader: toggle search -AxeCore', () => {
55
56
  before(async () => {
56
57
  const errorOnGo = await GlobalHeaderCO.withSearchToggleURL.go();
57
58
  if (errorOnGo) throw errorOnGo;
@@ -89,7 +90,8 @@ if (
89
90
  });
90
91
  });
91
92
 
92
- describe('PUI-16270 - GlobalHeader: Controled with Iframe -AxeCore', () => {
93
+ // Skipped due to defect PUI-17970
94
+ describe.skip('PUI-16270 - GlobalHeader: Controled with Iframe -AxeCore', () => {
93
95
  before(async () => {
94
96
  const errorOnGo = await GlobalHeaderCO.iframeURL.go();
95
97
  if (errorOnGo) throw errorOnGo;
@@ -29,7 +29,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
29
29
  await browser.keys(Key.Tab);
30
30
  const menuEl = await $('[data-testid="ds-floating-wrapper-root"]');
31
31
  await menuEl.waitForDisplayed({ reverse: true });
32
- const nextButton = await DSButtonV3CO.getButtonByLabel('Button');
32
+ const nextButton = await $('button=Button');
33
33
  await expect(nextButton).toBeFocused();
34
34
  });
35
35
 
@@ -15,6 +15,11 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
15
15
  await browser.keys(Key.Tab);
16
16
  await browser.keys(Key.Tab);
17
17
  await browser.keys(Key.Tab);
18
+ // 1 more Tab stop for Firefox
19
+ // https://bugzilla.mozilla.org/show_bug.cgi?id=616594
20
+ if (browser.capabilities.browserName === 'firefox') {
21
+ await browser.keys(Key.Tab);
22
+ }
18
23
  const confirmBtn = await ModalSlideCO.getModalButton();
19
24
  await expect(confirmBtn).toBeFocused();
20
25
  const snapshot = await browser.percyCheckScreenshot(
@@ -81,8 +81,8 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
81
81
  await expect(snapshot).toEqual(0);
82
82
  });
83
83
  it('should display tabs with a grid moved one tablist to the right', async () => {
84
- const tab1 = await DSTabsCO.getTab(1);
85
- await tab1.click();
84
+ // const tab1 = await DSTabsCO.getTab(1);
85
+ // await tab1.click();
86
86
  const tab2 = await DSTabsCO.getTab(2);
87
87
  await tab2.waitForClickable({ timeout: 5000 });
88
88
  await tab2.click();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "dimsum-e2e-tests",
4
- "version": "3.60.0-next.62",
4
+ "version": "3.60.0-next.64",
5
5
  "description": "End-to-end tests for dimsum library",
6
6
  "dependencies": {
7
7
  "@elliemae/ds-legacy-button": "1.0.16",
@@ -41,156 +41,156 @@
41
41
  "@elliemae/ds-legacy-wysiwygeditor": "1.0.16",
42
42
  "@elliemae/ds-legacy-zipcode-search": "1.0.16",
43
43
  "@elliemae/ds-legacy-zoom": "1.0.16",
44
- "@elliemae/ds-backdrop": "3.60.0-next.62",
45
- "@elliemae/ds-accessibility": "3.60.0-next.62",
46
- "@elliemae/ds-basic": "3.60.0-next.62",
47
- "@elliemae/ds-banner": "3.60.0-next.62",
48
- "@elliemae/ds-app-picker": "3.60.0-next.62",
49
- "@elliemae/ds-breadcrumb": "3.60.0-next.62",
50
- "@elliemae/ds-button-v2": "3.60.0-next.62",
51
- "@elliemae/ds-card": "3.60.0-next.62",
52
- "@elliemae/ds-card-v1": "3.60.0-next.62",
53
- "@elliemae/ds-card-navigation": "3.60.0-next.62",
54
- "@elliemae/ds-accordion": "3.60.0-next.62",
55
- "@elliemae/ds-card-v1-detail": "3.60.0-next.62",
56
- "@elliemae/ds-card-v2": "3.60.0-next.62",
57
- "@elliemae/ds-card-v2-action-addon": "3.60.0-next.62",
58
- "@elliemae/ds-card-v2-group": "3.60.0-next.62",
59
- "@elliemae/ds-card-v3-poc": "3.60.0-next.62",
60
- "@elliemae/ds-card-v3": "3.60.0-next.62",
61
- "@elliemae/ds-chat": "3.60.0-next.62",
62
- "@elliemae/ds-chat-card": "3.60.0-next.62",
63
- "@elliemae/ds-chat-bubble": "3.60.0-next.62",
64
- "@elliemae/ds-chat-container-header": "3.60.0-next.62",
65
- "@elliemae/ds-chat-container": "3.60.0-next.62",
66
- "@elliemae/ds-chat-empty-state": "3.60.0-next.62",
67
- "@elliemae/ds-chat-message-delimeter": "3.60.0-next.62",
68
- "@elliemae/ds-circular-progress-indicator": "3.60.0-next.62",
69
- "@elliemae/ds-chat-floating-button": "3.60.0-next.62",
70
- "@elliemae/ds-chat-sidebar": "3.60.0-next.62",
71
- "@elliemae/ds-chat-system-message": "3.60.0-next.62",
72
- "@elliemae/ds-chip": "3.60.0-next.62",
73
- "@elliemae/ds-comments": "3.60.0-next.62",
74
- "@elliemae/ds-classnames": "3.60.0-next.62",
75
- "@elliemae/ds-codeeditor": "3.60.0-next.62",
76
- "@elliemae/ds-chat-tile": "3.60.0-next.62",
77
- "@elliemae/ds-controlled-form": "3.60.0-next.62",
78
- "@elliemae/ds-csv-converter": "3.60.0-next.62",
79
- "@elliemae/ds-data-table": "3.60.0-next.62",
80
- "@elliemae/ds-data-table-cell": "3.60.0-next.62",
81
- "@elliemae/ds-data-table-action-cell": "3.60.0-next.62",
82
- "@elliemae/ds-data-table-cell-header": "3.60.0-next.62",
83
- "@elliemae/ds-data-table-drag-and-drop-cell": "3.60.0-next.62",
84
- "@elliemae/ds-data-table-filters": "3.60.0-next.62",
85
- "@elliemae/ds-data-table-expand-cell": "3.60.0-next.62",
86
- "@elliemae/ds-data-table-multi-select-cell": "3.60.0-next.62",
87
- "@elliemae/ds-data-table-single-select-cell": "3.60.0-next.62",
88
- "@elliemae/ds-dataviz-pie": "3.60.0-next.62",
89
- "@elliemae/ds-date-time-picker": "3.60.0-next.62",
90
- "@elliemae/ds-dataviz": "3.60.0-next.62",
91
- "@elliemae/ds-decision-graph": "3.60.0-next.62",
92
- "@elliemae/ds-dialog": "3.60.0-next.62",
93
- "@elliemae/ds-drag-and-drop": "3.60.0-next.62",
94
- "@elliemae/ds-dropdownmenu-v2": "3.60.0-next.62",
95
- "@elliemae/ds-dropzone": "3.60.0-next.62",
96
- "@elliemae/ds-fast-list": "3.60.0-next.62",
97
- "@elliemae/ds-filter-bar": "3.60.0-next.62",
98
- "@elliemae/ds-floating-context": "3.60.0-next.62",
99
- "@elliemae/ds-form-combobox": "3.60.0-next.62",
100
- "@elliemae/ds-form-checkbox": "3.60.0-next.62",
101
- "@elliemae/ds-form-date-range-picker": "3.60.0-next.62",
102
- "@elliemae/ds-form-helpers-mask-hooks": "3.60.0-next.62",
103
- "@elliemae/ds-form-date-time-picker": "3.60.0-next.62",
104
- "@elliemae/ds-form-layout-autocomplete": "3.60.0-next.62",
105
- "@elliemae/ds-form-input-text": "3.60.0-next.62",
106
- "@elliemae/ds-form-input-textarea": "3.60.0-next.62",
107
- "@elliemae/ds-form-layout-blocks": "3.60.0-next.62",
108
- "@elliemae/ds-form-layout-input-group": "3.60.0-next.62",
109
- "@elliemae/ds-form-multi-combobox": "3.60.0-next.62",
110
- "@elliemae/ds-form-layout-label": "3.60.0-next.62",
111
- "@elliemae/ds-form-native-select": "3.60.0-next.62",
112
- "@elliemae/ds-form-radio": "3.60.0-next.62",
113
- "@elliemae/ds-form-select": "3.60.0-next.62",
114
- "@elliemae/ds-global-header": "3.60.0-next.62",
115
- "@elliemae/ds-form-toggle": "3.60.0-next.62",
116
- "@elliemae/ds-form-single-combobox": "3.60.0-next.62",
117
- "@elliemae/ds-grid": "3.60.0-next.62",
118
- "@elliemae/ds-hooks-focus-stack": "3.60.0-next.62",
119
- "@elliemae/ds-hooks-focus-trap": "3.60.0-next.62",
120
- "@elliemae/ds-hooks-fontsize-detector": "3.60.0-next.62",
121
- "@elliemae/ds-hooks-headless-tooltip": "3.60.0-next.62",
122
- "@elliemae/ds-hooks-fontsize-media": "3.60.0-next.62",
123
- "@elliemae/ds-hooks-is-mobile": "3.60.0-next.62",
124
- "@elliemae/ds-hooks-is-showing-ellipsis": "3.60.0-next.62",
125
- "@elliemae/ds-hooks-on-first-focus-in": "3.60.0-next.62",
126
- "@elliemae/ds-hooks-on-blur-out": "3.60.0-next.62",
127
- "@elliemae/ds-icon": "3.60.0-next.62",
128
- "@elliemae/ds-hooks-keyboard-navigation": "3.60.0-next.62",
129
- "@elliemae/ds-image": "3.60.0-next.62",
130
- "@elliemae/ds-icons": "3.60.0-next.62",
131
- "@elliemae/ds-imagelibrarymodal": "3.60.0-next.62",
132
- "@elliemae/ds-indeterminate-progress-indicator": "3.60.0-next.62",
133
- "@elliemae/ds-layout-provider": "3.60.0-next.62",
134
- "@elliemae/ds-menu-button": "3.60.0-next.62",
135
- "@elliemae/ds-left-navigation": "3.60.0-next.62",
136
- "@elliemae/ds-menu-items-action": "3.60.0-next.62",
137
- "@elliemae/ds-loading-indicator": "3.60.0-next.62",
138
- "@elliemae/ds-menu-items": "3.60.0-next.62",
139
- "@elliemae/ds-menu-items-multi": "3.60.0-next.62",
140
- "@elliemae/ds-menu-items-commons": "3.60.0-next.62",
141
- "@elliemae/ds-menu-items-section": "3.60.0-next.62",
142
- "@elliemae/ds-menu-items-single": "3.60.0-next.62",
143
- "@elliemae/ds-menu-items-separator": "3.60.0-next.62",
144
- "@elliemae/ds-menu-items-single-with-submenu": "3.60.0-next.62",
145
- "@elliemae/ds-menu-items-skeleton": "3.60.0-next.62",
146
- "@elliemae/ds-menu-items-submenu": "3.60.0-next.62",
147
- "@elliemae/ds-menu-tree-item": "3.60.0-next.62",
148
- "@elliemae/ds-modal-slide": "3.60.0-next.62",
149
- "@elliemae/ds-mobile": "3.60.0-next.62",
150
- "@elliemae/ds-notification-badge": "3.60.0-next.62",
151
- "@elliemae/ds-overlay": "3.60.0-next.62",
152
- "@elliemae/ds-page-header": "3.60.0-next.62",
153
- "@elliemae/ds-page-layout": "3.60.0-next.62",
154
- "@elliemae/ds-page-header-v1": "3.60.0-next.62",
155
- "@elliemae/ds-pills-v2": "3.60.0-next.62",
156
- "@elliemae/ds-popperjs": "3.60.0-next.62",
157
- "@elliemae/ds-portal": "3.60.0-next.62",
158
- "@elliemae/ds-progress-indicator": "3.60.0-next.62",
159
- "@elliemae/ds-page-header-v2": "3.60.0-next.62",
160
- "@elliemae/ds-props-helpers": "3.60.0-next.62",
161
- "@elliemae/ds-query-builder": "3.60.0-next.62",
162
- "@elliemae/ds-resizeable-container": "3.60.0-next.62",
163
- "@elliemae/ds-read-more": "3.60.0-next.62",
164
- "@elliemae/ds-ribbon": "3.60.0-next.62",
165
- "@elliemae/ds-scrollable-container": "3.60.0-next.62",
166
- "@elliemae/ds-pagination": "3.60.0-next.62",
167
- "@elliemae/ds-separator": "3.60.0-next.62",
168
- "@elliemae/ds-shuttle-v2": "3.60.0-next.62",
169
- "@elliemae/ds-shared": "3.60.0-next.62",
170
- "@elliemae/ds-side-panel": "3.60.0-next.62",
171
- "@elliemae/ds-side-panel-header": "3.60.0-next.62",
172
- "@elliemae/ds-slider-v2": "3.60.0-next.62",
173
- "@elliemae/ds-skeleton": "3.60.0-next.62",
174
- "@elliemae/ds-stepper": "3.60.0-next.62",
175
- "@elliemae/ds-square-indicator": "3.60.0-next.62",
176
- "@elliemae/ds-svg": "3.60.0-next.62",
177
- "@elliemae/ds-system": "3.60.0-next.62",
178
- "@elliemae/ds-test-utils": "3.60.0-next.62",
179
- "@elliemae/ds-tabs": "3.60.0-next.62",
180
- "@elliemae/ds-toast": "3.60.0-next.62",
181
- "@elliemae/ds-toolbar-v1": "3.60.0-next.62",
182
- "@elliemae/ds-toolbar-v2": "3.60.0-next.62",
183
- "@elliemae/ds-tooltip-v3": "3.60.0-next.62",
184
- "@elliemae/ds-transition": "3.60.0-next.62",
185
- "@elliemae/ds-treeview": "3.60.0-next.62",
186
- "@elliemae/ds-tree-model": "3.60.0-next.62",
187
- "@elliemae/ds-truncated-expandable-text": "3.60.0-next.62",
188
- "@elliemae/ds-truncated-tooltip-text": "3.60.0-next.62",
189
- "@elliemae/ds-typography": "3.60.0-next.62",
190
- "@elliemae/ds-typescript-helpers": "3.60.0-next.62",
191
- "@elliemae/ds-wizard": "3.60.0-next.62",
192
- "@elliemae/ds-virtual-list": "3.60.0-next.62",
193
- "@elliemae/ds-zustand-helpers": "3.60.0-next.62"
44
+ "@elliemae/ds-accessibility": "3.60.0-next.64",
45
+ "@elliemae/ds-accordion": "3.60.0-next.64",
46
+ "@elliemae/ds-app-picker": "3.60.0-next.64",
47
+ "@elliemae/ds-backdrop": "3.60.0-next.64",
48
+ "@elliemae/ds-banner": "3.60.0-next.64",
49
+ "@elliemae/ds-basic": "3.60.0-next.64",
50
+ "@elliemae/ds-breadcrumb": "3.60.0-next.64",
51
+ "@elliemae/ds-button-v2": "3.60.0-next.64",
52
+ "@elliemae/ds-card-navigation": "3.60.0-next.64",
53
+ "@elliemae/ds-card-v1-detail": "3.60.0-next.64",
54
+ "@elliemae/ds-card-v1": "3.60.0-next.64",
55
+ "@elliemae/ds-card-v2": "3.60.0-next.64",
56
+ "@elliemae/ds-card-v2-action-addon": "3.60.0-next.64",
57
+ "@elliemae/ds-card-v3": "3.60.0-next.64",
58
+ "@elliemae/ds-card": "3.60.0-next.64",
59
+ "@elliemae/ds-card-v3-poc": "3.60.0-next.64",
60
+ "@elliemae/ds-card-v2-group": "3.60.0-next.64",
61
+ "@elliemae/ds-chat": "3.60.0-next.64",
62
+ "@elliemae/ds-chat-bubble": "3.60.0-next.64",
63
+ "@elliemae/ds-chat-card": "3.60.0-next.64",
64
+ "@elliemae/ds-chat-container": "3.60.0-next.64",
65
+ "@elliemae/ds-chat-container-header": "3.60.0-next.64",
66
+ "@elliemae/ds-chat-floating-button": "3.60.0-next.64",
67
+ "@elliemae/ds-chat-empty-state": "3.60.0-next.64",
68
+ "@elliemae/ds-chat-sidebar": "3.60.0-next.64",
69
+ "@elliemae/ds-chat-system-message": "3.60.0-next.64",
70
+ "@elliemae/ds-chat-message-delimeter": "3.60.0-next.64",
71
+ "@elliemae/ds-chip": "3.60.0-next.64",
72
+ "@elliemae/ds-circular-progress-indicator": "3.60.0-next.64",
73
+ "@elliemae/ds-chat-tile": "3.60.0-next.64",
74
+ "@elliemae/ds-classnames": "3.60.0-next.64",
75
+ "@elliemae/ds-codeeditor": "3.60.0-next.64",
76
+ "@elliemae/ds-comments": "3.60.0-next.64",
77
+ "@elliemae/ds-controlled-form": "3.60.0-next.64",
78
+ "@elliemae/ds-data-table-action-cell": "3.60.0-next.64",
79
+ "@elliemae/ds-data-table": "3.60.0-next.64",
80
+ "@elliemae/ds-csv-converter": "3.60.0-next.64",
81
+ "@elliemae/ds-data-table-cell": "3.60.0-next.64",
82
+ "@elliemae/ds-data-table-cell-header": "3.60.0-next.64",
83
+ "@elliemae/ds-data-table-drag-and-drop-cell": "3.60.0-next.64",
84
+ "@elliemae/ds-data-table-expand-cell": "3.60.0-next.64",
85
+ "@elliemae/ds-data-table-filters": "3.60.0-next.64",
86
+ "@elliemae/ds-data-table-multi-select-cell": "3.60.0-next.64",
87
+ "@elliemae/ds-data-table-single-select-cell": "3.60.0-next.64",
88
+ "@elliemae/ds-dataviz": "3.60.0-next.64",
89
+ "@elliemae/ds-dataviz-pie": "3.60.0-next.64",
90
+ "@elliemae/ds-date-time-picker": "3.60.0-next.64",
91
+ "@elliemae/ds-decision-graph": "3.60.0-next.64",
92
+ "@elliemae/ds-dialog": "3.60.0-next.64",
93
+ "@elliemae/ds-dropdownmenu-v2": "3.60.0-next.64",
94
+ "@elliemae/ds-drag-and-drop": "3.60.0-next.64",
95
+ "@elliemae/ds-fast-list": "3.60.0-next.64",
96
+ "@elliemae/ds-filter-bar": "3.60.0-next.64",
97
+ "@elliemae/ds-dropzone": "3.60.0-next.64",
98
+ "@elliemae/ds-form-checkbox": "3.60.0-next.64",
99
+ "@elliemae/ds-floating-context": "3.60.0-next.64",
100
+ "@elliemae/ds-form-combobox": "3.60.0-next.64",
101
+ "@elliemae/ds-form-date-range-picker": "3.60.0-next.64",
102
+ "@elliemae/ds-form-date-time-picker": "3.60.0-next.64",
103
+ "@elliemae/ds-form-helpers-mask-hooks": "3.60.0-next.64",
104
+ "@elliemae/ds-form-input-text": "3.60.0-next.64",
105
+ "@elliemae/ds-form-input-textarea": "3.60.0-next.64",
106
+ "@elliemae/ds-form-layout-autocomplete": "3.60.0-next.64",
107
+ "@elliemae/ds-form-layout-blocks": "3.60.0-next.64",
108
+ "@elliemae/ds-form-layout-input-group": "3.60.0-next.64",
109
+ "@elliemae/ds-form-layout-label": "3.60.0-next.64",
110
+ "@elliemae/ds-form-multi-combobox": "3.60.0-next.64",
111
+ "@elliemae/ds-form-radio": "3.60.0-next.64",
112
+ "@elliemae/ds-form-native-select": "3.60.0-next.64",
113
+ "@elliemae/ds-form-select": "3.60.0-next.64",
114
+ "@elliemae/ds-form-single-combobox": "3.60.0-next.64",
115
+ "@elliemae/ds-form-toggle": "3.60.0-next.64",
116
+ "@elliemae/ds-global-header": "3.60.0-next.64",
117
+ "@elliemae/ds-grid": "3.60.0-next.64",
118
+ "@elliemae/ds-hooks-focus-stack": "3.60.0-next.64",
119
+ "@elliemae/ds-hooks-focus-trap": "3.60.0-next.64",
120
+ "@elliemae/ds-hooks-fontsize-detector": "3.60.0-next.64",
121
+ "@elliemae/ds-hooks-fontsize-media": "3.60.0-next.64",
122
+ "@elliemae/ds-hooks-headless-tooltip": "3.60.0-next.64",
123
+ "@elliemae/ds-hooks-is-mobile": "3.60.0-next.64",
124
+ "@elliemae/ds-hooks-is-showing-ellipsis": "3.60.0-next.64",
125
+ "@elliemae/ds-hooks-keyboard-navigation": "3.60.0-next.64",
126
+ "@elliemae/ds-hooks-on-first-focus-in": "3.60.0-next.64",
127
+ "@elliemae/ds-hooks-on-blur-out": "3.60.0-next.64",
128
+ "@elliemae/ds-icon": "3.60.0-next.64",
129
+ "@elliemae/ds-image": "3.60.0-next.64",
130
+ "@elliemae/ds-icons": "3.60.0-next.64",
131
+ "@elliemae/ds-imagelibrarymodal": "3.60.0-next.64",
132
+ "@elliemae/ds-layout-provider": "3.60.0-next.64",
133
+ "@elliemae/ds-loading-indicator": "3.60.0-next.64",
134
+ "@elliemae/ds-left-navigation": "3.60.0-next.64",
135
+ "@elliemae/ds-menu-button": "3.60.0-next.64",
136
+ "@elliemae/ds-indeterminate-progress-indicator": "3.60.0-next.64",
137
+ "@elliemae/ds-menu-items": "3.60.0-next.64",
138
+ "@elliemae/ds-menu-items-action": "3.60.0-next.64",
139
+ "@elliemae/ds-menu-items-commons": "3.60.0-next.64",
140
+ "@elliemae/ds-menu-items-multi": "3.60.0-next.64",
141
+ "@elliemae/ds-menu-items-section": "3.60.0-next.64",
142
+ "@elliemae/ds-menu-items-separator": "3.60.0-next.64",
143
+ "@elliemae/ds-menu-items-single": "3.60.0-next.64",
144
+ "@elliemae/ds-menu-items-single-with-submenu": "3.60.0-next.64",
145
+ "@elliemae/ds-menu-items-skeleton": "3.60.0-next.64",
146
+ "@elliemae/ds-menu-items-submenu": "3.60.0-next.64",
147
+ "@elliemae/ds-menu-tree-item": "3.60.0-next.64",
148
+ "@elliemae/ds-mobile": "3.60.0-next.64",
149
+ "@elliemae/ds-modal-slide": "3.60.0-next.64",
150
+ "@elliemae/ds-notification-badge": "3.60.0-next.64",
151
+ "@elliemae/ds-overlay": "3.60.0-next.64",
152
+ "@elliemae/ds-page-header-v1": "3.60.0-next.64",
153
+ "@elliemae/ds-page-layout": "3.60.0-next.64",
154
+ "@elliemae/ds-page-header": "3.60.0-next.64",
155
+ "@elliemae/ds-pagination": "3.60.0-next.64",
156
+ "@elliemae/ds-page-header-v2": "3.60.0-next.64",
157
+ "@elliemae/ds-popperjs": "3.60.0-next.64",
158
+ "@elliemae/ds-portal": "3.60.0-next.64",
159
+ "@elliemae/ds-pills-v2": "3.60.0-next.64",
160
+ "@elliemae/ds-props-helpers": "3.60.0-next.64",
161
+ "@elliemae/ds-progress-indicator": "3.60.0-next.64",
162
+ "@elliemae/ds-query-builder": "3.60.0-next.64",
163
+ "@elliemae/ds-read-more": "3.60.0-next.64",
164
+ "@elliemae/ds-resizeable-container": "3.60.0-next.64",
165
+ "@elliemae/ds-ribbon": "3.60.0-next.64",
166
+ "@elliemae/ds-separator": "3.60.0-next.64",
167
+ "@elliemae/ds-scrollable-container": "3.60.0-next.64",
168
+ "@elliemae/ds-shared": "3.60.0-next.64",
169
+ "@elliemae/ds-side-panel": "3.60.0-next.64",
170
+ "@elliemae/ds-shuttle-v2": "3.60.0-next.64",
171
+ "@elliemae/ds-side-panel-header": "3.60.0-next.64",
172
+ "@elliemae/ds-skeleton": "3.60.0-next.64",
173
+ "@elliemae/ds-slider-v2": "3.60.0-next.64",
174
+ "@elliemae/ds-square-indicator": "3.60.0-next.64",
175
+ "@elliemae/ds-stepper": "3.60.0-next.64",
176
+ "@elliemae/ds-svg": "3.60.0-next.64",
177
+ "@elliemae/ds-system": "3.60.0-next.64",
178
+ "@elliemae/ds-tabs": "3.60.0-next.64",
179
+ "@elliemae/ds-test-utils": "3.60.0-next.64",
180
+ "@elliemae/ds-toast": "3.60.0-next.64",
181
+ "@elliemae/ds-toolbar-v1": "3.60.0-next.64",
182
+ "@elliemae/ds-tooltip-v3": "3.60.0-next.64",
183
+ "@elliemae/ds-tree-model": "3.60.0-next.64",
184
+ "@elliemae/ds-transition": "3.60.0-next.64",
185
+ "@elliemae/ds-toolbar-v2": "3.60.0-next.64",
186
+ "@elliemae/ds-treeview": "3.60.0-next.64",
187
+ "@elliemae/ds-truncated-expandable-text": "3.60.0-next.64",
188
+ "@elliemae/ds-typescript-helpers": "3.60.0-next.64",
189
+ "@elliemae/ds-truncated-tooltip-text": "3.60.0-next.64",
190
+ "@elliemae/ds-typography": "3.60.0-next.64",
191
+ "@elliemae/ds-virtual-list": "3.60.0-next.64",
192
+ "@elliemae/ds-wizard": "3.60.0-next.64",
193
+ "@elliemae/ds-zustand-helpers": "3.60.0-next.64"
194
194
  },
195
195
  "publishConfig": {
196
196
  "access": "public"