@ui5/webcomponents 2.9.0-rc.0 → 2.9.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 (570) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/cypress/specs/ComboBox.cy.tsx +67 -0
  3. package/cypress/specs/DateControlsWithTimezone.cy.tsx +75 -0
  4. package/cypress/specs/DatePicker.cy.tsx +1693 -0
  5. package/cypress/specs/DateRangePicker.cy.tsx +588 -0
  6. package/cypress/specs/Input.cy.tsx +57 -0
  7. package/cypress/specs/List.cy.tsx +26 -0
  8. package/cypress/specs/MultiComboBox.cy.tsx +36 -0
  9. package/cypress/specs/MultiInput.cy.tsx +4 -1
  10. package/cypress/specs/RatingIndicator.cy.tsx +176 -0
  11. package/cypress/specs/SegmentedButton.cy.tsx +215 -0
  12. package/cypress/specs/Select.cy.tsx +18 -0
  13. package/cypress/specs/Table.cy.tsx +2 -0
  14. package/cypress/specs/Tag.cy.tsx +22 -0
  15. package/cypress/specs/base/AccessibilityTextsHelper.cy.tsx +141 -0
  16. package/cypress/support/commands/DatePicker.commands.ts +218 -0
  17. package/cypress/support/commands/SegmentedButton.commands.ts +32 -0
  18. package/cypress/support/commands.ts +16 -0
  19. package/dist/.tsbuildinfo +1 -1
  20. package/dist/ComboBox.js +2 -1
  21. package/dist/ComboBox.js.map +1 -1
  22. package/dist/DayPicker.js +3 -3
  23. package/dist/DayPicker.js.map +1 -1
  24. package/dist/Input.d.ts +26 -1
  25. package/dist/Input.js +41 -4
  26. package/dist/Input.js.map +1 -1
  27. package/dist/InputTemplate.js +2 -1
  28. package/dist/InputTemplate.js.map +1 -1
  29. package/dist/ListItem.d.ts +1 -0
  30. package/dist/ListItem.js +9 -1
  31. package/dist/ListItem.js.map +1 -1
  32. package/dist/ListItemGroupHeader.js +1 -1
  33. package/dist/ListItemGroupHeader.js.map +1 -1
  34. package/dist/ListItemTemplate.js +1 -1
  35. package/dist/ListItemTemplate.js.map +1 -1
  36. package/dist/Menu.d.ts +1 -0
  37. package/dist/Menu.js +6 -3
  38. package/dist/Menu.js.map +1 -1
  39. package/dist/MenuItem.d.ts +1 -0
  40. package/dist/MenuItem.js +3 -0
  41. package/dist/MenuItem.js.map +1 -1
  42. package/dist/MenuItemTemplate.d.ts +1 -5
  43. package/dist/MenuItemTemplate.js +1 -1
  44. package/dist/MenuItemTemplate.js.map +1 -1
  45. package/dist/MultiInput.d.ts +2 -1
  46. package/dist/Popup.js +1 -4
  47. package/dist/Popup.js.map +1 -1
  48. package/dist/Select.d.ts +12 -0
  49. package/dist/Select.js +3 -0
  50. package/dist/Select.js.map +1 -1
  51. package/dist/SelectTemplate.js +6 -2
  52. package/dist/SelectTemplate.js.map +1 -1
  53. package/dist/Table.d.ts +14 -16
  54. package/dist/Table.js +37 -45
  55. package/dist/Table.js.map +1 -1
  56. package/dist/TableCell.js +0 -2
  57. package/dist/TableCell.js.map +1 -1
  58. package/dist/TableCellBase.d.ts +1 -0
  59. package/dist/TableCellBase.js +3 -10
  60. package/dist/TableCellBase.js.map +1 -1
  61. package/dist/TableDragAndDrop.d.ts +1 -1
  62. package/dist/TableDragAndDrop.js.map +1 -1
  63. package/dist/TableGrowing.d.ts +2 -2
  64. package/dist/TableGrowing.js +5 -11
  65. package/dist/TableGrowing.js.map +1 -1
  66. package/dist/TableHeaderCell.js +2 -6
  67. package/dist/TableHeaderCell.js.map +1 -1
  68. package/dist/TableHeaderCellActionAI.d.ts +1 -0
  69. package/dist/TableHeaderCellActionAI.js +4 -0
  70. package/dist/TableHeaderCellActionAI.js.map +1 -1
  71. package/dist/TableHeaderCellActionBaseTemplate.js +2 -1
  72. package/dist/TableHeaderCellActionBaseTemplate.js.map +1 -1
  73. package/dist/TableHeaderCellTemplate.js.map +1 -1
  74. package/dist/TableHeaderRow.d.ts +0 -1
  75. package/dist/TableHeaderRow.js +0 -3
  76. package/dist/TableHeaderRow.js.map +1 -1
  77. package/dist/TableHeaderRowTemplate.js +1 -1
  78. package/dist/TableHeaderRowTemplate.js.map +1 -1
  79. package/dist/TableNavigation.d.ts +2 -2
  80. package/dist/TableNavigation.js +1 -1
  81. package/dist/TableNavigation.js.map +1 -1
  82. package/dist/TableRow.d.ts +2 -4
  83. package/dist/TableRow.js +6 -35
  84. package/dist/TableRow.js.map +1 -1
  85. package/dist/TableRowActionBaseTemplate.js +4 -2
  86. package/dist/TableRowActionBaseTemplate.js.map +1 -1
  87. package/dist/TableRowActionNavigation.d.ts +1 -1
  88. package/dist/TableRowActionNavigation.js +4 -4
  89. package/dist/TableRowActionNavigation.js.map +1 -1
  90. package/dist/TableRowBase.d.ts +4 -2
  91. package/dist/TableRowBase.js +15 -16
  92. package/dist/TableRowBase.js.map +1 -1
  93. package/dist/TableRowTemplate.js +3 -2
  94. package/dist/TableRowTemplate.js.map +1 -1
  95. package/dist/TableUtils.d.ts +2 -1
  96. package/dist/TableUtils.js +14 -1
  97. package/dist/TableUtils.js.map +1 -1
  98. package/dist/TableVirtualizer.js +1 -1
  99. package/dist/TableVirtualizer.js.map +1 -1
  100. package/dist/Tag.d.ts +1 -1
  101. package/dist/Tag.js +2 -1
  102. package/dist/Tag.js.map +1 -1
  103. package/dist/Token.d.ts +1 -0
  104. package/dist/Token.js +6 -0
  105. package/dist/Token.js.map +1 -1
  106. package/dist/TokenTemplate.js +1 -1
  107. package/dist/TokenTemplate.js.map +1 -1
  108. package/dist/Toolbar.d.ts +2 -2
  109. package/dist/Toolbar.js +5 -8
  110. package/dist/Toolbar.js.map +1 -1
  111. package/dist/css/themes/Avatar.css +1 -1
  112. package/dist/css/themes/AvatarGroup.css +1 -1
  113. package/dist/css/themes/Bar.css +1 -1
  114. package/dist/css/themes/Breadcrumbs.css +1 -1
  115. package/dist/css/themes/BusyIndicator.css +1 -1
  116. package/dist/css/themes/Button.css +1 -1
  117. package/dist/css/themes/ButtonBadge.css +1 -1
  118. package/dist/css/themes/Calendar.css +1 -1
  119. package/dist/css/themes/CalendarHeader.css +1 -1
  120. package/dist/css/themes/CalendarLegend.css +1 -1
  121. package/dist/css/themes/CalendarLegendItem.css +1 -1
  122. package/dist/css/themes/Card.css +1 -1
  123. package/dist/css/themes/CardHeader.css +1 -1
  124. package/dist/css/themes/Carousel.css +1 -1
  125. package/dist/css/themes/CheckBox.css +1 -1
  126. package/dist/css/themes/ColorPalette.css +1 -1
  127. package/dist/css/themes/ColorPaletteItem.css +1 -1
  128. package/dist/css/themes/ColorPalettePopover.css +1 -1
  129. package/dist/css/themes/ColorPicker.css +1 -1
  130. package/dist/css/themes/ComboBox.css +1 -1
  131. package/dist/css/themes/ComboBoxItem.css +1 -1
  132. package/dist/css/themes/DatePicker.css +1 -1
  133. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  134. package/dist/css/themes/DayPicker.css +1 -1
  135. package/dist/css/themes/Dialog.css +1 -1
  136. package/dist/css/themes/FileUploader.css +1 -1
  137. package/dist/css/themes/Form.css +1 -1
  138. package/dist/css/themes/FormItem.css +1 -1
  139. package/dist/css/themes/FormItemSpan.css +1 -1
  140. package/dist/css/themes/GrowingButton.css +1 -1
  141. package/dist/css/themes/Icon.css +1 -1
  142. package/dist/css/themes/Input.css +1 -1
  143. package/dist/css/themes/InputIcon.css +1 -1
  144. package/dist/css/themes/InputSharedStyles.css +1 -1
  145. package/dist/css/themes/Link.css +1 -1
  146. package/dist/css/themes/List.css +1 -1
  147. package/dist/css/themes/ListItem.css +1 -1
  148. package/dist/css/themes/ListItemBase.css +1 -1
  149. package/dist/css/themes/ListItemCustom.css +1 -1
  150. package/dist/css/themes/ListItemGroup.css +1 -1
  151. package/dist/css/themes/ListItemGroupHeader.css +1 -1
  152. package/dist/css/themes/ListItemIcon.css +1 -1
  153. package/dist/css/themes/Menu.css +1 -1
  154. package/dist/css/themes/MenuItem.css +1 -1
  155. package/dist/css/themes/MessageStrip.css +1 -1
  156. package/dist/css/themes/MonthPicker.css +1 -1
  157. package/dist/css/themes/MultiComboBox.css +1 -1
  158. package/dist/css/themes/MultiComboBoxItem.css +1 -1
  159. package/dist/css/themes/MultiComboBoxPopover.css +1 -1
  160. package/dist/css/themes/MultiInput.css +1 -1
  161. package/dist/css/themes/OptionBase.css +1 -1
  162. package/dist/css/themes/Panel.css +1 -1
  163. package/dist/css/themes/Popover.css +1 -1
  164. package/dist/css/themes/PopupsCommon.css +1 -1
  165. package/dist/css/themes/ProgressIndicator.css +1 -1
  166. package/dist/css/themes/RadioButton.css +1 -1
  167. package/dist/css/themes/RangeSlider.css +1 -1
  168. package/dist/css/themes/RatingIndicator.css +1 -1
  169. package/dist/css/themes/ResponsivePopover.css +1 -1
  170. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  171. package/dist/css/themes/SegmentedButton.css +1 -1
  172. package/dist/css/themes/SegmentedButtonItem.css +1 -1
  173. package/dist/css/themes/Select.css +1 -1
  174. package/dist/css/themes/SliderBase.css +1 -1
  175. package/dist/css/themes/SplitButton.css +1 -1
  176. package/dist/css/themes/StepInput.css +1 -1
  177. package/dist/css/themes/SuggestionItem.css +1 -1
  178. package/dist/css/themes/SuggestionItemCustom.css +1 -1
  179. package/dist/css/themes/Switch.css +1 -1
  180. package/dist/css/themes/TabContainer.css +1 -1
  181. package/dist/css/themes/TabInOverflow.css +1 -1
  182. package/dist/css/themes/TabInStrip.css +1 -1
  183. package/dist/css/themes/TabSemanticIcon.css +1 -1
  184. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  185. package/dist/css/themes/Table.css +1 -1
  186. package/dist/css/themes/TableCellBase.css +1 -1
  187. package/dist/css/themes/TableHeaderRow.css +1 -1
  188. package/dist/css/themes/TableRow.css +1 -1
  189. package/dist/css/themes/TableRowActionBase.css +1 -1
  190. package/dist/css/themes/TableRowBase.css +1 -1
  191. package/dist/css/themes/Tag.css +1 -1
  192. package/dist/css/themes/Text.css +1 -1
  193. package/dist/css/themes/TextArea.css +1 -1
  194. package/dist/css/themes/TimePicker.css +1 -1
  195. package/dist/css/themes/Toast.css +1 -1
  196. package/dist/css/themes/ToggleButton.css +1 -1
  197. package/dist/css/themes/Token.css +1 -1
  198. package/dist/css/themes/Tokenizer.css +1 -1
  199. package/dist/css/themes/TokenizerPopover.css +1 -1
  200. package/dist/css/themes/Toolbar.css +1 -1
  201. package/dist/css/themes/ToolbarPopover.css +1 -1
  202. package/dist/css/themes/TreeItem.css +1 -1
  203. package/dist/css/themes/ValueStateMessage.css +1 -1
  204. package/dist/css/themes/YearPicker.css +1 -1
  205. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  206. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  207. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  208. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  209. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  210. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  211. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  212. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  213. package/dist/custom-elements-internal.json +173 -7
  214. package/dist/custom-elements.json +132 -6
  215. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  216. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  217. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  218. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  219. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  220. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  221. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  222. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  223. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  224. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  225. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  226. package/dist/generated/i18n/i18n-defaults.d.ts +2 -1
  227. package/dist/generated/i18n/i18n-defaults.js +2 -1
  228. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  229. package/dist/generated/themes/Avatar.css.d.ts +1 -1
  230. package/dist/generated/themes/Avatar.css.js +1 -1
  231. package/dist/generated/themes/Avatar.css.js.map +1 -1
  232. package/dist/generated/themes/AvatarGroup.css.d.ts +1 -1
  233. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  234. package/dist/generated/themes/AvatarGroup.css.js.map +1 -1
  235. package/dist/generated/themes/Bar.css.d.ts +1 -1
  236. package/dist/generated/themes/Bar.css.js +1 -1
  237. package/dist/generated/themes/Bar.css.js.map +1 -1
  238. package/dist/generated/themes/Breadcrumbs.css.d.ts +1 -1
  239. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  240. package/dist/generated/themes/Breadcrumbs.css.js.map +1 -1
  241. package/dist/generated/themes/BusyIndicator.css.d.ts +1 -1
  242. package/dist/generated/themes/BusyIndicator.css.js +1 -1
  243. package/dist/generated/themes/BusyIndicator.css.js.map +1 -1
  244. package/dist/generated/themes/Button.css.d.ts +1 -1
  245. package/dist/generated/themes/Button.css.js +1 -1
  246. package/dist/generated/themes/Button.css.js.map +1 -1
  247. package/dist/generated/themes/ButtonBadge.css.d.ts +1 -1
  248. package/dist/generated/themes/ButtonBadge.css.js +1 -1
  249. package/dist/generated/themes/ButtonBadge.css.js.map +1 -1
  250. package/dist/generated/themes/Calendar.css.d.ts +1 -1
  251. package/dist/generated/themes/Calendar.css.js +1 -1
  252. package/dist/generated/themes/Calendar.css.js.map +1 -1
  253. package/dist/generated/themes/CalendarHeader.css.d.ts +1 -1
  254. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  255. package/dist/generated/themes/CalendarHeader.css.js.map +1 -1
  256. package/dist/generated/themes/CalendarLegend.css.d.ts +1 -1
  257. package/dist/generated/themes/CalendarLegend.css.js +1 -1
  258. package/dist/generated/themes/CalendarLegend.css.js.map +1 -1
  259. package/dist/generated/themes/CalendarLegendItem.css.d.ts +1 -1
  260. package/dist/generated/themes/CalendarLegendItem.css.js +1 -1
  261. package/dist/generated/themes/CalendarLegendItem.css.js.map +1 -1
  262. package/dist/generated/themes/Card.css.d.ts +1 -1
  263. package/dist/generated/themes/Card.css.js +1 -1
  264. package/dist/generated/themes/Card.css.js.map +1 -1
  265. package/dist/generated/themes/CardHeader.css.d.ts +1 -1
  266. package/dist/generated/themes/CardHeader.css.js +1 -1
  267. package/dist/generated/themes/CardHeader.css.js.map +1 -1
  268. package/dist/generated/themes/Carousel.css.d.ts +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.d.ts +1 -1
  272. package/dist/generated/themes/CheckBox.css.js +1 -1
  273. package/dist/generated/themes/CheckBox.css.js.map +1 -1
  274. package/dist/generated/themes/ColorPalette.css.d.ts +1 -1
  275. package/dist/generated/themes/ColorPalette.css.js +1 -1
  276. package/dist/generated/themes/ColorPalette.css.js.map +1 -1
  277. package/dist/generated/themes/ColorPaletteItem.css.d.ts +1 -1
  278. package/dist/generated/themes/ColorPaletteItem.css.js +1 -1
  279. package/dist/generated/themes/ColorPaletteItem.css.js.map +1 -1
  280. package/dist/generated/themes/ColorPalettePopover.css.d.ts +1 -1
  281. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  282. package/dist/generated/themes/ColorPalettePopover.css.js.map +1 -1
  283. package/dist/generated/themes/ColorPicker.css.d.ts +1 -1
  284. package/dist/generated/themes/ColorPicker.css.js +1 -1
  285. package/dist/generated/themes/ColorPicker.css.js.map +1 -1
  286. package/dist/generated/themes/ComboBox.css.d.ts +1 -1
  287. package/dist/generated/themes/ComboBox.css.js +1 -1
  288. package/dist/generated/themes/ComboBox.css.js.map +1 -1
  289. package/dist/generated/themes/ComboBoxItem.css.d.ts +1 -1
  290. package/dist/generated/themes/ComboBoxItem.css.js +1 -1
  291. package/dist/generated/themes/ComboBoxItem.css.js.map +1 -1
  292. package/dist/generated/themes/DatePicker.css.d.ts +1 -1
  293. package/dist/generated/themes/DatePicker.css.js +1 -1
  294. package/dist/generated/themes/DatePicker.css.js.map +1 -1
  295. package/dist/generated/themes/DateTimePickerPopover.css.d.ts +1 -1
  296. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  297. package/dist/generated/themes/DateTimePickerPopover.css.js.map +1 -1
  298. package/dist/generated/themes/DayPicker.css.d.ts +1 -1
  299. package/dist/generated/themes/DayPicker.css.js +1 -1
  300. package/dist/generated/themes/DayPicker.css.js.map +1 -1
  301. package/dist/generated/themes/Dialog.css.d.ts +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.d.ts +1 -1
  305. package/dist/generated/themes/FileUploader.css.js +1 -1
  306. package/dist/generated/themes/FileUploader.css.js.map +1 -1
  307. package/dist/generated/themes/Form.css.d.ts +1 -1
  308. package/dist/generated/themes/Form.css.js +1 -1
  309. package/dist/generated/themes/Form.css.js.map +1 -1
  310. package/dist/generated/themes/FormItem.css.d.ts +1 -1
  311. package/dist/generated/themes/FormItem.css.js +1 -1
  312. package/dist/generated/themes/FormItem.css.js.map +1 -1
  313. package/dist/generated/themes/FormItemSpan.css.d.ts +1 -1
  314. package/dist/generated/themes/FormItemSpan.css.js +1 -1
  315. package/dist/generated/themes/FormItemSpan.css.js.map +1 -1
  316. package/dist/generated/themes/GrowingButton.css.d.ts +1 -1
  317. package/dist/generated/themes/GrowingButton.css.js +1 -1
  318. package/dist/generated/themes/GrowingButton.css.js.map +1 -1
  319. package/dist/generated/themes/Icon.css.d.ts +1 -1
  320. package/dist/generated/themes/Icon.css.js +1 -1
  321. package/dist/generated/themes/Icon.css.js.map +1 -1
  322. package/dist/generated/themes/Input.css.d.ts +1 -1
  323. package/dist/generated/themes/Input.css.js +1 -1
  324. package/dist/generated/themes/Input.css.js.map +1 -1
  325. package/dist/generated/themes/InputIcon.css.d.ts +1 -1
  326. package/dist/generated/themes/InputIcon.css.js +1 -1
  327. package/dist/generated/themes/InputIcon.css.js.map +1 -1
  328. package/dist/generated/themes/InputSharedStyles.css.d.ts +1 -1
  329. package/dist/generated/themes/InputSharedStyles.css.js +1 -1
  330. package/dist/generated/themes/InputSharedStyles.css.js.map +1 -1
  331. package/dist/generated/themes/Link.css.d.ts +1 -1
  332. package/dist/generated/themes/Link.css.js +1 -1
  333. package/dist/generated/themes/Link.css.js.map +1 -1
  334. package/dist/generated/themes/List.css.d.ts +1 -1
  335. package/dist/generated/themes/List.css.js +1 -1
  336. package/dist/generated/themes/List.css.js.map +1 -1
  337. package/dist/generated/themes/ListItem.css.d.ts +1 -1
  338. package/dist/generated/themes/ListItem.css.js +1 -1
  339. package/dist/generated/themes/ListItem.css.js.map +1 -1
  340. package/dist/generated/themes/ListItemBase.css.d.ts +1 -1
  341. package/dist/generated/themes/ListItemBase.css.js +1 -1
  342. package/dist/generated/themes/ListItemBase.css.js.map +1 -1
  343. package/dist/generated/themes/ListItemCustom.css.d.ts +1 -1
  344. package/dist/generated/themes/ListItemCustom.css.js +1 -1
  345. package/dist/generated/themes/ListItemCustom.css.js.map +1 -1
  346. package/dist/generated/themes/ListItemGroup.css.d.ts +1 -1
  347. package/dist/generated/themes/ListItemGroup.css.js +1 -1
  348. package/dist/generated/themes/ListItemGroup.css.js.map +1 -1
  349. package/dist/generated/themes/ListItemGroupHeader.css.d.ts +1 -1
  350. package/dist/generated/themes/ListItemGroupHeader.css.js +1 -1
  351. package/dist/generated/themes/ListItemGroupHeader.css.js.map +1 -1
  352. package/dist/generated/themes/ListItemIcon.css.d.ts +1 -1
  353. package/dist/generated/themes/ListItemIcon.css.js +1 -1
  354. package/dist/generated/themes/ListItemIcon.css.js.map +1 -1
  355. package/dist/generated/themes/Menu.css.d.ts +1 -1
  356. package/dist/generated/themes/Menu.css.js +1 -1
  357. package/dist/generated/themes/Menu.css.js.map +1 -1
  358. package/dist/generated/themes/MenuItem.css.d.ts +1 -1
  359. package/dist/generated/themes/MenuItem.css.js +1 -1
  360. package/dist/generated/themes/MenuItem.css.js.map +1 -1
  361. package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
  362. package/dist/generated/themes/MessageStrip.css.js +1 -1
  363. package/dist/generated/themes/MessageStrip.css.js.map +1 -1
  364. package/dist/generated/themes/MonthPicker.css.d.ts +1 -1
  365. package/dist/generated/themes/MonthPicker.css.js +1 -1
  366. package/dist/generated/themes/MonthPicker.css.js.map +1 -1
  367. package/dist/generated/themes/MultiComboBox.css.d.ts +1 -1
  368. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  369. package/dist/generated/themes/MultiComboBox.css.js.map +1 -1
  370. package/dist/generated/themes/MultiComboBoxItem.css.d.ts +1 -1
  371. package/dist/generated/themes/MultiComboBoxItem.css.js +1 -1
  372. package/dist/generated/themes/MultiComboBoxItem.css.js.map +1 -1
  373. package/dist/generated/themes/MultiComboBoxPopover.css.d.ts +1 -1
  374. package/dist/generated/themes/MultiComboBoxPopover.css.js +1 -1
  375. package/dist/generated/themes/MultiComboBoxPopover.css.js.map +1 -1
  376. package/dist/generated/themes/MultiInput.css.d.ts +1 -1
  377. package/dist/generated/themes/MultiInput.css.js +1 -1
  378. package/dist/generated/themes/MultiInput.css.js.map +1 -1
  379. package/dist/generated/themes/OptionBase.css.d.ts +1 -1
  380. package/dist/generated/themes/OptionBase.css.js +1 -1
  381. package/dist/generated/themes/OptionBase.css.js.map +1 -1
  382. package/dist/generated/themes/Panel.css.d.ts +1 -1
  383. package/dist/generated/themes/Panel.css.js +1 -1
  384. package/dist/generated/themes/Panel.css.js.map +1 -1
  385. package/dist/generated/themes/Popover.css.d.ts +1 -1
  386. package/dist/generated/themes/Popover.css.js +1 -1
  387. package/dist/generated/themes/Popover.css.js.map +1 -1
  388. package/dist/generated/themes/PopupsCommon.css.d.ts +1 -1
  389. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  390. package/dist/generated/themes/PopupsCommon.css.js.map +1 -1
  391. package/dist/generated/themes/ProgressIndicator.css.d.ts +1 -1
  392. package/dist/generated/themes/ProgressIndicator.css.js +1 -1
  393. package/dist/generated/themes/ProgressIndicator.css.js.map +1 -1
  394. package/dist/generated/themes/RadioButton.css.d.ts +1 -1
  395. package/dist/generated/themes/RadioButton.css.js +1 -1
  396. package/dist/generated/themes/RadioButton.css.js.map +1 -1
  397. package/dist/generated/themes/RangeSlider.css.d.ts +1 -1
  398. package/dist/generated/themes/RangeSlider.css.js +1 -1
  399. package/dist/generated/themes/RangeSlider.css.js.map +1 -1
  400. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  401. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  402. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  403. package/dist/generated/themes/ResponsivePopover.css.d.ts +1 -1
  404. package/dist/generated/themes/ResponsivePopover.css.js +1 -1
  405. package/dist/generated/themes/ResponsivePopover.css.js.map +1 -1
  406. package/dist/generated/themes/ResponsivePopoverCommon.css.d.ts +1 -1
  407. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  408. package/dist/generated/themes/ResponsivePopoverCommon.css.js.map +1 -1
  409. package/dist/generated/themes/SegmentedButton.css.d.ts +1 -1
  410. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  411. package/dist/generated/themes/SegmentedButton.css.js.map +1 -1
  412. package/dist/generated/themes/SegmentedButtonItem.css.d.ts +1 -1
  413. package/dist/generated/themes/SegmentedButtonItem.css.js +1 -1
  414. package/dist/generated/themes/SegmentedButtonItem.css.js.map +1 -1
  415. package/dist/generated/themes/Select.css.d.ts +1 -1
  416. package/dist/generated/themes/Select.css.js +1 -1
  417. package/dist/generated/themes/Select.css.js.map +1 -1
  418. package/dist/generated/themes/SliderBase.css.d.ts +1 -1
  419. package/dist/generated/themes/SliderBase.css.js +1 -1
  420. package/dist/generated/themes/SliderBase.css.js.map +1 -1
  421. package/dist/generated/themes/SplitButton.css.d.ts +1 -1
  422. package/dist/generated/themes/SplitButton.css.js +1 -1
  423. package/dist/generated/themes/SplitButton.css.js.map +1 -1
  424. package/dist/generated/themes/StepInput.css.d.ts +1 -1
  425. package/dist/generated/themes/StepInput.css.js +1 -1
  426. package/dist/generated/themes/StepInput.css.js.map +1 -1
  427. package/dist/generated/themes/SuggestionItem.css.d.ts +1 -1
  428. package/dist/generated/themes/SuggestionItem.css.js +1 -1
  429. package/dist/generated/themes/SuggestionItem.css.js.map +1 -1
  430. package/dist/generated/themes/SuggestionItemCustom.css.d.ts +1 -1
  431. package/dist/generated/themes/SuggestionItemCustom.css.js +1 -1
  432. package/dist/generated/themes/SuggestionItemCustom.css.js.map +1 -1
  433. package/dist/generated/themes/Switch.css.d.ts +1 -1
  434. package/dist/generated/themes/Switch.css.js +1 -1
  435. package/dist/generated/themes/Switch.css.js.map +1 -1
  436. package/dist/generated/themes/TabContainer.css.d.ts +1 -1
  437. package/dist/generated/themes/TabContainer.css.js +1 -1
  438. package/dist/generated/themes/TabContainer.css.js.map +1 -1
  439. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  440. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  441. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  442. package/dist/generated/themes/TabInStrip.css.d.ts +1 -1
  443. package/dist/generated/themes/TabInStrip.css.js +1 -1
  444. package/dist/generated/themes/TabInStrip.css.js.map +1 -1
  445. package/dist/generated/themes/TabSemanticIcon.css.d.ts +1 -1
  446. package/dist/generated/themes/TabSemanticIcon.css.js +1 -1
  447. package/dist/generated/themes/TabSemanticIcon.css.js.map +1 -1
  448. package/dist/generated/themes/TabSeparatorInOverflow.css.d.ts +1 -1
  449. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  450. package/dist/generated/themes/TabSeparatorInOverflow.css.js.map +1 -1
  451. package/dist/generated/themes/Table.css.d.ts +1 -1
  452. package/dist/generated/themes/Table.css.js +1 -1
  453. package/dist/generated/themes/Table.css.js.map +1 -1
  454. package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
  455. package/dist/generated/themes/TableCellBase.css.js +1 -1
  456. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  457. package/dist/generated/themes/TableHeaderRow.css.d.ts +1 -1
  458. package/dist/generated/themes/TableHeaderRow.css.js +1 -1
  459. package/dist/generated/themes/TableHeaderRow.css.js.map +1 -1
  460. package/dist/generated/themes/TableRow.css.d.ts +1 -1
  461. package/dist/generated/themes/TableRow.css.js +1 -1
  462. package/dist/generated/themes/TableRow.css.js.map +1 -1
  463. package/dist/generated/themes/TableRowActionBase.css.d.ts +1 -1
  464. package/dist/generated/themes/TableRowActionBase.css.js +1 -1
  465. package/dist/generated/themes/TableRowActionBase.css.js.map +1 -1
  466. package/dist/generated/themes/TableRowBase.css.d.ts +1 -1
  467. package/dist/generated/themes/TableRowBase.css.js +1 -1
  468. package/dist/generated/themes/TableRowBase.css.js.map +1 -1
  469. package/dist/generated/themes/Tag.css.d.ts +1 -1
  470. package/dist/generated/themes/Tag.css.js +1 -1
  471. package/dist/generated/themes/Tag.css.js.map +1 -1
  472. package/dist/generated/themes/Text.css.d.ts +1 -1
  473. package/dist/generated/themes/Text.css.js +1 -1
  474. package/dist/generated/themes/Text.css.js.map +1 -1
  475. package/dist/generated/themes/TextArea.css.d.ts +1 -1
  476. package/dist/generated/themes/TextArea.css.js +1 -1
  477. package/dist/generated/themes/TextArea.css.js.map +1 -1
  478. package/dist/generated/themes/TimePicker.css.d.ts +1 -1
  479. package/dist/generated/themes/TimePicker.css.js +1 -1
  480. package/dist/generated/themes/TimePicker.css.js.map +1 -1
  481. package/dist/generated/themes/Toast.css.d.ts +1 -1
  482. package/dist/generated/themes/Toast.css.js +1 -1
  483. package/dist/generated/themes/Toast.css.js.map +1 -1
  484. package/dist/generated/themes/ToggleButton.css.d.ts +1 -1
  485. package/dist/generated/themes/ToggleButton.css.js +1 -1
  486. package/dist/generated/themes/ToggleButton.css.js.map +1 -1
  487. package/dist/generated/themes/Token.css.d.ts +1 -1
  488. package/dist/generated/themes/Token.css.js +1 -1
  489. package/dist/generated/themes/Token.css.js.map +1 -1
  490. package/dist/generated/themes/Tokenizer.css.d.ts +1 -1
  491. package/dist/generated/themes/Tokenizer.css.js +1 -1
  492. package/dist/generated/themes/Tokenizer.css.js.map +1 -1
  493. package/dist/generated/themes/TokenizerPopover.css.d.ts +1 -1
  494. package/dist/generated/themes/TokenizerPopover.css.js +1 -1
  495. package/dist/generated/themes/TokenizerPopover.css.js.map +1 -1
  496. package/dist/generated/themes/Toolbar.css.d.ts +1 -1
  497. package/dist/generated/themes/Toolbar.css.js +1 -1
  498. package/dist/generated/themes/Toolbar.css.js.map +1 -1
  499. package/dist/generated/themes/ToolbarPopover.css.d.ts +1 -1
  500. package/dist/generated/themes/ToolbarPopover.css.js +1 -1
  501. package/dist/generated/themes/ToolbarPopover.css.js.map +1 -1
  502. package/dist/generated/themes/TreeItem.css.d.ts +1 -1
  503. package/dist/generated/themes/TreeItem.css.js +1 -1
  504. package/dist/generated/themes/TreeItem.css.js.map +1 -1
  505. package/dist/generated/themes/ValueStateMessage.css.d.ts +1 -1
  506. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  507. package/dist/generated/themes/ValueStateMessage.css.js.map +1 -1
  508. package/dist/generated/themes/YearPicker.css.d.ts +1 -1
  509. package/dist/generated/themes/YearPicker.css.js +1 -1
  510. package/dist/generated/themes/YearPicker.css.js.map +1 -1
  511. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.d.ts +1 -1
  512. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  513. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js.map +1 -1
  514. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.d.ts +1 -1
  515. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  516. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js.map +1 -1
  517. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.d.ts +1 -1
  518. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  519. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js.map +1 -1
  520. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.d.ts +1 -1
  521. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  522. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js.map +1 -1
  523. package/dist/generated/themes/sap_horizon/parameters-bundle.css.d.ts +1 -1
  524. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  525. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js.map +1 -1
  526. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.d.ts +1 -1
  527. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  528. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js.map +1 -1
  529. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.d.ts +1 -1
  530. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  531. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js.map +1 -1
  532. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.d.ts +1 -1
  533. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  534. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js.map +1 -1
  535. package/dist/types/SearchPopupMode.d.ts +22 -0
  536. package/dist/types/SearchPopupMode.js +24 -0
  537. package/dist/types/SearchPopupMode.js.map +1 -0
  538. package/dist/vscode.html-custom-data.json +26 -1
  539. package/dist/web-types.json +55 -5
  540. package/package.json +9 -9
  541. package/src/InputTemplate.tsx +4 -0
  542. package/src/ListItemTemplate.tsx +1 -2
  543. package/src/MenuItemTemplate.tsx +3 -8
  544. package/src/SelectTemplate.tsx +11 -3
  545. package/src/TableHeaderCellActionBaseTemplate.tsx +2 -1
  546. package/src/TableHeaderCellTemplate.tsx +1 -2
  547. package/src/TableHeaderRowTemplate.tsx +1 -1
  548. package/src/TableRowActionBaseTemplate.tsx +4 -2
  549. package/src/TableRowTemplate.tsx +4 -3
  550. package/src/TokenTemplate.tsx +1 -0
  551. package/src/i18n/messagebundle.properties +4 -1
  552. package/src/i18n/messagebundle_en_US_sappsd.properties +2 -0
  553. package/src/i18n/messagebundle_en_US_saprigi.properties +2 -0
  554. package/src/i18n/messagebundle_en_US_saptrc.properties +2 -0
  555. package/src/themes/Select.css +14 -0
  556. package/src/themes/TabInStrip.css +48 -28
  557. package/src/themes/TabSemanticIcon.css +3 -3
  558. package/src/themes/base/TabContainer-parameters.css +2 -22
  559. package/src/themes/sap_fiori_3/TabContainer-parameters.css +0 -3
  560. package/src/themes/sap_fiori_3_dark/TabContainer-parameters.css +0 -3
  561. package/src/themes/sap_fiori_3_hcb/TabContainer-parameters.css +0 -20
  562. package/src/themes/sap_fiori_3_hcw/TabContainer-parameters.css +0 -20
  563. package/src/themes/sap_horizon/TabContainer-parameters.css +4 -9
  564. package/src/themes/sap_horizon/Tag-parameters.css +32 -0
  565. package/src/themes/sap_horizon_dark/TabContainer-parameters.css +4 -9
  566. package/src/themes/sap_horizon_dark/Tag-parameters.css +32 -0
  567. package/src/themes/sap_horizon_hcb/TabContainer-parameters.css +4 -23
  568. package/src/themes/sap_horizon_hcb/Tag-parameters.css +20 -20
  569. package/src/themes/sap_horizon_hcw/TabContainer-parameters.css +4 -23
  570. package/src/themes/sap_horizon_hcw/Tag-parameters.css +20 -20
@@ -20,6 +20,42 @@ describe("Security", () => {
20
20
  });
21
21
  });
22
22
 
23
+ describe("General interaction", () => {
24
+ it("should be able to delete long tokens", () => {
25
+ cy.mount(
26
+ <MultiComboBox noValidation={true}>
27
+ <MultiComboBoxItem text="This is a token with ridicilously long long long text which should be deletable when the 'x' icon is clicked"></MultiComboBoxItem>
28
+ </MultiComboBox>
29
+ );
30
+
31
+ cy.get("[ui5-multi-combobox]")
32
+ .shadow()
33
+ .find("input")
34
+ .type('t');
35
+
36
+ cy.get("[ui5-multi-combobox]")
37
+ .shadow()
38
+ .find("input")
39
+ .realPress('Enter');
40
+
41
+ cy.get("[ui5-multi-combobox]").shadow().find("[ui5-tokenizer]").then($tokenizer => {
42
+ $tokenizer[0].addEventListener("ui5-token-delete", cy.stub().as("tokenDelete"))
43
+ });
44
+
45
+ cy.get("[ui5-multi-combobox]")
46
+ .shadow()
47
+ .find("input")
48
+ .realClick();
49
+
50
+ cy.get("[ui5-multi-combobox]").shadow()
51
+ .find("[ui5-tokenizer]")
52
+ .find("[ui5-token]").shadow()
53
+ .find("[ui5-icon]").realClick();
54
+
55
+ cy.get("@tokenDelete").should("have.been.called");
56
+ });
57
+ });
58
+
23
59
  describe("Value State", () => {
24
60
  it("should be able to change value states upon typing", () => {
25
61
  cy.mount(
@@ -38,7 +38,10 @@ describe("MultiInput Web Component", () => {
38
38
  cy.get("#suggestion-token")
39
39
  .shadow()
40
40
  .find("input")
41
- .type("ad{enter}");
41
+ .realClick();
42
+
43
+ cy.realType("ad");
44
+ cy.realPress("Enter");
42
45
 
43
46
  cy.get("ui5-multi-input")
44
47
  .find("ui5-token")
@@ -1,4 +1,5 @@
1
1
  import RatingIndicator from "../../src/RatingIndicator.js";
2
+ import { RATING_INDICATOR_ARIA_DESCRIPTION } from "../../src/generated/i18n/i18n-defaults.js";
2
3
 
3
4
  describe("RatingIndicator", () => {
4
5
  describe("Half Icon appearance", () => {
@@ -99,5 +100,180 @@ describe("RatingIndicator", () => {
99
100
 
100
101
  cy.focused().should("contain", "Before");
101
102
  });
103
+
104
+ it("Tests ACC attrs", () => {
105
+ const TOOLTIP = "Rating";
106
+ const ARIA_LABEL = "Hello World";
107
+
108
+ cy.mount(
109
+ <>
110
+ <RatingIndicator id="rating-indicator1" accessibleName={ARIA_LABEL}></RatingIndicator>
111
+ <RatingIndicator id="rating-indicator-readonly" value={1} max={3} readonly></RatingIndicator>
112
+ </>
113
+ );
114
+
115
+ cy.get("#rating-indicator1").as("ri");
116
+
117
+ cy.get("@ri")
118
+ .shadow()
119
+ .find(".ui5-rating-indicator-root")
120
+ .should("have.attr", "aria-label", ARIA_LABEL)
121
+ .and("have.attr", "title", TOOLTIP)
122
+ .and("not.have.attr", "aria-readonly");
123
+
124
+ cy.get("#rating-indicator-readonly")
125
+ .shadow()
126
+ .find(".ui5-rating-indicator-root")
127
+ .should("have.attr", "aria-readonly", "true");
128
+
129
+ cy.get("@ri")
130
+ .shadow()
131
+ .find(".ui5-rating-indicator-root")
132
+ .should("have.attr", "aria-valuetext", "0 of 5");
133
+
134
+ cy.get("@ri")
135
+ .shadow()
136
+ .find(".ui5-rating-indicator-item")
137
+ .eq(2)
138
+ .realClick();
139
+
140
+ cy.get("@ri")
141
+ .shadow()
142
+ .find(".ui5-rating-indicator-root")
143
+ .should("have.attr", "aria-valuetext", "3 of 5");
144
+
145
+ cy.get("@ri")
146
+ .shadow()
147
+ .find(".ui5-rating-indicator-list")
148
+ .should("have.attr", "aria-hidden", "true");
149
+ });
150
+
151
+ it("Tests ACC attrs - tooltip property", () => {
152
+ const TOOLTIP = "Test";
153
+
154
+ cy.mount(<RatingIndicator id="rating-indicator-title" tooltip={TOOLTIP}></RatingIndicator>);
155
+
156
+ cy.get("#rating-indicator-title")
157
+ .shadow()
158
+ .find(".ui5-rating-indicator-root")
159
+ .should("have.attr", "title", TOOLTIP);
160
+ });
161
+
162
+ it("Tests ACC attrs - required property add aria-description", () => {
163
+ cy.mount(<RatingIndicator id="rating-indicator-required" required></RatingIndicator>);
164
+
165
+ cy.get("#rating-indicator-required")
166
+ .shadow()
167
+ .find(".ui5-rating-indicator-root")
168
+ .should("have.attr", "aria-description", RATING_INDICATOR_ARIA_DESCRIPTION.defaultText);
169
+ });
170
+
171
+ it("Tests ACC attrs - accessible-name-ref", () => {
172
+ const ACCESSIBLE_NAME_REF_TEXT = "Some ACC label";
173
+ cy.mount(
174
+ <>
175
+ <label id="label-acc-name-ref">{ACCESSIBLE_NAME_REF_TEXT}</label>
176
+ <RatingIndicator id="rating-indicator-acc-name-ref" accessible-name-ref="label-acc-name-ref"></RatingIndicator>
177
+ </>
178
+ );
179
+
180
+ cy.get("#rating-indicator-acc-name-ref")
181
+ .shadow()
182
+ .find(".ui5-rating-indicator-root")
183
+ .should("have.attr", "aria-label", ACCESSIBLE_NAME_REF_TEXT);
184
+ });
185
+ });
186
+
187
+ describe("Rating Indicator general interaction", () => {
188
+ it("Tests basic rating indicator rendering", () => {
189
+ cy.mount(<RatingIndicator id="rating-indicator1"></RatingIndicator>);
190
+
191
+ cy.get("#rating-indicator1")
192
+ .shadow()
193
+ .find(".ui5-rating-indicator-item")
194
+ .should("have.length", 5);
195
+ });
196
+
197
+ it("Tests max property", () => {
198
+ cy.mount(<RatingIndicator id="rating-indicator2" value={6} max={10}></RatingIndicator>);
199
+
200
+ cy.get("#rating-indicator2")
201
+ .shadow()
202
+ .find(".ui5-rating-indicator-item")
203
+ .should("have.length", 10);
204
+ });
205
+
206
+ it("Tests clicking on star", () => {
207
+ cy.mount(<RatingIndicator id="rating-indicator3" value={6} max={10}></RatingIndicator>);
208
+
209
+ cy.get("#rating-indicator3").as("ri");
210
+
211
+ cy.get("@ri")
212
+ .shadow()
213
+ .find(".ui5-rating-indicator-item")
214
+ .eq(2)
215
+ .realClick();
216
+
217
+ cy.get("@ri")
218
+ .should("have.attr", "value", "3");
219
+ });
220
+
221
+ it("Tests change event", () => {
222
+ cy.mount(
223
+ <RatingIndicator id="rating-indicator4" value={6} max={8}></RatingIndicator>
224
+ );
225
+
226
+ cy.get("#rating-indicator4").as("ri");
227
+
228
+ cy.get("@ri")
229
+ .then(ratingIndicator => {
230
+ ratingIndicator.get(0).addEventListener("ui5-change", cy.stub().as("changeEvent"));
231
+ });
232
+
233
+ cy.get("@ri")
234
+ .shadow()
235
+ .find(".ui5-rating-indicator-item")
236
+ .eq(2)
237
+ .realClick();
238
+
239
+ cy.get("@ri")
240
+ .should("have.attr", "value", "3");
241
+
242
+ cy.get("@ri").realPress("Enter");
243
+ cy.get("@ri").should("have.attr", "value", "4");
244
+
245
+ cy.get("@ri").realPress("Space");
246
+ cy.get("@ri").should("have.attr", "value", "5");
247
+
248
+ cy.get("@ri").realPress("ArrowUp");
249
+ cy.get("@ri").realPress("ArrowRight");
250
+ cy.get("@ri").should("have.attr", "value", "7");
251
+
252
+ cy.get("@ri").realPress("ArrowLeft");
253
+ cy.get("@ri").realPress("ArrowLeft");
254
+ cy.get("@ri").realPress("ArrowDown");
255
+ cy.get("@ri").realPress("ArrowDown");
256
+ cy.get("@ri").realPress("ArrowDown");
257
+ cy.get("@ri").realPress("ArrowDown");
258
+ cy.get("@ri").realPress("ArrowDown");
259
+ cy.get("@ri").should("have.attr", "value", "0");
260
+
261
+ cy.get("@ri").realPress("End");
262
+ cy.get("@ri").should("have.attr", "value", "8");
263
+
264
+ cy.get("@ri").realPress("Home");
265
+ cy.get("@ri").should("have.attr", "value", "0");
266
+
267
+ cy.get("@ri").realPress("4");
268
+ cy.get("@ri").should("have.attr", "value", "4");
269
+
270
+ cy.get("@ri").realPress("9");
271
+ cy.get("@ri").should("have.attr", "value", "8");
272
+
273
+ cy.get("@ri").realPress("Enter");
274
+ cy.get("@ri").should("have.attr", "value", "0");
275
+
276
+ cy.get("@changeEvent").should("have.callCount", 17);
277
+ });
102
278
  });
103
279
  });
@@ -0,0 +1,215 @@
1
+ import SegmentedButton from "../../src/SegmentedButton.js";
2
+ import SegmentedButtonItem from "../../src/SegmentedButtonItem.js";
3
+
4
+ describe("SegmentedButton general interaction tests", () => {
5
+ it("should have first item selected by default", () => {
6
+ cy.mount(
7
+ <SegmentedButton>
8
+ <SegmentedButtonItem>First</SegmentedButtonItem>
9
+ <SegmentedButtonItem>Second</SegmentedButtonItem>
10
+ </SegmentedButton>
11
+ );
12
+
13
+ cy.get("[ui5-segmented-button]")
14
+ .as("segmentedButton");
15
+
16
+ cy.get<SegmentedButton>("@segmentedButton")
17
+ .find("[ui5-segmented-button-item]")
18
+ .first()
19
+ .should("have.attr", "selected");
20
+ });
21
+
22
+ it("should select second item with enter", () => {
23
+ cy.mount(
24
+ <SegmentedButton>
25
+ <SegmentedButtonItem>First</SegmentedButtonItem>
26
+ <SegmentedButtonItem>Second</SegmentedButtonItem>
27
+ </SegmentedButton>
28
+ );
29
+
30
+ cy.get("[ui5-segmented-button]")
31
+ .as("segmentedButton");
32
+
33
+ cy.get<SegmentedButton>("@segmentedButton")
34
+ .find("[ui5-segmented-button-item]")
35
+ .as("items");
36
+
37
+ cy.get<SegmentedButtonItem>("@items")
38
+ .ui5SegmentedButtonFocusFirstItem();
39
+
40
+ cy.realPress("ArrowRight");
41
+
42
+ cy.get<SegmentedButtonItem>("@items")
43
+ .eq(1)
44
+ .as("secondItem");
45
+
46
+ cy.get<SegmentedButtonItem>("@secondItem")
47
+ .should("be.focused");
48
+
49
+ cy.get<SegmentedButtonItem>("@secondItem")
50
+ .should("not.have.attr", "selected");
51
+
52
+ cy.realPress("Enter");
53
+
54
+ cy.get<SegmentedButtonItem>("@secondItem")
55
+ .should("have.attr", "selected");
56
+ });
57
+
58
+ it("should select second item with space", () => {
59
+ cy.mount(
60
+ <SegmentedButton>
61
+ <SegmentedButtonItem>First</SegmentedButtonItem>
62
+ <SegmentedButtonItem>Second</SegmentedButtonItem>
63
+ </SegmentedButton>
64
+ );
65
+
66
+ cy.get("[ui5-segmented-button]")
67
+ .as("segmentedButton");
68
+
69
+ cy.get<SegmentedButton>("@segmentedButton")
70
+ .find("[ui5-segmented-button-item]")
71
+ .as("items");
72
+
73
+ cy.get<SegmentedButtonItem>("@items")
74
+ .ui5SegmentedButtonFocusFirstItem();
75
+
76
+ cy.realPress("ArrowRight");
77
+
78
+ cy.get<SegmentedButtonItem>("@items")
79
+ .eq(1)
80
+ .as("secondItem");
81
+
82
+ cy.get<SegmentedButtonItem>("@secondItem")
83
+ .should("be.focused");
84
+
85
+ cy.get<SegmentedButtonItem>("@secondItem")
86
+ .should("not.have.attr", "selected");
87
+
88
+ cy.realPress("Space");
89
+
90
+ cy.get<SegmentedButtonItem>("@secondItem")
91
+ .should("have.attr", "selected");
92
+ });
93
+
94
+ it("should select last item with mouse", () => {
95
+ cy.mount(
96
+ <SegmentedButton>
97
+ <SegmentedButtonItem>First</SegmentedButtonItem>
98
+ <SegmentedButtonItem>Second</SegmentedButtonItem>
99
+ <SegmentedButtonItem>Third</SegmentedButtonItem>
100
+ </SegmentedButton>
101
+ );
102
+
103
+ cy.get("[ui5-segmented-button]")
104
+ .as("segmentedButton");
105
+
106
+ cy.get<SegmentedButton>("@segmentedButton")
107
+ .find("[ui5-segmented-button-item]")
108
+ .as("items");
109
+
110
+ cy.get<SegmentedButtonItem>("@items")
111
+ .last()
112
+ .as("lastItem");
113
+
114
+ cy.get<SegmentedButtonItem>("@lastItem")
115
+ .ui5SegmentedButtonItemToggleSelect();
116
+ });
117
+
118
+ it("should be able to select multple items in multiple selection mode", () => {
119
+ cy.mount(
120
+ <SegmentedButton selectionMode="Multiple">
121
+ <SegmentedButtonItem selected={true}>First</SegmentedButtonItem>
122
+ <SegmentedButtonItem>Second</SegmentedButtonItem>
123
+ </SegmentedButton>
124
+ );
125
+
126
+ cy.get("[ui5-segmented-button]")
127
+ .as("segmentedButton");
128
+
129
+ cy.get<SegmentedButton>("@segmentedButton")
130
+ .find("[ui5-segmented-button-item]")
131
+ .as("items");
132
+
133
+ cy.get<SegmentedButtonItem>("@items")
134
+ .first()
135
+ .as("firstItem");
136
+
137
+ cy.get<SegmentedButtonItem>("@items")
138
+ .last()
139
+ .as("lastItem");
140
+
141
+ // Select second item
142
+ cy.get<SegmentedButtonItem>("@lastItem")
143
+ .ui5SegmentedButtonItemToggleSelect();
144
+
145
+ // First item should still be selected
146
+ cy.get<SegmentedButtonItem>("@firstItem")
147
+ .should("have.attr", "selected");
148
+ });
149
+
150
+ it("should be able to deselect items in multiple selection mode", () => {
151
+ cy.mount(
152
+ <SegmentedButton selectionMode="Multiple">
153
+ <SegmentedButtonItem selected={true}>First</SegmentedButtonItem>
154
+ <SegmentedButtonItem selected={true}>Second</SegmentedButtonItem>
155
+ </SegmentedButton>
156
+ );
157
+
158
+ cy.get("[ui5-segmented-button]")
159
+ .as("segmentedButton");
160
+
161
+ cy.get<SegmentedButton>("@segmentedButton")
162
+ .find("[ui5-segmented-button-item]")
163
+ .as("items");
164
+
165
+ cy.get<SegmentedButtonItem>("@items")
166
+ .first()
167
+ .as("firstItem");
168
+
169
+ cy.get<SegmentedButtonItem>("@items")
170
+ .last()
171
+ .as("lastItem");
172
+
173
+ const deselect = true;
174
+ // Deselect first item
175
+ cy.get<SegmentedButtonItem>("@firstItem")
176
+ .ui5SegmentedButtonItemToggleSelect(deselect);
177
+
178
+ // Second item is still selected
179
+ cy.get<SegmentedButtonItem>("@lastItem")
180
+ .should("have.attr", "selected");
181
+ });
182
+ });
183
+
184
+ describe("Accessibility", () => {
185
+ it("should have correct aria labels", () => {
186
+ cy.mount(
187
+ <>
188
+ <SegmentedButton selectionMode="Multiple">
189
+ <SegmentedButtonItem accessibleName="accessible text">First</SegmentedButtonItem>
190
+ <SegmentedButtonItem accessibleNameRef="reference">Second</SegmentedButtonItem>
191
+ </SegmentedButton>
192
+ <span id="reference">accessible ref text</span>
193
+ </>
194
+ );
195
+
196
+ cy.get("[ui5-segmented-button]")
197
+ .as("segmentedButton");
198
+
199
+ cy.get<SegmentedButton>("@segmentedButton")
200
+ .find("[ui5-segmented-button-item]")
201
+ .as("items");
202
+
203
+ cy.get<SegmentedButtonItem>("@items")
204
+ .first()
205
+ .shadow()
206
+ .find("li")
207
+ .should("have.attr", "aria-label", "accessible text");
208
+
209
+ cy.get<SegmentedButtonItem>("@items")
210
+ .last()
211
+ .shadow()
212
+ .find("li")
213
+ .should("have.attr", "aria-label", "accessible ref text");
214
+ });
215
+ });
@@ -1,6 +1,7 @@
1
1
  import Option from "../../src/Option.js";
2
2
  import OptionCustom from "../../src/OptionCustom.js";
3
3
  import Select from "../../src/Select.js";
4
+ import download from "@ui5/webcomponents-icons/dist/download.js";
4
5
 
5
6
  describe("Select - Accessibility", () => {
6
7
  it("tests options tooltip is set displayed", () => {
@@ -69,3 +70,20 @@ describe("Select - Popover", () => {
69
70
  .should("have.text", "Custom message");
70
71
  });
71
72
  });
73
+
74
+ describe("Select - Properties", () => {
75
+ it("Icon only is setting properly the required icon", () => {
76
+ cy.mount(
77
+ <Select icon={download}>
78
+ <Option selected>Phone</Option>
79
+ <Option>Tablet</Option>
80
+ <Option>Desktop</Option>
81
+ </Select>
82
+ );
83
+
84
+ cy.get("[ui5-select]")
85
+ .shadow()
86
+ .find("[ui5-icon]")
87
+ .should("have.attr", "name", "download");
88
+ });
89
+ });
@@ -780,6 +780,7 @@ describe("Table - HeaderCell", () => {
780
780
  cy.get("@headerCell1").contains("Column A");
781
781
  cy.get("@headerCell2").should("have.attr", "aria-sort", "ascending");
782
782
  cy.get("@headerCell2").find("ui5-table-header-cell-action-ai").as("actionB");
783
+ cy.get("@actionB").should("not.have.attr", "_popin");
783
784
  cy.get("@actionB").shadow().find("ui5-button").as("actionBbutton");
784
785
  cy.get("@actionBbutton").should("have.attr", "icon", "ai");
785
786
  cy.get("@actionBbutton").should("have.attr", "tooltip", "Generated by AI");
@@ -805,6 +806,7 @@ describe("Table - HeaderCell", () => {
805
806
  cy.get("@row1").find("ui5-table-cell[_popin]").as("row1popins");
806
807
  cy.get("@row1popins").first().as("row1popinB");
807
808
  cy.get("@row1popinB").shadow().find("ui5-table-header-cell-action-ai").as("row1popinBaction");
809
+ cy.get("@row1popinBaction").should("have.attr", "_popin");
808
810
  cy.get("@row1popinBaction").shadow().find("ui5-button").as("row1popinBbutton");
809
811
  cy.get("@row1popinBbutton").should("have.attr", "icon", "ai");
810
812
  cy.get("@row1popinBbutton").should("have.attr", "design", "Transparent");
@@ -95,4 +95,26 @@ describe("Tag", () => {
95
95
  cy.get("#tagWithWrappingNone").shadow().find(".ui5-tag-root").should("have.css", "white-space", "nowrap");
96
96
  });
97
97
  });
98
+
99
+ describe("Events", () => {
100
+ it("tests interactive tag click event", () => {
101
+ cy.mount(
102
+ <Tag interactive>Tag</Tag>
103
+ );
104
+
105
+ cy.get("[ui5-tag]")
106
+ .as("tag");
107
+
108
+ cy.get("@tag")
109
+ .then(tag => {
110
+ tag.get(0).addEventListener("click", cy.stub().as("clicked"));
111
+ });
112
+
113
+ cy.get("@tag")
114
+ .realClick();
115
+
116
+ cy.get("@clicked")
117
+ .should("have.been.calledOnce");
118
+ });
119
+ });
98
120
  });
@@ -242,6 +242,147 @@ describe("AccessibilityTextsHelper", () => {
242
242
  .should("not.have.attr", "aria-label");
243
243
  });
244
244
 
245
+ it("Input accessibleDescriptionRef Tests", () => {
246
+ cy.mount(
247
+ <>
248
+ <Label id="lblDesc1">FirstDesc</Label>
249
+ <Label id="lblDesc2">SecondDesc</Label>
250
+ <Label id="lblDesc3">ThirdDesc</Label>
251
+ <Input id="inputDescRef" accessibleDescriptionRef="lblDesc1 lblDesc3"></Input>
252
+ </>
253
+ );
254
+
255
+ // assert
256
+ cy.get("#inputDescRef")
257
+ .shadow()
258
+ .find("#accessibleDescription")
259
+ .should("have.text", "FirstDesc ThirdDesc");
260
+
261
+ // act - update text of referenced label
262
+ cy.get("#lblDesc1")
263
+ .then($el => {
264
+ $el.get(0).innerHTML = "First Label Desc";
265
+ });
266
+
267
+ // assert
268
+ cy.get("#inputDescRef")
269
+ .shadow()
270
+ .find("#accessibleDescription")
271
+ .should("have.text", "First Label Desc ThirdDesc");
272
+
273
+ // act - update accessible-description-ref
274
+ cy.get("#inputDescRef")
275
+ .invoke("attr", "accessible-description-ref", "lblDesc2");
276
+
277
+ // assert
278
+ cy.get("#inputDescRef")
279
+ .shadow()
280
+ .find("#accessibleDescription")
281
+ .should("have.text", "SecondDesc");
282
+
283
+ // act - update accessible-description-ref
284
+ cy.get("#inputDescRef")
285
+ .invoke("attr", "accessible-description-ref", "lblDesc3");
286
+
287
+ // assert
288
+ cy.get("#inputDescRef")
289
+ .shadow()
290
+ .find("#accessibleDescription")
291
+ .should("have.text", "ThirdDesc");
292
+
293
+ // act - remove accessible-description-ref
294
+ cy.get("#inputDescRef")
295
+ .invoke("removeAttr", "accessible-description-ref");
296
+
297
+ // assert
298
+ cy.get("#inputDescRef")
299
+ .shadow()
300
+ .find("#accessibleDescription")
301
+ .should("not.have.text", "");
302
+ });
303
+
304
+ it("Input accessibleDescription Tests", () => {
305
+ cy.mount(
306
+ <>
307
+ <Input id="inputDesc" accessibleDescription="Some description added by accessibleDescription"></Input>
308
+ </>
309
+ );
310
+ // assert
311
+ cy.get("#inputDesc")
312
+ .shadow()
313
+ .find("#accessibleDescription")
314
+ .should("have.text", "Some description added by accessibleDescription");
315
+
316
+ // act - update accessible-description
317
+ cy.get("#inputDesc")
318
+ .invoke("attr", "accessible-description", "Some description added by accessibleDescription");
319
+
320
+ // assert
321
+ cy.get("#inputDesc")
322
+ .shadow()
323
+ .find("#accessibleDescription")
324
+ .should("have.text", "Some description added by accessibleDescription");
325
+
326
+ // act - remove accessible-description
327
+ cy.get("#inputDesc")
328
+ .invoke("removeAttr", "accessible-description");
329
+
330
+ // assert
331
+ cy.get("#inputDesc")
332
+ .shadow()
333
+ .find("#accessibleDescription")
334
+ .should("not.have.text", "");
335
+ });
336
+
337
+ // both
338
+ it("Input accessibleDescriptionRef and accessibleDescription Tests", () => {
339
+ cy.mount(
340
+ <>
341
+ <Label id="lblDesc1">FirstDesc</Label>
342
+ <Label id="lblDesc2">SecondDesc</Label>
343
+ <Input id="inputDesc" accessibleDescriptionRef="lblDesc1" accessibleDescription="Some description added by accessibleDescription"></Input>
344
+ </>
345
+ );
346
+
347
+ // assert - accessibleDescription is used
348
+ cy.get("#inputDesc")
349
+ .shadow()
350
+ .find("#accessibleDescription")
351
+ .should("have.text", "FirstDesc");
352
+
353
+ // act - update text of referenced label
354
+ cy.get("#lblDesc1")
355
+ .then($el => {
356
+ $el.get(0).innerHTML = "First Label Desc";
357
+ });
358
+
359
+ // assert - accessibleDescriptionRef is used
360
+ cy.get("#inputDesc")
361
+ .shadow()
362
+ .find("#accessibleDescription")
363
+ .should("have.text", "First Label Desc");
364
+
365
+ // act - remove accessible-description-ref
366
+ cy.get("#inputDesc")
367
+ .invoke("removeAttr", "accessible-description-ref");
368
+
369
+ // assert - accessibleDescription is used
370
+ cy.get("#inputDesc")
371
+ .shadow()
372
+ .find("#accessibleDescription")
373
+ .should("have.text", "Some description added by accessibleDescription");
374
+
375
+ // act - remove accessible-description
376
+ cy.get("#inputDesc")
377
+ .invoke("removeAttr", "accessible-description");
378
+
379
+ // assert - accessibleDescriptionRef is used
380
+ cy.get("#inputDesc")
381
+ .shadow()
382
+ .find("#accessibleDescription")
383
+ .should("not.have.text", "");
384
+ });
385
+
245
386
  it("Tests generic html elements with for attribute", () => {
246
387
  cy.mount(
247
388
  <>