@synergy-design-system/components 2.10.1 → 2.11.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 (348) hide show
  1. package/dist/chunks/{chunk.RWH4QWJJ.js → chunk.2CO2NVIH.js} +6 -6
  2. package/dist/chunks/{chunk.PDM2RKUO.js → chunk.2FDAY6KG.js} +2 -2
  3. package/dist/chunks/{chunk.FR3XPGUO.js → chunk.35XN5YQW.js} +17 -10
  4. package/dist/chunks/chunk.35XN5YQW.js.map +7 -0
  5. package/dist/chunks/{chunk.ILKUAKHV.js → chunk.3EY2CJGW.js} +2 -2
  6. package/dist/chunks/{chunk.SYLH7TJL.js → chunk.3FJLLXCR.js} +2 -2
  7. package/dist/chunks/{chunk.IYEDBX5G.js → chunk.3MVTZZBQ.js} +2 -2
  8. package/dist/chunks/{chunk.YIVSAOEK.js → chunk.3UFTX7XQ.js} +2 -2
  9. package/dist/chunks/{chunk.4AN73MGZ.js → chunk.3XYKUOSA.js} +3 -3
  10. package/dist/chunks/chunk.3XYKUOSA.js.map +7 -0
  11. package/dist/chunks/{chunk.AFFGPKYQ.js → chunk.4IRHZEL2.js} +2 -2
  12. package/dist/chunks/{chunk.XXR6SBCQ.js → chunk.4P3FPYGQ.js} +6 -6
  13. package/dist/chunks/{chunk.IBDQRF55.js → chunk.5SNUBQQN.js} +2 -2
  14. package/dist/chunks/{chunk.F3BB6LK2.js → chunk.5WTQAMIT.js} +3 -3
  15. package/dist/chunks/{chunk.DQGFMBAC.js → chunk.64U5DPTH.js} +2 -2
  16. package/dist/chunks/{chunk.DUEOMPTT.js → chunk.67C446DF.js} +2 -2
  17. package/dist/chunks/{chunk.QUPQJL7I.js → chunk.67KT2SLM.js} +32 -16
  18. package/dist/chunks/chunk.67KT2SLM.js.map +7 -0
  19. package/dist/chunks/{chunk.ROA65NK6.js → chunk.6O33XJ3X.js} +2 -2
  20. package/dist/chunks/{chunk.J36KWNPW.js → chunk.6OJJ5EQC.js} +2 -2
  21. package/dist/chunks/{chunk.E4FLL46W.js → chunk.6QDXFWNX.js} +2 -2
  22. package/dist/chunks/{chunk.OZDWNWBK.js → chunk.74JAW3N4.js} +5 -5
  23. package/dist/chunks/{chunk.UENWCJJ4.js → chunk.A5E262NR.js} +2 -2
  24. package/dist/chunks/{chunk.TUTGCZ2F.js → chunk.AA7UYQAJ.js} +3 -3
  25. package/dist/chunks/{chunk.VWULHIO4.js → chunk.AJA3OIOC.js} +5 -5
  26. package/dist/chunks/{chunk.F6LIDG2Y.js → chunk.AONXQRGV.js} +2 -2
  27. package/dist/chunks/{chunk.H45DUC5P.js → chunk.BD43D4WE.js} +4 -3
  28. package/dist/chunks/chunk.BD43D4WE.js.map +7 -0
  29. package/dist/chunks/{chunk.3FTQ2AYW.js → chunk.BOKB2LEP.js} +3 -3
  30. package/dist/chunks/{chunk.RWR732UE.js → chunk.BTCNWAF7.js} +2 -2
  31. package/dist/chunks/{chunk.OL42FMVG.js → chunk.CFDAPGTN.js} +2 -2
  32. package/dist/chunks/{chunk.Z64KWT2C.js → chunk.CK2QKLSZ.js} +3 -3
  33. package/dist/chunks/{chunk.PGHHADBP.js → chunk.D2MANNCI.js} +2 -2
  34. package/dist/chunks/{chunk.76IG5YHO.js → chunk.D2MMGZTK.js} +2 -2
  35. package/dist/chunks/{chunk.TPNNA5EJ.js → chunk.DCGPDI3G.js} +5 -5
  36. package/dist/chunks/{chunk.35V3TAOT.js → chunk.DFABWKX7.js} +18 -9
  37. package/dist/chunks/{chunk.35V3TAOT.js.map → chunk.DFABWKX7.js.map} +2 -2
  38. package/dist/chunks/chunk.DFIN5XP4.js +79 -0
  39. package/dist/chunks/chunk.DFIN5XP4.js.map +7 -0
  40. package/dist/chunks/{chunk.3JMSRQJK.js → chunk.DKV3VFFJ.js} +2 -2
  41. package/dist/chunks/{chunk.UZG5Z5K5.js → chunk.DQCXSZK6.js} +3 -3
  42. package/dist/chunks/{chunk.JFKVBBJL.js → chunk.E7L5W4JG.js} +2 -2
  43. package/dist/chunks/{chunk.IHNV4TAM.js → chunk.EJMSWKH2.js} +2 -2
  44. package/dist/chunks/{chunk.EOI2HN2V.js → chunk.EKJTAHHE.js} +3 -3
  45. package/dist/chunks/{chunk.Y5UFP7EU.js → chunk.F5F6D7BG.js} +2 -2
  46. package/dist/chunks/{chunk.IGUCF6GW.js → chunk.FMFVK662.js} +3 -3
  47. package/dist/chunks/{chunk.2TUCVNJC.js → chunk.FQSDLEDV.js} +4 -4
  48. package/dist/chunks/{chunk.BJEAUL3E.js → chunk.GFWWUBNH.js} +2 -2
  49. package/dist/chunks/{chunk.ZPUFQ2RD.js → chunk.GKNICA2N.js} +2 -2
  50. package/dist/chunks/{chunk.TKLQA23R.js → chunk.GVQYXIOS.js} +2 -2
  51. package/dist/chunks/{chunk.55TZTLUK.js → chunk.H3NH57FA.js} +4 -4
  52. package/dist/chunks/{chunk.HJZAAMXB.js → chunk.HDU3KDGC.js} +2 -2
  53. package/dist/chunks/{chunk.FCIGS2RC.js → chunk.HKKSVYTP.js} +2 -2
  54. package/dist/chunks/{chunk.WXE4XRLL.js → chunk.I5V5TBTQ.js} +2 -2
  55. package/dist/chunks/{chunk.QAYS7O2Y.js → chunk.I6LVCMTE.js} +2 -2
  56. package/dist/chunks/{chunk.DO3GA23K.js → chunk.IREIR6KA.js} +2 -2
  57. package/dist/chunks/{chunk.R2KYTZBW.js → chunk.JCA6F4L6.js} +2 -2
  58. package/dist/chunks/{chunk.FTCHL3OG.js → chunk.JRB7DRBR.js} +2 -2
  59. package/dist/chunks/{chunk.YOMJKVCO.js → chunk.JVBRCOVJ.js} +2 -2
  60. package/dist/chunks/{chunk.FCUWPPKQ.js → chunk.K2RV36N7.js} +3 -3
  61. package/dist/chunks/{chunk.PZQ6FY5U.js → chunk.K2T2YPOW.js} +2 -2
  62. package/dist/chunks/{chunk.XCZKYI7X.js → chunk.K4FEZUZR.js} +3 -3
  63. package/dist/chunks/{chunk.DOVJ2NYX.js → chunk.K5VCK7UZ.js} +2 -2
  64. package/dist/chunks/{chunk.GOJ3XJRJ.js → chunk.KLCOD2FE.js} +2 -2
  65. package/dist/chunks/{chunk.TWSN55TR.js → chunk.KLF642WF.js} +2 -2
  66. package/dist/chunks/{chunk.7EP5ZTF7.js → chunk.KWSECSZM.js} +3 -3
  67. package/dist/chunks/{chunk.EPHFEISY.js → chunk.KXCQ5XRZ.js} +2 -2
  68. package/dist/chunks/{chunk.DZKWV5DQ.js → chunk.LMV4YGVB.js} +120 -16
  69. package/dist/chunks/chunk.LMV4YGVB.js.map +7 -0
  70. package/dist/chunks/{chunk.4PGAJKBN.js → chunk.M2O57JPI.js} +62 -9
  71. package/dist/chunks/chunk.M2O57JPI.js.map +7 -0
  72. package/dist/chunks/{chunk.OLKIPTSC.js → chunk.MFHEVD4S.js} +2 -2
  73. package/dist/chunks/{chunk.XLYYPHHP.js → chunk.MR76FVEC.js} +2 -2
  74. package/dist/chunks/{chunk.KG73YUXI.js → chunk.NL3RUWYS.js} +49 -1
  75. package/dist/chunks/chunk.NL3RUWYS.js.map +7 -0
  76. package/dist/chunks/{chunk.U6XHWGZM.js → chunk.NMQPRI52.js} +2 -2
  77. package/dist/chunks/{chunk.6WCLRSET.js → chunk.NQEEDGN5.js} +2 -2
  78. package/dist/chunks/{chunk.NPFEOHCN.js → chunk.O3P7J6GS.js} +3 -3
  79. package/dist/chunks/chunk.OI3HOOCT.js +13 -0
  80. package/dist/chunks/chunk.OI3HOOCT.js.map +7 -0
  81. package/dist/chunks/chunk.OJ3N7TWP.js +33 -0
  82. package/dist/chunks/{chunk.XNP4OTUB.js.map → chunk.OJ3N7TWP.js.map} +2 -2
  83. package/dist/chunks/{chunk.POIOBP3S.js → chunk.PBI2JGUC.js} +2 -2
  84. package/dist/chunks/{chunk.BCFYNMAU.js → chunk.PECLVBE7.js} +2 -2
  85. package/dist/chunks/{chunk.JQ47GWDL.js → chunk.PKYC7QF3.js} +6 -1
  86. package/dist/chunks/chunk.PKYC7QF3.js.map +7 -0
  87. package/dist/chunks/{chunk.MFRK7XY4.js → chunk.PUXBRQLH.js} +5 -5
  88. package/dist/chunks/{chunk.MFRK7XY4.js.map → chunk.PUXBRQLH.js.map} +2 -2
  89. package/dist/chunks/{chunk.HIZKWLLW.js → chunk.QCV5J2JX.js} +2 -2
  90. package/dist/chunks/{chunk.D24PTVEZ.js → chunk.QDOITOS2.js} +27 -28
  91. package/dist/chunks/chunk.QDOITOS2.js.map +7 -0
  92. package/dist/chunks/{chunk.V7JOPWCO.js → chunk.RI6XEQMR.js} +2 -2
  93. package/dist/chunks/{chunk.GBT6AEES.js → chunk.RV7BELAO.js} +3 -3
  94. package/dist/chunks/{chunk.NMSCOKGV.js → chunk.S5GTUR3T.js} +4 -4
  95. package/dist/chunks/{chunk.72ZCVZDZ.js → chunk.SYIBDFRD.js} +2 -2
  96. package/dist/chunks/{chunk.WIAHBHLK.js → chunk.SZHPXI4D.js} +2 -2
  97. package/dist/chunks/{chunk.3YWKK5QT.js → chunk.TD7N3L4O.js} +2 -2
  98. package/dist/chunks/{chunk.5ZLNQUWS.js → chunk.TQ6W2TC6.js} +2 -2
  99. package/dist/chunks/{chunk.LK3JVI46.js → chunk.TRCRLTVG.js} +2 -2
  100. package/dist/chunks/{chunk.XR2QY6WP.js → chunk.U47WJHSG.js} +2 -2
  101. package/dist/chunks/{chunk.HFFNFJBK.js → chunk.UI7YG4DD.js} +3 -3
  102. package/dist/chunks/{chunk.J2OXSQAK.js → chunk.UREJSW6U.js} +9 -8
  103. package/dist/chunks/{chunk.J2OXSQAK.js.map → chunk.UREJSW6U.js.map} +2 -2
  104. package/dist/chunks/{chunk.Y3XTCSYB.js → chunk.VBPJP47S.js} +6 -6
  105. package/dist/chunks/{chunk.QO264LN5.js → chunk.VHBHYODZ.js} +2 -2
  106. package/dist/chunks/{chunk.CSR3GSAM.js → chunk.VN7RN2HU.js} +2 -2
  107. package/dist/chunks/{chunk.YF66NQJL.js → chunk.VSJELW2C.js} +3 -3
  108. package/dist/chunks/{chunk.TM5GI342.js → chunk.VSM3FPJC.js} +2 -2
  109. package/dist/chunks/{chunk.XTPT3AVO.js → chunk.WEXZUPCC.js} +35 -6
  110. package/dist/chunks/{chunk.XTPT3AVO.js.map → chunk.WEXZUPCC.js.map} +2 -2
  111. package/dist/chunks/{chunk.VGEA67UG.js → chunk.WOJ2VRZY.js} +3 -2
  112. package/dist/chunks/chunk.WOJ2VRZY.js.map +7 -0
  113. package/dist/chunks/{chunk.NGI67WXT.js → chunk.XOXVVU5C.js} +19 -1
  114. package/dist/chunks/{chunk.NGI67WXT.js.map → chunk.XOXVVU5C.js.map} +2 -2
  115. package/dist/chunks/{chunk.OLHSSK2R.js → chunk.YBCKQJK4.js} +9 -7
  116. package/dist/chunks/chunk.YBCKQJK4.js.map +7 -0
  117. package/dist/chunks/{chunk.FXRKY42H.js → chunk.YJFYAORA.js} +3 -3
  118. package/dist/chunks/{chunk.GWR5CLX2.js → chunk.ZRDGMIA7.js} +2 -2
  119. package/dist/chunks/{chunk.3UKLIZPQ.js → chunk.ZY4RYTIT.js} +2 -2
  120. package/dist/components/accordion/accordion.component.js +2 -2
  121. package/dist/components/accordion/accordion.js +3 -3
  122. package/dist/components/alert/alert.component.d.ts +12 -1
  123. package/dist/components/alert/alert.component.js +5 -5
  124. package/dist/components/alert/alert.js +6 -6
  125. package/dist/components/alert/alert.styles.js +1 -1
  126. package/dist/components/badge/badge.component.js +2 -2
  127. package/dist/components/badge/badge.js +3 -3
  128. package/dist/components/breadcrumb/breadcrumb.component.js +3 -3
  129. package/dist/components/breadcrumb/breadcrumb.js +4 -4
  130. package/dist/components/breadcrumb-item/breadcrumb-item.component.js +2 -2
  131. package/dist/components/breadcrumb-item/breadcrumb-item.js +3 -3
  132. package/dist/components/button/button.component.js +4 -4
  133. package/dist/components/button/button.js +5 -5
  134. package/dist/components/button-group/button-group.component.js +2 -2
  135. package/dist/components/button-group/button-group.js +3 -3
  136. package/dist/components/card/card.component.js +2 -2
  137. package/dist/components/card/card.js +3 -3
  138. package/dist/components/checkbox/checkbox.component.js +3 -3
  139. package/dist/components/checkbox/checkbox.js +4 -4
  140. package/dist/components/combobox/combobox.component.js +5 -5
  141. package/dist/components/combobox/combobox.js +6 -6
  142. package/dist/components/combobox/combobox.styles.js +1 -1
  143. package/dist/components/details/details.component.js +3 -3
  144. package/dist/components/details/details.js +4 -4
  145. package/dist/components/dialog/dialog.component.js +4 -4
  146. package/dist/components/dialog/dialog.js +5 -5
  147. package/dist/components/divider/divider.component.js +2 -2
  148. package/dist/components/divider/divider.js +3 -3
  149. package/dist/components/drawer/drawer.component.js +4 -4
  150. package/dist/components/drawer/drawer.js +5 -5
  151. package/dist/components/dropdown/dropdown.component.js +3 -3
  152. package/dist/components/dropdown/dropdown.js +4 -4
  153. package/dist/components/file/file.component.js +5 -5
  154. package/dist/components/file/file.js +6 -6
  155. package/dist/components/header/header.component.js +4 -4
  156. package/dist/components/header/header.js +5 -5
  157. package/dist/components/icon/icon.component.js +2 -2
  158. package/dist/components/icon/icon.js +3 -3
  159. package/dist/components/icon-button/icon-button.component.js +3 -3
  160. package/dist/components/icon-button/icon-button.js +4 -4
  161. package/dist/components/input/input.component.js +4 -4
  162. package/dist/components/input/input.js +5 -5
  163. package/dist/components/menu/menu.component.js +2 -2
  164. package/dist/components/menu/menu.js +3 -3
  165. package/dist/components/menu-item/menu-item.component.js +5 -5
  166. package/dist/components/menu-item/menu-item.js +6 -6
  167. package/dist/components/menu-label/menu-label.component.js +3 -3
  168. package/dist/components/menu-label/menu-label.js +4 -4
  169. package/dist/components/nav-item/nav-item.component.d.ts +4 -2
  170. package/dist/components/nav-item/nav-item.component.js +4 -4
  171. package/dist/components/nav-item/nav-item.js +5 -5
  172. package/dist/components/nav-item/nav-item.styles.js +1 -1
  173. package/dist/components/optgroup/optgroup.component.js +3 -3
  174. package/dist/components/optgroup/optgroup.js +4 -4
  175. package/dist/components/option/option.component.js +3 -3
  176. package/dist/components/option/option.js +4 -4
  177. package/dist/components/popup/popup.component.js +2 -2
  178. package/dist/components/popup/popup.js +3 -3
  179. package/dist/components/prio-nav/prio-nav.component.js +10 -10
  180. package/dist/components/prio-nav/prio-nav.js +11 -11
  181. package/dist/components/prio-nav/utils.d.ts +10 -0
  182. package/dist/components/prio-nav/utils.js +7 -3
  183. package/dist/components/progress-bar/progress-bar.component.js +2 -2
  184. package/dist/components/progress-bar/progress-bar.js +3 -3
  185. package/dist/components/progress-ring/progress-ring.component.js +2 -2
  186. package/dist/components/progress-ring/progress-ring.js +3 -3
  187. package/dist/components/radio/radio.component.js +3 -3
  188. package/dist/components/radio/radio.js +4 -4
  189. package/dist/components/radio-button/radio-button.component.js +2 -2
  190. package/dist/components/radio-button/radio-button.js +3 -3
  191. package/dist/components/radio-group/radio-group.component.js +3 -3
  192. package/dist/components/radio-group/radio-group.js +4 -4
  193. package/dist/components/range/range.component.js +5 -5
  194. package/dist/components/range/range.js +6 -6
  195. package/dist/components/range-tick/range-tick.component.js +2 -2
  196. package/dist/components/range-tick/range-tick.js +3 -3
  197. package/dist/components/resize-observer/resize-observer.component.d.ts +37 -0
  198. package/dist/components/resize-observer/resize-observer.component.js +11 -0
  199. package/dist/components/resize-observer/resize-observer.component.js.map +7 -0
  200. package/dist/components/resize-observer/resize-observer.styles.d.ts +8 -0
  201. package/dist/components/resize-observer/resize-observer.styles.js +8 -0
  202. package/dist/components/resize-observer/resize-observer.styles.js.map +7 -0
  203. package/dist/components/select/select.component.js +8 -8
  204. package/dist/components/select/select.js +9 -9
  205. package/dist/components/select/select.styles.js +1 -1
  206. package/dist/components/side-nav/side-nav.component.js +6 -6
  207. package/dist/components/side-nav/side-nav.js +7 -7
  208. package/dist/components/spinner/spinner.component.js +2 -2
  209. package/dist/components/spinner/spinner.js +3 -3
  210. package/dist/components/switch/switch.component.js +3 -3
  211. package/dist/components/switch/switch.js +4 -4
  212. package/dist/components/tab/tab.component.js +4 -4
  213. package/dist/components/tab/tab.js +5 -5
  214. package/dist/components/tab-group/tab-group.component.d.ts +15 -0
  215. package/dist/components/tab-group/tab-group.component.js +8 -6
  216. package/dist/components/tab-group/tab-group.custom.styles.js +1 -1
  217. package/dist/components/tab-group/tab-group.js +9 -7
  218. package/dist/components/tab-group/tab-group.styles.js +1 -1
  219. package/dist/components/tab-panel/tab-panel.component.js +2 -2
  220. package/dist/components/tab-panel/tab-panel.js +3 -3
  221. package/dist/components/tag/tag.component.js +5 -5
  222. package/dist/components/tag/tag.js +6 -6
  223. package/dist/components/textarea/textarea.component.js +2 -2
  224. package/dist/components/textarea/textarea.js +3 -3
  225. package/dist/components/tooltip/tooltip.component.js +4 -4
  226. package/dist/components/tooltip/tooltip.js +5 -5
  227. package/dist/custom-elements.json +233 -6
  228. package/dist/events/events.d.ts +1 -0
  229. package/dist/events/syn-after-hide.d.ts +3 -0
  230. package/dist/events/syn-after-show.d.ts +3 -0
  231. package/dist/events/syn-blur.d.ts +3 -0
  232. package/dist/events/syn-change.d.ts +3 -0
  233. package/dist/events/syn-clear.d.ts +3 -0
  234. package/dist/events/syn-close.d.ts +3 -0
  235. package/dist/events/syn-error.d.ts +3 -0
  236. package/dist/events/syn-focus.d.ts +3 -0
  237. package/dist/events/syn-hide.d.ts +3 -0
  238. package/dist/events/syn-initial-focus.d.ts +3 -0
  239. package/dist/events/syn-input.d.ts +3 -0
  240. package/dist/events/syn-invalid.d.ts +3 -0
  241. package/dist/events/syn-load.d.ts +3 -0
  242. package/dist/events/syn-remove.d.ts +3 -0
  243. package/dist/events/syn-reposition.d.ts +3 -0
  244. package/dist/events/syn-request-close.d.ts +3 -0
  245. package/dist/events/syn-resize.d.ts +17 -0
  246. package/dist/events/syn-select.d.ts +3 -0
  247. package/dist/events/syn-show.d.ts +3 -0
  248. package/dist/events/syn-tab-hide.d.ts +3 -0
  249. package/dist/events/syn-tab-show.d.ts +3 -0
  250. package/dist/internal/scrollend-polyfill.d.ts +7 -0
  251. package/dist/internal/synergy-element.d.ts +4 -0
  252. package/dist/styles/index.css +1 -1
  253. package/dist/synergy.js +109 -107
  254. package/dist/vscode.html-custom-data.json +22 -0
  255. package/package.json +22 -22
  256. package/dist/chunks/chunk.4AN73MGZ.js.map +0 -7
  257. package/dist/chunks/chunk.4PGAJKBN.js.map +0 -7
  258. package/dist/chunks/chunk.D24PTVEZ.js.map +0 -7
  259. package/dist/chunks/chunk.DZKWV5DQ.js.map +0 -7
  260. package/dist/chunks/chunk.FR3XPGUO.js.map +0 -7
  261. package/dist/chunks/chunk.H45DUC5P.js.map +0 -7
  262. package/dist/chunks/chunk.JQ47GWDL.js.map +0 -7
  263. package/dist/chunks/chunk.KG73YUXI.js.map +0 -7
  264. package/dist/chunks/chunk.OLHSSK2R.js.map +0 -7
  265. package/dist/chunks/chunk.QUPQJL7I.js.map +0 -7
  266. package/dist/chunks/chunk.VGEA67UG.js.map +0 -7
  267. package/dist/chunks/chunk.XNP4OTUB.js +0 -16
  268. /package/dist/chunks/{chunk.RWH4QWJJ.js.map → chunk.2CO2NVIH.js.map} +0 -0
  269. /package/dist/chunks/{chunk.PDM2RKUO.js.map → chunk.2FDAY6KG.js.map} +0 -0
  270. /package/dist/chunks/{chunk.ILKUAKHV.js.map → chunk.3EY2CJGW.js.map} +0 -0
  271. /package/dist/chunks/{chunk.SYLH7TJL.js.map → chunk.3FJLLXCR.js.map} +0 -0
  272. /package/dist/chunks/{chunk.IYEDBX5G.js.map → chunk.3MVTZZBQ.js.map} +0 -0
  273. /package/dist/chunks/{chunk.YIVSAOEK.js.map → chunk.3UFTX7XQ.js.map} +0 -0
  274. /package/dist/chunks/{chunk.AFFGPKYQ.js.map → chunk.4IRHZEL2.js.map} +0 -0
  275. /package/dist/chunks/{chunk.XXR6SBCQ.js.map → chunk.4P3FPYGQ.js.map} +0 -0
  276. /package/dist/chunks/{chunk.IBDQRF55.js.map → chunk.5SNUBQQN.js.map} +0 -0
  277. /package/dist/chunks/{chunk.F3BB6LK2.js.map → chunk.5WTQAMIT.js.map} +0 -0
  278. /package/dist/chunks/{chunk.DQGFMBAC.js.map → chunk.64U5DPTH.js.map} +0 -0
  279. /package/dist/chunks/{chunk.DUEOMPTT.js.map → chunk.67C446DF.js.map} +0 -0
  280. /package/dist/chunks/{chunk.ROA65NK6.js.map → chunk.6O33XJ3X.js.map} +0 -0
  281. /package/dist/chunks/{chunk.J36KWNPW.js.map → chunk.6OJJ5EQC.js.map} +0 -0
  282. /package/dist/chunks/{chunk.E4FLL46W.js.map → chunk.6QDXFWNX.js.map} +0 -0
  283. /package/dist/chunks/{chunk.OZDWNWBK.js.map → chunk.74JAW3N4.js.map} +0 -0
  284. /package/dist/chunks/{chunk.UENWCJJ4.js.map → chunk.A5E262NR.js.map} +0 -0
  285. /package/dist/chunks/{chunk.TUTGCZ2F.js.map → chunk.AA7UYQAJ.js.map} +0 -0
  286. /package/dist/chunks/{chunk.VWULHIO4.js.map → chunk.AJA3OIOC.js.map} +0 -0
  287. /package/dist/chunks/{chunk.F6LIDG2Y.js.map → chunk.AONXQRGV.js.map} +0 -0
  288. /package/dist/chunks/{chunk.3FTQ2AYW.js.map → chunk.BOKB2LEP.js.map} +0 -0
  289. /package/dist/chunks/{chunk.RWR732UE.js.map → chunk.BTCNWAF7.js.map} +0 -0
  290. /package/dist/chunks/{chunk.OL42FMVG.js.map → chunk.CFDAPGTN.js.map} +0 -0
  291. /package/dist/chunks/{chunk.Z64KWT2C.js.map → chunk.CK2QKLSZ.js.map} +0 -0
  292. /package/dist/chunks/{chunk.PGHHADBP.js.map → chunk.D2MANNCI.js.map} +0 -0
  293. /package/dist/chunks/{chunk.76IG5YHO.js.map → chunk.D2MMGZTK.js.map} +0 -0
  294. /package/dist/chunks/{chunk.TPNNA5EJ.js.map → chunk.DCGPDI3G.js.map} +0 -0
  295. /package/dist/chunks/{chunk.3JMSRQJK.js.map → chunk.DKV3VFFJ.js.map} +0 -0
  296. /package/dist/chunks/{chunk.UZG5Z5K5.js.map → chunk.DQCXSZK6.js.map} +0 -0
  297. /package/dist/chunks/{chunk.JFKVBBJL.js.map → chunk.E7L5W4JG.js.map} +0 -0
  298. /package/dist/chunks/{chunk.IHNV4TAM.js.map → chunk.EJMSWKH2.js.map} +0 -0
  299. /package/dist/chunks/{chunk.EOI2HN2V.js.map → chunk.EKJTAHHE.js.map} +0 -0
  300. /package/dist/chunks/{chunk.Y5UFP7EU.js.map → chunk.F5F6D7BG.js.map} +0 -0
  301. /package/dist/chunks/{chunk.IGUCF6GW.js.map → chunk.FMFVK662.js.map} +0 -0
  302. /package/dist/chunks/{chunk.2TUCVNJC.js.map → chunk.FQSDLEDV.js.map} +0 -0
  303. /package/dist/chunks/{chunk.BJEAUL3E.js.map → chunk.GFWWUBNH.js.map} +0 -0
  304. /package/dist/chunks/{chunk.ZPUFQ2RD.js.map → chunk.GKNICA2N.js.map} +0 -0
  305. /package/dist/chunks/{chunk.TKLQA23R.js.map → chunk.GVQYXIOS.js.map} +0 -0
  306. /package/dist/chunks/{chunk.55TZTLUK.js.map → chunk.H3NH57FA.js.map} +0 -0
  307. /package/dist/chunks/{chunk.HJZAAMXB.js.map → chunk.HDU3KDGC.js.map} +0 -0
  308. /package/dist/chunks/{chunk.FCIGS2RC.js.map → chunk.HKKSVYTP.js.map} +0 -0
  309. /package/dist/chunks/{chunk.WXE4XRLL.js.map → chunk.I5V5TBTQ.js.map} +0 -0
  310. /package/dist/chunks/{chunk.QAYS7O2Y.js.map → chunk.I6LVCMTE.js.map} +0 -0
  311. /package/dist/chunks/{chunk.DO3GA23K.js.map → chunk.IREIR6KA.js.map} +0 -0
  312. /package/dist/chunks/{chunk.R2KYTZBW.js.map → chunk.JCA6F4L6.js.map} +0 -0
  313. /package/dist/chunks/{chunk.FTCHL3OG.js.map → chunk.JRB7DRBR.js.map} +0 -0
  314. /package/dist/chunks/{chunk.YOMJKVCO.js.map → chunk.JVBRCOVJ.js.map} +0 -0
  315. /package/dist/chunks/{chunk.FCUWPPKQ.js.map → chunk.K2RV36N7.js.map} +0 -0
  316. /package/dist/chunks/{chunk.PZQ6FY5U.js.map → chunk.K2T2YPOW.js.map} +0 -0
  317. /package/dist/chunks/{chunk.XCZKYI7X.js.map → chunk.K4FEZUZR.js.map} +0 -0
  318. /package/dist/chunks/{chunk.DOVJ2NYX.js.map → chunk.K5VCK7UZ.js.map} +0 -0
  319. /package/dist/chunks/{chunk.GOJ3XJRJ.js.map → chunk.KLCOD2FE.js.map} +0 -0
  320. /package/dist/chunks/{chunk.TWSN55TR.js.map → chunk.KLF642WF.js.map} +0 -0
  321. /package/dist/chunks/{chunk.7EP5ZTF7.js.map → chunk.KWSECSZM.js.map} +0 -0
  322. /package/dist/chunks/{chunk.EPHFEISY.js.map → chunk.KXCQ5XRZ.js.map} +0 -0
  323. /package/dist/chunks/{chunk.OLKIPTSC.js.map → chunk.MFHEVD4S.js.map} +0 -0
  324. /package/dist/chunks/{chunk.XLYYPHHP.js.map → chunk.MR76FVEC.js.map} +0 -0
  325. /package/dist/chunks/{chunk.U6XHWGZM.js.map → chunk.NMQPRI52.js.map} +0 -0
  326. /package/dist/chunks/{chunk.6WCLRSET.js.map → chunk.NQEEDGN5.js.map} +0 -0
  327. /package/dist/chunks/{chunk.NPFEOHCN.js.map → chunk.O3P7J6GS.js.map} +0 -0
  328. /package/dist/chunks/{chunk.POIOBP3S.js.map → chunk.PBI2JGUC.js.map} +0 -0
  329. /package/dist/chunks/{chunk.BCFYNMAU.js.map → chunk.PECLVBE7.js.map} +0 -0
  330. /package/dist/chunks/{chunk.HIZKWLLW.js.map → chunk.QCV5J2JX.js.map} +0 -0
  331. /package/dist/chunks/{chunk.V7JOPWCO.js.map → chunk.RI6XEQMR.js.map} +0 -0
  332. /package/dist/chunks/{chunk.GBT6AEES.js.map → chunk.RV7BELAO.js.map} +0 -0
  333. /package/dist/chunks/{chunk.NMSCOKGV.js.map → chunk.S5GTUR3T.js.map} +0 -0
  334. /package/dist/chunks/{chunk.72ZCVZDZ.js.map → chunk.SYIBDFRD.js.map} +0 -0
  335. /package/dist/chunks/{chunk.WIAHBHLK.js.map → chunk.SZHPXI4D.js.map} +0 -0
  336. /package/dist/chunks/{chunk.3YWKK5QT.js.map → chunk.TD7N3L4O.js.map} +0 -0
  337. /package/dist/chunks/{chunk.5ZLNQUWS.js.map → chunk.TQ6W2TC6.js.map} +0 -0
  338. /package/dist/chunks/{chunk.LK3JVI46.js.map → chunk.TRCRLTVG.js.map} +0 -0
  339. /package/dist/chunks/{chunk.XR2QY6WP.js.map → chunk.U47WJHSG.js.map} +0 -0
  340. /package/dist/chunks/{chunk.HFFNFJBK.js.map → chunk.UI7YG4DD.js.map} +0 -0
  341. /package/dist/chunks/{chunk.Y3XTCSYB.js.map → chunk.VBPJP47S.js.map} +0 -0
  342. /package/dist/chunks/{chunk.QO264LN5.js.map → chunk.VHBHYODZ.js.map} +0 -0
  343. /package/dist/chunks/{chunk.CSR3GSAM.js.map → chunk.VN7RN2HU.js.map} +0 -0
  344. /package/dist/chunks/{chunk.YF66NQJL.js.map → chunk.VSJELW2C.js.map} +0 -0
  345. /package/dist/chunks/{chunk.TM5GI342.js.map → chunk.VSM3FPJC.js.map} +0 -0
  346. /package/dist/chunks/{chunk.FXRKY42H.js.map → chunk.YJFYAORA.js.map} +0 -0
  347. /package/dist/chunks/{chunk.GWR5CLX2.js.map → chunk.ZRDGMIA7.js.map} +0 -0
  348. /package/dist/chunks/{chunk.3UKLIZPQ.js.map → chunk.ZY4RYTIT.js.map} +0 -0
@@ -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 readonly localize = new LocalizeController(this);\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\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 }\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 this.resizeObserver?.unobserve(this.nav);\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.matches(':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.matches(':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
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynIconButton
3
- } from "./chunk.TUTGCZ2F.js";
3
+ } from "./chunk.AA7UYQAJ.js";
4
4
  import {
5
5
  waitForEvent
6
6
  } from "./chunk.C2ENQBPM.js";
@@ -24,13 +24,13 @@ import {
24
24
  import {
25
25
  SynergyElement,
26
26
  component_styles_default
27
- } from "./chunk.XTPT3AVO.js";
27
+ } from "./chunk.WEXZUPCC.js";
28
28
  import {
29
29
  alert_custom_styles_default
30
30
  } from "./chunk.JRYXECAY.js";
31
31
  import {
32
32
  alert_styles_default
33
- } from "./chunk.KG73YUXI.js";
33
+ } from "./chunk.NL3RUWYS.js";
34
34
  import {
35
35
  __decorateClass
36
36
  } from "./chunk.2GFK6XTO.js";
@@ -38,7 +38,7 @@ import {
38
38
  // src/components/alert/alert.component.ts
39
39
  import { classMap } from "lit/directives/class-map.js";
40
40
  import { html } from "lit";
41
- import { property, query } from "lit/decorators.js";
41
+ import { property, query, state } from "lit/decorators.js";
42
42
  var toastStack = Object.assign(document.createElement("div"), { className: "syn-toast-stack" });
43
43
  var SynAlert = class extends SynergyElement {
44
44
  constructor() {
@@ -49,22 +49,53 @@ var SynAlert = class extends SynergyElement {
49
49
  this.closable = false;
50
50
  this.variant = "primary";
51
51
  this.duration = Infinity;
52
+ this.remainingTime = this.duration;
52
53
  }
53
54
  firstUpdated() {
54
55
  this.base.hidden = !this.open;
55
56
  }
56
57
  restartAutoHide() {
58
+ this.handleCountdownChange();
57
59
  clearTimeout(this.autoHideTimeout);
60
+ clearInterval(this.remainingTimeInterval);
58
61
  if (this.open && this.duration < Infinity) {
59
62
  this.autoHideTimeout = window.setTimeout(() => this.hide(), this.duration);
63
+ this.remainingTime = this.duration;
64
+ this.remainingTimeInterval = window.setInterval(() => {
65
+ this.remainingTime -= 100;
66
+ }, 100);
67
+ }
68
+ }
69
+ pauseAutoHide() {
70
+ var _a;
71
+ (_a = this.countdownAnimation) == null ? void 0 : _a.pause();
72
+ clearTimeout(this.autoHideTimeout);
73
+ clearInterval(this.remainingTimeInterval);
74
+ }
75
+ resumeAutoHide() {
76
+ var _a;
77
+ if (this.duration < Infinity) {
78
+ this.autoHideTimeout = window.setTimeout(() => this.hide(), this.remainingTime);
79
+ this.remainingTimeInterval = window.setInterval(() => {
80
+ this.remainingTime -= 100;
81
+ }, 100);
82
+ (_a = this.countdownAnimation) == null ? void 0 : _a.play();
83
+ }
84
+ }
85
+ handleCountdownChange() {
86
+ if (this.open && this.duration < Infinity && this.countdown) {
87
+ const { countdownElement } = this;
88
+ const start = "100%";
89
+ const end = "0";
90
+ this.countdownAnimation = countdownElement.animate([{ width: start }, { width: end }], {
91
+ duration: this.duration,
92
+ easing: "linear"
93
+ });
60
94
  }
61
95
  }
62
96
  handleCloseClick() {
63
97
  this.hide();
64
98
  }
65
- handleMouseMove() {
66
- this.restartAutoHide();
67
- }
68
99
  async handleOpenChange() {
69
100
  if (this.open) {
70
101
  this.emit("syn-show");
@@ -79,6 +110,7 @@ var SynAlert = class extends SynergyElement {
79
110
  } else {
80
111
  this.emit("syn-hide");
81
112
  clearTimeout(this.autoHideTimeout);
113
+ clearInterval(this.remainingTimeInterval);
82
114
  await stopAnimations(this.base);
83
115
  const { keyframes, options } = getAnimation(this, "alert.hide", { dir: this.localize.dir() });
84
116
  await animateTo(this.base, keyframes, options);
@@ -112,6 +144,7 @@ var SynAlert = class extends SynergyElement {
112
144
  */
113
145
  async toast() {
114
146
  return new Promise((resolve) => {
147
+ this.handleCountdownChange();
115
148
  if (toastStack.parentElement === null) {
116
149
  document.body.append(toastStack);
117
150
  }
@@ -150,7 +183,8 @@ var SynAlert = class extends SynergyElement {
150
183
  })}
151
184
  role="alert"
152
185
  aria-hidden=${this.open ? "false" : "true"}
153
- @mousemove=${this.handleMouseMove}
186
+ @mouseenter=${this.pauseAutoHide}
187
+ @mouseleave=${this.resumeAutoHide}
154
188
  >
155
189
  <div part="icon" class="alert__icon">
156
190
  <slot name="icon"></slot>
@@ -171,6 +205,19 @@ var SynAlert = class extends SynergyElement {
171
205
  @click=${this.handleCloseClick}
172
206
  ></syn-icon-button>
173
207
  ` : ""}
208
+
209
+ <div role="timer" class="alert__timer">${this.remainingTime}</div>
210
+
211
+ ${this.countdown ? html`
212
+ <div
213
+ class=${classMap({
214
+ alert__countdown: true,
215
+ "alert__countdown--ltr": this.countdown === "ltr"
216
+ })}
217
+ >
218
+ <div class="alert__countdown-elapsed"></div>
219
+ </div>
220
+ ` : ""}
174
221
  </div>
175
222
  `;
176
223
  }
@@ -180,6 +227,9 @@ SynAlert.dependencies = { "syn-icon-button": SynIconButton };
180
227
  __decorateClass([
181
228
  query('[part~="base"]')
182
229
  ], SynAlert.prototype, "base", 2);
230
+ __decorateClass([
231
+ query(".alert__countdown-elapsed")
232
+ ], SynAlert.prototype, "countdownElement", 2);
183
233
  __decorateClass([
184
234
  property({ type: Boolean, reflect: true })
185
235
  ], SynAlert.prototype, "open", 2);
@@ -192,6 +242,9 @@ __decorateClass([
192
242
  __decorateClass([
193
243
  property({ type: Number })
194
244
  ], SynAlert.prototype, "duration", 2);
245
+ __decorateClass([
246
+ state()
247
+ ], SynAlert.prototype, "remainingTime", 2);
195
248
  __decorateClass([
196
249
  watch("open", { waitUntilFirstUpdate: true })
197
250
  ], SynAlert.prototype, "handleOpenChange", 1);
@@ -216,4 +269,4 @@ setDefaultAnimation("alert.hide", {
216
269
  export {
217
270
  SynAlert
218
271
  };
219
- //# sourceMappingURL=chunk.4PGAJKBN.js.map
272
+ //# sourceMappingURL=chunk.M2O57JPI.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/alert/alert.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 */\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 { LocalizeController } from '../../utilities/localize.js';\nimport { property, query, state } from 'lit/decorators.js';\nimport { waitForEvent } from '../../internal/event.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 styles from './alert.styles.js';\nimport customStyles from './alert.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\n\nconst toastStack = Object.assign(document.createElement('div'), { className: 'syn-toast-stack' });\n\n/**\n * @summary Alerts are used to display important messages inline or as toast notifications.\n * @documentation https://synergy.style/components/alert\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon-button\n *\n * @slot - The alert's main content.\n * @slot icon - An icon to show in the alert. Works best with `<syn-icon>`.\n *\n * @event syn-show - Emitted when the alert opens.\n * @event syn-after-show - Emitted after the alert opens and all animations are complete.\n * @event syn-hide - Emitted when the alert closes.\n * @event syn-after-hide - Emitted after the alert closes and all animations are complete.\n *\n * @csspart base - The component's base wrapper.\n * @csspart icon - The container that wraps the optional icon.\n * @csspart message - The container that wraps the alert's main content.\n * @csspart close-button - The close button, an `<syn-icon-button>`.\n * @csspart close-button__base - The close button's exported `base` part.\n *\n * @animation alert.show - The animation to use when showing the alert.\n * @animation alert.hide - The animation to use when hiding the alert.\n */\nexport default class SynAlert extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles, customStyles];\n static dependencies = { 'syn-icon-button': SynIconButton };\n\n private autoHideTimeout: number;\n private remainingTimeInterval: number;\n private countdownAnimation?: Animation;\n private readonly hasSlotController = new HasSlotController(this, 'icon', 'suffix');\n private readonly localize = new LocalizeController(this);\n\n @query('[part~=\"base\"]') base: HTMLElement;\n\n @query('.alert__countdown-elapsed') countdownElement: HTMLElement;\n\n /**\n * Indicates whether or not the alert is open. You can toggle this attribute to show and hide the alert, or you can\n * use the `show()` and `hide()` methods and this attribute will reflect the alert's open state.\n */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /** Enables a close button that allows the user to dismiss the alert. */\n @property({ type: Boolean, reflect: true }) closable = false;\n\n /** The alert's theme variant. */\n @property({ reflect: true }) variant: 'primary' | 'success' | 'neutral' | 'warning' | 'danger' = 'primary';\n\n /**\n * The length of time, in milliseconds, the alert will show before closing itself. If the user interacts with\n * the alert before it closes (e.g. moves the mouse over it), the timer will restart. Defaults to `Infinity`, meaning\n * the alert will not close on its own.\n */\n @property({ type: Number }) duration = Infinity;\n\n /**\n * Enables a countdown that indicates the remaining time the alert will be displayed.\n * Typically used to indicate the remaining time before a whole app refresh.\n */\n private countdown? : 'rtl' | 'ltr';\n\n @state() private remainingTime = this.duration;\n\n firstUpdated() {\n this.base.hidden = !this.open;\n }\n\n private restartAutoHide() {\n this.handleCountdownChange();\n clearTimeout(this.autoHideTimeout);\n clearInterval(this.remainingTimeInterval);\n if (this.open && this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(() => this.hide(), this.duration);\n this.remainingTime = this.duration;\n this.remainingTimeInterval = window.setInterval(() => {\n this.remainingTime -= 100;\n }, 100);\n }\n }\n\n private pauseAutoHide() {\n this.countdownAnimation?.pause();\n clearTimeout(this.autoHideTimeout);\n clearInterval(this.remainingTimeInterval);\n }\n\n private resumeAutoHide() {\n if (this.duration < Infinity) {\n this.autoHideTimeout = window.setTimeout(() => this.hide(), this.remainingTime);\n this.remainingTimeInterval = window.setInterval(() => {\n this.remainingTime -= 100;\n }, 100);\n this.countdownAnimation?.play();\n }\n }\n\n private handleCountdownChange() {\n if (this.open && this.duration < Infinity && this.countdown) {\n const { countdownElement } = this;\n const start = '100%';\n const end = '0';\n this.countdownAnimation = countdownElement.animate([{ width: start }, { width: end }], {\n duration: this.duration,\n easing: 'linear'\n });\n }\n }\n\n private handleCloseClick() {\n this.hide();\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n async handleOpenChange() {\n if (this.open) {\n // Show\n this.emit('syn-show');\n\n if (this.duration < Infinity) {\n this.restartAutoHide();\n }\n\n await stopAnimations(this.base);\n this.base.hidden = false;\n const { keyframes, options } = getAnimation(this, 'alert.show', { dir: this.localize.dir() });\n await animateTo(this.base, keyframes, options);\n\n this.emit('syn-after-show');\n } else {\n // Hide\n this.emit('syn-hide');\n\n clearTimeout(this.autoHideTimeout);\n clearInterval(this.remainingTimeInterval);\n\n await stopAnimations(this.base);\n const { keyframes, options } = getAnimation(this, 'alert.hide', { dir: this.localize.dir() });\n await animateTo(this.base, keyframes, options);\n this.base.hidden = true;\n\n this.emit('syn-after-hide');\n }\n }\n\n @watch('duration')\n handleDurationChange() {\n this.restartAutoHide();\n }\n\n /** Shows the alert. */\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 alert */\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 /**\n * Displays the alert as a toast notification. This will move the alert out of its position in the DOM and, when\n * dismissed, it will be removed from the DOM completely. By storing a reference to the alert, you can reuse it by\n * calling this method again. The returned promise will resolve after the alert is hidden.\n */\n async toast() {\n return new Promise<void>(resolve => {\n this.handleCountdownChange();\n if (toastStack.parentElement === null) {\n document.body.append(toastStack);\n }\n\n toastStack.appendChild(this);\n\n // Wait for the toast stack to render\n requestAnimationFrame(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions -- force a reflow for the initial transition\n this.clientWidth;\n this.show();\n });\n\n this.addEventListener(\n 'syn-after-hide',\n () => {\n toastStack.removeChild(this);\n resolve();\n\n // Remove the toast stack from the DOM when there are no more alerts\n if (toastStack.querySelector('syn-alert') === null) {\n toastStack.remove();\n }\n },\n { once: true }\n );\n });\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n alert: true,\n 'alert--open': this.open,\n 'alert--closable': this.closable,\n 'alert--has-icon': this.hasSlotController.test('icon'),\n 'alert--primary': this.variant === 'primary',\n 'alert--success': this.variant === 'success',\n 'alert--neutral': this.variant === 'neutral',\n 'alert--warning': this.variant === 'warning',\n 'alert--danger': this.variant === 'danger'\n })}\n role=\"alert\"\n aria-hidden=${this.open ? 'false' : 'true'}\n @mouseenter=${this.pauseAutoHide}\n @mouseleave=${this.resumeAutoHide}\n >\n <div part=\"icon\" class=\"alert__icon\">\n <slot name=\"icon\"></slot>\n </div>\n\n <div part=\"message\" class=\"alert__message\" aria-live=\"polite\">\n <slot></slot>\n </div>\n\n ${this.closable\n ? html`\n <syn-icon-button\n part=\"close-button\"\n exportparts=\"base:close-button__base\"\n class=\"alert__close-button\"\n name=\"x-lg\"\n library=\"system\"\n label=${this.localize.term('close')}\n @click=${this.handleCloseClick}\n ></syn-icon-button>\n `\n : ''}\n\n <div role=\"timer\" class=\"alert__timer\">${this.remainingTime}</div>\n\n ${this.countdown\n ? html`\n <div\n class=${classMap({\n alert__countdown: true,\n 'alert__countdown--ltr': this.countdown === 'ltr'\n })}\n >\n <div class=\"alert__countdown-elapsed\"></div>\n </div>\n `\n : ''}\n </div>\n `;\n }\n}\n\nsetDefaultAnimation('alert.show', {\n keyframes: [\n { opacity: 0, scale: 0.8 },\n { opacity: 1, scale: 1 }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n\nsetDefaultAnimation('alert.hide', {\n keyframes: [\n { opacity: 1, scale: 1 },\n { opacity: 0, scale: 0.8 }\n ],\n options: { duration: 250, easing: 'ease' }\n});\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynBreadcrumb
3
- } from "./chunk.GBT6AEES.js";
3
+ } from "./chunk.RV7BELAO.js";
4
4
 
5
5
  // src/components/breadcrumb/breadcrumb.ts
6
6
  var breadcrumb_default = SynBreadcrumb;
@@ -9,4 +9,4 @@ SynBreadcrumb.define("syn-breadcrumb");
9
9
  export {
10
10
  breadcrumb_default
11
11
  };
12
- //# sourceMappingURL=chunk.OLKIPTSC.js.map
12
+ //# sourceMappingURL=chunk.MFHEVD4S.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynDivider
3
- } from "./chunk.6WCLRSET.js";
3
+ } from "./chunk.NQEEDGN5.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.XLYYPHHP.js.map
12
+ //# sourceMappingURL=chunk.MR76FVEC.js.map
@@ -23,6 +23,7 @@ var alert_styles_default = css`
23
23
  line-height: 1.6;
24
24
  color: var(--syn-color-neutral-700);
25
25
  margin: inherit;
26
+ overflow: hidden;
26
27
  }
27
28
 
28
29
  .alert:not(.alert--has-icon) .alert__icon,
@@ -38,6 +39,10 @@ var alert_styles_default = css`
38
39
  padding-inline-start: var(--syn-spacing-large);
39
40
  }
40
41
 
42
+ .alert--has-countdown {
43
+ border-bottom: none;
44
+ }
45
+
41
46
  .alert__message {
42
47
  flex: 1 1 auto;
43
48
  display: block;
@@ -52,9 +57,52 @@ var alert_styles_default = css`
52
57
  font-size: var(--syn-font-size-medium);
53
58
  padding-inline-end: var(--syn-spacing-medium);
54
59
  }
60
+
61
+ .alert__countdown {
62
+ position: absolute;
63
+ bottom: 0;
64
+ left: 0;
65
+ width: 100%;
66
+ height: calc(var(--syn-panel-border-width) * 3);
67
+ background-color: var(--syn-panel-border-color);
68
+ display: flex;
69
+ }
70
+
71
+ .alert__countdown--ltr {
72
+ justify-content: flex-end;
73
+ }
74
+
75
+ .alert__countdown .alert__countdown-elapsed {
76
+ height: 100%;
77
+ width: 0;
78
+ }
79
+
80
+ .alert--primary .alert__countdown-elapsed {
81
+ background-color: var(--syn-color-primary-600);
82
+ }
83
+
84
+ .alert--success .alert__countdown-elapsed {
85
+ background-color: var(--syn-color-success-600);
86
+ }
87
+
88
+ .alert--neutral .alert__countdown-elapsed {
89
+ background-color: var(--syn-color-neutral-600);
90
+ }
91
+
92
+ .alert--warning .alert__countdown-elapsed {
93
+ background-color: var(--syn-color-warning-600);
94
+ }
95
+
96
+ .alert--danger .alert__countdown-elapsed {
97
+ background-color: var(--syn-color-danger-600);
98
+ }
99
+
100
+ .alert__timer {
101
+ display: none;
102
+ }
55
103
  `;
56
104
 
57
105
  export {
58
106
  alert_styles_default
59
107
  };
60
- //# sourceMappingURL=chunk.KG73YUXI.js.map
108
+ //# sourceMappingURL=chunk.NL3RUWYS.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/alert/alert.styles.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 { css } from 'lit';\n\nexport default css`\n\t/* stylelint-disable */\n :host {\n display: contents;\n\n /* For better DX, we'll reset the margin here so the base part can inherit it */\n margin: 0;\n }\n\n .alert {\n position: relative;\n display: flex;\n align-items: stretch;\n background-color: var(--syn-panel-background-color);\n border: solid var(--syn-panel-border-width) var(--syn-panel-border-color);\n border-top-width: calc(var(--syn-panel-border-width) * 3);\n border-radius: var(--syn-border-radius-medium);\n font-family: var(--syn-font-sans);\n font-size: var(--syn-font-size-small);\n font-weight: var(--syn-font-weight-normal);\n line-height: 1.6;\n color: var(--syn-color-neutral-700);\n margin: inherit;\n overflow: hidden;\n }\n\n .alert:not(.alert--has-icon) .alert__icon,\n .alert:not(.alert--closable) .alert__close-button {\n display: none;\n }\n\n .alert__icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: var(--syn-font-size-large);\n padding-inline-start: var(--syn-spacing-large);\n }\n\n .alert--has-countdown {\n border-bottom: none;\n }\n\n .alert__message {\n flex: 1 1 auto;\n display: block;\n padding: var(--syn-spacing-large);\n overflow: hidden;\n }\n\n .alert__close-button {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n font-size: var(--syn-font-size-medium);\n padding-inline-end: var(--syn-spacing-medium);\n }\n\n .alert__countdown {\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n height: calc(var(--syn-panel-border-width) * 3);\n background-color: var(--syn-panel-border-color);\n display: flex;\n }\n\n .alert__countdown--ltr {\n justify-content: flex-end;\n }\n\n .alert__countdown .alert__countdown-elapsed {\n height: 100%;\n width: 0;\n }\n\n .alert--primary .alert__countdown-elapsed {\n background-color: var(--syn-color-primary-600);\n }\n\n .alert--success .alert__countdown-elapsed {\n background-color: var(--syn-color-success-600);\n }\n\n .alert--neutral .alert__countdown-elapsed {\n background-color: var(--syn-color-neutral-600);\n }\n\n .alert--warning .alert__countdown-elapsed {\n background-color: var(--syn-color-warning-600);\n }\n\n .alert--danger .alert__countdown-elapsed {\n background-color: var(--syn-color-danger-600);\n }\n\n .alert__timer {\n display: none;\n }\n`;\n"],
5
+ "mappings": ";AAQA,SAAS,WAAW;AAEpB,IAAO,uBAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynSelect
3
- } from "./chunk.XXR6SBCQ.js";
3
+ } from "./chunk.4P3FPYGQ.js";
4
4
 
5
5
  // src/components/select/select.ts
6
6
  var select_default = SynSelect;
@@ -9,4 +9,4 @@ SynSelect.define("syn-select");
9
9
  export {
10
10
  select_default
11
11
  };
12
- //# sourceMappingURL=chunk.U6XHWGZM.js.map
12
+ //# sourceMappingURL=chunk.NMQPRI52.js.map
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  SynergyElement,
12
12
  component_styles_default
13
- } from "./chunk.XTPT3AVO.js";
13
+ } from "./chunk.WEXZUPCC.js";
14
14
  import {
15
15
  __decorateClass
16
16
  } from "./chunk.2GFK6XTO.js";
@@ -41,4 +41,4 @@ __decorateClass([
41
41
  export {
42
42
  SynDivider
43
43
  };
44
- //# sourceMappingURL=chunk.6WCLRSET.js.map
44
+ //# sourceMappingURL=chunk.NQEEDGN5.js.map
@@ -6,11 +6,11 @@ import {
6
6
  } from "./chunk.RAOPZXJL.js";
7
7
  import {
8
8
  SynDivider
9
- } from "./chunk.6WCLRSET.js";
9
+ } from "./chunk.NQEEDGN5.js";
10
10
  import {
11
11
  SynergyElement,
12
12
  component_styles_default
13
- } from "./chunk.XTPT3AVO.js";
13
+ } from "./chunk.WEXZUPCC.js";
14
14
 
15
15
  // src/components/menu-label/menu-label.component.ts
16
16
  import { html } from "lit";
@@ -32,4 +32,4 @@ SynMenuLabel.dependencies = {
32
32
  export {
33
33
  SynMenuLabel
34
34
  };
35
- //# sourceMappingURL=chunk.NPFEOHCN.js.map
35
+ //# sourceMappingURL=chunk.O3P7J6GS.js.map
@@ -0,0 +1,13 @@
1
+ // src/components/resize-observer/resize-observer.styles.ts
2
+ import { css } from "lit";
3
+ var resize_observer_styles_default = css`
4
+ /* stylelint-disable */
5
+ :host {
6
+ display: contents;
7
+ }
8
+ `;
9
+
10
+ export {
11
+ resize_observer_styles_default
12
+ };
13
+ //# sourceMappingURL=chunk.OI3HOOCT.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/resize-observer/resize-observer.styles.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 { css } from 'lit';\n\nexport default css`\n\t/* stylelint-disable */\n :host {\n display: contents;\n }\n`;\n"],
5
+ "mappings": ";AAQA,SAAS,WAAW;AAEpB,IAAO,iCAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,33 @@
1
+ // src/components/prio-nav/utils.ts
2
+ var getAssignedElementsForSlot = (slot) => Array.from(
3
+ slot.assignedElements({ flatten: true })
4
+ );
5
+ var isNavItem = (item) => {
6
+ var _a;
7
+ return item.tagName.toLocaleLowerCase() === "syn-nav-item" || ((_a = item.getAttribute("role")) != null ? _a : "") === "menuitem";
8
+ };
9
+ var filterOnlyNavItems = (items) => items.filter(isNavItem);
10
+ var showNavigationItem = (item) => {
11
+ item.setAttribute("horizontal", "true");
12
+ item.removeAttribute("slot");
13
+ item.removeAttribute("tabindex");
14
+ if (item.dataset.originalRole) {
15
+ item.setAttribute("role", item.dataset.originalRole);
16
+ } else {
17
+ item.removeAttribute("role");
18
+ }
19
+ };
20
+ var hideNavigationItem = (item) => {
21
+ item.removeAttribute("horizontal");
22
+ item.setAttribute("slot", "menu");
23
+ item.setAttribute("role", "menuitem");
24
+ };
25
+
26
+ export {
27
+ getAssignedElementsForSlot,
28
+ isNavItem,
29
+ filterOnlyNavItems,
30
+ showNavigationItem,
31
+ hideNavigationItem
32
+ };
33
+ //# sourceMappingURL=chunk.OJ3N7TWP.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/components/prio-nav/utils.ts"],
4
- "sourcesContent": ["import type SynNavItem from '../nav-item/nav-item.component.js';\n\n/**\n * Get a list of all assigned elements for a given slot\n * @param slot The slot to query\n * @returns Flattened list of assigned elements\n */\nexport const getAssignedElementsForSlot = (slot: HTMLSlotElement) => Array.from(\n slot.assignedElements({ flatten: true }),\n) as HTMLElement[];\n\n/**\n * Check if an item is a SynNavItem or otherwise an item that has a role of menuitem.\n * Note we always treat all items as SynNavItems here\n * @param item The item to check for\n * @returns True if the item is a SynNavItem, false otherwise\n */\nexport const isNavItem = (item: HTMLElement): item is SynNavItem => (\n item.tagName.toLocaleLowerCase() === 'syn-nav-item'\n || (item.getAttribute('role') ?? '') === 'menuitem'\n);\n\n/**\n * Get a list of only SynNavItem elements\n * @param items List of items to check for\n * @returns New array of all found syn-nav-items\n */\nexport const filterOnlyNavItems = (items: HTMLElement[]) => items.filter(isNavItem);\n"],
5
- "mappings": ";AAOO,IAAM,6BAA6B,CAAC,SAA0B,MAAM;AAAA,EACzE,KAAK,iBAAiB,EAAE,SAAS,KAAK,CAAC;AACzC;AAQO,IAAM,YAAY,CAAC,SAAuC;AAjBjE;AAkBE,cAAK,QAAQ,kBAAkB,MAAM,oBACjC,UAAK,aAAa,MAAM,MAAxB,YAA6B,QAAQ;AAAA;AAQpC,IAAM,qBAAqB,CAAC,UAAyB,MAAM,OAAO,SAAS;",
4
+ "sourcesContent": ["import type SynNavItem from '../nav-item/nav-item.component.js';\n\n/**\n * Get a list of all assigned elements for a given slot\n * @param slot The slot to query\n * @returns Flattened list of assigned elements\n */\nexport const getAssignedElementsForSlot = (slot: HTMLSlotElement) => Array.from(\n slot.assignedElements({ flatten: true }),\n) as HTMLElement[];\n\n/**\n * Check if an item is a SynNavItem or otherwise an item that has a role of menuitem.\n * Note we always treat all items as SynNavItems here\n * @param item The item to check for\n * @returns True if the item is a SynNavItem, false otherwise\n */\nexport const isNavItem = (item: HTMLElement): item is SynNavItem => (\n item.tagName.toLocaleLowerCase() === 'syn-nav-item'\n || (item.getAttribute('role') ?? '') === 'menuitem'\n);\n\n/**\n * Get a list of only SynNavItem elements\n * @param items List of items to check for\n * @returns New array of all found syn-nav-items\n */\nexport const filterOnlyNavItems = (items: HTMLElement[]) => items.filter(isNavItem);\n\n/**\n * Show a navigation item\n * @param item The item to show\n */\nexport const showNavigationItem = (item: SynNavItem) => {\n item.setAttribute('horizontal', 'true');\n item.removeAttribute('slot');\n item.removeAttribute('tabindex');\n\n // Reset the role to the original value\n if (item.dataset.originalRole) {\n item.setAttribute('role', item.dataset.originalRole);\n } else {\n item.removeAttribute('role');\n }\n};\n\n/**\n * Hide a navigation item\n * @param item The item to hide\n */\nexport const hideNavigationItem = (item: SynNavItem) => {\n item.removeAttribute('horizontal');\n item.setAttribute('slot', 'menu');\n\n // Makes sure the item is focusable in a syn-dropdown\n item.setAttribute('role', 'menuitem');\n};\n"],
5
+ "mappings": ";AAOO,IAAM,6BAA6B,CAAC,SAA0B,MAAM;AAAA,EACzE,KAAK,iBAAiB,EAAE,SAAS,KAAK,CAAC;AACzC;AAQO,IAAM,YAAY,CAAC,SAAuC;AAjBjE;AAkBE,cAAK,QAAQ,kBAAkB,MAAM,oBACjC,UAAK,aAAa,MAAM,MAAxB,YAA6B,QAAQ;AAAA;AAQpC,IAAM,qBAAqB,CAAC,UAAyB,MAAM,OAAO,SAAS;AAM3E,IAAM,qBAAqB,CAAC,SAAqB;AACtD,OAAK,aAAa,cAAc,MAAM;AACtC,OAAK,gBAAgB,MAAM;AAC3B,OAAK,gBAAgB,UAAU;AAG/B,MAAI,KAAK,QAAQ,cAAc;AAC7B,SAAK,aAAa,QAAQ,KAAK,QAAQ,YAAY;AAAA,EACrD,OAAO;AACL,SAAK,gBAAgB,MAAM;AAAA,EAC7B;AACF;AAMO,IAAM,qBAAqB,CAAC,SAAqB;AACtD,OAAK,gBAAgB,YAAY;AACjC,OAAK,aAAa,QAAQ,MAAM;AAGhC,OAAK,aAAa,QAAQ,UAAU;AACtC;",
6
6
  "names": []
7
7
  }
@@ -10,7 +10,7 @@ import {
10
10
  import {
11
11
  SynergyElement,
12
12
  component_styles_default
13
- } from "./chunk.XTPT3AVO.js";
13
+ } from "./chunk.WEXZUPCC.js";
14
14
  import {
15
15
  __decorateClass
16
16
  } from "./chunk.2GFK6XTO.js";
@@ -58,4 +58,4 @@ __decorateClass([
58
58
  export {
59
59
  SynBadge
60
60
  };
61
- //# sourceMappingURL=chunk.POIOBP3S.js.map
61
+ //# sourceMappingURL=chunk.PBI2JGUC.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynIcon
3
- } from "./chunk.OLHSSK2R.js";
3
+ } from "./chunk.YBCKQJK4.js";
4
4
 
5
5
  // src/components/icon/icon.ts
6
6
  var icon_default = SynIcon;
@@ -9,4 +9,4 @@ SynIcon.define("syn-icon");
9
9
  export {
10
10
  icon_default
11
11
  };
12
- //# sourceMappingURL=chunk.BCFYNMAU.js.map
12
+ //# sourceMappingURL=chunk.PECLVBE7.js.map
@@ -32,6 +32,11 @@ var tab_group_styles_default = css`
32
32
  padding: 0 var(--syn-spacing-x-large);
33
33
  }
34
34
 
35
+ .tab-group--has-scroll-controls .tab-group__scroll-button--start--hidden,
36
+ .tab-group--has-scroll-controls .tab-group__scroll-button--end--hidden {
37
+ visibility: hidden;
38
+ }
39
+
35
40
  .tab-group__body {
36
41
  display: block;
37
42
  overflow: auto;
@@ -189,4 +194,4 @@ var tab_group_styles_default = css`
189
194
  export {
190
195
  tab_group_styles_default
191
196
  };
192
- //# sourceMappingURL=chunk.JQ47GWDL.js.map
197
+ //# sourceMappingURL=chunk.PKYC7QF3.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/tab-group/tab-group.styles.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 { css } from 'lit';\n\nexport default css`\n\t/* stylelint-disable */\n :host {\n --indicator-color: var(--syn-color-primary-600);\n --track-color: var(--syn-color-neutral-200);\n --track-width: 2px;\n\n display: block;\n }\n\n .tab-group {\n display: flex;\n border-radius: 0;\n }\n\n .tab-group__tabs {\n display: flex;\n position: relative;\n }\n\n .tab-group__indicator {\n position: absolute;\n transition:\n var(--syn-transition-fast) translate ease,\n var(--syn-transition-fast) width ease;\n }\n\n .tab-group--has-scroll-controls .tab-group__nav-container {\n position: relative;\n padding: 0 var(--syn-spacing-x-large);\n }\n\n .tab-group--has-scroll-controls .tab-group__scroll-button--start--hidden,\n .tab-group--has-scroll-controls .tab-group__scroll-button--end--hidden {\n visibility: hidden;\n }\n\n .tab-group__body {\n display: block;\n overflow: auto;\n }\n\n .tab-group__scroll-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--syn-spacing-x-large);\n }\n\n .tab-group__scroll-button--start {\n left: 0;\n }\n\n .tab-group__scroll-button--end {\n right: 0;\n }\n\n .tab-group--rtl .tab-group__scroll-button--start {\n left: auto;\n right: 0;\n }\n\n .tab-group--rtl .tab-group__scroll-button--end {\n left: 0;\n right: auto;\n }\n\n /*\n * Top\n */\n\n .tab-group--top {\n flex-direction: column;\n }\n\n .tab-group--top .tab-group__nav-container {\n order: 1;\n }\n\n .tab-group--top .tab-group__nav {\n display: flex;\n overflow-x: auto;\n\n /* Hide scrollbar in Firefox */\n scrollbar-width: none;\n }\n\n /* Hide scrollbar in Chrome/Safari */\n .tab-group--top .tab-group__nav::-webkit-scrollbar {\n width: 0;\n height: 0;\n }\n\n .tab-group--top .tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n border-bottom: solid var(--track-width) var(--track-color);\n }\n\n .tab-group--top .tab-group__indicator {\n bottom: calc(-1 * var(--track-width));\n border-bottom: solid var(--track-width) var(--indicator-color);\n }\n\n .tab-group--top .tab-group__body {\n order: 2;\n }\n\n .tab-group--top ::slotted(syn-tab-panel) {\n --padding: var(--syn-spacing-medium) 0;\n }\n\n /*\n * Start\n */\n\n .tab-group--start {\n flex-direction: row;\n }\n\n .tab-group--start .tab-group__nav-container {\n order: 1;\n }\n\n .tab-group--start .tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n border-inline-end: solid var(--track-width) var(--track-color);\n }\n\n .tab-group--start .tab-group__indicator {\n right: calc(-1 * var(--track-width));\n border-right: solid var(--track-width) var(--indicator-color);\n }\n\n .tab-group--start.tab-group--rtl .tab-group__indicator {\n right: auto;\n left: calc(-1 * var(--track-width));\n }\n\n .tab-group--start .tab-group__body {\n flex: 1 1 auto;\n order: 2;\n }\n\n .tab-group--start ::slotted(syn-tab-panel) {\n --padding: 0 var(--syn-spacing-medium);\n }\n\n /*\n * End\n */\n\n .tab-group--end {\n flex-direction: row;\n }\n\n .tab-group--end .tab-group__nav-container {\n order: 2;\n }\n\n .tab-group--end .tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n border-left: solid var(--track-width) var(--track-color);\n }\n\n .tab-group--end .tab-group__indicator {\n left: calc(-1 * var(--track-width));\n border-inline-start: solid var(--track-width) var(--indicator-color);\n }\n\n .tab-group--end.tab-group--rtl .tab-group__indicator {\n right: calc(-1 * var(--track-width));\n left: auto;\n }\n\n .tab-group--end .tab-group__body {\n flex: 1 1 auto;\n order: 1;\n }\n\n .tab-group--end ::slotted(syn-tab-panel) {\n --padding: 0 var(--syn-spacing-medium);\n }\n`;\n"],
5
+ "mappings": ";AAQA,SAAS,WAAW;AAEpB,IAAO,2BAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynSpinner
3
- } from "./chunk.RWR732UE.js";
3
+ } from "./chunk.BTCNWAF7.js";
4
4
  import {
5
5
  FormControlController,
6
6
  validValidityState
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk.WVVQK5TE.js";
18
18
  import {
19
19
  SynIcon
20
- } from "./chunk.OLHSSK2R.js";
20
+ } from "./chunk.YBCKQJK4.js";
21
21
  import {
22
22
  LocalizeController
23
23
  } from "./chunk.GIU3H3J3.js";
@@ -27,7 +27,7 @@ import {
27
27
  import {
28
28
  SynergyElement,
29
29
  component_styles_default
30
- } from "./chunk.XTPT3AVO.js";
30
+ } from "./chunk.WEXZUPCC.js";
31
31
  import {
32
32
  __decorateClass
33
33
  } from "./chunk.2GFK6XTO.js";
@@ -182,7 +182,7 @@ var SynButton = class extends SynergyElement {
182
182
  title=${this.title}
183
183
  name=${ifDefined(isLink ? void 0 : this.name)}
184
184
  value=${ifDefined(isLink ? void 0 : this.value)}
185
- href=${ifDefined(isLink ? this.href : void 0)}
185
+ href=${ifDefined(isLink && !this.disabled ? this.href : void 0)}
186
186
  target=${ifDefined(isLink ? this.target : void 0)}
187
187
  download=${ifDefined(isLink ? this.download : void 0)}
188
188
  rel=${ifDefined(isLink ? this.rel : void 0)}
@@ -287,4 +287,4 @@ __decorateClass([
287
287
  export {
288
288
  SynButton
289
289
  };
290
- //# sourceMappingURL=chunk.MFRK7XY4.js.map
290
+ //# sourceMappingURL=chunk.PUXBRQLH.js.map