@sapudex/web-components 2.58.0 → 2.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/cypress/specs/SelectBox.cy.tsx +355 -249
  2. package/cypress/specs/TabNavigation.cy.tsx +54 -0
  3. package/cypress/specs/TagGroup.cy.tsx +1 -1
  4. package/dist/ListGroupHeaderBase.js +9 -0
  5. package/dist/ListGroupHeaderBase.js.map +1 -1
  6. package/dist/ListGroupHeaderTemplate.js +15 -1
  7. package/dist/ListGroupHeaderTemplate.js.map +1 -1
  8. package/dist/MastheadCountrySelectorTemplate.js +1 -1
  9. package/dist/MastheadCountrySelectorTemplate.js.map +1 -1
  10. package/dist/RatingIndicatorTemplate.js +1 -1
  11. package/dist/RatingIndicatorTemplate.js.map +1 -1
  12. package/dist/SecondaryNavigation.js +3 -3
  13. package/dist/SecondaryNavigation.js.map +1 -1
  14. package/dist/SecondaryNavigationItem.d.ts +0 -1
  15. package/dist/SecondaryNavigationItem.js +4 -6
  16. package/dist/SecondaryNavigationItem.js.map +1 -1
  17. package/dist/SecondaryNavigationItemBase.js +2 -2
  18. package/dist/SecondaryNavigationItemBase.js.map +1 -1
  19. package/dist/SecondaryNavigationItemTemplate.d.ts +2 -0
  20. package/dist/SecondaryNavigationItemTemplate.js +12 -0
  21. package/dist/SecondaryNavigationItemTemplate.js.map +1 -0
  22. package/dist/SecondaryNavigationSubItem.d.ts +0 -2
  23. package/dist/SecondaryNavigationSubItem.js +3 -7
  24. package/dist/SecondaryNavigationSubItem.js.map +1 -1
  25. package/dist/SecondaryNavigationSubItemTemplate.d.ts +2 -0
  26. package/dist/SecondaryNavigationSubItemTemplate.js +16 -0
  27. package/dist/SecondaryNavigationSubItemTemplate.js.map +1 -0
  28. package/dist/SecondaryNavigationTemplate.d.ts +2 -0
  29. package/dist/SecondaryNavigationTemplate.js +7 -0
  30. package/dist/SecondaryNavigationTemplate.js.map +1 -0
  31. package/dist/SelectBase.d.ts +7 -2
  32. package/dist/SelectBase.js +26 -38
  33. package/dist/SelectBase.js.map +1 -1
  34. package/dist/SideNavigationMobile.d.ts +2 -3
  35. package/dist/SideNavigationMobile.js +22 -16
  36. package/dist/SideNavigationMobile.js.map +1 -1
  37. package/dist/SideNavigationMobileTemplate.d.ts +2 -0
  38. package/dist/SideNavigationMobileTemplate.js +11 -0
  39. package/dist/SideNavigationMobileTemplate.js.map +1 -0
  40. package/dist/TabNavigation.d.ts +12 -0
  41. package/dist/TabNavigation.js +17 -0
  42. package/dist/TabNavigation.js.map +1 -1
  43. package/dist/TabNavigationTemplate.js +1 -1
  44. package/dist/TabNavigationTemplate.js.map +1 -1
  45. package/dist/TagGroup.d.ts +2 -2
  46. package/dist/TagGroup.js +14 -3
  47. package/dist/TagGroup.js.map +1 -1
  48. package/dist/assets/InputSuggestions-DyNcKgip.js +2 -0
  49. package/dist/assets/{ListItemStandardExpandableTextTemplate-D2i8wWuR.js → ListItemStandardExpandableTextTemplate-qdKPzaOQ.js} +1 -1
  50. package/dist/assets/{ar-6UKwJun6.js → ar-CMU2PGtw.js} +1 -1
  51. package/dist/assets/{ar_EG-BTSal4jr.js → ar_EG-Bi2CIb24.js} +1 -1
  52. package/dist/assets/{ar_SA-Ck13AOrQ.js → ar_SA-BXTzBfWR.js} +1 -1
  53. package/dist/assets/{bg-fF9FXKHH.js → bg-B6_PMtzW.js} +1 -1
  54. package/dist/assets/{bundle.esm-BjN47C_y.js → bundle.esm-sUYwSJOp.js} +244 -262
  55. package/dist/assets/{ca-ZuvXTynI.js → ca-DFP6ILMq.js} +1 -1
  56. package/dist/assets/{cnr-CiidS6E_.js → cnr-Grlu3JuX.js} +1 -1
  57. package/dist/assets/{cs-CKH0PBiM.js → cs-lgNqqL4u.js} +1 -1
  58. package/dist/assets/{da-DLJy-V4w.js → da-ZKggtzGq.js} +1 -1
  59. package/dist/assets/{de-0N92OkSB.js → de-DL1zgfsi.js} +1 -1
  60. package/dist/assets/{de_AT-D8g7Tth2.js → de_AT-CmarUHhe.js} +1 -1
  61. package/dist/assets/{de_CH-DYTcKEqU.js → de_CH-CFp86jVo.js} +1 -1
  62. package/dist/assets/{el-OYZuNIHv.js → el-FdvefiDT.js} +1 -1
  63. package/dist/assets/{el_CY-D79vuMAa.js → el_CY-BJPkkKi8.js} +1 -1
  64. package/dist/assets/{en-CllNN7YY.js → en-B1Q_JFFb.js} +1 -1
  65. package/dist/assets/{en_AU-Ddrviu44.js → en_AU-Bm6lcfFm.js} +1 -1
  66. package/dist/assets/{en_GB-B9eSErHy.js → en_GB-CCipb5dG.js} +1 -1
  67. package/dist/assets/{en_HK-FdAjB4tQ.js → en_HK-Bu8Js72H.js} +1 -1
  68. package/dist/assets/{en_IE-zdmtzUDu.js → en_IE-BZXJHeYM.js} +1 -1
  69. package/dist/assets/{en_IN-DJJRjMIF.js → en_IN-Dh3537uv.js} +1 -1
  70. package/dist/assets/{en_NZ-BY--qj4s.js → en_NZ-Bx3mG4fb.js} +1 -1
  71. package/dist/assets/{en_PG-RcJi2hvJ.js → en_PG-CyRO9VGd.js} +1 -1
  72. package/dist/assets/{en_SG-BUtJMBS2.js → en_SG-BEsuw651.js} +1 -1
  73. package/dist/assets/{en_ZA-D-uqJ4Za.js → en_ZA-i0tdkruX.js} +1 -1
  74. package/dist/assets/{es-DgitLRHt.js → es-BKtAFDBk.js} +1 -1
  75. package/dist/assets/{es_AR-7a81KXAl.js → es_AR-Cgh6Q2W_.js} +1 -1
  76. package/dist/assets/{es_BO-CdNGyTgv.js → es_BO-CaK9OOQC.js} +1 -1
  77. package/dist/assets/{es_CL-DuHBIVFo.js → es_CL-u6fJ6PPk.js} +1 -1
  78. package/dist/assets/{es_CO-C0CJWwB-.js → es_CO-DAO-13dw.js} +1 -1
  79. package/dist/assets/{es_MX-DtPgyxGD.js → es_MX-D1KhXUy4.js} +1 -1
  80. package/dist/assets/{es_PE-DGF7Yjrt.js → es_PE-DEUen4VG.js} +1 -1
  81. package/dist/assets/{es_UY-fD9lVhfR.js → es_UY-CPBMwHSz.js} +1 -1
  82. package/dist/assets/{es_VE-BX3pigg8.js → es_VE-CNZouG2K.js} +1 -1
  83. package/dist/assets/{et-BMj4rjsT.js → et-DNQPssPo.js} +1 -1
  84. package/dist/assets/{fa-CQhbGi8S.js → fa-4zj1zCg1.js} +1 -1
  85. package/dist/assets/{fi-DBKA9_K5.js → fi-C6HFNTL6.js} +1 -1
  86. package/dist/assets/{fr-CMQtkd4R.js → fr-BydrHZkq.js} +1 -1
  87. package/dist/assets/{fr_BE-Bl0FruWm.js → fr_BE-C8hcZNOL.js} +1 -1
  88. package/dist/assets/{fr_CA-DFlIL_d4.js → fr_CA-Cw2zy44G.js} +1 -1
  89. package/dist/assets/{fr_CH-C8lyCDBe.js → fr_CH-BbCQFx3s.js} +1 -1
  90. package/dist/assets/{fr_LU-CG5r3b1-.js → fr_LU-BpH6nMiI.js} +1 -1
  91. package/dist/assets/{he-D3P1Q9GQ.js → he-CfKmVVrF.js} +1 -1
  92. package/dist/assets/{hi-B3yky8gy.js → hi-D1WBUmI6.js} +1 -1
  93. package/dist/assets/{hr-cQ9G2h7E.js → hr-pnk2hlkB.js} +1 -1
  94. package/dist/assets/{hu-D0ywysYs.js → hu-CCzBj3iT.js} +1 -1
  95. package/dist/assets/{id-B-yAWgiT.js → id-BeGrqJpK.js} +1 -1
  96. package/dist/assets/{it-DLzjbv-9.js → it-B6Mz1czr.js} +1 -1
  97. package/dist/assets/{it_CH-DKz1oDNC.js → it_CH-CwPXoj3N.js} +1 -1
  98. package/dist/assets/{ja-C8zg_Zor.js → ja-BILluLT2.js} +1 -1
  99. package/dist/assets/{kk-DZZOQ4wh.js → kk-YSUtf5Jy.js} +1 -1
  100. package/dist/assets/{ko-BEJWYeL9.js → ko-DUlXl0QQ.js} +1 -1
  101. package/dist/assets/{lt-Cji-Zk_r.js → lt-Dn5sAAtt.js} +1 -1
  102. package/dist/assets/{lv-rjxWTRTn.js → lv-D_k8IElJ.js} +1 -1
  103. package/dist/assets/messagebundle_ar-C3EXytoC.js +1 -0
  104. package/dist/assets/messagebundle_ar-DmZrrjEF.js +1 -0
  105. package/dist/assets/messagebundle_bg-BaZ97Q_b.js +1 -0
  106. package/dist/assets/messagebundle_bg-CgU7GPvK.js +1 -0
  107. package/dist/assets/messagebundle_ca-BwjVUbUA.js +1 -0
  108. package/dist/assets/messagebundle_ca-YiUGbO_8.js +1 -0
  109. package/dist/assets/messagebundle_cnr-CN2hPZIN.js +1 -0
  110. package/dist/assets/messagebundle_cnr-zdEdPJvc.js +1 -0
  111. package/dist/assets/messagebundle_cs-CGbnEjza.js +1 -0
  112. package/dist/assets/messagebundle_cs-DmRWH--o.js +1 -0
  113. package/dist/assets/messagebundle_cy-BF0YH9Iz.js +1 -0
  114. package/dist/assets/messagebundle_cy-CUiGsjO6.js +1 -0
  115. package/dist/assets/messagebundle_da-CWKLQJiq.js +1 -0
  116. package/dist/assets/messagebundle_da-bTkr4pUc.js +1 -0
  117. package/dist/assets/messagebundle_de-BmnClk4G.js +1 -0
  118. package/dist/assets/messagebundle_de-vB6qhgvG.js +1 -0
  119. package/dist/assets/messagebundle_el-DKdItEgW.js +1 -0
  120. package/dist/assets/messagebundle_el-Gv1Ly8aj.js +1 -0
  121. package/dist/assets/messagebundle_en-DbKo-Dkl.js +1 -0
  122. package/dist/assets/messagebundle_en-DcV886MF.js +1 -0
  123. package/dist/assets/messagebundle_en_GB-Be93_Z4H.js +1 -0
  124. package/dist/assets/messagebundle_en_GB-CFh7e8hQ.js +1 -0
  125. package/dist/assets/messagebundle_en_US_sappsd-HCarC-Yr.js +1 -0
  126. package/dist/assets/messagebundle_en_US_sappsd-Se8GgI58.js +1 -0
  127. package/dist/assets/messagebundle_en_US_saprigi-CCHFk7YZ.js +1 -0
  128. package/dist/assets/messagebundle_en_US_saprigi-CbfvaHUL.js +1 -0
  129. package/dist/assets/messagebundle_en_US_saptrc-B8AIRzlo.js +1 -0
  130. package/dist/assets/messagebundle_en_US_saptrc-yJ3PcdEm.js +1 -0
  131. package/dist/assets/messagebundle_es-BH-a8BxO.js +1 -0
  132. package/dist/assets/messagebundle_es-Dt93wbGV.js +1 -0
  133. package/dist/assets/messagebundle_es_MX-BedlYlF3.js +1 -0
  134. package/dist/assets/messagebundle_es_MX-COPqooo9.js +1 -0
  135. package/dist/assets/messagebundle_et-BsYgDw46.js +1 -0
  136. package/dist/assets/messagebundle_et-UwpqUE-p.js +1 -0
  137. package/dist/assets/messagebundle_fi-BN3UWEz0.js +1 -0
  138. package/dist/assets/messagebundle_fi-Cwf7Puui.js +1 -0
  139. package/dist/assets/messagebundle_fr-43w09LAE.js +1 -0
  140. package/dist/assets/messagebundle_fr-CVRaf9_H.js +1 -0
  141. package/dist/assets/messagebundle_fr_CA-BM04X6xU.js +1 -0
  142. package/dist/assets/messagebundle_fr_CA-CdnVYumi.js +1 -0
  143. package/dist/assets/messagebundle_hi-DfeonbAH.js +1 -0
  144. package/dist/assets/messagebundle_hi-JRJlP9Uh.js +1 -0
  145. package/dist/assets/messagebundle_hr-CKOnn34q.js +1 -0
  146. package/dist/assets/messagebundle_hr-CbyIBlH3.js +1 -0
  147. package/dist/assets/messagebundle_hu-DF1gQudE.js +1 -0
  148. package/dist/assets/messagebundle_hu-D_IQ9kTy.js +1 -0
  149. package/dist/assets/messagebundle_id-B0K1usj4.js +1 -0
  150. package/dist/assets/messagebundle_id-gDJYoaGq.js +1 -0
  151. package/dist/assets/messagebundle_it-B80_R2Ih.js +1 -0
  152. package/dist/assets/messagebundle_it-CVqU4g6t.js +1 -0
  153. package/dist/assets/messagebundle_iw-BoelOIS4.js +1 -0
  154. package/dist/assets/messagebundle_iw-iMDtLxaa.js +1 -0
  155. package/dist/assets/messagebundle_ja-BlRbv4vb.js +1 -0
  156. package/dist/assets/messagebundle_ja-BrDH-19-.js +1 -0
  157. package/dist/assets/messagebundle_kk-C7VPek1-.js +1 -0
  158. package/dist/assets/messagebundle_kk-DhAT_bim.js +1 -0
  159. package/dist/assets/messagebundle_ko-CIqP8x6n.js +1 -0
  160. package/dist/assets/messagebundle_ko-DgD6uyZ5.js +1 -0
  161. package/dist/assets/messagebundle_lt-BGK5mpcm.js +1 -0
  162. package/dist/assets/messagebundle_lt-BV0kKrY0.js +1 -0
  163. package/dist/assets/messagebundle_lv-5IcjoxWD.js +1 -0
  164. package/dist/assets/messagebundle_lv-DDBi7iKe.js +1 -0
  165. package/dist/assets/messagebundle_mk-BUrn04sZ.js +1 -0
  166. package/dist/assets/messagebundle_mk-P5veRdg2.js +1 -0
  167. package/dist/assets/messagebundle_ms-9VDLR5en.js +1 -0
  168. package/dist/assets/messagebundle_ms-CB8sQUg2.js +1 -0
  169. package/dist/assets/messagebundle_nl-BaAgPO7h.js +1 -0
  170. package/dist/assets/messagebundle_nl-f1Up3dB9.js +1 -0
  171. package/dist/assets/messagebundle_no-C-_ldp7o.js +1 -0
  172. package/dist/assets/messagebundle_no-DRSqWQ-C.js +1 -0
  173. package/dist/assets/messagebundle_pl-BQoPaokq.js +1 -0
  174. package/dist/assets/messagebundle_pl-DBO1atMe.js +1 -0
  175. package/dist/assets/messagebundle_pt-BNEglYxa.js +1 -0
  176. package/dist/assets/messagebundle_pt-DgAMHmW-.js +1 -0
  177. package/dist/assets/messagebundle_pt_PT-BtYzp9KB.js +1 -0
  178. package/dist/assets/messagebundle_pt_PT-D1Ef8kUU.js +1 -0
  179. package/dist/assets/messagebundle_ro-CuDPp2fe.js +1 -0
  180. package/dist/assets/messagebundle_ro-D591wJ6f.js +1 -0
  181. package/dist/assets/messagebundle_ru-D0NridWi.js +1 -0
  182. package/dist/assets/messagebundle_ru-I8YLCfrn.js +1 -0
  183. package/dist/assets/messagebundle_sh-BswdbSRi.js +1 -0
  184. package/dist/assets/messagebundle_sh-Dw2y_oct.js +1 -0
  185. package/dist/assets/messagebundle_sk-BG4S4ZVk.js +1 -0
  186. package/dist/assets/messagebundle_sk-CXOF1RuF.js +1 -0
  187. package/dist/assets/messagebundle_sl-CAnJO_8X.js +1 -0
  188. package/dist/assets/messagebundle_sl-kpVWxIp_.js +1 -0
  189. package/dist/assets/messagebundle_sr-BTWvO8VQ.js +1 -0
  190. package/dist/assets/messagebundle_sr-VJmRSdj4.js +1 -0
  191. package/dist/assets/messagebundle_sv-B-RCgnW_.js +1 -0
  192. package/dist/assets/messagebundle_sv-Bd4wCcDb.js +1 -0
  193. package/dist/assets/messagebundle_th-CMHmLdI3.js +1 -0
  194. package/dist/assets/messagebundle_th-CZ1imsCy.js +1 -0
  195. package/dist/assets/messagebundle_tr-BfWAYIdW.js +1 -0
  196. package/dist/assets/messagebundle_tr-D-BnBirv.js +1 -0
  197. package/dist/assets/messagebundle_uk-DhxIThVl.js +1 -0
  198. package/dist/assets/messagebundle_uk-HU8hI0yj.js +1 -0
  199. package/dist/assets/messagebundle_vi-BUTqUKd4.js +1 -0
  200. package/dist/assets/messagebundle_vi-D1El4_Wj.js +1 -0
  201. package/dist/assets/messagebundle_zh_CN-Dt0azUea.js +1 -0
  202. package/dist/assets/messagebundle_zh_CN-Ofgx2uXY.js +1 -0
  203. package/dist/assets/messagebundle_zh_TW-5lv7yYS1.js +1 -0
  204. package/dist/assets/messagebundle_zh_TW-LSErOAsd.js +1 -0
  205. package/dist/assets/{mk-9_dtu4u_.js → mk-DTLhuyCG.js} +1 -1
  206. package/dist/assets/{ms-9b0nct8m.js → ms-BrLiVOVI.js} +1 -1
  207. package/dist/assets/{nb-CbGeVRux.js → nb-BeQEL0TR.js} +1 -1
  208. package/dist/assets/{nl-C0vlsmuT.js → nl-CGAh49hZ.js} +1 -1
  209. package/dist/assets/{nl_BE-Cteh34au.js → nl_BE-CxJbQu5q.js} +1 -1
  210. package/dist/assets/{parameters-bundle.css-D7WciSOr.js → parameters-bundle.css-B68EyCuR.js} +2 -0
  211. package/dist/assets/{parameters-bundle.css-CT-eTeTy.js → parameters-bundle.css-BkJSEiFx.js} +2 -0
  212. package/dist/assets/{parameters-bundle.css-BXQ-0CBp.js → parameters-bundle.css-C5V2Zp_F.js} +2 -0
  213. package/dist/assets/{parameters-bundle.css-XYDTPt-n.js → parameters-bundle.css-COeynv6D.js} +3 -1
  214. package/dist/assets/parameters-bundle.css-CnIzAMdG.js +3 -0
  215. package/dist/assets/parameters-bundle.css-CsV5qbZp.js +3 -0
  216. package/dist/assets/{parameters-bundle.css-C7KCPeJ8.js → parameters-bundle.css-DCvHNL3s.js} +1 -1
  217. package/dist/assets/{parameters-bundle.css-CQFZmxYm.js → parameters-bundle.css-DK40uKOQ.js} +1 -1
  218. package/dist/assets/parameters-bundle.css-DMfTAqMv.js +2 -0
  219. package/dist/assets/parameters-bundle.css-DO35k9r0.js +2 -0
  220. package/dist/assets/parameters-bundle.css-Df7wtRW4.js +2 -0
  221. package/dist/assets/{parameters-bundle.css-CxjtOlRD.js → parameters-bundle.css-DmEWEk0u.js} +36 -28
  222. package/dist/assets/{parameters-bundle.css-CSUOmZKr.js → parameters-bundle.css-DvAfqdlT.js} +1 -1
  223. package/dist/assets/{parameters-bundle.css-DPz62M1p.js → parameters-bundle.css-K-MvKimD.js} +3 -1
  224. package/dist/assets/parameters-bundle.css-KoXGNyLG.js +3 -0
  225. package/dist/assets/{parameters-bundle.css-CLLnzh9T.js → parameters-bundle.css-P_M_rm9z.js} +1 -1
  226. package/dist/assets/parameters-bundle.css-UJIxXHL5.js +2 -0
  227. package/dist/assets/{parameters-bundle.css-V2I5eOdH.js → parameters-bundle.css-co26r5Nz.js} +1 -1
  228. package/dist/assets/parameters-bundle.css-uT62L0va.js +3 -0
  229. package/dist/assets/{parameters-bundle.css-Cmk27zY9.js → parameters-bundle.css-vNsSPPU5.js} +38 -31
  230. package/dist/assets/{pl-CDjXMBDR.js → pl-DaZJCEN3.js} +1 -1
  231. package/dist/assets/{pt-BXklB5_T.js → pt-RxoGfR56.js} +1 -1
  232. package/dist/assets/{pt_PT-DEzSdlMb.js → pt_PT-CuC22O4H.js} +1 -1
  233. package/dist/assets/{ro-bFLE5ZuX.js → ro-kcCACdbI.js} +1 -1
  234. package/dist/assets/{ru-DuGdFJZn.js → ru-BQzoU2Gq.js} +1 -1
  235. package/dist/assets/{ru_UA-DujiLlPN.js → ru_UA-BtdbuqWW.js} +1 -1
  236. package/dist/assets/{sk-GkzEgQor.js → sk-D4C2H17S.js} +1 -1
  237. package/dist/assets/{sl-BhuoMxwQ.js → sl-7ESgddjQ.js} +1 -1
  238. package/dist/assets/{sr-Bb668mIq.js → sr-m2FCxV00.js} +1 -1
  239. package/dist/assets/{sr_Latn-C61cXg9o.js → sr_Latn-Dh8ru1_a.js} +1 -1
  240. package/dist/assets/{sv-yft9g0aL.js → sv-DkcDHqsr.js} +1 -1
  241. package/dist/assets/{th-BiAki51N.js → th-sJeg9F0h.js} +1 -1
  242. package/dist/assets/{tr-DDt0vBOs.js → tr-C2e7ABy0.js} +1 -1
  243. package/dist/assets/{uk-A-zqF2vZ.js → uk-Cdp63d6T.js} +1 -1
  244. package/dist/assets/{vi-Bleu1lwm.js → vi-DuFuMCO2.js} +1 -1
  245. package/dist/assets/{zh_CN-kJCGkFOs.js → zh_CN-BOAGYFIg.js} +1 -1
  246. package/dist/assets/{zh_HK-BJMkT2Ze.js → zh_HK-Bmft66uR.js} +1 -1
  247. package/dist/assets/{zh_SG-Lz9Li7LQ.js → zh_SG-ChcB0A9F.js} +1 -1
  248. package/dist/assets/{zh_TW-P8-QBSyv.js → zh_TW-C8FI5AC8.js} +1 -1
  249. package/dist/css/themes/AccordionSpotlight.css +1 -1
  250. package/dist/css/themes/Checkbox.css +1 -1
  251. package/dist/css/themes/FeedItem.css +1 -1
  252. package/dist/css/themes/Footer.css +1 -1
  253. package/dist/css/themes/ListGroupHeader.css +1 -1
  254. package/dist/css/themes/Pagination.css +1 -1
  255. package/dist/css/themes/RatingIndicator.css +1 -1
  256. package/dist/css/themes/SecondaryNavigation.css +1 -1
  257. package/dist/css/themes/SecondaryNavigationItem.css +1 -1
  258. package/dist/css/themes/SecondaryNavigationSubItem.css +1 -1
  259. package/dist/css/themes/WizardTab.css +1 -1
  260. package/dist/custom-elements-internal.json +19 -0
  261. package/dist/custom-elements.json +52 -0
  262. package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
  263. package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
  264. package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
  265. package/dist/generated/themes/Checkbox.css.d.ts +1 -1
  266. package/dist/generated/themes/Checkbox.css.js +1 -1
  267. package/dist/generated/themes/Checkbox.css.js.map +1 -1
  268. package/dist/generated/themes/FeedItem.css.d.ts +1 -1
  269. package/dist/generated/themes/FeedItem.css.js +1 -1
  270. package/dist/generated/themes/FeedItem.css.js.map +1 -1
  271. package/dist/generated/themes/Footer.css.d.ts +1 -1
  272. package/dist/generated/themes/Footer.css.js +1 -1
  273. package/dist/generated/themes/Footer.css.js.map +1 -1
  274. package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
  275. package/dist/generated/themes/ListGroupHeader.css.js +1 -1
  276. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  277. package/dist/generated/themes/Pagination.css.d.ts +1 -1
  278. package/dist/generated/themes/Pagination.css.js +1 -1
  279. package/dist/generated/themes/Pagination.css.js.map +1 -1
  280. package/dist/generated/themes/RatingIndicator.css.d.ts +1 -1
  281. package/dist/generated/themes/RatingIndicator.css.js +1 -1
  282. package/dist/generated/themes/RatingIndicator.css.js.map +1 -1
  283. package/dist/generated/themes/SecondaryNavigation.css.d.ts +1 -1
  284. package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
  285. package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
  286. package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
  287. package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
  288. package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
  289. package/dist/generated/themes/SecondaryNavigationSubItem.css.d.ts +1 -1
  290. package/dist/generated/themes/SecondaryNavigationSubItem.css.js +1 -1
  291. package/dist/generated/themes/SecondaryNavigationSubItem.css.js.map +1 -1
  292. package/dist/generated/themes/WizardTab.css.d.ts +1 -1
  293. package/dist/generated/themes/WizardTab.css.js +1 -1
  294. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  295. package/dist/utils/Breakpoints.d.ts +20 -1
  296. package/dist/utils/Breakpoints.js +38 -8
  297. package/dist/utils/Breakpoints.js.map +1 -1
  298. package/dist/vscode.html-custom-data.json +115 -456
  299. package/dist/web-types.json +11 -1
  300. package/package.json +8 -8
  301. package/src/ListGroupHeaderBase.ts +9 -0
  302. package/src/ListGroupHeaderTemplate.tsx +15 -3
  303. package/src/MastheadCountrySelectorTemplate.tsx +3 -2
  304. package/src/RatingIndicatorTemplate.tsx +0 -1
  305. package/src/SecondaryNavigation.ts +3 -3
  306. package/src/SecondaryNavigationItem.ts +4 -6
  307. package/src/SecondaryNavigationItemBase.ts +2 -2
  308. package/src/SecondaryNavigationItemTemplate.tsx +80 -0
  309. package/src/SecondaryNavigationSubItem.ts +3 -7
  310. package/src/SecondaryNavigationSubItemTemplate.tsx +63 -0
  311. package/src/SecondaryNavigationTemplate.tsx +90 -0
  312. package/src/SelectBase.ts +29 -46
  313. package/src/SideNavigationMobile.ts +24 -17
  314. package/src/SideNavigationMobileTemplate.tsx +59 -0
  315. package/src/TabNavigation.ts +17 -0
  316. package/src/TabNavigationTemplate.tsx +1 -1
  317. package/src/TagGroup.ts +16 -5
  318. package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
  319. package/src/generated/themes/Checkbox.css.ts +1 -1
  320. package/src/generated/themes/FeedItem.css.ts +1 -1
  321. package/src/generated/themes/Footer.css.ts +1 -1
  322. package/src/generated/themes/ListGroupHeader.css.ts +1 -1
  323. package/src/generated/themes/Pagination.css.ts +1 -1
  324. package/src/generated/themes/RatingIndicator.css.ts +1 -1
  325. package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
  326. package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
  327. package/src/generated/themes/SecondaryNavigationSubItem.css.ts +1 -1
  328. package/src/generated/themes/WizardTab.css.ts +1 -1
  329. package/src/themes/AccordionSpotlight.css +1 -1
  330. package/src/themes/Checkbox.css +5 -1
  331. package/src/themes/FeedItem.css +2 -1
  332. package/src/themes/Footer.css +4 -4
  333. package/src/themes/ListGroupHeader.css +6 -4
  334. package/src/themes/Pagination.css +14 -5
  335. package/src/themes/RatingIndicator.css +6 -1
  336. package/src/themes/SecondaryNavigation.css +3 -3
  337. package/src/themes/SecondaryNavigationItem.css +2 -2
  338. package/src/themes/SecondaryNavigationSubItem.css +2 -2
  339. package/src/themes/WizardTab.css +6 -1
  340. package/src/utils/Breakpoints.ts +39 -8
  341. package/dist/assets/InputSuggestions-CMYjJsHw.js +0 -2
  342. package/dist/assets/messagebundle_ar-BRkfjlVF.js +0 -1
  343. package/dist/assets/messagebundle_ar-D5A573iZ.js +0 -1
  344. package/dist/assets/messagebundle_bg-ByA8yRlQ.js +0 -1
  345. package/dist/assets/messagebundle_bg-CIVFOczQ.js +0 -1
  346. package/dist/assets/messagebundle_ca-BR3XuU9o.js +0 -1
  347. package/dist/assets/messagebundle_ca-CnMQ87v0.js +0 -1
  348. package/dist/assets/messagebundle_cnr-C6YhRiS7.js +0 -1
  349. package/dist/assets/messagebundle_cnr-CKZii51E.js +0 -1
  350. package/dist/assets/messagebundle_cs-DcOu8IOK.js +0 -1
  351. package/dist/assets/messagebundle_cs-I7yYpbsI.js +0 -1
  352. package/dist/assets/messagebundle_cy-BxrFUGJ9.js +0 -1
  353. package/dist/assets/messagebundle_cy-iXD_sJ-H.js +0 -1
  354. package/dist/assets/messagebundle_da-BVQHPgwf.js +0 -1
  355. package/dist/assets/messagebundle_da-CMGObFa5.js +0 -1
  356. package/dist/assets/messagebundle_de-CSl05u5u.js +0 -1
  357. package/dist/assets/messagebundle_de-Ca8NttFO.js +0 -1
  358. package/dist/assets/messagebundle_el-Cqfj_U5v.js +0 -1
  359. package/dist/assets/messagebundle_el-D9Zgq5tn.js +0 -1
  360. package/dist/assets/messagebundle_en-D0JTZvAf.js +0 -1
  361. package/dist/assets/messagebundle_en-DWqF0cay.js +0 -1
  362. package/dist/assets/messagebundle_en_GB-CGB_FKp4.js +0 -1
  363. package/dist/assets/messagebundle_en_GB-Cl7ekzz2.js +0 -1
  364. package/dist/assets/messagebundle_en_US_sappsd-7UdOh8vN.js +0 -1
  365. package/dist/assets/messagebundle_en_US_sappsd-B8rqsyFQ.js +0 -1
  366. package/dist/assets/messagebundle_en_US_saprigi-9VCo5QY0.js +0 -1
  367. package/dist/assets/messagebundle_en_US_saprigi-DfLzOCPY.js +0 -1
  368. package/dist/assets/messagebundle_en_US_saptrc-DZqYka05.js +0 -1
  369. package/dist/assets/messagebundle_en_US_saptrc-Wh_IysAB.js +0 -1
  370. package/dist/assets/messagebundle_es-DKn8EzzP.js +0 -1
  371. package/dist/assets/messagebundle_es-lf5AJZNW.js +0 -1
  372. package/dist/assets/messagebundle_es_MX-DyYZGjON.js +0 -1
  373. package/dist/assets/messagebundle_es_MX-yBTcvu7u.js +0 -1
  374. package/dist/assets/messagebundle_et-Dz8Ohhcp.js +0 -1
  375. package/dist/assets/messagebundle_et-rMWbS-Nu.js +0 -1
  376. package/dist/assets/messagebundle_fi-Bfbyhuuz.js +0 -1
  377. package/dist/assets/messagebundle_fi-DnXm7LPH.js +0 -1
  378. package/dist/assets/messagebundle_fr-BvbeCfZ-.js +0 -1
  379. package/dist/assets/messagebundle_fr-KQhoZEew.js +0 -1
  380. package/dist/assets/messagebundle_fr_CA-CE2lzYx5.js +0 -1
  381. package/dist/assets/messagebundle_fr_CA-CIhDzHAJ.js +0 -1
  382. package/dist/assets/messagebundle_hi-BRQ9tZ6F.js +0 -1
  383. package/dist/assets/messagebundle_hi-DPwH9vag.js +0 -1
  384. package/dist/assets/messagebundle_hr-BSKQ6zHT.js +0 -1
  385. package/dist/assets/messagebundle_hr-D3gQg5JN.js +0 -1
  386. package/dist/assets/messagebundle_hu-CAA4oM1C.js +0 -1
  387. package/dist/assets/messagebundle_hu-CZNs1K9T.js +0 -1
  388. package/dist/assets/messagebundle_id-9H0uJyXB.js +0 -1
  389. package/dist/assets/messagebundle_id-m6iosVVP.js +0 -1
  390. package/dist/assets/messagebundle_it-BWzxa-Mi.js +0 -1
  391. package/dist/assets/messagebundle_it-Cm_0HF21.js +0 -1
  392. package/dist/assets/messagebundle_iw-DpB2YXTa.js +0 -1
  393. package/dist/assets/messagebundle_iw-NfqePNtD.js +0 -1
  394. package/dist/assets/messagebundle_ja-BCSZcI8t.js +0 -1
  395. package/dist/assets/messagebundle_ja-C-qqwzFf.js +0 -1
  396. package/dist/assets/messagebundle_kk--PGqyTVS.js +0 -1
  397. package/dist/assets/messagebundle_kk-DAlCQkFU.js +0 -1
  398. package/dist/assets/messagebundle_ko-D8mIkPe1.js +0 -1
  399. package/dist/assets/messagebundle_ko-qoWc4ZGG.js +0 -1
  400. package/dist/assets/messagebundle_lt-BIEH02V4.js +0 -1
  401. package/dist/assets/messagebundle_lt-ruMxSuY-.js +0 -1
  402. package/dist/assets/messagebundle_lv-C2om7wu0.js +0 -1
  403. package/dist/assets/messagebundle_lv-Dfrbh1ci.js +0 -1
  404. package/dist/assets/messagebundle_mk-DHvZle6t.js +0 -1
  405. package/dist/assets/messagebundle_mk-l_Kubx1p.js +0 -1
  406. package/dist/assets/messagebundle_ms-CKCmj1p_.js +0 -1
  407. package/dist/assets/messagebundle_ms-IhSEK5ij.js +0 -1
  408. package/dist/assets/messagebundle_nl-BiIb6e5c.js +0 -1
  409. package/dist/assets/messagebundle_nl-DquG38Cj.js +0 -1
  410. package/dist/assets/messagebundle_no-CX23v_jg.js +0 -1
  411. package/dist/assets/messagebundle_no-DFdvykvP.js +0 -1
  412. package/dist/assets/messagebundle_pl-BAeue3mo.js +0 -1
  413. package/dist/assets/messagebundle_pl-iHE_prgN.js +0 -1
  414. package/dist/assets/messagebundle_pt-BpQnTLvl.js +0 -1
  415. package/dist/assets/messagebundle_pt-C_bG3Erm.js +0 -1
  416. package/dist/assets/messagebundle_pt_PT-CR7qXFK-.js +0 -1
  417. package/dist/assets/messagebundle_pt_PT-DyseXKQQ.js +0 -1
  418. package/dist/assets/messagebundle_ro-CHU1E6hv.js +0 -1
  419. package/dist/assets/messagebundle_ro-C_amsd63.js +0 -1
  420. package/dist/assets/messagebundle_ru-Cab4H6Ud.js +0 -1
  421. package/dist/assets/messagebundle_ru-D6JMraBp.js +0 -1
  422. package/dist/assets/messagebundle_sh-DusYn00L.js +0 -1
  423. package/dist/assets/messagebundle_sh-hThvw_lF.js +0 -1
  424. package/dist/assets/messagebundle_sk-BqiUMEcX.js +0 -1
  425. package/dist/assets/messagebundle_sk-CZHfFNQ_.js +0 -1
  426. package/dist/assets/messagebundle_sl-B79d3kfY.js +0 -1
  427. package/dist/assets/messagebundle_sl-SfAn6n6j.js +0 -1
  428. package/dist/assets/messagebundle_sr-4iz7n4Te.js +0 -1
  429. package/dist/assets/messagebundle_sr-DxELdG62.js +0 -1
  430. package/dist/assets/messagebundle_sv-CPOHCrxs.js +0 -1
  431. package/dist/assets/messagebundle_sv-i6GuWK0l.js +0 -1
  432. package/dist/assets/messagebundle_th-D-kPI3tt.js +0 -1
  433. package/dist/assets/messagebundle_th-D64J-JvN.js +0 -1
  434. package/dist/assets/messagebundle_tr-CuE9DqZT.js +0 -1
  435. package/dist/assets/messagebundle_tr-gTuGftNt.js +0 -1
  436. package/dist/assets/messagebundle_uk-C6JSX-jF.js +0 -1
  437. package/dist/assets/messagebundle_uk-IKxyo-LT.js +0 -1
  438. package/dist/assets/messagebundle_vi-BRdRT5L6.js +0 -1
  439. package/dist/assets/messagebundle_vi-rZGL12-x.js +0 -1
  440. package/dist/assets/messagebundle_zh_CN-L55Y4Dfs.js +0 -1
  441. package/dist/assets/messagebundle_zh_CN-ZalS15WG.js +0 -1
  442. package/dist/assets/messagebundle_zh_TW-BcMzZCW2.js +0 -1
  443. package/dist/assets/messagebundle_zh_TW-sRVDBYOx.js +0 -1
  444. package/dist/assets/parameters-bundle.css-8pAQYERs.js +0 -3
  445. package/dist/assets/parameters-bundle.css-B_KvbSAR.js +0 -2
  446. package/dist/assets/parameters-bundle.css-Ciey0vhA.js +0 -2
  447. package/dist/assets/parameters-bundle.css-D7Hj83QD.js +0 -2
  448. package/dist/assets/parameters-bundle.css-DJgsxqD8.js +0 -2
  449. package/dist/assets/parameters-bundle.css-DMVuljH3.js +0 -3
  450. package/dist/assets/parameters-bundle.css-DkHyiuRq.js +0 -3
  451. package/dist/assets/parameters-bundle.css-Dvgwa73x.js +0 -3
  452. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.d.ts +0 -3
  453. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js +0 -13
  454. package/dist/generated/templates/SecondaryNavigationItemTemplate.lit.js.map +0 -1
  455. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.d.ts +0 -3
  456. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js +0 -12
  457. package/dist/generated/templates/SecondaryNavigationSubItemTemplate.lit.js.map +0 -1
  458. package/dist/generated/templates/SecondaryNavigationTemplate.lit.d.ts +0 -3
  459. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js +0 -15
  460. package/dist/generated/templates/SecondaryNavigationTemplate.lit.js.map +0 -1
  461. package/dist/generated/templates/SideNavigationMobileTemplate.lit.d.ts +0 -3
  462. package/dist/generated/templates/SideNavigationMobileTemplate.lit.js +0 -10
  463. package/dist/generated/templates/SideNavigationMobileTemplate.lit.js.map +0 -1
  464. package/src/SecondaryNavigation.hbs +0 -87
  465. package/src/SecondaryNavigationItem.hbs +0 -68
  466. package/src/SecondaryNavigationSubItem.hbs +0 -47
  467. package/src/SideNavigationMobile.hbs +0 -41
  468. package/src/generated/templates/SecondaryNavigationItemTemplate.lit.ts +0 -17
  469. package/src/generated/templates/SecondaryNavigationSubItemTemplate.lit.ts +0 -16
  470. package/src/generated/templates/SecondaryNavigationTemplate.lit.ts +0 -19
  471. package/src/generated/templates/SideNavigationMobileTemplate.lit.ts +0 -14
@@ -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.58.0",
4
+ "version": "2.60.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.58.0",
4
+ "version": "2.60.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",
@@ -233,6 +233,15 @@ class UDExListGroupHeaderBase extends UDExListItemBase {
233
233
  }
234
234
 
235
235
  get singleCollapsibleHeaderRole(): string {
236
+ // In aria-activedescendant mode (SelectBox/CountrySelector) the HOST element
237
+ // carries the treeitem role + state (set via SearchableListBaseTemplate's
238
+ // hostAriaAttrs). The inner focusable div must then be presentational, otherwise
239
+ // it is a second treeitem nested inside the host treeitem with no owning
240
+ // tree/group — the "role not inside the required context" axe/SiteImprove error.
241
+ // Mirrors UDExListItem.roleItem, which is presentational under _useHostAriaRole.
242
+ if (this._useHostAriaRole) {
243
+ return "presentation";
244
+ }
236
245
  return this._treeMode ? "treeitem" : "button";
237
246
  }
238
247
 
@@ -85,6 +85,20 @@ function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
85
85
  // (aria-activedescendant, _useHostAriaRole) and non-tree modes, which keep the flat
86
86
  // structure with the content region emitted as a sibling by the template body.
87
87
  const nested = this.isTreeAccessibleRole && !this._useHostAriaRole;
88
+ // In aria-activedescendant mode (SelectBox) the HOST element is the treeitem and
89
+ // already carries aria-expanded + the accessible name. This inner div must then be
90
+ // presentational (singleCollapsibleHeaderRole) and must NOT duplicate those states,
91
+ // otherwise it is a second treeitem nested inside the host treeitem with no owning
92
+ // tree/group (axe/SiteImprove aria-required-parent). It stays focusable, though:
93
+ // clicking the collapsible-header body relies on it receiving DOM focus to redirect
94
+ // focus back to the combobox input — the same focusable, role="presentation" shape
95
+ // the list-item [part=item] divs already use. The real-focus (FilterMenu) path keeps
96
+ // the treeitem semantics plus controls/labelling on this div.
97
+ const headerAriaAttrs = this._useHostAriaRole ? {} : {
98
+ "aria-expanded": this.expanded,
99
+ "aria-controls": this.ariaControlsId,
100
+ "aria-labelledby": this.collapsibleHeaderLabelledBy,
101
+ };
88
102
  return (
89
103
  <div
90
104
  class={`udex-list__group-content ${nested ? "udex-list__group-content--nested " : ""}udex-list__group-header-wrap ${this.sizeClass}`}
@@ -93,9 +107,7 @@ function SingleGroupHeaderCollapsible(this: UDExListGroupHeader) {
93
107
  role={this.singleCollapsibleHeaderRole as AriaRole}
94
108
  tabIndex={0}
95
109
  onKeyDown={this.handleKeyDown}
96
- aria-expanded={this.expanded}
97
- aria-controls={this.ariaControlsId}
98
- aria-labelledby={this.collapsibleHeaderLabelledBy}
110
+ {...headerAriaAttrs}
99
111
  _tab-index={Number(this._effectiveTabIndex)}>
100
112
  {nested ? (
101
113
  <>
@@ -45,12 +45,13 @@ function activeRegionView(this: UDExMastheadCountrySelector) {
45
45
  )}
46
46
  <div class="udex-masthead-country-selector__list-container">
47
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">
48
+ <ul class="udex-masthead-country-selector__list udex-masthead-country-selector__list_countries">
49
49
  {this._activeCountries.map((country, index) => (
50
- <li role="none" key={index}>
50
+ <li key={index}>
51
51
  <UDExMastheadMenuItem
52
52
  class="udex-masthead-country-selector__item udex-masthead-country-selector__item_countries"
53
53
  onClick={this.handleCountryClick as any}
54
+ accessible-role="link"
54
55
  url={country.url}
55
56
  label={country.displayTitle}
56
57
  index={index}
@@ -25,7 +25,6 @@ export default function RatingIndicatorTemplate(this: UDExRatingIndicator) {
25
25
  aria-description={this._ariaDescription}
26
26
  tabindex={this.effectiveTabIndex}
27
27
  onFocusIn={this._onfocusin}
28
- onFocusOut={this._onfocusout}
29
28
  onClick={this._onclick}
30
29
  onKeyDown={this._onkeydown}
31
30
  title={this.ratingTooltip}
@@ -4,7 +4,7 @@ import customElement from "@ui5/webcomponents-base/dist/decorators/customElement
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
5
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
6
6
  import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
7
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
7
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
8
8
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
9
9
  import { isEscape } from "@ui5/webcomponents-base/dist/Keys.js";
10
10
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
@@ -16,7 +16,7 @@ import type UDExSecondaryNavigationItemBase from "./SecondaryNavigationItemBase.
16
16
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
17
17
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
18
18
  import { MORE } from "./generated/i18n/i18n-defaults.js";
19
- import SecondaryNavigationTemplate from "./generated/templates/SecondaryNavigationTemplate.lit.js";
19
+ import SecondaryNavigationTemplate from "./SecondaryNavigationTemplate.js";
20
20
  import { BreakpointUtils } from "./utils/Breakpoints.js";
21
21
  import parseArrayFromString from "./utils/parseArrayFromString.js";
22
22
  import AnalyticsName from "./types/AnalyticsName.js";
@@ -71,7 +71,7 @@ type UDExSecondaryNavigationMobileMenuOpenerClickEventDetail = {
71
71
  */
72
72
  @customElement({
73
73
  tag: "udex-secondary-navigation",
74
- renderer: litRender,
74
+ renderer: jsxRenderer,
75
75
  styles: [SecondaryNavigationCss],
76
76
  template: SecondaryNavigationTemplate,
77
77
  dependencies: [UDExSecondaryNavigationItem],
@@ -3,8 +3,7 @@ import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
3
  import slot from "@ui5/webcomponents-base/dist/decorators/slot-strict.js";
4
4
  import type { Slot } from "@ui5/webcomponents-base/dist/UI5Element.js";
5
5
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
6
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
7
- import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
6
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
8
7
  import {
9
8
  isEscape, isEnter, isSpace, isLeft, isRight, isUp, isDown, isHome, isEnd, isTabNext, isTabPrevious,
10
9
  } from "@ui5/webcomponents-base/dist/Keys.js";
@@ -13,9 +12,8 @@ import parseRelativeUnits from "./utils/parseRelativeUnits.js";
13
12
  import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
14
13
  import type { NavItem } from "./SecondaryNavigationItemBase.js";
15
14
  import UDExSecondaryNavigationItemBase from "./SecondaryNavigationItemBase.js";
16
- import "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
17
15
 
18
- import SecondaryNavigationItemTemplate from "./generated/templates/SecondaryNavigationItemTemplate.lit.js";
16
+ import SecondaryNavigationItemTemplate from "./SecondaryNavigationItemTemplate.js";
19
17
 
20
18
  // Styles
21
19
  import SecondaryNavigationItemCss from "./generated/themes/SecondaryNavigationItem.css.js";
@@ -54,10 +52,10 @@ type UDExSecondaryNavigationItemSubItemClickEventDetail = {
54
52
  */
55
53
  @customElement({
56
54
  tag: "udex-secondary-navigation-item",
57
- renderer: litRender,
55
+ renderer: jsxRenderer,
58
56
  styles: [SecondaryNavigationItemCss],
59
57
  template: SecondaryNavigationItemTemplate,
60
- dependencies: [UI5Icon, UDExSecondaryNavigationSubItem],
58
+ dependencies: [UDExSecondaryNavigationSubItem],
61
59
  })
62
60
 
63
61
  /**
@@ -2,7 +2,7 @@ import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import { isDesktop } from "@ui5/webcomponents-base/dist/Device.js";
3
3
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
4
4
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
5
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
5
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
6
6
  import type { ResizeObserverCallback } from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
7
7
  import ResizeHandler from "@ui5/webcomponents-base/dist/delegate/ResizeHandler.js";
8
8
  import { UDExTarget } from "./types/common.js";
@@ -30,7 +30,7 @@ export type NavItem = {
30
30
  * @public
31
31
  */
32
32
  @customElement({
33
- renderer: litRender,
33
+ renderer: jsxRenderer,
34
34
  })
35
35
 
36
36
  class UDExSecondaryNavigationItemBase extends UI5Element {
@@ -0,0 +1,80 @@
1
+ import type UDExSecondaryNavigationItem from "./SecondaryNavigationItem.js";
2
+ import UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
3
+ import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
4
+ import IconMode from "@ui5/webcomponents/dist/types/IconMode.js";
5
+ import slimArrowDownIcon from "@ui5/webcomponents-icons/dist/slim-arrow-down.js";
6
+
7
+ export default function SecondaryNavigationItemTemplate(this: UDExSecondaryNavigationItem) {
8
+ if (this.isLink) {
9
+ return (
10
+ <a
11
+ className="udex-secondary-navigation__item"
12
+ tabindex={0}
13
+ href={this.path}
14
+ target={this.target}
15
+ aria-current={(this.ariaCurrent || undefined) as "page" | undefined}
16
+ onKeyDown={this.handleItemLinkKeyDown}
17
+ onClick={this.fireNavItemClickEvent as any}
18
+ {...{ "active": this.isActive || undefined }}>
19
+ {this.itemLabel}
20
+ </a>
21
+ );
22
+ }
23
+
24
+ return (
25
+ <>
26
+ <button
27
+ className="udex-secondary-navigation__item"
28
+ tabindex={0}
29
+ aria-haspopup={this.hasNestedItems}
30
+ aria-expanded={this.isOpen}
31
+ aria-label={this.ariaLabel || undefined}
32
+ onKeyDown={this.handleItemEnterOrSpaceKeys}
33
+ onClick={this.openDropdown as any}
34
+ {...{ "active": this.isActive || undefined }}>
35
+ <span className="udex-secondary-navigation__item-text-wrap">
36
+ {this.itemLabel}
37
+ {this._subTitle && (
38
+ <span className="udex-secondary-navigation__item-sub-title">
39
+ {this._subTitle}
40
+ </span>
41
+ )}
42
+ {this.hasNestedItems && (
43
+ <UI5Icon
44
+ class="udex-secondary-navigation__item-icon"
45
+ name={slimArrowDownIcon}
46
+ mode={IconMode.Decorative}>
47
+ </UI5Icon>
48
+ )}
49
+ </span>
50
+ </button>
51
+ {this.isOpen && (
52
+ <div className="udex-secondary-navigation__dropdown">
53
+ <ul
54
+ className="udex-secondary-navigation__dropdown-list"
55
+ onKeyDown={this.handleSubItemKeyDown}>
56
+ {this._processedItems.map((item, index) => (
57
+ <li>
58
+ <UDExSecondaryNavigationSubItem
59
+ index={index}
60
+ onui5-sub-item-click={this.handleSubItemClick}
61
+ onui5-back-item-click={this.onBackClick}
62
+ is-back={item.isBack || undefined}
63
+ label={item.title}
64
+ mobile-link-title={item.mobileLinkTitle}
65
+ nestedItems={item.items ?? []}
66
+ path={item.path}
67
+ target={item.target}
68
+ active={item.active}>
69
+ </UDExSecondaryNavigationSubItem>
70
+ </li>
71
+ ))}
72
+ </ul>
73
+ <div onKeyDown={this.handleButtonsEscKey}>
74
+ <slot></slot>
75
+ </div>
76
+ </div>
77
+ )}
78
+ </>
79
+ );
80
+ }
@@ -1,16 +1,13 @@
1
1
  import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
2
2
  import property from "@ui5/webcomponents-base/dist/decorators/property.js";
3
3
  import event from "@ui5/webcomponents-base/dist/decorators/event-strict.js";
4
- import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
5
- import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
4
+ import jsxRenderer from "@ui5/webcomponents-base/renderer/JsxRenderer.js";
6
5
  import type { NavItem } from "./SecondaryNavigationItemBase.js";
7
6
  import UDExSecondaryNavigationItemBase from "./SecondaryNavigationItemBase.js";
8
7
  import i18n from "@ui5/webcomponents-base/dist/decorators/i18n.js";
9
8
  import type I18nBundle from "@ui5/webcomponents-base/dist/i18nBundle.js";
10
9
  import { BACK_BUTTON_LABEL } from "./generated/i18n/i18n-defaults.js";
11
- import "@ui5/webcomponents-icons/dist/slim-arrow-left.js";
12
- import "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
13
- import SecondaryNavigationSubItemTemplate from "./generated/templates/SecondaryNavigationSubItemTemplate.lit.js";
10
+ import SecondaryNavigationSubItemTemplate from "./SecondaryNavigationSubItemTemplate.js";
14
11
  import translate from "./utils/translate.js";
15
12
 
16
13
  // Styles
@@ -45,10 +42,9 @@ type UDExSecondaryNavigationSubItemBackClickEventDetail = {
45
42
  */
46
43
  @customElement({
47
44
  tag: "udex-secondary-navigation-sub-item",
48
- renderer: litRender,
45
+ renderer: jsxRenderer,
49
46
  styles: SecondaryNavigationSubItemCss,
50
47
  template: SecondaryNavigationSubItemTemplate,
51
- dependencies: [UI5Icon],
52
48
  })
53
49
 
54
50
  /**
@@ -0,0 +1,63 @@
1
+ import type UDExSecondaryNavigationSubItem from "./SecondaryNavigationSubItem.js";
2
+ import UI5Icon from "@ui5/webcomponents/dist/Icon.js";
3
+ import IconMode from "@ui5/webcomponents/dist/types/IconMode.js";
4
+ import slimArrowLeftIcon from "@ui5/webcomponents-icons/dist/slim-arrow-left.js";
5
+ import slimArrowRightIcon from "@ui5/webcomponents-icons/dist/slim-arrow-right.js";
6
+
7
+ export default function SecondaryNavigationSubItemTemplate(this: UDExSecondaryNavigationSubItem) {
8
+ if (this.isBack) {
9
+ return (
10
+ <button
11
+ className="udex-secondary-navigation__dropdown-item"
12
+ onClick={this.onBackItemClick as any}
13
+ aria-label={this.backButtonAriaLabel}
14
+ tabindex={0}
15
+ {...{ "is-back": "" }}>
16
+ <UI5Icon
17
+ class="udex-secondary-navigation__dropdown-icon udex-secondary-navigation__dropdown-icon_back"
18
+ name={slimArrowLeftIcon}
19
+ mode={IconMode.Decorative}>
20
+ </UI5Icon>
21
+ {this.itemLabel}
22
+ </button>
23
+ );
24
+ }
25
+
26
+ if (this.isButton) {
27
+ return (
28
+ <button
29
+ onClick={this.onItemClick as any}
30
+ aria-haspopup={this.hasItems || undefined}
31
+ {...{
32
+ "sub-active": this.isSubItemActive || undefined,
33
+ "active": this.active || undefined,
34
+ }}
35
+ aria-label={this.label || undefined}
36
+ tabindex={0}
37
+ aria-current={(this.ariaCurrent || undefined) as "page" | undefined}
38
+ className="udex-secondary-navigation__dropdown-item">
39
+ {this.itemLabel}
40
+ {this.hasItems && (
41
+ <UI5Icon
42
+ class="udex-secondary-navigation__dropdown-icon"
43
+ name={slimArrowRightIcon}
44
+ mode={IconMode.Decorative}>
45
+ </UI5Icon>
46
+ )}
47
+ </button>
48
+ );
49
+ }
50
+
51
+ return (
52
+ <a
53
+ className="udex-secondary-navigation__dropdown-item"
54
+ onClick={this.onItemClick as any}
55
+ href={this.path}
56
+ target={this.target}
57
+ tabindex={0}
58
+ aria-current={(this.ariaCurrent || undefined) as "page" | undefined}
59
+ {...{ "active": this.active || undefined }}>
60
+ {this.itemLabel}
61
+ </a>
62
+ );
63
+ }
@@ -0,0 +1,90 @@
1
+ import type UDExSecondaryNavigation from "./SecondaryNavigation.js";
2
+ import UDExSecondaryNavigationItem from "./SecondaryNavigationItem.js";
3
+
4
+ export default function SecondaryNavigationTemplate(this: UDExSecondaryNavigation) {
5
+ return (
6
+ <div className={this.rootClass}>
7
+ {this.hasBreadcrumbsSlot && (
8
+ <div className="udex-secondary-navigation__breadcrumbs">
9
+ <slot name="breadcrumbs"></slot>
10
+ </div>
11
+ )}
12
+ <div className="udex-secondary-navigation__holder">
13
+ {this.heading.length > 0 && (
14
+ <div className="udex-secondary-navigation__heading">
15
+ {this.headingHref.length > 0 ? (
16
+ <a
17
+ className="udex-secondary-navigation__title"
18
+ tabindex={0}
19
+ onClick={this.handleHeadingClick as any}
20
+ href={this.headingHref}>
21
+ {this.heading}
22
+ </a>
23
+ ) : (
24
+ <span className="udex-secondary-navigation__title">{this.heading}</span>
25
+ )}
26
+ </div>
27
+ )}
28
+ <nav className="udex-secondary-navigation__wrap">
29
+ <ul
30
+ className="udex-secondary-navigation__list"
31
+ onKeyDown={this.handleKeyDown}>
32
+ {this.visibleItems.map((item, index) => (
33
+ <li className="udex-secondary-navigation__list-item">
34
+ <UDExSecondaryNavigationItem
35
+ index={index}
36
+ active={item.active}
37
+ path={item.path}
38
+ label={item.title}
39
+ mobile-link-title={item.mobileLinkTitle}
40
+ target={item.target}
41
+ subItems={item.items ?? []}
42
+ onui5-sub-item-click={this.handleSubItemClick}
43
+ onui5-nav-item-click={this.handleItemClick}
44
+ {...{ "_nav-items-length": this.visibleItems.length }}>
45
+ </UDExSecondaryNavigationItem>
46
+ </li>
47
+ ))}
48
+ {this._showMoreButton && (
49
+ <li className="udex-secondary-navigation__list-item">
50
+ <UDExSecondaryNavigationItem
51
+ index={this.visibleItems.length}
52
+ onui5-sub-item-click={this.handleSubItemClick}
53
+ onui5-nav-item-click={this.handleItemClick}
54
+ label={this.moreButtonText}
55
+ subItems={this._overflowItems}
56
+ {...{ "_nav-items-length": this.visibleItems.length }}>
57
+ </UDExSecondaryNavigationItem>
58
+ </li>
59
+ )}
60
+ </ul>
61
+ {this.hasDesktopButtonsSlot && (
62
+ <div className="udex-secondary-navigation__buttons">
63
+ <slot name="buttons"></slot>
64
+ </div>
65
+ )}
66
+ </nav>
67
+ </div>
68
+ <UDExSecondaryNavigationItem
69
+ class="udex-secondary-navigation__mobile-nav"
70
+ role="button"
71
+ aria-label={this.mobileMenuOpenerAriaLabel}
72
+ label={this.heading}
73
+ mobile-link-title={this.title}
74
+ onui5-nav-item-click={this.handleMobileMenuOpenerClick}
75
+ onui5-sub-item-click={this.handleSubItemClick}
76
+ onKeyDown={this.handleKeyDown}
77
+ subItems={this.parsedItems}
78
+ {...{
79
+ "_is-mobile-menu-opener": "",
80
+ "_max-height": this.maxDropdownHeight
81
+ }}>
82
+ {this.hasMobileButtonsSlot && (
83
+ <div className="udex-secondary-navigation__buttons" onClick={this.handleMobileButtonsClick}>
84
+ <slot name="buttons"></slot>
85
+ </div>
86
+ )}
87
+ </UDExSecondaryNavigationItem>
88
+ </div>
89
+ );
90
+ }
package/src/SelectBase.ts CHANGED
@@ -353,6 +353,31 @@ class UDExSelectBase extends UDExSearchableListBase {
353
353
  this._setActiveDescendant(items[firstIndex], false);
354
354
  }
355
355
 
356
+ /**
357
+ * Establishes the initial aria-activedescendant when the dropdown opens, without moving
358
+ * DOM focus. In SingleSelect mode the currently selected item is activated so reopening
359
+ * restores focus to it; when nothing is selected (or in other modes) the first navigable
360
+ * item is activated instead.
361
+ */
362
+ _activateSelectedOrFirstItem(): void {
363
+ const items = this._list?.getKeyboardNavigationItems();
364
+ if (!items?.length) {
365
+ return;
366
+ }
367
+
368
+ const firstIndex = (items[0]?.nonInteractive && !items[0]?.collapsible) ? 1 : 0;
369
+ const selectedIndex = this.modeSingleSelect
370
+ ? items.findIndex(item => item.selected && !item.isGroup)
371
+ : -1;
372
+ const targetIndex = selectedIndex >= 0 ? selectedIndex : firstIndex;
373
+
374
+ this._list.setTabIndexByIndex(items, targetIndex);
375
+ this._setActiveDescendant(items[targetIndex], false);
376
+ if (this.showImageFlags) {
377
+ this.handleImagePosition(items, targetIndex);
378
+ }
379
+ }
380
+
356
381
  /**
357
382
  * Navigates to the item at the given index, updating aria-activedescendant and _selectedOption.
358
383
  */
@@ -490,48 +515,6 @@ class UDExSelectBase extends UDExSearchableListBase {
490
515
  this._navigateToIndex(items, firstIndex);
491
516
  }
492
517
 
493
- handleDownKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {
494
- const nextIndex = currentSelectedIndex + 1;
495
- const nextSelectIndex = nextIndex > lastItemIndex ? 0 : nextIndex;
496
- const isNonInteractive = items[nextSelectIndex].nonInteractive && !items[nextSelectIndex].collapsible;
497
-
498
- if (isNonInteractive) {
499
- const skipIndex = nextSelectIndex + 1 > lastItemIndex ? 0 : nextSelectIndex + 1;
500
- this._selectedOption = items[skipIndex].label;
501
- if (this.showImageFlags) {
502
- this.handleImagePosition(items, skipIndex);
503
- }
504
- return;
505
- }
506
-
507
- this._selectedOption = items[nextSelectIndex].label;
508
-
509
- if (this.showImageFlags) {
510
- this.handleImagePosition(items, nextSelectIndex);
511
- }
512
- }
513
-
514
- handleUpKeyPress(items: UDExListItemBase[], currentSelectedIndex: number, lastItemIndex: number) {
515
- const prevIndex = currentSelectedIndex - 1;
516
- const previousSelectIndex = prevIndex < 0 ? lastItemIndex : prevIndex;
517
- const isNonInteractive = items[previousSelectIndex].nonInteractive && !items[previousSelectIndex].collapsible;
518
-
519
- if (isNonInteractive) {
520
- const skipIndex = previousSelectIndex === 0 ? lastItemIndex : previousSelectIndex - 1;
521
- this._selectedOption = items[skipIndex].label;
522
- if (this.showImageFlags) {
523
- this.handleImagePosition(items, skipIndex);
524
- }
525
- return;
526
- }
527
-
528
- this._selectedOption = items[previousSelectIndex].label;
529
-
530
- if (this.showImageFlags) {
531
- this.handleImagePosition(items, previousSelectIndex);
532
- }
533
- }
534
-
535
518
  handleLetterKeyPress(e: KeyboardEvent) {
536
519
  e.stopPropagation();
537
520
  e.preventDefault();
@@ -638,10 +621,7 @@ class UDExSelectBase extends UDExSearchableListBase {
638
621
  if (isDownAndPopoverClosed) {
639
622
  e.preventDefault();
640
623
  this.openDropdown();
641
- this._activateFirstItem();
642
- if (this.showImageFlags) {
643
- this.handleImagePosition(items, firstIndex);
644
- }
624
+ this._activateSelectedOrFirstItem();
645
625
  return;
646
626
  }
647
627
 
@@ -799,6 +779,9 @@ class UDExSelectBase extends UDExSearchableListBase {
799
779
  this._expandCollapsedGroupsWithSelection();
800
780
  return renderFinished();
801
781
  }).then(() => {
782
+ if (!this._activeDescendantItem) {
783
+ this._activateSelectedOrFirstItem();
784
+ }
802
785
  this._handleDropdownScroll();
803
786
  this._announceCurrentOrFirst();
804
787
  }).catch(() => {});