@synergy-design-system/components 3.6.1 → 3.7.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 (326) hide show
  1. package/code-quality/html-validate/.htmlvalidate.js +7 -6
  2. package/code-quality/html-validate/scripts/synergy-element-rules.js +9 -0
  3. package/dist/chunks/{chunk.OEGAZKUI.js → chunk.27R54WWQ.js} +2 -2
  4. package/dist/chunks/{chunk.E3U7WNRA.js → chunk.2CNDNAO7.js} +6 -6
  5. package/dist/chunks/{chunk.JWA6M5ZZ.js → chunk.2D55TUC7.js} +2 -2
  6. package/dist/chunks/{chunk.PIKKRGFU.js → chunk.2HJQCYWQ.js} +7 -7
  7. package/dist/chunks/{chunk.N5ZE6OSY.js → chunk.2QWTD4DT.js} +2 -2
  8. package/dist/chunks/{chunk.RXRHPQ7D.js → chunk.3BSUHN2J.js} +2 -2
  9. package/dist/chunks/{chunk.6VJY3TRA.js → chunk.4HSS7ZGG.js} +6 -6
  10. package/dist/chunks/{chunk.S2IHOYLF.js → chunk.4ISK63NF.js} +2 -2
  11. package/dist/chunks/{chunk.TB237H74.js → chunk.4N4LUDKB.js} +2 -2
  12. package/dist/chunks/{chunk.A2AYJJ7H.js → chunk.5EFZAEYZ.js} +2 -2
  13. package/dist/chunks/{chunk.O5STVMJZ.js → chunk.5VTMSSKD.js} +10 -10
  14. package/dist/chunks/{chunk.YACUYJZN.js → chunk.5YZ63VR2.js} +2 -2
  15. package/dist/chunks/{chunk.EPMUBNXV.js → chunk.622POSG3.js} +2 -2
  16. package/dist/chunks/{chunk.ZOW7OV2U.js → chunk.6N5QEKIJ.js} +2 -2
  17. package/dist/chunks/{chunk.L6H7CHLC.js → chunk.6T23NP2Y.js} +2 -2
  18. package/dist/chunks/{chunk.WM6M3IWG.js → chunk.7CY3RH3P.js} +2 -2
  19. package/dist/chunks/{chunk.SYMEFYEK.js → chunk.7EHQA76T.js} +2 -2
  20. package/dist/chunks/{chunk.HBXMQ7PF.js → chunk.7UBS5CEK.js} +5 -5
  21. package/dist/chunks/{chunk.57A42NLG.js → chunk.A4IOBXRL.js} +2 -2
  22. package/dist/chunks/{chunk.FDOTWE5Q.js → chunk.B6PO4OWH.js} +5 -5
  23. package/dist/chunks/{chunk.3NWL4AL3.js → chunk.BB3NN2ZP.js} +10 -10
  24. package/dist/chunks/{chunk.RU2RT37T.js → chunk.BH2BGNPS.js} +6 -6
  25. package/dist/chunks/{chunk.YSWL6IJW.js → chunk.BLW3DY7U.js} +2 -2
  26. package/dist/chunks/{chunk.AHX2WNRS.js → chunk.BPZ2CBE7.js} +2 -2
  27. package/dist/chunks/{chunk.JKA6KBXT.js → chunk.CFL26HPZ.js} +6 -6
  28. package/dist/chunks/{chunk.36JGEYPF.js → chunk.D7R443LV.js} +2 -2
  29. package/dist/chunks/{chunk.VU6FOBTQ.js → chunk.DN4S5TVB.js} +2 -2
  30. package/dist/chunks/{chunk.XIO6NVNU.js → chunk.FADYQQMZ.js} +6 -6
  31. package/dist/chunks/{chunk.XVXJDFUK.js → chunk.FD42PA2Y.js} +2 -2
  32. package/dist/chunks/chunk.FGZNB336.js +101 -0
  33. package/dist/chunks/chunk.FGZNB336.js.map +7 -0
  34. package/dist/chunks/{chunk.YYCO33PM.js → chunk.FXRLXOMJ.js} +2 -2
  35. package/dist/chunks/{chunk.HSSW752S.js → chunk.GAMT7VDO.js} +2 -2
  36. package/dist/chunks/{chunk.NUNQOP7A.js → chunk.GFUSTDI7.js} +2 -2
  37. package/dist/chunks/{chunk.P4ZXNQQ4.js → chunk.GNXJ3HON.js} +2 -2
  38. package/dist/chunks/{chunk.Z7JE3NFJ.js → chunk.GU3RE54C.js} +2 -2
  39. package/dist/chunks/{chunk.IUFTAV2I.js → chunk.I4M3MYDP.js} +2 -2
  40. package/dist/chunks/{chunk.IUFTAV2I.js.map → chunk.I4M3MYDP.js.map} +1 -1
  41. package/dist/chunks/{chunk.4GDY7NEK.js → chunk.ISXCFMOK.js} +2 -2
  42. package/dist/chunks/{chunk.PDVI2IPR.js → chunk.IY6SHCBE.js} +2 -2
  43. package/dist/chunks/{chunk.N2P6JGTF.js → chunk.JC5SF42E.js} +2 -2
  44. package/dist/chunks/{chunk.RY3ZM7MQ.js → chunk.JEJO727M.js} +5 -5
  45. package/dist/chunks/{chunk.CVUNFQUG.js → chunk.JIE55A5M.js} +2 -2
  46. package/dist/chunks/{chunk.VMLERD3J.js → chunk.JIHDB74M.js} +5 -1
  47. package/dist/chunks/chunk.JIHDB74M.js.map +7 -0
  48. package/dist/chunks/{chunk.ZS2RODX4.js → chunk.JZAZESKP.js} +2 -2
  49. package/dist/chunks/{chunk.3XZMOCG6.js → chunk.K42TDMJB.js} +27 -16
  50. package/dist/chunks/chunk.K42TDMJB.js.map +7 -0
  51. package/dist/chunks/{chunk.RCI5CCXX.js → chunk.KHAGMU2K.js} +2 -2
  52. package/dist/chunks/{chunk.HZ74RYOQ.js → chunk.KNTBXY7A.js} +2 -2
  53. package/dist/chunks/{chunk.WOUHL4WE.js → chunk.KPEU3RSO.js} +2 -2
  54. package/dist/chunks/{chunk.QTVJRWRP.js → chunk.KUKYVATU.js} +8 -8
  55. package/dist/chunks/{chunk.UEMDEZX6.js → chunk.KZINUJES.js} +2 -2
  56. package/dist/chunks/{chunk.3WVDHGXC.js → chunk.LCGFNSS6.js} +5 -5
  57. package/dist/chunks/{chunk.KC4VEV4Y.js → chunk.LZ4GTRM7.js} +4 -4
  58. package/dist/chunks/{chunk.XBDUDOPF.js → chunk.MWAQUYHX.js} +6 -6
  59. package/dist/chunks/{chunk.UCXZFEKY.js → chunk.MYREUSWZ.js} +2 -2
  60. package/dist/chunks/{chunk.2PPN6KVK.js → chunk.N72N7GJV.js} +2 -2
  61. package/dist/chunks/{chunk.SBAXRTPJ.js → chunk.NM3H4D62.js} +3 -3
  62. package/dist/chunks/{chunk.XAXHRDXN.js → chunk.NTJ3M4RR.js} +5 -5
  63. package/dist/chunks/{chunk.JXKV4DYA.js → chunk.NVS6WQOF.js} +3 -3
  64. package/dist/chunks/{chunk.J37FDI7L.js → chunk.O4HXWJHO.js} +2 -2
  65. package/dist/chunks/{chunk.6LMYTIGS.js → chunk.O5J2OIE2.js} +2 -2
  66. package/dist/chunks/{chunk.D5UFMTUH.js → chunk.OAWJHVRJ.js} +2 -2
  67. package/dist/chunks/{chunk.DFMLUH2N.js → chunk.OCQQWEY2.js} +2 -2
  68. package/dist/chunks/{chunk.VCJQ6DPU.js → chunk.OGPIP45L.js} +7 -7
  69. package/dist/chunks/{chunk.5QUHHGOD.js → chunk.P7UFHJJO.js} +2 -2
  70. package/dist/chunks/{chunk.X5VH7MID.js → chunk.PNO2EH4R.js} +2 -2
  71. package/dist/chunks/{chunk.MAKIWTSE.js → chunk.QJCGOZ2C.js} +8 -8
  72. package/dist/chunks/{chunk.2A5ZKU32.js → chunk.QM6IDFQA.js} +8 -8
  73. package/dist/chunks/{chunk.34DCXKYT.js → chunk.QXGNA3K6.js} +7 -7
  74. package/dist/chunks/{chunk.XO7VQMVX.js → chunk.QZ4X76VS.js} +2 -2
  75. package/dist/chunks/{chunk.VEIXDC5G.js → chunk.RCU4J43O.js} +6 -6
  76. package/dist/chunks/{chunk.Q7TOL5PH.js → chunk.REV5DJND.js} +6 -6
  77. package/dist/chunks/{chunk.QOBJ2NX5.js → chunk.RWPFRMHS.js} +4 -4
  78. package/dist/chunks/{chunk.Q3XZRHS6.js → chunk.S5DNDFXE.js} +6 -6
  79. package/dist/chunks/{chunk.VL3GX6WV.js → chunk.ST3G47SZ.js} +3 -1
  80. package/dist/chunks/chunk.ST3G47SZ.js.map +7 -0
  81. package/dist/chunks/{chunk.HINYMLWI.js → chunk.SY44XR3G.js} +2 -2
  82. package/dist/chunks/{chunk.SCMER6XQ.js → chunk.SY7H5KYW.js} +2 -2
  83. package/dist/chunks/{chunk.SCKEUIIF.js → chunk.T2IBBC4Y.js} +2 -2
  84. package/dist/chunks/{chunk.PLIBKR5J.js → chunk.T7SSSFE2.js} +2 -2
  85. package/dist/chunks/{chunk.Q7VKIJC3.js → chunk.TDN7PKPS.js} +2 -2
  86. package/dist/chunks/{chunk.NEHYBY5N.js → chunk.TK67Q26H.js} +2 -2
  87. package/dist/chunks/{chunk.IKGD2H5A.js → chunk.TNTIJNQN.js} +3 -3
  88. package/dist/chunks/chunk.TWTN3XDM.js +54 -0
  89. package/dist/chunks/chunk.TWTN3XDM.js.map +7 -0
  90. package/dist/chunks/{chunk.SSOL4LVM.js → chunk.U56V7VEW.js} +10 -10
  91. package/dist/chunks/{chunk.4ZWPK4JG.js → chunk.UQC2CWSI.js} +6 -6
  92. package/dist/chunks/{chunk.NMBIRUQU.js → chunk.UW57YS3P.js} +2 -2
  93. package/dist/chunks/{chunk.TVSMRXAW.js → chunk.UYOZFNCL.js} +2 -2
  94. package/dist/chunks/{chunk.LWIAMY4V.js → chunk.V4JGLQYG.js} +4 -4
  95. package/dist/chunks/{chunk.NWNEDOFO.js → chunk.V5SH77KZ.js} +2 -2
  96. package/dist/chunks/{chunk.2IVMHEQ6.js → chunk.V6XDITAV.js} +8 -8
  97. package/dist/chunks/{chunk.EA2ED5LW.js → chunk.VETLCMGW.js} +2 -2
  98. package/dist/chunks/{chunk.JHE7UVMI.js → chunk.VOBA4GKW.js} +2 -2
  99. package/dist/chunks/{chunk.KURP6IS6.js → chunk.VRA7C6D5.js} +9 -9
  100. package/dist/chunks/{chunk.XYDE666E.js → chunk.VVL5ZOEB.js} +2 -2
  101. package/dist/chunks/{chunk.J2QD6WCF.js → chunk.W2YD7S7L.js} +2 -2
  102. package/dist/chunks/{chunk.R4FKW3GX.js → chunk.W6SLSQUJ.js} +9 -9
  103. package/dist/chunks/{chunk.PDOQLAYW.js → chunk.WAXY4KEA.js} +4 -4
  104. package/dist/chunks/{chunk.AOOC5ALQ.js → chunk.WQWJ7ORM.js} +2 -2
  105. package/dist/chunks/{chunk.ZQJTGEHX.js → chunk.XQB7V6OG.js} +2 -2
  106. package/dist/chunks/{chunk.LJNMLUJK.js → chunk.Y6AOTVOC.js} +2 -2
  107. package/dist/chunks/{chunk.EJTQEUF4.js → chunk.YABBBHY3.js} +2 -2
  108. package/dist/chunks/chunk.YXAOQWDR.js +12 -0
  109. package/dist/chunks/chunk.YXAOQWDR.js.map +7 -0
  110. package/dist/chunks/{chunk.TASXJ4ZX.js → chunk.Z6VPAKV3.js} +2 -2
  111. package/dist/chunks/{chunk.ZJSALTLL.js → chunk.ZYZMLVNU.js} +6 -6
  112. package/dist/components/accordion/accordion.component.js +7 -7
  113. package/dist/components/accordion/accordion.js +8 -8
  114. package/dist/components/alert/alert.component.js +11 -11
  115. package/dist/components/alert/alert.js +12 -12
  116. package/dist/components/badge/badge.component.js +8 -8
  117. package/dist/components/badge/badge.js +9 -9
  118. package/dist/components/breadcrumb/breadcrumb.component.js +7 -7
  119. package/dist/components/breadcrumb/breadcrumb.js +8 -8
  120. package/dist/components/breadcrumb-item/breadcrumb-item.component.js +2 -2
  121. package/dist/components/breadcrumb-item/breadcrumb-item.js +3 -3
  122. package/dist/components/button/button.component.js +10 -10
  123. package/dist/components/button/button.js +11 -11
  124. package/dist/components/button-group/button-group.component.js +6 -6
  125. package/dist/components/button-group/button-group.js +7 -7
  126. package/dist/components/card/card.component.js +2 -2
  127. package/dist/components/card/card.js +3 -3
  128. package/dist/components/checkbox/checkbox.component.js +8 -8
  129. package/dist/components/checkbox/checkbox.js +9 -9
  130. package/dist/components/combobox/combobox.component.js +13 -13
  131. package/dist/components/combobox/combobox.js +14 -14
  132. package/dist/components/details/details.component.js +9 -9
  133. package/dist/components/details/details.js +10 -10
  134. package/dist/components/dialog/dialog.component.js +10 -10
  135. package/dist/components/dialog/dialog.js +11 -11
  136. package/dist/components/divider/divider.component.js +2 -2
  137. package/dist/components/divider/divider.js +3 -3
  138. package/dist/components/drawer/drawer.component.js +10 -10
  139. package/dist/components/drawer/drawer.js +11 -11
  140. package/dist/components/dropdown/dropdown.component.js +4 -4
  141. package/dist/components/dropdown/dropdown.js +5 -5
  142. package/dist/components/file/file.component.js +11 -11
  143. package/dist/components/file/file.js +12 -12
  144. package/dist/components/header/header.component.js +6 -6
  145. package/dist/components/header/header.js +7 -7
  146. package/dist/components/icon/icon.component.js +2 -2
  147. package/dist/components/icon/icon.js +3 -3
  148. package/dist/components/icon-button/icon-button.component.js +8 -8
  149. package/dist/components/icon-button/icon-button.js +9 -9
  150. package/dist/components/input/input.component.js +10 -10
  151. package/dist/components/input/input.js +11 -11
  152. package/dist/components/menu/menu.component.js +2 -2
  153. package/dist/components/menu/menu.js +3 -3
  154. package/dist/components/menu-item/menu-item.component.js +7 -7
  155. package/dist/components/menu-item/menu-item.js +8 -8
  156. package/dist/components/menu-label/menu-label.component.js +3 -3
  157. package/dist/components/menu-label/menu-label.js +4 -4
  158. package/dist/components/nav-item/nav-item.component.js +4 -4
  159. package/dist/components/nav-item/nav-item.js +5 -5
  160. package/dist/components/optgroup/optgroup.component.js +3 -3
  161. package/dist/components/optgroup/optgroup.js +4 -4
  162. package/dist/components/option/option.component.js +9 -9
  163. package/dist/components/option/option.js +10 -10
  164. package/dist/components/popup/popup.component.js +2 -2
  165. package/dist/components/popup/popup.js +3 -3
  166. package/dist/components/prio-nav/prio-nav.component.js +10 -10
  167. package/dist/components/prio-nav/prio-nav.js +11 -11
  168. package/dist/components/progress-bar/progress-bar.component.js +2 -2
  169. package/dist/components/progress-bar/progress-bar.js +3 -3
  170. package/dist/components/progress-ring/progress-ring.component.js +2 -2
  171. package/dist/components/progress-ring/progress-ring.js +3 -3
  172. package/dist/components/radio/radio.component.js +8 -8
  173. package/dist/components/radio/radio.js +9 -9
  174. package/dist/components/radio-button/radio-button.component.js +7 -7
  175. package/dist/components/radio-button/radio-button.js +8 -8
  176. package/dist/components/radio-group/radio-group.component.js +8 -8
  177. package/dist/components/radio-group/radio-group.js +9 -9
  178. package/dist/components/range/range.component.js +9 -9
  179. package/dist/components/range/range.js +10 -10
  180. package/dist/components/range-tick/range-tick.component.js +2 -2
  181. package/dist/components/range-tick/range-tick.js +3 -3
  182. package/dist/components/resize-observer/resize-observer.component.js +2 -2
  183. package/dist/components/select/select.component.js +12 -12
  184. package/dist/components/select/select.js +13 -13
  185. package/dist/components/side-nav/side-nav.component.js +13 -13
  186. package/dist/components/side-nav/side-nav.js +14 -14
  187. package/dist/components/spinner/spinner.component.js +2 -2
  188. package/dist/components/spinner/spinner.js +3 -3
  189. package/dist/components/switch/switch.component.js +7 -7
  190. package/dist/components/switch/switch.js +8 -8
  191. package/dist/components/tab/tab.component.js +10 -10
  192. package/dist/components/tab/tab.js +11 -11
  193. package/dist/components/tab-group/tab-group.component.js +11 -11
  194. package/dist/components/tab-group/tab-group.js +12 -12
  195. package/dist/components/tab-panel/tab-panel.component.js +2 -2
  196. package/dist/components/tab-panel/tab-panel.js +3 -3
  197. package/dist/components/tag/tag.component.js +10 -10
  198. package/dist/components/tag/tag.js +11 -11
  199. package/dist/components/tag-group/tag-group.component.d.ts +34 -0
  200. package/dist/components/tag-group/tag-group.component.js +18 -0
  201. package/dist/components/tag-group/tag-group.component.js.map +7 -0
  202. package/dist/components/tag-group/tag-group.d.ts +8 -0
  203. package/dist/components/tag-group/tag-group.js +19 -0
  204. package/dist/components/tag-group/tag-group.js.map +7 -0
  205. package/dist/components/tag-group/tag-group.styles.d.ts +2 -0
  206. package/dist/components/tag-group/tag-group.styles.js +8 -0
  207. package/dist/components/tag-group/tag-group.styles.js.map +7 -0
  208. package/dist/components/textarea/textarea.component.js +7 -7
  209. package/dist/components/textarea/textarea.js +8 -8
  210. package/dist/components/tooltip/tooltip.component.js +4 -4
  211. package/dist/components/tooltip/tooltip.js +5 -5
  212. package/dist/components/validate/utility.js +2 -2
  213. package/dist/components/validate/validate.component.d.ts +7 -0
  214. package/dist/components/validate/validate.component.js +15 -15
  215. package/dist/components/validate/validate.js +16 -16
  216. package/dist/custom-elements.json +230 -77
  217. package/dist/styles/fouc.css +1 -0
  218. package/dist/styles/index.css +2 -1
  219. package/dist/synergy.d.ts +1 -0
  220. package/dist/synergy.js +124 -118
  221. package/dist/utilities/defaultSettings/base.d.ts +3 -1
  222. package/dist/utilities/defaultSettings/base.js +1 -1
  223. package/dist/utilities/defaultSettings/decorator.js +4 -4
  224. package/dist/utilities/defaultSettings/functions.js +3 -3
  225. package/dist/utilities/defaultSettings/index.js +4 -4
  226. package/dist/utilities/defaultSettings/sort.js +1 -1
  227. package/dist/vscode.html-custom-data.json +54 -23
  228. package/package.json +4 -4
  229. package/dist/chunks/chunk.3XZMOCG6.js.map +0 -7
  230. package/dist/chunks/chunk.VL3GX6WV.js.map +0 -7
  231. package/dist/chunks/chunk.VMLERD3J.js.map +0 -7
  232. /package/dist/chunks/{chunk.OEGAZKUI.js.map → chunk.27R54WWQ.js.map} +0 -0
  233. /package/dist/chunks/{chunk.E3U7WNRA.js.map → chunk.2CNDNAO7.js.map} +0 -0
  234. /package/dist/chunks/{chunk.JWA6M5ZZ.js.map → chunk.2D55TUC7.js.map} +0 -0
  235. /package/dist/chunks/{chunk.PIKKRGFU.js.map → chunk.2HJQCYWQ.js.map} +0 -0
  236. /package/dist/chunks/{chunk.N5ZE6OSY.js.map → chunk.2QWTD4DT.js.map} +0 -0
  237. /package/dist/chunks/{chunk.RXRHPQ7D.js.map → chunk.3BSUHN2J.js.map} +0 -0
  238. /package/dist/chunks/{chunk.6VJY3TRA.js.map → chunk.4HSS7ZGG.js.map} +0 -0
  239. /package/dist/chunks/{chunk.S2IHOYLF.js.map → chunk.4ISK63NF.js.map} +0 -0
  240. /package/dist/chunks/{chunk.TB237H74.js.map → chunk.4N4LUDKB.js.map} +0 -0
  241. /package/dist/chunks/{chunk.A2AYJJ7H.js.map → chunk.5EFZAEYZ.js.map} +0 -0
  242. /package/dist/chunks/{chunk.O5STVMJZ.js.map → chunk.5VTMSSKD.js.map} +0 -0
  243. /package/dist/chunks/{chunk.YACUYJZN.js.map → chunk.5YZ63VR2.js.map} +0 -0
  244. /package/dist/chunks/{chunk.EPMUBNXV.js.map → chunk.622POSG3.js.map} +0 -0
  245. /package/dist/chunks/{chunk.ZOW7OV2U.js.map → chunk.6N5QEKIJ.js.map} +0 -0
  246. /package/dist/chunks/{chunk.L6H7CHLC.js.map → chunk.6T23NP2Y.js.map} +0 -0
  247. /package/dist/chunks/{chunk.WM6M3IWG.js.map → chunk.7CY3RH3P.js.map} +0 -0
  248. /package/dist/chunks/{chunk.SYMEFYEK.js.map → chunk.7EHQA76T.js.map} +0 -0
  249. /package/dist/chunks/{chunk.HBXMQ7PF.js.map → chunk.7UBS5CEK.js.map} +0 -0
  250. /package/dist/chunks/{chunk.57A42NLG.js.map → chunk.A4IOBXRL.js.map} +0 -0
  251. /package/dist/chunks/{chunk.FDOTWE5Q.js.map → chunk.B6PO4OWH.js.map} +0 -0
  252. /package/dist/chunks/{chunk.3NWL4AL3.js.map → chunk.BB3NN2ZP.js.map} +0 -0
  253. /package/dist/chunks/{chunk.RU2RT37T.js.map → chunk.BH2BGNPS.js.map} +0 -0
  254. /package/dist/chunks/{chunk.YSWL6IJW.js.map → chunk.BLW3DY7U.js.map} +0 -0
  255. /package/dist/chunks/{chunk.AHX2WNRS.js.map → chunk.BPZ2CBE7.js.map} +0 -0
  256. /package/dist/chunks/{chunk.JKA6KBXT.js.map → chunk.CFL26HPZ.js.map} +0 -0
  257. /package/dist/chunks/{chunk.36JGEYPF.js.map → chunk.D7R443LV.js.map} +0 -0
  258. /package/dist/chunks/{chunk.VU6FOBTQ.js.map → chunk.DN4S5TVB.js.map} +0 -0
  259. /package/dist/chunks/{chunk.XIO6NVNU.js.map → chunk.FADYQQMZ.js.map} +0 -0
  260. /package/dist/chunks/{chunk.XVXJDFUK.js.map → chunk.FD42PA2Y.js.map} +0 -0
  261. /package/dist/chunks/{chunk.YYCO33PM.js.map → chunk.FXRLXOMJ.js.map} +0 -0
  262. /package/dist/chunks/{chunk.HSSW752S.js.map → chunk.GAMT7VDO.js.map} +0 -0
  263. /package/dist/chunks/{chunk.NUNQOP7A.js.map → chunk.GFUSTDI7.js.map} +0 -0
  264. /package/dist/chunks/{chunk.P4ZXNQQ4.js.map → chunk.GNXJ3HON.js.map} +0 -0
  265. /package/dist/chunks/{chunk.Z7JE3NFJ.js.map → chunk.GU3RE54C.js.map} +0 -0
  266. /package/dist/chunks/{chunk.4GDY7NEK.js.map → chunk.ISXCFMOK.js.map} +0 -0
  267. /package/dist/chunks/{chunk.PDVI2IPR.js.map → chunk.IY6SHCBE.js.map} +0 -0
  268. /package/dist/chunks/{chunk.N2P6JGTF.js.map → chunk.JC5SF42E.js.map} +0 -0
  269. /package/dist/chunks/{chunk.RY3ZM7MQ.js.map → chunk.JEJO727M.js.map} +0 -0
  270. /package/dist/chunks/{chunk.CVUNFQUG.js.map → chunk.JIE55A5M.js.map} +0 -0
  271. /package/dist/chunks/{chunk.ZS2RODX4.js.map → chunk.JZAZESKP.js.map} +0 -0
  272. /package/dist/chunks/{chunk.RCI5CCXX.js.map → chunk.KHAGMU2K.js.map} +0 -0
  273. /package/dist/chunks/{chunk.HZ74RYOQ.js.map → chunk.KNTBXY7A.js.map} +0 -0
  274. /package/dist/chunks/{chunk.WOUHL4WE.js.map → chunk.KPEU3RSO.js.map} +0 -0
  275. /package/dist/chunks/{chunk.QTVJRWRP.js.map → chunk.KUKYVATU.js.map} +0 -0
  276. /package/dist/chunks/{chunk.UEMDEZX6.js.map → chunk.KZINUJES.js.map} +0 -0
  277. /package/dist/chunks/{chunk.3WVDHGXC.js.map → chunk.LCGFNSS6.js.map} +0 -0
  278. /package/dist/chunks/{chunk.KC4VEV4Y.js.map → chunk.LZ4GTRM7.js.map} +0 -0
  279. /package/dist/chunks/{chunk.XBDUDOPF.js.map → chunk.MWAQUYHX.js.map} +0 -0
  280. /package/dist/chunks/{chunk.UCXZFEKY.js.map → chunk.MYREUSWZ.js.map} +0 -0
  281. /package/dist/chunks/{chunk.2PPN6KVK.js.map → chunk.N72N7GJV.js.map} +0 -0
  282. /package/dist/chunks/{chunk.SBAXRTPJ.js.map → chunk.NM3H4D62.js.map} +0 -0
  283. /package/dist/chunks/{chunk.XAXHRDXN.js.map → chunk.NTJ3M4RR.js.map} +0 -0
  284. /package/dist/chunks/{chunk.JXKV4DYA.js.map → chunk.NVS6WQOF.js.map} +0 -0
  285. /package/dist/chunks/{chunk.J37FDI7L.js.map → chunk.O4HXWJHO.js.map} +0 -0
  286. /package/dist/chunks/{chunk.6LMYTIGS.js.map → chunk.O5J2OIE2.js.map} +0 -0
  287. /package/dist/chunks/{chunk.D5UFMTUH.js.map → chunk.OAWJHVRJ.js.map} +0 -0
  288. /package/dist/chunks/{chunk.DFMLUH2N.js.map → chunk.OCQQWEY2.js.map} +0 -0
  289. /package/dist/chunks/{chunk.VCJQ6DPU.js.map → chunk.OGPIP45L.js.map} +0 -0
  290. /package/dist/chunks/{chunk.5QUHHGOD.js.map → chunk.P7UFHJJO.js.map} +0 -0
  291. /package/dist/chunks/{chunk.X5VH7MID.js.map → chunk.PNO2EH4R.js.map} +0 -0
  292. /package/dist/chunks/{chunk.MAKIWTSE.js.map → chunk.QJCGOZ2C.js.map} +0 -0
  293. /package/dist/chunks/{chunk.2A5ZKU32.js.map → chunk.QM6IDFQA.js.map} +0 -0
  294. /package/dist/chunks/{chunk.34DCXKYT.js.map → chunk.QXGNA3K6.js.map} +0 -0
  295. /package/dist/chunks/{chunk.XO7VQMVX.js.map → chunk.QZ4X76VS.js.map} +0 -0
  296. /package/dist/chunks/{chunk.VEIXDC5G.js.map → chunk.RCU4J43O.js.map} +0 -0
  297. /package/dist/chunks/{chunk.Q7TOL5PH.js.map → chunk.REV5DJND.js.map} +0 -0
  298. /package/dist/chunks/{chunk.QOBJ2NX5.js.map → chunk.RWPFRMHS.js.map} +0 -0
  299. /package/dist/chunks/{chunk.Q3XZRHS6.js.map → chunk.S5DNDFXE.js.map} +0 -0
  300. /package/dist/chunks/{chunk.HINYMLWI.js.map → chunk.SY44XR3G.js.map} +0 -0
  301. /package/dist/chunks/{chunk.SCMER6XQ.js.map → chunk.SY7H5KYW.js.map} +0 -0
  302. /package/dist/chunks/{chunk.SCKEUIIF.js.map → chunk.T2IBBC4Y.js.map} +0 -0
  303. /package/dist/chunks/{chunk.PLIBKR5J.js.map → chunk.T7SSSFE2.js.map} +0 -0
  304. /package/dist/chunks/{chunk.Q7VKIJC3.js.map → chunk.TDN7PKPS.js.map} +0 -0
  305. /package/dist/chunks/{chunk.NEHYBY5N.js.map → chunk.TK67Q26H.js.map} +0 -0
  306. /package/dist/chunks/{chunk.IKGD2H5A.js.map → chunk.TNTIJNQN.js.map} +0 -0
  307. /package/dist/chunks/{chunk.SSOL4LVM.js.map → chunk.U56V7VEW.js.map} +0 -0
  308. /package/dist/chunks/{chunk.4ZWPK4JG.js.map → chunk.UQC2CWSI.js.map} +0 -0
  309. /package/dist/chunks/{chunk.NMBIRUQU.js.map → chunk.UW57YS3P.js.map} +0 -0
  310. /package/dist/chunks/{chunk.TVSMRXAW.js.map → chunk.UYOZFNCL.js.map} +0 -0
  311. /package/dist/chunks/{chunk.LWIAMY4V.js.map → chunk.V4JGLQYG.js.map} +0 -0
  312. /package/dist/chunks/{chunk.NWNEDOFO.js.map → chunk.V5SH77KZ.js.map} +0 -0
  313. /package/dist/chunks/{chunk.2IVMHEQ6.js.map → chunk.V6XDITAV.js.map} +0 -0
  314. /package/dist/chunks/{chunk.EA2ED5LW.js.map → chunk.VETLCMGW.js.map} +0 -0
  315. /package/dist/chunks/{chunk.JHE7UVMI.js.map → chunk.VOBA4GKW.js.map} +0 -0
  316. /package/dist/chunks/{chunk.KURP6IS6.js.map → chunk.VRA7C6D5.js.map} +0 -0
  317. /package/dist/chunks/{chunk.XYDE666E.js.map → chunk.VVL5ZOEB.js.map} +0 -0
  318. /package/dist/chunks/{chunk.J2QD6WCF.js.map → chunk.W2YD7S7L.js.map} +0 -0
  319. /package/dist/chunks/{chunk.R4FKW3GX.js.map → chunk.W6SLSQUJ.js.map} +0 -0
  320. /package/dist/chunks/{chunk.PDOQLAYW.js.map → chunk.WAXY4KEA.js.map} +0 -0
  321. /package/dist/chunks/{chunk.AOOC5ALQ.js.map → chunk.WQWJ7ORM.js.map} +0 -0
  322. /package/dist/chunks/{chunk.ZQJTGEHX.js.map → chunk.XQB7V6OG.js.map} +0 -0
  323. /package/dist/chunks/{chunk.LJNMLUJK.js.map → chunk.Y6AOTVOC.js.map} +0 -0
  324. /package/dist/chunks/{chunk.EJTQEUF4.js.map → chunk.YABBBHY3.js.map} +0 -0
  325. /package/dist/chunks/{chunk.TASXJ4ZX.js.map → chunk.Z6VPAKV3.js.map} +0 -0
  326. /package/dist/chunks/{chunk.ZJSALTLL.js.map → chunk.ZYZMLVNU.js.map} +0 -0
@@ -15,19 +15,19 @@ import {
15
15
  } from "./chunk.CHFWLQN5.js";
16
16
  import {
17
17
  SynIcon
18
- } from "./chunk.LJNMLUJK.js";
18
+ } from "./chunk.Y6AOTVOC.js";
19
+ import {
20
+ enableDefaultSettings
21
+ } from "./chunk.5YZ63VR2.js";
19
22
  import {
20
23
  watch
21
24
  } from "./chunk.SMIMHADA.js";
22
- import {
23
- enableDefaultSettings
24
- } from "./chunk.YACUYJZN.js";
25
25
  import {
26
26
  component_styles_default
27
27
  } from "./chunk.2NT3B5WJ.js";
28
28
  import {
29
29
  SynergyElement
30
- } from "./chunk.IUFTAV2I.js";
30
+ } from "./chunk.I4M3MYDP.js";
31
31
  import {
32
32
  __decorateClass
33
33
  } from "./chunk.MO2GTRUM.js";
@@ -266,4 +266,4 @@ SynCheckbox = __decorateClass([
266
266
  export {
267
267
  SynCheckbox
268
268
  };
269
- //# sourceMappingURL=chunk.XIO6NVNU.js.map
269
+ //# sourceMappingURL=chunk.FADYQQMZ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynSpinner
3
- } from "./chunk.J37FDI7L.js";
3
+ } from "./chunk.O4HXWJHO.js";
4
4
 
5
5
  // src/components/spinner/spinner.ts
6
6
  var spinner_default = SynSpinner;
@@ -9,4 +9,4 @@ SynSpinner.define("syn-spinner");
9
9
  export {
10
10
  spinner_default
11
11
  };
12
- //# sourceMappingURL=chunk.XVXJDFUK.js.map
12
+ //# sourceMappingURL=chunk.FD42PA2Y.js.map
@@ -0,0 +1,101 @@
1
+ import {
2
+ tag_group_styles_default
3
+ } from "./chunk.TWTN3XDM.js";
4
+ import {
5
+ HasSlotController
6
+ } from "./chunk.CHFWLQN5.js";
7
+ import {
8
+ enableDefaultSettings
9
+ } from "./chunk.5YZ63VR2.js";
10
+ import {
11
+ watch
12
+ } from "./chunk.SMIMHADA.js";
13
+ import {
14
+ component_styles_default
15
+ } from "./chunk.2NT3B5WJ.js";
16
+ import {
17
+ SynergyElement
18
+ } from "./chunk.I4M3MYDP.js";
19
+ import {
20
+ __decorateClass
21
+ } from "./chunk.MO2GTRUM.js";
22
+
23
+ // src/components/tag-group/tag-group.component.ts
24
+ import { html } from "lit";
25
+ import { property, queryAssignedElements } from "lit/decorators.js";
26
+ import { classMap } from "lit/directives/class-map.js";
27
+ var SynTagGroup = class extends SynergyElement {
28
+ constructor() {
29
+ super(...arguments);
30
+ this.hasSlotController = new HasSlotController(this, "label");
31
+ this.label = "";
32
+ this.labelPosition = "top";
33
+ this.size = "medium";
34
+ }
35
+ adjustTagSize() {
36
+ this.tagsInDefaultSlot.forEach((tag) => {
37
+ tag.setAttribute("size", this.size);
38
+ });
39
+ }
40
+ handleSizeChange() {
41
+ this.adjustTagSize();
42
+ }
43
+ handleSlotChange() {
44
+ this.adjustTagSize();
45
+ }
46
+ render() {
47
+ const hasLabelSlot = this.hasSlotController.test("label");
48
+ const hasLabel = this.label ? true : !!hasLabelSlot;
49
+ return html`
50
+ <div
51
+ part="base"
52
+ class=${classMap({
53
+ "tag-group": true,
54
+ "tag-group--large": this.size === "large",
55
+ "tag-group--medium": this.size === "medium",
56
+ "tag-group--small": this.size === "small",
57
+ "tag-group--start": this.labelPosition === "start",
58
+ "tag-group--top": this.labelPosition === "top"
59
+ })}
60
+ >
61
+
62
+ <span
63
+ part="tag-label"
64
+ class="tag-group__label"
65
+ aria-hidden=${hasLabel ? "false" : "true"}
66
+ >
67
+ <slot name="label">${this.label}</slot>
68
+ </span>
69
+
70
+ <slot @slotchange=${this.handleSlotChange}></slot>
71
+ </div>
72
+ `;
73
+ }
74
+ };
75
+ SynTagGroup.styles = [
76
+ component_styles_default,
77
+ tag_group_styles_default
78
+ ];
79
+ __decorateClass([
80
+ queryAssignedElements({ selector: "syn-tag" })
81
+ ], SynTagGroup.prototype, "tagsInDefaultSlot", 2);
82
+ __decorateClass([
83
+ property()
84
+ ], SynTagGroup.prototype, "label", 2);
85
+ __decorateClass([
86
+ property({ attribute: "label-position", reflect: true })
87
+ ], SynTagGroup.prototype, "labelPosition", 2);
88
+ __decorateClass([
89
+ property({ reflect: true })
90
+ ], SynTagGroup.prototype, "size", 2);
91
+ __decorateClass([
92
+ watch("size", { waitUntilFirstUpdate: true })
93
+ ], SynTagGroup.prototype, "handleSizeChange", 1);
94
+ SynTagGroup = __decorateClass([
95
+ enableDefaultSettings("SynTagGroup")
96
+ ], SynTagGroup);
97
+
98
+ export {
99
+ SynTagGroup
100
+ };
101
+ //# sourceMappingURL=chunk.FGZNB336.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/tag-group/tag-group.component.ts"],
4
+ "sourcesContent": ["import { html } from 'lit';\nimport { property, queryAssignedElements } from 'lit/decorators.js';\nimport type { CSSResultGroup } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { HasSlotController } from '../../internal/slot.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport { watch } from '../../internal/watch.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport styles from './tag-group.styles.js';\nimport type SynTag from '../tag/tag.component.js';\nimport { enableDefaultSettings } from '../../utilities/defaultSettings/decorator.js';\n\n/**\n * @summary A tag group is used to display multiple tags that belong together, often representing selected filters, categories, or user\u2011generated labels.\n * It arranges tags in flexible rows and supports different sizes and layouts.\n * Tags can be removable, icon\u2011based, or purely textual.\n *\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-tag-group--docs\n * @status stable\n *\n * @slot - The tag group's main content. Must be `<syn-tag />` elements.\n * @slot label - The tag group's label. Alternatively, you can use the `label` attribute.\n *\n * @csspart base - The component's base wrapper.\n * @csspart tag-label - The tag group's label.\n */\n@enableDefaultSettings('SynTagGroup')\nexport default class SynTagGroup extends SynergyElement {\n static styles: CSSResultGroup = [\n componentStyles,\n styles,\n ];\n\n @queryAssignedElements({ selector: 'syn-tag' }) tagsInDefaultSlot!: SynTag[];\n\n private readonly hasSlotController = new HasSlotController(this, 'label');\n\n /** The tag group's label. If you need to display HTML, use the `label` slot instead. */\n @property() label = '';\n\n /**\n * Controls the label position. Use 'top' to place the label above the tags, or 'start' to place it to the begin of the tag group.\n */\n @property({ attribute: 'label-position', reflect: true }) labelPosition: 'top' | 'start' = 'top';\n\n /** The size that should be applied to all slotted `<syn-tag>` elements */\n @property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n private adjustTagSize() {\n this.tagsInDefaultSlot.forEach(tag => {\n tag.setAttribute('size', this.size);\n });\n }\n\n @watch('size', { waitUntilFirstUpdate: true })\n handleSizeChange() {\n this.adjustTagSize();\n }\n\n handleSlotChange() {\n this.adjustTagSize();\n }\n\n render() {\n const hasLabelSlot = this.hasSlotController.test('label');\n const hasLabel = this.label ? true : !!hasLabelSlot;\n\n /* eslint-disable @typescript-eslint/unbound-method */\n return html`\n <div \n part=\"base\"\n class=${classMap({\n 'tag-group': true,\n 'tag-group--large': this.size === 'large',\n 'tag-group--medium': this.size === 'medium',\n 'tag-group--small': this.size === 'small',\n 'tag-group--start': this.labelPosition === 'start',\n 'tag-group--top': this.labelPosition === 'top',\n })}\n >\n\n <span\n part=\"tag-label\"\n class=\"tag-group__label\"\n aria-hidden=${hasLabel ? 'false' : 'true'}\n >\n <slot name=\"label\">${this.label}</slot>\n </span>\n\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n `;\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,UAAU,6BAA6B;AAEhD,SAAS,gBAAgB;AAwBzB,IAAqB,cAArB,cAAyC,eAAe;AAAA,EAAxD;AAAA;AAQE,SAAiB,oBAAoB,IAAI,kBAAkB,MAAM,OAAO;AAG5D,iBAAQ;AAKsC,yBAAiC;AAG9D,gBAAqC;AAAA;AAAA,EAE1D,gBAAgB;AACtB,SAAK,kBAAkB,QAAQ,SAAO;AACpC,UAAI,aAAa,QAAQ,KAAK,IAAI;AAAA,IACpC,CAAC;AAAA,EACH;AAAA,EAGA,mBAAmB;AACjB,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,mBAAmB;AACjB,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,SAAS;AACP,UAAM,eAAe,KAAK,kBAAkB,KAAK,OAAO;AACxD,UAAM,WAAW,KAAK,QAAQ,OAAO,CAAC,CAAC;AAGvC,WAAO;AAAA;AAAA;AAAA,gBAGK,SAAS;AAAA,MACf,aAAa;AAAA,MACb,oBAAoB,KAAK,SAAS;AAAA,MAClC,qBAAqB,KAAK,SAAS;AAAA,MACnC,oBAAoB,KAAK,SAAS;AAAA,MAClC,oBAAoB,KAAK,kBAAkB;AAAA,MAC3C,kBAAkB,KAAK,kBAAkB;AAAA,IAC3C,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAMgB,WAAW,UAAU,MAAM;AAAA;AAAA,iCAEpB,KAAK,KAAK;AAAA;AAAA;AAAA,4BAGf,KAAK,gBAAgB;AAAA;AAAA;AAAA,EAI/C;AACF;AAnEqB,YACZ,SAAyB;AAAA,EAC9B;AAAA,EACA;AACF;AAEgD;AAAA,EAA/C,sBAAsB,EAAE,UAAU,UAAU,CAAC;AAAA,GAN3B,YAM6B;AAKpC;AAAA,EAAX,SAAS;AAAA,GAXS,YAWP;AAK8C;AAAA,EAAzD,SAAS,EAAE,WAAW,kBAAkB,SAAS,KAAK,CAAC;AAAA,GAhBrC,YAgBuC;AAG7B;AAAA,EAA5B,SAAS,EAAE,SAAS,KAAK,CAAC;AAAA,GAnBR,YAmBU;AAS7B;AAAA,EADC,MAAM,QAAQ,EAAE,sBAAsB,KAAK,CAAC;AAAA,GA3B1B,YA4BnB;AA5BmB,cAArB;AAAA,EADC,sBAAsB,aAAa;AAAA,GACf;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynMenuLabel
3
- } from "./chunk.SBAXRTPJ.js";
3
+ } from "./chunk.NM3H4D62.js";
4
4
 
5
5
  // src/components/menu-label/menu-label.ts
6
6
  var menu_label_default = SynMenuLabel;
@@ -9,4 +9,4 @@ SynMenuLabel.define("syn-menu-label");
9
9
  export {
10
10
  menu_label_default
11
11
  };
12
- //# sourceMappingURL=chunk.YYCO33PM.js.map
12
+ //# sourceMappingURL=chunk.FXRLXOMJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynSideNav
3
- } from "./chunk.O5STVMJZ.js";
3
+ } from "./chunk.5VTMSSKD.js";
4
4
 
5
5
  // src/components/side-nav/side-nav.ts
6
6
  var side_nav_default = SynSideNav;
@@ -9,4 +9,4 @@ SynSideNav.define("syn-side-nav");
9
9
  export {
10
10
  side_nav_default
11
11
  };
12
- //# sourceMappingURL=chunk.HSSW752S.js.map
12
+ //# sourceMappingURL=chunk.GAMT7VDO.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynButton
3
- } from "./chunk.2IVMHEQ6.js";
3
+ } from "./chunk.V6XDITAV.js";
4
4
 
5
5
  // src/components/button/button.ts
6
6
  var button_default = SynButton;
@@ -9,4 +9,4 @@ SynButton.define("syn-button");
9
9
  export {
10
10
  button_default
11
11
  };
12
- //# sourceMappingURL=chunk.NUNQOP7A.js.map
12
+ //# sourceMappingURL=chunk.GFUSTDI7.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynFile
3
- } from "./chunk.2A5ZKU32.js";
3
+ } from "./chunk.QM6IDFQA.js";
4
4
 
5
5
  // src/components/file/file.ts
6
6
  var file_default = SynFile;
@@ -9,4 +9,4 @@ SynFile.define("syn-file");
9
9
  export {
10
10
  file_default
11
11
  };
12
- //# sourceMappingURL=chunk.P4ZXNQQ4.js.map
12
+ //# sourceMappingURL=chunk.GNXJ3HON.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynRadioButton
3
- } from "./chunk.3WVDHGXC.js";
3
+ } from "./chunk.LCGFNSS6.js";
4
4
 
5
5
  // src/components/radio-button/radio-button.ts
6
6
  var radio_button_default = SynRadioButton;
@@ -9,4 +9,4 @@ SynRadioButton.define("syn-radio-button");
9
9
  export {
10
10
  radio_button_default
11
11
  };
12
- //# sourceMappingURL=chunk.Z7JE3NFJ.js.map
12
+ //# sourceMappingURL=chunk.GU3RE54C.js.map
@@ -81,7 +81,7 @@ var SynergyElement = class extends LitElement {
81
81
  _hasRecordedInitialProperties = new WeakMap();
82
82
  /* eslint-disable */
83
83
  // @ts-expect-error This is auto-injected at build time.
84
- SynergyElement.version = "3.6.1";
84
+ SynergyElement.version = "3.7.0";
85
85
  SynergyElement.dependencies = {};
86
86
  __decorateClass([
87
87
  property()
@@ -93,4 +93,4 @@ __decorateClass([
93
93
  export {
94
94
  SynergyElement
95
95
  };
96
- //# sourceMappingURL=chunk.IUFTAV2I.js.map
96
+ //# sourceMappingURL=chunk.I4M3MYDP.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/internal/synergy-element.ts"],
4
- "sourcesContent": ["/* eslint-disable */\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\n// Match event type name strings that are registered on GlobalEventHandlersEventMap...\ntype EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? // ...where the event detail is an object...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? // ...that is non-empty...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? never\n : // ...and has at least one non-optional property\n Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? never\n : T\n : never\n : never;\n\n// The inverse of the above (match any type that doesn't match EventTypeRequiresDetail)\ntype EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? T\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? T\n : never\n : T\n : T;\n\n// `keyof EventTypesWithRequiredDetail` lists all registered event types that require detail\ntype EventTypesWithRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;\n};\n\n// `keyof EventTypesWithoutRequiredDetail` lists all registered event types that do NOT require detail\ntype EventTypesWithoutRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;\n};\n\n// Helper to make a specific property of an object non-optional\ntype WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };\n\n// Given an event name string, get a valid type for the options to initialize the event that is more restrictive than\n// just CustomEventInit when appropriate (validate the type of the event detail, and require it to be provided if the\n// event requires it)\ntype SynEventInit<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>, 'detail'>\n : CustomEventInit\n : CustomEventInit;\n\n// Given an event name string, get the type of the event\ntype GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown>\n ? GlobalEventHandlersEventMap[T]\n : CustomEvent<unknown>\n : CustomEvent<unknown>;\n\n// `keyof ValidEventTypeMap` is equivalent to `keyof GlobalEventHandlersEventMap` but gives a nicer error message\ntype ValidEventTypeMap = EventTypesWithRequiredDetail | EventTypesWithoutRequiredDetail;\n\nexport default class SynergyElement extends LitElement {\n // Make localization attributes reactive\n @property() dir: string;\n @property() lang: string;\n\n /** Emits a custom event with more convenient defaults. */\n emit<T extends string & keyof EventTypesWithoutRequiredDetail>(\n name: EventTypeDoesNotRequireDetail<T>,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T>;\n emit<T extends string & keyof EventTypesWithRequiredDetail>(\n name: EventTypeRequiresDetail<T>,\n options: SynEventInit<T>\n ): GetCustomEventType<T>;\n emit<T extends string & keyof ValidEventTypeMap>(\n name: T,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T> {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event as GetCustomEventType<T>;\n }\n\n /* eslint-disable */\n // @ts-expect-error This is auto-injected at build time.\n static version = \"3.6.1\";\n \n\n static define(name: string, elementConstructor = this, options: ElementDefinitionOptions = {}) {\n const currentlyRegisteredConstructor = customElements.get(name) as\n | CustomElementConstructor\n | typeof SynergyElement;\n\n if (!currentlyRegisteredConstructor) {\n // We try to register as the actual class first. If for some reason that fails, we fall back to anonymous classes.\n // customElements can only have 1 class of the same \"object id\" per registry, so that is why the try {} catch {} exists.\n // Some tools like Jest Snapshots and if you import the constructor and call `new SynButton()` they will fail with\n // the anonymous class version.\n try {\n customElements.define(name, elementConstructor, options);\n } catch (_err) {\n customElements.define(name, class extends elementConstructor {}, options);\n }\n return;\n }\n\n let newVersion = ' (unknown version)';\n let existingVersion = newVersion;\n\n if ('version' in elementConstructor && elementConstructor.version) {\n newVersion = ' v' + elementConstructor.version;\n }\n\n if ('version' in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = ' v' + currentlyRegisteredConstructor.version;\n }\n\n // Need to make sure we're not working with null or empty strings before doing version comparisons.\n if (newVersion && existingVersion && newVersion === existingVersion) {\n // If versions match, we don't need to warn anyone. Carry on.\n return;\n }\n\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n\n static dependencies: Record<string, typeof SynergyElement> = {};\n\n constructor() {\n super();\n Object.entries((this.constructor as typeof SynergyElement).dependencies).forEach(([name, component]) => {\n (this.constructor as typeof SynergyElement).define(name, component);\n });\n }\n\n #hasRecordedInitialProperties = false;\n\n // Store the constructor value of all `static properties = {}`\n initialReflectedProperties: Map<string, unknown> = new Map();\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (!this.#hasRecordedInitialProperties) {\n (this.constructor as typeof SynergyElement).elementProperties.forEach(\n (obj, prop: keyof typeof this & string) => {\n // eslint-disable-next-line\n if (obj.reflect && this[prop] != null) {\n this.initialReflectedProperties.set(prop, this[prop]);\n }\n }\n );\n\n this.#hasRecordedInitialProperties = true;\n }\n\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n protected willUpdate(changedProperties: Parameters<LitElement['willUpdate']>[0]): void {\n super.willUpdate(changedProperties);\n\n // Run the morph fixing *after* willUpdate.\n this.initialReflectedProperties.forEach((value, prop: string & keyof typeof this) => {\n // If a prop changes to `null`, we assume this happens via an attribute changing to `null`.\n // eslint-disable-next-line\n if (changedProperties.has(prop) && this[prop] == null) {\n // Silly type gymnastics to appease the compiler.\n (this as Record<string, unknown>)[prop] = value;\n }\n });\n }\n}\n\nexport interface SynergyFormControl extends SynergyElement {\n // Form attributes\n name: string;\n value: unknown;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n form?: string;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | 'any';\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n\n // Form validation properties\n readonly validity: ValidityState;\n readonly validationMessage: string;\n\n // Form validation methods\n checkValidity: () => boolean;\n getForm: () => HTMLFormElement | null;\n reportValidity: () => boolean;\n setCustomValidity: (message: string) => void;\n}\n"],
4
+ "sourcesContent": ["/* eslint-disable */\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\n// Match event type name strings that are registered on GlobalEventHandlersEventMap...\ntype EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? // ...where the event detail is an object...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? // ...that is non-empty...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? never\n : // ...and has at least one non-optional property\n Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? never\n : T\n : never\n : never;\n\n// The inverse of the above (match any type that doesn't match EventTypeRequiresDetail)\ntype EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? T\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? T\n : never\n : T\n : T;\n\n// `keyof EventTypesWithRequiredDetail` lists all registered event types that require detail\ntype EventTypesWithRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;\n};\n\n// `keyof EventTypesWithoutRequiredDetail` lists all registered event types that do NOT require detail\ntype EventTypesWithoutRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;\n};\n\n// Helper to make a specific property of an object non-optional\ntype WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };\n\n// Given an event name string, get a valid type for the options to initialize the event that is more restrictive than\n// just CustomEventInit when appropriate (validate the type of the event detail, and require it to be provided if the\n// event requires it)\ntype SynEventInit<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>, 'detail'>\n : CustomEventInit\n : CustomEventInit;\n\n// Given an event name string, get the type of the event\ntype GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown>\n ? GlobalEventHandlersEventMap[T]\n : CustomEvent<unknown>\n : CustomEvent<unknown>;\n\n// `keyof ValidEventTypeMap` is equivalent to `keyof GlobalEventHandlersEventMap` but gives a nicer error message\ntype ValidEventTypeMap = EventTypesWithRequiredDetail | EventTypesWithoutRequiredDetail;\n\nexport default class SynergyElement extends LitElement {\n // Make localization attributes reactive\n @property() dir: string;\n @property() lang: string;\n\n /** Emits a custom event with more convenient defaults. */\n emit<T extends string & keyof EventTypesWithoutRequiredDetail>(\n name: EventTypeDoesNotRequireDetail<T>,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T>;\n emit<T extends string & keyof EventTypesWithRequiredDetail>(\n name: EventTypeRequiresDetail<T>,\n options: SynEventInit<T>\n ): GetCustomEventType<T>;\n emit<T extends string & keyof ValidEventTypeMap>(\n name: T,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T> {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event as GetCustomEventType<T>;\n }\n\n /* eslint-disable */\n // @ts-expect-error This is auto-injected at build time.\n static version = \"3.7.0\";\n \n\n static define(name: string, elementConstructor = this, options: ElementDefinitionOptions = {}) {\n const currentlyRegisteredConstructor = customElements.get(name) as\n | CustomElementConstructor\n | typeof SynergyElement;\n\n if (!currentlyRegisteredConstructor) {\n // We try to register as the actual class first. If for some reason that fails, we fall back to anonymous classes.\n // customElements can only have 1 class of the same \"object id\" per registry, so that is why the try {} catch {} exists.\n // Some tools like Jest Snapshots and if you import the constructor and call `new SynButton()` they will fail with\n // the anonymous class version.\n try {\n customElements.define(name, elementConstructor, options);\n } catch (_err) {\n customElements.define(name, class extends elementConstructor {}, options);\n }\n return;\n }\n\n let newVersion = ' (unknown version)';\n let existingVersion = newVersion;\n\n if ('version' in elementConstructor && elementConstructor.version) {\n newVersion = ' v' + elementConstructor.version;\n }\n\n if ('version' in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = ' v' + currentlyRegisteredConstructor.version;\n }\n\n // Need to make sure we're not working with null or empty strings before doing version comparisons.\n if (newVersion && existingVersion && newVersion === existingVersion) {\n // If versions match, we don't need to warn anyone. Carry on.\n return;\n }\n\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n\n static dependencies: Record<string, typeof SynergyElement> = {};\n\n constructor() {\n super();\n Object.entries((this.constructor as typeof SynergyElement).dependencies).forEach(([name, component]) => {\n (this.constructor as typeof SynergyElement).define(name, component);\n });\n }\n\n #hasRecordedInitialProperties = false;\n\n // Store the constructor value of all `static properties = {}`\n initialReflectedProperties: Map<string, unknown> = new Map();\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (!this.#hasRecordedInitialProperties) {\n (this.constructor as typeof SynergyElement).elementProperties.forEach(\n (obj, prop: keyof typeof this & string) => {\n // eslint-disable-next-line\n if (obj.reflect && this[prop] != null) {\n this.initialReflectedProperties.set(prop, this[prop]);\n }\n }\n );\n\n this.#hasRecordedInitialProperties = true;\n }\n\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n protected willUpdate(changedProperties: Parameters<LitElement['willUpdate']>[0]): void {\n super.willUpdate(changedProperties);\n\n // Run the morph fixing *after* willUpdate.\n this.initialReflectedProperties.forEach((value, prop: string & keyof typeof this) => {\n // If a prop changes to `null`, we assume this happens via an attribute changing to `null`.\n // eslint-disable-next-line\n if (changedProperties.has(prop) && this[prop] == null) {\n // Silly type gymnastics to appease the compiler.\n (this as Record<string, unknown>)[prop] = value;\n }\n });\n }\n}\n\nexport interface SynergyFormControl extends SynergyElement {\n // Form attributes\n name: string;\n value: unknown;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n form?: string;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | 'any';\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n\n // Form validation properties\n readonly validity: ValidityState;\n readonly validationMessage: string;\n\n // Form validation methods\n checkValidity: () => boolean;\n getForm: () => HTMLFormElement | null;\n reportValidity: () => boolean;\n setCustomValidity: (message: string) => void;\n}\n"],
5
5
  "mappings": ";;;;;;;;;AACA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AAFzB;AAiEA,IAAqB,iBAArB,cAA4C,WAAW;AAAA,EA8ErD,cAAc;AACZ,UAAM;AAMR,sDAAgC;AAGhC;AAAA,sCAAmD,oBAAI,IAAI;AARzD,WAAO,QAAS,KAAK,YAAsC,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,SAAS,MAAM;AACtG,MAAC,KAAK,YAAsC,OAAO,MAAM,SAAS;AAAA,IACpE,CAAC;AAAA,EACH;AAAA,EArEA,KACE,MACA,SACuB;AACvB,UAAM,QAAQ,IAAI,YAAY,MAAM;AAAA,MAClC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQ,CAAC;AAAA,OACN,QACJ;AAED,SAAK,cAAc,KAAK;AAExB,WAAO;AAAA,EACT;AAAA,EAOA,OAAO,OAAO,MAAc,qBAAqB,MAAM,UAAoC,CAAC,GAAG;AAC7F,UAAM,iCAAiC,eAAe,IAAI,IAAI;AAI9D,QAAI,CAAC,gCAAgC;AAKnC,UAAI;AACF,uBAAe,OAAO,MAAM,oBAAoB,OAAO;AAAA,MACzD,SAAS,MAAM;AACb,uBAAe,OAAO,MAAM,cAAc,mBAAmB;AAAA,QAAC,GAAG,OAAO;AAAA,MAC1E;AACA;AAAA,IACF;AAEA,QAAI,aAAa;AACjB,QAAI,kBAAkB;AAEtB,QAAI,aAAa,sBAAsB,mBAAmB,SAAS;AACjE,mBAAa,OAAO,mBAAmB;AAAA,IACzC;AAEA,QAAI,aAAa,kCAAkC,+BAA+B,SAAS;AACzF,wBAAkB,OAAO,+BAA+B;AAAA,IAC1D;AAGA,QAAI,cAAc,mBAAmB,eAAe,iBAAiB;AAEnE;AAAA,IACF;AAEA,YAAQ;AAAA,MACN,0BAA0B,IAAI,IAAI,UAAU,UAAU,IAAI,IAAI,eAAe;AAAA,IAC/E;AAAA,EACF;AAAA,EAgBA,yBAAyB,MAAc,UAAyB,UAAyB;AACvF,QAAI,CAAC,mBAAK,gCAA+B;AACvC,MAAC,KAAK,YAAsC,kBAAkB;AAAA,QAC5D,CAAC,KAAK,SAAqC;AAEzC,cAAI,IAAI,WAAW,KAAK,IAAI,KAAK,MAAM;AACrC,iBAAK,2BAA2B,IAAI,MAAM,KAAK,IAAI,CAAC;AAAA,UACtD;AAAA,QACF;AAAA,MACF;AAEA,yBAAK,+BAAgC;AAAA,IACvC;AAEA,UAAM,yBAAyB,MAAM,UAAU,QAAQ;AAAA,EACzD;AAAA,EAEU,WAAW,mBAAkE;AACrF,UAAM,WAAW,iBAAiB;AAGlC,SAAK,2BAA2B,QAAQ,CAAC,OAAO,SAAqC;AAGnF,UAAI,kBAAkB,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,MAAM;AAErD,QAAC,KAAiC,IAAI,IAAI;AAAA,MAC5C;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAnCE;AAAA;AAAA;AArFmB,eAiCZ,UAAU;AAjCE,eA4EZ,eAAsD,CAAC;AA1ElD;AAAA,EAAX,SAAS;AAAA,GAFS,eAEP;AACA;AAAA,EAAX,SAAS;AAAA,GAHS,eAGP;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynergyElement
3
- } from "./chunk.IUFTAV2I.js";
3
+ } from "./chunk.I4M3MYDP.js";
4
4
 
5
5
  // src/components/validate/utility.ts
6
6
  var WhitelistedSynergyFormEventNames = [
@@ -78,4 +78,4 @@ export {
78
78
  alertSizeForInput,
79
79
  getActualInputElement
80
80
  };
81
- //# sourceMappingURL=chunk.4GDY7NEK.js.map
81
+ //# sourceMappingURL=chunk.ISXCFMOK.js.map
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk.2NT3B5WJ.js";
16
16
  import {
17
17
  SynergyElement
18
- } from "./chunk.IUFTAV2I.js";
18
+ } from "./chunk.I4M3MYDP.js";
19
19
  import {
20
20
  __decorateClass
21
21
  } from "./chunk.MO2GTRUM.js";
@@ -120,4 +120,4 @@ __decorateClass([
120
120
  export {
121
121
  SynBreadcrumbItem
122
122
  };
123
- //# sourceMappingURL=chunk.PDVI2IPR.js.map
123
+ //# sourceMappingURL=chunk.IY6SHCBE.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynOption
3
- } from "./chunk.VCJQ6DPU.js";
3
+ } from "./chunk.OGPIP45L.js";
4
4
 
5
5
  // src/components/option/option.ts
6
6
  var option_default = SynOption;
@@ -9,4 +9,4 @@ SynOption.define("syn-option");
9
9
  export {
10
10
  option_default
11
11
  };
12
- //# sourceMappingURL=chunk.N2P6JGTF.js.map
12
+ //# sourceMappingURL=chunk.JC5SF42E.js.map
@@ -1,10 +1,10 @@
1
+ import {
2
+ sortComponentsForUpdate
3
+ } from "./chunk.JIHDB74M.js";
1
4
  import {
2
5
  INITIAL_DEFAULT_SETTINGS,
3
6
  defaultSettings
4
- } from "./chunk.VL3GX6WV.js";
5
- import {
6
- sortComponentsForUpdate
7
- } from "./chunk.VMLERD3J.js";
7
+ } from "./chunk.ST3G47SZ.js";
8
8
 
9
9
  // src/utilities/defaultSettings/functions.ts
10
10
  var SYNERGY_SETTING_EMIT_EVENTS = false;
@@ -164,4 +164,4 @@ export {
164
164
  setGlobalDefaultSettings,
165
165
  resetGlobalDefaultSettings
166
166
  };
167
- //# sourceMappingURL=chunk.RY3ZM7MQ.js.map
167
+ //# sourceMappingURL=chunk.JEJO727M.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynHeader
3
- } from "./chunk.XBDUDOPF.js";
3
+ } from "./chunk.MWAQUYHX.js";
4
4
 
5
5
  // src/components/header/header.ts
6
6
  var header_default = SynHeader;
@@ -9,4 +9,4 @@ SynHeader.define("syn-header");
9
9
  export {
10
10
  header_default
11
11
  };
12
- //# sourceMappingURL=chunk.CVUNFQUG.js.map
12
+ //# sourceMappingURL=chunk.JIE55A5M.js.map
@@ -8,6 +8,10 @@ var COMPONENT_UPDATE_ORDER = {
8
8
  SynRadioGroup: {
9
9
  dependsOn: ["SynRadio"],
10
10
  priority: 10
11
+ },
12
+ SynTagGroup: {
13
+ dependsOn: ["SynTag"],
14
+ priority: 10
11
15
  }
12
16
  };
13
17
  var getComponentPriority = (component) => {
@@ -49,4 +53,4 @@ export {
49
53
  getComponentPriority,
50
54
  sortComponentsForUpdate
51
55
  };
52
- //# sourceMappingURL=chunk.VMLERD3J.js.map
56
+ //# sourceMappingURL=chunk.JIHDB74M.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utilities/defaultSettings/sort.ts"],
4
+ "sourcesContent": ["import type { ComponentNamesWithDefaultValues } from './base.js';\n\n/**\n * Component update priority and dependencies\n * Lower priority numbers update first, higher numbers update last\n */\nconst COMPONENT_UPDATE_ORDER: Partial<Record<ComponentNamesWithDefaultValues, {\n priority: number;\n dependsOn?: ComponentNamesWithDefaultValues[];\n}>> = {\n // Container components that depend on base components update last\n SynButtonGroup: {\n dependsOn: ['SynButton'],\n priority: 10,\n },\n SynRadioGroup: {\n dependsOn: ['SynRadio'],\n priority: 10,\n },\n SynTagGroup: {\n dependsOn: ['SynTag'],\n priority: 10,\n },\n} as const;\n\n/**\n * Get priority for a component (defaults to 5 if not specified)\n */\nexport const getComponentPriority = (\n component: ComponentNamesWithDefaultValues,\n) => COMPONENT_UPDATE_ORDER[component]?.priority ?? 5;\n\n/**\n * Sort components by dependencies and priority\n */\nexport const sortComponentsForUpdate = (\n components: ComponentNamesWithDefaultValues[],\n): ComponentNamesWithDefaultValues[] => {\n const visited = new Set<ComponentNamesWithDefaultValues>();\n const visiting = new Set<ComponentNamesWithDefaultValues>();\n const result: ComponentNamesWithDefaultValues[] = [];\n\n const visit = (component: ComponentNamesWithDefaultValues) => {\n if (visiting.has(component)) {\n // Skip circular dependencies\n return;\n }\n if (visited.has(component)) {\n return;\n }\n\n visiting.add(component);\n\n // Visit dependencies first\n const config = COMPONENT_UPDATE_ORDER[component];\n if (config?.dependsOn) {\n config.dependsOn.forEach(dep => {\n if (components.includes(dep)) {\n visit(dep);\n }\n });\n }\n\n visiting.delete(component);\n visited.add(component);\n result.push(component);\n };\n\n // Start with components sorted by priority, then apply dependency sorting\n const sortedByPriority = [...components].sort(\n (a, b) => getComponentPriority(a) - getComponentPriority(b),\n );\n\n sortedByPriority.forEach(component => visit(component));\n\n return result;\n};\n"],
5
+ "mappings": ";AAMA,IAAM,yBAGA;AAAA;AAAA,EAEJ,gBAAgB;AAAA,IACd,WAAW,CAAC,WAAW;AAAA,IACvB,UAAU;AAAA,EACZ;AAAA,EACA,eAAe;AAAA,IACb,WAAW,CAAC,UAAU;AAAA,IACtB,UAAU;AAAA,EACZ;AAAA,EACA,aAAa;AAAA,IACX,WAAW,CAAC,QAAQ;AAAA,IACpB,UAAU;AAAA,EACZ;AACF;AAKO,IAAM,uBAAuB,CAClC,cACA;AA9BF;AA8BK,4CAAuB,SAAS,MAAhC,mBAAmC,aAAnC,YAA+C;AAAA;AAK7C,IAAM,0BAA0B,CACrC,eACsC;AACtC,QAAM,UAAU,oBAAI,IAAqC;AACzD,QAAM,WAAW,oBAAI,IAAqC;AAC1D,QAAM,SAA4C,CAAC;AAEnD,QAAM,QAAQ,CAAC,cAA+C;AAC5D,QAAI,SAAS,IAAI,SAAS,GAAG;AAE3B;AAAA,IACF;AACA,QAAI,QAAQ,IAAI,SAAS,GAAG;AAC1B;AAAA,IACF;AAEA,aAAS,IAAI,SAAS;AAGtB,UAAM,SAAS,uBAAuB,SAAS;AAC/C,QAAI,iCAAQ,WAAW;AACrB,aAAO,UAAU,QAAQ,SAAO;AAC9B,YAAI,WAAW,SAAS,GAAG,GAAG;AAC5B,gBAAM,GAAG;AAAA,QACX;AAAA,MACF,CAAC;AAAA,IACH;AAEA,aAAS,OAAO,SAAS;AACzB,YAAQ,IAAI,SAAS;AACrB,WAAO,KAAK,SAAS;AAAA,EACvB;AAGA,QAAM,mBAAmB,CAAC,GAAG,UAAU,EAAE;AAAA,IACvC,CAAC,GAAG,MAAM,qBAAqB,CAAC,IAAI,qBAAqB,CAAC;AAAA,EAC5D;AAEA,mBAAiB,QAAQ,eAAa,MAAM,SAAS,CAAC;AAEtD,SAAO;AACT;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynOptgroup
3
- } from "./chunk.IKGD2H5A.js";
3
+ } from "./chunk.TNTIJNQN.js";
4
4
 
5
5
  // src/components/optgroup/optgroup.ts
6
6
  var optgroup_default = SynOptgroup;
@@ -9,4 +9,4 @@ SynOptgroup.define("syn-optgroup");
9
9
  export {
10
10
  optgroup_default
11
11
  };
12
- //# sourceMappingURL=chunk.ZS2RODX4.js.map
12
+ //# sourceMappingURL=chunk.JZAZESKP.js.map
@@ -1,6 +1,3 @@
1
- import {
2
- validate_styles_default
3
- } from "./chunk.MVM3NN6Y.js";
4
1
  import {
5
2
  alertSizeForInput,
6
3
  getActualInputElement,
@@ -9,25 +6,28 @@ import {
9
6
  isInvalidEvent,
10
7
  isSynergyElement,
11
8
  normalizeEventAttribute
12
- } from "./chunk.4GDY7NEK.js";
9
+ } from "./chunk.ISXCFMOK.js";
10
+ import {
11
+ validate_styles_default
12
+ } from "./chunk.MVM3NN6Y.js";
13
13
  import {
14
14
  SynTooltip
15
- } from "./chunk.6VJY3TRA.js";
15
+ } from "./chunk.4HSS7ZGG.js";
16
16
  import {
17
17
  SynAlert
18
- } from "./chunk.SSOL4LVM.js";
18
+ } from "./chunk.U56V7VEW.js";
19
+ import {
20
+ enableDefaultSettings
21
+ } from "./chunk.5YZ63VR2.js";
19
22
  import {
20
23
  watch
21
24
  } from "./chunk.SMIMHADA.js";
22
- import {
23
- enableDefaultSettings
24
- } from "./chunk.YACUYJZN.js";
25
25
  import {
26
26
  component_styles_default
27
27
  } from "./chunk.2NT3B5WJ.js";
28
28
  import {
29
29
  SynergyElement
30
- } from "./chunk.IUFTAV2I.js";
30
+ } from "./chunk.I4M3MYDP.js";
31
31
  import {
32
32
  __decorateClass
33
33
  } from "./chunk.MO2GTRUM.js";
@@ -211,6 +211,15 @@ var SynValidate = class extends SynergyElement {
211
211
  signal: this.controller.signal
212
212
  });
213
213
  }
214
+ /**
215
+ * #851: Get the validation message that should be displayed to the user.
216
+ * Prioritizes customValidationMessage over the internal validationMessage state.
217
+ * This is needed because frameworks may clear the internal validation message on
218
+ * dynamically rendered elements, but the customValidationMessage is still valid.
219
+ */
220
+ getDisplayValidationMessage() {
221
+ return this.customValidationMessage || this.validationMessage;
222
+ }
214
223
  setValidationMessage(input) {
215
224
  const { customValidationMessage } = this;
216
225
  const validationMessage = customValidationMessage || input.validationMessage;
@@ -318,16 +327,18 @@ var SynValidate = class extends SynergyElement {
318
327
  if (!tooltip) {
319
328
  return;
320
329
  }
321
- const shouldShowTooltip = !this.isValid && this.validationMessage && this.hasFocus;
330
+ const displayMessage = this.getDisplayValidationMessage();
331
+ const shouldShowTooltip = !this.isValid && displayMessage && this.hasFocus;
322
332
  if (shouldShowTooltip) {
323
- tooltip.content = this.validationMessage;
333
+ tooltip.content = displayMessage;
324
334
  tooltip.show();
325
335
  } else {
326
336
  tooltip.hide();
327
337
  }
328
338
  }
329
339
  renderInlineValidation() {
330
- if (this.variant !== "inline" || !this.validationMessage) {
340
+ const messageToShow = this.getDisplayValidationMessage();
341
+ if (this.variant !== "inline" || !messageToShow) {
331
342
  return "";
332
343
  }
333
344
  return html`
@@ -339,7 +350,7 @@ var SynValidate = class extends SynergyElement {
339
350
  variant="danger"
340
351
  >
341
352
  ${!this.hideIcon ? html`<syn-icon slot="icon" name="status-error" library="system"></syn-icon>` : ""}
342
- ${this.validationMessage}
353
+ ${messageToShow}
343
354
  </syn-alert>
344
355
  `;
345
356
  }
@@ -349,7 +360,7 @@ var SynValidate = class extends SynergyElement {
349
360
  <syn-tooltip
350
361
  .anchor=${(_a = getActualInputElement(this.getInput())) != null ? _a : void 0}
351
362
  exportparts="base:tooltip__base,base__popup:tooltip__popup,base__arrow:tooltip__arrow,body:tooltip__body"
352
- .open=${this.eager ? !this.isValid && this.validationMessage.length > 0 : false}
363
+ .open=${this.eager ? !this.isValid && this.getDisplayValidationMessage().length > 0 : false}
353
364
  part="tooltip"
354
365
  placement="bottom"
355
366
  trigger="manual"
@@ -428,4 +439,4 @@ SynValidate = __decorateClass([
428
439
  export {
429
440
  SynValidate
430
441
  };
431
- //# sourceMappingURL=chunk.3XZMOCG6.js.map
442
+ //# sourceMappingURL=chunk.K42TDMJB.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/validate/validate.component.ts"],
4
+ "sourcesContent": ["import type { CSSResultGroup, PropertyValues } from 'lit';\nimport { html } from 'lit';\nimport {\n property,\n query,\n queryAssignedElements,\n state,\n} from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport type SynInput from '../input/input.component.js';\nimport { watch } from '../../internal/watch.js';\nimport SynAlert from '../alert/alert.component.js';\nimport SynTooltip from '../tooltip/tooltip.component.js';\nimport {\n alertSizeForInput,\n getActualInputElement,\n getEventNameForElement,\n isBlurEvent,\n isInvalidEvent,\n isSynergyElement,\n normalizeEventAttribute,\n} from './utility.js';\nimport styles from './validate.styles.js';\nimport { enableDefaultSettings } from '../../utilities/defaultSettings/decorator.js';\n\n/**\n * Utility function that renders the default slot content.\n * This is needed to avoid code duplication when rendering the default slot in both the tooltip and the regular render function.\n */\nconst renderDefaultSlot = () => html`\n <slot\n class=\"validate__input-wrapper\"\n part=\"input-wrapper\"\n ></slot>\n`;\n\n/**\n * @summary Validate provides form field validation messages in a unified way.\n * It does this by using [the native browser validation](https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation)\n * and showing the validation message in a consistent, user defined way.\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-validate--docs\n * @dependency syn-alert\n * @dependency syn-tooltip\n *\n * @slot - The form field that should be validated.\n * Avoid slotting in more than one element, as subsequent ones will be ignored.\n *\n * @csspart base - The component's base wrapper.\n * @csspart input-wrapper - The container that wraps the form field.\n *\n * @csspart alert - The syn-alert that is shown when the variant is set to \"inline\".\n * @csspart alert__base - The container that wraps the alert.\n * @csspart alert__message - The container that wraps the alert message.\n * @csspart alert__icon - The container that wraps the alert icon.\n *\n * @csspart tooltip - The syn-tooltip that is shown when the variant is set to \"tooltip\".\n * @csspart tooltip__base - The container that wraps the tooltip.\n * @csspart tooltip__popup - The container that wraps the tooltip popup.\n * @csspart tooltip__arrow - The container that wraps the tooltip arrow.\n * @csspart tooltip__body - The container that wraps the tooltip body.\n*/\n@enableDefaultSettings('SynValidate')\nexport default class SynValidate extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles];\n\n static dependencies = {\n 'syn-alert': SynAlert,\n 'syn-tooltip': SynTooltip,\n };\n\n controller = new AbortController();\n\n observer: MutationObserver;\n\n sizeObserver: MutationObserver;\n\n @queryAssignedElements() private slottedChildren: HTMLElement[];\n\n @query('syn-tooltip') private tooltipElement?: SynTooltip;\n\n @state() validationMessage = '';\n\n @state() eagerFirstMount = true;\n\n @state() isInternalTriggeredInvalid = false;\n\n @state() isValid = true;\n\n @state() alertSize?: SynInput['size'];\n\n @state() hasFocus = false;\n\n /**\n * The variant that should be used to show validation alerts.\n *\n * The following variants are supported:\n * - **native** (default): Uses the native browser validation, usually a browser tooltip.\n * - **tooltip**: Show the validation message as a tooltip using a `<syn-tooltip>`.\n * - **inline**: Show the validation message underneath the element, using a `<syn-alert>`\n */\n @property({ reflect: true }) variant: 'native' | 'tooltip' | 'inline' = 'native';\n\n /** Do not show the error icon when using the inline variant validation */\n @property({ attribute: 'hide-icon', reflect: true, type: Boolean }) hideIcon = false;\n\n /**\n * Defines the events that trigger the validation.\n * `invalid` will always automatically be included.\n * You may also use the `live` keyword to validate on every input change.\n * `live` will make sure to listen to the `invalid`, `input` and `blur` events.\n *\n * Please have a look at the [documentation for native form validation](https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation)\n * and [the use of form invalid events](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/invalid_event) for further information.\n *\n * @example ```html\n * <!-- Validate on invalid and change events (invalid, change) -->\n * <syn-validate on=\"invalid change\"></syn-validate>\n *\n * <!-- Validate on live events (invalid, blur, input)-->\n * <syn-validate on=\"live\"></syn-validate>\n *\n * <!-- Validate on live and custom events (invalid, blur, input, focus, change) -->\n * <syn-validate on=\"live focus change\"></syn-validate>\n * ```\n */\n @property({ reflect: true }) on: string = '';\n\n /**\n * Custom validation message to be displayed when the input is invalid.\n * Will override the default browser validation message.\n * Set to an empty string to reset the validation message.\n */\n @property({ attribute: 'custom-validation-message', type: String }) customValidationMessage = '';\n\n /**\n * Set this to true to validate the input immediately when it is rendered.\n * Best used with a `variant` of `inline`.\n * When setting eager, the input will not be focused automatically.\n *\n * When using a `variant` of `native` the browser will focus\n * the last eager field as it is using a tooltip.\n * In this case it is better to just provide one eager field.\n */\n @property({ type: Boolean }) eager = false;\n\n // Automatically refresh all event listeners when the on property changes.\n @watch('on', { waitUntilFirstUpdate: true })\n handleListenerChange() {\n this.updateEvents();\n }\n\n @watch('eager', { waitUntilFirstUpdate: false })\n async handleEagerChange() {\n if (this.eager) {\n const input = this.getInput();\n await this.updateComplete;\n input?.reportValidity();\n this.eagerFirstMount = true;\n } else {\n this.eagerFirstMount = false;\n }\n }\n\n // Synchronize the validation message on the wrapped input with the custom message\n @watch('customValidationMessage', { waitUntilFirstUpdate: true })\n handleCustomValidationMessageChange() {\n const input = this.getInput();\n if (input) {\n this.setCustomValidationMessage(input);\n this.setValidationMessage(input);\n }\n }\n\n /**\n * Returns the validity state of the input component.\n * `true` for valid and `false` for invalid.\n */\n getValidity() {\n return this.isValid;\n }\n\n /**\n * Get the input element to validate. Defined as the first slotted element\n * @returns The input element or undefined if not found\n */\n private getInput() {\n const input = this.slottedChildren[0];\n return input ? input as HTMLInputElement : undefined;\n }\n\n private setAlertSize() {\n this.alertSize = alertSizeForInput(this.getInput());\n }\n\n /**\n * Get the event names to listen for.\n * If the input is a synergy element, will use syn- prefixes.\n * @returns The event names to listen for\n */\n // eslint-disable-next-line complexity\n private getUsedEventNames() {\n const input = this.getInput();\n\n // If there is no input, skip before doing any harm\n if (!input) {\n return [];\n }\n\n // Make sure to always use an array of events\n // This is needed because on may be a special value like \"live\"\n const on = normalizeEventAttribute(this.on);\n\n // Filter makes sure to remove empty values, e.g.\n // <syn-validate on=\"\"></syn-validate>\n const [...events] = on.filter(Boolean);\n\n // Make sure to always have an invalid event\n if (!events.includes('invalid')) {\n events.push('invalid');\n }\n\n // Special handling for the live keyword:\n // live always means on input and blur\n if (events.includes('live')) {\n events.push('input');\n events.push('blur');\n }\n\n // Make sure to remove duplicated events and the live property\n // and map the events to the correct event names\n return Array.from(new Set(\n events\n .filter(e => e !== 'live')\n .map(e => getEventNameForElement(input, e)),\n ));\n }\n\n /**\n * Update the events on the input element.\n */\n private updateEvents() {\n this.controller.abort();\n this.controller = new AbortController();\n const input = this.getInput();\n\n if (!input) {\n return;\n }\n\n const events = this.getUsedEventNames();\n events.forEach(eventName => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n input.addEventListener(eventName, this.validate, {\n capture: isInvalidEvent(eventName),\n signal: this.controller.signal,\n });\n });\n\n // If the change event is not included,\n // make sure to attach a custom listener that resets the validation message\n // This is needed as the custom message may be set on change\n const usedChangeEvent = getEventNameForElement(input, 'change');\n if (!events.includes(usedChangeEvent)) {\n input.addEventListener(usedChangeEvent, this.internalRevalidate, {\n signal: this.controller.signal,\n });\n }\n\n // #664: Add focus/blur listeners specifically for tooltip variant\n // This is needed because we want to show the tooltip on focus and hide it on blur, but only when using the tooltip variant.\n // Otherwise, this would interfere with the native validation tooltip, which also relies on focus and blur events.\n const focusEvent = getEventNameForElement(input, 'focus');\n const blurEvent = getEventNameForElement(input, 'blur');\n\n input.addEventListener(focusEvent, this.handleInputFocus, {\n signal: this.controller.signal,\n });\n\n input.addEventListener(blurEvent, this.handleInputBlur, {\n signal: this.controller.signal,\n });\n }\n\n /**\n * #851: Get the validation message that should be displayed to the user.\n * Prioritizes customValidationMessage over the internal validationMessage state.\n * This is needed because frameworks may clear the internal validation message on\n * dynamically rendered elements, but the customValidationMessage is still valid.\n */\n private getDisplayValidationMessage(): string {\n return this.customValidationMessage || this.validationMessage;\n }\n\n private setValidationMessage(input: HTMLInputElement) {\n const { customValidationMessage } = this;\n const validationMessage = customValidationMessage || input.validationMessage;\n this.validationMessage = validationMessage;\n }\n\n /**\n * Set the custom validation message to the input. This will make sure to either:\n * - use the custom message if one is set or\n * - use the default message if the custom message is empty\n */\n private setCustomValidationMessage(input: HTMLInputElement) {\n // Set the custom validation message on the input only once, when the customValidationMessage\n // is changed. Otherwise there could be problems with `variant=\"native\"` and `on=\"live\"` or\n // `on=\"blur\"`, because the browser popup will never disappear even if clicking somewhere else.\n input.setCustomValidity(this.customValidationMessage);\n }\n\n /**\n * Set the validation message from the input element\n * @param e The event that was received\n */\n private internalRevalidate = (e: Event) => {\n const input = e.currentTarget as HTMLInputElement;\n if (input.validity?.valid) {\n this.validationMessage = '';\n }\n };\n\n /**\n * Handle focus/blur events for tooltip variant\n */\n private handleInputFocus = () => {\n this.hasFocus = true;\n };\n\n private handleInputBlur = () => {\n this.hasFocus = false;\n };\n\n /**\n * Handle the blur event during validation\n */\n // eslint-disable-next-line class-methods-use-this\n private handleFocus(input: HTMLInputElement) {\n const activeElement = document.activeElement! as HTMLInputElement;\n const activeElementIsWrapped = activeElement.closest('syn-validate');\n\n if (!activeElement.validity?.valid && activeElementIsWrapped) {\n // The active element is invalid do not scroll\n return;\n }\n\n input.scrollIntoView({ block: 'nearest' });\n input.focus();\n }\n\n /**\n * Triggers a validation run, showing the validation message if needed.\n */\n // eslint-disable-next-line complexity\n private validate = async (e: Event) => {\n // Make sure to stop the validate component from going into an endless cycle of triggering\n if (isInvalidEvent(e.type) && this.variant === 'native' && this.isInternalTriggeredInvalid === true) {\n this.isInternalTriggeredInvalid = false;\n return;\n }\n\n // Make sure to always prevent the invalid event when not using native validation\n if (isInvalidEvent(e.type) && this.variant !== 'native') {\n e.preventDefault();\n e.stopPropagation();\n }\n\n const input = e.currentTarget as HTMLInputElement;\n if (isSynergyElement(input)) {\n // When using a synergy element, we need to wait for it to be ready!\n // This is needed as the validity state of the element may not be set yet.\n await input.updateComplete;\n }\n this.isValid = input.validity?.valid;\n\n // When we are using eager, make sure to skip focus on the first mount\n if (this.eager && this.eagerFirstMount) {\n this.eagerFirstMount = false;\n this.setValidationMessage(input);\n return;\n }\n\n // If the active element that has focus is placed in a validate component,\n // make sure to not loose focus.\n if (!this.isValid && !isBlurEvent(e.type)) {\n this.handleFocus(input);\n }\n\n this.setValidationMessage(input);\n\n // Trigger reportValidity when using native validation, so the browser popup is also shown\n // for other events than `invalid`. All events except the blur event, should trigger this.\n if (!isBlurEvent(e.type) && this.variant === 'native') {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.updateComplete.then(() => {\n this.isInternalTriggeredInvalid = true;\n input.reportValidity();\n });\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n async firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n this.updateEvents();\n\n // #713: Make sure to set the custom validation message on mount\n // When we have a custom element, we need to wait for it to be ready!\n const input = this.getInput();\n\n if (this.customValidationMessage) {\n if (isSynergyElement(input)) {\n await input.updateComplete;\n }\n input?.setCustomValidity(this.customValidationMessage);\n }\n\n // Make sure to run validation on mount if eager is set\n if (this.eager) {\n await this.updateComplete;\n this.isValid = input?.validity?.valid ?? false;\n input?.reportValidity();\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n // #1119: Update alert size when the input size changes\n // Note that we need to create our own observer here,\n // as the size attribute may be changed on the input element directly,\n // which would not be captured by the synergy-element observer.\n this.sizeObserver = new MutationObserver(entries => {\n const input = this.getInput();\n\n if (!input) {\n return;\n }\n\n const hasSizeChanged = entries\n .filter(({ target }) => target === input)\n .every(\n entry => entry.attributeName === 'size',\n );\n\n if (hasSizeChanged) {\n this.setAlertSize();\n }\n });\n\n this.sizeObserver.observe(this, {\n attributeFilter: ['size'],\n attributes: true,\n subtree: true,\n });\n\n // #717: Make sure to remove to rerun validation when\n // disabled or readonly properties change on the input\n this.observer = new MutationObserver(entries => {\n const input = this.getInput();\n\n if (!input) {\n return;\n }\n\n // Check if the input is disabled or readonly\n const hasDisabledOrReadonly = entries\n .filter(({ target }) => target === input)\n .every(entry => {\n const target = entry.target as HTMLInputElement;\n return target.hasAttribute('disabled') || target.hasAttribute('readonly');\n });\n\n if (hasDisabledOrReadonly) {\n this.isValid = true;\n this.validationMessage = '';\n } else {\n // When using a synergy element, we need to check the validity after the element is updated,\n // as we cannot rely on the validity state of the element itself.\n // Unfortunately, this depends on used browser :(.\n const waitForPromise = isSynergyElement(input)\n ? input.updateComplete\n : Promise.resolve();\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n waitForPromise.then(() => {\n this.isValid = input?.validity?.valid ?? false;\n this.validationMessage = input?.validationMessage ?? '';\n });\n }\n });\n\n this.observer.observe(this, {\n attributeFilter: ['disabled', 'readonly'],\n attributes: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.controller.abort();\n this?.observer?.disconnect();\n this?.sizeObserver?.disconnect();\n }\n\n updated(changedProperties: PropertyValues) {\n super.updated(changedProperties);\n\n // #664: Make sure to update the syn-tooltip if the validation state changes when using the tooltip variant\n if (this.variant !== 'tooltip') {\n return;\n }\n\n const tooltip = this.tooltipElement;\n\n if (!tooltip) {\n return;\n }\n\n // When we have a valid tooltip,\n // we need to update the content and show or hide it based on the validation state and focus state.\n // We have to do this manually, as there is a problem when updating open and content at the same time.\n // The order is critical: fill before showing, don\u00B4t update the content during hide.\n const displayMessage = this.getDisplayValidationMessage();\n const shouldShowTooltip = !this.isValid && displayMessage && this.hasFocus;\n\n if (shouldShowTooltip) {\n tooltip.content = displayMessage;\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n tooltip.show();\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n tooltip.hide();\n }\n }\n\n private renderInlineValidation() {\n const messageToShow = this.getDisplayValidationMessage();\n\n if (this.variant !== 'inline' || !messageToShow) {\n return '';\n }\n\n return html`\n <syn-alert\n open\n exportparts=\"base:alert__base,message:alert__message,icon:alert__icon\"\n part=\"alert\"\n size=${ifDefined(this.alertSize)}\n variant=\"danger\"\n >\n ${!this.hideIcon\n ? html`<syn-icon slot=\"icon\" name=\"status-error\" library=\"system\"></syn-icon>`\n : ''\n }\n ${messageToShow}\n </syn-alert>\n `;\n }\n\n render() {\n // #664: When using the tooltip variant, we need to wrap the default slot in a tooltip when the input is invalid and has a validation message.\n const slotContent = this.variant === 'tooltip'\n ? html`\n <syn-tooltip\n .anchor=${getActualInputElement(this.getInput()) as Element ?? undefined}\n exportparts=\"base:tooltip__base,base__popup:tooltip__popup,base__arrow:tooltip__arrow,body:tooltip__body\"\n .open=${this.eager ? !this.isValid && this.getDisplayValidationMessage().length > 0 : false}\n part=\"tooltip\"\n placement=\"bottom\"\n trigger=\"manual\"\n >\n ${renderDefaultSlot()}\n </syn-tooltip>\n ` : renderDefaultSlot();\n\n return html`\n <div\n class=\"validate\"\n part=\"base\"\n >\n ${slotContent}\n ${this.renderInlineValidation()}\n </div>\n `;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynDialog
3
- } from "./chunk.JKA6KBXT.js";
3
+ } from "./chunk.CFL26HPZ.js";
4
4
 
5
5
  // src/components/dialog/dialog.ts
6
6
  var dialog_default = SynDialog;
@@ -9,4 +9,4 @@ SynDialog.define("syn-dialog");
9
9
  export {
10
10
  dialog_default
11
11
  };
12
- //# sourceMappingURL=chunk.RCI5CCXX.js.map
12
+ //# sourceMappingURL=chunk.KHAGMU2K.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynCombobox
3
- } from "./chunk.3NWL4AL3.js";
3
+ } from "./chunk.BB3NN2ZP.js";
4
4
 
5
5
  // src/components/combobox/combobox.ts
6
6
  var combobox_default = SynCombobox;
@@ -9,4 +9,4 @@ SynCombobox.define("syn-combobox");
9
9
  export {
10
10
  combobox_default
11
11
  };
12
- //# sourceMappingURL=chunk.HZ74RYOQ.js.map
12
+ //# sourceMappingURL=chunk.KNTBXY7A.js.map