@synergy-design-system/components 3.1.0 → 3.2.1

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 (773) hide show
  1. package/README.md +0 -61
  2. package/dist/chunks/{chunk.4PUQDU4T.js → chunk.26MIXER6.js} +5 -5
  3. package/dist/chunks/chunk.26MIXER6.js.map +7 -0
  4. package/dist/chunks/{chunk.VA26EAEP.js → chunk.2BJPTG2Q.js} +1 -1
  5. package/dist/chunks/chunk.2BJPTG2Q.js.map +7 -0
  6. package/dist/chunks/{chunk.5732DMBC.js → chunk.2DT3C6WE.js} +1 -1
  7. package/dist/chunks/chunk.2DT3C6WE.js.map +7 -0
  8. package/dist/chunks/chunk.2IL4PA6Q.js +130 -0
  9. package/dist/chunks/chunk.2IL4PA6Q.js.map +7 -0
  10. package/dist/chunks/{chunk.4M4LRUZD.js → chunk.2PW7XZZF.js} +13 -7
  11. package/dist/chunks/chunk.2PW7XZZF.js.map +7 -0
  12. package/dist/chunks/{chunk.KCLOTN4Z.js → chunk.2RS24S7K.js} +5 -5
  13. package/dist/chunks/chunk.2RS24S7K.js.map +7 -0
  14. package/dist/chunks/{chunk.VXC77KXR.js → chunk.32C66EYB.js} +6 -6
  15. package/dist/chunks/chunk.32C66EYB.js.map +7 -0
  16. package/dist/chunks/{chunk.FSZIE7IO.js → chunk.34A453XJ.js} +1 -1
  17. package/dist/chunks/chunk.34A453XJ.js.map +7 -0
  18. package/dist/chunks/{chunk.QUKSQV3V.js → chunk.36HGXE6I.js} +11 -11
  19. package/dist/chunks/chunk.36HGXE6I.js.map +7 -0
  20. package/dist/chunks/{chunk.3NXKLKWH.js → chunk.3JDUKQRN.js} +1 -1
  21. package/dist/chunks/chunk.3JDUKQRN.js.map +7 -0
  22. package/dist/chunks/{chunk.K3WSJSRV.js → chunk.3NALMFRW.js} +2 -2
  23. package/dist/chunks/chunk.3NALMFRW.js.map +7 -0
  24. package/dist/chunks/{chunk.KY3YPRYR.js → chunk.4XEXSCXG.js} +2 -2
  25. package/dist/chunks/{chunk.ZBW4ZSZ7.js → chunk.4XZTYPIY.js} +1 -1
  26. package/dist/chunks/chunk.4XZTYPIY.js.map +7 -0
  27. package/dist/chunks/{chunk.IVM3BGRH.js → chunk.5FVNGR5M.js} +1 -1
  28. package/dist/chunks/chunk.5FVNGR5M.js.map +7 -0
  29. package/dist/chunks/{chunk.QS53GZR4.js → chunk.5GEZBXYH.js} +2 -2
  30. package/dist/chunks/chunk.5GEZBXYH.js.map +7 -0
  31. package/dist/chunks/{chunk.WFKDRXA5.js → chunk.5IMXX2BZ.js} +7 -7
  32. package/dist/chunks/{chunk.WFKDRXA5.js.map → chunk.5IMXX2BZ.js.map} +2 -2
  33. package/dist/chunks/{chunk.OI3HOOCT.js → chunk.5KL2GWNQ.js} +1 -1
  34. package/dist/chunks/chunk.5KL2GWNQ.js.map +7 -0
  35. package/dist/chunks/{chunk.JX55XGPA.js → chunk.5MPCXTIF.js} +2 -2
  36. package/dist/chunks/chunk.5MPCXTIF.js.map +7 -0
  37. package/dist/chunks/{chunk.AQITYSQX.js → chunk.5VNNTEAG.js} +7 -7
  38. package/dist/chunks/chunk.5VNNTEAG.js.map +7 -0
  39. package/dist/chunks/{chunk.6BGHUVA7.js → chunk.65442A47.js} +7 -7
  40. package/dist/chunks/{chunk.FD2CG2HT.js → chunk.6AT5JL7A.js} +1 -29
  41. package/dist/chunks/chunk.6AT5JL7A.js.map +7 -0
  42. package/dist/chunks/{chunk.HVXG4JG6.js → chunk.6KIX3PER.js} +1 -1
  43. package/dist/chunks/chunk.6KIX3PER.js.map +7 -0
  44. package/dist/chunks/{chunk.XCNXSFFB.js → chunk.6V3QIL3Z.js} +2 -2
  45. package/dist/chunks/chunk.6V3QIL3Z.js.map +7 -0
  46. package/dist/chunks/{chunk.3PGJQYXW.js → chunk.7G5PBA5Q.js} +2 -2
  47. package/dist/chunks/chunk.7G5PBA5Q.js.map +7 -0
  48. package/dist/chunks/{chunk.JLXCLATV.js → chunk.7V7XEBE2.js} +1 -1
  49. package/dist/chunks/chunk.7V7XEBE2.js.map +7 -0
  50. package/dist/chunks/{chunk.Q6XDV7O7.js → chunk.7XSJ52RM.js} +6 -6
  51. package/dist/chunks/chunk.7XSJ52RM.js.map +7 -0
  52. package/dist/chunks/{chunk.5ORVYCVV.js → chunk.AUJMQLMT.js} +6 -6
  53. package/dist/chunks/chunk.AUJMQLMT.js.map +7 -0
  54. package/dist/chunks/{chunk.MPSNGSXQ.js → chunk.AVMXNAAK.js} +2 -2
  55. package/dist/chunks/chunk.AVMXNAAK.js.map +7 -0
  56. package/dist/chunks/{chunk.L7GQHKZX.js → chunk.B5CUPVI3.js} +13 -13
  57. package/dist/chunks/chunk.B5CUPVI3.js.map +7 -0
  58. package/dist/chunks/{chunk.NVT2EKF6.js → chunk.B5H54LE5.js} +2 -2
  59. package/dist/chunks/chunk.B5H54LE5.js.map +7 -0
  60. package/dist/chunks/{chunk.AXFQGZJC.js → chunk.BAB5SWUZ.js} +22 -22
  61. package/dist/chunks/chunk.BAB5SWUZ.js.map +7 -0
  62. package/dist/chunks/{chunk.BMHWOQRC.js → chunk.BBWQBAFA.js} +10 -10
  63. package/dist/chunks/chunk.BBWQBAFA.js.map +7 -0
  64. package/dist/chunks/{chunk.KW5TWA5Y.js → chunk.BC532CB6.js} +1 -1
  65. package/dist/chunks/chunk.BC532CB6.js.map +7 -0
  66. package/dist/chunks/{chunk.X7XPEYAM.js → chunk.BHJVE26D.js} +2 -3
  67. package/dist/chunks/chunk.BHJVE26D.js.map +7 -0
  68. package/dist/chunks/{chunk.BIRYJHTO.js → chunk.C5WF3K27.js} +2 -2
  69. package/dist/chunks/{chunk.W66D3Q4F.js → chunk.CCWE4N5I.js} +2 -2
  70. package/dist/chunks/chunk.CCWE4N5I.js.map +7 -0
  71. package/dist/chunks/{chunk.BXY667C7.js → chunk.CCY6IYFD.js} +1 -1
  72. package/dist/chunks/chunk.CCY6IYFD.js.map +7 -0
  73. package/dist/chunks/{chunk.WVVQK5TE.js → chunk.CHFWLQN5.js} +1 -1
  74. package/dist/chunks/chunk.CHFWLQN5.js.map +7 -0
  75. package/dist/chunks/{chunk.Y5TMYX2L.js → chunk.CMOZ4SCN.js} +1 -1
  76. package/dist/chunks/chunk.CMOZ4SCN.js.map +7 -0
  77. package/dist/chunks/{chunk.GRVNUIP2.js → chunk.CX7IEDUW.js} +1 -1
  78. package/dist/chunks/chunk.CX7IEDUW.js.map +7 -0
  79. package/dist/chunks/{chunk.YARPBFC7.js → chunk.D6ABBPRU.js} +2 -2
  80. package/dist/chunks/chunk.D6ABBPRU.js.map +7 -0
  81. package/dist/chunks/{chunk.DZ7YIR5N.js → chunk.DAIQ5WRI.js} +1 -1
  82. package/dist/chunks/chunk.DAIQ5WRI.js.map +7 -0
  83. package/dist/chunks/{chunk.AZ3N5IOO.js → chunk.DEJAPNIZ.js} +1 -1
  84. package/dist/chunks/chunk.DEJAPNIZ.js.map +7 -0
  85. package/dist/chunks/{chunk.KOLE63RX.js → chunk.DIZBFI6I.js} +2 -2
  86. package/dist/chunks/chunk.DIZBFI6I.js.map +7 -0
  87. package/dist/chunks/{chunk.KUAYRSLT.js → chunk.DLHQKWGN.js} +2 -2
  88. package/dist/chunks/{chunk.PAM2UCZU.js → chunk.EG3IHOGQ.js} +2 -2
  89. package/dist/chunks/chunk.EG3IHOGQ.js.map +7 -0
  90. package/dist/chunks/{chunk.CUJDP53J.js → chunk.EONM7YMW.js} +10 -10
  91. package/dist/chunks/chunk.EONM7YMW.js.map +7 -0
  92. package/dist/chunks/{chunk.KTBISG3Q.js → chunk.EQ34CAWI.js} +5 -5
  93. package/dist/chunks/chunk.EQ34CAWI.js.map +7 -0
  94. package/dist/chunks/{chunk.6WFPHCIK.js → chunk.EQ3KJJ3H.js} +14 -14
  95. package/dist/chunks/{chunk.6WFPHCIK.js.map → chunk.EQ3KJJ3H.js.map} +2 -2
  96. package/dist/chunks/{chunk.UIRABJTT.js → chunk.EVSLGGKP.js} +2 -2
  97. package/dist/chunks/chunk.EVSLGGKP.js.map +7 -0
  98. package/dist/chunks/{chunk.SM4ANWX6.js → chunk.F2QQ2JAK.js} +2 -2
  99. package/dist/chunks/chunk.F2QQ2JAK.js.map +7 -0
  100. package/dist/chunks/{chunk.4VOWXLEZ.js → chunk.FCXOOYNC.js} +10 -10
  101. package/dist/chunks/chunk.FCXOOYNC.js.map +7 -0
  102. package/dist/chunks/{chunk.I64H5F6D.js → chunk.FLDDHQXG.js} +5 -5
  103. package/dist/chunks/chunk.FLDDHQXG.js.map +7 -0
  104. package/dist/chunks/{chunk.DU3L7OGA.js → chunk.FQPIRAA6.js} +5 -5
  105. package/dist/chunks/chunk.FQPIRAA6.js.map +7 -0
  106. package/dist/chunks/{chunk.BWTMFHNM.js → chunk.FVIRHFY6.js} +5 -3
  107. package/dist/chunks/{chunk.BWTMFHNM.js.map → chunk.FVIRHFY6.js.map} +2 -2
  108. package/dist/chunks/{chunk.NLYVOJGK.js → chunk.FXJLG622.js} +1 -1
  109. package/dist/chunks/chunk.FXJLG622.js.map +7 -0
  110. package/dist/chunks/{chunk.XTWO6ZZW.js → chunk.GPP4D4HH.js} +1 -1
  111. package/dist/chunks/chunk.GPP4D4HH.js.map +7 -0
  112. package/dist/chunks/{chunk.DZSZDFCN.js → chunk.H5ZIVYK5.js} +11 -11
  113. package/dist/chunks/chunk.H5ZIVYK5.js.map +7 -0
  114. package/dist/chunks/{chunk.UT3DWYFM.js → chunk.H6EHQYZA.js} +2 -2
  115. package/dist/chunks/chunk.H6EHQYZA.js.map +7 -0
  116. package/dist/chunks/{chunk.W4NRUZSV.js → chunk.H6HGD46M.js} +4 -4
  117. package/dist/chunks/chunk.H6HGD46M.js.map +7 -0
  118. package/dist/chunks/{chunk.QAKD2SMK.js → chunk.H7JZRD2G.js} +2 -2
  119. package/dist/chunks/{chunk.7GUK7OKG.js → chunk.HGR3332E.js} +2 -2
  120. package/dist/chunks/chunk.HGR3332E.js.map +7 -0
  121. package/dist/chunks/{chunk.BJIZS3FU.js → chunk.HV57E6MJ.js} +5 -5
  122. package/dist/chunks/chunk.HV57E6MJ.js.map +7 -0
  123. package/dist/chunks/{chunk.5E5HEAZN.js → chunk.HZFEZO3W.js} +2 -2
  124. package/dist/chunks/chunk.HZFEZO3W.js.map +7 -0
  125. package/dist/chunks/{chunk.XRDJZQBY.js → chunk.IL75TLII.js} +2 -2
  126. package/dist/chunks/chunk.IL75TLII.js.map +7 -0
  127. package/dist/chunks/{chunk.2QDRZ3C6.js → chunk.ISCXRNH4.js} +2 -2
  128. package/dist/chunks/chunk.ISCXRNH4.js.map +7 -0
  129. package/dist/chunks/{chunk.U5757NSE.js → chunk.J3GDDM6Q.js} +1 -1
  130. package/dist/chunks/chunk.J3GDDM6Q.js.map +7 -0
  131. package/dist/chunks/{chunk.43YNZAWL.js → chunk.JDYQ7EFG.js} +1 -1
  132. package/dist/chunks/chunk.JDYQ7EFG.js.map +7 -0
  133. package/dist/chunks/{chunk.QZ3PTBET.js → chunk.JGZQEVJ6.js} +8 -8
  134. package/dist/chunks/{chunk.RAOPZXJL.js → chunk.JILCM7FD.js} +1 -1
  135. package/dist/chunks/chunk.JILCM7FD.js.map +7 -0
  136. package/dist/chunks/{chunk.ZJHL23CU.js → chunk.JKXO42MS.js} +2 -2
  137. package/dist/chunks/chunk.JKXO42MS.js.map +7 -0
  138. package/dist/chunks/{chunk.3PWAIWL5.js → chunk.JSBJOKER.js} +5 -5
  139. package/dist/chunks/{chunk.I4TQPMB7.js → chunk.JTE7XOWE.js} +6 -6
  140. package/dist/chunks/chunk.JTE7XOWE.js.map +7 -0
  141. package/dist/chunks/{chunk.WBHDD3UR.js → chunk.K7ZS3OCZ.js} +4 -4
  142. package/dist/chunks/{chunk.IAS6MLT6.js → chunk.KLL2SVR7.js} +2 -1
  143. package/dist/chunks/chunk.KLL2SVR7.js.map +7 -0
  144. package/dist/chunks/{chunk.V53NJJ67.js → chunk.KO63FB6R.js} +2 -2
  145. package/dist/chunks/chunk.KO63FB6R.js.map +7 -0
  146. package/dist/chunks/{chunk.FQWBH6B3.js → chunk.KPHDBL43.js} +1 -1
  147. package/dist/chunks/chunk.KPHDBL43.js.map +7 -0
  148. package/dist/chunks/{chunk.VGI7V7OS.js → chunk.KRF7VWRQ.js} +13 -13
  149. package/dist/chunks/chunk.KRF7VWRQ.js.map +7 -0
  150. package/dist/chunks/{chunk.7ZHTDECG.js → chunk.KULTIH7F.js} +2 -2
  151. package/dist/chunks/chunk.KULTIH7F.js.map +7 -0
  152. package/dist/chunks/{chunk.C2ENQBPM.js → chunk.LQDIH4Z5.js} +1 -1
  153. package/dist/chunks/chunk.LQDIH4Z5.js.map +7 -0
  154. package/dist/chunks/{chunk.OAIHDW7S.js → chunk.MEFGUKU5.js} +2 -2
  155. package/dist/chunks/{chunk.TFBMLDBM.js → chunk.MQKESAOP.js} +2 -2
  156. package/dist/chunks/{chunk.7QGJAPLH.js → chunk.N6DEOPEC.js} +14 -14
  157. package/dist/chunks/{chunk.FSWTBNSI.js → chunk.N7HN275B.js} +1 -1
  158. package/dist/chunks/chunk.N7HN275B.js.map +7 -0
  159. package/dist/chunks/{chunk.RATZ2RGX.js → chunk.NKWPAQM3.js} +2 -2
  160. package/dist/chunks/{chunk.34V3QOIQ.js → chunk.NMWM3BP7.js} +2 -2
  161. package/dist/chunks/chunk.NMWM3BP7.js.map +7 -0
  162. package/dist/chunks/{chunk.QCAMWDPP.js → chunk.NNRQNQWD.js} +7 -7
  163. package/dist/chunks/chunk.NNRQNQWD.js.map +7 -0
  164. package/dist/chunks/{chunk.YIQSTAST.js → chunk.NVYIJYVF.js} +2 -2
  165. package/dist/chunks/{chunk.75RQ52LL.js → chunk.NWA2ZKLU.js} +2 -2
  166. package/dist/chunks/chunk.NWA2ZKLU.js.map +7 -0
  167. package/dist/chunks/{chunk.6GWSQWLE.js → chunk.NY33MDYP.js} +537 -131
  168. package/dist/chunks/chunk.NY33MDYP.js.map +7 -0
  169. package/dist/chunks/{chunk.WP3FQE65.js → chunk.O2NJ7W2P.js} +2 -2
  170. package/dist/chunks/{chunk.QU47WZOK.js → chunk.OFF4U2HZ.js} +6 -6
  171. package/dist/chunks/chunk.OFF4U2HZ.js.map +7 -0
  172. package/dist/chunks/{chunk.O6ZH6AOI.js → chunk.OFKOVRHG.js} +1 -1
  173. package/dist/chunks/chunk.OFKOVRHG.js.map +7 -0
  174. package/dist/chunks/{chunk.IBWQFVMJ.js → chunk.OPZMUWWY.js} +2 -2
  175. package/dist/chunks/chunk.OPZMUWWY.js.map +7 -0
  176. package/dist/chunks/{chunk.WENMEQB3.js → chunk.P4I2WO5B.js} +2 -2
  177. package/dist/chunks/chunk.P4I2WO5B.js.map +7 -0
  178. package/dist/chunks/{chunk.JKSFECFA.js → chunk.P4JFVVSO.js} +2 -2
  179. package/dist/chunks/chunk.P4JFVVSO.js.map +7 -0
  180. package/dist/chunks/{chunk.RMIDAEF5.js → chunk.PB6IANE7.js} +1 -1
  181. package/dist/chunks/chunk.PB6IANE7.js.map +7 -0
  182. package/dist/chunks/{chunk.XAQKFEHH.js → chunk.PHFTXPIT.js} +1 -1
  183. package/dist/chunks/chunk.PHFTXPIT.js.map +7 -0
  184. package/dist/chunks/{chunk.234ERFCE.js → chunk.PLV4PZYX.js} +1 -1
  185. package/dist/chunks/chunk.PLV4PZYX.js.map +7 -0
  186. package/dist/chunks/{chunk.MU43DZ7W.js → chunk.PN64BR66.js} +1 -1
  187. package/dist/chunks/chunk.PN64BR66.js.map +7 -0
  188. package/dist/chunks/{chunk.DGU5AZZG.js → chunk.PPOTUWL3.js} +13 -13
  189. package/dist/chunks/chunk.PPOTUWL3.js.map +7 -0
  190. package/dist/chunks/{chunk.IEPQIQCD.js → chunk.PSR5RQX5.js} +2 -2
  191. package/dist/chunks/{chunk.G4URZQCL.js → chunk.PTRCO527.js} +1 -1
  192. package/dist/chunks/chunk.PTRCO527.js.map +7 -0
  193. package/dist/chunks/{chunk.PKYC7QF3.js → chunk.Q5EKPQBR.js} +1 -1
  194. package/dist/chunks/chunk.Q5EKPQBR.js.map +7 -0
  195. package/dist/chunks/{chunk.6EKUFYET.js → chunk.Q6HZ4JXR.js} +1 -1
  196. package/dist/chunks/chunk.Q6HZ4JXR.js.map +7 -0
  197. package/dist/chunks/{chunk.U7O7432Y.js → chunk.QHX346G7.js} +2 -2
  198. package/dist/chunks/chunk.QHX346G7.js.map +7 -0
  199. package/dist/chunks/{chunk.OAQRCZOO.js → chunk.QLETXF4A.js} +2 -2
  200. package/dist/chunks/chunk.QLETXF4A.js.map +7 -0
  201. package/dist/chunks/{chunk.UOQ4AOFC.js → chunk.QPZJTDAZ.js} +2 -2
  202. package/dist/chunks/{chunk.CBQRADQA.js → chunk.QQFSMQ37.js} +2 -2
  203. package/dist/chunks/chunk.QQFSMQ37.js.map +7 -0
  204. package/dist/chunks/{chunk.YVTRDHMM.js → chunk.QSSDP7SD.js} +7 -7
  205. package/dist/chunks/{chunk.C4JTZKPZ.js → chunk.R3SMKUIL.js} +1 -1
  206. package/dist/chunks/chunk.R3SMKUIL.js.map +7 -0
  207. package/dist/chunks/{chunk.OEOU5X7P.js → chunk.R4KRX3HP.js} +2 -2
  208. package/dist/chunks/chunk.R4KRX3HP.js.map +7 -0
  209. package/dist/chunks/{chunk.ADSEQZBF.js → chunk.RJUVM6NO.js} +1 -1
  210. package/dist/chunks/chunk.RJUVM6NO.js.map +7 -0
  211. package/dist/chunks/{chunk.YTEJW7IF.js → chunk.RODNHT5C.js} +2 -2
  212. package/dist/chunks/chunk.RODNHT5C.js.map +7 -0
  213. package/dist/chunks/{chunk.2WOSSTKK.js → chunk.RY3ZM7MQ.js} +2 -2
  214. package/dist/chunks/{chunk.7GJ6YOL7.js → chunk.S362IGFM.js} +12 -12
  215. package/dist/chunks/chunk.S362IGFM.js.map +7 -0
  216. package/dist/chunks/{chunk.BIXA6XPE.js → chunk.S46B7VZA.js} +2 -2
  217. package/dist/chunks/{chunk.JE5Y2YD7.js → chunk.SMIMHADA.js} +1 -1
  218. package/dist/chunks/chunk.SMIMHADA.js.map +7 -0
  219. package/dist/chunks/{chunk.O24WNQ4W.js → chunk.SQKP3P2V.js} +9 -9
  220. package/dist/chunks/chunk.SQKP3P2V.js.map +7 -0
  221. package/dist/chunks/{chunk.QWHBUNGK.js → chunk.SRY32QYH.js} +7 -7
  222. package/dist/chunks/chunk.SRY32QYH.js.map +7 -0
  223. package/dist/chunks/{chunk.7DBSMJLB.js → chunk.SYBGFDZR.js} +13 -13
  224. package/dist/chunks/chunk.SYBGFDZR.js.map +7 -0
  225. package/dist/chunks/{chunk.P3W7SDQW.js → chunk.T3OH2LR6.js} +5 -5
  226. package/dist/chunks/chunk.T3OH2LR6.js.map +7 -0
  227. package/dist/chunks/{chunk.YR4NKYMG.js → chunk.TAZAKWO5.js} +11 -11
  228. package/dist/chunks/chunk.TAZAKWO5.js.map +7 -0
  229. package/dist/chunks/{chunk.K2Y3Q3B4.js → chunk.TJ2I3X4N.js} +2 -2
  230. package/dist/chunks/chunk.TJ2I3X4N.js.map +7 -0
  231. package/dist/chunks/{chunk.IZX2QAKU.js → chunk.TMCA3VCF.js} +2 -2
  232. package/dist/chunks/chunk.TMCA3VCF.js.map +7 -0
  233. package/dist/chunks/{chunk.J2JXNOZY.js → chunk.TNBDJ6PX.js} +2 -2
  234. package/dist/chunks/chunk.TNBDJ6PX.js.map +7 -0
  235. package/dist/chunks/{chunk.DY7AWH4R.js → chunk.TODG4C7Y.js} +5 -5
  236. package/dist/chunks/chunk.TODG4C7Y.js.map +7 -0
  237. package/dist/chunks/{chunk.D6IIQDWJ.js → chunk.TVVJTCGG.js} +1 -1
  238. package/dist/chunks/chunk.TVVJTCGG.js.map +7 -0
  239. package/dist/chunks/{chunk.ATRUHDOS.js → chunk.U6HWY6PL.js} +11 -11
  240. package/dist/chunks/chunk.U6HWY6PL.js.map +7 -0
  241. package/dist/chunks/{chunk.KY52MMTX.js → chunk.U6RI62CP.js} +10 -10
  242. package/dist/chunks/{chunk.KY52MMTX.js.map → chunk.U6RI62CP.js.map} +2 -2
  243. package/dist/chunks/{chunk.5SQ7NVBX.js → chunk.UB4EPKCP.js} +1 -1
  244. package/dist/chunks/chunk.UB4EPKCP.js.map +7 -0
  245. package/dist/chunks/{chunk.N7QJ54ZM.js → chunk.UORFJFA2.js} +1 -1
  246. package/dist/chunks/chunk.UORFJFA2.js.map +7 -0
  247. package/dist/chunks/{chunk.C2CWYCOU.js → chunk.V37RYGE7.js} +1 -1
  248. package/dist/chunks/chunk.V37RYGE7.js.map +7 -0
  249. package/dist/chunks/{chunk.KIY5IDWY.js → chunk.VG63OTN3.js} +2 -2
  250. package/dist/chunks/chunk.VG63OTN3.js.map +7 -0
  251. package/dist/chunks/{chunk.PSO3VL25.js → chunk.VJQZ76BR.js} +7 -7
  252. package/dist/chunks/chunk.VJQZ76BR.js.map +7 -0
  253. package/dist/chunks/{chunk.FLJJ2OCR.js → chunk.VL3GX6WV.js} +5 -1
  254. package/dist/chunks/chunk.VL3GX6WV.js.map +7 -0
  255. package/dist/chunks/{chunk.QUM76UHV.js → chunk.VPL7U5EC.js} +1 -1
  256. package/dist/chunks/chunk.VPL7U5EC.js.map +7 -0
  257. package/dist/chunks/{chunk.FM6IAWK2.js → chunk.VWDX7DJ6.js} +2 -2
  258. package/dist/chunks/chunk.VWDX7DJ6.js.map +7 -0
  259. package/dist/chunks/{chunk.FBQ7NUNW.js → chunk.VWFRCPN5.js} +2 -2
  260. package/dist/chunks/chunk.VWFRCPN5.js.map +7 -0
  261. package/dist/chunks/{chunk.KLUICBMV.js → chunk.WBOHZGDF.js} +4 -4
  262. package/dist/chunks/chunk.WBOHZGDF.js.map +7 -0
  263. package/dist/chunks/{chunk.S22BO5SF.js → chunk.WRPQ3635.js} +1 -1
  264. package/dist/chunks/chunk.WRPQ3635.js.map +7 -0
  265. package/dist/chunks/{chunk.4K75N3WR.js → chunk.WSPPSCSY.js} +2 -2
  266. package/dist/chunks/chunk.WSPPSCSY.js.map +7 -0
  267. package/dist/chunks/{chunk.SIX2VPOZ.js → chunk.WT3TWFBE.js} +2 -2
  268. package/dist/chunks/chunk.WT3TWFBE.js.map +7 -0
  269. package/dist/chunks/{chunk.4TB35TYG.js → chunk.X323W6VB.js} +1 -1
  270. package/dist/chunks/chunk.X323W6VB.js.map +7 -0
  271. package/dist/chunks/{chunk.6EPU7YUS.js → chunk.X5NFOV5A.js} +1 -1
  272. package/dist/chunks/chunk.X5NFOV5A.js.map +7 -0
  273. package/dist/chunks/{chunk.M7VZBJK4.js → chunk.XMOH46TX.js} +5 -5
  274. package/dist/chunks/chunk.XMOH46TX.js.map +7 -0
  275. package/dist/chunks/{chunk.DQKV5FSY.js → chunk.XRSLCQH3.js} +1 -1
  276. package/dist/chunks/chunk.XRSLCQH3.js.map +7 -0
  277. package/dist/chunks/{chunk.ERWB2FQ7.js → chunk.XWRABNCX.js} +10 -10
  278. package/dist/chunks/chunk.XWRABNCX.js.map +7 -0
  279. package/dist/chunks/{chunk.YYZLHE7T.js → chunk.Y6ARGQPK.js} +5 -5
  280. package/dist/chunks/chunk.Y6ARGQPK.js.map +7 -0
  281. package/dist/chunks/{chunk.MLILJGXQ.js → chunk.YACUYJZN.js} +2 -2
  282. package/dist/chunks/{chunk.EHSNF4SS.js → chunk.YITQ6NLI.js} +1 -1
  283. package/dist/chunks/chunk.YITQ6NLI.js.map +7 -0
  284. package/dist/chunks/{chunk.O644HRW3.js → chunk.YOFWLXEH.js} +1 -1
  285. package/dist/chunks/chunk.YOFWLXEH.js.map +7 -0
  286. package/dist/chunks/{chunk.WLWQYPRE.js → chunk.YONCZQL6.js} +3 -3
  287. package/dist/chunks/{chunk.K62NPKGN.js → chunk.YPYFEST2.js} +1 -1
  288. package/dist/chunks/chunk.YPYFEST2.js.map +7 -0
  289. package/dist/chunks/{chunk.A7WDJ7EI.js → chunk.Z7MROUJG.js} +2 -2
  290. package/dist/chunks/chunk.Z7MROUJG.js.map +7 -0
  291. package/dist/chunks/{chunk.6OX2AX3Z.js → chunk.ZC3GXTWV.js} +1 -1
  292. package/dist/chunks/chunk.ZC3GXTWV.js.map +7 -0
  293. package/dist/chunks/{chunk.4BRJ5OJE.js → chunk.ZXEPSSXQ.js} +2 -2
  294. package/dist/chunks/chunk.ZXEPSSXQ.js.map +7 -0
  295. package/dist/chunks/{chunk.ELWMR5SE.js → chunk.ZXYCYTZH.js} +2 -2
  296. package/dist/chunks/chunk.ZXYCYTZH.js.map +7 -0
  297. package/dist/components/accordion/accordion.component.js +7 -7
  298. package/dist/components/accordion/accordion.js +8 -8
  299. package/dist/components/alert/alert.component.d.ts +0 -6
  300. package/dist/components/alert/alert.component.js +21 -21
  301. package/dist/components/alert/alert.d.ts +0 -6
  302. package/dist/components/alert/alert.js +22 -22
  303. package/dist/components/alert/alert.styles.d.ts +0 -6
  304. package/dist/components/alert/alert.styles.js +1 -1
  305. package/dist/components/badge/badge.component.d.ts +0 -6
  306. package/dist/components/badge/badge.component.js +9 -9
  307. package/dist/components/badge/badge.d.ts +0 -6
  308. package/dist/components/badge/badge.js +10 -10
  309. package/dist/components/badge/badge.styles.d.ts +0 -6
  310. package/dist/components/badge/badge.styles.js +1 -1
  311. package/dist/components/breadcrumb/breadcrumb.component.d.ts +0 -6
  312. package/dist/components/breadcrumb/breadcrumb.component.js +12 -12
  313. package/dist/components/breadcrumb/breadcrumb.d.ts +0 -6
  314. package/dist/components/breadcrumb/breadcrumb.js +13 -13
  315. package/dist/components/breadcrumb/breadcrumb.styles.d.ts +0 -6
  316. package/dist/components/breadcrumb/breadcrumb.styles.js +1 -1
  317. package/dist/components/breadcrumb-item/breadcrumb-item.component.d.ts +0 -6
  318. package/dist/components/breadcrumb-item/breadcrumb-item.component.js +6 -6
  319. package/dist/components/breadcrumb-item/breadcrumb-item.d.ts +0 -6
  320. package/dist/components/breadcrumb-item/breadcrumb-item.js +7 -7
  321. package/dist/components/breadcrumb-item/breadcrumb-item.styles.d.ts +0 -6
  322. package/dist/components/breadcrumb-item/breadcrumb-item.styles.js +1 -1
  323. package/dist/components/button/button.component.d.ts +0 -6
  324. package/dist/components/button/button.component.js +19 -19
  325. package/dist/components/button/button.d.ts +0 -6
  326. package/dist/components/button/button.js +20 -20
  327. package/dist/components/button/button.styles.d.ts +0 -6
  328. package/dist/components/button/button.styles.js +1 -1
  329. package/dist/components/button-group/button-group.component.d.ts +0 -6
  330. package/dist/components/button-group/button-group.component.js +7 -7
  331. package/dist/components/button-group/button-group.d.ts +0 -6
  332. package/dist/components/button-group/button-group.js +8 -8
  333. package/dist/components/button-group/button-group.styles.d.ts +0 -6
  334. package/dist/components/button-group/button-group.styles.js +1 -1
  335. package/dist/components/card/card.component.d.ts +0 -6
  336. package/dist/components/card/card.component.js +5 -5
  337. package/dist/components/card/card.d.ts +0 -6
  338. package/dist/components/card/card.js +6 -6
  339. package/dist/components/card/card.styles.d.ts +0 -6
  340. package/dist/components/card/card.styles.js +1 -1
  341. package/dist/components/checkbox/checkbox.component.d.ts +0 -6
  342. package/dist/components/checkbox/checkbox.component.js +17 -17
  343. package/dist/components/checkbox/checkbox.d.ts +0 -6
  344. package/dist/components/checkbox/checkbox.js +18 -18
  345. package/dist/components/checkbox/checkbox.styles.d.ts +0 -6
  346. package/dist/components/checkbox/checkbox.styles.js +1 -1
  347. package/dist/components/combobox/combobox.component.d.ts +125 -17
  348. package/dist/components/combobox/combobox.component.js +36 -30
  349. package/dist/components/combobox/combobox.custom.styles.js +1 -1
  350. package/dist/components/combobox/combobox.js +37 -31
  351. package/dist/components/combobox/combobox.styles.d.ts +0 -6
  352. package/dist/components/combobox/combobox.styles.js +1 -1
  353. package/dist/components/combobox/option-renderer.js +1 -1
  354. package/dist/components/combobox/utils.d.ts +8 -1
  355. package/dist/components/combobox/utils.js +3 -1
  356. package/dist/components/details/details.component.d.ts +0 -6
  357. package/dist/components/details/details.component.js +18 -18
  358. package/dist/components/details/details.d.ts +0 -6
  359. package/dist/components/details/details.js +19 -19
  360. package/dist/components/details/details.styles.d.ts +0 -6
  361. package/dist/components/details/details.styles.js +1 -1
  362. package/dist/components/dialog/dialog.component.d.ts +0 -6
  363. package/dist/components/dialog/dialog.component.js +24 -24
  364. package/dist/components/dialog/dialog.d.ts +0 -6
  365. package/dist/components/dialog/dialog.js +25 -25
  366. package/dist/components/dialog/dialog.styles.d.ts +0 -6
  367. package/dist/components/dialog/dialog.styles.js +1 -1
  368. package/dist/components/divider/divider.component.d.ts +0 -6
  369. package/dist/components/divider/divider.component.js +5 -5
  370. package/dist/components/divider/divider.d.ts +0 -6
  371. package/dist/components/divider/divider.js +6 -6
  372. package/dist/components/divider/divider.styles.d.ts +0 -6
  373. package/dist/components/divider/divider.styles.js +1 -1
  374. package/dist/components/drawer/drawer.component.d.ts +0 -6
  375. package/dist/components/drawer/drawer.component.js +24 -24
  376. package/dist/components/drawer/drawer.d.ts +0 -6
  377. package/dist/components/drawer/drawer.js +25 -25
  378. package/dist/components/drawer/drawer.styles.d.ts +0 -6
  379. package/dist/components/drawer/drawer.styles.js +1 -1
  380. package/dist/components/dropdown/dropdown.component.d.ts +0 -6
  381. package/dist/components/dropdown/dropdown.component.js +13 -13
  382. package/dist/components/dropdown/dropdown.d.ts +0 -6
  383. package/dist/components/dropdown/dropdown.js +14 -14
  384. package/dist/components/dropdown/dropdown.styles.d.ts +0 -6
  385. package/dist/components/dropdown/dropdown.styles.js +1 -1
  386. package/dist/components/file/file.component.js +24 -24
  387. package/dist/components/file/file.js +25 -25
  388. package/dist/components/header/header.component.js +13 -13
  389. package/dist/components/header/header.js +14 -14
  390. package/dist/components/icon/icon.component.d.ts +0 -6
  391. package/dist/components/icon/icon.component.js +8 -8
  392. package/dist/components/icon/icon.d.ts +0 -6
  393. package/dist/components/icon/icon.js +9 -9
  394. package/dist/components/icon/icon.styles.d.ts +0 -6
  395. package/dist/components/icon/icon.styles.js +1 -1
  396. package/dist/components/icon/library.d.ts +0 -6
  397. package/dist/components/icon/library.default.d.ts +0 -6
  398. package/dist/components/icon/library.default.js +2 -2
  399. package/dist/components/icon/library.js +3 -3
  400. package/dist/components/icon/library.migration.js +4 -4
  401. package/dist/components/icon-button/icon-button.component.d.ts +0 -6
  402. package/dist/components/icon-button/icon-button.component.js +13 -13
  403. package/dist/components/icon-button/icon-button.d.ts +0 -6
  404. package/dist/components/icon-button/icon-button.js +14 -14
  405. package/dist/components/icon-button/icon-button.styles.d.ts +0 -6
  406. package/dist/components/icon-button/icon-button.styles.js +1 -1
  407. package/dist/components/input/input.component.d.ts +0 -6
  408. package/dist/components/input/input.component.js +21 -21
  409. package/dist/components/input/input.d.ts +0 -6
  410. package/dist/components/input/input.js +22 -22
  411. package/dist/components/input/input.styles.d.ts +0 -6
  412. package/dist/components/input/input.styles.js +1 -1
  413. package/dist/components/menu/menu.component.d.ts +0 -6
  414. package/dist/components/menu/menu.component.js +4 -4
  415. package/dist/components/menu/menu.d.ts +0 -6
  416. package/dist/components/menu/menu.js +5 -5
  417. package/dist/components/menu/menu.styles.d.ts +0 -6
  418. package/dist/components/menu/menu.styles.js +1 -1
  419. package/dist/components/menu-item/menu-item.component.d.ts +0 -6
  420. package/dist/components/menu-item/menu-item.component.js +18 -18
  421. package/dist/components/menu-item/menu-item.d.ts +0 -6
  422. package/dist/components/menu-item/menu-item.js +19 -19
  423. package/dist/components/menu-item/menu-item.styles.d.ts +0 -6
  424. package/dist/components/menu-item/menu-item.styles.js +1 -1
  425. package/dist/components/menu-item/submenu-controller.d.ts +0 -6
  426. package/dist/components/menu-item/submenu-controller.js +2 -2
  427. package/dist/components/menu-label/menu-label.component.d.ts +0 -6
  428. package/dist/components/menu-label/menu-label.component.js +7 -7
  429. package/dist/components/menu-label/menu-label.d.ts +0 -6
  430. package/dist/components/menu-label/menu-label.js +8 -8
  431. package/dist/components/menu-label/menu-label.styles.d.ts +0 -6
  432. package/dist/components/menu-label/menu-label.styles.js +1 -1
  433. package/dist/components/nav-item/nav-item.component.js +12 -12
  434. package/dist/components/nav-item/nav-item.js +13 -13
  435. package/dist/components/optgroup/optgroup.component.js +7 -7
  436. package/dist/components/optgroup/optgroup.js +8 -8
  437. package/dist/components/option/option.component.d.ts +0 -6
  438. package/dist/components/option/option.component.js +17 -12
  439. package/dist/components/option/option.d.ts +0 -6
  440. package/dist/components/option/option.js +18 -13
  441. package/dist/components/option/option.styles.d.ts +0 -6
  442. package/dist/components/option/option.styles.js +1 -1
  443. package/dist/components/popup/popup.component.d.ts +0 -6
  444. package/dist/components/popup/popup.component.js +6 -6
  445. package/dist/components/popup/popup.d.ts +0 -6
  446. package/dist/components/popup/popup.js +7 -7
  447. package/dist/components/popup/popup.styles.d.ts +0 -6
  448. package/dist/components/popup/popup.styles.js +1 -1
  449. package/dist/components/prio-nav/prio-nav.component.js +25 -25
  450. package/dist/components/prio-nav/prio-nav.js +26 -26
  451. package/dist/components/progress-bar/progress-bar.component.d.ts +0 -6
  452. package/dist/components/progress-bar/progress-bar.component.js +6 -6
  453. package/dist/components/progress-bar/progress-bar.d.ts +0 -6
  454. package/dist/components/progress-bar/progress-bar.js +7 -7
  455. package/dist/components/progress-bar/progress-bar.styles.d.ts +0 -6
  456. package/dist/components/progress-bar/progress-bar.styles.js +1 -1
  457. package/dist/components/progress-ring/progress-ring.component.d.ts +0 -6
  458. package/dist/components/progress-ring/progress-ring.component.js +6 -6
  459. package/dist/components/progress-ring/progress-ring.d.ts +0 -6
  460. package/dist/components/progress-ring/progress-ring.js +7 -7
  461. package/dist/components/progress-ring/progress-ring.styles.d.ts +0 -6
  462. package/dist/components/progress-ring/progress-ring.styles.js +1 -1
  463. package/dist/components/radio/radio.component.d.ts +0 -6
  464. package/dist/components/radio/radio.component.js +13 -13
  465. package/dist/components/radio/radio.d.ts +0 -6
  466. package/dist/components/radio/radio.js +14 -14
  467. package/dist/components/radio/radio.styles.d.ts +0 -6
  468. package/dist/components/radio/radio.styles.js +1 -1
  469. package/dist/components/radio-button/radio-button.component.d.ts +0 -6
  470. package/dist/components/radio-button/radio-button.component.js +10 -10
  471. package/dist/components/radio-button/radio-button.d.ts +0 -6
  472. package/dist/components/radio-button/radio-button.js +11 -11
  473. package/dist/components/radio-button/radio-button.styles.d.ts +0 -6
  474. package/dist/components/radio-button/radio-button.styles.js +2 -2
  475. package/dist/components/radio-group/radio-group.component.d.ts +0 -6
  476. package/dist/components/radio-group/radio-group.component.js +13 -13
  477. package/dist/components/radio-group/radio-group.d.ts +0 -6
  478. package/dist/components/radio-group/radio-group.js +14 -14
  479. package/dist/components/radio-group/radio-group.styles.d.ts +0 -6
  480. package/dist/components/radio-group/radio-group.styles.js +1 -1
  481. package/dist/components/range/range.component.js +20 -20
  482. package/dist/components/range/range.js +21 -21
  483. package/dist/components/range-tick/range-tick.component.js +3 -3
  484. package/dist/components/range-tick/range-tick.js +4 -4
  485. package/dist/components/resize-observer/resize-observer.component.d.ts +0 -6
  486. package/dist/components/resize-observer/resize-observer.component.js +5 -5
  487. package/dist/components/resize-observer/resize-observer.styles.d.ts +0 -6
  488. package/dist/components/resize-observer/resize-observer.styles.js +1 -1
  489. package/dist/components/select/select.component.d.ts +0 -6
  490. package/dist/components/select/select.component.js +29 -29
  491. package/dist/components/select/select.d.ts +0 -6
  492. package/dist/components/select/select.js +30 -30
  493. package/dist/components/select/select.styles.d.ts +0 -6
  494. package/dist/components/select/select.styles.js +1 -1
  495. package/dist/components/side-nav/side-nav.component.js +28 -28
  496. package/dist/components/side-nav/side-nav.js +29 -29
  497. package/dist/components/spinner/spinner.component.d.ts +0 -6
  498. package/dist/components/spinner/spinner.component.js +6 -6
  499. package/dist/components/spinner/spinner.d.ts +0 -6
  500. package/dist/components/spinner/spinner.js +7 -7
  501. package/dist/components/spinner/spinner.styles.d.ts +0 -6
  502. package/dist/components/spinner/spinner.styles.js +1 -1
  503. package/dist/components/switch/switch.component.d.ts +0 -6
  504. package/dist/components/switch/switch.component.js +12 -12
  505. package/dist/components/switch/switch.d.ts +0 -6
  506. package/dist/components/switch/switch.js +13 -13
  507. package/dist/components/switch/switch.styles.d.ts +0 -6
  508. package/dist/components/switch/switch.styles.js +1 -1
  509. package/dist/components/tab/tab.component.d.ts +0 -6
  510. package/dist/components/tab/tab.component.js +17 -17
  511. package/dist/components/tab/tab.d.ts +0 -6
  512. package/dist/components/tab/tab.js +18 -18
  513. package/dist/components/tab/tab.styles.d.ts +0 -6
  514. package/dist/components/tab/tab.styles.js +1 -1
  515. package/dist/components/tab-group/tab-group.component.d.ts +0 -6
  516. package/dist/components/tab-group/tab-group.component.js +20 -20
  517. package/dist/components/tab-group/tab-group.d.ts +0 -6
  518. package/dist/components/tab-group/tab-group.js +21 -21
  519. package/dist/components/tab-group/tab-group.styles.d.ts +0 -6
  520. package/dist/components/tab-group/tab-group.styles.js +1 -1
  521. package/dist/components/tab-panel/tab-panel.component.d.ts +0 -6
  522. package/dist/components/tab-panel/tab-panel.component.js +5 -5
  523. package/dist/components/tab-panel/tab-panel.d.ts +0 -6
  524. package/dist/components/tab-panel/tab-panel.js +6 -6
  525. package/dist/components/tab-panel/tab-panel.styles.d.ts +0 -6
  526. package/dist/components/tab-panel/tab-panel.styles.js +1 -1
  527. package/dist/components/tag/tag.component.d.ts +0 -6
  528. package/dist/components/tag/tag.component.js +17 -17
  529. package/dist/components/tag/tag.d.ts +0 -6
  530. package/dist/components/tag/tag.js +18 -18
  531. package/dist/components/tag/tag.styles.d.ts +0 -6
  532. package/dist/components/tag/tag.styles.js +1 -1
  533. package/dist/components/textarea/textarea.component.d.ts +0 -6
  534. package/dist/components/textarea/textarea.component.js +12 -12
  535. package/dist/components/textarea/textarea.d.ts +0 -6
  536. package/dist/components/textarea/textarea.js +13 -13
  537. package/dist/components/textarea/textarea.styles.d.ts +0 -6
  538. package/dist/components/textarea/textarea.styles.js +1 -1
  539. package/dist/components/tooltip/tooltip.component.d.ts +0 -6
  540. package/dist/components/tooltip/tooltip.component.js +12 -12
  541. package/dist/components/tooltip/tooltip.d.ts +0 -6
  542. package/dist/components/tooltip/tooltip.js +13 -13
  543. package/dist/components/tooltip/tooltip.styles.d.ts +0 -6
  544. package/dist/components/tooltip/tooltip.styles.js +1 -1
  545. package/dist/components/validate/utility.js +2 -2
  546. package/dist/components/validate/validate.component.js +23 -23
  547. package/dist/components/validate/validate.js +24 -24
  548. package/dist/custom-elements.json +288 -54
  549. package/dist/events/syn-after-hide.d.ts +0 -6
  550. package/dist/events/syn-after-show.d.ts +0 -6
  551. package/dist/events/syn-blur.d.ts +0 -6
  552. package/dist/events/syn-change.d.ts +0 -6
  553. package/dist/events/syn-clear.d.ts +0 -6
  554. package/dist/events/syn-close.d.ts +0 -6
  555. package/dist/events/syn-error.d.ts +0 -6
  556. package/dist/events/syn-focus.d.ts +0 -6
  557. package/dist/events/syn-hide.d.ts +0 -6
  558. package/dist/events/syn-initial-focus.d.ts +0 -6
  559. package/dist/events/syn-input.d.ts +0 -6
  560. package/dist/events/syn-invalid.d.ts +0 -6
  561. package/dist/events/syn-load.d.ts +0 -6
  562. package/dist/events/syn-remove.d.ts +0 -6
  563. package/dist/events/syn-reposition.d.ts +0 -6
  564. package/dist/events/syn-request-close.d.ts +0 -6
  565. package/dist/events/syn-resize.d.ts +0 -6
  566. package/dist/events/syn-select.d.ts +0 -6
  567. package/dist/events/syn-show.d.ts +0 -6
  568. package/dist/events/syn-tab-hide.d.ts +0 -6
  569. package/dist/events/syn-tab-show.d.ts +0 -6
  570. package/dist/internal/active-elements.d.ts +0 -6
  571. package/dist/internal/animate.d.ts +0 -6
  572. package/dist/internal/default-value.d.ts +0 -6
  573. package/dist/internal/event.d.ts +0 -6
  574. package/dist/internal/form.d.ts +0 -6
  575. package/dist/internal/modal.d.ts +0 -6
  576. package/dist/internal/offset.d.ts +0 -6
  577. package/dist/internal/scroll.d.ts +0 -6
  578. package/dist/internal/scrollend-polyfill.d.ts +0 -6
  579. package/dist/internal/slot.d.ts +0 -6
  580. package/dist/internal/string.d.ts +0 -6
  581. package/dist/internal/synergy-element.d.ts +0 -6
  582. package/dist/internal/tabbable.d.ts +0 -6
  583. package/dist/internal/test/data-testid-helpers.d.ts +0 -6
  584. package/dist/internal/test/element-visible-overflow.d.ts +0 -6
  585. package/dist/internal/test/form-control-base-tests.d.ts +0 -6
  586. package/dist/internal/test/wait-for-scrolling.d.ts +0 -6
  587. package/dist/internal/test.d.ts +0 -6
  588. package/dist/internal/watch.d.ts +0 -6
  589. package/dist/styles/component.styles.d.ts +0 -6
  590. package/dist/styles/form-control.styles.d.ts +0 -6
  591. package/dist/styles/index.css +1 -7
  592. package/dist/styles/utility.css +0 -6
  593. package/dist/synergy-autoloader.d.ts +0 -6
  594. package/dist/synergy-autoloader.js +1 -1
  595. package/dist/synergy-autoloader.js.map +2 -2
  596. package/dist/synergy.js +165 -165
  597. package/dist/translations/de.d.ts +0 -6
  598. package/dist/translations/de.js +3 -4
  599. package/dist/translations/de.js.map +2 -2
  600. package/dist/translations/en.d.ts +0 -6
  601. package/dist/translations/en.js +1 -1
  602. package/dist/utilities/animation-registry.d.ts +0 -6
  603. package/dist/utilities/animation-registry.js +1 -1
  604. package/dist/utilities/base-path.d.ts +0 -6
  605. package/dist/utilities/base-path.js +1 -1
  606. package/dist/utilities/defaultSettings/base.d.ts +4 -1
  607. package/dist/utilities/defaultSettings/base.js +1 -1
  608. package/dist/utilities/defaultSettings/decorator.js +3 -3
  609. package/dist/utilities/defaultSettings/functions.js +2 -2
  610. package/dist/utilities/defaultSettings/index.js +3 -3
  611. package/dist/utilities/form.d.ts +0 -6
  612. package/dist/utilities/form.js +2 -2
  613. package/dist/utilities/icon-library.d.ts +0 -6
  614. package/dist/utilities/icon-library.js +3 -3
  615. package/dist/utilities/localize.d.ts +0 -6
  616. package/dist/utilities/localize.js +2 -2
  617. package/dist/vscode.html-custom-data.json +30 -7
  618. package/package.json +21 -31
  619. package/dist/chunks/chunk.234ERFCE.js.map +0 -7
  620. package/dist/chunks/chunk.2QDRZ3C6.js.map +0 -7
  621. package/dist/chunks/chunk.34V3QOIQ.js.map +0 -7
  622. package/dist/chunks/chunk.3NXKLKWH.js.map +0 -7
  623. package/dist/chunks/chunk.3PGJQYXW.js.map +0 -7
  624. package/dist/chunks/chunk.43YNZAWL.js.map +0 -7
  625. package/dist/chunks/chunk.4BRJ5OJE.js.map +0 -7
  626. package/dist/chunks/chunk.4K75N3WR.js.map +0 -7
  627. package/dist/chunks/chunk.4M4LRUZD.js.map +0 -7
  628. package/dist/chunks/chunk.4PUQDU4T.js.map +0 -7
  629. package/dist/chunks/chunk.4TB35TYG.js.map +0 -7
  630. package/dist/chunks/chunk.4VOWXLEZ.js.map +0 -7
  631. package/dist/chunks/chunk.5732DMBC.js.map +0 -7
  632. package/dist/chunks/chunk.5E5HEAZN.js.map +0 -7
  633. package/dist/chunks/chunk.5ORVYCVV.js.map +0 -7
  634. package/dist/chunks/chunk.5SQ7NVBX.js.map +0 -7
  635. package/dist/chunks/chunk.6EKUFYET.js.map +0 -7
  636. package/dist/chunks/chunk.6EPU7YUS.js.map +0 -7
  637. package/dist/chunks/chunk.6GWSQWLE.js.map +0 -7
  638. package/dist/chunks/chunk.6OX2AX3Z.js.map +0 -7
  639. package/dist/chunks/chunk.75RQ52LL.js.map +0 -7
  640. package/dist/chunks/chunk.7DBSMJLB.js.map +0 -7
  641. package/dist/chunks/chunk.7GJ6YOL7.js.map +0 -7
  642. package/dist/chunks/chunk.7GUK7OKG.js.map +0 -7
  643. package/dist/chunks/chunk.7ZHTDECG.js.map +0 -7
  644. package/dist/chunks/chunk.A7WDJ7EI.js.map +0 -7
  645. package/dist/chunks/chunk.ADSEQZBF.js.map +0 -7
  646. package/dist/chunks/chunk.AQITYSQX.js.map +0 -7
  647. package/dist/chunks/chunk.ATRUHDOS.js.map +0 -7
  648. package/dist/chunks/chunk.AXFQGZJC.js.map +0 -7
  649. package/dist/chunks/chunk.AZ3N5IOO.js.map +0 -7
  650. package/dist/chunks/chunk.BIJTSOZF.js +0 -43
  651. package/dist/chunks/chunk.BIJTSOZF.js.map +0 -7
  652. package/dist/chunks/chunk.BJIZS3FU.js.map +0 -7
  653. package/dist/chunks/chunk.BMHWOQRC.js.map +0 -7
  654. package/dist/chunks/chunk.BXY667C7.js.map +0 -7
  655. package/dist/chunks/chunk.C2CWYCOU.js.map +0 -7
  656. package/dist/chunks/chunk.C2ENQBPM.js.map +0 -7
  657. package/dist/chunks/chunk.C4JTZKPZ.js.map +0 -7
  658. package/dist/chunks/chunk.CBQRADQA.js.map +0 -7
  659. package/dist/chunks/chunk.CUJDP53J.js.map +0 -7
  660. package/dist/chunks/chunk.D6IIQDWJ.js.map +0 -7
  661. package/dist/chunks/chunk.DGU5AZZG.js.map +0 -7
  662. package/dist/chunks/chunk.DQKV5FSY.js.map +0 -7
  663. package/dist/chunks/chunk.DU3L7OGA.js.map +0 -7
  664. package/dist/chunks/chunk.DY7AWH4R.js.map +0 -7
  665. package/dist/chunks/chunk.DZ7YIR5N.js.map +0 -7
  666. package/dist/chunks/chunk.DZSZDFCN.js.map +0 -7
  667. package/dist/chunks/chunk.EHSNF4SS.js.map +0 -7
  668. package/dist/chunks/chunk.ELWMR5SE.js.map +0 -7
  669. package/dist/chunks/chunk.ERWB2FQ7.js.map +0 -7
  670. package/dist/chunks/chunk.FBQ7NUNW.js.map +0 -7
  671. package/dist/chunks/chunk.FD2CG2HT.js.map +0 -7
  672. package/dist/chunks/chunk.FLJJ2OCR.js.map +0 -7
  673. package/dist/chunks/chunk.FM6IAWK2.js.map +0 -7
  674. package/dist/chunks/chunk.FQWBH6B3.js.map +0 -7
  675. package/dist/chunks/chunk.FSWTBNSI.js.map +0 -7
  676. package/dist/chunks/chunk.FSZIE7IO.js.map +0 -7
  677. package/dist/chunks/chunk.G4URZQCL.js.map +0 -7
  678. package/dist/chunks/chunk.GRVNUIP2.js.map +0 -7
  679. package/dist/chunks/chunk.HVXG4JG6.js.map +0 -7
  680. package/dist/chunks/chunk.I4TQPMB7.js.map +0 -7
  681. package/dist/chunks/chunk.I64H5F6D.js.map +0 -7
  682. package/dist/chunks/chunk.IAS6MLT6.js.map +0 -7
  683. package/dist/chunks/chunk.IBWQFVMJ.js.map +0 -7
  684. package/dist/chunks/chunk.IVM3BGRH.js.map +0 -7
  685. package/dist/chunks/chunk.IZX2QAKU.js.map +0 -7
  686. package/dist/chunks/chunk.J2JXNOZY.js.map +0 -7
  687. package/dist/chunks/chunk.JE5Y2YD7.js.map +0 -7
  688. package/dist/chunks/chunk.JKSFECFA.js.map +0 -7
  689. package/dist/chunks/chunk.JLXCLATV.js.map +0 -7
  690. package/dist/chunks/chunk.JX55XGPA.js.map +0 -7
  691. package/dist/chunks/chunk.K2Y3Q3B4.js.map +0 -7
  692. package/dist/chunks/chunk.K3WSJSRV.js.map +0 -7
  693. package/dist/chunks/chunk.K62NPKGN.js.map +0 -7
  694. package/dist/chunks/chunk.KCLOTN4Z.js.map +0 -7
  695. package/dist/chunks/chunk.KIY5IDWY.js.map +0 -7
  696. package/dist/chunks/chunk.KLUICBMV.js.map +0 -7
  697. package/dist/chunks/chunk.KOLE63RX.js.map +0 -7
  698. package/dist/chunks/chunk.KTBISG3Q.js.map +0 -7
  699. package/dist/chunks/chunk.KW5TWA5Y.js.map +0 -7
  700. package/dist/chunks/chunk.L7GQHKZX.js.map +0 -7
  701. package/dist/chunks/chunk.M7VZBJK4.js.map +0 -7
  702. package/dist/chunks/chunk.MPSNGSXQ.js.map +0 -7
  703. package/dist/chunks/chunk.MU43DZ7W.js.map +0 -7
  704. package/dist/chunks/chunk.N7QJ54ZM.js.map +0 -7
  705. package/dist/chunks/chunk.NLYVOJGK.js.map +0 -7
  706. package/dist/chunks/chunk.NVT2EKF6.js.map +0 -7
  707. package/dist/chunks/chunk.O24WNQ4W.js.map +0 -7
  708. package/dist/chunks/chunk.O644HRW3.js.map +0 -7
  709. package/dist/chunks/chunk.O6ZH6AOI.js.map +0 -7
  710. package/dist/chunks/chunk.OAQRCZOO.js.map +0 -7
  711. package/dist/chunks/chunk.OEOU5X7P.js.map +0 -7
  712. package/dist/chunks/chunk.OI3HOOCT.js.map +0 -7
  713. package/dist/chunks/chunk.P3W7SDQW.js.map +0 -7
  714. package/dist/chunks/chunk.PAM2UCZU.js.map +0 -7
  715. package/dist/chunks/chunk.PKYC7QF3.js.map +0 -7
  716. package/dist/chunks/chunk.PSO3VL25.js.map +0 -7
  717. package/dist/chunks/chunk.Q6XDV7O7.js.map +0 -7
  718. package/dist/chunks/chunk.QCAMWDPP.js.map +0 -7
  719. package/dist/chunks/chunk.QS53GZR4.js.map +0 -7
  720. package/dist/chunks/chunk.QU47WZOK.js.map +0 -7
  721. package/dist/chunks/chunk.QUKSQV3V.js.map +0 -7
  722. package/dist/chunks/chunk.QUM76UHV.js.map +0 -7
  723. package/dist/chunks/chunk.QWHBUNGK.js.map +0 -7
  724. package/dist/chunks/chunk.RAOPZXJL.js.map +0 -7
  725. package/dist/chunks/chunk.RMIDAEF5.js.map +0 -7
  726. package/dist/chunks/chunk.S22BO5SF.js.map +0 -7
  727. package/dist/chunks/chunk.SIX2VPOZ.js.map +0 -7
  728. package/dist/chunks/chunk.SM4ANWX6.js.map +0 -7
  729. package/dist/chunks/chunk.U5757NSE.js.map +0 -7
  730. package/dist/chunks/chunk.U7O7432Y.js.map +0 -7
  731. package/dist/chunks/chunk.UIRABJTT.js.map +0 -7
  732. package/dist/chunks/chunk.UT3DWYFM.js.map +0 -7
  733. package/dist/chunks/chunk.V53NJJ67.js.map +0 -7
  734. package/dist/chunks/chunk.VA26EAEP.js.map +0 -7
  735. package/dist/chunks/chunk.VGI7V7OS.js.map +0 -7
  736. package/dist/chunks/chunk.VXC77KXR.js.map +0 -7
  737. package/dist/chunks/chunk.W4NRUZSV.js.map +0 -7
  738. package/dist/chunks/chunk.W66D3Q4F.js.map +0 -7
  739. package/dist/chunks/chunk.WENMEQB3.js.map +0 -7
  740. package/dist/chunks/chunk.WVVQK5TE.js.map +0 -7
  741. package/dist/chunks/chunk.X7XPEYAM.js.map +0 -7
  742. package/dist/chunks/chunk.XAQKFEHH.js.map +0 -7
  743. package/dist/chunks/chunk.XCNXSFFB.js.map +0 -7
  744. package/dist/chunks/chunk.XRDJZQBY.js.map +0 -7
  745. package/dist/chunks/chunk.XTWO6ZZW.js.map +0 -7
  746. package/dist/chunks/chunk.Y5TMYX2L.js.map +0 -7
  747. package/dist/chunks/chunk.YARPBFC7.js.map +0 -7
  748. package/dist/chunks/chunk.YR4NKYMG.js.map +0 -7
  749. package/dist/chunks/chunk.YTEJW7IF.js.map +0 -7
  750. package/dist/chunks/chunk.YYZLHE7T.js.map +0 -7
  751. package/dist/chunks/chunk.ZBW4ZSZ7.js.map +0 -7
  752. package/dist/chunks/chunk.ZJHL23CU.js.map +0 -7
  753. /package/dist/chunks/{chunk.KY3YPRYR.js.map → chunk.4XEXSCXG.js.map} +0 -0
  754. /package/dist/chunks/{chunk.6BGHUVA7.js.map → chunk.65442A47.js.map} +0 -0
  755. /package/dist/chunks/{chunk.BIRYJHTO.js.map → chunk.C5WF3K27.js.map} +0 -0
  756. /package/dist/chunks/{chunk.KUAYRSLT.js.map → chunk.DLHQKWGN.js.map} +0 -0
  757. /package/dist/chunks/{chunk.QAKD2SMK.js.map → chunk.H7JZRD2G.js.map} +0 -0
  758. /package/dist/chunks/{chunk.QZ3PTBET.js.map → chunk.JGZQEVJ6.js.map} +0 -0
  759. /package/dist/chunks/{chunk.3PWAIWL5.js.map → chunk.JSBJOKER.js.map} +0 -0
  760. /package/dist/chunks/{chunk.WBHDD3UR.js.map → chunk.K7ZS3OCZ.js.map} +0 -0
  761. /package/dist/chunks/{chunk.OAIHDW7S.js.map → chunk.MEFGUKU5.js.map} +0 -0
  762. /package/dist/chunks/{chunk.TFBMLDBM.js.map → chunk.MQKESAOP.js.map} +0 -0
  763. /package/dist/chunks/{chunk.7QGJAPLH.js.map → chunk.N6DEOPEC.js.map} +0 -0
  764. /package/dist/chunks/{chunk.RATZ2RGX.js.map → chunk.NKWPAQM3.js.map} +0 -0
  765. /package/dist/chunks/{chunk.YIQSTAST.js.map → chunk.NVYIJYVF.js.map} +0 -0
  766. /package/dist/chunks/{chunk.WP3FQE65.js.map → chunk.O2NJ7W2P.js.map} +0 -0
  767. /package/dist/chunks/{chunk.IEPQIQCD.js.map → chunk.PSR5RQX5.js.map} +0 -0
  768. /package/dist/chunks/{chunk.UOQ4AOFC.js.map → chunk.QPZJTDAZ.js.map} +0 -0
  769. /package/dist/chunks/{chunk.YVTRDHMM.js.map → chunk.QSSDP7SD.js.map} +0 -0
  770. /package/dist/chunks/{chunk.2WOSSTKK.js.map → chunk.RY3ZM7MQ.js.map} +0 -0
  771. /package/dist/chunks/{chunk.BIXA6XPE.js.map → chunk.S46B7VZA.js.map} +0 -0
  772. /package/dist/chunks/{chunk.MLILJGXQ.js.map → chunk.YACUYJZN.js.map} +0 -0
  773. /package/dist/chunks/{chunk.WLWQYPRE.js.map → chunk.YONCZQL6.js.map} +0 -0
@@ -1,12 +1,19 @@
1
+ import {
2
+ SynTag
3
+ } from "./chunk.SRY32QYH.js";
4
+ import {
5
+ compareValues,
6
+ isAllowedValue
7
+ } from "./chunk.VECCQZP5.js";
1
8
  import {
2
9
  SynOption
3
- } from "./chunk.4M4LRUZD.js";
10
+ } from "./chunk.2PW7XZZF.js";
4
11
  import {
5
12
  SynPopup
6
- } from "./chunk.P3W7SDQW.js";
13
+ } from "./chunk.T3OH2LR6.js";
7
14
  import {
8
15
  defaultOptionRenderer
9
- } from "./chunk.IAS6MLT6.js";
16
+ } from "./chunk.KLL2SVR7.js";
10
17
  import {
11
18
  checkValueBelongsToOption,
12
19
  createOptionFromDifferentTypes,
@@ -14,59 +21,57 @@ import {
14
21
  getAllOptions,
15
22
  getAssignedElementsForSlot,
16
23
  getValueFromOption,
24
+ getValuesFromOptions,
17
25
  normalizeString
18
- } from "./chunk.BWTMFHNM.js";
26
+ } from "./chunk.FVIRHFY6.js";
19
27
  import {
20
28
  scrollIntoView
21
- } from "./chunk.5732DMBC.js";
22
- import {
23
- defaultValue
24
- } from "./chunk.3NXKLKWH.js";
29
+ } from "./chunk.2DT3C6WE.js";
25
30
  import {
26
31
  form_control_custom_styles_default,
27
32
  form_control_styles_default
28
- } from "./chunk.G4URZQCL.js";
33
+ } from "./chunk.PTRCO527.js";
29
34
  import {
30
35
  combobox_custom_styles_default
31
- } from "./chunk.BIJTSOZF.js";
36
+ } from "./chunk.2IL4PA6Q.js";
32
37
  import {
33
38
  combobox_styles_default
34
- } from "./chunk.FD2CG2HT.js";
39
+ } from "./chunk.6AT5JL7A.js";
35
40
  import {
36
41
  FormControlController
37
- } from "./chunk.U5757NSE.js";
42
+ } from "./chunk.J3GDDM6Q.js";
38
43
  import {
39
44
  waitForEvent
40
- } from "./chunk.C2ENQBPM.js";
45
+ } from "./chunk.LQDIH4Z5.js";
41
46
  import {
42
47
  animateTo,
43
48
  stopAnimations
44
- } from "./chunk.6EKUFYET.js";
49
+ } from "./chunk.Q6HZ4JXR.js";
45
50
  import {
46
51
  getAnimation,
47
52
  setDefaultAnimation
48
- } from "./chunk.ADSEQZBF.js";
53
+ } from "./chunk.RJUVM6NO.js";
49
54
  import {
50
55
  HasSlotController
51
- } from "./chunk.WVVQK5TE.js";
56
+ } from "./chunk.CHFWLQN5.js";
52
57
  import {
53
58
  SynIcon
54
- } from "./chunk.Q6XDV7O7.js";
59
+ } from "./chunk.7XSJ52RM.js";
55
60
  import {
56
61
  LocalizeController
57
- } from "./chunk.OAQRCZOO.js";
62
+ } from "./chunk.QLETXF4A.js";
58
63
  import {
59
64
  enableDefaultSettings
60
- } from "./chunk.MLILJGXQ.js";
65
+ } from "./chunk.YACUYJZN.js";
61
66
  import {
62
67
  watch
63
- } from "./chunk.JE5Y2YD7.js";
68
+ } from "./chunk.SMIMHADA.js";
64
69
  import {
65
70
  component_styles_default
66
- } from "./chunk.NLYVOJGK.js";
71
+ } from "./chunk.FXJLG622.js";
67
72
  import {
68
73
  SynergyElement
69
- } from "./chunk.FBQ7NUNW.js";
74
+ } from "./chunk.VWFRCPN5.js";
70
75
  import {
71
76
  __decorateClass
72
77
  } from "./chunk.MO2GTRUM.js";
@@ -75,6 +80,7 @@ import {
75
80
  import { classMap } from "lit/directives/class-map.js";
76
81
  import { html } from "lit";
77
82
  import { property, query, state } from "lit/decorators.js";
83
+ import { unsafeHTML } from "lit/directives/unsafe-html.js";
78
84
  var SynCombobox = class extends SynergyElement {
79
85
  constructor() {
80
86
  super(...arguments);
@@ -83,15 +89,27 @@ var SynCombobox = class extends SynergyElement {
83
89
  });
84
90
  this.hasSlotController = new HasSlotController(this, "help-text", "label");
85
91
  this.localize = new LocalizeController(this);
86
- this.isOptionRendererTriggered = false;
92
+ /**
93
+ * Cache of the last syn-options that were selected by user interaction (click or keyboard navigation).
94
+ * Used to track user selections and maintain selection state during value changes.
95
+ */
96
+ this.lastOptions = [];
87
97
  this.isInitialized = false;
98
+ /**
99
+ * Flag to prevent infinite loops when the option renderer programmatically updates options.
100
+ * Set to true during option rendering to ignore slot change events triggered by our own updates.
101
+ */
102
+ this.isOptionRendererTriggered = false;
88
103
  this.hasFocus = false;
89
104
  this.isUserInput = false;
90
105
  this.displayLabel = "";
106
+ this.selectedOptions = [];
91
107
  this.numberFilteredOptions = 0;
92
108
  this.cachedOptions = [];
109
+ this.valueHasChanged = false;
110
+ this.hideOptions = false;
93
111
  this.name = "";
94
- this.value = "";
112
+ this._value = "";
95
113
  this.defaultValue = "";
96
114
  this.size = "medium";
97
115
  this.placeholder = "";
@@ -104,8 +122,10 @@ var SynCombobox = class extends SynergyElement {
104
122
  this.form = "";
105
123
  this.required = false;
106
124
  this.restricted = false;
125
+ this.multiple = false;
107
126
  this.getOption = defaultOptionRenderer;
108
127
  this.filter = (option, queryStr) => {
128
+ var _a;
109
129
  let content = (option == null ? void 0 : option.textContent) || "";
110
130
  if (option instanceof SynOption) {
111
131
  content = option.getTextLabel();
@@ -115,7 +135,33 @@ var SynCombobox = class extends SynergyElement {
115
135
  if (normalizedOption.includes(normalizedQuery)) {
116
136
  return true;
117
137
  }
118
- return (option == null ? void 0 : option.value) === queryStr;
138
+ return ((_a = option == null ? void 0 : option.value) == null ? void 0 : _a.toString()) === queryStr;
139
+ };
140
+ this.delimiter = " ";
141
+ this.maxOptionsVisible = 3;
142
+ this.getTag = (option) => html`
143
+ <syn-tag
144
+ part="tag"
145
+ exportparts="
146
+ base:tag__base,
147
+ content:tag__content,
148
+ remove-button:tag__remove-button,
149
+ remove-button__base:tag__remove-button__base
150
+ "
151
+ size=${this.size}
152
+ removable
153
+ @syn-remove=${(event) => this.handleTagRemove(event, option)}
154
+ >
155
+ ${option.getTextLabel()}
156
+ </syn-tag>
157
+ `;
158
+ this.calculateTagMaxWidth = (entries) => {
159
+ const input = entries.at(0);
160
+ if (!input || !this.tagContainer) return;
161
+ const inputWidth = input.contentRect.width;
162
+ const tagsWidth = this.tagContainer.getBoundingClientRect().width;
163
+ const availableTagSpace = Math.max(85, tagsWidth + inputWidth - 48);
164
+ this.tagContainer.style.setProperty("--syn-select-tag-max-width", `${availableTagSpace}px`);
119
165
  };
120
166
  this.handleDocumentFocusIn = (event) => {
121
167
  const path = event.composedPath();
@@ -138,7 +184,11 @@ var SynCombobox = class extends SynergyElement {
138
184
  this.hide();
139
185
  this.displayInput.focus({ preventScroll: true });
140
186
  } else if (!this.open) {
141
- this.clearCombobox();
187
+ if (this.multiple) {
188
+ this.clearInputField();
189
+ } else {
190
+ this.clearCombobox();
191
+ }
142
192
  }
143
193
  }
144
194
  if (event.key === "Enter") {
@@ -156,17 +206,29 @@ var SynCombobox = class extends SynergyElement {
156
206
  return;
157
207
  }
158
208
  if (currentOption) {
159
- const oldValue = this.lastOption ? getValueFromOption(this.lastOption) : void 0;
160
- this.updateSelectedOptionsCacheAndValue(currentOption);
161
- if (this.value !== oldValue) {
162
- this.setSelectedOptionToSelected();
209
+ this.isUserInput = true;
210
+ this.valueHasChanged = true;
211
+ const oldValue = this.lastOptions ? getValuesFromOptions(this.lastOptions) : [];
212
+ if (this.multiple) {
213
+ this.toggleOptionSelection(currentOption);
214
+ } else {
215
+ this.setSelectedOptions(currentOption);
216
+ }
217
+ this.selectionChanged();
218
+ const value = Array.isArray(this.value) ? this.value : [this.value];
219
+ this.updateComplete.then(() => {
220
+ this.isUserInput = false;
221
+ });
222
+ if (!compareValues(oldValue, value)) {
163
223
  this.updateComplete.then(() => {
164
224
  this.emit("syn-input");
165
225
  this.emit("syn-change");
166
226
  });
167
227
  }
168
228
  }
169
- this.hide();
229
+ if (!this.multiple) {
230
+ this.hide();
231
+ }
170
232
  this.displayInput.focus({ preventScroll: true });
171
233
  return;
172
234
  }
@@ -185,8 +247,8 @@ var SynCombobox = class extends SynergyElement {
185
247
  this.displayInput.setSelectionRange(0, 0);
186
248
  } else if (event.key === "End") {
187
249
  this.displayInput.setSelectionRange(
188
- this.displayInput.value.length,
189
- this.displayInput.value.length
250
+ this.displayLabel.length,
251
+ this.displayLabel.length
190
252
  );
191
253
  }
192
254
  }
@@ -199,6 +261,23 @@ var SynCombobox = class extends SynergyElement {
199
261
  }
200
262
  };
201
263
  }
264
+ get value() {
265
+ return this._value;
266
+ }
267
+ set value(val) {
268
+ if (this.multiple) {
269
+ if (!Array.isArray(val)) {
270
+ val = typeof val === "string" ? val.split(this.delimiter) : [val].filter(isAllowedValue);
271
+ }
272
+ } else {
273
+ val = Array.isArray(val) ? val.join(this.delimiter) : val;
274
+ }
275
+ if (compareValues(this._value, val)) {
276
+ return;
277
+ }
278
+ this.valueHasChanged = true;
279
+ this._value = val;
280
+ }
202
281
  /** Gets the validity state object */
203
282
  get validity() {
204
283
  return this.valueInput.validity;
@@ -207,24 +286,109 @@ var SynCombobox = class extends SynergyElement {
207
286
  get validationMessage() {
208
287
  return this.valueInput.validationMessage;
209
288
  }
289
+ enableResizeObserver() {
290
+ if (!this.multiple) return;
291
+ if (!this.resizeObserver) {
292
+ this.resizeObserver = new ResizeObserver(this.calculateTagMaxWidth);
293
+ }
294
+ this.resizeObserver.observe(this.displayInput);
295
+ }
210
296
  connectedCallback() {
211
297
  super.connectedCallback();
298
+ this.mutationObserver = new MutationObserver((entries) => {
299
+ const hasRelevantValueChange = entries.some((entry) => {
300
+ if (!(entry.target instanceof SynOption)) {
301
+ return false;
302
+ }
303
+ if (entry.type !== "attributes" || entry.attributeName !== "value") {
304
+ return false;
305
+ }
306
+ const currentValue = entry.target.getAttribute("value");
307
+ return entry.oldValue !== currentValue && !!currentValue;
308
+ });
309
+ if (hasRelevantValueChange) {
310
+ this.handleSlotContentChange();
311
+ }
312
+ });
313
+ this.mutationObserver.observe(this, {
314
+ attributeFilter: ["value"],
315
+ attributeOldValue: true,
316
+ attributes: true,
317
+ childList: true,
318
+ subtree: true
319
+ });
320
+ setTimeout(() => {
321
+ this.handleSlotContentChange();
322
+ });
212
323
  this.open = false;
213
324
  }
325
+ disconnectedCallback() {
326
+ var _a, _b;
327
+ super.disconnectedCallback();
328
+ (_a = this.resizeObserver) == null ? void 0 : _a.disconnect();
329
+ (_b = this.mutationObserver) == null ? void 0 : _b.disconnect();
330
+ this.removeOpenListeners();
331
+ }
214
332
  firstUpdated() {
215
333
  this.isInitialized = true;
216
334
  this.formControlController.updateValidity();
217
335
  }
336
+ updated(changedProperties) {
337
+ var _a;
338
+ super.updated(changedProperties);
339
+ if (changedProperties.has("multiple")) {
340
+ if (!this.multiple) {
341
+ (_a = this.resizeObserver) == null ? void 0 : _a.disconnect();
342
+ } else {
343
+ this.enableResizeObserver();
344
+ }
345
+ }
346
+ }
347
+ // eslint-disable-next-line complexity
218
348
  willUpdate(changedProperties) {
219
349
  super.willUpdate(changedProperties);
220
- if (!this.isInitialized && !this.defaultValue && this.value) {
221
- this.defaultValue = this.value;
350
+ const isDefaultValueEmpty = this.defaultValue == null || this.defaultValue === "" || Array.isArray(this.defaultValue) && this.defaultValue.length === 0;
351
+ if (changedProperties.has("value") && isDefaultValueEmpty && this.value && !this.isUserInput) {
352
+ if (this.multiple && Array.isArray(this.value)) {
353
+ this.defaultValue = this.value.join(this.delimiter);
354
+ } else {
355
+ this.defaultValue = this.value;
356
+ }
357
+ this.valueHasChanged = false;
222
358
  }
359
+ if (!this.isInitialized && changedProperties.has("value") && this.value !== void 0 && changedProperties.has("multiple") && this.multiple) {
360
+ if (!Array.isArray(this.defaultValue)) {
361
+ const cachedValueHasChanged = this.valueHasChanged;
362
+ this.value = typeof this.defaultValue === "string" ? this.defaultValue.split(this.delimiter) : [this.defaultValue].filter(isAllowedValue);
363
+ this.valueHasChanged = cachedValueHasChanged;
364
+ }
365
+ }
366
+ }
367
+ attributeChangedCallback(name, oldVal, newVal) {
368
+ super.attributeChangedCallback(name, oldVal, newVal);
369
+ if (name === "value") {
370
+ const cachedValueHasChanged = this.valueHasChanged;
371
+ this.value = this.defaultValue;
372
+ this.valueHasChanged = cachedValueHasChanged;
373
+ }
374
+ }
375
+ get tags() {
376
+ return this.selectedOptions.map((option, index) => {
377
+ if (index < this.maxOptionsVisible || this.maxOptionsVisible <= 0) {
378
+ const tag = this.getTag(option, index);
379
+ return html`<div @syn-remove=${(e) => this.handleTagRemove(e, option)}>
380
+ ${typeof tag === "string" ? unsafeHTML(tag) : tag}
381
+ </div>`;
382
+ }
383
+ if (index === this.maxOptionsVisible) {
384
+ return html`<syn-tag size=${this.size}>+${this.selectedOptions.length - index}</syn-tag>`;
385
+ }
386
+ return html``;
387
+ });
223
388
  }
224
389
  addOpenListeners() {
225
390
  var _a;
226
391
  document.addEventListener("focusin", this.handleDocumentFocusIn);
227
- document.addEventListener("keydown", this.handleDocumentKeyDown);
228
392
  document.addEventListener("mousedown", this.handleDocumentMouseDown);
229
393
  if (this.getRootNode() !== document) {
230
394
  this.getRootNode().addEventListener("focusin", this.handleDocumentFocusIn);
@@ -243,7 +407,6 @@ var SynCombobox = class extends SynergyElement {
243
407
  removeOpenListeners() {
244
408
  var _a;
245
409
  document.removeEventListener("focusin", this.handleDocumentFocusIn);
246
- document.removeEventListener("keydown", this.handleDocumentKeyDown);
247
410
  document.removeEventListener("mousedown", this.handleDocumentMouseDown);
248
411
  if (this.getRootNode() !== document) {
249
412
  this.getRootNode().removeEventListener("focusin", this.handleDocumentFocusIn);
@@ -261,8 +424,22 @@ var SynCombobox = class extends SynergyElement {
261
424
  handleLabelClick() {
262
425
  this.displayInput.focus();
263
426
  }
427
+ handleTagRemove(event, option) {
428
+ event.stopPropagation();
429
+ this.valueHasChanged = true;
430
+ if (!this.disabled) {
431
+ this.toggleOptionSelection(option, false);
432
+ this.selectionChanged();
433
+ this.updateComplete.then(() => {
434
+ this.emit("syn-input");
435
+ this.emit("syn-change");
436
+ });
437
+ }
438
+ }
264
439
  handleComboboxMouseDown(event) {
265
- if (this.disabled) {
440
+ const path = event.composedPath();
441
+ const isIconButton = path.some((el) => el instanceof Element && el.tagName.toLowerCase() === "syn-icon-button");
442
+ if (this.disabled || isIconButton) {
266
443
  return;
267
444
  }
268
445
  const toggleListboxOpen = () => this.open ? this.hide() : this.show();
@@ -281,14 +458,26 @@ var SynCombobox = class extends SynergyElement {
281
458
  event.stopPropagation();
282
459
  this.clearCombobox();
283
460
  }
461
+ clearInputField() {
462
+ if (this.displayLabel !== "") {
463
+ const cachedValueHasChanged = this.valueHasChanged;
464
+ this.value = getValuesFromOptions(this.selectedOptions);
465
+ this.valueHasChanged = cachedValueHasChanged;
466
+ this.displayInput.focus({ preventScroll: true });
467
+ this.updateComplete.then(() => {
468
+ this.emit("syn-input");
469
+ });
470
+ }
471
+ }
284
472
  clearCombobox() {
473
+ this.valueHasChanged = true;
285
474
  if (this.value !== "") {
286
475
  this.value = "";
287
- this.displayInput.value = "";
288
- this.lastOption = void 0;
289
- this.updateSelectedOptionsCacheAndValue(void 0);
476
+ this.displayLabel = "";
477
+ this.lastOptions = [];
478
+ this.setSelectedOptions([]);
479
+ this.selectionChanged();
290
480
  this.displayInput.focus({ preventScroll: true });
291
- this.setSelectedOptionToSelected();
292
481
  this.updateComplete.then(() => {
293
482
  this.emit("syn-clear");
294
483
  this.emit("syn-input");
@@ -305,19 +494,31 @@ var SynCombobox = class extends SynergyElement {
305
494
  handleOptionClick(event) {
306
495
  const target = event.target;
307
496
  const option = target.closest("syn-option");
308
- const oldValue = this.lastOption ? getValueFromOption(this.lastOption) : void 0;
497
+ const oldValue = this.lastOptions ? getValuesFromOptions(this.lastOptions) : [];
309
498
  if (option && !option.disabled) {
310
- this.updateSelectedOptionsCacheAndValue(option);
311
- this.updateComplete.then(() => this.displayInput.focus({ preventScroll: true }));
312
- if (this.value !== oldValue) {
313
- this.setSelectedOptionToSelected();
499
+ this.isUserInput = true;
500
+ this.valueHasChanged = true;
501
+ if (this.multiple) {
502
+ this.toggleOptionSelection(option);
503
+ } else {
504
+ this.setSelectedOptions(option);
505
+ }
506
+ this.selectionChanged();
507
+ this.updateComplete.then(() => {
508
+ this.displayInput.focus({ preventScroll: true });
509
+ this.isUserInput = false;
510
+ });
511
+ const value = Array.isArray(this.value) ? this.value : [this.value];
512
+ if (!compareValues(oldValue, value)) {
314
513
  this.updateComplete.then(() => {
315
514
  this.emit("syn-input");
316
515
  this.emit("syn-change");
317
516
  });
318
517
  }
319
- this.hide();
320
- this.displayInput.focus({ preventScroll: true });
518
+ if (!this.multiple) {
519
+ this.hide();
520
+ this.displayInput.focus({ preventScroll: true });
521
+ }
321
522
  }
322
523
  }
323
524
  /* eslint-enable @typescript-eslint/no-floating-promises */
@@ -345,6 +546,37 @@ var SynCombobox = class extends SynergyElement {
345
546
  this.setCurrentOption(filteredOptions[newIndex]);
346
547
  scrollIntoView(this.getCurrentOption(), this.listbox, "vertical", "auto");
347
548
  }
549
+ // Toggles an option's selected state
550
+ // eslint-disable-next-line class-methods-use-this
551
+ toggleOptionSelection(option, force) {
552
+ if (force === true || force === false) {
553
+ option.selected = force;
554
+ } else {
555
+ option.selected = !option.selected;
556
+ }
557
+ const cachedOption = this.cachedOptions.find((opt) => opt.id === option.id);
558
+ if (cachedOption) {
559
+ cachedOption.selected = option.selected;
560
+ }
561
+ }
562
+ // Sets the selected option(s)
563
+ setSelectedOptions(option) {
564
+ const newSelectedOptions = Array.isArray(option) ? option : [option];
565
+ if (!this.multiple && newSelectedOptions.length > 1) {
566
+ newSelectedOptions.splice(1);
567
+ }
568
+ const slottedOptions = this.getSlottedOptions();
569
+ slottedOptions.forEach((opt) => {
570
+ opt.selected = newSelectedOptions.some(
571
+ (selectedOpt) => selectedOpt.id === opt.id
572
+ );
573
+ });
574
+ this.cachedOptions.forEach((opt) => {
575
+ opt.selected = newSelectedOptions.some(
576
+ (selectedOpt) => selectedOpt.id === opt.id
577
+ );
578
+ });
579
+ }
348
580
  getAllFilteredOptions() {
349
581
  return this.getSlottedOptions().filter((option) => !option.hidden);
350
582
  }
@@ -367,41 +599,67 @@ var SynCombobox = class extends SynergyElement {
367
599
  }
368
600
  }
369
601
  /**
370
- * Updates the selected options cache, the current value, and the display value
602
+ * Updates the component state after selection changes.
603
+ *
604
+ * This method synchronizes:
605
+ * 1. The selectedOptions cache with currently selected options
606
+ * 2. The component's value property (string or array)
607
+ * 3. The display label shown in the input
608
+ * 4. Form validation state
609
+ *
610
+ * **Validation Logic:**
611
+ * - In restricted mode, invalid values trigger a reset to last valid state
612
+ * - Multiple mode requires all values to correspond to existing options
613
+ * - Single mode allows free text input when not restricted
371
614
  */
372
615
  // eslint-disable-next-line complexity
373
- updateSelectedOptionsCacheAndValue(option) {
374
- this.selectedOption = option;
616
+ selectionChanged() {
617
+ const options = this.getSlottedOptions();
618
+ this.selectedOptions = options.filter((opt) => opt.selected);
619
+ if (this.selectedOptions.length === 0) {
620
+ this.displayLabel = Array.isArray(this.value) ? this.value.join(", ") : String(this.value);
621
+ }
375
622
  let optionValue;
376
- if (option) {
377
- this.lastOption = option;
378
- optionValue = String(getValueFromOption(option));
379
- } else if (this.restricted && !this.isValidValue() && this.value !== "" && !this.isUserInput) {
380
- this.resetToLastValidValue();
381
- return;
623
+ const cachedValueHasChanged = this.valueHasChanged;
624
+ if (this.multiple) {
625
+ this.value = this.selectedOptions.map((opt) => getValueFromOption(opt));
626
+ if (this.value.length === 0 && this.selectedOptions.length !== 0) {
627
+ this.valueHasChanged = cachedValueHasChanged;
628
+ this.resetToLastValidValue();
629
+ return;
630
+ }
631
+ } else {
632
+ if (this.selectedOptions.length !== 0) {
633
+ optionValue = getValueFromOption(this.selectedOptions[0]);
634
+ } else if (this.restricted && !this.isValidValue(this.displayLabel) && this.displayLabel !== "" && !this.isUserInput) {
635
+ this.resetToLastValidValue();
636
+ this.valueHasChanged = cachedValueHasChanged;
637
+ return;
638
+ }
639
+ this.value = optionValue != null ? optionValue : this.displayLabel;
382
640
  }
383
- this.value = optionValue != null ? optionValue : this.displayInput.value;
641
+ this.valueHasChanged = cachedValueHasChanged;
642
+ this.lastOptions = [...this.selectedOptions];
384
643
  this.updateComplete.then(() => {
385
644
  var _a, _b;
386
- this.displayLabel = (_b = (_a = this.selectedOption) == null ? void 0 : _a.getTextLabel()) != null ? _b : this.displayInput.value;
645
+ this.displayLabel = this.multiple ? "" : (_b = (_a = this.selectedOptions[0]) == null ? void 0 : _a.getTextLabel()) != null ? _b : this.displayLabel;
387
646
  this.formControlController.updateValidity();
388
647
  });
389
648
  }
390
- setSelectedOptionToSelected() {
391
- const slottedOptions = this.getSlottedOptions();
392
- slottedOptions.forEach((opt) => {
393
- opt.selected = false;
394
- });
395
- if (this.selectedOption) {
396
- this.selectedOption.selected = true;
397
- }
398
- }
399
649
  handleInvalid(event) {
400
650
  this.formControlController.setValidity(false);
401
651
  this.formControlController.emitInvalidEvent(event);
402
652
  }
403
653
  handlePropertiesChange() {
404
- this.createComboboxOptionsFromQuery(this.value);
654
+ this.createComboboxOptionsFromQuery(this.displayLabel);
655
+ if (this.open) {
656
+ this.updateComplete.then(() => {
657
+ this.open = this.multiple || this.restricted || this.numberFilteredOptions > 0;
658
+ });
659
+ }
660
+ }
661
+ handleDisplayInputValueChange() {
662
+ this.createComboboxOptionsFromQuery(this.displayLabel);
405
663
  }
406
664
  handleDisabledChange() {
407
665
  this.formControlController.setValidity(this.disabled);
@@ -410,13 +668,22 @@ var SynCombobox = class extends SynergyElement {
410
668
  this.handleOpenChange();
411
669
  }
412
670
  }
671
+ handleDelimiterChange() {
672
+ this.getSlottedOptions().forEach((option) => {
673
+ option.delimiter = this.delimiter;
674
+ });
675
+ }
413
676
  handleValueChange() {
677
+ if (!this.valueHasChanged) {
678
+ const cachedValueHasChanged = this.valueHasChanged;
679
+ this.value = this.defaultValue;
680
+ this.valueHasChanged = cachedValueHasChanged;
681
+ }
414
682
  this.updateSelectedOptionFromValue();
415
- this.setCurrentOption(null);
416
683
  }
417
684
  async handleOpenChange() {
418
685
  if (this.open && !this.disabled) {
419
- if (this.numberFilteredOptions === 0 && !this.restricted) {
686
+ if (this.numberFilteredOptions === 0 && !this.restricted && !this.multiple) {
420
687
  this.open = false;
421
688
  this.emit("syn-error");
422
689
  return;
@@ -491,6 +758,21 @@ var SynCombobox = class extends SynergyElement {
491
758
  blur() {
492
759
  this.displayInput.blur();
493
760
  }
761
+ /**
762
+ * Updates the visibility and rendering of options based on the current query string.
763
+ *
764
+ * This method performs several critical tasks:
765
+ * 1. **Option Filtering**: Uses the `filter` function to determine which options should be visible
766
+ * 2. **Custom Rendering**: Applies the `getOption` function to customize option appearance
767
+ * 3. **Optgroup Management**: Shows/hides optgroups based on their visible children
768
+ * 4. **Counts visible options**: Tracks the number of visible options for UI logic
769
+ *
770
+ * **Performance Considerations:**
771
+ * - Uses cached options to avoid repeated DOM queries
772
+ * - Prevents infinite loops during option updates with `isOptionRendererTriggered`
773
+ *
774
+ * @param queryString - The current user input to filter and highlight options with
775
+ */
494
776
  /* eslint-disable no-param-reassign, @typescript-eslint/no-floating-promises */
495
777
  createComboboxOptionsFromQuery(queryString) {
496
778
  var _a;
@@ -522,37 +804,57 @@ var SynCombobox = class extends SynergyElement {
522
804
  (_a = visibleOptgroups[0]) == null ? void 0 : _a.style.setProperty("--display-divider", "none");
523
805
  setTimeout(() => {
524
806
  this.isOptionRendererTriggered = false;
525
- }, 0);
807
+ });
526
808
  }
527
809
  /* eslint-enable no-param-reassign, @typescript-eslint/no-floating-promises */
810
+ // eslint-disable-next-line complexity
528
811
  async handleInput() {
529
812
  const inputValue = this.displayInput.value;
530
- const cachedLastOption = this.lastOption;
813
+ this.displayLabel = inputValue;
814
+ const cachedLastOption = this.lastOptions;
531
815
  this.isUserInput = true;
532
- this.value = inputValue;
816
+ if (!this.multiple) {
817
+ this.selectedOptions = [];
818
+ }
819
+ if (this.multiple) {
820
+ const validValues = getValuesFromOptions(this.selectedOptions);
821
+ this.value = [...validValues, inputValue];
822
+ } else {
823
+ this.value = inputValue;
824
+ }
533
825
  await this.updateComplete;
534
826
  this.isUserInput = false;
535
- this.lastOption = cachedLastOption;
536
- this.open = this.restricted || this.numberFilteredOptions > 0;
537
- this.selectedOption = void 0;
827
+ this.lastOptions = cachedLastOption;
828
+ this.open = this.multiple || this.restricted || this.numberFilteredOptions > 0;
538
829
  this.formControlController.updateValidity();
539
830
  this.emit("syn-input");
540
831
  }
541
832
  /**
542
- * Checks if the current value is available in the options list.
833
+ * Checks if the value is available in the options list.
543
834
  * This is used to determine if the value is valid when the combobox is restricted.
544
- *
835
+ * @param value - The value to check for validity.
545
836
  * @returns `true` if the current value is available in the options list,
546
837
  * otherwise `false`.
547
838
  */
548
- isValidValue() {
839
+ isValidValue(value) {
549
840
  const isValid = this.cachedOptions.some(
550
- (option) => getValueFromOption(option) === this.value
841
+ (option) => checkValueBelongsToOption(value, option)
551
842
  );
552
843
  return isValid;
553
844
  }
554
- getOptionFromValue() {
555
- return this.cachedOptions.find((option) => checkValueBelongsToOption(this.value, option));
845
+ getOptionsFromValue() {
846
+ const value = this.valueHasChanged ? this.value : this.defaultValue;
847
+ let convertedValue;
848
+ if (Array.isArray(value)) {
849
+ convertedValue = value;
850
+ } else if (value === void 0 || value == null) {
851
+ convertedValue = [];
852
+ } else if (this.multiple && typeof value === "string") {
853
+ convertedValue = value.split(this.delimiter);
854
+ } else {
855
+ convertedValue = [value];
856
+ }
857
+ return convertedValue.map((val) => this.cachedOptions.find((option) => checkValueBelongsToOption(val, option))).filter((opt) => opt !== void 0);
556
858
  }
557
859
  /**
558
860
  * Resets the value to the last valid value or to an empty string.
@@ -560,10 +862,12 @@ var SynCombobox = class extends SynergyElement {
560
862
  resetToLastValidValue() {
561
863
  var _a, _b, _c, _d;
562
864
  let label = "";
563
- let value = "";
564
- if (this.lastOption) {
565
- value = String(getValueFromOption(this.lastOption));
566
- label = this.lastOption.getTextLabel();
865
+ let value = [];
866
+ if (this.lastOptions.length !== 0) {
867
+ value = getValuesFromOptions(this.lastOptions);
868
+ if (!this.multiple) {
869
+ label = this.lastOptions[0].getTextLabel();
870
+ }
567
871
  }
568
872
  const popupAnimations = (_d = (_c = (_b = (_a = this.popup) == null ? void 0 : _a.popup) == null ? void 0 : _b.getAnimations) == null ? void 0 : _c.call(_b)) != null ? _d : [];
569
873
  const waitForAnimations = popupAnimations.length ? Promise.all(
@@ -571,30 +875,54 @@ var SynCombobox = class extends SynergyElement {
571
875
  animation.addEventListener("finish", () => resolve(), { once: true });
572
876
  }))
573
877
  ) : Promise.resolve();
878
+ this.hideOptions = true;
574
879
  waitForAnimations.then(() => {
575
- this.value = value;
576
- this.displayInput.value = label;
577
- this.formControlController.updateValidity();
880
+ this.hideOptions = false;
578
881
  });
882
+ const cachedValueHasChanged = this.valueHasChanged;
883
+ this.value = value;
884
+ this.displayLabel = label;
885
+ this.formControlController.updateValidity();
886
+ this.valueHasChanged = cachedValueHasChanged;
579
887
  }
888
+ // eslint-disable-next-line complexity
580
889
  handleChange() {
581
- if (this.selectedOption) {
890
+ const isSameSelection = this.selectedOptions.length !== 0 && this.selectedOptions.length === this.getOptionsFromValue().length;
891
+ let values;
892
+ if (Array.isArray(this.value)) {
893
+ values = this.value;
894
+ } else if (typeof this.value === "string") {
895
+ values = this.value.split(this.delimiter);
896
+ } else {
897
+ values = [this.value];
898
+ }
899
+ const allValuesValid = values.every((val) => this.isValidValue(val));
900
+ const isMultipleAndUserInput = this.multiple && isSameSelection && allValuesValid;
901
+ const isNonMultipleAndUserInput = !this.multiple && this.selectedOptions.length > 0;
902
+ if (isNonMultipleAndUserInput || isMultipleAndUserInput) {
582
903
  return;
583
904
  }
584
- if (this.restricted && !this.isValidValue() && this.value !== "") {
905
+ const oldValue = this.lastOptions ? getValuesFromOptions(this.lastOptions) : [];
906
+ if ((this.restricted || this.multiple) && !this.isValidValue(this.displayLabel) && this.displayLabel !== "") {
585
907
  this.resetToLastValidValue();
586
908
  return;
587
909
  }
588
- this.value = this.displayInput.value;
589
- this.lastOption = this.getOptionFromValue();
590
- this.selectedOption = this.getOptionFromValue();
910
+ const options = this.getOptionsFromValue();
911
+ this.setSelectedOptions(options);
912
+ this.selectionChanged();
913
+ this.lastOptions = [...options];
591
914
  this.updateComplete.then(() => {
592
915
  this.formControlController.updateValidity();
593
916
  });
594
- this.setSelectedOptionToSelected();
595
- this.emit("syn-change");
917
+ const value = Array.isArray(this.value) ? this.value : [this.value];
918
+ if (!compareValues(oldValue, value)) {
919
+ this.emit("syn-change");
920
+ }
596
921
  }
597
922
  getSlottedOptions() {
923
+ if (!this.defaultSlot) {
924
+ return [];
925
+ }
598
926
  return getAllOptions(getAssignedElementsForSlot(this.defaultSlot)).flat();
599
927
  }
600
928
  getSlottedOptGroups() {
@@ -614,41 +942,86 @@ var SynCombobox = class extends SynergyElement {
614
942
  }
615
943
  /* eslint-enable no-param-reassign */
616
944
  updateSelectedOptionFromValue() {
617
- const option = this.getOptionFromValue();
618
- if (!option) {
619
- this.displayInput.value = this.value;
945
+ if (!this.isUserInput) {
946
+ const options = this.getOptionsFromValue();
947
+ this.setSelectedOptions(options);
948
+ this.selectionChanged();
949
+ }
950
+ let queryString = "";
951
+ if (this.multiple) {
952
+ queryString = this.displayLabel;
953
+ } else {
954
+ queryString = Array.isArray(this.value) ? this.value.join(", ") : String(this.value);
620
955
  }
621
- this.updateSelectedOptionsCacheAndValue(option);
622
- this.createComboboxOptionsFromQuery(this.value);
956
+ this.createComboboxOptionsFromQuery(queryString);
623
957
  }
624
- /* eslint-disable @typescript-eslint/no-floating-promises, complexity */
625
- /* @internal - used by options to update labels */
958
+ /**
959
+ * Synchronizes the internal component state with changes to slotted options.
960
+ *
961
+ * This method is automatically triggered by:
962
+ * - MutationObserver when option 'value' attributes change
963
+ * - Initial component setup during connectedCallback (after timeout)
964
+ * - Default slot changes (via handleDefaultSlotChange)
965
+ * - Custom element registration completion for syn-option (deferred execution)
966
+ *
967
+ * The synchronization process:
968
+ * 1. Waits for syn-option custom elements to be registered before processing
969
+ * 2. Updates delimiter settings on all slotted options
970
+ * 3. Refreshes the internal cache of options and optgroups
971
+ * 4. Synchronizes selected options based on current component value
972
+ * 5. Auto-opens listbox if component has focus, has value, and is currently closed
973
+ *
974
+ * This ensures the component's internal state stays consistent with the slotted
975
+ * DOM content after options are added, removed, or their values change.
976
+ *
977
+ */
978
+ /* eslint-disable @typescript-eslint/no-floating-promises */
979
+ handleSlotContentChange() {
980
+ if (!customElements.get("syn-option")) {
981
+ customElements.whenDefined("syn-option").then(() => this.handleSlotContentChange());
982
+ return;
983
+ }
984
+ this.handleDelimiterChange();
985
+ this.cacheSlottedOptionsAndOptgroups();
986
+ this.updateSelectedOptionFromValue();
987
+ let hasValue;
988
+ if (Array.isArray(this.value)) {
989
+ hasValue = this.value.length > 0;
990
+ } else if (typeof this.value === "string") {
991
+ hasValue = this.value.length > 0;
992
+ } else {
993
+ hasValue = this.value !== void 0 && this.value !== null;
994
+ }
995
+ if (this.hasFocus && hasValue && !this.open) {
996
+ this.show();
997
+ }
998
+ }
999
+ /* eslint-enable @typescript-eslint/no-floating-promises */
626
1000
  handleDefaultSlotChange() {
627
- const slottedOptions = this.getSlottedOptions();
628
- const optionsLength = slottedOptions.length;
629
- const cachedOptionsLength = this.cachedOptions.length;
630
- if (!this.isOptionRendererTriggered || cachedOptionsLength !== optionsLength) {
631
- if (!customElements.get("syn-option")) {
632
- customElements.whenDefined("syn-option").then(() => this.handleDefaultSlotChange());
633
- return;
634
- }
635
- this.cacheSlottedOptionsAndOptgroups();
636
- this.updateSelectedOptionFromValue();
637
- if (this.hasFocus && this.value.length > 0 && !this.open) {
638
- this.show();
639
- }
1001
+ if (this.isOptionRendererTriggered) {
1002
+ return;
640
1003
  }
1004
+ this.handleSlotContentChange();
641
1005
  }
642
- /* eslint-enable @typescript-eslint/no-floating-promises, complexity */
643
1006
  /* eslint-disable @typescript-eslint/unbound-method */
644
1007
  // eslint-disable-next-line complexity
645
1008
  render() {
1009
+ var _a;
646
1010
  const hasLabelSlot = this.hasSlotController.test("label");
647
1011
  const hasHelpTextSlot = this.hasSlotController.test("help-text");
648
1012
  const hasLabel = this.label ? true : !!hasLabelSlot;
649
1013
  const hasHelpText = this.helpText ? true : !!hasHelpTextSlot;
650
- const hasClearIcon = this.clearable && !this.disabled && this.value.length > 0;
651
- const isPlaceholderVisible = this.placeholder && this.value.length === 0;
1014
+ let hasValue;
1015
+ if (Array.isArray(this.value)) {
1016
+ hasValue = this.value.length > 0;
1017
+ } else if (typeof this.value === "string") {
1018
+ hasValue = this.value.length > 0;
1019
+ } else {
1020
+ hasValue = this.value !== void 0 && this.value !== null && typeof this.value === "number";
1021
+ }
1022
+ const hasClearIcon = this.clearable && !this.disabled && hasValue;
1023
+ const isPlaceholderVisible = this.placeholder && !hasValue;
1024
+ const tagsVisible = this.multiple && this.selectedOptions.length > 0;
652
1025
  return html`
653
1026
  <div
654
1027
  part="form-control"
@@ -680,10 +1053,12 @@ var SynCombobox = class extends SynergyElement {
680
1053
  "combobox--focused": this.hasFocus,
681
1054
  "combobox--large": this.size === "large",
682
1055
  "combobox--medium": this.size === "medium",
1056
+ "combobox--multiple": this.multiple,
683
1057
  "combobox--open": this.open,
684
1058
  "combobox--placeholder-visible": isPlaceholderVisible,
685
1059
  "combobox--small": this.size === "small",
686
1060
  "combobox--standard": true,
1061
+ "combobox--tags-visible": tagsVisible,
687
1062
  "combobox--top": this.placement === "top"
688
1063
  })}
689
1064
  placement=${`${this.placement}-start`}
@@ -703,6 +1078,8 @@ var SynCombobox = class extends SynergyElement {
703
1078
  >
704
1079
  <slot part="prefix" name="prefix" class="combobox__prefix"></slot>
705
1080
 
1081
+ ${this.multiple ? html`<div part="tags" class="combobox__tags">${this.tags}</div>` : ""}
1082
+
706
1083
  <input
707
1084
  part="display-input"
708
1085
  class="combobox__display-input"
@@ -735,7 +1112,7 @@ var SynCombobox = class extends SynergyElement {
735
1112
  type="text"
736
1113
  ?disabled=${this.disabled}
737
1114
  ?required=${this.required}
738
- .value=${this.value}
1115
+ .value=${Array.isArray(this.value) ? this.value.join(", ") : (_a = this.value) == null ? void 0 : _a.toString()}
739
1116
  tabindex="-1"
740
1117
  aria-hidden="true"
741
1118
  @focus=${() => this.focus()}
@@ -770,6 +1147,7 @@ var SynCombobox = class extends SynergyElement {
770
1147
  role="listbox"
771
1148
  aria-expanded=${this.open ? "true" : "false"}
772
1149
  aria-labelledby="label"
1150
+ aria-multiselectable=${this.multiple ? "true" : "false"}
773
1151
  part="listbox"
774
1152
  class="combobox__listbox"
775
1153
  tabindex="-1"
@@ -777,13 +1155,13 @@ var SynCombobox = class extends SynergyElement {
777
1155
  @mouseup=${this.handleOptionClick}
778
1156
  >
779
1157
  <div class="listbox__options" part="filtered-listbox">
780
- ${this.numberFilteredOptions === 0 ? html`<span
1158
+ ${this.hideOptions || this.numberFilteredOptions === 0 ? html`<span
781
1159
  class="listbox__no-results"
782
1160
  aria-hidden="true"
783
1161
  part="no-results"
784
1162
  >${this.localize.term("noResults")}</span
785
1163
  >` : ""}
786
- <slot @slotchange=${this.handleDefaultSlotChange}></slot>
1164
+ <slot class=${classMap({ options__hide: this.hideOptions })} @slotchange=${this.handleDefaultSlotChange}></slot>
787
1165
  </div>
788
1166
  </div>
789
1167
  </syn-popup>
@@ -811,7 +1189,8 @@ SynCombobox.styles = [
811
1189
  ];
812
1190
  SynCombobox.dependencies = {
813
1191
  "syn-icon": SynIcon,
814
- "syn-popup": SynPopup
1192
+ "syn-popup": SynPopup,
1193
+ "syn-tag": SynTag
815
1194
  };
816
1195
  __decorateClass([
817
1196
  query(".combobox")
@@ -831,6 +1210,9 @@ __decorateClass([
831
1210
  __decorateClass([
832
1211
  query("slot:not([name])")
833
1212
  ], SynCombobox.prototype, "defaultSlot", 2);
1213
+ __decorateClass([
1214
+ query(".combobox__tags")
1215
+ ], SynCombobox.prototype, "tagContainer", 2);
834
1216
  __decorateClass([
835
1217
  state()
836
1218
  ], SynCombobox.prototype, "hasFocus", 2);
@@ -842,21 +1224,27 @@ __decorateClass([
842
1224
  ], SynCombobox.prototype, "displayLabel", 2);
843
1225
  __decorateClass([
844
1226
  state()
845
- ], SynCombobox.prototype, "selectedOption", 2);
1227
+ ], SynCombobox.prototype, "selectedOptions", 2);
846
1228
  __decorateClass([
847
1229
  state()
848
1230
  ], SynCombobox.prototype, "numberFilteredOptions", 2);
849
1231
  __decorateClass([
850
1232
  state()
851
1233
  ], SynCombobox.prototype, "cachedOptions", 2);
1234
+ __decorateClass([
1235
+ state()
1236
+ ], SynCombobox.prototype, "valueHasChanged", 2);
1237
+ __decorateClass([
1238
+ state()
1239
+ ], SynCombobox.prototype, "hideOptions", 2);
852
1240
  __decorateClass([
853
1241
  property()
854
1242
  ], SynCombobox.prototype, "name", 2);
855
1243
  __decorateClass([
856
- property()
857
- ], SynCombobox.prototype, "value", 2);
1244
+ state()
1245
+ ], SynCombobox.prototype, "value", 1);
858
1246
  __decorateClass([
859
- defaultValue()
1247
+ property({ attribute: "value" })
860
1248
  ], SynCombobox.prototype, "defaultValue", 2);
861
1249
  __decorateClass([
862
1250
  property({ reflect: true })
@@ -891,20 +1279,38 @@ __decorateClass([
891
1279
  __decorateClass([
892
1280
  property({ reflect: true, type: Boolean })
893
1281
  ], SynCombobox.prototype, "restricted", 2);
1282
+ __decorateClass([
1283
+ property({ reflect: true, type: Boolean })
1284
+ ], SynCombobox.prototype, "multiple", 2);
894
1285
  __decorateClass([
895
1286
  property()
896
1287
  ], SynCombobox.prototype, "getOption", 2);
897
1288
  __decorateClass([
898
1289
  property()
899
1290
  ], SynCombobox.prototype, "filter", 2);
1291
+ __decorateClass([
1292
+ property()
1293
+ ], SynCombobox.prototype, "delimiter", 2);
1294
+ __decorateClass([
1295
+ property({ attribute: "max-options-visible", type: Number })
1296
+ ], SynCombobox.prototype, "maxOptionsVisible", 2);
1297
+ __decorateClass([
1298
+ property()
1299
+ ], SynCombobox.prototype, "getTag", 2);
900
1300
  __decorateClass([
901
1301
  watch(["filter", "getOption"], { waitUntilFirstUpdate: true })
902
1302
  ], SynCombobox.prototype, "handlePropertiesChange", 1);
1303
+ __decorateClass([
1304
+ watch("displayLabel", { waitUntilFirstUpdate: true })
1305
+ ], SynCombobox.prototype, "handleDisplayInputValueChange", 1);
903
1306
  __decorateClass([
904
1307
  watch("disabled", { waitUntilFirstUpdate: true })
905
1308
  ], SynCombobox.prototype, "handleDisabledChange", 1);
906
1309
  __decorateClass([
907
- watch("value", { waitUntilFirstUpdate: true })
1310
+ watch("delimiter")
1311
+ ], SynCombobox.prototype, "handleDelimiterChange", 1);
1312
+ __decorateClass([
1313
+ watch(["defaultValue", "value", "delimiter", "multiple", "restricted"], { waitUntilFirstUpdate: true })
908
1314
  ], SynCombobox.prototype, "handleValueChange", 1);
909
1315
  __decorateClass([
910
1316
  watch("open", { waitUntilFirstUpdate: true })
@@ -930,4 +1336,4 @@ setDefaultAnimation("combobox.hide", {
930
1336
  export {
931
1337
  SynCombobox
932
1338
  };
933
- //# sourceMappingURL=chunk.6GWSQWLE.js.map
1339
+ //# sourceMappingURL=chunk.NY33MDYP.js.map