dimsum-e2e-tests 3.60.0-next.4 → 3.60.0-next.41

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 (98) hide show
  1. package/CHANGELOG.md +212 -0
  2. package/ds-apppicker/DSAppPickerCO.js +10 -0
  3. package/ds-apppicker/reflow/DSAppPicker.reflow.visual.spec.js +36 -0
  4. package/ds-apppicker/slots/DSAppPicker.slots.func.spec.js +13 -0
  5. package/ds-chip/DSChip.visual.spec.js +18 -1
  6. package/ds-chip/DSChipCO.js +2 -0
  7. package/ds-chip/slots/DSChip.slots.func.spec.js +25 -0
  8. package/ds-controlled-form/ds-controlled-large-input-text/dialog/DSLargeInputText.dialog.visual.spec.js +1 -2
  9. package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +1 -1
  10. package/ds-data-table-async/DSDataTableCO.js +44 -2
  11. package/ds-data-table-async/components/FiltersCO.js +26 -0
  12. package/ds-data-table-async/date-filters/DSDataTable.date-range-keyboard.func.spec.js +172 -0
  13. package/ds-data-table-async/date-filters/DSDataTable.date-switcher-keyboard.func.spec.js +328 -0
  14. package/ds-data-table-async/date-filters/DSDataTable.single-date-keyboard.func.spec.js +136 -0
  15. package/ds-data-table-async/filters/DSDataTable.filter-role-dialog.func.spec.js +75 -0
  16. package/ds-data-table-async/filters/DSDataTable.filters.keybooard-nav.func.spec.js +12 -7
  17. package/ds-data-table-async/filters/DSDataTable.free-text-search.visual.spec.js +12 -17
  18. package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +1 -1
  19. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2-creatable.func.spec.js +78 -0
  20. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2.axe-core.func.spec.js +37 -0
  21. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2.func.spec.js +314 -0
  22. package/ds-data-table-async/filtersV2/DSDataTable.filtersV2.visual.spec.js +200 -0
  23. package/ds-data-table-async/skeleton/DSDataTable.skeleton-cells.axe-core.func.spec.js +24 -0
  24. package/ds-form-combobox-multi/DSComboboxMultiCO.js +6 -0
  25. package/ds-form-combobox-multi/aria-controls/DSComboboxMulti.aria-controls.func.spec.js +23 -0
  26. package/ds-form-combobox-multi/aria-multiselectable/DSComboboxMulti.aria-multiselectable.func.spec.js +21 -0
  27. package/ds-form-combobox-multi/menu-width/DSComboboxMulti.menu-width.visual.spec.js +35 -0
  28. package/ds-form-combobox-multi/slots/DSComboboxMulti.slots.visual.spec.js +1 -4
  29. package/ds-form-combobox-single/DSComboboxSingleCO.js +4 -0
  30. package/ds-form-combobox-single/aria-controls/DSComboboxSingle.aria-controls.func.spec.js +23 -0
  31. package/ds-form-combobox-single/menu-width/DSComboboxSingle.menu-width.visual.spec.js +37 -0
  32. package/ds-form-date-time-picker/date-time-full/DateTimePicker.func.spec.js +1 -1
  33. package/ds-global-header/GlobalHeaderCO.js +3 -3
  34. package/ds-global-header/slots/GlobalHeader.slots.func.spec.js +39 -39
  35. package/ds-leftnavigation/LeftNavigation.slots.func.spec.js +166 -109
  36. package/ds-leftnavigation/LeftNavigation.slots.visual.spec.js +4 -4
  37. package/ds-leftnavigation/LeftNavigationCO.js +20 -0
  38. package/ds-menu-button/DSMenuButtonCO.js +17 -1
  39. package/ds-menu-button/activable/DSMenuButton.activableMenuItem.visual.spec.js +27 -0
  40. package/ds-menu-button/activable/DSMenuButton.axe-core.activable.func.spec.js +26 -0
  41. package/ds-menu-button/basic/DSMenuButton.axe-core.basic.func.spec.js +26 -0
  42. package/ds-menu-button/basic/DSMenuButton.basic.visual.spec.js +27 -0
  43. package/ds-menu-button/disabled/DSMenuButton.axe-core.disabled.func.spec.js +6 -1
  44. package/ds-menu-button/disabled/DSMenuButton.disabled.visual.spec.js +27 -0
  45. package/ds-menu-button/group/DSMenuButton.axe-core.groupMenuItem.func.spec.js +26 -0
  46. package/ds-menu-button/group/DSMenuButton.groupMenuItem.func.spec.js +41 -0
  47. package/ds-menu-button/group/DSMenuButton.groupMenuItem.keyboardnav.func.spec.js +55 -0
  48. package/ds-menu-button/group/DSMenuButton.groupMenuItem.visual.spec.js +27 -0
  49. package/ds-menu-button/leftdecorations/DSMenuButton.axe-core.leftDecor.func.spec.js +6 -1
  50. package/ds-menu-button/leftdecorations/DSMenuButton.leftDecorations.func.spec.js +45 -0
  51. package/ds-menu-button/leftdecorations/DSMenuButton.leftDecorations.keyboardnav.func.spec.js +57 -0
  52. package/ds-menu-button/leftdecorations/DSMenuButton.leftDecorations.visual.spec.js +27 -0
  53. package/ds-menu-button/multiselect/DSMenuButton.multiSelectItem.visual.spec.js +36 -0
  54. package/ds-menu-button/nexttabstop/DSMenuButton.nextTabstop.keyboardnav.func.spec.js +53 -0
  55. package/ds-menu-button/singleSelect/DSMenuButton.singleSelectItem.visual.spec.js +34 -0
  56. package/ds-menu-button/skeleton/DSMenuButton.axe-core.skeletonMenuItem.func.spec.js +26 -0
  57. package/ds-menu-button/skeleton/DSMenuButton.skeletonMenuItem.func.spec.js +35 -0
  58. package/ds-menu-button/skeleton/DSMenuButton.skeletonMenuItem.visual.spec.js +20 -0
  59. package/ds-menu-button/submenu/DSMenuButton.subMenuItem.visual.spec.js +39 -0
  60. package/ds-menu-button/usecases/DSMenuButton.cardExample.visual.spec.js +20 -0
  61. package/ds-menu-button/usecases/DSMenuButton.pageHeaderExample.visual.spec.js +21 -0
  62. package/ds-menu-button/usecases/DSMenuButton.pageHeaderExampleWithDecos.visual.spec.js +23 -0
  63. package/ds-modal-slide/ModalSlideCO.js +6 -0
  64. package/ds-modal-slide/apply-aria-disabled/ModalSlide.applyAriaDisabled.visual.spec.js +39 -0
  65. package/ds-modal-slide/custom-header/ModalSlide.customHeader.focusRing.visual.spec.js +25 -0
  66. package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +1 -1
  67. package/ds-notification-badge/DSNotificationBadge.global-attributes.func.spec.js +23 -0
  68. package/ds-notification-badge/DSNotificationBadgeCO.js +10 -4
  69. package/ds-page-header/DSPageHeader.visual.spec.js +14 -25
  70. package/ds-page-header/DSPageHeaderCO.js +2 -2
  71. package/ds-ribbon/DSRibbon.global-attr.axe-core.spec.js +22 -3
  72. package/ds-ribbon/DSRibbon.role-status.axe-core.spec.js +32 -0
  73. package/ds-ribbon/DSRibbon.theming.visual.spec.js +17 -0
  74. package/ds-ribbon/DSRibbonCO.js +65 -0
  75. package/ds-ribbon/slots/DSRibbon.slots.func.spec.js +63 -0
  76. package/ds-shuttle-v2/DSShuttleV2CO.js +6 -0
  77. package/ds-shuttle-v2/extra/DSShuttleV2.extra.func.spec.js +49 -0
  78. package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +27 -0
  79. package/ds-tab-button/DSTabButton.func.spec.js +24 -0
  80. package/ds-tab-button/DSTabButtonCO.js +16 -0
  81. package/ds-tabs/DSTabs.axe-core.func.spec.js +0 -54
  82. package/ds-tabs/DSTabs.func.spec.js +1 -167
  83. package/ds-tabs/DSTabs.visual.spec.js +13 -69
  84. package/ds-tabs/DSTabsCO.js +2 -36
  85. package/ds-tabs/aria-disabled/DSTabs.aria-disabled.visual.spec.js +2 -2
  86. package/ds-tabs/disabled/DSTabs.disabled.axe-core.func.spec.js +22 -0
  87. package/ds-tabs/disabled/DSTabs.disabled.func.spec.js +28 -0
  88. package/ds-tabs/disabled/DSTabs.disabled.visual.spec.js +58 -0
  89. package/ds-tabs/nested/DSTabs.nested.axe-core.func.spec.js +31 -0
  90. package/ds-tabs/nested/DSTabs.nested.func.spec.js +22 -0
  91. package/ds-tabs/nested/DSTabs.nested.visual.spec.js +30 -0
  92. package/ds-tabs/slots/DSTabs.slots.func.spec.js +47 -15
  93. package/ds-tabs/with-carousel/DSTabs.with-carousel.axe-core.func.spec.js +32 -0
  94. package/ds-tabs/with-carousel/DSTabs.with-carousel.func.spec.js +560 -0
  95. package/ds-tabs/with-carousel/DSTabs.with-carousel.visual.spec.js +169 -28
  96. package/helpers.js +4 -1
  97. package/package.json +190 -190
  98. package/paths.js +2 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,218 @@
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.41 (2026-03-18)
7
+
8
+ ### Bug Fixes
9
+
10
+ - ds-data-table:: improve filter change accessibility announcements pattern [PUI-17317](https://jira.elliemae.io/browse/PUI-17317) ([#7942](https://git.elliemae.io/platform-ui/dimsum/issues/7942)) ([065d07a](https://git.elliemae.io/platform-ui/dimsum/commit/065d07aa656694165393c662223b638dd19b7929))
11
+
12
+ ## 3.60.0-next.40 (2026-03-17)
13
+
14
+ ### Bug Fixes
15
+
16
+ - ds-data-table:: prevent focus loss on creatable add and submit on enter for FilterV2 [PUI-18111](https://jira.elliemae.io/browse/PUI-18111) ([#7939](https://git.elliemae.io/platform-ui/dimsum/issues/7939)) ([3845b06](https://git.elliemae.io/platform-ui/dimsum/commit/3845b068c97036ac8d06ae6aeda04861bfb0d112))
17
+
18
+ ## 3.60.0-next.39 (2026-03-16)
19
+
20
+ ### Bug Fixes
21
+
22
+ - ds-card-v1:: add slots showcase [PUI-15889] (https://jira.elliemae.io/browse/ PUI-15889) ([#7935](https://git.elliemae.io/platform-ui/dimsum/issues/7935)) ([fc928af](https://git.elliemae.io/platform-ui/dimsum/commit/fc928af506dac409c08bd074e9a14c6138272bf7))
23
+
24
+ ## 3.60.0-next.38 (2026-03-05)
25
+
26
+ ### Bug Fixes
27
+
28
+ - ds-card-v2:: added slot support [PUI-15890] (https://jira.elliemae.io/browse/PUI-15890) ([#7920](https://git.elliemae.io/platform-ui/dimsum/issues/7920)) ([c14f1e1](https://git.elliemae.io/platform-ui/dimsum/commit/c14f1e1345ead19e226bb34b360353221e5aa96f))
29
+
30
+ ## 3.60.0-next.37 (2026-03-05)
31
+
32
+ ### Features
33
+
34
+ - ds-data-table:: improve folder organization for filtersV2 and v1 vs v2 showcase ([#7919](https://git.elliemae.io/platform-ui/dimsum/issues/7919)) ([85e4fcb](https://git.elliemae.io/platform-ui/dimsum/commit/85e4fcbe61c1cea68baaf8205326d991f5b39476))
35
+
36
+ ## 3.60.0-next.36 (2026-03-03)
37
+
38
+ ### Bug Fixes
39
+
40
+ - dimsum:: storybook - fixed missing redux peer dep post legacy removal ([#7914](https://git.elliemae.io/platform-ui/dimsum/issues/7914)) ([473611c](https://git.elliemae.io/platform-ui/dimsum/commit/473611c112806728e0b5c0fca19743aa04abe8a9))
41
+
42
+ ## 3.60.0-next.35 (2026-03-03)
43
+
44
+ **Note:** Version bump only for package dimsum-e2e-tests
45
+
46
+ ## 3.60.0-next.34 (2026-03-02)
47
+
48
+ **Note:** Version bump only for package dimsum-e2e-tests
49
+
50
+ ## 3.60.0-next.33 (2026-02-27)
51
+
52
+ ### Features
53
+
54
+ - ds-global-header:: theming story [PUI-16360](https://jira.elliemae.io/browse/PUI-16360) ([#7901](https://git.elliemae.io/platform-ui/dimsum/issues/7901)) ([e6a3d8f](https://git.elliemae.io/platform-ui/dimsum/commit/e6a3d8f3ebfdf905e2a85e698ef35168771a7d4e))
55
+
56
+ ## 3.60.0-next.32 (2026-02-25)
57
+
58
+ ### Bug Fixes
59
+
60
+ - ds-data-table:: improve filters focus trap for consistent tab/shift+tab order [PUI-17922](https://jira.elliemae.io/browse/PUI-17922) ([#7900](https://git.elliemae.io/platform-ui/dimsum/issues/7900)) ([b9c579d](https://git.elliemae.io/platform-ui/dimsum/commit/b9c579d4ff5bf16e58aad6931e94a43bcece0a9c))
61
+
62
+ ## 3.60.0-next.31 (2026-02-25)
63
+
64
+ ### Features
65
+
66
+ - ds-menu-button:: enable playwright tests [PUI-16741](https://jira.elliemae.io/browse/PUI-16741) ([#7898](https://git.elliemae.io/platform-ui/dimsum/issues/7898)) ([580ea18](https://git.elliemae.io/platform-ui/dimsum/commit/580ea18cef699587201ced6444eee73936a85c4c))
67
+
68
+ ## 3.60.0-next.30 (2026-02-24)
69
+
70
+ ### Bug Fixes
71
+
72
+ - ds-codemods:: legacy-deprecation-26dot3 replaceAll for multi match fix ([#7897](https://git.elliemae.io/platform-ui/dimsum/issues/7897)) ([3b27f7e](https://git.elliemae.io/platform-ui/dimsum/commit/3b27f7e04a56ed2b14b12a1523748a1a4828c8a1))
73
+
74
+ ## 3.60.0-next.29 (2026-02-23)
75
+
76
+ ### Bug Fixes
77
+
78
+ - ds-tabs:: add functional test for tabs with scrollbar - keyboard nav [PUI-17883](https://jira.elliemae.io/browse/PUI-17883) ([#7895](https://git.elliemae.io/platform-ui/dimsum/issues/7895)) ([bbd1058](https://git.elliemae.io/platform-ui/dimsum/commit/bbd1058f2f1dac1e3f942bca697b304d28996986))
79
+
80
+ ## 3.60.0-next.28 (2026-02-20)
81
+
82
+ ### Bug Fixes
83
+
84
+ - ds-left-navigation:: add functional test for slots customization [PUI-15560](https://jira.elliemae.io/browse/PUI-15560) ([#7892](https://git.elliemae.io/platform-ui/dimsum/issues/7892)) ([6732509](https://git.elliemae.io/platform-ui/dimsum/commit/6732509aaaafeb3c3cc4f2e8e85986177b782c58))
85
+
86
+ ## 3.60.0-next.27 (2026-02-20)
87
+
88
+ ### Bug Fixes
89
+
90
+ - ds-tabs:: show outline in tabpanel ([b9db99f](https://git.elliemae.io/platform-ui/dimsum/commit/b9db99ff6878f67c06cb1abe0e813a85b3ce8dfe))
91
+
92
+ ## 3.60.0-next.26 (2026-02-19)
93
+
94
+ ### Features
95
+
96
+ - ds-global-header:: search-toggle story improved a11y + improved slots support [PUI-17852](https://jira.elliemae.io/browse/PUI-17852) ([#7891](https://git.elliemae.io/platform-ui/dimsum/issues/7891)) ([bed0e22](https://git.elliemae.io/platform-ui/dimsum/commit/bed0e22851cfa990994790f064a0bf1606928645))
97
+
98
+ ## 3.60.0-next.25 (2026-02-19)
99
+
100
+ ### Bug Fixes
101
+
102
+ - ds-global-header:: fixed unit test + slots to dimsum pattern compliancy ([#7889](https://git.elliemae.io/platform-ui/dimsum/issues/7889)) ([7198f8a](https://git.elliemae.io/platform-ui/dimsum/commit/7198f8afcdaa884886c90ac1e492ff82315837cf))
103
+
104
+ ## 3.60.0-next.24 (2026-02-17)
105
+
106
+ ### Features
107
+
108
+ - ds-ribbon:: role analysis and show example using role=status [PUI-17480](https://jira.elliemae.io/browse/PUI-17480) ([#7880](https://git.elliemae.io/platform-ui/dimsum/issues/7880)) ([034a59a](https://git.elliemae.io/platform-ui/dimsum/commit/034a59a2f1449599310d9788dfce12ba8037eb95))
109
+
110
+ ## 3.60.0-next.23 (2026-02-17)
111
+
112
+ **Note:** Version bump only for package dimsum-e2e-tests
113
+
114
+ ## 3.60.0-next.22 (2026-02-16)
115
+
116
+ ### Features
117
+
118
+ - ds-ribbon:: slots usege example and theming support story [PUI-17442](https://jira.elliemae.io/browse/PUI-17442) ([#7879](https://git.elliemae.io/platform-ui/dimsum/issues/7879)) ([a951520](https://git.elliemae.io/platform-ui/dimsum/commit/a951520b52988b331cb495260326ff5750529873))
119
+
120
+ ## 3.60.0-next.21 (2026-02-16)
121
+
122
+ ### Features
123
+
124
+ - ds-chat-bubble:: implement slots in Chat Bubble [PUI-17908](https://jira.elliemae.io/browse/PUI-17908) ([#7877](https://git.elliemae.io/platform-ui/dimsum/issues/7877)) ([9558f1d](https://git.elliemae.io/platform-ui/dimsum/commit/9558f1d0465417ddfd07500728d49b4cceb12cd8))
125
+
126
+ ## 3.60.0-next.20 (2026-02-13)
127
+
128
+ ### Bug Fixes
129
+
130
+ - ds-chip:: update E2E test selectors and chip XPath queries [PUI-17896](https://jira.elliemae.io/browse/PUI-17896) ([#7875](https://git.elliemae.io/platform-ui/dimsum/issues/7875)) ([f682a0a](https://git.elliemae.io/platform-ui/dimsum/commit/f682a0a99c8b01ed886f13d1f5835f10c9e8ae44))
131
+
132
+ ## 3.60.0-next.19 (2026-02-12)
133
+
134
+ ### Features
135
+
136
+ - ds-ribbon:: typescript fixes by dimsum alignment [PUI-17478](https://jira.elliemae.io/browse/PUI-17478)([#7870](https://git.elliemae.io/platform-ui/dimsum/issues/7870)) ([6dcb730](https://git.elliemae.io/platform-ui/dimsum/commit/6dcb730e31dcb4cfab2e863db38c01de894a7af9))
137
+
138
+ ## 3.60.0-next.18 (2026-02-09)
139
+
140
+ ### Bug Fixes
141
+
142
+ - ds-left-navigation:: e2e story for detected missing slots [PUI-15560](https://jira.elliemae.io/browse/PUI-15560) ([#7864](https://git.elliemae.io/platform-ui/dimsum/issues/7864)) ([37e630b](https://git.elliemae.io/platform-ui/dimsum/commit/37e630be9e1023dee24e17a3e49da1d53d351060))
143
+
144
+ ## 3.60.0-next.17 (2026-02-06)
145
+
146
+ ### Features
147
+
148
+ - ds-global-header:: search toggle example improve [PUI-17487](https://jira.elliemae.io/browse/PUI-17487) ([#7862](https://git.elliemae.io/platform-ui/dimsum/issues/7862)) ([8d268f8](https://git.elliemae.io/platform-ui/dimsum/commit/8d268f8fa3a8e4a065b1897128a866eb2af1c050))
149
+
150
+ ## 3.60.0-next.16 (2026-02-06)
151
+
152
+ ### Features
153
+
154
+ - ds-global-header:: search toggle tests [PUI-17487](https://jira.elliemae.io/browse/PUI-17487) ([#7861](https://git.elliemae.io/platform-ui/dimsum/issues/7861)) ([039b36d](https://git.elliemae.io/platform-ui/dimsum/commit/039b36dd5bf53053cf5d7e636ba0f7dbd17bff11))
155
+
156
+ ## 3.60.0-next.15 (2026-01-29)
157
+
158
+ ### Features
159
+
160
+ - dimsum:: upgraded third party libraries [PUI-17276](https://jira.elliemae.io/browse/PUI-17276) ([#7833](https://git.elliemae.io/platform-ui/dimsum/issues/7833)) ([361aafb](https://git.elliemae.io/platform-ui/dimsum/commit/361aafb523a55187f0951f4a2b338458f8198c97))
161
+
162
+ ## 3.60.0-next.14 (2026-01-26)
163
+
164
+ ### Features
165
+
166
+ - ds-menu-button:: slots and unit tests support [PUI-17708](https://jira.elliemae.io/browse/PUI-17708) ([#7822](https://git.elliemae.io/platform-ui/dimsum/issues/7822)) ([211afa4](https://git.elliemae.io/platform-ui/dimsum/commit/211afa4b48182892a8945e08c69d693021684986))
167
+
168
+ ## 3.60.0-next.13 (2026-01-20)
169
+
170
+ ### Bug Fixes
171
+
172
+ - ds-dialog:: raise condition caused by layout effect [PUI-17804](https://jira.elliemae.io/browse/PUI-17804)([#7826](https://git.elliemae.io/platform-ui/dimsum/issues/7826)) ([c07f693](https://git.elliemae.io/platform-ui/dimsum/commit/c07f69337344e77e0b3bfb0974b171c410972a06))
173
+
174
+ ## 3.60.0-next.12 (2026-01-16)
175
+
176
+ ### Features
177
+
178
+ - dimsum:: fixed dependencies and added knip for reports [PUI-17275](https://jira.elliemae.io/browse/PUI-17275) ([#7824](https://git.elliemae.io/platform-ui/dimsum/issues/7824)) ([65b7cf4](https://git.elliemae.io/platform-ui/dimsum/commit/65b7cf4e3558d20957adc405bd91ea9370b11589))
179
+
180
+ ## 3.60.0-next.11 (2026-01-14)
181
+
182
+ ### Features
183
+
184
+ - ds-tabs:: update carousel to horizontal scroll [PUI-17483](https://jira.elliemae.io/browse/PUI-17483) ([#7821](https://git.elliemae.io/platform-ui/dimsum/issues/7821)) ([9cfe8a5](https://git.elliemae.io/platform-ui/dimsum/commit/9cfe8a56d6277fe4fc9ffcf9c9dfb97dff7adfbf))
185
+
186
+ ## 3.60.0-next.10 (2026-01-14)
187
+
188
+ ### Bug Fixes
189
+
190
+ - ds-app-picker:: support global attributes [PUI-17246](https://jira.elliemae.io/browse/PUI-17246) ([#7820](https://git.elliemae.io/platform-ui/dimsum/issues/7820)) ([1b2a2ea](https://git.elliemae.io/platform-ui/dimsum/commit/1b2a2ea55ca4ea19386e891be939c3615a244468))
191
+
192
+ ## [3.60.0-next.9](https://git.elliemae.io/platform-ui/dimsum/compare/v3.60.0-next.8...v3.60.0-next.9) (2026-01-13)
193
+
194
+ **Note:** Version bump only for package dimsum-e2e-tests
195
+
196
+ ## 3.60.0-next.8 (2026-01-13)
197
+
198
+ **Note:** Version bump only for package dimsum-e2e-tests
199
+
200
+ ## 3.60.0-next.7 (2026-01-12)
201
+
202
+ ### Bug Fixes
203
+
204
+ - ds-chip:: custom attributes and folder organization [PUI-14876] (https://jira.elliemae.io/browse/PUI-14876) ([#7819](https://git.elliemae.io/platform-ui/dimsum/issues/7819)) ([7025b86](https://git.elliemae.io/platform-ui/dimsum/commit/7025b865a1d0ca1cdc02aa07353a79eab3910356))
205
+
206
+ ## 3.60.0-next.6 (2026-01-12)
207
+
208
+ ### Bug Fixes
209
+
210
+ - ds-floating-context:: remove console error when main is not defined [PUI-17776](https://jira.elliemae.io/browse/PUI-17776) ([#7814](https://git.elliemae.io/platform-ui/dimsum/issues/7814)) ([1084971](https://git.elliemae.io/platform-ui/dimsum/commit/1084971375947009d2497e10237d015100543887))
211
+
212
+ ## 3.60.0-next.5 (2026-01-09)
213
+
214
+ ### Features
215
+
216
+ - dimsum:: update percy and pui-e2e-test-sdk dependencies [PUI-17773](https://jira.elliemae.io/browse/PUI-17773) ([#7815](https://git.elliemae.io/platform-ui/dimsum/issues/7815)) ([0aa68b6](https://git.elliemae.io/platform-ui/dimsum/commit/0aa68b6031f7e88526ce0b04581cf0134bc6d216))
217
+
6
218
  ## 3.60.0-next.4 (2026-01-09)
7
219
 
8
220
  ### Bug Fixes
@@ -16,6 +16,8 @@ export default class DSAppPickerCO extends PageObject {
16
16
 
17
17
  static applyAriaDisabledURL = new Urlbuilder(`${PATH_E2E_APP_PICKER}`, 'apply-aria-disabled-test');
18
18
 
19
+ static reflowURL = new Urlbuilder(`${PATH_E2E_APP_PICKER}`, 'reflow-test');
20
+
19
21
  // Snapshots
20
22
  static snapshotPath(example = 'basic') {
21
23
  return PageObject.getSnapshotPathBuilder('AppPicker', example);
@@ -37,6 +39,14 @@ export default class DSAppPickerCO extends PageObject {
37
39
  static getChipByLabel = async (label) =>
38
40
  $(`//button[@data-testid="app-picker__chip"]/div/span[contains(text(),"${label}")]//ancestor::button`);
39
41
 
42
+ static getChipsByLabel = async (label) =>
43
+ $$(`//button[@data-testid="app-picker__chip"]/div/span[contains(text(),"${label}")]//ancestor::button`);
44
+
45
+ static getChipByLabelAndIndex = async (label, index) => {
46
+ const chips = await DSAppPickerCO.getChipsByLabel(label);
47
+ return chips[index];
48
+ };
49
+
40
50
  static async getAppPickerRoot() {
41
51
  return $('[data-testid="ds-apppicker-root"]');
42
52
  }
@@ -0,0 +1,36 @@
1
+ /* eslint-disable wdio/no-pause */
2
+ import DSAppPickerCO from '../DSAppPickerCO';
3
+
4
+ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
5
+ describe('PUI-17867 - AppPicker:: Reflow test -visual', () => {
6
+ before('loading page', async () => {
7
+ const errorOnGo = await DSAppPickerCO.reflowURL.go();
8
+ if (errorOnGo) throw errorOnGo;
9
+ await browser.maximizeWindow();
10
+ });
11
+
12
+ it('01: should show appPicker open', async () => {
13
+ const openAppPickerBtn = await DSAppPickerCO.getOpenAppPicker();
14
+ await openAppPickerBtn.click();
15
+ const snapshot = await browser.percyCheckScreenshot(DSAppPickerCO.snapshotPath('reflow-appPicker-open'));
16
+ await expect(snapshot).toEqual(0);
17
+ });
18
+
19
+ it('02: should scroll to the 2nd Pipeline chip', async () => {
20
+ const secondPipelineChip = await DSAppPickerCO.getChipByLabelAndIndex('Pipeline', 1);
21
+ await secondPipelineChip.scrollIntoView();
22
+ await browser.pause(300);
23
+ const snapshot = await browser.percyCheckScreenshot(DSAppPickerCO.snapshotPath('reflow-appPicker-scrolled'));
24
+ await expect(snapshot).toEqual(0);
25
+ });
26
+
27
+ it('03: should select the 2nd Pipeline chip', async () => {
28
+ const secondPipelineChip = await DSAppPickerCO.getChipByLabelAndIndex('Pipeline', 1);
29
+ await secondPipelineChip.click();
30
+ const snapshot = await browser.percyCheckScreenshot(
31
+ DSAppPickerCO.snapshotPath('reflow-appPicker-pipeline-selected'),
32
+ );
33
+ await expect(snapshot).toEqual(0);
34
+ });
35
+ });
36
+ }
@@ -39,5 +39,18 @@ if (
39
39
  await expect(titleSlot).toHaveAttribute('aria-label', 'im title aria');
40
40
  await expect(separatorSlot).toHaveAttribute('aria-label', 'im separator aria');
41
41
  });
42
+ it('03: should have custom data-public for each slot', async () => {
43
+ const itemSlot = await DSAppPickerCO.getItemSlotByIndex();
44
+ const rowSlot = await DSAppPickerCO.getRowSlotByIndex();
45
+ const rootSlot = await DSAppPickerCO.getRootSlotByIndex();
46
+ const titleSlot = await DSAppPickerCO.getTitleSlotByIndex();
47
+ const separatorSlot = await DSAppPickerCO.getSeparatorSlotByIndex();
48
+ await rootSlot.waitForDisplayed();
49
+ await expect(itemSlot).toHaveAttribute('data-public', 'item-custom-attribute');
50
+ await expect(rowSlot).toHaveAttribute('data-public', 'row-custom-attribute');
51
+ await expect(rootSlot).toHaveAttribute('data-public', 'root-custom-attribute');
52
+ await expect(titleSlot).toHaveAttribute('data-public', 'title-custom-attribute');
53
+ await expect(separatorSlot).toHaveAttribute('data-public', 'separator-custom-attribute');
54
+ });
42
55
  });
43
56
  }
@@ -33,7 +33,24 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
33
33
  });
34
34
  });
35
35
 
36
- describe('PUI-8928 - Chip, Styles -visual', () => {
36
+ describe('PUI-17879 - Chip, Basic & Labels -Visual', () => {
37
+ before('loading page', async () => {
38
+ const errorOnGo = await DSChipCO.basicURL.go();
39
+ if (errorOnGo) throw errorOnGo;
40
+ });
41
+ it('01: should show basic chips by default', async () => {
42
+ await (await DSChipCO.getChipByIndex(1)).waitForDisplayed();
43
+ const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('dschips-basic-default'));
44
+ await expect(snapshot).toEqual(0);
45
+ });
46
+ it('02: truncated chip should show text on hover', async () => {
47
+ await mouseOver(await DSChipCO.getChipByIndex(3));
48
+ const snapshot = await browser.percyCheckScreenshot(DSChipCO.snapshotPath('dschips-basic-untruncated'));
49
+ await expect(snapshot).toEqual(0);
50
+ });
51
+ });
52
+
53
+ describe('PUI-17879 - Chip, Styles -visual', () => {
37
54
  before('loading page', async () => {
38
55
  const errorOnGo = await DSChipCO.shapeURL.go();
39
56
  if (errorOnGo) throw errorOnGo;
@@ -16,6 +16,8 @@ export default class DSChipCO extends PageObject {
16
16
 
17
17
  static applyAriaDisabledURL = new Urlbuilder(PATH_E2E_CHIP, 'apply-aria-disabled-test');
18
18
 
19
+ static customAttributesUsageURL = new Urlbuilder(PATH_E2E_CHIP, 'custom-attributes-usage-test');
20
+
19
21
  // Snapshots
20
22
  static snapshotPath(example = 'basic') {
21
23
  return PageObject.getSnapshotPathBuilder('Chip', example);
@@ -1,4 +1,5 @@
1
1
  import DSChipCO from '../DSChipCO';
2
+ import DSAppPickerCO from '../../ds-apppicker/DSAppPickerCO';
2
3
 
3
4
  if (
4
5
  (!browser.capabilities['ice:options'].isPhone &&
@@ -36,4 +37,28 @@ if (
36
37
  await expect(ellipsisSlot).toHaveAttribute('aria-label', 'ellipsis aria');
37
38
  });
38
39
  });
40
+ describe('PUI-17787 - Chip: Custom Attributes Usage -Func', () => {
41
+ before('loading page', async () => {
42
+ const errorOnGo = await DSChipCO.customAttributesUsageURL.go();
43
+ if (errorOnGo) throw errorOnGo;
44
+ });
45
+ it('01: should have custom aria-* for each Chip', async () => {
46
+ const triggerButton = await DSAppPickerCO.getOpenAppPicker();
47
+ await triggerButton.click();
48
+ const chip0 = await DSChipCO.getChipButtonByIndex(0);
49
+ const chip1 = await DSChipCO.getChipButtonByIndex(1);
50
+ const chip2 = await DSChipCO.getChipButtonByIndex(2);
51
+ await expect(chip0).toHaveAttribute('aria-label', 'open dashboard overview');
52
+ await expect(chip1).toHaveAttribute('aria-label', 'navigate to Pipeline app');
53
+ await expect(chip2).toHaveAttribute('aria-label', 'navigate to Calendar app');
54
+ });
55
+ it('02: should have custom lang-* for each Chip', async () => {
56
+ const chip0 = await DSChipCO.getChipButtonByIndex(0);
57
+ const chip1 = await DSChipCO.getChipButtonByIndex(1);
58
+ const chip2 = await DSChipCO.getChipButtonByIndex(2);
59
+ await expect(chip0).toHaveAttribute('lang', 'sp');
60
+ await expect(chip1).toHaveAttribute('lang', 'en');
61
+ await expect(chip2).toHaveAttribute('lang', 'en');
62
+ });
63
+ });
39
64
  }
@@ -1,6 +1,5 @@
1
1
  /* eslint-disable max-len */
2
2
  import DSLargeInputTextCO from '../DSLargeInputTextCO';
3
- import { type } from '../../../helpers';
4
3
 
5
4
  if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
6
5
  describe('PUI-10395 - LargeInputText:: Dialog integration - Visual Test', () => {
@@ -13,7 +12,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
13
12
  await dialogTrigger.click();
14
13
  const input = await DSLargeInputTextCO.getInputByIndex(0);
15
14
  await input.click();
16
- await type(
15
+ await input.setValue(
17
16
  'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.',
18
17
  );
19
18
  const snapshot = await browser.checkSnapshot(DSLargeInputTextCO.snapshotPath('large-inputs-dialog'));
@@ -68,7 +68,7 @@ if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:o
68
68
  const inputValue = await input.getAttribute('aria-label');
69
69
  // eslint-disable-next-line max-len
70
70
  await expect(inputValue).toEqual(
71
- 'month input field, current values: November, twentie second, 3333, 4, 45, ante meridiem',
71
+ 'month input field, current values: November, twenty second, 3333, 4, 45, ante meridiem',
72
72
  );
73
73
  });
74
74
  });
@@ -4,6 +4,7 @@ import {
4
4
  PATH_E2E_DATATABLE,
5
5
  PATH_E2E_DATATABLE_DND,
6
6
  PATH_E2E_DATATABLE_FILTERS,
7
+ PATH_E2E_DATATABLE_FILTERS_V2,
7
8
  PATH_E2E_DATATABLE_ADVANCED,
8
9
  PATH_E2E_DATATABLE_ROW,
9
10
  PATH_E2E_DATATABLE_COLUMN,
@@ -93,6 +94,44 @@ export default class DataTableCO extends PageObject {
93
94
 
94
95
  static freeTextSearchFilter = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS, 'free-text-search-filter');
95
96
 
97
+ static filteredColumnWithAllFilterTypes = new Urlbuilder(
98
+ PATH_E2E_DATATABLE_FILTERS,
99
+ 'filtered-column-with-all-filter-types',
100
+ );
101
+
102
+ static singleDateFilter = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS, 'single-date-filter');
103
+
104
+ static dateRangeFilter = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS, 'date-range-filter');
105
+
106
+ static dateSwitcherFilter = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS, 'date-switcher-filter');
107
+
108
+ // Filters V2
109
+
110
+ static singleSelectFilterV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'single-select-filter-v-2');
111
+
112
+ static creatableSelectFilterV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'creatable-select-filter-v-2');
113
+
114
+ static multiSelectFilterV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'multi-select-filter-v-2');
115
+
116
+ static creatableMultiSelectFilterV2 = new Urlbuilder(
117
+ PATH_E2E_DATATABLE_FILTERS_V2,
118
+ 'creatable-multi-select-filter-v-2',
119
+ );
120
+
121
+ static freeTextSearchFilterV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'free-text-search-filter-v-2');
122
+
123
+ static singleDateFilterV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'single-date-filter-v-2');
124
+
125
+ static dateRangeFilterV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'date-range-filter-v-2');
126
+
127
+ static dateSwitcherFilterV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'date-switcher-filter-v-2');
128
+
129
+ static numberRangeFilterV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'number-range-filter-v-2');
130
+
131
+ static currencyRangeFilterV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'currency-range-filter-v-2');
132
+
133
+ static allFiltersV2 = new Urlbuilder(PATH_E2E_DATATABLE_FILTERS_V2, 'all-filters-v-2');
134
+
96
135
  // ADVANCED
97
136
 
98
137
  static groupByCol = new Urlbuilder(PATH_E2E_DATATABLE_ADVANCED, 'group-by-column');
@@ -148,6 +187,11 @@ export default class DataTableCO extends PageObject {
148
187
  'column-grouping-with-hidden-columns-test',
149
188
  );
150
189
 
190
+ static groupedResizebleAndHidden = new Urlbuilder(
191
+ PATH_E2E_DATATABLE_COLUMN,
192
+ 'grouping-with-hidden-and-resizable-columns',
193
+ );
194
+
151
195
  // Text Wrapping
152
196
 
153
197
  static textWrapTruncColumn = new Urlbuilder(PATH_E2E_DATATABLE_TEXT_WRAPPING, 'text-wrap-truncate-column');
@@ -233,8 +277,6 @@ export default class DataTableCO extends PageObject {
233
277
 
234
278
  static expandableWithModalSlide = new Urlbuilder(PATH_E2E_DATATABLE, 'expandable-with-modal-slide');
235
279
 
236
- static groupedResizebleAndHidden = new Urlbuilder(PATH_E2E_DATATABLE, 'grouping-with-hidden-and-resizable-columns');
237
-
238
280
  static datatableInsideTabs = new Urlbuilder(PATH_E2E_DATATABLE, 'pui-8529-datatable-inside-tabs');
239
281
 
240
282
  static selectMultipleNoGlobalDisabled = new Urlbuilder(PATH_E2E_DATATABLE, 'select-multiple-no-global-disabled');
@@ -150,4 +150,30 @@ export default class FiltersCO extends PageObject {
150
150
  static getFreeTextSearchWrapperSlot = async () => $('[data-dimsum-slot="dsDatatableFreeTextSearchWrapper"]');
151
151
 
152
152
  static getFreeTextSearchFilterSlot = async () => $('[data-dimsum-parent-slot="dsDatatableFreeTextSearchFilter"]');
153
+
154
+ static getFilterMenuContent = async () => $('[data-testid="data-table-filter-menu-content"]');
155
+
156
+ // Calendar navigation buttons (shared across Single Date, Date Range, Date Switcher)
157
+
158
+ static getCalendarPrevYearButton = async () => $('[data-testid="ds-controlled-date-time-picker-calendar-prev-year"]');
159
+
160
+ static getCalendarPrevMonthButton = async () =>
161
+ $('[data-testid="ds-controlled-date-time-picker-calendar-prev-month"]');
162
+
163
+ static getCalendarNextMonthButton = async () =>
164
+ $('[data-testid="ds-controlled-date-time-picker-calendar-next-month"]');
165
+
166
+ static getCalendarNextYearButton = async () => $('[data-testid="ds-controlled-date-time-picker-calendar-next-year"]');
167
+
168
+ static getCalendarFocusedDay = async () => $('[data-testid="ds-controlled-date-time-picker-calendar-focused-day"]');
169
+
170
+ // V2 Filter Footer
171
+
172
+ static getFilterFooter = async () => $('[data-testid="ds-datatable-filter-popover-footer"]');
173
+
174
+ static getFilterApplyButton = async () =>
175
+ $('[data-testid="ds-datatable-filter-popover-footer"] button[type="submit"]');
176
+
177
+ static getFilterResetButton = async () =>
178
+ (await $('[data-testid="ds-datatable-filter-popover-footer"]')).$('button*=Reset');
153
179
  }