@sapudex/web-components 2.41.0 → 2.43.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 (435) hide show
  1. package/config/wdio.conf.cjs +18 -2
  2. package/cypress/specs/Checkbox.cy.tsx +1 -1
  3. package/cypress/specs/FilterMenu.cy.tsx +181 -0
  4. package/cypress/specs/MessageStrip.cy.tsx +77 -0
  5. package/cypress/specs/Search.cy.tsx +20 -0
  6. package/cypress/specs/SelectBox.cy.tsx +449 -1
  7. package/cypress/specs/Toast.cy.tsx +6 -9
  8. package/cypress.config.ts +10 -0
  9. package/dist/MastheadCountrySelector.d.ts +5 -7
  10. package/dist/MastheadCountrySelector.js +17 -64
  11. package/dist/MastheadCountrySelector.js.map +1 -1
  12. package/dist/MessageStrip.d.ts +25 -0
  13. package/dist/MessageStrip.js +16 -4
  14. package/dist/MessageStrip.js.map +1 -1
  15. package/dist/Search.d.ts +6 -0
  16. package/dist/Search.js +3 -0
  17. package/dist/Search.js.map +1 -1
  18. package/dist/SearchTemplate.js +1 -1
  19. package/dist/SearchTemplate.js.map +1 -1
  20. package/dist/SearchableListBase.d.ts +15 -1
  21. package/dist/SearchableListBase.js +32 -4
  22. package/dist/SearchableListBase.js.map +1 -1
  23. package/dist/SearchableListBaseTemplate.js +3 -3
  24. package/dist/SearchableListBaseTemplate.js.map +1 -1
  25. package/dist/SelectBox.d.ts +1 -1
  26. package/dist/SelectBox.js +17 -13
  27. package/dist/SelectBox.js.map +1 -1
  28. package/dist/SelectBoxItem.d.ts +53 -0
  29. package/dist/SelectBoxItem.js +40 -1
  30. package/dist/SelectBoxItem.js.map +1 -1
  31. package/dist/Tag.d.ts +1 -0
  32. package/dist/Tag.js +6 -0
  33. package/dist/Tag.js.map +1 -1
  34. package/dist/TagTemplate.js +1 -1
  35. package/dist/TagTemplate.js.map +1 -1
  36. package/dist/assets/{InputSuggestions-BSg7bjcx.js → InputSuggestions-DorMeMJC.js} +2 -2
  37. package/dist/assets/ListItemStandardExpandableTextTemplate-BoavHZKO.js +3 -0
  38. package/dist/assets/{bundle.esm-I7iOjLgn.js → bundle.esm-Bji3bkxT.js} +305 -304
  39. package/dist/assets/messagebundle_ar-BUmieu9B.js +1 -0
  40. package/dist/assets/messagebundle_ar-DcH18L3h.js +1 -0
  41. package/dist/assets/messagebundle_ar-Ic4ckTUt.js +1 -0
  42. package/dist/assets/messagebundle_bg-BOgOglXh.js +1 -0
  43. package/dist/assets/messagebundle_bg-CADHX0Gg.js +1 -0
  44. package/dist/assets/messagebundle_bg-dZrlFeKZ.js +1 -0
  45. package/dist/assets/messagebundle_ca-2bFyG5Ty.js +1 -0
  46. package/dist/assets/messagebundle_ca-B2inwHsb.js +1 -0
  47. package/dist/assets/messagebundle_ca-hDpK1GqB.js +1 -0
  48. package/dist/assets/messagebundle_cnr-CSmWG9_V.js +1 -0
  49. package/dist/assets/messagebundle_cnr-DZsc1R1r.js +1 -0
  50. package/dist/assets/messagebundle_cnr-luAWCJP0.js +1 -0
  51. package/dist/assets/messagebundle_cs-BL77wptv.js +1 -0
  52. package/dist/assets/messagebundle_cs-BZXuIszN.js +1 -0
  53. package/dist/assets/messagebundle_cs-Dso9kSig.js +1 -0
  54. package/dist/assets/messagebundle_cy-B66O9oBx.js +1 -0
  55. package/dist/assets/messagebundle_cy-BSiMgZtA.js +1 -0
  56. package/dist/assets/messagebundle_cy-ZlqQuGUz.js +1 -0
  57. package/dist/assets/messagebundle_da-C1CzvcXW.js +1 -0
  58. package/dist/assets/messagebundle_da-CAPY9nnT.js +1 -0
  59. package/dist/assets/messagebundle_da-DTOADw3Y.js +1 -0
  60. package/dist/assets/messagebundle_de-CSl05u5u.js +1 -0
  61. package/dist/assets/messagebundle_de-DHBsUEIt.js +1 -0
  62. package/dist/assets/messagebundle_de-DWsuh-jj.js +1 -0
  63. package/dist/assets/messagebundle_el-ByL7ikpl.js +1 -0
  64. package/dist/assets/messagebundle_el-CwjQKEGb.js +1 -0
  65. package/dist/assets/messagebundle_el-rU4RAHJr.js +1 -0
  66. package/dist/assets/messagebundle_en-4Wpx2jqf.js +1 -0
  67. package/dist/assets/messagebundle_en-Bi068VCa.js +1 -0
  68. package/dist/assets/messagebundle_en-C3jnlBnZ.js +1 -0
  69. package/dist/assets/messagebundle_en_GB-BEZ3LbT5.js +1 -0
  70. package/dist/assets/messagebundle_en_GB-DKEddq_J.js +1 -0
  71. package/dist/assets/messagebundle_en_GB-DgUUCHvU.js +1 -0
  72. package/dist/assets/messagebundle_en_US_sappsd-BN4GAQFk.js +1 -0
  73. package/dist/assets/messagebundle_en_US_sappsd-Bc-vQnEr.js +1 -0
  74. package/dist/assets/messagebundle_en_US_sappsd-CEGC_XRQ.js +1 -0
  75. package/dist/assets/messagebundle_en_US_saprigi--hAUIdWq.js +1 -0
  76. package/dist/assets/messagebundle_en_US_saprigi-C7t8yAP4.js +1 -0
  77. package/dist/assets/messagebundle_en_US_saprigi-C_gnMw05.js +1 -0
  78. package/dist/assets/messagebundle_en_US_saptrc-CIbQNg_d.js +1 -0
  79. package/dist/assets/messagebundle_en_US_saptrc-DY0WM5Yp.js +1 -0
  80. package/dist/assets/messagebundle_en_US_saptrc-aeJaPF-Z.js +1 -0
  81. package/dist/assets/messagebundle_es-BHY_U2xi.js +1 -0
  82. package/dist/assets/messagebundle_es-CjAQjgPh.js +1 -0
  83. package/dist/assets/messagebundle_es-vhzI0nML.js +1 -0
  84. package/dist/assets/messagebundle_es_MX-BsU5E2lt.js +1 -0
  85. package/dist/assets/messagebundle_es_MX-DjJ15Ns4.js +1 -0
  86. package/dist/assets/messagebundle_es_MX-DmINMi1e.js +1 -0
  87. package/dist/assets/messagebundle_et-CGVYNV2t.js +1 -0
  88. package/dist/assets/messagebundle_et-CpVk1Xin.js +1 -0
  89. package/dist/assets/messagebundle_et-DLssZHh4.js +1 -0
  90. package/dist/assets/messagebundle_fi-DTWy4DwI.js +1 -0
  91. package/dist/assets/messagebundle_fi-DmGIB0sc.js +1 -0
  92. package/dist/assets/messagebundle_fi-YfxQ0aOR.js +1 -0
  93. package/dist/assets/messagebundle_fr-BFMaF4AX.js +1 -0
  94. package/dist/assets/messagebundle_fr-BZ-VJ002.js +1 -0
  95. package/dist/assets/messagebundle_fr-CQZYkI8Y.js +1 -0
  96. package/dist/assets/messagebundle_fr_CA-B5jFryz1.js +1 -0
  97. package/dist/assets/messagebundle_fr_CA-BPZVCoKy.js +1 -0
  98. package/dist/assets/messagebundle_fr_CA-hZ2LGeU2.js +1 -0
  99. package/dist/assets/messagebundle_hi-92qX3F1U.js +1 -0
  100. package/dist/assets/messagebundle_hi-B-Bg9gCp.js +1 -0
  101. package/dist/assets/messagebundle_hi-DFXk6QGw.js +1 -0
  102. package/dist/assets/messagebundle_hr-CUaLQBjG.js +1 -0
  103. package/dist/assets/messagebundle_hr-DZwNzpwV.js +1 -0
  104. package/dist/assets/messagebundle_hr-selqadPV.js +1 -0
  105. package/dist/assets/messagebundle_hu-BtupF5BC.js +1 -0
  106. package/dist/assets/messagebundle_hu-CJuQbTfi.js +1 -0
  107. package/dist/assets/messagebundle_hu-D_rF_cCp.js +1 -0
  108. package/dist/assets/messagebundle_id-8SuSwuaC.js +1 -0
  109. package/dist/assets/messagebundle_id-Bvmpblmf.js +1 -0
  110. package/dist/assets/messagebundle_id-P3JSHcmu.js +1 -0
  111. package/dist/assets/messagebundle_it-BINon06x.js +1 -0
  112. package/dist/assets/messagebundle_it-CXnIcrL4.js +1 -0
  113. package/dist/assets/messagebundle_it-CkVp56-y.js +1 -0
  114. package/dist/assets/messagebundle_iw-BzixLMjm.js +1 -0
  115. package/dist/assets/messagebundle_iw-C2PtOYbW.js +1 -0
  116. package/dist/assets/messagebundle_iw-Cb6M5XGj.js +1 -0
  117. package/dist/assets/messagebundle_ja-DKtRR53-.js +1 -0
  118. package/dist/assets/messagebundle_ja-DQ5MCYLw.js +1 -0
  119. package/dist/assets/messagebundle_ja-J8eqPj7N.js +1 -0
  120. package/dist/assets/messagebundle_kk-B-ayCgR1.js +1 -0
  121. package/dist/assets/messagebundle_kk-BIeQLfxu.js +1 -0
  122. package/dist/assets/messagebundle_kk-DIOzUeHN.js +1 -0
  123. package/dist/assets/messagebundle_ko-B9_Ss1b5.js +1 -0
  124. package/dist/assets/messagebundle_ko-BLMVyKh5.js +1 -0
  125. package/dist/assets/messagebundle_ko-iA71apTw.js +1 -0
  126. package/dist/assets/messagebundle_lt-CbB2wq2X.js +1 -0
  127. package/dist/assets/messagebundle_lt-DFh-jl0O.js +1 -0
  128. package/dist/assets/messagebundle_lt-RzsUvi_1.js +1 -0
  129. package/dist/assets/messagebundle_lv-6quK3a4e.js +1 -0
  130. package/dist/assets/messagebundle_lv-BQO-79MM.js +1 -0
  131. package/dist/assets/messagebundle_lv-C3DWg_wu.js +1 -0
  132. package/dist/assets/messagebundle_mk-2lJhEAgI.js +1 -0
  133. package/dist/assets/messagebundle_mk-Cv-rDpUc.js +1 -0
  134. package/dist/assets/messagebundle_mk-o-SATTof.js +1 -0
  135. package/dist/assets/messagebundle_ms-3Zupz0mA.js +1 -0
  136. package/dist/assets/messagebundle_ms-BOQc8ZIR.js +1 -0
  137. package/dist/assets/messagebundle_ms-DnacCQys.js +1 -0
  138. package/dist/assets/messagebundle_nl-BVNQuB_K.js +1 -0
  139. package/dist/assets/messagebundle_nl-C2lsDY4p.js +1 -0
  140. package/dist/assets/messagebundle_nl-DTnHMKsv.js +1 -0
  141. package/dist/assets/messagebundle_no-BQMw-opH.js +1 -0
  142. package/dist/assets/messagebundle_no-CsErf2Px.js +1 -0
  143. package/dist/assets/messagebundle_no-OUP0Fraw.js +1 -0
  144. package/dist/assets/messagebundle_pl-BQW6qi8p.js +1 -0
  145. package/dist/assets/messagebundle_pl-Cc6OWGyn.js +1 -0
  146. package/dist/assets/messagebundle_pl-PZiQh0Xy.js +1 -0
  147. package/dist/assets/messagebundle_pt-BlqCbnEN.js +1 -0
  148. package/dist/assets/messagebundle_pt-DEVzhHU_.js +1 -0
  149. package/dist/assets/messagebundle_pt-DKJk4Ohl.js +1 -0
  150. package/dist/assets/messagebundle_pt_PT-BV1ec-3v.js +1 -0
  151. package/dist/assets/messagebundle_pt_PT-CL5hgi4Q.js +1 -0
  152. package/dist/assets/messagebundle_pt_PT-DekHH4S1.js +1 -0
  153. package/dist/assets/messagebundle_ro-D3lrScIy.js +1 -0
  154. package/dist/assets/messagebundle_ro-fp3znc96.js +1 -0
  155. package/dist/assets/messagebundle_ro-mHJ-r7ez.js +1 -0
  156. package/dist/assets/messagebundle_ru-BD3A7Zsx.js +1 -0
  157. package/dist/assets/messagebundle_ru-CJECAckd.js +1 -0
  158. package/dist/assets/messagebundle_ru-D7z2G7DP.js +1 -0
  159. package/dist/assets/messagebundle_sh-BoaW1EWP.js +1 -0
  160. package/dist/assets/messagebundle_sh-C4BjzhRr.js +1 -0
  161. package/dist/assets/messagebundle_sh-DXM15u1O.js +1 -0
  162. package/dist/assets/messagebundle_sk-Bjnhb-_D.js +1 -0
  163. package/dist/assets/messagebundle_sk-BxDvjXxb.js +1 -0
  164. package/dist/assets/messagebundle_sk-Clc7AaEc.js +1 -0
  165. package/dist/assets/messagebundle_sl-Bi9mgI6m.js +1 -0
  166. package/dist/assets/messagebundle_sl-Bn5tocYe.js +1 -0
  167. package/dist/assets/messagebundle_sl-DJj-8V96.js +1 -0
  168. package/dist/assets/messagebundle_sr-B9TYgxO1.js +1 -0
  169. package/dist/assets/messagebundle_sr-Dsio4Srd.js +1 -0
  170. package/dist/assets/messagebundle_sr-SCdbG5fp.js +1 -0
  171. package/dist/assets/messagebundle_sr-w0tnyPzk.js +1 -0
  172. package/dist/assets/messagebundle_sv-B-KDauoz.js +1 -0
  173. package/dist/assets/messagebundle_sv-DCsGSCfn.js +1 -0
  174. package/dist/assets/messagebundle_sv-DQ0kE9XJ.js +1 -0
  175. package/dist/assets/messagebundle_sv-DWlY9RTQ.js +1 -0
  176. package/dist/assets/messagebundle_th-BmHTcbhR.js +1 -0
  177. package/dist/assets/messagebundle_th-D8qcTN_b.js +1 -0
  178. package/dist/assets/messagebundle_th-rPoqCsGu.js +1 -0
  179. package/dist/assets/messagebundle_tr-CyN3jcUR.js +1 -0
  180. package/dist/assets/messagebundle_tr-DIqpdL9d.js +1 -0
  181. package/dist/assets/messagebundle_tr-DOeCmUdx.js +1 -0
  182. package/dist/assets/{messagebundle_tr-CKXLfeIL.js → messagebundle_tr-Dw7toCgs.js} +1 -1
  183. package/dist/assets/messagebundle_uk-C7_nVJ9T.js +1 -0
  184. package/dist/assets/messagebundle_uk-CycQpntH.js +1 -0
  185. package/dist/assets/messagebundle_uk-GmdhsMsP.js +1 -0
  186. package/dist/assets/messagebundle_uk-L4kmWPZY.js +1 -0
  187. package/dist/assets/messagebundle_vi-CKYiMebw.js +1 -0
  188. package/dist/assets/messagebundle_vi-D1-iiI56.js +1 -0
  189. package/dist/assets/messagebundle_vi-wJJaYHj7.js +1 -0
  190. package/dist/assets/messagebundle_zh_CN-CHwH3F3-.js +1 -0
  191. package/dist/assets/messagebundle_zh_CN-CIR_auXr.js +1 -0
  192. package/dist/assets/messagebundle_zh_CN-D3UfRQq7.js +1 -0
  193. package/dist/assets/messagebundle_zh_CN-Dv1_J1hu.js +1 -0
  194. package/dist/assets/messagebundle_zh_TW-CG9O1F7p.js +1 -0
  195. package/dist/assets/messagebundle_zh_TW-CQChC5zV.js +1 -0
  196. package/dist/assets/messagebundle_zh_TW-FO0BCkub.js +1 -0
  197. package/dist/assets/{messagebundle_zh_TW-Bok4mzbM.js → messagebundle_zh_TW-qc8ADbuf.js} +1 -1
  198. package/dist/assets/{parameters-bundle.css-B89Fdm1T.js → parameters-bundle.css-1rRun2sT.js} +8 -0
  199. package/dist/assets/parameters-bundle.css-BA_cQYjH.js +2 -0
  200. package/dist/assets/parameters-bundle.css-BBLk8nbD.js +3 -0
  201. package/dist/assets/{parameters-bundle.css-BRUthQQI.js → parameters-bundle.css-BBdTemt8.js} +15 -15
  202. package/dist/assets/parameters-bundle.css-BCB-2TTY.js +2 -0
  203. package/dist/assets/parameters-bundle.css-BQB0pxRT.js +2 -0
  204. package/dist/assets/parameters-bundle.css-BVXLOlqR.js +2 -0
  205. package/dist/assets/parameters-bundle.css-B_rCq3Nc.js +3 -0
  206. package/dist/assets/{parameters-bundle.css-BWPCcnui.js → parameters-bundle.css-BiSP-Gf0.js} +10 -2
  207. package/dist/assets/parameters-bundle.css-C90ijvPq.js +2 -0
  208. package/dist/assets/{parameters-bundle.css-CXAGQb2_.js → parameters-bundle.css-CKNWL0nG.js} +10 -2
  209. package/dist/assets/parameters-bundle.css-CTIq7sCI.js +2 -0
  210. package/dist/assets/parameters-bundle.css-CTw0R0y7.js +2 -0
  211. package/dist/assets/parameters-bundle.css-CV2FCAf_.js +3 -0
  212. package/dist/assets/parameters-bundle.css-CWfGvXBZ.js +2 -0
  213. package/dist/assets/parameters-bundle.css-CX7V5RGm.js +3 -0
  214. package/dist/assets/parameters-bundle.css-D9AHurfl.js +2 -0
  215. package/dist/assets/parameters-bundle.css-DENVM9pb.js +3 -0
  216. package/dist/assets/parameters-bundle.css-DHLZEUsz.js +3 -0
  217. package/dist/assets/{parameters-bundle.css-CaKlToMx.js → parameters-bundle.css-DH_wndOj.js} +6 -6
  218. package/dist/assets/parameters-bundle.css-DUAp19rB.js +3 -0
  219. package/dist/assets/{parameters-bundle.css-Bbpzo3n0.js → parameters-bundle.css-DUGC7SPT.js} +8 -0
  220. package/dist/assets/parameters-bundle.css-DXuX1n-u.js +2 -0
  221. package/dist/assets/{parameters-bundle.css-DICk53PA.js → parameters-bundle.css-Dd5ajhZR.js} +10 -2
  222. package/dist/assets/parameters-bundle.css-Dp55UvXM.js +3 -0
  223. package/dist/assets/parameters-bundle.css-DpJfefgg.js +3 -0
  224. package/dist/assets/{parameters-bundle.css-DD29SCx8.js → parameters-bundle.css-DuHP0Q5Y.js} +13 -12
  225. package/dist/assets/parameters-bundle.css-YNYQDxyY.js +2 -0
  226. package/dist/assets/parameters-bundle.css-tevTlrPX.js +2 -0
  227. package/dist/assets/{parameters-bundle.css-DPvcwVIm.js → parameters-bundle.css-yvuwi247.js} +5 -5
  228. package/dist/css/themes/List.css +1 -1
  229. package/dist/css/themes/ListGroupHeader.css +1 -1
  230. package/dist/css/themes/MastheadMenuItem.css +1 -1
  231. package/dist/css/themes/SearchableList.css +1 -1
  232. package/dist/css/themes/Wizard.css +1 -1
  233. package/dist/css/themes/WizardTab.css +1 -1
  234. package/dist/custom-elements-internal.json +545 -0
  235. package/dist/custom-elements.json +551 -4
  236. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -1
  237. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -1
  238. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -1
  239. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -1
  240. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -1
  241. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -1
  242. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js +5 -5
  243. package/dist/generated/templates/ListGroupHeaderTemplate.lit.js.map +1 -1
  244. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js +1 -1
  245. package/dist/generated/templates/MastheadCountrySelectorTemplate.lit.js.map +1 -1
  246. package/dist/generated/themes/List.css.d.ts +1 -1
  247. package/dist/generated/themes/List.css.js +1 -1
  248. package/dist/generated/themes/List.css.js.map +1 -1
  249. package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
  250. package/dist/generated/themes/ListGroupHeader.css.js +1 -1
  251. package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
  252. package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
  253. package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
  254. package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
  255. package/dist/generated/themes/SearchableList.css.d.ts +1 -1
  256. package/dist/generated/themes/SearchableList.css.js +1 -1
  257. package/dist/generated/themes/SearchableList.css.js.map +1 -1
  258. package/dist/generated/themes/Wizard.css.d.ts +1 -1
  259. package/dist/generated/themes/Wizard.css.js +1 -1
  260. package/dist/generated/themes/Wizard.css.js.map +1 -1
  261. package/dist/generated/themes/WizardTab.css.d.ts +1 -1
  262. package/dist/generated/themes/WizardTab.css.js +1 -1
  263. package/dist/generated/themes/WizardTab.css.js.map +1 -1
  264. package/dist/messagebundle_sr.properties +128 -0
  265. package/dist/messagebundle_sv.properties +126 -0
  266. package/dist/messagebundle_tr.properties +126 -0
  267. package/dist/messagebundle_uk.properties +128 -0
  268. package/dist/messagebundle_zh_CN.properties +126 -0
  269. package/dist/messagebundle_zh_TW.properties +126 -0
  270. package/dist/utils/sanitizeString.js +1 -4
  271. package/dist/utils/sanitizeString.js.map +1 -1
  272. package/dist/vscode.html-custom-data.json +137 -0
  273. package/dist/web-types.json +217 -1
  274. package/package.json +9 -9
  275. package/src/ListGroupHeader.hbs +4 -4
  276. package/src/MastheadCountrySelector.hbs +1 -1
  277. package/src/MastheadCountrySelector.ts +20 -80
  278. package/src/MessageStrip.ts +37 -4
  279. package/src/Search.ts +9 -0
  280. package/src/SearchTemplate.tsx +1 -0
  281. package/src/SearchableListBase.ts +31 -4
  282. package/src/SearchableListBaseTemplate.tsx +13 -1
  283. package/src/SelectBox.ts +19 -14
  284. package/src/SelectBoxItem.ts +70 -1
  285. package/src/Tag.ts +8 -0
  286. package/src/TagTemplate.tsx +1 -0
  287. package/src/generated/templates/ListGroupHeaderTemplate.lit.ts +4 -4
  288. package/src/generated/templates/MastheadCountrySelectorTemplate.lit.ts +1 -1
  289. package/src/generated/themes/List.css.ts +1 -1
  290. package/src/generated/themes/ListGroupHeader.css.ts +1 -1
  291. package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
  292. package/src/generated/themes/SearchableList.css.ts +1 -1
  293. package/src/generated/themes/Wizard.css.ts +1 -1
  294. package/src/generated/themes/WizardTab.css.ts +1 -1
  295. package/src/i18n/messagebundle_sr.properties +128 -0
  296. package/src/i18n/messagebundle_sv.properties +126 -0
  297. package/src/i18n/messagebundle_tr.properties +126 -0
  298. package/src/i18n/messagebundle_uk.properties +128 -0
  299. package/src/i18n/messagebundle_zh_CN.properties +126 -0
  300. package/src/i18n/messagebundle_zh_TW.properties +126 -0
  301. package/src/themes/List.css +1 -2
  302. package/src/themes/ListGroupHeader.css +10 -12
  303. package/src/themes/MastheadMenuItem.css +12 -4
  304. package/src/themes/SearchableList.css +0 -1
  305. package/src/themes/Wizard.css +7 -0
  306. package/src/themes/WizardTab.css +23 -0
  307. package/src/utils/sanitizeString.ts +1 -4
  308. package/dist/assets/ListItemStandardExpandableTextTemplate-CCEQur_J.js +0 -3
  309. package/dist/assets/messagebundle_ar-B_vGELqE.js +0 -1
  310. package/dist/assets/messagebundle_ar-ql9y8H7i.js +0 -1
  311. package/dist/assets/messagebundle_bg-DahjEq9-.js +0 -1
  312. package/dist/assets/messagebundle_bg-DirTSiBs.js +0 -1
  313. package/dist/assets/messagebundle_ca-CLoGjgOQ.js +0 -1
  314. package/dist/assets/messagebundle_ca-Dt0eXv4b.js +0 -1
  315. package/dist/assets/messagebundle_cnr-CIT4FdxK.js +0 -1
  316. package/dist/assets/messagebundle_cnr-DcKjQBC2.js +0 -1
  317. package/dist/assets/messagebundle_cs-D6Ept3aZ.js +0 -1
  318. package/dist/assets/messagebundle_cs-JybtcHQz.js +0 -1
  319. package/dist/assets/messagebundle_cy-CBJcBetc.js +0 -1
  320. package/dist/assets/messagebundle_cy-D6EaO2mc.js +0 -1
  321. package/dist/assets/messagebundle_da-DP_Ld_m4.js +0 -1
  322. package/dist/assets/messagebundle_da-DXFv9LbY.js +0 -1
  323. package/dist/assets/messagebundle_de-C6CVo61I.js +0 -1
  324. package/dist/assets/messagebundle_de-De1WNx1Z.js +0 -1
  325. package/dist/assets/messagebundle_el-DjFg6Pxj.js +0 -1
  326. package/dist/assets/messagebundle_el-x7EAub0z.js +0 -1
  327. package/dist/assets/messagebundle_en-52Fg7l8z.js +0 -1
  328. package/dist/assets/messagebundle_en-CAn74huH.js +0 -1
  329. package/dist/assets/messagebundle_en_GB-BNvEFdpW.js +0 -1
  330. package/dist/assets/messagebundle_en_GB-mPq0tjYl.js +0 -1
  331. package/dist/assets/messagebundle_en_US_sappsd-BJo2KiPa.js +0 -1
  332. package/dist/assets/messagebundle_en_US_sappsd-DynRbkUr.js +0 -1
  333. package/dist/assets/messagebundle_en_US_saprigi-BQWYyoHW.js +0 -1
  334. package/dist/assets/messagebundle_en_US_saprigi-D92s1ZRa.js +0 -1
  335. package/dist/assets/messagebundle_en_US_saptrc-B2DXKZNZ.js +0 -1
  336. package/dist/assets/messagebundle_en_US_saptrc-hfAEC4kd.js +0 -1
  337. package/dist/assets/messagebundle_es-BwPFGD9Z.js +0 -1
  338. package/dist/assets/messagebundle_es-jLk5s13n.js +0 -1
  339. package/dist/assets/messagebundle_es_MX-C4GAmGhU.js +0 -1
  340. package/dist/assets/messagebundle_es_MX-D8t2Deqr.js +0 -1
  341. package/dist/assets/messagebundle_et-BTaXAVVc.js +0 -1
  342. package/dist/assets/messagebundle_et-Bjo0Et5r.js +0 -1
  343. package/dist/assets/messagebundle_fi-ChYfzxXr.js +0 -1
  344. package/dist/assets/messagebundle_fi-CntiBCQA.js +0 -1
  345. package/dist/assets/messagebundle_fr-BdRWqZJC.js +0 -1
  346. package/dist/assets/messagebundle_fr-CaZExNBp.js +0 -1
  347. package/dist/assets/messagebundle_fr_CA-BKRP61J_.js +0 -1
  348. package/dist/assets/messagebundle_fr_CA-DAzfdGd5.js +0 -1
  349. package/dist/assets/messagebundle_hi-BcOtK4GQ.js +0 -1
  350. package/dist/assets/messagebundle_hi-C7UcqZdw.js +0 -1
  351. package/dist/assets/messagebundle_hr-BLF-FOD0.js +0 -1
  352. package/dist/assets/messagebundle_hr-Dk6M01RL.js +0 -1
  353. package/dist/assets/messagebundle_hu-DpIoRnup.js +0 -1
  354. package/dist/assets/messagebundle_hu-VbDHbZG7.js +0 -1
  355. package/dist/assets/messagebundle_id-DIBxH6fi.js +0 -1
  356. package/dist/assets/messagebundle_id-lZaxXrdJ.js +0 -1
  357. package/dist/assets/messagebundle_it-BhsMY7So.js +0 -1
  358. package/dist/assets/messagebundle_it-DG7xbfea.js +0 -1
  359. package/dist/assets/messagebundle_iw-Cc803Nmd.js +0 -1
  360. package/dist/assets/messagebundle_iw-O_evnbhY.js +0 -1
  361. package/dist/assets/messagebundle_ja-BQJaLzhD.js +0 -1
  362. package/dist/assets/messagebundle_ja-DA6u0p66.js +0 -1
  363. package/dist/assets/messagebundle_kk-D5CooIqJ.js +0 -1
  364. package/dist/assets/messagebundle_kk-DNvxdh_N.js +0 -1
  365. package/dist/assets/messagebundle_ko-D8xqECx2.js +0 -1
  366. package/dist/assets/messagebundle_ko-wbi_wfM_.js +0 -1
  367. package/dist/assets/messagebundle_lt-DpI4T_Fm.js +0 -1
  368. package/dist/assets/messagebundle_lt-ln5fzwxi.js +0 -1
  369. package/dist/assets/messagebundle_lv-CYWgsGbN.js +0 -1
  370. package/dist/assets/messagebundle_lv-l0vb-OwI.js +0 -1
  371. package/dist/assets/messagebundle_mk-DIl_j3HQ.js +0 -1
  372. package/dist/assets/messagebundle_mk-t_B9kLHP.js +0 -1
  373. package/dist/assets/messagebundle_ms-BFy7Zha3.js +0 -1
  374. package/dist/assets/messagebundle_ms-DZQm3zbR.js +0 -1
  375. package/dist/assets/messagebundle_nl-C1aSfvr4.js +0 -1
  376. package/dist/assets/messagebundle_nl-TRrPBmQF.js +0 -1
  377. package/dist/assets/messagebundle_no-CLhgj0EG.js +0 -1
  378. package/dist/assets/messagebundle_no-aR0S5fgl.js +0 -1
  379. package/dist/assets/messagebundle_pl-BSUgMNBu.js +0 -1
  380. package/dist/assets/messagebundle_pl-CET5Ib58.js +0 -1
  381. package/dist/assets/messagebundle_pt-BbXdBcA1.js +0 -1
  382. package/dist/assets/messagebundle_pt-DkZyB3LQ.js +0 -1
  383. package/dist/assets/messagebundle_pt_PT-C_oLd5Iw.js +0 -1
  384. package/dist/assets/messagebundle_pt_PT-DCKLQCBx.js +0 -1
  385. package/dist/assets/messagebundle_ro-CsDFuVns.js +0 -1
  386. package/dist/assets/messagebundle_ro-D2wg4wzH.js +0 -1
  387. package/dist/assets/messagebundle_ru-C2C4gC1g.js +0 -1
  388. package/dist/assets/messagebundle_ru-DE3o7RU0.js +0 -1
  389. package/dist/assets/messagebundle_sh-B7wYluE7.js +0 -1
  390. package/dist/assets/messagebundle_sh-DKD7IPLY.js +0 -1
  391. package/dist/assets/messagebundle_sk-BqNiKvir.js +0 -1
  392. package/dist/assets/messagebundle_sk-CQANpP_i.js +0 -1
  393. package/dist/assets/messagebundle_sl-D-C5Ql-U.js +0 -1
  394. package/dist/assets/messagebundle_sl-Dg8gsTrL.js +0 -1
  395. package/dist/assets/messagebundle_sr-BrfbPkvb.js +0 -1
  396. package/dist/assets/messagebundle_sr-CiPp4mnW.js +0 -1
  397. package/dist/assets/messagebundle_sr-D8Lxl5cz.js +0 -1
  398. package/dist/assets/messagebundle_sv-DCluCru8.js +0 -1
  399. package/dist/assets/messagebundle_sv-DZNyuq7Z.js +0 -1
  400. package/dist/assets/messagebundle_sv-Ip_fKK1p.js +0 -1
  401. package/dist/assets/messagebundle_th-DwzFsAOp.js +0 -1
  402. package/dist/assets/messagebundle_th-HY1lYjoi.js +0 -1
  403. package/dist/assets/messagebundle_tr-9FvYSV7d.js +0 -1
  404. package/dist/assets/messagebundle_tr-B-M7HjSs.js +0 -1
  405. package/dist/assets/messagebundle_uk-BgTRxken.js +0 -1
  406. package/dist/assets/messagebundle_uk-Bh3hLYnV.js +0 -1
  407. package/dist/assets/messagebundle_uk-gYNrr26j.js +0 -1
  408. package/dist/assets/messagebundle_vi-CmDSDhxv.js +0 -1
  409. package/dist/assets/messagebundle_vi-yAL9JrWb.js +0 -1
  410. package/dist/assets/messagebundle_zh_CN-BsCxQ-NE.js +0 -1
  411. package/dist/assets/messagebundle_zh_CN-DOWro3p4.js +0 -1
  412. package/dist/assets/messagebundle_zh_CN-DRPasXpL.js +0 -1
  413. package/dist/assets/messagebundle_zh_TW-DCsIDAoN.js +0 -1
  414. package/dist/assets/messagebundle_zh_TW-Li9m-Dgo.js +0 -1
  415. package/dist/assets/parameters-bundle.css-B-LoL5pn.js +0 -2
  416. package/dist/assets/parameters-bundle.css-B44zldkY.js +0 -2
  417. package/dist/assets/parameters-bundle.css-B9cNNkge.js +0 -2
  418. package/dist/assets/parameters-bundle.css-BM3cv0NX.js +0 -3
  419. package/dist/assets/parameters-bundle.css-BaYJ1Sh3.js +0 -3
  420. package/dist/assets/parameters-bundle.css-BnDd81m-.js +0 -2
  421. package/dist/assets/parameters-bundle.css-Bpp5SPIo.js +0 -2
  422. package/dist/assets/parameters-bundle.css-BxF9_xcQ.js +0 -3
  423. package/dist/assets/parameters-bundle.css-CIS8Sge3.js +0 -2
  424. package/dist/assets/parameters-bundle.css-CkZZXcub.js +0 -3
  425. package/dist/assets/parameters-bundle.css-CqlwqyiK.js +0 -3
  426. package/dist/assets/parameters-bundle.css-D5iBjAlb.js +0 -2
  427. package/dist/assets/parameters-bundle.css-DFLKYdpf.js +0 -3
  428. package/dist/assets/parameters-bundle.css-Df8B8yQY.js +0 -2
  429. package/dist/assets/parameters-bundle.css-DfFxBNVP.js +0 -3
  430. package/dist/assets/parameters-bundle.css-DgrQXZRd.js +0 -2
  431. package/dist/assets/parameters-bundle.css-Dt5cIEI8.js +0 -2
  432. package/dist/assets/parameters-bundle.css-Wj-Qo16j.js +0 -3
  433. package/dist/assets/parameters-bundle.css-X9m6S2In.js +0 -2
  434. package/dist/assets/parameters-bundle.css-defUEOJD.js +0 -2
  435. package/dist/assets/parameters-bundle.css-oytHmScC.js +0 -3
@@ -1,5 +1,7 @@
1
1
  import { UDExSelectBox, UDExSelectBoxSelectAll, UDExSelectBoxGroupHeader, UDExSelectBoxItem, UDExButton, UDExModal } from "../support/component-imports.js";
2
- import { UDExListMode } from "../../src/types/List.js";
2
+ import { UDExListItemSize, UDExListMode, UDExListStyleType } from "../../src/types/List.js";
3
+ import { UDExAvatarShape, UDExAvatarSize } from "../../src/Avatar.js";
4
+ import UDExStatusBadgeValueState from "../../src/types/StatusBadgeValueState.js";
3
5
 
4
6
  const selectBoxWithRating = <div style="width: 350px; position:relative;"><UDExSelectBox
5
7
  id="select-box"
@@ -337,6 +339,9 @@ describe("SelectBox", () => {
337
339
  cy.get("#select-box").shadow()
338
340
  .find(".udex-tag-group").shadow().as("tagGroup");
339
341
 
342
+ // Wait for the resize handler to fire and render the tooltip before clicking.
343
+ cy.get("@tagGroup").find("udex-tooltip").should("exist");
344
+
340
345
  cy.get("@tagGroup")
341
346
  .find(".udex-tag-group__tokenizer").shadow()
342
347
  .find(".ui5-tokenizer-more-text")
@@ -1594,6 +1599,180 @@ describe("SelectBox", () => {
1594
1599
  });
1595
1600
  });
1596
1601
 
1602
+ // Added: covers SearchableListBase.filterItems group-header label matching.
1603
+ // When the search query matches a group header's label, the header label is
1604
+ // highlighted with <b> tags and ALL children of that group are shown.
1605
+ // When the query matches only some children, the header label is left intact
1606
+ // (no <b>) and only the matching children are shown.
1607
+ describe("Select Box group header search highlighting", () => {
1608
+ const groupHeaderForSearch = <div style="width: 350px; position:relative;">
1609
+ <UDExSelectBox
1610
+ id="select-box"
1611
+ mode={UDExListMode.MultiSelect}
1612
+ label="Programming languages">
1613
+ <UDExSelectBoxGroupHeader label="Programming Languages" supportingText="Digital Builders">
1614
+ <UDExSelectBoxItem label="JavaScript" supportingText="Frontend web development"></UDExSelectBoxItem>
1615
+ <UDExSelectBoxItem label="Python" supportingText="Used in data analysis"></UDExSelectBoxItem>
1616
+ </UDExSelectBoxGroupHeader>
1617
+ </UDExSelectBox>
1618
+ </div>;
1619
+
1620
+ // Selector for the title span inside the udex-list-item rendered for the
1621
+ // multi-select group header. The label is forwarded as the `label` attribute
1622
+ // of the inner udex-list-item, which renders it as <span part="title">{{{label}}}</span>.
1623
+ const groupHeaderTitleSelector = "[part='title']";
1624
+
1625
+ // Updated: covers Fix 1 — when the header label matches, children whose
1626
+ // labels also contain the query now get <b> highlights too. Query "P"
1627
+ // matches header "Programming Languages" AND child "Python".
1628
+ it("highlights the group header label with <b> tags when the search query matches the header label", () => {
1629
+ cy.mount(groupHeaderForSearch);
1630
+ cy.get("#select-box").shadow()
1631
+ .find(".udex-text-field__search").click();
1632
+ cy.realType("P");
1633
+
1634
+ cy.get("#select-box").shadow()
1635
+ .find("udex-list-group-header").should("exist");
1636
+
1637
+ // Header label is highlighted on the "P" of "Programming Languages".
1638
+ cy.get("#select-box").shadow()
1639
+ .find("udex-list-group-header").shadow()
1640
+ .find("udex-list-item").shadow()
1641
+ .find(groupHeaderTitleSelector)
1642
+ .find("b")
1643
+ .should("exist")
1644
+ .and("have.text", "P");
1645
+
1646
+ // Fix 1: child "Python" also matches "P" and must be highlighted as well,
1647
+ // not left as a plain label just because the header matched.
1648
+ // Children render in slotted order: index 0 = JavaScript, index 1 = Python.
1649
+ cy.get("#select-box").shadow()
1650
+ .find("udex-list-group-header")
1651
+ .find("udex-list-item").eq(1).shadow()
1652
+ .find(groupHeaderTitleSelector)
1653
+ .find("b")
1654
+ .should("exist")
1655
+ .and("have.text", "P");
1656
+ });
1657
+
1658
+ // Updated: covers Fix 1 — children matching the query DO get <b>; children
1659
+ // that do not contain the query do NOT get <b>. Highlighting is selective,
1660
+ // not all-or-nothing, even when the header match keeps every child visible.
1661
+ // Query "n": header "Programming Languages" has "n", "Python" has "n",
1662
+ // "JavaScript" has no "n" — so eq(1) is highlighted, eq(0) is not.
1663
+ it("shows ALL children of the group when the search query matches the group header label", () => {
1664
+ cy.mount(groupHeaderForSearch);
1665
+ cy.get("#select-box").shadow()
1666
+ .find(".udex-text-field__search").click();
1667
+ cy.realType("n");
1668
+
1669
+ // Both children remain rendered as udex-list-item inside the group header
1670
+ // even though only one of their labels matches — header match shows all children.
1671
+ cy.get("#select-box").shadow()
1672
+ .find("udex-list-group-header")
1673
+ .find("udex-list-item")
1674
+ .should("have.length", 2);
1675
+
1676
+ // "Python" (index 1) contains "n" — its label gets a <b> highlight.
1677
+ cy.get("#select-box").shadow()
1678
+ .find("udex-list-group-header")
1679
+ .find("udex-list-item").eq(1).shadow()
1680
+ .find(groupHeaderTitleSelector)
1681
+ .find("b")
1682
+ .should("exist");
1683
+
1684
+ // "JavaScript" (index 0) has no "n" — its label has no <b>.
1685
+ cy.get("#select-box").shadow()
1686
+ .find("udex-list-group-header")
1687
+ .find("udex-list-item").eq(0).shadow()
1688
+ .find(groupHeaderTitleSelector)
1689
+ .find("b")
1690
+ .should("not.exist");
1691
+ });
1692
+
1693
+ // Added: covers Fix 2 — checkAndUpdateLabel now resets item.label to its
1694
+ // clean form before deciding whether to add a new <b>, so a header that
1695
+ // matched a previous query is cleaned up when the new query no longer
1696
+ // matches it.
1697
+ it("clears stale highlight on header when query changes", () => {
1698
+ cy.mount(groupHeaderForSearch);
1699
+ cy.get("#select-box").shadow()
1700
+ .find(".udex-text-field__search").as("searchField");
1701
+
1702
+ // First search matches the header — header label is highlighted.
1703
+ cy.get("@searchField").click();
1704
+ cy.realType("Programming");
1705
+
1706
+ cy.get("#select-box").shadow()
1707
+ .find("udex-list-group-header").shadow()
1708
+ .find("udex-list-item").shadow()
1709
+ .find(groupHeaderTitleSelector)
1710
+ .find("b")
1711
+ .should("exist");
1712
+
1713
+ // Replace the search with one that does NOT match the header label.
1714
+ // "Java" matches a child but not "Programming Languages".
1715
+ cy.get("@searchField").clear();
1716
+ cy.get("@searchField").click();
1717
+ cy.realType("Java");
1718
+
1719
+ // Fix 2: stale <b> from the previous "Programming" match must be gone.
1720
+ cy.get("#select-box").shadow()
1721
+ .find("udex-list-group-header").shadow()
1722
+ .find("udex-list-item").shadow()
1723
+ .find(groupHeaderTitleSelector)
1724
+ .find("b")
1725
+ .should("not.exist");
1726
+ });
1727
+
1728
+ it("does NOT highlight the group header label when only child items match the query", () => {
1729
+ cy.mount(groupHeaderForSearch);
1730
+ cy.get("#select-box").shadow()
1731
+ .find(".udex-text-field__search").click();
1732
+ cy.realType("Python");
1733
+
1734
+ // Only the matching child is rendered as an udex-list-item under the header.
1735
+ cy.get("#select-box").shadow()
1736
+ .find("udex-list-group-header")
1737
+ .find("udex-list-item")
1738
+ .should("have.length", 1);
1739
+
1740
+ // The matching child label itself receives the <b> highlight.
1741
+ cy.get("#select-box").shadow()
1742
+ .find("udex-list-group-header")
1743
+ .find("udex-list-item").shadow()
1744
+ .find(groupHeaderTitleSelector)
1745
+ .find("b")
1746
+ .should("have.text", "Python");
1747
+
1748
+ // Header label has no <b> tag because the header label itself does not
1749
+ // match "Python" — only the child does.
1750
+ cy.get("#select-box").shadow()
1751
+ .find("udex-list-group-header").shadow()
1752
+ .find("udex-list-item").shadow()
1753
+ .find(groupHeaderTitleSelector)
1754
+ .find("b")
1755
+ .should("not.exist");
1756
+ });
1757
+
1758
+ it("hides the group entirely when neither the header nor any child matches the query", () => {
1759
+ cy.mount(groupHeaderForSearch);
1760
+ cy.get("#select-box").shadow()
1761
+ .find(".udex-text-field__search").click();
1762
+ cy.realType("zzznomatch");
1763
+
1764
+ // The whole group is filtered out — group header is not rendered in shadow.
1765
+ cy.get("#select-box").shadow()
1766
+ .find("udex-list-group-header")
1767
+ .should("not.exist");
1768
+
1769
+ // The empty-state message is shown instead.
1770
+ cy.get("#select-box").shadow()
1771
+ .find(".udex-no-result")
1772
+ .should("include.text", "No matches found.");
1773
+ });
1774
+ });
1775
+
1597
1776
  describe("SelectBox keyboard navigation with action icon buttons", () => {
1598
1777
  const shortComponentWithFocusTargets = <div style="width: 350px; position:relative;">
1599
1778
  <a id="previous-focus" href="#">Previous focusable element</a>
@@ -1774,4 +1953,273 @@ describe("SelectBox", () => {
1774
1953
  cy.get("#next-focus").should("be.focused");
1775
1954
  });
1776
1955
  });
1956
+
1957
+ describe("SelectBoxItem forwarded properties", () => {
1958
+ const selectBoxWithImageItems = <div style="width: 350px; position:relative;">
1959
+ <UDExSelectBox id="select-box" label="People">
1960
+ <UDExSelectBoxItem
1961
+ id="item-image"
1962
+ label="Alice"
1963
+ image="./stories/list/image.png"
1964
+ imageAlt="Alice avatar"
1965
+ imageBadgeState={UDExStatusBadgeValueState.Information}
1966
+ imageShape={UDExAvatarShape.Square}
1967
+ imageSize={UDExAvatarSize.M}>
1968
+ </UDExSelectBoxItem>
1969
+ <UDExSelectBoxItem
1970
+ id="item-image-default-shape-size"
1971
+ label="Bob"
1972
+ image="./stories/list/image.png"
1973
+ imageAlt="Bob avatar">
1974
+ </UDExSelectBoxItem>
1975
+ </UDExSelectBox>
1976
+ </div>;
1977
+
1978
+ const selectBoxWithFlagItems = <div style="width: 350px; position:relative;">
1979
+ <UDExSelectBox id="select-box" label="Countries">
1980
+ <UDExSelectBoxItem id="item-flag-start" label="Germany" flag flagPosition="start"></UDExSelectBoxItem>
1981
+ <UDExSelectBoxItem id="item-flag-end" label="France" flag flagPosition="end"></UDExSelectBoxItem>
1982
+ <UDExSelectBoxItem id="item-no-flag" label="Spain"></UDExSelectBoxItem>
1983
+ </UDExSelectBox>
1984
+ </div>;
1985
+
1986
+ const selectBoxWithIconType = <div style="width: 350px; position:relative;">
1987
+ <UDExSelectBox id="select-box-icon" label="Items" type={UDExListStyleType.Icon} itemIcon="accept">
1988
+ <UDExSelectBoxItem id="item-icon" label="Saved"></UDExSelectBoxItem>
1989
+ <UDExSelectBoxItem id="item-icon-2" label="Done"></UDExSelectBoxItem>
1990
+ </UDExSelectBox>
1991
+ </div>;
1992
+
1993
+ const selectBoxWithCircleType = <div style="width: 350px; position:relative;">
1994
+ <UDExSelectBox id="select-box-circle" label="Items" type={UDExListStyleType.Circle}>
1995
+ <UDExSelectBoxItem id="item-circle" label="Bullet"></UDExSelectBoxItem>
1996
+ </UDExSelectBox>
1997
+ </div>;
1998
+
1999
+ const selectBoxWithNumberType = <div style="width: 350px; position:relative;">
2000
+ <UDExSelectBox id="select-box-number" label="Items" type={UDExListStyleType.Number}>
2001
+ <UDExSelectBoxItem id="item-number" label="Numbered"></UDExSelectBoxItem>
2002
+ </UDExSelectBox>
2003
+ </div>;
2004
+
2005
+ const selectBoxWithSizes = <div style="width: 350px; position:relative;">
2006
+ <UDExSelectBox id="select-box" label="Sizes">
2007
+ <UDExSelectBoxItem id="item-large" label="Large" size={UDExListItemSize.Large}></UDExSelectBoxItem>
2008
+ <UDExSelectBoxItem id="item-standard" label="Standard" size={UDExListItemSize.Standard}></UDExSelectBoxItem>
2009
+ </UDExSelectBox>
2010
+ </div>;
2011
+
2012
+ const openDropdown = () => {
2013
+ cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
2014
+ cy.get("#select-box").shadow()
2015
+ .find(".udex-select-box__dropdown")
2016
+ .should("have.attr", "open");
2017
+ };
2018
+
2019
+ describe("Defaults on the host udex-select-box-item", () => {
2020
+ it("imageShape defaults to 'Circle' on the host element", () => {
2021
+ cy.mount(<UDExSelectBoxItem id="default-item" label="x"></UDExSelectBoxItem>);
2022
+ cy.get("#default-item").then($el => {
2023
+ expect(($el[0] as any).imageShape).to.equal(UDExAvatarShape.Circle);
2024
+ });
2025
+ });
2026
+
2027
+ it("imageSize defaults to 'S' on the host element", () => {
2028
+ cy.mount(<UDExSelectBoxItem id="default-item" label="x"></UDExSelectBoxItem>);
2029
+ cy.get("#default-item").then($el => {
2030
+ expect(($el[0] as any).imageSize).to.equal(UDExAvatarSize.S);
2031
+ });
2032
+ });
2033
+
2034
+ it("type defaults to 'None' on the host element", () => {
2035
+ cy.mount(<UDExSelectBoxItem id="default-item" label="x"></UDExSelectBoxItem>);
2036
+ cy.get("#default-item").then($el => {
2037
+ expect(($el[0] as any).type).to.equal(UDExListStyleType.None);
2038
+ });
2039
+ });
2040
+
2041
+ it("size defaults to 'Standard' on the host element", () => {
2042
+ cy.mount(<UDExSelectBoxItem id="default-item" label="x"></UDExSelectBoxItem>);
2043
+ cy.get("#default-item").then($el => {
2044
+ expect(($el[0] as any).size).to.equal(UDExListItemSize.Standard);
2045
+ });
2046
+ });
2047
+
2048
+ it("flag defaults to falsy on the host element", () => {
2049
+ cy.mount(<UDExSelectBoxItem id="default-item" label="x"></UDExSelectBoxItem>);
2050
+ cy.get("#default-item").then($el => {
2051
+ expect(($el[0] as any).flag).to.not.equal(true);
2052
+ });
2053
+ });
2054
+ });
2055
+
2056
+ describe("Image forwarding", () => {
2057
+ it("forwards image src to the rendered udex-list-item as 'image'", () => {
2058
+ cy.mount(selectBoxWithImageItems);
2059
+ openDropdown();
2060
+
2061
+ cy.get("#select-box").shadow()
2062
+ .find("udex-list-item").eq(0)
2063
+ .should("have.attr", "image", "./stories/list/image.png");
2064
+ });
2065
+
2066
+ it("forwards imageAlt to the rendered udex-list-item as 'image-alt'", () => {
2067
+ cy.mount(selectBoxWithImageItems);
2068
+ openDropdown();
2069
+
2070
+ cy.get("#select-box").shadow()
2071
+ .find("udex-list-item").eq(0)
2072
+ .should("have.attr", "image-alt", "Alice avatar");
2073
+ });
2074
+
2075
+ it("forwards imageBadgeState to the rendered udex-list-item as 'image-badge-state'", () => {
2076
+ cy.mount(selectBoxWithImageItems);
2077
+ openDropdown();
2078
+
2079
+ cy.get("#select-box").shadow()
2080
+ .find("udex-list-item").eq(0)
2081
+ .should("have.attr", "image-badge-state", UDExStatusBadgeValueState.Information);
2082
+ });
2083
+
2084
+ it("forwards imageShape to the rendered udex-list-item as 'image-shape'", () => {
2085
+ cy.mount(selectBoxWithImageItems);
2086
+ openDropdown();
2087
+
2088
+ cy.get("#select-box").shadow()
2089
+ .find("udex-list-item").eq(0)
2090
+ .should("have.attr", "image-shape", UDExAvatarShape.Square);
2091
+ });
2092
+
2093
+ it("forwards imageSize to the rendered udex-list-item as 'image-size'", () => {
2094
+ cy.mount(selectBoxWithImageItems);
2095
+ openDropdown();
2096
+
2097
+ cy.get("#select-box").shadow()
2098
+ .find("udex-list-item").eq(0)
2099
+ .should("have.attr", "image-size", UDExAvatarSize.M);
2100
+ });
2101
+
2102
+ it("forwards default imageShape ('Circle') and imageSize ('S') when not explicitly set", () => {
2103
+ cy.mount(selectBoxWithImageItems);
2104
+ openDropdown();
2105
+
2106
+ cy.get("#select-box").shadow()
2107
+ .find("udex-list-item").eq(1)
2108
+ .should("have.attr", "image-shape", UDExAvatarShape.Circle)
2109
+ .and("have.attr", "image-size", UDExAvatarSize.S);
2110
+ });
2111
+
2112
+ it("renders the avatar inside the rendered udex-list-item shadow with the correct shape and size", () => {
2113
+ cy.mount(selectBoxWithImageItems);
2114
+ openDropdown();
2115
+
2116
+ cy.get("#select-box").shadow()
2117
+ .find("udex-list-item").eq(0)
2118
+ .shadow().find(".udex-list__avatar").as("avatar");
2119
+
2120
+ cy.get("@avatar").should("have.attr", "shape", UDExAvatarShape.Square);
2121
+ cy.get("@avatar").should("have.attr", "size", UDExAvatarSize.M);
2122
+ cy.get("@avatar").find("img").should("have.attr", "alt", "Alice avatar");
2123
+ });
2124
+
2125
+ it("renders the status badge inside the rendered udex-list-item with the forwarded value-state", () => {
2126
+ cy.mount(selectBoxWithImageItems);
2127
+ openDropdown();
2128
+
2129
+ cy.get("#select-box").shadow()
2130
+ .find("udex-list-item").eq(0)
2131
+ .shadow().find("udex-status-badge")
2132
+ .should("have.attr", "value-state", UDExStatusBadgeValueState.Information);
2133
+ });
2134
+ });
2135
+
2136
+ describe("Flag forwarding", () => {
2137
+ it("forwards flag boolean to the rendered udex-list-item as the 'flag' attribute", () => {
2138
+ cy.mount(selectBoxWithFlagItems);
2139
+ openDropdown();
2140
+
2141
+ cy.get("#select-box").shadow()
2142
+ .find("udex-list-item").eq(0)
2143
+ .should("have.attr", "flag");
2144
+ });
2145
+
2146
+ it("forwards flagPosition='start' to the rendered udex-list-item as 'flag-position'", () => {
2147
+ cy.mount(selectBoxWithFlagItems);
2148
+ openDropdown();
2149
+
2150
+ cy.get("#select-box").shadow()
2151
+ .find("udex-list-item").eq(0)
2152
+ .should("have.attr", "flag-position", "start");
2153
+ });
2154
+
2155
+ it("forwards flagPosition='end' to the rendered udex-list-item as 'flag-position'", () => {
2156
+ cy.mount(selectBoxWithFlagItems);
2157
+ openDropdown();
2158
+
2159
+ cy.get("#select-box").shadow()
2160
+ .find("udex-list-item").eq(1)
2161
+ .should("have.attr", "flag-position", "end");
2162
+ });
2163
+
2164
+ it("does not forward flag attribute when flag is not set on the SelectBoxItem", () => {
2165
+ cy.mount(selectBoxWithFlagItems);
2166
+ openDropdown();
2167
+
2168
+ cy.get("#select-box").shadow()
2169
+ .find("udex-list-item").eq(2)
2170
+ .should("not.have.attr", "flag");
2171
+ });
2172
+ });
2173
+
2174
+ describe("itemIcon and type forwarding", () => {
2175
+ it("renders the icon in the list item shadow DOM when type='Icon' and itemIcon is set", () => {
2176
+ cy.mount(selectBoxWithIconType);
2177
+ cy.get("#select-box-icon").shadow().find(".udex-text-field__trigger").click();
2178
+
2179
+ cy.get("#select-box-icon").shadow()
2180
+ .find("udex-list-item").eq(0)
2181
+ .should("have.attr", "type", UDExListStyleType.Icon)
2182
+ .shadow().find("ui5-icon.udex-list__icon")
2183
+ .should("have.attr", "name", "accept");
2184
+ });
2185
+
2186
+ it("forwards type='Circle' to the rendered udex-list-item", () => {
2187
+ cy.mount(selectBoxWithCircleType);
2188
+ cy.get("#select-box-circle").shadow().find(".udex-text-field__trigger").click();
2189
+
2190
+ cy.get("#select-box-circle").shadow()
2191
+ .find("udex-list-item").eq(0)
2192
+ .should("have.attr", "type", UDExListStyleType.Circle);
2193
+ });
2194
+
2195
+ it("forwards type='Number' to the rendered udex-list-item", () => {
2196
+ cy.mount(selectBoxWithNumberType);
2197
+ cy.get("#select-box-number").shadow().find(".udex-text-field__trigger").click();
2198
+
2199
+ cy.get("#select-box-number").shadow()
2200
+ .find("udex-list-item").eq(0)
2201
+ .should("have.attr", "type", UDExListStyleType.Number);
2202
+ });
2203
+ });
2204
+
2205
+ describe("size forwarding", () => {
2206
+ it("forwards size='Large' to the rendered udex-list-item", () => {
2207
+ cy.mount(selectBoxWithSizes);
2208
+ openDropdown();
2209
+
2210
+ cy.get("#select-box").shadow()
2211
+ .find("udex-list-item").eq(0)
2212
+ .should("have.attr", "size", UDExListItemSize.Large);
2213
+ });
2214
+
2215
+ it("forwards size='Standard' (default) to the rendered udex-list-item", () => {
2216
+ cy.mount(selectBoxWithSizes);
2217
+ openDropdown();
2218
+
2219
+ cy.get("#select-box").shadow()
2220
+ .find("udex-list-item").eq(1)
2221
+ .should("have.attr", "size", UDExListItemSize.Standard);
2222
+ });
2223
+ });
2224
+ });
1777
2225
  });
@@ -76,27 +76,24 @@ describe("Toast", async () => {
76
76
  describe("With Success valueState", () => {
77
77
  it("renders sys-enter-2 icon when valueState is Success", () => {
78
78
  cy.mount(successToast);
79
- cy.get("#successToast").shadow().find(".udex-toast__icon").then($toastIcon =>
80
- expect($toastIcon.attr("name")).to.eq("sys-enter-2")
81
- )
79
+ cy.get("#successToast").shadow().find(".udex-toast__icon")
80
+ .invoke("prop", "name").should("eq", "sys-enter-2")
82
81
  });
83
82
  })
84
83
 
85
84
  describe("With Warning valueState", () => {
86
85
  it("renders alert icon when valueState is Warning", () => {
87
86
  cy.mount(warningToast);
88
- cy.get("#warningToast").shadow().find(".udex-toast__icon").then($toastIcon =>
89
- expect($toastIcon.attr("name")).to.eq("alert")
90
- )
87
+ cy.get("#warningToast").shadow().find(".udex-toast__icon")
88
+ .invoke("prop", "name").should("eq", "alert")
91
89
  });
92
90
  })
93
91
 
94
92
  describe("With Error valueState", () => {
95
93
  it("renders error icon when valueState is Error", () => {
96
94
  cy.mount(errorToast);
97
- cy.get("#errorToast").shadow().find(".udex-toast__icon").then($toastIcon =>
98
- expect($toastIcon.attr("name")).to.eq("error")
99
- )
95
+ cy.get("#errorToast").shadow().find(".udex-toast__icon")
96
+ .invoke("prop", "name").should("eq", "error")
100
97
  });
101
98
  })
102
99
  });
package/cypress.config.ts CHANGED
@@ -8,6 +8,16 @@ export default defineConfig({
8
8
  async setupNodeEvents(on, config) {
9
9
  const codeCoverageTask = await import('@cypress/code-coverage/task');
10
10
  codeCoverageTask.default(on, config);
11
+
12
+ on('before:browser:launch', (browser, launchOptions) => {
13
+ if (browser.name === 'chrome') {
14
+ launchOptions.args.push('--no-sandbox');
15
+ launchOptions.args.push('--disable-dev-shm-usage');
16
+ launchOptions.args.push('--disable-gpu');
17
+ }
18
+ return launchOptions;
19
+ });
20
+
11
21
  return config;
12
22
  },
13
23
  devServer: {
@@ -146,13 +146,15 @@ declare class UDExMastheadCountrySelector extends UI5Element {
146
146
  _mastheadShell: UDExMastheadShell;
147
147
  _countriesListHolderClassName: string;
148
148
  _itemClassName: string;
149
+ _boundHandleActiveRegionClose: () => void;
149
150
  static i18nBundle: I18nBundle;
150
151
  constructor();
151
- onAfterRendering(): void;
152
152
  onEnterDOM(): void;
153
+ onExitDOM(): void;
154
+ onAfterRendering(): void;
155
+ handleActiveRegionClose(): void;
153
156
  handleRegionClick(e: CustomEvent): void;
154
157
  handleCountryClick(e: CustomEvent): void;
155
- handleKeyDown(e: KeyboardEvent): void;
156
158
  handleSearch(e: CustomEvent): void;
157
159
  handleSearchReset(): void;
158
160
  handleFocusItem(): void;
@@ -162,10 +164,7 @@ declare class UDExMastheadCountrySelector extends UI5Element {
162
164
  backToRegions(): void;
163
165
  focusNextItem(currentItem: UDExMastheadMenuItem): void;
164
166
  focusPreviousItem(currentItem: UDExMastheadMenuItem): void;
165
- focusLastItem(e: KeyboardEvent): void;
166
- focusFirstItem(e: KeyboardEvent): void;
167
- handleEndKey(e: KeyboardEvent): void;
168
- handleHomeKey(e: KeyboardEvent): void;
167
+ focusFirstItem(): void;
169
168
  handleSingleRegionMode(): void;
170
169
  focusBackBtn(): void;
171
170
  focusRegionByIndex(): void;
@@ -173,7 +172,6 @@ declare class UDExMastheadCountrySelector extends UI5Element {
173
172
  fireEventCountryItemClick(e: CustomEvent | KeyboardEvent): void;
174
173
  setActiveRegion(region: Region | null): void;
175
174
  setActiveCountries(countries: Array<Country>): void;
176
- setTabIndexForItems(): void;
177
175
  closeMenu(): void;
178
176
  checkScrollableCountriesList(): void;
179
177
  handleCountryListShadowVisible(): void;