@sapudex/web-components 0.147.0 → 0.173.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 (492) hide show
  1. package/.eslintignore +1 -0
  2. package/bundle.esm.js +9 -0
  3. package/dist/AvatarGroup.js +0 -6
  4. package/dist/AvatarGroup.js.map +1 -1
  5. package/dist/Badge.d.ts +21 -14
  6. package/dist/Badge.js +20 -26
  7. package/dist/Badge.js.map +1 -1
  8. package/dist/Breadcrumbs.d.ts +23 -21
  9. package/dist/Breadcrumbs.js +58 -40
  10. package/dist/Breadcrumbs.js.map +1 -1
  11. package/dist/BreadcrumbsItem.js +0 -1
  12. package/dist/BreadcrumbsItem.js.map +1 -1
  13. package/dist/Checkbox.js +0 -1
  14. package/dist/Checkbox.js.map +1 -1
  15. package/dist/CountrySelector.d.ts +2 -2
  16. package/dist/CountrySelector.js +20 -12
  17. package/dist/CountrySelector.js.map +1 -1
  18. package/dist/DatePicker.d.ts +2 -2
  19. package/dist/DatePicker.js.map +1 -1
  20. package/dist/Dropdown.js +0 -3
  21. package/dist/Dropdown.js.map +1 -1
  22. package/dist/Footer.d.ts +53 -10
  23. package/dist/Footer.js +41 -11
  24. package/dist/Footer.js.map +1 -1
  25. package/dist/Link.d.ts +2 -5
  26. package/dist/Link.js +4 -8
  27. package/dist/Link.js.map +1 -1
  28. package/dist/List.d.ts +16 -1
  29. package/dist/List.js +154 -100
  30. package/dist/List.js.map +1 -1
  31. package/dist/ListItem.d.ts +1 -0
  32. package/dist/ListItem.js +3 -0
  33. package/dist/ListItem.js.map +1 -1
  34. package/dist/MastheadItem.d.ts +12 -2
  35. package/dist/MastheadItem.js +34 -7
  36. package/dist/MastheadItem.js.map +1 -1
  37. package/dist/MastheadMenu.d.ts +1 -0
  38. package/dist/MastheadMenu.js +13 -4
  39. package/dist/MastheadMenu.js.map +1 -1
  40. package/dist/MastheadMenuItem.d.ts +10 -0
  41. package/dist/MastheadMenuItem.js +24 -3
  42. package/dist/MastheadMenuItem.js.map +1 -1
  43. package/dist/MastheadMobileMenu.js +2 -2
  44. package/dist/MastheadMobileMenu.js.map +1 -1
  45. package/dist/MastheadProfileMenu.js +2 -2
  46. package/dist/MastheadProfileMenu.js.map +1 -1
  47. package/dist/MastheadShell.d.ts +4 -0
  48. package/dist/MastheadShell.js +21 -5
  49. package/dist/MastheadShell.js.map +1 -1
  50. package/dist/Pagination.d.ts +13 -3
  51. package/dist/Pagination.js +90 -57
  52. package/dist/Pagination.js.map +1 -1
  53. package/dist/PhoneNumberField.d.ts +3 -0
  54. package/dist/PhoneNumberField.js +9 -4
  55. package/dist/PhoneNumberField.js.map +1 -1
  56. package/dist/RangeSlider.js +0 -1
  57. package/dist/RangeSlider.js.map +1 -1
  58. package/dist/Search.d.ts +5 -4
  59. package/dist/Search.js +12 -12
  60. package/dist/Search.js.map +1 -1
  61. package/dist/SearchableListBase.d.ts +7 -1
  62. package/dist/SearchableListBase.js +47 -4
  63. package/dist/SearchableListBase.js.map +1 -1
  64. package/dist/SecondaryNavigation.d.ts +2 -2
  65. package/dist/SecondaryNavigation.js +20 -10
  66. package/dist/SecondaryNavigation.js.map +1 -1
  67. package/dist/SecondaryNavigationItem.d.ts +6 -3
  68. package/dist/SecondaryNavigationItem.js +50 -26
  69. package/dist/SecondaryNavigationItem.js.map +1 -1
  70. package/dist/SecondaryNavigationSubItem.d.ts +1 -0
  71. package/dist/SecondaryNavigationSubItem.js +3 -0
  72. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  73. package/dist/SegmentedButton.d.ts +2 -2
  74. package/dist/SegmentedButton.js.map +1 -1
  75. package/dist/SelectBox.js.map +1 -1
  76. package/dist/SideNavigationGroup.js +0 -1
  77. package/dist/SideNavigationGroup.js.map +1 -1
  78. package/dist/SideNavigationItem.js +0 -1
  79. package/dist/SideNavigationItem.js.map +1 -1
  80. package/dist/SideNavigationSubItem.js +0 -1
  81. package/dist/SideNavigationSubItem.js.map +1 -1
  82. package/dist/Slider.js +0 -1
  83. package/dist/Slider.js.map +1 -1
  84. package/dist/TabNavigation.js +2 -2
  85. package/dist/TabNavigation.js.map +1 -1
  86. package/dist/Tag.d.ts +1 -4
  87. package/dist/Tag.js +1 -5
  88. package/dist/Tag.js.map +1 -1
  89. package/dist/Tile.d.ts +1 -1
  90. package/dist/Tile.js +1 -1
  91. package/dist/Tile.js.map +1 -1
  92. package/dist/Toast.d.ts +0 -1
  93. package/dist/Toast.js +4 -3
  94. package/dist/Toast.js.map +1 -1
  95. package/dist/Wizard.js +1 -1
  96. package/dist/Wizard.js.map +1 -1
  97. package/dist/WizardTab.js +0 -1
  98. package/dist/WizardTab.js.map +1 -1
  99. package/dist/assets/{bundle.esm-6e8e301d.js → bundle.esm-c4ffd46a.js} +187 -189
  100. package/dist/assets/messagebundle_ar-bb470511.js +1 -0
  101. package/dist/assets/messagebundle_bg-a533dfab.js +1 -0
  102. package/dist/assets/messagebundle_cs-c70a7f36.js +1 -0
  103. package/dist/assets/messagebundle_da-e292cac5.js +1 -0
  104. package/dist/assets/messagebundle_de-5c108de6.js +1 -0
  105. package/dist/assets/messagebundle_el-44746e0b.js +1 -0
  106. package/dist/assets/messagebundle_en-4997b226.js +1 -0
  107. package/dist/assets/messagebundle_es-c0c1060f.js +1 -0
  108. package/dist/assets/messagebundle_et-a5f15d3b.js +1 -0
  109. package/dist/assets/messagebundle_fi-f4b8eb82.js +1 -0
  110. package/dist/assets/messagebundle_fr-af18ac46.js +1 -0
  111. package/dist/assets/messagebundle_hr-d893e46d.js +1 -0
  112. package/dist/assets/messagebundle_hu-230c58c9.js +1 -0
  113. package/dist/assets/messagebundle_it-5bf1436c.js +1 -0
  114. package/dist/assets/messagebundle_iw-dd60afc4.js +1 -0
  115. package/dist/assets/messagebundle_ko-c450bda3.js +1 -0
  116. package/dist/assets/messagebundle_lt-87ab0529.js +1 -0
  117. package/dist/assets/messagebundle_lv-fc413852.js +1 -0
  118. package/dist/assets/messagebundle_nl-34d7e236.js +1 -0
  119. package/dist/assets/messagebundle_no-f22648fb.js +1 -0
  120. package/dist/assets/messagebundle_pl-10303f09.js +1 -0
  121. package/dist/assets/messagebundle_pt-b7a40c67.js +1 -0
  122. package/dist/assets/messagebundle_ro-94628623.js +1 -0
  123. package/dist/assets/messagebundle_ru-1f6595ba.js +1 -0
  124. package/dist/assets/messagebundle_sk-89eabac1.js +1 -0
  125. package/dist/assets/messagebundle_sl-d56532f1.js +1 -0
  126. package/dist/assets/messagebundle_sr-cf7f3b32.js +1 -0
  127. package/dist/assets/messagebundle_sv-3a3b20d3.js +1 -0
  128. package/dist/assets/messagebundle_tr-33b16d09.js +1 -0
  129. package/dist/assets/messagebundle_uk-82e1f2c1.js +1 -0
  130. package/dist/assets/messagebundle_zh_CN-15ca05aa.js +1 -0
  131. package/dist/assets/messagebundle_zh_TW-ad6445e7.js +1 -0
  132. package/dist/css/themes/Badge.css +1 -1
  133. package/dist/css/themes/BreadcrumbsPopover.css +1 -1
  134. package/dist/css/themes/Button.css +1 -1
  135. package/dist/css/themes/DatePickerPopover.css +1 -1
  136. package/dist/css/themes/FilterMenu.css +1 -1
  137. package/dist/css/themes/Footer.css +1 -1
  138. package/dist/css/themes/MastheadItem.css +1 -1
  139. package/dist/css/themes/MastheadMenu.css +1 -1
  140. package/dist/css/themes/MastheadMenuItem.css +1 -1
  141. package/dist/css/themes/MastheadShell.css +1 -1
  142. package/dist/css/themes/MediaPlayer.css +1 -1
  143. package/dist/css/themes/Modal.css +1 -1
  144. package/dist/css/themes/RatingIndicator.css +1 -1
  145. package/dist/css/themes/ReviewItem.css +1 -1
  146. package/dist/css/themes/Slider.css +1 -1
  147. package/dist/css/themes/TableCell.css +1 -1
  148. package/dist/css/themes/TableCellBase.css +1 -1
  149. package/dist/css/themes/TextArea.css +1 -1
  150. package/dist/custom-elements-internal.json +232 -31
  151. package/dist/custom-elements.json +224 -30
  152. package/dist/features/SearchSuggestionsPopover.d.ts +16 -0
  153. package/dist/features/SearchSuggestionsPopover.js +49 -0
  154. package/dist/features/SearchSuggestionsPopover.js.map +1 -1
  155. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -0
  156. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -0
  157. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -0
  158. package/dist/generated/assets/i18n/messagebundle_da.json +1 -0
  159. package/dist/generated/assets/i18n/messagebundle_de.json +1 -1
  160. package/dist/generated/assets/i18n/messagebundle_el.json +1 -0
  161. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  162. package/dist/generated/assets/i18n/messagebundle_es.json +1 -1
  163. package/dist/generated/assets/i18n/messagebundle_et.json +1 -0
  164. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -0
  165. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -1
  166. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -0
  167. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -0
  168. package/dist/generated/assets/i18n/messagebundle_it.json +1 -0
  169. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -0
  170. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -0
  171. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -0
  172. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -0
  173. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -0
  174. package/dist/generated/assets/i18n/messagebundle_no.json +1 -0
  175. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -0
  176. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -0
  177. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -0
  178. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -0
  179. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -0
  180. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -0
  181. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -0
  182. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -0
  183. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -0
  184. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -0
  185. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -0
  186. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -0
  187. package/dist/generated/i18n/i18n-defaults.d.ts +7 -1
  188. package/dist/generated/i18n/i18n-defaults.js +7 -1
  189. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  190. package/dist/generated/json-imports/i18n-static.js +86 -2
  191. package/dist/generated/json-imports/i18n-static.js.map +1 -1
  192. package/dist/generated/json-imports/i18n.js +58 -2
  193. package/dist/generated/json-imports/i18n.js.map +1 -1
  194. package/dist/generated/templates/BadgeTemplate.lit.js +4 -4
  195. package/dist/generated/templates/BadgeTemplate.lit.js.map +1 -1
  196. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js +3 -3
  197. package/dist/generated/templates/BreadcrumbsPopoverTemplate.lit.js.map +1 -1
  198. package/dist/generated/templates/CountrySelectorTemplate.lit.js +1 -1
  199. package/dist/generated/templates/CountrySelectorTemplate.lit.js.map +1 -1
  200. package/dist/generated/templates/FooterTemplate.lit.js +12 -11
  201. package/dist/generated/templates/FooterTemplate.lit.js.map +1 -1
  202. package/dist/generated/templates/ListItemTemplate.lit.js +2 -2
  203. package/dist/generated/templates/ListItemTemplate.lit.js.map +1 -1
  204. package/dist/generated/templates/ListTemplate.lit.js +3 -3
  205. package/dist/generated/templates/ListTemplate.lit.js.map +1 -1
  206. package/dist/generated/templates/MastheadItemTemplate.lit.js +17 -16
  207. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +1 -1
  208. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +15 -14
  209. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +1 -1
  210. package/dist/generated/templates/MastheadMenuTemplate.lit.js +3 -3
  211. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +1 -1
  212. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +1 -1
  213. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +1 -1
  214. package/dist/generated/templates/MastheadShellTemplate.lit.js +10 -9
  215. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +1 -1
  216. package/dist/generated/templates/PaginationTemplate.lit.js +3 -3
  217. package/dist/generated/templates/PaginationTemplate.lit.js.map +1 -1
  218. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js +1 -1
  219. package/dist/generated/templates/PhoneNumberFieldTemplate.lit.js.map +1 -1
  220. package/dist/generated/templates/RatingBarTemplate.lit.js +1 -1
  221. package/dist/generated/templates/RatingBarTemplate.lit.js.map +1 -1
  222. package/dist/generated/templates/ReviewItemTemplate.lit.js +1 -1
  223. package/dist/generated/templates/ReviewItemTemplate.lit.js.map +1 -1
  224. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js +1 -1
  225. package/dist/generated/templates/SearchSuggestionsTemplate.lit.js.map +1 -1
  226. package/dist/generated/templates/SearchableListBaseTemplate.lit.js +2 -2
  227. package/dist/generated/templates/SearchableListBaseTemplate.lit.js.map +1 -1
  228. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +3 -3
  229. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +1 -1
  230. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +3 -3
  231. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +1 -1
  232. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +1 -1
  233. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +1 -1
  234. package/dist/generated/templates/StepInputTemplate.lit.js +1 -1
  235. package/dist/generated/templates/StepInputTemplate.lit.js.map +1 -1
  236. package/dist/generated/templates/WizardTemplate.lit.js +1 -1
  237. package/dist/generated/templates/WizardTemplate.lit.js.map +1 -1
  238. package/dist/generated/themes/Badge.css.js +1 -1
  239. package/dist/generated/themes/Badge.css.js.map +1 -1
  240. package/dist/generated/themes/BreadcrumbsPopover.css.js +1 -1
  241. package/dist/generated/themes/BreadcrumbsPopover.css.js.map +1 -1
  242. package/dist/generated/themes/Button.css.js +1 -1
  243. package/dist/generated/themes/Button.css.js.map +1 -1
  244. package/dist/generated/themes/DatePickerPopover.css.js +1 -1
  245. package/dist/generated/themes/DatePickerPopover.css.js.map +1 -1
  246. package/dist/generated/themes/FilterMenu.css.js +1 -1
  247. package/dist/generated/themes/FilterMenu.css.js.map +1 -1
  248. package/dist/generated/themes/Footer.css.js +1 -1
  249. package/dist/generated/themes/Footer.css.js.map +1 -1
  250. package/dist/generated/themes/MastheadItem.css.js +1 -1
  251. package/dist/generated/themes/MastheadItem.css.js.map +1 -1
  252. package/dist/generated/themes/MastheadMenu.css.js +1 -1
  253. package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
  254. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  255. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  256. package/dist/generated/themes/MastheadShell.css.js +1 -1
  257. package/dist/generated/themes/MastheadShell.css.js.map +1 -1
  258. package/dist/generated/themes/MediaPlayer.css.js +1 -1
  259. package/dist/generated/themes/MediaPlayer.css.js.map +1 -1
  260. package/dist/generated/themes/Modal.css.js +1 -1
  261. package/dist/generated/themes/Modal.css.js.map +1 -1
  262. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  263. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  264. package/dist/generated/themes/ReviewItem.css.js +1 -1
  265. package/dist/generated/themes/ReviewItem.css.js.map +1 -1
  266. package/dist/generated/themes/Slider.css.js +1 -1
  267. package/dist/generated/themes/Slider.css.js.map +1 -1
  268. package/dist/generated/themes/TableCell.css.js +1 -1
  269. package/dist/generated/themes/TableCell.css.js.map +1 -1
  270. package/dist/generated/themes/TableCellBase.css.js +1 -1
  271. package/dist/generated/themes/TableCellBase.css.js.map +1 -1
  272. package/dist/generated/themes/TextArea.css.js +1 -1
  273. package/dist/generated/themes/TextArea.css.js.map +1 -1
  274. package/dist/i18n/messagebundle.properties +10 -0
  275. package/dist/i18n/messagebundle_ar.properties +1 -0
  276. package/dist/i18n/messagebundle_bg.properties +1 -0
  277. package/dist/i18n/messagebundle_cs.properties +1 -0
  278. package/dist/i18n/messagebundle_da.properties +1 -0
  279. package/dist/i18n/messagebundle_de.properties +1 -0
  280. package/dist/i18n/messagebundle_el.properties +1 -0
  281. package/dist/i18n/messagebundle_en.properties +4 -0
  282. package/dist/i18n/messagebundle_es.properties +1 -0
  283. package/dist/i18n/messagebundle_et.properties +1 -0
  284. package/dist/i18n/messagebundle_fi.properties +1 -0
  285. package/dist/i18n/messagebundle_fr.properties +1 -0
  286. package/dist/i18n/messagebundle_hr.properties +1 -0
  287. package/dist/i18n/messagebundle_hu.properties +1 -0
  288. package/dist/i18n/messagebundle_it.properties +1 -0
  289. package/dist/i18n/messagebundle_iw.properties +2 -0
  290. package/dist/i18n/messagebundle_ko.properties +1 -0
  291. package/dist/i18n/messagebundle_lt.properties +1 -0
  292. package/dist/i18n/messagebundle_lv.properties +1 -0
  293. package/dist/i18n/messagebundle_nl.properties +1 -0
  294. package/dist/i18n/messagebundle_no.properties +1 -0
  295. package/dist/i18n/messagebundle_pl.properties +1 -0
  296. package/dist/i18n/messagebundle_pt.properties +1 -0
  297. package/dist/i18n/messagebundle_pt_BR.properties +1 -0
  298. package/dist/i18n/messagebundle_ro.properties +1 -0
  299. package/dist/i18n/messagebundle_ru.properties +1 -0
  300. package/dist/i18n/messagebundle_sk.properties +1 -0
  301. package/dist/i18n/messagebundle_sl.properties +1 -0
  302. package/dist/i18n/messagebundle_sr.properties +2 -0
  303. package/dist/i18n/messagebundle_sv.properties +1 -0
  304. package/dist/i18n/messagebundle_tr.properties +1 -0
  305. package/dist/i18n/messagebundle_uk.properties +1 -0
  306. package/dist/i18n/messagebundle_zh_CN.properties +4 -0
  307. package/dist/i18n/messagebundle_zh_TW.properties +1 -0
  308. package/dist/types/BadgeDesign.d.ts +15 -0
  309. package/dist/types/BadgeDesign.js +18 -0
  310. package/dist/types/BadgeDesign.js.map +1 -0
  311. package/dist/types/IconPlacement.d.ts +5 -0
  312. package/dist/types/IconPlacement.js +7 -0
  313. package/dist/types/IconPlacement.js.map +1 -0
  314. package/dist/types/List.d.ts +8 -0
  315. package/dist/types/List.js.map +1 -1
  316. package/dist/utils/isLetterKeyPressed.d.ts +2 -0
  317. package/dist/utils/isLetterKeyPressed.js +5 -0
  318. package/dist/utils/isLetterKeyPressed.js.map +1 -0
  319. package/dist/utils/listItemLabelStartsWithKeyFocus.d.ts +3 -0
  320. package/dist/utils/listItemLabelStartsWithKeyFocus.js +55 -0
  321. package/dist/utils/listItemLabelStartsWithKeyFocus.js.map +1 -0
  322. package/dist/utils/listItemLabelUtils.d.ts +7 -0
  323. package/dist/utils/listItemLabelUtils.js +36 -0
  324. package/dist/utils/listItemLabelUtils.js.map +1 -0
  325. package/dist/vscode.html-custom-data.json +63 -26
  326. package/dist/web-types.json +113 -38
  327. package/package.json +1 -1
  328. package/src/AvatarGroup.ts +0 -7
  329. package/src/Badge.hbs +16 -5
  330. package/src/Badge.ts +36 -19
  331. package/src/Breadcrumbs.ts +92 -66
  332. package/src/BreadcrumbsItem.ts +0 -1
  333. package/src/BreadcrumbsPopover.hbs +11 -9
  334. package/src/Checkbox.ts +0 -1
  335. package/src/CountrySelector.hbs +0 -1
  336. package/src/CountrySelector.ts +30 -16
  337. package/src/DatePicker.ts +2 -2
  338. package/src/Dropdown.ts +0 -2
  339. package/src/Footer.hbs +52 -28
  340. package/src/Footer.ts +81 -22
  341. package/src/Link.ts +5 -9
  342. package/src/List.hbs +2 -2
  343. package/src/List.ts +182 -112
  344. package/src/ListItem.hbs +2 -2
  345. package/src/ListItem.ts +4 -0
  346. package/src/MastheadItem.hbs +14 -4
  347. package/src/MastheadItem.ts +42 -9
  348. package/src/MastheadMenu.hbs +4 -4
  349. package/src/MastheadMenu.ts +20 -8
  350. package/src/MastheadMenuItem.hbs +10 -2
  351. package/src/MastheadMenuItem.ts +28 -1
  352. package/src/MastheadMobileMenu.ts +2 -2
  353. package/src/MastheadProfileMenu.hbs +1 -0
  354. package/src/MastheadProfileMenu.ts +3 -2
  355. package/src/MastheadShell.hbs +25 -19
  356. package/src/MastheadShell.ts +25 -5
  357. package/src/Pagination.hbs +3 -2
  358. package/src/Pagination.ts +110 -60
  359. package/src/PhoneNumberField.hbs +3 -3
  360. package/src/PhoneNumberField.ts +16 -8
  361. package/src/RangeSlider.ts +0 -1
  362. package/src/RatingBar.hbs +1 -1
  363. package/src/ReviewItem.hbs +1 -1
  364. package/src/Search.hbs +10 -10
  365. package/src/Search.ts +17 -17
  366. package/src/SearchSuggestions.hbs +1 -0
  367. package/src/SearchableListBase.hbs +3 -1
  368. package/src/SearchableListBase.ts +57 -6
  369. package/src/SecondaryNavigation.hbs +1 -0
  370. package/src/SecondaryNavigation.ts +23 -16
  371. package/src/SecondaryNavigationItem.hbs +10 -7
  372. package/src/SecondaryNavigationItem.ts +58 -28
  373. package/src/SecondaryNavigationSubItem.hbs +3 -0
  374. package/src/SecondaryNavigationSubItem.ts +3 -0
  375. package/src/SegmentedButton.ts +2 -2
  376. package/src/SelectBox.ts +1 -1
  377. package/src/SideNavigationGroup.ts +0 -1
  378. package/src/SideNavigationItem.ts +0 -1
  379. package/src/SideNavigationSubItem.ts +0 -1
  380. package/src/Slider.ts +0 -1
  381. package/src/StepInput.hbs +16 -16
  382. package/src/TabNavigation.ts +2 -2
  383. package/src/Tag.ts +1 -5
  384. package/src/Tile.ts +2 -2
  385. package/src/Toast.ts +4 -3
  386. package/src/Wizard.hbs +1 -0
  387. package/src/Wizard.ts +1 -1
  388. package/src/WizardTab.ts +0 -1
  389. package/src/features/SearchSuggestionsPopover.ts +67 -1
  390. package/src/generated/i18n/i18n-defaults.ts +2 -2
  391. package/src/generated/json-imports/i18n-static.ts +86 -2
  392. package/src/generated/json-imports/i18n.ts +59 -3
  393. package/src/generated/templates/BadgeTemplate.lit.ts +3 -3
  394. package/src/generated/templates/BreadcrumbsPopoverTemplate.lit.ts +3 -3
  395. package/src/generated/templates/CountrySelectorTemplate.lit.ts +1 -1
  396. package/src/generated/templates/FooterTemplate.lit.ts +12 -11
  397. package/src/generated/templates/ListItemTemplate.lit.ts +2 -2
  398. package/src/generated/templates/ListTemplate.lit.ts +3 -3
  399. package/src/generated/templates/MastheadItemTemplate.lit.ts +17 -16
  400. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +15 -14
  401. package/src/generated/templates/MastheadMenuTemplate.lit.ts +3 -3
  402. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +1 -1
  403. package/src/generated/templates/MastheadShellTemplate.lit.ts +10 -9
  404. package/src/generated/templates/PaginationTemplate.lit.ts +3 -3
  405. package/src/generated/templates/PhoneNumberFieldTemplate.lit.ts +1 -1
  406. package/src/generated/templates/RatingBarTemplate.lit.ts +1 -1
  407. package/src/generated/templates/ReviewItemTemplate.lit.ts +1 -1
  408. package/src/generated/templates/SearchSuggestionsTemplate.lit.ts +1 -1
  409. package/src/generated/templates/SearchableListBaseTemplate.lit.ts +2 -2
  410. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +3 -3
  411. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +3 -3
  412. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +1 -1
  413. package/src/generated/templates/StepInputTemplate.lit.ts +1 -1
  414. package/src/generated/templates/WizardTemplate.lit.ts +1 -1
  415. package/src/generated/themes/Badge.css.ts +1 -1
  416. package/src/generated/themes/BreadcrumbsPopover.css.ts +1 -1
  417. package/src/generated/themes/Button.css.ts +1 -1
  418. package/src/generated/themes/DatePickerPopover.css.ts +1 -1
  419. package/src/generated/themes/FilterMenu.css.ts +1 -1
  420. package/src/generated/themes/Footer.css.ts +1 -1
  421. package/src/generated/themes/MastheadItem.css.ts +1 -1
  422. package/src/generated/themes/MastheadMenu.css.ts +1 -1
  423. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  424. package/src/generated/themes/MastheadShell.css.ts +1 -1
  425. package/src/generated/themes/MediaPlayer.css.ts +1 -1
  426. package/src/generated/themes/Modal.css.ts +1 -1
  427. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  428. package/src/generated/themes/ReviewItem.css.ts +1 -1
  429. package/src/generated/themes/Slider.css.ts +1 -1
  430. package/src/generated/themes/TableCell.css.ts +1 -1
  431. package/src/generated/themes/TableCellBase.css.ts +1 -1
  432. package/src/generated/themes/TextArea.css.ts +1 -1
  433. package/src/i18n/messagebundle.properties +10 -0
  434. package/src/i18n/messagebundle_ar.properties +1 -0
  435. package/src/i18n/messagebundle_bg.properties +1 -0
  436. package/src/i18n/messagebundle_cs.properties +1 -0
  437. package/src/i18n/messagebundle_da.properties +1 -0
  438. package/src/i18n/messagebundle_de.properties +1 -0
  439. package/src/i18n/messagebundle_el.properties +1 -0
  440. package/src/i18n/messagebundle_en.properties +4 -0
  441. package/src/i18n/messagebundle_es.properties +1 -0
  442. package/src/i18n/messagebundle_et.properties +1 -0
  443. package/src/i18n/messagebundle_fi.properties +1 -0
  444. package/src/i18n/messagebundle_fr.properties +1 -0
  445. package/src/i18n/messagebundle_hr.properties +1 -0
  446. package/src/i18n/messagebundle_hu.properties +1 -0
  447. package/src/i18n/messagebundle_it.properties +1 -0
  448. package/src/i18n/messagebundle_iw.properties +2 -0
  449. package/src/i18n/messagebundle_ko.properties +1 -0
  450. package/src/i18n/messagebundle_lt.properties +1 -0
  451. package/src/i18n/messagebundle_lv.properties +1 -0
  452. package/src/i18n/messagebundle_nl.properties +1 -0
  453. package/src/i18n/messagebundle_no.properties +1 -0
  454. package/src/i18n/messagebundle_pl.properties +1 -0
  455. package/src/i18n/messagebundle_pt.properties +1 -0
  456. package/src/i18n/messagebundle_pt_BR.properties +1 -0
  457. package/src/i18n/messagebundle_ro.properties +1 -0
  458. package/src/i18n/messagebundle_ru.properties +1 -0
  459. package/src/i18n/messagebundle_sk.properties +1 -0
  460. package/src/i18n/messagebundle_sl.properties +1 -0
  461. package/src/i18n/messagebundle_sr.properties +2 -0
  462. package/src/i18n/messagebundle_sv.properties +1 -0
  463. package/src/i18n/messagebundle_tr.properties +1 -0
  464. package/src/i18n/messagebundle_uk.properties +1 -0
  465. package/src/i18n/messagebundle_zh_CN.properties +4 -0
  466. package/src/i18n/messagebundle_zh_TW.properties +1 -0
  467. package/src/themes/Badge.css +48 -52
  468. package/src/themes/BreadcrumbsPopover.css +1 -0
  469. package/src/themes/Button.css +13 -0
  470. package/src/themes/DatePickerPopover.css +9 -0
  471. package/src/themes/FilterMenu.css +6 -6
  472. package/src/themes/Footer.css +22 -3
  473. package/src/themes/MastheadItem.css +4 -0
  474. package/src/themes/MastheadMenu.css +1 -1
  475. package/src/themes/MastheadMenuItem.css +4 -0
  476. package/src/themes/MastheadShell.css +5 -0
  477. package/src/themes/MediaPlayer.css +2 -1
  478. package/src/themes/Modal.css +1 -0
  479. package/src/themes/ReviewItem.css +0 -2
  480. package/src/themes/TableCell.css +0 -2
  481. package/src/themes/TableCellBase.css +1 -0
  482. package/src/themes/TextArea.css +1 -1
  483. package/src/types/BadgeDesign.ts +17 -0
  484. package/src/types/IconPlacement.ts +6 -0
  485. package/src/types/List.ts +9 -0
  486. package/src/utils/isLetterKeyPressed.ts +5 -0
  487. package/src/utils/listItemLabelStartsWithKeyFocus.ts +74 -0
  488. package/src/utils/listItemLabelUtils.ts +50 -0
  489. package/dist/assets/messagebundle_de-8158912e.js +0 -1
  490. package/dist/assets/messagebundle_en-c677773a.js +0 -1
  491. package/dist/assets/messagebundle_es-8dab6565.js +0 -1
  492. package/dist/assets/messagebundle_fr-669aca6d.js +0 -1
package/src/Pagination.ts CHANGED
@@ -16,6 +16,7 @@ import {
16
16
  LAST_PAGE,
17
17
  PREVIOUS_PAGE,
18
18
  NEXT_PAGE,
19
+ CURRENT_PAGE,
19
20
  } from "./generated/i18n/i18n-defaults.js";
20
21
  import Button from "./Button.js";
21
22
  import "@ui5/webcomponents/dist/Icon.js";
@@ -128,18 +129,26 @@ class UDExPagination extends UI5Element {
128
129
  _direction?: string;
129
130
 
130
131
  _pages: Page[];
132
+ _visiblePages: Page[];
131
133
 
132
134
  _previousPageElement?: HTMLElement;
133
135
 
134
136
  _mobileDisplayNumber: number;
137
+ _desktopDisplayNumber: number;
138
+ _firstPageIndex!: number;
139
+ _lastPageIndex!: number;
140
+ _pageFocusedManually!: boolean;
135
141
 
136
142
  static i18nBundle: I18nBundle;
137
143
 
138
144
  constructor() {
139
145
  super();
140
146
  this._pages = [];
147
+ this._visiblePages = [];
141
148
  this.currentPageIndex = 0;
142
149
  this._mobileDisplayNumber = 5;
150
+ this._desktopDisplayNumber = 10;
151
+ this._pageFocusedManually = false;
143
152
  }
144
153
 
145
154
  onEnterDOM() {
@@ -148,6 +157,10 @@ class UDExPagination extends UI5Element {
148
157
  }
149
158
  }
150
159
 
160
+ onBeforeRendering(): void {
161
+ this.setupPages(this.pages);
162
+ }
163
+
151
164
  get nextButtonDisbled(): boolean {
152
165
  return this.currentPageIndex + 1 === this.pages;
153
166
  }
@@ -189,6 +202,13 @@ class UDExPagination extends UI5Element {
189
202
  return ` ${UDExPagination.i18nBundle.getText(OF)} `;
190
203
  }
191
204
 
205
+ get paginationAccessibleName(): string {
206
+ if (this.typeShort) {
207
+ return this.paginationShortAccessibleName;
208
+ }
209
+ return `${UDExPagination.i18nBundle.getText(CURRENT_PAGE)} ${this.currentPageIndex + 1}`;
210
+ }
211
+
192
212
  get pageAccessibleName(): string {
193
213
  return UDExPagination.i18nBundle.getText(PAGINATION_PAGE);
194
214
  }
@@ -213,7 +233,7 @@ class UDExPagination extends UI5Element {
213
233
 
214
234
  get previousPageAccessibleName(): string {
215
235
  if (this.currentPageIndex === 0) { return UDExPagination.i18nBundle.getText(PREVIOUS_PAGE); }
216
- return `${UDExPagination.i18nBundle.getText(PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;
236
+ return `${UDExPagination.i18nBundle.getText(CURRENT_PAGE)} ${this.currentPageIndex + 1}. ${UDExPagination.i18nBundle.getText(PREVIOUS_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex}`;
217
237
  }
218
238
 
219
239
  get previousBtnTooltip(): string {
@@ -222,7 +242,7 @@ class UDExPagination extends UI5Element {
222
242
 
223
243
  get nextPageAccessibleName(): string {
224
244
  if (this.pages && this.currentPageIndex === (this.pages - 1)) { return UDExPagination.i18nBundle.getText(NEXT_PAGE); }
225
- return `${UDExPagination.i18nBundle.getText(NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;
245
+ return `${UDExPagination.i18nBundle.getText(CURRENT_PAGE)} ${this.currentPageIndex + 1}. ${UDExPagination.i18nBundle.getText(NEXT_PAGE)}. ${this.activatePageAccessibleText} ${this.currentPageIndex + 2}`;
226
246
  }
227
247
 
228
248
  get nextBtnTooltip(): string {
@@ -230,7 +250,7 @@ class UDExPagination extends UI5Element {
230
250
  }
231
251
 
232
252
  get pagination(): Page[] {
233
- return this.setupPages(this.pages);
253
+ return this._visiblePages;
234
254
  }
235
255
 
236
256
  get paginationClass(): string {
@@ -244,6 +264,18 @@ class UDExPagination extends UI5Element {
244
264
  return `${classes} udex-pagination--${this.display} udex-pagination--${this.type}`;
245
265
  }
246
266
 
267
+ get displayNumber(): number {
268
+ const lastIndex = this.display === DisplayType.mobile ? this._mobileDisplayNumber : this._desktopDisplayNumber;
269
+ return lastIndex;
270
+ }
271
+
272
+ get pageOffset(): number {
273
+ if (this.display === DisplayType.mobile) {
274
+ return Math.floor(this._mobileDisplayNumber / 2);
275
+ }
276
+ return this._desktopDisplayNumber / 2 - 1;
277
+ }
278
+
247
279
  static async onDefine() {
248
280
  UDExPagination.i18nBundle = await getI18nBundle("@udex/web-components");
249
281
  }
@@ -256,9 +288,8 @@ class UDExPagination extends UI5Element {
256
288
  return;
257
289
  }
258
290
 
259
- element.setAttribute("aria-current", "page");
260
291
  this.currentPageIndex = pageIndex;
261
- this._previousPageElement?.removeAttribute("aria-current");
292
+ this._pageFocusedManually = true;
262
293
  this._previousPageElement = element;
263
294
  }
264
295
 
@@ -268,7 +299,11 @@ class UDExPagination extends UI5Element {
268
299
  if (this.pages && currentPage >= this.pages - 1) {
269
300
  return;
270
301
  }
302
+
271
303
  this.currentPageIndex = currentPage + 1;
304
+ this._pageFocusedManually = false;
305
+ this._pages = this.setupPagesData();
306
+
272
307
  this.emitChangeEvent();
273
308
  }
274
309
 
@@ -279,6 +314,9 @@ class UDExPagination extends UI5Element {
279
314
  return;
280
315
  }
281
316
  this.currentPageIndex -= 1;
317
+ this._pageFocusedManually = false;
318
+ this._pages = this.setupPagesData();
319
+
282
320
  this.emitChangeEvent();
283
321
  }
284
322
 
@@ -288,6 +326,10 @@ class UDExPagination extends UI5Element {
288
326
  if (currentPage === 0) {
289
327
  return;
290
328
  }
329
+
330
+ this._firstPageIndex = 0;
331
+ this._lastPageIndex = this.displayNumber;
332
+
291
333
  this.currentPageIndex = 0;
292
334
  this.emitChangeEvent();
293
335
  }
@@ -298,76 +340,79 @@ class UDExPagination extends UI5Element {
298
340
  if (!this.pages || currentPage >= this.pages - 1) {
299
341
  return;
300
342
  }
301
- this.currentPageIndex = this.pages - 1;
343
+
344
+ this._firstPageIndex = this.pages - this.displayNumber;
345
+ this._lastPageIndex = this.pages;
346
+
347
+ this.currentPageIndex = this._lastPageIndex - 1;
302
348
  this.emitChangeEvent();
303
349
  }
304
350
 
305
- setupMobilePages(pages: number): Page[] {
306
- const pagesCollection = [];
307
- let startIndex;
308
- let endIndex;
309
- const offset = Math.floor(this._mobileDisplayNumber / 2);
310
-
311
- if (pages <= this._mobileDisplayNumber) {
312
- startIndex = 0;
313
- endIndex = pages;
314
- } else {
315
- const displayStartNumber = this.currentPageIndex < offset ? 0 : this.currentPageIndex - offset;
351
+ setupPages(pages?: number) {
352
+ if (!pages) {
353
+ this._visiblePages = [];
354
+ return;
355
+ }
316
356
 
317
- startIndex = this.currentPageIndex <= pages - offset - 1
318
- ? displayStartNumber
319
- : pages - this._mobileDisplayNumber;
357
+ if (!this._pages.length) {
358
+ this._firstPageIndex = 0;
359
+ this._lastPageIndex = pages > this.displayNumber ? this.displayNumber : pages;
360
+ }
320
361
 
321
- const displayEndNumber = this.currentPageIndex < offset
322
- ? this._mobileDisplayNumber
323
- : this.currentPageIndex + this._mobileDisplayNumber - offset;
362
+ this._pages = this.setupPagesData();
324
363
 
325
- endIndex = this.currentPageIndex <= pages - offset ? displayEndNumber : pages;
364
+ if (this.currentPageIndex > this._lastPageIndex || this._lastPageIndex - this.currentPageIndex <= this.pageOffset) {
365
+ this._visiblePages = this.shiftVisiblePages();
326
366
  }
327
367
 
328
- for (let index = startIndex; index < endIndex && index < pages; index++) {
329
- const isCurrent = index === this.currentPageIndex;
330
- const accessibleName = isCurrent ? `
331
- ${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}, ${UDExPagination.i18nBundle.getText(SELECTED)}` : `
332
- ${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}`;
333
- pagesCollection.push({
334
- index,
335
- value: index + 1,
336
- active: isCurrent,
337
- accessibleName,
338
- });
368
+ if (this.currentPageIndex < this._firstPageIndex || this.currentPageIndex - this._firstPageIndex <= this.pageOffset) {
369
+ this._visiblePages = this.shiftVisiblePages(true);
339
370
  }
371
+ }
340
372
 
341
- return pagesCollection;
342
- }
343
-
344
- setupDesktopPages(pages: number): Page[] {
345
- const pagesCollection = [];
346
- for (let index = 0; index < pages; index++) {
347
- const isCurrent = index === this.currentPageIndex;
348
- const accessibleName = isCurrent ? `
349
- ${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}, ${UDExPagination.i18nBundle.getText(SELECTED)}` : `
350
- ${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}`;
351
- pagesCollection.push({
352
- index,
353
- value: index + 1,
354
- active: isCurrent,
355
- accessibleName,
356
- });
373
+ setupPagesData(): Page[] {
374
+ const updatedPages = [];
375
+ if (this.pages) {
376
+ this._previousPageElement?.removeAttribute("aria-current");
377
+ for (let index = 0; index < this.pages; index++) {
378
+ const isCurrent = index === this.currentPageIndex;
379
+ const ariaCurrent = "page";
380
+ const accessibleName = this.getPageAccessibleName(index);
381
+ updatedPages.push({
382
+ index,
383
+ value: index + 1,
384
+ active: isCurrent,
385
+ accessibleName,
386
+ ...(isCurrent && { ariaCurrent }),
387
+ });
388
+ }
357
389
  }
358
-
359
- return pagesCollection;
390
+ return updatedPages;
360
391
  }
361
392
 
362
- setupPages(pages?: number): Page[] {
363
- if (!pages) {
364
- return [];
365
- }
366
- if (this.display === DisplayType.mobile) {
367
- return this.setupMobilePages(pages);
393
+ shiftVisiblePages(shiftBackwards: boolean = false): Page[] {
394
+ if (shiftBackwards) {
395
+ while (this.currentPageIndex - this._firstPageIndex < this.pageOffset && this._firstPageIndex > 0) {
396
+ this._firstPageIndex--;
397
+ this._lastPageIndex--;
398
+ }
399
+ } else {
400
+ while (this._lastPageIndex - this.currentPageIndex - 1 < this.pageOffset && this._lastPageIndex < this.pages!) {
401
+ this._firstPageIndex++;
402
+ this._lastPageIndex++;
403
+ }
368
404
  }
405
+ return this._pages.slice(this._firstPageIndex, this._lastPageIndex);
406
+ }
369
407
 
370
- return this.setupDesktopPages(pages);
408
+ getPageAccessibleName(index: number): string {
409
+ const isCurrent = index === this.currentPageIndex;
410
+
411
+ const accessibleName = isCurrent ? `
412
+ ${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}, ${UDExPagination.i18nBundle.getText(SELECTED)}` : `
413
+ ${this.pageAccessibleName} ${index + 1} ${UDExPagination.i18nBundle.getText(OF)} ${this.pages}`;
414
+
415
+ return accessibleName;
371
416
  }
372
417
 
373
418
  onPageClick(e: Event) {
@@ -387,6 +432,11 @@ class UDExPagination extends UI5Element {
387
432
  }
388
433
 
389
434
  onAfterRendering() {
435
+ if (this._pageFocusedManually) {
436
+ const activePageItem = this.shadowRoot?.querySelector<HTMLElement>(".udex-pagination__page[active]");
437
+ activePageItem?.focus();
438
+ }
439
+
390
440
  if (this.type === PaginationType.full) {
391
441
  return;
392
442
  }
@@ -65,10 +65,10 @@
65
65
  {{selectedCountryName}} {{selectedPhonePrefix}}
66
66
  </div>
67
67
  <div class="udex-phone-number-field__button-content">
68
- <div
68
+ <img
69
69
  class="udex-phone-number-field__flag"
70
- style="{{selectedFlagBackgroundPosition}}"
71
- ></div>
70
+ aria-label={{selectedCountryName}}
71
+ style="{{selectedFlagBackgroundPosition}}">
72
72
  </div>
73
73
  </udex-button>
74
74
  {{/unless}}
@@ -287,6 +287,7 @@ class UDExPhoneNumberField extends UI5Element {
287
287
 
288
288
  static i18nBundle: I18nBundle;
289
289
  _dropdown!: UDExDropdown;
290
+ _dropdownList!: UDExList;
290
291
  _handleResizeBound: ResizeObserverCallback;
291
292
 
292
293
  static async onDefine() {
@@ -318,6 +319,10 @@ class UDExPhoneNumberField extends UI5Element {
318
319
 
319
320
  onAfterRendering() {
320
321
  this._dropdown = this.getDropdown();
322
+ this._dropdownList = this.getDropdownList();
323
+ if (this.countryIso) {
324
+ this._dropdownList.focusSelectedItem();
325
+ }
321
326
  }
322
327
 
323
328
  onClick(): void {
@@ -409,7 +414,6 @@ class UDExPhoneNumberField extends UI5Element {
409
414
  if (isIncorrectNumberEntered) {
410
415
  this.value = "";
411
416
  }
412
-
413
417
  this.fireEvent("change");
414
418
  }
415
419
 
@@ -417,11 +421,8 @@ class UDExPhoneNumberField extends UI5Element {
417
421
  const dropdown = this.getDropdown();
418
422
 
419
423
  dropdown.onClose();
420
-
421
424
  this.selectedIso = e.detail.item.id;
422
- this.value = this.selectedPhonePrefix;
423
- this.phoneFormat = this.value + this.selectedPlaceholder;
424
- this.maxlength = this.phoneFormat.length;
425
+ this.applyPhoneMask();
425
426
  this.getInputField().focus();
426
427
  }
427
428
 
@@ -429,6 +430,7 @@ class UDExPhoneNumberField extends UI5Element {
429
430
  this.buttonIcon = OpenButtonIcon.iconUp;
430
431
  this._dropdownExpanded = true;
431
432
  }
433
+
432
434
  handleDropdownClose() {
433
435
  this.buttonIcon = OpenButtonIcon.iconDown;
434
436
  this._dropdownExpanded = false;
@@ -490,13 +492,19 @@ class UDExPhoneNumberField extends UI5Element {
490
492
  ? this.selectedPhonePrefix + this.selectedPlaceholder : initialPlaceholder;
491
493
  }
492
494
 
493
- getDropdown() {
495
+ getDropdownList(): UDExList {
496
+ return this.shadowRoot!.querySelector<UDExList>(
497
+ "[udex-list]",
498
+ )!;
499
+ }
500
+
501
+ getDropdown(): UDExDropdown {
494
502
  return this.shadowRoot!.querySelector<UDExDropdown>(
495
503
  "[udex-dropdown]",
496
504
  )!;
497
505
  }
498
506
 
499
- getButton() {
507
+ getButton(): UDExButton {
500
508
  return this.shadowRoot!.querySelector<UDExButton>(
501
509
  "[udex-button]",
502
510
  )!;
@@ -528,7 +536,7 @@ class UDExPhoneNumberField extends UI5Element {
528
536
 
529
537
  get selectedCountryName(): string {
530
538
  if (!this.countryIso) {
531
- return "";
539
+ return "None";
532
540
  }
533
541
 
534
542
  return this.updatedCountriesList.filter(country => country.iso === this.countryIso)[0]?.countryName
@@ -29,7 +29,6 @@ import SliderCss from "./generated/themes/Slider.css.js";
29
29
  tag: "udex-range-slider",
30
30
  renderer: litRender,
31
31
  styles: [SliderBase.styles, rangeSliderCss, SliderCss],
32
- dependencies: [],
33
32
  })
34
33
  class UDExRangeSlider extends RangeSlider {
35
34
  onEnterDOM(): void {
package/src/RatingBar.hbs CHANGED
@@ -5,7 +5,7 @@
5
5
  <div class="udex-rating-bar__progress"></div>
6
6
  </div>
7
7
  {{#if showPercentage}}
8
- <div role="note" class="udex-rating-bar__percentage">{{validatedPercentage}}</div>
8
+ <div role="note" class="udex-rating-bar__percentage" aria-label="{{validatedPercentage}}">{{validatedPercentage}}</div>
9
9
  {{/if}}
10
10
  <span id="ratingDescription" class="hidden-text">{{_ratingDescription}}</span>
11
11
  </div>
@@ -10,7 +10,7 @@
10
10
  <div class="udex-review-item__text-wrapper">
11
11
  <p class="udex-review-item__text" id="udex-review-item__text">{{_completeText}}</p>
12
12
  {{#if _showTextExpander}}
13
- <udex-button id="reviewExpander" class="udex-review-item__text-expander" design="Invisible" size="Small" @click="{{_toggleText}}">{{buttonText}}</udex-button>
13
+ <udex-button id="reviewExpander" class="udex-review-item__text-expander" design="Invisible" size="Large" @click="{{_toggleText}}">{{buttonText}}</udex-button>
14
14
  {{/if}}
15
15
  </div>
16
16
  {{#if author}}
package/src/Search.hbs CHANGED
@@ -1,13 +1,14 @@
1
1
  <div class="udex-search__root {{classWithPrefix}}">
2
2
  {{#if isShowSearchHomePrefix}}
3
3
  <div class="udex-search__prefix">
4
- <button type="button"
5
- role="combobox"
6
- aria-expanded="{{_prefixDropdownExpanded}}"
7
- aria-haspopup="true"
8
- aria-controls="udex-search-prefix"
9
- class="udex-search__prefix-button"
10
- @click="{{handleDropdownClick}}">
4
+ <button
5
+ type="button"
6
+ role="combobox"
7
+ aria-expanded="{{_prefixDropdownExpanded}}"
8
+ aria-haspopup="true"
9
+ aria-controls="udex-search-prefix"
10
+ class="udex-search__prefix-button"
11
+ @click="{{handleDropdownClick}}">
11
12
  <span class="udex-search__prefix-label">{{labelPrefix}}</span>
12
13
  <ui5-icon class="udex-search__prefix-icon" name="slim-arrow-down"></ui5-icon>
13
14
  </button>
@@ -16,7 +17,7 @@
16
17
  class="udex-search__prefix-popover"
17
18
  hide-arrow
18
19
  placement-type="Bottom"
19
- horizontal-align="Left"
20
+ horizontal-align="Left"
20
21
  style="{{prefixPopoverStyles}}"
21
22
  @after-close="{{handleAfterClosePrefixPopover}}">
22
23
  <slot></slot>
@@ -75,8 +76,7 @@
75
76
  design="Default"
76
77
  tooltip="{{tooltipInfo.tooltipResetButton}}"
77
78
  @click="{{onReset}}"
78
- @keydown="{{handleKeyDownReset}}"
79
- >
79
+ @keydown="{{handleKeyDownReset}}">
80
80
  <ui5-icon
81
81
  class="udex-search__button-icon"
82
82
  accessible-name="{{accInfo.accessibleNameResetIcon}}"
package/src/Search.ts CHANGED
@@ -728,22 +728,20 @@ class UDExSearch extends UI5Element {
728
728
  dropdown.style.width = `${button.offsetWidth + 1}px`;
729
729
  button.classList.add("udex-search__prefix-button--active");
730
730
  wrapper.classList.add("udex-search__prefix--show-popover");
731
- this.handleItemClick();
731
+ this.dropdownPrefix[0].addEventListener("item-press", this.handleItemClick);
732
732
  }
733
733
  }
734
734
 
735
- private handleItemClick() {
736
- this.dropdownPrefix[0].addEventListener("item-press", (e: any) => {
737
- const selectedItemPrefix = e.detail.item as ListItemBase;
738
- this.labelPrefix = selectedItemPrefix.innerText;
739
- this.fireEvent("prefix-item-click", { item: selectedItemPrefix });
740
- this.onClosePrefixPopover();
741
- });
742
- }
735
+ handleItemClick = (e: Event) => {
736
+ const selectedItemPrefix = (e as CustomEvent).detail.item as ListItemBase;
737
+ this.labelPrefix = selectedItemPrefix.innerText;
738
+ this.fireEvent("prefix-item-click", { item: selectedItemPrefix });
739
+ this.onClosePrefixPopover();
740
+ };
743
741
 
744
742
  onClosePrefixPopover() {
745
743
  const dropdown = this.getPrefixPopover();
746
-
744
+ this.dropdownPrefix[0].removeEventListener("item-press", this.handleItemClick);
747
745
  dropdown.close();
748
746
  this._prefixDropdownExpanded = false;
749
747
  this.handleAfterClosePrefixPopover();
@@ -755,7 +753,6 @@ class UDExSearch extends UI5Element {
755
753
 
756
754
  wrapper.classList.remove("udex-search__prefix--show-popover");
757
755
  button.classList.remove("udex-search__prefix-button--active");
758
- this.dropdownPrefix[0].removeEventListener("item-press", () => {});
759
756
  }
760
757
 
761
758
  handleInputClick(): void {
@@ -767,7 +764,7 @@ class UDExSearch extends UI5Element {
767
764
  }
768
765
  }
769
766
 
770
- onSubmit(e: MouseEvent): void {
767
+ onSubmit(e: Event): void {
771
768
  e.stopPropagation();
772
769
  this.handleSubmitValue();
773
770
  }
@@ -810,6 +807,10 @@ class UDExSearch extends UI5Element {
810
807
  }
811
808
  }
812
809
 
810
+ handleKeyPressSuggestionList(e: KeyboardEvent): void {
811
+ this.Suggestion?.handleKeyPress(e);
812
+ }
813
+
813
814
  handleClassToRoot() {
814
815
  const hasAdditionRootClass = !this.shadowRoot?.querySelector(".udex-search__root")?.classList.contains("udex-search__root--show-popover");
815
816
 
@@ -891,7 +892,7 @@ class UDExSearch extends UI5Element {
891
892
  }
892
893
 
893
894
  handleOutsideClick(): void {
894
- document.addEventListener("mousedown", (e: MouseEvent) => {
895
+ document.addEventListener("mousedown", (e: Event) => {
895
896
  const popover = (e.target as HTMLElement).shadowRoot?.querySelector("[ui5-popover]");
896
897
 
897
898
  if (e.target !== this && popover !== this.Suggestion?.popover) {
@@ -1011,7 +1012,7 @@ class UDExSearch extends UI5Element {
1011
1012
  this.focusClasses = "";
1012
1013
  }
1013
1014
 
1014
- onReset(e: MouseEvent): void {
1015
+ onReset(e: Event): void {
1015
1016
  e.stopPropagation();
1016
1017
  this.handleReset();
1017
1018
  }
@@ -1022,7 +1023,7 @@ class UDExSearch extends UI5Element {
1022
1023
  this.onClosePopover();
1023
1024
  this.fireEvent("handle-value-reset");
1024
1025
  this.Suggestion?.resetFocusState();
1025
- this.focus();
1026
+ this.getSearchInput()?.focus();
1026
1027
  }
1027
1028
 
1028
1029
  handleKeyDownReset(e: KeyboardEvent) {
@@ -1033,7 +1034,6 @@ class UDExSearch extends UI5Element {
1033
1034
  e.preventDefault();
1034
1035
  e.stopPropagation();
1035
1036
  this.handleReset();
1036
- this.getSearchInput()?.focus();
1037
1037
  }
1038
1038
  }
1039
1039
 
@@ -1041,7 +1041,7 @@ class UDExSearch extends UI5Element {
1041
1041
  return this.shadowRoot?.querySelector("[id='search-input']") as HTMLInputElement;
1042
1042
  }
1043
1043
 
1044
- onVoice(e: MouseEvent): void {
1044
+ onVoice(e: Event): void {
1045
1045
  e.stopPropagation();
1046
1046
  if (this.speechRecognition) {
1047
1047
  this.onSpeechLaunch();
@@ -8,6 +8,7 @@
8
8
  id="{{getSuggestionsPopoverId}}"
9
9
  aria-orientation="vertical"
10
10
  accessible-role="Dialog"
11
+ @keydown="{{handleKeyPressSuggestionList}}"
11
12
  accessible-name="{{suggestionsAccessibleName}}">
12
13
  {{#if showNoResultMessage}}
13
14
  <span class="udex-search-suggestions__message">{{noResultMessage}}</span>
@@ -14,6 +14,8 @@
14
14
  {{else}}
15
15
  <udex-list
16
16
  id="udex-list"
17
+ role="{{roleForGroupList}}"
18
+ accessible-role="{{accessibleRoleForList}}"
17
19
  class="udex-filter-menu__list"
18
20
  ?controlled="{{isControlled}}"
19
21
  mode="{{mode}}">
@@ -45,7 +47,7 @@
45
47
  </udex-list-select-all>
46
48
  {{else}}
47
49
  <udex-list-group-header
48
- role="list"
50
+ role="group"
49
51
  _additional-class-name="udex-searchable-list__header"
50
52
  class="{{../groupClassName}}"
51
53
  ?non-interactive="{{this.item.nonInteractive}}"