@synergy-design-system/components 2.22.2 → 2.22.4
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.
- package/dist/chunks/{chunk.FY7TEGB6.js → chunk.26B4OMCP.js} +2 -2
- package/dist/chunks/{chunk.YL23TQJD.js → chunk.26NQQ7VE.js} +3 -3
- package/dist/chunks/{chunk.OI4FZSHJ.js → chunk.2WD2T46E.js} +2 -2
- package/dist/chunks/{chunk.O3QG6DMY.js → chunk.33XFC7EO.js} +2 -2
- package/dist/chunks/{chunk.LMZUDZ5U.js → chunk.3755NUDF.js} +2 -2
- package/dist/chunks/{chunk.JLXTLEQ2.js → chunk.3IOKT2FV.js} +2 -2
- package/dist/chunks/{chunk.GX7U6NXX.js → chunk.464PVSU3.js} +2 -2
- package/dist/chunks/{chunk.5YED73MO.js → chunk.4FWVZWL6.js} +2 -2
- package/dist/chunks/{chunk.42SO7SLL.js → chunk.53KWN5FZ.js} +2 -2
- package/dist/chunks/{chunk.SFW6QD24.js → chunk.55EGUUJX.js} +2 -2
- package/dist/chunks/{chunk.7SKY62NS.js → chunk.5TMZH4EH.js} +2 -2
- package/dist/chunks/{chunk.TGVCC5V7.js → chunk.5XRAHVSQ.js} +2 -2
- package/dist/chunks/{chunk.B3YJLMJG.js → chunk.5YCO2XTZ.js} +2 -2
- package/dist/chunks/{chunk.2R4BAKFQ.js → chunk.6BYPQHXV.js} +2 -2
- package/dist/chunks/{chunk.BJVZK37M.js → chunk.6YVGO76D.js} +6 -6
- package/dist/chunks/{chunk.UNKUOZF4.js → chunk.7MNZPEAI.js} +2 -2
- package/dist/chunks/{chunk.NL54TUMD.js → chunk.AATZGIXJ.js} +2 -2
- package/dist/chunks/{chunk.CNJX6IOV.js → chunk.ALD2RXSC.js} +2 -2
- package/dist/chunks/{chunk.VF6BYI74.js → chunk.AMMQXZ5K.js} +3 -3
- package/dist/chunks/{chunk.JJYMYZLU.js → chunk.AWRYYAJP.js} +3 -3
- package/dist/chunks/{chunk.XDAALEJT.js → chunk.BEFLZD5R.js} +2 -2
- package/dist/chunks/{chunk.GL7H53A7.js → chunk.BFUWQAQ4.js} +2 -2
- package/dist/chunks/{chunk.FZZW3EOY.js → chunk.BJGGWWFN.js} +5 -5
- package/dist/chunks/{chunk.73YCT5YP.js → chunk.BLIVQQFJ.js} +3 -3
- package/dist/chunks/{chunk.MX76EUDN.js → chunk.CAQ2ILVH.js} +2 -2
- package/dist/chunks/{chunk.HNAX4UUU.js → chunk.CCRQDJTK.js} +2 -2
- package/dist/chunks/{chunk.RKGPPRBN.js → chunk.CL7ZHAKG.js} +2 -2
- package/dist/chunks/{chunk.FN4PXV26.js → chunk.D4YRTKMJ.js} +2 -2
- package/dist/chunks/{chunk.OLCNUALI.js → chunk.D6U4JHI7.js} +2 -2
- package/dist/chunks/{chunk.DRSMYJXR.js → chunk.DN6FM5BH.js} +2 -2
- package/dist/chunks/{chunk.VXOOJVVK.js → chunk.DNC2LPCF.js} +2 -2
- package/dist/chunks/{chunk.RPWTJBCA.js → chunk.DZ7VT6G3.js} +2 -2
- package/dist/chunks/{chunk.NNYDDABY.js → chunk.EO35J4IB.js} +3 -3
- package/dist/chunks/{chunk.LPOZ7NYH.js → chunk.ESYXVOS2.js} +2 -2
- package/dist/chunks/{chunk.IQ6CXY4E.js → chunk.F7LMOI4B.js} +3 -3
- package/dist/chunks/{chunk.KYSIJQYQ.js → chunk.FWA2X7CU.js} +2 -2
- package/dist/chunks/{chunk.UAYWNEF2.js → chunk.GCNE2HYQ.js} +2 -2
- package/dist/chunks/{chunk.NHLEDAM3.js → chunk.GJDKMXBK.js} +2 -2
- package/dist/chunks/{chunk.YOIRUEK7.js → chunk.GMHRTZ25.js} +7 -3
- package/dist/chunks/chunk.GMHRTZ25.js.map +7 -0
- package/dist/chunks/{chunk.SGDGAE5U.js → chunk.GNEGFYDF.js} +2 -2
- package/dist/chunks/{chunk.E6TFC2XT.js → chunk.GO7XHSWZ.js} +3 -3
- package/dist/chunks/{chunk.N5OXFKWE.js → chunk.GQNOUH5H.js} +2 -2
- package/dist/chunks/{chunk.QOSIFCNH.js → chunk.GRJQQDSM.js} +2 -2
- package/dist/chunks/{chunk.N26NKXSF.js → chunk.GWUZE7E6.js} +7 -3
- package/dist/chunks/chunk.GWUZE7E6.js.map +7 -0
- package/dist/chunks/{chunk.JGDQJLPH.js → chunk.HU7PHPNC.js} +2 -2
- package/dist/chunks/{chunk.5EPRIJZV.js → chunk.KVI6WAZS.js} +4 -4
- package/dist/chunks/{chunk.QUFCECNI.js → chunk.M5PO6KYD.js} +2 -2
- package/dist/chunks/{chunk.YPLU64DI.js → chunk.MJK7QRSD.js} +2 -2
- package/dist/chunks/{chunk.2I4SZAV7.js → chunk.N34SUR53.js} +2 -2
- package/dist/chunks/{chunk.EG3PVRPD.js → chunk.NAD3ONL5.js} +3 -3
- package/dist/chunks/{chunk.UB45VYAM.js → chunk.NN6TFZGN.js} +2 -2
- package/dist/chunks/{chunk.FHVNKHG6.js → chunk.P2HF3T5Q.js} +2 -2
- package/dist/chunks/{chunk.I4K7VGET.js → chunk.P2LVNPXE.js} +2 -2
- package/dist/chunks/{chunk.XR5BS6Z4.js → chunk.P3PG3WBC.js} +2 -2
- package/dist/chunks/{chunk.WDV7LVFR.js → chunk.PG24IPOB.js} +3 -3
- package/dist/chunks/{chunk.63WHEGRU.js → chunk.POOLH7VK.js} +5 -5
- package/dist/chunks/{chunk.NOCZMPAM.js → chunk.PR5RO5RO.js} +2 -2
- package/dist/chunks/{chunk.PE454XRT.js → chunk.PRDSL7DR.js} +2 -2
- package/dist/chunks/{chunk.EMCC5AEY.js → chunk.PTGS3OOA.js} +2 -2
- package/dist/chunks/{chunk.ZEGZSIOB.js → chunk.PTLURDXN.js} +2 -2
- package/dist/chunks/{chunk.ZXMSSI2X.js → chunk.PZ5RG2GH.js} +2 -2
- package/dist/chunks/{chunk.RN7N5PH6.js → chunk.QA55U5RT.js} +2 -2
- package/dist/chunks/{chunk.ENU6QBJY.js → chunk.QDKIYFDP.js} +2 -2
- package/dist/chunks/{chunk.N4UI3LPL.js → chunk.QYLA5OW5.js} +2 -2
- package/dist/chunks/{chunk.DPU6AK42.js → chunk.RED6MKL6.js} +2 -2
- package/dist/chunks/{chunk.SUKTJ7VP.js → chunk.RKUIYKRM.js} +4 -4
- package/dist/chunks/{chunk.Q2ZTFH4U.js → chunk.RNFYJI3F.js} +2 -2
- package/dist/chunks/{chunk.BXH56BLP.js → chunk.RPRS4JLW.js} +4 -4
- package/dist/chunks/{chunk.AVICVCTW.js → chunk.RWV4J767.js} +3 -3
- package/dist/chunks/{chunk.OHFKLQBN.js → chunk.SERRTBJ7.js} +3 -3
- package/dist/chunks/{chunk.H27ON5H7.js → chunk.SHZ55Q2I.js} +2 -2
- package/dist/chunks/{chunk.Z5DGG2SR.js → chunk.SRCZROJA.js} +5 -5
- package/dist/chunks/{chunk.SDTIYJSH.js → chunk.SRILX2YS.js} +2 -2
- package/dist/chunks/{chunk.47XSMRVX.js → chunk.SVR4ZFO5.js} +2 -2
- package/dist/chunks/{chunk.XZ6Z32Y7.js → chunk.TO6UTNTJ.js} +2 -2
- package/dist/chunks/{chunk.DNUXSLRR.js → chunk.TQ2RZSJH.js} +2 -2
- package/dist/chunks/{chunk.56ZXEGTN.js → chunk.TVPREKQK.js} +2 -2
- package/dist/chunks/{chunk.UFLSUYMR.js → chunk.U5OBVAVH.js} +7 -3
- package/dist/chunks/chunk.U5OBVAVH.js.map +7 -0
- package/dist/chunks/{chunk.TQAEON6T.js → chunk.U5TAJYPP.js} +3 -3
- package/dist/chunks/{chunk.7UL2AO5G.js → chunk.USM6N6FB.js} +3 -3
- package/dist/chunks/{chunk.CPYKTV7T.js → chunk.UYCZ6KQT.js} +9 -4
- package/dist/chunks/{chunk.CPYKTV7T.js.map → chunk.UYCZ6KQT.js.map} +2 -2
- package/dist/chunks/{chunk.O2YW2HRB.js → chunk.V3FQSIGQ.js} +2 -2
- package/dist/chunks/{chunk.R3QKOXPD.js → chunk.V7XNA4W6.js} +2 -2
- package/dist/chunks/{chunk.IMSDN6MR.js → chunk.VAD5O2AN.js} +2 -2
- package/dist/chunks/{chunk.Z5NRLDWR.js → chunk.VAP66VKR.js} +21 -19
- package/dist/chunks/chunk.VAP66VKR.js.map +7 -0
- package/dist/chunks/{chunk.ZYFJPZSJ.js → chunk.VLKWA4J3.js} +2 -2
- package/dist/chunks/{chunk.F7J77D2F.js → chunk.WOU4GA5I.js} +3 -3
- package/dist/chunks/chunk.WXVOTRW5.js +13 -0
- package/dist/chunks/chunk.WXVOTRW5.js.map +7 -0
- package/dist/chunks/{chunk.HLWROX3O.js → chunk.X3UXKDXI.js} +3 -3
- package/dist/chunks/{chunk.DSSVPSWK.js → chunk.X5LL6UJI.js} +2 -2
- package/dist/chunks/{chunk.DXLVSIU4.js → chunk.XTMRNGZZ.js} +3 -3
- package/dist/chunks/{chunk.KT4S4ZB6.js → chunk.YMIMO2DN.js} +2 -2
- package/dist/chunks/{chunk.ERRLJKSN.js → chunk.YW255WQ5.js} +2 -2
- package/dist/chunks/{chunk.MWHYXQ3V.js → chunk.Z2XH5OM4.js} +2 -2
- package/dist/chunks/{chunk.MWHYXQ3V.js.map → chunk.Z2XH5OM4.js.map} +1 -1
- package/dist/chunks/{chunk.WGOSSSAH.js → chunk.ZF7JI7YE.js} +2 -2
- package/dist/chunks/{chunk.A5J5X63K.js → chunk.ZPWCS7OO.js} +4 -4
- package/dist/components/accordion/accordion.component.js +2 -2
- package/dist/components/accordion/accordion.js +3 -3
- package/dist/components/alert/alert.component.js +5 -4
- package/dist/components/alert/alert.js +6 -5
- package/dist/components/badge/badge.component.js +2 -2
- package/dist/components/badge/badge.js +3 -3
- package/dist/components/breadcrumb/breadcrumb.component.js +3 -3
- package/dist/components/breadcrumb/breadcrumb.js +4 -4
- package/dist/components/breadcrumb-item/breadcrumb-item.component.js +2 -2
- package/dist/components/breadcrumb-item/breadcrumb-item.js +3 -3
- package/dist/components/button/button.component.js +4 -4
- package/dist/components/button/button.js +5 -5
- package/dist/components/button-group/button-group.component.js +2 -2
- package/dist/components/button-group/button-group.js +3 -3
- package/dist/components/card/card.component.js +2 -2
- package/dist/components/card/card.js +3 -3
- package/dist/components/checkbox/checkbox.component.js +3 -3
- package/dist/components/checkbox/checkbox.js +4 -4
- package/dist/components/combobox/combobox.component.js +5 -5
- package/dist/components/combobox/combobox.js +6 -6
- package/dist/components/details/details.component.js +3 -3
- package/dist/components/details/details.js +4 -4
- package/dist/components/dialog/dialog.component.js +5 -4
- package/dist/components/dialog/dialog.js +6 -5
- package/dist/components/divider/divider.component.js +2 -2
- package/dist/components/divider/divider.js +3 -3
- package/dist/components/drawer/drawer.component.js +5 -4
- package/dist/components/drawer/drawer.js +6 -5
- package/dist/components/dropdown/dropdown.component.js +3 -3
- package/dist/components/dropdown/dropdown.js +4 -4
- package/dist/components/file/file.component.js +5 -5
- package/dist/components/file/file.js +6 -6
- package/dist/components/header/header.component.js +4 -4
- package/dist/components/header/header.js +5 -5
- package/dist/components/icon/icon.component.js +2 -2
- package/dist/components/icon/icon.js +3 -3
- package/dist/components/icon-button/icon-button.component.js +3 -3
- package/dist/components/icon-button/icon-button.js +4 -4
- package/dist/components/input/input.component.js +4 -4
- package/dist/components/input/input.js +5 -5
- package/dist/components/menu/menu.component.js +2 -2
- package/dist/components/menu/menu.js +3 -3
- package/dist/components/menu-item/menu-item.component.js +5 -5
- package/dist/components/menu-item/menu-item.js +6 -6
- package/dist/components/menu-label/menu-label.component.js +3 -3
- package/dist/components/menu-label/menu-label.js +4 -4
- package/dist/components/nav-item/nav-item.component.js +3 -3
- package/dist/components/nav-item/nav-item.js +4 -4
- package/dist/components/optgroup/optgroup.component.js +3 -3
- package/dist/components/optgroup/optgroup.js +4 -4
- package/dist/components/option/option.component.js +3 -3
- package/dist/components/option/option.js +4 -4
- package/dist/components/popup/popup.component.js +2 -2
- package/dist/components/popup/popup.js +3 -3
- package/dist/components/prio-nav/prio-nav.component.js +8 -8
- package/dist/components/prio-nav/prio-nav.js +9 -9
- package/dist/components/progress-bar/progress-bar.component.js +2 -2
- package/dist/components/progress-bar/progress-bar.js +3 -3
- package/dist/components/progress-ring/progress-ring.component.js +2 -2
- package/dist/components/progress-ring/progress-ring.js +3 -3
- package/dist/components/radio/radio.component.js +3 -3
- package/dist/components/radio/radio.js +4 -4
- package/dist/components/radio-button/radio-button.component.js +2 -2
- package/dist/components/radio-button/radio-button.js +3 -3
- package/dist/components/radio-group/radio-group.component.js +3 -3
- package/dist/components/radio-group/radio-group.js +4 -4
- package/dist/components/range/range.component.js +4 -4
- package/dist/components/range/range.js +5 -5
- package/dist/components/range-tick/range-tick.component.js +2 -2
- package/dist/components/range-tick/range-tick.js +3 -3
- package/dist/components/resize-observer/resize-observer.component.js +2 -2
- package/dist/components/select/select.component.js +6 -6
- package/dist/components/select/select.js +7 -7
- package/dist/components/side-nav/side-nav.component.js +7 -6
- package/dist/components/side-nav/side-nav.js +8 -7
- package/dist/components/spinner/spinner.component.js +2 -2
- package/dist/components/spinner/spinner.js +3 -3
- package/dist/components/switch/switch.component.js +2 -2
- package/dist/components/switch/switch.js +3 -3
- package/dist/components/tab/tab.component.js +4 -4
- package/dist/components/tab/tab.js +5 -5
- package/dist/components/tab-group/tab-group.component.d.ts +1 -0
- package/dist/components/tab-group/tab-group.component.js +5 -5
- package/dist/components/tab-group/tab-group.js +6 -6
- package/dist/components/tab-panel/tab-panel.component.js +2 -2
- package/dist/components/tab-panel/tab-panel.js +3 -3
- package/dist/components/tag/tag.component.js +4 -4
- package/dist/components/tag/tag.js +5 -5
- package/dist/components/textarea/textarea.component.js +2 -2
- package/dist/components/textarea/textarea.js +3 -3
- package/dist/components/tooltip/tooltip.component.js +3 -3
- package/dist/components/tooltip/tooltip.js +4 -4
- package/dist/components/validate/utility.js +2 -2
- package/dist/components/validate/validate.component.js +7 -6
- package/dist/components/validate/validate.js +8 -7
- package/dist/custom-elements.json +13 -1
- package/dist/internal/closeActiveElement.d.ts +7 -0
- package/dist/styles/index.css +1 -1
- package/dist/synergy.js +96 -95
- package/package.json +1 -1
- package/dist/chunks/chunk.N26NKXSF.js.map +0 -7
- package/dist/chunks/chunk.UFLSUYMR.js.map +0 -7
- package/dist/chunks/chunk.YOIRUEK7.js.map +0 -7
- package/dist/chunks/chunk.Z5NRLDWR.js.map +0 -7
- /package/dist/chunks/{chunk.FY7TEGB6.js.map → chunk.26B4OMCP.js.map} +0 -0
- /package/dist/chunks/{chunk.YL23TQJD.js.map → chunk.26NQQ7VE.js.map} +0 -0
- /package/dist/chunks/{chunk.OI4FZSHJ.js.map → chunk.2WD2T46E.js.map} +0 -0
- /package/dist/chunks/{chunk.O3QG6DMY.js.map → chunk.33XFC7EO.js.map} +0 -0
- /package/dist/chunks/{chunk.LMZUDZ5U.js.map → chunk.3755NUDF.js.map} +0 -0
- /package/dist/chunks/{chunk.JLXTLEQ2.js.map → chunk.3IOKT2FV.js.map} +0 -0
- /package/dist/chunks/{chunk.GX7U6NXX.js.map → chunk.464PVSU3.js.map} +0 -0
- /package/dist/chunks/{chunk.5YED73MO.js.map → chunk.4FWVZWL6.js.map} +0 -0
- /package/dist/chunks/{chunk.42SO7SLL.js.map → chunk.53KWN5FZ.js.map} +0 -0
- /package/dist/chunks/{chunk.SFW6QD24.js.map → chunk.55EGUUJX.js.map} +0 -0
- /package/dist/chunks/{chunk.7SKY62NS.js.map → chunk.5TMZH4EH.js.map} +0 -0
- /package/dist/chunks/{chunk.TGVCC5V7.js.map → chunk.5XRAHVSQ.js.map} +0 -0
- /package/dist/chunks/{chunk.B3YJLMJG.js.map → chunk.5YCO2XTZ.js.map} +0 -0
- /package/dist/chunks/{chunk.2R4BAKFQ.js.map → chunk.6BYPQHXV.js.map} +0 -0
- /package/dist/chunks/{chunk.BJVZK37M.js.map → chunk.6YVGO76D.js.map} +0 -0
- /package/dist/chunks/{chunk.UNKUOZF4.js.map → chunk.7MNZPEAI.js.map} +0 -0
- /package/dist/chunks/{chunk.NL54TUMD.js.map → chunk.AATZGIXJ.js.map} +0 -0
- /package/dist/chunks/{chunk.CNJX6IOV.js.map → chunk.ALD2RXSC.js.map} +0 -0
- /package/dist/chunks/{chunk.VF6BYI74.js.map → chunk.AMMQXZ5K.js.map} +0 -0
- /package/dist/chunks/{chunk.JJYMYZLU.js.map → chunk.AWRYYAJP.js.map} +0 -0
- /package/dist/chunks/{chunk.XDAALEJT.js.map → chunk.BEFLZD5R.js.map} +0 -0
- /package/dist/chunks/{chunk.GL7H53A7.js.map → chunk.BFUWQAQ4.js.map} +0 -0
- /package/dist/chunks/{chunk.FZZW3EOY.js.map → chunk.BJGGWWFN.js.map} +0 -0
- /package/dist/chunks/{chunk.73YCT5YP.js.map → chunk.BLIVQQFJ.js.map} +0 -0
- /package/dist/chunks/{chunk.MX76EUDN.js.map → chunk.CAQ2ILVH.js.map} +0 -0
- /package/dist/chunks/{chunk.HNAX4UUU.js.map → chunk.CCRQDJTK.js.map} +0 -0
- /package/dist/chunks/{chunk.RKGPPRBN.js.map → chunk.CL7ZHAKG.js.map} +0 -0
- /package/dist/chunks/{chunk.FN4PXV26.js.map → chunk.D4YRTKMJ.js.map} +0 -0
- /package/dist/chunks/{chunk.OLCNUALI.js.map → chunk.D6U4JHI7.js.map} +0 -0
- /package/dist/chunks/{chunk.DRSMYJXR.js.map → chunk.DN6FM5BH.js.map} +0 -0
- /package/dist/chunks/{chunk.VXOOJVVK.js.map → chunk.DNC2LPCF.js.map} +0 -0
- /package/dist/chunks/{chunk.RPWTJBCA.js.map → chunk.DZ7VT6G3.js.map} +0 -0
- /package/dist/chunks/{chunk.NNYDDABY.js.map → chunk.EO35J4IB.js.map} +0 -0
- /package/dist/chunks/{chunk.LPOZ7NYH.js.map → chunk.ESYXVOS2.js.map} +0 -0
- /package/dist/chunks/{chunk.IQ6CXY4E.js.map → chunk.F7LMOI4B.js.map} +0 -0
- /package/dist/chunks/{chunk.KYSIJQYQ.js.map → chunk.FWA2X7CU.js.map} +0 -0
- /package/dist/chunks/{chunk.UAYWNEF2.js.map → chunk.GCNE2HYQ.js.map} +0 -0
- /package/dist/chunks/{chunk.NHLEDAM3.js.map → chunk.GJDKMXBK.js.map} +0 -0
- /package/dist/chunks/{chunk.SGDGAE5U.js.map → chunk.GNEGFYDF.js.map} +0 -0
- /package/dist/chunks/{chunk.E6TFC2XT.js.map → chunk.GO7XHSWZ.js.map} +0 -0
- /package/dist/chunks/{chunk.N5OXFKWE.js.map → chunk.GQNOUH5H.js.map} +0 -0
- /package/dist/chunks/{chunk.QOSIFCNH.js.map → chunk.GRJQQDSM.js.map} +0 -0
- /package/dist/chunks/{chunk.JGDQJLPH.js.map → chunk.HU7PHPNC.js.map} +0 -0
- /package/dist/chunks/{chunk.5EPRIJZV.js.map → chunk.KVI6WAZS.js.map} +0 -0
- /package/dist/chunks/{chunk.QUFCECNI.js.map → chunk.M5PO6KYD.js.map} +0 -0
- /package/dist/chunks/{chunk.YPLU64DI.js.map → chunk.MJK7QRSD.js.map} +0 -0
- /package/dist/chunks/{chunk.2I4SZAV7.js.map → chunk.N34SUR53.js.map} +0 -0
- /package/dist/chunks/{chunk.EG3PVRPD.js.map → chunk.NAD3ONL5.js.map} +0 -0
- /package/dist/chunks/{chunk.UB45VYAM.js.map → chunk.NN6TFZGN.js.map} +0 -0
- /package/dist/chunks/{chunk.FHVNKHG6.js.map → chunk.P2HF3T5Q.js.map} +0 -0
- /package/dist/chunks/{chunk.I4K7VGET.js.map → chunk.P2LVNPXE.js.map} +0 -0
- /package/dist/chunks/{chunk.XR5BS6Z4.js.map → chunk.P3PG3WBC.js.map} +0 -0
- /package/dist/chunks/{chunk.WDV7LVFR.js.map → chunk.PG24IPOB.js.map} +0 -0
- /package/dist/chunks/{chunk.63WHEGRU.js.map → chunk.POOLH7VK.js.map} +0 -0
- /package/dist/chunks/{chunk.NOCZMPAM.js.map → chunk.PR5RO5RO.js.map} +0 -0
- /package/dist/chunks/{chunk.PE454XRT.js.map → chunk.PRDSL7DR.js.map} +0 -0
- /package/dist/chunks/{chunk.EMCC5AEY.js.map → chunk.PTGS3OOA.js.map} +0 -0
- /package/dist/chunks/{chunk.ZEGZSIOB.js.map → chunk.PTLURDXN.js.map} +0 -0
- /package/dist/chunks/{chunk.ZXMSSI2X.js.map → chunk.PZ5RG2GH.js.map} +0 -0
- /package/dist/chunks/{chunk.RN7N5PH6.js.map → chunk.QA55U5RT.js.map} +0 -0
- /package/dist/chunks/{chunk.ENU6QBJY.js.map → chunk.QDKIYFDP.js.map} +0 -0
- /package/dist/chunks/{chunk.N4UI3LPL.js.map → chunk.QYLA5OW5.js.map} +0 -0
- /package/dist/chunks/{chunk.DPU6AK42.js.map → chunk.RED6MKL6.js.map} +0 -0
- /package/dist/chunks/{chunk.SUKTJ7VP.js.map → chunk.RKUIYKRM.js.map} +0 -0
- /package/dist/chunks/{chunk.Q2ZTFH4U.js.map → chunk.RNFYJI3F.js.map} +0 -0
- /package/dist/chunks/{chunk.BXH56BLP.js.map → chunk.RPRS4JLW.js.map} +0 -0
- /package/dist/chunks/{chunk.AVICVCTW.js.map → chunk.RWV4J767.js.map} +0 -0
- /package/dist/chunks/{chunk.OHFKLQBN.js.map → chunk.SERRTBJ7.js.map} +0 -0
- /package/dist/chunks/{chunk.H27ON5H7.js.map → chunk.SHZ55Q2I.js.map} +0 -0
- /package/dist/chunks/{chunk.Z5DGG2SR.js.map → chunk.SRCZROJA.js.map} +0 -0
- /package/dist/chunks/{chunk.SDTIYJSH.js.map → chunk.SRILX2YS.js.map} +0 -0
- /package/dist/chunks/{chunk.47XSMRVX.js.map → chunk.SVR4ZFO5.js.map} +0 -0
- /package/dist/chunks/{chunk.XZ6Z32Y7.js.map → chunk.TO6UTNTJ.js.map} +0 -0
- /package/dist/chunks/{chunk.DNUXSLRR.js.map → chunk.TQ2RZSJH.js.map} +0 -0
- /package/dist/chunks/{chunk.56ZXEGTN.js.map → chunk.TVPREKQK.js.map} +0 -0
- /package/dist/chunks/{chunk.TQAEON6T.js.map → chunk.U5TAJYPP.js.map} +0 -0
- /package/dist/chunks/{chunk.7UL2AO5G.js.map → chunk.USM6N6FB.js.map} +0 -0
- /package/dist/chunks/{chunk.O2YW2HRB.js.map → chunk.V3FQSIGQ.js.map} +0 -0
- /package/dist/chunks/{chunk.R3QKOXPD.js.map → chunk.V7XNA4W6.js.map} +0 -0
- /package/dist/chunks/{chunk.IMSDN6MR.js.map → chunk.VAD5O2AN.js.map} +0 -0
- /package/dist/chunks/{chunk.ZYFJPZSJ.js.map → chunk.VLKWA4J3.js.map} +0 -0
- /package/dist/chunks/{chunk.F7J77D2F.js.map → chunk.WOU4GA5I.js.map} +0 -0
- /package/dist/chunks/{chunk.HLWROX3O.js.map → chunk.X3UXKDXI.js.map} +0 -0
- /package/dist/chunks/{chunk.DSSVPSWK.js.map → chunk.X5LL6UJI.js.map} +0 -0
- /package/dist/chunks/{chunk.DXLVSIU4.js.map → chunk.XTMRNGZZ.js.map} +0 -0
- /package/dist/chunks/{chunk.KT4S4ZB6.js.map → chunk.YMIMO2DN.js.map} +0 -0
- /package/dist/chunks/{chunk.ERRLJKSN.js.map → chunk.YW255WQ5.js.map} +0 -0
- /package/dist/chunks/{chunk.WGOSSSAH.js.map → chunk.ZF7JI7YE.js.map} +0 -0
- /package/dist/chunks/{chunk.A5J5X63K.js.map → chunk.ZPWCS7OO.js.map} +0 -0
|
@@ -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
|
SynCard
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.7MNZPEAI.js";
|
|
4
4
|
|
|
5
5
|
// src/components/card/card.ts
|
|
6
6
|
var card_default = SynCard;
|
|
@@ -9,4 +9,4 @@ SynCard.define("syn-card");
|
|
|
9
9
|
export {
|
|
10
10
|
card_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.V3FQSIGQ.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk.NLYVOJGK.js";
|
|
10
10
|
import {
|
|
11
11
|
SynergyElement
|
|
12
|
-
} from "./chunk.
|
|
12
|
+
} from "./chunk.Z2XH5OM4.js";
|
|
13
13
|
import {
|
|
14
14
|
__decorateClass
|
|
15
15
|
} from "./chunk.2GFK6XTO.js";
|
|
@@ -160,4 +160,4 @@ __decorateClass([
|
|
|
160
160
|
export {
|
|
161
161
|
SynMenu
|
|
162
162
|
};
|
|
163
|
-
//# sourceMappingURL=chunk.
|
|
163
|
+
//# sourceMappingURL=chunk.V7XNA4W6.js.map
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk.NLYVOJGK.js";
|
|
13
13
|
import {
|
|
14
14
|
SynergyElement
|
|
15
|
-
} from "./chunk.
|
|
15
|
+
} from "./chunk.Z2XH5OM4.js";
|
|
16
16
|
import {
|
|
17
17
|
__decorateClass
|
|
18
18
|
} from "./chunk.2GFK6XTO.js";
|
|
@@ -111,4 +111,4 @@ SynAccordion = __decorateClass([
|
|
|
111
111
|
export {
|
|
112
112
|
SynAccordion
|
|
113
113
|
};
|
|
114
|
-
//# sourceMappingURL=chunk.
|
|
114
|
+
//# sourceMappingURL=chunk.VAD5O2AN.js.map
|
|
@@ -3,13 +3,16 @@ import {
|
|
|
3
3
|
} from "./chunk.H3HTSQKK.js";
|
|
4
4
|
import {
|
|
5
5
|
SynDivider
|
|
6
|
-
} from "./chunk.
|
|
6
|
+
} from "./chunk.PTLURDXN.js";
|
|
7
7
|
import {
|
|
8
8
|
SynDrawer
|
|
9
|
-
} from "./chunk.
|
|
9
|
+
} from "./chunk.U5OBVAVH.js";
|
|
10
10
|
import {
|
|
11
11
|
unlockBodyScrolling
|
|
12
12
|
} from "./chunk.5732DMBC.js";
|
|
13
|
+
import {
|
|
14
|
+
blurActiveElement
|
|
15
|
+
} from "./chunk.WXVOTRW5.js";
|
|
13
16
|
import {
|
|
14
17
|
waitForEvent
|
|
15
18
|
} from "./chunk.C2ENQBPM.js";
|
|
@@ -32,7 +35,7 @@ import {
|
|
|
32
35
|
} from "./chunk.NLYVOJGK.js";
|
|
33
36
|
import {
|
|
34
37
|
SynergyElement
|
|
35
|
-
} from "./chunk.
|
|
38
|
+
} from "./chunk.Z2XH5OM4.js";
|
|
36
39
|
import {
|
|
37
40
|
__decorateClass
|
|
38
41
|
} from "./chunk.2GFK6XTO.js";
|
|
@@ -136,20 +139,19 @@ var SynSideNav = class extends SynergyElement {
|
|
|
136
139
|
}
|
|
137
140
|
}
|
|
138
141
|
handleOpenChange() {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}
|
|
142
|
+
if (!this.open) {
|
|
143
|
+
blurActiveElement(this);
|
|
144
|
+
}
|
|
145
|
+
if (!this.rail) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
this.isAnimationActive = true;
|
|
149
|
+
if (!this.open) {
|
|
150
|
+
this.forceDrawerVisibilityForRailMode();
|
|
151
|
+
} else {
|
|
152
|
+
waitForEvent(this.drawer, "syn-after-show").then(() => {
|
|
153
|
+
this.isAnimationActive = false;
|
|
154
|
+
});
|
|
153
155
|
}
|
|
154
156
|
}
|
|
155
157
|
handleFocusTrapping() {
|
|
@@ -230,7 +232,7 @@ var SynSideNav = class extends SynergyElement {
|
|
|
230
232
|
@syn-request-close=${this.handleRequestClose}
|
|
231
233
|
>
|
|
232
234
|
<div part="content-container" class="side-nav__content-container">
|
|
233
|
-
<slot part="content"
|
|
235
|
+
<slot part="content"></slot>
|
|
234
236
|
</div>
|
|
235
237
|
|
|
236
238
|
<footer class="side-nav__footer" part="footer-container" slot="footer">
|
|
@@ -315,4 +317,4 @@ setDefaultAnimation("sideNav.overlay.hide", {
|
|
|
315
317
|
export {
|
|
316
318
|
SynSideNav
|
|
317
319
|
};
|
|
318
|
-
//# sourceMappingURL=chunk.
|
|
320
|
+
//# sourceMappingURL=chunk.VAP66VKR.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/side-nav/side-nav.component.ts"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable @typescript-eslint/unbound-method */\nimport { classMap } from 'lit/directives/class-map.js';\nimport type { CSSResultGroup } from 'lit';\nimport { html } from 'lit/static-html.js';\nimport { property, query, state } from 'lit/decorators.js';\nimport { HasSlotController } from '../../internal/slot.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport styles from './side-nav.styles.js';\nimport SynDrawer from '../drawer/drawer.component.js';\nimport SynDivider from '../divider/divider.component.js';\nimport { waitForEvent } from '../../internal/event.js';\nimport { watch } from '../../internal/watch.js';\nimport { getAnimation, setAnimation, setDefaultAnimation } from '../../utilities/animation-registry.js';\nimport { LocalizeController } from '../../utilities/localize.js';\nimport { unlockBodyScrolling } from '../../internal/scroll.js';\nimport { blurActiveElement } from '../../internal/closeActiveElement.js';\n\n/**\n * @summary The <syn-side-nav /> element contains secondary navigation and fits below the header.\n * It can be used to group multiple navigation items (<syn-nav-item />s) together.\n *\n * @example\n * <syn-side-nav open>\n * <syn-nav-item >Item 1</syn-nav-item>\n * <syn-nav-item divider>Item 2</syn-nav-item>\n * </syn-side-nav>\n *\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-side-nav--docs\n * @status stable\n * @since 1.14.0\n *\n * @dependency syn-divider\n * @dependency syn-drawer\n *\n * @slot - The main content of the side-nav. Used for <syn-nav-item /> elements.\n * @slot footer - The footer content of the side-nav. Used for <syn-nav-item /> elements.\n * Please avoid having to many nav-items as it can massively influence the user experience.\n *\n * @event syn-show - Emitted when the side-nav opens.\n * @event syn-after-show - Emitted after the side-nav opens and all animations are complete.\n * @event syn-hide - Emitted when the side-nav closes.\n * @event syn-after-hide - Emitted after the side-nav closes and all animations are complete.\n *\n * @csspart base - The components base wrapper\n * @csspart drawer - The drawer that is used under the hood for creating the side-nav\n * @csspart content-container - The components main content container\n * @csspart content - The components main content\n * @csspart footer-container - The components footer content container\n (where the footer slot content is rendered)\n * @csspart footer-divider - The components footer divider\n * @csspart footer - The components footer content\n * @csspart overlay - The overlay that covers the screen behind the side-nav.\n * @csspart panel - The side-nav's panel (where the whole content is rendered).\n * @csspart body - The side-nav's body (where the default slot content is rendered)\n * @csspart drawer__base - The drawer's base wrapper\n *\n * @cssproperty --side-nav-open-width - The width of the side-nav if in open state\n *\n * @animation sideNav.showNonRail - The animation to use when showing the side-nav in non-rail mode.\n * @animation sideNav.showRail - The animation to use when showing the side-nav in rail mode.\n * @animation sideNav.hideNonRail - The animation to use when hiding the side-nav in non-rail mode.\n * @animation sideNav.hideRail - The animation to use when hiding the side-nav in rail mode.\n * @animation sideNav.overlay.show - The animation to use when showing the side-nav's overlay.\n * @animation sideNav.overlay.hide - The animation to use when hiding the side-nav's overlay.\n */\nexport default class SynSideNav extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles];\n\n static dependencies = {\n 'syn-divider': SynDivider,\n 'syn-drawer': SynDrawer,\n };\n\n private readonly hasSlotController = new HasSlotController(this, '[default]', 'footer');\n\n private readonly localize = new LocalizeController(this);\n\n private timeout: NodeJS.Timeout;\n\n /**\n * Current animation active state\n */\n @state() private isAnimationActive = false;\n\n /**\n * Reference to the drawer\n */\n @query('.side-nav__drawer') private drawer: SynDrawer;\n\n /**\n * Indicates whether or not the side-nav is open.\n * You can toggle this attribute to show and hide the side-nav, or you can use the `show()` and\n * `hide()` methods and this attribute will reflect the side-nav's open state.\n *\n * Depending if the rail attribute is set or not, the behavior will differ.\n *\n * __Non rail__:\n * With `open` will show the side-nav.\n * Without `open`, the side-nav will be hidden.\n *\n * __Rail__:\n * With `open` will show the whole side-nav with an overlay for touch devices\n * or without an overlay for non-touch devices.\n * Without `open`, the side-nav will only show the prefix of nav-item's.\n *\n */\n @property({ reflect: true, type: Boolean }) open = false;\n\n /**\n * Use the rail attribute to only show the prefix of navigation items in closed state.\n * This will open on hover on the rail navigation.\n * On touch devices the navigation opens on click and shows an overlay.\n *\n * Note: The Rail is only an option if all Navigation Items on the first level have an Icon.\n * If this is not the case you should use a burger navigation.\n */\n @property({ reflect: true, type: Boolean }) rail = false;\n\n /**\n * By default, the side-nav traps the focus if in non-rail mode and open.\n * To disable the focus trapping, set this attribute.\n */\n @property({ attribute: 'no-focus-trapping', reflect: true, type: Boolean }) noFocusTrapping = false;\n\n private setDelayedCallback(callback: () => void) {\n clearTimeout(this.timeout);\n this.timeout = setTimeout(callback, 100);\n }\n\n private handleMouseEnter() {\n // Debounce mouse events, to avoid infinite loop of open / closing in rail mode\n this.setDelayedCallback(() => {\n this.open = true;\n });\n }\n\n private handleMouseLeave() {\n // Debounce mouse events, to avoid infinite loop of open / closing in rail mode\n this.setDelayedCallback(() => {\n this.open = false;\n });\n }\n\n private handleRequestClose() {\n if (this.open) {\n this.open = false;\n }\n }\n\n private addMouseListener() {\n this.drawer.shadowRoot!.querySelector('.drawer__panel')?.addEventListener('mouseenter', this.handleMouseEnter);\n this.drawer.shadowRoot!.querySelector('.drawer__panel')?.addEventListener('mouseleave', this.handleMouseLeave);\n }\n\n private removeMouseListener() {\n this.drawer.shadowRoot!.querySelector('.drawer__panel')?.removeEventListener('mouseenter', this.handleMouseEnter);\n this.drawer.shadowRoot!.querySelector('.drawer__panel')?.removeEventListener('mouseleave', this.handleMouseLeave);\n }\n\n private setDrawerVisibility(isVisible: boolean) {\n (this.drawer.shadowRoot!.querySelector('.drawer') as HTMLElement).hidden = !isVisible;\n this.drawer.shadowRoot!.querySelector('.drawer__panel')?.setAttribute('aria-hidden', isVisible ? 'false' : 'true');\n }\n\n private forceDrawerVisibilityForRailMode() {\n return waitForEvent(this.drawer, 'syn-after-hide').then(() => {\n this.setDrawerVisibility(true);\n this.isAnimationActive = false;\n });\n }\n\n private setDrawerAnimations() {\n const showAnimation = getAnimation(this, `sideNav.show${this.rail ? 'Rail' : 'NonRail'}`, { dir: this.localize.dir() });\n const hideAnimation = getAnimation(this, `sideNav.hide${this.rail ? 'Rail' : 'NonRail'}`, { dir: this.localize.dir() });\n const hideOverlay = getAnimation(this, 'sideNav.overlay.hide', { dir: this.localize.dir() });\n const showOverlay = getAnimation(this, 'sideNav.overlay.show', { dir: this.localize.dir() });\n\n setAnimation(this.drawer, 'drawer.showStart', showAnimation);\n setAnimation(this.drawer, 'drawer.hideStart', hideAnimation);\n setAnimation(this.drawer, 'drawer.overlay.hide', hideOverlay);\n setAnimation(this.drawer, 'drawer.overlay.show', showOverlay);\n }\n\n @watch('rail', { waitUntilFirstUpdate: true })\n handleModeChange() {\n this.setDrawerAnimations();\n\n if (this.rail) {\n this.addMouseListener();\n // Force drawer visibility for rail mode\n this.setDrawerVisibility(true);\n } else {\n this.removeMouseListener();\n // Remove forcing of drawer visibility for rail mode if not open\n if (!this.open) {\n this.setDrawerVisibility(false);\n }\n }\n }\n\n @watch('open', { waitUntilFirstUpdate: true })\n handleOpenChange() {\n if (!this.open) {\n blurActiveElement(this);\n }\n\n if (!this.rail) {\n return;\n }\n\n this.isAnimationActive = true;\n\n if (!this.open) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.forceDrawerVisibilityForRailMode();\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n waitForEvent(this.drawer, 'syn-after-show').then(() => {\n this.isAnimationActive = false;\n });\n }\n }\n\n @watch('noFocusTrapping', { waitUntilFirstUpdate: true })\n handleFocusTrapping() {\n if (!this.rail) {\n if (this.noFocusTrapping) {\n this.drawer.modal.activateExternal();\n } else {\n this.drawer.modal.deactivateExternal();\n }\n }\n }\n\n /** Shows the side-nav. */\n async show() {\n if (this.open) {\n return undefined;\n }\n this.open = true;\n\n return waitForEvent(this.drawer, 'syn-after-show');\n }\n\n /** Hides the side-nav */\n async hide() {\n if (!this.open) {\n return undefined;\n }\n\n this.open = false;\n\n return waitForEvent(this.drawer, 'syn-after-hide');\n }\n\n constructor() {\n super();\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.addEventListener('syn-initial-focus', (event) => {\n if (this.rail) {\n // We need to do this, to stop the drawer from giving focus to the panel\n event.preventDefault();\n\n // The originalTrigger needs to be removed, otherwise when closing the drawer,\n // the first focused nav-item is focused again...\n // eslint-disable-next-line @typescript-eslint/dot-notation\n this.drawer['originalTrigger'] = null;\n }\n });\n\n this.addEventListener('focusin', (event) => {\n const targetTag = (event.target as HTMLElement).tagName.toLowerCase();\n // Open the side-nav if it`s in rail mode, closed and the focused element is a nav-item\n if (targetTag === 'syn-nav-item' && this.rail && !this.open) {\n this.open = true;\n }\n });\n\n this.addEventListener('focusout', (event) => {\n const targetTag = (event.target as HTMLElement).tagName.toLowerCase();\n const relatedTargetTag = (event.relatedTarget as HTMLElement)?.tagName.toLowerCase();\n\n // Close the side-nav, if it`s in rail mode, open and the next focused element\n // is no longer a nav-item\n if (targetTag === 'syn-nav-item' && relatedTargetTag !== 'syn-nav-item' && this.rail && this.open) {\n this.open = false;\n }\n });\n }\n\n /**\n * Initial setup for first render like special rail mode handling and drawer animations.\n * */\n firstUpdated() {\n this.setDrawerAnimations();\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.drawer.updateComplete.then(() => {\n // change tabindex of drawer to make only nav-items focusable and not the panel of the drawer\n (this.drawer.shadowRoot!.querySelector('.drawer__panel') as HTMLElement).tabIndex = -1;\n });\n\n if (this.rail) {\n // Wait for the drawer`s update to be completed\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.drawer.updateComplete.then(() => {\n this.addMouseListener();\n // set initial visibility of drawer for rail mode\n this.setDrawerVisibility(true);\n });\n } else if (this.noFocusTrapping) {\n // Disable the focus trapping of the modal\n this.drawer.modal.activateExternal();\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n // Remove modal listeners\n if (this.drawer) {\n unlockBodyScrolling(this.drawer);\n this.drawer.modal.deactivate();\n }\n }\n\n render() {\n const isTouch = window.navigator.maxTouchPoints > 0 || !!('ontouchstart' in window);\n const hasFooter = this.hasSlotController.test('footer');\n\n /* eslint-disable lit/no-invalid-html */\n /* eslint-disable @typescript-eslint/unbound-method */\n return html`\n <nav\n class=${classMap({\n 'side-nav': true,\n 'side-nav--animation': this.isAnimationActive,\n 'side-nav--fix': !this.rail,\n 'side-nav--has-footer': hasFooter,\n 'side-nav--open': this.open,\n 'side-nav--rail': this.rail,\n 'side-nav--touch': isTouch,\n })}\n part=\"base\"\n >\n \n <syn-drawer\n class=\"side-nav__drawer\"\n ?contained=${this.rail}\n exportparts=\"overlay,panel,body,base:drawer__base\"\n label=${this.localize.term('sideNav')}\n no-header\n ?open=${this.open}\n part=\"drawer\"\n placement=\"start\"\n @syn-request-close=${this.handleRequestClose} \n >\n <div part=\"content-container\" class=\"side-nav__content-container\">\n <slot part=\"content\"></slot>\n </div>\n \n <footer class=\"side-nav__footer\" part=\"footer-container\" slot=\"footer\"> \n\n ${hasFooter ? html`<syn-divider part=\"footer-divider\" class=\"side-nav__footer-divider\"></syn-divider>` : ''}\n <slot name=\"footer\" part=\"footer\" ></slot> \n \n </footer>\n\n </syn-drawer>\n\n </nav>\n `;\n /* eslint-enable lit/no-invalid-html */\n /* eslint-enable @typescript-eslint/unbound-method */\n }\n}\n\n// Show animations\nsetDefaultAnimation('sideNav.showRail', {\n keyframes: [\n { width: 'var(--side-nav-rail-width)' },\n { width: 'var(--side-nav-open-width)' },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nsetDefaultAnimation('sideNav.showNonRail', {\n keyframes: [\n { opacity: 0, translate: '-100%' },\n { opacity: 1, translate: '0' },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\n// Hide animations\nsetDefaultAnimation('sideNav.hideNonRail', {\n keyframes: [\n { opacity: 1, translate: '0' },\n { opacity: 0, translate: '-100%' },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\nsetDefaultAnimation('sideNav.hideRail', {\n keyframes: [\n { width: 'var(--side-nav-open-width)' },\n { width: 'var(--side-nav-rail-width)' },\n ],\n options: { duration: 250, easing: 'ease' },\n});\n\n// Overlay animations\nsetDefaultAnimation('sideNav.overlay.show', {\n keyframes: [{ opacity: 0 }, { opacity: 1 }],\n options: { duration: 250 },\n});\n\nsetDefaultAnimation('sideNav.overlay.hide', {\n keyframes: [{ opacity: 1 }, { opacity: 0 }],\n options: { duration: 250 },\n});\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynOptgroup
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.AWRYYAJP.js";
|
|
4
4
|
|
|
5
5
|
// src/components/optgroup/optgroup.ts
|
|
6
6
|
var optgroup_default = SynOptgroup;
|
|
@@ -9,4 +9,4 @@ SynOptgroup.define("syn-optgroup");
|
|
|
9
9
|
export {
|
|
10
10
|
optgroup_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.VLKWA4J3.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk.DZ7YIR5N.js";
|
|
7
7
|
import {
|
|
8
8
|
SynIcon
|
|
9
|
-
} from "./chunk.
|
|
9
|
+
} from "./chunk.33XFC7EO.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.
|
|
18
|
+
} from "./chunk.Z2XH5OM4.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.
|
|
147
|
+
//# sourceMappingURL=chunk.WOU4GA5I.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// src/internal/closeActiveElement.ts
|
|
2
|
+
var blurActiveElement = (elm) => {
|
|
3
|
+
var _a;
|
|
4
|
+
const { activeElement } = document;
|
|
5
|
+
if (activeElement && elm.contains(activeElement)) {
|
|
6
|
+
(_a = document.activeElement) == null ? void 0 : _a.blur();
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export {
|
|
11
|
+
blurActiveElement
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=chunk.WXVOTRW5.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/internal/closeActiveElement.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Calls the blur method on the current active element if it is a child of the provided element.\n * Needed for fixing a11y errors in console.\n * @see https://github.com/shoelace-style/shoelace/issues/2283\n * @param elm The element to check\n */\nexport const blurActiveElement = (elm: HTMLElement) => {\n const { activeElement } = document;\n if (activeElement && elm.contains(activeElement)) {\n (document.activeElement as HTMLElement)?.blur();\n }\n};\n"],
|
|
5
|
+
"mappings": ";AAMO,IAAM,oBAAoB,CAAC,QAAqB;AANvD;AAOE,QAAM,EAAE,cAAc,IAAI;AAC1B,MAAI,iBAAiB,IAAI,SAAS,aAAa,GAAG;AAChD,KAAC,cAAS,kBAAT,mBAAwC;AAAA,EAC3C;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk.5T3OGIGW.js";
|
|
4
4
|
import {
|
|
5
5
|
icon_default
|
|
6
|
-
} from "./chunk.
|
|
6
|
+
} from "./chunk.NN6TFZGN.js";
|
|
7
7
|
import {
|
|
8
8
|
HasSlotController
|
|
9
9
|
} from "./chunk.WVVQK5TE.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from "./chunk.NLYVOJGK.js";
|
|
19
19
|
import {
|
|
20
20
|
SynergyElement
|
|
21
|
-
} from "./chunk.
|
|
21
|
+
} from "./chunk.Z2XH5OM4.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.
|
|
187
|
+
//# sourceMappingURL=chunk.X3UXKDXI.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynButtonGroup
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.5YCO2XTZ.js";
|
|
4
4
|
|
|
5
5
|
// src/components/button-group/button-group.ts
|
|
6
6
|
var button_group_default = SynButtonGroup;
|
|
@@ -9,4 +9,4 @@ SynButtonGroup.define("syn-button-group");
|
|
|
9
9
|
export {
|
|
10
10
|
button_group_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.X5LL6UJI.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk.43YNZAWL.js";
|
|
7
7
|
import {
|
|
8
8
|
SynIconButton
|
|
9
|
-
} from "./chunk.
|
|
9
|
+
} from "./chunk.WOU4GA5I.js";
|
|
10
10
|
import {
|
|
11
11
|
LocalizeController
|
|
12
12
|
} from "./chunk.GIU3H3J3.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from "./chunk.NLYVOJGK.js";
|
|
19
19
|
import {
|
|
20
20
|
SynergyElement
|
|
21
|
-
} from "./chunk.
|
|
21
|
+
} from "./chunk.Z2XH5OM4.js";
|
|
22
22
|
import {
|
|
23
23
|
__decorateClass
|
|
24
24
|
} from "./chunk.2GFK6XTO.js";
|
|
@@ -118,4 +118,4 @@ __decorateClass([
|
|
|
118
118
|
export {
|
|
119
119
|
SynTab
|
|
120
120
|
};
|
|
121
|
-
//# sourceMappingURL=chunk.
|
|
121
|
+
//# sourceMappingURL=chunk.XTMRNGZZ.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynRadioButton
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.P2HF3T5Q.js";
|
|
4
4
|
|
|
5
5
|
// src/components/radio-button/radio-button.ts
|
|
6
6
|
var radio_button_default = SynRadioButton;
|
|
@@ -9,4 +9,4 @@ SynRadioButton.define("syn-radio-button");
|
|
|
9
9
|
export {
|
|
10
10
|
radio_button_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.YMIMO2DN.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynergyElement
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.Z2XH5OM4.js";
|
|
4
4
|
|
|
5
5
|
// src/components/validate/utility.ts
|
|
6
6
|
var WhitelistedSynergyFormEventNames = [
|
|
@@ -33,4 +33,4 @@ export {
|
|
|
33
33
|
normalizeEventAttribute,
|
|
34
34
|
getEventNameForElement
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=chunk.
|
|
36
|
+
//# sourceMappingURL=chunk.YW255WQ5.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.
|
|
84
|
+
SynergyElement.version = "2.22.4";
|
|
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.
|
|
96
|
+
//# sourceMappingURL=chunk.Z2XH5OM4.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/internal/synergy-element.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\n// Match event type name strings that are registered on GlobalEventHandlersEventMap...\ntype EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? // ...where the event detail is an object...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? // ...that is non-empty...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? never\n : // ...and has at least one non-optional property\n Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? never\n : T\n : never\n : never;\n\n// The inverse of the above (match any type that doesn't match EventTypeRequiresDetail)\ntype EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? T\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? T\n : never\n : T\n : T;\n\n// `keyof EventTypesWithRequiredDetail` lists all registered event types that require detail\ntype EventTypesWithRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;\n};\n\n// `keyof EventTypesWithoutRequiredDetail` lists all registered event types that do NOT require detail\ntype EventTypesWithoutRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;\n};\n\n// Helper to make a specific property of an object non-optional\ntype WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };\n\n// Given an event name string, get a valid type for the options to initialize the event that is more restrictive than\n// just CustomEventInit when appropriate (validate the type of the event detail, and require it to be provided if the\n// event requires it)\ntype SynEventInit<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>, 'detail'>\n : CustomEventInit\n : CustomEventInit;\n\n// Given an event name string, get the type of the event\ntype GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown>\n ? GlobalEventHandlersEventMap[T]\n : CustomEvent<unknown>\n : CustomEvent<unknown>;\n\n// `keyof ValidEventTypeMap` is equivalent to `keyof GlobalEventHandlersEventMap` but gives a nicer error message\ntype ValidEventTypeMap = EventTypesWithRequiredDetail | EventTypesWithoutRequiredDetail;\n\nexport default class SynergyElement extends LitElement {\n // Make localization attributes reactive\n @property() dir: string;\n @property() lang: string;\n\n /** Emits a custom event with more convenient defaults. */\n emit<T extends string & keyof EventTypesWithoutRequiredDetail>(\n name: EventTypeDoesNotRequireDetail<T>,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T>;\n emit<T extends string & keyof EventTypesWithRequiredDetail>(\n name: EventTypeRequiresDetail<T>,\n options: SynEventInit<T>\n ): GetCustomEventType<T>;\n emit<T extends string & keyof ValidEventTypeMap>(\n name: T,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T> {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event as GetCustomEventType<T>;\n }\n\n /* eslint-disable */\n // @ts-expect-error This is auto-injected at build time.\n static version = \"2.22.
|
|
4
|
+
"sourcesContent": ["/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\n// Match event type name strings that are registered on GlobalEventHandlersEventMap...\ntype EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? // ...where the event detail is an object...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? // ...that is non-empty...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? never\n : // ...and has at least one non-optional property\n Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? never\n : T\n : never\n : never;\n\n// The inverse of the above (match any type that doesn't match EventTypeRequiresDetail)\ntype EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? T\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? T\n : never\n : T\n : T;\n\n// `keyof EventTypesWithRequiredDetail` lists all registered event types that require detail\ntype EventTypesWithRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;\n};\n\n// `keyof EventTypesWithoutRequiredDetail` lists all registered event types that do NOT require detail\ntype EventTypesWithoutRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;\n};\n\n// Helper to make a specific property of an object non-optional\ntype WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };\n\n// Given an event name string, get a valid type for the options to initialize the event that is more restrictive than\n// just CustomEventInit when appropriate (validate the type of the event detail, and require it to be provided if the\n// event requires it)\ntype SynEventInit<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>, 'detail'>\n : CustomEventInit\n : CustomEventInit;\n\n// Given an event name string, get the type of the event\ntype GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown>\n ? GlobalEventHandlersEventMap[T]\n : CustomEvent<unknown>\n : CustomEvent<unknown>;\n\n// `keyof ValidEventTypeMap` is equivalent to `keyof GlobalEventHandlersEventMap` but gives a nicer error message\ntype ValidEventTypeMap = EventTypesWithRequiredDetail | EventTypesWithoutRequiredDetail;\n\nexport default class SynergyElement extends LitElement {\n // Make localization attributes reactive\n @property() dir: string;\n @property() lang: string;\n\n /** Emits a custom event with more convenient defaults. */\n emit<T extends string & keyof EventTypesWithoutRequiredDetail>(\n name: EventTypeDoesNotRequireDetail<T>,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T>;\n emit<T extends string & keyof EventTypesWithRequiredDetail>(\n name: EventTypeRequiresDetail<T>,\n options: SynEventInit<T>\n ): GetCustomEventType<T>;\n emit<T extends string & keyof ValidEventTypeMap>(\n name: T,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T> {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event as GetCustomEventType<T>;\n }\n\n /* eslint-disable */\n // @ts-expect-error This is auto-injected at build time.\n static version = \"2.22.4\";\n \n\n static define(name: string, elementConstructor = this, options: ElementDefinitionOptions = {}) {\n const currentlyRegisteredConstructor = customElements.get(name) as\n | CustomElementConstructor\n | typeof SynergyElement;\n\n if (!currentlyRegisteredConstructor) {\n // We try to register as the actual class first. If for some reason that fails, we fall back to anonymous classes.\n // customElements can only have 1 class of the same \"object id\" per registry, so that is why the try {} catch {} exists.\n // Some tools like Jest Snapshots and if you import the constructor and call `new SynButton()` they will fail with\n // the anonymous class version.\n try {\n customElements.define(name, elementConstructor, options);\n } catch (_err) {\n customElements.define(name, class extends elementConstructor {}, options);\n }\n return;\n }\n\n let newVersion = ' (unknown version)';\n let existingVersion = newVersion;\n\n if ('version' in elementConstructor && elementConstructor.version) {\n newVersion = ' v' + elementConstructor.version;\n }\n\n if ('version' in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = ' v' + currentlyRegisteredConstructor.version;\n }\n\n // Need to make sure we're not working with null or empty strings before doing version comparisons.\n if (newVersion && existingVersion && newVersion === existingVersion) {\n // If versions match, we don't need to warn anyone. Carry on.\n return;\n }\n\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n\n static dependencies: Record<string, typeof SynergyElement> = {};\n\n constructor() {\n super();\n Object.entries((this.constructor as typeof SynergyElement).dependencies).forEach(([name, component]) => {\n (this.constructor as typeof SynergyElement).define(name, component);\n });\n }\n\n #hasRecordedInitialProperties = false;\n\n // Store the constructor value of all `static properties = {}`\n initialReflectedProperties: Map<string, unknown> = new Map();\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (!this.#hasRecordedInitialProperties) {\n (this.constructor as typeof SynergyElement).elementProperties.forEach(\n (obj, prop: keyof typeof this & string) => {\n // eslint-disable-next-line\n if (obj.reflect && this[prop] != null) {\n this.initialReflectedProperties.set(prop, this[prop]);\n }\n }\n );\n\n this.#hasRecordedInitialProperties = true;\n }\n\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n protected willUpdate(changedProperties: Parameters<LitElement['willUpdate']>[0]): void {\n super.willUpdate(changedProperties);\n\n // Run the morph fixing *after* willUpdate.\n this.initialReflectedProperties.forEach((value, prop: string & keyof typeof this) => {\n // If a prop changes to `null`, we assume this happens via an attribute changing to `null`.\n // eslint-disable-next-line\n if (changedProperties.has(prop) && this[prop] == null) {\n // Silly type gymnastics to appease the compiler.\n (this as Record<string, unknown>)[prop] = value;\n }\n });\n }\n}\n\nexport interface SynergyFormControl extends SynergyElement {\n // Form attributes\n name: string;\n value: unknown;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n form?: string;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | 'any';\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n\n // Form validation properties\n readonly validity: ValidityState;\n readonly validationMessage: string;\n\n // Form validation methods\n checkValidity: () => boolean;\n getForm: () => HTMLFormElement | null;\n reportValidity: () => boolean;\n setCustomValidity: (message: string) => void;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;AAQA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AATzB;AAwEA,IAAqB,iBAArB,cAA4C,WAAW;AAAA,EA8ErD,cAAc;AACZ,UAAM;AAMR,sDAAgC;AAGhC;AAAA,sCAAmD,oBAAI,IAAI;AARzD,WAAO,QAAS,KAAK,YAAsC,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,SAAS,MAAM;AACtG,MAAC,KAAK,YAAsC,OAAO,MAAM,SAAS;AAAA,IACpE,CAAC;AAAA,EACH;AAAA,EArEA,KACE,MACA,SACuB;AACvB,UAAM,QAAQ,IAAI,YAAY,MAAM;AAAA,MAClC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQ,CAAC;AAAA,OACN,QACJ;AAED,SAAK,cAAc,KAAK;AAExB,WAAO;AAAA,EACT;AAAA,EAOA,OAAO,OAAO,MAAc,qBAAqB,MAAM,UAAoC,CAAC,GAAG;AAC7F,UAAM,iCAAiC,eAAe,IAAI,IAAI;AAI9D,QAAI,CAAC,gCAAgC;AAKnC,UAAI;AACF,uBAAe,OAAO,MAAM,oBAAoB,OAAO;AAAA,MACzD,SAAS,MAAM;AACb,uBAAe,OAAO,MAAM,cAAc,mBAAmB;AAAA,QAAC,GAAG,OAAO;AAAA,MAC1E;AACA;AAAA,IACF;AAEA,QAAI,aAAa;AACjB,QAAI,kBAAkB;AAEtB,QAAI,aAAa,sBAAsB,mBAAmB,SAAS;AACjE,mBAAa,OAAO,mBAAmB;AAAA,IACzC;AAEA,QAAI,aAAa,kCAAkC,+BAA+B,SAAS;AACzF,wBAAkB,OAAO,+BAA+B;AAAA,IAC1D;AAGA,QAAI,cAAc,mBAAmB,eAAe,iBAAiB;AAEnE;AAAA,IACF;AAEA,YAAQ;AAAA,MACN,0BAA0B,IAAI,IAAI,UAAU,UAAU,IAAI,IAAI,eAAe;AAAA,IAC/E;AAAA,EACF;AAAA,EAgBA,yBAAyB,MAAc,UAAyB,UAAyB;AACvF,QAAI,CAAC,mBAAK,gCAA+B;AACvC,MAAC,KAAK,YAAsC,kBAAkB;AAAA,QAC5D,CAAC,KAAK,SAAqC;AAEzC,cAAI,IAAI,WAAW,KAAK,IAAI,KAAK,MAAM;AACrC,iBAAK,2BAA2B,IAAI,MAAM,KAAK,IAAI,CAAC;AAAA,UACtD;AAAA,QACF;AAAA,MACF;AAEA,yBAAK,+BAAgC;AAAA,IACvC;AAEA,UAAM,yBAAyB,MAAM,UAAU,QAAQ;AAAA,EACzD;AAAA,EAEU,WAAW,mBAAkE;AACrF,UAAM,WAAW,iBAAiB;AAGlC,SAAK,2BAA2B,QAAQ,CAAC,OAAO,SAAqC;AAGnF,UAAI,kBAAkB,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,MAAM;AAErD,QAAC,KAAiC,IAAI,IAAI;AAAA,MAC5C;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAnCE;AAAA;AAAA;AArFmB,eAiCZ,UAAU;AAjCE,eA4EZ,eAAsD,CAAC;AA1ElD;AAAA,EAAX,SAAS;AAAA,GAFS,eAEP;AACA;AAAA,EAAX,SAAS;AAAA,GAHS,eAGP;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynDialog
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.GMHRTZ25.js";
|
|
4
4
|
|
|
5
5
|
// src/components/dialog/dialog.ts
|
|
6
6
|
var dialog_default = SynDialog;
|
|
@@ -9,4 +9,4 @@ SynDialog.define("syn-dialog");
|
|
|
9
9
|
export {
|
|
10
10
|
dialog_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.ZF7JI7YE.js.map
|