@synergy-design-system/components 2.14.1 → 2.14.3

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 (313) hide show
  1. package/dist/chunks/{chunk.JWVUVW6O.js → chunk.25JUHBIK.js} +2 -2
  2. package/dist/chunks/{chunk.5OK5KN5S.js → chunk.2DL4ZSBS.js} +2 -2
  3. package/dist/chunks/{chunk.B7626H6F.js → chunk.2M3OO2G6.js} +2 -2
  4. package/dist/chunks/{chunk.5MGIWDX5.js → chunk.2N4CXWJR.js} +2 -2
  5. package/dist/chunks/{chunk.HSTOFIXW.js → chunk.2VEV27HT.js} +11 -11
  6. package/dist/chunks/{chunk.UCSBHOIS.js → chunk.2XKMEGGX.js} +18 -15
  7. package/dist/chunks/chunk.2XKMEGGX.js.map +7 -0
  8. package/dist/chunks/{chunk.JNHBMNPQ.js → chunk.32AK63SX.js} +2 -2
  9. package/dist/chunks/{chunk.MQ7LOO2Y.js → chunk.3GAK3HCW.js} +2 -2
  10. package/dist/chunks/{chunk.JSNMBHOQ.js → chunk.3N54OV6X.js} +2 -2
  11. package/dist/chunks/{chunk.RBG37CD4.js → chunk.3NXKLKWH.js} +1 -1
  12. package/dist/chunks/{chunk.RBG37CD4.js.map → chunk.3NXKLKWH.js.map} +2 -2
  13. package/dist/chunks/{chunk.RMS6DADX.js → chunk.3RQCHNTE.js} +2 -2
  14. package/dist/chunks/{chunk.XKG57QNE.js → chunk.3T4PKXLZ.js} +6 -6
  15. package/dist/chunks/{chunk.F5463ZDK.js → chunk.3V3Z552X.js} +2 -2
  16. package/dist/chunks/{chunk.BBUFEDXF.js → chunk.43YNZAWL.js} +2 -5
  17. package/dist/chunks/{chunk.BBUFEDXF.js.map → chunk.43YNZAWL.js.map} +2 -2
  18. package/dist/chunks/{chunk.BVPLIUAM.js → chunk.4ZCQXFO7.js} +2 -2
  19. package/dist/chunks/{chunk.QSOI4JQP.js → chunk.5JWKXQDN.js} +47 -22
  20. package/dist/chunks/chunk.5JWKXQDN.js.map +7 -0
  21. package/dist/chunks/{chunk.G5Y4T62U.js → chunk.6DCZLSTP.js} +3 -3
  22. package/dist/chunks/{chunk.NIA5K4OJ.js → chunk.6EVVIDQZ.js} +3 -3
  23. package/dist/chunks/chunk.6EVVIDQZ.js.map +7 -0
  24. package/dist/chunks/{chunk.GN2HRVLE.js → chunk.7MCSBLOW.js} +2 -2
  25. package/dist/chunks/{chunk.XFKWBXZR.js → chunk.7WHIEYGK.js} +2 -2
  26. package/dist/chunks/{chunk.OKFITUPX.js → chunk.A2FQFTFB.js} +2 -2
  27. package/dist/chunks/{chunk.LSZXCDFL.js → chunk.A7DYRCSL.js} +2 -2
  28. package/dist/chunks/{chunk.52263CF2.js → chunk.ADQX5OKP.js} +2 -2
  29. package/dist/chunks/{chunk.5PA56ND3.js → chunk.AGXEODV2.js} +4 -4
  30. package/dist/chunks/{chunk.CEV42XP7.js → chunk.BMXPNWDD.js} +3 -3
  31. package/dist/chunks/{chunk.ACYJBJDB.js → chunk.CDQY5ANT.js} +2 -2
  32. package/dist/chunks/{chunk.3AY3V6GM.js → chunk.CJVTIJGE.js} +2 -2
  33. package/dist/chunks/{chunk.WMIXKTYN.js → chunk.D6D5IFPL.js} +6 -6
  34. package/dist/chunks/{chunk.LGMADQ74.js → chunk.DOU546A6.js} +2 -2
  35. package/dist/chunks/{chunk.PJJLUK3S.js → chunk.DQC3S32H.js} +8 -8
  36. package/dist/chunks/{chunk.VAMMVENR.js → chunk.DYZDTSNX.js} +7 -8
  37. package/dist/chunks/chunk.DYZDTSNX.js.map +7 -0
  38. package/dist/chunks/{chunk.BTDXOSFP.js → chunk.EBE3CGKL.js} +2 -2
  39. package/dist/chunks/{chunk.BTDXOSFP.js.map → chunk.EBE3CGKL.js.map} +1 -1
  40. package/dist/chunks/{chunk.YPUZNOGK.js → chunk.EFEGWSPA.js} +2 -2
  41. package/dist/chunks/{chunk.BOLYNSAY.js → chunk.EHHULBSP.js} +13 -7
  42. package/dist/chunks/chunk.EHHULBSP.js.map +7 -0
  43. package/dist/chunks/{chunk.3INFZQUC.js → chunk.FAM3ZB47.js} +3 -3
  44. package/dist/chunks/{chunk.DL7JII5E.js → chunk.FN76TNJJ.js} +2 -2
  45. package/dist/chunks/{chunk.DJZH56NZ.js → chunk.FWM3I5X4.js} +2 -2
  46. package/dist/chunks/{chunk.QSP4W3ST.js → chunk.GLQI4HLD.js} +10 -9
  47. package/dist/chunks/{chunk.QSP4W3ST.js.map → chunk.GLQI4HLD.js.map} +2 -2
  48. package/dist/chunks/{chunk.4M6OPEJO.js → chunk.GOFLVOUS.js} +2 -2
  49. package/dist/chunks/{chunk.4WQGGNBW.js → chunk.GWRO6ZDZ.js} +4 -4
  50. package/dist/chunks/chunk.GWRO6ZDZ.js.map +7 -0
  51. package/dist/chunks/{chunk.5SBPVPZO.js → chunk.HCJMC4IT.js} +2 -2
  52. package/dist/chunks/{chunk.TQB37PWT.js → chunk.HEFW5DOH.js} +2 -2
  53. package/dist/chunks/{chunk.C4ONHCR2.js → chunk.I4STIUVP.js} +2 -2
  54. package/dist/chunks/{chunk.RKYYDWN5.js → chunk.I5N5WFJU.js} +5 -5
  55. package/dist/chunks/{chunk.TBGHJV63.js → chunk.ILCJZFQK.js} +3 -3
  56. package/dist/chunks/{chunk.IZEADTY5.js → chunk.IZ72PTZ7.js} +1 -10
  57. package/dist/chunks/{chunk.IZEADTY5.js.map → chunk.IZ72PTZ7.js.map} +2 -2
  58. package/dist/chunks/{chunk.PKX7DBI4.js → chunk.K5BSQPSN.js} +2 -2
  59. package/dist/chunks/{chunk.6BMVIJL3.js → chunk.K5PXELDD.js} +3 -3
  60. package/dist/chunks/{chunk.XZFMTDSR.js → chunk.KX3ATDPK.js} +2 -2
  61. package/dist/chunks/{chunk.RTEU272Y.js → chunk.LNBMB3DI.js} +2 -2
  62. package/dist/chunks/{chunk.ELVW2U46.js → chunk.LR3QOC2S.js} +6 -6
  63. package/dist/chunks/{chunk.4PU7OIVQ.js → chunk.M5NJMQBQ.js} +3 -3
  64. package/dist/chunks/{chunk.U3G6BCYU.js → chunk.M7ICWWDM.js} +2 -2
  65. package/dist/chunks/{chunk.2PGJMFOB.js → chunk.MCTYU5HS.js} +7 -8
  66. package/dist/chunks/chunk.MCTYU5HS.js.map +7 -0
  67. package/dist/chunks/{chunk.OKGUIJXI.js → chunk.MGMIX6DT.js} +2 -2
  68. package/dist/chunks/{chunk.TI2OQSXU.js → chunk.MTPLSXES.js} +2 -2
  69. package/dist/chunks/{chunk.UOCB6QQW.js → chunk.NCQXRLJC.js} +3 -3
  70. package/dist/chunks/{chunk.G733OK5E.js → chunk.NPQAP7F6.js} +2 -2
  71. package/dist/chunks/{chunk.KDPRCS4B.js → chunk.O2XUYEBK.js} +2 -2
  72. package/dist/chunks/{chunk.GFXOZOKO.js → chunk.O7YNDGZN.js} +6 -6
  73. package/dist/chunks/{chunk.LLW3ZESH.js → chunk.P5CBQNOP.js} +3 -3
  74. package/dist/chunks/{chunk.62BPHWGP.js → chunk.PDN2VYR2.js} +2 -2
  75. package/dist/chunks/{chunk.CJXGS65O.js → chunk.PEQB7YJD.js} +4 -4
  76. package/dist/chunks/{chunk.XFDPUTFZ.js → chunk.PFCFF54R.js} +7 -7
  77. package/dist/chunks/{chunk.MFK3OBGO.js → chunk.PONNA4YL.js} +2 -2
  78. package/dist/chunks/{chunk.PYBUH4X3.js → chunk.QS7HRCHA.js} +7 -7
  79. package/dist/chunks/{chunk.MKWJTOOB.js → chunk.QUXICFJL.js} +2 -2
  80. package/dist/chunks/{chunk.QVEVZ6P6.js → chunk.QZRLHN6I.js} +2 -2
  81. package/dist/chunks/{chunk.YJ56W45T.js → chunk.R22XUKGQ.js} +7 -7
  82. package/dist/chunks/{chunk.HYZYKFKI.js → chunk.RXG5TZNY.js} +9 -9
  83. package/dist/chunks/{chunk.CJLH7J7S.js → chunk.SCT7M3OI.js} +6 -6
  84. package/dist/chunks/{chunk.VLMXH5H3.js → chunk.SF4OPBS6.js} +5 -5
  85. package/dist/chunks/{chunk.DRK3YX4Z.js → chunk.SFCABZYW.js} +2 -2
  86. package/dist/chunks/{chunk.ARFMGKMY.js → chunk.SNVEQ432.js} +2 -2
  87. package/dist/chunks/{chunk.AZF7WN73.js → chunk.SPAJDYL5.js} +2 -2
  88. package/dist/chunks/{chunk.J3WEX5HD.js → chunk.STSKJPGL.js} +2 -2
  89. package/dist/chunks/{chunk.A77RWT6K.js → chunk.T5ZAWJVF.js} +2 -2
  90. package/dist/chunks/{chunk.D4YOKGJQ.js → chunk.TXKD5X4O.js} +2 -2
  91. package/dist/chunks/{chunk.O6GNDOJS.js → chunk.UAK6WG4U.js} +2 -2
  92. package/dist/chunks/{chunk.DJOJTIW7.js → chunk.UQRQF6V7.js} +2 -2
  93. package/dist/chunks/{chunk.TQPJY33X.js → chunk.UVT3K4BL.js} +8 -8
  94. package/dist/chunks/{chunk.DRRFQY4U.js → chunk.V3YTSDOG.js} +2 -2
  95. package/dist/chunks/{chunk.FUHFSQEX.js → chunk.V4HPWQE7.js} +1 -1
  96. package/dist/chunks/{chunk.FUHFSQEX.js.map → chunk.V4HPWQE7.js.map} +2 -2
  97. package/dist/chunks/{chunk.FM7Y6QTI.js → chunk.VLLUDIS7.js} +2 -2
  98. package/dist/chunks/{chunk.XDYBSCZB.js → chunk.VN3RRCSO.js} +2 -2
  99. package/dist/chunks/{chunk.QTMPI6MU.js → chunk.VRYQ7MKQ.js} +2 -2
  100. package/dist/chunks/{chunk.GLOX7JMO.js → chunk.WNUD4VDX.js} +2 -2
  101. package/dist/chunks/{chunk.2UYVUDI7.js → chunk.WQXCL54U.js} +2 -2
  102. package/dist/chunks/{chunk.VXGFRIVQ.js → chunk.XC2GLKQM.js} +8 -8
  103. package/dist/chunks/{chunk.WT2TGROO.js → chunk.XQPM6V3Y.js} +2 -2
  104. package/dist/chunks/{chunk.BQ5HKXCW.js → chunk.XSTUKBIN.js} +2 -2
  105. package/dist/chunks/{chunk.MJEJKJER.js → chunk.XTWO6ZZW.js} +6 -6
  106. package/dist/chunks/{chunk.MJEJKJER.js.map → chunk.XTWO6ZZW.js.map} +1 -1
  107. package/dist/chunks/{chunk.W3RGEMX5.js → chunk.XYAH4IO5.js} +2 -2
  108. package/dist/chunks/{chunk.M2FYP3OQ.js → chunk.YHDODK3T.js} +2 -2
  109. package/dist/chunks/{chunk.5AJSQKA5.js → chunk.YMCR3GIU.js} +2 -2
  110. package/dist/chunks/{chunk.5BZ26TQP.js → chunk.YVIQ2WAT.js} +2 -2
  111. package/dist/chunks/{chunk.ULTXP6Y2.js → chunk.ZA3WJ6M5.js} +2 -2
  112. package/dist/chunks/{chunk.XENZ2D2Z.js → chunk.ZLBGUUHH.js} +2 -2
  113. package/dist/chunks/{chunk.MJK6ZWX5.js → chunk.ZPT2C54J.js} +2 -2
  114. package/dist/chunks/{chunk.BIDTP26C.js → chunk.ZVXLBYON.js} +4 -4
  115. package/dist/components/accordion/accordion.component.js +3 -3
  116. package/dist/components/accordion/accordion.js +4 -4
  117. package/dist/components/alert/alert.component.js +8 -8
  118. package/dist/components/alert/alert.js +9 -9
  119. package/dist/components/badge/badge.component.js +4 -4
  120. package/dist/components/badge/badge.js +5 -5
  121. package/dist/components/breadcrumb/breadcrumb.component.js +7 -7
  122. package/dist/components/breadcrumb/breadcrumb.js +8 -8
  123. package/dist/components/breadcrumb-item/breadcrumb-item.component.js +2 -2
  124. package/dist/components/breadcrumb-item/breadcrumb-item.js +3 -3
  125. package/dist/components/button/button.component.js +6 -6
  126. package/dist/components/button/button.js +7 -7
  127. package/dist/components/button-group/button-group.component.js +2 -2
  128. package/dist/components/button-group/button-group.js +3 -3
  129. package/dist/components/card/card.component.js +2 -2
  130. package/dist/components/card/card.js +3 -3
  131. package/dist/components/checkbox/checkbox.component.js +4 -4
  132. package/dist/components/checkbox/checkbox.js +5 -5
  133. package/dist/components/combobox/combobox.component.d.ts +1 -1
  134. package/dist/components/combobox/combobox.component.js +8 -8
  135. package/dist/components/combobox/combobox.js +9 -9
  136. package/dist/components/combobox/combobox.styles.js +1 -1
  137. package/dist/components/details/details.component.js +5 -5
  138. package/dist/components/details/details.js +6 -6
  139. package/dist/components/dialog/dialog.component.js +6 -6
  140. package/dist/components/dialog/dialog.js +7 -7
  141. package/dist/components/divider/divider.component.js +2 -2
  142. package/dist/components/divider/divider.js +3 -3
  143. package/dist/components/drawer/drawer.component.js +6 -6
  144. package/dist/components/drawer/drawer.js +7 -7
  145. package/dist/components/dropdown/dropdown.component.js +4 -4
  146. package/dist/components/dropdown/dropdown.js +5 -5
  147. package/dist/components/file/file.component.js +8 -8
  148. package/dist/components/file/file.js +9 -9
  149. package/dist/components/header/header.component.js +6 -6
  150. package/dist/components/header/header.js +7 -7
  151. package/dist/components/icon/icon.component.js +2 -2
  152. package/dist/components/icon/icon.js +3 -3
  153. package/dist/components/icon-button/icon-button.component.js +3 -3
  154. package/dist/components/icon-button/icon-button.js +4 -4
  155. package/dist/components/input/input.component.js +7 -7
  156. package/dist/components/input/input.js +8 -8
  157. package/dist/components/menu/menu.component.js +2 -2
  158. package/dist/components/menu/menu.js +3 -3
  159. package/dist/components/menu-item/menu-item.component.js +8 -8
  160. package/dist/components/menu-item/menu-item.js +9 -9
  161. package/dist/components/menu-item/submenu-controller.js +1 -1
  162. package/dist/components/menu-label/menu-label.component.js +3 -3
  163. package/dist/components/menu-label/menu-label.js +4 -4
  164. package/dist/components/nav-item/nav-item.component.js +3 -3
  165. package/dist/components/nav-item/nav-item.js +4 -4
  166. package/dist/components/optgroup/optgroup.component.js +3 -3
  167. package/dist/components/optgroup/optgroup.js +4 -4
  168. package/dist/components/option/option.component.d.ts +0 -1
  169. package/dist/components/option/option.component.js +5 -5
  170. package/dist/components/option/option.js +6 -6
  171. package/dist/components/popup/popup.component.js +2 -2
  172. package/dist/components/popup/popup.js +3 -3
  173. package/dist/components/prio-nav/prio-nav.component.js +10 -10
  174. package/dist/components/prio-nav/prio-nav.js +11 -11
  175. package/dist/components/progress-bar/progress-bar.component.js +2 -2
  176. package/dist/components/progress-bar/progress-bar.js +3 -3
  177. package/dist/components/progress-ring/progress-ring.component.js +2 -2
  178. package/dist/components/progress-ring/progress-ring.js +3 -3
  179. package/dist/components/radio/radio.component.js +3 -3
  180. package/dist/components/radio/radio.js +4 -4
  181. package/dist/components/radio-button/radio-button.component.js +2 -2
  182. package/dist/components/radio-button/radio-button.js +3 -3
  183. package/dist/components/radio-group/radio-group.component.js +3 -3
  184. package/dist/components/radio-group/radio-group.js +4 -4
  185. package/dist/components/range/range.component.js +6 -6
  186. package/dist/components/range/range.js +7 -7
  187. package/dist/components/range-tick/range-tick.component.js +2 -2
  188. package/dist/components/range-tick/range-tick.js +3 -3
  189. package/dist/components/resize-observer/resize-observer.component.js +2 -2
  190. package/dist/components/select/select.component.d.ts +5 -2
  191. package/dist/components/select/select.component.js +9 -10
  192. package/dist/components/select/select.js +10 -11
  193. package/dist/components/select/select.styles.js +1 -1
  194. package/dist/components/side-nav/side-nav.component.js +8 -8
  195. package/dist/components/side-nav/side-nav.js +9 -9
  196. package/dist/components/spinner/spinner.component.js +2 -2
  197. package/dist/components/spinner/spinner.js +3 -3
  198. package/dist/components/switch/switch.component.js +3 -3
  199. package/dist/components/switch/switch.js +4 -4
  200. package/dist/components/tab/tab.component.js +7 -7
  201. package/dist/components/tab/tab.js +8 -8
  202. package/dist/components/tab/tab.styles.js +1 -1
  203. package/dist/components/tab-group/tab-group.component.js +7 -7
  204. package/dist/components/tab-group/tab-group.js +8 -8
  205. package/dist/components/tab-panel/tab-panel.component.js +2 -2
  206. package/dist/components/tab-panel/tab-panel.js +3 -3
  207. package/dist/components/tag/tag.component.js +6 -6
  208. package/dist/components/tag/tag.js +7 -7
  209. package/dist/components/textarea/textarea.component.js +3 -3
  210. package/dist/components/textarea/textarea.js +4 -4
  211. package/dist/components/tooltip/tooltip.component.js +4 -4
  212. package/dist/components/tooltip/tooltip.js +5 -5
  213. package/dist/components/validate/utility.js +2 -2
  214. package/dist/components/validate/validate.component.js +10 -10
  215. package/dist/components/validate/validate.js +11 -11
  216. package/dist/custom-elements.json +22 -25
  217. package/dist/styles/index.css +1 -1
  218. package/dist/synergy.js +112 -112
  219. package/dist/vscode.html-custom-data.json +5 -5
  220. package/package.json +1 -1
  221. package/dist/chunks/chunk.2PGJMFOB.js.map +0 -7
  222. package/dist/chunks/chunk.4WQGGNBW.js.map +0 -7
  223. package/dist/chunks/chunk.BOLYNSAY.js.map +0 -7
  224. package/dist/chunks/chunk.NIA5K4OJ.js.map +0 -7
  225. package/dist/chunks/chunk.QSOI4JQP.js.map +0 -7
  226. package/dist/chunks/chunk.UCSBHOIS.js.map +0 -7
  227. package/dist/chunks/chunk.VAMMVENR.js.map +0 -7
  228. /package/dist/chunks/{chunk.JWVUVW6O.js.map → chunk.25JUHBIK.js.map} +0 -0
  229. /package/dist/chunks/{chunk.5OK5KN5S.js.map → chunk.2DL4ZSBS.js.map} +0 -0
  230. /package/dist/chunks/{chunk.B7626H6F.js.map → chunk.2M3OO2G6.js.map} +0 -0
  231. /package/dist/chunks/{chunk.5MGIWDX5.js.map → chunk.2N4CXWJR.js.map} +0 -0
  232. /package/dist/chunks/{chunk.HSTOFIXW.js.map → chunk.2VEV27HT.js.map} +0 -0
  233. /package/dist/chunks/{chunk.JNHBMNPQ.js.map → chunk.32AK63SX.js.map} +0 -0
  234. /package/dist/chunks/{chunk.MQ7LOO2Y.js.map → chunk.3GAK3HCW.js.map} +0 -0
  235. /package/dist/chunks/{chunk.JSNMBHOQ.js.map → chunk.3N54OV6X.js.map} +0 -0
  236. /package/dist/chunks/{chunk.RMS6DADX.js.map → chunk.3RQCHNTE.js.map} +0 -0
  237. /package/dist/chunks/{chunk.XKG57QNE.js.map → chunk.3T4PKXLZ.js.map} +0 -0
  238. /package/dist/chunks/{chunk.F5463ZDK.js.map → chunk.3V3Z552X.js.map} +0 -0
  239. /package/dist/chunks/{chunk.BVPLIUAM.js.map → chunk.4ZCQXFO7.js.map} +0 -0
  240. /package/dist/chunks/{chunk.G5Y4T62U.js.map → chunk.6DCZLSTP.js.map} +0 -0
  241. /package/dist/chunks/{chunk.GN2HRVLE.js.map → chunk.7MCSBLOW.js.map} +0 -0
  242. /package/dist/chunks/{chunk.XFKWBXZR.js.map → chunk.7WHIEYGK.js.map} +0 -0
  243. /package/dist/chunks/{chunk.OKFITUPX.js.map → chunk.A2FQFTFB.js.map} +0 -0
  244. /package/dist/chunks/{chunk.LSZXCDFL.js.map → chunk.A7DYRCSL.js.map} +0 -0
  245. /package/dist/chunks/{chunk.52263CF2.js.map → chunk.ADQX5OKP.js.map} +0 -0
  246. /package/dist/chunks/{chunk.5PA56ND3.js.map → chunk.AGXEODV2.js.map} +0 -0
  247. /package/dist/chunks/{chunk.CEV42XP7.js.map → chunk.BMXPNWDD.js.map} +0 -0
  248. /package/dist/chunks/{chunk.ACYJBJDB.js.map → chunk.CDQY5ANT.js.map} +0 -0
  249. /package/dist/chunks/{chunk.3AY3V6GM.js.map → chunk.CJVTIJGE.js.map} +0 -0
  250. /package/dist/chunks/{chunk.WMIXKTYN.js.map → chunk.D6D5IFPL.js.map} +0 -0
  251. /package/dist/chunks/{chunk.LGMADQ74.js.map → chunk.DOU546A6.js.map} +0 -0
  252. /package/dist/chunks/{chunk.PJJLUK3S.js.map → chunk.DQC3S32H.js.map} +0 -0
  253. /package/dist/chunks/{chunk.YPUZNOGK.js.map → chunk.EFEGWSPA.js.map} +0 -0
  254. /package/dist/chunks/{chunk.3INFZQUC.js.map → chunk.FAM3ZB47.js.map} +0 -0
  255. /package/dist/chunks/{chunk.DL7JII5E.js.map → chunk.FN76TNJJ.js.map} +0 -0
  256. /package/dist/chunks/{chunk.DJZH56NZ.js.map → chunk.FWM3I5X4.js.map} +0 -0
  257. /package/dist/chunks/{chunk.4M6OPEJO.js.map → chunk.GOFLVOUS.js.map} +0 -0
  258. /package/dist/chunks/{chunk.5SBPVPZO.js.map → chunk.HCJMC4IT.js.map} +0 -0
  259. /package/dist/chunks/{chunk.TQB37PWT.js.map → chunk.HEFW5DOH.js.map} +0 -0
  260. /package/dist/chunks/{chunk.C4ONHCR2.js.map → chunk.I4STIUVP.js.map} +0 -0
  261. /package/dist/chunks/{chunk.RKYYDWN5.js.map → chunk.I5N5WFJU.js.map} +0 -0
  262. /package/dist/chunks/{chunk.TBGHJV63.js.map → chunk.ILCJZFQK.js.map} +0 -0
  263. /package/dist/chunks/{chunk.PKX7DBI4.js.map → chunk.K5BSQPSN.js.map} +0 -0
  264. /package/dist/chunks/{chunk.6BMVIJL3.js.map → chunk.K5PXELDD.js.map} +0 -0
  265. /package/dist/chunks/{chunk.XZFMTDSR.js.map → chunk.KX3ATDPK.js.map} +0 -0
  266. /package/dist/chunks/{chunk.RTEU272Y.js.map → chunk.LNBMB3DI.js.map} +0 -0
  267. /package/dist/chunks/{chunk.ELVW2U46.js.map → chunk.LR3QOC2S.js.map} +0 -0
  268. /package/dist/chunks/{chunk.4PU7OIVQ.js.map → chunk.M5NJMQBQ.js.map} +0 -0
  269. /package/dist/chunks/{chunk.U3G6BCYU.js.map → chunk.M7ICWWDM.js.map} +0 -0
  270. /package/dist/chunks/{chunk.OKGUIJXI.js.map → chunk.MGMIX6DT.js.map} +0 -0
  271. /package/dist/chunks/{chunk.TI2OQSXU.js.map → chunk.MTPLSXES.js.map} +0 -0
  272. /package/dist/chunks/{chunk.UOCB6QQW.js.map → chunk.NCQXRLJC.js.map} +0 -0
  273. /package/dist/chunks/{chunk.G733OK5E.js.map → chunk.NPQAP7F6.js.map} +0 -0
  274. /package/dist/chunks/{chunk.KDPRCS4B.js.map → chunk.O2XUYEBK.js.map} +0 -0
  275. /package/dist/chunks/{chunk.GFXOZOKO.js.map → chunk.O7YNDGZN.js.map} +0 -0
  276. /package/dist/chunks/{chunk.LLW3ZESH.js.map → chunk.P5CBQNOP.js.map} +0 -0
  277. /package/dist/chunks/{chunk.62BPHWGP.js.map → chunk.PDN2VYR2.js.map} +0 -0
  278. /package/dist/chunks/{chunk.CJXGS65O.js.map → chunk.PEQB7YJD.js.map} +0 -0
  279. /package/dist/chunks/{chunk.XFDPUTFZ.js.map → chunk.PFCFF54R.js.map} +0 -0
  280. /package/dist/chunks/{chunk.MFK3OBGO.js.map → chunk.PONNA4YL.js.map} +0 -0
  281. /package/dist/chunks/{chunk.PYBUH4X3.js.map → chunk.QS7HRCHA.js.map} +0 -0
  282. /package/dist/chunks/{chunk.MKWJTOOB.js.map → chunk.QUXICFJL.js.map} +0 -0
  283. /package/dist/chunks/{chunk.QVEVZ6P6.js.map → chunk.QZRLHN6I.js.map} +0 -0
  284. /package/dist/chunks/{chunk.YJ56W45T.js.map → chunk.R22XUKGQ.js.map} +0 -0
  285. /package/dist/chunks/{chunk.HYZYKFKI.js.map → chunk.RXG5TZNY.js.map} +0 -0
  286. /package/dist/chunks/{chunk.CJLH7J7S.js.map → chunk.SCT7M3OI.js.map} +0 -0
  287. /package/dist/chunks/{chunk.VLMXH5H3.js.map → chunk.SF4OPBS6.js.map} +0 -0
  288. /package/dist/chunks/{chunk.DRK3YX4Z.js.map → chunk.SFCABZYW.js.map} +0 -0
  289. /package/dist/chunks/{chunk.ARFMGKMY.js.map → chunk.SNVEQ432.js.map} +0 -0
  290. /package/dist/chunks/{chunk.AZF7WN73.js.map → chunk.SPAJDYL5.js.map} +0 -0
  291. /package/dist/chunks/{chunk.J3WEX5HD.js.map → chunk.STSKJPGL.js.map} +0 -0
  292. /package/dist/chunks/{chunk.A77RWT6K.js.map → chunk.T5ZAWJVF.js.map} +0 -0
  293. /package/dist/chunks/{chunk.D4YOKGJQ.js.map → chunk.TXKD5X4O.js.map} +0 -0
  294. /package/dist/chunks/{chunk.O6GNDOJS.js.map → chunk.UAK6WG4U.js.map} +0 -0
  295. /package/dist/chunks/{chunk.DJOJTIW7.js.map → chunk.UQRQF6V7.js.map} +0 -0
  296. /package/dist/chunks/{chunk.TQPJY33X.js.map → chunk.UVT3K4BL.js.map} +0 -0
  297. /package/dist/chunks/{chunk.DRRFQY4U.js.map → chunk.V3YTSDOG.js.map} +0 -0
  298. /package/dist/chunks/{chunk.FM7Y6QTI.js.map → chunk.VLLUDIS7.js.map} +0 -0
  299. /package/dist/chunks/{chunk.XDYBSCZB.js.map → chunk.VN3RRCSO.js.map} +0 -0
  300. /package/dist/chunks/{chunk.QTMPI6MU.js.map → chunk.VRYQ7MKQ.js.map} +0 -0
  301. /package/dist/chunks/{chunk.GLOX7JMO.js.map → chunk.WNUD4VDX.js.map} +0 -0
  302. /package/dist/chunks/{chunk.2UYVUDI7.js.map → chunk.WQXCL54U.js.map} +0 -0
  303. /package/dist/chunks/{chunk.VXGFRIVQ.js.map → chunk.XC2GLKQM.js.map} +0 -0
  304. /package/dist/chunks/{chunk.WT2TGROO.js.map → chunk.XQPM6V3Y.js.map} +0 -0
  305. /package/dist/chunks/{chunk.BQ5HKXCW.js.map → chunk.XSTUKBIN.js.map} +0 -0
  306. /package/dist/chunks/{chunk.W3RGEMX5.js.map → chunk.XYAH4IO5.js.map} +0 -0
  307. /package/dist/chunks/{chunk.M2FYP3OQ.js.map → chunk.YHDODK3T.js.map} +0 -0
  308. /package/dist/chunks/{chunk.5AJSQKA5.js.map → chunk.YMCR3GIU.js.map} +0 -0
  309. /package/dist/chunks/{chunk.5BZ26TQP.js.map → chunk.YVIQ2WAT.js.map} +0 -0
  310. /package/dist/chunks/{chunk.ULTXP6Y2.js.map → chunk.ZA3WJ6M5.js.map} +0 -0
  311. /package/dist/chunks/{chunk.XENZ2D2Z.js.map → chunk.ZLBGUUHH.js.map} +0 -0
  312. /package/dist/chunks/{chunk.MJK6ZWX5.js.map → chunk.ZPT2C54J.js.map} +0 -0
  313. /package/dist/chunks/{chunk.BIDTP26C.js.map → chunk.ZVXLBYON.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/drawer/drawer.component.ts", "../../src/internal/string.ts"],
4
+ "sourcesContent": ["/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\nimport { animateTo, stopAnimations } from '../../internal/animate.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { getAnimation, setDefaultAnimation } from '../../utilities/animation-registry.js';\nimport { HasSlotController } from '../../internal/slot.js';\nimport { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { LocalizeController } from '../../utilities/localize.js';\nimport { lockBodyScrolling, unlockBodyScrolling } from '../../internal/scroll.js';\nimport { property, query } from 'lit/decorators.js';\nimport { uppercaseFirstLetter } from '../../internal/string.js';\nimport { waitForEvent } from '../../internal/event.js';\nimport { watch } from '../../internal/watch.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport Modal from '../../internal/modal.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport SynIconButton from '../icon-button/icon-button.component.js';\nimport styles from './drawer.styles.js';\nimport customStyles from './drawer.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\n\n/**\n * @summary Drawers slide in from a container to expose additional options and information.\n * @documentation https://synergy.style/components/drawer\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon-button\n *\n * @slot - The drawer's main content.\n * @slot label - The drawer's label. Alternatively, you can use the `label` attribute.\n * @slot header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.\n * @slot footer - The drawer's footer, usually one or more buttons representing various options.\n *\n * @event syn-show - Emitted when the drawer opens.\n * @event syn-after-show - Emitted after the drawer opens and all animations are complete.\n * @event syn-hide - Emitted when the drawer closes.\n * @event syn-after-hide - Emitted after the drawer closes and all animations are complete.\n * @event syn-initial-focus - Emitted when the drawer opens and is ready to receive focus. Calling\n * `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.\n * @event {{ source: 'close-button' | 'keyboard' | 'overlay' }} syn-request-close - Emitted when the user attempts to\n * close the drawer by clicking the close button, clicking the overlay, or pressing escape. Calling\n * `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in\n * destructive behavior such as data loss.\n *\n * @csspart base - The component's base wrapper.\n * @csspart overlay - The overlay that covers the screen behind the drawer.\n * @csspart panel - The drawer's panel (where the drawer and its content are rendered).\n * @csspart header - The drawer's header. This element wraps the title and header actions.\n * @csspart header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.\n * @csspart title - The drawer's title.\n * @csspart close-button - The close button, an `<syn-icon-button>`.\n * @csspart close-button__base - The close button's exported `base` part.\n * @csspart body - The drawer's body.\n * @csspart footer - The drawer's footer.\n *\n * @cssproperty --size - The preferred size of the drawer. This will be applied to the drawer's width or height\n * depending on its `placement`. Note that the drawer will shrink to accommodate smaller screens.\n * @cssproperty --header-spacing - The amount of padding to use for the header.\n * @cssproperty --body-spacing - The amount of padding to use for the body.\n * @cssproperty --footer-spacing - The amount of padding to use for the footer.\n *\n * @animation drawer.showTop - The animation to use when showing a drawer with `top` placement.\n * @animation drawer.showEnd - The animation to use when showing a drawer with `end` placement.\n * @animation drawer.showBottom - The animation to use when showing a drawer with `bottom` placement.\n * @animation drawer.showStart - The animation to use when showing a drawer with `start` placement.\n * @animation drawer.hideTop - The animation to use when hiding a drawer with `top` placement.\n * @animation drawer.hideEnd - The animation to use when hiding a drawer with `end` placement.\n * @animation drawer.hideBottom - The animation to use when hiding a drawer with `bottom` placement.\n * @animation drawer.hideStart - The animation to use when hiding a drawer with `start` placement.\n * @animation drawer.denyClose - The animation to use when a request to close the drawer is denied.\n * @animation drawer.overlay.show - The animation to use when showing the drawer's overlay.\n * @animation drawer.overlay.hide - The animation to use when hiding the drawer's overlay.\n *\n * @property modal - Exposes the internal modal utility that controls focus trapping. To temporarily disable focus\n * trapping and allow third-party modals spawned from an active Synergy modal, call `modal.activateExternal()` when\n * the third-party modal opens. Upon closing, call `modal.deactivateExternal()` to restore Synergy's focus trapping.\n */\nexport default class SynDrawer extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles, customStyles];\n static dependencies = { 'syn-icon-button': SynIconButton };\n\n private readonly hasSlotController = new HasSlotController(this, 'footer');\n private readonly localize = new LocalizeController(this);\n private originalTrigger: HTMLElement | null;\n public modal = new Modal(this);\n private closeWatcher: CloseWatcher | null;\n\n @query('.drawer') drawer: HTMLElement;\n @query('.drawer__panel') panel: HTMLElement;\n @query('.drawer__overlay') overlay: HTMLElement;\n\n /**\n * Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the drawer's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * The drawer's label as displayed in the header. You should always include a relevant label even when using\n * `no-header`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.\n */\n @property({ reflect: true }) label = '';\n\n /** The direction from which the drawer will open. */\n @property({ reflect: true }) placement: 'top' | 'end' | 'bottom' | 'start' = 'end';\n\n /**\n * By default, the drawer slides out of its containing block (usually the viewport). To make the drawer slide out of\n * its parent element, set this attribute and add `position: relative` to the parent.\n */\n @property({ type: Boolean, reflect: true }) contained = false;\n\n /**\n * Removes the header. This will also remove the default close button, so please ensure you provide an easy,\n * accessible way for users to dismiss the drawer.\n */\n @property({ attribute: 'no-header', type: Boolean, reflect: true }) noHeader = false;\n\n firstUpdated() {\n this.drawer.hidden = !this.open;\n\n if (this.open) {\n this.addOpenListeners();\n\n if (!this.contained) {\n this.modal.activate();\n lockBodyScrolling(this);\n }\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n unlockBodyScrolling(this);\n this.removeOpenListeners();\n }\n\n private requestClose(source: 'close-button' | 'keyboard' | 'overlay') {\n const slRequestClose = this.emit('syn-request-close', {\n cancelable: true,\n detail: { source }\n });\n\n if (slRequestClose.defaultPrevented) {\n const animation = getAnimation(this, 'drawer.denyClose', { dir: this.localize.dir() });\n animateTo(this.panel, animation.keyframes, animation.options);\n return;\n }\n\n this.hide();\n }\n\n private addOpenListeners() {\n if ('CloseWatcher' in window) {\n this.closeWatcher?.destroy();\n if (!this.contained) {\n this.closeWatcher = new CloseWatcher();\n this.closeWatcher.onclose = () => this.requestClose('keyboard');\n }\n } else {\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n }\n\n private removeOpenListeners() {\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n this.closeWatcher?.destroy();\n }\n\n private handleDocumentKeyDown = (event: KeyboardEvent) => {\n // Contained drawers aren't modal and don't response to the escape key\n if (this.contained) {\n return;\n }\n\n if (event.key === 'Escape' && this.modal.isActive() && this.open) {\n event.stopImmediatePropagation();\n this.requestClose('keyboard');\n }\n };\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit('syn-show');\n this.addOpenListeners();\n this.originalTrigger = document.activeElement as HTMLElement;\n\n // Lock body scrolling only if the drawer isn't contained\n if (!this.contained) {\n this.modal.activate();\n lockBodyScrolling(this);\n }\n\n // When the drawer is shown, Safari will attempt to set focus on whatever element has autofocus. This causes the\n // drawer's animation to jitter, so we'll temporarily remove the attribute, call `focus({ preventScroll: true })`\n // ourselves, and add the attribute back afterwards.\n //\n // Related: https://github.com/synergy-design-system/synergy/issues/693\n //\n const autoFocusTarget = this.querySelector('[autofocus]');\n if (autoFocusTarget) {\n autoFocusTarget.removeAttribute('autofocus');\n }\n\n await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);\n this.drawer.hidden = false;\n\n // Set initial focus\n requestAnimationFrame(() => {\n const slInitialFocus = this.emit('syn-initial-focus', { cancelable: true });\n\n if (!slInitialFocus.defaultPrevented) {\n // Set focus to the autofocus target and restore the attribute\n if (autoFocusTarget) {\n (autoFocusTarget as HTMLInputElement).focus({ preventScroll: true });\n } else {\n this.panel.focus({ preventScroll: true });\n }\n }\n\n // Restore the autofocus attribute\n if (autoFocusTarget) {\n autoFocusTarget.setAttribute('autofocus', '');\n }\n });\n\n const panelAnimation = getAnimation(this, `drawer.show${uppercaseFirstLetter(this.placement)}`, {\n dir: this.localize.dir()\n });\n const overlayAnimation = getAnimation(this, 'drawer.overlay.show', { dir: this.localize.dir() });\n await Promise.all([\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)\n ]);\n\n this.emit('syn-after-show');\n } else {\n // Hide\n this.emit('syn-hide');\n this.removeOpenListeners();\n\n if (!this.contained) {\n this.modal.deactivate();\n unlockBodyScrolling(this);\n }\n\n await Promise.all([stopAnimations(this.drawer), stopAnimations(this.overlay)]);\n const panelAnimation = getAnimation(this, `drawer.hide${uppercaseFirstLetter(this.placement)}`, {\n dir: this.localize.dir()\n });\n const overlayAnimation = getAnimation(this, 'drawer.overlay.hide', { dir: this.localize.dir() });\n\n // Animate the overlay and the panel at the same time. Because animation durations might be different, we need to\n // hide each one individually when the animation finishes, otherwise the first one that finishes will reappear\n // unexpectedly. We'll unhide them after all animations have completed.\n await Promise.all([\n animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options).then(() => {\n this.overlay.hidden = true;\n }),\n animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {\n this.panel.hidden = true;\n })\n ]);\n\n this.drawer.hidden = true;\n\n // Now that the dialog is hidden, restore the overlay and panel for next time\n this.overlay.hidden = false;\n this.panel.hidden = false;\n\n // Restore focus to the original trigger\n const trigger = this.originalTrigger;\n if (typeof trigger?.focus === 'function') {\n setTimeout(() => trigger.focus());\n }\n\n this.emit('syn-after-hide');\n }\n }\n\n @watch('contained', { waitUntilFirstUpdate: true })\n handleNoModalChange() {\n if (this.open && !this.contained) {\n this.modal.activate();\n lockBodyScrolling(this);\n }\n\n if (this.open && this.contained) {\n this.modal.deactivate();\n unlockBodyScrolling(this);\n }\n }\n\n /** Shows the drawer. */\n async show() {\n if (this.open) {\n return undefined;\n }\n\n this.open = true;\n return waitForEvent(this, 'syn-after-show');\n }\n\n /** Hides the drawer */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n return waitForEvent(this, 'syn-after-hide');\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n drawer: true,\n 'drawer--open': this.open,\n 'drawer--top': this.placement === 'top',\n 'drawer--end': this.placement === 'end',\n 'drawer--bottom': this.placement === 'bottom',\n 'drawer--start': this.placement === 'start',\n 'drawer--contained': this.contained,\n 'drawer--fixed': !this.contained,\n 'drawer--rtl': this.localize.dir() === 'rtl',\n 'drawer--has-footer': this.hasSlotController.test('footer')\n })}\n >\n <div part=\"overlay\" class=\"drawer__overlay\" @click=${() => this.requestClose('overlay')} tabindex=\"-1\"></div>\n\n <div\n part=\"panel\"\n class=\"drawer__panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-hidden=${this.open ? 'false' : 'true'}\n aria-label=${ifDefined(this.noHeader ? this.label : undefined)}\n aria-labelledby=${ifDefined(!this.noHeader ? 'title' : undefined)}\n tabindex=\"0\"\n >\n ${!this.noHeader\n ? html`\n <header part=\"header\" class=\"drawer__header\">\n <h2 part=\"title\" class=\"drawer__title\" id=\"title\">\n <!-- If there's no label, use an invisible character to prevent the header from collapsing -->\n <slot name=\"label\"> ${this.label.length > 0 ? this.label : String.fromCharCode(65279)} </slot>\n </h2>\n <div part=\"header-actions\" class=\"drawer__header-actions\">\n <slot name=\"header-actions\"></slot>\n <syn-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n class=\"drawer__close\"\n name=\"x-lg\"\n label=${this.localize.term('close')}\n library=\"system\"\n @click=${() => this.requestClose('close-button')}\n ></syn-icon-button>\n </div>\n </header>\n `\n : ''}\n\n <slot part=\"body\" class=\"drawer__body\"></slot>\n\n <footer part=\"footer\" class=\"drawer__footer\">\n <slot name=\"footer\"></slot>\n </footer>\n </div>\n </div>\n `;\n }\n}\n\n// Top\nsetDefaultAnimation('drawer.showTop', {\n keyframes: [\n { opacity: 0, translate: '0 -100%' },\n { opacity: 1, translate: '0 0' }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n\nsetDefaultAnimation('drawer.hideTop', {\n keyframes: [\n { opacity: 1, translate: '0 0' },\n { opacity: 0, translate: '0 -100%' }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n\n// End\nsetDefaultAnimation('drawer.showEnd', {\n keyframes: [\n { opacity: 0, translate: '100%' },\n { opacity: 1, translate: '0' }\n ],\n rtlKeyframes: [\n { opacity: 0, translate: '-100%' },\n { opacity: 1, translate: '0' }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n\nsetDefaultAnimation('drawer.hideEnd', {\n keyframes: [\n { opacity: 1, translate: '0' },\n { opacity: 0, translate: '100%' }\n ],\n rtlKeyframes: [\n { opacity: 1, translate: '0' },\n { opacity: 0, translate: '-100%' }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n\n// Bottom\nsetDefaultAnimation('drawer.showBottom', {\n keyframes: [\n { opacity: 0, translate: '0 100%' },\n { opacity: 1, translate: '0 0' }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n\nsetDefaultAnimation('drawer.hideBottom', {\n keyframes: [\n { opacity: 1, translate: '0 0' },\n { opacity: 0, translate: '0 100%' }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n\n// Start\nsetDefaultAnimation('drawer.showStart', {\n keyframes: [\n { opacity: 0, translate: '-100%' },\n { opacity: 1, translate: '0' }\n ],\n rtlKeyframes: [\n { opacity: 0, translate: '100%' },\n { opacity: 1, translate: '0' }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n\nsetDefaultAnimation('drawer.hideStart', {\n keyframes: [\n { opacity: 1, translate: '0' },\n { opacity: 0, translate: '-100%' }\n ],\n rtlKeyframes: [\n { opacity: 1, translate: '0' },\n { opacity: 0, translate: '100%' }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n\n// Deny close\nsetDefaultAnimation('drawer.denyClose', {\n keyframes: [{ scale: 1 }, { scale: 1.01 }, { scale: 1 }],\n options: { duration: 250 }\n});\n\n// Overlay\nsetDefaultAnimation('drawer.overlay.show', {\n keyframes: [{ opacity: 0 }, { opacity: 1 }],\n options: { duration: 250 }\n});\n\nsetDefaultAnimation('drawer.overlay.hide', {\n keyframes: [{ opacity: 1 }, { opacity: 0 }],\n options: { duration: 250 }\n});\n", "/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\n/** Converts the first letter of a string to uppercase */\nexport function uppercaseFirstLetter(string: string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -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 = "2.14.1";
84
+ SynergyElement.version = "2.14.3";
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.BTDXOSFP.js.map
96
+ //# sourceMappingURL=chunk.EBE3CGKL.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/internal/synergy-element.ts"],
4
- "sourcesContent": ["/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* 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 = \"2.14.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": ["/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* 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 = \"2.14.3\";\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": ";;;;;;;;;AAQA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AATzB;AAwEA,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
  SynDivider
3
- } from "./chunk.QVEVZ6P6.js";
3
+ } from "./chunk.QZRLHN6I.js";
4
4
 
5
5
  // src/components/divider/divider.ts
6
6
  var divider_default = SynDivider;
@@ -9,4 +9,4 @@ SynDivider.define("syn-divider");
9
9
  export {
10
10
  divider_default
11
11
  };
12
- //# sourceMappingURL=chunk.YPUZNOGK.js.map
12
+ //# sourceMappingURL=chunk.EFEGWSPA.js.map
@@ -6,25 +6,25 @@ import {
6
6
  } from "./chunk.PKYC7QF3.js";
7
7
  import {
8
8
  SynResizeObserver
9
- } from "./chunk.FM7Y6QTI.js";
9
+ } from "./chunk.VLLUDIS7.js";
10
10
  import {
11
11
  scrollIntoView
12
12
  } from "./chunk.5732DMBC.js";
13
13
  import {
14
14
  SynIconButton
15
- } from "./chunk.6BMVIJL3.js";
16
- import {
17
- watch
18
- } from "./chunk.74IOULXM.js";
15
+ } from "./chunk.K5PXELDD.js";
19
16
  import {
20
17
  LocalizeController
21
18
  } from "./chunk.GIU3H3J3.js";
19
+ import {
20
+ watch
21
+ } from "./chunk.74IOULXM.js";
22
22
  import {
23
23
  component_styles_default
24
24
  } from "./chunk.NLYVOJGK.js";
25
25
  import {
26
26
  SynergyElement
27
- } from "./chunk.BTDXOSFP.js";
27
+ } from "./chunk.EBE3CGKL.js";
28
28
  import {
29
29
  __decorateClass,
30
30
  __spreadValues
@@ -127,6 +127,12 @@ var SynTabGroup = class extends SynergyElement {
127
127
  }
128
128
  if (mutations.some((m) => m.attributeName === "disabled")) {
129
129
  this.syncTabsAndPanels();
130
+ } else if (mutations.some((m) => m.attributeName === "active")) {
131
+ const tabs = mutations.filter((m) => m.attributeName === "active" && m.target.tagName.toLowerCase() === "syn-tab").map((m) => m.target);
132
+ const newActiveTab = tabs.find((tab) => tab.active);
133
+ if (newActiveTab) {
134
+ this.setActiveTab(newActiveTab);
135
+ }
130
136
  }
131
137
  });
132
138
  this.updateComplete.then(() => {
@@ -491,4 +497,4 @@ __decorateClass([
491
497
  export {
492
498
  SynTabGroup
493
499
  };
494
- //# sourceMappingURL=chunk.BOLYNSAY.js.map
500
+ //# sourceMappingURL=chunk.EHHULBSP.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/internal/scrollend-polyfill.ts", "../../src/components/tab-group/tab-group.component.ts"],
4
+ "sourcesContent": ["/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\ntype GenericCallback = (this: unknown, ...args: unknown[]) => unknown;\n\ntype MethodOf<T, K extends keyof T> = T[K] extends GenericCallback ? T[K] : never;\n\nconst debounce = <T extends GenericCallback>(fn: T, delay: number) => {\n let timerId = 0;\n\n return function (this: unknown, ...args: unknown[]) {\n window.clearTimeout(timerId);\n timerId = window.setTimeout(() => {\n fn.call(this, ...args);\n }, delay);\n };\n};\n\nconst decorate = <T, M extends keyof T>(\n proto: T,\n method: M,\n decorateFn: (this: unknown, superFn: T[M], ...args: unknown[]) => unknown\n) => {\n const superFn = proto[method] as MethodOf<T, M>;\n\n proto[method] = function (this: unknown, ...args: unknown[]) {\n superFn.call(this, ...args);\n decorateFn.call(this, superFn, ...args);\n } as MethodOf<T, M>;\n};\n\nconst isSupported = 'onscrollend' in window;\n\nif (!isSupported) {\n const pointers = new Set();\n const scrollHandlers = new WeakMap<EventTarget, EventListenerOrEventListenerObject>();\n\n const handlePointerDown = (event: TouchEvent) => {\n for (const touch of event.changedTouches) {\n pointers.add(touch.identifier);\n }\n };\n\n const handlePointerUp = (event: TouchEvent) => {\n for (const touch of event.changedTouches) {\n pointers.delete(touch.identifier);\n }\n };\n\n document.addEventListener('touchstart', handlePointerDown, true);\n document.addEventListener('touchend', handlePointerUp, true);\n document.addEventListener('touchcancel', handlePointerUp, true);\n\n decorate(EventTarget.prototype, 'addEventListener', function (this: EventTarget, addEventListener, type) {\n if (type !== 'scrollend') return;\n\n const handleScrollEnd = debounce(() => {\n if (!pointers.size) {\n // If no pointer is active in the scroll area then the scroll has ended\n this.dispatchEvent(new Event('scrollend'));\n } else {\n // otherwise let's wait a bit more\n handleScrollEnd();\n }\n }, 100);\n\n addEventListener.call(this, 'scroll', handleScrollEnd, { passive: true });\n scrollHandlers.set(this, handleScrollEnd);\n });\n\n decorate(EventTarget.prototype, 'removeEventListener', function (this: EventTarget, removeEventListener, type) {\n if (type !== 'scrollend') return;\n\n const scrollHandler = scrollHandlers.get(this);\n if (scrollHandler) {\n removeEventListener.call(this, 'scroll', scrollHandler, { passive: true } as unknown as EventListenerOptions);\n }\n });\n}\n\n// Without an import or export, TypeScript sees vars in this file as global\nexport {};\n", "/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\nimport '../../internal/scrollend-polyfill.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { eventOptions, property, query, state } from 'lit/decorators.js';\nimport { html } from 'lit';\nimport { LocalizeController } from '../../utilities/localize.js';\nimport { scrollIntoView } from '../../internal/scroll.js';\nimport { watch } from '../../internal/watch.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport SynIconButton from '../icon-button/icon-button.component.js';\nimport SynResizeObserver from '../resize-observer/resize-observer.component.js';\nimport styles from './tab-group.styles.js';\nimport customStyles from './tab-group.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\nimport type SynTab from '../tab/tab.js';\nimport type SynTabPanel from '../tab-panel/tab-panel.js';\n\n/**\n * @summary Tab groups organize content into a container that shows one section at a time.\n * @documentation https://synergy.style/components/tab-group\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon-button\n *\n * @slot - Used for grouping tab panels in the tab group. Must be `<syn-tab-panel>` elements.\n * @slot nav - Used for grouping tabs in the tab group. Must be `<syn-tab>` elements.\n *\n * @event {{ name: String }} syn-tab-show - Emitted when a tab is shown. The payload of the event returns the \"panel\" attribute of the shown tab.\n * @event {{ name: String }} syn-tab-hide - Emitted when a tab is hidden. The payload of the event returns the \"panel\" attribute of the hidden tab.\n *\n * @csspart base - The component's base wrapper.\n * @csspart nav - The tab group's navigation container where tabs are slotted in.\n * @csspart tabs - The container that wraps the tabs.\n * @csspart active-tab-indicator - The line that highlights the currently selected tab.\n * @csspart body - The tab group's body where tab panels are slotted in.\n * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<syn-icon-button>`.\n * @csspart scroll-button--start - The starting scroll button.\n * @csspart scroll-button--end - The ending scroll button.\n * @csspart scroll-button__base - The scroll button's exported `base` part.\n *\n * @cssproperty --indicator-color - The color of the active tab indicator.\n * @cssproperty --indicator-width - The width of the active tab indicator.\n * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).\n * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).\n */\nexport default class SynTabGroup extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles, customStyles];\n static dependencies = { 'syn-icon-button': SynIconButton, 'syn-resize-observer': SynResizeObserver };\n\n private activeTab?: SynTab;\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n private tabs: SynTab[] = [];\n private focusableTabs: SynTab[] = [];\n private panels: SynTabPanel[] = [];\n private readonly localize = new LocalizeController(this);\n\n @query('.tab-group') tabGroup: HTMLElement;\n @query('.tab-group__body') body: HTMLSlotElement;\n @query('.tab-group__nav') nav: HTMLElement;\n @query('.tab-group__indicator') indicator: HTMLElement;\n\n @state() private hasScrollControls = false;\n\n @state() private shouldHideScrollStartButton = false;\n @state() private shouldHideScrollEndButton = false;\n\n /** The placement of the tabs. */\n @property() placement: 'top' | 'start' | 'end' = 'top';\n\n /**\n * When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\n * manual, the tab will receive focus but will not show until the user presses spacebar or enter.\n */\n @property() activation: 'auto' | 'manual' = 'auto';\n\n /** Disables the scroll arrows that appear when tabs overflow. */\n @property({ attribute: 'no-scroll-controls', type: Boolean }) noScrollControls = false;\n\n /** Draws the tab group as a contained element. */\n @property({ type: Boolean }) contained = false;\n \n /** Draws the tab group with edges instead of roundings. Takes only effect if used with the 'contained' property */\n @property({ type: Boolean }) sharp = false;\n\n /** Prevent scroll buttons from being hidden when inactive. */\n @property({ attribute: 'fixed-scroll-controls', type: Boolean }) fixedScrollControls = false;\n\n connectedCallback() {\n const whenAllDefined = Promise.all([\n customElements.whenDefined('syn-tab'),\n customElements.whenDefined('syn-tab-panel')\n ]);\n\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.repositionIndicator();\n this.updateScrollControls();\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n // sync tabs when active state changed programmatically\n } else if(mutations.some(m => m.attributeName === 'active')){\n const tabs = mutations.filter(m => m.attributeName === 'active' && (m.target as HTMLElement).tagName.toLowerCase() === 'syn-tab').map(m => m.target as SynTab); \n const newActiveTab = tabs.find(tab => tab.active);\n\n if(newActiveTab){\n this.setActiveTab(newActiveTab);\n }\n }\n });\n\n // After the first update...\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n\n // Wait for tabs and tab panels to be registered\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n this.setActiveTab(this.getActiveTab() ?? this.tabs[0], { emitEvents: false });\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.mutationObserver?.disconnect();\n\n if (this.nav) {\n this.resizeObserver?.unobserve(this.nav);\n }\n }\n\n private getAllTabs() {\n const slot = this.shadowRoot!.querySelector<HTMLSlotElement>('slot[name=\"nav\"]')!;\n\n return slot.assignedElements() as SynTab[];\n }\n\n private getAllPanels() {\n return [...this.body.assignedElements()].filter(el => el.tagName.toLowerCase() === 'syn-tab-panel') as [SynTabPanel];\n }\n\n private getActiveTab() {\n return this.tabs.find(el => el.active);\n }\n\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('syn-tab');\n const tabGroup = tab?.closest('syn-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n if (tab !== null) {\n this.setActiveTab(tab, { scrollBehavior: 'smooth' });\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n const target = event.target as HTMLElement;\n const tab = target.closest('syn-tab');\n const tabGroup = tab?.closest('syn-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this) {\n return;\n }\n\n // Activate a tab\n if (['Enter', ' '].includes(event.key)) {\n if (tab !== null) {\n this.setActiveTab(tab, { scrollBehavior: 'smooth' });\n event.preventDefault();\n }\n }\n\n // Move focus left or right\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const activeEl = this.tabs.find(t => t.matches(':focus'));\n const isRtl = this.localize.dir() === 'rtl';\n let nextTab: null | SynTab = null;\n\n if (activeEl?.tagName.toLowerCase() === 'syn-tab') {\n if (event.key === 'Home') {\n nextTab = this.focusableTabs[0];\n } else if (event.key === 'End') {\n nextTab = this.focusableTabs[this.focusableTabs.length - 1];\n } else if (\n (['top'].includes(this.placement) && event.key === (isRtl ? 'ArrowRight' : 'ArrowLeft')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowUp')\n ) {\n const currentIndex = this.tabs.findIndex(el => el === activeEl);\n nextTab = this.findNextFocusableTab(currentIndex, 'backward');\n } else if (\n (['top'].includes(this.placement) && event.key === (isRtl ? 'ArrowLeft' : 'ArrowRight')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowDown')\n ) {\n const currentIndex = this.tabs.findIndex(el => el === activeEl);\n nextTab = this.findNextFocusableTab(currentIndex, 'forward');\n }\n\n if (!nextTab) {\n return;\n }\n\n nextTab.tabIndex = 0;\n nextTab.focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.setActiveTab(nextTab, { scrollBehavior: 'smooth' });\n } else {\n this.tabs.forEach(tabEl => {\n tabEl.tabIndex = tabEl === nextTab ? 0 : -1;\n });\n }\n\n if (['top'].includes(this.placement)) {\n scrollIntoView(nextTab, this.nav, 'horizontal');\n }\n\n event.preventDefault();\n }\n }\n }\n\n private handleScrollToStart() {\n this.nav.scroll({\n left:\n this.localize.dir() === 'rtl'\n ? this.nav.scrollLeft + this.nav.clientWidth\n : this.nav.scrollLeft - this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private handleScrollToEnd() {\n this.nav.scroll({\n left:\n this.localize.dir() === 'rtl'\n ? this.nav.scrollLeft - this.nav.clientWidth\n : this.nav.scrollLeft + this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private setActiveTab(tab: SynTab, options?: { emitEvents?: boolean; scrollBehavior?: 'auto' | 'smooth' }) {\n options = {\n emitEvents: true,\n scrollBehavior: 'auto',\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.forEach(el => {\n el.active = el === this.activeTab;\n el.tabIndex = el === this.activeTab ? 0 : -1;\n });\n this.panels.forEach(el => (el.active = el.name === this.activeTab?.panel));\n this.syncIndicator();\n\n if (['top'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', options.scrollBehavior);\n }\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit('syn-tab-hide', { detail: { name: previousTab.panel } });\n }\n\n this.emit('syn-tab-show', { detail: { name: this.activeTab.panel } });\n }\n }\n }\n\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id')!);\n panel.setAttribute('aria-labelledby', tab.getAttribute('id')!);\n }\n });\n }\n\n private repositionIndicator() {\n const currentTab = this.getActiveTab();\n\n if (!currentTab) {\n return;\n }\n\n const width = currentTab.clientWidth;\n const height = currentTab.clientHeight;\n const isRtl = this.localize.dir() === 'rtl';\n\n // We can't used offsetLeft/offsetTop here due to a shadow parent issue where neither can getBoundingClientRect\n // because it provides invalid values for animating elements: https://bugs.chromium.org/p/chromium/issues/detail?id=920069\n const allTabs = this.getAllTabs();\n const precedingTabs = allTabs.slice(0, allTabs.indexOf(currentTab));\n const offset = precedingTabs.reduce(\n (previous, current) => ({\n left: previous.left + current.clientWidth,\n top: previous.top + current.clientHeight\n }),\n { left: 0, top: 0 }\n );\n\n switch (this.placement) {\n case 'top':\n this.indicator.style.width = `calc(${width}px - ${ (this.contained || this.sharp) ? '2 * var(--syn-spacing-large)' : '0px' })`;\n this.indicator.style.height = 'auto';\n this.indicator.style.translate = `calc(${isRtl ? '-' : ''}1 * (${offset.left}px + ${ (this.contained || this.sharp) ? 'var(--syn-spacing-large)' : '0px' }))`;\n break;\n\n case 'start':\n case 'end':\n this.indicator.style.width = 'auto';\n this.indicator.style.height = `calc(${height}px - ${ (this.contained || this.sharp) ? '2 * var(--syn-spacing-small)' : '0px' })`;\n this.indicator.style.translate = `0 calc(${offset.top}px + ${ (this.contained || this.sharp) ? 'var(--syn-spacing-small)' : '0px' })`;\n break;\n }\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs();\n this.focusableTabs = this.tabs.filter(el => !el.disabled);\n\n this.panels = this.getAllPanels();\n this.syncIndicator();\n\n // After updating, show or hide scroll controls as needed\n this.updateComplete.then(() => this.updateScrollControls());\n }\n\n private findNextFocusableTab(currentIndex: number, direction: 'forward' | 'backward') {\n let nextTab = null;\n const iterator = direction === 'forward' ? 1 : -1;\n let nextIndex = currentIndex + iterator;\n\n while (currentIndex < this.tabs.length) {\n nextTab = this.tabs[nextIndex] || null;\n\n if (nextTab === null) {\n // This is where wrapping happens. If we're moving forward and get to the end, then we jump to the beginning. If we're moving backward and get to the start, then we jump to the end.\n if (direction === 'forward') {\n nextTab = this.focusableTabs[0];\n } else {\n nextTab = this.focusableTabs[this.focusableTabs.length - 1];\n }\n break;\n }\n\n if (!nextTab.disabled) {\n break;\n }\n\n nextIndex += iterator;\n }\n\n return nextTab;\n }\n\n /**\n * The reality of the browser means that we can't expect the scroll position to be exactly what we want it to be, so\n * we add one pixel of wiggle room to our calculations.\n */\n private scrollOffset = 1;\n\n @eventOptions({ passive: true })\n private updateScrollButtons() {\n if (this.hasScrollControls && !this.fixedScrollControls) {\n this.shouldHideScrollStartButton = this.scrollFromStart() <= this.scrollOffset;\n this.shouldHideScrollEndButton = this.isScrolledToEnd();\n }\n }\n\n private isScrolledToEnd() {\n return this.scrollFromStart() + this.nav.clientWidth >= this.nav.scrollWidth - this.scrollOffset;\n }\n\n private scrollFromStart() {\n return this.localize.dir() === 'rtl' ? -this.nav.scrollLeft : this.nav.scrollLeft;\n }\n\n @watch('noScrollControls', { waitUntilFirstUpdate: true })\n updateScrollControls() {\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n // In most cases, we can compare scrollWidth to clientWidth to determine if scroll controls should show. However,\n // Safari appears to calculate this incorrectly when zoomed at 110%, causing the controls to toggle indefinitely.\n // Adding a single pixel to the comparison seems to resolve it.\n //\n // See https://github.com/synergy-design-system/synergy/issues/1839\n this.hasScrollControls =\n ['top'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth + 1;\n }\n\n this.updateScrollButtons();\n }\n\n @watch('placement', { waitUntilFirstUpdate: true })\n syncIndicator() {\n const tab = this.getActiveTab();\n\n if (tab) {\n this.indicator.style.display = 'block';\n this.repositionIndicator();\n } else {\n this.indicator.style.display = 'none';\n }\n }\n\n /** Shows the specified tab panel. */\n show(panel: string) {\n const tab = this.tabs.find(el => el.panel === panel);\n\n if (tab) {\n this.setActiveTab(tab, { scrollBehavior: 'smooth' });\n }\n }\n\n render() {\n\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'tab-group': true,\n 'tab-group--top': this.placement === 'top',\n 'tab-group--start': this.placement === 'start',\n 'tab-group--end': this.placement === 'end',\n 'tab-group--rtl': this.localize.dir() === 'rtl',\n 'tab-group--has-scroll-controls': this.hasScrollControls,\n 'tab-group--contained': this.contained,\n 'tab-group--sharp': this.sharp,\n })}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <div class=\"tab-group__nav-container\" part=\"nav\">\n ${this.hasScrollControls\n ? html`\n <syn-icon-button\n part=\"scroll-button scroll-button--start\"\n exportparts=\"base:scroll-button__base\"\n class=${classMap({\n 'tab-group__scroll-button': true,\n 'tab-group__scroll-button--start': true,\n 'tab-group__scroll-button--start--hidden': this.shouldHideScrollStartButton\n })}\n name=\"chevron-right\"\n library=\"system\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n label=${this.localize.term('scrollToStart')}\n @click=${this.handleScrollToStart}\n ></syn-icon-button>\n `\n : ''}\n\n <div class=\"tab-group__nav\" @scrollend=${this.updateScrollButtons}>\n <div part=\"tabs\" class=\"tab-group__tabs\" role=\"tablist\">\n <div part=\"active-tab-indicator\" class=\"tab-group__indicator\"></div>\n <syn-resize-observer @syn-resize=${this.syncIndicator}>\n <slot name=\"nav\" @slotchange=${this.syncTabsAndPanels}></slot>\n </syn-resize-observer>\n </div>\n </div>\n\n ${this.hasScrollControls\n ? html`\n <syn-icon-button\n part=\"scroll-button scroll-button--end\"\n exportparts=\"base:scroll-button__base\"\n class=${classMap({\n 'tab-group__scroll-button': true,\n 'tab-group__scroll-button--end': true,\n 'tab-group__scroll-button--end--hidden': this.shouldHideScrollEndButton\n })}\n name=\"chevron-right\"\n library=\"system\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n label=${this.localize.term('scrollToEnd')}\n @click=${this.handleScrollToEnd}\n ></syn-icon-button>\n `\n : ''}\n </div>\n\n <slot part=\"body\" class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'syn-tab-group': SynTabGroup;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -6,13 +6,13 @@ import {
6
6
  } from "./chunk.RAOPZXJL.js";
7
7
  import {
8
8
  SynDivider
9
- } from "./chunk.QVEVZ6P6.js";
9
+ } from "./chunk.QZRLHN6I.js";
10
10
  import {
11
11
  component_styles_default
12
12
  } from "./chunk.NLYVOJGK.js";
13
13
  import {
14
14
  SynergyElement
15
- } from "./chunk.BTDXOSFP.js";
15
+ } from "./chunk.EBE3CGKL.js";
16
16
 
17
17
  // src/components/menu-label/menu-label.component.ts
18
18
  import { html } from "lit";
@@ -34,4 +34,4 @@ SynMenuLabel.dependencies = {
34
34
  export {
35
35
  SynMenuLabel
36
36
  };
37
- //# sourceMappingURL=chunk.3INFZQUC.js.map
37
+ //# sourceMappingURL=chunk.FAM3ZB47.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynProgressBar
3
- } from "./chunk.JSNMBHOQ.js";
3
+ } from "./chunk.3N54OV6X.js";
4
4
 
5
5
  // src/components/progress-bar/progress-bar.ts
6
6
  var progress_bar_default = SynProgressBar;
@@ -9,4 +9,4 @@ SynProgressBar.define("syn-progress-bar");
9
9
  export {
10
10
  progress_bar_default
11
11
  };
12
- //# sourceMappingURL=chunk.DL7JII5E.js.map
12
+ //# sourceMappingURL=chunk.FN76TNJJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynOption
3
- } from "./chunk.UCSBHOIS.js";
3
+ } from "./chunk.2XKMEGGX.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.DJZH56NZ.js.map
12
+ //# sourceMappingURL=chunk.FWM3I5X4.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynPopup
3
- } from "./chunk.NIA5K4OJ.js";
3
+ } from "./chunk.6EVVIDQZ.js";
4
4
  import {
5
5
  defaultOptionRenderer
6
6
  } from "./chunk.SRH6ZOHT.js";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk.5732DMBC.js";
16
16
  import {
17
17
  defaultValue
18
- } from "./chunk.RBG37CD4.js";
18
+ } from "./chunk.3NXKLKWH.js";
19
19
  import {
20
20
  form_control_custom_styles_default,
21
21
  form_control_styles_default
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk.DPCIJLV4.js";
26
26
  import {
27
27
  combobox_styles_default
28
- } from "./chunk.IZEADTY5.js";
28
+ } from "./chunk.IZ72PTZ7.js";
29
29
  import {
30
30
  FormControlController
31
31
  } from "./chunk.AMIQC3O7.js";
@@ -45,19 +45,19 @@ import {
45
45
  } from "./chunk.WVVQK5TE.js";
46
46
  import {
47
47
  SynIcon
48
- } from "./chunk.O6GNDOJS.js";
49
- import {
50
- watch
51
- } from "./chunk.74IOULXM.js";
48
+ } from "./chunk.UAK6WG4U.js";
52
49
  import {
53
50
  LocalizeController
54
51
  } from "./chunk.GIU3H3J3.js";
52
+ import {
53
+ watch
54
+ } from "./chunk.74IOULXM.js";
55
55
  import {
56
56
  component_styles_default
57
57
  } from "./chunk.NLYVOJGK.js";
58
58
  import {
59
59
  SynergyElement
60
- } from "./chunk.BTDXOSFP.js";
60
+ } from "./chunk.EBE3CGKL.js";
61
61
  import {
62
62
  __decorateClass
63
63
  } from "./chunk.2GFK6XTO.js";
@@ -516,6 +516,7 @@ var SynCombobox = class extends SynergyElement {
516
516
  return filterOnlyOptgroups(getAssignedElementsForSlot(this.defaultSlot));
517
517
  }
518
518
  /* eslint-disable no-param-reassign, @typescript-eslint/no-floating-promises */
519
+ /* @internal - used by options to update labels */
519
520
  handleDefaultSlotChange() {
520
521
  if (!customElements.get("syn-option")) {
521
522
  customElements.whenDefined("syn-option").then(() => this.handleDefaultSlotChange());
@@ -814,4 +815,4 @@ setDefaultAnimation("combobox.hide", {
814
815
  export {
815
816
  SynCombobox
816
817
  };
817
- //# sourceMappingURL=chunk.QSP4W3ST.js.map
818
+ //# sourceMappingURL=chunk.GLQI4HLD.js.map