@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
package/src/Badge.hbs CHANGED
@@ -1,5 +1,16 @@
1
- {{#if textType}}
2
- <div class="{{textClasses}}"><slot></slot></div>
3
- {{else}}
4
- <div class="{{numberClasses}}"><slot></slot></div>
5
- {{/if}}
1
+ <div class="{{badgeClasses}}">
2
+ {{#if startIcon}}
3
+ <ui5-icon
4
+ class="udex-badge__icon udex-badge__icon--start"
5
+ name="{{icon}}">
6
+ </ui5-icon>
7
+ {{/if}}
8
+ <slot></slot>
9
+ {{#if endIcon}}
10
+ <ui5-icon
11
+ class="udex-badge__icon udex-badge__icon--end"
12
+ name="{{icon}}">
13
+ </ui5-icon>
14
+ {{/if}}
15
+
16
+ </div>
package/src/Badge.ts CHANGED
@@ -9,6 +9,8 @@ import BadgeTemplate from "./generated/templates/BadgeTemplate.lit.js";
9
9
 
10
10
  // Styles
11
11
  import BadgeCss from "./generated/themes/Badge.css.js";
12
+ import IconPlacement from "./types/IconPlacement.js";
13
+ import { NumberBadgeDesign, TextBadgeDesign } from "./types/BadgeDesign.js";
12
14
 
13
15
  export enum BadgeType {
14
16
  text = "Text",
@@ -20,19 +22,6 @@ export enum BadgeSize {
20
22
  large = "Large",
21
23
  }
22
24
 
23
- export enum BadgeTextDesign {
24
- Info = "Info",
25
- Success = "Success",
26
- Error = "Error",
27
- Warning = "Warning",
28
- }
29
-
30
- export enum BadgeNumberDesign {
31
- Blue = "Blue",
32
- Red = "Red",
33
- White = "White",
34
- }
35
-
36
25
  /**
37
26
  * @class
38
27
  *
@@ -82,16 +71,32 @@ class UDExBadge extends UI5Element {
82
71
  * @default "Info"
83
72
  * @public
84
73
  */
85
- @property({ defaultValue: BadgeTextDesign.Info })
86
- design: `${BadgeTextDesign}` = BadgeTextDesign.Info;
74
+ @property({ defaultValue: TextBadgeDesign.Info })
75
+ design!: `${TextBadgeDesign}`;
87
76
  /**
88
77
  * Defines the design of number type component.
89
78
  *
90
79
  * @default "Blue"
91
80
  * @public
92
81
  */
93
- @property({ defaultValue: BadgeNumberDesign.Blue })
94
- numberDesign!: `${BadgeNumberDesign}`;
82
+ @property({ defaultValue: NumberBadgeDesign.Blue })
83
+ numberDesign!: `${NumberBadgeDesign}`;
84
+ /**
85
+ * Defines icon placement if icon was provided
86
+ *
87
+ * @default "End"
88
+ * @public
89
+ */
90
+ @property({ type: IconPlacement, defaultValue: IconPlacement.End })
91
+ iconPlacement? : `${IconPlacement}`;
92
+ /**
93
+ * Defines icon name
94
+ *
95
+ * @default ""
96
+ * @public
97
+ */
98
+ @property()
99
+ icon!: string;
95
100
 
96
101
  /**
97
102
  * Defines the content of the component.
@@ -101,8 +106,12 @@ class UDExBadge extends UI5Element {
101
106
  @slot({ type: Node, "default": true })
102
107
  default!: Array<Node>;
103
108
 
104
- get textType(): boolean {
105
- return this.type === BadgeType.text;
109
+ get startIcon(): boolean {
110
+ return !!this.icon && this.iconPlacement === IconPlacement.Start;
111
+ }
112
+
113
+ get endIcon(): boolean {
114
+ return !!this.icon && this.iconPlacement === IconPlacement.End;
106
115
  }
107
116
 
108
117
  get textClasses(): string {
@@ -112,6 +121,14 @@ class UDExBadge extends UI5Element {
112
121
  get numberClasses(): string {
113
122
  return `udex-badge udex-badge--number udex-badge--${this.numberDesign.toLowerCase()} udex-badge--${this.size.toLowerCase()}`;
114
123
  }
124
+
125
+ get badgeClasses(): string {
126
+ if (this.type === BadgeType.text) {
127
+ return this.textClasses;
128
+ }
129
+
130
+ return this.numberClasses;
131
+ }
115
132
  }
116
133
 
117
134
  UDExBadge.define();
@@ -4,12 +4,15 @@ import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
5
  import slot from "@ui5/webcomponents-base/dist/decorators/slot.js";
6
6
  import event from "@ui5/webcomponents-base/dist/decorators/event.js";
7
-
7
+ import {
8
+ isTabNext,
9
+ isTabPrevious,
10
+ } from "@ui5/webcomponents-base/dist/Keys.js";
8
11
  import Icon from "@ui5/webcomponents/dist/Icon.js";
9
12
  import { LinkClickEventDetail } from "@ui5/webcomponents/dist/Link.js";
10
13
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
11
14
  import NavigationMode from "@ui5/webcomponents-base/dist/types/NavigationMode.js";
12
- import ItemNavigation, { ITabbable } from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
15
+ import ItemNavigation from "@ui5/webcomponents-base/dist/delegate/ItemNavigation.js";
13
16
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
14
17
  import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
15
18
  import breadcrumbsCss from "@ui5/webcomponents/dist/generated/themes/Breadcrumbs.css.js";
@@ -29,6 +32,8 @@ import "@ui5/webcomponents-icons/dist/home.js";
29
32
  import BreadcrumbsCss from "./generated/themes/Breadcrumbs.css.js";
30
33
  import BreadcrumbsPopoverCss from "./generated/themes/BreadcrumbsPopover.css.js";
31
34
 
35
+ const triggerActiveClass = "udex-breadcrumbs__trigger--opened";
36
+
32
37
  export type UDExBreadcrumbsItemClickEventDetail = {
33
38
  item: UDExBreadcrumbsItem;
34
39
  altKey: boolean;
@@ -129,46 +134,41 @@ class UDExBreadcrumbs extends UI5Element {
129
134
 
130
135
  responsivePopover?: Dropdown;
131
136
  _itemNavigation?: ItemNavigation;
137
+ _shouldFocusFirstVisibleItem!: boolean;
138
+
132
139
  static i18nBundle: I18nBundle;
133
140
 
134
- onBeforeRendering() {
141
+ static async onDefine(): Promise<void> {
142
+ UDExBreadcrumbs.i18nBundle = await getI18nBundle("@udex/web-components");
143
+ }
144
+
145
+ onBeforeRendering(): void {
135
146
  this._preprocessItems();
136
147
  }
137
148
 
138
- _preprocessItems() {
149
+ onAfterRendering(): void {
150
+ this._initItemNavigation();
151
+ }
152
+
153
+ _preprocessItems(): void {
139
154
  this.items.forEach(item => {
140
155
  item._getRealDomRef = () => this.getDomRef()!.querySelector(`[data-ui5-stable*=${item.stableDomRef}]`)!;
141
156
  });
142
157
  }
143
158
 
144
- async _getResponsePopover() {
159
+ async _getResponsePopover(): Promise<Dropdown> {
145
160
  const staticAreaItem = await this.getStaticAreaItemDomRef();
146
161
  return staticAreaItem!.querySelector<Dropdown>(`#udex-${this.__id!}-breadcrumbs__popover`)!;
147
162
  }
148
163
 
149
- /**
150
- * Getter for the interactive element that opens the overflow
151
- * @private
152
- */
153
- get _dropdownArrowLink() {
154
- return this.shadowRoot!.querySelector<Link>(".udex-breadcrumbs__trigger")!;
155
- }
156
-
157
- /**
158
- * Getter for the list of links corresponding to the abstract breadcrumb items
159
- */
160
- get _links() {
161
- return Array.from(this.shadowRoot!.querySelectorAll<Link>(".udex-breadcrumbs__link-wrapper [ui5-link]"));
162
- }
163
-
164
- _getFocusableItems() {
165
- const items: Array<ITabbable> = this._links;
164
+ _getFocusableItems(): Array<Link> {
165
+ const items = this._links;
166
166
  items.unshift(this._dropdownArrowLink);
167
167
 
168
168
  return items;
169
169
  }
170
170
 
171
- _initItemNavigation() {
171
+ _initItemNavigation(): void {
172
172
  if (!this._itemNavigation) {
173
173
  this._itemNavigation = new ItemNavigation(this, {
174
174
  navigationMode: NavigationMode.Horizontal,
@@ -177,24 +177,20 @@ class UDExBreadcrumbs extends UI5Element {
177
177
  }
178
178
  }
179
179
 
180
- onAfterRendering(): void {
181
- this._initItemNavigation();
182
- }
183
-
184
- _getItems() {
180
+ _getItems(): Array<UDExBreadcrumbsItem> {
185
181
  return this.getSlottedNodes<UDExBreadcrumbsItem>("items");
186
182
  }
187
183
 
188
- _closeRespPopover() {
184
+ _closeRespPopover(): void {
189
185
  this.responsivePopover && this.responsivePopover.onClose();
190
186
  }
191
187
 
192
- async _openRespPopover() {
188
+ async _openRespPopover(): Promise<void> {
193
189
  this.responsivePopover = await this._getResponsePopover();
194
190
  this.responsivePopover.onOpen(this._dropdownArrowLink);
195
191
  }
196
192
 
197
- _onDropdownLinkPress(e: CustomEvent<LinkClickEventDetail>) {
193
+ _onDropdownLinkPress(e: CustomEvent<LinkClickEventDetail>): void {
198
194
  const listItem = e.target as HTMLElement,
199
195
  items = this._getItems(),
200
196
  item = items.find(x => `${x._id}-li` === listItem.id)!;
@@ -209,7 +205,7 @@ class UDExBreadcrumbs extends UI5Element {
209
205
  }
210
206
  }
211
207
 
212
- _onLinkPress(e: CustomEvent<LinkClickEventDetail>) {
208
+ _onLinkPress(e: CustomEvent<LinkClickEventDetail>): void {
213
209
  const link = e.target as Link,
214
210
  items = this._getItems(),
215
211
  item = items.find(x => `${x._id}-link` === link.id)!,
@@ -231,31 +227,74 @@ class UDExBreadcrumbs extends UI5Element {
231
227
  }
232
228
  }
233
229
 
234
- _isItemVisible(item: UDExBreadcrumbsItem) {
230
+ _isItemVisible(item: UDExBreadcrumbsItem): boolean {
235
231
  return !item.hidden;
236
232
  }
237
233
 
238
- _afterDropdownOpen() {
234
+ _afterDropdownOpen(): void {
239
235
  this._dropdownOpened = true;
240
236
  }
241
237
 
242
- _afterDropdownClose() {
238
+ _afterDropdownClose(): void {
243
239
  this._dropdownOpened = false;
240
+ if (this._shouldFocusFirstVisibleItem) {
241
+ this._focusFirstVisibleItem();
242
+ }
244
243
  }
245
244
 
246
- get _visibleItems() {
247
- const items = this._getItems();
248
- const itemsLength = this.showItems ?? 0;
245
+ _toggleDropdown(): void {
246
+ if (this._dropdownOpened) {
247
+ this._closeRespPopover();
248
+ } else {
249
+ this._openRespPopover();
250
+ }
251
+ }
249
252
 
250
- return this._getItems()
251
- .slice(Math.max(items.length - itemsLength - 1, 0))
252
- .filter(i => this._isItemVisible(i));
253
+ _onfocusin(e: FocusEvent): void {
254
+ const currentItem = e.target as Link;
255
+
256
+ this._itemNavigation?.setCurrentItem(currentItem);
257
+ }
258
+
259
+ _handleKeydown(e: KeyboardEvent): void {
260
+ const itemIndex = (e.target as HTMLElement).getAttribute("index");
261
+ const isLastItem = itemIndex === (this.items.length - 2).toString();
262
+ const isFirstItem = itemIndex === "0";
263
+
264
+ if (isTabNext(e) && isLastItem) {
265
+ this._closeRespPopover();
266
+ this._shouldFocusFirstVisibleItem = true;
267
+ }
268
+
269
+ if (isTabPrevious(e) && isFirstItem) {
270
+ this._closeRespPopover();
271
+ }
272
+ }
273
+
274
+ _focusFirstVisibleItem(): void {
275
+ Array.from(this.shadowRoot!.querySelectorAll<Link>("[udex-link]"))[0].focus();
276
+ this._shouldFocusFirstVisibleItem = false;
277
+ }
278
+
279
+ /**
280
+ * Getter for the interactive element that opens the overflow
281
+ * @private
282
+ */
283
+ get _dropdownArrowLink(): Link {
284
+ return this.shadowRoot!.querySelector<Link>(".udex-breadcrumbs__trigger")!;
285
+ }
286
+
287
+ /**
288
+ * Getter for the list of links corresponding to the abstract breadcrumb items
289
+ */
290
+ get _links(): Array<Link> {
291
+ return Array.from(this.shadowRoot!.querySelectorAll<Link>(".udex-breadcrumbs__link-wrapper [ui5-link]"));
253
292
  }
254
293
 
255
294
  /**
256
295
  * Getter for the list of abstract breadcrumb items to be rendered as links outside the overflow
257
296
  */
258
- get _linksData() {
297
+ get _linksData(): Array<UDExBreadcrumbsItem> {
259
298
  const items = this._visibleItems;
260
299
  const itemsCount = items.length;
261
300
 
@@ -266,43 +305,30 @@ class UDExBreadcrumbs extends UI5Element {
266
305
  });
267
306
  }
268
307
 
269
- get _isOverflowEmpty() {
270
- return this._dropdownItems.length === 0;
271
- }
308
+ get _visibleItems(): Array<UDExBreadcrumbsItem> {
309
+ const items = this._getItems();
310
+ const itemsLength = this.showItems ?? 0;
272
311
 
273
- _toggleDropdown() {
274
- if (this._dropdownOpened) {
275
- this._closeRespPopover();
276
- } else {
277
- this._openRespPopover();
278
- }
312
+ return this._getItems()
313
+ .slice(Math.max(items.length - itemsLength - 1, 0))
314
+ .filter(i => this._isItemVisible(i));
279
315
  }
280
316
 
281
- get _dropdownItems() {
317
+ get _dropdownItems(): Array<UDExBreadcrumbsItem> {
282
318
  return this._getItems().filter(i => this._isItemVisible(i));
283
319
  }
284
320
 
285
- get _triggerClass() {
286
- return this._dropdownOpened ? "udex-breadcrumbs__trigger--opened" : "";
321
+ get _triggerClass(): string {
322
+ return this._dropdownOpened ? triggerActiveClass : "";
287
323
  }
288
324
 
289
- get _accessibleNameText() {
325
+ get _accessibleNameText(): string {
290
326
  return UDExBreadcrumbs.i18nBundle.getText(BREADCRUMBS_ARIA_LABEL);
291
327
  }
292
328
 
293
- get _dropdownArrowAccessibleNameText() {
329
+ get _dropdownArrowAccessibleNameText(): string {
294
330
  return UDExBreadcrumbs.i18nBundle.getText(BREADCRUMBS_OVERFLOW_ARIA_LABEL);
295
331
  }
296
-
297
- _onfocusin(e: FocusEvent) {
298
- const currentItem = e.target as Link;
299
-
300
- this._itemNavigation?.setCurrentItem(currentItem);
301
- }
302
-
303
- static async onDefine() {
304
- UDExBreadcrumbs.i18nBundle = await getI18nBundle("@udex/web-components");
305
- }
306
332
  }
307
333
 
308
334
  UDExBreadcrumbs.define();
@@ -23,7 +23,6 @@ import BreadcrumbsItem from "@ui5/webcomponents/dist/BreadcrumbsItem.js";
23
23
  @customElement({
24
24
  tag: "udex-breadcrumbs-item",
25
25
  renderer: litRender,
26
- dependencies: [],
27
26
  })
28
27
  class UDExBreadcrumbsItem extends BreadcrumbsItem {
29
28
  /**
@@ -1,19 +1,20 @@
1
1
  <udex-dropdown
2
2
  id="udex-{{this._id}}-breadcrumbs__popover"
3
- class="udex-breadcrumbs__popover ui5-breadcrumbs-popover"
4
- placement-type="Bottom"
5
- horizontal-align="Left"
3
+ class="udex-breadcrumbs__popover ui5-breadcrumbs-popover"
4
+ placement-type="Bottom"
5
+ horizontal-align="Left"
6
6
  @after-open="{{_afterDropdownOpen}}"
7
7
  @after-close="{{_afterDropdownClose}}"
8
- >
8
+ @keydown="{{_handleKeydown}}">
9
9
  <div class="udex-breadcrumbs__popover-content">
10
- {{#each _dropdownItems}}
10
+ {{#each _dropdownItems}}
11
11
  {{#if this.icon}}
12
12
  <udex-link
13
+ index="{{@index}}"
13
14
  id="{{this._id}}-li"
14
15
  @ui5-click="{{../_onDropdownLinkPress}}"
15
16
  href="{{this.href}}"
16
- target="{{this.target}}"
17
+ target="{{this.target}}"
17
18
  class="udex-breadcrumbs__item udex-breadcrumbs__item--{{@index}} udex-breadcrumbs__item--with-icon"
18
19
  icon={{this.icon}}
19
20
  icon-placement="start"
@@ -31,16 +32,17 @@
31
32
  </span>
32
33
  {{else}}
33
34
  <udex-link
35
+ index="{{@index}}"
34
36
  id="{{this._id}}-li"
35
37
  @ui5-click="{{../_onDropdownLinkPress}}"
36
38
  href="{{this.href}}"
37
- target="{{this.target}}"
39
+ target="{{this.target}}"
38
40
  class="udex-breadcrumbs__item udex-breadcrumbs__item--{{@index}}"
39
41
  accessible-name="{{this.accessibleName}}"
40
42
  data-ui5-stable="{{this.stableDomRef}}">
41
43
  {{this.textContent}}
42
44
  </udex-link>
43
45
  {{/if}}
44
- {{/each}}
46
+ {{/each}}
45
47
  </div>
46
- </udex-dropdown>
48
+ </udex-dropdown>
package/src/Checkbox.ts CHANGED
@@ -29,7 +29,6 @@ import CheckboxCss from "./generated/themes/Checkbox.css.js";
29
29
  tag: "udex-checkbox",
30
30
  renderer: litRender,
31
31
  styles: [checkboxCss, CheckboxCss],
32
- dependencies: [CheckBox],
33
32
  })
34
33
  class UDExCheckbox extends CheckBox {
35
34
  }
@@ -35,7 +35,6 @@
35
35
  {{#if showFlagImages}}
36
36
  <img
37
37
  class="udex-country-selector__image"
38
- design="Default"
39
38
  aria-label="{{flagAriaLabel}}"
40
39
  style="background-position-x: {{selectedCountryFlagX}}; background-position-y: {{selectedCountryFlagY}}">
41
40
  {{/if}}
@@ -6,7 +6,8 @@ import { getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
6
6
  import executeTemplate from "@ui5/webcomponents-base/dist/renderer/executeTemplate.js";
7
7
  import {
8
8
  isEnter, isSpace, isBackSpace, isDelete,
9
- isEscape, isTabPrevious,
9
+ isEscape,
10
+ isTabPrevious,
10
11
  isTabNext,
11
12
  } from "@ui5/webcomponents-base/dist/Keys.js";
12
13
  import Popover from "@ui5/webcomponents/dist/Popover.js";
@@ -30,6 +31,8 @@ import { Country, CountryListDB } from "./data/CountryListISO3166.js";
30
31
  import UDExSearchableListBase from "./SearchableListBase.js";
31
32
  import UDExListItem from "./ListItem.js";
32
33
  import "@ui5/webcomponents-icons/dist/navigation-down-arrow.js";
34
+ import isLetterKey from "./utils/isLetterKeyPressed.js";
35
+
33
36
  /**
34
37
  * @class
35
38
  *
@@ -423,31 +426,46 @@ class CountrySelector extends UDExSearchableListBase {
423
426
  this.dropDownClose();
424
427
  }
425
428
 
426
- handleKeyDown(e: CustomEvent) {
429
+ handleKeyDown(e: KeyboardEvent) {
427
430
  if (this.disabled || this.readonly || this.displayonly) {
428
431
  return;
429
432
  }
430
433
 
431
- const keyEvent = e.detail as KeyboardEvent;
432
- const key = keyEvent.key;
433
- if (isEnter(keyEvent) || isSpace(keyEvent)) {
434
+ const key = e.key;
435
+
436
+ const isTabNextPress = isTabNext(e) && !this._search;
437
+ const isTabPrevPress = isTabPrevious(e) && !this._search;
438
+ const isEscPress = isEscape(e) && !this._search;
439
+
440
+ if (isEnter(e) || isSpace(e)) {
434
441
  if (this._dropdown.open) {
435
442
  this.dropDownClose();
436
443
  } else {
437
444
  this._dropdown.onTriggerClick();
438
445
  }
439
- } else if (isBackSpace(keyEvent) || isDelete(keyEvent)) {
446
+ }
447
+ if (isTabNextPress || isTabPrevPress || isEscPress) {
448
+ this._dropdown.open = false;
449
+ }
450
+ if (isBackSpace(e) || isDelete(e)) {
440
451
  this.selectedCountry = undefined;
441
452
  this._render();
442
- } else if (this.isLetterKey(key)) {
443
- this._dropdown.onOpen(this.getInput());
444
- this._search.focus();
445
- this._search.value = key;
446
- this.onValueSearch(key);
447
453
  }
454
+ if (isLetterKey(key)) {
455
+ e.preventDefault();
456
+ this.handleKeyPress(e);
457
+ }
458
+ }
459
+
460
+ handleKeyPress(keyEvent: KeyboardEvent) {
461
+ const key = keyEvent.key;
462
+ this._dropdown.onOpen(this.getInput());
463
+ this._search.focus();
464
+ this._search.value = key;
465
+ this.onValueSearch(key);
448
466
  }
449
467
 
450
- handleInputMouseDown(e: CustomEvent) {
468
+ handleInputMouseDown(e: CustomEvent): void {
451
469
  e.preventDefault();
452
470
  }
453
471
 
@@ -463,10 +481,6 @@ class CountrySelector extends UDExSearchableListBase {
463
481
  }
464
482
  }
465
483
 
466
- isLetterKey(key: string) {
467
- return /^[a-zA-Z]$/.test(key);
468
- }
469
-
470
484
  handleValueSearch(e:CustomEvent) {
471
485
  this.onValueSearch(e.detail.value as string);
472
486
  }
package/src/DatePicker.ts CHANGED
@@ -304,7 +304,7 @@ class UDExDatePicker extends UI5Element {
304
304
  this.hideCalendar();
305
305
  }
306
306
 
307
- handleInputClick(e: MouseEvent | KeyboardEvent): void {
307
+ handleInputClick(e: Event | KeyboardEvent): void {
308
308
  e.preventDefault();
309
309
 
310
310
  if (this.disabled || this.readonly) {
@@ -314,7 +314,7 @@ class UDExDatePicker extends UI5Element {
314
314
  this.showCalendar();
315
315
  }
316
316
 
317
- handleInputMouseDown(e: MouseEvent): void {
317
+ handleInputMouseDown(e: Event): void {
318
318
  e.preventDefault();
319
319
  }
320
320
 
package/src/Dropdown.ts CHANGED
@@ -274,8 +274,6 @@ class UDExDropdown extends UI5Element {
274
274
  const dropdownPaneLeftOffset = +dropdownPane.style.left.split("px")[0];
275
275
  if (dropdownPane.offsetWidth + dropdownPaneLeftOffset < this._breakpointSizeXS) {
276
276
  this.style.setProperty("--udex-dropdown-left-offset", `${dropdownPane.style.left}`);
277
- } else {
278
- dropdownPane.style.setProperty("--udex-dropdown-pane-width", `${this.offsetWidth}px`);
279
277
  }
280
278
  this.fireEvent("after-open");
281
279
  }