@sapudex/web-components 2.57.0 → 2.59.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 (645) hide show
  1. package/cypress/specs/FilterMenu.cy.tsx +209 -19
  2. package/cypress/specs/List.cy.tsx +67 -4
  3. package/cypress/specs/ListItem.cy.tsx +35 -9
  4. package/cypress/specs/SelectBox.cy.tsx +101 -1
  5. package/cypress/specs/TabNavigation.cy.tsx +351 -21
  6. package/cypress/specs/TagGroup.cy.tsx +1 -1
  7. package/dist/List.d.ts +15 -1
  8. package/dist/List.js +23 -2
  9. package/dist/List.js.map +1 -1
  10. package/dist/ListGroupHeaderBase.d.ts +13 -0
  11. package/dist/ListGroupHeaderBase.js +43 -2
  12. package/dist/ListGroupHeaderBase.js.map +1 -1
  13. package/dist/ListGroupHeaderTemplate.js +26 -7
  14. package/dist/ListGroupHeaderTemplate.js.map +1 -1
  15. package/dist/ListItem.d.ts +0 -3
  16. package/dist/ListItem.js +18 -12
  17. package/dist/ListItem.js.map +1 -1
  18. package/dist/ListItemBase.d.ts +17 -0
  19. package/dist/ListItemBase.js +15 -0
  20. package/dist/ListItemBase.js.map +1 -1
  21. package/dist/ListItemTemplate.js +2 -2
  22. package/dist/ListItemTemplate.js.map +1 -1
  23. package/dist/MastheadCountrySelector.js +5 -5
  24. package/dist/MastheadCountrySelector.js.map +1 -1
  25. package/dist/MastheadCountrySelectorTemplate.d.ts +2 -0
  26. package/dist/MastheadCountrySelectorTemplate.js +15 -0
  27. package/dist/MastheadCountrySelectorTemplate.js.map +1 -0
  28. package/dist/MastheadItem.d.ts +0 -3
  29. package/dist/MastheadItem.js +3 -6
  30. package/dist/MastheadItem.js.map +1 -1
  31. package/dist/MastheadItemTemplate.d.ts +2 -0
  32. package/dist/MastheadItemTemplate.js +41 -0
  33. package/dist/MastheadItemTemplate.js.map +1 -0
  34. package/dist/MastheadMenu.d.ts +1 -0
  35. package/dist/MastheadMenu.js +4 -6
  36. package/dist/MastheadMenu.js.map +1 -1
  37. package/dist/MastheadMenuItem.d.ts +0 -3
  38. package/dist/MastheadMenuItem.js +3 -6
  39. package/dist/MastheadMenuItem.js.map +1 -1
  40. package/dist/MastheadMenuItemTemplate.d.ts +2 -0
  41. package/dist/MastheadMenuItemTemplate.js +36 -0
  42. package/dist/MastheadMenuItemTemplate.js.map +1 -0
  43. package/dist/MastheadMenuTemplate.d.ts +2 -0
  44. package/dist/MastheadMenuTemplate.js +13 -0
  45. package/dist/MastheadMenuTemplate.js.map +1 -0
  46. package/dist/MastheadMobileMenu.js +3 -3
  47. package/dist/MastheadMobileMenu.js.map +1 -1
  48. package/dist/MastheadMobileMenuTemplate.d.ts +2 -0
  49. package/dist/MastheadMobileMenuTemplate.js +33 -0
  50. package/dist/MastheadMobileMenuTemplate.js.map +1 -0
  51. package/dist/MastheadProfileMenu.d.ts +2 -4
  52. package/dist/MastheadProfileMenu.js +5 -20
  53. package/dist/MastheadProfileMenu.js.map +1 -1
  54. package/dist/MastheadProfileMenuTemplate.d.ts +2 -0
  55. package/dist/MastheadProfileMenuTemplate.js +24 -0
  56. package/dist/MastheadProfileMenuTemplate.js.map +1 -0
  57. package/dist/MastheadShell.js +3 -5
  58. package/dist/MastheadShell.js.map +1 -1
  59. package/dist/MastheadShellTemplate.d.ts +2 -0
  60. package/dist/MastheadShellTemplate.js +20 -0
  61. package/dist/MastheadShellTemplate.js.map +1 -0
  62. package/dist/RatingIndicatorTemplate.js +1 -1
  63. package/dist/RatingIndicatorTemplate.js.map +1 -1
  64. package/dist/SearchableListBase.d.ts +10 -0
  65. package/dist/SearchableListBase.js +34 -1
  66. package/dist/SearchableListBase.js.map +1 -1
  67. package/dist/SearchableListBaseTemplate.js +35 -4
  68. package/dist/SearchableListBaseTemplate.js.map +1 -1
  69. package/dist/SecondaryNavigation.d.ts +1 -0
  70. package/dist/SecondaryNavigation.js +23 -9
  71. package/dist/SecondaryNavigation.js.map +1 -1
  72. package/dist/SecondaryNavigationItem.d.ts +0 -1
  73. package/dist/SecondaryNavigationItem.js +4 -6
  74. package/dist/SecondaryNavigationItem.js.map +1 -1
  75. package/dist/SecondaryNavigationItemBase.js +2 -2
  76. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  77. package/dist/SecondaryNavigationItemTemplate.d.ts +2 -0
  78. package/dist/SecondaryNavigationItemTemplate.js +12 -0
  79. package/dist/SecondaryNavigationItemTemplate.js.map +1 -0
  80. package/dist/SecondaryNavigationSubItem.d.ts +0 -2
  81. package/dist/SecondaryNavigationSubItem.js +3 -7
  82. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  83. package/dist/SecondaryNavigationSubItemTemplate.d.ts +2 -0
  84. package/dist/SecondaryNavigationSubItemTemplate.js +16 -0
  85. package/dist/SecondaryNavigationSubItemTemplate.js.map +1 -0
  86. package/dist/SecondaryNavigationTemplate.d.ts +2 -0
  87. package/dist/SecondaryNavigationTemplate.js +7 -0
  88. package/dist/SecondaryNavigationTemplate.js.map +1 -0
  89. package/dist/SelectBase.js +8 -3
  90. package/dist/SelectBase.js.map +1 -1
  91. package/dist/SideNavigationMobile.d.ts +2 -3
  92. package/dist/SideNavigationMobile.js +22 -16
  93. package/dist/SideNavigationMobile.js.map +1 -1
  94. package/dist/SideNavigationMobileTemplate.d.ts +2 -0
  95. package/dist/SideNavigationMobileTemplate.js +11 -0
  96. package/dist/SideNavigationMobileTemplate.js.map +1 -0
  97. package/dist/Tab.d.ts +0 -7
  98. package/dist/Tab.js +4 -19
  99. package/dist/Tab.js.map +1 -1
  100. package/dist/TabHeaderTemplate.d.ts +2 -0
  101. package/dist/TabHeaderTemplate.js +15 -0
  102. package/dist/TabHeaderTemplate.js.map +1 -0
  103. package/dist/TabInOverflowTemplate.d.ts +2 -0
  104. package/dist/TabInOverflowTemplate.js +7 -0
  105. package/dist/TabInOverflowTemplate.js.map +1 -0
  106. package/dist/TabNavigation.d.ts +15 -4
  107. package/dist/TabNavigation.js +70 -40
  108. package/dist/TabNavigation.js.map +1 -1
  109. package/dist/TabNavigationPopoverTemplate.d.ts +2 -0
  110. package/dist/TabNavigationPopoverTemplate.js +9 -0
  111. package/dist/TabNavigationPopoverTemplate.js.map +1 -0
  112. package/dist/TabNavigationTemplate.d.ts +2 -0
  113. package/dist/TabNavigationTemplate.js +10 -0
  114. package/dist/TabNavigationTemplate.js.map +1 -0
  115. package/dist/TabTemplate.d.ts +2 -0
  116. package/dist/TabTemplate.js +5 -0
  117. package/dist/TabTemplate.js.map +1 -0
  118. package/dist/TagGroup.d.ts +2 -2
  119. package/dist/TagGroup.js +14 -3
  120. package/dist/TagGroup.js.map +1 -1
  121. package/dist/assets/InputSuggestions-CloTVyrf.js +2 -0
  122. package/dist/assets/{ListItemStandardExpandableTextTemplate-BQtSr7yg.js → ListItemStandardExpandableTextTemplate-DpquSMb2.js} +1 -1
  123. package/dist/assets/{ar-6UKwJun6.js → ar-CMU2PGtw.js} +1 -1
  124. package/dist/assets/{ar_EG-BTSal4jr.js → ar_EG-Bi2CIb24.js} +1 -1
  125. package/dist/assets/{ar_SA-Ck13AOrQ.js → ar_SA-BXTzBfWR.js} +1 -1
  126. package/dist/assets/{bg-fF9FXKHH.js → bg-B6_PMtzW.js} +1 -1
  127. package/dist/assets/{bundle.esm-GvPkDyXP.js → bundle.esm-Cyz8a5IX.js} +244 -262
  128. package/dist/assets/{ca-ZuvXTynI.js → ca-DFP6ILMq.js} +1 -1
  129. package/dist/assets/{cnr-CiidS6E_.js → cnr-Grlu3JuX.js} +1 -1
  130. package/dist/assets/{cs-CKH0PBiM.js → cs-lgNqqL4u.js} +1 -1
  131. package/dist/assets/{da-DLJy-V4w.js → da-ZKggtzGq.js} +1 -1
  132. package/dist/assets/{de-0N92OkSB.js → de-DL1zgfsi.js} +1 -1
  133. package/dist/assets/{de_AT-D8g7Tth2.js → de_AT-CmarUHhe.js} +1 -1
  134. package/dist/assets/{de_CH-DYTcKEqU.js → de_CH-CFp86jVo.js} +1 -1
  135. package/dist/assets/{el-OYZuNIHv.js → el-FdvefiDT.js} +1 -1
  136. package/dist/assets/{el_CY-D79vuMAa.js → el_CY-BJPkkKi8.js} +1 -1
  137. package/dist/assets/{en-CllNN7YY.js → en-B1Q_JFFb.js} +1 -1
  138. package/dist/assets/{en_AU-Ddrviu44.js → en_AU-Bm6lcfFm.js} +1 -1
  139. package/dist/assets/{en_GB-B9eSErHy.js → en_GB-CCipb5dG.js} +1 -1
  140. package/dist/assets/{en_HK-FdAjB4tQ.js → en_HK-Bu8Js72H.js} +1 -1
  141. package/dist/assets/{en_IE-zdmtzUDu.js → en_IE-BZXJHeYM.js} +1 -1
  142. package/dist/assets/{en_IN-DJJRjMIF.js → en_IN-Dh3537uv.js} +1 -1
  143. package/dist/assets/{en_NZ-BY--qj4s.js → en_NZ-Bx3mG4fb.js} +1 -1
  144. package/dist/assets/{en_PG-RcJi2hvJ.js → en_PG-CyRO9VGd.js} +1 -1
  145. package/dist/assets/{en_SG-BUtJMBS2.js → en_SG-BEsuw651.js} +1 -1
  146. package/dist/assets/{en_ZA-D-uqJ4Za.js → en_ZA-i0tdkruX.js} +1 -1
  147. package/dist/assets/{es-DgitLRHt.js → es-BKtAFDBk.js} +1 -1
  148. package/dist/assets/{es_AR-7a81KXAl.js → es_AR-Cgh6Q2W_.js} +1 -1
  149. package/dist/assets/{es_BO-CdNGyTgv.js → es_BO-CaK9OOQC.js} +1 -1
  150. package/dist/assets/{es_CL-DuHBIVFo.js → es_CL-u6fJ6PPk.js} +1 -1
  151. package/dist/assets/{es_CO-C0CJWwB-.js → es_CO-DAO-13dw.js} +1 -1
  152. package/dist/assets/{es_MX-DtPgyxGD.js → es_MX-D1KhXUy4.js} +1 -1
  153. package/dist/assets/{es_PE-DGF7Yjrt.js → es_PE-DEUen4VG.js} +1 -1
  154. package/dist/assets/{es_UY-fD9lVhfR.js → es_UY-CPBMwHSz.js} +1 -1
  155. package/dist/assets/{es_VE-BX3pigg8.js → es_VE-CNZouG2K.js} +1 -1
  156. package/dist/assets/{et-BMj4rjsT.js → et-DNQPssPo.js} +1 -1
  157. package/dist/assets/{fa-CQhbGi8S.js → fa-4zj1zCg1.js} +1 -1
  158. package/dist/assets/{fi-DBKA9_K5.js → fi-C6HFNTL6.js} +1 -1
  159. package/dist/assets/{fr-CMQtkd4R.js → fr-BydrHZkq.js} +1 -1
  160. package/dist/assets/{fr_BE-Bl0FruWm.js → fr_BE-C8hcZNOL.js} +1 -1
  161. package/dist/assets/{fr_CA-DFlIL_d4.js → fr_CA-Cw2zy44G.js} +1 -1
  162. package/dist/assets/{fr_CH-C8lyCDBe.js → fr_CH-BbCQFx3s.js} +1 -1
  163. package/dist/assets/{fr_LU-CG5r3b1-.js → fr_LU-BpH6nMiI.js} +1 -1
  164. package/dist/assets/{he-D3P1Q9GQ.js → he-CfKmVVrF.js} +1 -1
  165. package/dist/assets/{hi-B3yky8gy.js → hi-D1WBUmI6.js} +1 -1
  166. package/dist/assets/{hr-cQ9G2h7E.js → hr-pnk2hlkB.js} +1 -1
  167. package/dist/assets/{hu-D0ywysYs.js → hu-CCzBj3iT.js} +1 -1
  168. package/dist/assets/{id-B-yAWgiT.js → id-BeGrqJpK.js} +1 -1
  169. package/dist/assets/{it-DLzjbv-9.js → it-B6Mz1czr.js} +1 -1
  170. package/dist/assets/{it_CH-DKz1oDNC.js → it_CH-CwPXoj3N.js} +1 -1
  171. package/dist/assets/{ja-C8zg_Zor.js → ja-BILluLT2.js} +1 -1
  172. package/dist/assets/{kk-DZZOQ4wh.js → kk-YSUtf5Jy.js} +1 -1
  173. package/dist/assets/{ko-BEJWYeL9.js → ko-DUlXl0QQ.js} +1 -1
  174. package/dist/assets/{lt-Cji-Zk_r.js → lt-Dn5sAAtt.js} +1 -1
  175. package/dist/assets/{lv-rjxWTRTn.js → lv-D_k8IElJ.js} +1 -1
  176. package/dist/assets/messagebundle_ar-C3EXytoC.js +1 -0
  177. package/dist/assets/messagebundle_ar-DmZrrjEF.js +1 -0
  178. package/dist/assets/messagebundle_bg-BaZ97Q_b.js +1 -0
  179. package/dist/assets/messagebundle_bg-CgU7GPvK.js +1 -0
  180. package/dist/assets/messagebundle_ca-BwjVUbUA.js +1 -0
  181. package/dist/assets/messagebundle_ca-YiUGbO_8.js +1 -0
  182. package/dist/assets/messagebundle_cnr-CN2hPZIN.js +1 -0
  183. package/dist/assets/messagebundle_cnr-zdEdPJvc.js +1 -0
  184. package/dist/assets/messagebundle_cs-CGbnEjza.js +1 -0
  185. package/dist/assets/messagebundle_cs-DmRWH--o.js +1 -0
  186. package/dist/assets/messagebundle_cy-BF0YH9Iz.js +1 -0
  187. package/dist/assets/messagebundle_cy-CUiGsjO6.js +1 -0
  188. package/dist/assets/messagebundle_da-CWKLQJiq.js +1 -0
  189. package/dist/assets/messagebundle_da-bTkr4pUc.js +1 -0
  190. package/dist/assets/messagebundle_de-BmnClk4G.js +1 -0
  191. package/dist/assets/messagebundle_de-vB6qhgvG.js +1 -0
  192. package/dist/assets/messagebundle_el-DKdItEgW.js +1 -0
  193. package/dist/assets/messagebundle_el-Gv1Ly8aj.js +1 -0
  194. package/dist/assets/messagebundle_en-B7YJOdQz.js +1 -0
  195. package/dist/assets/messagebundle_en-DbKo-Dkl.js +1 -0
  196. package/dist/assets/messagebundle_en-DcV886MF.js +1 -0
  197. package/dist/assets/messagebundle_en_GB-Be93_Z4H.js +1 -0
  198. package/dist/assets/messagebundle_en_GB-CFh7e8hQ.js +1 -0
  199. package/dist/assets/messagebundle_en_US_sappsd-HCarC-Yr.js +1 -0
  200. package/dist/assets/messagebundle_en_US_sappsd-Se8GgI58.js +1 -0
  201. package/dist/assets/messagebundle_en_US_saprigi-CCHFk7YZ.js +1 -0
  202. package/dist/assets/messagebundle_en_US_saprigi-CbfvaHUL.js +1 -0
  203. package/dist/assets/messagebundle_en_US_saptrc-B8AIRzlo.js +1 -0
  204. package/dist/assets/messagebundle_en_US_saptrc-yJ3PcdEm.js +1 -0
  205. package/dist/assets/messagebundle_es-BH-a8BxO.js +1 -0
  206. package/dist/assets/messagebundle_es-Dt93wbGV.js +1 -0
  207. package/dist/assets/messagebundle_es_MX-BedlYlF3.js +1 -0
  208. package/dist/assets/messagebundle_es_MX-COPqooo9.js +1 -0
  209. package/dist/assets/messagebundle_et-BsYgDw46.js +1 -0
  210. package/dist/assets/messagebundle_et-UwpqUE-p.js +1 -0
  211. package/dist/assets/messagebundle_fi-BN3UWEz0.js +1 -0
  212. package/dist/assets/messagebundle_fi-Cwf7Puui.js +1 -0
  213. package/dist/assets/messagebundle_fr-43w09LAE.js +1 -0
  214. package/dist/assets/messagebundle_fr-CVRaf9_H.js +1 -0
  215. package/dist/assets/messagebundle_fr_CA-BM04X6xU.js +1 -0
  216. package/dist/assets/messagebundle_fr_CA-CdnVYumi.js +1 -0
  217. package/dist/assets/messagebundle_hi-DfeonbAH.js +1 -0
  218. package/dist/assets/messagebundle_hi-JRJlP9Uh.js +1 -0
  219. package/dist/assets/messagebundle_hr-CKOnn34q.js +1 -0
  220. package/dist/assets/messagebundle_hr-CbyIBlH3.js +1 -0
  221. package/dist/assets/messagebundle_hu-DF1gQudE.js +1 -0
  222. package/dist/assets/messagebundle_hu-D_IQ9kTy.js +1 -0
  223. package/dist/assets/messagebundle_id-B0K1usj4.js +1 -0
  224. package/dist/assets/messagebundle_id-gDJYoaGq.js +1 -0
  225. package/dist/assets/messagebundle_it-B80_R2Ih.js +1 -0
  226. package/dist/assets/messagebundle_it-CVqU4g6t.js +1 -0
  227. package/dist/assets/messagebundle_iw-BoelOIS4.js +1 -0
  228. package/dist/assets/messagebundle_iw-iMDtLxaa.js +1 -0
  229. package/dist/assets/messagebundle_ja-BlRbv4vb.js +1 -0
  230. package/dist/assets/messagebundle_ja-BrDH-19-.js +1 -0
  231. package/dist/assets/messagebundle_kk-C7VPek1-.js +1 -0
  232. package/dist/assets/messagebundle_kk-DhAT_bim.js +1 -0
  233. package/dist/assets/messagebundle_ko-CIqP8x6n.js +1 -0
  234. package/dist/assets/messagebundle_ko-DgD6uyZ5.js +1 -0
  235. package/dist/assets/messagebundle_lt-BGK5mpcm.js +1 -0
  236. package/dist/assets/messagebundle_lt-BV0kKrY0.js +1 -0
  237. package/dist/assets/messagebundle_lv-5IcjoxWD.js +1 -0
  238. package/dist/assets/messagebundle_lv-DDBi7iKe.js +1 -0
  239. package/dist/assets/messagebundle_mk-BUrn04sZ.js +1 -0
  240. package/dist/assets/messagebundle_mk-P5veRdg2.js +1 -0
  241. package/dist/assets/messagebundle_ms-9VDLR5en.js +1 -0
  242. package/dist/assets/messagebundle_ms-CB8sQUg2.js +1 -0
  243. package/dist/assets/messagebundle_nl-BaAgPO7h.js +1 -0
  244. package/dist/assets/messagebundle_nl-f1Up3dB9.js +1 -0
  245. package/dist/assets/messagebundle_no-C-_ldp7o.js +1 -0
  246. package/dist/assets/messagebundle_no-DRSqWQ-C.js +1 -0
  247. package/dist/assets/messagebundle_pl-BQoPaokq.js +1 -0
  248. package/dist/assets/messagebundle_pl-DBO1atMe.js +1 -0
  249. package/dist/assets/messagebundle_pt-BNEglYxa.js +1 -0
  250. package/dist/assets/messagebundle_pt-DgAMHmW-.js +1 -0
  251. package/dist/assets/messagebundle_pt_PT-BtYzp9KB.js +1 -0
  252. package/dist/assets/messagebundle_pt_PT-D1Ef8kUU.js +1 -0
  253. package/dist/assets/messagebundle_ro-CuDPp2fe.js +1 -0
  254. package/dist/assets/messagebundle_ro-D591wJ6f.js +1 -0
  255. package/dist/assets/messagebundle_ru-D0NridWi.js +1 -0
  256. package/dist/assets/messagebundle_ru-I8YLCfrn.js +1 -0
  257. package/dist/assets/messagebundle_sh-BswdbSRi.js +1 -0
  258. package/dist/assets/messagebundle_sh-Dw2y_oct.js +1 -0
  259. package/dist/assets/messagebundle_sk-BG4S4ZVk.js +1 -0
  260. package/dist/assets/messagebundle_sk-CXOF1RuF.js +1 -0
  261. package/dist/assets/messagebundle_sl-CAnJO_8X.js +1 -0
  262. package/dist/assets/messagebundle_sl-kpVWxIp_.js +1 -0
  263. package/dist/assets/messagebundle_sr-BTWvO8VQ.js +1 -0
  264. package/dist/assets/messagebundle_sr-VJmRSdj4.js +1 -0
  265. package/dist/assets/messagebundle_sv-B-RCgnW_.js +1 -0
  266. package/dist/assets/messagebundle_sv-Bd4wCcDb.js +1 -0
  267. package/dist/assets/messagebundle_th-CMHmLdI3.js +1 -0
  268. package/dist/assets/messagebundle_th-CZ1imsCy.js +1 -0
  269. package/dist/assets/messagebundle_tr-BfWAYIdW.js +1 -0
  270. package/dist/assets/messagebundle_tr-D-BnBirv.js +1 -0
  271. package/dist/assets/messagebundle_uk-DhxIThVl.js +1 -0
  272. package/dist/assets/messagebundle_uk-HU8hI0yj.js +1 -0
  273. package/dist/assets/messagebundle_vi-BUTqUKd4.js +1 -0
  274. package/dist/assets/messagebundle_vi-D1El4_Wj.js +1 -0
  275. package/dist/assets/messagebundle_zh_CN-Dt0azUea.js +1 -0
  276. package/dist/assets/messagebundle_zh_CN-Ofgx2uXY.js +1 -0
  277. package/dist/assets/messagebundle_zh_TW-5lv7yYS1.js +1 -0
  278. package/dist/assets/messagebundle_zh_TW-LSErOAsd.js +1 -0
  279. package/dist/assets/{mk-9_dtu4u_.js → mk-DTLhuyCG.js} +1 -1
  280. package/dist/assets/{ms-9b0nct8m.js → ms-BrLiVOVI.js} +1 -1
  281. package/dist/assets/{nb-CbGeVRux.js → nb-BeQEL0TR.js} +1 -1
  282. package/dist/assets/{nl-C0vlsmuT.js → nl-CGAh49hZ.js} +1 -1
  283. package/dist/assets/{nl_BE-Cteh34au.js → nl_BE-CxJbQu5q.js} +1 -1
  284. package/dist/assets/{parameters-bundle.css-D7WciSOr.js → parameters-bundle.css-B68EyCuR.js} +2 -0
  285. package/dist/assets/{parameters-bundle.css-CT-eTeTy.js → parameters-bundle.css-BkJSEiFx.js} +2 -0
  286. package/dist/assets/{parameters-bundle.css-BXQ-0CBp.js → parameters-bundle.css-C5V2Zp_F.js} +2 -0
  287. package/dist/assets/{parameters-bundle.css-XYDTPt-n.js → parameters-bundle.css-COeynv6D.js} +3 -1
  288. package/dist/assets/parameters-bundle.css-CnIzAMdG.js +3 -0
  289. package/dist/assets/parameters-bundle.css-CsV5qbZp.js +3 -0
  290. package/dist/assets/{parameters-bundle.css-C7KCPeJ8.js → parameters-bundle.css-DCvHNL3s.js} +1 -1
  291. package/dist/assets/{parameters-bundle.css-CQFZmxYm.js → parameters-bundle.css-DK40uKOQ.js} +1 -1
  292. package/dist/assets/parameters-bundle.css-DMfTAqMv.js +2 -0
  293. package/dist/assets/parameters-bundle.css-DO35k9r0.js +2 -0
  294. package/dist/assets/parameters-bundle.css-Df7wtRW4.js +2 -0
  295. package/dist/assets/{parameters-bundle.css-CxjtOlRD.js → parameters-bundle.css-DmEWEk0u.js} +36 -28
  296. package/dist/assets/{parameters-bundle.css-CSUOmZKr.js → parameters-bundle.css-DvAfqdlT.js} +1 -1
  297. package/dist/assets/{parameters-bundle.css-DPz62M1p.js → parameters-bundle.css-K-MvKimD.js} +3 -1
  298. package/dist/assets/parameters-bundle.css-KoXGNyLG.js +3 -0
  299. package/dist/assets/{parameters-bundle.css-CLLnzh9T.js → parameters-bundle.css-P_M_rm9z.js} +1 -1
  300. package/dist/assets/parameters-bundle.css-UJIxXHL5.js +2 -0
  301. package/dist/assets/{parameters-bundle.css-V2I5eOdH.js → parameters-bundle.css-co26r5Nz.js} +1 -1
  302. package/dist/assets/parameters-bundle.css-uT62L0va.js +3 -0
  303. package/dist/assets/{parameters-bundle.css-Cmk27zY9.js → parameters-bundle.css-vNsSPPU5.js} +38 -31
  304. package/dist/assets/{pl-CDjXMBDR.js → pl-DaZJCEN3.js} +1 -1
  305. package/dist/assets/{pt-BXklB5_T.js → pt-RxoGfR56.js} +1 -1
  306. package/dist/assets/{pt_PT-DEzSdlMb.js → pt_PT-CuC22O4H.js} +1 -1
  307. package/dist/assets/{ro-bFLE5ZuX.js → ro-kcCACdbI.js} +1 -1
  308. package/dist/assets/{ru-DuGdFJZn.js → ru-BQzoU2Gq.js} +1 -1
  309. package/dist/assets/{ru_UA-DujiLlPN.js → ru_UA-BtdbuqWW.js} +1 -1
  310. package/dist/assets/{sk-GkzEgQor.js → sk-D4C2H17S.js} +1 -1
  311. package/dist/assets/{sl-BhuoMxwQ.js → sl-7ESgddjQ.js} +1 -1
  312. package/dist/assets/{sr-Bb668mIq.js → sr-m2FCxV00.js} +1 -1
  313. package/dist/assets/{sr_Latn-C61cXg9o.js → sr_Latn-Dh8ru1_a.js} +1 -1
  314. package/dist/assets/{sv-yft9g0aL.js → sv-DkcDHqsr.js} +1 -1
  315. package/dist/assets/{th-BiAki51N.js → th-sJeg9F0h.js} +1 -1
  316. package/dist/assets/{tr-DDt0vBOs.js → tr-C2e7ABy0.js} +1 -1
  317. package/dist/assets/{uk-A-zqF2vZ.js → uk-Cdp63d6T.js} +1 -1
  318. package/dist/assets/{vi-Bleu1lwm.js → vi-DuFuMCO2.js} +1 -1
  319. package/dist/assets/{zh_CN-kJCGkFOs.js → zh_CN-BOAGYFIg.js} +1 -1
  320. package/dist/assets/{zh_HK-BJMkT2Ze.js → zh_HK-Bmft66uR.js} +1 -1
  321. package/dist/assets/{zh_SG-Lz9Li7LQ.js → zh_SG-ChcB0A9F.js} +1 -1
  322. package/dist/assets/{zh_TW-P8-QBSyv.js → zh_TW-C8FI5AC8.js} +1 -1
  323. package/dist/css/themes/AccordionSpotlight.css +1 -1
  324. package/dist/css/themes/Button.css +1 -1
  325. package/dist/css/themes/Checkbox.css +1 -1
  326. package/dist/css/themes/Footer.css +1 -1
  327. package/dist/css/themes/ListGroupHeader.css +1 -1
  328. package/dist/css/themes/PromoTile.css +1 -1
  329. package/dist/css/themes/RatingIndicator.css +1 -1
  330. package/dist/css/themes/SecondaryNavigation.css +1 -1
  331. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  332. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  333. package/dist/css/themes/TabInOverflow.css +1 -1
  334. package/dist/css/themes/WizardTab.css +1 -1
  335. package/dist/custom-elements-internal.json +19 -0
  336. package/dist/custom-elements.json +52 -0
  337. package/dist/generated/assets/i18n/messagebundle_en.json +1 -1
  338. package/dist/generated/i18n/i18n-defaults.d.ts +3 -1
  339. package/dist/generated/i18n/i18n-defaults.js +3 -1
  340. package/dist/generated/i18n/i18n-defaults.js.map +1 -1
  341. package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
  342. package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
  343. package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
  344. package/dist/generated/themes/Button.css.d.ts +1 -1
  345. package/dist/generated/themes/Button.css.js +1 -1
  346. package/dist/generated/themes/Button.css.js.map +1 -1
  347. package/dist/generated/themes/Checkbox.css.d.ts +1 -1
  348. package/dist/generated/themes/Checkbox.css.js +1 -1
  349. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  350. package/dist/generated/themes/Footer.css.d.ts +1 -1
  351. package/dist/generated/themes/Footer.css.js +1 -1
  352. package/dist/generated/themes/Footer.css.js.map +1 -1
  353. package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
  354. package/dist/generated/themes/ListGroupHeader.css.js +1 -1
  355. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  356. package/dist/generated/themes/PromoTile.css.d.ts +1 -1
  357. package/dist/generated/themes/PromoTile.css.js +1 -1
  358. package/dist/generated/themes/PromoTile.css.js.map +1 -1
  359. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  360. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  361. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  362. package/dist/generated/themes/SecondaryNavigation.css.d.ts +1 -1
  363. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  364. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  365. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
  366. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  367. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  368. package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +1 -1
  369. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  370. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  371. package/dist/generated/themes/TabInOverflow.css.d.ts +1 -1
  372. package/dist/generated/themes/TabInOverflow.css.js +1 -1
  373. package/dist/generated/themes/TabInOverflow.css.js.map +1 -1
  374. package/dist/generated/themes/WizardTab.css.d.ts +1 -1
  375. package/dist/generated/themes/WizardTab.css.js +1 -1
  376. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  377. package/dist/messagebundle.properties +4 -0
  378. package/dist/messagebundle_en.properties +2 -0
  379. package/dist/utils/Breakpoints.d.ts +20 -1
  380. package/dist/utils/Breakpoints.js +38 -8
  381. package/dist/utils/Breakpoints.js.map +1 -1
  382. package/dist/vscode.html-custom-data.json +115 -456
  383. package/dist/web-types.json +11 -1
  384. package/package.json +8 -8
  385. package/src/List.ts +24 -2
  386. package/src/ListGroupHeaderBase.ts +44 -2
  387. package/src/ListGroupHeaderTemplate.tsx +74 -23
  388. package/src/ListItem.ts +18 -15
  389. package/src/ListItemBase.ts +30 -0
  390. package/src/ListItemTemplate.tsx +4 -4
  391. package/src/MastheadCountrySelector.ts +5 -5
  392. package/src/MastheadCountrySelectorTemplate.tsx +98 -0
  393. package/src/MastheadItem.ts +3 -6
  394. package/src/MastheadItemTemplate.tsx +178 -0
  395. package/src/MastheadMenu.ts +5 -6
  396. package/src/MastheadMenuItem.ts +3 -7
  397. package/src/MastheadMenuItemTemplate.tsx +123 -0
  398. package/src/MastheadMenuTemplate.tsx +142 -0
  399. package/src/MastheadMobileMenu.ts +3 -3
  400. package/src/MastheadMobileMenuTemplate.tsx +274 -0
  401. package/src/MastheadProfileMenu.ts +10 -23
  402. package/src/MastheadProfileMenuTemplate.tsx +143 -0
  403. package/src/MastheadShell.ts +3 -5
  404. package/src/MastheadShellTemplate.tsx +228 -0
  405. package/src/RatingIndicatorTemplate.tsx +0 -1
  406. package/src/SearchableListBase.ts +37 -1
  407. package/src/SearchableListBaseTemplate.tsx +38 -2
  408. package/src/SecondaryNavigation.ts +24 -9
  409. package/src/SecondaryNavigationItem.ts +4 -6
  410. package/src/SecondaryNavigationItemBase.ts +2 -2
  411. package/src/SecondaryNavigationItemTemplate.tsx +80 -0
  412. package/src/SecondaryNavigationSubItem.ts +3 -7
  413. package/src/SecondaryNavigationSubItemTemplate.tsx +63 -0
  414. package/src/SecondaryNavigationTemplate.tsx +90 -0
  415. package/src/SelectBase.ts +8 -3
  416. package/src/SideNavigationMobile.ts +24 -17
  417. package/src/SideNavigationMobileTemplate.tsx +59 -0
  418. package/src/Tab.ts +4 -24
  419. package/src/TabHeaderTemplate.tsx +153 -0
  420. package/src/TabInOverflowTemplate.tsx +68 -0
  421. package/src/TabNavigation.ts +78 -44
  422. package/src/TabNavigationPopoverTemplate.tsx +27 -0
  423. package/src/TabNavigationTemplate.tsx +98 -0
  424. package/src/TabTemplate.tsx +7 -0
  425. package/src/TagGroup.ts +16 -5
  426. package/src/generated/i18n/i18n-defaults.ts +2 -2
  427. package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
  428. package/src/generated/themes/Button.css.ts +1 -1
  429. package/src/generated/themes/Checkbox.css.ts +1 -1
  430. package/src/generated/themes/Footer.css.ts +1 -1
  431. package/src/generated/themes/ListGroupHeader.css.ts +1 -1
  432. package/src/generated/themes/PromoTile.css.ts +1 -1
  433. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  434. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  435. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  436. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  437. package/src/generated/themes/TabInOverflow.css.ts +1 -1
  438. package/src/generated/themes/WizardTab.css.ts +1 -1
  439. package/src/i18n/messagebundle.properties +4 -0
  440. package/src/i18n/messagebundle_en.properties +2 -0
  441. package/src/themes/AccordionSpotlight.css +1 -1
  442. package/src/themes/Button.css +2 -1
  443. package/src/themes/Checkbox.css +5 -1
  444. package/src/themes/Footer.css +4 -4
  445. package/src/themes/ListGroupHeader.css +50 -7
  446. package/src/themes/PromoTile.css +1 -0
  447. package/src/themes/RatingIndicator.css +6 -1
  448. package/src/themes/SecondaryNavigation.css +3 -3
  449. package/src/themes/SecondaryNavigationItem.css +2 -2
  450. package/src/themes/SecondaryNavigationSubItem.css +2 -2
  451. package/src/themes/TabInOverflow.css +9 -4
  452. package/src/themes/WizardTab.css +6 -1
  453. package/src/utils/Breakpoints.ts +39 -8
  454. package/dist/assets/InputSuggestions-C8grDr_8.js +0 -2
  455. package/dist/assets/messagebundle_ar-BRkfjlVF.js +0 -1
  456. package/dist/assets/messagebundle_ar-D5A573iZ.js +0 -1
  457. package/dist/assets/messagebundle_bg-ByA8yRlQ.js +0 -1
  458. package/dist/assets/messagebundle_bg-CIVFOczQ.js +0 -1
  459. package/dist/assets/messagebundle_ca-BR3XuU9o.js +0 -1
  460. package/dist/assets/messagebundle_ca-CnMQ87v0.js +0 -1
  461. package/dist/assets/messagebundle_cnr-C6YhRiS7.js +0 -1
  462. package/dist/assets/messagebundle_cnr-CKZii51E.js +0 -1
  463. package/dist/assets/messagebundle_cs-DcOu8IOK.js +0 -1
  464. package/dist/assets/messagebundle_cs-I7yYpbsI.js +0 -1
  465. package/dist/assets/messagebundle_cy-BxrFUGJ9.js +0 -1
  466. package/dist/assets/messagebundle_cy-iXD_sJ-H.js +0 -1
  467. package/dist/assets/messagebundle_da-BVQHPgwf.js +0 -1
  468. package/dist/assets/messagebundle_da-CMGObFa5.js +0 -1
  469. package/dist/assets/messagebundle_de-CSl05u5u.js +0 -1
  470. package/dist/assets/messagebundle_de-Ca8NttFO.js +0 -1
  471. package/dist/assets/messagebundle_el-Cqfj_U5v.js +0 -1
  472. package/dist/assets/messagebundle_el-D9Zgq5tn.js +0 -1
  473. package/dist/assets/messagebundle_en-D0JTZvAf.js +0 -1
  474. package/dist/assets/messagebundle_en-DBpf5Il2.js +0 -1
  475. package/dist/assets/messagebundle_en-DWqF0cay.js +0 -1
  476. package/dist/assets/messagebundle_en_GB-CGB_FKp4.js +0 -1
  477. package/dist/assets/messagebundle_en_GB-Cl7ekzz2.js +0 -1
  478. package/dist/assets/messagebundle_en_US_sappsd-7UdOh8vN.js +0 -1
  479. package/dist/assets/messagebundle_en_US_sappsd-B8rqsyFQ.js +0 -1
  480. package/dist/assets/messagebundle_en_US_saprigi-9VCo5QY0.js +0 -1
  481. package/dist/assets/messagebundle_en_US_saprigi-DfLzOCPY.js +0 -1
  482. package/dist/assets/messagebundle_en_US_saptrc-DZqYka05.js +0 -1
  483. package/dist/assets/messagebundle_en_US_saptrc-Wh_IysAB.js +0 -1
  484. package/dist/assets/messagebundle_es-DKn8EzzP.js +0 -1
  485. package/dist/assets/messagebundle_es-lf5AJZNW.js +0 -1
  486. package/dist/assets/messagebundle_es_MX-DyYZGjON.js +0 -1
  487. package/dist/assets/messagebundle_es_MX-yBTcvu7u.js +0 -1
  488. package/dist/assets/messagebundle_et-Dz8Ohhcp.js +0 -1
  489. package/dist/assets/messagebundle_et-rMWbS-Nu.js +0 -1
  490. package/dist/assets/messagebundle_fi-Bfbyhuuz.js +0 -1
  491. package/dist/assets/messagebundle_fi-DnXm7LPH.js +0 -1
  492. package/dist/assets/messagebundle_fr-BvbeCfZ-.js +0 -1
  493. package/dist/assets/messagebundle_fr-KQhoZEew.js +0 -1
  494. package/dist/assets/messagebundle_fr_CA-CE2lzYx5.js +0 -1
  495. package/dist/assets/messagebundle_fr_CA-CIhDzHAJ.js +0 -1
  496. package/dist/assets/messagebundle_hi-BRQ9tZ6F.js +0 -1
  497. package/dist/assets/messagebundle_hi-DPwH9vag.js +0 -1
  498. package/dist/assets/messagebundle_hr-BSKQ6zHT.js +0 -1
  499. package/dist/assets/messagebundle_hr-D3gQg5JN.js +0 -1
  500. package/dist/assets/messagebundle_hu-CAA4oM1C.js +0 -1
  501. package/dist/assets/messagebundle_hu-CZNs1K9T.js +0 -1
  502. package/dist/assets/messagebundle_id-9H0uJyXB.js +0 -1
  503. package/dist/assets/messagebundle_id-m6iosVVP.js +0 -1
  504. package/dist/assets/messagebundle_it-BWzxa-Mi.js +0 -1
  505. package/dist/assets/messagebundle_it-Cm_0HF21.js +0 -1
  506. package/dist/assets/messagebundle_iw-DpB2YXTa.js +0 -1
  507. package/dist/assets/messagebundle_iw-NfqePNtD.js +0 -1
  508. package/dist/assets/messagebundle_ja-BCSZcI8t.js +0 -1
  509. package/dist/assets/messagebundle_ja-C-qqwzFf.js +0 -1
  510. package/dist/assets/messagebundle_kk--PGqyTVS.js +0 -1
  511. package/dist/assets/messagebundle_kk-DAlCQkFU.js +0 -1
  512. package/dist/assets/messagebundle_ko-D8mIkPe1.js +0 -1
  513. package/dist/assets/messagebundle_ko-qoWc4ZGG.js +0 -1
  514. package/dist/assets/messagebundle_lt-BIEH02V4.js +0 -1
  515. package/dist/assets/messagebundle_lt-ruMxSuY-.js +0 -1
  516. package/dist/assets/messagebundle_lv-C2om7wu0.js +0 -1
  517. package/dist/assets/messagebundle_lv-Dfrbh1ci.js +0 -1
  518. package/dist/assets/messagebundle_mk-DHvZle6t.js +0 -1
  519. package/dist/assets/messagebundle_mk-l_Kubx1p.js +0 -1
  520. package/dist/assets/messagebundle_ms-CKCmj1p_.js +0 -1
  521. package/dist/assets/messagebundle_ms-IhSEK5ij.js +0 -1
  522. package/dist/assets/messagebundle_nl-BiIb6e5c.js +0 -1
  523. package/dist/assets/messagebundle_nl-DquG38Cj.js +0 -1
  524. package/dist/assets/messagebundle_no-CX23v_jg.js +0 -1
  525. package/dist/assets/messagebundle_no-DFdvykvP.js +0 -1
  526. package/dist/assets/messagebundle_pl-BAeue3mo.js +0 -1
  527. package/dist/assets/messagebundle_pl-iHE_prgN.js +0 -1
  528. package/dist/assets/messagebundle_pt-BpQnTLvl.js +0 -1
  529. package/dist/assets/messagebundle_pt-C_bG3Erm.js +0 -1
  530. package/dist/assets/messagebundle_pt_PT-CR7qXFK-.js +0 -1
  531. package/dist/assets/messagebundle_pt_PT-DyseXKQQ.js +0 -1
  532. package/dist/assets/messagebundle_ro-CHU1E6hv.js +0 -1
  533. package/dist/assets/messagebundle_ro-C_amsd63.js +0 -1
  534. package/dist/assets/messagebundle_ru-Cab4H6Ud.js +0 -1
  535. package/dist/assets/messagebundle_ru-D6JMraBp.js +0 -1
  536. package/dist/assets/messagebundle_sh-DusYn00L.js +0 -1
  537. package/dist/assets/messagebundle_sh-hThvw_lF.js +0 -1
  538. package/dist/assets/messagebundle_sk-BqiUMEcX.js +0 -1
  539. package/dist/assets/messagebundle_sk-CZHfFNQ_.js +0 -1
  540. package/dist/assets/messagebundle_sl-B79d3kfY.js +0 -1
  541. package/dist/assets/messagebundle_sl-SfAn6n6j.js +0 -1
  542. package/dist/assets/messagebundle_sr-4iz7n4Te.js +0 -1
  543. package/dist/assets/messagebundle_sr-DxELdG62.js +0 -1
  544. package/dist/assets/messagebundle_sv-CPOHCrxs.js +0 -1
  545. package/dist/assets/messagebundle_sv-i6GuWK0l.js +0 -1
  546. package/dist/assets/messagebundle_th-D-kPI3tt.js +0 -1
  547. package/dist/assets/messagebundle_th-D64J-JvN.js +0 -1
  548. package/dist/assets/messagebundle_tr-CuE9DqZT.js +0 -1
  549. package/dist/assets/messagebundle_tr-gTuGftNt.js +0 -1
  550. package/dist/assets/messagebundle_uk-C6JSX-jF.js +0 -1
  551. package/dist/assets/messagebundle_uk-IKxyo-LT.js +0 -1
  552. package/dist/assets/messagebundle_vi-BRdRT5L6.js +0 -1
  553. package/dist/assets/messagebundle_vi-rZGL12-x.js +0 -1
  554. package/dist/assets/messagebundle_zh_CN-L55Y4Dfs.js +0 -1
  555. package/dist/assets/messagebundle_zh_CN-ZalS15WG.js +0 -1
  556. package/dist/assets/messagebundle_zh_TW-BcMzZCW2.js +0 -1
  557. package/dist/assets/messagebundle_zh_TW-sRVDBYOx.js +0 -1
  558. package/dist/assets/parameters-bundle.css-8pAQYERs.js +0 -3
  559. package/dist/assets/parameters-bundle.css-B_KvbSAR.js +0 -2
  560. package/dist/assets/parameters-bundle.css-Ciey0vhA.js +0 -2
  561. package/dist/assets/parameters-bundle.css-D7Hj83QD.js +0 -2
  562. package/dist/assets/parameters-bundle.css-DJgsxqD8.js +0 -2
  563. package/dist/assets/parameters-bundle.css-DMVuljH3.js +0 -3
  564. package/dist/assets/parameters-bundle.css-DkHyiuRq.js +0 -3
  565. package/dist/assets/parameters-bundle.css-Dvgwa73x.js +0 -3
  566. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.d.ts +0 -3
  567. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +0 -13
  568. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +0 -1
  569. package/dist/generated/templates/MastheadItemTemplate.lit.d.ts +0 -3
  570. package/dist/generated/templates/MastheadItemTemplate.lit.js +0 -43
  571. package/dist/generated/templates/MastheadItemTemplate.lit.js.map +0 -1
  572. package/dist/generated/templates/MastheadMenuItemTemplate.lit.d.ts +0 -3
  573. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js +0 -21
  574. package/dist/generated/templates/MastheadMenuItemTemplate.lit.js.map +0 -1
  575. package/dist/generated/templates/MastheadMenuTemplate.lit.d.ts +0 -3
  576. package/dist/generated/templates/MastheadMenuTemplate.lit.js +0 -25
  577. package/dist/generated/templates/MastheadMenuTemplate.lit.js.map +0 -1
  578. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.d.ts +0 -3
  579. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js +0 -37
  580. package/dist/generated/templates/MastheadMobileMenuTemplate.lit.js.map +0 -1
  581. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.d.ts +0 -3
  582. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js +0 -18
  583. package/dist/generated/templates/MastheadProfileMenuTemplate.lit.js.map +0 -1
  584. package/dist/generated/templates/MastheadShellTemplate.lit.d.ts +0 -3
  585. package/dist/generated/templates/MastheadShellTemplate.lit.js +0 -28
  586. package/dist/generated/templates/MastheadShellTemplate.lit.js.map +0 -1
  587. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +0 -3
  588. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +0 -13
  589. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +0 -1
  590. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +0 -3
  591. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +0 -12
  592. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +0 -1
  593. package/dist/generated/templates/SecondaryNavigationTemplate.lit.d.ts +0 -3
  594. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +0 -15
  595. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +0 -1
  596. package/dist/generated/templates/SideNavigationMobileTemplate.lit.d.ts +0 -3
  597. package/dist/generated/templates/SideNavigationMobileTemplate.lit.js +0 -10
  598. package/dist/generated/templates/SideNavigationMobileTemplate.lit.js.map +0 -1
  599. package/dist/generated/templates/TabHeaderTemplate.lit.d.ts +0 -3
  600. package/dist/generated/templates/TabHeaderTemplate.lit.js +0 -52
  601. package/dist/generated/templates/TabHeaderTemplate.lit.js.map +0 -1
  602. package/dist/generated/templates/TabInOverflowTemplate.lit.d.ts +0 -3
  603. package/dist/generated/templates/TabInOverflowTemplate.lit.js +0 -15
  604. package/dist/generated/templates/TabInOverflowTemplate.lit.js.map +0 -1
  605. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.d.ts +0 -3
  606. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js +0 -8
  607. package/dist/generated/templates/TabNavigationPopoverTemplate.lit.js.map +0 -1
  608. package/dist/generated/templates/TabNavigationTemplate.lit.d.ts +0 -3
  609. package/dist/generated/templates/TabNavigationTemplate.lit.js +0 -16
  610. package/dist/generated/templates/TabNavigationTemplate.lit.js.map +0 -1
  611. package/dist/generated/templates/TabTemplate.lit.d.ts +0 -3
  612. package/dist/generated/templates/TabTemplate.lit.js +0 -7
  613. package/dist/generated/templates/TabTemplate.lit.js.map +0 -1
  614. package/src/MastheadCountrySelector.hbs +0 -76
  615. package/src/MastheadItem.hbs +0 -136
  616. package/src/MastheadMenu.hbs +0 -131
  617. package/src/MastheadMenuItem.hbs +0 -102
  618. package/src/MastheadMobileMenu.hbs +0 -253
  619. package/src/MastheadProfileMenu.hbs +0 -121
  620. package/src/MastheadShell.hbs +0 -223
  621. package/src/SecondaryNavigation.hbs +0 -87
  622. package/src/SecondaryNavigationItem.hbs +0 -68
  623. package/src/SecondaryNavigationSubItem.hbs +0 -47
  624. package/src/SideNavigationMobile.hbs +0 -41
  625. package/src/Tab.hbs +0 -1
  626. package/src/TabHeader.hbs +0 -141
  627. package/src/TabInOverflow.hbs +0 -59
  628. package/src/TabNavigation.hbs +0 -88
  629. package/src/TabNavigationPopover.hbs +0 -18
  630. package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +0 -17
  631. package/src/generated/templates/MastheadItemTemplate.lit.ts +0 -47
  632. package/src/generated/templates/MastheadMenuItemTemplate.lit.ts +0 -25
  633. package/src/generated/templates/MastheadMenuTemplate.lit.ts +0 -29
  634. package/src/generated/templates/MastheadMobileMenuTemplate.lit.ts +0 -41
  635. package/src/generated/templates/MastheadProfileMenuTemplate.lit.ts +0 -22
  636. package/src/generated/templates/MastheadShellTemplate.lit.ts +0 -32
  637. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +0 -17
  638. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +0 -16
  639. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +0 -19
  640. package/src/generated/templates/SideNavigationMobileTemplate.lit.ts +0 -14
  641. package/src/generated/templates/TabHeaderTemplate.lit.ts +0 -56
  642. package/src/generated/templates/TabInOverflowTemplate.lit.ts +0 -19
  643. package/src/generated/templates/TabNavigationPopoverTemplate.lit.ts +0 -12
  644. package/src/generated/templates/TabNavigationTemplate.lit.ts +0 -20
  645. package/src/generated/templates/TabTemplate.lit.ts +0 -11
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@sapudex/web-components",
4
- "version": "2.57.0",
4
+ "version": "2.59.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -9801,6 +9801,11 @@
9801
9801
  "description": "<h3 class=\"comment-api-title\">Overview</h3>\n\n<h3>Usage</h3>\n\nFor the <code>udex-tab-navigation</code>\n<h3>ES6 Module Import</h3>\n\n<code>import \"@sapudex/web-components/dist/TabNavigation.js\";</code>\n---\n\n\n### **Events:**\n - **click** - Fires when the tab was clicked.\n- **tab-select** - Fired when a tab is selected.\n\n### **Slots:**\n - **default** - Defines the tabs and content.\n- **footer** - Defines optional content rendered below the tab list in Vertical orientation.\nUse to place a button or any action element beneath the tabs.",
9802
9802
  "doc-url": "",
9803
9803
  "attributes": [
9804
+ {
9805
+ "name": "accessible-name",
9806
+ "description": "Defines the accessible name of the tab list.\n\nWhen set, screen readers announce this text as the name of the tab group\n(e.g. \"Profile navigation\") as focus enters the tabs. When empty, the tab\nlist is exposed by its role only, with no accessible name.",
9807
+ "value": { "type": "string", "default": "\"\"" }
9808
+ },
9804
9809
  {
9805
9810
  "name": "auto-play",
9806
9811
  "description": "Enables automatic tab switching for Vertical orientation.",
@@ -9878,6 +9883,11 @@
9878
9883
  ],
9879
9884
  "js": {
9880
9885
  "properties": [
9886
+ {
9887
+ "name": "accessible-name",
9888
+ "description": "Defines the accessible name of the tab list.\n\nWhen set, screen readers announce this text as the name of the tab group\n(e.g. \"Profile navigation\") as focus enters the tabs. When empty, the tab\nlist is exposed by its role only, with no accessible name.",
9889
+ "value": { "type": "string" }
9890
+ },
9881
9891
  {
9882
9892
  "name": "auto-play",
9883
9893
  "description": "Enables automatic tab switching for Vertical orientation.",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@sapudex/web-components",
4
- "version": "2.57.0",
4
+ "version": "2.59.0",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
7
7
  },
@@ -37,19 +37,19 @@
37
37
  "dependencies": {
38
38
  "@types/vimeo__player": "^2.18.3",
39
39
  "@types/youtube": "^0.1.2",
40
- "@ui5/webcomponents": "2.25.0",
41
- "@ui5/webcomponents-base": "2.25.0",
42
- "@ui5/webcomponents-fiori": "2.25.0",
43
- "@ui5/webcomponents-icons": "2.25.0",
44
- "@ui5/webcomponents-localization": "2.25.0",
45
- "@ui5/webcomponents-theming": "2.25.0",
40
+ "@ui5/webcomponents": "2.27.0",
41
+ "@ui5/webcomponents-base": "2.27.0",
42
+ "@ui5/webcomponents-fiori": "2.27.0",
43
+ "@ui5/webcomponents-icons": "2.27.0",
44
+ "@ui5/webcomponents-localization": "2.27.0",
45
+ "@ui5/webcomponents-theming": "2.27.0",
46
46
  "@vimeo/player": "^2.24.0",
47
47
  "video.js": "^8.23.6"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@cypress/code-coverage": "^3.14.5",
51
51
  "@ui5/cypress-ct-ui5-webc": "^0.0.4",
52
- "@ui5/webcomponents-tools": "2.25.0",
52
+ "@ui5/webcomponents-tools": "2.27.0",
53
53
  "chromedriver": "149.0.2",
54
54
  "cross-env": "^7.0.3",
55
55
  "cypress": "^14.3.3",
package/src/List.ts CHANGED
@@ -215,6 +215,7 @@ class UDExList extends UI5Element {
215
215
  if (target.isGroup && target.hasAttribute("collapsible") && target.collapsed) {
216
216
  target.collapsed = false;
217
217
  this.setCollapsedItems(false, target);
218
+ this.fireAccordionToggle(target);
218
219
  }
219
220
  }
220
221
 
@@ -223,9 +224,25 @@ class UDExList extends UI5Element {
223
224
  if (target.isGroup && target.hasAttribute("collapsible") && !target.collapsed) {
224
225
  target.collapsed = true;
225
226
  this.setCollapsedItems(true, target);
227
+ this.fireAccordionToggle(target);
226
228
  }
227
229
  }
228
230
 
231
+ /**
232
+ * Arrow-key expand/collapse toggles `collapsed` directly here (multi-select
233
+ * headers deliver Left/Right to the List, not to the header's own key handler),
234
+ * so the `accordion-icon-click` event that drives the collapse/expand live-region
235
+ * announcement is never fired on this path. Re-emit it from the header so
236
+ * SearchableListBase announces the new state to screen readers, matching the
237
+ * chevron/pointer and single-select paths.
238
+ */
239
+ fireAccordionToggle(target: UDExListItemBase): void {
240
+ target.dispatchEvent(new CustomEvent("accordion-icon-click", {
241
+ bubbles: true,
242
+ detail: { collapsed: target.collapsed },
243
+ }));
244
+ }
245
+
229
246
  handleUpArrow(e: KeyboardEvent): void {
230
247
  e.preventDefault();
231
248
  const items = this.getKeyboardNavigationItems();
@@ -606,9 +623,14 @@ class UDExList extends UI5Element {
606
623
  return this.accessibleRole !== "listbox" ? this.accessibleRole : "list";
607
624
  }
608
625
 
609
- /** aria-multiselectable exposed only for MultiSelect tree (collapsible groups). */
626
+ /**
627
+ * aria-multiselectable is exposed for every MultiSelect list — the flat listbox
628
+ * and the collapsible tree alike. It is required so the screen reader announces
629
+ * each option's selected / not-selected state (from aria-selected) instead of
630
+ * treating the container as single-select and announcing only the active option.
631
+ */
610
632
  get _listAriaMultiSelectable(): string | undefined {
611
- return (this._hasCollapsibleGroups && this.modeMultiSelect) ? "true" : undefined;
633
+ return this.modeMultiSelect ? "true" : undefined;
612
634
  }
613
635
  }
614
636
 
@@ -46,6 +46,19 @@ class UDExListGroupHeaderBase extends UDExListItemBase {
46
46
  @property({ type: Boolean })
47
47
  _treeMode: boolean = false;
48
48
 
49
+ /**
50
+ * Marks the group as a self-contained role="listbox" (FilterMenu real-focus
51
+ * SingleSelect, non-collapsible groups). When true, this group's options are
52
+ * wrapped in their own listbox so JAWS counts them natively per group. Set by
53
+ * the parent (SearchableListBase.isPerGroupListbox) only when the whole list is
54
+ * grouped; the outer #udex-list drops its listbox role in that case.
55
+ *
56
+ * @default false
57
+ * @private
58
+ */
59
+ @property({ type: Boolean })
60
+ _groupAsListbox: boolean = false;
61
+
49
62
  /**
50
63
  * Slot for group header list items.
51
64
  *
@@ -210,10 +223,29 @@ class UDExListGroupHeaderBase extends UDExListItemBase {
210
223
  return this._treeMode;
211
224
  }
212
225
 
226
+ // FilterMenu real-focus SingleSelect non-collapsible group: its options are
227
+ // rendered inside their own role="listbox" so JAWS counts them natively per
228
+ // group ("1 of 4"). JAWS ignores role="group" boundaries and author
229
+ // aria-posinset within a single listbox, but counts reliably within a flat
230
+ // listbox. Excludes SelectBox (_useHostAriaRole) and tree mode.
231
+ get isPerGroupListbox(): boolean {
232
+ return this._groupAsListbox && !this._useHostAriaRole && !this._treeMode;
233
+ }
234
+
213
235
  get singleCollapsibleHeaderRole(): string {
214
236
  return this._treeMode ? "treeitem" : "button";
215
237
  }
216
238
 
239
+ // Pins the collapsible header's accessible name to its heading (+ supporting text)
240
+ // so the decorative expand/collapse chevron button — a child of the header — does
241
+ // not fold its "Expand"/"Collapse" label into the header's name. The chevron is a
242
+ // mouse affordance only (tabindex=-1); its state is already conveyed by
243
+ // aria-expanded, so excluding its name avoids announcing "Collapse" alongside the
244
+ // spoken "expanded"/"collapsed" state.
245
+ get collapsibleHeaderLabelledBy(): string {
246
+ return this.supportingText ? "group-heading group-supporting-text" : "group-heading";
247
+ }
248
+
217
249
  get collapsibleHeaderAccessibleRole(): string {
218
250
  return this._treeMode ? "treeitem" : "button";
219
251
  }
@@ -222,7 +254,13 @@ class UDExListGroupHeaderBase extends UDExListItemBase {
222
254
  if (this._useHostAriaRole) {
223
255
  return "presentation";
224
256
  }
225
- return this._treeMode ? "none" : "group";
257
+ // Tree mode keeps the treeitem/group nesting; per-group-listbox mode moves the
258
+ // single labelled role="listbox" onto the inner options wrapper — the outer div
259
+ // is transparent so screen readers don't announce a redundant "group" around it.
260
+ if (this._treeMode || this.isPerGroupListbox) {
261
+ return "none";
262
+ }
263
+ return "group";
226
264
  }
227
265
 
228
266
  get contentRegionRole(): string {
@@ -230,7 +268,11 @@ class UDExListGroupHeaderBase extends UDExListItemBase {
230
268
  }
231
269
 
232
270
  get nonCollapsibleContainerRole(): string {
233
- return "group";
271
+ // The single role="group" for non-collapsible headers lives on the outer
272
+ // div.udex-list__group wrapper (groupWrapperRole = "group" in non-tree mode,
273
+ // labelled by aria-labelledby="group-heading"). This container div must be
274
+ // transparent so that extra "group group" announcements are avoided.
275
+ return "none";
234
276
  }
235
277
 
236
278
  get nonCollapsibleHeaderAccessibleRole(): string | undefined {
@@ -35,18 +35,11 @@ function SingleGroupHeader(this: UDExListGroupHeader) {
35
35
  );
36
36
  }
37
37
 
38
- function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
38
+ // The visible header row of the single-select collapsible group: number/icon,
39
+ // heading + supporting text, and the expand/collapse chevron.
40
+ function SingleCollapsibleHeaderRow(this: UDExListGroupHeader) {
39
41
  return (
40
- <div
41
- class={`udex-list__group-content udex-list__group-header-wrap ${this.sizeClass}`}
42
- part="group-item"
43
- id={`${this._id}_group-content__focusable`}
44
- role={this.singleCollapsibleHeaderRole as AriaRole}
45
- tabIndex={0}
46
- onKeyDown={this.handleKeyDown}
47
- aria-expanded={this.expanded}
48
- aria-controls={this.ariaControlsId}
49
- _tab-index={Number(this._effectiveTabIndex)}>
42
+ <>
50
43
  {this.typeNumber && <span class="udex-list__number">{this.numberOfItem}.</span>}
51
44
  {this.typeCircle && <span class="udex-list__circle">&#x2022;</span>}
52
45
  {this.typeIcon && (
@@ -65,7 +58,7 @@ function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
65
58
  {...({ innerHTML: this.label } as object)}>
66
59
  </span>
67
60
  {this.supportingText && (
68
- <span class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>
61
+ <span id="group-supporting-text" class={`udex-list__supporting-text ${this.sizeClass}`}>{this.supportingText}</span>
69
62
  )}
70
63
  </div>
71
64
  <div class="udex-list__group-heading__icon-wrapper">
@@ -74,12 +67,48 @@ function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
74
67
  design="Tertiary"
75
68
  class="udex-list__group-heading__icon"
76
69
  onClick={this.handleCollapseIconClick as unknown as EventListener}
70
+ onMouseDown={this.handleCollapseIconMouseDown}
77
71
  tabindex={-1}
78
72
  accessible-name={this.expandButtonAccessibleName}
79
73
  icon={slimArrowRight}
80
74
  {...({ "mode": "Interactive" } as object)}
81
75
  />
82
76
  </div>
77
+ </>
78
+ );
79
+ }
80
+
81
+ function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
82
+ // Conformant WAI-ARIA tree (FilterMenu real focus): nest the child role="group"
83
+ // INSIDE this treeitem so screen readers count children per group natively — no
84
+ // explicit aria-posinset/aria-setsize (which JAWS distrusts). Excludes SelectBox
85
+ // (aria-activedescendant, _useHostAriaRole) and non-tree modes, which keep the flat
86
+ // structure with the content region emitted as a sibling by the template body.
87
+ const nested = this.isTreeAccessibleRole && !this._useHostAriaRole;
88
+ return (
89
+ <div
90
+ class={`udex-list__group-content ${nested ? "udex-list__group-content--nested " : ""}udex-list__group-header-wrap ${this.sizeClass}`}
91
+ part="group-item"
92
+ id={`${this._id}_group-content__focusable`}
93
+ role={this.singleCollapsibleHeaderRole as AriaRole}
94
+ tabIndex={0}
95
+ onKeyDown={this.handleKeyDown}
96
+ aria-expanded={this.expanded}
97
+ aria-controls={this.ariaControlsId}
98
+ aria-labelledby={this.collapsibleHeaderLabelledBy}
99
+ _tab-index={Number(this._effectiveTabIndex)}>
100
+ {nested ? (
101
+ <>
102
+ <div class="udex-list__group-header-row">
103
+ {SingleCollapsibleHeaderRow.call(this)}
104
+ </div>
105
+ <div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class="udex-list__group-list__content">
106
+ <slot></slot>
107
+ </div>
108
+ </>
109
+ ) : (
110
+ SingleCollapsibleHeaderRow.call(this)
111
+ )}
83
112
  </div>
84
113
  );
85
114
  }
@@ -116,6 +145,8 @@ function MultiOrRadioGroupHeader(this: UDExListGroupHeader) {
116
145
  accessible-role={this.nonCollapsibleHeaderAccessibleRole}
117
146
  _additional-class-name={this._additionalClassName}
118
147
  _tab-index={Number(this._effectiveTabIndex)}
148
+ _aria-pos-in-set={this._ariaPosInSet}
149
+ _aria-set-size={this._ariaSetSize}
119
150
  _icon={this._icon}
120
151
  _filtered={this._filtered}
121
152
  />
@@ -177,6 +208,8 @@ function MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {
177
208
  onAccordionIconClick={this.handleCollapseIconClick as EventListener}
178
209
  _additional-class-name={this._additionalClassName}
179
210
  _tab-index={Number(this._effectiveTabIndex)}
211
+ _aria-pos-in-set={this._ariaPosInSet}
212
+ _aria-set-size={this._ariaSetSize}
180
213
  _icon={this._icon}
181
214
  _filtered={this._filtered}
182
215
  />
@@ -184,12 +217,16 @@ function MultiOrRadioGroupHeaderCollapsible(this: UDExListGroupHeader) {
184
217
  }
185
218
 
186
219
  export default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {
220
+ // Single-select real-focus tree: SingleGroupHeaderCollapsible now emits the
221
+ // role="group" content region as a CHILD of the treeitem (conformant nesting),
222
+ // so the template body must not also emit it as a sibling.
223
+ const singleSelectNested = this.isTreeAccessibleRole && !this.useListItemHeader && !this._useHostAriaRole;
187
224
  return (
188
225
  <div
189
226
  part="item"
190
227
  class="udex-list__group"
191
228
  role={this.groupWrapperRole as AriaRole}
192
- aria-labelledby={!this.isTreeAccessibleRole ? "group-heading" : undefined}>
229
+ aria-labelledby={(!this.isTreeAccessibleRole && !this.isPerGroupListbox) ? "group-heading" : undefined}>
193
230
  {this.collapsible ? (
194
231
  <div
195
232
  class="udex-list__group-list"
@@ -199,28 +236,42 @@ export default function ListGroupHeaderTemplate(this: UDExListGroupHeader) {
199
236
  ? MultiOrRadioGroupHeaderCollapsible.call(this)
200
237
  : SingleGroupHeaderCollapsible.call(this)
201
238
  }
202
- <div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class="udex-list__group-list__content">
203
- {this.isTreeAccessibleRole ? (
204
- <slot></slot>
205
- ) : (
206
- <div role="listbox" aria-label="group">
239
+ {!singleSelectNested && (
240
+ <div id={this.ariaControlsId} role={this.contentRegionRole as AriaRole} class="udex-list__group-list__content">
241
+ {this.isTreeAccessibleRole ? (
207
242
  <slot></slot>
208
- </div>
209
- )}
210
- </div>
243
+ ) : (
244
+ <div role="listbox" aria-label="group">
245
+ <slot></slot>
246
+ </div>
247
+ )}
248
+ </div>
249
+ )}
211
250
  </div>
212
251
  ) : (
213
252
  <div
214
253
  role={this.nonCollapsibleContainerRole as AriaRole}
215
254
  class="udex-list__group-list"
216
- aria-label="group"
217
255
  onui5-item-press={this.getHandleGroupItemsClick}
218
256
  {...({ name: "group" } as object)}>
219
257
  {this.modeMultiSelectOrRadioGroup
220
258
  ? MultiOrRadioGroupHeader.call(this)
221
259
  : SingleGroupHeader.call(this)
222
260
  }
223
- <slot></slot>
261
+ {this.isTreeAccessibleRole ? (
262
+ <div role="group">
263
+ <slot></slot>
264
+ </div>
265
+ ) : this.isPerGroupListbox ? (
266
+ // Each group is its own labelled listbox: JAWS counts the options natively
267
+ // per group ("Python, 1 of 4"). The outer #udex-list is presentational
268
+ // (SearchableListBase.isPerGroupListbox) so this is not a nested listbox.
269
+ <div role="listbox" aria-labelledby="group-heading">
270
+ <slot></slot>
271
+ </div>
272
+ ) : (
273
+ <slot></slot>
274
+ )}
224
275
  </div>
225
276
  )}
226
277
  </div>
package/src/ListItem.ts CHANGED
@@ -398,27 +398,38 @@ class UDExListItem extends UDExListItemBase {
398
398
  }
399
399
 
400
400
  get ariaSelectedValue(): "true" | "false" | undefined {
401
- if (this.effectiveRole !== "treeitem") {
401
+ // RadioGroup conveys its state through the radio control, never aria-selected.
402
+ if (this.modeRadioGroup) {
403
+ return undefined;
404
+ }
405
+ // MultiSelect treeitems convey state via aria-checked (see ariaCheckedValue).
406
+ // Every other selectable node — listbox options in both SingleSelect AND
407
+ // MultiSelect, plus SingleSelect treeitems — announces its state natively
408
+ // through aria-selected so the screen reader re-reads it when focus is on the
409
+ // item and when Enter/Space toggles it.
410
+ if (this.roleItem === "treeitem" && this.modeMultiSelect) {
402
411
  return undefined;
403
412
  }
404
- // Only SingleSelect treeitems expose aria-selected; MultiSelect uses aria-checked.
405
- if (this.modeMultiSelect) {
413
+ // Gated on the actual rendered role of the [part=item] div — never the
414
+ // presentational inner div used in aria-activedescendant mode (SelectBox sets
415
+ // aria-selected on the host).
416
+ if (this.roleItem !== "treeitem" && this.roleItem !== "option") {
406
417
  return undefined;
407
418
  }
408
419
  return this.selected ? "true" : "false";
409
420
  }
410
421
 
411
422
  get ariaExpandedValue(): "true" | "false" | undefined {
423
+ // aria-expanded is exposed ONLY on collapsible headers — a node the user can
424
+ // actually expand/collapse. Non-collapsible group headers must NOT report an
425
+ // expanded/collapsed state (nothing to toggle); the tree hierarchy is conveyed
426
+ // structurally by the nested role="group", not by aria-expanded.
412
427
  if (!this.collapsible) {
413
428
  return undefined;
414
429
  }
415
430
  return this.expanded ? "true" : "false";
416
431
  }
417
432
 
418
- get checkboxAriaHidden(): boolean {
419
- return this.effectiveRole === "treeitem";
420
- }
421
-
422
433
  get _ariaDisabled(): boolean | undefined {
423
434
  return this.disabled ? true : undefined;
424
435
  }
@@ -450,14 +461,6 @@ class UDExListItem extends UDExListItemBase {
450
461
  return `${this.selected ? translate(UDExListItem, SELECTED) : translate(UDExListItem, UNSELECTED)} `;
451
462
  }
452
463
 
453
- get itemDescribedBy(): string {
454
- return `${this._id}-invisibleText-describedby`;
455
- }
456
-
457
- get itemState(): string {
458
- return this.selected ? "Selected" : "Not selected";
459
- }
460
-
461
464
  get ratingAriaLabel(): string {
462
465
  const ratingText = this.ratingCount ? `${translate(UDExListItem, RATING_COUNT_TITLE)} ${this.ratingCount}` : "";
463
466
  const totalText = this.totalCount ? `${translate(UDExListItem, TOTAL)} ${this.totalCount}` : "";
@@ -240,6 +240,27 @@ class UDExListItemBase extends UI5Element {
240
240
  @property({ type: Boolean })
241
241
  _useHostAriaRole: boolean = false;
242
242
 
243
+ /**
244
+ * Explicit 1-based position of this treeitem within its own group, for a grouped
245
+ * tree structure. The sibling-group tree markup makes JAWS/NVDA compute a flattened
246
+ * posinset/setsize across all groups; setting these explicitly restores the
247
+ * per-group count so each item announces "N of <items in this group>".
248
+ * Only rendered on real treeitems (never in aria-activedescendant mode).
249
+ *
250
+ * @private
251
+ */
252
+ @property({ type: Number })
253
+ _ariaPosInSet?: number;
254
+
255
+ /**
256
+ * Explicit set size (number of treeitems within this item's own group) — the
257
+ * companion to {@link _ariaPosInSet}.
258
+ *
259
+ * @private
260
+ */
261
+ @property({ type: Number })
262
+ _ariaSetSize?: number;
263
+
243
264
  /**
244
265
  * Defines the tab index of the component.
245
266
  *
@@ -311,6 +332,15 @@ class UDExListItemBase extends UI5Element {
311
332
 
312
333
  handleCollapseIconMouseDown(e: MouseEvent) {
313
334
  e.stopPropagation();
335
+ // In aria-activedescendant mode (SelectBox) DOM focus must stay on the search
336
+ // input. Preventing the mousedown default stops the chevron/header body div from
337
+ // stealing focus, which would otherwise trigger a focusout→refocus + scroll-into-view
338
+ // that shifts the chevron out from under the pointer and eats the first click.
339
+ // Real-focus components (FilterMenu/List) leave _useHostAriaRole false and are
340
+ // unaffected. The click still fires, so collapse/expand happens on the first click.
341
+ if (this._useHostAriaRole) {
342
+ e.preventDefault();
343
+ }
314
344
  }
315
345
 
316
346
  handleCollapseIconClick(e: MouseEvent | KeyboardEvent) {
@@ -126,7 +126,6 @@ function ContentList(this: UDExListItem) {
126
126
  )}
127
127
  </div>
128
128
  <div class="hidden" id={`${this._id}-invisibleText`}>{this.accessibleListItemName}</div>
129
- <div class="hidden" id={`${this._id}-invisibleText-describedby`}>{this.itemState}</div>
130
129
  </div>
131
130
  );
132
131
  }
@@ -144,6 +143,8 @@ export default function ListItemTemplate(this: UDExListItem) {
144
143
  aria-checked={this.ariaCheckedValue}
145
144
  aria-selected={this.ariaSelectedValue}
146
145
  aria-expanded={this.ariaExpandedValue}
146
+ aria-posinset={this._ariaPosInSet || undefined}
147
+ aria-setsize={this._ariaSetSize || undefined}
147
148
  onFocusIn={this.handleFocusIn}
148
149
  onFocusOut={this.handleFocusOut}
149
150
  onClick={this.handleItemClick}
@@ -152,8 +153,7 @@ export default function ListItemTemplate(this: UDExListItem) {
152
153
  onKeyUp={this.handleKeyUp}
153
154
  onKeyDown={this.handleKeyDown}
154
155
  {...({ divider: this.divider, "_id": this._id } as object)}
155
- data-selected={this.selected}
156
- aria-describedby={this.itemDescribedBy}>
156
+ data-selected={this.selected}>
157
157
  {this.modeMultiSelect && (
158
158
  <UDExCheckbox
159
159
  class="udex-list__checkbox"
@@ -163,7 +163,7 @@ export default function ListItemTemplate(this: UDExListItem) {
163
163
  accessible-name={`checkbox ${this.stateAccessibleName}`}
164
164
  checked={this.selected}
165
165
  disabled={this.disabled}
166
- aria-hidden={this.checkboxAriaHidden ? "true" : undefined}
166
+ aria-hidden="true"
167
167
  />
168
168
  )}
169
169
  {this.modeRadioGroup && (
@@ -1,7 +1,7 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
3
3
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
4
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
4
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
5
5
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
6
6
  import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
7
7
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
@@ -9,8 +9,8 @@ import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
9
9
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
10
10
  import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
11
11
  import UDExMastheadMenuItem from "./MastheadMenuItem.js";
12
- import UDExSearch, { Mode as UDExSearchMode } from "./Search.js";
13
- import MastheadCountrySelectorTemplate from "./generated/templates/MastheadCountrySelectorTemplate.lit.js";
12
+ import { Mode as UDExSearchMode } from "./Search.js";
13
+ import MastheadCountrySelectorTemplate from "./MastheadCountrySelectorTemplate.js";
14
14
  import AnalyticsName from "./types/AnalyticsName.js";
15
15
  import { BreakpointUtils } from "./utils/Breakpoints.js";
16
16
  import type UDExMastheadShell from "./MastheadShell.js";
@@ -77,10 +77,10 @@ type UDExMastheadCountrySelectorSearchEventDetail = {
77
77
  */
78
78
  @customElement({
79
79
  tag: "udex-masthead-country-selector",
80
- renderer: litRender,
80
+ renderer: jsxRenderer,
81
81
  styles: MastheadCountrySelectorCss,
82
82
  template: MastheadCountrySelectorTemplate,
83
- dependencies: [UI5Icon, UDExMastheadMenuItem, UDExSearch],
83
+ dependencies: [UI5Icon, UDExMastheadMenuItem],
84
84
  })
85
85
 
86
86
  /**
@@ -0,0 +1,98 @@
1
+ import type UDExMastheadCountrySelector from "./MastheadCountrySelector.js";
2
+ import UDExMastheadMenuItem from "./MastheadMenuItem.js";
3
+ import UDExSearch from "./Search.js";
4
+
5
+ export default function MastheadCountrySelectorTemplate(this: UDExMastheadCountrySelector) {
6
+ return (
7
+ <div class="udex-masthead-country-selector">
8
+ {this._isActiveRegionOpen ? activeRegionView.call(this) : regionsView.call(this)}
9
+ </div>
10
+ );
11
+ }
12
+
13
+ function activeRegionView(this: UDExMastheadCountrySelector) {
14
+ return (
15
+ <>
16
+ <span class="udex-masthead-country-selector__title">{this.countryTitle}</span>
17
+ {!this.isSingleMode && (
18
+ <UDExMastheadMenuItem
19
+ class="udex-masthead-country-selector__region-back-item"
20
+ accessible-role="button"
21
+ onClick={this.backToRegions}
22
+ label={this._activeRegion?.title}
23
+ type="Button"
24
+ part="menu-item"
25
+ icon-start={true}
26
+ {...{ "_accessible-name": this.backToRegionListAccessibleName, "is-back": "" }}>
27
+ </UDExMastheadMenuItem>
28
+ )}
29
+ {!this.hideSearch && (
30
+ <>
31
+ <UDExSearch
32
+ class="udex-masthead-country-selector__search"
33
+ onui5-handle-value-search={this.handleSearch}
34
+ onui5-handle-value-reset={this.handleSearchReset}
35
+ onui5-submit-search-value={this.handleSearch}
36
+ language-voice={this.languageVoice}
37
+ label={this.searchLabel}
38
+ mode={this.homeSearchMode}
39
+ show-voice-button={this.showSearchVoiceButton}
40
+ non-interactive-submit-button={true}
41
+ show-submit-button={true}>
42
+ </UDExSearch>
43
+ <span aria-live="polite" aria-atomic="true" class="hidden">{this._accSearchResultInfo}</span>
44
+ </>
45
+ )}
46
+ <div class="udex-masthead-country-selector__list-container">
47
+ <div class="udex-masthead-country-selector__list-wrap" onScroll={this.handleCountryListShadowVisible}>
48
+ <ul class="udex-masthead-country-selector__list udex-masthead-country-selector__list_countries" role="menu">
49
+ {this._activeCountries.map((country, index) => (
50
+ <li role="none" key={index}>
51
+ <UDExMastheadMenuItem
52
+ class="udex-masthead-country-selector__item udex-masthead-country-selector__item_countries"
53
+ onClick={this.handleCountryClick as any}
54
+ url={country.url}
55
+ label={country.displayTitle}
56
+ index={index}
57
+ part="menu-item"
58
+ {...{
59
+ "_country-code": country.countryCode,
60
+ "is-nav-item": "",
61
+ ...(country.active ? { "_is-active-country": "" } : {}),
62
+ }}>
63
+ </UDExMastheadMenuItem>
64
+ </li>
65
+ ))}
66
+ </ul>
67
+ </div>
68
+ </div>
69
+ </>
70
+ );
71
+ }
72
+
73
+ function regionsView(this: UDExMastheadCountrySelector) {
74
+ return (
75
+ <>
76
+ <span class="udex-masthead-country-selector__title">{this.regionTitle}</span>
77
+ <ul class="udex-masthead-country-selector__list">
78
+ {this.regionsData.map((region, index) => (
79
+ <li key={index}>
80
+ <UDExMastheadMenuItem
81
+ onClick={this.handleRegionClick as any}
82
+ index={index}
83
+ accessible-role="button"
84
+ class="udex-masthead-country-selector__item udex-masthead-country-selector__item_region"
85
+ aria-haspopup="true"
86
+ type="Button"
87
+ part="menu-item"
88
+ has-border={true}
89
+ icon-end={true}
90
+ label={region.title}
91
+ {...{ "is-nav-item": "" }}>
92
+ </UDExMastheadMenuItem>
93
+ </li>
94
+ ))}
95
+ </ul>
96
+ </>
97
+ );
98
+ }