@ui5/webcomponents 2.4.1-rc.0 → 2.5.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 (483) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/cypress/specs/ColorPicker.cy.ts +27 -0
  3. package/cypress/specs/Form.cy.ts +250 -44
  4. package/cypress/specs/LitKeyFunction.cy.ts +23 -16
  5. package/cypress/specs/TableGrowing.cy.ts +358 -0
  6. package/cypress/specs/Tokenizer.cy.ts +114 -0
  7. package/cypress/specs/Toolbar.cy.ts +25 -0
  8. package/cypress/specs/Tree.cy.ts +29 -0
  9. package/cypress/specs/base/{AriaLabelHelper.cy.ts → AccessibilityTextsHelper.cy.ts} +37 -1
  10. package/cypress/specs/base/Events.cy.ts +1 -2
  11. package/cypress/support/commands.ts +1 -0
  12. package/dist/.tsbuildinfo +1 -1
  13. package/dist/Button.js +1 -1
  14. package/dist/Button.js.map +1 -1
  15. package/dist/Card.js +1 -1
  16. package/dist/Card.js.map +1 -1
  17. package/dist/CardHeader.d.ts +1 -1
  18. package/dist/CardHeader.js +1 -1
  19. package/dist/CardHeader.js.map +1 -1
  20. package/dist/Carousel.js +1 -1
  21. package/dist/Carousel.js.map +1 -1
  22. package/dist/CheckBox.js +1 -1
  23. package/dist/CheckBox.js.map +1 -1
  24. package/dist/ColorPicker.d.ts +9 -0
  25. package/dist/ColorPicker.js +14 -0
  26. package/dist/ColorPicker.js.map +1 -1
  27. package/dist/ComboBox.d.ts +0 -1
  28. package/dist/ComboBox.js +11 -13
  29. package/dist/ComboBox.js.map +1 -1
  30. package/dist/ComboBoxItem.d.ts +11 -5
  31. package/dist/ComboBoxItem.js +21 -8
  32. package/dist/ComboBoxItem.js.map +1 -1
  33. package/dist/ComboBoxItemGroup.d.ts +5 -20
  34. package/dist/ComboBoxItemGroup.js +9 -26
  35. package/dist/ComboBoxItemGroup.js.map +1 -1
  36. package/dist/DatePicker.js +1 -1
  37. package/dist/DatePicker.js.map +1 -1
  38. package/dist/Form.d.ts +12 -2
  39. package/dist/Form.js +21 -1
  40. package/dist/Form.js.map +1 -1
  41. package/dist/FormGroup.js +4 -1
  42. package/dist/FormGroup.js.map +1 -1
  43. package/dist/Input.js +1 -1
  44. package/dist/Input.js.map +1 -1
  45. package/dist/Link.js +1 -1
  46. package/dist/Link.js.map +1 -1
  47. package/dist/List.d.ts +27 -1
  48. package/dist/List.js +25 -4
  49. package/dist/List.js.map +1 -1
  50. package/dist/MultiComboBox.d.ts +1 -4
  51. package/dist/MultiComboBox.js +46 -37
  52. package/dist/MultiComboBox.js.map +1 -1
  53. package/dist/MultiComboBoxItem.d.ts +5 -1
  54. package/dist/MultiComboBoxItem.js +34 -4
  55. package/dist/MultiComboBoxItem.js.map +1 -1
  56. package/dist/MultiComboBoxItemGroup.d.ts +5 -10
  57. package/dist/MultiComboBoxItemGroup.js +12 -9
  58. package/dist/MultiComboBoxItemGroup.js.map +1 -1
  59. package/dist/Popover.js +4 -3
  60. package/dist/Popover.js.map +1 -1
  61. package/dist/Popup.js +1 -1
  62. package/dist/Popup.js.map +1 -1
  63. package/dist/RadioButton.js +1 -1
  64. package/dist/RadioButton.js.map +1 -1
  65. package/dist/RatingIndicator.js +1 -1
  66. package/dist/RatingIndicator.js.map +1 -1
  67. package/dist/SegmentedButtonItem.js +1 -1
  68. package/dist/SegmentedButtonItem.js.map +1 -1
  69. package/dist/Select.js +1 -1
  70. package/dist/Select.js.map +1 -1
  71. package/dist/StepInput.js +1 -1
  72. package/dist/StepInput.js.map +1 -1
  73. package/dist/Switch.js +1 -1
  74. package/dist/Switch.js.map +1 -1
  75. package/dist/Table.js +1 -1
  76. package/dist/Table.js.map +1 -1
  77. package/dist/TableGrowing.d.ts +5 -0
  78. package/dist/TableGrowing.js +21 -12
  79. package/dist/TableGrowing.js.map +1 -1
  80. package/dist/TextArea.js +1 -1
  81. package/dist/TextArea.js.map +1 -1
  82. package/dist/TimePicker.js +1 -1
  83. package/dist/TimePicker.js.map +1 -1
  84. package/dist/Tokenizer.d.ts +23 -2
  85. package/dist/Tokenizer.js +72 -15
  86. package/dist/Tokenizer.js.map +1 -1
  87. package/dist/Toolbar.js +1 -1
  88. package/dist/Toolbar.js.map +1 -1
  89. package/dist/Tree.d.ts +14 -1
  90. package/dist/Tree.js +6 -4
  91. package/dist/Tree.js.map +1 -1
  92. package/dist/css/themes/Avatar.css +1 -1
  93. package/dist/css/themes/AvatarGroup.css +1 -1
  94. package/dist/css/themes/Bar.css +1 -1
  95. package/dist/css/themes/Breadcrumbs.css +1 -1
  96. package/dist/css/themes/BusyIndicator.css +1 -1
  97. package/dist/css/themes/Button.css +1 -1
  98. package/dist/css/themes/Calendar.css +1 -1
  99. package/dist/css/themes/CalendarHeader.css +1 -1
  100. package/dist/css/themes/CalendarLegend.css +1 -1
  101. package/dist/css/themes/CalendarLegendItem.css +1 -1
  102. package/dist/css/themes/Card.css +1 -1
  103. package/dist/css/themes/CardHeader.css +1 -1
  104. package/dist/css/themes/Carousel.css +1 -1
  105. package/dist/css/themes/CheckBox.css +1 -1
  106. package/dist/css/themes/ColorPalette.css +1 -1
  107. package/dist/css/themes/ColorPaletteItem.css +1 -1
  108. package/dist/css/themes/ColorPalettePopover.css +1 -1
  109. package/dist/css/themes/ColorPicker.css +1 -1
  110. package/dist/css/themes/ComboBox.css +1 -1
  111. package/dist/css/themes/ComboBoxItem.css +1 -0
  112. package/dist/css/themes/DatePicker.css +1 -1
  113. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  114. package/dist/css/themes/DayPicker.css +1 -1
  115. package/dist/css/themes/Dialog.css +1 -1
  116. package/dist/css/themes/FileUploader.css +1 -1
  117. package/dist/css/themes/Form.css +1 -1
  118. package/dist/css/themes/FormItem.css +1 -1
  119. package/dist/css/themes/FormLabelSpan.css +1 -1
  120. package/dist/css/themes/GrowingButton.css +1 -1
  121. package/dist/css/themes/Icon.css +1 -1
  122. package/dist/css/themes/Input.css +1 -1
  123. package/dist/css/themes/InputIcon.css +1 -1
  124. package/dist/css/themes/InputSharedStyles.css +1 -1
  125. package/dist/css/themes/Link.css +1 -1
  126. package/dist/css/themes/List.css +1 -1
  127. package/dist/css/themes/ListItem.css +1 -1
  128. package/dist/css/themes/ListItemBase.css +1 -1
  129. package/dist/css/themes/ListItemCustom.css +1 -1
  130. package/dist/css/themes/ListItemGroup.css +1 -1
  131. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  132. package/dist/css/themes/ListItemIcon.css +1 -1
  133. package/dist/css/themes/Menu.css +1 -1
  134. package/dist/css/themes/MenuItem.css +1 -1
  135. package/dist/css/themes/MessageStrip.css +1 -1
  136. package/dist/css/themes/MonthPicker.css +1 -1
  137. package/dist/css/themes/MultiComboBox.css +1 -1
  138. package/dist/css/themes/MultiComboBoxItem.css +1 -0
  139. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  140. package/dist/css/themes/MultiInput.css +1 -1
  141. package/dist/css/themes/NavigationMenu.css +1 -1
  142. package/dist/css/themes/NavigationMenuItem.css +1 -1
  143. package/dist/css/themes/OptionBase.css +1 -1
  144. package/dist/css/themes/Panel.css +1 -1
  145. package/dist/css/themes/Popover.css +1 -1
  146. package/dist/css/themes/PopupsCommon.css +1 -1
  147. package/dist/css/themes/ProgressIndicator.css +1 -1
  148. package/dist/css/themes/RadioButton.css +1 -1
  149. package/dist/css/themes/RangeSlider.css +1 -1
  150. package/dist/css/themes/RatingIndicator.css +1 -1
  151. package/dist/css/themes/ResponsivePopover.css +1 -1
  152. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  153. package/dist/css/themes/SegmentedButton.css +1 -1
  154. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  155. package/dist/css/themes/Select.css +1 -1
  156. package/dist/css/themes/SliderBase.css +1 -1
  157. package/dist/css/themes/SplitButton.css +1 -1
  158. package/dist/css/themes/StepInput.css +1 -1
  159. package/dist/css/themes/SuggestionItem.css +1 -1
  160. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  161. package/dist/css/themes/Switch.css +1 -1
  162. package/dist/css/themes/TabContainer.css +1 -1
  163. package/dist/css/themes/TabInOverflow.css +1 -1
  164. package/dist/css/themes/TabInStrip.css +1 -1
  165. package/dist/css/themes/TabSemanticIcon.css +1 -1
  166. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  167. package/dist/css/themes/Table.css +1 -1
  168. package/dist/css/themes/TableCellBase.css +1 -1
  169. package/dist/css/themes/TableHeaderRow.css +1 -1
  170. package/dist/css/themes/TableRow.css +1 -1
  171. package/dist/css/themes/TableRowBase.css +1 -1
  172. package/dist/css/themes/Tag.css +1 -1
  173. package/dist/css/themes/Text.css +1 -1
  174. package/dist/css/themes/TextArea.css +1 -1
  175. package/dist/css/themes/TimePicker.css +1 -1
  176. package/dist/css/themes/Toast.css +1 -1
  177. package/dist/css/themes/ToggleButton.css +1 -1
  178. package/dist/css/themes/Token.css +1 -1
  179. package/dist/css/themes/Tokenizer.css +1 -1
  180. package/dist/css/themes/TokenizerPopover.css +1 -1
  181. package/dist/css/themes/Toolbar.css +1 -1
  182. package/dist/css/themes/ToolbarPopover.css +1 -1
  183. package/dist/css/themes/TreeItem.css +1 -1
  184. package/dist/css/themes/ValueStateMessage.css +1 -1
  185. package/dist/css/themes/YearPicker.css +1 -1
  186. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  187. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  188. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  189. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  190. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  191. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  192. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  193. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  194. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  195. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  196. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  197. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  198. package/dist/custom-elements-internal.json +500 -59
  199. package/dist/custom-elements.json +360 -40
  200. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  201. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  202. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  203. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  204. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  205. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  206. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  207. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  208. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  209. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  210. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  211. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  212. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  213. package/dist/generated/i18n/i18n-defaults.js +2 -1
  214. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  215. package/dist/generated/templates/ColorPickerTemplate.lit.js +3 -1
  216. package/dist/generated/templates/ColorPickerTemplate.lit.js.map +1 -1
  217. package/dist/generated/templates/ComboBoxItemGroupTemplate.lit.d.ts +4 -0
  218. package/dist/generated/templates/ComboBoxItemGroupTemplate.lit.js +10 -0
  219. package/dist/generated/templates/ComboBoxItemGroupTemplate.lit.js.map +1 -0
  220. package/dist/generated/templates/ComboBoxItemTemplate.lit.d.ts +4 -0
  221. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +6 -0
  222. package/dist/generated/templates/ComboBoxItemTemplate.lit.js.map +1 -0
  223. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +6 -11
  224. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
  225. package/dist/generated/templates/ComboBoxTemplate.lit.js +6 -11
  226. package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
  227. package/dist/generated/templates/FormTemplate.lit.js +3 -3
  228. package/dist/generated/templates/FormTemplate.lit.js.map +1 -1
  229. package/dist/generated/templates/ListTemplate.lit.js +1 -1
  230. package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
  231. package/dist/generated/templates/MultiComboBoxItemGroupTemplate.lit.d.ts +4 -0
  232. package/dist/generated/templates/MultiComboBoxItemGroupTemplate.lit.js +10 -0
  233. package/dist/generated/templates/MultiComboBoxItemGroupTemplate.lit.js.map +1 -0
  234. package/dist/generated/templates/MultiComboBoxItemTemplate.lit.d.ts +4 -0
  235. package/dist/generated/templates/MultiComboBoxItemTemplate.lit.js +6 -0
  236. package/dist/generated/templates/MultiComboBoxItemTemplate.lit.js.map +1 -0
  237. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +11 -19
  238. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
  239. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +11 -19
  240. package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
  241. package/dist/generated/templates/TokenizerTemplate.lit.js +7 -6
  242. package/dist/generated/templates/TokenizerTemplate.lit.js.map +1 -1
  243. package/dist/generated/templates/TreeTemplate.lit.js +1 -1
  244. package/dist/generated/templates/TreeTemplate.lit.js.map +1 -1
  245. package/dist/generated/themes/Avatar.css.js +1 -1
  246. package/dist/generated/themes/Avatar.css.js.map +1 -1
  247. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  248. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  249. package/dist/generated/themes/Bar.css.js +1 -1
  250. package/dist/generated/themes/Bar.css.js.map +1 -1
  251. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  252. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  253. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  254. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  255. package/dist/generated/themes/Button.css.js +1 -1
  256. package/dist/generated/themes/Button.css.js.map +1 -1
  257. package/dist/generated/themes/Calendar.css.js +1 -1
  258. package/dist/generated/themes/Calendar.css.js.map +1 -1
  259. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  260. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  261. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  262. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  263. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  264. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  265. package/dist/generated/themes/Card.css.js +1 -1
  266. package/dist/generated/themes/Card.css.js.map +1 -1
  267. package/dist/generated/themes/CardHeader.css.js +1 -1
  268. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  269. package/dist/generated/themes/Carousel.css.js +1 -1
  270. package/dist/generated/themes/Carousel.css.js.map +1 -1
  271. package/dist/generated/themes/CheckBox.css.js +1 -1
  272. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  273. package/dist/generated/themes/ColorPalette.css.js +1 -1
  274. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  275. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  276. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  277. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  278. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  279. package/dist/generated/themes/ColorPicker.css.js +1 -1
  280. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  281. package/dist/generated/themes/ComboBox.css.js +1 -1
  282. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  283. package/dist/generated/themes/ComboBoxItem.css.d.ts +3 -0
  284. package/dist/generated/themes/ComboBoxItem.css.js +9 -0
  285. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -0
  286. package/dist/generated/themes/DatePicker.css.js +1 -1
  287. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  288. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  289. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  290. package/dist/generated/themes/DayPicker.css.js +1 -1
  291. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  292. package/dist/generated/themes/Dialog.css.js +1 -1
  293. package/dist/generated/themes/Dialog.css.js.map +1 -1
  294. package/dist/generated/themes/FileUploader.css.js +1 -1
  295. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  296. package/dist/generated/themes/Form.css.js +1 -1
  297. package/dist/generated/themes/Form.css.js.map +1 -1
  298. package/dist/generated/themes/FormItem.css.js +1 -1
  299. package/dist/generated/themes/FormItem.css.js.map +1 -1
  300. package/dist/generated/themes/FormLabelSpan.css.js +1 -1
  301. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -1
  302. package/dist/generated/themes/GrowingButton.css.js +1 -1
  303. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  304. package/dist/generated/themes/Icon.css.js +1 -1
  305. package/dist/generated/themes/Icon.css.js.map +1 -1
  306. package/dist/generated/themes/Input.css.js +1 -1
  307. package/dist/generated/themes/Input.css.js.map +1 -1
  308. package/dist/generated/themes/InputIcon.css.js +1 -1
  309. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  310. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  311. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  312. package/dist/generated/themes/Link.css.js +1 -1
  313. package/dist/generated/themes/Link.css.js.map +1 -1
  314. package/dist/generated/themes/List.css.js +1 -1
  315. package/dist/generated/themes/List.css.js.map +1 -1
  316. package/dist/generated/themes/ListItem.css.js +1 -1
  317. package/dist/generated/themes/ListItem.css.js.map +1 -1
  318. package/dist/generated/themes/ListItemBase.css.js +1 -1
  319. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  320. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  321. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  322. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  323. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  324. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  325. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  326. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  327. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  328. package/dist/generated/themes/Menu.css.js +1 -1
  329. package/dist/generated/themes/Menu.css.js.map +1 -1
  330. package/dist/generated/themes/MenuItem.css.js +1 -1
  331. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  332. package/dist/generated/themes/MessageStrip.css.js +1 -1
  333. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  334. package/dist/generated/themes/MonthPicker.css.js +1 -1
  335. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  336. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  337. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  338. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +3 -0
  339. package/dist/generated/themes/MultiComboBoxItem.css.js +9 -0
  340. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -0
  341. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  342. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  343. package/dist/generated/themes/MultiInput.css.js +1 -1
  344. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  345. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  346. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  347. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  348. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  349. package/dist/generated/themes/OptionBase.css.js +1 -1
  350. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  351. package/dist/generated/themes/Panel.css.js +1 -1
  352. package/dist/generated/themes/Panel.css.js.map +1 -1
  353. package/dist/generated/themes/Popover.css.js +1 -1
  354. package/dist/generated/themes/Popover.css.js.map +1 -1
  355. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  356. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  357. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  358. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  359. package/dist/generated/themes/RadioButton.css.js +1 -1
  360. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  361. package/dist/generated/themes/RangeSlider.css.js +1 -1
  362. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  363. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  364. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  365. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  366. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  367. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  368. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  369. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  370. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  371. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  372. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  373. package/dist/generated/themes/Select.css.js +1 -1
  374. package/dist/generated/themes/Select.css.js.map +1 -1
  375. package/dist/generated/themes/SliderBase.css.js +1 -1
  376. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  377. package/dist/generated/themes/SplitButton.css.js +1 -1
  378. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  379. package/dist/generated/themes/StepInput.css.js +1 -1
  380. package/dist/generated/themes/StepInput.css.js.map +1 -1
  381. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  382. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  383. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  384. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  385. package/dist/generated/themes/Switch.css.js +1 -1
  386. package/dist/generated/themes/Switch.css.js.map +1 -1
  387. package/dist/generated/themes/TabContainer.css.js +1 -1
  388. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  389. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  390. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  391. package/dist/generated/themes/TabInStrip.css.js +1 -1
  392. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  393. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  394. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  395. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  396. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  397. package/dist/generated/themes/Table.css.js +1 -1
  398. package/dist/generated/themes/Table.css.js.map +1 -1
  399. package/dist/generated/themes/TableCellBase.css.js +1 -1
  400. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  401. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  402. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  403. package/dist/generated/themes/TableRow.css.js +1 -1
  404. package/dist/generated/themes/TableRow.css.js.map +1 -1
  405. package/dist/generated/themes/TableRowBase.css.js +1 -1
  406. package/dist/generated/themes/TableRowBase.css.js.map +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.js +1 -1
  410. package/dist/generated/themes/Text.css.js.map +1 -1
  411. package/dist/generated/themes/TextArea.css.js +1 -1
  412. package/dist/generated/themes/TextArea.css.js.map +1 -1
  413. package/dist/generated/themes/TimePicker.css.js +1 -1
  414. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  415. package/dist/generated/themes/Toast.css.js +1 -1
  416. package/dist/generated/themes/Toast.css.js.map +1 -1
  417. package/dist/generated/themes/ToggleButton.css.js +1 -1
  418. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  419. package/dist/generated/themes/Token.css.js +1 -1
  420. package/dist/generated/themes/Token.css.js.map +1 -1
  421. package/dist/generated/themes/Tokenizer.css.js +1 -1
  422. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  423. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  424. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  425. package/dist/generated/themes/Toolbar.css.js +1 -1
  426. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  427. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  428. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  429. package/dist/generated/themes/TreeItem.css.js +1 -1
  430. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  431. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  432. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  433. package/dist/generated/themes/YearPicker.css.js +1 -1
  434. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  435. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  436. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  437. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  438. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  439. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  440. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  441. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  442. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  443. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  444. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  445. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  446. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  447. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  448. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  449. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  450. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  451. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  452. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  453. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  454. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  455. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  456. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  457. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  458. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  459. package/dist/types/ColorPickerDisplayMode.d.ts +17 -0
  460. package/dist/types/ColorPickerDisplayMode.js +19 -0
  461. package/dist/types/ColorPickerDisplayMode.js.map +1 -0
  462. package/dist/vscode.html-custom-data.json +57 -7
  463. package/dist/web-types.json +155 -16
  464. package/package.json +9 -9
  465. package/src/ColorPicker.hbs +60 -56
  466. package/src/ComboBoxItem.hbs +18 -0
  467. package/src/ComboBoxItemGroup.hbs +9 -0
  468. package/src/ComboBoxPopover.hbs +2 -31
  469. package/src/Form.hbs +3 -3
  470. package/src/List.hbs +1 -0
  471. package/src/ListItemGroup.hbs +11 -4
  472. package/src/MultiComboBox.hbs +10 -12
  473. package/src/MultiComboBoxItem.hbs +19 -0
  474. package/src/MultiComboBoxItemGroup.hbs +9 -0
  475. package/src/MultiComboBoxPopover.hbs +5 -36
  476. package/src/Tokenizer.hbs +28 -17
  477. package/src/Tree.hbs +4 -1
  478. package/src/i18n/messagebundle.properties +3 -0
  479. package/src/themes/ComboBoxItem.css +14 -0
  480. package/src/themes/MultiComboBoxItem.css +19 -0
  481. package/src/themes/MultiComboBoxPopover.css +5 -1
  482. package/src/themes/Table.css +1 -4
  483. package/src/themes/Tokenizer.css +45 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,27 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.5.0-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v2.4.1-rc.0...v2.5.0-rc.0) (2024-11-14)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ui5-card-header:** update interactive property documentation ([#10143](https://github.com/SAP/ui5-webcomponents/issues/10143)) ([23289d4](https://github.com/SAP/ui5-webcomponents/commit/23289d4d1696d0441823d98f71b5e21b617777c3))
12
+ * **ui5-table-growing:** button is shown despite scroll type ([#10142](https://github.com/SAP/ui5-webcomponents/issues/10142)) ([950441b](https://github.com/SAP/ui5-webcomponents/commit/950441b7d272e8cd20499461f4cfa05ad3ac7510)), closes [#10045](https://github.com/SAP/ui5-webcomponents/issues/10045)
13
+
14
+
15
+ ### Features
16
+
17
+ * **ui5-color-picker:** add simplified display mode ([#10153](https://github.com/SAP/ui5-webcomponents/issues/10153)) ([bf9c0d6](https://github.com/SAP/ui5-webcomponents/commit/bf9c0d653be5af5473a7b616f2c91803db46beb3)), closes [#9979](https://github.com/SAP/ui5-webcomponents/issues/9979)
18
+ * **ui5-combobox/multi-combobox:** physical items ([#10051](https://github.com/SAP/ui5-webcomponents/issues/10051)) ([73f82ab](https://github.com/SAP/ui5-webcomponents/commit/73f82abe5e9a61d88919f4c45df9435be850eb2f))
19
+ * **ui5-form:** update to latest accessibility spec ([#10152](https://github.com/SAP/ui5-webcomponents/issues/10152)) ([4382d4e](https://github.com/SAP/ui5-webcomponents/commit/4382d4e280ffcf01a924163b9b719887c17f529a)), closes [#9952](https://github.com/SAP/ui5-webcomponents/issues/9952)
20
+ * **ui5-list, ui5-tree:** support accessible description ([#10131](https://github.com/SAP/ui5-webcomponents/issues/10131)) ([45f0ffe](https://github.com/SAP/ui5-webcomponents/commit/45f0ffeafb2da0ffcaf425649c7440b604e359a3)), closes [#6445](https://github.com/SAP/ui5-webcomponents/issues/6445)
21
+ * **ui5-tokenizer:** enable multiline mode ([#9964](https://github.com/SAP/ui5-webcomponents/issues/9964)) ([1071746](https://github.com/SAP/ui5-webcomponents/commit/107174616b5b3b96c174160488eba18b9cdb9cae))
22
+
23
+
24
+
25
+
26
+
6
27
  ## [2.4.1-rc.0](https://github.com/SAP/ui5-webcomponents/compare/v2.4.0...v2.4.1-rc.0) (2024-11-07)
7
28
 
8
29
 
@@ -0,0 +1,27 @@
1
+ import { html } from "lit";
2
+ import "../../src/ColorPicker.js";
3
+ import type ColorPicker from "../../src/ColorPicker.js";
4
+
5
+ describe("Color Picker tests", () => {
6
+ it("should not display color channel inputs and alpha slider in simplified mode", () => {
7
+ cy.mount(html`<ui5-color-picker display-mode="Simplified"></ui5-color-picker>`);
8
+
9
+ cy.get("ui5-color-picker")
10
+ .as("colorPicker");
11
+
12
+ cy.get<ColorPicker>("@colorPicker")
13
+ .shadow()
14
+ .find(".ui5-color-picker-hex-input")
15
+ .should("exist");
16
+
17
+ cy.get<ColorPicker>("@colorPicker")
18
+ .shadow()
19
+ .find("#red")
20
+ .should("not.exist");
21
+
22
+ cy.get<ColorPicker>("@colorPicker")
23
+ .shadow()
24
+ .find("#alpha")
25
+ .should("not.exist");
26
+ });
27
+ });
@@ -1,29 +1,33 @@
1
1
  import { html } from "lit";
2
+ import "@ui5/webcomponents-base/dist/features/F6Navigation.js";
2
3
  import "../../src/Form.js";
3
4
  import "../../src/FormItem.js";
4
5
  import "../../src/FormGroup.js";
6
+ import "../../src/Label.js";
7
+ import "../../src/Text.js";
8
+ import "../../src/Input.js";
5
9
 
6
10
  describe("General API", () => {
7
11
  it("tests calculated state of Form with default layout and label-span", () => {
8
12
  cy.mount(html`<ui5-form class="addressForm" header-text="Default form">
9
13
  <ui5-form-group header-text="Address">
10
14
  <ui5-form-item>
11
- <span slot="labelContent">Name:</span>
12
- <span class="text">Red Point Stores</span>
15
+ <ui5-label slot="labelContent">Name</ui5-label>
16
+ <ui5-text>Red Point Stores</ui5-text>
13
17
  </ui5-form-item>
14
18
  </ui5-form-group>
15
19
 
16
20
  <ui5-form-group id="testFormGroup2" header-text="Contact">
17
21
  <ui5-form-item>
18
- <span slot="labelContent">Twitter:</span>
19
- <span class="text">@sap</span>
22
+ <ui5-label slot="labelContent">Twitter</ui5-label>
23
+ <ui5-text>@sap</ui5-text>
20
24
  </ui5-form-item>
21
25
  </ui5-form-group>
22
26
 
23
27
  <ui5-form-group id="testFormGroup3" header-text="Other info">
24
28
  <ui5-form-item>
25
- <span slot="labelContent">Name:</span>
26
- <span class="text">Red Point Stores</span>
29
+ <ui5-label slot="labelContent">Name</ui5-label>
30
+ <ui5-text>Red Point Stores</ui5-text>
27
31
  </ui5-form-item>
28
32
  </ui5-form-group>
29
33
  </ui5-form>`);
@@ -60,22 +64,22 @@ describe("General API", () => {
60
64
  cy.mount(html`<ui5-form class="addressForm" header-text="WebC :: Supplier 3gr (S1 M2 L3 XL6)" layout="S1 M2 L3 XL6">
61
65
  <ui5-form-group header-text="Address">
62
66
  <ui5-form-item>
63
- <span slot="labelContent">Name:</span>
64
- <span class="text">Red Point Stores</span>
67
+ <ui5-label slot="labelContent">Name</ui5-label>
68
+ <ui5-text>Red Point Stores</ui5-text>
65
69
  </ui5-form-item>
66
70
  </ui5-form-group>
67
71
 
68
72
  <ui5-form-group id="testFormGroup2" header-text="Contact">
69
73
  <ui5-form-item>
70
- <span slot="labelContent">Twitter:</span>
71
- <span class="text">@sap</span>
74
+ <ui5-label slot="labelContent">Twitter</ui5-label>
75
+ <ui5-text>@sap</ui5-text>
72
76
  </ui5-form-item>
73
77
  </ui5-form-group>
74
78
 
75
79
  <ui5-form-group id="testFormGroup3" header-text="Other info">
76
80
  <ui5-form-item>
77
- <span slot="labelContent">Name:</span>
78
- <span class="text">Red Point Stores</span>
81
+ <ui5-label slot="labelContent">Name</ui5-label>
82
+ <ui5-text>Red Point Stores</ui5-text>
79
83
  </ui5-form-item>
80
84
  </ui5-form-group>
81
85
  </ui5-form>`);
@@ -111,34 +115,34 @@ describe("General API", () => {
111
115
  it("tests calculated state of Form with layout='S1 M2 L2 XL3' label-span='S12 M12 L12 XL12'", () => {
112
116
  cy.mount(html`<ui5-form header-text="Labels on top" layout="S1 M2 L2 XL3" label-span="S12 M12 L12 XL12">
113
117
  <ui5-form-item>
114
- <span slot="labelContent">Name:</span>
118
+ <ui5-label slot="labelContent">Name</ui5-label>
115
119
  <input />
116
120
  </ui5-form-item>
117
121
 
118
122
  <ui5-form-item>
119
- <span slot="labelContent">ZIP Code/City:</span>
123
+ <ui5-label slot="labelContent">ZIP Code/City</ui5-label>
120
124
  <input />
121
125
  <input />
122
126
  </ui5-form-item>
123
127
 
124
128
  <ui5-form-item>
125
- <span slot="labelContent">Street:</span>
129
+ <ui5-label slot="labelContent">Street</ui5-label>
126
130
  <input />
127
131
  <input />
128
132
  </ui5-form-item>
129
133
 
130
134
  <ui5-form-item>
131
- <span slot="labelContent">Country:</span>
135
+ <ui5-label slot="labelContent">Country</ui5-label>
132
136
  <input />
133
137
  </ui5-form-item>
134
138
 
135
139
  <ui5-form-item>
136
- <span slot="labelContent">WebSite:</span>
140
+ <ui5-label slot="labelContent">WebSite</ui5-label>
137
141
  <input />
138
142
  </ui5-form-item>
139
143
 
140
144
  <ui5-form-item>
141
- <span slot="labelContent">Delivery address:</span>
145
+ <ui5-label slot="labelContent">Delivery address</ui5-label>
142
146
  <input />
143
147
  </ui5-form-item>
144
148
  </ui5-form>`);
@@ -175,20 +179,20 @@ describe("General API", () => {
175
179
  cy.mount(html`<ui5-form header-text="WebC :: Supplier 2gr (S1 M2 L3 XL4)" layout="S1 M2 L3 XL4">
176
180
  <ui5-form-group id="testFormGroup4" header-text="Address">
177
181
  <ui5-form-item>
178
- <span slot="labelContent">Name:</span>
179
- <span>Red Point Stores</span>
182
+ <ui5-label slot="labelContent">Name</ui5-label>
183
+ <ui5-text>Red Point Stores</ui5-text>
180
184
  </ui5-form-item>
181
185
  </ui5-form-group>
182
186
 
183
187
  <ui5-form-group id="testFormGroup5" header-text="Contact">
184
188
  <ui5-form-item>
185
- <span slot="labelContent">Twitter:</span>
186
- <span>@sap</span>
189
+ <ui5-label slot="labelContent">Twitter</ui5-label>
190
+ <ui5-text>@sap</ui5-text>
187
191
  </ui5-form-item>
188
192
 
189
193
  <ui5-form-item>
190
- <span slot="labelContent">Email:</span>
191
- <span>john.smith@sap.com</span>
194
+ <ui5-label slot="labelContent">Email</ui5-label>
195
+ <ui5-text>john.smith@sap.com</ui5-text>
192
196
  </ui5-form-item>
193
197
  </ui5-form>`);
194
198
 
@@ -227,37 +231,37 @@ describe("General API", () => {
227
231
  cy.mount(html`<ui5-form header-text="WebC :: Supplier 3gr (S1 M2 L3 XL6)" layout="S1 M2 L3 XL6">
228
232
  <ui5-form-group id="testFormGroup1" header-text="Address">
229
233
  <ui5-form-item>
230
- <span slot="labelContent">Name:</span>
231
- <span>Red Point Stores</span>
234
+ <ui5-label slot="labelContent">Name</ui5-label>
235
+ <ui5-text>Red Point Stores</ui5-text>
232
236
  </ui5-form-item>
233
237
  </ui5-form-group>
234
238
 
235
239
  <ui5-form-group id="testFormGroup2" header-text="Contact">
236
240
  <ui5-form-item>
237
- <span slot="labelContent">Twitter:</span>
238
- <span>@sap</span>
241
+ <ui5-label slot="labelContent">Twitter</ui5-label>
242
+ <ui5-text>@sap</ui5-text>
239
243
  </ui5-form-item>
240
244
 
241
245
  <ui5-form-item>
242
- <span slot="labelContent">Email:</span>
243
- <span>john.smith@sap.com</span>
246
+ <ui5-label slot="labelContent">Email</ui5-label>
247
+ <ui5-text>john.smith@sap.com</ui5-text>
244
248
  </ui5-form-item>
245
249
 
246
250
  <ui5-form-item>
247
- <span slot="labelContent">Tel:</span>
248
- <span>+49 6227 747474</span>
251
+ <ui5-label slot="labelContent">Tel</ui5-label>
252
+ <ui5-text>+49 6227 747474</ui5-text>
249
253
  </ui5-form-item>
250
254
  </ui5-form-group>
251
255
 
252
256
  <ui5-form-group id="testFormGroup3" header-text="Other info">
253
257
  <ui5-form-item>
254
- <span slot="labelContent">Name:</span>
255
- <span>Red Point Stores</span>
258
+ <ui5-label slot="labelContent">Name</ui5-label>
259
+ <ui5-text>Red Point Stores</ui5-text>
256
260
  </ui5-form-item>
257
261
 
258
262
  <ui5-form-item>
259
- <span slot="labelContent">ZIP Code/City:</span>
260
- <span>411 Maintown</span>
263
+ <ui5-label slot="labelContent">ZIP Code/City</ui5-label>
264
+ <ui5-text>411 Maintown</ui5-text>
261
265
  </ui5-form-item>
262
266
  </ui5-form-group>
263
267
  </ui5-form>`);
@@ -312,27 +316,27 @@ describe("General API", () => {
312
316
  cy.mount(html`<ui5-form header-text="WebC :: Supplier 3gr (S1 M2 L3 XL4)" layout="S1 M2 L3 XL4">
313
317
  <ui5-form-group id="testFormGroup6" header-text="Address">
314
318
  <ui5-form-item>
315
- <span slot="labelContent">Name:</span>
316
- <span>Red Point Stores</span>
319
+ <ui5-label slot="labelContent">Name</ui5-label>
320
+ <ui5-text>Red Point Stores</ui5-text>
317
321
  </ui5-form-item>
318
322
  </ui5-form-group>
319
323
 
320
324
  <ui5-form-group id="testFormGroup7" header-text="Contact">
321
325
  <ui5-form-item>
322
- <span slot="labelContent">Twitter:</span>
323
- <span>@sap</span>
326
+ <ui5-label slot="labelContent">Twitter</ui5-label>
327
+ <ui5-text>@sap</ui5-text>
324
328
  </ui5-form-item>
325
329
 
326
330
  <ui5-form-item>
327
- <span slot="labelContent">Email:</span>
328
- <span>john.smith@sap.com</span>
331
+ <ui5-label slot="labelContent">Email</ui5-label>
332
+ <ui5-text>john.smith@sap.com</ui5-text>
329
333
  </ui5-form-item>
330
334
  </ui5-form-group>
331
335
 
332
336
  <ui5-form-group id="testFormGroup8" header-text="Other info">
333
337
  <ui5-form-item>
334
- <span slot="labelContent">Name:</span>
335
- <span>Red Point Stores</span>
338
+ <ui5-label slot="labelContent">Name</ui5-label>
339
+ <ui5-text>Red Point Stores</ui5-text>
336
340
  </ui5-form-item>
337
341
  </ui5-form-group>
338
342
  </ui5-form>`);
@@ -383,3 +387,205 @@ describe("General API", () => {
383
387
  .should("have.prop", "colsXl", 1);
384
388
  });
385
389
  });
390
+
391
+ describe("Accessibility", () => {
392
+ it("tests 'role' and 'aria-labelledby' of form with groups", () => {
393
+ cy.mount(html`<ui5-form class="addressForm" header-text="Form header text">
394
+ <ui5-form-group header-text="Address">
395
+ <ui5-form-item>
396
+ <ui5-label>Name:</ui5-label>
397
+ <ui5-text>Red Point Stores</ui5-text>
398
+ </ui5-form-item>
399
+ </ui5-form-group>
400
+
401
+ <ui5-form-group id="testFormGroup2" header-text="Contact">
402
+ <ui5-form-item>
403
+ <ui5-label>Twitter:</ui5-label>
404
+ <ui5-text>@sap</ui5-text>
405
+ </ui5-form-item>
406
+ </ui5-form-group>
407
+
408
+ <ui5-form-group id="testFormGroup3" header-text="Other info">
409
+ <ui5-form-item>
410
+ <ui5-label>Name:</ui5-label>
411
+ <ui5-text>Red Point Stores</ui5-text>
412
+ </ui5-form-item>
413
+ </ui5-form-group>
414
+ </ui5-form>`);
415
+
416
+ cy.get("[ui5-form]")
417
+ .as("form");
418
+
419
+ cy.get("[ui5-form-group]")
420
+ .first()
421
+ .as("formGroup");
422
+
423
+ cy.get("@form")
424
+ .shadow()
425
+ .find(".ui5-form-root")
426
+ .should("have.attr", "role", "region");
427
+
428
+ // assert: the root element's aria-labelledby is equal to the form title's ID
429
+ cy.get("@form").shadow().find(".ui5-form-root").invoke("attr", "aria-labelledby")
430
+ .then(ariaLabelledBy => {
431
+ cy.get("@form").shadow().find(".ui5-form-header [ui5-title]")
432
+ .invoke("attr", "id")
433
+ .then(id => {
434
+ expect(ariaLabelledBy).to.equal(id);
435
+ });
436
+ });
437
+
438
+ cy.get("@form")
439
+ .shadow()
440
+ .find(".ui5-form-group")
441
+ .eq(0)
442
+ .as("firstGroupDOMRef");
443
+
444
+ cy.get("@form")
445
+ .shadow()
446
+ .find(".ui5-form-group [ui5-title]")
447
+ .eq(0)
448
+ .as("firstGroupTitle");
449
+
450
+ cy.get("@form")
451
+ .should("not.have.attr", "data-sap-ui-fastnavgroup", "true");
452
+
453
+ cy.get("@formGroup")
454
+ .should("have.attr", "data-sap-ui-fastnavgroup", "true");
455
+
456
+ cy.get("@firstGroupDOMRef")
457
+ .should("have.attr", "role", "form");
458
+
459
+ // assert: the form group's aria-labelledby is equal to the form group title's ID
460
+ cy.get("@firstGroupDOMRef")
461
+ .invoke("attr", "aria-labelledby")
462
+ .then(ariaLabelledBy => {
463
+ cy.get("@firstGroupTitle")
464
+ .invoke("attr", "id")
465
+ .then(id => {
466
+ expect(ariaLabelledBy).to.equal(id);
467
+ });
468
+ });
469
+ });
470
+
471
+ it("tests 'role' and 'aria-labelledby' of form without groups", () => {
472
+ cy.mount(html`<ui5-form class="addressForm" header-text="Form header text">
473
+ <ui5-form-item>
474
+ <ui5-label>Name:</ui5-label>
475
+ <ui5-text>Red Point Stores</ui5-text>
476
+ </ui5-form-item>
477
+ <ui5-form-item>
478
+ <ui5-label>Twitter:</ui5-label>
479
+ <ui5-text>@sap</ui5-text>
480
+ </ui5-form-item>
481
+ <ui5-form-item>
482
+ <ui5-label>Name:</ui5-label>
483
+ <ui5-text>Red Point Stores</ui5-text>
484
+ </ui5-form-item>
485
+ </ui5-form>`);
486
+
487
+ cy.get("[ui5-form]")
488
+ .as("form");
489
+
490
+ cy.get("@form")
491
+ .shadow()
492
+ .find(".ui5-form-root")
493
+ .should("have.attr", "role", "form");
494
+
495
+ cy.get("@form")
496
+ .should("have.attr", "data-sap-ui-fastnavgroup", "true");
497
+
498
+ // assert: the root element's aria-labelledby is equal to the form title's ID
499
+ cy.get("@form").shadow().find(".ui5-form-root").invoke("attr", "aria-labelledby")
500
+ .then(ariaLabelledBy => {
501
+ cy.get("@form").shadow().find(".ui5-form-header [ui5-title]")
502
+ .invoke("attr", "id")
503
+ .then(id => {
504
+ expect(ariaLabelledBy).to.equal(id);
505
+ });
506
+ });
507
+ });
508
+
509
+ it("tests F6 navigation", () => {
510
+ cy.mount(html`
511
+ <section>
512
+ <button id="before">Before element</button>
513
+ </section>
514
+ <ui5-form id="formWithGroups" header-text="Form 1">
515
+ <ui5-form-group header-text="Address">
516
+ <ui5-form-item>
517
+ <ui5-label for="nameInp" slot="labelContent">Name:</ui5-label>
518
+ <ui5-input value="Red Point Stores" id="nameInp"></ui5-input>
519
+ </ui5-form-item>
520
+
521
+ <ui5-form-item>
522
+ <ui5-label id="cityLbl" for="cityInp" slot="labelContent">ZIP Code/City:</ui5-label>
523
+ <ui5-input id="cityInp" value="411" accessible-name-ref="cityLbl"></ui5-input>
524
+ <ui5-input value="Maintown" accessible-name-ref="cityLbl"></ui5-input>
525
+ </ui5-form-item>
526
+ </ui5-form-group>
527
+
528
+ <ui5-form-group header-text="Contact">
529
+ <ui5-form-item>
530
+ <ui5-label id="streetLbl" for="streetInp" slot="labelContent">Street:</ui5-label>
531
+ <ui5-input id="streetInp" value="Main St" accessible-name-ref="streetLbl"></ui5-input>
532
+ <ui5-input id="streetNumberInp" value="1618" accessible-name-ref="streetLbl"></ui5-input>
533
+ </ui5-form-item>
534
+
535
+ <ui5-form-item>
536
+ <ui5-label id="countryLbl" for="countrySel" slot="labelContent">Country:</ui5-label>
537
+ <ui5-input id="countrySel" accessible-name-ref="countryLbl"></ui5-input>
538
+ </ui5-form-item>
539
+ </ui5-form-group>
540
+ </ui5-form>
541
+
542
+ <ui5-form id="formWithItems" header-text="Form 2">
543
+ <ui5-form-item>
544
+ <ui5-label for="nameInp2" slot="labelContent">Name:</ui5-label>
545
+ <ui5-input value="Red Point Stores" id="nameInp2"></ui5-input>
546
+ </ui5-form-item>
547
+
548
+ <ui5-form-item>
549
+ <ui5-label id="cityLbl2" for="cityInp2" slot="labelContent">ZIP Code/City:</ui5-label>
550
+ <ui5-input id="cityInp2" value="411" accessible-name-ref="cityLbl2"></ui5-input>
551
+ <ui5-input value="Maintown" accessible-name-ref="cityLbl2"></ui5-input>
552
+ </ui5-form-item>
553
+
554
+ <ui5-form-item>
555
+ <ui5-label id="streetLbl2" for="streetInp2" slot="labelContent">Street:</ui5-label>
556
+ <ui5-input id="streetInp2" value="Main St" accessible-name-ref="streetLbl2"></ui5-input>
557
+ <ui5-input id="streetNumberInp" value="1618" accessible-name-ref="streetLbl2"></ui5-input>
558
+ </ui5-form-item>
559
+
560
+ <ui5-form-item>
561
+ <ui5-label id="countryLbl2" for="countrySel2" slot="labelContent">Country:</ui5-label>
562
+ <ui5-input id="countrySel2" accessible-name-ref="countryLbl2"></ui5-input>
563
+ </ui5-form-item>
564
+ </ui5-form>`);
565
+
566
+ cy.get("#before").focus();
567
+ cy.realPress("F6");
568
+
569
+ // assert: the first input of the first FormGroup is focused
570
+ cy.get("#nameInp")
571
+ .should("be.focused");
572
+
573
+ cy.realPress("F6");
574
+
575
+ // assert: the first input in second FormGroup is focused
576
+ cy.get("#streetInp")
577
+ .should("be.focused");
578
+
579
+ cy.realPress("F6");
580
+
581
+ // assert: the first input in next Form is focused
582
+ cy.get("#nameInp2")
583
+ .should("be.focused");
584
+
585
+ cy.realPress("F6");
586
+
587
+ // assert: back to the first Form
588
+ cy.get("#nameInp")
589
+ .should("be.focused");
590
+ });
591
+ });
@@ -1,6 +1,7 @@
1
1
  import { html } from "lit";
2
2
  import "../../src/MultiComboBox.js";
3
3
  import "../../src/MultiComboBoxItem.js";
4
+ import type List from "../../src/List.js";
4
5
 
5
6
  describe("Lit HTML key function for #each", () => {
6
7
  it("LIT HTML does not mess up keys when looping over lists", () => {
@@ -21,15 +22,17 @@ describe("Lit HTML key function for #each", () => {
21
22
 
22
23
  cy.get("@mcb")
23
24
  .shadow()
24
- .find(".ui5-multi-combobox-all-items-responsive-popover")
25
- .as("popover");
25
+ .find("[ui5-responsive-popover]")
26
+ .as("rpo");
26
27
 
27
- cy.get("@popover")
28
- .find(".ui5-multi-combobox-all-items-list > ui5-li")
29
- .as("items");
28
+ cy.get("@rpo")
29
+ .find("[ui5-list]")
30
+ .as("list");
30
31
 
31
- cy.get("@items")
32
- .eq(0)
32
+ cy.get("@list")
33
+ .then($el => {
34
+ return ($el[0] as List).getSlottedNodes("items");
35
+ })
33
36
  .realClick();
34
37
 
35
38
  cy.get("@mcb")
@@ -37,14 +40,18 @@ describe("Lit HTML key function for #each", () => {
37
40
  .find(".inputIcon")
38
41
  .realClick();
39
42
 
40
- // cy.get("@items")
41
- // .eq(0)
42
- // .should("contain.text", "<empty>")
43
- // .should("not.have.attr", "selected");
44
-
45
- // cy.get("@items")
46
- // .eq(3)
47
- // .should("contain.text", "USA")
48
- // .should("have.attr", "selected");
43
+ cy.get("@list")
44
+ .then($el => {
45
+ return ($el[0] as List).getSlottedNodes("items")[0];
46
+ })
47
+ .invoke("attr", "text", "<empty>")
48
+ .should("not.have.attr", "selected");
49
+
50
+ cy.get("@list")
51
+ .then($el => {
52
+ return ($el[0] as List).getSlottedNodes("items")[3];
53
+ })
54
+ .invoke("attr", "text", "USA")
55
+ .should("have.attr", "selected");
49
56
  });
50
57
  });