@sapudex/web-components 0.147.0 → 0.172.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 (471) hide show
  1. package/.eslintignore +1 -0
  2. package/bundle.esm.js +9 -0
  3. package/dist/Badge.d.ts +21 -14
  4. package/dist/Badge.js +20 -26
  5. package/dist/Badge.js.map +1 -1
  6. package/dist/Breadcrumbs.d.ts +23 -21
  7. package/dist/Breadcrumbs.js +58 -40
  8. package/dist/Breadcrumbs.js.map +1 -1
  9. package/dist/BreadcrumbsItem.js +0 -1
  10. package/dist/BreadcrumbsItem.js.map +1 -1
  11. package/dist/Checkbox.js +0 -1
  12. package/dist/Checkbox.js.map +1 -1
  13. package/dist/CountrySelector.d.ts +2 -2
  14. package/dist/CountrySelector.js +20 -12
  15. package/dist/CountrySelector.js.map +1 -1
  16. package/dist/DatePicker.d.ts +2 -2
  17. package/dist/DatePicker.js.map +1 -1
  18. package/dist/Dropdown.js +0 -3
  19. package/dist/Dropdown.js.map +1 -1
  20. package/dist/Footer.d.ts +53 -10
  21. package/dist/Footer.js +41 -11
  22. package/dist/Footer.js.map +1 -1
  23. package/dist/Link.d.ts +2 -5
  24. package/dist/Link.js +4 -8
  25. package/dist/Link.js.map +1 -1
  26. package/dist/List.d.ts +16 -1
  27. package/dist/List.js +154 -100
  28. package/dist/List.js.map +1 -1
  29. package/dist/ListItem.d.ts +1 -0
  30. package/dist/ListItem.js +3 -0
  31. package/dist/ListItem.js.map +1 -1
  32. package/dist/MastheadItem.d.ts +12 -2
  33. package/dist/MastheadItem.js +34 -7
  34. package/dist/MastheadItem.js.map +1 -1
  35. package/dist/MastheadMenu.d.ts +1 -0
  36. package/dist/MastheadMenu.js +13 -4
  37. package/dist/MastheadMenu.js.map +1 -1
  38. package/dist/MastheadMenuItem.d.ts +10 -0
  39. package/dist/MastheadMenuItem.js +24 -3
  40. package/dist/MastheadMenuItem.js.map +1 -1
  41. package/dist/MastheadMobileMenu.js +2 -2
  42. package/dist/MastheadMobileMenu.js.map +1 -1
  43. package/dist/MastheadProfileMenu.js +2 -2
  44. package/dist/MastheadProfileMenu.js.map +1 -1
  45. package/dist/MastheadShell.d.ts +4 -0
  46. package/dist/MastheadShell.js +21 -5
  47. package/dist/MastheadShell.js.map +1 -1
  48. package/dist/Pagination.d.ts +13 -3
  49. package/dist/Pagination.js +90 -57
  50. package/dist/Pagination.js.map +1 -1
  51. package/dist/PhoneNumberField.d.ts +3 -0
  52. package/dist/PhoneNumberField.js +9 -4
  53. package/dist/PhoneNumberField.js.map +1 -1
  54. package/dist/RangeSlider.js +0 -1
  55. package/dist/RangeSlider.js.map +1 -1
  56. package/dist/Search.d.ts +5 -4
  57. package/dist/Search.js +12 -12
  58. package/dist/Search.js.map +1 -1
  59. package/dist/SearchableListBase.d.ts +7 -1
  60. package/dist/SearchableListBase.js +47 -4
  61. package/dist/SearchableListBase.js.map +1 -1
  62. package/dist/SecondaryNavigation.d.ts +2 -2
  63. package/dist/SecondaryNavigation.js +20 -10
  64. package/dist/SecondaryNavigation.js.map +1 -1
  65. package/dist/SecondaryNavigationItem.d.ts +6 -3
  66. package/dist/SecondaryNavigationItem.js +50 -26
  67. package/dist/SecondaryNavigationItem.js.map +1 -1
  68. package/dist/SecondaryNavigationSubItem.d.ts +1 -0
  69. package/dist/SecondaryNavigationSubItem.js +3 -0
  70. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  71. package/dist/SegmentedButton.d.ts +2 -2
  72. package/dist/SegmentedButton.js.map +1 -1
  73. package/dist/SelectBox.js.map +1 -1
  74. package/dist/SideNavigationGroup.js +0 -1
  75. package/dist/SideNavigationGroup.js.map +1 -1
  76. package/dist/SideNavigationItem.js +0 -1
  77. package/dist/SideNavigationItem.js.map +1 -1
  78. package/dist/SideNavigationSubItem.js +0 -1
  79. package/dist/SideNavigationSubItem.js.map +1 -1
  80. package/dist/Slider.js +0 -1
  81. package/dist/Slider.js.map +1 -1
  82. package/dist/TabNavigation.js +2 -2
  83. package/dist/TabNavigation.js.map +1 -1
  84. package/dist/Tag.d.ts +1 -4
  85. package/dist/Tag.js +1 -5
  86. package/dist/Tag.js.map +1 -1
  87. package/dist/Tile.d.ts +1 -1
  88. package/dist/Tile.js +1 -1
  89. package/dist/Tile.js.map +1 -1
  90. package/dist/Toast.d.ts +0 -1
  91. package/dist/Toast.js +4 -3
  92. package/dist/Toast.js.map +1 -1
  93. package/dist/Wizard.js +1 -1
  94. package/dist/Wizard.js.map +1 -1
  95. package/dist/WizardTab.js +0 -1
  96. package/dist/WizardTab.js.map +1 -1
  97. package/dist/assets/{bundle.esm-6e8e301d.js → bundle.esm-981c5cbb.js} +187 -189
  98. package/dist/assets/messagebundle_ar-bb470511.js +1 -0
  99. package/dist/assets/messagebundle_bg-a533dfab.js +1 -0
  100. package/dist/assets/messagebundle_cs-c70a7f36.js +1 -0
  101. package/dist/assets/messagebundle_da-e292cac5.js +1 -0
  102. package/dist/assets/messagebundle_de-5c108de6.js +1 -0
  103. package/dist/assets/messagebundle_el-44746e0b.js +1 -0
  104. package/dist/assets/messagebundle_en-4997b226.js +1 -0
  105. package/dist/assets/messagebundle_es-c0c1060f.js +1 -0
  106. package/dist/assets/messagebundle_et-a5f15d3b.js +1 -0
  107. package/dist/assets/messagebundle_fi-f4b8eb82.js +1 -0
  108. package/dist/assets/messagebundle_fr-af18ac46.js +1 -0
  109. package/dist/assets/messagebundle_hr-d893e46d.js +1 -0
  110. package/dist/assets/messagebundle_hu-230c58c9.js +1 -0
  111. package/dist/assets/messagebundle_it-5bf1436c.js +1 -0
  112. package/dist/assets/messagebundle_iw-dd60afc4.js +1 -0
  113. package/dist/assets/messagebundle_ko-c450bda3.js +1 -0
  114. package/dist/assets/messagebundle_lt-87ab0529.js +1 -0
  115. package/dist/assets/messagebundle_lv-fc413852.js +1 -0
  116. package/dist/assets/messagebundle_nl-34d7e236.js +1 -0
  117. package/dist/assets/messagebundle_no-f22648fb.js +1 -0
  118. package/dist/assets/messagebundle_pl-10303f09.js +1 -0
  119. package/dist/assets/messagebundle_pt-b7a40c67.js +1 -0
  120. package/dist/assets/messagebundle_ro-94628623.js +1 -0
  121. package/dist/assets/messagebundle_ru-1f6595ba.js +1 -0
  122. package/dist/assets/messagebundle_sk-89eabac1.js +1 -0
  123. package/dist/assets/messagebundle_sl-d56532f1.js +1 -0
  124. package/dist/assets/messagebundle_sr-cf7f3b32.js +1 -0
  125. package/dist/assets/messagebundle_sv-3a3b20d3.js +1 -0
  126. package/dist/assets/messagebundle_tr-33b16d09.js +1 -0
  127. package/dist/assets/messagebundle_uk-82e1f2c1.js +1 -0
  128. package/dist/assets/messagebundle_zh_CN-15ca05aa.js +1 -0
  129. package/dist/assets/messagebundle_zh_TW-ad6445e7.js +1 -0
  130. package/dist/css/themes/Badge.css +1 -1
  131. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  132. package/dist/css/themes/DatePickerPopover.css +1 -1
  133. package/dist/css/themes/FilterMenu.css +1 -1
  134. package/dist/css/themes/Footer.css +1 -1
  135. package/dist/css/themes/MastheadItem.css +1 -1
  136. package/dist/css/themes/MastheadMenu.css +1 -1
  137. package/dist/css/themes/MastheadMenuItem.css +1 -1
  138. package/dist/css/themes/MastheadShell.css +1 -1
  139. package/dist/css/themes/MediaPlayer.css +1 -1
  140. package/dist/css/themes/Modal.css +1 -1
  141. package/dist/css/themes/RatingIndicator.css +1 -1
  142. package/dist/css/themes/Slider.css +1 -1
  143. package/dist/css/themes/TableCell.css +1 -1
  144. package/dist/css/themes/TableCellBase.css +1 -1
  145. package/dist/css/themes/TextArea.css +1 -1
  146. package/dist/custom-elements-internal.json +232 -31
  147. package/dist/custom-elements.json +224 -30
  148. package/dist/features/SearchSuggestionsPopover.d.ts +16 -0
  149. package/dist/features/SearchSuggestionsPopover.js +49 -0
  150. package/dist/features/SearchSuggestionsPopover.js.map +1 -1
  151. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -0
  152. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -0
  153. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -0
  154. package/dist/generated/assets/i18n/messagebundle_da.json +1 -0
  155. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  156. package/dist/generated/assets/i18n/messagebundle_el.json +1 -0
  157. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  158. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  159. package/dist/generated/assets/i18n/messagebundle_et.json +1 -0
  160. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -0
  161. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -0
  163. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -0
  164. package/dist/generated/assets/i18n/messagebundle_it.json +1 -0
  165. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -0
  166. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -0
  167. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -0
  168. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -0
  169. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -0
  170. package/dist/generated/assets/i18n/messagebundle_no.json +1 -0
  171. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -0
  172. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -0
  173. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -0
  174. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -0
  175. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -0
  176. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -0
  177. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -0
  178. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -0
  179. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -0
  180. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -0
  181. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -0
  182. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -0
  183. package/dist/generated/i18n/i18n-defaults.d.ts +7 -1
  184. package/dist/generated/i18n/i18n-defaults.js +7 -1
  185. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  186. package/dist/generated/json-imports/i18n-static.js +86 -2
  187. package/dist/generated/json-imports/i18n-static.js.map +1 -1
  188. package/dist/generated/json-imports/i18n.js +58 -2
  189. package/dist/generated/json-imports/i18n.js.map +1 -1
  190. package/dist/generated/templates/BadgeTemplate.lit.js +4 -4
  191. package/dist/generated/templates/BadgeTemplate.lit.js.map +1 -1
  192. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +3 -3
  193. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
  194. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  195. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/FooterTemplate.lit.js +12 -11
  197. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
  199. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  200. package/dist/generated/templates/ListTemplate.lit.js +3 -3
  201. package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
  202. package/dist/generated/templates/MastheadItemTemplate.lit.js +17 -16
  203. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  204. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +15 -14
  205. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  206. package/dist/generated/templates/MastheadMenuTemplate.lit.js +3 -3
  207. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  208. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +1 -1
  209. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  210. package/dist/generated/templates/MastheadShellTemplate.lit.js +10 -9
  211. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  212. package/dist/generated/templates/PaginationTemplate.lit.js +3 -3
  213. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  214. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +1 -1
  215. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  216. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  217. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  218. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  219. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  220. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  221. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  222. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +3 -3
  223. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  224. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +1 -1
  225. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  226. package/dist/generated/templates/StepInputTemplate.lit.js +1 -1
  227. package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
  228. package/dist/generated/templates/WizardTemplate.lit.js +1 -1
  229. package/dist/generated/templates/WizardTemplate.lit.js.map +1 -1
  230. package/dist/generated/themes/Badge.css.js +1 -1
  231. package/dist/generated/themes/Badge.css.js.map +1 -1
  232. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  233. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  234. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  235. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  236. package/dist/generated/themes/FilterMenu.css.js +1 -1
  237. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  238. package/dist/generated/themes/Footer.css.js +1 -1
  239. package/dist/generated/themes/Footer.css.js.map +1 -1
  240. package/dist/generated/themes/MastheadItem.css.js +1 -1
  241. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  242. package/dist/generated/themes/MastheadMenu.css.js +1 -1
  243. package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
  244. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  245. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  246. package/dist/generated/themes/MastheadShell.css.js +1 -1
  247. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  248. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  249. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  250. package/dist/generated/themes/Modal.css.js +1 -1
  251. package/dist/generated/themes/Modal.css.js.map +1 -1
  252. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  253. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  254. package/dist/generated/themes/Slider.css.js +1 -1
  255. package/dist/generated/themes/Slider.css.js.map +1 -1
  256. package/dist/generated/themes/TableCell.css.js +1 -1
  257. package/dist/generated/themes/TableCell.css.js.map +1 -1
  258. package/dist/generated/themes/TableCellBase.css.js +1 -1
  259. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  260. package/dist/generated/themes/TextArea.css.js +1 -1
  261. package/dist/generated/themes/TextArea.css.js.map +1 -1
  262. package/dist/i18n/messagebundle.properties +10 -0
  263. package/dist/i18n/messagebundle_ar.properties +1 -0
  264. package/dist/i18n/messagebundle_bg.properties +1 -0
  265. package/dist/i18n/messagebundle_cs.properties +1 -0
  266. package/dist/i18n/messagebundle_da.properties +1 -0
  267. package/dist/i18n/messagebundle_de.properties +1 -0
  268. package/dist/i18n/messagebundle_el.properties +1 -0
  269. package/dist/i18n/messagebundle_en.properties +4 -0
  270. package/dist/i18n/messagebundle_es.properties +1 -0
  271. package/dist/i18n/messagebundle_et.properties +1 -0
  272. package/dist/i18n/messagebundle_fi.properties +1 -0
  273. package/dist/i18n/messagebundle_fr.properties +1 -0
  274. package/dist/i18n/messagebundle_hr.properties +1 -0
  275. package/dist/i18n/messagebundle_hu.properties +1 -0
  276. package/dist/i18n/messagebundle_it.properties +1 -0
  277. package/dist/i18n/messagebundle_iw.properties +2 -0
  278. package/dist/i18n/messagebundle_ko.properties +1 -0
  279. package/dist/i18n/messagebundle_lt.properties +1 -0
  280. package/dist/i18n/messagebundle_lv.properties +1 -0
  281. package/dist/i18n/messagebundle_nl.properties +1 -0
  282. package/dist/i18n/messagebundle_no.properties +1 -0
  283. package/dist/i18n/messagebundle_pl.properties +1 -0
  284. package/dist/i18n/messagebundle_pt.properties +1 -0
  285. package/dist/i18n/messagebundle_pt_BR.properties +1 -0
  286. package/dist/i18n/messagebundle_ro.properties +1 -0
  287. package/dist/i18n/messagebundle_ru.properties +1 -0
  288. package/dist/i18n/messagebundle_sk.properties +1 -0
  289. package/dist/i18n/messagebundle_sl.properties +1 -0
  290. package/dist/i18n/messagebundle_sr.properties +2 -0
  291. package/dist/i18n/messagebundle_sv.properties +1 -0
  292. package/dist/i18n/messagebundle_tr.properties +1 -0
  293. package/dist/i18n/messagebundle_uk.properties +1 -0
  294. package/dist/i18n/messagebundle_zh_CN.properties +4 -0
  295. package/dist/i18n/messagebundle_zh_TW.properties +1 -0
  296. package/dist/types/BadgeDesign.d.ts +15 -0
  297. package/dist/types/BadgeDesign.js +18 -0
  298. package/dist/types/BadgeDesign.js.map +1 -0
  299. package/dist/types/IconPlacement.d.ts +5 -0
  300. package/dist/types/IconPlacement.js +7 -0
  301. package/dist/types/IconPlacement.js.map +1 -0
  302. package/dist/types/List.d.ts +8 -0
  303. package/dist/types/List.js.map +1 -1
  304. package/dist/utils/isLetterKeyPressed.d.ts +2 -0
  305. package/dist/utils/isLetterKeyPressed.js +5 -0
  306. package/dist/utils/isLetterKeyPressed.js.map +1 -0
  307. package/dist/utils/listItemLabelStartsWithKeyFocus.d.ts +3 -0
  308. package/dist/utils/listItemLabelStartsWithKeyFocus.js +55 -0
  309. package/dist/utils/listItemLabelStartsWithKeyFocus.js.map +1 -0
  310. package/dist/utils/listItemLabelUtils.d.ts +7 -0
  311. package/dist/utils/listItemLabelUtils.js +36 -0
  312. package/dist/utils/listItemLabelUtils.js.map +1 -0
  313. package/dist/vscode.html-custom-data.json +63 -26
  314. package/dist/web-types.json +113 -38
  315. package/package.json +1 -1
  316. package/src/Badge.hbs +16 -5
  317. package/src/Badge.ts +36 -19
  318. package/src/Breadcrumbs.ts +92 -66
  319. package/src/BreadcrumbsItem.ts +0 -1
  320. package/src/BreadcrumbsPopover.hbs +11 -9
  321. package/src/Checkbox.ts +0 -1
  322. package/src/CountrySelector.hbs +0 -1
  323. package/src/CountrySelector.ts +30 -16
  324. package/src/DatePicker.ts +2 -2
  325. package/src/Dropdown.ts +0 -2
  326. package/src/Footer.hbs +52 -28
  327. package/src/Footer.ts +81 -22
  328. package/src/Link.ts +5 -9
  329. package/src/List.hbs +2 -2
  330. package/src/List.ts +182 -112
  331. package/src/ListItem.hbs +2 -2
  332. package/src/ListItem.ts +4 -0
  333. package/src/MastheadItem.hbs +14 -4
  334. package/src/MastheadItem.ts +42 -9
  335. package/src/MastheadMenu.hbs +4 -4
  336. package/src/MastheadMenu.ts +20 -8
  337. package/src/MastheadMenuItem.hbs +10 -2
  338. package/src/MastheadMenuItem.ts +28 -1
  339. package/src/MastheadMobileMenu.ts +2 -2
  340. package/src/MastheadProfileMenu.hbs +1 -0
  341. package/src/MastheadProfileMenu.ts +3 -2
  342. package/src/MastheadShell.hbs +25 -19
  343. package/src/MastheadShell.ts +25 -5
  344. package/src/Pagination.hbs +3 -2
  345. package/src/Pagination.ts +110 -60
  346. package/src/PhoneNumberField.hbs +3 -3
  347. package/src/PhoneNumberField.ts +16 -8
  348. package/src/RangeSlider.ts +0 -1
  349. package/src/Search.hbs +10 -10
  350. package/src/Search.ts +17 -17
  351. package/src/SearchSuggestions.hbs +1 -0
  352. package/src/SearchableListBase.hbs +3 -1
  353. package/src/SearchableListBase.ts +57 -6
  354. package/src/SecondaryNavigation.hbs +1 -0
  355. package/src/SecondaryNavigation.ts +23 -16
  356. package/src/SecondaryNavigationItem.hbs +10 -7
  357. package/src/SecondaryNavigationItem.ts +58 -28
  358. package/src/SecondaryNavigationSubItem.hbs +3 -0
  359. package/src/SecondaryNavigationSubItem.ts +3 -0
  360. package/src/SegmentedButton.ts +2 -2
  361. package/src/SelectBox.ts +1 -1
  362. package/src/SideNavigationGroup.ts +0 -1
  363. package/src/SideNavigationItem.ts +0 -1
  364. package/src/SideNavigationSubItem.ts +0 -1
  365. package/src/Slider.ts +0 -1
  366. package/src/StepInput.hbs +16 -16
  367. package/src/TabNavigation.ts +2 -2
  368. package/src/Tag.ts +1 -5
  369. package/src/Tile.ts +2 -2
  370. package/src/Toast.ts +4 -3
  371. package/src/Wizard.hbs +1 -0
  372. package/src/Wizard.ts +1 -1
  373. package/src/WizardTab.ts +0 -1
  374. package/src/features/SearchSuggestionsPopover.ts +67 -1
  375. package/src/generated/i18n/i18n-defaults.ts +2 -2
  376. package/src/generated/json-imports/i18n-static.ts +86 -2
  377. package/src/generated/json-imports/i18n.ts +59 -3
  378. package/src/generated/templates/BadgeTemplate.lit.ts +3 -3
  379. package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +3 -3
  380. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  381. package/src/generated/templates/FooterTemplate.lit.ts +12 -11
  382. package/src/generated/templates/ListItemTemplate.lit.ts +2 -2
  383. package/src/generated/templates/ListTemplate.lit.ts +3 -3
  384. package/src/generated/templates/MastheadItemTemplate.lit.ts +17 -16
  385. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +15 -14
  386. package/src/generated/templates/MastheadMenuTemplate.lit.ts +3 -3
  387. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +1 -1
  388. package/src/generated/templates/MastheadShellTemplate.lit.ts +10 -9
  389. package/src/generated/templates/PaginationTemplate.lit.ts +3 -3
  390. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +1 -1
  391. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  392. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  393. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  394. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +3 -3
  395. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
  396. package/src/generated/templates/StepInputTemplate.lit.ts +1 -1
  397. package/src/generated/templates/WizardTemplate.lit.ts +1 -1
  398. package/src/generated/themes/Badge.css.ts +1 -1
  399. package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
  400. package/src/generated/themes/DatePickerPopover.css.ts +1 -1
  401. package/src/generated/themes/FilterMenu.css.ts +1 -1
  402. package/src/generated/themes/Footer.css.ts +1 -1
  403. package/src/generated/themes/MastheadItem.css.ts +1 -1
  404. package/src/generated/themes/MastheadMenu.css.ts +1 -1
  405. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  406. package/src/generated/themes/MastheadShell.css.ts +1 -1
  407. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  408. package/src/generated/themes/Modal.css.ts +1 -1
  409. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  410. package/src/generated/themes/Slider.css.ts +1 -1
  411. package/src/generated/themes/TableCell.css.ts +1 -1
  412. package/src/generated/themes/TableCellBase.css.ts +1 -1
  413. package/src/generated/themes/TextArea.css.ts +1 -1
  414. package/src/i18n/messagebundle.properties +10 -0
  415. package/src/i18n/messagebundle_ar.properties +1 -0
  416. package/src/i18n/messagebundle_bg.properties +1 -0
  417. package/src/i18n/messagebundle_cs.properties +1 -0
  418. package/src/i18n/messagebundle_da.properties +1 -0
  419. package/src/i18n/messagebundle_de.properties +1 -0
  420. package/src/i18n/messagebundle_el.properties +1 -0
  421. package/src/i18n/messagebundle_en.properties +4 -0
  422. package/src/i18n/messagebundle_es.properties +1 -0
  423. package/src/i18n/messagebundle_et.properties +1 -0
  424. package/src/i18n/messagebundle_fi.properties +1 -0
  425. package/src/i18n/messagebundle_fr.properties +1 -0
  426. package/src/i18n/messagebundle_hr.properties +1 -0
  427. package/src/i18n/messagebundle_hu.properties +1 -0
  428. package/src/i18n/messagebundle_it.properties +1 -0
  429. package/src/i18n/messagebundle_iw.properties +2 -0
  430. package/src/i18n/messagebundle_ko.properties +1 -0
  431. package/src/i18n/messagebundle_lt.properties +1 -0
  432. package/src/i18n/messagebundle_lv.properties +1 -0
  433. package/src/i18n/messagebundle_nl.properties +1 -0
  434. package/src/i18n/messagebundle_no.properties +1 -0
  435. package/src/i18n/messagebundle_pl.properties +1 -0
  436. package/src/i18n/messagebundle_pt.properties +1 -0
  437. package/src/i18n/messagebundle_pt_BR.properties +1 -0
  438. package/src/i18n/messagebundle_ro.properties +1 -0
  439. package/src/i18n/messagebundle_ru.properties +1 -0
  440. package/src/i18n/messagebundle_sk.properties +1 -0
  441. package/src/i18n/messagebundle_sl.properties +1 -0
  442. package/src/i18n/messagebundle_sr.properties +2 -0
  443. package/src/i18n/messagebundle_sv.properties +1 -0
  444. package/src/i18n/messagebundle_tr.properties +1 -0
  445. package/src/i18n/messagebundle_uk.properties +1 -0
  446. package/src/i18n/messagebundle_zh_CN.properties +4 -0
  447. package/src/i18n/messagebundle_zh_TW.properties +1 -0
  448. package/src/themes/Badge.css +48 -52
  449. package/src/themes/BreadcrumbsPopover.css +1 -0
  450. package/src/themes/DatePickerPopover.css +9 -0
  451. package/src/themes/FilterMenu.css +6 -6
  452. package/src/themes/Footer.css +22 -3
  453. package/src/themes/MastheadItem.css +4 -0
  454. package/src/themes/MastheadMenu.css +1 -1
  455. package/src/themes/MastheadMenuItem.css +4 -0
  456. package/src/themes/MastheadShell.css +5 -0
  457. package/src/themes/MediaPlayer.css +2 -1
  458. package/src/themes/Modal.css +1 -0
  459. package/src/themes/TableCell.css +0 -2
  460. package/src/themes/TableCellBase.css +1 -0
  461. package/src/themes/TextArea.css +1 -1
  462. package/src/types/BadgeDesign.ts +17 -0
  463. package/src/types/IconPlacement.ts +6 -0
  464. package/src/types/List.ts +9 -0
  465. package/src/utils/isLetterKeyPressed.ts +5 -0
  466. package/src/utils/listItemLabelStartsWithKeyFocus.ts +74 -0
  467. package/src/utils/listItemLabelUtils.ts +50 -0
  468. package/dist/assets/messagebundle_de-8158912e.js +0 -1
  469. package/dist/assets/messagebundle_en-c677773a.js +0 -1
  470. package/dist/assets/messagebundle_es-8dab6565.js +0 -1
  471. package/dist/assets/messagebundle_fr-669aca6d.js +0 -1
@@ -8,18 +8,14 @@ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
8
8
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
9
9
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
10
10
  import {
11
- isLeft,
12
- isRight,
13
- isEscape,
11
+ isEscape, isLeft, isRight, isDown,
14
12
  } from "@ui5/webcomponents-base/dist/Keys.js";
15
13
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
16
14
  import UDExSecondaryNavigationItem from "./SecondaryNavigationItem.js";
17
15
  import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
18
16
  import UDExSecondaryNavigationItemBase, { NavItem } from "./SecondaryNavigationItemBase.js";
19
17
  import { MORE } from "./generated/i18n/i18n-defaults.js";
20
-
21
18
  import SecondaryNavigationTemplate from "./generated/templates/SecondaryNavigationTemplate.lit.js";
22
-
23
19
  // Styles
24
20
  import SecondaryNavigationCss from "./generated/themes/SecondaryNavigation.css.js";
25
21
 
@@ -229,30 +225,41 @@ class UDExSecondaryNavigation extends UI5Element {
229
225
 
230
226
  handleKeyDown(e: KeyboardEvent): void {
231
227
  e.stopPropagation();
228
+ const item = e.target as UDExSecondaryNavigationItem;
229
+
232
230
  if (isLeft(e)) {
233
- this.focusPrevNavItem(e);
231
+ return this.focusPrevNavItem(e);
234
232
  }
235
233
  if (isRight(e)) {
236
- this.focusNextNavItem(e);
234
+ return this.focusNextNavItem(e);
235
+ }
236
+ if (isEscape(e) && item.hasNestedItems) {
237
+ return item.closeDropdown();
237
238
  }
238
- if (isEscape(e)) {
239
- (e.target as UDExSecondaryNavigationItem).closeDropdown();
239
+ if (isDown(e) && item.hasNestedItems) {
240
+ item.openDropdown();
240
241
  }
241
242
  }
242
243
 
243
244
  focusPrevNavItem(e: KeyboardEvent): void {
244
245
  const item = e.target as UDExSecondaryNavigationItem;
245
246
  const currentSelectedIndex = this.getCurrentIndex(item);
246
- const lastItemIndex = this.domNavItems.length - 1;
247
- const previousSelectIndex = currentSelectedIndex - 1 < 0 ? lastItemIndex : currentSelectedIndex - 1;
248
- this.domNavItems[previousSelectIndex]?.focus();
247
+ const previousSelectIndex = currentSelectedIndex - 1;
248
+ if (currentSelectedIndex > 0) {
249
+ e.preventDefault();
250
+ this.domNavItems[previousSelectIndex]?.focus();
251
+ }
249
252
  }
250
253
 
251
254
  focusNextNavItem(e: KeyboardEvent): void {
252
255
  const item = e.target as UDExSecondaryNavigationItem;
253
256
  const currentSelectedIndex = this.getCurrentIndex(item);
254
- const nextSelectIndex = currentSelectedIndex + 1 > this.domNavItems.length - 1 ? 0 : currentSelectedIndex + 1;
255
- this.domNavItems[nextSelectIndex].focus();
257
+ const lastItemIndex = this.domNavItems.length - 1;
258
+ const nextSelectIndex = currentSelectedIndex + 1;
259
+ if (nextSelectIndex < lastItemIndex) {
260
+ e.preventDefault();
261
+ this.domNavItems[nextSelectIndex].focus();
262
+ }
256
263
  }
257
264
 
258
265
  getItemWidth(item: NavItem): number {
@@ -369,7 +376,7 @@ class UDExSecondaryNavigation extends UI5Element {
369
376
  document.addEventListener("mousedown", this.outsideClickListener);
370
377
  }
371
378
 
372
- outsideClickListener = (e: MouseEvent): void => {
379
+ outsideClickListener = (e: Event): void => {
373
380
  if (this.isMobileScreen && e.target !== this) {
374
381
  this.closeMobileDropdown();
375
382
  return;
@@ -384,7 +391,7 @@ class UDExSecondaryNavigation extends UI5Element {
384
391
  this.mobileNav?.closeDropdown();
385
392
  }
386
393
 
387
- handleDesktopDropdown(e: MouseEvent): void {
394
+ handleDesktopDropdown(e: Event): void {
388
395
  const isClickedNavItem = e.composedPath().includes(this._clickedNavItem);
389
396
  if (!isClickedNavItem && this._clickedNavItem) {
390
397
  this._clickedNavItem.closeDropdown();
@@ -6,19 +6,20 @@
6
6
  href="{{path}}"
7
7
  target="{{target}}"
8
8
  @keydown="{{handleItemLinkKeyDown}}"
9
- @click="{{onItemClick}}">
9
+ @click="{{fireNavItemClickEvent}}">
10
10
  {{itemLabel}}
11
11
  </a>
12
12
  {{else}}
13
13
  <button
14
14
  class="udex-secondary-navigation__item"
15
15
  role="{{itemRole}}"
16
+ tabindex="0"
16
17
  ?active="{{isActive}}"
17
18
  aria-haspopup="{{hasNestedItems}}"
18
19
  aria-expanded="{{isOpen}}"
19
20
  aria-label="{{ariaLabel}}"
20
- @keydown="{{handleItemButtonKeyDown}}"
21
- @click="{{onItemClick}}">
21
+ @keydown="{{handleItemEnterOrSpaceKeys}}"
22
+ @click="{{openDropdown}}">
22
23
  <span class="udex-secondary-navigation__item-text-wrap">
23
24
  {{itemLabel}}
24
25
  {{#if _subTitle}}
@@ -37,10 +38,10 @@
37
38
  </button>
38
39
  {{#if isOpen}}
39
40
  <div
40
- class="udex-secondary-navigation__dropdown"
41
- @keydown="{{handleSubItemKeyDown}}">
41
+ class="udex-secondary-navigation__dropdown">
42
42
  <ul role="menu"
43
- class="udex-secondary-navigation__dropdown-list">
43
+ class="udex-secondary-navigation__dropdown-list"
44
+ @keydown="{{handleSubItemKeyDown}}">
44
45
  {{#each _processedItems}}
45
46
  <li role="none">
46
47
  <udex-secondary-navigation-sub-item
@@ -58,7 +59,9 @@
58
59
  </li>
59
60
  {{/each}}
60
61
  </ul>
61
- <slot></slot>
62
+ <div @keydown="{{handleButtonsEscKey}}">
63
+ <slot></slot>
64
+ </div>
62
65
  </div>
63
66
  {{/if}}
64
67
  {{/if}}
@@ -14,7 +14,7 @@ import {
14
14
  isSpace,
15
15
  isEnter,
16
16
  isHome,
17
- isEnd,
17
+ isEnd, isTabNext, isTabPrevious,
18
18
  } from "@ui5/webcomponents-base/dist/Keys.js";
19
19
  import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
20
20
  import UDExSecondaryNavigationItemBase, { NavItem } from "./SecondaryNavigationItemBase.js";
@@ -159,18 +159,6 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
159
159
  this._subTitle = this.subActiveItemTitle || this._subTitle;
160
160
  }
161
161
 
162
- onItemClick(): void {
163
- if (this.hasNestedItems) {
164
- this.setDropdownItems();
165
- this.toggleDropdown();
166
- }
167
-
168
- this.fireEvent("nav-item-click", {
169
- item: this,
170
- index: this.index,
171
- });
172
- }
173
-
174
162
  onSubItemClick(e: Event): void {
175
163
  const { index } = e.target as UDExSecondaryNavigationSubItem;
176
164
  const clickedItem = this._processedItems[index];
@@ -178,6 +166,7 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
178
166
  if (clickedItem.items) {
179
167
  this.setDropdownHistory();
180
168
  this.setNestedItems(clickedItem);
169
+ this.onShouldFocusFirstSubItem();
181
170
  }
182
171
 
183
172
  this.fireEvent("sub-item-click", {
@@ -190,8 +179,14 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
190
179
  this.setPrevNestedItems();
191
180
  }
192
181
 
193
- toggleDropdown(): void {
194
- this.isOpen = !this.isOpen;
182
+ openDropdown(): void {
183
+ if (this.hasNestedItems) {
184
+ this.setDropdownItems();
185
+ this.isOpen = !this.isOpen;
186
+ this.onShouldFocusFirstSubItem();
187
+ }
188
+
189
+ this.fireNavItemClickEvent();
195
190
  }
196
191
 
197
192
  closeDropdown(): void {
@@ -200,12 +195,11 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
200
195
 
201
196
  handleItemLinkKeyDown(e: KeyboardEvent): void {
202
197
  if (isEnter(e) || isSpace(e)) {
203
- e.preventDefault();
204
- this.onItemClick();
198
+ this.openDropdown();
205
199
  }
206
200
  }
207
201
 
208
- handleItemButtonKeyDown(e: KeyboardEvent): void {
202
+ handleItemEnterOrSpaceKeys(e: KeyboardEvent): void {
209
203
  if (isEnter(e) || isSpace(e)) {
210
204
  this.onShouldFocusFirstSubItem();
211
205
  }
@@ -242,23 +236,41 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
242
236
  e.preventDefault();
243
237
  this.handleEnterAndSpace(e);
244
238
  }
239
+ if (isTabPrevious(e) && this._isMobileView) {
240
+ this.closeDropdown();
241
+ }
242
+ if ((isTabPrevious(e) || isTabNext(e)) && !this._isMobileView) {
243
+ this.closeDropdown();
244
+ }
245
+ }
246
+
247
+ handleButtonsEscKey(e: KeyboardEvent): void {
248
+ if (isEscape(e) && this._isMobileView) {
249
+ this.handleEscapeKey();
250
+ }
245
251
  }
246
252
 
247
253
  handleUpArrow(e: KeyboardEvent): void {
248
254
  const { index } = e.target as UDExSecondaryNavigationSubItem;
249
255
  const lastIndex = this.domNavItems.length - 1;
250
- const previousIndex = index - 1 < 0 ? lastIndex : index - 1;
251
- if (!(lastIndex === previousIndex)) {
252
- this.domNavItems[previousIndex].focus();
253
- }
256
+ const previousSelectIndex = index - 1 < 0 ? lastIndex : index - 1;
257
+ const previousItem = this.domNavItems[previousSelectIndex];
258
+ const currentItem = this.domNavItems[index];
259
+
260
+ this.unsetTabIndex(currentItem);
261
+ this.setTabIndex(previousItem);
262
+ previousItem.focus();
254
263
  }
255
264
 
256
265
  handleDownArrow(e: KeyboardEvent): void {
257
266
  const { index } = e.target as UDExSecondaryNavigationSubItem;
258
267
  const nextIndex = index + 1 > this.domNavItems.length - 1 ? 0 : index + 1;
259
- if (!(nextIndex === 0)) {
260
- this.domNavItems[nextIndex].focus();
261
- }
268
+ const nextItem = this.domNavItems[nextIndex];
269
+ const currentItem = this.domNavItems[index];
270
+
271
+ this.unsetTabIndex(currentItem);
272
+ this.setTabIndex(nextItem);
273
+ nextItem.focus();
262
274
  }
263
275
 
264
276
  handleLeftArrow(e: KeyboardEvent): void {
@@ -270,10 +282,10 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
270
282
  }
271
283
 
272
284
  handleRightArrow(e: KeyboardEvent): void {
273
- const { hasItems, isBack } = e.target as UDExSecondaryNavigationSubItem;
285
+ const { hasItems, isBack, index } = e.target as UDExSecondaryNavigationSubItem;
274
286
  if (hasItems && !isBack) {
275
287
  this.onSubItemClick(e);
276
- this.onShouldFocusFirstSubItem();
288
+ this.unsetTabIndex(this.domNavItems[index]);
277
289
  }
278
290
  }
279
291
 
@@ -300,6 +312,13 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
300
312
  this.focus();
301
313
  }
302
314
 
315
+ fireNavItemClickEvent(): void {
316
+ this.fireEvent("nav-item-click", {
317
+ item: this,
318
+ index: this.index,
319
+ });
320
+ }
321
+
303
322
  setDropdownHistory(): void {
304
323
  this._dropdownHistory.push(this._processedItems);
305
324
  }
@@ -331,8 +350,19 @@ class UDExSecondaryNavigationItem extends UDExSecondaryNavigationItemBase {
331
350
  }
332
351
  }
333
352
 
353
+ setTabIndex(item: UDExSecondaryNavigationSubItem): void {
354
+ item._tabIndex = "0";
355
+ }
356
+
357
+ unsetTabIndex(item: UDExSecondaryNavigationSubItem): void {
358
+ item._tabIndex = "-1";
359
+ }
360
+
334
361
  onFirstSubItemFocus(): void {
335
- this.domNavItems[0].focus();
362
+ const firstSubItem = this.domNavItems[0];
363
+
364
+ firstSubItem.focus();
365
+ this.setTabIndex(firstSubItem);
336
366
  }
337
367
 
338
368
  onLastSubItemFocus(): void {
@@ -1,5 +1,6 @@
1
1
  {{#if isBack}}
2
2
  <button
3
+ tabindex="{{_tabIndex}}"
3
4
  @click="{{onBackItemClick}}"
4
5
  role="menuitem"
5
6
  aria-label="{{backButtonAriaLabel}}"
@@ -15,6 +16,7 @@
15
16
  {{else}}
16
17
  {{#if isButton}}
17
18
  <button
19
+ tabindex="{{_tabIndex}}"
18
20
  @click="{{onItemClick}}"
19
21
  role="menuitem"
20
22
  aria-haspopup="{{hasItems}}"
@@ -32,6 +34,7 @@
32
34
  </button>
33
35
  {{else}}
34
36
  <a
37
+ tabindex="{{_tabIndex}}"
35
38
  @click="{{onItemClick}}"
36
39
  role="menuitem"
37
40
  href="{{path}}"
@@ -88,6 +88,9 @@ class UDExSecondaryNavigationSubItem extends UDExSecondaryNavigationItemBase {
88
88
  @property({ type: Object, multiple: true })
89
89
  nestedItems!: Array<NavItem>;
90
90
 
91
+ @property({ type: String, defaultValue: "-1" })
92
+ _tabIndex!: string;
93
+
91
94
  static i18nBundle: any;
92
95
 
93
96
  static async onDefine(): Promise<void> {
@@ -72,7 +72,7 @@ class UDExSegmentedButton extends SegmentedButton {
72
72
  this.style.setProperty(getScopedVarName("--udex-segmented-button-items-count"), `${items.length}`);
73
73
  }
74
74
 
75
- _onmousedown(e: MouseEvent) {
75
+ _onmousedown(e: Event) {
76
76
  const eventTarget = e.target as SegmentedButtonItem;
77
77
  const isTargetSegmentedButtonItem = eventTarget.hasAttribute("udex-segmented-button-item");
78
78
 
@@ -83,7 +83,7 @@ class UDExSegmentedButton extends SegmentedButton {
83
83
  }
84
84
  }
85
85
 
86
- _selectItem(e: MouseEvent | KeyboardEvent) {
86
+ _selectItem(e: Event | KeyboardEvent) {
87
87
  // Method to be update with @ui5/webcomponents v.2.0 , due to ToggleButton dependency change (pressed -> selected)
88
88
  const target = e.target as SegmentedButtonItem;
89
89
  const isTargetSegmentedButtonItem = target.hasAttribute("udex-segmented-button-item");
package/src/SelectBox.ts CHANGED
@@ -482,7 +482,7 @@ class UDExSelectBox extends UDExSearchableListBase {
482
482
  }
483
483
 
484
484
  handleOutsideClick(): void {
485
- document.addEventListener("click", (e: MouseEvent) => {
485
+ document.addEventListener("click", (e: Event) => {
486
486
  if (this._tokenizer?.tokens.length > 0 && e.target !== this) {
487
487
  this._tokenizer.expanded = false;
488
488
  }
@@ -26,7 +26,6 @@ import SideNavigationGroupCss from "./generated/themes/SideNavigationGroup.css.j
26
26
  tag: "udex-side-navigation-group",
27
27
  renderer: litRender,
28
28
  styles: [SideNavigationGroup.styles, SideNavigationGroupCss],
29
- dependencies: [],
30
29
  })
31
30
 
32
31
  class UDExSideNavigationGroup extends SideNavigationGroup {}
@@ -26,7 +26,6 @@ import SideNavigationItemCss from "./generated/themes/SideNavigationItem.css.js"
26
26
  tag: "udex-side-navigation-item",
27
27
  renderer: litRender,
28
28
  styles: [SideNavigationItem.styles, SideNavigationItemCss],
29
- dependencies: [],
30
29
  })
31
30
 
32
31
  class UDExSideNavigationItem extends SideNavigationItem {
@@ -26,7 +26,6 @@ import SideNavigationSubItemCss from "./generated/themes/SideNavigationSubItem.c
26
26
  tag: "udex-side-navigation-sub-item",
27
27
  renderer: litRender,
28
28
  styles: [SideNavigationSubItem.styles, SideNavigationSubItemCss],
29
- dependencies: [],
30
29
  })
31
30
 
32
31
  class UDExSideNavigationSubItem extends SideNavigationSubItem {}
package/src/Slider.ts CHANGED
@@ -28,7 +28,6 @@ import SliderCss from "./generated/themes/Slider.css.js";
28
28
  tag: "udex-slider",
29
29
  renderer: litRender,
30
30
  styles: [SliderBase.styles, SliderCss],
31
- dependencies: [],
32
31
  })
33
32
  class UDExSlider extends Slider {
34
33
  onEnterDOM(): void {
package/src/StepInput.hbs CHANGED
@@ -20,21 +20,6 @@
20
20
  step="{{step}}"
21
21
  ></udex-text-field>
22
22
  {{#unless displayonly}}
23
- <udex-control-button
24
- class="udex-step-input__button udex-step-input__button_inc"
25
- title="{{incIconTitle}}"
26
- accessible-name="{{incIconTitle}}"
27
- icon="add"
28
- size="Large"
29
- design="{{valueState}}"
30
- @click="{{_incValue}}"
31
- @mousedown="{{_incSpin}}"
32
- @mouseup="{{_resetSpin}}"
33
- @mouseout="{{_resetSpinOut}}"
34
- ?disabled="{{_incIconInactive}}"
35
- ?active="{{incIconActive}}"
36
- ?readonly="{{readonly}}"
37
- ></udex-control-button>
38
23
  <udex-control-button
39
24
  class="udex-step-input__button udex-step-input__button_dec"
40
25
  title="{{decIconTitle}}"
@@ -50,5 +35,20 @@
50
35
  ?active="{{decIconActive}}"
51
36
  ?readonly="{{readonly}}"
52
37
  ></udex-control-button>
38
+ <udex-control-button
39
+ class="udex-step-input__button udex-step-input__button_inc"
40
+ title="{{incIconTitle}}"
41
+ accessible-name="{{incIconTitle}}"
42
+ icon="add"
43
+ size="Large"
44
+ design="{{valueState}}"
45
+ @click="{{_incValue}}"
46
+ @mousedown="{{_incSpin}}"
47
+ @mouseup="{{_resetSpin}}"
48
+ @mouseout="{{_resetSpinOut}}"
49
+ ?disabled="{{_incIconInactive}}"
50
+ ?active="{{incIconActive}}"
51
+ ?readonly="{{readonly}}"
52
+ ></udex-control-button>
53
53
  {{/unless}}
54
- </div>
54
+ </div>
@@ -261,12 +261,12 @@ class UDExTabNavigation extends UI5Element {
261
261
  onAfterRendering(): void {
262
262
  if (this.items.length) {
263
263
  this.setItemsInHeader();
264
- this.initOutsideClick();
265
264
  this.setVisibleTabs();
266
265
  this.applyTabIndex();
267
266
  } else {
268
- throw new Error("You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.");
267
+ console.warn("You have to add the 'udex-tab' as a default slot to the udex-tab-navigation.");
269
268
  }
269
+ this.initOutsideClick();
270
270
  }
271
271
 
272
272
  initOutsideClick() {
package/src/Tag.ts CHANGED
@@ -11,6 +11,7 @@ import TagTemplate from "./generated/templates/TagTemplate.lit.js";
11
11
 
12
12
  // Styles
13
13
  import TagCss from "./generated/themes/Tag.css";
14
+ import IconPlacement from "./types/IconPlacement.js";
14
15
 
15
16
  export enum TagType {
16
17
  Text = "Text",
@@ -19,11 +20,6 @@ export enum TagType {
19
20
  Grey = "Grey"
20
21
  }
21
22
 
22
- export enum IconPlacement {
23
- Start = "Start",
24
- End = "End"
25
- }
26
-
27
23
  export enum TagSize {
28
24
  Small = "Small",
29
25
  Medium = "Medium"
package/src/Tile.ts CHANGED
@@ -35,7 +35,7 @@ type AnchorNode = HTMLAnchorElement | undefined | null;
35
35
  */
36
36
  @event("click", {
37
37
  detail: {
38
- originalEvent: { type: MouseEvent },
38
+ originalEvent: { type: Event },
39
39
  },
40
40
  })
41
41
  class UDExTile extends UI5Element {
@@ -126,7 +126,7 @@ class UDExTile extends UI5Element {
126
126
  }
127
127
  }
128
128
 
129
- _onclick(e: MouseEvent) {
129
+ _onclick(e: Event) {
130
130
  e.stopImmediatePropagation();
131
131
 
132
132
  if (this.interactive) {
package/src/Toast.ts CHANGED
@@ -2,12 +2,13 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
2
2
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
3
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
4
4
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
5
+ import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
5
6
  import Toast from "@ui5/webcomponents/dist/Toast.js";
6
- import "@ui5/webcomponents/dist/Icon.js";
7
+ import Icon from "@ui5/webcomponents/dist/Icon.js";
7
8
  import "@ui5/webcomponents-icons/dist/sys-enter-2.js";
8
9
  import "@ui5/webcomponents-icons/dist/error.js";
9
10
  import "@ui5/webcomponents-icons/dist/alert.js";
10
- import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
11
+ import UDExButton from "./Button.js";
11
12
 
12
13
  import ToastTemplate from "./generated/templates/ToastTemplate.lit.js";
13
14
 
@@ -43,7 +44,7 @@ export enum ToastValueState {
43
44
  renderer: litRender,
44
45
  styles: [Toast.styles, ToastCss],
45
46
  template: ToastTemplate,
46
- dependencies: [Toast],
47
+ dependencies: [Icon, UDExButton],
47
48
  })
48
49
 
49
50
  /**
package/src/Wizard.hbs CHANGED
@@ -3,6 +3,7 @@
3
3
  aria-label="{{ariaLabelText}}"
4
4
  role="region"
5
5
  ?indeterminate="{{indeterminate}}"
6
+ part="ui5-wiz-root"
6
7
  >
7
8
  <nav class="ui5-wiz-nav" part="navigator" aria-label="{{navAriaLabelText}}" tabindex="-1">
8
9
  <div class="ui5-wiz-nav-list" role="list" aria-label="{{listAriaLabelText}}" aria-describedby="wiz-nav-descr" aria-controls="{{_id}}-wiz-content">
package/src/Wizard.ts CHANGED
@@ -49,7 +49,7 @@ const RESPONSIVE_BREAKPOINTS: ResponsiveBreakpoints = {
49
49
  renderer: litRender,
50
50
  template: WizardTemplate,
51
51
  styles: [wizardCss, WizardCss],
52
- dependencies: [Wizard, UDExWizardTab, UDExWizardStep],
52
+ dependencies: [...Wizard.dependencies, UDExWizardTab, UDExWizardStep],
53
53
  })
54
54
 
55
55
  class UDExWizard extends Wizard {
package/src/WizardTab.ts CHANGED
@@ -37,7 +37,6 @@ export enum WindowSize {
37
37
  tag: "udex-wizard-tab",
38
38
  renderer: litRender,
39
39
  styles: [wizardTabCss, WizardTabCss],
40
- dependencies: [UI5WizardTab],
41
40
  })
42
41
  class UDExWizardTab extends UI5WizardTab {
43
42
  /**
@@ -2,6 +2,9 @@ import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element";
2
2
  import { registerFeature } from "@ui5/webcomponents-base/dist/FeaturesRegistry.js";
3
3
  import Button from "@ui5/webcomponents/dist/Button.js";
4
4
  import Popover from "@ui5/webcomponents/dist/Popover.js";
5
+ import isLetterKey from "../utils/isLetterKeyPressed.js";
6
+ import listItemLabelStartsWithKeyFocus from "../utils/listItemLabelStartsWithKeyFocus.js";
7
+ import { LetterPressedHandlerObj } from "../types/List.js";
5
8
 
6
9
  interface SuggestionComponent extends UI5Element {
7
10
  open: boolean;
@@ -28,6 +31,12 @@ class Suggestion {
28
31
  focusabledList?: HTMLDivElement;
29
32
  lists?: Array<HTMLDivElement>;
30
33
 
34
+ _pressedKey!: string;
35
+ _pressedCount!: number;
36
+ _lastFoundPosition!: number;
37
+ _focusableListItems!: Array<Element>;
38
+ _letterKeyHandlerObj!: LetterPressedHandlerObj;
39
+
31
40
  constructor(component: SuggestionComponent) {
32
41
  this.component = component;
33
42
  this._getSuggestionPopover();
@@ -56,6 +65,63 @@ class Suggestion {
56
65
  this._getComponent().open = true;
57
66
  this.popover!.showAt(this._getComponent());
58
67
  this.initLists();
68
+ this._focusableListItems = this._getItems();
69
+ this._letterKeyHandlerObj = this.getLetterKeyObjHandler();
70
+ this.resetFocusLetterHandlers();
71
+ }
72
+
73
+ setPressedKey(value:string): void {
74
+ this._pressedKey = value;
75
+ }
76
+
77
+ getPressedKey(): string {
78
+ return this._pressedKey;
79
+ }
80
+
81
+ setPressedCount(value:number): void {
82
+ this._pressedCount = value;
83
+ }
84
+
85
+ getPressedCount() : number {
86
+ return this._pressedCount;
87
+ }
88
+
89
+ setLastFoundPosition(value:number): void {
90
+ this._lastFoundPosition = value;
91
+ }
92
+
93
+ getLastFoundPosition(): number {
94
+ return this._lastFoundPosition;
95
+ }
96
+
97
+ resetFocusLetterHandlers(): void {
98
+ this.setPressedCount(0);
99
+ this.setPressedKey("");
100
+ this.setLastFoundPosition(0);
101
+ }
102
+
103
+ handleKeyPress(e: KeyboardEvent): void {
104
+ const key = e.key;
105
+ if (isLetterKey(key)) {
106
+ e.preventDefault();
107
+ e.stopPropagation();
108
+ this.handleLetterKey(e);
109
+ }
110
+ }
111
+
112
+ getLetterKeyObjHandler(): LetterPressedHandlerObj {
113
+ return {
114
+ getPressedKey: () => this.getPressedKey(),
115
+ setPressedKey: (arg: string) => this.setPressedKey(arg),
116
+ getPressedCount: () => this.getPressedCount(),
117
+ setPressedCount: (arg: number) => this.setPressedCount(arg),
118
+ getLastFoundPosition: () => this.getLastFoundPosition(),
119
+ setLastFoundPosition: (arg: number) => this.setLastFoundPosition(arg),
120
+ } as LetterPressedHandlerObj;
121
+ }
122
+
123
+ handleLetterKey(event: KeyboardEvent): void {
124
+ listItemLabelStartsWithKeyFocus(event.key, this._focusableListItems, this._letterKeyHandlerObj);
59
125
  }
60
126
 
61
127
  initLists(): void {
@@ -106,7 +172,7 @@ class Suggestion {
106
172
  }
107
173
  }
108
174
 
109
- getFocusableItems() {
175
+ getFocusableItems(): Element[] {
110
176
  const items = this.focusabledList?.children ? this.focusabledList?.children : [];
111
177
  return Array.from(items);
112
178
  }