@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,5 +1,6 @@
1
1
  import UDExTabNavigation, { UDExTabNavigationOrientation, UDExTabNavigationPlacement, UDExTabNavigationVerticalAlignment } from "../../src/TabNavigation.js";
2
2
  import UDExTab from "../../src/Tab.js";
3
+ import UDExLink from "../../src/Link.js";
3
4
 
4
5
  // ─── Process Tab fixtures ─────────────────────────────────────────────────────
5
6
 
@@ -223,12 +224,12 @@ describe("Tab Navigation component", () => {
223
224
  .shadow()
224
225
  .find(".udex-tab-navigation__root")
225
226
  .should("be.visible");
226
-
227
+
227
228
  // All tabs should be visible without overflow
228
229
  cy.get("[udex-tab-navigation]")
229
230
  .find("udex-tab")
230
231
  .should("have.length", 5);
231
-
232
+
232
233
  cy.get("[udex-tab-navigation]")
233
234
  .shadow()
234
235
  .find("button[role='tab']")
@@ -250,7 +251,7 @@ describe("Tab Navigation component", () => {
250
251
  .shadow()
251
252
  .find("button[role='tab'][aria-selected='true']")
252
253
  .should("contain.text", "General Settings");
253
-
254
+
254
255
  cy.get("[udex-tab-navigation]")
255
256
  .find("udex-tab[selected]")
256
257
  .find("h3")
@@ -270,7 +271,7 @@ describe("Tab Navigation component", () => {
270
271
  .shadow()
271
272
  .find("button[role='tab'][aria-selected='true']")
272
273
  .should("contain.text", "Notifications");
273
-
274
+
274
275
  cy.get("[udex-tab-navigation]")
275
276
  .find("udex-tab[selected]")
276
277
  .find("h3")
@@ -279,7 +280,7 @@ describe("Tab Navigation component", () => {
279
280
 
280
281
  it("emits tab-select event on tab change", () => {
281
282
  const tabSelectHandler = cy.stub().as("tabSelect");
282
-
283
+
283
284
  cy.mount(
284
285
  <UDExTabNavigation orientation="Vertical" onTabSelect={tabSelectHandler}>
285
286
  <UDExTab text="Tab 1" selected>
@@ -468,11 +469,11 @@ describe("Tab Navigation component", () => {
468
469
  .shadow()
469
470
  .find(".udex-tab-navigation__root")
470
471
  .should("be.visible");
471
-
472
+
472
473
  cy.get("[udex-tab-navigation]")
473
474
  .find("udex-tab")
474
475
  .should("have.length", 3);
475
-
476
+
476
477
  cy.get("[udex-tab-navigation]")
477
478
  .shadow()
478
479
  .find("button[role='tab']")
@@ -484,7 +485,7 @@ describe("Tab Navigation component", () => {
484
485
  .shadow()
485
486
  .find("button[role='tab'][aria-selected='true']")
486
487
  .should("contain.text", "Tab 1");
487
-
488
+
488
489
  cy.get("[udex-tab-navigation]")
489
490
  .find("udex-tab[selected]")
490
491
  .find("p")
@@ -504,7 +505,7 @@ describe("Tab Navigation component", () => {
504
505
  .shadow()
505
506
  .find("button[role='tab'][aria-selected='true']")
506
507
  .should("contain.text", "Tab 3");
507
-
508
+
508
509
  cy.get("[udex-tab-navigation]")
509
510
  .find("udex-tab[selected]")
510
511
  .find("p")
@@ -681,6 +682,60 @@ describe("Tab Navigation component", () => {
681
682
  .should("exist");
682
683
  });
683
684
 
685
+ it("does not set a dangling aria-labelledby on the tab list", () => {
686
+ cy.get("[udex-tab-navigation]")
687
+ .shadow()
688
+ .find("[role='tablist']")
689
+ .should("not.have.attr", "aria-labelledby");
690
+ });
691
+
692
+ it("has no aria-label on the tab list when accessibleName is not set", () => {
693
+ cy.get("[udex-tab-navigation]")
694
+ .shadow()
695
+ .find("[role='tablist']")
696
+ .should("not.have.attr", "aria-label");
697
+ });
698
+
699
+ it("exposes accessibleName as aria-label on the tab list", () => {
700
+ cy.mount(
701
+ <UDExTabNavigation accessibleName="Profile navigation">
702
+ <UDExTab text="Privacy" selected>
703
+ <div>Privacy content</div>
704
+ </UDExTab>
705
+ <UDExTab text="Security">
706
+ <div>Security content</div>
707
+ </UDExTab>
708
+ </UDExTabNavigation>
709
+ );
710
+
711
+ cy.get("[udex-tab-navigation]")
712
+ .shadow()
713
+ .find("[role='tablist']")
714
+ .should("have.attr", "aria-label", "Profile navigation");
715
+ });
716
+
717
+ it("removes the aria-label when accessibleName is cleared", () => {
718
+ cy.mount(
719
+ <UDExTabNavigation accessibleName="Profile navigation">
720
+ <UDExTab text="Privacy" selected>
721
+ <div>Privacy content</div>
722
+ </UDExTab>
723
+ <UDExTab text="Security">
724
+ <div>Security content</div>
725
+ </UDExTab>
726
+ </UDExTabNavigation>
727
+ );
728
+
729
+ cy.get("[udex-tab-navigation]").then($el => {
730
+ ($el[0] as UDExTabNavigation).accessibleName = "";
731
+ });
732
+
733
+ cy.get("[udex-tab-navigation]")
734
+ .shadow()
735
+ .find("[role='tablist']")
736
+ .should("not.have.attr", "aria-label");
737
+ });
738
+
684
739
  it("has correct tabindex on selected tab", () => {
685
740
  cy.get("[udex-tab-navigation]")
686
741
  .shadow()
@@ -826,15 +881,15 @@ describe("Tab Navigation component", () => {
826
881
  it("displays body text content correctly for each vertical tab", () => {
827
882
  cy.mount(
828
883
  <UDExTabNavigation orientation="Vertical">
829
- <UDExTab
830
- text="Settings"
831
- bodyText="Configure your preferences"
884
+ <UDExTab
885
+ text="Settings"
886
+ bodyText="Configure your preferences"
832
887
  selected
833
888
  >
834
889
  <div>Settings content</div>
835
890
  </UDExTab>
836
- <UDExTab
837
- text="Account"
891
+ <UDExTab
892
+ text="Account"
838
893
  bodyText="Manage your account"
839
894
  >
840
895
  <div>Account content</div>
@@ -1046,7 +1101,7 @@ describe("Tab Navigation component", () => {
1046
1101
  cy.mount(
1047
1102
  <UDExTabNavigation orientation={UDExTabNavigationOrientation.Vertical}>
1048
1103
  <UDExTab text="Account" body-text="Privacy settings" selected>
1049
- <udex-link slot="link" href="https://sap.com/" design="Default">Privacy Policy</udex-link>
1104
+ <UDExLink slot="link" href="https://sap.com/" design="Default">Privacy Policy</UDExLink>
1050
1105
  <div>Account content</div>
1051
1106
  </UDExTab>
1052
1107
  <UDExTab text="Settings">
@@ -1065,8 +1120,8 @@ describe("Tab Navigation component", () => {
1065
1120
  cy.mount(
1066
1121
  <UDExTabNavigation orientation={UDExTabNavigationOrientation.Vertical}>
1067
1122
  <UDExTab text="Account" selected>
1068
- <udex-link slot="link" href="https://sap.com/privacy" design="Default">Privacy Policy</udex-link>
1069
- <udex-link slot="link" href="https://sap.com/terms" design="Default">Terms of Service</udex-link>
1123
+ <UDExLink slot="link" href="https://sap.com/privacy" design="Default">Privacy Policy</UDExLink>
1124
+ <UDExLink slot="link" href="https://sap.com/terms" design="Default">Terms of Service</UDExLink>
1070
1125
  <div>Account content</div>
1071
1126
  </UDExTab>
1072
1127
  <UDExTab text="Settings">
@@ -1085,11 +1140,11 @@ describe("Tab Navigation component", () => {
1085
1140
  cy.mount(
1086
1141
  <UDExTabNavigation orientation={UDExTabNavigationOrientation.Vertical}>
1087
1142
  <UDExTab text="Account" selected>
1088
- <udex-link slot="link" href="https://sap.com/" design="Default">Privacy Policy</udex-link>
1143
+ <UDExLink slot="link" href="https://sap.com/" design="Default">Privacy Policy</UDExLink>
1089
1144
  <div>Account content</div>
1090
1145
  </UDExTab>
1091
1146
  <UDExTab text="Settings">
1092
- <udex-link slot="link" href="https://sap.com/" design="Default">Terms of Service</udex-link>
1147
+ <UDExLink slot="link" href="https://sap.com/" design="Default">Terms of Service</UDExLink>
1093
1148
  <div>Settings content</div>
1094
1149
  </UDExTab>
1095
1150
  </UDExTabNavigation>
@@ -1117,7 +1172,7 @@ describe("Tab Navigation component", () => {
1117
1172
  <div>Account content</div>
1118
1173
  </UDExTab>
1119
1174
  <UDExTab text="Settings">
1120
- <udex-link slot="link" href="https://sap.com/" design="Default">Privacy Policy</udex-link>
1175
+ <UDExLink slot="link" href="https://sap.com/" design="Default">Privacy Policy</UDExLink>
1121
1176
  <div>Settings content</div>
1122
1177
  </UDExTab>
1123
1178
  </UDExTabNavigation>
@@ -1139,7 +1194,7 @@ describe("Tab Navigation component", () => {
1139
1194
  cy.mount(
1140
1195
  <UDExTabNavigation orientation={UDExTabNavigationOrientation.Horizontal}>
1141
1196
  <UDExTab text="Account" selected>
1142
- <udex-link slot="link" href="https://sap.com/" design="Default">Privacy Policy</udex-link>
1197
+ <UDExLink slot="link" href="https://sap.com/" design="Default">Privacy Policy</UDExLink>
1143
1198
  <div>Account content</div>
1144
1199
  </UDExTab>
1145
1200
  <UDExTab text="Settings">
@@ -1983,6 +2038,198 @@ describe("Tab Navigation component", () => {
1983
2038
  });
1984
2039
  });
1985
2040
 
2041
+ // DOM-measurement-based overflow does not work in Cypress component tests
2042
+ // (see the skipped overflow suites above), so we move tabs into the overflow
2043
+ // popover programmatically. The popover only renders once _overflowItems has
2044
+ // length, so we populate it first, wait for the popover to mount, then open it.
2045
+ const openOverflowPopover = (overflowStartIndex: number) => {
2046
+ // 1. Set _overflowItems and stub updateOverflowItems so onBeforeRendering
2047
+ // cannot reset it back to [] (which it would, because no tabs are hidden
2048
+ // in the Cypress layout environment).
2049
+ cy.get("[udex-tab-navigation]").then($el => {
2050
+ const nav = $el[0] as any;
2051
+ // Stub first so onBeforeRendering cannot reset _overflowItems.
2052
+ nav.updateOverflowItems = () => {};
2053
+ // Setting the property triggers the internal re-render via the UI5 setter.
2054
+ nav._overflowItems = Array.from(nav.items).slice(overflowStartIndex);
2055
+ });
2056
+
2057
+ // 2. Once the popover is in the DOM, open it using the More button as opener.
2058
+ cy.get("[udex-tab-navigation]").shadow().find("[ui5-popover]").should("exist");
2059
+ cy.get("[udex-tab-navigation]").then($el => {
2060
+ const nav = $el[0] as any;
2061
+ nav._popover = nav.getResponsePopover();
2062
+ nav._popover.opener = nav.getMoreButton();
2063
+ nav._popover.open = true;
2064
+ nav._isExpanded = true;
2065
+ // updateOverflowItems is stubbed, so it never removes the hidden attribute.
2066
+ // Unhide the More button so it can receive focus (e.g. on Escape).
2067
+ nav.getMoreButton()?.removeAttribute("hidden");
2068
+ });
2069
+
2070
+ // 3. Wait for the overflow tab buttons to be in the DOM.
2071
+ cy.get("[udex-tab-navigation]")
2072
+ .shadow()
2073
+ .find(".udex-tab-overflow__button")
2074
+ .should("exist");
2075
+ };
2076
+
2077
+ describe("Overflow dropdown — disabled tab navigation", () => {
2078
+
2079
+ it("disabled item has aria-disabled and is not interactive", () => {
2080
+ const tabSelectStub = cy.stub().as("tabSelect");
2081
+
2082
+ cy.mount(
2083
+ <UDExTabNavigation>
2084
+ <UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
2085
+ <UDExTab text="Tab 2" disabled><div>Content 2</div></UDExTab>
2086
+ <UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
2087
+ </UDExTabNavigation>
2088
+ );
2089
+
2090
+ cy.get("[udex-tab-navigation]").then($el => {
2091
+ $el[0].addEventListener("tab-select", tabSelectStub);
2092
+ });
2093
+
2094
+ openOverflowPopover(1); // overflow: Tab 2 (disabled), Tab 3
2095
+
2096
+ // The disabled overflow item reflects aria-disabled="true".
2097
+ cy.get("[udex-tab-navigation]")
2098
+ .shadow()
2099
+ .find(".udex-tab-overflow__button[aria-disabled='true']")
2100
+ .should("contain.text", "Tab 2");
2101
+
2102
+ // Clicking the disabled item must not select it nor fire tab-select.
2103
+ cy.get("[udex-tab-navigation]")
2104
+ .shadow()
2105
+ .find(".udex-tab-overflow__button[aria-disabled='true']")
2106
+ .click({ force: true });
2107
+
2108
+ cy.get("@tabSelect").should("not.have.been.called");
2109
+
2110
+ // Tab 1 remains the selected (active) header tab.
2111
+ cy.get("[udex-tab-navigation]")
2112
+ .shadow()
2113
+ .find(".udex-tab-navigation__button-tab--active")
2114
+ .should("contain.text", "Tab 1");
2115
+ });
2116
+
2117
+ it("arrow navigation skips disabled items", () => {
2118
+ cy.mount(
2119
+ <UDExTabNavigation>
2120
+ <UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
2121
+ <UDExTab text="Tab 2" disabled><div>Content 2</div></UDExTab>
2122
+ <UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
2123
+ <UDExTab text="Tab 4" disabled><div>Content 4</div></UDExTab>
2124
+ <UDExTab text="Tab 5"><div>Content 5</div></UDExTab>
2125
+ </UDExTabNavigation>
2126
+ );
2127
+
2128
+ openOverflowPopover(1); // overflow: Tab 2 (disabled), Tab 3, Tab 4 (disabled), Tab 5
2129
+
2130
+ // ArrowDown from Tab 3 (index 1) skips disabled Tab 4 and lands on Tab 5.
2131
+ // onNextItemInPopover sets tabindex="0" on the destination item.
2132
+ cy.get("[udex-tab-navigation]").then($el => {
2133
+ const nav = $el[0] as any;
2134
+ const items: HTMLElement[] = nav.getItemsFromPopover();
2135
+ items.forEach((item, i) => item.setAttribute("tabindex", i === 1 ? "0" : "-1"));
2136
+ nav.onNextItemInPopover(items[1]);
2137
+ });
2138
+ cy.get("[udex-tab-navigation]").shadow()
2139
+ .find(".udex-tab-overflow__button").contains("Tab 5")
2140
+ .should("have.attr", "tabindex", "0");
2141
+
2142
+ // ArrowUp from Tab 3 (index 1) skips disabled Tab 2 and wraps back to Tab 5.
2143
+ cy.get("[udex-tab-navigation]").then($el => {
2144
+ const nav = $el[0] as any;
2145
+ const items: HTMLElement[] = nav.getItemsFromPopover();
2146
+ items.forEach((item, i) => item.setAttribute("tabindex", i === 1 ? "0" : "-1"));
2147
+ nav.onPreviousItemInPopover(items[1]);
2148
+ });
2149
+ cy.get("[udex-tab-navigation]").shadow()
2150
+ .find(".udex-tab-overflow__button").contains("Tab 5")
2151
+ .should("have.attr", "tabindex", "0");
2152
+ });
2153
+
2154
+ it("focus moves to first non-disabled item on open when first item is disabled", () => {
2155
+ cy.mount(
2156
+ <UDExTabNavigation>
2157
+ <UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
2158
+ <UDExTab text="Tab 2" disabled><div>Content 2</div></UDExTab>
2159
+ <UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
2160
+ <UDExTab text="Tab 4"><div>Content 4</div></UDExTab>
2161
+ </UDExTabNavigation>
2162
+ );
2163
+
2164
+ openOverflowPopover(1); // overflow: Tab 2 (disabled), Tab 3, Tab 4
2165
+
2166
+ // onFocusFirstItemPopover sets tabindex="0" on the first non-disabled item.
2167
+ cy.get("[udex-tab-navigation]").then($el => {
2168
+ ($el[0] as any).onFocusFirstItemPopover();
2169
+ });
2170
+ cy.get("[udex-tab-navigation]").shadow()
2171
+ .find(".udex-tab-overflow__button").contains("Tab 3")
2172
+ .should("have.attr", "tabindex", "0");
2173
+ });
2174
+
2175
+ it("Home key moves focus to first non-disabled item", () => {
2176
+ cy.mount(
2177
+ <UDExTabNavigation>
2178
+ <UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
2179
+ <UDExTab text="Tab 2" disabled><div>Content 2</div></UDExTab>
2180
+ <UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
2181
+ <UDExTab text="Tab 4"><div>Content 4</div></UDExTab>
2182
+ </UDExTabNavigation>
2183
+ );
2184
+
2185
+ openOverflowPopover(1); // overflow: Tab 2 (disabled), Tab 3, Tab 4
2186
+
2187
+ // Spy on .focus() calls to assert which item handleHome targets.
2188
+ cy.get("[udex-tab-navigation]").then($el => {
2189
+ const nav = $el[0] as any;
2190
+ const items: HTMLElement[] = nav.getItemsFromPopover();
2191
+ let focusedItem: HTMLElement | undefined;
2192
+ items.forEach(item => {
2193
+ const orig = item.focus.bind(item);
2194
+ item.focus = () => { focusedItem = item; orig(); };
2195
+ });
2196
+ const e = new KeyboardEvent("keydown", { key: "Home", keyCode: 36, bubbles: true, cancelable: true });
2197
+ nav.handleHome(e);
2198
+ // Tab 3 (index 1) is the first non-disabled item; Tab 2 (index 0) must be skipped.
2199
+ expect(focusedItem).to.equal(items[1]);
2200
+ });
2201
+ });
2202
+
2203
+ it("End key moves focus to last non-disabled item", () => {
2204
+ cy.mount(
2205
+ <UDExTabNavigation>
2206
+ <UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
2207
+ <UDExTab text="Tab 2"><div>Content 2</div></UDExTab>
2208
+ <UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
2209
+ <UDExTab text="Tab 4"><div>Content 4</div></UDExTab>
2210
+ <UDExTab text="Tab 5" disabled><div>Content 5</div></UDExTab>
2211
+ </UDExTabNavigation>
2212
+ );
2213
+
2214
+ openOverflowPopover(2); // overflow: Tab 3, Tab 4, Tab 5 (disabled)
2215
+
2216
+ // Spy on .focus() calls to assert which item handleEnd targets.
2217
+ cy.get("[udex-tab-navigation]").then($el => {
2218
+ const nav = $el[0] as any;
2219
+ const items: HTMLElement[] = nav.getItemsFromPopover();
2220
+ let focusedItem: HTMLElement | undefined;
2221
+ items.forEach(item => {
2222
+ const orig = item.focus.bind(item);
2223
+ item.focus = () => { focusedItem = item; orig(); };
2224
+ });
2225
+ const e = new KeyboardEvent("keydown", { key: "End", keyCode: 35, bubbles: true, cancelable: true });
2226
+ nav.handleEnd(e);
2227
+ // Tab 4 (index 1) is the last non-disabled item; Tab 5 (index 2) must be skipped.
2228
+ expect(focusedItem).to.equal(items[1]);
2229
+ });
2230
+ });
2231
+ });
2232
+
1986
2233
  // ── Process Tab variant ──────────────────────────────────────────────────────
1987
2234
 
1988
2235
  describe("TabNavigation - Process Tab variant", () => {
@@ -2376,4 +2623,87 @@ describe("Tab Navigation component", () => {
2376
2623
  });
2377
2624
  });
2378
2625
  });
2626
+
2627
+ describe("Overflow dropdown — focus management", () => {
2628
+ it("pressing Escape closes the popover and moves focus to the More button", () => {
2629
+ cy.mount(
2630
+ <UDExTabNavigation>
2631
+ <UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
2632
+ <UDExTab text="Tab 2"><div>Content 2</div></UDExTab>
2633
+ <UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
2634
+ </UDExTabNavigation>
2635
+ );
2636
+
2637
+ openOverflowPopover(1);
2638
+
2639
+ cy.get("[udex-tab-navigation]").then($el => {
2640
+ const nav = $el[0] as any;
2641
+ const e = new KeyboardEvent("keydown", { key: "Escape", keyCode: 27, bubbles: true, cancelable: true });
2642
+ nav.handleEscape(e);
2643
+ });
2644
+
2645
+ cy.get("[udex-tab-navigation]")
2646
+ .shadow()
2647
+ .find("[ui5-popover]")
2648
+ .should("not.have.attr", "open");
2649
+
2650
+ cy.get("[udex-tab-navigation]")
2651
+ .shadow()
2652
+ .find(".udex-tab-navigation__button-more")
2653
+ .shadow()
2654
+ .find("button")
2655
+ .should("be.focused");
2656
+ });
2657
+
2658
+ it("clicking an overflow item moves focus to the selected tab in the header", () => {
2659
+ cy.mount(
2660
+ <UDExTabNavigation>
2661
+ <UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
2662
+ <UDExTab text="Tab 2"><div>Content 2</div></UDExTab>
2663
+ <UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
2664
+ </UDExTabNavigation>
2665
+ );
2666
+
2667
+ openOverflowPopover(1);
2668
+
2669
+ cy.get("[udex-tab-navigation]")
2670
+ .shadow()
2671
+ .find(".udex-tab-overflow__button")
2672
+ .contains("Tab 2")
2673
+ .click({ force: true });
2674
+
2675
+ cy.get("[udex-tab-navigation]")
2676
+ .shadow()
2677
+ .find(".udex-tab-navigation__button-tab[aria-selected='true']")
2678
+ .should("contain.text", "Tab 2")
2679
+ .and("be.focused");
2680
+ });
2681
+
2682
+ it("pressing Enter on an overflow item moves focus to the selected tab in the header", () => {
2683
+ cy.mount(
2684
+ <UDExTabNavigation>
2685
+ <UDExTab text="Tab 1" selected><div>Content 1</div></UDExTab>
2686
+ <UDExTab text="Tab 2"><div>Content 2</div></UDExTab>
2687
+ <UDExTab text="Tab 3"><div>Content 3</div></UDExTab>
2688
+ </UDExTabNavigation>
2689
+ );
2690
+
2691
+ openOverflowPopover(1);
2692
+
2693
+ cy.get("[udex-tab-navigation]").then($el => {
2694
+ const nav = $el[0] as any;
2695
+ const items: HTMLElement[] = nav.getItemsFromPopover();
2696
+ const tab2Item = items.find((item) => item.textContent?.trim().startsWith("Tab 2"))!;
2697
+ const e = new KeyboardEvent("keydown", { key: "Enter", keyCode: 13, bubbles: true, cancelable: true });
2698
+ Object.defineProperty(e, "target", { value: tab2Item, configurable: true });
2699
+ nav.handleEnterOrSpace(e);
2700
+ });
2701
+
2702
+ cy.get("[udex-tab-navigation]")
2703
+ .shadow()
2704
+ .find(".udex-tab-navigation__button-tab[aria-selected='true']")
2705
+ .should("contain.text", "Tab 2")
2706
+ .and("be.focused");
2707
+ });
2708
+ });
2379
2709
  });
@@ -67,7 +67,7 @@ describe("TagGroup", () => {
67
67
  const nMore = cy.get("[udex-tag-group]").shadow().find(".udex-tag-group__tokenizer").shadow().find(".ui5-tokenizer-more-text")
68
68
  nMore.click()
69
69
  cy.get("[udex-tag-group]").shadow().find(".udex-tag-group-tooltip__content").then($tooltip => {
70
- expect($tooltip.find(".udex-tag-group__tag")).lengthOf(9)
70
+ expect($tooltip.find(".udex-tag-group__tag")).lengthOf(10)
71
71
  })
72
72
  });
73
73
 
package/dist/List.d.ts CHANGED
@@ -113,6 +113,15 @@ declare class UDExList extends UI5Element {
113
113
  handleKeyDown(e: KeyboardEvent): void;
114
114
  handleArrowRight(e: KeyboardEvent): void;
115
115
  handleArrowLeft(e: KeyboardEvent): void;
116
+ /**
117
+ * Arrow-key expand/collapse toggles `collapsed` directly here (multi-select
118
+ * headers deliver Left/Right to the List, not to the header's own key handler),
119
+ * so the `accordion-icon-click` event that drives the collapse/expand live-region
120
+ * announcement is never fired on this path. Re-emit it from the header so
121
+ * SearchableListBase announces the new state to screen readers, matching the
122
+ * chevron/pointer and single-select paths.
123
+ */
124
+ fireAccordionToggle(target: UDExListItemBase): void;
116
125
  handleUpArrow(e: KeyboardEvent): void;
117
126
  handleDownArrow(e: KeyboardEvent): void;
118
127
  handleHomeKey(e: KeyboardEvent): void;
@@ -158,7 +167,12 @@ declare class UDExList extends UI5Element {
158
167
  * SingleContent is informational so "list"/"listitem" is the correct semantic.
159
168
  */
160
169
  get singleContentRole(): string;
161
- /** aria-multiselectable exposed only for MultiSelect tree (collapsible groups). */
170
+ /**
171
+ * aria-multiselectable is exposed for every MultiSelect list — the flat listbox
172
+ * and the collapsible tree alike. It is required so the screen reader announces
173
+ * each option's selected / not-selected state (from aria-selected) instead of
174
+ * treating the container as single-select and announcing only the active option.
175
+ */
162
176
  get _listAriaMultiSelectable(): string | undefined;
163
177
  }
164
178
  export default UDExList;
package/dist/List.js CHANGED
@@ -118,6 +118,7 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
118
118
  if (target.isGroup && target.hasAttribute("collapsible") && target.collapsed) {
119
119
  target.collapsed = false;
120
120
  this.setCollapsedItems(false, target);
121
+ this.fireAccordionToggle(target);
121
122
  }
122
123
  }
123
124
  handleArrowLeft(e) {
@@ -125,8 +126,23 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
125
126
  if (target.isGroup && target.hasAttribute("collapsible") && !target.collapsed) {
126
127
  target.collapsed = true;
127
128
  this.setCollapsedItems(true, target);
129
+ this.fireAccordionToggle(target);
128
130
  }
129
131
  }
132
+ /**
133
+ * Arrow-key expand/collapse toggles `collapsed` directly here (multi-select
134
+ * headers deliver Left/Right to the List, not to the header's own key handler),
135
+ * so the `accordion-icon-click` event that drives the collapse/expand live-region
136
+ * announcement is never fired on this path. Re-emit it from the header so
137
+ * SearchableListBase announces the new state to screen readers, matching the
138
+ * chevron/pointer and single-select paths.
139
+ */
140
+ fireAccordionToggle(target) {
141
+ target.dispatchEvent(new CustomEvent("accordion-icon-click", {
142
+ bubbles: true,
143
+ detail: { collapsed: target.collapsed },
144
+ }));
145
+ }
130
146
  handleUpArrow(e) {
131
147
  e.preventDefault();
132
148
  const items = this.getKeyboardNavigationItems();
@@ -454,9 +470,14 @@ let UDExList = UDExList_1 = class UDExList extends UI5Element {
454
470
  get singleContentRole() {
455
471
  return this.accessibleRole !== "listbox" ? this.accessibleRole : "list";
456
472
  }
457
- /** aria-multiselectable exposed only for MultiSelect tree (collapsible groups). */
473
+ /**
474
+ * aria-multiselectable is exposed for every MultiSelect list — the flat listbox
475
+ * and the collapsible tree alike. It is required so the screen reader announces
476
+ * each option's selected / not-selected state (from aria-selected) instead of
477
+ * treating the container as single-select and announcing only the active option.
478
+ */
458
479
  get _listAriaMultiSelectable() {
459
- return (this._hasCollapsibleGroups && this.modeMultiSelect) ? "true" : undefined;
480
+ return this.modeMultiSelect ? "true" : undefined;
460
481
  }
461
482
  };
462
483
  __decorate([