@ui5/webcomponents 2.9.0 → 2.10.0-rc.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 (487) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/cypress/specs/Avatar.cy.tsx +1 -1
  3. package/cypress/specs/Calendar.cy.tsx +3 -3
  4. package/cypress/specs/ComboBox.cy.tsx +1 -1
  5. package/cypress/specs/DateTimePicker.cy.tsx +38 -37
  6. package/cypress/specs/F6.cy.tsx +4 -4
  7. package/cypress/specs/Form.cy.tsx +73 -10
  8. package/cypress/specs/FormSupport.cy.tsx +4 -4
  9. package/cypress/specs/Input.cy.tsx +1 -1
  10. package/cypress/specs/Link.cy.tsx +3 -3
  11. package/cypress/specs/MessageStrip.cy.tsx +9 -2
  12. package/cypress/specs/RadioButton.cy.tsx +499 -0
  13. package/cypress/specs/RatingIndicator.cy.tsx +1 -1
  14. package/cypress/specs/Select.cy.tsx +1 -1
  15. package/cypress/specs/TabContainer.cy.tsx +1 -1
  16. package/cypress/specs/Table.cy.tsx +4 -4
  17. package/cypress/specs/TableNavigationFixedHeader.cy.tsx +17 -17
  18. package/cypress/specs/TableSelection.cy.tsx +1 -6
  19. package/cypress/specs/TableSelections.cy.tsx +42 -6
  20. package/cypress/specs/TextArea.cy.tsx +3 -3
  21. package/cypress/specs/Toolbar.cy.tsx +1 -1
  22. package/cypress/specs/Tree.cy.tsx +24 -0
  23. package/cypress/specs/base/Events.cy.tsx +10 -1
  24. package/cypress/support/commands/Dialog.commands.ts +16 -0
  25. package/cypress/support/commands/Popover.commands.ts +16 -0
  26. package/cypress/support/commands/ResponsivePopover.commands.ts +42 -0
  27. package/cypress/support/commands/utils/popup-open.ts +35 -0
  28. package/cypress/support/commands.ts +4 -1
  29. package/cypress/support/component.ts +0 -16
  30. package/cypress/tsconfig.json +7 -2
  31. package/dist/.tsbuildinfo +1 -1
  32. package/dist/Form.d.ts +1 -0
  33. package/dist/Form.js +5 -2
  34. package/dist/Form.js.map +1 -1
  35. package/dist/MessageStripTemplate.js +3 -3
  36. package/dist/MessageStripTemplate.js.map +1 -1
  37. package/dist/Table.js +1 -1
  38. package/dist/Table.js.map +1 -1
  39. package/dist/TableGrowing.js +5 -1
  40. package/dist/TableGrowing.js.map +1 -1
  41. package/dist/TableSelection.d.ts +1 -1
  42. package/dist/TableSelection.js +6 -9
  43. package/dist/TableSelection.js.map +1 -1
  44. package/dist/TableSelectionMulti.d.ts +1 -1
  45. package/dist/TableSelectionMulti.js +5 -8
  46. package/dist/TableSelectionMulti.js.map +1 -1
  47. package/dist/TreeItemBase.d.ts +15 -0
  48. package/dist/TreeItemBase.js +14 -0
  49. package/dist/TreeItemBase.js.map +1 -1
  50. package/dist/TreeItemBaseTemplate.js +5 -1
  51. package/dist/TreeItemBaseTemplate.js.map +1 -1
  52. package/dist/css/themes/Avatar.css +1 -1
  53. package/dist/css/themes/AvatarGroup.css +1 -1
  54. package/dist/css/themes/Bar.css +1 -1
  55. package/dist/css/themes/Breadcrumbs.css +1 -1
  56. package/dist/css/themes/BusyIndicator.css +1 -1
  57. package/dist/css/themes/Button.css +1 -1
  58. package/dist/css/themes/ButtonBadge.css +1 -1
  59. package/dist/css/themes/Calendar.css +1 -1
  60. package/dist/css/themes/CalendarHeader.css +1 -1
  61. package/dist/css/themes/CalendarLegend.css +1 -1
  62. package/dist/css/themes/CalendarLegendItem.css +1 -1
  63. package/dist/css/themes/Card.css +1 -1
  64. package/dist/css/themes/CardHeader.css +1 -1
  65. package/dist/css/themes/Carousel.css +1 -1
  66. package/dist/css/themes/CheckBox.css +1 -1
  67. package/dist/css/themes/ColorPalette.css +1 -1
  68. package/dist/css/themes/ColorPaletteItem.css +1 -1
  69. package/dist/css/themes/ColorPalettePopover.css +1 -1
  70. package/dist/css/themes/ColorPicker.css +1 -1
  71. package/dist/css/themes/ComboBox.css +1 -1
  72. package/dist/css/themes/ComboBoxItem.css +1 -1
  73. package/dist/css/themes/DatePicker.css +1 -1
  74. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  75. package/dist/css/themes/DayPicker.css +1 -1
  76. package/dist/css/themes/Dialog.css +1 -1
  77. package/dist/css/themes/FileUploader.css +1 -1
  78. package/dist/css/themes/Form.css +1 -1
  79. package/dist/css/themes/FormItem.css +1 -1
  80. package/dist/css/themes/FormItemSpan.css +1 -1
  81. package/dist/css/themes/GrowingButton.css +1 -1
  82. package/dist/css/themes/Icon.css +1 -1
  83. package/dist/css/themes/Input.css +1 -1
  84. package/dist/css/themes/InputIcon.css +1 -1
  85. package/dist/css/themes/InputSharedStyles.css +1 -1
  86. package/dist/css/themes/Link.css +1 -1
  87. package/dist/css/themes/List.css +1 -1
  88. package/dist/css/themes/ListItem.css +1 -1
  89. package/dist/css/themes/ListItemBase.css +1 -1
  90. package/dist/css/themes/ListItemCustom.css +1 -1
  91. package/dist/css/themes/ListItemGroup.css +1 -1
  92. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  93. package/dist/css/themes/ListItemIcon.css +1 -1
  94. package/dist/css/themes/Menu.css +1 -1
  95. package/dist/css/themes/MenuItem.css +1 -1
  96. package/dist/css/themes/MessageStrip.css +1 -1
  97. package/dist/css/themes/MonthPicker.css +1 -1
  98. package/dist/css/themes/MultiComboBox.css +1 -1
  99. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  100. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  101. package/dist/css/themes/MultiInput.css +1 -1
  102. package/dist/css/themes/OptionBase.css +1 -1
  103. package/dist/css/themes/Panel.css +1 -1
  104. package/dist/css/themes/Popover.css +1 -1
  105. package/dist/css/themes/PopupsCommon.css +1 -1
  106. package/dist/css/themes/ProgressIndicator.css +1 -1
  107. package/dist/css/themes/RadioButton.css +1 -1
  108. package/dist/css/themes/RangeSlider.css +1 -1
  109. package/dist/css/themes/RatingIndicator.css +1 -1
  110. package/dist/css/themes/ResponsivePopover.css +1 -1
  111. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  112. package/dist/css/themes/SegmentedButton.css +1 -1
  113. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  114. package/dist/css/themes/Select.css +1 -1
  115. package/dist/css/themes/SliderBase.css +1 -1
  116. package/dist/css/themes/SplitButton.css +1 -1
  117. package/dist/css/themes/StepInput.css +1 -1
  118. package/dist/css/themes/SuggestionItem.css +1 -1
  119. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  120. package/dist/css/themes/Switch.css +1 -1
  121. package/dist/css/themes/TabContainer.css +1 -1
  122. package/dist/css/themes/TabInOverflow.css +1 -1
  123. package/dist/css/themes/TabInStrip.css +1 -1
  124. package/dist/css/themes/TabSemanticIcon.css +1 -1
  125. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  126. package/dist/css/themes/Table.css +1 -1
  127. package/dist/css/themes/TableCellBase.css +1 -1
  128. package/dist/css/themes/TableHeaderRow.css +1 -1
  129. package/dist/css/themes/TableRow.css +1 -1
  130. package/dist/css/themes/TableRowActionBase.css +1 -1
  131. package/dist/css/themes/TableRowBase.css +1 -1
  132. package/dist/css/themes/Tag.css +1 -1
  133. package/dist/css/themes/Text.css +1 -1
  134. package/dist/css/themes/TextArea.css +1 -1
  135. package/dist/css/themes/TimePicker.css +1 -1
  136. package/dist/css/themes/Toast.css +1 -1
  137. package/dist/css/themes/ToggleButton.css +1 -1
  138. package/dist/css/themes/Token.css +1 -1
  139. package/dist/css/themes/Tokenizer.css +1 -1
  140. package/dist/css/themes/TokenizerPopover.css +1 -1
  141. package/dist/css/themes/Toolbar.css +1 -1
  142. package/dist/css/themes/ToolbarPopover.css +1 -1
  143. package/dist/css/themes/TreeItem.css +1 -1
  144. package/dist/css/themes/ValueStateMessage.css +1 -1
  145. package/dist/css/themes/YearPicker.css +1 -1
  146. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  147. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  148. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  149. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  150. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  151. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  152. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  153. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  154. package/dist/custom-elements-internal.json +35 -0
  155. package/dist/custom-elements.json +20 -0
  156. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  157. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  158. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  159. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  160. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  161. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  162. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  163. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  164. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  165. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  166. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  167. package/dist/generated/themes/Avatar.css.js +1 -1
  168. package/dist/generated/themes/Avatar.css.js.map +1 -1
  169. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  170. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  171. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  172. package/dist/generated/themes/Bar.css.d.ts +1 -1
  173. package/dist/generated/themes/Bar.css.js +1 -1
  174. package/dist/generated/themes/Bar.css.js.map +1 -1
  175. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  176. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  177. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  178. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  179. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  180. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  181. package/dist/generated/themes/Button.css.d.ts +1 -1
  182. package/dist/generated/themes/Button.css.js +1 -1
  183. package/dist/generated/themes/Button.css.js.map +1 -1
  184. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  185. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  186. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  187. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  188. package/dist/generated/themes/Calendar.css.js +1 -1
  189. package/dist/generated/themes/Calendar.css.js.map +1 -1
  190. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  191. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  192. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  193. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  194. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  195. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  196. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  197. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  198. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  199. package/dist/generated/themes/Card.css.d.ts +1 -1
  200. package/dist/generated/themes/Card.css.js +1 -1
  201. package/dist/generated/themes/Card.css.js.map +1 -1
  202. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  203. package/dist/generated/themes/CardHeader.css.js +1 -1
  204. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  205. package/dist/generated/themes/Carousel.css.d.ts +1 -1
  206. package/dist/generated/themes/Carousel.css.js +1 -1
  207. package/dist/generated/themes/Carousel.css.js.map +1 -1
  208. package/dist/generated/themes/CheckBox.css.d.ts +1 -1
  209. package/dist/generated/themes/CheckBox.css.js +1 -1
  210. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  211. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  212. package/dist/generated/themes/ColorPalette.css.js +1 -1
  213. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  214. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  215. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  216. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  217. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  218. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  219. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  220. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  221. package/dist/generated/themes/ColorPicker.css.js +1 -1
  222. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  223. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  224. package/dist/generated/themes/ComboBox.css.js +1 -1
  225. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  226. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  227. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  228. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  229. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  230. package/dist/generated/themes/DatePicker.css.js +1 -1
  231. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  232. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  233. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  234. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  235. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  236. package/dist/generated/themes/DayPicker.css.js +1 -1
  237. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  238. package/dist/generated/themes/Dialog.css.d.ts +1 -1
  239. package/dist/generated/themes/Dialog.css.js +1 -1
  240. package/dist/generated/themes/Dialog.css.js.map +1 -1
  241. package/dist/generated/themes/FileUploader.css.d.ts +1 -1
  242. package/dist/generated/themes/FileUploader.css.js +1 -1
  243. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  244. package/dist/generated/themes/Form.css.d.ts +1 -1
  245. package/dist/generated/themes/Form.css.js +1 -1
  246. package/dist/generated/themes/Form.css.js.map +1 -1
  247. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  248. package/dist/generated/themes/FormItem.css.js +1 -1
  249. package/dist/generated/themes/FormItem.css.js.map +1 -1
  250. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  251. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  252. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  253. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  254. package/dist/generated/themes/GrowingButton.css.js +1 -1
  255. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  256. package/dist/generated/themes/Icon.css.d.ts +1 -1
  257. package/dist/generated/themes/Icon.css.js +1 -1
  258. package/dist/generated/themes/Icon.css.js.map +1 -1
  259. package/dist/generated/themes/Input.css.d.ts +1 -1
  260. package/dist/generated/themes/Input.css.js +1 -1
  261. package/dist/generated/themes/Input.css.js.map +1 -1
  262. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  263. package/dist/generated/themes/InputIcon.css.js +1 -1
  264. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  265. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  266. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  267. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  268. package/dist/generated/themes/Link.css.d.ts +1 -1
  269. package/dist/generated/themes/Link.css.js +1 -1
  270. package/dist/generated/themes/Link.css.js.map +1 -1
  271. package/dist/generated/themes/List.css.d.ts +1 -1
  272. package/dist/generated/themes/List.css.js +1 -1
  273. package/dist/generated/themes/List.css.js.map +1 -1
  274. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  275. package/dist/generated/themes/ListItem.css.js +1 -1
  276. package/dist/generated/themes/ListItem.css.js.map +1 -1
  277. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  278. package/dist/generated/themes/ListItemBase.css.js +1 -1
  279. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  280. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  281. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  282. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  283. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  284. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  285. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  286. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  287. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  288. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  289. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  290. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  291. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  292. package/dist/generated/themes/Menu.css.d.ts +1 -1
  293. package/dist/generated/themes/Menu.css.js +1 -1
  294. package/dist/generated/themes/Menu.css.js.map +1 -1
  295. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  296. package/dist/generated/themes/MenuItem.css.js +1 -1
  297. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  298. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  299. package/dist/generated/themes/MessageStrip.css.js +1 -1
  300. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  301. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  302. package/dist/generated/themes/MonthPicker.css.js +1 -1
  303. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  304. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  305. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  306. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  307. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  308. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  309. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  310. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  311. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  312. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  313. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  314. package/dist/generated/themes/MultiInput.css.js +1 -1
  315. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  316. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  317. package/dist/generated/themes/OptionBase.css.js +1 -1
  318. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  319. package/dist/generated/themes/Panel.css.d.ts +1 -1
  320. package/dist/generated/themes/Panel.css.js +1 -1
  321. package/dist/generated/themes/Panel.css.js.map +1 -1
  322. package/dist/generated/themes/Popover.css.d.ts +1 -1
  323. package/dist/generated/themes/Popover.css.js +1 -1
  324. package/dist/generated/themes/Popover.css.js.map +1 -1
  325. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  326. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  327. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  328. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  329. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  330. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  331. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  332. package/dist/generated/themes/RadioButton.css.js +1 -1
  333. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  334. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  335. package/dist/generated/themes/RangeSlider.css.js +1 -1
  336. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  337. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  338. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  339. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  340. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  341. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  342. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  343. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  344. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  345. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  346. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  347. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  348. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  349. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  350. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  351. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  352. package/dist/generated/themes/Select.css.d.ts +1 -1
  353. package/dist/generated/themes/Select.css.js +1 -1
  354. package/dist/generated/themes/Select.css.js.map +1 -1
  355. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  356. package/dist/generated/themes/SliderBase.css.js +1 -1
  357. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  358. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  359. package/dist/generated/themes/SplitButton.css.js +1 -1
  360. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  361. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  362. package/dist/generated/themes/StepInput.css.js +1 -1
  363. package/dist/generated/themes/StepInput.css.js.map +1 -1
  364. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  365. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  366. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  367. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  368. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  369. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  370. package/dist/generated/themes/Switch.css.d.ts +1 -1
  371. package/dist/generated/themes/Switch.css.js +1 -1
  372. package/dist/generated/themes/Switch.css.js.map +1 -1
  373. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  374. package/dist/generated/themes/TabContainer.css.js +1 -1
  375. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  376. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  377. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  378. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  379. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  380. package/dist/generated/themes/TabInStrip.css.js +1 -1
  381. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  382. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  383. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  384. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  385. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  386. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  387. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  388. package/dist/generated/themes/Table.css.d.ts +1 -1
  389. package/dist/generated/themes/Table.css.js +1 -1
  390. package/dist/generated/themes/Table.css.js.map +1 -1
  391. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  392. package/dist/generated/themes/TableCellBase.css.js +1 -1
  393. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  394. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  395. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  396. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  397. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  398. package/dist/generated/themes/TableRow.css.js +1 -1
  399. package/dist/generated/themes/TableRow.css.js.map +1 -1
  400. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  401. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  402. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  403. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  404. package/dist/generated/themes/TableRowBase.css.js +1 -1
  405. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  406. package/dist/generated/themes/Tag.css.d.ts +1 -1
  407. package/dist/generated/themes/Tag.css.js +1 -1
  408. package/dist/generated/themes/Tag.css.js.map +1 -1
  409. package/dist/generated/themes/Text.css.d.ts +1 -1
  410. package/dist/generated/themes/Text.css.js +1 -1
  411. package/dist/generated/themes/Text.css.js.map +1 -1
  412. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  413. package/dist/generated/themes/TextArea.css.js +1 -1
  414. package/dist/generated/themes/TextArea.css.js.map +1 -1
  415. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  416. package/dist/generated/themes/TimePicker.css.js +1 -1
  417. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  418. package/dist/generated/themes/Toast.css.d.ts +1 -1
  419. package/dist/generated/themes/Toast.css.js +1 -1
  420. package/dist/generated/themes/Toast.css.js.map +1 -1
  421. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  422. package/dist/generated/themes/ToggleButton.css.js +1 -1
  423. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  424. package/dist/generated/themes/Token.css.d.ts +1 -1
  425. package/dist/generated/themes/Token.css.js +1 -1
  426. package/dist/generated/themes/Token.css.js.map +1 -1
  427. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  428. package/dist/generated/themes/Tokenizer.css.js +1 -1
  429. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  430. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  431. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  432. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  433. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  434. package/dist/generated/themes/Toolbar.css.js +1 -1
  435. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  436. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  437. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  438. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  439. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  440. package/dist/generated/themes/TreeItem.css.js +1 -1
  441. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  442. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  443. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  444. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  445. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  446. package/dist/generated/themes/YearPicker.css.js +1 -1
  447. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  448. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  449. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  450. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  451. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  452. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  453. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  454. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  455. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  456. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  457. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  458. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  459. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  460. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  461. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  462. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  463. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  464. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  465. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  466. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  467. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  468. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  469. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  470. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  471. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  472. package/dist/vscode.html-custom-data.json +3 -3
  473. package/dist/web-types.json +11 -3
  474. package/package.json +10 -10
  475. package/src/MessageStripTemplate.tsx +4 -3
  476. package/src/TreeItemBaseTemplate.tsx +7 -1
  477. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  478. package/src/i18n/messagebundle_vi.properties +1 -1
  479. package/src/themes/ListItem.css +16 -9
  480. package/src/themes/TreeItem.css +9 -0
  481. package/src/themes/base/RadioButton-parameters.css +1 -1
  482. package/src/themes/sap_fiori_3_hcb/RadioButton-parameters.css +0 -1
  483. package/src/themes/sap_fiori_3_hcw/RadioButton-parameters.css +0 -1
  484. package/src/themes/sap_horizon/RadioButton-parameters.css +1 -0
  485. package/src/themes/sap_horizon_dark/RadioButton-parameters.css +1 -0
  486. package/src/themes/sap_horizon_hcb/RadioButton-parameters.css +0 -1
  487. package/src/themes/sap_horizon_hcw/RadioButton-parameters.css +0 -1
@@ -0,0 +1,499 @@
1
+
2
+ import RadioButton from "../../src/RadioButton.js";
3
+ import Input from "../../src/Input.js";
4
+ import Label from "../../src/Label.js";
5
+
6
+ describe("Rendering", () => {
7
+ it("DOM structure", () => {
8
+ cy.mount(
9
+ <>
10
+ <RadioButton id="testRbtn" text="N/A" disabled name="test"></RadioButton>
11
+ <RadioButton id="testRbtn1" text="Male" name="test"></RadioButton>
12
+ <RadioButton id="groupRbReadOnly" name="a" readonly text="Option E"></RadioButton>
13
+ </>);
14
+
15
+ cy.get("#testRbtn1")
16
+ .shadow()
17
+ .find(".ui5-radio-root")
18
+ .should("not.have.attr", "aria-disabled");
19
+
20
+ cy.get("#testRbtn1")
21
+ .shadow()
22
+ .find("input")
23
+ .should("not.have.attr", "disabled");
24
+
25
+ cy.get("#testRbtn")
26
+ .shadow()
27
+ .find(".ui5-radio-root")
28
+ .should("have.attr", "aria-disabled");
29
+
30
+ cy.get("#testRbtn")
31
+ .shadow()
32
+ .find("input")
33
+ .should("have.attr", "disabled");
34
+
35
+ cy.get("#groupRbReadOnly")
36
+ .shadow()
37
+ .find(".ui5-radio-root")
38
+ .should("have.attr", "aria-disabled");
39
+
40
+ cy.get("#groupRbReadOnly")
41
+ .shadow()
42
+ .find("input")
43
+ .should("have.attr", "readonly");
44
+
45
+ cy.get("#groupRbReadOnly")
46
+ .shadow()
47
+ .find(".ui5-radio-root")
48
+ .should("have.attr", "aria-disabled");
49
+ });
50
+ });
51
+
52
+ describe("RadioButton general interaction", () => {
53
+ it("tests change event", () => {
54
+ const changeEventStub = cy.stub().as("myStub");
55
+ cy.mount(<RadioButton id="rb1" onChange={changeEventStub}></RadioButton>);
56
+
57
+ cy.get("#rb1")
58
+ .shadow()
59
+ .find(".ui5-radio-root")
60
+ .should("exist");
61
+
62
+ cy.get("@myStub").should("not.have.been.called");
63
+
64
+ cy.get("#rb1").realClick();
65
+ cy.get("@myStub").should("have.been.called");
66
+
67
+ cy.get("#rb1").realClick();
68
+ cy.get("@myStub").should("have.been.calledOnce");
69
+ });
70
+
71
+ it("tests change event upon ENTER", () => {
72
+ const changeEventStub = cy.stub().as("myStub");
73
+ cy.mount(
74
+ <>
75
+ <RadioButton id="rb1"></RadioButton>
76
+ <RadioButton id="rb2" text="Option B" onChange={changeEventStub}></RadioButton>
77
+ </>);
78
+
79
+ cy.get("#rb1")
80
+ .shadow()
81
+ .find(".ui5-radio-root")
82
+ .should("exist");
83
+
84
+ cy.get("#rb1").realClick();
85
+ cy.get("#rb1").should("be.focused");
86
+ cy.get("#rb1").realPress("Tab");
87
+
88
+ cy.get("#rb2")
89
+ .shadow()
90
+ .find(".ui5-radio-root")
91
+ .should("exist");
92
+
93
+ cy.get("@myStub").should("not.have.been.called");
94
+ cy.get("#rb2").realPress("Enter");
95
+ cy.get("@myStub").should("have.been.called");
96
+
97
+ cy.get("#rb2").realPress("Enter");
98
+ cy.get("@myStub").should("have.been.calledOnce");
99
+ });
100
+
101
+ it("tests change event upon SPACE", () => {
102
+ const changeEventStub = cy.stub().as("myStub");
103
+ cy.mount(
104
+ <>
105
+ <RadioButton id="rb2" text="Option B"></RadioButton>
106
+ <RadioButton id="rb3" wrappingType="Normal" text="Option C" onChange={changeEventStub}></RadioButton>
107
+ </>);
108
+
109
+ cy.get("#rb2")
110
+ .shadow()
111
+ .find(".ui5-radio-root")
112
+ .should("exist");
113
+
114
+ cy.get("#rb2").realClick();
115
+ cy.get("#rb2").should("be.focused");
116
+ cy.get("#rb2").realPress("Tab");
117
+
118
+ cy.get("#rb3")
119
+ .shadow()
120
+ .find(".ui5-radio-root")
121
+ .should("exist");
122
+
123
+ cy.get("@myStub").should("not.have.been.called");
124
+ cy.get("#rb3").realPress("Space");
125
+ cy.get("@myStub").should("have.been.called");
126
+
127
+ cy.get("#rb3").realPress("Space");
128
+ cy.get("@myStub").should("have.been.calledOnce");
129
+ });
130
+
131
+ it("tests change event not fired, when disabled", () => {
132
+ const changeEventStub = cy.stub().as("myStub");
133
+ cy.mount(<RadioButton id="rb4" disabled text="Option D" onChange={changeEventStub}></RadioButton>);
134
+
135
+ cy.get("#rb4")
136
+ .shadow()
137
+ .find(".ui5-radio-root")
138
+ .should("exist");
139
+
140
+ cy.get("#rb4").realClick();
141
+ cy.get("#rb4").should("be.focused");
142
+ cy.get("#rb4").realPress("Space");
143
+ cy.get("#rb4").realPress("Enter");
144
+
145
+ cy.get("@myStub").should("not.have.been.called");
146
+ });
147
+
148
+ it("tests radio buttons selection within group with ARROW-RIGHT key", () => {
149
+ cy.mount(
150
+ <>
151
+ <Input id="tabField"></Input>
152
+ <RadioButton id="groupRb1" name="a" wrappingType="None" text="Option A long long should shrink long long text text text text text text text text"></RadioButton>
153
+ <RadioButton id="groupRb2" name="a" disabled text="Option C"></RadioButton>
154
+ <RadioButton id="groupRb3" name="a" text="Option D"></RadioButton>
155
+ <RadioButton id="groupRbReadOnly" name="a" readonly text="Option E"></RadioButton>
156
+ </>);
157
+
158
+ cy.get("#tabField").should("exist");
159
+ cy.get("#tabField").realClick();
160
+ cy.get("#tabField").should("be.focused");
161
+ cy.get("#tabField").realPress("Tab");
162
+
163
+ cy.get("#groupRb1").should("exist");
164
+ cy.get("#groupRb1").should("be.focused");
165
+ cy.get("#groupRb1").realPress("ArrowRight");
166
+
167
+ cy.get("#groupRb1").should("have.prop", "checked", false);
168
+ cy.get("#groupRb3").should("have.prop", "checked", true);
169
+
170
+ cy.get("#groupRb3").should("exist");
171
+ cy.get("#groupRb3").should("be.focused");
172
+ cy.get("#groupRb3").realPress("ArrowRight");
173
+
174
+ cy.get("#groupRb3").should("have.prop", "checked", true);
175
+ cy.get("#groupRbReadOnly").should("have.prop", "checked", false);
176
+ cy.get("#groupRbReadOnly").should("be.focused");
177
+ });
178
+
179
+ it("tests radio buttons selection within group with ARROW-LEFT key", () => {
180
+ cy.mount(
181
+ <>
182
+ <RadioButton id="groupRb4" name="b" wrappingType="None" text="Option A long long should shrink long long text text text text text text text text"></RadioButton>
183
+ <RadioButton id="groupRb5" name="b" disabled text="Option C"></RadioButton>
184
+ <RadioButton id="groupRb6" name="b" text="Option D"></RadioButton>
185
+ </>);
186
+
187
+ cy.get("#groupRb4").should("exist");
188
+ cy.get("#groupRb6").should("exist");
189
+ cy.get("#groupRb4").realClick();
190
+
191
+ cy.get("#groupRb4").should("be.focused");
192
+
193
+ cy.realPress("ArrowLeft");
194
+
195
+ cy.get("#groupRb4").should("have.prop", "checked", false);
196
+ cy.get("#groupRb6").should("have.prop", "checked", true);
197
+ });
198
+
199
+ it("tests tabindex within group with selected item", () => {
200
+ cy.mount(
201
+ <>
202
+ <RadioButton id="testRbtn11" name="test2" checked text="Selected A"></RadioButton>
203
+ <RadioButton id="testRbtn12" name="test2" disabled text="Disabled B"></RadioButton>
204
+ <RadioButton id="testRbtn13" name="test2" text="Standard C"></RadioButton>
205
+ </>);
206
+
207
+ cy.get("#testRbtn11")
208
+ .shadow()
209
+ .find(".ui5-radio-root")
210
+ .should("have.attr", "tabindex", "0");
211
+
212
+ cy.get("#testRbtn12")
213
+ .shadow()
214
+ .find(".ui5-radio-root")
215
+ .should("have.attr", "tabindex", "-1");
216
+
217
+ cy.get("#testRbtn13")
218
+ .shadow()
219
+ .find(".ui5-radio-root")
220
+ .should("have.attr", "tabindex", "-1");
221
+ });
222
+
223
+ it("tests tabindex within group with no checked item", () => {
224
+ cy.mount(
225
+ <>
226
+ <RadioButton id="testRbtn1" text="Male" name="test"></RadioButton>
227
+ <RadioButton id="testRbtn2" text="Female" name="test"></RadioButton>
228
+ </>);
229
+
230
+ cy.get("#testRbtn1")
231
+ .shadow()
232
+ .find(".ui5-radio-root")
233
+ .should("have.attr", "tabindex", "0");
234
+
235
+ cy.get("#testRbtn2")
236
+ .shadow()
237
+ .find(".ui5-radio-root")
238
+ .should("have.attr", "tabindex", "-1");
239
+ });
240
+
241
+ it("tests radio buttons selection within group by clicking", () => {
242
+ cy.mount(
243
+ <>
244
+ <RadioButton id="groupRb4" name="b" wrappingType="None" text="Option A long long should shrink long long text text text text text text text text"></RadioButton>
245
+ <RadioButton id="groupRb6" checked name="b" text="Option D"></RadioButton>
246
+ </>);
247
+
248
+ cy.get("#groupRb4")
249
+ .shadow()
250
+ .find(".ui5-radio-root")
251
+ .should("exist");
252
+
253
+ cy.get("#groupRb6")
254
+ .shadow()
255
+ .find(".ui5-radio-root")
256
+ .should("exist");
257
+
258
+ cy.get("#groupRb4").realClick();
259
+
260
+ cy.get("#groupRb6")
261
+ .should("have.prop", "checked", false);
262
+
263
+ cy.get("#groupRb6")
264
+ .shadow()
265
+ .find(".ui5-radio-root")
266
+ .should("have.attr", "tabindex", "-1");
267
+
268
+ cy.get("#groupRb4").should("have.prop", "checked", true);
269
+
270
+ cy.get("#groupRb4")
271
+ .shadow()
272
+ .find(".ui5-radio-root")
273
+ .should("have.attr", "tabindex", "0");
274
+ });
275
+
276
+ it("tests single selection within group, even if multiple radios are set as checked", () => {
277
+ cy.mount(
278
+ <>
279
+ <RadioButton id="groupRb8" text="Critical" valueState="Critical" checked name="GroupB"></RadioButton>
280
+ <RadioButton id="groupRb9" text="Negative" valueState="Negative" checked name="GroupB"></RadioButton>
281
+ <RadioButton id="groupRb10" text="Default selected" valueState="None" checked name="GroupB"></RadioButton>
282
+ </>);
283
+
284
+ cy.get("#groupRb8").should("not.have.attr", "checked");
285
+ cy.get("#groupRb9").should("not.have.attr", "checked");
286
+ cy.get("#groupRb10").should("have.attr", "checked");
287
+ });
288
+
289
+ it("tests change event from radio buttons within group", () => {
290
+ const changeEventStub = cy.stub().as("myStub");
291
+ cy.mount(<RadioButton id="groupRb7" text="None selected" onChange={changeEventStub} valueState="None" name="GroupB"></RadioButton>);
292
+
293
+ cy.get("#groupRb7")
294
+ .shadow()
295
+ .find(".ui5-radio-root")
296
+ .should("exist");
297
+
298
+ cy.get("@myStub").should("not.have.been.called");
299
+
300
+ cy.get("#groupRb7").realClick();
301
+
302
+ cy.get("@myStub").should("be.calledOnce");
303
+ cy.get("#groupRb7").should("have.prop", "checked", true);
304
+ });
305
+
306
+ it("tests truncating and wrapping", () => {
307
+ const RADIOBUTTON_DEFAULT_HEIGHT = 44;
308
+ cy.mount(
309
+ <>
310
+ <RadioButton id="truncatingRb" wrappingType="None" text="Long long long long long long long long long long text that should truncate at some point"></RadioButton>
311
+ <br />
312
+ <RadioButton id="wrappingRb" wrappingType="Normal" text="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s." class="radiobutton2auto"></RadioButton>
313
+ </>);
314
+
315
+ cy.get("#truncatingRb").should("have.prop", "wrappingType", "None");
316
+ cy.get("#wrappingRb").should("have.prop", "wrappingType", "Normal");
317
+
318
+ cy.get("#truncatingRb").invoke("height").should($truncatedLabelHeight => {
319
+ expect($truncatedLabelHeight).to.be.equal(RADIOBUTTON_DEFAULT_HEIGHT);
320
+ });
321
+ cy.get("#wrappingRb").invoke("height").should($truncatedLabelHeight => {
322
+ expect($truncatedLabelHeight).to.be.equal(RADIOBUTTON_DEFAULT_HEIGHT);
323
+ });
324
+ });
325
+
326
+ it("tests accessibleName", () => {
327
+ const RADIOBUTTON_LABEL = "Sample Label";
328
+ const RADIOBUTTON_TEXT = "Sample Text";
329
+
330
+ cy.mount(
331
+ <>
332
+ <RadioButton id="rb-acc-name" accessible-name="Sample Label"></RadioButton>
333
+ <RadioButton id="rb-acc-name-text" text="Sample Text" accessible-name="Sample Label"></RadioButton>
334
+ </>);
335
+
336
+ cy.get("#rb-acc-name").should('have.prop', "ariaLabelText", RADIOBUTTON_LABEL);
337
+ cy.get("#rb-acc-name-text").should('have.prop', "ariaLabelText", `${RADIOBUTTON_LABEL} ${RADIOBUTTON_TEXT}`);
338
+ });
339
+
340
+ it("tests accessibleNameRef", () => {
341
+ const LABEL_TEXT = "Label for this radio button:";
342
+ cy.mount(
343
+ <>
344
+ <Label id="lbl-rb-acc-name-ref">{LABEL_TEXT}</Label>
345
+ <RadioButton id="rb-acc-name-ref" accessibleNameRef="lbl-rb-acc-name-ref"></RadioButton>
346
+ </>);
347
+
348
+ cy.get("#rb-acc-name-ref").should("have.prop", "ariaLabelText", LABEL_TEXT);
349
+ });
350
+
351
+ it("tests accessibleNameRef and radio button text together", () => {
352
+ const LABEL_TEXT = "Label for this radio button:";
353
+ const RADIO_BUTTON_TEXT = "Sample Text";
354
+ cy.mount(
355
+ <>
356
+ <Label id="lbl-rb-acc-name-ref-with-text">{LABEL_TEXT}</Label>
357
+ <RadioButton id="rb-acc-name-ref-with-text" accessibleNameRef="lbl-rb-acc-name-ref-with-text" text={RADIO_BUTTON_TEXT}></RadioButton>
358
+ </>);
359
+
360
+ cy.get("#rb-acc-name-ref-with-text").should("have.prop", "ariaLabelText", `${LABEL_TEXT} ${RADIO_BUTTON_TEXT}`);
361
+ });
362
+
363
+ it("tests accessibleNameRef when the radio button is wrapped by another custom element", () => {
364
+ const LABEL_TEXT = "Label for this radio button:";
365
+ cy.mount(
366
+ <>
367
+ <Label id="lbl-rb-acc-name-ref">{LABEL_TEXT}</Label>
368
+ <RadioButton id="rb-acc-name-ref-wrapped" accessibleNameRef="lbl-rb-acc-name-ref"></RadioButton>
369
+ </>);
370
+
371
+ cy.get("#rb-acc-name-ref-wrapped").should("have.prop", "ariaLabelText", LABEL_TEXT);
372
+ });
373
+
374
+ it("correctly assigns tabindex when the whole group has been removed from DOM and added back to DOM", () => {
375
+ cy.mount(<div id="rbGroupContainer"></div>);
376
+
377
+ cy.get("#rbGroupContainer").then(($el) => {
378
+ $el[0].innerHTML = `
379
+ <ui5-radio-button id="optionA" name="sameGroup" text="A"></ui5-radio-button>
380
+ <ui5-radio-button id="optionB" name="sameGroup" text="B"></ui5-radio-button>
381
+ <ui5-radio-button id="optionC" name="sameGroup" text="C"></ui5-radio-button>
382
+ `;
383
+ });
384
+
385
+ cy.get("#optionA").shadow().find(".ui5-radio-root").should('have.attr', "tabindex", "0");
386
+ cy.get("#optionB").shadow().find(".ui5-radio-root").should('have.attr', "tabindex", "-1");
387
+ cy.get("#optionC").shadow().find(".ui5-radio-root").should('have.attr', "tabindex", "-1");
388
+
389
+ cy.get("#rbGroupContainer").then(($el) => {
390
+ $el[0].innerHTML = "";
391
+ $el[0].innerHTML = `
392
+ <ui5-radio-button id="optionA" name="sameGroup" text="A"></ui5-radio-button>
393
+ <ui5-radio-button id="optionB" name="sameGroup" text="B"></ui5-radio-button>
394
+ <ui5-radio-button id="optionC" name="sameGroup" text="C"></ui5-radio-button>
395
+ `;
396
+ });
397
+
398
+ cy.get("#optionA").shadow().find(".ui5-radio-root").should('have.attr', "tabindex", "0");
399
+ cy.get("#optionB").shadow().find(".ui5-radio-root").should('have.attr', "tabindex", "-1");
400
+ cy.get("#optionC").shadow().find(".ui5-radio-root").should('have.attr', "tabindex", "-1");
401
+ });
402
+
403
+ it("tests form interaction", () => {
404
+ cy.mount(
405
+ <form id="formWithRequiredRadio">
406
+ <RadioButton id="formRadioBtnRequired" value="optionA" name="formGroup" text="Option A" required></RadioButton>
407
+ <RadioButton value="optionB" name="formGroup" text="Option B"></RadioButton>
408
+ <RadioButton value="optionC" name="formGroup" text="Option C"></RadioButton>
409
+ <Input type="submit" />
410
+ </form>);
411
+
412
+ cy.get<HTMLFormElement>("#formWithRequiredRadio").then(($el) => {
413
+ return $el[0].checkValidity()
414
+ }).should("be.false");
415
+ cy.get("#formRadioBtnRequired").should("have.prop", "required", true);
416
+ cy.get("#formRadioBtnRequired").should("have.prop", "checked", false);
417
+
418
+ cy.get("#formRadioBtnRequired")
419
+ .shadow()
420
+ .find(".ui5-radio-root")
421
+ .realClick();
422
+
423
+ cy.get<HTMLFormElement>("#formWithRequiredRadio").then(($el) => {
424
+ return $el[0].checkValidity()
425
+ }).should("be.true");
426
+ cy.get("#formRadioBtnRequired").should("have.prop", "checked", true);
427
+ });
428
+
429
+ it("tests dynamically creating of buttons", () => {
430
+ cy.mount(<div id="radioContainer"></div>);
431
+
432
+ cy.get("#radioContainer").then($container => {
433
+ const rb1 = document.createElement("ui5-radio-button") as RadioButton;
434
+ const rb2 = document.createElement("ui5-radio-button") as RadioButton;
435
+
436
+ cy.spy<RadioButton>((rb1 as RadioButton), "appendChild").as("showOutsideViewport");
437
+
438
+ rb1.id = "testDRbtn11";
439
+ rb1.name = "test2";
440
+ rb1.text = "A";
441
+
442
+ $container[0].appendChild(rb1);
443
+
444
+ cy.spy<RadioButton>((rb2 as RadioButton), "appendChild").as("showOutsideViewport");
445
+
446
+ rb2.id = "testDRbtn12";
447
+ rb2.name = "test2";
448
+ rb2.text = "B";
449
+
450
+ $container[0].appendChild(rb2);
451
+ });
452
+
453
+ cy.get("#testDRbtn11")
454
+ .should("be.visible");
455
+
456
+ cy.get("#testDRbtn12")
457
+ .should("be.visible");
458
+ });
459
+ });
460
+
461
+ describe("RadioButton keyboard handling in RTL", () => {
462
+ it("Arrow Left", () => {
463
+ cy.mount(
464
+ <div dir="rtl">
465
+ <RadioButton id="rtlOptionA" name="rtlGroup" text="Option A" checked></RadioButton>
466
+ <RadioButton id="rtlOptionB" name="rtlGroup" text="Option B"></RadioButton>
467
+ <RadioButton id="rtlOptionC" name="rtlGroup" text="Option C"></RadioButton>
468
+ </div>);
469
+
470
+ cy.get("#rtlOptionA").should("exist");
471
+ cy.get("#rtlOptionA").realClick().realPress("ArrowLeft");
472
+
473
+ cy.get("#rtlOptionB").should("have.prop", "checked", true);
474
+
475
+ cy.get("#rtlOptionB").should("exist");
476
+ cy.get("#rtlOptionB").realPress("ArrowLeft");
477
+
478
+ cy.get("#rtlOptionC").should("have.prop", "checked", true);
479
+ });
480
+
481
+ it("Arrow Right", () => {
482
+ cy.mount(
483
+ <div dir="rtl">
484
+ <RadioButton id="rtlOptionA" name="rtlGroup" text="Option A" checked></RadioButton>
485
+ <RadioButton id="rtlOptionB" name="rtlGroup" text="Option B"></RadioButton>
486
+ <RadioButton id="rtlOptionC" name="rtlGroup" text="Option C"></RadioButton>
487
+ </div>);
488
+
489
+ cy.get("#rtlOptionA").should("exist");
490
+ cy.get("#rtlOptionA").realClick().realPress("ArrowRight");
491
+
492
+ cy.get("#rtlOptionC").should("have.prop", "checked", true);
493
+
494
+ cy.get("#rtlOptionC").should("exist");
495
+ cy.get("#rtlOptionC").realPress("ArrowRight");
496
+
497
+ cy.get("#rtlOptionB").should("have.prop", "checked", true);
498
+ });
499
+ });
@@ -173,7 +173,7 @@ describe("RatingIndicator", () => {
173
173
  cy.mount(
174
174
  <>
175
175
  <label id="label-acc-name-ref">{ACCESSIBLE_NAME_REF_TEXT}</label>
176
- <RatingIndicator id="rating-indicator-acc-name-ref" accessible-name-ref="label-acc-name-ref"></RatingIndicator>
176
+ <RatingIndicator id="rating-indicator-acc-name-ref" accessibleNameRef="label-acc-name-ref"></RatingIndicator>
177
177
  </>
178
178
  );
179
179
 
@@ -208,7 +208,7 @@ describe("Select - Accessibility", () => {
208
208
  describe("Select - Popover", () => {
209
209
  it("Popover should render custom value state", () => {
210
210
  cy.mount(
211
- <Select id="warningSelect" value-state="Critical">
211
+ <Select id="warningSelect" valueState="Critical">
212
212
  <Option>This option has text bigger than ui5-select's width</Option>
213
213
  <div slot="valueStateMessage">Custom message</div>
214
214
  </Select>
@@ -4,7 +4,7 @@ import Tab from "../../src/Tab.js";
4
4
  describe("TabContainer general interaction", () => {
5
5
  it("Tests no auto selection", () => {
6
6
  cy.mount(
7
- <TabContainer no-auto-selection id="tcNoAuto">
7
+ <TabContainer noAutoSelection id="tcNoAuto">
8
8
  <Tab text="Products ID">
9
9
  tab1
10
10
  </Tab>
@@ -743,14 +743,14 @@ describe("Table - Interactive Rows", () => {
743
743
  describe("Table - HeaderCell", () => {
744
744
  beforeEach(() => {
745
745
  cy.mount(
746
- <Table overflow-mode="Popin">
746
+ <Table overflowMode="Popin">
747
747
  <TableHeaderRow slot="headerRow">
748
- <TableHeaderCell min-width="300px">Column A</TableHeaderCell>
749
- <TableHeaderCell min-width="200px" sort-indicator="Ascending">
748
+ <TableHeaderCell minWidth="300px">Column A</TableHeaderCell>
749
+ <TableHeaderCell minWidth="200px" sortIndicator="Ascending">
750
750
  <Label required wrappingType="None">Column B</Label>
751
751
  <TableHeaderCellActionAI slot="action"></TableHeaderCellActionAI>
752
752
  </TableHeaderCell>
753
- <TableHeaderCell min-width="150px" popin-text="Popin Text">
753
+ <TableHeaderCell minWidth="150px" popinText="Popin Text">
754
754
  <Label required>Column C</Label>
755
755
  </TableHeaderCell>
756
756
  </TableHeaderRow>
@@ -24,17 +24,17 @@ describe("Table - Keyboard Navigation with Fixed Headers", () => {
24
24
  it("scrollable container - focused row should always be below the header", () => {
25
25
  cy.mount(
26
26
  <div style="height:300px; overflow:auto;">
27
- <Bar id="toolbar" design="Header" accessible-name-ref="title" style="position: sticky; top: 0; z-index: 2; height: 50px;">
27
+ <Bar id="toolbar" design="Header" style="position: sticky; top: 0; z-index: 2; height: 50px;">
28
28
  <Title tabindex={0} level="H3" id="title" slot="startContent">My Selectable Products (3)</Title>
29
29
  <Slider id="slider" min={0} max={100} step={1} value={100}
30
30
  label-interval="0"/>
31
31
  </Bar>
32
- <Table id="table0" overflow-mode="Popin" sticky-top="50px" accessible-name-ref="title" no-data-text="No data found">
32
+ <Table id="table0" overflowMode="Popin" stickyTop="50px" accessibleNameRef="title" noDataText="No data found">
33
33
  <TableHeaderRow sticky slot="headerRow">
34
- <TableHeaderCell id="colA" min-width="300px"><span>ColumnA</span></TableHeaderCell>
35
- <TableHeaderCell id="colB" min-width="200px">Column B</TableHeaderCell>
36
- <TableHeaderCell id="colC" min-width="200px">Column C</TableHeaderCell>
37
- <TableHeaderCell id="colD" min-width="150px">Column D</TableHeaderCell>
34
+ <TableHeaderCell id="colA" minWidth="300px"><span>ColumnA</span></TableHeaderCell>
35
+ <TableHeaderCell id="colB" minWidth="200px">Column B</TableHeaderCell>
36
+ <TableHeaderCell id="colC" minWidth="200px">Column C</TableHeaderCell>
37
+ <TableHeaderCell id="colD" minWidth="150px">Column D</TableHeaderCell>
38
38
  </TableHeaderRow>
39
39
  <TableRow id="row-1"> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> </TableRow>
40
40
  <TableRow id="row-2"> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> </TableRow>
@@ -88,12 +88,12 @@ describe("Table - Keyboard Navigation with Fixed Headers", () => {
88
88
 
89
89
  it("scrollable table - focused row should always be below the header", () => {
90
90
  cy.mount(
91
- <Table id="table1" overflow-mode="Popin" sticky-top="0" accessible-name-ref="title" no-data-text="No data found" style="height: 300px; overflow: auto;">
91
+ <Table id="table1" overflowMode="Popin" stickyTop="0" accessibleNameRef="title" noDataText="No data found" style="height: 300px; overflow: auto;">
92
92
  <TableHeaderRow sticky slot="headerRow">
93
- <TableHeaderCell id="colA" min-width="300px"><span>ColumnA</span></TableHeaderCell>
94
- <TableHeaderCell id="colB" min-width="200px">Column B</TableHeaderCell>
95
- <TableHeaderCell id="colC" min-width="200px">Column C</TableHeaderCell>
96
- <TableHeaderCell id="colD" min-width="150px">Column D</TableHeaderCell>
93
+ <TableHeaderCell id="colA" minWidth="300px"><span>ColumnA</span></TableHeaderCell>
94
+ <TableHeaderCell id="colB" minWidth="200px">Column B</TableHeaderCell>
95
+ <TableHeaderCell id="colC" minWidth="200px">Column C</TableHeaderCell>
96
+ <TableHeaderCell id="colD" minWidth="150px">Column D</TableHeaderCell>
97
97
  </TableHeaderRow>
98
98
  <TableRow id="row-1-1"> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> </TableRow>
99
99
  <TableRow id="row-2-1"> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> <TableCell></TableCell> </TableRow>
@@ -147,17 +147,17 @@ describe("Table - Keyboard Navigation with Fixed Headers", () => {
147
147
  it("body as scroll container - focused row should always be below the header", () => {
148
148
  cy.mount(
149
149
  <>
150
- <Bar id="toolbar2" design="Header" accessible-name-ref="title" style="position: sticky; top: 0; z-index: 2; height: 50px;">
150
+ <Bar id="toolbar2" design="Header" style="position: sticky; top: 0; z-index: 2; height: 50px;">
151
151
  <Title tabindex={0} level="H3" id="title" slot="startContent">My Selectable Products (3)</Title>
152
152
  <Slider id="slider" min={0} max={100} step={1} value={100}
153
153
  label-interval="0"></Slider>
154
154
  </Bar>
155
- <Table id="table2" overflow-mode="Popin" sticky-top="50px" accessible-name-ref="title" no-data-text="No data found">
155
+ <Table id="table2" overflowMode="Popin" stickyTop="50px" accessibleNameRef="title" noDataText="No data found">
156
156
  <TableHeaderRow sticky slot="headerRow">
157
- <TableHeaderCell id="colA" min-width="300px"><span>ColumnA</span></TableHeaderCell>
158
- <TableHeaderCell id="colB" min-width="200px">Column B</TableHeaderCell>
159
- <TableHeaderCell id="colC" min-width="200px">Column C</TableHeaderCell>
160
- <TableHeaderCell id="colD" min-width="150px">Column D</TableHeaderCell>
157
+ <TableHeaderCell id="colA" minWidth="300px"><span>ColumnA</span></TableHeaderCell>
158
+ <TableHeaderCell id="colB" minWidth="200px">Column B</TableHeaderCell>
159
+ <TableHeaderCell id="colC" minWidth="200px">Column C</TableHeaderCell>
160
+ <TableHeaderCell id="colD" minWidth="150px">Column D</TableHeaderCell>
161
161
  </TableHeaderRow>
162
162
  ${Array.from({ length: 100 }).map((row, index) =>
163
163
  <TableRow id={`row-${index + 1}-2`}>
@@ -215,15 +215,10 @@ Object.entries(testConfig).forEach(([mode, testConfigEntry]) => {
215
215
  cy.get("@row0").shadow().find("#selection-component").realClick();
216
216
  checkSelection(testConfigEntry.cases.RANGE_MOUSE.range_mouse_initial);
217
217
 
218
- // Need to simulate keydown with SHIFT key to set range selection flag shiftKeyPressed
219
- // Cypress does not trigger keydown when just calling realClick with shiftKey: true
220
- // That is why selection of the row is not supressed, and we end up with 0 4 1 2 3
221
- cy.get("@row4").trigger("keydown", { bubbles: true, key: "Shift", shiftKey: true });
222
218
  cy.get("@row4").shadow().find("#selection-component").realClick({ shiftKey: true });
223
219
  checkSelection(testConfigEntry.cases.RANGE_MOUSE.range_mouse_final);
224
220
 
225
- cy.get("@row4").trigger("keydown", { bubbles: true, key: "Shift", shiftKey: true });
226
- cy.get("@row0").shadow().find("#selection-component").realClick();
221
+ cy.get("@row0").shadow().find("#selection-component").realClick({ shiftKey: true });
227
222
  checkSelection(testConfigEntry.cases.RANGE_MOUSE.range_mouse_edge);
228
223
  });
229
224