@ui5/webcomponents 2.4.1-rc.0 → 2.5.0-rc.1

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 (498) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/cypress/specs/ColorPicker.cy.ts +27 -0
  3. package/cypress/specs/Form.cy.ts +491 -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 +51 -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/Dialog.d.ts +4 -5
  39. package/dist/Dialog.js +4 -5
  40. package/dist/Dialog.js.map +1 -1
  41. package/dist/Form.d.ts +46 -2
  42. package/dist/Form.js +75 -1
  43. package/dist/Form.js.map +1 -1
  44. package/dist/FormGroup.js +4 -1
  45. package/dist/FormGroup.js.map +1 -1
  46. package/dist/Input.js +1 -1
  47. package/dist/Input.js.map +1 -1
  48. package/dist/Link.js +1 -1
  49. package/dist/Link.js.map +1 -1
  50. package/dist/List.d.ts +27 -1
  51. package/dist/List.js +29 -5
  52. package/dist/List.js.map +1 -1
  53. package/dist/MultiComboBox.d.ts +1 -4
  54. package/dist/MultiComboBox.js +46 -37
  55. package/dist/MultiComboBox.js.map +1 -1
  56. package/dist/MultiComboBoxItem.d.ts +5 -1
  57. package/dist/MultiComboBoxItem.js +34 -4
  58. package/dist/MultiComboBoxItem.js.map +1 -1
  59. package/dist/MultiComboBoxItemGroup.d.ts +5 -10
  60. package/dist/MultiComboBoxItemGroup.js +12 -9
  61. package/dist/MultiComboBoxItemGroup.js.map +1 -1
  62. package/dist/Popover.js +4 -3
  63. package/dist/Popover.js.map +1 -1
  64. package/dist/Popup.js +1 -1
  65. package/dist/Popup.js.map +1 -1
  66. package/dist/RadioButton.js +1 -1
  67. package/dist/RadioButton.js.map +1 -1
  68. package/dist/RatingIndicator.js +1 -1
  69. package/dist/RatingIndicator.js.map +1 -1
  70. package/dist/SegmentedButtonItem.js +1 -1
  71. package/dist/SegmentedButtonItem.js.map +1 -1
  72. package/dist/Select.js +1 -1
  73. package/dist/Select.js.map +1 -1
  74. package/dist/SliderBase.js +2 -2
  75. package/dist/SliderBase.js.map +1 -1
  76. package/dist/StepInput.js +1 -1
  77. package/dist/StepInput.js.map +1 -1
  78. package/dist/Switch.js +1 -1
  79. package/dist/Switch.js.map +1 -1
  80. package/dist/Table.js +1 -1
  81. package/dist/Table.js.map +1 -1
  82. package/dist/TableGrowing.d.ts +5 -0
  83. package/dist/TableGrowing.js +21 -12
  84. package/dist/TableGrowing.js.map +1 -1
  85. package/dist/TextArea.js +1 -1
  86. package/dist/TextArea.js.map +1 -1
  87. package/dist/TimePicker.js +1 -1
  88. package/dist/TimePicker.js.map +1 -1
  89. package/dist/Tokenizer.d.ts +23 -2
  90. package/dist/Tokenizer.js +72 -15
  91. package/dist/Tokenizer.js.map +1 -1
  92. package/dist/Toolbar.js +1 -1
  93. package/dist/Toolbar.js.map +1 -1
  94. package/dist/ToolbarSpacer.js +2 -2
  95. package/dist/ToolbarSpacer.js.map +1 -1
  96. package/dist/Tree.d.ts +14 -1
  97. package/dist/Tree.js +6 -4
  98. package/dist/Tree.js.map +1 -1
  99. package/dist/css/themes/Avatar.css +1 -1
  100. package/dist/css/themes/AvatarGroup.css +1 -1
  101. package/dist/css/themes/Bar.css +1 -1
  102. package/dist/css/themes/Breadcrumbs.css +1 -1
  103. package/dist/css/themes/BusyIndicator.css +1 -1
  104. package/dist/css/themes/Button.css +1 -1
  105. package/dist/css/themes/Calendar.css +1 -1
  106. package/dist/css/themes/CalendarHeader.css +1 -1
  107. package/dist/css/themes/CalendarLegend.css +1 -1
  108. package/dist/css/themes/CalendarLegendItem.css +1 -1
  109. package/dist/css/themes/Card.css +1 -1
  110. package/dist/css/themes/CardHeader.css +1 -1
  111. package/dist/css/themes/Carousel.css +1 -1
  112. package/dist/css/themes/CheckBox.css +1 -1
  113. package/dist/css/themes/ColorPalette.css +1 -1
  114. package/dist/css/themes/ColorPaletteItem.css +1 -1
  115. package/dist/css/themes/ColorPalettePopover.css +1 -1
  116. package/dist/css/themes/ColorPicker.css +1 -1
  117. package/dist/css/themes/ComboBox.css +1 -1
  118. package/dist/css/themes/ComboBoxItem.css +1 -0
  119. package/dist/css/themes/DatePicker.css +1 -1
  120. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  121. package/dist/css/themes/DayPicker.css +1 -1
  122. package/dist/css/themes/Dialog.css +1 -1
  123. package/dist/css/themes/FileUploader.css +1 -1
  124. package/dist/css/themes/Form.css +1 -1
  125. package/dist/css/themes/FormItem.css +1 -1
  126. package/dist/css/themes/FormLabelSpan.css +1 -1
  127. package/dist/css/themes/GrowingButton.css +1 -1
  128. package/dist/css/themes/Icon.css +1 -1
  129. package/dist/css/themes/Input.css +1 -1
  130. package/dist/css/themes/InputIcon.css +1 -1
  131. package/dist/css/themes/InputSharedStyles.css +1 -1
  132. package/dist/css/themes/Link.css +1 -1
  133. package/dist/css/themes/List.css +1 -1
  134. package/dist/css/themes/ListItem.css +1 -1
  135. package/dist/css/themes/ListItemBase.css +1 -1
  136. package/dist/css/themes/ListItemCustom.css +1 -1
  137. package/dist/css/themes/ListItemGroup.css +1 -1
  138. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  139. package/dist/css/themes/ListItemIcon.css +1 -1
  140. package/dist/css/themes/Menu.css +1 -1
  141. package/dist/css/themes/MenuItem.css +1 -1
  142. package/dist/css/themes/MessageStrip.css +1 -1
  143. package/dist/css/themes/MonthPicker.css +1 -1
  144. package/dist/css/themes/MultiComboBox.css +1 -1
  145. package/dist/css/themes/MultiComboBoxItem.css +1 -0
  146. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  147. package/dist/css/themes/MultiInput.css +1 -1
  148. package/dist/css/themes/NavigationMenu.css +1 -1
  149. package/dist/css/themes/NavigationMenuItem.css +1 -1
  150. package/dist/css/themes/OptionBase.css +1 -1
  151. package/dist/css/themes/Panel.css +1 -1
  152. package/dist/css/themes/Popover.css +1 -1
  153. package/dist/css/themes/PopupsCommon.css +1 -1
  154. package/dist/css/themes/ProgressIndicator.css +1 -1
  155. package/dist/css/themes/RadioButton.css +1 -1
  156. package/dist/css/themes/RangeSlider.css +1 -1
  157. package/dist/css/themes/RatingIndicator.css +1 -1
  158. package/dist/css/themes/ResponsivePopover.css +1 -1
  159. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  160. package/dist/css/themes/SegmentedButton.css +1 -1
  161. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  162. package/dist/css/themes/Select.css +1 -1
  163. package/dist/css/themes/SliderBase.css +1 -1
  164. package/dist/css/themes/SplitButton.css +1 -1
  165. package/dist/css/themes/StepInput.css +1 -1
  166. package/dist/css/themes/SuggestionItem.css +1 -1
  167. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  168. package/dist/css/themes/Switch.css +1 -1
  169. package/dist/css/themes/TabContainer.css +1 -1
  170. package/dist/css/themes/TabInOverflow.css +1 -1
  171. package/dist/css/themes/TabInStrip.css +1 -1
  172. package/dist/css/themes/TabSemanticIcon.css +1 -1
  173. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  174. package/dist/css/themes/Table.css +1 -1
  175. package/dist/css/themes/TableCellBase.css +1 -1
  176. package/dist/css/themes/TableHeaderRow.css +1 -1
  177. package/dist/css/themes/TableRow.css +1 -1
  178. package/dist/css/themes/TableRowBase.css +1 -1
  179. package/dist/css/themes/Tag.css +1 -1
  180. package/dist/css/themes/Text.css +1 -1
  181. package/dist/css/themes/TextArea.css +1 -1
  182. package/dist/css/themes/TimePicker.css +1 -1
  183. package/dist/css/themes/Toast.css +1 -1
  184. package/dist/css/themes/ToggleButton.css +1 -1
  185. package/dist/css/themes/Token.css +1 -1
  186. package/dist/css/themes/Tokenizer.css +1 -1
  187. package/dist/css/themes/TokenizerPopover.css +1 -1
  188. package/dist/css/themes/Toolbar.css +1 -1
  189. package/dist/css/themes/ToolbarPopover.css +1 -1
  190. package/dist/css/themes/TreeItem.css +1 -1
  191. package/dist/css/themes/ValueStateMessage.css +1 -1
  192. package/dist/css/themes/YearPicker.css +1 -1
  193. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  194. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  195. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  196. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  197. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  198. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  199. package/dist/css/themes/sap_horizon_dark_exp/parameters-bundle.css +1 -1
  200. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  201. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  202. package/dist/css/themes/sap_horizon_hcb_exp/parameters-bundle.css +1 -1
  203. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  204. package/dist/css/themes/sap_horizon_hcw_exp/parameters-bundle.css +1 -1
  205. package/dist/custom-elements-internal.json +503 -62
  206. package/dist/custom-elements.json +363 -43
  207. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  208. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  209. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  210. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  211. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  212. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  213. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  214. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  215. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  216. package/dist/generated/assets/themes/sap_horizon_dark_exp/parameters-bundle.css.json +1 -1
  217. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  218. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  219. package/dist/generated/assets/themes/sap_horizon_hcb_exp/parameters-bundle.css.json +1 -1
  220. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  221. package/dist/generated/assets/themes/sap_horizon_hcw_exp/parameters-bundle.css.json +1 -1
  222. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  223. package/dist/generated/i18n/i18n-defaults.js +2 -1
  224. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  225. package/dist/generated/templates/ColorPickerTemplate.lit.js +3 -1
  226. package/dist/generated/templates/ColorPickerTemplate.lit.js.map +1 -1
  227. package/dist/generated/templates/ComboBoxItemGroupTemplate.lit.d.ts +4 -0
  228. package/dist/generated/templates/ComboBoxItemGroupTemplate.lit.js +10 -0
  229. package/dist/generated/templates/ComboBoxItemGroupTemplate.lit.js.map +1 -0
  230. package/dist/generated/templates/ComboBoxItemTemplate.lit.d.ts +4 -0
  231. package/dist/generated/templates/ComboBoxItemTemplate.lit.js +6 -0
  232. package/dist/generated/templates/ComboBoxItemTemplate.lit.js.map +1 -0
  233. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +6 -11
  234. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js.map +1 -1
  235. package/dist/generated/templates/ComboBoxTemplate.lit.js +6 -11
  236. package/dist/generated/templates/ComboBoxTemplate.lit.js.map +1 -1
  237. package/dist/generated/templates/FormTemplate.lit.js +3 -3
  238. package/dist/generated/templates/FormTemplate.lit.js.map +1 -1
  239. package/dist/generated/templates/ListTemplate.lit.js +1 -1
  240. package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
  241. package/dist/generated/templates/MultiComboBoxItemGroupTemplate.lit.d.ts +4 -0
  242. package/dist/generated/templates/MultiComboBoxItemGroupTemplate.lit.js +10 -0
  243. package/dist/generated/templates/MultiComboBoxItemGroupTemplate.lit.js.map +1 -0
  244. package/dist/generated/templates/MultiComboBoxItemTemplate.lit.d.ts +4 -0
  245. package/dist/generated/templates/MultiComboBoxItemTemplate.lit.js +6 -0
  246. package/dist/generated/templates/MultiComboBoxItemTemplate.lit.js.map +1 -0
  247. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +11 -19
  248. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js.map +1 -1
  249. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +11 -19
  250. package/dist/generated/templates/MultiComboBoxTemplate.lit.js.map +1 -1
  251. package/dist/generated/templates/TokenizerTemplate.lit.js +7 -6
  252. package/dist/generated/templates/TokenizerTemplate.lit.js.map +1 -1
  253. package/dist/generated/templates/TreeTemplate.lit.js +1 -1
  254. package/dist/generated/templates/TreeTemplate.lit.js.map +1 -1
  255. package/dist/generated/themes/Avatar.css.js +1 -1
  256. package/dist/generated/themes/Avatar.css.js.map +1 -1
  257. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  258. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  259. package/dist/generated/themes/Bar.css.js +1 -1
  260. package/dist/generated/themes/Bar.css.js.map +1 -1
  261. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  262. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  263. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  264. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  265. package/dist/generated/themes/Button.css.js +1 -1
  266. package/dist/generated/themes/Button.css.js.map +1 -1
  267. package/dist/generated/themes/Calendar.css.js +1 -1
  268. package/dist/generated/themes/Calendar.css.js.map +1 -1
  269. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  270. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  271. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  272. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  273. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  274. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  275. package/dist/generated/themes/Card.css.js +1 -1
  276. package/dist/generated/themes/Card.css.js.map +1 -1
  277. package/dist/generated/themes/CardHeader.css.js +1 -1
  278. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  279. package/dist/generated/themes/Carousel.css.js +1 -1
  280. package/dist/generated/themes/Carousel.css.js.map +1 -1
  281. package/dist/generated/themes/CheckBox.css.js +1 -1
  282. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  283. package/dist/generated/themes/ColorPalette.css.js +1 -1
  284. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  285. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  286. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  287. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  288. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  289. package/dist/generated/themes/ColorPicker.css.js +1 -1
  290. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  291. package/dist/generated/themes/ComboBox.css.js +1 -1
  292. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  293. package/dist/generated/themes/ComboBoxItem.css.d.ts +3 -0
  294. package/dist/generated/themes/ComboBoxItem.css.js +9 -0
  295. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -0
  296. package/dist/generated/themes/DatePicker.css.js +1 -1
  297. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  298. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  299. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  300. package/dist/generated/themes/DayPicker.css.js +1 -1
  301. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  302. package/dist/generated/themes/Dialog.css.js +1 -1
  303. package/dist/generated/themes/Dialog.css.js.map +1 -1
  304. package/dist/generated/themes/FileUploader.css.js +1 -1
  305. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  306. package/dist/generated/themes/Form.css.js +1 -1
  307. package/dist/generated/themes/Form.css.js.map +1 -1
  308. package/dist/generated/themes/FormItem.css.js +1 -1
  309. package/dist/generated/themes/FormItem.css.js.map +1 -1
  310. package/dist/generated/themes/FormLabelSpan.css.js +1 -1
  311. package/dist/generated/themes/FormLabelSpan.css.js.map +1 -1
  312. package/dist/generated/themes/GrowingButton.css.js +1 -1
  313. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  314. package/dist/generated/themes/Icon.css.js +1 -1
  315. package/dist/generated/themes/Icon.css.js.map +1 -1
  316. package/dist/generated/themes/Input.css.js +1 -1
  317. package/dist/generated/themes/Input.css.js.map +1 -1
  318. package/dist/generated/themes/InputIcon.css.js +1 -1
  319. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  320. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  321. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  322. package/dist/generated/themes/Link.css.js +1 -1
  323. package/dist/generated/themes/Link.css.js.map +1 -1
  324. package/dist/generated/themes/List.css.js +1 -1
  325. package/dist/generated/themes/List.css.js.map +1 -1
  326. package/dist/generated/themes/ListItem.css.js +1 -1
  327. package/dist/generated/themes/ListItem.css.js.map +1 -1
  328. package/dist/generated/themes/ListItemBase.css.js +1 -1
  329. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  330. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  331. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  332. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  333. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  334. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  335. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  336. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  337. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  338. package/dist/generated/themes/Menu.css.js +1 -1
  339. package/dist/generated/themes/Menu.css.js.map +1 -1
  340. package/dist/generated/themes/MenuItem.css.js +1 -1
  341. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  342. package/dist/generated/themes/MessageStrip.css.js +1 -1
  343. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  344. package/dist/generated/themes/MonthPicker.css.js +1 -1
  345. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  346. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  347. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  348. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +3 -0
  349. package/dist/generated/themes/MultiComboBoxItem.css.js +9 -0
  350. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -0
  351. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  352. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  353. package/dist/generated/themes/MultiInput.css.js +1 -1
  354. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  355. package/dist/generated/themes/NavigationMenu.css.js +1 -1
  356. package/dist/generated/themes/NavigationMenu.css.js.map +1 -1
  357. package/dist/generated/themes/NavigationMenuItem.css.js +1 -1
  358. package/dist/generated/themes/NavigationMenuItem.css.js.map +1 -1
  359. package/dist/generated/themes/OptionBase.css.js +1 -1
  360. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  361. package/dist/generated/themes/Panel.css.js +1 -1
  362. package/dist/generated/themes/Panel.css.js.map +1 -1
  363. package/dist/generated/themes/Popover.css.js +1 -1
  364. package/dist/generated/themes/Popover.css.js.map +1 -1
  365. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  366. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  367. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  368. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  369. package/dist/generated/themes/RadioButton.css.js +1 -1
  370. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  371. package/dist/generated/themes/RangeSlider.css.js +1 -1
  372. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  373. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  374. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  375. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  376. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  377. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  378. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  379. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  380. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  381. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  382. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  383. package/dist/generated/themes/Select.css.js +1 -1
  384. package/dist/generated/themes/Select.css.js.map +1 -1
  385. package/dist/generated/themes/SliderBase.css.js +1 -1
  386. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  387. package/dist/generated/themes/SplitButton.css.js +1 -1
  388. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  389. package/dist/generated/themes/StepInput.css.js +1 -1
  390. package/dist/generated/themes/StepInput.css.js.map +1 -1
  391. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  392. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  393. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  394. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  395. package/dist/generated/themes/Switch.css.js +1 -1
  396. package/dist/generated/themes/Switch.css.js.map +1 -1
  397. package/dist/generated/themes/TabContainer.css.js +1 -1
  398. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  399. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  400. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  401. package/dist/generated/themes/TabInStrip.css.js +1 -1
  402. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  403. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  404. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  405. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  406. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  407. package/dist/generated/themes/Table.css.js +1 -1
  408. package/dist/generated/themes/Table.css.js.map +1 -1
  409. package/dist/generated/themes/TableCellBase.css.js +1 -1
  410. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  411. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  412. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  413. package/dist/generated/themes/TableRow.css.js +1 -1
  414. package/dist/generated/themes/TableRow.css.js.map +1 -1
  415. package/dist/generated/themes/TableRowBase.css.js +1 -1
  416. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  417. package/dist/generated/themes/Tag.css.js +1 -1
  418. package/dist/generated/themes/Tag.css.js.map +1 -1
  419. package/dist/generated/themes/Text.css.js +1 -1
  420. package/dist/generated/themes/Text.css.js.map +1 -1
  421. package/dist/generated/themes/TextArea.css.js +1 -1
  422. package/dist/generated/themes/TextArea.css.js.map +1 -1
  423. package/dist/generated/themes/TimePicker.css.js +1 -1
  424. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  425. package/dist/generated/themes/Toast.css.js +1 -1
  426. package/dist/generated/themes/Toast.css.js.map +1 -1
  427. package/dist/generated/themes/ToggleButton.css.js +1 -1
  428. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  429. package/dist/generated/themes/Token.css.js +1 -1
  430. package/dist/generated/themes/Token.css.js.map +1 -1
  431. package/dist/generated/themes/Tokenizer.css.js +1 -1
  432. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  433. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  434. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  435. package/dist/generated/themes/Toolbar.css.js +1 -1
  436. package/dist/generated/themes/Toolbar.css.js.map +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.js +1 -1
  440. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  441. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  442. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  443. package/dist/generated/themes/YearPicker.css.js +1 -1
  444. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  445. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  446. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  447. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  448. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  449. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  450. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  451. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  452. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  453. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  454. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  455. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  456. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  457. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js +1 -1
  458. package/dist/generated/themes/sap_horizon_dark_exp/parameters-bundle.css.js.map +1 -1
  459. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  460. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js.map +1 -1
  461. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  462. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  463. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js +1 -1
  464. package/dist/generated/themes/sap_horizon_hcb_exp/parameters-bundle.css.js.map +1 -1
  465. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  466. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  467. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js +1 -1
  468. package/dist/generated/themes/sap_horizon_hcw_exp/parameters-bundle.css.js.map +1 -1
  469. package/dist/types/ColorPickerDisplayMode.d.ts +17 -0
  470. package/dist/types/ColorPickerDisplayMode.js +19 -0
  471. package/dist/types/ColorPickerDisplayMode.js.map +1 -0
  472. package/dist/vscode.html-custom-data.json +59 -9
  473. package/dist/web-types.json +158 -19
  474. package/package.json +10 -10
  475. package/src/ColorPicker.hbs +60 -56
  476. package/src/ComboBoxItem.hbs +18 -0
  477. package/src/ComboBoxItemGroup.hbs +9 -0
  478. package/src/ComboBoxPopover.hbs +2 -31
  479. package/src/Form.hbs +3 -3
  480. package/src/List.hbs +1 -0
  481. package/src/ListItemGroup.hbs +11 -4
  482. package/src/MultiComboBox.hbs +10 -12
  483. package/src/MultiComboBoxItem.hbs +19 -0
  484. package/src/MultiComboBoxItemGroup.hbs +9 -0
  485. package/src/MultiComboBoxPopover.hbs +5 -36
  486. package/src/Tokenizer.hbs +28 -17
  487. package/src/Tree.hbs +4 -1
  488. package/src/i18n/messagebundle.properties +3 -0
  489. package/src/i18n/messagebundle_en.properties +2 -0
  490. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  491. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  492. package/src/themes/ComboBoxItem.css +14 -0
  493. package/src/themes/Dialog.css +1 -0
  494. package/src/themes/FormItem.css +31 -1
  495. package/src/themes/MultiComboBoxItem.css +19 -0
  496. package/src/themes/MultiComboBoxPopover.css +5 -1
  497. package/src/themes/Table.css +1 -4
  498. package/src/themes/Tokenizer.css +45 -0
@@ -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>`);
@@ -382,4 +386,447 @@ describe("General API", () => {
382
386
  cy.get("@formGr3")
383
387
  .should("have.prop", "colsXl", 1);
384
388
  });
389
+
390
+ describe("tests items ordering within a group", () => {
391
+ beforeEach(() => {
392
+ cy.mount(html`<ui5-form layout="S3 M4 L5 XL6">
393
+ <ui5-form-group>
394
+ <ui5-form-item>
395
+ <span slot="labelContent">Item:</span>
396
+ <span>1</span>
397
+ </ui5-form-item>
398
+ <ui5-form-item>
399
+ <span slot="labelContent">Item:</span>
400
+ <span>2</span>
401
+ </ui5-form-item>
402
+ <ui5-form-item>
403
+ <span slot="labelContent">Item:</span>
404
+ <span>3</span>
405
+ </ui5-form-item>
406
+ <ui5-form-item>
407
+ <span slot="labelContent">Item:</span>
408
+ <span>4</span>
409
+ </ui5-form-item>
410
+ <ui5-form-item>
411
+ <span slot="labelContent">Item:</span>
412
+ <span>5</span>
413
+ </ui5-form-item>
414
+ <ui5-form-item>
415
+ <span slot="labelContent">Item:</span>
416
+ <span>6</span>
417
+ </ui5-form-item>
418
+ <ui5-form-item>
419
+ <span slot="labelContent">Item:</span>
420
+ <span>7</span>
421
+ </ui5-form-item>
422
+ <ui5-form-item>
423
+ <span slot="labelContent">Item:</span>
424
+ <span>8</span>
425
+ </ui5-form-item>
426
+ <ui5-form-item>
427
+ <span slot="labelContent">Item:</span>
428
+ <span>9</span>
429
+ </ui5-form-item>
430
+ <ui5-form-item>
431
+ <span slot="labelContent">Item:</span>
432
+ <span>10</span>
433
+ </ui5-form-item>
434
+ </ui5-form-group>
435
+ </ui5-form>`);
436
+ });
437
+
438
+ it("10 items in 6 columns", () => {
439
+ cy.get("[ui5-form]")
440
+ .invoke("width", 1500);
441
+
442
+ cy.get("[ui5-form-item]")
443
+ .as("items");
444
+
445
+ cy.get("@items")
446
+ .eq(0)
447
+ .should("have.css", "order", "0");
448
+
449
+ cy.get("@items")
450
+ .eq(1)
451
+ .should("have.css", "order", "6");
452
+
453
+ cy.get("@items")
454
+ .eq(2)
455
+ .should("have.css", "order", "1");
456
+
457
+ cy.get("@items")
458
+ .eq(3)
459
+ .should("have.css", "order", "7");
460
+
461
+ cy.get("@items")
462
+ .eq(4)
463
+ .should("have.css", "order", "2");
464
+
465
+ cy.get("@items")
466
+ .eq(5)
467
+ .should("have.css", "order", "8");
468
+
469
+ cy.get("@items")
470
+ .eq(6)
471
+ .should("have.css", "order", "3");
472
+
473
+ cy.get("@items")
474
+ .eq(7)
475
+ .should("have.css", "order", "9");
476
+
477
+ cy.get("@items")
478
+ .eq(8)
479
+ .should("have.css", "order", "4");
480
+
481
+ cy.get("@items")
482
+ .eq(9)
483
+ .should("have.css", "order", "5");
484
+ });
485
+
486
+ it("10 items in 5 columns", () => {
487
+ cy.get("[ui5-form]")
488
+ .invoke("width", 1300);
489
+
490
+ cy.get("[ui5-form-item]")
491
+ .as("items");
492
+
493
+ cy.get("@items")
494
+ .eq(0)
495
+ .should("have.css", "order", "0");
496
+
497
+ cy.get("@items")
498
+ .eq(1)
499
+ .should("have.css", "order", "5");
500
+
501
+ cy.get("@items")
502
+ .eq(2)
503
+ .should("have.css", "order", "1");
504
+
505
+ cy.get("@items")
506
+ .eq(3)
507
+ .should("have.css", "order", "6");
508
+
509
+ cy.get("@items")
510
+ .eq(4)
511
+ .should("have.css", "order", "2");
512
+
513
+ cy.get("@items")
514
+ .eq(5)
515
+ .should("have.css", "order", "7");
516
+
517
+ cy.get("@items")
518
+ .eq(6)
519
+ .should("have.css", "order", "3");
520
+
521
+ cy.get("@items")
522
+ .eq(7)
523
+ .should("have.css", "order", "8");
524
+
525
+ cy.get("@items")
526
+ .eq(8)
527
+ .should("have.css", "order", "4");
528
+
529
+ cy.get("@items")
530
+ .eq(9)
531
+ .should("have.css", "order", "9");
532
+ });
533
+
534
+ it("10 items in 4 columns", () => {
535
+ cy.get("[ui5-form]")
536
+ .invoke("width", 800);
537
+
538
+ cy.get("[ui5-form-item]")
539
+ .as("items");
540
+
541
+ cy.get("@items")
542
+ .eq(0)
543
+ .should("have.css", "order", "0");
544
+
545
+ cy.get("@items")
546
+ .eq(1)
547
+ .should("have.css", "order", "4");
548
+
549
+ cy.get("@items")
550
+ .eq(2)
551
+ .should("have.css", "order", "8");
552
+
553
+ cy.get("@items")
554
+ .eq(3)
555
+ .should("have.css", "order", "1");
556
+
557
+ cy.get("@items")
558
+ .eq(4)
559
+ .should("have.css", "order", "5");
560
+
561
+ cy.get("@items")
562
+ .eq(5)
563
+ .should("have.css", "order", "9");
564
+
565
+ cy.get("@items")
566
+ .eq(6)
567
+ .should("have.css", "order", "2");
568
+
569
+ cy.get("@items")
570
+ .eq(7)
571
+ .should("have.css", "order", "6");
572
+
573
+ cy.get("@items")
574
+ .eq(8)
575
+ .should("have.css", "order", "3");
576
+
577
+ cy.get("@items")
578
+ .eq(9)
579
+ .should("have.css", "order", "7");
580
+ });
581
+
582
+ it("10 items in 3 columns", () => {
583
+ cy.get("[ui5-form]")
584
+ .invoke("width", 500);
585
+
586
+ cy.get("[ui5-form-item]")
587
+ .as("items");
588
+
589
+ cy.get("@items")
590
+ .eq(0)
591
+ .should("have.css", "order", "0");
592
+
593
+ cy.get("@items")
594
+ .eq(1)
595
+ .should("have.css", "order", "3");
596
+
597
+ cy.get("@items")
598
+ .eq(2)
599
+ .should("have.css", "order", "6");
600
+
601
+ cy.get("@items")
602
+ .eq(3)
603
+ .should("have.css", "order", "9");
604
+
605
+ cy.get("@items")
606
+ .eq(4)
607
+ .should("have.css", "order", "1");
608
+
609
+ cy.get("@items")
610
+ .eq(5)
611
+ .should("have.css", "order", "4");
612
+
613
+ cy.get("@items")
614
+ .eq(6)
615
+ .should("have.css", "order", "7");
616
+
617
+ cy.get("@items")
618
+ .eq(7)
619
+ .should("have.css", "order", "2");
620
+
621
+ cy.get("@items")
622
+ .eq(8)
623
+ .should("have.css", "order", "5");
624
+
625
+ cy.get("@items")
626
+ .eq(9)
627
+ .should("have.css", "order", "8");
628
+ });
629
+ });
630
+ });
631
+
632
+ describe("Accessibility", () => {
633
+ it("tests 'role' and 'aria-labelledby' of form with groups", () => {
634
+ cy.mount(html`<ui5-form class="addressForm" header-text="Form header text">
635
+ <ui5-form-group header-text="Address">
636
+ <ui5-form-item>
637
+ <ui5-label>Name:</ui5-label>
638
+ <ui5-text>Red Point Stores</ui5-text>
639
+ </ui5-form-item>
640
+ </ui5-form-group>
641
+
642
+ <ui5-form-group id="testFormGroup2" header-text="Contact">
643
+ <ui5-form-item>
644
+ <ui5-label>Twitter:</ui5-label>
645
+ <ui5-text>@sap</ui5-text>
646
+ </ui5-form-item>
647
+ </ui5-form-group>
648
+
649
+ <ui5-form-group id="testFormGroup3" header-text="Other info">
650
+ <ui5-form-item>
651
+ <ui5-label>Name:</ui5-label>
652
+ <ui5-text>Red Point Stores</ui5-text>
653
+ </ui5-form-item>
654
+ </ui5-form-group>
655
+ </ui5-form>`);
656
+
657
+ cy.get("[ui5-form]")
658
+ .as("form");
659
+
660
+ cy.get("[ui5-form-group]")
661
+ .first()
662
+ .as("formGroup");
663
+
664
+ cy.get("@form")
665
+ .shadow()
666
+ .find(".ui5-form-root")
667
+ .should("have.attr", "role", "region");
668
+
669
+ // assert: the root element's aria-labelledby is equal to the form title's ID
670
+ cy.get("@form").shadow().find(".ui5-form-root").invoke("attr", "aria-labelledby")
671
+ .then(ariaLabelledBy => {
672
+ cy.get("@form").shadow().find(".ui5-form-header [ui5-title]")
673
+ .invoke("attr", "id")
674
+ .then(id => {
675
+ expect(ariaLabelledBy).to.equal(id);
676
+ });
677
+ });
678
+
679
+ cy.get("@form")
680
+ .shadow()
681
+ .find(".ui5-form-group")
682
+ .eq(0)
683
+ .as("firstGroupDOMRef");
684
+
685
+ cy.get("@form")
686
+ .shadow()
687
+ .find(".ui5-form-group [ui5-title]")
688
+ .eq(0)
689
+ .as("firstGroupTitle");
690
+
691
+ cy.get("@form")
692
+ .should("not.have.attr", "data-sap-ui-fastnavgroup", "true");
693
+
694
+ cy.get("@formGroup")
695
+ .should("have.attr", "data-sap-ui-fastnavgroup", "true");
696
+
697
+ cy.get("@firstGroupDOMRef")
698
+ .should("have.attr", "role", "form");
699
+
700
+ // assert: the form group's aria-labelledby is equal to the form group title's ID
701
+ cy.get("@firstGroupDOMRef")
702
+ .invoke("attr", "aria-labelledby")
703
+ .then(ariaLabelledBy => {
704
+ cy.get("@firstGroupTitle")
705
+ .invoke("attr", "id")
706
+ .then(id => {
707
+ expect(ariaLabelledBy).to.equal(id);
708
+ });
709
+ });
710
+ });
711
+
712
+ it("tests 'role' and 'aria-labelledby' of form without groups", () => {
713
+ cy.mount(html`<ui5-form class="addressForm" header-text="Form header text">
714
+ <ui5-form-item>
715
+ <ui5-label>Name:</ui5-label>
716
+ <ui5-text>Red Point Stores</ui5-text>
717
+ </ui5-form-item>
718
+ <ui5-form-item>
719
+ <ui5-label>Twitter:</ui5-label>
720
+ <ui5-text>@sap</ui5-text>
721
+ </ui5-form-item>
722
+ <ui5-form-item>
723
+ <ui5-label>Name:</ui5-label>
724
+ <ui5-text>Red Point Stores</ui5-text>
725
+ </ui5-form-item>
726
+ </ui5-form>`);
727
+
728
+ cy.get("[ui5-form]")
729
+ .as("form");
730
+
731
+ cy.get("@form")
732
+ .shadow()
733
+ .find(".ui5-form-root")
734
+ .should("have.attr", "role", "form");
735
+
736
+ cy.get("@form")
737
+ .should("have.attr", "data-sap-ui-fastnavgroup", "true");
738
+
739
+ // assert: the root element's aria-labelledby is equal to the form title's ID
740
+ cy.get("@form").shadow().find(".ui5-form-root").invoke("attr", "aria-labelledby")
741
+ .then(ariaLabelledBy => {
742
+ cy.get("@form").shadow().find(".ui5-form-header [ui5-title]")
743
+ .invoke("attr", "id")
744
+ .then(id => {
745
+ expect(ariaLabelledBy).to.equal(id);
746
+ });
747
+ });
748
+ });
749
+
750
+ it("tests F6 navigation", () => {
751
+ cy.mount(html`
752
+ <section>
753
+ <button id="before">Before element</button>
754
+ </section>
755
+ <ui5-form id="formWithGroups" header-text="Form 1">
756
+ <ui5-form-group header-text="Address">
757
+ <ui5-form-item>
758
+ <ui5-label for="nameInp" slot="labelContent">Name:</ui5-label>
759
+ <ui5-input value="Red Point Stores" id="nameInp"></ui5-input>
760
+ </ui5-form-item>
761
+
762
+ <ui5-form-item>
763
+ <ui5-label id="cityLbl" for="cityInp" slot="labelContent">ZIP Code/City:</ui5-label>
764
+ <ui5-input id="cityInp" value="411" accessible-name-ref="cityLbl"></ui5-input>
765
+ <ui5-input value="Maintown" accessible-name-ref="cityLbl"></ui5-input>
766
+ </ui5-form-item>
767
+ </ui5-form-group>
768
+
769
+ <ui5-form-group header-text="Contact">
770
+ <ui5-form-item>
771
+ <ui5-label id="streetLbl" for="streetInp" slot="labelContent">Street:</ui5-label>
772
+ <ui5-input id="streetInp" value="Main St" accessible-name-ref="streetLbl"></ui5-input>
773
+ <ui5-input id="streetNumberInp" value="1618" accessible-name-ref="streetLbl"></ui5-input>
774
+ </ui5-form-item>
775
+
776
+ <ui5-form-item>
777
+ <ui5-label id="countryLbl" for="countrySel" slot="labelContent">Country:</ui5-label>
778
+ <ui5-input id="countrySel" accessible-name-ref="countryLbl"></ui5-input>
779
+ </ui5-form-item>
780
+ </ui5-form-group>
781
+ </ui5-form>
782
+
783
+ <ui5-form id="formWithItems" header-text="Form 2">
784
+ <ui5-form-item>
785
+ <ui5-label for="nameInp2" slot="labelContent">Name:</ui5-label>
786
+ <ui5-input value="Red Point Stores" id="nameInp2"></ui5-input>
787
+ </ui5-form-item>
788
+
789
+ <ui5-form-item>
790
+ <ui5-label id="cityLbl2" for="cityInp2" slot="labelContent">ZIP Code/City:</ui5-label>
791
+ <ui5-input id="cityInp2" value="411" accessible-name-ref="cityLbl2"></ui5-input>
792
+ <ui5-input value="Maintown" accessible-name-ref="cityLbl2"></ui5-input>
793
+ </ui5-form-item>
794
+
795
+ <ui5-form-item>
796
+ <ui5-label id="streetLbl2" for="streetInp2" slot="labelContent">Street:</ui5-label>
797
+ <ui5-input id="streetInp2" value="Main St" accessible-name-ref="streetLbl2"></ui5-input>
798
+ <ui5-input id="streetNumberInp" value="1618" accessible-name-ref="streetLbl2"></ui5-input>
799
+ </ui5-form-item>
800
+
801
+ <ui5-form-item>
802
+ <ui5-label id="countryLbl2" for="countrySel2" slot="labelContent">Country:</ui5-label>
803
+ <ui5-input id="countrySel2" accessible-name-ref="countryLbl2"></ui5-input>
804
+ </ui5-form-item>
805
+ </ui5-form>`);
806
+
807
+ cy.get("#before").focus();
808
+ cy.realPress("F6");
809
+
810
+ // assert: the first input of the first FormGroup is focused
811
+ cy.get("#nameInp")
812
+ .should("be.focused");
813
+
814
+ cy.realPress("F6");
815
+
816
+ // assert: the first input in second FormGroup is focused
817
+ cy.get("#streetInp")
818
+ .should("be.focused");
819
+
820
+ cy.realPress("F6");
821
+
822
+ // assert: the first input in next Form is focused
823
+ cy.get("#nameInp2")
824
+ .should("be.focused");
825
+
826
+ cy.realPress("F6");
827
+
828
+ // assert: back to the first Form
829
+ cy.get("#nameInp")
830
+ .should("be.focused");
831
+ });
385
832
  });