@synergy-design-system/components 2.22.2 → 2.22.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 (297) hide show
  1. package/dist/chunks/{chunk.OLCNUALI.js → chunk.24UXLDJU.js} +8 -8
  2. package/dist/chunks/{chunk.KT4S4ZB6.js → chunk.2SMIYMKX.js} +2 -2
  3. package/dist/chunks/{chunk.GX7U6NXX.js → chunk.3IBRAHYG.js} +2 -2
  4. package/dist/chunks/{chunk.JLXTLEQ2.js → chunk.3JDTX4X6.js} +2 -2
  5. package/dist/chunks/{chunk.RKGPPRBN.js → chunk.3LCV5OP2.js} +2 -2
  6. package/dist/chunks/{chunk.FHVNKHG6.js → chunk.3MCNFSYA.js} +5 -5
  7. package/dist/chunks/{chunk.HNAX4UUU.js → chunk.3PHPHPL2.js} +2 -2
  8. package/dist/chunks/{chunk.Z5NRLDWR.js → chunk.3QNHBRDR.js} +24 -22
  9. package/dist/chunks/chunk.3QNHBRDR.js.map +7 -0
  10. package/dist/chunks/{chunk.SUKTJ7VP.js → chunk.3VMHO22R.js} +7 -7
  11. package/dist/chunks/{chunk.FZZW3EOY.js → chunk.47TJUMDU.js} +8 -8
  12. package/dist/chunks/{chunk.A5J5X63K.js → chunk.4FWOLVW5.js} +7 -7
  13. package/dist/chunks/{chunk.YL23TQJD.js → chunk.4V65J2KG.js} +6 -6
  14. package/dist/chunks/{chunk.7UL2AO5G.js → chunk.6HZQNE6W.js} +3 -3
  15. package/dist/chunks/{chunk.O3QG6DMY.js → chunk.6MMYKADV.js} +2 -2
  16. package/dist/chunks/{chunk.JJYMYZLU.js → chunk.6NPGZ4DQ.js} +3 -3
  17. package/dist/chunks/{chunk.FN4PXV26.js → chunk.6WAIU776.js} +2 -2
  18. package/dist/chunks/{chunk.42SO7SLL.js → chunk.6XG6USXW.js} +2 -2
  19. package/dist/chunks/{chunk.IQ6CXY4E.js → chunk.7APSA6PW.js} +3 -3
  20. package/dist/chunks/{chunk.N4UI3LPL.js → chunk.7SVQW4H2.js} +2 -2
  21. package/dist/chunks/{chunk.WDV7LVFR.js → chunk.7UA4WT6S.js} +3 -3
  22. package/dist/chunks/{chunk.QOSIFCNH.js → chunk.AFEY7D5X.js} +2 -2
  23. package/dist/chunks/{chunk.5YED73MO.js → chunk.ATKPBD4D.js} +2 -2
  24. package/dist/chunks/{chunk.SDTIYJSH.js → chunk.AW2M6WI2.js} +2 -2
  25. package/dist/chunks/{chunk.R3QKOXPD.js → chunk.C444R2J2.js} +2 -2
  26. package/dist/chunks/{chunk.Q2ZTFH4U.js → chunk.CBFQFRSX.js} +2 -2
  27. package/dist/chunks/{chunk.DXLVSIU4.js → chunk.CDIUF5K7.js} +6 -6
  28. package/dist/chunks/{chunk.FY7TEGB6.js → chunk.CL2EY3KT.js} +2 -2
  29. package/dist/chunks/{chunk.OI4FZSHJ.js → chunk.D7MPWOY4.js} +2 -2
  30. package/dist/chunks/{chunk.73YCT5YP.js → chunk.DELL4WZ5.js} +6 -6
  31. package/dist/chunks/{chunk.E6TFC2XT.js → chunk.DVN7YIWJ.js} +6 -6
  32. package/dist/chunks/{chunk.UAYWNEF2.js → chunk.DZVZDMCU.js} +2 -2
  33. package/dist/chunks/{chunk.UFLSUYMR.js → chunk.E5POH2AB.js} +10 -6
  34. package/dist/chunks/chunk.E5POH2AB.js.map +7 -0
  35. package/dist/chunks/{chunk.XZ6Z32Y7.js → chunk.E763PBAS.js} +2 -2
  36. package/dist/chunks/{chunk.KYSIJQYQ.js → chunk.E7Z6TVNB.js} +2 -2
  37. package/dist/chunks/{chunk.H27ON5H7.js → chunk.F32IQ4CY.js} +2 -2
  38. package/dist/chunks/{chunk.NL54TUMD.js → chunk.F6TRTGX6.js} +2 -2
  39. package/dist/chunks/{chunk.2I4SZAV7.js → chunk.FBMCAOYM.js} +2 -2
  40. package/dist/chunks/{chunk.BJVZK37M.js → chunk.G6ZPLNT6.js} +6 -6
  41. package/dist/chunks/{chunk.UNKUOZF4.js → chunk.H2ZDCYXR.js} +2 -2
  42. package/dist/chunks/{chunk.7SKY62NS.js → chunk.H4PVK37Q.js} +2 -2
  43. package/dist/chunks/{chunk.JGDQJLPH.js → chunk.I35U4FOD.js} +2 -2
  44. package/dist/chunks/{chunk.ERRLJKSN.js → chunk.I5DYBRGJ.js} +2 -2
  45. package/dist/chunks/{chunk.NNYDDABY.js → chunk.I7G3HALI.js} +6 -6
  46. package/dist/chunks/{chunk.ENU6QBJY.js → chunk.IAKU6N2O.js} +2 -2
  47. package/dist/chunks/{chunk.YPLU64DI.js → chunk.IREYXXAW.js} +2 -2
  48. package/dist/chunks/{chunk.ZEGZSIOB.js → chunk.JOOQ74WK.js} +2 -2
  49. package/dist/chunks/{chunk.YOIRUEK7.js → chunk.K7YWUUB2.js} +10 -6
  50. package/dist/chunks/chunk.K7YWUUB2.js.map +7 -0
  51. package/dist/chunks/{chunk.QUFCECNI.js → chunk.KDLY6NZU.js} +2 -2
  52. package/dist/chunks/{chunk.CPYKTV7T.js → chunk.KHA6ZIQ4.js} +12 -7
  53. package/dist/chunks/{chunk.CPYKTV7T.js.map → chunk.KHA6ZIQ4.js.map} +2 -2
  54. package/dist/chunks/{chunk.GL7H53A7.js → chunk.KLJGMMJL.js} +2 -2
  55. package/dist/chunks/{chunk.ZXMSSI2X.js → chunk.KZATSBCM.js} +2 -2
  56. package/dist/chunks/{chunk.Z5DGG2SR.js → chunk.L2OXAPLS.js} +8 -8
  57. package/dist/chunks/{chunk.NOCZMPAM.js → chunk.L47YR7GX.js} +2 -2
  58. package/dist/chunks/{chunk.VXOOJVVK.js → chunk.L4CICJ6R.js} +2 -2
  59. package/dist/chunks/{chunk.PE454XRT.js → chunk.L5V6XZZF.js} +2 -2
  60. package/dist/chunks/{chunk.HLWROX3O.js → chunk.LIXM7RED.js} +6 -6
  61. package/dist/chunks/{chunk.F7J77D2F.js → chunk.LN3LFEMR.js} +3 -3
  62. package/dist/chunks/{chunk.XDAALEJT.js → chunk.M2V6HUQS.js} +2 -2
  63. package/dist/chunks/{chunk.VF6BYI74.js → chunk.M2Z24CUK.js} +6 -6
  64. package/dist/chunks/{chunk.UB45VYAM.js → chunk.MLRO3SQX.js} +2 -2
  65. package/dist/chunks/{chunk.EG3PVRPD.js → chunk.N77CKVTX.js} +3 -3
  66. package/dist/chunks/{chunk.TQAEON6T.js → chunk.NODQFWR5.js} +6 -6
  67. package/dist/chunks/{chunk.LMZUDZ5U.js → chunk.NPU7QF4U.js} +2 -2
  68. package/dist/chunks/{chunk.I4K7VGET.js → chunk.NUKOA5N3.js} +2 -2
  69. package/dist/chunks/{chunk.56ZXEGTN.js → chunk.ODX4IPRI.js} +2 -2
  70. package/dist/chunks/{chunk.MWHYXQ3V.js → chunk.OFJWJSUV.js} +2 -2
  71. package/dist/chunks/{chunk.MWHYXQ3V.js.map → chunk.OFJWJSUV.js.map} +1 -1
  72. package/dist/chunks/{chunk.2R4BAKFQ.js → chunk.OQ4IGT4X.js} +2 -2
  73. package/dist/chunks/{chunk.SGDGAE5U.js → chunk.OTEQJAJB.js} +2 -2
  74. package/dist/chunks/{chunk.DPU6AK42.js → chunk.OTNPYLN4.js} +2 -2
  75. package/dist/chunks/{chunk.SFW6QD24.js → chunk.P32QVUZA.js} +2 -2
  76. package/dist/chunks/{chunk.AVICVCTW.js → chunk.P45GZGNP.js} +6 -6
  77. package/dist/chunks/{chunk.DSSVPSWK.js → chunk.PDVJRU62.js} +2 -2
  78. package/dist/chunks/{chunk.BXH56BLP.js → chunk.PM3ITLPE.js} +7 -7
  79. package/dist/chunks/{chunk.NHLEDAM3.js → chunk.PQISMTAN.js} +2 -2
  80. package/dist/chunks/{chunk.O2YW2HRB.js → chunk.Q5XIEK6A.js} +2 -2
  81. package/dist/chunks/{chunk.63WHEGRU.js → chunk.Q6VLD3RL.js} +8 -8
  82. package/dist/chunks/{chunk.ZYFJPZSJ.js → chunk.R24GHGLF.js} +2 -2
  83. package/dist/chunks/{chunk.MX76EUDN.js → chunk.REJV2AFU.js} +2 -2
  84. package/dist/chunks/{chunk.N26NKXSF.js → chunk.RZNCKRR3.js} +16 -12
  85. package/dist/chunks/chunk.RZNCKRR3.js.map +7 -0
  86. package/dist/chunks/{chunk.CNJX6IOV.js → chunk.S4MVBZLV.js} +2 -2
  87. package/dist/chunks/{chunk.RN7N5PH6.js → chunk.SDRMWU2G.js} +2 -2
  88. package/dist/chunks/{chunk.B3YJLMJG.js → chunk.T5QGJTUH.js} +2 -2
  89. package/dist/chunks/{chunk.XR5BS6Z4.js → chunk.THZI7TAH.js} +2 -2
  90. package/dist/chunks/{chunk.RPWTJBCA.js → chunk.TIFZYXIQ.js} +5 -5
  91. package/dist/chunks/{chunk.DNUXSLRR.js → chunk.UMLYCB7H.js} +2 -2
  92. package/dist/chunks/{chunk.TGVCC5V7.js → chunk.UR5QIUI7.js} +2 -2
  93. package/dist/chunks/{chunk.5EPRIJZV.js → chunk.USCKYRWO.js} +7 -7
  94. package/dist/chunks/{chunk.N5OXFKWE.js → chunk.V263DVVZ.js} +2 -2
  95. package/dist/chunks/{chunk.DRSMYJXR.js → chunk.V47IEFQP.js} +2 -2
  96. package/dist/chunks/{chunk.WGOSSSAH.js → chunk.VNFYOYUH.js} +2 -2
  97. package/dist/chunks/{chunk.EMCC5AEY.js → chunk.VNGSVVU6.js} +2 -2
  98. package/dist/chunks/{chunk.IMSDN6MR.js → chunk.VQ3RRBU2.js} +5 -5
  99. package/dist/chunks/chunk.WXVOTRW5.js +13 -0
  100. package/dist/chunks/chunk.WXVOTRW5.js.map +7 -0
  101. package/dist/chunks/{chunk.47XSMRVX.js → chunk.Z5X3GXPI.js} +2 -2
  102. package/dist/chunks/{chunk.OHFKLQBN.js → chunk.ZKSLSCZE.js} +5 -5
  103. package/dist/chunks/{chunk.LPOZ7NYH.js → chunk.ZOA2EO42.js} +5 -5
  104. package/dist/components/accordion/accordion.component.js +3 -3
  105. package/dist/components/accordion/accordion.js +4 -4
  106. package/dist/components/alert/alert.component.js +9 -8
  107. package/dist/components/alert/alert.js +10 -9
  108. package/dist/components/badge/badge.component.js +4 -4
  109. package/dist/components/badge/badge.js +5 -5
  110. package/dist/components/breadcrumb/breadcrumb.component.js +7 -7
  111. package/dist/components/breadcrumb/breadcrumb.js +8 -8
  112. package/dist/components/breadcrumb-item/breadcrumb-item.component.js +2 -2
  113. package/dist/components/breadcrumb-item/breadcrumb-item.js +3 -3
  114. package/dist/components/button/button.component.js +6 -6
  115. package/dist/components/button/button.js +7 -7
  116. package/dist/components/button-group/button-group.component.js +2 -2
  117. package/dist/components/button-group/button-group.js +3 -3
  118. package/dist/components/card/card.component.js +2 -2
  119. package/dist/components/card/card.js +3 -3
  120. package/dist/components/checkbox/checkbox.component.js +4 -4
  121. package/dist/components/checkbox/checkbox.js +5 -5
  122. package/dist/components/combobox/combobox.component.js +7 -7
  123. package/dist/components/combobox/combobox.js +8 -8
  124. package/dist/components/details/details.component.js +5 -5
  125. package/dist/components/details/details.js +6 -6
  126. package/dist/components/dialog/dialog.component.js +7 -6
  127. package/dist/components/dialog/dialog.js +8 -7
  128. package/dist/components/divider/divider.component.js +2 -2
  129. package/dist/components/divider/divider.js +3 -3
  130. package/dist/components/drawer/drawer.component.js +7 -6
  131. package/dist/components/drawer/drawer.js +8 -7
  132. package/dist/components/dropdown/dropdown.component.js +4 -4
  133. package/dist/components/dropdown/dropdown.js +5 -5
  134. package/dist/components/file/file.component.js +7 -7
  135. package/dist/components/file/file.js +8 -8
  136. package/dist/components/header/header.component.js +6 -6
  137. package/dist/components/header/header.js +7 -7
  138. package/dist/components/icon/icon.component.js +2 -2
  139. package/dist/components/icon/icon.js +3 -3
  140. package/dist/components/icon-button/icon-button.component.js +4 -4
  141. package/dist/components/icon-button/icon-button.js +5 -5
  142. package/dist/components/input/input.component.js +6 -6
  143. package/dist/components/input/input.js +7 -7
  144. package/dist/components/menu/menu.component.js +2 -2
  145. package/dist/components/menu/menu.js +3 -3
  146. package/dist/components/menu-item/menu-item.component.js +7 -7
  147. package/dist/components/menu-item/menu-item.js +8 -8
  148. package/dist/components/menu-label/menu-label.component.js +3 -3
  149. package/dist/components/menu-label/menu-label.js +4 -4
  150. package/dist/components/nav-item/nav-item.component.js +3 -3
  151. package/dist/components/nav-item/nav-item.js +4 -4
  152. package/dist/components/optgroup/optgroup.component.js +3 -3
  153. package/dist/components/optgroup/optgroup.js +4 -4
  154. package/dist/components/option/option.component.js +5 -5
  155. package/dist/components/option/option.js +6 -6
  156. package/dist/components/popup/popup.component.js +2 -2
  157. package/dist/components/popup/popup.js +3 -3
  158. package/dist/components/prio-nav/prio-nav.component.js +10 -10
  159. package/dist/components/prio-nav/prio-nav.js +11 -11
  160. package/dist/components/progress-bar/progress-bar.component.js +2 -2
  161. package/dist/components/progress-bar/progress-bar.js +3 -3
  162. package/dist/components/progress-ring/progress-ring.component.js +2 -2
  163. package/dist/components/progress-ring/progress-ring.js +3 -3
  164. package/dist/components/radio/radio.component.js +4 -4
  165. package/dist/components/radio/radio.js +5 -5
  166. package/dist/components/radio-button/radio-button.component.js +3 -3
  167. package/dist/components/radio-button/radio-button.js +4 -4
  168. package/dist/components/radio-group/radio-group.component.js +4 -4
  169. package/dist/components/radio-group/radio-group.js +5 -5
  170. package/dist/components/range/range.component.js +5 -5
  171. package/dist/components/range/range.js +6 -6
  172. package/dist/components/range-tick/range-tick.component.js +2 -2
  173. package/dist/components/range-tick/range-tick.js +3 -3
  174. package/dist/components/resize-observer/resize-observer.component.js +2 -2
  175. package/dist/components/select/select.component.js +8 -8
  176. package/dist/components/select/select.js +9 -9
  177. package/dist/components/side-nav/side-nav.component.js +9 -8
  178. package/dist/components/side-nav/side-nav.js +10 -9
  179. package/dist/components/spinner/spinner.component.js +2 -2
  180. package/dist/components/spinner/spinner.js +3 -3
  181. package/dist/components/switch/switch.component.js +3 -3
  182. package/dist/components/switch/switch.js +4 -4
  183. package/dist/components/tab/tab.component.js +6 -6
  184. package/dist/components/tab/tab.js +7 -7
  185. package/dist/components/tab-group/tab-group.component.d.ts +1 -0
  186. package/dist/components/tab-group/tab-group.component.js +7 -7
  187. package/dist/components/tab-group/tab-group.js +8 -8
  188. package/dist/components/tab-panel/tab-panel.component.js +2 -2
  189. package/dist/components/tab-panel/tab-panel.js +3 -3
  190. package/dist/components/tag/tag.component.js +6 -6
  191. package/dist/components/tag/tag.js +7 -7
  192. package/dist/components/textarea/textarea.component.js +3 -3
  193. package/dist/components/textarea/textarea.js +4 -4
  194. package/dist/components/tooltip/tooltip.component.js +4 -4
  195. package/dist/components/tooltip/tooltip.js +5 -5
  196. package/dist/components/validate/utility.js +2 -2
  197. package/dist/components/validate/validate.component.js +11 -10
  198. package/dist/components/validate/validate.js +12 -11
  199. package/dist/custom-elements.json +89 -77
  200. package/dist/internal/closeActiveElement.d.ts +7 -0
  201. package/dist/styles/index.css +1 -1
  202. package/dist/synergy.js +109 -108
  203. package/dist/vscode.html-custom-data.json +23 -23
  204. package/package.json +1 -1
  205. package/dist/chunks/chunk.N26NKXSF.js.map +0 -7
  206. package/dist/chunks/chunk.UFLSUYMR.js.map +0 -7
  207. package/dist/chunks/chunk.YOIRUEK7.js.map +0 -7
  208. package/dist/chunks/chunk.Z5NRLDWR.js.map +0 -7
  209. /package/dist/chunks/{chunk.OLCNUALI.js.map → chunk.24UXLDJU.js.map} +0 -0
  210. /package/dist/chunks/{chunk.KT4S4ZB6.js.map → chunk.2SMIYMKX.js.map} +0 -0
  211. /package/dist/chunks/{chunk.GX7U6NXX.js.map → chunk.3IBRAHYG.js.map} +0 -0
  212. /package/dist/chunks/{chunk.JLXTLEQ2.js.map → chunk.3JDTX4X6.js.map} +0 -0
  213. /package/dist/chunks/{chunk.RKGPPRBN.js.map → chunk.3LCV5OP2.js.map} +0 -0
  214. /package/dist/chunks/{chunk.FHVNKHG6.js.map → chunk.3MCNFSYA.js.map} +0 -0
  215. /package/dist/chunks/{chunk.HNAX4UUU.js.map → chunk.3PHPHPL2.js.map} +0 -0
  216. /package/dist/chunks/{chunk.SUKTJ7VP.js.map → chunk.3VMHO22R.js.map} +0 -0
  217. /package/dist/chunks/{chunk.FZZW3EOY.js.map → chunk.47TJUMDU.js.map} +0 -0
  218. /package/dist/chunks/{chunk.A5J5X63K.js.map → chunk.4FWOLVW5.js.map} +0 -0
  219. /package/dist/chunks/{chunk.YL23TQJD.js.map → chunk.4V65J2KG.js.map} +0 -0
  220. /package/dist/chunks/{chunk.7UL2AO5G.js.map → chunk.6HZQNE6W.js.map} +0 -0
  221. /package/dist/chunks/{chunk.O3QG6DMY.js.map → chunk.6MMYKADV.js.map} +0 -0
  222. /package/dist/chunks/{chunk.JJYMYZLU.js.map → chunk.6NPGZ4DQ.js.map} +0 -0
  223. /package/dist/chunks/{chunk.FN4PXV26.js.map → chunk.6WAIU776.js.map} +0 -0
  224. /package/dist/chunks/{chunk.42SO7SLL.js.map → chunk.6XG6USXW.js.map} +0 -0
  225. /package/dist/chunks/{chunk.IQ6CXY4E.js.map → chunk.7APSA6PW.js.map} +0 -0
  226. /package/dist/chunks/{chunk.N4UI3LPL.js.map → chunk.7SVQW4H2.js.map} +0 -0
  227. /package/dist/chunks/{chunk.WDV7LVFR.js.map → chunk.7UA4WT6S.js.map} +0 -0
  228. /package/dist/chunks/{chunk.QOSIFCNH.js.map → chunk.AFEY7D5X.js.map} +0 -0
  229. /package/dist/chunks/{chunk.5YED73MO.js.map → chunk.ATKPBD4D.js.map} +0 -0
  230. /package/dist/chunks/{chunk.SDTIYJSH.js.map → chunk.AW2M6WI2.js.map} +0 -0
  231. /package/dist/chunks/{chunk.R3QKOXPD.js.map → chunk.C444R2J2.js.map} +0 -0
  232. /package/dist/chunks/{chunk.Q2ZTFH4U.js.map → chunk.CBFQFRSX.js.map} +0 -0
  233. /package/dist/chunks/{chunk.DXLVSIU4.js.map → chunk.CDIUF5K7.js.map} +0 -0
  234. /package/dist/chunks/{chunk.FY7TEGB6.js.map → chunk.CL2EY3KT.js.map} +0 -0
  235. /package/dist/chunks/{chunk.OI4FZSHJ.js.map → chunk.D7MPWOY4.js.map} +0 -0
  236. /package/dist/chunks/{chunk.73YCT5YP.js.map → chunk.DELL4WZ5.js.map} +0 -0
  237. /package/dist/chunks/{chunk.E6TFC2XT.js.map → chunk.DVN7YIWJ.js.map} +0 -0
  238. /package/dist/chunks/{chunk.UAYWNEF2.js.map → chunk.DZVZDMCU.js.map} +0 -0
  239. /package/dist/chunks/{chunk.XZ6Z32Y7.js.map → chunk.E763PBAS.js.map} +0 -0
  240. /package/dist/chunks/{chunk.KYSIJQYQ.js.map → chunk.E7Z6TVNB.js.map} +0 -0
  241. /package/dist/chunks/{chunk.H27ON5H7.js.map → chunk.F32IQ4CY.js.map} +0 -0
  242. /package/dist/chunks/{chunk.NL54TUMD.js.map → chunk.F6TRTGX6.js.map} +0 -0
  243. /package/dist/chunks/{chunk.2I4SZAV7.js.map → chunk.FBMCAOYM.js.map} +0 -0
  244. /package/dist/chunks/{chunk.BJVZK37M.js.map → chunk.G6ZPLNT6.js.map} +0 -0
  245. /package/dist/chunks/{chunk.UNKUOZF4.js.map → chunk.H2ZDCYXR.js.map} +0 -0
  246. /package/dist/chunks/{chunk.7SKY62NS.js.map → chunk.H4PVK37Q.js.map} +0 -0
  247. /package/dist/chunks/{chunk.JGDQJLPH.js.map → chunk.I35U4FOD.js.map} +0 -0
  248. /package/dist/chunks/{chunk.ERRLJKSN.js.map → chunk.I5DYBRGJ.js.map} +0 -0
  249. /package/dist/chunks/{chunk.NNYDDABY.js.map → chunk.I7G3HALI.js.map} +0 -0
  250. /package/dist/chunks/{chunk.ENU6QBJY.js.map → chunk.IAKU6N2O.js.map} +0 -0
  251. /package/dist/chunks/{chunk.YPLU64DI.js.map → chunk.IREYXXAW.js.map} +0 -0
  252. /package/dist/chunks/{chunk.ZEGZSIOB.js.map → chunk.JOOQ74WK.js.map} +0 -0
  253. /package/dist/chunks/{chunk.QUFCECNI.js.map → chunk.KDLY6NZU.js.map} +0 -0
  254. /package/dist/chunks/{chunk.GL7H53A7.js.map → chunk.KLJGMMJL.js.map} +0 -0
  255. /package/dist/chunks/{chunk.ZXMSSI2X.js.map → chunk.KZATSBCM.js.map} +0 -0
  256. /package/dist/chunks/{chunk.Z5DGG2SR.js.map → chunk.L2OXAPLS.js.map} +0 -0
  257. /package/dist/chunks/{chunk.NOCZMPAM.js.map → chunk.L47YR7GX.js.map} +0 -0
  258. /package/dist/chunks/{chunk.VXOOJVVK.js.map → chunk.L4CICJ6R.js.map} +0 -0
  259. /package/dist/chunks/{chunk.PE454XRT.js.map → chunk.L5V6XZZF.js.map} +0 -0
  260. /package/dist/chunks/{chunk.HLWROX3O.js.map → chunk.LIXM7RED.js.map} +0 -0
  261. /package/dist/chunks/{chunk.F7J77D2F.js.map → chunk.LN3LFEMR.js.map} +0 -0
  262. /package/dist/chunks/{chunk.XDAALEJT.js.map → chunk.M2V6HUQS.js.map} +0 -0
  263. /package/dist/chunks/{chunk.VF6BYI74.js.map → chunk.M2Z24CUK.js.map} +0 -0
  264. /package/dist/chunks/{chunk.UB45VYAM.js.map → chunk.MLRO3SQX.js.map} +0 -0
  265. /package/dist/chunks/{chunk.EG3PVRPD.js.map → chunk.N77CKVTX.js.map} +0 -0
  266. /package/dist/chunks/{chunk.TQAEON6T.js.map → chunk.NODQFWR5.js.map} +0 -0
  267. /package/dist/chunks/{chunk.LMZUDZ5U.js.map → chunk.NPU7QF4U.js.map} +0 -0
  268. /package/dist/chunks/{chunk.I4K7VGET.js.map → chunk.NUKOA5N3.js.map} +0 -0
  269. /package/dist/chunks/{chunk.56ZXEGTN.js.map → chunk.ODX4IPRI.js.map} +0 -0
  270. /package/dist/chunks/{chunk.2R4BAKFQ.js.map → chunk.OQ4IGT4X.js.map} +0 -0
  271. /package/dist/chunks/{chunk.SGDGAE5U.js.map → chunk.OTEQJAJB.js.map} +0 -0
  272. /package/dist/chunks/{chunk.DPU6AK42.js.map → chunk.OTNPYLN4.js.map} +0 -0
  273. /package/dist/chunks/{chunk.SFW6QD24.js.map → chunk.P32QVUZA.js.map} +0 -0
  274. /package/dist/chunks/{chunk.AVICVCTW.js.map → chunk.P45GZGNP.js.map} +0 -0
  275. /package/dist/chunks/{chunk.DSSVPSWK.js.map → chunk.PDVJRU62.js.map} +0 -0
  276. /package/dist/chunks/{chunk.BXH56BLP.js.map → chunk.PM3ITLPE.js.map} +0 -0
  277. /package/dist/chunks/{chunk.NHLEDAM3.js.map → chunk.PQISMTAN.js.map} +0 -0
  278. /package/dist/chunks/{chunk.O2YW2HRB.js.map → chunk.Q5XIEK6A.js.map} +0 -0
  279. /package/dist/chunks/{chunk.63WHEGRU.js.map → chunk.Q6VLD3RL.js.map} +0 -0
  280. /package/dist/chunks/{chunk.ZYFJPZSJ.js.map → chunk.R24GHGLF.js.map} +0 -0
  281. /package/dist/chunks/{chunk.MX76EUDN.js.map → chunk.REJV2AFU.js.map} +0 -0
  282. /package/dist/chunks/{chunk.CNJX6IOV.js.map → chunk.S4MVBZLV.js.map} +0 -0
  283. /package/dist/chunks/{chunk.RN7N5PH6.js.map → chunk.SDRMWU2G.js.map} +0 -0
  284. /package/dist/chunks/{chunk.B3YJLMJG.js.map → chunk.T5QGJTUH.js.map} +0 -0
  285. /package/dist/chunks/{chunk.XR5BS6Z4.js.map → chunk.THZI7TAH.js.map} +0 -0
  286. /package/dist/chunks/{chunk.RPWTJBCA.js.map → chunk.TIFZYXIQ.js.map} +0 -0
  287. /package/dist/chunks/{chunk.DNUXSLRR.js.map → chunk.UMLYCB7H.js.map} +0 -0
  288. /package/dist/chunks/{chunk.TGVCC5V7.js.map → chunk.UR5QIUI7.js.map} +0 -0
  289. /package/dist/chunks/{chunk.5EPRIJZV.js.map → chunk.USCKYRWO.js.map} +0 -0
  290. /package/dist/chunks/{chunk.N5OXFKWE.js.map → chunk.V263DVVZ.js.map} +0 -0
  291. /package/dist/chunks/{chunk.DRSMYJXR.js.map → chunk.V47IEFQP.js.map} +0 -0
  292. /package/dist/chunks/{chunk.WGOSSSAH.js.map → chunk.VNFYOYUH.js.map} +0 -0
  293. /package/dist/chunks/{chunk.EMCC5AEY.js.map → chunk.VNGSVVU6.js.map} +0 -0
  294. /package/dist/chunks/{chunk.IMSDN6MR.js.map → chunk.VQ3RRBU2.js.map} +0 -0
  295. /package/dist/chunks/{chunk.47XSMRVX.js.map → chunk.Z5X3GXPI.js.map} +0 -0
  296. /package/dist/chunks/{chunk.OHFKLQBN.js.map → chunk.ZKSLSCZE.js.map} +0 -0
  297. /package/dist/chunks/{chunk.LPOZ7NYH.js.map → chunk.ZOA2EO42.js.map} +0 -0
@@ -6,25 +6,25 @@ import {
6
6
  } from "./chunk.PKYC7QF3.js";
7
7
  import {
8
8
  SynResizeObserver
9
- } from "./chunk.QOSIFCNH.js";
9
+ } from "./chunk.AFEY7D5X.js";
10
10
  import {
11
11
  scrollIntoView
12
12
  } from "./chunk.5732DMBC.js";
13
13
  import {
14
14
  SynIconButton
15
- } from "./chunk.F7J77D2F.js";
16
- import {
17
- LocalizeController
18
- } from "./chunk.GIU3H3J3.js";
15
+ } from "./chunk.LN3LFEMR.js";
19
16
  import {
20
17
  watch
21
18
  } from "./chunk.74IOULXM.js";
19
+ import {
20
+ LocalizeController
21
+ } from "./chunk.GIU3H3J3.js";
22
22
  import {
23
23
  component_styles_default
24
24
  } from "./chunk.NLYVOJGK.js";
25
25
  import {
26
26
  SynergyElement
27
- } from "./chunk.MWHYXQ3V.js";
27
+ } from "./chunk.OFJWJSUV.js";
28
28
  import {
29
29
  __decorateClass,
30
30
  __spreadValues
@@ -398,6 +398,9 @@ var SynTabGroup = class extends SynergyElement {
398
398
  this.setActiveTab(tab, { scrollBehavior: "smooth" });
399
399
  }
400
400
  }
401
+ preventFocus(e) {
402
+ e.preventDefault();
403
+ }
401
404
  render() {
402
405
  return html`
403
406
  <div
@@ -430,6 +433,7 @@ var SynTabGroup = class extends SynergyElement {
430
433
  tabindex="-1"
431
434
  aria-hidden="true"
432
435
  label=${this.localize.term("scrollToStart")}
436
+ @mousedown=${this.preventFocus}
433
437
  @click=${this.handleScrollToStart}
434
438
  ></syn-icon-button>
435
439
  ` : ""}
@@ -457,6 +461,7 @@ var SynTabGroup = class extends SynergyElement {
457
461
  tabindex="-1"
458
462
  aria-hidden="true"
459
463
  label=${this.localize.term("scrollToEnd")}
464
+ @mousedown=${this.preventFocus}
460
465
  @click=${this.handleScrollToEnd}
461
466
  ></syn-icon-button>
462
467
  ` : ""}
@@ -521,4 +526,4 @@ __decorateClass([
521
526
  export {
522
527
  SynTabGroup
523
528
  };
524
- //# sourceMappingURL=chunk.CPYKTV7T.js.map
529
+ //# sourceMappingURL=chunk.KHA6ZIQ4.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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\n(() => {\n // SSR environments should not apply the polyfill\n if (typeof window === 'undefined') {\n return;\n }\n\n const isSupported = 'onscrollend' in window;\n\n if (!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\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 // Make sure to only observe the direct children of the tab group\n // instead of other sub elements that might be slotted in.\n // @see https://github.com/shoelace-style/shoelace/issues/2320\n const instanceMutations = mutations.filter(({ target }) => {\n if (target === this) return true; // Allow self updates\n if ((target as HTMLElement).closest('syn-tab-group') !== this) return false; // We are not direct children\n\n // We should only care about changes to the tab or tab panel\n const tagName = (target as HTMLElement).tagName.toLowerCase();\n return tagName === 'syn-tab' || tagName === 'syn-tab-panel';\n });\n\n if (instanceMutations.length === 0) {\n return;\n }\n\n // Update aria labels when the DOM changes\n if (instanceMutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (instanceMutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n // sync tabs when active state on tab changes\n } else if (instanceMutations.some(m => m.attributeName === 'active')) {\n const tabs = instanceMutations\n .filter(m => m.attributeName === 'active' && (m.target as HTMLElement).tagName.toLowerCase() === 'syn-tab')\n .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, {\n attributes: true,\n attributeFilter: [\n 'active',\n 'disabled',\n 'name',\n 'panel',\n ],\n childList: true,\n subtree: true\n });\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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",
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\n(() => {\n // SSR environments should not apply the polyfill\n if (typeof window === 'undefined') {\n return;\n }\n\n const isSupported = 'onscrollend' in window;\n\n if (!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\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 // Make sure to only observe the direct children of the tab group\n // instead of other sub elements that might be slotted in.\n // @see https://github.com/shoelace-style/shoelace/issues/2320\n const instanceMutations = mutations.filter(({ target }) => {\n if (target === this) return true; // Allow self updates\n if ((target as HTMLElement).closest('syn-tab-group') !== this) return false; // We are not direct children\n\n // We should only care about changes to the tab or tab panel\n const tagName = (target as HTMLElement).tagName.toLowerCase();\n return tagName === 'syn-tab' || tagName === 'syn-tab-panel';\n });\n\n if (instanceMutations.length === 0) {\n return;\n }\n\n // Update aria labels when the DOM changes\n if (instanceMutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (instanceMutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n // sync tabs when active state on tab changes\n } else if (instanceMutations.some(m => m.attributeName === 'active')) {\n const tabs = instanceMutations\n .filter(m => m.attributeName === 'active' && (m.target as HTMLElement).tagName.toLowerCase() === 'syn-tab')\n .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, {\n attributes: true,\n attributeFilter: [\n 'active',\n 'disabled',\n 'name',\n 'panel',\n ],\n childList: true,\n subtree: true\n });\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 preventFocus(e: MouseEvent) {\n e.preventDefault();\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 @mousedown=${this.preventFocus}\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 @mousedown=${this.preventFocus}\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
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynHeader
3
- } from "./chunk.HLWROX3O.js";
3
+ } from "./chunk.LIXM7RED.js";
4
4
 
5
5
  // src/components/header/header.ts
6
6
  var header_default = SynHeader;
@@ -9,4 +9,4 @@ SynHeader.define("syn-header");
9
9
  export {
10
10
  header_default
11
11
  };
12
- //# sourceMappingURL=chunk.GL7H53A7.js.map
12
+ //# sourceMappingURL=chunk.KLJGMMJL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynTabGroup
3
- } from "./chunk.CPYKTV7T.js";
3
+ } from "./chunk.KHA6ZIQ4.js";
4
4
 
5
5
  // src/components/tab-group/tab-group.ts
6
6
  var tab_group_default = SynTabGroup;
@@ -9,4 +9,4 @@ SynTabGroup.define("syn-tab-group");
9
9
  export {
10
10
  tab_group_default
11
11
  };
12
- //# sourceMappingURL=chunk.ZXMSSI2X.js.map
12
+ //# sourceMappingURL=chunk.KZATSBCM.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SynOption
3
- } from "./chunk.NNYDDABY.js";
3
+ } from "./chunk.I7G3HALI.js";
4
4
  import {
5
5
  SynPopup
6
- } from "./chunk.FY7TEGB6.js";
6
+ } from "./chunk.CL2EY3KT.js";
7
7
  import {
8
8
  defaultOptionRenderer
9
9
  } from "./chunk.HVVPX2VA.js";
@@ -49,22 +49,22 @@ import {
49
49
  } from "./chunk.WVVQK5TE.js";
50
50
  import {
51
51
  SynIcon
52
- } from "./chunk.O3QG6DMY.js";
52
+ } from "./chunk.6MMYKADV.js";
53
+ import {
54
+ watch
55
+ } from "./chunk.74IOULXM.js";
53
56
  import {
54
57
  LocalizeController
55
58
  } from "./chunk.GIU3H3J3.js";
56
59
  import {
57
60
  enableDefaultSettings
58
61
  } from "./chunk.OLCT57R5.js";
59
- import {
60
- watch
61
- } from "./chunk.74IOULXM.js";
62
62
  import {
63
63
  component_styles_default
64
64
  } from "./chunk.NLYVOJGK.js";
65
65
  import {
66
66
  SynergyElement
67
- } from "./chunk.MWHYXQ3V.js";
67
+ } from "./chunk.OFJWJSUV.js";
68
68
  import {
69
69
  __decorateClass
70
70
  } from "./chunk.2GFK6XTO.js";
@@ -835,4 +835,4 @@ setDefaultAnimation("combobox.hide", {
835
835
  export {
836
836
  SynCombobox
837
837
  };
838
- //# sourceMappingURL=chunk.Z5DGG2SR.js.map
838
+ //# sourceMappingURL=chunk.L2OXAPLS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynOption
3
- } from "./chunk.NNYDDABY.js";
3
+ } from "./chunk.I7G3HALI.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.NOCZMPAM.js.map
12
+ //# sourceMappingURL=chunk.L47YR7GX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynTabPanel
3
- } from "./chunk.SDTIYJSH.js";
3
+ } from "./chunk.AW2M6WI2.js";
4
4
 
5
5
  // src/components/tab-panel/tab-panel.ts
6
6
  var tab_panel_default = SynTabPanel;
@@ -9,4 +9,4 @@ SynTabPanel.define("syn-tab-panel");
9
9
  export {
10
10
  tab_panel_default
11
11
  };
12
- //# sourceMappingURL=chunk.VXOOJVVK.js.map
12
+ //# sourceMappingURL=chunk.L4CICJ6R.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynTag
3
- } from "./chunk.WDV7LVFR.js";
3
+ } from "./chunk.7UA4WT6S.js";
4
4
 
5
5
  // src/components/tag/tag.ts
6
6
  var tag_default = SynTag;
@@ -9,4 +9,4 @@ SynTag.define("syn-tag");
9
9
  export {
10
10
  tag_default
11
11
  };
12
- //# sourceMappingURL=chunk.PE454XRT.js.map
12
+ //# sourceMappingURL=chunk.L5V6XZZF.js.map
@@ -3,22 +3,22 @@ import {
3
3
  } from "./chunk.5T3OGIGW.js";
4
4
  import {
5
5
  icon_default
6
- } from "./chunk.UB45VYAM.js";
6
+ } from "./chunk.MLRO3SQX.js";
7
7
  import {
8
8
  HasSlotController
9
9
  } from "./chunk.WVVQK5TE.js";
10
- import {
11
- LocalizeController
12
- } from "./chunk.GIU3H3J3.js";
13
10
  import {
14
11
  watch
15
12
  } from "./chunk.74IOULXM.js";
13
+ import {
14
+ LocalizeController
15
+ } from "./chunk.GIU3H3J3.js";
16
16
  import {
17
17
  component_styles_default
18
18
  } from "./chunk.NLYVOJGK.js";
19
19
  import {
20
20
  SynergyElement
21
- } from "./chunk.MWHYXQ3V.js";
21
+ } from "./chunk.OFJWJSUV.js";
22
22
  import {
23
23
  __decorateClass
24
24
  } from "./chunk.2GFK6XTO.js";
@@ -184,4 +184,4 @@ __decorateClass([
184
184
  export {
185
185
  SynHeader
186
186
  };
187
- //# sourceMappingURL=chunk.HLWROX3O.js.map
187
+ //# sourceMappingURL=chunk.LIXM7RED.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk.DZ7YIR5N.js";
7
7
  import {
8
8
  SynIcon
9
- } from "./chunk.O3QG6DMY.js";
9
+ } from "./chunk.6MMYKADV.js";
10
10
  import {
11
11
  enableDefaultSettings
12
12
  } from "./chunk.OLCT57R5.js";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk.NLYVOJGK.js";
16
16
  import {
17
17
  SynergyElement
18
- } from "./chunk.MWHYXQ3V.js";
18
+ } from "./chunk.OFJWJSUV.js";
19
19
  import {
20
20
  __decorateClass
21
21
  } from "./chunk.2GFK6XTO.js";
@@ -144,4 +144,4 @@ SynIconButton = __decorateClass([
144
144
  export {
145
145
  SynIconButton
146
146
  };
147
- //# sourceMappingURL=chunk.F7J77D2F.js.map
147
+ //# sourceMappingURL=chunk.LN3LFEMR.js.map
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk.NLYVOJGK.js";
13
13
  import {
14
14
  SynergyElement
15
- } from "./chunk.MWHYXQ3V.js";
15
+ } from "./chunk.OFJWJSUV.js";
16
16
  import {
17
17
  __decorateClass
18
18
  } from "./chunk.2GFK6XTO.js";
@@ -68,4 +68,4 @@ __decorateClass([
68
68
  export {
69
69
  SynProgressBar
70
70
  };
71
- //# sourceMappingURL=chunk.XDAALEJT.js.map
71
+ //# sourceMappingURL=chunk.M2V6HUQS.js.map
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk.FKKJBKYL.js";
11
11
  import {
12
12
  SynButtonGroup
13
- } from "./chunk.B3YJLMJG.js";
13
+ } from "./chunk.T5QGJTUH.js";
14
14
  import {
15
15
  FormControlController,
16
16
  customErrorValidityState,
@@ -20,18 +20,18 @@ import {
20
20
  import {
21
21
  HasSlotController
22
22
  } from "./chunk.WVVQK5TE.js";
23
- import {
24
- enableDefaultSettings
25
- } from "./chunk.OLCT57R5.js";
26
23
  import {
27
24
  watch
28
25
  } from "./chunk.74IOULXM.js";
26
+ import {
27
+ enableDefaultSettings
28
+ } from "./chunk.OLCT57R5.js";
29
29
  import {
30
30
  component_styles_default
31
31
  } from "./chunk.NLYVOJGK.js";
32
32
  import {
33
33
  SynergyElement
34
- } from "./chunk.MWHYXQ3V.js";
34
+ } from "./chunk.OFJWJSUV.js";
35
35
  import {
36
36
  __decorateClass
37
37
  } from "./chunk.2GFK6XTO.js";
@@ -369,4 +369,4 @@ SynRadioGroup = __decorateClass([
369
369
  export {
370
370
  SynRadioGroup
371
371
  };
372
- //# sourceMappingURL=chunk.VF6BYI74.js.map
372
+ //# sourceMappingURL=chunk.M2Z24CUK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynIcon
3
- } from "./chunk.O3QG6DMY.js";
3
+ } from "./chunk.6MMYKADV.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.UB45VYAM.js.map
12
+ //# sourceMappingURL=chunk.MLRO3SQX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynTooltip
3
- } from "./chunk.AVICVCTW.js";
3
+ } from "./chunk.P45GZGNP.js";
4
4
  import {
5
5
  arraysDiffer,
6
6
  getNormalizedValueFromClientX,
@@ -35,7 +35,7 @@ import {
35
35
  } from "./chunk.NLYVOJGK.js";
36
36
  import {
37
37
  SynergyElement
38
- } from "./chunk.MWHYXQ3V.js";
38
+ } from "./chunk.OFJWJSUV.js";
39
39
  import {
40
40
  __decorateClass,
41
41
  __privateAdd,
@@ -716,4 +716,4 @@ SynRange = __decorateClass([
716
716
  export {
717
717
  SynRange
718
718
  };
719
- //# sourceMappingURL=chunk.EG3PVRPD.js.map
719
+ //# sourceMappingURL=chunk.N77CKVTX.js.map
@@ -19,19 +19,19 @@ import {
19
19
  } from "./chunk.WVVQK5TE.js";
20
20
  import {
21
21
  SynIcon
22
- } from "./chunk.O3QG6DMY.js";
23
- import {
24
- enableDefaultSettings
25
- } from "./chunk.OLCT57R5.js";
22
+ } from "./chunk.6MMYKADV.js";
26
23
  import {
27
24
  watch
28
25
  } from "./chunk.74IOULXM.js";
26
+ import {
27
+ enableDefaultSettings
28
+ } from "./chunk.OLCT57R5.js";
29
29
  import {
30
30
  component_styles_default
31
31
  } from "./chunk.NLYVOJGK.js";
32
32
  import {
33
33
  SynergyElement
34
- } from "./chunk.MWHYXQ3V.js";
34
+ } from "./chunk.OFJWJSUV.js";
35
35
  import {
36
36
  __decorateClass
37
37
  } from "./chunk.2GFK6XTO.js";
@@ -267,4 +267,4 @@ SynCheckbox = __decorateClass([
267
267
  export {
268
268
  SynCheckbox
269
269
  };
270
- //# sourceMappingURL=chunk.TQAEON6T.js.map
270
+ //# sourceMappingURL=chunk.NODQFWR5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynSwitch
3
- } from "./chunk.LPOZ7NYH.js";
3
+ } from "./chunk.ZOA2EO42.js";
4
4
 
5
5
  // src/components/switch/switch.ts
6
6
  var switch_default = SynSwitch;
@@ -9,4 +9,4 @@ SynSwitch.define("syn-switch");
9
9
  export {
10
10
  switch_default
11
11
  };
12
- //# sourceMappingURL=chunk.LMZUDZ5U.js.map
12
+ //# sourceMappingURL=chunk.NPU7QF4U.js.map
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk.NLYVOJGK.js";
13
13
  import {
14
14
  SynergyElement
15
- } from "./chunk.MWHYXQ3V.js";
15
+ } from "./chunk.OFJWJSUV.js";
16
16
 
17
17
  // src/components/spinner/spinner.component.ts
18
18
  import { html } from "lit";
@@ -35,4 +35,4 @@ SynSpinner.styles = [component_styles_default, spinner_styles_default, spinner_c
35
35
  export {
36
36
  SynSpinner
37
37
  };
38
- //# sourceMappingURL=chunk.I4K7VGET.js.map
38
+ //# sourceMappingURL=chunk.NUKOA5N3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynValidate
3
- } from "./chunk.A5J5X63K.js";
3
+ } from "./chunk.4FWOLVW5.js";
4
4
 
5
5
  // src/components/validate/validate.ts
6
6
  var validate_default = SynValidate;
@@ -9,4 +9,4 @@ SynValidate.define("syn-validate");
9
9
  export {
10
10
  validate_default
11
11
  };
12
- //# sourceMappingURL=chunk.56ZXEGTN.js.map
12
+ //# sourceMappingURL=chunk.ODX4IPRI.js.map
@@ -81,7 +81,7 @@ var SynergyElement = class extends LitElement {
81
81
  _hasRecordedInitialProperties = new WeakMap();
82
82
  /* eslint-disable */
83
83
  // @ts-expect-error This is auto-injected at build time.
84
- SynergyElement.version = "2.22.2";
84
+ SynergyElement.version = "2.22.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.MWHYXQ3V.js.map
96
+ //# sourceMappingURL=chunk.OFJWJSUV.js.map