@ui5/webcomponents 1.2.4 → 1.3.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 (729) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +6 -1
  3. package/dist/Breadcrumbs.js +52 -2
  4. package/dist/Button.js +13 -10
  5. package/dist/CardHeader.js +0 -6
  6. package/dist/CheckBox.js +12 -0
  7. package/dist/ColorPicker.js +14 -10
  8. package/dist/ComboBox.js +13 -9
  9. package/dist/DatePicker.js +12 -5
  10. package/dist/DateTimePicker.js +3 -0
  11. package/dist/Icon.js +4 -9
  12. package/dist/Input.js +36 -4
  13. package/dist/Interfaces.js +10 -0
  14. package/dist/Link.js +1 -1
  15. package/dist/List.js +54 -5
  16. package/dist/ListItem.js +28 -5
  17. package/dist/ListItemBase.js +3 -1
  18. package/dist/Menu.js +500 -0
  19. package/dist/MenuItem.js +162 -0
  20. package/dist/MultiComboBox.js +229 -25
  21. package/dist/MultiInput.js +20 -9
  22. package/dist/Option.js +10 -0
  23. package/dist/Popover.js +8 -5
  24. package/dist/Popup.js +4 -0
  25. package/dist/RadioButton.js +10 -1
  26. package/dist/ResponsivePopover.js +4 -0
  27. package/dist/Select.js +3 -0
  28. package/dist/SliderBase.js +7 -4
  29. package/dist/SplitButton.js +13 -6
  30. package/dist/Tab.js +78 -4
  31. package/dist/TabContainer.js +193 -41
  32. package/dist/Table.js +240 -44
  33. package/dist/TableGroupRow.js +4 -1
  34. package/dist/TableRow.js +33 -66
  35. package/dist/TimePickerBase.js +11 -2
  36. package/dist/Token.js +2 -1
  37. package/dist/Tokenizer.js +26 -16
  38. package/dist/WheelSlider.js +7 -0
  39. package/dist/api.json +231 -9
  40. package/dist/css/themes/Avatar.css +1 -1
  41. package/dist/css/themes/Badge.css +1 -1
  42. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  43. package/dist/css/themes/Button.css +1 -1
  44. package/dist/css/themes/CalendarHeader.css +1 -1
  45. package/dist/css/themes/Card.css +1 -1
  46. package/dist/css/themes/CardHeader.css +1 -1
  47. package/dist/css/themes/CheckBox.css +1 -1
  48. package/dist/css/themes/ColorPalette.css +1 -1
  49. package/dist/css/themes/ColorPalettePopover.css +1 -1
  50. package/dist/css/themes/ColorPicker.css +1 -1
  51. package/dist/css/themes/ComboBox.css +1 -1
  52. package/dist/css/themes/DatePicker.css +1 -1
  53. package/dist/css/themes/DateTimePickerPopover.css +1 -1
  54. package/dist/css/themes/Dialog.css +1 -1
  55. package/dist/css/themes/Icon.css +1 -1
  56. package/dist/css/themes/Input.css +1 -1
  57. package/dist/css/themes/InputIcon.css +1 -1
  58. package/dist/css/themes/Label.css +1 -1
  59. package/dist/css/themes/Link.css +1 -1
  60. package/dist/css/themes/ListItem.css +1 -1
  61. package/dist/css/themes/Menu.css +1 -0
  62. package/dist/css/themes/MessageStrip.css +1 -1
  63. package/dist/css/themes/MultiComboBox.css +1 -1
  64. package/dist/css/themes/MultiInput.css +1 -1
  65. package/dist/css/themes/Panel.css +1 -1
  66. package/dist/css/themes/PopupsCommon.css +1 -1
  67. package/dist/css/themes/RadioButton.css +1 -1
  68. package/dist/css/themes/ResponsivePopoverCommon.css +1 -1
  69. package/dist/css/themes/SegmentedButton.css +1 -1
  70. package/dist/css/themes/Select.css +1 -1
  71. package/dist/css/themes/SplitButton.css +1 -1
  72. package/dist/css/themes/StepInput.css +1 -1
  73. package/dist/css/themes/Suggestions.css +1 -1
  74. package/dist/css/themes/TabContainer.css +1 -1
  75. package/dist/css/themes/TabInOverflow.css +1 -1
  76. package/dist/css/themes/TabInStrip.css +1 -1
  77. package/dist/css/themes/TabSeparatorInOverflow.css +1 -1
  78. package/dist/css/themes/Table.css +1 -1
  79. package/dist/css/themes/TableCell.css +1 -1
  80. package/dist/css/themes/TableColumn.css +1 -1
  81. package/dist/css/themes/TableGroupRow.css +1 -1
  82. package/dist/css/themes/TableRow.css +1 -1
  83. package/dist/css/themes/TextArea.css +1 -1
  84. package/dist/css/themes/TimePicker.css +1 -1
  85. package/dist/css/themes/Title.css +1 -1
  86. package/dist/css/themes/Toast.css +1 -1
  87. package/dist/css/themes/ToggleButton.css +1 -1
  88. package/dist/css/themes/TreeListItem.css +1 -1
  89. package/dist/css/themes/ValueStateMessage.css +1 -1
  90. package/dist/css/themes/sap_belize/parameters-bundle.css +1 -1
  91. package/dist/css/themes/sap_belize_hcb/parameters-bundle.css +1 -1
  92. package/dist/css/themes/sap_belize_hcw/parameters-bundle.css +1 -1
  93. package/dist/css/themes/sap_fiori_3/parameters-bundle.css +1 -1
  94. package/dist/css/themes/sap_fiori_3_dark/parameters-bundle.css +1 -1
  95. package/dist/css/themes/sap_fiori_3_hcb/parameters-bundle.css +1 -1
  96. package/dist/css/themes/sap_fiori_3_hcw/parameters-bundle.css +1 -1
  97. package/dist/css/themes/sap_horizon/parameters-bundle.css +1 -1
  98. package/dist/css/themes/sap_horizon_dark/parameters-bundle.css +1 -1
  99. package/dist/css/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  100. package/dist/css/themes/sap_horizon_hcb/parameters-bundle.css +1 -1
  101. package/dist/css/themes/sap_horizon_hcw/parameters-bundle.css +1 -1
  102. package/dist/features/InputElementsFormSupport.js +8 -5
  103. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -1
  104. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -1
  105. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -1
  106. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -1
  107. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -1
  108. package/dist/generated/assets/i18n/messagebundle_da.json +1 -1
  109. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  110. package/dist/generated/assets/i18n/messagebundle_el.json +1 -1
  111. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  112. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -1
  113. package/dist/generated/assets/i18n/messagebundle_en_US_sappsd.json +1 -1
  114. package/dist/generated/assets/i18n/messagebundle_en_US_saprigi.json +1 -1
  115. package/dist/generated/assets/i18n/messagebundle_en_US_saptrc.json +1 -1
  116. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  117. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -1
  118. package/dist/generated/assets/i18n/messagebundle_et.json +1 -1
  119. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -1
  120. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  121. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -1
  122. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -1
  123. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -1
  124. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -1
  125. package/dist/generated/assets/i18n/messagebundle_it.json +1 -1
  126. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -1
  127. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -1
  128. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -1
  129. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -1
  130. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -1
  131. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -1
  132. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -1
  133. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -1
  134. package/dist/generated/assets/i18n/messagebundle_no.json +1 -1
  135. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -1
  136. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -1
  137. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -1
  138. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -1
  139. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -1
  140. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -1
  141. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -1
  142. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -1
  143. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  144. package/dist/generated/assets/i18n/messagebundle_th.json +1 -1
  145. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  146. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  147. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -1
  148. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  149. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  150. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  151. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  152. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  153. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  154. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  155. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  156. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  157. package/dist/generated/assets/themes/sap_horizon/parameters-bundle.css.json +1 -1
  158. package/dist/generated/assets/themes/sap_horizon_dark/parameters-bundle.css.json +1 -1
  159. package/dist/generated/assets/themes/sap_horizon_exp/parameters-bundle.css.json +1 -1
  160. package/dist/generated/assets/themes/sap_horizon_hcb/parameters-bundle.css.json +1 -1
  161. package/dist/generated/assets/themes/sap_horizon_hcw/parameters-bundle.css.json +1 -1
  162. package/dist/generated/i18n/i18n-defaults.js +2 -2
  163. package/dist/generated/templates/AvatarGroupTemplate.lit.js +1 -1
  164. package/dist/generated/templates/AvatarTemplate.lit.js +1 -1
  165. package/dist/generated/templates/BadgeTemplate.lit.js +1 -1
  166. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +2 -2
  167. package/dist/generated/templates/BreadcrumbsTemplate.lit.js +3 -3
  168. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +1 -1
  169. package/dist/generated/templates/ButtonTemplate.lit.js +2 -2
  170. package/dist/generated/templates/CalendarHeaderTemplate.lit.js +1 -1
  171. package/dist/generated/templates/CalendarTemplate.lit.js +1 -1
  172. package/dist/generated/templates/CardHeaderTemplate.lit.js +4 -4
  173. package/dist/generated/templates/CardTemplate.lit.js +1 -1
  174. package/dist/generated/templates/CarouselTemplate.lit.js +4 -4
  175. package/dist/generated/templates/CheckBoxTemplate.lit.js +3 -3
  176. package/dist/generated/templates/ColorPaletteDialogTemplate.lit.js +1 -1
  177. package/dist/generated/templates/ColorPalettePopoverTemplate.lit.js +1 -1
  178. package/dist/generated/templates/ColorPaletteTemplate.lit.js +3 -3
  179. package/dist/generated/templates/ColorPickerTemplate.lit.js +1 -1
  180. package/dist/generated/templates/ComboBoxPopoverTemplate.lit.js +6 -6
  181. package/dist/generated/templates/ComboBoxTemplate.lit.js +3 -4
  182. package/dist/generated/templates/CustomListItemTemplate.lit.js +8 -8
  183. package/dist/generated/templates/DatePickerPopoverTemplate.lit.js +3 -3
  184. package/dist/generated/templates/DatePickerTemplate.lit.js +2 -2
  185. package/dist/generated/templates/DateTimePickerPopoverTemplate.lit.js +4 -4
  186. package/dist/generated/templates/DialogTemplate.lit.js +1 -1
  187. package/dist/generated/templates/FileUploaderPopoverTemplate.lit.js +2 -2
  188. package/dist/generated/templates/FileUploaderTemplate.lit.js +1 -1
  189. package/dist/generated/templates/InputPopoverTemplate.lit.js +8 -8
  190. package/dist/generated/templates/InputTemplate.lit.js +6 -7
  191. package/dist/generated/templates/LabelTemplate.lit.js +1 -1
  192. package/dist/generated/templates/ListItemTemplate.lit.js +8 -8
  193. package/dist/generated/templates/ListTemplate.lit.js +2 -2
  194. package/dist/generated/templates/MenuTemplate.lit.js +15 -0
  195. package/dist/generated/templates/MessageStripTemplate.lit.js +2 -2
  196. package/dist/generated/templates/MultiComboBoxPopoverTemplate.lit.js +10 -10
  197. package/dist/generated/templates/MultiComboBoxTemplate.lit.js +4 -5
  198. package/dist/generated/templates/MultiInputTemplate.lit.js +7 -8
  199. package/dist/generated/templates/PanelTemplate.lit.js +3 -3
  200. package/dist/generated/templates/PopoverTemplate.lit.js +1 -1
  201. package/dist/generated/templates/ProgressIndicatorTemplate.lit.js +2 -2
  202. package/dist/generated/templates/RadioButtonTemplate.lit.js +2 -2
  203. package/dist/generated/templates/RangeSliderTemplate.lit.js +1 -1
  204. package/dist/generated/templates/ResponsivePopoverTemplate.lit.js +4 -4
  205. package/dist/generated/templates/SegmentedButtonItemTemplate.lit.js +1 -1
  206. package/dist/generated/templates/SelectPopoverTemplate.lit.js +5 -5
  207. package/dist/generated/templates/SelectTemplate.lit.js +2 -2
  208. package/dist/generated/templates/SliderTemplate.lit.js +1 -1
  209. package/dist/generated/templates/SplitButtonTemplate.lit.js +1 -1
  210. package/dist/generated/templates/StandardListItemTemplate.lit.js +11 -11
  211. package/dist/generated/templates/StepInputTemplate.lit.js +3 -3
  212. package/dist/generated/templates/SuggestionListItemTemplate.lit.js +11 -11
  213. package/dist/generated/templates/SwitchTemplate.lit.js +3 -3
  214. package/dist/generated/templates/TabContainerPopoverTemplate.lit.js +2 -5
  215. package/dist/generated/templates/TabContainerTemplate.lit.js +10 -12
  216. package/dist/generated/templates/TabInOverflowTemplate.lit.js +3 -2
  217. package/dist/generated/templates/TabInStripTemplate.lit.js +5 -3
  218. package/dist/generated/templates/TabSeparatorInOverflowTemplate.lit.js +1 -1
  219. package/dist/generated/templates/TabTemplate.lit.js +2 -1
  220. package/dist/generated/templates/TableRowTemplate.lit.js +1 -1
  221. package/dist/generated/templates/TableTemplate.lit.js +3 -3
  222. package/dist/generated/templates/TextAreaPopoverTemplate.lit.js +1 -1
  223. package/dist/generated/templates/TimePickerPopoverTemplate.lit.js +1 -1
  224. package/dist/generated/templates/TimePickerTemplate.lit.js +2 -2
  225. package/dist/generated/templates/TimeSelectionTemplate.lit.js +4 -4
  226. package/dist/generated/templates/ToggleButtonTemplate.lit.js +2 -2
  227. package/dist/generated/templates/TokenTemplate.lit.js +1 -1
  228. package/dist/generated/templates/TokenizerPopoverTemplate.lit.js +5 -5
  229. package/dist/generated/templates/TreeListItemTemplate.lit.js +11 -11
  230. package/dist/generated/templates/TreeTemplate.lit.js +2 -2
  231. package/dist/generated/templates/WheelSliderTemplate.lit.js +1 -1
  232. package/dist/generated/themes/Avatar.css.js +1 -1
  233. package/dist/generated/themes/Badge.css.js +1 -1
  234. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  235. package/dist/generated/themes/Button.css.js +1 -1
  236. package/dist/generated/themes/CalendarHeader.css.js +1 -1
  237. package/dist/generated/themes/Card.css.js +1 -1
  238. package/dist/generated/themes/CardHeader.css.js +1 -1
  239. package/dist/generated/themes/CheckBox.css.js +1 -1
  240. package/dist/generated/themes/ColorPalette.css.js +1 -1
  241. package/dist/generated/themes/ColorPalettePopover.css.js +1 -1
  242. package/dist/generated/themes/ColorPicker.css.js +1 -1
  243. package/dist/generated/themes/ComboBox.css.js +1 -1
  244. package/dist/generated/themes/DatePicker.css.js +1 -1
  245. package/dist/generated/themes/DateTimePickerPopover.css.js +1 -1
  246. package/dist/generated/themes/Dialog.css.js +1 -1
  247. package/dist/generated/themes/Icon.css.js +1 -1
  248. package/dist/generated/themes/Input.css.js +1 -1
  249. package/dist/generated/themes/InputIcon.css.js +1 -1
  250. package/dist/generated/themes/Label.css.js +1 -1
  251. package/dist/generated/themes/Link.css.js +1 -1
  252. package/dist/generated/themes/ListItem.css.js +1 -1
  253. package/dist/generated/themes/Menu.css.js +8 -0
  254. package/dist/generated/themes/MessageStrip.css.js +1 -1
  255. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  256. package/dist/generated/themes/MultiInput.css.js +1 -1
  257. package/dist/generated/themes/Panel.css.js +1 -1
  258. package/dist/generated/themes/PopupsCommon.css.js +1 -1
  259. package/dist/generated/themes/RadioButton.css.js +1 -1
  260. package/dist/generated/themes/ResponsivePopoverCommon.css.js +1 -1
  261. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  262. package/dist/generated/themes/Select.css.js +1 -1
  263. package/dist/generated/themes/SplitButton.css.js +1 -1
  264. package/dist/generated/themes/StepInput.css.js +1 -1
  265. package/dist/generated/themes/Suggestions.css.js +1 -1
  266. package/dist/generated/themes/TabContainer.css.js +1 -1
  267. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  268. package/dist/generated/themes/TabInStrip.css.js +1 -1
  269. package/dist/generated/themes/TabSeparatorInOverflow.css.js +1 -1
  270. package/dist/generated/themes/Table.css.js +1 -1
  271. package/dist/generated/themes/TableCell.css.js +1 -1
  272. package/dist/generated/themes/TableColumn.css.js +1 -1
  273. package/dist/generated/themes/TableGroupRow.css.js +1 -1
  274. package/dist/generated/themes/TableRow.css.js +1 -1
  275. package/dist/generated/themes/TextArea.css.js +1 -1
  276. package/dist/generated/themes/TimePicker.css.js +1 -1
  277. package/dist/generated/themes/Title.css.js +1 -1
  278. package/dist/generated/themes/Toast.css.js +1 -1
  279. package/dist/generated/themes/ToggleButton.css.js +1 -1
  280. package/dist/generated/themes/TreeListItem.css.js +1 -1
  281. package/dist/generated/themes/ValueStateMessage.css.js +1 -1
  282. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  283. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  284. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  285. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  286. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  287. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  288. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  289. package/dist/generated/themes/sap_horizon/parameters-bundle.css.js +1 -1
  290. package/dist/generated/themes/sap_horizon_dark/parameters-bundle.css.js +1 -1
  291. package/dist/generated/themes/sap_horizon_exp/parameters-bundle.css.js +1 -1
  292. package/dist/generated/themes/sap_horizon_hcb/parameters-bundle.css.js +1 -1
  293. package/dist/generated/themes/sap_horizon_hcw/parameters-bundle.css.js +1 -1
  294. package/dist/i18n/messagebundle.properties +8 -0
  295. package/dist/i18n/messagebundle_ar.properties +6 -0
  296. package/dist/i18n/messagebundle_bg.properties +6 -0
  297. package/dist/i18n/messagebundle_ca.properties +6 -0
  298. package/dist/i18n/messagebundle_cs.properties +6 -0
  299. package/dist/i18n/messagebundle_cy.properties +6 -0
  300. package/dist/i18n/messagebundle_da.properties +6 -0
  301. package/dist/i18n/messagebundle_de.properties +6 -0
  302. package/dist/i18n/messagebundle_el.properties +6 -0
  303. package/dist/i18n/messagebundle_en.properties +6 -0
  304. package/dist/i18n/messagebundle_en_GB.properties +6 -0
  305. package/dist/i18n/messagebundle_en_US_sappsd.properties +6 -0
  306. package/dist/i18n/messagebundle_en_US_saprigi.properties +7 -0
  307. package/dist/i18n/messagebundle_en_US_saptrc.properties +6 -0
  308. package/dist/i18n/messagebundle_es.properties +6 -0
  309. package/dist/i18n/messagebundle_es_MX.properties +6 -0
  310. package/dist/i18n/messagebundle_et.properties +6 -0
  311. package/dist/i18n/messagebundle_fi.properties +6 -0
  312. package/dist/i18n/messagebundle_fr.properties +6 -0
  313. package/dist/i18n/messagebundle_fr_CA.properties +6 -0
  314. package/dist/i18n/messagebundle_hi.properties +6 -0
  315. package/dist/i18n/messagebundle_hr.properties +6 -0
  316. package/dist/i18n/messagebundle_hu.properties +6 -0
  317. package/dist/i18n/messagebundle_id.properties +6 -0
  318. package/dist/i18n/messagebundle_it.properties +6 -0
  319. package/dist/i18n/messagebundle_iw.properties +6 -0
  320. package/dist/i18n/messagebundle_ja.properties +6 -0
  321. package/dist/i18n/messagebundle_kk.properties +6 -0
  322. package/dist/i18n/messagebundle_ko.properties +6 -0
  323. package/dist/i18n/messagebundle_lt.properties +6 -0
  324. package/dist/i18n/messagebundle_lv.properties +6 -0
  325. package/dist/i18n/messagebundle_ms.properties +6 -0
  326. package/dist/i18n/messagebundle_nl.properties +6 -0
  327. package/dist/i18n/messagebundle_no.properties +6 -0
  328. package/dist/i18n/messagebundle_pl.properties +6 -0
  329. package/dist/i18n/messagebundle_pt.properties +6 -0
  330. package/dist/i18n/messagebundle_pt_PT.properties +6 -0
  331. package/dist/i18n/messagebundle_ro.properties +6 -0
  332. package/dist/i18n/messagebundle_ru.properties +6 -0
  333. package/dist/i18n/messagebundle_sh.properties +6 -0
  334. package/dist/i18n/messagebundle_sk.properties +6 -0
  335. package/dist/i18n/messagebundle_sl.properties +6 -0
  336. package/dist/i18n/messagebundle_sv.properties +6 -0
  337. package/dist/i18n/messagebundle_th.properties +6 -0
  338. package/dist/i18n/messagebundle_tr.properties +6 -0
  339. package/dist/i18n/messagebundle_uk.properties +6 -0
  340. package/dist/i18n/messagebundle_vi.properties +6 -0
  341. package/dist/i18n/messagebundle_zh_CN.properties +6 -0
  342. package/dist/i18n/messagebundle_zh_TW.properties +6 -0
  343. package/dist/types/ListGrowingMode.js +36 -3
  344. package/dist/types/TableGrowingMode.js +35 -2
  345. package/package.json +7 -10
  346. package/src/Badge.hbs +0 -1
  347. package/src/Breadcrumbs.hbs +5 -3
  348. package/src/Breadcrumbs.js +52 -2
  349. package/src/BreadcrumbsPopover.hbs +1 -0
  350. package/src/Button.hbs +0 -1
  351. package/src/Button.js +13 -10
  352. package/src/CalendarHeader.hbs +1 -4
  353. package/src/Card.hbs +0 -1
  354. package/src/CardHeader.hbs +18 -15
  355. package/src/CardHeader.js +0 -6
  356. package/src/CheckBox.hbs +1 -1
  357. package/src/CheckBox.js +12 -0
  358. package/src/ColorPicker.hbs +2 -2
  359. package/src/ColorPicker.js +14 -10
  360. package/src/ComboBox.hbs +1 -5
  361. package/src/ComboBox.js +13 -9
  362. package/src/ComboBoxPopover.hbs +2 -1
  363. package/src/DatePicker.js +12 -5
  364. package/src/DateTimePicker.js +3 -0
  365. package/src/DateTimePickerPopover.hbs +1 -1
  366. package/src/Icon.js +4 -9
  367. package/src/Input.hbs +1 -5
  368. package/src/Input.js +36 -4
  369. package/src/InputPopover.hbs +2 -1
  370. package/src/Interfaces.js +10 -0
  371. package/src/Label.hbs +1 -2
  372. package/src/Link.js +1 -1
  373. package/src/List.hbs +1 -0
  374. package/src/List.js +54 -5
  375. package/src/ListItem.hbs +1 -1
  376. package/src/ListItem.js +28 -5
  377. package/src/ListItemBase.js +3 -1
  378. package/src/Menu.hbs +100 -0
  379. package/src/Menu.js +500 -0
  380. package/src/MenuItem.js +162 -0
  381. package/src/MultiComboBox.hbs +2 -6
  382. package/src/MultiComboBox.js +229 -25
  383. package/src/MultiInput.hbs +1 -1
  384. package/src/MultiInput.js +20 -9
  385. package/src/Option.js +10 -0
  386. package/src/Panel.hbs +0 -1
  387. package/src/Popover.hbs +1 -1
  388. package/src/Popover.js +8 -5
  389. package/src/Popup.js +4 -0
  390. package/src/RadioButton.hbs +1 -1
  391. package/src/RadioButton.js +10 -1
  392. package/src/ResponsivePopover.js +4 -0
  393. package/src/Select.hbs +1 -1
  394. package/src/Select.js +3 -0
  395. package/src/SelectPopover.hbs +1 -0
  396. package/src/SliderBase.js +7 -4
  397. package/src/SplitButton.js +13 -6
  398. package/src/StandardListItem.hbs +2 -2
  399. package/src/Switch.hbs +1 -1
  400. package/src/Tab.hbs +5 -1
  401. package/src/Tab.js +78 -4
  402. package/src/TabContainer.hbs +11 -13
  403. package/src/TabContainer.js +193 -41
  404. package/src/TabContainerPopover.hbs +4 -10
  405. package/src/TabInOverflow.hbs +15 -8
  406. package/src/TabInStrip.hbs +19 -2
  407. package/src/TabSeparatorInOverflow.hbs +1 -0
  408. package/src/Table.hbs +7 -2
  409. package/src/Table.js +240 -44
  410. package/src/TableGroupRow.js +4 -1
  411. package/src/TableRow.js +33 -66
  412. package/src/TimePickerBase.js +11 -2
  413. package/src/Token.js +2 -1
  414. package/src/Tokenizer.js +26 -16
  415. package/src/TokenizerPopover.hbs +16 -17
  416. package/src/WheelSlider.js +7 -0
  417. package/src/features/InputElementsFormSupport.js +8 -5
  418. package/src/i18n/messagebundle.properties +8 -0
  419. package/src/i18n/messagebundle_ar.properties +6 -0
  420. package/src/i18n/messagebundle_bg.properties +6 -0
  421. package/src/i18n/messagebundle_ca.properties +6 -0
  422. package/src/i18n/messagebundle_cs.properties +6 -0
  423. package/src/i18n/messagebundle_cy.properties +6 -0
  424. package/src/i18n/messagebundle_da.properties +6 -0
  425. package/src/i18n/messagebundle_de.properties +6 -0
  426. package/src/i18n/messagebundle_el.properties +6 -0
  427. package/src/i18n/messagebundle_en.properties +6 -0
  428. package/src/i18n/messagebundle_en_GB.properties +6 -0
  429. package/src/i18n/messagebundle_en_US_sappsd.properties +6 -0
  430. package/src/i18n/messagebundle_en_US_saprigi.properties +7 -0
  431. package/src/i18n/messagebundle_en_US_saptrc.properties +6 -0
  432. package/src/i18n/messagebundle_es.properties +6 -0
  433. package/src/i18n/messagebundle_es_MX.properties +6 -0
  434. package/src/i18n/messagebundle_et.properties +6 -0
  435. package/src/i18n/messagebundle_fi.properties +6 -0
  436. package/src/i18n/messagebundle_fr.properties +6 -0
  437. package/src/i18n/messagebundle_fr_CA.properties +6 -0
  438. package/src/i18n/messagebundle_hi.properties +6 -0
  439. package/src/i18n/messagebundle_hr.properties +6 -0
  440. package/src/i18n/messagebundle_hu.properties +6 -0
  441. package/src/i18n/messagebundle_id.properties +6 -0
  442. package/src/i18n/messagebundle_it.properties +6 -0
  443. package/src/i18n/messagebundle_iw.properties +6 -0
  444. package/src/i18n/messagebundle_ja.properties +6 -0
  445. package/src/i18n/messagebundle_kk.properties +6 -0
  446. package/src/i18n/messagebundle_ko.properties +6 -0
  447. package/src/i18n/messagebundle_lt.properties +6 -0
  448. package/src/i18n/messagebundle_lv.properties +6 -0
  449. package/src/i18n/messagebundle_ms.properties +6 -0
  450. package/src/i18n/messagebundle_nl.properties +6 -0
  451. package/src/i18n/messagebundle_no.properties +6 -0
  452. package/src/i18n/messagebundle_pl.properties +6 -0
  453. package/src/i18n/messagebundle_pt.properties +6 -0
  454. package/src/i18n/messagebundle_pt_PT.properties +6 -0
  455. package/src/i18n/messagebundle_ro.properties +6 -0
  456. package/src/i18n/messagebundle_ru.properties +6 -0
  457. package/src/i18n/messagebundle_sh.properties +6 -0
  458. package/src/i18n/messagebundle_sk.properties +6 -0
  459. package/src/i18n/messagebundle_sl.properties +6 -0
  460. package/src/i18n/messagebundle_sv.properties +6 -0
  461. package/src/i18n/messagebundle_th.properties +6 -0
  462. package/src/i18n/messagebundle_tr.properties +6 -0
  463. package/src/i18n/messagebundle_uk.properties +6 -0
  464. package/src/i18n/messagebundle_vi.properties +6 -0
  465. package/src/i18n/messagebundle_zh_CN.properties +6 -0
  466. package/src/i18n/messagebundle_zh_TW.properties +6 -0
  467. package/src/themes/Avatar.css +37 -52
  468. package/src/themes/Badge.css +1 -7
  469. package/src/themes/BreadcrumbsPopover.css +4 -0
  470. package/src/themes/Button.css +62 -87
  471. package/src/themes/CalendarHeader.css +2 -7
  472. package/src/themes/Card.css +7 -4
  473. package/src/themes/CardHeader.css +24 -26
  474. package/src/themes/CheckBox.css +8 -24
  475. package/src/themes/ColorPalette.css +2 -0
  476. package/src/themes/ColorPalettePopover.css +4 -0
  477. package/src/themes/ColorPicker.css +16 -0
  478. package/src/themes/ComboBox.css +1 -0
  479. package/src/themes/DateTimePickerPopover.css +5 -1
  480. package/src/themes/Dialog.css +20 -6
  481. package/src/themes/Icon.css +15 -3
  482. package/src/themes/Input.css +174 -131
  483. package/src/themes/InputIcon.css +12 -3
  484. package/src/themes/Label.css +1 -7
  485. package/src/themes/Link.css +32 -15
  486. package/src/themes/ListItem.css +8 -38
  487. package/src/themes/Menu.css +101 -0
  488. package/src/themes/MessageStrip.css +17 -47
  489. package/src/themes/MultiComboBox.css +1 -0
  490. package/src/themes/Panel.css +21 -14
  491. package/src/themes/PopupsCommon.css +12 -11
  492. package/src/themes/RadioButton.css +74 -8
  493. package/src/themes/ResponsivePopoverCommon.css +50 -50
  494. package/src/themes/SegmentedButton.css +36 -10
  495. package/src/themes/Select.css +1 -5
  496. package/src/themes/SplitButton.css +143 -32
  497. package/src/themes/StepInput.css +10 -8
  498. package/src/themes/Suggestions.css +4 -0
  499. package/src/themes/TabContainer.css +35 -2
  500. package/src/themes/TabInOverflow.css +15 -9
  501. package/src/themes/TabInStrip.css +67 -28
  502. package/src/themes/TabSeparatorInOverflow.css +2 -1
  503. package/src/themes/Table.css +7 -2
  504. package/src/themes/TableCell.css +2 -6
  505. package/src/themes/TableColumn.css +1 -3
  506. package/src/themes/TableGroupRow.css +6 -4
  507. package/src/themes/TableRow.css +28 -20
  508. package/src/themes/TextArea.css +93 -36
  509. package/src/themes/Title.css +7 -7
  510. package/src/themes/Toast.css +1 -1
  511. package/src/themes/ToggleButton.css +90 -50
  512. package/src/themes/TreeListItem.css +1 -7
  513. package/src/themes/ValueStateMessage.css +8 -10
  514. package/src/themes/base/Avatar-parameters.css +19 -0
  515. package/src/themes/base/Button-parameters.css +5 -0
  516. package/src/themes/base/Card-parameters.css +5 -3
  517. package/src/themes/base/CheckBox-parameters.css +5 -2
  518. package/src/themes/base/Dialog-parameters.css +5 -4
  519. package/src/themes/base/Input-parameters.css +44 -44
  520. package/src/themes/base/InputIcon-parameters.css +10 -2
  521. package/src/themes/base/Link-parameters.css +7 -1
  522. package/src/themes/base/MessageStrip-parameters.css +4 -7
  523. package/src/themes/base/Panel-parameters.css +4 -4
  524. package/src/themes/base/PopupsCommon-parameters.css +1 -3
  525. package/src/themes/base/RadioButton-parameters.css +18 -2
  526. package/src/themes/base/SegmentedButtton-parameters.css +3 -2
  527. package/src/themes/base/SplitButton-parameters.css +17 -0
  528. package/src/themes/base/StepInput-parameters.css +1 -0
  529. package/src/themes/base/TabContainer-parameters.css +15 -0
  530. package/src/themes/base/Table-parameters.css +2 -0
  531. package/src/themes/base/TableGroupRow-parameters.css +4 -0
  532. package/src/themes/base/TextArea-parameters.css +8 -6
  533. package/src/themes/base/ValueStateMessage-parameters.css +6 -0
  534. package/src/themes/base/rtl-parameters.css +16 -0
  535. package/src/themes/base/sizes-parameters.css +47 -6
  536. package/src/themes/sap_belize/Card-parameters.css +5 -0
  537. package/src/themes/sap_belize/Input-parameters.css +16 -1
  538. package/src/themes/sap_belize/InputIcon-parameters.css +1 -1
  539. package/src/themes/sap_belize/Panel-parameters.css +12 -0
  540. package/src/themes/sap_belize/PopupsCommon-parameters.css +5 -0
  541. package/src/themes/sap_belize/SplitButton-parameters.css +6 -0
  542. package/src/themes/sap_belize/TableRow-parameters.css +5 -0
  543. package/src/themes/sap_belize/parameters-bundle.css +8 -5
  544. package/src/themes/sap_belize/sizes-parameters.css +15 -0
  545. package/src/themes/sap_belize_hcb/Button-parameters.css +2 -2
  546. package/src/themes/sap_belize_hcb/Card-parameters.css +2 -1
  547. package/src/themes/sap_belize_hcb/Input-parameters.css +19 -0
  548. package/src/themes/sap_belize_hcb/InputIcon-parameters.css +1 -1
  549. package/src/themes/sap_belize_hcb/Link-parameters.css +2 -1
  550. package/src/themes/sap_belize_hcb/MessageStrip-parameters.css +0 -1
  551. package/src/themes/sap_belize_hcb/Panel-parameters.css +8 -0
  552. package/src/themes/sap_belize_hcb/PopupsCommon-parameters.css +5 -0
  553. package/src/themes/sap_belize_hcb/RadioButton-parameters.css +6 -2
  554. package/src/themes/sap_belize_hcb/SplitButton-parameters.css +10 -0
  555. package/src/themes/sap_belize_hcb/TableRow-parameters.css +1 -0
  556. package/src/themes/sap_belize_hcb/TextArea-parameters.css +3 -0
  557. package/src/themes/sap_belize_hcb/ValueStateMessage-parameters.css +2 -0
  558. package/src/themes/sap_belize_hcb/parameters-bundle.css +6 -3
  559. package/src/themes/sap_belize_hcb/sizes-parameters.css +15 -0
  560. package/src/themes/sap_belize_hcw/Button-parameters.css +2 -2
  561. package/src/themes/sap_belize_hcw/Card-parameters.css +2 -1
  562. package/src/themes/sap_belize_hcw/Input-parameters.css +19 -0
  563. package/src/themes/sap_belize_hcw/InputIcon-parameters.css +1 -1
  564. package/src/themes/sap_belize_hcw/Link-parameters.css +2 -1
  565. package/src/themes/sap_belize_hcw/MessageStrip-parameters.css +0 -1
  566. package/src/themes/sap_belize_hcw/Panel-parameters.css +8 -0
  567. package/src/themes/sap_belize_hcw/PopupsCommon-parameters.css +5 -0
  568. package/src/themes/sap_belize_hcw/RadioButton-parameters.css +5 -1
  569. package/src/themes/sap_belize_hcw/SplitButton-parameters.css +10 -0
  570. package/src/themes/sap_belize_hcw/TableRow-parameters.css +1 -0
  571. package/src/themes/sap_belize_hcw/TextArea-parameters.css +3 -0
  572. package/src/themes/sap_belize_hcw/ValueStateMessage-parameters.css +2 -0
  573. package/src/themes/sap_belize_hcw/parameters-bundle.css +7 -4
  574. package/src/themes/sap_belize_hcw/sizes-parameters.css +15 -0
  575. package/src/themes/sap_fiori_3/Button-parameters.css +1 -0
  576. package/src/themes/sap_fiori_3/Input-parameters.css +0 -2
  577. package/src/themes/sap_fiori_3/Link-parameters.css +0 -1
  578. package/src/themes/sap_fiori_3/Panel-parameters.css +0 -1
  579. package/src/themes/sap_fiori_3/TabContainer-parameters.css +1 -0
  580. package/src/themes/sap_fiori_3/parameters-bundle.css +4 -1
  581. package/src/themes/sap_fiori_3_dark/Button-parameters.css +1 -0
  582. package/src/themes/sap_fiori_3_dark/Input-parameters.css +0 -2
  583. package/src/themes/sap_fiori_3_dark/Link-parameters.css +0 -1
  584. package/src/themes/sap_fiori_3_dark/Panel-parameters.css +0 -1
  585. package/src/themes/sap_fiori_3_dark/TabContainer-parameters.css +1 -0
  586. package/src/themes/sap_fiori_3_dark/parameters-bundle.css +4 -1
  587. package/src/themes/sap_fiori_3_hcb/Button-parameters.css +3 -2
  588. package/src/themes/sap_fiori_3_hcb/Input-parameters.css +14 -7
  589. package/src/themes/sap_fiori_3_hcb/Link-parameters.css +4 -1
  590. package/src/themes/sap_fiori_3_hcb/MessageStrip-parameters.css +0 -1
  591. package/src/themes/sap_fiori_3_hcb/RadioButton-parameters.css +5 -1
  592. package/src/themes/sap_fiori_3_hcb/SplitButton-parameters.css +12 -0
  593. package/src/themes/sap_fiori_3_hcb/TextArea-parameters.css +3 -0
  594. package/src/themes/sap_fiori_3_hcb/ValueStateMessage-parameters.css +2 -0
  595. package/src/themes/sap_fiori_3_hcb/parameters-bundle.css +7 -4
  596. package/src/themes/sap_fiori_3_hcb/sizes-parameters.css +8 -0
  597. package/src/themes/sap_fiori_3_hcw/Button-parameters.css +3 -2
  598. package/src/themes/sap_fiori_3_hcw/Input-parameters.css +14 -7
  599. package/src/themes/sap_fiori_3_hcw/Link-parameters.css +4 -1
  600. package/src/themes/sap_fiori_3_hcw/MessageStrip-parameters.css +0 -1
  601. package/src/themes/sap_fiori_3_hcw/RadioButton-parameters.css +5 -1
  602. package/src/themes/sap_fiori_3_hcw/SplitButton-parameters.css +12 -0
  603. package/src/themes/sap_fiori_3_hcw/TextArea-parameters.css +3 -0
  604. package/src/themes/sap_fiori_3_hcw/ValueStateMessage-parameters.css +2 -0
  605. package/src/themes/sap_fiori_3_hcw/parameters-bundle.css +7 -4
  606. package/src/themes/sap_fiori_3_hcw/sizes-parameters.css +8 -0
  607. package/src/themes/sap_horizon/Avatar-parameters.css +47 -27
  608. package/src/themes/sap_horizon/BusyIndicator-parameters.css +1 -1
  609. package/src/themes/sap_horizon/Button-parameters.css +6 -7
  610. package/src/themes/sap_horizon/Card-parameters.css +8 -3
  611. package/src/themes/sap_horizon/CheckBox-parameters.css +38 -23
  612. package/src/themes/sap_horizon/Dialog-parameters.css +6 -6
  613. package/src/themes/sap_horizon/Icon-parameters.css +3 -0
  614. package/src/themes/sap_horizon/Input-parameters.css +28 -29
  615. package/src/themes/sap_horizon/InputIcon-parameters.css +11 -4
  616. package/src/themes/sap_horizon/Link-parameters.css +6 -2
  617. package/src/themes/sap_horizon/MessageStrip-parameters.css +1 -5
  618. package/src/themes/sap_horizon/Panel-parameters.css +2 -3
  619. package/src/themes/sap_horizon/RadioButton-parameters.css +10 -4
  620. package/src/themes/sap_horizon/SegmentedButtton-parameters.css +1 -1
  621. package/src/themes/sap_horizon/SplitButton-parameters.css +17 -0
  622. package/src/themes/sap_horizon/TabContainer-parameters.css +13 -4
  623. package/src/themes/sap_horizon/Table-parameters.css +2 -1
  624. package/src/themes/sap_horizon/TableGroupRow-parameters.css +6 -0
  625. package/src/themes/sap_horizon/TextArea-parameters.css +1 -6
  626. package/src/themes/sap_horizon/ToggleButton-parameters.css +1 -11
  627. package/src/themes/sap_horizon/ValueStateMessage-parameters.css +4 -1
  628. package/src/themes/sap_horizon/parameters-bundle.css +5 -3
  629. package/src/themes/sap_horizon/sizes-parameters.css +10 -0
  630. package/src/themes/sap_horizon_dark/Avatar-parameters.css +47 -27
  631. package/src/themes/sap_horizon_dark/BusyIndicator-parameters.css +1 -1
  632. package/src/themes/sap_horizon_dark/Button-parameters.css +6 -7
  633. package/src/themes/sap_horizon_dark/Card-parameters.css +8 -3
  634. package/src/themes/sap_horizon_dark/CheckBox-parameters.css +38 -23
  635. package/src/themes/sap_horizon_dark/Dialog-parameters.css +6 -6
  636. package/src/themes/sap_horizon_dark/Icon-parameters.css +3 -0
  637. package/src/themes/sap_horizon_dark/Input-parameters.css +27 -28
  638. package/src/themes/sap_horizon_dark/InputIcon-parameters.css +11 -4
  639. package/src/themes/sap_horizon_dark/Link-parameters.css +6 -2
  640. package/src/themes/sap_horizon_dark/MessageStrip-parameters.css +1 -5
  641. package/src/themes/sap_horizon_dark/Panel-parameters.css +2 -3
  642. package/src/themes/sap_horizon_dark/RadioButton-parameters.css +10 -4
  643. package/src/themes/sap_horizon_dark/SegmentedButtton-parameters.css +1 -1
  644. package/src/themes/sap_horizon_dark/SplitButton-parameters.css +17 -0
  645. package/src/themes/sap_horizon_dark/Table-parameters.css +2 -1
  646. package/src/themes/sap_horizon_dark/TableGroupRow-parameters.css +6 -0
  647. package/src/themes/sap_horizon_dark/TextArea-parameters.css +1 -6
  648. package/src/themes/sap_horizon_dark/ToggleButton-parameters.css +1 -11
  649. package/src/themes/sap_horizon_dark/ValueStateMessage-parameters.css +4 -1
  650. package/src/themes/sap_horizon_dark/parameters-bundle.css +5 -3
  651. package/src/themes/sap_horizon_dark/sizes-parameters.css +10 -0
  652. package/src/themes/sap_horizon_exp/Input-parameters.css +34 -37
  653. package/src/themes/sap_horizon_exp/InputIcon-parameters.css +4 -0
  654. package/src/themes/sap_horizon_exp/Link-parameters.css +1 -1
  655. package/src/themes/sap_horizon_exp/Panel-parameters.css +0 -1
  656. package/src/themes/sap_horizon_exp/Popover-parameters.css +0 -1
  657. package/src/themes/sap_horizon_exp/parameters-bundle.css +1 -1
  658. package/src/themes/sap_horizon_hcb/Avatar-parameters.css +44 -15
  659. package/src/themes/sap_horizon_hcb/BusyIndicator-parameters.css +5 -0
  660. package/src/themes/sap_horizon_hcb/Button-parameters.css +6 -6
  661. package/src/themes/sap_horizon_hcb/Card-parameters.css +6 -1
  662. package/src/themes/sap_horizon_hcb/CheckBox-parameters.css +46 -10
  663. package/src/themes/sap_horizon_hcb/Dialog-parameters.css +2 -3
  664. package/src/themes/sap_horizon_hcb/Input-parameters.css +17 -7
  665. package/src/themes/sap_horizon_hcb/InputIcon-parameters.css +7 -1
  666. package/src/themes/sap_horizon_hcb/Link-parameters.css +4 -1
  667. package/src/themes/sap_horizon_hcb/MessageStrip-parameters.css +1 -1
  668. package/src/themes/sap_horizon_hcb/Panel-parameters.css +3 -0
  669. package/src/themes/sap_horizon_hcb/RadioButton-parameters.css +9 -3
  670. package/src/themes/sap_horizon_hcb/SegmentedButtton-parameters.css +9 -0
  671. package/src/themes/sap_horizon_hcb/SplitButton-parameters.css +12 -0
  672. package/src/themes/sap_horizon_hcb/Table-parameters.css +4 -0
  673. package/src/themes/sap_horizon_hcb/TableGroupRow-parameters.css +6 -0
  674. package/src/themes/sap_horizon_hcb/TextArea-parameters.css +7 -0
  675. package/src/themes/sap_horizon_hcb/ToggleButton-parameters.css +1 -6
  676. package/src/themes/sap_horizon_hcb/ValueStateMessage-parameters.css +8 -0
  677. package/src/themes/sap_horizon_hcb/parameters-bundle.css +6 -3
  678. package/src/themes/sap_horizon_hcb/sizes-parameters.css +8 -0
  679. package/src/themes/sap_horizon_hcw/Avatar-parameters.css +44 -15
  680. package/src/themes/sap_horizon_hcw/BusyIndicator-parameters.css +5 -0
  681. package/src/themes/sap_horizon_hcw/Button-parameters.css +7 -7
  682. package/src/themes/sap_horizon_hcw/Card-parameters.css +6 -1
  683. package/src/themes/sap_horizon_hcw/CheckBox-parameters.css +46 -10
  684. package/src/themes/sap_horizon_hcw/Dialog-parameters.css +2 -3
  685. package/src/themes/sap_horizon_hcw/Input-parameters.css +17 -7
  686. package/src/themes/sap_horizon_hcw/InputIcon-parameters.css +7 -1
  687. package/src/themes/sap_horizon_hcw/Link-parameters.css +4 -1
  688. package/src/themes/sap_horizon_hcw/MessageStrip-parameters.css +1 -1
  689. package/src/themes/sap_horizon_hcw/Panel-parameters.css +4 -0
  690. package/src/themes/sap_horizon_hcw/RadioButton-parameters.css +11 -1
  691. package/src/themes/sap_horizon_hcw/SegmentedButtton-parameters.css +9 -0
  692. package/src/themes/sap_horizon_hcw/SplitButton-parameters.css +12 -0
  693. package/src/themes/sap_horizon_hcw/Table-parameters.css +4 -0
  694. package/src/themes/sap_horizon_hcw/TableGroupRow-parameters.css +6 -0
  695. package/src/themes/sap_horizon_hcw/TextArea-parameters.css +7 -0
  696. package/src/themes/sap_horizon_hcw/ToggleButton-parameters.css +1 -6
  697. package/src/themes/sap_horizon_hcw/ValueStateMessage-parameters.css +8 -0
  698. package/src/themes/sap_horizon_hcw/parameters-bundle.css +6 -3
  699. package/src/themes/sap_horizon_hcw/sizes-parameters.css +8 -0
  700. package/src/types/ListGrowingMode.js +36 -3
  701. package/src/types/TableGrowingMode.js +35 -2
  702. package/dist/webcomponentsjs/CHANGELOG.md +0 -61
  703. package/dist/webcomponentsjs/LICENSE.md +0 -19
  704. package/dist/webcomponentsjs/README.md +0 -246
  705. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  706. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  707. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js +0 -60
  708. package/dist/webcomponentsjs/bundles/webcomponents-pf_dom.js.map +0 -1
  709. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js +0 -95
  710. package/dist/webcomponentsjs/bundles/webcomponents-pf_js.js.map +0 -1
  711. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -360
  712. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  713. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -228
  714. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  715. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -185
  716. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  717. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  718. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -370
  719. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  720. package/dist/webcomponentsjs/webcomponents-loader.js +0 -206
  721. package/src/themes/base/Title-parameters.css +0 -8
  722. package/src/themes/sap_belize_hcb/Dialog-parameters.css +0 -7
  723. package/src/themes/sap_belize_hcw/Dialog-parameters.css +0 -7
  724. package/src/themes/sap_fiori_3_hcb/Dialog-parameters.css +0 -7
  725. package/src/themes/sap_fiori_3_hcb/InputIcon-parameters.css +0 -5
  726. package/src/themes/sap_fiori_3_hcw/Dialog-parameters.css +0 -7
  727. package/src/themes/sap_fiori_3_hcw/InputIcon-parameters.css +0 -5
  728. package/src/themes/sap_horizon/PopupsCommon-parameters.css +0 -9
  729. package/src/themes/sap_horizon_dark/PopupsCommon-parameters.css +0 -10
package/src/SliderBase.js CHANGED
@@ -159,6 +159,13 @@ class SliderBase extends UI5Element {
159
159
  max: null,
160
160
  labelInterval: null,
161
161
  };
162
+
163
+ this._ontouchstart = {
164
+ handleEvent(event) {
165
+ this._onmousedown(event);
166
+ },
167
+ passive: true,
168
+ };
162
169
  }
163
170
 
164
171
  static get metadata() {
@@ -255,10 +262,6 @@ class SliderBase extends UI5Element {
255
262
  }
256
263
  }
257
264
 
258
- _ontouchstart(event) {
259
- this._onmousedown(event);
260
- }
261
-
262
265
  /** Shows the tooltip(s) if the <code>showTooltip</code> property is set to true
263
266
  *
264
267
  * @private
@@ -302,6 +302,19 @@ class SplitButton extends UI5Element {
302
302
  SplitButton.i18nBundle = await getI18nBundle("@ui5/webcomponents");
303
303
  }
304
304
 
305
+ constructor() {
306
+ super();
307
+
308
+ this._textButtonPress = {
309
+ handleEvent(event) {
310
+ this._textButtonActive = true;
311
+ this.focused = false;
312
+ this._setTabIndexValue();
313
+ },
314
+ passive: true,
315
+ };
316
+ }
317
+
305
318
  onBeforeRendering() {
306
319
  this._textButtonIcon = this.textButton && this.activeIcon !== "" && (this._textButtonActive) && !this._shiftOrEscapePressed ? this.activeIcon : this.icon;
307
320
  if (this.disabled) {
@@ -383,12 +396,6 @@ class SplitButton extends UI5Element {
383
396
  this._setTabIndexValue();
384
397
  }
385
398
 
386
- _textButtonPress() {
387
- this._textButtonActive = true;
388
- this.focused = false;
389
- this._setTabIndexValue();
390
- }
391
-
392
399
  _setTabIndexValue() {
393
400
  const textButton = this.textButton,
394
401
  arrowButton = this.arrowButton,
@@ -33,12 +33,12 @@
33
33
 
34
34
  {{#*inline "iconBegin"}}
35
35
  {{#if displayIconBegin}}
36
- <ui5-icon part="icon" name="{{icon}}" class="ui5-li-icon"></ui5-icon>
36
+ <ui5-icon part="icon" name="{{icon}}" class="ui5-li-icon" accessible-role="presentation" aria-hidden="true"></ui5-icon>
37
37
  {{/if}}
38
38
  {{/inline}}
39
39
 
40
40
  {{#*inline "iconEnd"}}
41
41
  {{#if displayIconEnd}}
42
- <ui5-icon part="icon" name="{{icon}}" class="ui5-li-icon"></ui5-icon>
42
+ <ui5-icon part="icon" name="{{icon}}" class="ui5-li-icon" accessible-role="presentation" aria-hidden="true"></ui5-icon>
43
43
  {{/if}}
44
44
  {{/inline}}
package/src/Switch.hbs CHANGED
@@ -16,7 +16,7 @@
16
16
  <div class="ui5-switch-slider">
17
17
  {{#if graphical}}
18
18
  <span class="ui5-switch-text ui5-switch-text--on">
19
- <ui5-icon name="accept" dir="ltr" class="ui5-switch-icon-on"></ui5-icon>
19
+ <ui5-icon name="accept" class="ui5-switch-icon-on"></ui5-icon>
20
20
  </span>
21
21
  <span class="ui5-switch-text ui5-switch-text--off">
22
22
  <ui5-icon name="decline" class="ui5-switch-icon-off"></ui5-icon>
package/src/Tab.hbs CHANGED
@@ -1,3 +1,7 @@
1
1
  <div id="{{_id}}" class="ui5-tab-root">
2
- <slot></slot>
2
+ <slot name="{{this._defaultSlotName}}"></slot>
3
+
4
+ {{#each tabs}}
5
+ <slot name="{{this._effectiveSlotName}}"></slot>
6
+ {{/each}}
3
7
  </div>
package/src/Tab.js CHANGED
@@ -4,6 +4,7 @@ import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTempla
4
4
  import SemanticColor from "./types/SemanticColor.js";
5
5
  import TabContainer from "./TabContainer.js";
6
6
  import Icon from "./Icon.js";
7
+ import Button from "./Button.js";
7
8
  import CustomListItem from "./CustomListItem.js";
8
9
 
9
10
  // Templates
@@ -21,16 +22,42 @@ import overflowCss from "./generated/themes/TabInOverflow.css.js";
21
22
  */
22
23
  const metadata = {
23
24
  tag: "ui5-tab",
25
+ managedSlots: true,
26
+ languageAware: true,
24
27
  slots: /** @lends sap.ui.webcomponents.main.Tab.prototype */ {
25
28
 
26
29
  /**
27
- * Defines the tab content.
30
+ * Holds the content associated with this tab.
31
+ *
28
32
  * @type {Node[]}
29
- * @slot
30
33
  * @public
34
+ * @slot
31
35
  */
32
36
  "default": {
33
37
  type: Node,
38
+ propertyName: "content",
39
+ invalidateOnChildChange: {
40
+ properties: true,
41
+ slots: false,
42
+ },
43
+ },
44
+
45
+ /**
46
+ * Defines hierarchies with nested sub tabs.
47
+ * <br><br>
48
+ * <b>Note:</b> Use <code>ui5-tab</code> and <code>ui5-tab-separator</code> for the intended design.
49
+ *
50
+ * @type {sap.ui.webcomponents.main.ITab[]}
51
+ * @public
52
+ * @slot subTabs
53
+ */
54
+ subTabs: {
55
+ type: HTMLElement,
56
+ individualSlots: true,
57
+ invalidateOnChildChange: {
58
+ properties: true,
59
+ slots: false,
60
+ },
34
61
  },
35
62
  },
36
63
  properties: /** @lends sap.ui.webcomponents.main.Tab.prototype */ {
@@ -122,6 +149,14 @@ const metadata = {
122
149
  _selected: {
123
150
  type: Boolean,
124
151
  },
152
+
153
+ _realTab: {
154
+ type: Object,
155
+ },
156
+
157
+ _isTopLevelTab: {
158
+ type: Boolean,
159
+ },
125
160
  },
126
161
  events: /** @lends sap.ui.webcomponents.main.Tab.prototype */ {
127
162
  },
@@ -169,6 +204,7 @@ class Tab extends UI5Element {
169
204
  static get dependencies() {
170
205
  return [
171
206
  Icon,
207
+ Button,
172
208
  CustomListItem,
173
209
  ];
174
210
  }
@@ -199,6 +235,31 @@ class Tab extends UI5Element {
199
235
  return this.getAttribute("stable-dom-ref") || `${this._id}-stable-dom-ref`;
200
236
  }
201
237
 
238
+ get requiresExpandButton() {
239
+ return this.subTabs.length > 0 && this._isTopLevelTab && this._hasOwnContent;
240
+ }
241
+
242
+ get isSingleClickArea() {
243
+ return this.subTabs.length > 0 && this._isTopLevelTab && !this._hasOwnContent;
244
+ }
245
+
246
+ get isOnSelectedTabPath() {
247
+ return this._realTab === this || this.tabs.some(subTab => subTab.isOnSelectedTabPath);
248
+ }
249
+
250
+ get _effectiveSlotName() {
251
+ return this.isOnSelectedTabPath ? this._individualSlot : "disabled-slot";
252
+ }
253
+
254
+ get _defaultSlotName() {
255
+ return this._realTab === this ? "" : "disabled-slot";
256
+ }
257
+
258
+ get _hasOwnContent() {
259
+ return this.content.some(node => (node.nodeType !== Node.COMMENT_NODE
260
+ && (node.nodeType !== Node.TEXT_NODE || node.nodeValue.trim().length !== 0)));
261
+ }
262
+
202
263
  /**
203
264
  * Returns the DOM reference of the tab that is placed in the header.
204
265
  * <b>Note:</b> If you need a DOM ref to the tab content please use the <code>getDomRef</code> method.
@@ -238,13 +299,18 @@ class Tab extends UI5Element {
238
299
  }
239
300
 
240
301
  get effectiveSelected() {
241
- return this.selected || this._selected;
302
+ const subItemSelected = this.tabs.some(elem => elem.effectiveSelected);
303
+ return this.selected || this._selected || subItemSelected;
242
304
  }
243
305
 
244
306
  get effectiveHidden() {
245
307
  return !this.effectiveSelected;
246
308
  }
247
309
 
310
+ get tabs() {
311
+ return this.subTabs.filter(tab => !tab.isSeparator);
312
+ }
313
+
248
314
  get ariaLabelledBy() {
249
315
  const labels = [];
250
316
 
@@ -298,6 +364,10 @@ class Tab extends UI5Element {
298
364
  classes.push(`ui5-tab-strip-item--${this.design.toLowerCase()}`);
299
365
  }
300
366
 
367
+ if (this.isSingleClickArea) {
368
+ classes.push(`ui5-tab-strip-item--singleClickArea`);
369
+ }
370
+
301
371
  return classes.join(" ");
302
372
  }
303
373
 
@@ -322,11 +392,15 @@ class Tab extends UI5Element {
322
392
  classes.push("ui5-tab-overflow-item--disabled");
323
393
  }
324
394
 
395
+ if (this.selected) {
396
+ classes.push("ui5-tab-overflow-item--selectedSubTab");
397
+ }
398
+
325
399
  return classes.join(" ");
326
400
  }
327
401
 
328
402
  get overflowState() {
329
- return this.disabled ? "Inactive" : "Active";
403
+ return (this.disabled || this.isSingleClickArea) ? "Inactive" : "Active";
330
404
  }
331
405
  }
332
406
 
@@ -66,18 +66,16 @@
66
66
 
67
67
  {{#*inline "contentArea"}}
68
68
  <div class="{{classes.content}}" part="content">
69
- {{#each items}}
70
- {{#unless this.isSeparator}}
71
- <div
72
- class="ui5-tc__contentItem"
73
- id="ui5-tc-contentItem-{{this._posinset}}"
74
- ?hidden="{{this.effectiveHidden}}"
75
- role="tabpanel"
76
- aria-labelledby="{{this._id}}"
77
- >
78
- <slot name="{{this._individualSlot}}"></slot>
79
- </div>
80
- {{/unless}}
81
- {{/each}}
69
+ <div
70
+ class="ui5-tc__contentItem"
71
+ id="ui5-tc-content"
72
+ ?hidden="{{this._selectedTab.effectiveHidden}}"
73
+ role="tabpanel"
74
+ aria-labelledby="{{this._selectedTab._id}}"
75
+ >
76
+ {{#each items}}
77
+ <slot name="{{this._effectiveSlotName}}"></slot>
78
+ {{/each}}
79
+ </div>
82
80
  </div>
83
81
  {{/inline}}
@@ -239,6 +239,7 @@ const metadata = {
239
239
  _startOverflowText: {
240
240
  type: String,
241
241
  noAttribute: true,
242
+ defaultValue: "0",
242
243
  },
243
244
 
244
245
  _endOverflowText: {
@@ -256,6 +257,11 @@ const metadata = {
256
257
  type: Object,
257
258
  multiple: true,
258
259
  },
260
+
261
+ _overflowItems: {
262
+ type: Object,
263
+ multiple: true,
264
+ },
259
265
  },
260
266
  events: /** @lends sap.ui.webcomponents.main.TabContainer.prototype */ {
261
267
 
@@ -290,9 +296,14 @@ const metadata = {
290
296
  * The <code>ui5-tabcontainer</code> can hold two types of entities:
291
297
  * <ul>
292
298
  * <li><code>ui5-tab</code> - contains all the information on an item (text and icon)</li>
293
- * <li><code>ui5-tab-separator</code> - used to separate tabs with a vertical line</li>
299
+ * <li><code>ui5-tab-separator</code> - used to separate tabs with a line</li>
294
300
  * </ul>
295
301
  *
302
+ * <h3>Hierarchies</h3>
303
+ * Multiple sub tabs could be placed underneath one main tab. Nesting allows deeper hierarchies with indentations
304
+ * to indicate the level of each nested tab. When a tab has both sub tabs and own content its click area is split
305
+ * to allow the user to display the content or alternatively to expand / collapse the list of sub tabs.
306
+ *
296
307
  * <h3>CSS Shadow Parts</h3>
297
308
  *
298
309
  * <ui5-link target="_blank" href="https://developer.mozilla.org/en-US/docs/Web/CSS/::part">CSS Shadow Parts</ui5-link> allow developers to style elements inside the Shadow DOM.
@@ -372,29 +383,18 @@ class TabContainer extends UI5Element {
372
383
 
373
384
  onBeforeRendering() {
374
385
  // update selected tab
375
- const tabs = this._getTabs();
376
- if (tabs.length) {
377
- const selectedTabs = tabs.filter(tab => tab.selected);
386
+ this._allItemsAndSubItems = this._getAllSubItems(this.items, []);
387
+ if (this._allItemsAndSubItems.length) {
388
+ const selectedTabs = this._allItemsAndSubItems.filter(tab => tab.selected);
378
389
  if (selectedTabs.length) {
379
390
  this._selectedTab = selectedTabs[0];
380
391
  } else {
381
- this._selectedTab = tabs[0];
392
+ this._selectedTab = this._allItemsAndSubItems[0];
382
393
  this._selectedTab._selected = true;
383
394
  }
384
395
  }
385
396
 
386
- // Set external properties to items
387
- this.items.filter(item => !item.isSeparator).forEach((item, index, arr) => {
388
- item._isInline = this.tabLayout === TabLayout.Inline;
389
- item._mixedMode = this.mixedMode;
390
- item._posinset = index + 1;
391
- item._setsize = arr.length;
392
- item._getTabContainerHeaderItemCallback = _ => {
393
- return this.getDomRef().querySelector(`#${item._id}`);
394
- };
395
- item._itemSelectCallback = this._onItemSelect.bind(this);
396
- item._getRealDomRef = () => this.getDomRef().querySelector(`*[data-ui5-stable=${item.stableDomRef}]`);
397
- });
397
+ this._setItemsExternalProperties(this.items);
398
398
 
399
399
  if (!this._animationRunning) {
400
400
  this._contentCollapsed = this.collapsed;
@@ -419,15 +419,94 @@ class TabContainer extends UI5Element {
419
419
  ResizeHandler.deregister(this._getHeader(), this._handleResize);
420
420
  }
421
421
 
422
- _onTabStripClick(event) {
422
+ _setItemsExternalProperties(items) {
423
+ items.filter(item => !item.isSeparator).forEach((item, index, arr) => {
424
+ item._isInline = this.tabLayout === TabLayout.Inline;
425
+ item._mixedMode = this.mixedMode;
426
+ item._posinset = index + 1;
427
+ item._setsize = arr.length;
428
+ item._getTabContainerHeaderItemCallback = _ => this.getDomRef().querySelector(`#${item._id}`);
429
+ item._itemSelectCallback = this._onItemSelect.bind(this);
430
+ item._getRealDomRef = () => this.getDomRef().querySelector(`*[data-ui5-stable=${item.stableDomRef}]`);
431
+ item._realTab = this._selectedTab;
432
+ item._isTopLevelTab = this.items.some(i => i === item);
433
+ walk(items, tab => {
434
+ tab._realTab = item._realTab;
435
+ });
436
+ });
437
+ }
438
+
439
+ async _onTabStripClick(event) {
423
440
  const tab = getTab(event.target);
424
441
  if (!tab) {
425
442
  return;
426
443
  }
444
+ event.preventDefault();
445
+ event.stopPropagation();
446
+ if (event.target.hasAttribute("ui5-button")) {
447
+ this._onTabExpandButtonClick(event);
448
+ return;
449
+ }
450
+
451
+ if (!tab._realTab._hasOwnContent && tab._realTab.tabs.length) {
452
+ this._overflowItems = [];
453
+ this._overflowItems = tab._realTab.subTabs;
454
+ this._addStyleIndent(this._overflowItems, false);
455
+
456
+ this.responsivePopover = await this._respPopover();
457
+ if (this.responsivePopover.opened) {
458
+ this.responsivePopover.close();
459
+ } else {
460
+ this._setInitialFocus(this._getSelectedInPopover());
461
+ }
427
462
 
463
+ this.responsivePopover.showAt(tab);
464
+ return;
465
+ }
428
466
  this._onHeaderItemSelect(tab);
429
467
  }
430
468
 
469
+ async _onTabExpandButtonClick(event) {
470
+ event.stopPropagation();
471
+ event.preventDefault();
472
+ let button = event.target;
473
+ let tabInstance = button.tab;
474
+
475
+ if (tabInstance) {
476
+ tabInstance.focus();
477
+ }
478
+
479
+ if ((event.type === "keydown") && !event.target._realTab.isSingleClickArea) {
480
+ button = event.target.querySelectorAll(".ui5-tab-expand-button")[0];
481
+ tabInstance = event.target._realTab;
482
+ }
483
+
484
+ // if clicked between the expand button and the tab
485
+ if (!tabInstance) {
486
+ this._onHeaderItemSelect(button.parentElement);
487
+ return;
488
+ }
489
+
490
+ this._overflowItems = tabInstance.subTabs;
491
+ this._addStyleIndent(this._overflowItems, false);
492
+
493
+ this.responsivePopover = await this._respPopover();
494
+ if (this.responsivePopover.opened) {
495
+ this.responsivePopover.close();
496
+ } else {
497
+ this._setInitialFocus(this._getSelectedInPopover());
498
+ }
499
+ this.responsivePopover.showAt(button);
500
+ }
501
+
502
+ _setInitialFocus(selectedInPopover) {
503
+ if (selectedInPopover.length) {
504
+ this.responsivePopover.initialFocus = selectedInPopover[0].id;
505
+ } else {
506
+ this.responsivePopover.initialFocus = this.responsivePopover.content[0].items.filter(item => item.classList.contains("ui5-tab-overflow-item"))[0].id;
507
+ }
508
+ }
509
+
431
510
  _onTabStripKeyDown(event) {
432
511
  const tab = getTab(event.target);
433
512
  if (!tab) {
@@ -435,12 +514,24 @@ class TabContainer extends UI5Element {
435
514
  }
436
515
 
437
516
  if (isEnter(event)) {
438
- this._onHeaderItemSelect(tab);
517
+ if (tab._realTab.isSingleClickArea) {
518
+ this._onTabStripClick(event);
519
+ } else {
520
+ this._onHeaderItemSelect(tab);
521
+ }
439
522
  }
440
523
 
441
- // Prevent Scrolling
442
524
  if (isSpace(event)) {
443
- event.preventDefault();
525
+ event.preventDefault(); // prevent scrolling
526
+ }
527
+
528
+ if (isDown(event)) {
529
+ if (tab._realTab.requiresExpandButton) {
530
+ this._onTabExpandButtonClick(event);
531
+ }
532
+ if (tab._realTab.isSingleClickArea) {
533
+ this._onTabStripClick(event);
534
+ }
444
535
  }
445
536
  }
446
537
 
@@ -451,7 +542,12 @@ class TabContainer extends UI5Element {
451
542
  }
452
543
 
453
544
  if (isSpace(event)) {
454
- this._onHeaderItemSelect(tab);
545
+ event.preventDefault();
546
+ if (tab._realTab.isSingleClickArea) {
547
+ this._onTabStripClick(event);
548
+ } else {
549
+ this._onHeaderItemSelect(tab);
550
+ }
455
551
  }
456
552
  }
457
553
 
@@ -465,23 +561,40 @@ class TabContainer extends UI5Element {
465
561
  }
466
562
  }
467
563
 
468
- _onOverflowListItemClick(event) {
564
+ async _onOverflowListItemClick(event) {
469
565
  event.preventDefault(); // cancel the item selection
470
566
  const { item } = event.detail;
471
567
 
472
568
  this._onItemSelect(item);
473
- this.responsivePopover.close();
569
+ await this.responsivePopover.close();
570
+
474
571
  this._setItemsForStrip();
475
- this.shadowRoot.querySelector(`#${item.id}`).focus();
572
+
573
+ const selectedTopLevel = this._getRootTab(this._selectedTab);
574
+
575
+ selectedTopLevel.focus();
576
+ }
577
+
578
+ _getAllSubItems(items, result, level = 1) {
579
+ items.forEach(item => {
580
+ if (item.hasAttribute("ui5-tab") || item.hasAttribute("ui5-tab-separator")) {
581
+ item._level = level;
582
+ result.push(item);
583
+ if (item.subTabs) {
584
+ this._getAllSubItems(item.subTabs, result, level + 1);
585
+ }
586
+ }
587
+ });
588
+ return result;
476
589
  }
477
590
 
478
591
  _onItemSelect(target) {
479
- const selectedIndex = findIndex(this.items, item => item._id === target.id);
480
- const selectedTabIndex = findIndex(this._getTabs(), item => item._id === target.id);
481
- const selectedTab = this.items[selectedIndex];
592
+ const selectedIndex = findIndex(this._allItemsAndSubItems, item => item.__id === target.id);
593
+ const selectedTabIndex = findIndex(this._allItemsAndSubItems, item => item.__id === target.id);
594
+ const selectedTab = this._allItemsAndSubItems[selectedIndex];
482
595
 
483
596
  // update selected items
484
- this.items
597
+ this._allItemsAndSubItems
485
598
  .forEach((item, index) => {
486
599
  const selected = selectedIndex === index;
487
600
  item.selected = selected;
@@ -565,8 +678,7 @@ class TabContainer extends UI5Element {
565
678
 
566
679
  const overflowAttr = isEndOverflow ? "end-overflow" : "start-overflow";
567
680
 
568
- this._startOverflowItems = [];
569
- this._endOverflowItems = [];
681
+ this._overflowItems = [];
570
682
 
571
683
  this.items.forEach(item => {
572
684
  if (item.getTabInStripDomRef() && item.getTabInStripDomRef().hasAttribute(overflowAttr)) {
@@ -577,12 +689,14 @@ class TabContainer extends UI5Element {
577
689
  let button;
578
690
  if (isEndOverflow) {
579
691
  button = this.overflowButton[0] || overflow.querySelector("[ui5-button]");
580
- this._endOverflowItems = items;
692
+ this._overflowItems = items;
693
+ this._addStyleIndent(this._overflowItems, true);
581
694
  }
582
695
 
583
696
  if (isStartOverflow) {
584
697
  button = this.startOverflowButton[0] || overflow.querySelector("[ui5-button]");
585
- this._startOverflowItems = items;
698
+ this._overflowItems = items;
699
+ this._addStyleIndent(this._overflowItems, true);
586
700
  }
587
701
 
588
702
  this.responsivePopover = await this._respPopover();
@@ -594,14 +708,32 @@ class TabContainer extends UI5Element {
594
708
  }
595
709
  }
596
710
 
711
+ _getSelectedInPopover() {
712
+ return this.responsivePopover.content[0].items.filter(item => (item._realTab && item._realTab.selected));
713
+ }
714
+
715
+ _addStyleIndent(tabs, isOverflow) {
716
+ walk(tabs, tab => {
717
+ let level = tab._level;
718
+ if (!isOverflow) {
719
+ level -= 1;
720
+ }
721
+
722
+ if (tab._level > 1 && tab.isSeparator) {
723
+ level -= 1;
724
+ }
725
+
726
+ tab._style = {
727
+ "--_ui5-indentation-level": level / 2,
728
+ };
729
+ });
730
+ }
731
+
597
732
  async _onOverflowKeyDown(event) {
598
733
  const isEndOverflow = event.currentTarget.classList.contains("ui5-tc__overflow--end");
599
734
  const isStartOverflow = event.currentTarget.classList.contains("ui5-tc__overflow--start");
600
735
 
601
- switch (true) {
602
- case isDown(event):
603
- case isStartOverflow && isLeft(event):
604
- case isEndOverflow && isRight(event):
736
+ if (isDown(event) || (isStartOverflow && isLeft(event)) || (isEndOverflow && isRight(event))) {
605
737
  await this._onOverflowClick(event);
606
738
  }
607
739
  }
@@ -656,14 +788,24 @@ class TabContainer extends UI5Element {
656
788
  }
657
789
 
658
790
  this._itemNavigation._init();
659
- this._itemNavigation.setCurrentItem(this._selectedTab);
791
+ this._itemNavigation.setCurrentItem(this._getRootTab(this._selectedTab));
792
+ }
793
+
794
+ _getRootTab(tab) {
795
+ while (tab.hasAttribute("ui5-tab")) {
796
+ if (tab.parentElement.hasAttribute("ui5-tabcontainer")) {
797
+ break;
798
+ }
799
+ tab = tab.parentElement;
800
+ }
801
+ return tab;
660
802
  }
661
803
 
662
804
  _updateEndOverflow(itemsDomRefs) {
663
805
  // show end overflow
664
806
  this._getEndOverflow().removeAttribute("hidden");
665
-
666
- const selectedTabDomRef = this._selectedTab.getTabInStripDomRef();
807
+ const selectedTab = this._getRootTab(this._selectedTab);
808
+ const selectedTabDomRef = selectedTab.getTabInStripDomRef();
667
809
  const containerWidth = this._getTabStrip().offsetWidth;
668
810
 
669
811
  const selectedItemIndexAndWidth = this._getSelectedItemIndexAndWidth(itemsDomRefs, selectedTabDomRef);
@@ -679,7 +821,8 @@ class TabContainer extends UI5Element {
679
821
 
680
822
  _updateStartAndEndOverflow(itemsDomRefs) {
681
823
  let containerWidth = this._getTabStrip().offsetWidth;
682
- const selectedTabDomRef = this._selectedTab.getTabInStripDomRef();
824
+ const selectedTab = this._getRootTab(this._selectedTab);
825
+ const selectedTabDomRef = selectedTab.getTabInStripDomRef();
683
826
  const selectedItemIndexAndWidth = this._getSelectedItemIndexAndWidth(itemsDomRefs, selectedTabDomRef);
684
827
  const hasStartOverflow = this._hasStartOverflow(containerWidth, itemsDomRefs, selectedItemIndexAndWidth);
685
828
  const hasEndOverflow = this._hasEndOverflow(containerWidth, itemsDomRefs, selectedItemIndexAndWidth);
@@ -1087,6 +1230,15 @@ const findIndex = (arr, predicate) => {
1087
1230
  return -1;
1088
1231
  };
1089
1232
 
1233
+ const walk = (tabs, callback) => {
1234
+ [...tabs].forEach(tab => {
1235
+ callback(tab);
1236
+ if (tab.subTabs) {
1237
+ walk(tab.subTabs, callback);
1238
+ }
1239
+ });
1240
+ };
1241
+
1090
1242
  TabContainer.define();
1091
1243
 
1092
1244
  export default TabContainer;
@@ -8,15 +8,9 @@
8
8
  class="ui5-tab-container-responsive-popover"
9
9
  >
10
10
  <ui5-list mode="SingleSelect" separators="None" @ui5-item-click="{{_onOverflowListItemClick}}">
11
- {{#if _endOverflowItems.length}}
12
- {{#each _endOverflowItems}}
13
- {{this.overflowPresentation}}
14
- {{/each}}
15
- {{else}}
16
- {{#each _startOverflowItems}}
17
- {{this.overflowPresentation}}
18
- {{/each}}
19
- {{/if}}
11
+ {{#each _overflowItems}}
12
+ {{overflowPresentation}}
13
+ {{/each}}
20
14
  </ui5-list>
21
15
  <div slot="footer" class="ui5-responsive-popover-footer">
22
16
  <ui5-button
@@ -24,4 +18,4 @@
24
18
  @click="{{_closeRespPopover}}"
25
19
  >{{popoverCancelButtonText}}</ui5-button>
26
20
  </div>
27
- </ui5-responsive-popover>
21
+ </ui5-responsive-popover>