@sapudex/web-components 2.59.0 → 2.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/cypress/specs/Carousel.cy.tsx +46 -0
  2. package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +52 -3
  3. package/cypress/specs/SelectBox.cy.tsx +390 -252
  4. package/cypress/specs/SideNavigation.cy.tsx +509 -0
  5. package/cypress/specs/Table.cy.tsx +90 -0
  6. package/cypress/support/component-imports.instrumented.ts +6 -0
  7. package/cypress/support/component-imports.src.ts +6 -0
  8. package/dist/Carousel.d.ts +1 -0
  9. package/dist/Carousel.js +16 -1
  10. package/dist/Carousel.js.map +1 -1
  11. package/dist/ListGroupHeaderBase.js +9 -0
  12. package/dist/ListGroupHeaderBase.js.map +1 -1
  13. package/dist/ListGroupHeaderTemplate.js +15 -1
  14. package/dist/ListGroupHeaderTemplate.js.map +1 -1
  15. package/dist/MastheadCountrySelectorTemplate.js +1 -1
  16. package/dist/MastheadCountrySelectorTemplate.js.map +1 -1
  17. package/dist/Pagination.d.ts +0 -1
  18. package/dist/Pagination.js +2 -2
  19. package/dist/Pagination.js.map +1 -1
  20. package/dist/SearchableListBaseTemplate.js +0 -1
  21. package/dist/SearchableListBaseTemplate.js.map +1 -1
  22. package/dist/SecondaryNavigation.d.ts +2 -1
  23. package/dist/SecondaryNavigation.js.map +1 -1
  24. package/dist/SecondaryNavigationItem.js +12 -6
  25. package/dist/SecondaryNavigationItem.js.map +1 -1
  26. package/dist/SecondaryNavigationTemplate.js +1 -2
  27. package/dist/SecondaryNavigationTemplate.js.map +1 -1
  28. package/dist/SelectBase.d.ts +7 -2
  29. package/dist/SelectBase.js +27 -39
  30. package/dist/SelectBase.js.map +1 -1
  31. package/dist/SideNavigation.d.ts +23 -0
  32. package/dist/SideNavigation.js +39 -0
  33. package/dist/SideNavigation.js.map +1 -1
  34. package/dist/SideNavigationItem.d.ts +10 -0
  35. package/dist/SideNavigationItem.js +67 -0
  36. package/dist/SideNavigationItem.js.map +1 -1
  37. package/dist/SideNavigationMobileTemplate.js +1 -1
  38. package/dist/SideNavigationMobileTemplate.js.map +1 -1
  39. package/dist/SideNavigationSubItem.d.ts +23 -0
  40. package/dist/SideNavigationSubItem.js +103 -0
  41. package/dist/SideNavigationSubItem.js.map +1 -1
  42. package/dist/SideNavigationSubItemTemplate.d.ts +2 -0
  43. package/dist/SideNavigationSubItemTemplate.js +10 -0
  44. package/dist/SideNavigationSubItemTemplate.js.map +1 -0
  45. package/dist/Table.js +1 -1
  46. package/dist/Table.js.map +1 -1
  47. package/dist/TableCell.d.ts +8 -2
  48. package/dist/TableCell.js +13 -11
  49. package/dist/TableCell.js.map +1 -1
  50. package/dist/TableCellBase.d.ts +2 -1
  51. package/dist/TableCellBase.js +9 -0
  52. package/dist/TableCellBase.js.map +1 -1
  53. package/dist/TableHeaderCell.d.ts +0 -1
  54. package/dist/TableHeaderCell.js +0 -4
  55. package/dist/TableHeaderCell.js.map +1 -1
  56. package/dist/TableRow.d.ts +10 -0
  57. package/dist/TableRow.js +23 -0
  58. package/dist/TableRow.js.map +1 -1
  59. package/dist/UploadItem.js +3 -4
  60. package/dist/UploadItem.js.map +1 -1
  61. package/dist/assets/{InputSuggestions-CloTVyrf.js → InputSuggestions-1OnUn6pM.js} +1 -1
  62. package/dist/assets/{ListItemStandardExpandableTextTemplate-DpquSMb2.js → ListItemStandardExpandableTextTemplate-CoBAMp_v.js} +1 -1
  63. package/dist/assets/{bundle.esm-Cyz8a5IX.js → bundle.esm-BqaVWFKf.js} +233 -233
  64. package/dist/css/themes/AccordionSpotlight.css +1 -1
  65. package/dist/css/themes/Contact.css +1 -1
  66. package/dist/css/themes/EventRibbon.css +1 -1
  67. package/dist/css/themes/Feed.css +1 -1
  68. package/dist/css/themes/FeedItem.css +1 -1
  69. package/dist/css/themes/HeroBanner.css +1 -1
  70. package/dist/css/themes/ImageGridCloud.css +1 -1
  71. package/dist/css/themes/ImageGridTicker.css +1 -1
  72. package/dist/css/themes/ImageGridTickerItem.css +1 -1
  73. package/dist/css/themes/LinkList.css +1 -1
  74. package/dist/css/themes/ListGroupHeader.css +1 -1
  75. package/dist/css/themes/MastheadCountrySelector.css +1 -1
  76. package/dist/css/themes/MastheadItem.css +1 -1
  77. package/dist/css/themes/MastheadMenu.css +1 -1
  78. package/dist/css/themes/MastheadMenuItem.css +1 -1
  79. package/dist/css/themes/MastheadMobileMenu.css +1 -1
  80. package/dist/css/themes/MastheadProfileMenu.css +1 -1
  81. package/dist/css/themes/MastheadShell.css +1 -1
  82. package/dist/css/themes/MessageStrip.css +1 -1
  83. package/dist/css/themes/Modal.css +1 -1
  84. package/dist/css/themes/Pagination.css +1 -1
  85. package/dist/css/themes/PromoTile.css +1 -1
  86. package/dist/css/themes/Quote.css +1 -1
  87. package/dist/css/themes/Review.css +1 -1
  88. package/dist/css/themes/ReviewItem.css +1 -1
  89. package/dist/css/themes/SecondaryNavigation.css +1 -1
  90. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  91. package/dist/css/themes/SelectBase.css +1 -1
  92. package/dist/css/themes/SideNavigation.css +1 -1
  93. package/dist/css/themes/SideNavigationItem.css +1 -1
  94. package/dist/css/themes/SideNavigationMobile.css +1 -1
  95. package/dist/css/themes/SideNavigationMobileDropdown.css +1 -1
  96. package/dist/css/themes/SideNavigationSubItem.css +1 -1
  97. package/dist/css/themes/TabNavigation.css +1 -1
  98. package/dist/css/themes/Table.css +1 -1
  99. package/dist/css/themes/TableCellBase.css +1 -1
  100. package/dist/css/themes/Upload.css +1 -1
  101. package/dist/css/themes/UploadItem.css +1 -1
  102. package/dist/custom-elements-internal.json +155 -12
  103. package/dist/custom-elements.json +144 -19
  104. package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
  105. package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
  106. package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
  107. package/dist/generated/themes/Contact.css.d.ts +1 -1
  108. package/dist/generated/themes/Contact.css.js +1 -1
  109. package/dist/generated/themes/Contact.css.js.map +1 -1
  110. package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
  111. package/dist/generated/themes/EventRibbon.css.js +1 -1
  112. package/dist/generated/themes/EventRibbon.css.js.map +1 -1
  113. package/dist/generated/themes/Feed.css.d.ts +1 -1
  114. package/dist/generated/themes/Feed.css.js +1 -1
  115. package/dist/generated/themes/Feed.css.js.map +1 -1
  116. package/dist/generated/themes/FeedItem.css.d.ts +1 -1
  117. package/dist/generated/themes/FeedItem.css.js +1 -1
  118. package/dist/generated/themes/FeedItem.css.js.map +1 -1
  119. package/dist/generated/themes/HeroBanner.css.d.ts +1 -1
  120. package/dist/generated/themes/HeroBanner.css.js +1 -1
  121. package/dist/generated/themes/HeroBanner.css.js.map +1 -1
  122. package/dist/generated/themes/ImageGridCloud.css.d.ts +1 -1
  123. package/dist/generated/themes/ImageGridCloud.css.js +1 -1
  124. package/dist/generated/themes/ImageGridCloud.css.js.map +1 -1
  125. package/dist/generated/themes/ImageGridTicker.css.d.ts +1 -1
  126. package/dist/generated/themes/ImageGridTicker.css.js +1 -1
  127. package/dist/generated/themes/ImageGridTicker.css.js.map +1 -1
  128. package/dist/generated/themes/ImageGridTickerItem.css.d.ts +1 -1
  129. package/dist/generated/themes/ImageGridTickerItem.css.js +1 -1
  130. package/dist/generated/themes/ImageGridTickerItem.css.js.map +1 -1
  131. package/dist/generated/themes/LinkList.css.d.ts +1 -1
  132. package/dist/generated/themes/LinkList.css.js +1 -1
  133. package/dist/generated/themes/LinkList.css.js.map +1 -1
  134. package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
  135. package/dist/generated/themes/ListGroupHeader.css.js +1 -1
  136. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  137. package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
  138. package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
  139. package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
  140. package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
  141. package/dist/generated/themes/MastheadItem.css.js +1 -1
  142. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  143. package/dist/generated/themes/MastheadMenu.css.d.ts +1 -1
  144. package/dist/generated/themes/MastheadMenu.css.js +1 -1
  145. package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
  146. package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
  147. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  148. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  149. package/dist/generated/themes/MastheadMobileMenu.css.d.ts +1 -1
  150. package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
  151. package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
  152. package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
  153. package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
  154. package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
  155. package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
  156. package/dist/generated/themes/MastheadShell.css.js +1 -1
  157. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  158. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  159. package/dist/generated/themes/MessageStrip.css.js +1 -1
  160. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  161. package/dist/generated/themes/Modal.css.d.ts +1 -1
  162. package/dist/generated/themes/Modal.css.js +1 -1
  163. package/dist/generated/themes/Modal.css.js.map +1 -1
  164. package/dist/generated/themes/Pagination.css.d.ts +1 -1
  165. package/dist/generated/themes/Pagination.css.js +1 -1
  166. package/dist/generated/themes/Pagination.css.js.map +1 -1
  167. package/dist/generated/themes/PromoTile.css.d.ts +1 -1
  168. package/dist/generated/themes/PromoTile.css.js +1 -1
  169. package/dist/generated/themes/PromoTile.css.js.map +1 -1
  170. package/dist/generated/themes/Quote.css.d.ts +1 -1
  171. package/dist/generated/themes/Quote.css.js +1 -1
  172. package/dist/generated/themes/Quote.css.js.map +1 -1
  173. package/dist/generated/themes/Review.css.d.ts +1 -1
  174. package/dist/generated/themes/Review.css.js +1 -1
  175. package/dist/generated/themes/Review.css.js.map +1 -1
  176. package/dist/generated/themes/ReviewItem.css.d.ts +1 -1
  177. package/dist/generated/themes/ReviewItem.css.js +1 -1
  178. package/dist/generated/themes/ReviewItem.css.js.map +1 -1
  179. package/dist/generated/themes/SecondaryNavigation.css.d.ts +1 -1
  180. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  181. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  182. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
  183. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  184. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  185. package/dist/generated/themes/SelectBase.css.d.ts +1 -1
  186. package/dist/generated/themes/SelectBase.css.js +1 -1
  187. package/dist/generated/themes/SelectBase.css.js.map +1 -1
  188. package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
  189. package/dist/generated/themes/SideNavigation.css.js +1 -1
  190. package/dist/generated/themes/SideNavigation.css.js.map +1 -1
  191. package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
  192. package/dist/generated/themes/SideNavigationItem.css.js +1 -1
  193. package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
  194. package/dist/generated/themes/SideNavigationMobile.css.d.ts +1 -1
  195. package/dist/generated/themes/SideNavigationMobile.css.js +1 -1
  196. package/dist/generated/themes/SideNavigationMobile.css.js.map +1 -1
  197. package/dist/generated/themes/SideNavigationMobileDropdown.css.d.ts +1 -1
  198. package/dist/generated/themes/SideNavigationMobileDropdown.css.js +1 -1
  199. package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +1 -1
  200. package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
  201. package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
  202. package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
  203. package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
  204. package/dist/generated/themes/TabNavigation.css.js +1 -1
  205. package/dist/generated/themes/TabNavigation.css.js.map +1 -1
  206. package/dist/generated/themes/Table.css.d.ts +1 -1
  207. package/dist/generated/themes/Table.css.js +1 -1
  208. package/dist/generated/themes/Table.css.js.map +1 -1
  209. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  210. package/dist/generated/themes/TableCellBase.css.js +1 -1
  211. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  212. package/dist/generated/themes/Upload.css.d.ts +1 -1
  213. package/dist/generated/themes/Upload.css.js +1 -1
  214. package/dist/generated/themes/Upload.css.js.map +1 -1
  215. package/dist/generated/themes/UploadItem.css.d.ts +1 -1
  216. package/dist/generated/themes/UploadItem.css.js +1 -1
  217. package/dist/generated/themes/UploadItem.css.js.map +1 -1
  218. package/dist/types/Table.d.ts +6 -2
  219. package/dist/types/Table.js +7 -2
  220. package/dist/types/Table.js.map +1 -1
  221. package/dist/vscode.html-custom-data.json +44 -3
  222. package/dist/web-types.json +80 -6
  223. package/package.json +1 -1
  224. package/run-cypress.js +8 -1
  225. package/src/Carousel.ts +17 -1
  226. package/src/ListGroupHeaderBase.ts +9 -0
  227. package/src/ListGroupHeaderTemplate.tsx +15 -3
  228. package/src/MastheadCountrySelectorTemplate.tsx +3 -2
  229. package/src/Pagination.ts +2 -3
  230. package/src/SearchableListBaseTemplate.tsx +0 -1
  231. package/src/SecondaryNavigation.ts +2 -1
  232. package/src/SecondaryNavigationItem.ts +14 -6
  233. package/src/SecondaryNavigationTemplate.tsx +4 -6
  234. package/src/SelectBase.ts +30 -47
  235. package/src/SideNavigation.ts +35 -0
  236. package/src/SideNavigationItem.ts +75 -0
  237. package/src/SideNavigationMobileTemplate.tsx +2 -1
  238. package/src/SideNavigationSubItem.ts +117 -1
  239. package/src/SideNavigationSubItemTemplate.tsx +56 -0
  240. package/src/Table.ts +1 -2
  241. package/src/TableCell.ts +9 -12
  242. package/src/TableCellBase.ts +10 -1
  243. package/src/TableHeaderCell.ts +0 -5
  244. package/src/TableRow.ts +20 -0
  245. package/src/UploadItem.ts +3 -5
  246. package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
  247. package/src/generated/themes/Contact.css.ts +1 -1
  248. package/src/generated/themes/EventRibbon.css.ts +1 -1
  249. package/src/generated/themes/Feed.css.ts +1 -1
  250. package/src/generated/themes/FeedItem.css.ts +1 -1
  251. package/src/generated/themes/HeroBanner.css.ts +1 -1
  252. package/src/generated/themes/ImageGridCloud.css.ts +1 -1
  253. package/src/generated/themes/ImageGridTicker.css.ts +1 -1
  254. package/src/generated/themes/ImageGridTickerItem.css.ts +1 -1
  255. package/src/generated/themes/LinkList.css.ts +1 -1
  256. package/src/generated/themes/ListGroupHeader.css.ts +1 -1
  257. package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
  258. package/src/generated/themes/MastheadItem.css.ts +1 -1
  259. package/src/generated/themes/MastheadMenu.css.ts +1 -1
  260. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  261. package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
  262. package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
  263. package/src/generated/themes/MastheadShell.css.ts +1 -1
  264. package/src/generated/themes/MessageStrip.css.ts +1 -1
  265. package/src/generated/themes/Modal.css.ts +1 -1
  266. package/src/generated/themes/Pagination.css.ts +1 -1
  267. package/src/generated/themes/PromoTile.css.ts +1 -1
  268. package/src/generated/themes/Quote.css.ts +1 -1
  269. package/src/generated/themes/Review.css.ts +1 -1
  270. package/src/generated/themes/ReviewItem.css.ts +1 -1
  271. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  272. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  273. package/src/generated/themes/SelectBase.css.ts +1 -1
  274. package/src/generated/themes/SideNavigation.css.ts +1 -1
  275. package/src/generated/themes/SideNavigationItem.css.ts +1 -1
  276. package/src/generated/themes/SideNavigationMobile.css.ts +1 -1
  277. package/src/generated/themes/SideNavigationMobileDropdown.css.ts +1 -1
  278. package/src/generated/themes/SideNavigationSubItem.css.ts +1 -1
  279. package/src/generated/themes/TabNavigation.css.ts +1 -1
  280. package/src/generated/themes/Table.css.ts +1 -1
  281. package/src/generated/themes/TableCellBase.css.ts +1 -1
  282. package/src/generated/themes/Upload.css.ts +1 -1
  283. package/src/generated/themes/UploadItem.css.ts +1 -1
  284. package/src/themes/AccordionSpotlight.css +4 -1
  285. package/src/themes/Contact.css +1 -1
  286. package/src/themes/EventRibbon.css +4 -4
  287. package/src/themes/Feed.css +2 -2
  288. package/src/themes/FeedItem.css +2 -1
  289. package/src/themes/HeroBanner.css +3 -3
  290. package/src/themes/ImageGridCloud.css +1 -1
  291. package/src/themes/ImageGridTicker.css +1 -1
  292. package/src/themes/ImageGridTickerItem.css +1 -1
  293. package/src/themes/LinkList.css +4 -4
  294. package/src/themes/ListGroupHeader.css +6 -4
  295. package/src/themes/MastheadCountrySelector.css +1 -1
  296. package/src/themes/MastheadItem.css +4 -4
  297. package/src/themes/MastheadMenu.css +1 -1
  298. package/src/themes/MastheadMenuItem.css +1 -1
  299. package/src/themes/MastheadMobileMenu.css +2 -2
  300. package/src/themes/MastheadProfileMenu.css +1 -1
  301. package/src/themes/MastheadShell.css +4 -4
  302. package/src/themes/MessageStrip.css +7 -2
  303. package/src/themes/Modal.css +1 -1
  304. package/src/themes/Pagination.css +14 -5
  305. package/src/themes/PromoTile.css +4 -3
  306. package/src/themes/Quote.css +2 -2
  307. package/src/themes/Review.css +2 -2
  308. package/src/themes/ReviewItem.css +2 -2
  309. package/src/themes/SecondaryNavigation.css +1 -2
  310. package/src/themes/SecondaryNavigationItem.css +3 -6
  311. package/src/themes/SelectBase.css +1 -1
  312. package/src/themes/SideNavigation.css +31 -8
  313. package/src/themes/SideNavigationItem.css +46 -18
  314. package/src/themes/SideNavigationMobile.css +6 -7
  315. package/src/themes/SideNavigationMobileDropdown.css +10 -3
  316. package/src/themes/SideNavigationSubItem.css +73 -17
  317. package/src/themes/TabNavigation.css +2 -2
  318. package/src/themes/Table.css +1 -1
  319. package/src/themes/TableCellBase.css +8 -0
  320. package/src/themes/Upload.css +1 -1
  321. package/src/themes/UploadItem.css +1 -1
  322. package/src/types/Table.ts +6 -2
@@ -128,6 +128,16 @@ const shortComponent = <div style="width: 350px; position:relative;"><UDExSelect
128
128
  <UDExSelectBoxItem label="Perl"></UDExSelectBoxItem>
129
129
  </UDExSelectBox></div>
130
130
 
131
+ const singleSelectPreselected = <div style="width: 350px; position:relative;"><UDExSelectBox
132
+ id="select-box"
133
+ label="Programming languages">
134
+ <UDExSelectBoxItem label="JavaScript"></UDExSelectBoxItem>
135
+ <UDExSelectBoxItem label="Python"></UDExSelectBoxItem>
136
+ <UDExSelectBoxItem label="Java" selected></UDExSelectBoxItem>
137
+ <UDExSelectBoxItem label="Swift"></UDExSelectBoxItem>
138
+ <UDExSelectBoxItem label="C#"></UDExSelectBoxItem>
139
+ </UDExSelectBox></div>
140
+
131
141
  const singleSelectWithRating = <div style="width: 350px; position:relative;"><UDExSelectBox
132
142
  id="select-box"
133
143
  label="Rating">
@@ -157,7 +167,7 @@ const selectAll = <div style="width: 350px; position:relative;">
157
167
  <UDExSelectBoxItem label="Python" supportingText="Used in data analysis"></UDExSelectBoxItem>
158
168
  </UDExSelectBoxSelectAll>
159
169
  </UDExSelectBox>
160
- <a id="next-focus" href="#">Next focusable element</a>
170
+ <a id="next-focus" href="#">Next focusable element</a>
161
171
  </div>
162
172
 
163
173
  const selectBoxInsideModal = <div style="width: 500px; position:relative;">
@@ -183,15 +193,15 @@ describe("SelectBox", () => {
183
193
  it("correct height style is applied", () => {
184
194
  cy.mount(fullComponent);
185
195
  cy.get("#select-box").shadow()
186
- .find(".udex-text-field__trigger")
187
- .click();
196
+ .find(".udex-text-field__trigger")
197
+ .click();
188
198
 
189
199
  cy.get("#select-box")
190
- .shadow()
191
- .find("ui5-popover")
192
- .shadow()
193
- .find(".ui5-popup-content")
194
- .should("have.css", 'max-height', '400px')
200
+ .shadow()
201
+ .find("ui5-popover")
202
+ .shadow()
203
+ .find(".ui5-popup-content")
204
+ .should("have.css", 'max-height', '400px')
195
205
  });
196
206
 
197
207
  it("correct label is applied", () => {
@@ -205,7 +215,7 @@ describe("SelectBox", () => {
205
215
  it("correct supporting text is applied", () => {
206
216
  cy.mount(fullComponent);
207
217
  cy.get("#select-box").shadow().find("udex-status-message").shadow().find(".udex-status-message")
208
- .should("have.text", "category lists");
218
+ .should("have.text", "category lists");
209
219
  });
210
220
 
211
221
  it("render the right amount items", () => {
@@ -228,31 +238,31 @@ describe("SelectBox", () => {
228
238
  it("checking label and supporting text for the item", () => {
229
239
  cy.mount(fullComponent);
230
240
  cy.get("#select-box").shadow()
231
- .find(".udex-text-field__trigger")
232
- .click();
241
+ .find(".udex-text-field__trigger")
242
+ .click();
233
243
 
234
244
  cy.get("#select-box").shadow().find('udex-list-item').eq(0).as("firstItem");
235
245
  cy.get("@firstItem")
236
- .shadow()
237
- .find(".udex-list__item")
238
- .should("include.text", "JavaScript");
246
+ .shadow()
247
+ .find(".udex-list__item")
248
+ .should("include.text", "JavaScript");
239
249
 
240
250
  cy.get("@firstItem")
241
- .shadow().find('.udex-list__supporting-text')
242
- .should("have.text", "Frontend web development");
251
+ .shadow().find('.udex-list__supporting-text')
252
+ .should("have.text", "Frontend web development");
243
253
  });
244
254
 
245
255
  it("checking the custom content for the item", () => {
246
256
  cy.mount(fullComponent);
247
257
  cy.get("#select-box").shadow()
248
- .find(".udex-text-field__trigger")
249
- .click();
258
+ .find(".udex-text-field__trigger")
259
+ .click();
250
260
 
251
261
  cy.get("#select-box")
252
- .shadow()
253
- .find('udex-list-item').eq(0)
254
- .find(".custom-content")
255
- .should("have.text", "Lorem ipsum");
262
+ .shadow()
263
+ .find('udex-list-item').eq(0)
264
+ .find(".custom-content")
265
+ .should("have.text", "Lorem ipsum");
256
266
  });
257
267
 
258
268
  it("render the additional text in the item", () => {
@@ -281,27 +291,27 @@ describe("SelectBox", () => {
281
291
  cy.mount(fullComponent);
282
292
 
283
293
  cy.get("#select-box").shadow()
284
- .find(".udex-text-field__search").as("searchField");
294
+ .find(".udex-text-field__search").as("searchField");
285
295
 
286
296
  cy.get("@searchField").click();
287
297
  cy.realType("java");
288
298
 
289
299
  cy.get("#select-box").shadow().find("udex-list-item")
290
- .should("have.length", 2);
300
+ .should("have.length", 2);
291
301
 
292
302
  cy.get("#select-box").shadow().find("udex-list-item").eq(0)
293
- .shadow().find(".udex-list__item")
294
- .should("include.text", "Java");
303
+ .shadow().find(".udex-list__item")
304
+ .should("include.text", "Java");
295
305
  });
296
306
 
297
307
  it("test if reset searching value using resetSearch method", () => {
298
308
  cy.mount(fullComponent);
299
309
 
300
310
  cy.get("#select-box").shadow()
301
- .find(".udex-text-field__search").as("searchField");
311
+ .find(".udex-text-field__search").as("searchField");
302
312
 
303
313
  cy.get("@searchField")
304
- .click();
314
+ .click();
305
315
  cy.realType("java");
306
316
 
307
317
  cy.get("#select-box")
@@ -311,14 +321,14 @@ describe("SelectBox", () => {
311
321
  })
312
322
 
313
323
  cy.get("@searchField")
314
- .should("have.value", "");
324
+ .should("have.value", "");
315
325
  });
316
326
 
317
327
  it("test if close dropdown using close method", () => {
318
328
  cy.mount(fullComponent);
319
329
  cy.get("#select-box").shadow()
320
- .find(".udex-text-field__trigger")
321
- .click();
330
+ .find(".udex-text-field__trigger")
331
+ .click();
322
332
 
323
333
  cy.get("#select-box")
324
334
  .then($el => {
@@ -327,123 +337,119 @@ describe("SelectBox", () => {
327
337
  })
328
338
 
329
339
  cy.get("#select-box").shadow()
330
- .find(".udex-select-box__dropdown")
331
- .should("not.have.attr","open");
340
+ .find(".udex-select-box__dropdown")
341
+ .should("not.have.attr","open");
332
342
  });
333
343
 
334
344
  it("should show empty msg if the search does not produce results", () => {
335
345
  cy.mount(fullComponent);
336
346
 
337
347
  cy.get("#select-box").shadow()
338
- .find(".udex-text-field__search")
339
- .click();
348
+ .find(".udex-text-field__search")
349
+ .click();
340
350
  cy.realType("x");
341
351
 
342
352
  cy.get("#select-box").shadow()
343
- .find(".udex-no-result")
344
- .should("include.text", "No matches found.");
353
+ .find(".udex-no-result")
354
+ .should("include.text", "No matches found.");
345
355
  });
346
356
 
347
357
  it("show tooltip in display only mode", () => {
348
358
  cy.mount(displayOnly);
349
359
 
350
360
  cy.get("#select-box").shadow()
351
- .find(".udex-tag-group").shadow().as("tagGroup");
361
+ .find(".udex-tag-group").shadow().as("tagGroup");
352
362
 
353
363
  // Wait for the resize handler to fire and render the tooltip before clicking.
354
364
  cy.get("@tagGroup").find("udex-tooltip").should("exist");
355
365
 
356
366
  cy.get("@tagGroup")
357
- .find(".udex-tag-group__tokenizer").shadow()
358
- .find(".ui5-tokenizer-more-text")
359
- .click();
367
+ .find(".udex-tag-group__tokenizer").shadow()
368
+ .find(".ui5-tokenizer-more-text")
369
+ .click();
360
370
 
361
371
  cy.get("@tagGroup")
362
- .find("udex-tooltip")
363
- .should("have.attr", "open");
372
+ .find("udex-tooltip")
373
+ .should("have.attr", "open");
364
374
  });
365
375
 
366
376
  it("dropdown opens on pressing the `ArrowDown` key on the search", () => {
367
377
  cy.mount(fullComponent);
368
378
  cy.get("#select-box").shadow()
369
- .find(".udex-text-field__search")
370
- .click()
371
- .realPress("ArrowDown");
379
+ .find(".udex-text-field__search")
380
+ .click()
381
+ .realPress("ArrowDown");
372
382
 
373
383
  cy.get("#select-box").shadow()
374
- .find(".udex-select-box__dropdown")
375
- .should("have.attr","open");
384
+ .find(".udex-select-box__dropdown")
385
+ .should("have.attr","open");
376
386
  });
377
387
 
378
388
  it("dropdown closes on pressing the `Escape`", () => {
379
389
  cy.mount(fullComponent);
380
390
  cy.get("#select-box").shadow()
381
- .find(".udex-text-field__search")
382
- .click()
383
- .realPress("ArrowDown");
391
+ .find(".udex-text-field__search")
392
+ .click()
393
+ .realPress("ArrowDown");
384
394
 
385
395
  cy.get("#select-box").shadow()
386
- .find(".udex-text-field__search")
387
- .realPress("Escape");
396
+ .find(".udex-text-field__search")
397
+ .realPress("Escape");
388
398
 
389
399
  cy.get("#select-box").shadow()
390
- .find(".udex-select-box__dropdown")
391
- .should("not.have.attr","open");
400
+ .find(".udex-select-box__dropdown")
401
+ .should("not.have.attr","open");
392
402
  });
393
403
 
394
404
  it("sets option label when Arrow Down key press on the list items", () => {
395
405
  cy.mount(shortComponent);
396
- cy.get("#select-box").shadow()
397
- .find(".udex-text-field__search")
398
- .click()
399
- .realPress("ArrowDown")
400
- .realPress("ArrowDown");
406
+ cy.get("#select-box").shadow().find(".udex-text-field__search").click();
407
+ // Opening focuses the first item (JavaScript); wait for it before navigating.
408
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
409
+ .should("have.attr", "_active-descendant");
410
+ cy.realPress("ArrowDown");
401
411
 
402
412
  cy.get("#select-box").shadow()
403
- .find(".udex-text-field__single-label")
404
- .should("have.text", "Python");
413
+ .find(".udex-text-field__single-label")
414
+ .should("have.text", "Python");
405
415
  });
406
416
 
407
417
  it("sets option label when Arrow Up key press on the list items", () => {
408
418
  cy.mount(shortComponent);
409
- cy.get("#select-box").shadow()
410
- .find(".udex-text-field__search")
411
- .click()
412
- .realPress("ArrowDown")
413
- .realPress("ArrowDown")
414
- .realPress("ArrowUp");
419
+ cy.get("#select-box").shadow().find(".udex-text-field__search").click();
420
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
421
+ .should("have.attr", "_active-descendant");
422
+ cy.realPress("ArrowDown");
423
+ cy.realPress("ArrowUp");
415
424
 
416
425
  cy.get("#select-box").shadow()
417
- .find(".udex-text-field__single-label")
418
- .should("have.text", "JavaScript");
426
+ .find(".udex-text-field__single-label")
427
+ .should("have.text", "JavaScript");
419
428
  });
420
429
 
421
430
  it("sets option label when End key press on the list items", () => {
422
431
  cy.mount(shortComponent);
423
- cy.get("#select-box").shadow()
424
- .find(".udex-text-field__search")
425
- .click()
426
- .realPress("ArrowDown")
427
- .realPress("ArrowDown")
428
- .realPress("End");
432
+ cy.get("#select-box").shadow().find(".udex-text-field__search").click();
433
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
434
+ .should("have.attr", "_active-descendant");
435
+ cy.realPress("End");
429
436
 
430
437
  cy.get("#select-box").shadow()
431
- .find(".udex-text-field__single-label")
432
- .should("have.text", "Perl");
438
+ .find(".udex-text-field__single-label")
439
+ .should("have.text", "Perl");
433
440
  });
434
441
 
435
442
  it("sets option label when Home key press on the list items", () => {
436
443
  cy.mount(shortComponent);
437
- cy.get("#select-box").shadow()
438
- .find(".udex-text-field__search")
439
- .click()
440
- .realPress("ArrowDown")
441
- .realPress("ArrowDown")
442
- .realPress("Home");
444
+ cy.get("#select-box").shadow().find(".udex-text-field__search").click();
445
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
446
+ .should("have.attr", "_active-descendant");
447
+ cy.realPress("ArrowDown");
448
+ cy.realPress("Home");
443
449
 
444
450
  cy.get("#select-box").shadow()
445
- .find(".udex-text-field__single-label")
446
- .should("have.text", "JavaScript");
451
+ .find(".udex-text-field__single-label")
452
+ .should("have.text", "JavaScript");
447
453
  });
448
454
 
449
455
  it("SingleSelect mode - after clicking on the item dropdown is closed", () => {
@@ -454,8 +460,8 @@ describe("SelectBox", () => {
454
460
  dropdown.should("have.attr","open");
455
461
 
456
462
  cy.get("#select-box").shadow()
457
- .find("udex-list-item").eq(1)
458
- .click();
463
+ .find("udex-list-item").eq(1)
464
+ .click();
459
465
 
460
466
  dropdown.should("not.have.attr","open");
461
467
  });
@@ -465,12 +471,12 @@ describe("SelectBox", () => {
465
471
  cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
466
472
 
467
473
  cy.get("#select-box").shadow()
468
- .find("udex-list-item").eq(1).as('currentItem')
474
+ .find("udex-list-item").eq(1).as('currentItem')
469
475
 
470
476
  cy.get("@currentItem").click();
471
477
  cy.get("@currentItem").shadow()
472
- .find(".udex-list__item")
473
- .should("have.attr", "data-selected","true")
478
+ .find(".udex-list__item")
479
+ .should("have.attr", "data-selected","true")
474
480
  });
475
481
 
476
482
  it("SingleSelect mode - value sets on the field after clicking on the item", () => {
@@ -478,12 +484,12 @@ describe("SelectBox", () => {
478
484
  cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
479
485
 
480
486
  cy.get("#select-box").shadow()
481
- .find("udex-list-item").eq(0)
482
- .click();
487
+ .find("udex-list-item").eq(0)
488
+ .click();
483
489
 
484
490
  cy.get("#select-box").shadow()
485
- .find(".udex-text-field__single-label")
486
- .should("have.text", "JavaScript");
491
+ .find(".udex-text-field__single-label")
492
+ .should("have.text", "JavaScript");
487
493
  });
488
494
 
489
495
  it("SingleSelect mode - typing after selecting an item shows typed character in the search field", () => {
@@ -521,35 +527,146 @@ describe("SelectBox", () => {
521
527
  .should("have.text", "Python");
522
528
  });
523
529
 
530
+ it("SingleSelect mode - opening the dropdown focuses the selected item", () => {
531
+ cy.mount(singleSelectPreselected);
532
+ cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
533
+ cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
534
+
535
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(2)
536
+ .should("have.attr", "_active-descendant");
537
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
538
+ .should("not.have.attr", "_active-descendant");
539
+ });
540
+
541
+ it("SingleSelect mode - opening the dropdown focuses the first item when nothing is selected", () => {
542
+ cy.mount(shortComponent);
543
+ cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
544
+ cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
545
+
546
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
547
+ .should("have.attr", "_active-descendant");
548
+ });
549
+
550
+ it("SingleSelect mode - opening the dropdown with ArrowDown focuses the selected item", () => {
551
+ cy.mount(singleSelectPreselected);
552
+ cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
553
+ cy.realPress("ArrowDown");
554
+
555
+ cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
556
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(2)
557
+ .should("have.attr", "_active-descendant");
558
+ });
559
+
560
+ it("SingleSelect mode - reopening restores focus to the previously selected item", () => {
561
+ cy.mount(shortComponent);
562
+ cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
563
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(2).click();
564
+ cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("not.have.attr", "open");
565
+
566
+ cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
567
+ cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
568
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(2)
569
+ .should("have.attr", "_active-descendant");
570
+ });
571
+
524
572
  it("MultiSelect mode - navigation label is cleared from input after Tab closes the dropdown", () => {
525
573
  cy.mount(multiSelect);
574
+ cy.get("#select-box").shadow().find(".udex-text-field__search").click();
575
+
576
+ // Wait for the dropdown to finish opening with the first item (JavaScript) focused before
577
+ // navigating, otherwise ArrowDown races the open and is consumed by it instead of advancing.
578
+ cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
579
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
580
+ .should("have.attr", "_active-descendant");
581
+
582
+ // The first item (JavaScript) is focused, so this ArrowDown advances to Python.
583
+ cy.realPress("ArrowDown");
584
+
526
585
  cy.get("#select-box").shadow()
527
- .find(".udex-text-field__search")
528
- .click()
529
- .realPress("ArrowDown");
586
+ .find(".udex-text-field__single-label")
587
+ .should("have.text", "Python");
588
+
589
+ cy.realPress("Tab");
530
590
 
531
591
  cy.get("#select-box").shadow()
532
592
  .find(".udex-text-field__single-label")
533
- .should("have.text", "JavaScript");
593
+ .should("not.exist");
594
+ });
534
595
 
596
+ it("SingleSelect mode - Tab without opening dropdown shows no label in input", () => {
597
+ cy.mount(shortComponent);
598
+ cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
535
599
  cy.realPress("Tab");
600
+ cy.get("#select-box").shadow()
601
+ .find(".udex-text-field__single-label")
602
+ .should("not.exist");
603
+ });
536
604
 
605
+ it("SingleSelect mode - Tab without opening dropdown preserves previously selected item in input", () => {
606
+ cy.mount(singleSelectPreselected);
607
+ cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
608
+ cy.realPress("Tab");
609
+ cy.get("#select-box").shadow()
610
+ .find(".udex-text-field__single-label")
611
+ .should("have.text", "Java");
612
+ });
613
+
614
+ it("MultiSelect mode - Tab without opening dropdown shows no label in input", () => {
615
+ cy.mount(multiSelect);
616
+ cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
617
+ cy.realPress("Tab");
537
618
  cy.get("#select-box").shadow()
538
619
  .find(".udex-text-field__single-label")
539
620
  .should("not.exist");
540
621
  });
541
622
 
623
+ it("MultiSelect mode - opening the dropdown with a mouse click focuses the first item", () => {
624
+ cy.mount(multiSelect);
625
+ cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
626
+ cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
627
+
628
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
629
+ .should("have.attr", "_active-descendant");
630
+ });
631
+
632
+ it("MultiSelect mode - opening the dropdown with ArrowDown focuses the first item", () => {
633
+ cy.mount(multiSelect);
634
+ cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
635
+ cy.realPress("ArrowDown");
636
+
637
+ cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
638
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
639
+ .should("have.attr", "_active-descendant");
640
+ });
641
+
642
+ it("MultiSelect mode - selected items do not steal focus from the first item on open", () => {
643
+ cy.mount(multiSelect);
644
+ // Pre-select the third item programmatically.
645
+ cy.get("#select-box").find("udex-select-box-item").eq(2)
646
+ .then($el => {
647
+ ($el[0] as any).selected = true;
648
+ });
649
+
650
+ cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
651
+ cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
652
+
653
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
654
+ .should("have.attr", "_active-descendant");
655
+ cy.get("#select-box").shadow().find("[udex-list-item]").eq(2)
656
+ .should("not.have.attr", "_active-descendant");
657
+ });
658
+
542
659
  it("MultiSelect mode - after clicking on the item dropdown is opened", () => {
543
660
  cy.mount(multiSelect);
544
661
  cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
545
662
 
546
663
  cy.get("#select-box").shadow()
547
- .find("udex-list-item").eq(1)
548
- .click();
664
+ .find("udex-list-item").eq(1)
665
+ .click();
549
666
 
550
667
  cy.get("#select-box").shadow()
551
- .find(".udex-select-box__dropdown")
552
- .should("have.attr","open");
668
+ .find(".udex-select-box__dropdown")
669
+ .should("have.attr","open");
553
670
  });
554
671
 
555
672
  it("MultiSelect mode - rendering tags after clicking on the items", () => {
@@ -557,16 +674,16 @@ describe("SelectBox", () => {
557
674
  cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
558
675
 
559
676
  cy.get("#select-box").shadow()
560
- .find("udex-list-item").as("items")
677
+ .find("udex-list-item").as("items")
561
678
 
562
679
  cy.get("@items").eq(0).click();
563
680
  cy.get("@items").eq(1).click();
564
681
  cy.get("@items").eq(2).click();
565
682
 
566
683
  cy.get("#select-box").shadow()
567
- .find("udex-tag-group").shadow()
568
- .find(".udex-tag-group__tag")
569
- .should("have.length", 3);
684
+ .find("udex-tag-group").shadow()
685
+ .find(".udex-tag-group__tag")
686
+ .should("have.length", 3);
570
687
  });
571
688
 
572
689
  it("MultiSelect mode - after clicking the delete icon of a tag removes it from the selection", () => {
@@ -574,22 +691,22 @@ describe("SelectBox", () => {
574
691
  cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
575
692
 
576
693
  cy.get("#select-box").shadow()
577
- .find("udex-list-item").eq(0).click();
694
+ .find("udex-list-item").eq(0).click();
578
695
 
579
696
  cy.get("#select-box").shadow()
580
- .find("udex-tag-group").as("group")
697
+ .find("udex-tag-group").as("group")
581
698
 
582
699
  cy.get("@group")
583
- .should("exist")
700
+ .should("exist")
584
701
 
585
702
  cy.get("#select-box").shadow()
586
- .find("udex-tag-group").shadow()
587
- .find("udex-tag").shadow()
588
- .find(".udex-tag__icon")
589
- .click();
703
+ .find("udex-tag-group").shadow()
704
+ .find("udex-tag").shadow()
705
+ .find(".udex-tag__icon")
706
+ .click();
590
707
 
591
708
  cy.get("@group")
592
- .should("not.exist")
709
+ .should("not.exist")
593
710
  });
594
711
 
595
712
  it("MultiSelect mode - n more is applied after clicking on the items", () => {
@@ -597,7 +714,7 @@ describe("SelectBox", () => {
597
714
  cy.get("#select-box").shadow().find(".udex-text-field__search").click();
598
715
 
599
716
  cy.get("#select-box").shadow()
600
- .find("udex-list-item").as("items")
717
+ .find("udex-list-item").as("items")
601
718
 
602
719
  cy.get("@items").eq(0).click();
603
720
  cy.get("@items").eq(1).click();
@@ -606,10 +723,10 @@ describe("SelectBox", () => {
606
723
  cy.get("body").realClick();
607
724
 
608
725
  cy.get("#select-box").shadow()
609
- .find("udex-tag-group").shadow()
610
- .find(".udex-tag-group__tokenizer").shadow()
611
- .find(".ui5-tokenizer-more-text")
612
- .should("have.text", "3 more");
726
+ .find("udex-tag-group").shadow()
727
+ .find(".udex-tag-group__tokenizer").shadow()
728
+ .find(".ui5-tokenizer-more-text")
729
+ .should("have.text", "3 more");
613
730
  });
614
731
 
615
732
  it("MultiSelect mode - open dropdown after clicking on the more button", () => {
@@ -617,7 +734,7 @@ describe("SelectBox", () => {
617
734
  cy.get("#select-box").shadow().find(".udex-text-field__search").click();
618
735
 
619
736
  cy.get("#select-box").shadow()
620
- .find("udex-list-item").as("items")
737
+ .find("udex-list-item").as("items")
621
738
 
622
739
  cy.get("@items").eq(0).click();
623
740
  cy.get("@items").eq(1).click();
@@ -626,14 +743,14 @@ describe("SelectBox", () => {
626
743
  cy.get("body").realClick();
627
744
 
628
745
  cy.get("#select-box").shadow()
629
- .find("udex-tag-group").shadow()
630
- .find(".udex-tag-group__tokenizer").shadow()
631
- .find(".ui5-tokenizer-more-text")
632
- .click();
746
+ .find("udex-tag-group").shadow()
747
+ .find(".udex-tag-group__tokenizer").shadow()
748
+ .find(".ui5-tokenizer-more-text")
749
+ .click();
633
750
 
634
751
  cy.get("#select-box").shadow()
635
- .find(".udex-select-box__dropdown")
636
- .should("have.attr","open");
752
+ .find(".udex-select-box__dropdown")
753
+ .should("have.attr","open");
637
754
  });
638
755
 
639
756
  it("MultiSelect mode - should truncate the tag when it is long and open the dropdown on click", () => {
@@ -641,17 +758,17 @@ describe("SelectBox", () => {
641
758
  cy.get("#select-box").shadow().find(".udex-text-field__search").click();
642
759
 
643
760
  cy.get("#select-box").shadow()
644
- .find("udex-list-item").eq(4).click();
761
+ .find("udex-list-item").eq(4).click();
645
762
 
646
763
  cy.get("#select-box").shadow().find(".udex-text-field__trigger").realClick();
647
764
 
648
765
  cy.get("#select-box").shadow()
649
- .find("udex-tag-group").shadow()
650
- .find("udex-tag").realClick();
766
+ .find("udex-tag-group").shadow()
767
+ .find("udex-tag").realClick();
651
768
 
652
769
  cy.get("#select-box").shadow()
653
- .find(".udex-truncatable-tag-content")
654
- .should("have.text", "C# - is a general-purpose high-level programming language supporting multiple paradigms")
770
+ .find(".udex-truncatable-tag-content")
771
+ .should("have.text", "C# - is a general-purpose high-level programming language supporting multiple paradigms")
655
772
  });
656
773
 
657
774
  it("MultiSelect mode - the truncated tag is selected when clicking on", () => {
@@ -659,11 +776,11 @@ describe("SelectBox", () => {
659
776
  cy.get("#select-box").shadow().find(".udex-text-field__search").click();
660
777
 
661
778
  cy.get("#select-box").shadow()
662
- .find("udex-list-item").eq(4).click();
779
+ .find("udex-list-item").eq(4).click();
663
780
 
664
781
  cy.get("#select-box").shadow()
665
- .find("udex-tag-group").shadow()
666
- .find("udex-tag").as("tag")
782
+ .find("udex-tag-group").shadow()
783
+ .find("udex-tag").as("tag")
667
784
 
668
785
  cy.get("@tag").click();
669
786
 
@@ -676,30 +793,30 @@ describe("SelectBox", () => {
676
793
  cy.get("#select-box").shadow().as("select")
677
794
 
678
795
  cy.get("@select")
679
- .find("udex-list-group-header").shadow()
680
- .find("udex-list-item").shadow()
681
- .find(".udex-list__text-holder > span").eq(0)
682
- .should("have.text", "Programming Languages");
796
+ .find("udex-list-group-header").shadow()
797
+ .find("udex-list-item").shadow()
798
+ .find(".udex-list__text-holder > span").eq(0)
799
+ .should("have.text", "Programming Languages");
683
800
 
684
801
  cy.get("@select")
685
- .find("udex-list-group-header").shadow()
686
- .find("udex-list-item").shadow()
687
- .find(".udex-list__supporting-text")
688
- .should("have.text", "Digital Builders");
802
+ .find("udex-list-group-header").shadow()
803
+ .find("udex-list-item").shadow()
804
+ .find(".udex-list__supporting-text")
805
+ .should("have.text", "Digital Builders");
689
806
  });
690
807
 
691
808
  it("MultiSelect mode - checks nonInteractive state for the group item header", () => {
692
809
  cy.mount(groupHeader);
693
810
  cy.get("udex-select-box-group-header")
694
- .then($el => {
695
- const select = $el as any;
696
- select[0].nonInteractive = true;
697
- })
811
+ .then($el => {
812
+ const select = $el as any;
813
+ select[0].nonInteractive = true;
814
+ })
698
815
 
699
816
  cy.get("#select-box").shadow()
700
- .find("udex-list-group-header").shadow()
701
- .find(".udex-list__inactive-header")
702
- .should("exist")
817
+ .find("udex-list-group-header").shadow()
818
+ .find(".udex-list__inactive-header")
819
+ .should("exist")
703
820
  });
704
821
 
705
822
  it("MultiSelect mode - arrow keys navigate items when group header is nonInteractive", () => {
@@ -711,9 +828,8 @@ describe("SelectBox", () => {
711
828
  });
712
829
 
713
830
  cy.get("#select-box").shadow().find(".udex-text-field__search").click();
714
- cy.realPress("ArrowDown");
715
831
 
716
- // Updated: DOM focus stays on the input; the active item is marked via _active-descendant.
832
+ // Opening focuses the first navigable item (the nonInteractive header is skipped).
717
833
  cy.get("#select-box").shadow()
718
834
  .find("udex-list-item").eq(0)
719
835
  .should("have.attr", "_active-descendant");
@@ -735,10 +851,9 @@ describe("SelectBox", () => {
735
851
  cy.mount(groupHeaderCollapsible);
736
852
 
737
853
  cy.get("#select-box").shadow().find(".udex-text-field__search").click();
738
- cy.realPress("ArrowDown");
739
854
 
740
- // Updated: DOM focus stays on the input; the active group header is marked
741
- // via the _active-descendant attribute rather than receiving DOM focus.
855
+ // Opening focuses the first navigable item — the collapsible group header —
856
+ // marked via the _active-descendant attribute (DOM focus stays on the input).
742
857
  cy.get("#select-box").shadow()
743
858
  .find("udex-list-group-header")
744
859
  .should("have.attr", "_active-descendant");
@@ -791,10 +906,9 @@ describe("SelectBox", () => {
791
906
  cy.mount(groupHeaderCollapsible);
792
907
 
793
908
  cy.get("#select-box").shadow().find(".udex-text-field__search").click();
794
- cy.realPress("ArrowDown");
795
909
 
796
- // Updated: the collapsible group header is the active descendant (DOM focus
797
- // stays on the input), marked via the _active-descendant attribute.
910
+ // Opening focuses the collapsible group header (the first navigable item),
911
+ // marked via the _active-descendant attribute (DOM focus stays on the input).
798
912
  cy.get("#select-box").shadow()
799
913
  .find("udex-list-group-header")
800
914
  .should("have.attr", "_active-descendant");
@@ -834,6 +948,30 @@ describe("SelectBox", () => {
834
948
  cy.wrap($item).should("not.have.attr", "collapsed");
835
949
  });
836
950
  });
951
+
952
+ // Regression (issue #3576): SiteImprove/axe "Role not inside the required context".
953
+ // In aria-activedescendant mode the group-header HOST is the treeitem; the inner
954
+ // focusable div must NOT also be a treeitem, otherwise it is a second, parent-less
955
+ // treeitem nested inside the host treeitem (aria-required-parent violation).
956
+ it("SingleSelect collapsible group header: treeitem lives on the host, inner div is presentational", () => {
957
+ cy.mount(groupHeaderCollapsibleSingleSelect);
958
+
959
+ cy.get("#select-box").shadow().find(".udex-text-field__search").click();
960
+
961
+ // The host carries the treeitem role + expanded state.
962
+ cy.get("#select-box").shadow()
963
+ .find("[udex-list-group-header]")
964
+ .should("have.attr", "role", "treeitem")
965
+ .and("have.attr", "aria-expanded");
966
+
967
+ // The inner focusable div is presentational and does not duplicate the treeitem
968
+ // role or its aria-expanded state.
969
+ cy.get("#select-box").shadow()
970
+ .find("[udex-list-group-header]").shadow()
971
+ .find(".udex-list__group-content")
972
+ .should("have.attr", "role", "presentation")
973
+ .and("not.have.attr", "aria-expanded");
974
+ });
837
975
  });
838
976
 
839
977
  // Added: covers the listboxRole getter change in SelectBase — aria-haspopup on the
@@ -885,21 +1023,21 @@ describe("SelectBox", () => {
885
1023
  cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
886
1024
 
887
1025
  cy.get("#select-box").shadow()
888
- .find("udex-list-item").as("items")
1026
+ .find("udex-list-item").as("items")
889
1027
 
890
1028
  cy.get("@items").eq(0).click();
891
1029
  cy.get("@items").eq(1).click();
892
1030
  cy.get("@items").eq(2).click();
893
1031
 
894
1032
  cy.get("#select-box").shadow()
895
- .find("udex-tag-group").shadow()
896
- .find(".udex-tag-group__tag").eq(1)
897
- .click();
1033
+ .find("udex-tag-group").shadow()
1034
+ .find(".udex-tag-group__tag").eq(1)
1035
+ .click();
898
1036
 
899
1037
  cy.realPress(["Shift", "Tab"]);
900
1038
 
901
1039
  cy.get("#previous-focus")
902
- .should("be.focused");
1040
+ .should("be.focused");
903
1041
  });
904
1042
 
905
1043
  it("focus moves to input search when press Tab on a tag", () => {
@@ -910,17 +1048,17 @@ describe("SelectBox", () => {
910
1048
  cy.get("@trigger").click();
911
1049
 
912
1050
  cy.get("@select")
913
- .find("udex-list")
914
- .find("udex-list-select-all").shadow()
915
- .find(".udex-list__group-header")
916
- .click()
1051
+ .find("udex-list")
1052
+ .find("udex-list-select-all").shadow()
1053
+ .find(".udex-list__group-header")
1054
+ .click()
917
1055
 
918
1056
  cy.get("@trigger").click();
919
1057
 
920
1058
  cy.get("@select")
921
- .find("udex-tag-group").shadow()
922
- .find("udex-tag").eq(0)
923
- .click()
1059
+ .find("udex-tag-group").shadow()
1060
+ .find("udex-tag").eq(0)
1061
+ .click()
924
1062
 
925
1063
  cy.realPress("Tab");
926
1064
 
@@ -947,22 +1085,22 @@ describe("SelectBox", () => {
947
1085
  cy.get("@trigger").click();
948
1086
 
949
1087
  cy.get("@select")
950
- .find("udex-list")
951
- .find("udex-list-select-all").shadow()
952
- .find(".udex-list__group-header")
953
- .click()
1088
+ .find("udex-list")
1089
+ .find("udex-list-select-all").shadow()
1090
+ .find(".udex-list__group-header")
1091
+ .click()
954
1092
 
955
1093
  cy.get("@trigger").click();
956
1094
 
957
1095
  cy.get("@select")
958
- .find("udex-tag-group").shadow()
959
- .find("udex-tag").eq(0)
960
- .click()
1096
+ .find("udex-tag-group").shadow()
1097
+ .find("udex-tag").eq(0)
1098
+ .click()
961
1099
 
962
1100
  cy.realPress(["Shift", "Tab"]);
963
1101
 
964
1102
  cy.get("#previous-focus")
965
- .should("be.focused");
1103
+ .should("be.focused");
966
1104
  });
967
1105
 
968
1106
  it("focus moves to next interactive element on the page when press Tab on a trigger", () => {
@@ -985,13 +1123,13 @@ describe("SelectBox", () => {
985
1123
  cy.get("@trigger").click();
986
1124
 
987
1125
  cy.get("#select-box").shadow()
988
- .find("udex-list-item").eq(1)
989
- .click();
1126
+ .find("udex-list-item").eq(1)
1127
+ .click();
990
1128
 
991
1129
  cy.realPress(["Tab"]);
992
1130
 
993
1131
  cy.get("#next-focus")
994
- .should("be.focused");
1132
+ .should("be.focused");
995
1133
  });
996
1134
 
997
1135
  it("focus moves to input when press Prev Tab on a list item", () => {
@@ -1019,16 +1157,16 @@ describe("SelectBox", () => {
1019
1157
  cy.get("@trigger").click();
1020
1158
 
1021
1159
  cy.get("#select-box").shadow()
1022
- .find("udex-list-item").eq(1)
1023
- .click();
1160
+ .find("udex-list-item").eq(1)
1161
+ .click();
1024
1162
 
1025
1163
  cy.realPress("Escape");
1026
1164
 
1027
1165
  cy.get("@select").find(".udex-text-field__search").should("be.focused");
1028
1166
 
1029
1167
  cy.get("@select")
1030
- .find(".udex-select-box__dropdown")
1031
- .should("not.have.attr","open");
1168
+ .find(".udex-select-box__dropdown")
1169
+ .should("not.have.attr","open");
1032
1170
  });
1033
1171
 
1034
1172
  it("focus() method moves focus to the inner search input", () => {
@@ -1052,10 +1190,10 @@ describe("SelectBox", () => {
1052
1190
  cy.get("@select").shadow().find(".udex-text-field__trigger").as("trigger")
1053
1191
 
1054
1192
  cy.get("@select").shadow()
1055
- .find("udex-list")
1056
- .find("udex-list-select-all").shadow()
1057
- .find(".udex-list__group-header")
1058
- .should("have.text", "Select All");
1193
+ .find("udex-list")
1194
+ .find("udex-list-select-all").shadow()
1195
+ .find(".udex-list__group-header")
1196
+ .should("have.text", "Select All");
1059
1197
  });
1060
1198
 
1061
1199
  it("emit select-all when Select All header clicked", () => {
@@ -1063,22 +1201,22 @@ describe("SelectBox", () => {
1063
1201
  cy.get("#select-box").as("select")
1064
1202
 
1065
1203
  cy.get("@select")
1066
- .then(select => {
1067
- select.get(0).addEventListener("select-all", cy.stub().as("selectall"));
1068
- });
1204
+ .then(select => {
1205
+ select.get(0).addEventListener("select-all", cy.stub().as("selectall"));
1206
+ });
1069
1207
 
1070
1208
  cy.get("@select").shadow().find(".udex-text-field__trigger").as("trigger")
1071
1209
 
1072
1210
  cy.get("@trigger").click();
1073
1211
 
1074
1212
  cy.get("@select").shadow()
1075
- .find("udex-list")
1076
- .find("udex-list-select-all").shadow()
1077
- .find(".udex-list__group-header")
1078
- .click()
1213
+ .find("udex-list")
1214
+ .find("udex-list-select-all").shadow()
1215
+ .find(".udex-list__group-header")
1216
+ .click()
1079
1217
 
1080
1218
  cy.get("@selectall")
1081
- .should("have.been.called");
1219
+ .should("have.been.called");
1082
1220
  });
1083
1221
 
1084
1222
  // Bug fix: groupListClassName no longer appends _additionalClassName, so the
@@ -1091,10 +1229,10 @@ describe("SelectBox", () => {
1091
1229
  cy.get("@select").find(".udex-text-field__trigger").click();
1092
1230
 
1093
1231
  cy.get("@select")
1094
- .find("udex-list")
1095
- .find("udex-list-select-all").shadow()
1096
- .find(".udex-list__group-list")
1097
- .should("not.have.class", "udex-list__sticky");
1232
+ .find("udex-list")
1233
+ .find("udex-list-select-all").shadow()
1234
+ .find(".udex-list__group-list")
1235
+ .should("not.have.class", "udex-list__sticky");
1098
1236
  });
1099
1237
  });
1100
1238
 
@@ -1105,15 +1243,15 @@ describe("SelectBox", () => {
1105
1243
  select.get(0).addEventListener("selection-change", cy.stub().as("selectionchange"));
1106
1244
  });
1107
1245
  cy.get("#select-box").shadow()
1108
- .find(".udex-text-field__trigger")
1109
- .click();
1246
+ .find(".udex-text-field__trigger")
1247
+ .click();
1110
1248
 
1111
1249
  cy.get("#select-box").shadow()
1112
- .find("udex-list-item").eq(1)
1113
- .click();
1250
+ .find("udex-list-item").eq(1)
1251
+ .click();
1114
1252
 
1115
1253
  cy.get("@selectionchange")
1116
- .should("have.been.called");
1254
+ .should("have.been.called");
1117
1255
  });
1118
1256
 
1119
1257
  it("emit open when dropdown list opened", () => {
@@ -1122,8 +1260,8 @@ describe("SelectBox", () => {
1122
1260
  select.get(0).addEventListener("open", cy.stub().as("open"));
1123
1261
  });
1124
1262
  cy.get("#select-box").shadow()
1125
- .find(".udex-text-field__trigger")
1126
- .click();
1263
+ .find(".udex-text-field__trigger")
1264
+ .click();
1127
1265
 
1128
1266
  cy.get("@open").should("have.been.called");
1129
1267
  });
@@ -1134,11 +1272,11 @@ describe("SelectBox", () => {
1134
1272
  select.get(0).addEventListener("close", cy.stub().as("close"));
1135
1273
  });
1136
1274
  cy.get("#select-box").shadow()
1137
- .find(".udex-text-field__trigger")
1138
- .click();
1275
+ .find(".udex-text-field__trigger")
1276
+ .click();
1139
1277
  cy.get("#select-box").shadow()
1140
- .find(".udex-text-field__trigger")
1141
- .click();
1278
+ .find(".udex-text-field__trigger")
1279
+ .click();
1142
1280
 
1143
1281
  cy.get("@close").should("have.been.called");
1144
1282
  });
@@ -1149,8 +1287,8 @@ describe("SelectBox", () => {
1149
1287
  select.get(0).addEventListener("before-open", cy.stub().as("beforeopen"));
1150
1288
  });
1151
1289
  cy.get("#select-box").shadow()
1152
- .find(".udex-text-field__trigger")
1153
- .click();
1290
+ .find(".udex-text-field__trigger")
1291
+ .click();
1154
1292
 
1155
1293
  cy.get("@beforeopen").should("have.been.called");
1156
1294
  });
@@ -1161,11 +1299,11 @@ describe("SelectBox", () => {
1161
1299
  select.get(0).addEventListener("before-close", cy.stub().as("beforeclose"));
1162
1300
  });
1163
1301
  cy.get("#select-box").shadow()
1164
- .find(".udex-text-field__trigger")
1165
- .click();
1302
+ .find(".udex-text-field__trigger")
1303
+ .click();
1166
1304
  cy.get("#select-box").shadow()
1167
- .find(".udex-text-field__trigger")
1168
- .click();
1305
+ .find(".udex-text-field__trigger")
1306
+ .click();
1169
1307
 
1170
1308
  cy.get("@beforeclose").should("have.been.called");
1171
1309
  });
@@ -1176,8 +1314,8 @@ describe("SelectBox", () => {
1176
1314
  select.get(0).addEventListener("change-search", cy.stub().as("changesearch"));
1177
1315
  });
1178
1316
  cy.get("#select-box").shadow()
1179
- .find(".udex-text-field__search")
1180
- .click();
1317
+ .find(".udex-text-field__search")
1318
+ .click();
1181
1319
  cy.realType("java");
1182
1320
 
1183
1321
  cy.get("@changesearch").should("have.been.called");
@@ -1191,22 +1329,22 @@ describe("SelectBox", () => {
1191
1329
  cy.get("#select-box").shadow().as("select");
1192
1330
 
1193
1331
  cy.get("@select").find(".udex-text-field__trigger")
1194
- .click();
1332
+ .click();
1195
1333
 
1196
1334
  cy.get("@select")
1197
- .find("udex-list-item").as("items")
1335
+ .find("udex-list-item").as("items")
1198
1336
 
1199
1337
  cy.get("@items").eq(0).click();
1200
1338
  cy.get("@items").eq(1).click();
1201
1339
 
1202
1340
  cy.get("@select")
1203
- .find("udex-tag-group").shadow()
1204
- .find("udex-tag").eq(0).shadow()
1205
- .find(".udex-tag__icon")
1206
- .click();
1341
+ .find("udex-tag-group").shadow()
1342
+ .find("udex-tag").eq(0).shadow()
1343
+ .find(".udex-tag__icon")
1344
+ .click();
1207
1345
 
1208
1346
  cy.get("@remove")
1209
- .should("have.been.called");
1347
+ .should("have.been.called");
1210
1348
  });
1211
1349
 
1212
1350
  it("emit show-more when more button clicked", () => {
@@ -1218,7 +1356,7 @@ describe("SelectBox", () => {
1218
1356
  cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
1219
1357
 
1220
1358
  cy.get("#select-box").shadow()
1221
- .find("udex-list-item").as("items")
1359
+ .find("udex-list-item").as("items")
1222
1360
 
1223
1361
  cy.get("@items").eq(0).click();
1224
1362
  cy.get("@items").eq(1).click();
@@ -1227,13 +1365,13 @@ describe("SelectBox", () => {
1227
1365
  cy.get("body").realClick();
1228
1366
 
1229
1367
  cy.get("#select-box").shadow()
1230
- .find("udex-tag-group").shadow()
1231
- .find(".udex-tag-group__tokenizer").shadow()
1232
- .find(".ui5-tokenizer-more-text")
1233
- .click();
1368
+ .find("udex-tag-group").shadow()
1369
+ .find(".udex-tag-group__tokenizer").shadow()
1370
+ .find(".ui5-tokenizer-more-text")
1371
+ .click();
1234
1372
 
1235
1373
  cy.get("@showmore")
1236
- .should("have.been.called");
1374
+ .should("have.been.called");
1237
1375
  });
1238
1376
 
1239
1377
  it("emit first-icon-click when first icon clicked", () => {
@@ -1649,11 +1787,10 @@ describe("SelectBox", () => {
1649
1787
  it("pressing Tab while a list item is focused moves focus to the first footer element and keeps the dropdown open", () => {
1650
1788
  cy.mount(selectBoxWithFooter);
1651
1789
 
1652
- // Open the dropdown and move focus into the list via ArrowDown.
1790
+ // Open the dropdown; the first list item becomes the active descendant on open.
1653
1791
  cy.get("#select-box").shadow()
1654
1792
  .find(".udex-text-field__search")
1655
- .click()
1656
- .realPress("ArrowDown");
1793
+ .click();
1657
1794
 
1658
1795
  cy.get("#select-box").shadow()
1659
1796
  .find(".udex-select-box__dropdown")
@@ -1943,8 +2080,12 @@ describe("SelectBox", () => {
1943
2080
  const openDropdownOnFirstItem = () => {
1944
2081
  cy.get("#select-box").shadow()
1945
2082
  .find(".udex-text-field__search")
1946
- .click()
1947
- .realPress("ArrowDown");
2083
+ .click();
2084
+ // Opening focuses the first list item as the active descendant (DOM focus stays
2085
+ // on the input); wait for it so navigation starts deterministically from eq(0).
2086
+ cy.get("#select-box").shadow()
2087
+ .find("udex-list-item").eq(0)
2088
+ .should("have.attr", "_active-descendant");
1948
2089
  };
1949
2090
 
1950
2091
  it("Tab from list item closes dropdown and moves focus to next element outside component", () => {
@@ -2675,9 +2816,9 @@ describe("SelectBox", () => {
2675
2816
  it("Enter on a group header does not select its items", () => {
2676
2817
  cy.mount(groupHeaderCollapsibleSingleSelect);
2677
2818
  cy.get("#select-box").shadow().find(".udex-text-field__search").click();
2678
- cy.realPress("ArrowDown");
2679
2819
 
2680
- // The collapsible group header is the active descendant (DOM focus stays on input).
2820
+ // Opening focuses the first navigable item — the collapsible group header
2821
+ // (DOM focus stays on the input).
2681
2822
  cy.get("#select-box").shadow()
2682
2823
  .find("udex-list-group-header")
2683
2824
  .should("have.attr", "_active-descendant");
@@ -2769,10 +2910,9 @@ describe("SelectBox", () => {
2769
2910
  cy.mount(shortComponent);
2770
2911
  cy.get("#select-box").shadow()
2771
2912
  .find(".udex-text-field__search")
2772
- .click()
2773
- .realPress("ArrowDown");
2913
+ .click();
2774
2914
 
2775
- // shortComponent has 6 items; the first item "JavaScript" becomes active.
2915
+ // Opening activates the first item "JavaScript" (shortComponent has 6 items).
2776
2916
  cy.get("#select-box").shadow()
2777
2917
  .find('[aria-live="polite"]')
2778
2918
  .invoke("text")
@@ -2786,10 +2926,9 @@ describe("SelectBox", () => {
2786
2926
  cy.mount(groupHeaderCollapsible);
2787
2927
  cy.get("#select-box").shadow()
2788
2928
  .find(".udex-text-field__search")
2789
- .click()
2790
- .realPress("ArrowDown");
2929
+ .click();
2791
2930
 
2792
- // ArrowDown activates the group header -> tree text reports "level 0".
2931
+ // Opening activates the group header -> tree text reports "level 0".
2793
2932
  cy.get("#select-box").shadow()
2794
2933
  .find('[aria-live="polite"]')
2795
2934
  .invoke("text")
@@ -2863,10 +3002,10 @@ describe("SelectBox", () => {
2863
3002
  cy.mount(checkedMultiSelect);
2864
3003
  cy.get("#select-box").shadow()
2865
3004
  .find(".udex-text-field__search")
2866
- .click()
2867
- .realPress("ArrowDown");
3005
+ .click();
2868
3006
 
2869
- // First MultiSelect item is pre-selected -> state suffix is "Selected".
3007
+ // Opening activates the first MultiSelect item, which is pre-selected -> state
3008
+ // suffix is "Selected".
2870
3009
  cy.get("#select-box").shadow()
2871
3010
  .find('[aria-live="polite"]')
2872
3011
  .should("contain.text", "Selected");
@@ -2905,10 +3044,9 @@ describe("SelectBox", () => {
2905
3044
  cy.mount(groupHeaderCollapsible);
2906
3045
  cy.get("#select-box").shadow()
2907
3046
  .find(".udex-text-field__search")
2908
- .click()
2909
- .realPress("ArrowDown");
3047
+ .click();
2910
3048
 
2911
- // ArrowDown activates the expanded group header -> tree text reports
3049
+ // Opening activates the expanded group header -> tree text reports
2912
3050
  // "level 0" and the state suffix is "expanded".
2913
3051
  cy.get("#select-box").shadow()
2914
3052
  .find('[aria-live="polite"]')