@ui5/webcomponents 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/Avatar.js +29 -1
  3. package/dist/AvatarGroup.js +20 -2
  4. package/dist/BreadcrumbsItem.js +1 -1
  5. package/dist/Button.js +3 -3
  6. package/dist/CardHeader.js +1 -0
  7. package/dist/Carousel.js +9 -0
  8. package/dist/CheckBox.js +1 -1
  9. package/dist/DatePicker.js +8 -0
  10. package/dist/DateRangePicker.js +8 -2
  11. package/dist/DateTimePicker.js +1 -1
  12. package/dist/Dialog.js +41 -1
  13. package/dist/Icon.js +8 -8
  14. package/dist/Input.js +13 -8
  15. package/dist/Label.js +1 -3
  16. package/dist/Link.js +3 -1
  17. package/dist/List.js +12 -0
  18. package/dist/Menu.js +4 -4
  19. package/dist/MenuItem.js +20 -4
  20. package/dist/MessageStrip.js +1 -1
  21. package/dist/MultiComboBox.js +18 -4
  22. package/dist/MultiInput.js +9 -2
  23. package/dist/Option.js +1 -1
  24. package/dist/Panel.js +13 -1
  25. package/dist/Popover.js +5 -4
  26. package/dist/Popup.js +13 -2
  27. package/dist/RangeSlider.js +1 -1
  28. package/dist/Select.js +0 -2
  29. package/dist/Slider.js +1 -1
  30. package/dist/SliderBase.js +3 -3
  31. package/dist/SplitButton.js +1 -1
  32. package/dist/StandardListItem.js +1 -1
  33. package/dist/SuggestionItem.js +1 -1
  34. package/dist/Tab.js +17 -10
  35. package/dist/TabContainer.js +154 -140
  36. package/dist/TabSeparator.js +8 -1
  37. package/dist/TextArea.js +7 -2
  38. package/dist/TimePickerBase.js +8 -0
  39. package/dist/TimeSelection.js +1 -2
  40. package/dist/Tokenizer.js +74 -8
  41. package/dist/Tree.js +4 -0
  42. package/dist/TreeItem.js +1 -1
  43. package/dist/api.json +1 -1
  44. package/dist/assets/SAP-icons-business-suite.7cff1fd8.js +1 -0
  45. package/dist/assets/SAP-icons.7f154911.js +1 -0
  46. package/dist/assets/SAP-icons.e76c8241.js +1 -0
  47. package/dist/assets/{messagebundle_ar.5dc913fc.js → messagebundle_ar.f3e988df.js} +1 -1
  48. package/dist/assets/messagebundle_bg.a3f6fdd8.js +1 -0
  49. package/dist/assets/messagebundle_ca.5e72bf09.js +1 -0
  50. package/dist/assets/messagebundle_cs.5720e069.js +1 -0
  51. package/dist/assets/messagebundle_cy.51ed6118.js +1 -0
  52. package/dist/assets/messagebundle_da.d83f1df6.js +1 -0
  53. package/dist/assets/messagebundle_de.00b8fac3.js +1 -0
  54. package/dist/assets/messagebundle_el.54337d1a.js +1 -0
  55. package/dist/assets/{messagebundle_en_US_saprigi.58918baa.js → messagebundle_en_US_saprigi.9e3ec6ce.js} +1 -1
  56. package/dist/assets/messagebundle_es.6edd9aac.js +1 -0
  57. package/dist/assets/messagebundle_es_MX.b9a235b1.js +1 -0
  58. package/dist/assets/messagebundle_et.2f95fbc0.js +1 -0
  59. package/dist/assets/messagebundle_fi.e408238f.js +1 -0
  60. package/dist/assets/messagebundle_fr.023ec658.js +1 -0
  61. package/dist/assets/messagebundle_fr_CA.700b3003.js +1 -0
  62. package/dist/assets/messagebundle_hi.e54398ec.js +1 -0
  63. package/dist/assets/messagebundle_hr.87a5cf12.js +1 -0
  64. package/dist/assets/messagebundle_hu.11f04021.js +1 -0
  65. package/dist/assets/messagebundle_it.aa33f57d.js +1 -0
  66. package/dist/assets/messagebundle_iw.876a2de2.js +1 -0
  67. package/dist/assets/{messagebundle_ja.7ea22999.js → messagebundle_ja.8e38b3b9.js} +1 -1
  68. package/dist/assets/messagebundle_kk.16201d64.js +1 -0
  69. package/dist/assets/messagebundle_ko.efd3d190.js +1 -0
  70. package/dist/assets/messagebundle_lt.8df3235f.js +1 -0
  71. package/dist/assets/messagebundle_lv.1485b0dd.js +1 -0
  72. package/dist/assets/{messagebundle_ms.fa2f722d.js → messagebundle_ms.2801cf14.js} +1 -1
  73. package/dist/assets/messagebundle_nl.fbaa57e5.js +1 -0
  74. package/dist/assets/messagebundle_no.aed62d2d.js +1 -0
  75. package/dist/assets/messagebundle_pl.ec09771e.js +1 -0
  76. package/dist/assets/messagebundle_pt.2ba5f988.js +1 -0
  77. package/dist/assets/messagebundle_pt_PT.f26a67f1.js +1 -0
  78. package/dist/assets/messagebundle_ro.71197951.js +1 -0
  79. package/dist/assets/messagebundle_ru.0bc1939f.js +1 -0
  80. package/dist/assets/messagebundle_sh.097c2c2b.js +1 -0
  81. package/dist/assets/messagebundle_sk.79a87686.js +1 -0
  82. package/dist/assets/messagebundle_sl.9d602bfb.js +1 -0
  83. package/dist/assets/messagebundle_sv.efb6e0ef.js +1 -0
  84. package/dist/assets/messagebundle_th.94c0d1ab.js +1 -0
  85. package/dist/assets/messagebundle_tr.b3a571be.js +1 -0
  86. package/dist/assets/messagebundle_uk.8d0551a9.js +1 -0
  87. package/dist/assets/messagebundle_vi.6819ccf0.js +1 -0
  88. package/dist/assets/messagebundle_zh_CN.0c604a5d.js +1 -0
  89. package/dist/assets/messagebundle_zh_TW.4659173f.js +1 -0
  90. package/dist/assets/{parameters-bundle.css.d35c9c32.js → parameters-bundle.css.13aed676.js} +1 -1
  91. package/dist/assets/{parameters-bundle.css.95d13129.js → parameters-bundle.css.157592af.js} +1 -1
  92. package/dist/assets/parameters-bundle.css.18cb3350.js +1 -0
  93. package/dist/assets/{parameters-bundle.css.e9998509.js → parameters-bundle.css.25017933.js} +1 -1
  94. package/dist/assets/parameters-bundle.css.2be7f26d.js +1 -0
  95. package/dist/assets/parameters-bundle.css.31a66508.js +1 -0
  96. package/dist/assets/parameters-bundle.css.33915181.js +1 -0
  97. package/dist/assets/parameters-bundle.css.41e95390.js +1 -0
  98. package/dist/assets/parameters-bundle.css.4343d807.js +1 -0
  99. package/dist/assets/parameters-bundle.css.4438b4b3.js +1 -0
  100. package/dist/assets/parameters-bundle.css.54a888ff.js +1 -0
  101. package/dist/assets/{parameters-bundle.css.e9339a13.js → parameters-bundle.css.5550ceb2.js} +1 -1
  102. package/dist/assets/{parameters-bundle.css.c967e7ef.js → parameters-bundle.css.60956972.js} +1 -1
  103. package/dist/assets/{parameters-bundle.css.3db3a626.js → parameters-bundle.css.61a5fde8.js} +1 -1
  104. package/dist/assets/parameters-bundle.css.6d229ca8.js +1 -0
  105. package/dist/assets/parameters-bundle.css.7c26b98b.js +1 -0
  106. package/dist/assets/{parameters-bundle.css.780c6a0b.js → parameters-bundle.css.adc7c452.js} +1 -1
  107. package/dist/assets/{parameters-bundle.css.16d388d6.js → parameters-bundle.css.ba38c500.js} +1 -1
  108. package/dist/assets/{parameters-bundle.css.d4f504ed.js → parameters-bundle.css.c64ba63b.js} +1 -1
  109. package/dist/assets/{parameters-bundle.css.f0eeb6a4.js → parameters-bundle.css.cac9f3de.js} +1 -1
  110. package/dist/assets/parameters-bundle.css.cad0773b.js +1 -0
  111. package/dist/assets/parameters-bundle.css.d532d151.js +1 -0
  112. package/dist/assets/{parameters-bundle.css.7be18144.js → parameters-bundle.css.d5d27adb.js} +1 -1
  113. package/dist/assets/{parameters-bundle.css.f6aea851.js → parameters-bundle.css.fbd8d2ab.js} +1 -1
  114. package/dist/css/themes/Avatar.css +1 -1
  115. package/dist/css/themes/AvatarGroup.css +1 -1
  116. package/dist/css/themes/Badge.css +1 -1
  117. package/dist/css/themes/Breadcrumbs.css +1 -1
  118. package/dist/css/themes/BrowserScrollbar.css +1 -1
  119. package/dist/css/themes/Button.css +1 -1
  120. package/dist/css/themes/ComboBox.css +1 -1
  121. package/dist/css/themes/DatePicker.css +1 -1
  122. package/dist/css/themes/DayPicker.css +1 -1
  123. package/dist/css/themes/Dialog.css +1 -1
  124. package/dist/css/themes/GroupHeaderListItem.css +1 -1
  125. package/dist/css/themes/Input.css +1 -1
  126. package/dist/css/themes/Menu.css +1 -1
  127. package/dist/css/themes/MonthPicker.css +1 -1
  128. package/dist/css/themes/MultiComboBox.css +1 -1
  129. package/dist/css/themes/Select.css +1 -1
  130. package/dist/css/themes/TextArea.css +1 -1
  131. package/dist/css/themes/Tokenizer.css +1 -1
  132. package/dist/css/themes/YearPicker.css +1 -1
  133. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  134. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  135. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  136. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  137. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  138. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  139. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  140. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  141. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  142. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  143. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  144. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  145. package/dist/features/InputSuggestions.js +21 -2
  146. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  150. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  151. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  152. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  153. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  154. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  155. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  156. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  157. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  158. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  159. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  161. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  164. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  165. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  167. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  168. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  169. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  170. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  171. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  172. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  173. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  174. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  175. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  176. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  177. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  178. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  179. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  180. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  181. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  182. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  183. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  184. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  185. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  186. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  187. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  188. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  189. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  190. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  191. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  192. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  193. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  194. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  195. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  196. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  197. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  198. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  199. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  200. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  201. package/dist/generated/i18n/i18n-defaults.js +2 -2
  202. package/dist/generated/templates/AvatarTemplate.lit.js +1 -1
  203. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +1 -1
  204. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +1 -1
  205. package/dist/generated/templates/CardHeaderTemplate.lit.js +1 -1
  206. package/dist/generated/templates/CarouselTemplate.lit.js +1 -1
  207. package/dist/generated/templates/DialogTemplate.lit.js +7 -6
  208. package/dist/generated/templates/IconTemplate.lit.js +2 -1
  209. package/dist/generated/templates/ListTemplate.lit.js +1 -1
  210. package/dist/generated/templates/MenuTemplate.lit.js +1 -1
  211. package/dist/generated/templates/PanelTemplate.lit.js +2 -2
  212. package/dist/generated/templates/PopoverTemplate.lit.js +1 -1
  213. package/dist/generated/templates/PopupTemplate.lit.js +1 -1
  214. package/dist/generated/templates/RangeSliderTemplate.lit.js +1 -1
  215. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +1 -1
  216. package/dist/generated/templates/SliderTemplate.lit.js +1 -1
  217. package/dist/generated/templates/TabContainerTemplate.lit.js +1 -1
  218. package/dist/generated/templates/TabInOverflowTemplate.lit.js +1 -1
  219. package/dist/generated/templates/TabInStripTemplate.lit.js +1 -1
  220. package/dist/generated/templates/TextAreaTemplate.lit.js +1 -1
  221. package/dist/generated/themes/Avatar.css.js +1 -1
  222. package/dist/generated/themes/AvatarGroup.css.js +1 -1
  223. package/dist/generated/themes/Badge.css.js +1 -1
  224. package/dist/generated/themes/Breadcrumbs.css.js +1 -1
  225. package/dist/generated/themes/BrowserScrollbar.css.js +1 -1
  226. package/dist/generated/themes/Button.css.js +1 -1
  227. package/dist/generated/themes/ComboBox.css.js +1 -1
  228. package/dist/generated/themes/DatePicker.css.js +1 -1
  229. package/dist/generated/themes/DayPicker.css.js +1 -1
  230. package/dist/generated/themes/Dialog.css.js +1 -1
  231. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  232. package/dist/generated/themes/Input.css.js +1 -1
  233. package/dist/generated/themes/Menu.css.js +1 -1
  234. package/dist/generated/themes/MonthPicker.css.js +1 -1
  235. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  236. package/dist/generated/themes/Select.css.js +1 -1
  237. package/dist/generated/themes/TextArea.css.js +1 -1
  238. package/dist/generated/themes/Tokenizer.css.js +1 -1
  239. package/dist/generated/themes/YearPicker.css.js +1 -1
  240. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  241. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  242. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  243. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  244. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  245. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  246. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  247. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  248. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  249. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  250. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  251. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  252. package/dist/i18n/messagebundle.properties +0 -3
  253. package/dist/i18n/messagebundle_ar.properties +4 -4
  254. package/dist/i18n/messagebundle_bg.properties +4 -4
  255. package/dist/i18n/messagebundle_ca.properties +4 -4
  256. package/dist/i18n/messagebundle_cs.properties +4 -4
  257. package/dist/i18n/messagebundle_cy.properties +4 -4
  258. package/dist/i18n/messagebundle_da.properties +4 -4
  259. package/dist/i18n/messagebundle_de.properties +6 -6
  260. package/dist/i18n/messagebundle_el.properties +4 -4
  261. package/dist/i18n/messagebundle_en_US_saprigi.properties +0 -2
  262. package/dist/i18n/messagebundle_es.properties +4 -4
  263. package/dist/i18n/messagebundle_es_MX.properties +4 -4
  264. package/dist/i18n/messagebundle_et.properties +4 -4
  265. package/dist/i18n/messagebundle_fi.properties +4 -4
  266. package/dist/i18n/messagebundle_fr.properties +4 -4
  267. package/dist/i18n/messagebundle_fr_CA.properties +4 -4
  268. package/dist/i18n/messagebundle_hi.properties +4 -4
  269. package/dist/i18n/messagebundle_hr.properties +4 -4
  270. package/dist/i18n/messagebundle_hu.properties +4 -4
  271. package/dist/i18n/messagebundle_id.properties +4 -4
  272. package/dist/i18n/messagebundle_it.properties +6 -6
  273. package/dist/i18n/messagebundle_iw.properties +4 -4
  274. package/dist/i18n/messagebundle_ja.properties +4 -4
  275. package/dist/i18n/messagebundle_kk.properties +4 -4
  276. package/dist/i18n/messagebundle_ko.properties +4 -4
  277. package/dist/i18n/messagebundle_lt.properties +4 -4
  278. package/dist/i18n/messagebundle_lv.properties +4 -4
  279. package/dist/i18n/messagebundle_ms.properties +4 -4
  280. package/dist/i18n/messagebundle_nl.properties +4 -4
  281. package/dist/i18n/messagebundle_no.properties +4 -4
  282. package/dist/i18n/messagebundle_pl.properties +4 -4
  283. package/dist/i18n/messagebundle_pt.properties +4 -4
  284. package/dist/i18n/messagebundle_pt_PT.properties +4 -4
  285. package/dist/i18n/messagebundle_ro.properties +4 -4
  286. package/dist/i18n/messagebundle_ru.properties +4 -4
  287. package/dist/i18n/messagebundle_sh.properties +4 -4
  288. package/dist/i18n/messagebundle_sk.properties +4 -4
  289. package/dist/i18n/messagebundle_sl.properties +4 -4
  290. package/dist/i18n/messagebundle_sv.properties +4 -4
  291. package/dist/i18n/messagebundle_th.properties +8 -8
  292. package/dist/i18n/messagebundle_tr.properties +4 -4
  293. package/dist/i18n/messagebundle_uk.properties +5 -5
  294. package/dist/i18n/messagebundle_vi.properties +4 -4
  295. package/dist/i18n/messagebundle_zh_CN.properties +4 -4
  296. package/dist/i18n/messagebundle_zh_TW.properties +4 -4
  297. package/package.json +7 -7
  298. package/src/Avatar.hbs +2 -0
  299. package/src/Avatar.js +29 -1
  300. package/src/AvatarGroup.js +20 -2
  301. package/src/Breadcrumbs.hbs +1 -1
  302. package/src/BreadcrumbsItem.js +1 -1
  303. package/src/Button.js +3 -3
  304. package/src/CalendarHeader.hbs +4 -0
  305. package/src/CardHeader.hbs +1 -0
  306. package/src/CardHeader.js +1 -0
  307. package/src/Carousel.hbs +1 -1
  308. package/src/Carousel.js +9 -0
  309. package/src/CheckBox.js +1 -1
  310. package/src/DatePicker.js +8 -0
  311. package/src/DateRangePicker.js +8 -2
  312. package/src/DateTimePicker.js +1 -1
  313. package/src/Dialog.hbs +5 -1
  314. package/src/Dialog.js +41 -1
  315. package/src/Icon.hbs +3 -1
  316. package/src/Icon.js +8 -8
  317. package/src/Input.js +13 -8
  318. package/src/Label.js +1 -3
  319. package/src/Link.js +3 -1
  320. package/src/List.hbs +1 -1
  321. package/src/List.js +12 -0
  322. package/src/Menu.hbs +1 -0
  323. package/src/Menu.js +4 -4
  324. package/src/MenuItem.js +20 -4
  325. package/src/MessageStrip.js +1 -1
  326. package/src/MultiComboBox.js +18 -4
  327. package/src/MultiInput.js +9 -2
  328. package/src/Option.js +1 -1
  329. package/src/Panel.hbs +51 -47
  330. package/src/Panel.js +13 -1
  331. package/src/Popover.js +5 -4
  332. package/src/Popup.hbs +1 -1
  333. package/src/Popup.js +13 -2
  334. package/src/RangeSlider.hbs +2 -2
  335. package/src/RangeSlider.js +1 -1
  336. package/src/Select.js +0 -2
  337. package/src/Slider.hbs +1 -1
  338. package/src/Slider.js +1 -1
  339. package/src/SliderBase.js +3 -3
  340. package/src/SplitButton.js +1 -1
  341. package/src/StandardListItem.js +1 -1
  342. package/src/SuggestionItem.js +1 -1
  343. package/src/Tab.js +17 -10
  344. package/src/TabContainer.hbs +5 -1
  345. package/src/TabContainer.js +154 -140
  346. package/src/TabInOverflow.hbs +1 -1
  347. package/src/TabInStrip.hbs +1 -1
  348. package/src/TabSeparator.js +8 -1
  349. package/src/TextArea.hbs +1 -1
  350. package/src/TextArea.js +7 -2
  351. package/src/TimePickerBase.js +8 -0
  352. package/src/TimeSelection.js +1 -2
  353. package/src/Tokenizer.js +74 -8
  354. package/src/Tree.js +4 -0
  355. package/src/TreeItem.js +1 -1
  356. package/src/features/InputSuggestions.js +21 -2
  357. package/src/i18n/messagebundle.properties +0 -3
  358. package/src/i18n/messagebundle_ar.properties +4 -4
  359. package/src/i18n/messagebundle_bg.properties +4 -4
  360. package/src/i18n/messagebundle_ca.properties +4 -4
  361. package/src/i18n/messagebundle_cs.properties +4 -4
  362. package/src/i18n/messagebundle_cy.properties +4 -4
  363. package/src/i18n/messagebundle_da.properties +4 -4
  364. package/src/i18n/messagebundle_de.properties +6 -6
  365. package/src/i18n/messagebundle_el.properties +4 -4
  366. package/src/i18n/messagebundle_en_US_saprigi.properties +0 -2
  367. package/src/i18n/messagebundle_es.properties +4 -4
  368. package/src/i18n/messagebundle_es_MX.properties +4 -4
  369. package/src/i18n/messagebundle_et.properties +4 -4
  370. package/src/i18n/messagebundle_fi.properties +4 -4
  371. package/src/i18n/messagebundle_fr.properties +4 -4
  372. package/src/i18n/messagebundle_fr_CA.properties +4 -4
  373. package/src/i18n/messagebundle_hi.properties +4 -4
  374. package/src/i18n/messagebundle_hr.properties +4 -4
  375. package/src/i18n/messagebundle_hu.properties +4 -4
  376. package/src/i18n/messagebundle_id.properties +4 -4
  377. package/src/i18n/messagebundle_it.properties +6 -6
  378. package/src/i18n/messagebundle_iw.properties +4 -4
  379. package/src/i18n/messagebundle_ja.properties +4 -4
  380. package/src/i18n/messagebundle_kk.properties +4 -4
  381. package/src/i18n/messagebundle_ko.properties +4 -4
  382. package/src/i18n/messagebundle_lt.properties +4 -4
  383. package/src/i18n/messagebundle_lv.properties +4 -4
  384. package/src/i18n/messagebundle_ms.properties +4 -4
  385. package/src/i18n/messagebundle_nl.properties +4 -4
  386. package/src/i18n/messagebundle_no.properties +4 -4
  387. package/src/i18n/messagebundle_pl.properties +4 -4
  388. package/src/i18n/messagebundle_pt.properties +4 -4
  389. package/src/i18n/messagebundle_pt_PT.properties +4 -4
  390. package/src/i18n/messagebundle_ro.properties +4 -4
  391. package/src/i18n/messagebundle_ru.properties +4 -4
  392. package/src/i18n/messagebundle_sh.properties +4 -4
  393. package/src/i18n/messagebundle_sk.properties +4 -4
  394. package/src/i18n/messagebundle_sl.properties +4 -4
  395. package/src/i18n/messagebundle_sv.properties +4 -4
  396. package/src/i18n/messagebundle_th.properties +8 -8
  397. package/src/i18n/messagebundle_tr.properties +4 -4
  398. package/src/i18n/messagebundle_uk.properties +5 -5
  399. package/src/i18n/messagebundle_vi.properties +4 -4
  400. package/src/i18n/messagebundle_zh_CN.properties +4 -4
  401. package/src/i18n/messagebundle_zh_TW.properties +4 -4
  402. package/src/themes/Avatar.css +51 -0
  403. package/src/themes/AvatarGroup.css +1 -0
  404. package/src/themes/Badge.css +12 -0
  405. package/src/themes/Breadcrumbs.css +3 -0
  406. package/src/themes/BrowserScrollbar.css +6 -6
  407. package/src/themes/Button.css +5 -0
  408. package/src/themes/DatePicker.css +12 -0
  409. package/src/themes/DayPicker.css +4 -4
  410. package/src/themes/Dialog.css +35 -0
  411. package/src/themes/GroupHeaderListItem.css +1 -0
  412. package/src/themes/Input.css +20 -16
  413. package/src/themes/Menu.css +1 -0
  414. package/src/themes/MonthPicker.css +1 -1
  415. package/src/themes/TextArea.css +7 -7
  416. package/src/themes/Tokenizer.css +1 -5
  417. package/src/themes/YearPicker.css +1 -1
  418. package/src/themes/base/DayPicker-parameters.css +3 -0
  419. package/src/themes/base/Dialog-parameters.css +8 -0
  420. package/src/themes/sap_belize/DayPicker-parameters.css +1 -1
  421. package/src/themes/sap_belize_hcb/Button-parameters.css +1 -0
  422. package/src/themes/sap_belize_hcb/DayPicker-parameters.css +7 -0
  423. package/src/themes/sap_belize_hcw/Button-parameters.css +1 -0
  424. package/src/themes/sap_belize_hcw/DayPicker-parameters.css +7 -0
  425. package/src/themes/sap_fiori_3_hcb/Button-parameters.css +1 -0
  426. package/src/themes/sap_fiori_3_hcb/Dialog-parameters.css +8 -0
  427. package/src/themes/sap_fiori_3_hcw/Button-parameters.css +1 -0
  428. package/src/themes/sap_fiori_3_hcw/Dialog-parameters.css +8 -0
  429. package/src/themes/sap_horizon/parameters-bundle.css +1 -1
  430. package/src/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  431. package/src/themes/sap_horizon_hcb/Dialog-parameters.css +4 -0
  432. package/src/themes/sap_horizon_hcw/Dialog-parameters.css +4 -0
  433. package/dist/assets/SAP-icons-business-suite.60260cdf.js +0 -1
  434. package/dist/assets/SAP-icons.09567bd9.js +0 -1
  435. package/dist/assets/SAP-icons.1f482d05.js +0 -1
  436. package/dist/assets/messagebundle_bg.2847106f.js +0 -1
  437. package/dist/assets/messagebundle_ca.a57e2b25.js +0 -1
  438. package/dist/assets/messagebundle_cs.7317c812.js +0 -1
  439. package/dist/assets/messagebundle_cy.cf159ee2.js +0 -1
  440. package/dist/assets/messagebundle_da.45ddb5f2.js +0 -1
  441. package/dist/assets/messagebundle_de.a2ed57e0.js +0 -1
  442. package/dist/assets/messagebundle_el.cc7c4228.js +0 -1
  443. package/dist/assets/messagebundle_es.68eae4a3.js +0 -1
  444. package/dist/assets/messagebundle_es_MX.f1ce6188.js +0 -1
  445. package/dist/assets/messagebundle_et.32653f21.js +0 -1
  446. package/dist/assets/messagebundle_fi.7d9af1c0.js +0 -1
  447. package/dist/assets/messagebundle_fr.31570418.js +0 -1
  448. package/dist/assets/messagebundle_fr_CA.20034eb3.js +0 -1
  449. package/dist/assets/messagebundle_hi.beb64c73.js +0 -1
  450. package/dist/assets/messagebundle_hr.f3cfd0a7.js +0 -1
  451. package/dist/assets/messagebundle_hu.7727a1b0.js +0 -1
  452. package/dist/assets/messagebundle_it.6b85706f.js +0 -1
  453. package/dist/assets/messagebundle_iw.ba411691.js +0 -1
  454. package/dist/assets/messagebundle_kk.d32ae843.js +0 -1
  455. package/dist/assets/messagebundle_ko.97757f5f.js +0 -1
  456. package/dist/assets/messagebundle_lt.81f483bb.js +0 -1
  457. package/dist/assets/messagebundle_lv.8ca68fa3.js +0 -1
  458. package/dist/assets/messagebundle_nl.b7818097.js +0 -1
  459. package/dist/assets/messagebundle_no.8d97d8b6.js +0 -1
  460. package/dist/assets/messagebundle_pl.33bfbaab.js +0 -1
  461. package/dist/assets/messagebundle_pt.0640df89.js +0 -1
  462. package/dist/assets/messagebundle_pt_PT.e589bfc5.js +0 -1
  463. package/dist/assets/messagebundle_ro.7f593d44.js +0 -1
  464. package/dist/assets/messagebundle_ru.8d5a23af.js +0 -1
  465. package/dist/assets/messagebundle_sh.40d49901.js +0 -1
  466. package/dist/assets/messagebundle_sk.246c90b7.js +0 -1
  467. package/dist/assets/messagebundle_sl.13add15c.js +0 -1
  468. package/dist/assets/messagebundle_sv.4387678d.js +0 -1
  469. package/dist/assets/messagebundle_th.55879e31.js +0 -1
  470. package/dist/assets/messagebundle_tr.f26a0050.js +0 -1
  471. package/dist/assets/messagebundle_uk.d2de274c.js +0 -1
  472. package/dist/assets/messagebundle_vi.f4533729.js +0 -1
  473. package/dist/assets/messagebundle_zh_CN.3892081e.js +0 -1
  474. package/dist/assets/messagebundle_zh_TW.0bb64d49.js +0 -1
  475. package/dist/assets/parameters-bundle.css.15bec13d.js +0 -1
  476. package/dist/assets/parameters-bundle.css.278628a2.js +0 -1
  477. package/dist/assets/parameters-bundle.css.31ea3347.js +0 -1
  478. package/dist/assets/parameters-bundle.css.4f500511.js +0 -1
  479. package/dist/assets/parameters-bundle.css.572a1598.js +0 -1
  480. package/dist/assets/parameters-bundle.css.5a6e960a.js +0 -1
  481. package/dist/assets/parameters-bundle.css.5c8d3b46.js +0 -1
  482. package/dist/assets/parameters-bundle.css.608c209a.js +0 -1
  483. package/dist/assets/parameters-bundle.css.9a4a59b6.js +0 -1
  484. package/dist/assets/parameters-bundle.css.c269a39b.js +0 -1
  485. package/dist/assets/parameters-bundle.css.c65b0aec.js +0 -1
  486. package/dist/assets/parameters-bundle.css.cd453338.js +0 -1
package/src/Input.js CHANGED
@@ -603,9 +603,6 @@ class Input extends UI5Element {
603
603
  // Indicates if the user selection has been canceled with [ESC].
604
604
  this.suggestionSelectionCanceled = false;
605
605
 
606
- // Indicates if the change event has already been fired
607
- this._changeFiredValue = null;
608
-
609
606
  // tracks the value between focus in and focus out to detect that change event should be fired.
610
607
  this.previousValue = undefined;
611
608
 
@@ -771,6 +768,12 @@ class Input extends UI5Element {
771
768
  }
772
769
 
773
770
  _onkeyup(event) {
771
+ // The native Delete event does not update the value property "on time".
772
+ // So, the (native) change event is always fired with the old value
773
+ if (isDelete(event)) {
774
+ this.value = event.target.value;
775
+ }
776
+
774
777
  this._keyDown = false;
775
778
  this._backspaceKeyDown = false;
776
779
  }
@@ -823,7 +826,6 @@ class Input extends UI5Element {
823
826
  }
824
827
 
825
828
  if (!itemPressed) {
826
- this.fireEventByAction(this.ACTION_ENTER, event);
827
829
  this.lastConfirmedValue = this.value;
828
830
 
829
831
  if (this.FormSupport) {
@@ -967,8 +969,8 @@ class Input extends UI5Element {
967
969
  return;
968
970
  }
969
971
 
970
- if (this._changeFiredValue !== this.getInputDOMRefSync().value) {
971
- this._changeFiredValue = this.getInputDOMRefSync().value;
972
+ if (this.previousValue !== this.getInputDOMRefSync().value) {
973
+ this.previousValue = this.getInputDOMRefSync().value;
972
974
  this.fireEvent(this.EVENT_CHANGE);
973
975
  }
974
976
  }
@@ -996,7 +998,7 @@ class Input extends UI5Element {
996
998
  _handleInput(event) {
997
999
  const inputDomRef = this.getInputDOMRefSync();
998
1000
  const emptyValueFiredOnNumberInput = this.value && this.isTypeNumber && !inputDomRef.value;
999
- const eventType = event.inputType || event.detail.inputType;
1001
+ const eventType = event.inputType || (event.detail && event.detail.inputType);
1000
1002
 
1001
1003
  this._shouldAutocomplete = eventType !== "deleteContentBackward" && !this.noTypeahead;
1002
1004
  this.suggestionSelectionCanceled = false;
@@ -1183,9 +1185,11 @@ class Input extends UI5Element {
1183
1185
  return;
1184
1186
  }
1185
1187
 
1188
+ const innerInput = this.getInputDOMRefSync();
1189
+ const value = this.valueBeforeAutoComplete || this.value;
1186
1190
  const itemText = item.text || item.textContent; // keep textContent for compatibility
1187
1191
  const fireInput = keyboardUsed
1188
- ? this.valueBeforeItemSelection !== itemText : this.valueBeforeAutoComplete !== itemText;
1192
+ ? this.valueBeforeItemSelection !== itemText : value !== itemText;
1189
1193
 
1190
1194
  this.hasSuggestionItemSelected = true;
1191
1195
 
@@ -1196,6 +1200,7 @@ class Input extends UI5Element {
1196
1200
  this.getInputDOMRefSync().value = itemText;
1197
1201
  this.fireEvent(this.EVENT_INPUT);
1198
1202
  this._handleChange();
1203
+ innerInput.setSelectionRange(this.value.length, this.value.length);
1199
1204
  }
1200
1205
 
1201
1206
  this.valueBeforeItemPreview = "";
package/src/Label.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
- import findNodeOwner from "@ui5/webcomponents-base/dist/util/findNodeOwner.js";
4
3
  import { isSafari } from "@ui5/webcomponents-base/dist/Device.js";
5
4
  import WrappingType from "./types/WrappingType.js";
6
5
 
@@ -145,8 +144,7 @@ class Label extends UI5Element {
145
144
  return;
146
145
  }
147
146
 
148
- const ownerNode = findNodeOwner(this);
149
- const elementToFocus = ownerNode.querySelector(`#${this.for}`);
147
+ const elementToFocus = this.getRootNode().querySelector(`#${this.for}`);
150
148
  if (elementToFocus) {
151
149
  elementToFocus.focus();
152
150
  }
package/src/Link.js CHANGED
@@ -349,6 +349,7 @@ class Link extends UI5Element {
349
349
  shiftKey,
350
350
  } = event;
351
351
 
352
+ event.stopImmediatePropagation();
352
353
  event.isMarked = "link";
353
354
 
354
355
  const executeEvent = this.fireEvent("click", {
@@ -373,7 +374,7 @@ class Link extends UI5Element {
373
374
  }
374
375
 
375
376
  _onkeydown(event) {
376
- if (isEnter(event)) {
377
+ if (isEnter(event) && !this.href) {
377
378
  this._onclick(event);
378
379
  } else if (isSpace(event)) {
379
380
  event.preventDefault();
@@ -393,6 +394,7 @@ class Link extends UI5Element {
393
394
  if (this.href && !event.defaultPrevented) {
394
395
  const customEvent = new MouseEvent("click");
395
396
 
397
+ customEvent.stopImmediatePropagation();
396
398
  this.getDomRef().dispatchEvent(customEvent);
397
399
  }
398
400
  }
package/src/List.hbs CHANGED
@@ -1,5 +1,5 @@
1
1
  <div
2
- class="ui5-list-root"
2
+ class="{{classes.root}}"
3
3
  @focusin="{{_onfocusin}}"
4
4
  @keydown="{{_onkeydown}}"
5
5
  >
package/src/List.js CHANGED
@@ -13,6 +13,7 @@ import {
13
13
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
14
14
  import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
15
15
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
16
+ import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
16
17
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
17
18
  import debounce from "@ui5/webcomponents-base/dist/util/debounce.js";
18
19
  import isElementInView from "@ui5/webcomponents-base/dist/util/isElementInView.js";
@@ -343,6 +344,7 @@ const metadata = {
343
344
  detail: {
344
345
  selectedItems: { type: Array },
345
346
  previouslySelectedItems: { type: Array },
347
+ targetItem: { type: HTMLElement }, // protected, holds the event target item
346
348
  selectionComponentPressed: { type: Boolean }, // protected, indicates if the user used the selection components to change the selection
347
349
  },
348
350
  },
@@ -624,6 +626,15 @@ class List extends UI5Element {
624
626
  };
625
627
  }
626
628
 
629
+ get classes() {
630
+ return {
631
+ root: {
632
+ "ui5-list-root": true,
633
+ "ui5-content-native-scrollbars": getEffectiveScrollbarStyle(),
634
+ },
635
+ };
636
+ }
637
+
627
638
  initItemNavigation() {
628
639
  this._itemNavigation = new ItemNavigation(this, {
629
640
  skipItemsSize: PAGE_UP_DOWN_SIZE, // PAGE_UP and PAGE_DOWN will skip trough 10 items
@@ -692,6 +703,7 @@ class List extends UI5Element {
692
703
  selectedItems: this.getSelectedItems(),
693
704
  previouslySelectedItems,
694
705
  selectionComponentPressed: event.detail.selectionComponentPressed,
706
+ targetItem: event.detail.item,
695
707
  key: event.detail.key,
696
708
  });
697
709
  }
package/src/Menu.hbs CHANGED
@@ -57,6 +57,7 @@
57
57
  class="ui5-menu-item"
58
58
  id="{{../_id}}-menu-item-{{@index}}"
59
59
  icon="{{this.item.icon}}"
60
+ accessible-name={{this.item.ariaLabelledByText}}
60
61
  accessible-role="menuitem"
61
62
  ._ariaHasPopup={{this.ariaHasPopup}}
62
63
  ?disabled={{this.item.disabled}}
package/src/Menu.js CHANGED
@@ -180,7 +180,7 @@ const metadata = {
180
180
  *
181
181
  * <h3>ES6 Module Import</h3>
182
182
  *
183
- * <code>import @ui5/webcomponents/dist/Menu.js";</code>
183
+ * <code>import "@ui5/webcomponents/dist/Menu.js";</code>
184
184
  *
185
185
  * @constructor
186
186
  * @author SAP SE
@@ -397,11 +397,11 @@ class Menu extends UI5Element {
397
397
  }
398
398
 
399
399
  _prepareSubMenuDesktopTablet(item, opener, actionId) {
400
- if (actionId !== this._subMenuOpenerId || item.hasChildren) {
400
+ if (actionId !== this._subMenuOpenerId || (item && item.hasChildren)) {
401
401
  // close opened sub-menu if there is any opened
402
402
  this._closeItemSubMenu(this._openedSubMenuItem, true);
403
403
  }
404
- if (item.hasChildren) {
404
+ if (item && item.hasChildren) {
405
405
  // create new sub-menu
406
406
  this._createSubMenu(item, actionId);
407
407
  this._openItemSubMenu(item, opener, actionId);
@@ -434,7 +434,7 @@ class Menu extends UI5Element {
434
434
  // respect mouseover only on desktop
435
435
  const item = event.target.associatedItem;
436
436
 
437
- if (item.hasChildren && item._subMenu) {
437
+ if (item && item.hasChildren && item._subMenu) {
438
438
  // try to close the sub-menu
439
439
  item._preventSubMenuClose = false;
440
440
  this._closeItemSubMenu(item);
package/src/MenuItem.js CHANGED
@@ -22,7 +22,7 @@ const metadata = {
22
22
  * The SAP-icons font provides numerous options.
23
23
  * <br><br>
24
24
  <b>* Example:</b>
25
- * See all the available icons in the <ui5-link target="_blank" href="https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
25
+ * See all the available icons in the <ui5-link target="_blank" href="https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
26
26
  *
27
27
  * @type {string}
28
28
  * @defaultvalue ""
@@ -56,7 +56,19 @@ const metadata = {
56
56
  },
57
57
 
58
58
  /**
59
- * Indicates if the any of the element siblings have children items.
59
+ * Defines the accessible ARIA name of the component.
60
+ *
61
+ * @type {string}
62
+ * @defaultvalue ""
63
+ * @public
64
+ * @since 1.7.0
65
+ */
66
+ accessibleName: {
67
+ type: String,
68
+ },
69
+
70
+ /**
71
+ * Indicates whether any of the element siblings have children items.
60
72
  * @type {boolean}
61
73
  * @private
62
74
  */
@@ -66,7 +78,7 @@ const metadata = {
66
78
  },
67
79
 
68
80
  /**
69
- * Indicates if the any of the element siblings have icon.
81
+ * Indicates whether any of the element siblings have icon.
70
82
  * @type {boolean}
71
83
  * @private
72
84
  */
@@ -127,7 +139,7 @@ const metadata = {
127
139
  *
128
140
  * <h3>ES6 Module Import</h3>
129
141
  *
130
- * <code>import @ui5/webcomponents/dist/MenuItem.js";</code>
142
+ * <code>import "@ui5/webcomponents/dist/MenuItem.js";</code>
131
143
  *
132
144
  * @constructor
133
145
  * @author SAP SE
@@ -154,6 +166,10 @@ class MenuItem extends UI5Element {
154
166
  get subMenuOpened() {
155
167
  return !!Object.keys(this._subMenu).length;
156
168
  }
169
+
170
+ get ariaLabelledByText() {
171
+ return `${this.text} ${this.accessibleName}`.trim();
172
+ }
157
173
  }
158
174
 
159
175
  MenuItem.define();
@@ -94,7 +94,7 @@ const metadata = {
94
94
  * The SAP-icons font provides numerous options.
95
95
  * <br><br>
96
96
  *
97
- * See all the available icons in the <ui5-link target="_blank" href="https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
97
+ * See all the available icons in the <ui5-link target="_blank" href="https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
98
98
  *
99
99
  * @type {sap.ui.webcomponents.main.IIcon}
100
100
  * @slot
@@ -617,7 +617,7 @@ class MultiComboBox extends UI5Element {
617
617
 
618
618
  if (!event.relatedTarget || !event.relatedTarget.hasAttribute("ui5-token")) {
619
619
  this._tokenizer.tokens.forEach(token => { token.selected = false; });
620
- this._tokenizer.scrollToStart();
620
+ this._tokenizer.expanded = this._preventTokenizerToggle ? this._tokenizer.expanded : false;
621
621
  }
622
622
 
623
623
  if (allTokensAreBeingDeleted || lastTokenBeingDeleted) {
@@ -1064,7 +1064,7 @@ class MultiComboBox extends UI5Element {
1064
1064
  const isCtrl = !!(event.metaKey || event.ctrlKey);
1065
1065
 
1066
1066
  if (isRight(event)) {
1067
- const lastTokenIndex = this._tokenizer.tokens.length - 1;
1067
+ const lastTokenIndex = this._tokenizer.tokens.length - this._tokenizer.overflownTokens.length - 1;
1068
1068
 
1069
1069
  if (event.target === this._tokenizer.tokens[lastTokenIndex]) {
1070
1070
  setTimeout(() => {
@@ -1104,6 +1104,7 @@ class MultiComboBox extends UI5Element {
1104
1104
  }
1105
1105
 
1106
1106
  if (isShow(event) && !this.readonly && !this.disabled) {
1107
+ this._preventTokenizerToggle = true;
1107
1108
  this._handleShow(event);
1108
1109
  }
1109
1110
  }
@@ -1226,6 +1227,7 @@ class MultiComboBox extends UI5Element {
1226
1227
  this._toggle();
1227
1228
 
1228
1229
  this._iconPressed = false;
1230
+ this._preventTokenizerToggle = false;
1229
1231
  this.filterSelected = false;
1230
1232
  }
1231
1233
 
@@ -1406,6 +1408,7 @@ class MultiComboBox extends UI5Element {
1406
1408
  inputFocusIn(event) {
1407
1409
  if (!isPhone() || this.readonly) {
1408
1410
  this.focused = true;
1411
+ this._tokenizer.expanded = true;
1409
1412
  } else {
1410
1413
  this._innerInput.blur();
1411
1414
  }
@@ -1421,7 +1424,7 @@ class MultiComboBox extends UI5Element {
1421
1424
  inputFocusOut(event) {
1422
1425
  if (!this.shadowRoot.contains(event.relatedTarget) && !this._deleting) {
1423
1426
  this.focused = false;
1424
-
1427
+ this._tokenizer.expanded = this.open;
1425
1428
  // remove the value if user focus out the input and focus is not going in the popover
1426
1429
  if (!isPhone() && !this.allowCustomValues && (this.staticAreaItem !== event.relatedTarget)) {
1427
1430
  this.value = "";
@@ -1570,7 +1573,18 @@ class MultiComboBox extends UI5Element {
1570
1573
  }
1571
1574
 
1572
1575
  get _tokenizerExpanded() {
1573
- return (this._isFocusInside || this.open) && !this.readonly;
1576
+ if (isPhone() || this.readonly) {
1577
+ return false;
1578
+ }
1579
+
1580
+ if (this._preventTokenizerToggle) {
1581
+ return this._tokenizer.expanded;
1582
+ }
1583
+
1584
+ const isCurrentlyExpanded = !!this._tokenizer && this._tokenizer.expanded;
1585
+ const shouldBeExpanded = this.focused || this.open || isCurrentlyExpanded;
1586
+
1587
+ return shouldBeExpanded;
1574
1588
  }
1575
1589
 
1576
1590
  get _valueStatePopoverHorizontalAlign() {
package/src/MultiInput.js CHANGED
@@ -142,6 +142,10 @@ class MultiInput extends Input {
142
142
  const focusedToken = event.detail.ref;
143
143
  const selectedTokens = this.tokens.filter(token => token.selected);
144
144
 
145
+ if (this._readonly) {
146
+ return;
147
+ }
148
+
145
149
  if (selectedTokens.indexOf(focusedToken) === -1) {
146
150
  selectedTokens.push(focusedToken);
147
151
  }
@@ -175,6 +179,8 @@ class MultiInput extends Input {
175
179
 
176
180
  innerFocusIn() {
177
181
  this.expandedTokenizer = true;
182
+ this.focused = true;
183
+ this.tokenizer.scrollToEnd();
178
184
  }
179
185
 
180
186
  _onkeydown(event) {
@@ -218,8 +224,6 @@ class MultiInput extends Input {
218
224
  }
219
225
  }
220
226
 
221
- this.tokenizer._handleItemNavigation(event, tokens);
222
-
223
227
  if (isCtrl && ["c", "x"].includes(event.key.toLowerCase())) {
224
228
  event.preventDefault();
225
229
 
@@ -274,6 +278,9 @@ class MultiInput extends Input {
274
278
 
275
279
  if (!insideDOM && !insideShadowDom) {
276
280
  this.expandedTokenizer = false;
281
+
282
+ // we need to reset tabindex setting by tokenizer
283
+ this.tokenizer._itemNav._currentIndex = -1;
277
284
  }
278
285
  }
279
286
 
package/src/Option.js CHANGED
@@ -47,7 +47,7 @@ const metadata = {
47
47
  * <br><br>
48
48
  * <b>Note:</b>
49
49
  * SAP-icons font provides numerous built-in icons. To find all the available icons, see the
50
- * <ui5-link target="_blank" href="https://openui5.hana.ondemand.com/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
50
+ * <ui5-link target="_blank" href="https://sdk.openui5.org/test-resources/sap/m/demokit/iconExplorer/webapp/index.html" class="api-table-content-cell-link">Icon Explorer</ui5-link>.
51
51
  *
52
52
  * @type {string}
53
53
  * @public
package/src/Panel.hbs CHANGED
@@ -8,55 +8,59 @@
8
8
  {{#if hasHeaderOrHeaderText}}
9
9
  {{! header: either header or h1 with header text}}
10
10
  <div
11
- @click="{{_headerClick}}"
12
- @keydown="{{_headerKeyDown}}"
13
- @keyup="{{_headerKeyUp}}"
14
- class="ui5-panel-header"
15
- tabindex="{{headerTabIndex}}"
16
- role="{{accInfo.role}}"
17
- aria-expanded="{{accInfo.ariaExpanded}}"
18
- aria-controls="{{accInfo.ariaControls}}"
19
- aria-labelledby="{{accInfo.ariaLabelledby}}"
20
- part="header"
11
+ class="ui5-panel-heading-wrapper"
12
+ role="{{headingWrapperRole}}"
13
+ aria-level="{{headingWrapperAriaLevel}}"
21
14
  >
22
- {{#unless fixed}}
23
- <div class="ui5-panel-header-button-root">
24
- {{#if _hasHeader}}
25
- <ui5-button
26
- design="Transparent"
27
- class="ui5-panel-header-button ui5-panel-header-button-with-icon"
28
- @click="{{_toggleButtonClick}}"
29
- .accessibilityAttributes={{accInfo.button.accessibilityAttributes}}
30
- tooltip="{{accInfo.button.title}}"
31
- accessible-name="{{accInfo.button.ariaLabelButton}}"
32
- >
33
- <div class="ui5-panel-header-icon-wrapper">
34
- <ui5-icon class="ui5-panel-header-icon {{classes.headerBtn}}" name="slim-arrow-right"></ui5-icon>
35
- </div>
36
- </ui5-button>
37
- {{else}}
38
- <ui5-icon
39
- class="ui5-panel-header-button ui5-panel-header-icon {{classes.headerBtn}}"
40
- name="slim-arrow-right"
41
- show-tooltip
42
- accessible-name="{{toggleButtonTitle}}"
43
- ></ui5-icon>
44
- {{/if}}
45
- </div>
46
- {{/unless}}
15
+ <div
16
+ @click="{{_headerClick}}"
17
+ @keydown="{{_headerKeyDown}}"
18
+ @keyup="{{_headerKeyUp}}"
19
+ class="ui5-panel-header"
20
+ tabindex="{{headerTabIndex}}"
21
+ role="{{accInfo.role}}"
22
+ aria-expanded="{{accInfo.ariaExpanded}}"
23
+ aria-controls="{{accInfo.ariaControls}}"
24
+ aria-labelledby="{{accInfo.ariaLabelledby}}"
25
+ part="header"
26
+ >
27
+ {{#unless fixed}}
28
+ <div class="ui5-panel-header-button-root">
29
+ {{#if _hasHeader}}
30
+ <ui5-button
31
+ design="Transparent"
32
+ class="ui5-panel-header-button ui5-panel-header-button-with-icon"
33
+ @click="{{_toggleButtonClick}}"
34
+ .accessibilityAttributes={{accInfo.button.accessibilityAttributes}}
35
+ tooltip="{{accInfo.button.title}}"
36
+ accessible-name="{{accInfo.button.ariaLabelButton}}"
37
+ >
38
+ <div class="ui5-panel-header-icon-wrapper">
39
+ <ui5-icon class="ui5-panel-header-icon {{classes.headerBtn}}" name="slim-arrow-right"></ui5-icon>
40
+ </div>
41
+ </ui5-button>
42
+ {{else}}
43
+ <ui5-icon
44
+ class="ui5-panel-header-button ui5-panel-header-icon {{classes.headerBtn}}"
45
+ name="slim-arrow-right"
46
+ show-tooltip
47
+ accessible-name="{{toggleButtonTitle}}"
48
+ ></ui5-icon>
49
+ {{/if}}
50
+ </div>
51
+ {{/unless}}
47
52
 
48
- {{#if _hasHeader}}
49
- <slot name="header"></slot>
50
- {{else}}
51
- <div
52
- id="{{_id}}-header-title"
53
- role="heading"
54
- aria-level="{{headerAriaLevel}}"
55
- class="ui5-panel-header-title"
56
- >
57
- {{headerText}}
58
- </div>
59
- {{/if}}
53
+ {{#if _hasHeader}}
54
+ <slot name="header"></slot>
55
+ {{else}}
56
+ <div
57
+ id="{{_id}}-header-title"
58
+ class="ui5-panel-header-title"
59
+ >
60
+ {{headerText}}
61
+ </div>
62
+ {{/if}}
63
+ </div>
60
64
  </div>
61
65
  {{/if}}
62
66
 
package/src/Panel.js CHANGED
@@ -322,7 +322,7 @@ class Panel extends UI5Element {
322
322
  }
323
323
 
324
324
  if (isEnter(event)) {
325
- this._toggleOpen();
325
+ event.preventDefault();
326
326
  }
327
327
 
328
328
  if (isSpace(event)) {
@@ -335,6 +335,10 @@ class Panel extends UI5Element {
335
335
  return;
336
336
  }
337
337
 
338
+ if (isEnter(event)) {
339
+ this._toggleOpen();
340
+ }
341
+
338
342
  if (isSpace(event)) {
339
343
  this._toggleOpen();
340
344
  }
@@ -441,6 +445,14 @@ class Panel extends UI5Element {
441
445
  return (this.header.length || this.fixed) ? "-1" : "0";
442
446
  }
443
447
 
448
+ get headingWrapperAriaLevel() {
449
+ return !this._hasHeader ? this.headerAriaLevel : undefined;
450
+ }
451
+
452
+ get headingWrapperRole() {
453
+ return !this._hasHeader ? "heading" : undefined;
454
+ }
455
+
444
456
  get nonFixedInternalHeader() {
445
457
  return !this._hasHeader && !this.fixed;
446
458
  }
package/src/Popover.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
2
2
  import { isIOS } from "@ui5/webcomponents-base/dist/Device.js";
3
+ import DOMReference from "@ui5/webcomponents-base/dist/types/DOMReference.js";
3
4
  import { getClosedPopupParent } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
4
5
  import clamp from "@ui5/webcomponents-base/dist/util/clamp.js";
5
6
  import Popup from "./Popup.js";
@@ -145,14 +146,14 @@ const metadata = {
145
146
  },
146
147
 
147
148
  /**
148
- * Defines the opener id of the element that the popover is shown at
149
+ * Defines the ID or DOM Reference of the element that the popover is shown at
149
150
  * @public
150
- * @type {String}
151
+ * @type {DOMReference}
151
152
  * @defaultvalue ""
152
153
  * @since 1.2.0
153
154
  */
154
155
  opener: {
155
- type: String,
156
+ type: DOMReference,
156
157
  },
157
158
 
158
159
  /**
@@ -305,7 +306,7 @@ class Popover extends Popup {
305
306
 
306
307
  onAfterRendering() {
307
308
  if (!this.isOpen() && this.open) {
308
- const opener = document.getElementById(this.opener);
309
+ const opener = this.opener instanceof HTMLElement ? this.opener : this.getRootNode().getElementById(this.opener);
309
310
  if (!opener) {
310
311
  console.warn("Valid opener id is required."); // eslint-disable-line
311
312
  return;
package/src/Popup.hbs CHANGED
@@ -1,7 +1,7 @@
1
1
  <section
2
2
  style="{{styles.root}}"
3
3
  class="{{classes.root}}"
4
- role="dialog"
4
+ role="{{_role}}"
5
5
  aria-modal="{{_ariaModal}}"
6
6
  aria-label="{{_ariaLabel}}"
7
7
  aria-labelledby="{{_ariaLabelledBy}}"
package/src/Popup.js CHANGED
@@ -4,8 +4,9 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
4
4
  import { isChrome } from "@ui5/webcomponents-base/dist/Device.js";
5
5
  import { getFirstFocusableElement, getLastFocusableElement } from "@ui5/webcomponents-base/dist/util/FocusableElements.js";
6
6
  import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
7
+ import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
7
8
  import { hasStyle, createStyle } from "@ui5/webcomponents-base/dist/ManagedStyles.js";
8
- import { isTabPrevious } from "@ui5/webcomponents-base/dist/Keys.js";
9
+ import { isEnter, isTabPrevious } from "@ui5/webcomponents-base/dist/Keys.js";
9
10
  import { getNextZIndex, getFocusedElement, isFocusedElementWithinNode } from "@ui5/webcomponents-base/dist/util/PopupUtils.js";
10
11
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
11
12
  import MediaRange from "@ui5/webcomponents-base/dist/MediaRange.js";
@@ -322,7 +323,11 @@ class Popup extends UI5Element {
322
323
  }
323
324
 
324
325
  _onkeydown(e) {
325
- if (e.target === this._root && isTabPrevious(e)) {
326
+ const isTabOutAttempt = e.target === this._root && isTabPrevious(e);
327
+ // if the popup is closed, focus is already moved, so Enter keydown may result in click on the newly focused element
328
+ const isEnterOnClosedPopupChild = isEnter(e) && !this.isOpen();
329
+
330
+ if (isTabOutAttempt || isEnterOnClosedPopupChild) {
326
331
  e.preventDefault();
327
332
  }
328
333
  }
@@ -446,6 +451,7 @@ class Popup extends UI5Element {
446
451
 
447
452
  this._zIndex = getNextZIndex();
448
453
  this.style.zIndex = this._zIndex;
454
+
449
455
  this._focusedElementBeforeOpen = getFocusedElement();
450
456
 
451
457
  this._show();
@@ -591,6 +597,10 @@ class Popup extends UI5Element {
591
597
  return this.shadowRoot.querySelector(".ui5-popup-root");
592
598
  }
593
599
 
600
+ get _role() {
601
+ return "dialog";
602
+ }
603
+
594
604
  get contentDOM() {
595
605
  return this.shadowRoot.querySelector(".ui5-popup-content");
596
606
  }
@@ -609,6 +619,7 @@ class Popup extends UI5Element {
609
619
  return {
610
620
  root: {
611
621
  "ui5-popup-root": true,
622
+ "ui5-content-native-scrollbars": getEffectiveScrollbarStyle(),
612
623
  },
613
624
  content: {
614
625
  "ui5-popup-content": true,
@@ -37,7 +37,7 @@
37
37
  aria-labelledby="{{_ariaLabelledByStartHandleRefs}}"
38
38
  aria-disabled="{{_ariaDisabled}}"
39
39
  >
40
- <ui5-icon name="source-code" slider-icon></ui5-icon>
40
+ <ui5-icon name="direction-arrows" slider-icon></ui5-icon>
41
41
 
42
42
  {{#if showTooltip}}
43
43
  <div class="ui5-slider-tooltip ui5-slider-tooltip--start" style="{{styles.tooltip}}">
@@ -59,7 +59,7 @@
59
59
  aria-labelledby="{{_ariaLabelledByEndHandleRefs}}"
60
60
  aria-disabled="{{_ariaDisabled}}"
61
61
  >
62
- <ui5-icon name="source-code" slider-icon></ui5-icon>
62
+ <ui5-icon name="direction-arrows" slider-icon></ui5-icon>
63
63
 
64
64
  {{#if showTooltip}}
65
65
  <div class="ui5-slider-tooltip ui5-slider-tooltip--end" style="{{styles.tooltip}}">
@@ -183,7 +183,7 @@ class RangeSlider extends SliderBase {
183
183
  /**
184
184
  * Check if the previously saved state is outdated. That would mean
185
185
  * either it is the initial rendering or that a property has been changed
186
- * programatically - because the previous state is always updated in
186
+ * programmatically - because the previous state is always updated in
187
187
  * the interaction handlers.
188
188
  *
189
189
  * Normalize current properties, update the previously stored state.
package/src/Select.js CHANGED
@@ -641,7 +641,6 @@ class Select extends UI5Element {
641
641
  _beforeOpen() {
642
642
  this._selectedIndexBeforeOpen = this._selectedIndex;
643
643
  this._lastSelectedOption = this._filteredItems[this._selectedIndex];
644
- this.focused = false;
645
644
  }
646
645
 
647
646
  _afterOpen() {
@@ -650,7 +649,6 @@ class Select extends UI5Element {
650
649
 
651
650
  _afterClose() {
652
651
  this.opened = false;
653
- this.focused = true;
654
652
  this._iconPressed = false;
655
653
  this._listWidth = 0;
656
654