@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/dist/Popup.js CHANGED
@@ -591,6 +591,10 @@ class Popup extends UI5Element {
591
591
  return this.shadowRoot.querySelector(".ui5-popup-root");
592
592
  }
593
593
 
594
+ get contentDOM() {
595
+ return this.shadowRoot.querySelector(".ui5-popup-content");
596
+ }
597
+
594
598
  get styles() {
595
599
  return {
596
600
  root: {},
@@ -21,7 +21,12 @@ import WrappingType from "./types/WrappingType.js";
21
21
  import RadioButtonTemplate from "./generated/templates/RadioButtonTemplate.lit.js";
22
22
 
23
23
  // i18n
24
- import { VALUE_STATE_ERROR, VALUE_STATE_WARNING } from "./generated/i18n/i18n-defaults.js";
24
+ import {
25
+ VALUE_STATE_ERROR,
26
+ VALUE_STATE_WARNING,
27
+ VALUE_STATE_SUCCESS,
28
+ VALUE_STATE_INFORMATION,
29
+ } from "./generated/i18n/i18n-defaults.js";
25
30
 
26
31
  // Styles
27
32
  import radioButtonCss from "./generated/themes/RadioButton.css.js";
@@ -100,6 +105,8 @@ const metadata = {
100
105
  * <li><code>None</code></li>
101
106
  * <li><code>Error</code></li>
102
107
  * <li><code>Warning</code></li>
108
+ * <li><code>Success</code></li>
109
+ * <li><code>Information</code></li>
103
110
  * </ul>
104
111
  *
105
112
  * @type {ValueState}
@@ -446,6 +453,8 @@ class RadioButton extends UI5Element {
446
453
  return {
447
454
  "Error": RadioButton.i18nBundle.getText(VALUE_STATE_ERROR),
448
455
  "Warning": RadioButton.i18nBundle.getText(VALUE_STATE_WARNING),
456
+ "Success": RadioButton.i18nBundle.getText(VALUE_STATE_SUCCESS),
457
+ "Information": RadioButton.i18nBundle.getText(VALUE_STATE_INFORMATION),
449
458
  };
450
459
  }
451
460
 
@@ -167,6 +167,10 @@ class ResponsivePopover extends Popover {
167
167
  return this.shadowRoot.querySelector("[ui5-dialog]");
168
168
  }
169
169
 
170
+ get contentDOM() {
171
+ return this._isPhone ? this._dialog.contentDOM : super.contentDOM;
172
+ }
173
+
170
174
  get _isPhone() {
171
175
  return isPhone();
172
176
  }
package/dist/Select.js CHANGED
@@ -408,6 +408,7 @@ class Select extends UI5Element {
408
408
  value: opt.value,
409
409
  textContent: opt.textContent,
410
410
  title: opt.title,
411
+ additionalText: opt.additionalText,
411
412
  id: opt._id,
412
413
  stableDomRef: opt.stableDomRef,
413
414
  };
@@ -636,6 +637,7 @@ class Select extends UI5Element {
636
637
  _beforeOpen() {
637
638
  this._selectedIndexBeforeOpen = this._selectedIndex;
638
639
  this._lastSelectedOption = this._filteredItems[this._selectedIndex];
640
+ this.focused = false;
639
641
  }
640
642
 
641
643
  _afterOpen() {
@@ -644,6 +646,7 @@ class Select extends UI5Element {
644
646
 
645
647
  _afterClose() {
646
648
  this.opened = false;
649
+ this.focused = true;
647
650
  this._iconPressed = false;
648
651
  this._listWidth = 0;
649
652
 
@@ -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,
package/dist/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
 
@@ -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;