@synergy-design-system/components 2.10.2 → 2.11.1
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.LNY6YUO6.js → chunk.22GTODGK.js} +2 -2
- package/dist/chunks/{chunk.65L6WCR6.js → chunk.2QWFZFFH.js} +2 -2
- package/dist/chunks/{chunk.OBS3SYSN.js → chunk.2TICTVUA.js} +2 -2
- package/dist/chunks/{chunk.RJA3VP67.js → chunk.3EBU2LXD.js} +2 -2
- package/dist/chunks/{chunk.KSCSAGWO.js → chunk.3F7LLZWJ.js} +3 -3
- package/dist/chunks/{chunk.JMZQTN66.js → chunk.3UEIMTUM.js} +2 -2
- package/dist/chunks/{chunk.X7OQSEX2.js → chunk.3XQJFQD3.js} +4 -4
- package/dist/chunks/{chunk.SZT7XVV5.js → chunk.52456FY5.js} +4 -4
- package/dist/chunks/{chunk.WVHXHIV3.js → chunk.53SVGYMQ.js} +6 -6
- package/dist/chunks/{chunk.MUNBPFME.js → chunk.562KEWJB.js} +9 -7
- package/dist/chunks/chunk.562KEWJB.js.map +7 -0
- package/dist/chunks/{chunk.G23DQN3P.js → chunk.57BMEZH4.js} +2 -2
- package/dist/chunks/{chunk.C3RIFO4H.js → chunk.5F7BRK2T.js} +2 -2
- package/dist/chunks/{chunk.ANZWKSQQ.js → chunk.5FHT5R4H.js} +2 -2
- package/dist/chunks/{chunk.4GYVNNIY.js → chunk.6APBFAPL.js} +3 -3
- package/dist/chunks/{chunk.LBKAFXWM.js → chunk.6HOOQIDR.js} +2 -2
- package/dist/chunks/{chunk.ZD4S3T2U.js → chunk.6QQOPHCI.js} +2 -2
- package/dist/chunks/{chunk.BSZ6RFHE.js → chunk.6S2HTHLG.js} +2 -2
- package/dist/chunks/{chunk.55WMAVZI.js → chunk.6ZJ4P2CQ.js} +2 -2
- package/dist/chunks/{chunk.W4AB6YT6.js → chunk.A3PJVQKK.js} +62 -9
- package/dist/chunks/chunk.A3PJVQKK.js.map +7 -0
- package/dist/chunks/{chunk.EBQLSITZ.js → chunk.AIA6FPT5.js} +2 -2
- package/dist/chunks/{chunk.YI56F4S6.js → chunk.AYGERGTM.js} +2 -2
- package/dist/chunks/{chunk.FUJKCUQU.js → chunk.BKZ45UEY.js} +120 -14
- package/dist/chunks/chunk.BKZ45UEY.js.map +7 -0
- package/dist/chunks/{chunk.Z4LBSDQQ.js → chunk.BNHWEIFH.js} +2 -2
- package/dist/chunks/chunk.BUV5EYAG.js +79 -0
- package/dist/chunks/chunk.BUV5EYAG.js.map +7 -0
- package/dist/chunks/{chunk.YI456JQR.js → chunk.C277SCSZ.js} +3 -3
- package/dist/chunks/{chunk.VSWCHKJF.js → chunk.CCRUEP7M.js} +2 -2
- package/dist/chunks/{chunk.MW6REDDI.js → chunk.CFVULRUC.js} +2 -2
- package/dist/chunks/{chunk.I74P2GKE.js → chunk.CSKJ56S5.js} +2 -2
- package/dist/chunks/{chunk.4RJU3JRS.js → chunk.CWMONTOP.js} +17 -10
- package/dist/chunks/chunk.CWMONTOP.js.map +7 -0
- package/dist/chunks/{chunk.QSOE7FEI.js → chunk.D65PFCEJ.js} +2 -2
- package/dist/chunks/{chunk.35V3TAOT.js → chunk.DFABWKX7.js} +18 -9
- package/dist/chunks/{chunk.35V3TAOT.js.map → chunk.DFABWKX7.js.map} +2 -2
- package/dist/chunks/{chunk.X5PAS7KR.js → chunk.DFEPTCPT.js} +2 -2
- package/dist/chunks/{chunk.TUSYVDNG.js → chunk.DPSKWKTR.js} +3 -3
- package/dist/chunks/chunk.DPSKWKTR.js.map +7 -0
- package/dist/chunks/{chunk.4CJHDWLS.js → chunk.DYN7NMNV.js} +6 -6
- package/dist/chunks/{chunk.COHNCXE2.js → chunk.E6TFQMCA.js} +2 -2
- package/dist/chunks/{chunk.EZNG7BSP.js → chunk.FW23ZE2I.js} +2 -2
- package/dist/chunks/{chunk.QLEW5NYG.js → chunk.GVYAQVL4.js} +2 -2
- package/dist/chunks/{chunk.77OODQEK.js → chunk.H4LGH4RY.js} +2 -2
- package/dist/chunks/{chunk.EQJ6P5VY.js → chunk.HVNSACCH.js} +5 -5
- package/dist/chunks/{chunk.NKAJ7Y5N.js → chunk.I4AFO6WB.js} +3 -3
- package/dist/chunks/{chunk.X7TOECRW.js → chunk.IKOSRIQR.js} +35 -6
- package/dist/chunks/{chunk.X7TOECRW.js.map → chunk.IKOSRIQR.js.map} +2 -2
- package/dist/chunks/{chunk.VIXHTZKQ.js → chunk.IP7J3EFJ.js} +2 -2
- package/dist/chunks/{chunk.DQIDBZ4W.js → chunk.J3FIBO4S.js} +2 -2
- package/dist/chunks/{chunk.MSKJVY76.js → chunk.J472ED7V.js} +2 -2
- package/dist/chunks/{chunk.BJNF6JKR.js → chunk.JI7DAHVB.js} +2 -2
- package/dist/chunks/{chunk.OB4SHXTW.js → chunk.JPFJQ7IC.js} +3 -3
- package/dist/chunks/{chunk.KJUDMZQL.js → chunk.K5HEN4XX.js} +2 -2
- package/dist/chunks/{chunk.OBF3X4XA.js → chunk.KKC6JEDF.js} +3 -3
- package/dist/chunks/{chunk.E2VFBJWM.js → chunk.KTDEUF2L.js} +2 -2
- package/dist/chunks/{chunk.QIXM5QAO.js → chunk.L2HBMWOG.js} +2 -2
- package/dist/chunks/{chunk.CWYEWSU2.js → chunk.LAFRJON3.js} +2 -2
- package/dist/chunks/{chunk.HI6A5JDS.js → chunk.LBKL2XVA.js} +2 -2
- package/dist/chunks/{chunk.FBYKWYEG.js → chunk.LZBVUDEZ.js} +2 -2
- package/dist/chunks/{chunk.XBLOPLSG.js → chunk.MEWILH5R.js} +3 -3
- package/dist/chunks/{chunk.SJGUHYQX.js → chunk.MMZJ2MAB.js} +2 -2
- package/dist/chunks/{chunk.3TN54QCH.js → chunk.MTQS455P.js} +2 -2
- package/dist/chunks/{chunk.F6ZFOBEI.js → chunk.MX2MUOFQ.js} +2 -2
- package/dist/chunks/{chunk.NAKOCW4V.js → chunk.NADHCVOW.js} +2 -2
- package/dist/chunks/{chunk.KG73YUXI.js → chunk.NL3RUWYS.js} +49 -1
- package/dist/chunks/chunk.NL3RUWYS.js.map +7 -0
- package/dist/chunks/{chunk.OM5LY7SW.js → chunk.NQWNOCC5.js} +2 -2
- package/dist/chunks/{chunk.U47W5TZK.js → chunk.OBTXUQOH.js} +3 -3
- package/dist/chunks/chunk.OI3HOOCT.js +13 -0
- package/dist/chunks/chunk.OI3HOOCT.js.map +7 -0
- package/dist/chunks/{chunk.DILF4NTS.js → chunk.OQFKPVKB.js} +2 -2
- package/dist/chunks/{chunk.4GVPZ7MN.js → chunk.PGU7HZCZ.js} +2 -2
- package/dist/chunks/{chunk.JQ47GWDL.js → chunk.PKYC7QF3.js} +6 -1
- package/dist/chunks/chunk.PKYC7QF3.js.map +7 -0
- package/dist/chunks/{chunk.I44TGPKY.js → chunk.PSMTIRVU.js} +5 -5
- package/dist/chunks/{chunk.CYPWCY4S.js → chunk.PWKONDP4.js} +3 -3
- package/dist/chunks/{chunk.TKOSP7ST.js → chunk.QBM6YNBE.js} +2 -2
- package/dist/chunks/{chunk.4WDUIIGW.js → chunk.QHLSATKL.js} +2 -2
- package/dist/chunks/{chunk.UEBFYZL4.js → chunk.QOFJLM7G.js} +6 -6
- package/dist/chunks/{chunk.X4HKLZCI.js → chunk.QSYZGCK6.js} +2 -2
- package/dist/chunks/{chunk.CRUL2A6N.js → chunk.SHMBVU6O.js} +2 -2
- package/dist/chunks/{chunk.OXZU2HKF.js → chunk.SODGQJWE.js} +2 -2
- package/dist/chunks/{chunk.V5EXCYKN.js → chunk.SP5JN45Z.js} +2 -2
- package/dist/chunks/{chunk.ONEE5QZP.js → chunk.SVQQ7D7R.js} +2 -2
- package/dist/chunks/{chunk.SBSWPMEE.js → chunk.TBWOPCIU.js} +2 -2
- package/dist/chunks/{chunk.XF2OGXME.js → chunk.TBXXS5CR.js} +3 -3
- package/dist/chunks/{chunk.SLC6CCXM.js → chunk.TENX6AHR.js} +2 -2
- package/dist/chunks/{chunk.3U3ZKA5L.js → chunk.TWSE2CPF.js} +3 -3
- package/dist/chunks/{chunk.7L7VOBIG.js → chunk.U4D75TJF.js} +5 -5
- package/dist/chunks/{chunk.AIFBZLAG.js → chunk.UA6EAWRH.js} +2 -2
- package/dist/chunks/{chunk.J2OXSQAK.js → chunk.UREJSW6U.js} +9 -8
- package/dist/chunks/{chunk.J2OXSQAK.js.map → chunk.UREJSW6U.js.map} +2 -2
- package/dist/chunks/{chunk.YDKCOIO3.js → chunk.VGWWMT6X.js} +2 -2
- package/dist/chunks/{chunk.BN4M6SXT.js → chunk.WJEFLT2K.js} +3 -3
- package/dist/chunks/{chunk.5JFH3SGK.js → chunk.WNDYFXRT.js} +4 -3
- package/dist/chunks/chunk.WNDYFXRT.js.map +7 -0
- package/dist/chunks/{chunk.W4H4PZKD.js → chunk.X3UJK6BA.js} +5 -5
- package/dist/chunks/{chunk.W4H4PZKD.js.map → chunk.X3UJK6BA.js.map} +2 -2
- package/dist/chunks/{chunk.2UZ6WGD2.js → chunk.X726K7GO.js} +2 -2
- package/dist/chunks/{chunk.NGI67WXT.js → chunk.XOXVVU5C.js} +19 -1
- package/dist/chunks/{chunk.NGI67WXT.js.map → chunk.XOXVVU5C.js.map} +2 -2
- package/dist/chunks/{chunk.U6TFGXE3.js → chunk.XPIZMD2N.js} +3 -3
- package/dist/chunks/{chunk.5LHTTV2Y.js → chunk.XR42LWNN.js} +2 -2
- package/dist/chunks/{chunk.3EFHJEPQ.js → chunk.Y33WE5JP.js} +2 -2
- package/dist/chunks/{chunk.J5LJA64M.js → chunk.YBDLRGEB.js} +3 -3
- package/dist/chunks/{chunk.SNLJCC6L.js → chunk.YRZPHAZZ.js} +2 -2
- package/dist/chunks/{chunk.ID52I6OH.js → chunk.YUQOT4CX.js} +2 -2
- package/dist/chunks/{chunk.EDQUG4GS.js → chunk.ZEB6KOH7.js} +4 -4
- package/dist/chunks/{chunk.ITZIZ4HF.js → chunk.ZO3RFJI7.js} +3 -3
- package/dist/chunks/{chunk.63UP5YZV.js → chunk.ZV4WQBDO.js} +6 -6
- package/dist/chunks/{chunk.ZMXKGMOQ.js → chunk.ZZWRQ5W3.js} +3 -3
- package/dist/components/accordion/accordion.component.js +2 -2
- package/dist/components/accordion/accordion.js +3 -3
- package/dist/components/alert/alert.component.d.ts +12 -1
- package/dist/components/alert/alert.component.js +5 -5
- package/dist/components/alert/alert.js +6 -6
- package/dist/components/alert/alert.styles.js +1 -1
- 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/combobox/combobox.styles.js +1 -1
- package/dist/components/details/details.component.js +3 -3
- package/dist/components/details/details.js +4 -4
- package/dist/components/dialog/dialog.component.js +4 -4
- package/dist/components/dialog/dialog.js +5 -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 +4 -4
- package/dist/components/drawer/drawer.js +5 -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 +5 -5
- package/dist/components/range/range.js +6 -6
- 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.d.ts +37 -0
- package/dist/components/resize-observer/resize-observer.component.js +11 -0
- package/dist/components/resize-observer/resize-observer.component.js.map +7 -0
- package/dist/components/resize-observer/resize-observer.styles.d.ts +8 -0
- package/dist/components/resize-observer/resize-observer.styles.js +8 -0
- package/dist/components/resize-observer/resize-observer.styles.js.map +7 -0
- package/dist/components/select/select.component.js +8 -8
- package/dist/components/select/select.js +9 -9
- package/dist/components/select/select.styles.js +1 -1
- package/dist/components/side-nav/side-nav.component.js +6 -6
- package/dist/components/side-nav/side-nav.js +7 -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 +3 -3
- package/dist/components/switch/switch.js +4 -4
- 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 +15 -0
- package/dist/components/tab-group/tab-group.component.js +8 -6
- package/dist/components/tab-group/tab-group.custom.styles.js +1 -1
- package/dist/components/tab-group/tab-group.js +9 -7
- package/dist/components/tab-group/tab-group.styles.js +1 -1
- 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 +5 -5
- package/dist/components/tag/tag.js +6 -6
- package/dist/components/textarea/textarea.component.js +2 -2
- package/dist/components/textarea/textarea.js +3 -3
- package/dist/components/tooltip/tooltip.component.js +4 -4
- package/dist/components/tooltip/tooltip.js +5 -5
- package/dist/custom-elements.json +300 -81
- package/dist/events/events.d.ts +1 -0
- package/dist/events/syn-after-hide.d.ts +3 -0
- package/dist/events/syn-after-show.d.ts +3 -0
- package/dist/events/syn-blur.d.ts +3 -0
- package/dist/events/syn-change.d.ts +3 -0
- package/dist/events/syn-clear.d.ts +3 -0
- package/dist/events/syn-close.d.ts +3 -0
- package/dist/events/syn-error.d.ts +3 -0
- package/dist/events/syn-focus.d.ts +3 -0
- package/dist/events/syn-hide.d.ts +3 -0
- package/dist/events/syn-initial-focus.d.ts +3 -0
- package/dist/events/syn-input.d.ts +3 -0
- package/dist/events/syn-invalid.d.ts +3 -0
- package/dist/events/syn-load.d.ts +3 -0
- package/dist/events/syn-remove.d.ts +3 -0
- package/dist/events/syn-reposition.d.ts +3 -0
- package/dist/events/syn-request-close.d.ts +3 -0
- package/dist/events/syn-resize.d.ts +17 -0
- package/dist/events/syn-select.d.ts +3 -0
- package/dist/events/syn-show.d.ts +3 -0
- package/dist/events/syn-tab-hide.d.ts +3 -0
- package/dist/events/syn-tab-show.d.ts +3 -0
- package/dist/internal/scrollend-polyfill.d.ts +7 -0
- package/dist/internal/synergy-element.d.ts +4 -0
- package/dist/styles/index.css +1 -1
- package/dist/synergy.js +107 -105
- package/dist/vscode.html-custom-data.json +45 -23
- package/package.json +21 -21
- package/dist/chunks/chunk.4RJU3JRS.js.map +0 -7
- package/dist/chunks/chunk.5JFH3SGK.js.map +0 -7
- package/dist/chunks/chunk.FUJKCUQU.js.map +0 -7
- package/dist/chunks/chunk.JQ47GWDL.js.map +0 -7
- package/dist/chunks/chunk.KG73YUXI.js.map +0 -7
- package/dist/chunks/chunk.MUNBPFME.js.map +0 -7
- package/dist/chunks/chunk.TUSYVDNG.js.map +0 -7
- package/dist/chunks/chunk.W4AB6YT6.js.map +0 -7
- /package/dist/chunks/{chunk.LNY6YUO6.js.map → chunk.22GTODGK.js.map} +0 -0
- /package/dist/chunks/{chunk.65L6WCR6.js.map → chunk.2QWFZFFH.js.map} +0 -0
- /package/dist/chunks/{chunk.OBS3SYSN.js.map → chunk.2TICTVUA.js.map} +0 -0
- /package/dist/chunks/{chunk.RJA3VP67.js.map → chunk.3EBU2LXD.js.map} +0 -0
- /package/dist/chunks/{chunk.KSCSAGWO.js.map → chunk.3F7LLZWJ.js.map} +0 -0
- /package/dist/chunks/{chunk.JMZQTN66.js.map → chunk.3UEIMTUM.js.map} +0 -0
- /package/dist/chunks/{chunk.X7OQSEX2.js.map → chunk.3XQJFQD3.js.map} +0 -0
- /package/dist/chunks/{chunk.SZT7XVV5.js.map → chunk.52456FY5.js.map} +0 -0
- /package/dist/chunks/{chunk.WVHXHIV3.js.map → chunk.53SVGYMQ.js.map} +0 -0
- /package/dist/chunks/{chunk.G23DQN3P.js.map → chunk.57BMEZH4.js.map} +0 -0
- /package/dist/chunks/{chunk.C3RIFO4H.js.map → chunk.5F7BRK2T.js.map} +0 -0
- /package/dist/chunks/{chunk.ANZWKSQQ.js.map → chunk.5FHT5R4H.js.map} +0 -0
- /package/dist/chunks/{chunk.4GYVNNIY.js.map → chunk.6APBFAPL.js.map} +0 -0
- /package/dist/chunks/{chunk.LBKAFXWM.js.map → chunk.6HOOQIDR.js.map} +0 -0
- /package/dist/chunks/{chunk.ZD4S3T2U.js.map → chunk.6QQOPHCI.js.map} +0 -0
- /package/dist/chunks/{chunk.BSZ6RFHE.js.map → chunk.6S2HTHLG.js.map} +0 -0
- /package/dist/chunks/{chunk.55WMAVZI.js.map → chunk.6ZJ4P2CQ.js.map} +0 -0
- /package/dist/chunks/{chunk.EBQLSITZ.js.map → chunk.AIA6FPT5.js.map} +0 -0
- /package/dist/chunks/{chunk.YI56F4S6.js.map → chunk.AYGERGTM.js.map} +0 -0
- /package/dist/chunks/{chunk.Z4LBSDQQ.js.map → chunk.BNHWEIFH.js.map} +0 -0
- /package/dist/chunks/{chunk.YI456JQR.js.map → chunk.C277SCSZ.js.map} +0 -0
- /package/dist/chunks/{chunk.VSWCHKJF.js.map → chunk.CCRUEP7M.js.map} +0 -0
- /package/dist/chunks/{chunk.MW6REDDI.js.map → chunk.CFVULRUC.js.map} +0 -0
- /package/dist/chunks/{chunk.I74P2GKE.js.map → chunk.CSKJ56S5.js.map} +0 -0
- /package/dist/chunks/{chunk.QSOE7FEI.js.map → chunk.D65PFCEJ.js.map} +0 -0
- /package/dist/chunks/{chunk.X5PAS7KR.js.map → chunk.DFEPTCPT.js.map} +0 -0
- /package/dist/chunks/{chunk.4CJHDWLS.js.map → chunk.DYN7NMNV.js.map} +0 -0
- /package/dist/chunks/{chunk.COHNCXE2.js.map → chunk.E6TFQMCA.js.map} +0 -0
- /package/dist/chunks/{chunk.EZNG7BSP.js.map → chunk.FW23ZE2I.js.map} +0 -0
- /package/dist/chunks/{chunk.QLEW5NYG.js.map → chunk.GVYAQVL4.js.map} +0 -0
- /package/dist/chunks/{chunk.77OODQEK.js.map → chunk.H4LGH4RY.js.map} +0 -0
- /package/dist/chunks/{chunk.EQJ6P5VY.js.map → chunk.HVNSACCH.js.map} +0 -0
- /package/dist/chunks/{chunk.NKAJ7Y5N.js.map → chunk.I4AFO6WB.js.map} +0 -0
- /package/dist/chunks/{chunk.VIXHTZKQ.js.map → chunk.IP7J3EFJ.js.map} +0 -0
- /package/dist/chunks/{chunk.DQIDBZ4W.js.map → chunk.J3FIBO4S.js.map} +0 -0
- /package/dist/chunks/{chunk.MSKJVY76.js.map → chunk.J472ED7V.js.map} +0 -0
- /package/dist/chunks/{chunk.BJNF6JKR.js.map → chunk.JI7DAHVB.js.map} +0 -0
- /package/dist/chunks/{chunk.OB4SHXTW.js.map → chunk.JPFJQ7IC.js.map} +0 -0
- /package/dist/chunks/{chunk.KJUDMZQL.js.map → chunk.K5HEN4XX.js.map} +0 -0
- /package/dist/chunks/{chunk.OBF3X4XA.js.map → chunk.KKC6JEDF.js.map} +0 -0
- /package/dist/chunks/{chunk.E2VFBJWM.js.map → chunk.KTDEUF2L.js.map} +0 -0
- /package/dist/chunks/{chunk.QIXM5QAO.js.map → chunk.L2HBMWOG.js.map} +0 -0
- /package/dist/chunks/{chunk.CWYEWSU2.js.map → chunk.LAFRJON3.js.map} +0 -0
- /package/dist/chunks/{chunk.HI6A5JDS.js.map → chunk.LBKL2XVA.js.map} +0 -0
- /package/dist/chunks/{chunk.FBYKWYEG.js.map → chunk.LZBVUDEZ.js.map} +0 -0
- /package/dist/chunks/{chunk.XBLOPLSG.js.map → chunk.MEWILH5R.js.map} +0 -0
- /package/dist/chunks/{chunk.SJGUHYQX.js.map → chunk.MMZJ2MAB.js.map} +0 -0
- /package/dist/chunks/{chunk.3TN54QCH.js.map → chunk.MTQS455P.js.map} +0 -0
- /package/dist/chunks/{chunk.F6ZFOBEI.js.map → chunk.MX2MUOFQ.js.map} +0 -0
- /package/dist/chunks/{chunk.NAKOCW4V.js.map → chunk.NADHCVOW.js.map} +0 -0
- /package/dist/chunks/{chunk.OM5LY7SW.js.map → chunk.NQWNOCC5.js.map} +0 -0
- /package/dist/chunks/{chunk.U47W5TZK.js.map → chunk.OBTXUQOH.js.map} +0 -0
- /package/dist/chunks/{chunk.DILF4NTS.js.map → chunk.OQFKPVKB.js.map} +0 -0
- /package/dist/chunks/{chunk.4GVPZ7MN.js.map → chunk.PGU7HZCZ.js.map} +0 -0
- /package/dist/chunks/{chunk.I44TGPKY.js.map → chunk.PSMTIRVU.js.map} +0 -0
- /package/dist/chunks/{chunk.CYPWCY4S.js.map → chunk.PWKONDP4.js.map} +0 -0
- /package/dist/chunks/{chunk.TKOSP7ST.js.map → chunk.QBM6YNBE.js.map} +0 -0
- /package/dist/chunks/{chunk.4WDUIIGW.js.map → chunk.QHLSATKL.js.map} +0 -0
- /package/dist/chunks/{chunk.UEBFYZL4.js.map → chunk.QOFJLM7G.js.map} +0 -0
- /package/dist/chunks/{chunk.X4HKLZCI.js.map → chunk.QSYZGCK6.js.map} +0 -0
- /package/dist/chunks/{chunk.CRUL2A6N.js.map → chunk.SHMBVU6O.js.map} +0 -0
- /package/dist/chunks/{chunk.OXZU2HKF.js.map → chunk.SODGQJWE.js.map} +0 -0
- /package/dist/chunks/{chunk.V5EXCYKN.js.map → chunk.SP5JN45Z.js.map} +0 -0
- /package/dist/chunks/{chunk.ONEE5QZP.js.map → chunk.SVQQ7D7R.js.map} +0 -0
- /package/dist/chunks/{chunk.SBSWPMEE.js.map → chunk.TBWOPCIU.js.map} +0 -0
- /package/dist/chunks/{chunk.XF2OGXME.js.map → chunk.TBXXS5CR.js.map} +0 -0
- /package/dist/chunks/{chunk.SLC6CCXM.js.map → chunk.TENX6AHR.js.map} +0 -0
- /package/dist/chunks/{chunk.3U3ZKA5L.js.map → chunk.TWSE2CPF.js.map} +0 -0
- /package/dist/chunks/{chunk.7L7VOBIG.js.map → chunk.U4D75TJF.js.map} +0 -0
- /package/dist/chunks/{chunk.AIFBZLAG.js.map → chunk.UA6EAWRH.js.map} +0 -0
- /package/dist/chunks/{chunk.YDKCOIO3.js.map → chunk.VGWWMT6X.js.map} +0 -0
- /package/dist/chunks/{chunk.BN4M6SXT.js.map → chunk.WJEFLT2K.js.map} +0 -0
- /package/dist/chunks/{chunk.2UZ6WGD2.js.map → chunk.X726K7GO.js.map} +0 -0
- /package/dist/chunks/{chunk.U6TFGXE3.js.map → chunk.XPIZMD2N.js.map} +0 -0
- /package/dist/chunks/{chunk.5LHTTV2Y.js.map → chunk.XR42LWNN.js.map} +0 -0
- /package/dist/chunks/{chunk.3EFHJEPQ.js.map → chunk.Y33WE5JP.js.map} +0 -0
- /package/dist/chunks/{chunk.J5LJA64M.js.map → chunk.YBDLRGEB.js.map} +0 -0
- /package/dist/chunks/{chunk.SNLJCC6L.js.map → chunk.YRZPHAZZ.js.map} +0 -0
- /package/dist/chunks/{chunk.ID52I6OH.js.map → chunk.YUQOT4CX.js.map} +0 -0
- /package/dist/chunks/{chunk.EDQUG4GS.js.map → chunk.ZEB6KOH7.js.map} +0 -0
- /package/dist/chunks/{chunk.ITZIZ4HF.js.map → chunk.ZO3RFJI7.js.map} +0 -0
- /package/dist/chunks/{chunk.63UP5YZV.js.map → chunk.ZV4WQBDO.js.map} +0 -0
- /package/dist/chunks/{chunk.ZMXKGMOQ.js.map → chunk.ZZWRQ5W3.js.map} +0 -0
|
@@ -1,15 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
tab_group_custom_styles_default
|
|
3
|
+
} from "./chunk.XOXVVU5C.js";
|
|
1
4
|
import {
|
|
2
5
|
tab_group_styles_default
|
|
3
|
-
} from "./chunk.
|
|
6
|
+
} from "./chunk.PKYC7QF3.js";
|
|
4
7
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./chunk.
|
|
8
|
+
SynResizeObserver
|
|
9
|
+
} from "./chunk.BUV5EYAG.js";
|
|
7
10
|
import {
|
|
8
11
|
scrollIntoView
|
|
9
12
|
} from "./chunk.5732DMBC.js";
|
|
10
13
|
import {
|
|
11
14
|
SynIconButton
|
|
12
|
-
} from "./chunk.
|
|
15
|
+
} from "./chunk.OBTXUQOH.js";
|
|
13
16
|
import {
|
|
14
17
|
LocalizeController
|
|
15
18
|
} from "./chunk.GIU3H3J3.js";
|
|
@@ -19,16 +22,71 @@ import {
|
|
|
19
22
|
import {
|
|
20
23
|
SynergyElement,
|
|
21
24
|
component_styles_default
|
|
22
|
-
} from "./chunk.
|
|
25
|
+
} from "./chunk.IKOSRIQR.js";
|
|
23
26
|
import {
|
|
24
27
|
__decorateClass,
|
|
25
28
|
__spreadValues
|
|
26
29
|
} from "./chunk.2GFK6XTO.js";
|
|
27
30
|
|
|
31
|
+
// src/internal/scrollend-polyfill.ts
|
|
32
|
+
var debounce = (fn, delay) => {
|
|
33
|
+
let timerId = 0;
|
|
34
|
+
return function(...args) {
|
|
35
|
+
window.clearTimeout(timerId);
|
|
36
|
+
timerId = window.setTimeout(() => {
|
|
37
|
+
fn.call(this, ...args);
|
|
38
|
+
}, delay);
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
var decorate = (proto, method, decorateFn) => {
|
|
42
|
+
const superFn = proto[method];
|
|
43
|
+
proto[method] = function(...args) {
|
|
44
|
+
superFn.call(this, ...args);
|
|
45
|
+
decorateFn.call(this, superFn, ...args);
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
var isSupported = "onscrollend" in window;
|
|
49
|
+
if (!isSupported) {
|
|
50
|
+
const pointers = /* @__PURE__ */ new Set();
|
|
51
|
+
const scrollHandlers = /* @__PURE__ */ new WeakMap();
|
|
52
|
+
const handlePointerDown = (event) => {
|
|
53
|
+
for (const touch of event.changedTouches) {
|
|
54
|
+
pointers.add(touch.identifier);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const handlePointerUp = (event) => {
|
|
58
|
+
for (const touch of event.changedTouches) {
|
|
59
|
+
pointers.delete(touch.identifier);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
document.addEventListener("touchstart", handlePointerDown, true);
|
|
63
|
+
document.addEventListener("touchend", handlePointerUp, true);
|
|
64
|
+
document.addEventListener("touchcancel", handlePointerUp, true);
|
|
65
|
+
decorate(EventTarget.prototype, "addEventListener", function(addEventListener, type) {
|
|
66
|
+
if (type !== "scrollend") return;
|
|
67
|
+
const handleScrollEnd = debounce(() => {
|
|
68
|
+
if (!pointers.size) {
|
|
69
|
+
this.dispatchEvent(new Event("scrollend"));
|
|
70
|
+
} else {
|
|
71
|
+
handleScrollEnd();
|
|
72
|
+
}
|
|
73
|
+
}, 100);
|
|
74
|
+
addEventListener.call(this, "scroll", handleScrollEnd, { passive: true });
|
|
75
|
+
scrollHandlers.set(this, handleScrollEnd);
|
|
76
|
+
});
|
|
77
|
+
decorate(EventTarget.prototype, "removeEventListener", function(removeEventListener, type) {
|
|
78
|
+
if (type !== "scrollend") return;
|
|
79
|
+
const scrollHandler = scrollHandlers.get(this);
|
|
80
|
+
if (scrollHandler) {
|
|
81
|
+
removeEventListener.call(this, "scroll", scrollHandler, { passive: true });
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
28
86
|
// src/components/tab-group/tab-group.component.ts
|
|
29
87
|
import { classMap } from "lit/directives/class-map.js";
|
|
88
|
+
import { eventOptions, property, query, state } from "lit/decorators.js";
|
|
30
89
|
import { html } from "lit";
|
|
31
|
-
import { property, query, state } from "lit/decorators.js";
|
|
32
90
|
var SynTabGroup = class extends SynergyElement {
|
|
33
91
|
constructor() {
|
|
34
92
|
super(...arguments);
|
|
@@ -37,11 +95,19 @@ var SynTabGroup = class extends SynergyElement {
|
|
|
37
95
|
this.focusableTabs = [];
|
|
38
96
|
this.panels = [];
|
|
39
97
|
this.hasScrollControls = false;
|
|
98
|
+
this.shouldHideScrollStartButton = false;
|
|
99
|
+
this.shouldHideScrollEndButton = false;
|
|
40
100
|
this.placement = "top";
|
|
41
101
|
this.activation = "auto";
|
|
42
102
|
this.noScrollControls = false;
|
|
43
103
|
this.contained = false;
|
|
44
104
|
this.sharp = false;
|
|
105
|
+
this.fixedScrollControls = false;
|
|
106
|
+
/**
|
|
107
|
+
* The reality of the browser means that we can't expect the scroll position to be exactly what we want it to be, so
|
|
108
|
+
* we add one pixel of wiggle room to our calculations.
|
|
109
|
+
*/
|
|
110
|
+
this.scrollOffset = 1;
|
|
45
111
|
}
|
|
46
112
|
connectedCallback() {
|
|
47
113
|
const whenAllDefined = Promise.all([
|
|
@@ -79,10 +145,11 @@ var SynTabGroup = class extends SynergyElement {
|
|
|
79
145
|
});
|
|
80
146
|
}
|
|
81
147
|
disconnectedCallback() {
|
|
148
|
+
var _a, _b;
|
|
82
149
|
super.disconnectedCallback();
|
|
83
|
-
this.mutationObserver.disconnect();
|
|
150
|
+
(_a = this.mutationObserver) == null ? void 0 : _a.disconnect();
|
|
84
151
|
if (this.nav) {
|
|
85
|
-
this.resizeObserver.unobserve(this.nav);
|
|
152
|
+
(_b = this.resizeObserver) == null ? void 0 : _b.unobserve(this.nav);
|
|
86
153
|
}
|
|
87
154
|
}
|
|
88
155
|
getAllTabs() {
|
|
@@ -263,12 +330,25 @@ var SynTabGroup = class extends SynergyElement {
|
|
|
263
330
|
}
|
|
264
331
|
return nextTab;
|
|
265
332
|
}
|
|
333
|
+
updateScrollButtons() {
|
|
334
|
+
if (this.hasScrollControls && !this.fixedScrollControls) {
|
|
335
|
+
this.shouldHideScrollStartButton = this.scrollFromStart() <= this.scrollOffset;
|
|
336
|
+
this.shouldHideScrollEndButton = this.isScrolledToEnd();
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
isScrolledToEnd() {
|
|
340
|
+
return this.scrollFromStart() + this.nav.clientWidth >= this.nav.scrollWidth - this.scrollOffset;
|
|
341
|
+
}
|
|
342
|
+
scrollFromStart() {
|
|
343
|
+
return this.localize.dir() === "rtl" ? -this.nav.scrollLeft : this.nav.scrollLeft;
|
|
344
|
+
}
|
|
266
345
|
updateScrollControls() {
|
|
267
346
|
if (this.noScrollControls) {
|
|
268
347
|
this.hasScrollControls = false;
|
|
269
348
|
} else {
|
|
270
349
|
this.hasScrollControls = ["top"].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth + 1;
|
|
271
350
|
}
|
|
351
|
+
this.updateScrollButtons();
|
|
272
352
|
}
|
|
273
353
|
syncIndicator() {
|
|
274
354
|
const tab = this.getActiveTab();
|
|
@@ -308,18 +388,26 @@ var SynTabGroup = class extends SynergyElement {
|
|
|
308
388
|
<syn-icon-button
|
|
309
389
|
part="scroll-button scroll-button--start"
|
|
310
390
|
exportparts="base:scroll-button__base"
|
|
311
|
-
class
|
|
391
|
+
class=${classMap({
|
|
392
|
+
"tab-group__scroll-button": true,
|
|
393
|
+
"tab-group__scroll-button--start": true,
|
|
394
|
+
"tab-group__scroll-button--start--hidden": this.shouldHideScrollStartButton
|
|
395
|
+
})}
|
|
312
396
|
name="chevron-right"
|
|
313
397
|
library="system"
|
|
398
|
+
tabindex="-1"
|
|
399
|
+
aria-hidden="true"
|
|
314
400
|
label=${this.localize.term("scrollToStart")}
|
|
315
401
|
@click=${this.handleScrollToStart}
|
|
316
402
|
></syn-icon-button>
|
|
317
403
|
` : ""}
|
|
318
404
|
|
|
319
|
-
<div class="tab-group__nav">
|
|
405
|
+
<div class="tab-group__nav" @scrollend=${this.updateScrollButtons}>
|
|
320
406
|
<div part="tabs" class="tab-group__tabs" role="tablist">
|
|
321
407
|
<div part="active-tab-indicator" class="tab-group__indicator"></div>
|
|
322
|
-
<
|
|
408
|
+
<syn-resize-observer @syn-resize=${this.syncIndicator}>
|
|
409
|
+
<slot name="nav" @slotchange=${this.syncTabsAndPanels}></slot>
|
|
410
|
+
</syn-resize-observer>
|
|
323
411
|
</div>
|
|
324
412
|
</div>
|
|
325
413
|
|
|
@@ -327,9 +415,15 @@ var SynTabGroup = class extends SynergyElement {
|
|
|
327
415
|
<syn-icon-button
|
|
328
416
|
part="scroll-button scroll-button--end"
|
|
329
417
|
exportparts="base:scroll-button__base"
|
|
330
|
-
class
|
|
418
|
+
class=${classMap({
|
|
419
|
+
"tab-group__scroll-button": true,
|
|
420
|
+
"tab-group__scroll-button--end": true,
|
|
421
|
+
"tab-group__scroll-button--end--hidden": this.shouldHideScrollEndButton
|
|
422
|
+
})}
|
|
331
423
|
name="chevron-right"
|
|
332
424
|
library="system"
|
|
425
|
+
tabindex="-1"
|
|
426
|
+
aria-hidden="true"
|
|
333
427
|
label=${this.localize.term("scrollToEnd")}
|
|
334
428
|
@click=${this.handleScrollToEnd}
|
|
335
429
|
></syn-icon-button>
|
|
@@ -342,7 +436,7 @@ var SynTabGroup = class extends SynergyElement {
|
|
|
342
436
|
}
|
|
343
437
|
};
|
|
344
438
|
SynTabGroup.styles = [component_styles_default, tab_group_styles_default, tab_group_custom_styles_default];
|
|
345
|
-
SynTabGroup.dependencies = { "syn-icon-button": SynIconButton };
|
|
439
|
+
SynTabGroup.dependencies = { "syn-icon-button": SynIconButton, "syn-resize-observer": SynResizeObserver };
|
|
346
440
|
__decorateClass([
|
|
347
441
|
query(".tab-group")
|
|
348
442
|
], SynTabGroup.prototype, "tabGroup", 2);
|
|
@@ -358,6 +452,12 @@ __decorateClass([
|
|
|
358
452
|
__decorateClass([
|
|
359
453
|
state()
|
|
360
454
|
], SynTabGroup.prototype, "hasScrollControls", 2);
|
|
455
|
+
__decorateClass([
|
|
456
|
+
state()
|
|
457
|
+
], SynTabGroup.prototype, "shouldHideScrollStartButton", 2);
|
|
458
|
+
__decorateClass([
|
|
459
|
+
state()
|
|
460
|
+
], SynTabGroup.prototype, "shouldHideScrollEndButton", 2);
|
|
361
461
|
__decorateClass([
|
|
362
462
|
property()
|
|
363
463
|
], SynTabGroup.prototype, "placement", 2);
|
|
@@ -373,6 +473,12 @@ __decorateClass([
|
|
|
373
473
|
__decorateClass([
|
|
374
474
|
property({ type: Boolean })
|
|
375
475
|
], SynTabGroup.prototype, "sharp", 2);
|
|
476
|
+
__decorateClass([
|
|
477
|
+
property({ attribute: "fixed-scroll-controls", type: Boolean })
|
|
478
|
+
], SynTabGroup.prototype, "fixedScrollControls", 2);
|
|
479
|
+
__decorateClass([
|
|
480
|
+
eventOptions({ passive: true })
|
|
481
|
+
], SynTabGroup.prototype, "updateScrollButtons", 1);
|
|
376
482
|
__decorateClass([
|
|
377
483
|
watch("noScrollControls", { waitUntilFirstUpdate: true })
|
|
378
484
|
], SynTabGroup.prototype, "updateScrollControls", 1);
|
|
@@ -383,4 +489,4 @@ __decorateClass([
|
|
|
383
489
|
export {
|
|
384
490
|
SynTabGroup
|
|
385
491
|
};
|
|
386
|
-
//# sourceMappingURL=chunk.
|
|
492
|
+
//# sourceMappingURL=chunk.BKZ45UEY.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/internal/scrollend-polyfill.ts", "../../src/components/tab-group/tab-group.component.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\ntype GenericCallback = (this: unknown, ...args: unknown[]) => unknown;\n\ntype MethodOf<T, K extends keyof T> = T[K] extends GenericCallback ? T[K] : never;\n\nconst debounce = <T extends GenericCallback>(fn: T, delay: number) => {\n let timerId = 0;\n\n return function (this: unknown, ...args: unknown[]) {\n window.clearTimeout(timerId);\n timerId = window.setTimeout(() => {\n fn.call(this, ...args);\n }, delay);\n };\n};\n\nconst decorate = <T, M extends keyof T>(\n proto: T,\n method: M,\n decorateFn: (this: unknown, superFn: T[M], ...args: unknown[]) => unknown\n) => {\n const superFn = proto[method] as MethodOf<T, M>;\n\n proto[method] = function (this: unknown, ...args: unknown[]) {\n superFn.call(this, ...args);\n decorateFn.call(this, superFn, ...args);\n } as MethodOf<T, M>;\n};\n\nconst isSupported = 'onscrollend' in window;\n\nif (!isSupported) {\n const pointers = new Set();\n const scrollHandlers = new WeakMap<EventTarget, EventListenerOrEventListenerObject>();\n\n const handlePointerDown = (event: TouchEvent) => {\n for (const touch of event.changedTouches) {\n pointers.add(touch.identifier);\n }\n };\n\n const handlePointerUp = (event: TouchEvent) => {\n for (const touch of event.changedTouches) {\n pointers.delete(touch.identifier);\n }\n };\n\n document.addEventListener('touchstart', handlePointerDown, true);\n document.addEventListener('touchend', handlePointerUp, true);\n document.addEventListener('touchcancel', handlePointerUp, true);\n\n decorate(EventTarget.prototype, 'addEventListener', function (this: EventTarget, addEventListener, type) {\n if (type !== 'scrollend') return;\n\n const handleScrollEnd = debounce(() => {\n if (!pointers.size) {\n // If no pointer is active in the scroll area then the scroll has ended\n this.dispatchEvent(new Event('scrollend'));\n } else {\n // otherwise let's wait a bit more\n handleScrollEnd();\n }\n }, 100);\n\n addEventListener.call(this, 'scroll', handleScrollEnd, { passive: true });\n scrollHandlers.set(this, handleScrollEnd);\n });\n\n decorate(EventTarget.prototype, 'removeEventListener', function (this: EventTarget, removeEventListener, type) {\n if (type !== 'scrollend') return;\n\n const scrollHandler = scrollHandlers.get(this);\n if (scrollHandler) {\n removeEventListener.call(this, 'scroll', scrollHandler, { passive: true } as unknown as EventListenerOptions);\n }\n });\n}\n\n// Without an import or export, TypeScript sees vars in this file as global\nexport {};\n", "/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\nimport '../../internal/scrollend-polyfill.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { eventOptions, property, query, state } from 'lit/decorators.js';\nimport { html } from 'lit';\nimport { LocalizeController } from '../../utilities/localize.js';\nimport { scrollIntoView } from '../../internal/scroll.js';\nimport { watch } from '../../internal/watch.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport SynIconButton from '../icon-button/icon-button.component.js';\nimport SynResizeObserver from '../resize-observer/resize-observer.component.js';\nimport styles from './tab-group.styles.js';\nimport customStyles from './tab-group.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\nimport type SynTab from '../tab/tab.js';\nimport type SynTabPanel from '../tab-panel/tab-panel.js';\n\n/**\n * @summary Tab groups organize content into a container that shows one section at a time.\n * @documentation https://synergy.style/components/tab-group\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon-button\n *\n * @slot - Used for grouping tab panels in the tab group. Must be `<syn-tab-panel>` elements.\n * @slot nav - Used for grouping tabs in the tab group. Must be `<syn-tab>` elements.\n *\n * @event {{ name: String }} syn-tab-show - Emitted when a tab is shown. The payload of the event returns the \"panel\" attribute of the shown tab.\n * @event {{ name: String }} syn-tab-hide - Emitted when a tab is hidden. The payload of the event returns the \"panel\" attribute of the hidden tab.\n *\n * @csspart base - The component's base wrapper.\n * @csspart nav - The tab group's navigation container where tabs are slotted in.\n * @csspart tabs - The container that wraps the tabs.\n * @csspart active-tab-indicator - The line that highlights the currently selected tab.\n * @csspart body - The tab group's body where tab panels are slotted in.\n * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<syn-icon-button>`.\n * @csspart scroll-button--start - The starting scroll button.\n * @csspart scroll-button--end - The ending scroll button.\n * @csspart scroll-button__base - The scroll button's exported `base` part.\n *\n * @cssproperty --indicator-color - The color of the active tab indicator.\n * @cssproperty --indicator-width - The width of the active tab indicator.\n * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).\n * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).\n */\nexport default class SynTabGroup extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles, customStyles];\n static dependencies = { 'syn-icon-button': SynIconButton, 'syn-resize-observer': SynResizeObserver };\n\n private readonly localize = new LocalizeController(this);\n\n private activeTab?: SynTab;\n private mutationObserver: MutationObserver;\n private resizeObserver: ResizeObserver;\n private tabs: SynTab[] = [];\n private focusableTabs: SynTab[] = [];\n private panels: SynTabPanel[] = [];\n\n @query('.tab-group') tabGroup: HTMLElement;\n @query('.tab-group__body') body: HTMLSlotElement;\n @query('.tab-group__nav') nav: HTMLElement;\n @query('.tab-group__indicator') indicator: HTMLElement;\n\n @state() private hasScrollControls = false;\n\n @state() private shouldHideScrollStartButton = false;\n @state() private shouldHideScrollEndButton = false;\n\n /** The placement of the tabs. */\n @property() placement: 'top' | 'start' | 'end' = 'top';\n\n /**\n * When set to auto, navigating tabs with the arrow keys will instantly show the corresponding tab panel. When set to\n * manual, the tab will receive focus but will not show until the user presses spacebar or enter.\n */\n @property() activation: 'auto' | 'manual' = 'auto';\n\n /** Disables the scroll arrows that appear when tabs overflow. */\n @property({ attribute: 'no-scroll-controls', type: Boolean }) noScrollControls = false;\n\n /** Draws the tab group as a contained element. */\n @property({ type: Boolean }) contained = false;\n \n /** Draws the tab group with edges instead of roundings. Takes only effect if used with the 'contained' property */\n @property({ type: Boolean }) sharp = false;\n\n /** Prevent scroll buttons from being hidden when inactive. */\n @property({ attribute: 'fixed-scroll-controls', type: Boolean }) fixedScrollControls = false;\n\n connectedCallback() {\n const whenAllDefined = Promise.all([\n customElements.whenDefined('syn-tab'),\n customElements.whenDefined('syn-tab-panel')\n ]);\n\n super.connectedCallback();\n\n this.resizeObserver = new ResizeObserver(() => {\n this.repositionIndicator();\n this.updateScrollControls();\n });\n\n this.mutationObserver = new MutationObserver(mutations => {\n // Update aria labels when the DOM changes\n if (mutations.some(m => !['aria-labelledby', 'aria-controls'].includes(m.attributeName!))) {\n setTimeout(() => this.setAriaLabels());\n }\n\n // Sync tabs when disabled states change\n if (mutations.some(m => m.attributeName === 'disabled')) {\n this.syncTabsAndPanels();\n }\n });\n\n // After the first update...\n this.updateComplete.then(() => {\n this.syncTabsAndPanels();\n this.mutationObserver.observe(this, { attributes: true, childList: true, subtree: true });\n this.resizeObserver.observe(this.nav);\n\n // Wait for tabs and tab panels to be registered\n whenAllDefined.then(() => {\n // Set initial tab state when the tabs become visible\n const intersectionObserver = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n this.setActiveTab(this.getActiveTab() ?? this.tabs[0], { emitEvents: false });\n observer.unobserve(entries[0].target);\n }\n });\n intersectionObserver.observe(this.tabGroup);\n });\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.mutationObserver?.disconnect();\n 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.matches(':dir(rtl)');\n let nextTab: null | SynTab = null;\n\n if (activeEl?.tagName.toLowerCase() === 'syn-tab') {\n if (event.key === 'Home') {\n nextTab = this.focusableTabs[0];\n } else if (event.key === 'End') {\n nextTab = this.focusableTabs[this.focusableTabs.length - 1];\n } else if (\n (['top'].includes(this.placement) && event.key === (isRtl ? 'ArrowRight' : 'ArrowLeft')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowUp')\n ) {\n const currentIndex = this.tabs.findIndex(el => el === activeEl);\n nextTab = this.findNextFocusableTab(currentIndex, 'backward');\n } else if (\n (['top'].includes(this.placement) && event.key === (isRtl ? 'ArrowLeft' : 'ArrowRight')) ||\n (['start', 'end'].includes(this.placement) && event.key === 'ArrowDown')\n ) {\n const currentIndex = this.tabs.findIndex(el => el === activeEl);\n nextTab = this.findNextFocusableTab(currentIndex, 'forward');\n }\n\n if (!nextTab) {\n return;\n }\n\n nextTab.tabIndex = 0;\n nextTab.focus({ preventScroll: true });\n\n if (this.activation === 'auto') {\n this.setActiveTab(nextTab, { scrollBehavior: 'smooth' });\n } else {\n this.tabs.forEach(tabEl => {\n tabEl.tabIndex = tabEl === nextTab ? 0 : -1;\n });\n }\n\n if (['top'].includes(this.placement)) {\n scrollIntoView(nextTab, this.nav, 'horizontal');\n }\n\n event.preventDefault();\n }\n }\n }\n\n private handleScrollToStart() {\n this.nav.scroll({\n left:\n this.localize.dir() === 'rtl'\n ? this.nav.scrollLeft + this.nav.clientWidth\n : this.nav.scrollLeft - this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private handleScrollToEnd() {\n this.nav.scroll({\n left:\n this.localize.dir() === 'rtl'\n ? this.nav.scrollLeft - this.nav.clientWidth\n : this.nav.scrollLeft + this.nav.clientWidth,\n behavior: 'smooth'\n });\n }\n\n private setActiveTab(tab: SynTab, options?: { emitEvents?: boolean; scrollBehavior?: 'auto' | 'smooth' }) {\n options = {\n emitEvents: true,\n scrollBehavior: 'auto',\n ...options\n };\n\n if (tab !== this.activeTab && !tab.disabled) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync active tab and panel\n this.tabs.forEach(el => {\n el.active = el === this.activeTab;\n el.tabIndex = el === this.activeTab ? 0 : -1;\n });\n this.panels.forEach(el => (el.active = el.name === this.activeTab?.panel));\n this.syncIndicator();\n\n if (['top'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal', options.scrollBehavior);\n }\n\n // Emit events\n if (options.emitEvents) {\n if (previousTab) {\n this.emit('syn-tab-hide', { detail: { name: previousTab.panel } });\n }\n\n this.emit('syn-tab-show', { detail: { name: this.activeTab.panel } });\n }\n }\n }\n\n private setAriaLabels() {\n // Link each tab with its corresponding panel\n this.tabs.forEach(tab => {\n const panel = this.panels.find(el => el.name === tab.panel);\n if (panel) {\n tab.setAttribute('aria-controls', panel.getAttribute('id')!);\n panel.setAttribute('aria-labelledby', tab.getAttribute('id')!);\n }\n });\n }\n\n private repositionIndicator() {\n const currentTab = this.getActiveTab();\n\n if (!currentTab) {\n return;\n }\n\n const width = currentTab.clientWidth;\n const height = currentTab.clientHeight;\n const isRtl = this.matches(':dir(rtl)');\n\n // We can't used offsetLeft/offsetTop here due to a shadow parent issue where neither can getBoundingClientRect\n // because it provides invalid values for animating elements: https://bugs.chromium.org/p/chromium/issues/detail?id=920069\n const allTabs = this.getAllTabs();\n const precedingTabs = allTabs.slice(0, allTabs.indexOf(currentTab));\n const offset = precedingTabs.reduce(\n (previous, current) => ({\n left: previous.left + current.clientWidth,\n top: previous.top + current.clientHeight\n }),\n { left: 0, top: 0 }\n );\n\n switch (this.placement) {\n case 'top':\n this.indicator.style.width = `calc(${width}px - ${ (this.contained || this.sharp) ? '2 * var(--syn-spacing-large)' : '0px' })`;\n this.indicator.style.height = 'auto';\n this.indicator.style.translate = `calc(${isRtl ? '-' : ''}1 * (${offset.left}px + ${ (this.contained || this.sharp) ? 'var(--syn-spacing-large)' : '0px' }))`;\n break;\n\n case 'start':\n case 'end':\n this.indicator.style.width = 'auto';\n this.indicator.style.height = `calc(${height}px - ${ (this.contained || this.sharp) ? '2 * var(--syn-spacing-small)' : '0px' })`;\n this.indicator.style.translate = `0 calc(${offset.top}px + ${ (this.contained || this.sharp) ? 'var(--syn-spacing-small)' : '0px' })`;\n break;\n }\n }\n\n // This stores tabs and panels so we can refer to a cache instead of calling querySelectorAll() multiple times.\n private syncTabsAndPanels() {\n this.tabs = this.getAllTabs();\n this.focusableTabs = this.tabs.filter(el => !el.disabled);\n\n this.panels = this.getAllPanels();\n this.syncIndicator();\n\n // After updating, show or hide scroll controls as needed\n this.updateComplete.then(() => this.updateScrollControls());\n }\n\n private findNextFocusableTab(currentIndex: number, direction: 'forward' | 'backward') {\n let nextTab = null;\n const iterator = direction === 'forward' ? 1 : -1;\n let nextIndex = currentIndex + iterator;\n\n while (currentIndex < this.tabs.length) {\n nextTab = this.tabs[nextIndex] || null;\n\n if (nextTab === null) {\n // This is where wrapping happens. If we're moving forward and get to the end, then we jump to the beginning. If we're moving backward and get to the start, then we jump to the end.\n if (direction === 'forward') {\n nextTab = this.focusableTabs[0];\n } else {\n nextTab = this.focusableTabs[this.focusableTabs.length - 1];\n }\n break;\n }\n\n if (!nextTab.disabled) {\n break;\n }\n\n nextIndex += iterator;\n }\n\n return nextTab;\n }\n\n /**\n * The reality of the browser means that we can't expect the scroll position to be exactly what we want it to be, so\n * we add one pixel of wiggle room to our calculations.\n */\n private scrollOffset = 1;\n\n @eventOptions({ passive: true })\n private updateScrollButtons() {\n if (this.hasScrollControls && !this.fixedScrollControls) {\n this.shouldHideScrollStartButton = this.scrollFromStart() <= this.scrollOffset;\n this.shouldHideScrollEndButton = this.isScrolledToEnd();\n }\n }\n\n private isScrolledToEnd() {\n return this.scrollFromStart() + this.nav.clientWidth >= this.nav.scrollWidth - this.scrollOffset;\n }\n\n private scrollFromStart() {\n return this.localize.dir() === 'rtl' ? -this.nav.scrollLeft : this.nav.scrollLeft;\n }\n\n @watch('noScrollControls', { waitUntilFirstUpdate: true })\n updateScrollControls() {\n if (this.noScrollControls) {\n this.hasScrollControls = false;\n } else {\n // In most cases, we can compare scrollWidth to clientWidth to determine if scroll controls should show. However,\n // Safari appears to calculate this incorrectly when zoomed at 110%, causing the controls to toggle indefinitely.\n // Adding a single pixel to the comparison seems to resolve it.\n //\n // See https://github.com/synergy-design-system/synergy/issues/1839\n this.hasScrollControls =\n ['top'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth + 1;\n }\n\n this.updateScrollButtons();\n }\n\n @watch('placement', { waitUntilFirstUpdate: true })\n syncIndicator() {\n const tab = this.getActiveTab();\n\n if (tab) {\n this.indicator.style.display = 'block';\n this.repositionIndicator();\n } else {\n this.indicator.style.display = 'none';\n }\n }\n\n /** Shows the specified tab panel. */\n show(panel: string) {\n const tab = this.tabs.find(el => el.panel === panel);\n\n if (tab) {\n this.setActiveTab(tab, { scrollBehavior: 'smooth' });\n }\n }\n\n render() {\n\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'tab-group': true,\n 'tab-group--top': this.placement === 'top',\n 'tab-group--start': this.placement === 'start',\n 'tab-group--end': this.placement === 'end',\n 'tab-group--rtl': this.localize.dir() === 'rtl',\n 'tab-group--has-scroll-controls': this.hasScrollControls,\n 'tab-group--contained': this.contained,\n 'tab-group--sharp': this.sharp,\n })}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n >\n <div class=\"tab-group__nav-container\" part=\"nav\">\n ${this.hasScrollControls\n ? html`\n <syn-icon-button\n part=\"scroll-button scroll-button--start\"\n exportparts=\"base:scroll-button__base\"\n class=${classMap({\n 'tab-group__scroll-button': true,\n 'tab-group__scroll-button--start': true,\n 'tab-group__scroll-button--start--hidden': this.shouldHideScrollStartButton\n })}\n name=\"chevron-right\"\n library=\"system\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n label=${this.localize.term('scrollToStart')}\n @click=${this.handleScrollToStart}\n ></syn-icon-button>\n `\n : ''}\n\n <div class=\"tab-group__nav\" @scrollend=${this.updateScrollButtons}>\n <div part=\"tabs\" class=\"tab-group__tabs\" role=\"tablist\">\n <div part=\"active-tab-indicator\" class=\"tab-group__indicator\"></div>\n <syn-resize-observer @syn-resize=${this.syncIndicator}>\n <slot name=\"nav\" @slotchange=${this.syncTabsAndPanels}></slot>\n </syn-resize-observer>\n </div>\n </div>\n\n ${this.hasScrollControls\n ? html`\n <syn-icon-button\n part=\"scroll-button scroll-button--end\"\n exportparts=\"base:scroll-button__base\"\n class=${classMap({\n 'tab-group__scroll-button': true,\n 'tab-group__scroll-button--end': true,\n 'tab-group__scroll-button--end--hidden': this.shouldHideScrollEndButton\n })}\n name=\"chevron-right\"\n library=\"system\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n label=${this.localize.term('scrollToEnd')}\n @click=${this.handleScrollToEnd}\n ></syn-icon-button>\n `\n : ''}\n </div>\n\n <slot part=\"body\" class=\"tab-group__body\" @slotchange=${this.syncTabsAndPanels}></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'syn-tab-group': SynTabGroup;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynRadio
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.XPIZMD2N.js";
|
|
4
4
|
|
|
5
5
|
// src/components/radio/radio.ts
|
|
6
6
|
var radio_default = SynRadio;
|
|
@@ -9,4 +9,4 @@ SynRadio.define("syn-radio");
|
|
|
9
9
|
export {
|
|
10
10
|
radio_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.BNHWEIFH.js.map
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import {
|
|
2
|
+
resize_observer_styles_default
|
|
3
|
+
} from "./chunk.OI3HOOCT.js";
|
|
4
|
+
import {
|
|
5
|
+
watch
|
|
6
|
+
} from "./chunk.74IOULXM.js";
|
|
7
|
+
import {
|
|
8
|
+
SynergyElement,
|
|
9
|
+
component_styles_default
|
|
10
|
+
} from "./chunk.IKOSRIQR.js";
|
|
11
|
+
import {
|
|
12
|
+
__decorateClass
|
|
13
|
+
} from "./chunk.2GFK6XTO.js";
|
|
14
|
+
|
|
15
|
+
// src/components/resize-observer/resize-observer.component.ts
|
|
16
|
+
import { html } from "lit";
|
|
17
|
+
import { property } from "lit/decorators.js";
|
|
18
|
+
var SynResizeObserver = class extends SynergyElement {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.observedElements = [];
|
|
22
|
+
this.disabled = false;
|
|
23
|
+
}
|
|
24
|
+
connectedCallback() {
|
|
25
|
+
super.connectedCallback();
|
|
26
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
|
27
|
+
this.emit("syn-resize", { detail: { entries } });
|
|
28
|
+
});
|
|
29
|
+
if (!this.disabled) {
|
|
30
|
+
this.startObserver();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
disconnectedCallback() {
|
|
34
|
+
super.disconnectedCallback();
|
|
35
|
+
this.stopObserver();
|
|
36
|
+
}
|
|
37
|
+
handleSlotChange() {
|
|
38
|
+
if (!this.disabled) {
|
|
39
|
+
this.startObserver();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
startObserver() {
|
|
43
|
+
const slot = this.shadowRoot.querySelector("slot");
|
|
44
|
+
if (slot !== null) {
|
|
45
|
+
const elements = slot.assignedElements({ flatten: true });
|
|
46
|
+
this.observedElements.forEach((el) => this.resizeObserver.unobserve(el));
|
|
47
|
+
this.observedElements = [];
|
|
48
|
+
elements.forEach((el) => {
|
|
49
|
+
this.resizeObserver.observe(el);
|
|
50
|
+
this.observedElements.push(el);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
stopObserver() {
|
|
55
|
+
this.resizeObserver.disconnect();
|
|
56
|
+
}
|
|
57
|
+
handleDisabledChange() {
|
|
58
|
+
if (this.disabled) {
|
|
59
|
+
this.stopObserver();
|
|
60
|
+
} else {
|
|
61
|
+
this.startObserver();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
render() {
|
|
65
|
+
return html` <slot @slotchange=${this.handleSlotChange}></slot> `;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
SynResizeObserver.styles = [component_styles_default, resize_observer_styles_default];
|
|
69
|
+
__decorateClass([
|
|
70
|
+
property({ type: Boolean, reflect: true })
|
|
71
|
+
], SynResizeObserver.prototype, "disabled", 2);
|
|
72
|
+
__decorateClass([
|
|
73
|
+
watch("disabled", { waitUntilFirstUpdate: true })
|
|
74
|
+
], SynResizeObserver.prototype, "handleDisabledChange", 1);
|
|
75
|
+
|
|
76
|
+
export {
|
|
77
|
+
SynResizeObserver
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=chunk.BUV5EYAG.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/resize-observer/resize-observer.component.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\nimport { html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { watch } from '../../internal/watch.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport styles from './resize-observer.styles.js';\nimport type { CSSResultGroup } from 'lit';\n\n/**\n * @summary The Resize Observer component offers a thin, declarative interface to the [`ResizeObserver API`](https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver).\n * @documentation https://synergy.style/components/resize-observer\n * @status stable\n * @since 2.0\n *\n * @slot - One or more elements to watch for resizing.\n *\n * @event {{ entries: ResizeObserverEntry[] }} syn-resize - Emitted when the element is resized.\n */\nexport default class SynResizeObserver extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles];\n\n private resizeObserver: ResizeObserver;\n private observedElements: HTMLElement[] = [];\n\n /** Disables the observer. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n this.emit('syn-resize', { detail: { entries } });\n });\n\n if (!this.disabled) {\n this.startObserver();\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.stopObserver();\n }\n\n private handleSlotChange() {\n if (!this.disabled) {\n this.startObserver();\n }\n }\n\n private startObserver() {\n const slot = this.shadowRoot!.querySelector('slot');\n\n if (slot !== null) {\n const elements = slot.assignedElements({ flatten: true }) as HTMLElement[];\n\n // Unwatch previous elements\n this.observedElements.forEach(el => this.resizeObserver.unobserve(el));\n this.observedElements = [];\n\n // Watch new elements\n elements.forEach(el => {\n this.resizeObserver.observe(el);\n this.observedElements.push(el);\n });\n }\n }\n\n private stopObserver() {\n this.resizeObserver.disconnect();\n }\n\n @watch('disabled', { waitUntilFirstUpdate: true })\n handleDisabledChange() {\n if (this.disabled) {\n this.stopObserver();\n } else {\n this.startObserver();\n }\n }\n\n render() {\n return html` <slot @slotchange=${this.handleSlotChange}></slot> `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'syn-resize-observer': SynResizeObserver;\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;AAQA,SAAS,YAAY;AACrB,SAAS,gBAAgB;AAiBzB,IAAqB,oBAArB,cAA+C,eAAe;AAAA,EAA9D;AAAA;AAIE,SAAQ,mBAAkC,CAAC;AAGC,oBAAW;AAAA;AAAA,EAEvD,oBAAoB;AAClB,UAAM,kBAAkB;AACxB,SAAK,iBAAiB,IAAI,eAAe,CAAC,YAAmC;AAC3E,WAAK,KAAK,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAAA,IACjD,CAAC;AAED,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,cAAc;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,uBAAuB;AACrB,UAAM,qBAAqB;AAC3B,SAAK,aAAa;AAAA,EACpB;AAAA,EAEQ,mBAAmB;AACzB,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,cAAc;AAAA,IACrB;AAAA,EACF;AAAA,EAEQ,gBAAgB;AACtB,UAAM,OAAO,KAAK,WAAY,cAAc,MAAM;AAElD,QAAI,SAAS,MAAM;AACjB,YAAM,WAAW,KAAK,iBAAiB,EAAE,SAAS,KAAK,CAAC;AAGxD,WAAK,iBAAiB,QAAQ,QAAM,KAAK,eAAe,UAAU,EAAE,CAAC;AACrE,WAAK,mBAAmB,CAAC;AAGzB,eAAS,QAAQ,QAAM;AACrB,aAAK,eAAe,QAAQ,EAAE;AAC9B,aAAK,iBAAiB,KAAK,EAAE;AAAA,MAC/B,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEQ,eAAe;AACrB,SAAK,eAAe,WAAW;AAAA,EACjC;AAAA,EAGA,uBAAuB;AACrB,QAAI,KAAK,UAAU;AACjB,WAAK,aAAa;AAAA,IACpB,OAAO;AACL,WAAK,cAAc;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,SAAS;AACP,WAAO,0BAA0B,KAAK,gBAAgB;AAAA,EACxD;AACF;AAjEqB,kBACZ,SAAyB,CAAC,0BAAiB,8BAAM;AAMZ;AAAA,EAA3C,SAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAPvB,kBAOyB;AA+C5C;AAAA,EADC,MAAM,YAAY,EAAE,sBAAsB,KAAK,CAAC;AAAA,GArD9B,kBAsDnB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk.BBUFEDXF.js";
|
|
7
7
|
import {
|
|
8
8
|
SynIconButton
|
|
9
|
-
} from "./chunk.
|
|
9
|
+
} from "./chunk.OBTXUQOH.js";
|
|
10
10
|
import {
|
|
11
11
|
LocalizeController
|
|
12
12
|
} from "./chunk.GIU3H3J3.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
import {
|
|
17
17
|
SynergyElement,
|
|
18
18
|
component_styles_default
|
|
19
|
-
} from "./chunk.
|
|
19
|
+
} from "./chunk.IKOSRIQR.js";
|
|
20
20
|
import {
|
|
21
21
|
__decorateClass
|
|
22
22
|
} from "./chunk.2GFK6XTO.js";
|
|
@@ -116,4 +116,4 @@ __decorateClass([
|
|
|
116
116
|
export {
|
|
117
117
|
SynTab
|
|
118
118
|
};
|
|
119
|
-
//# sourceMappingURL=chunk.
|
|
119
|
+
//# sourceMappingURL=chunk.C277SCSZ.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynCombobox
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.HVNSACCH.js";
|
|
4
4
|
|
|
5
5
|
// src/components/combobox/combobox.ts
|
|
6
6
|
var combobox_default = SynCombobox;
|
|
@@ -9,4 +9,4 @@ SynCombobox.define("syn-combobox");
|
|
|
9
9
|
export {
|
|
10
10
|
combobox_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.CCRUEP7M.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynIcon
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.562KEWJB.js";
|
|
4
4
|
|
|
5
5
|
// src/components/icon/icon.ts
|
|
6
6
|
var icon_default = SynIcon;
|
|
@@ -9,4 +9,4 @@ SynIcon.define("syn-icon");
|
|
|
9
9
|
export {
|
|
10
10
|
icon_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.CFVULRUC.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
SynergyElement,
|
|
6
6
|
component_styles_default
|
|
7
|
-
} from "./chunk.
|
|
7
|
+
} from "./chunk.IKOSRIQR.js";
|
|
8
8
|
import {
|
|
9
9
|
__decorateClass
|
|
10
10
|
} from "./chunk.2GFK6XTO.js";
|
|
@@ -87,4 +87,4 @@ function findButton(el) {
|
|
|
87
87
|
export {
|
|
88
88
|
SynButtonGroup
|
|
89
89
|
};
|
|
90
|
-
//# sourceMappingURL=chunk.
|
|
90
|
+
//# sourceMappingURL=chunk.CSKJ56S5.js.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
SynergyElement,
|
|
15
15
|
component_styles_default
|
|
16
|
-
} from "./chunk.
|
|
16
|
+
} from "./chunk.IKOSRIQR.js";
|
|
17
17
|
import {
|
|
18
18
|
__decorateClass
|
|
19
19
|
} from "./chunk.2GFK6XTO.js";
|
|
@@ -32,7 +32,15 @@ var SynBreadcrumbItem = class extends SynergyElement {
|
|
|
32
32
|
}
|
|
33
33
|
setRenderType() {
|
|
34
34
|
const hasDropdown = this.defaultSlot.assignedElements({ flatten: true }).filter((i) => i.tagName.toLowerCase() === "syn-dropdown").length > 0;
|
|
35
|
-
|
|
35
|
+
if (this.href) {
|
|
36
|
+
this.renderType = "link";
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (hasDropdown) {
|
|
40
|
+
this.renderType = "dropdown";
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
this.renderType = "button";
|
|
36
44
|
}
|
|
37
45
|
hrefChanged() {
|
|
38
46
|
this.setRenderType();
|
|
@@ -65,17 +73,16 @@ var SynBreadcrumbItem = class extends SynergyElement {
|
|
|
65
73
|
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
66
74
|
</a>
|
|
67
75
|
` : ""}
|
|
68
|
-
|
|
76
|
+
${this.renderType === "button" ? html`
|
|
69
77
|
<button part="label" type="button" class="breadcrumb-item__label breadcrumb-item__label--button">
|
|
70
78
|
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
71
79
|
</button>
|
|
72
80
|
` : ""}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
<
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
` : ""}
|
|
81
|
+
${this.renderType === "dropdown" ? html`
|
|
82
|
+
<div part="label" class="breadcrumb-item__label breadcrumb-item__label--drop-down">
|
|
83
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
84
|
+
</div>
|
|
85
|
+
` : ""}
|
|
79
86
|
|
|
80
87
|
<span part="suffix" class="breadcrumb-item__suffix">
|
|
81
88
|
<slot name="suffix"></slot>
|
|
@@ -111,4 +118,4 @@ __decorateClass([
|
|
|
111
118
|
export {
|
|
112
119
|
SynBreadcrumbItem
|
|
113
120
|
};
|
|
114
|
-
//# sourceMappingURL=chunk.
|
|
121
|
+
//# sourceMappingURL=chunk.CWMONTOP.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/components/breadcrumb-item/breadcrumb-item.component.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * ---------------------------------------------------------------------\n * \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n * Removing this comment will prevent it from being managed by it.\n * ---------------------------------------------------------------------\n */\n\n/* eslint-disable */\nimport { classMap } from 'lit/directives/class-map.js';\nimport { HasSlotController } from '../../internal/slot.js';\nimport { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { property, query, state } from 'lit/decorators.js';\nimport { watch } from '../../internal/watch.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport styles from './breadcrumb-item.styles.js';\nimport customStyles from './breadcrumb-item.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\n\n/**\n * @summary Breadcrumb Items are used inside [breadcrumbs](/components/breadcrumb) to represent different links.\n * @documentation https://synergy.style/components/breadcrumb-item\n * @status stable\n * @since 2.0\n *\n * @slot - The breadcrumb item's label.\n * @slot prefix - An optional prefix, usually an icon or icon button.\n * @slot suffix - An optional suffix, usually an icon or icon button.\n * @slot separator - The separator to use for the breadcrumb item. This will only change the separator for this item. If\n * you want to change it for all items in the group, set the separator on `<syn-breadcrumb>` instead.\n *\n * @csspart base - The component's base wrapper.\n * @csspart label - The breadcrumb item's label.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart suffix - The container that wraps the suffix.\n * @csspart separator - The container that wraps the separator.\n */\nexport default class SynBreadcrumbItem extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles, customStyles];\n\n private readonly hasSlotController = new HasSlotController(this, 'prefix', 'suffix');\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n\n @state() private renderType: 'button' | 'link' | 'dropdown' = 'button';\n\n /**\n * Optional URL to direct the user to when the breadcrumb item is activated. When set, a link will be rendered\n * internally. When unset, a button will be rendered instead.\n */\n @property() href?: string;\n\n /** Tells the browser where to open the link. Only used when `href` is set. */\n @property() target?: '_blank' | '_parent' | '_self' | '_top';\n\n /** The `rel` attribute to use on the link. Only used when `href` is set. */\n @property() rel = 'noreferrer noopener';\n\n private setRenderType() {\n const hasDropdown =\n this.defaultSlot.assignedElements({ flatten: true }).filter(i => i.tagName.toLowerCase() === 'syn-dropdown')\n .length > 0;\n\n if (this.href) {\n this.renderType = 'link';\n return;\n }\n\n if (hasDropdown) {\n this.renderType = 'dropdown';\n return;\n }\n\n this.renderType = 'button';\n }\n\n @watch('href', { waitUntilFirstUpdate: true })\n hrefChanged() {\n this.setRenderType();\n }\n\n handleSlotChange() {\n this.setRenderType();\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'breadcrumb-item': true,\n 'breadcrumb-item--has-prefix': this.hasSlotController.test('prefix'),\n 'breadcrumb-item--has-suffix': this.hasSlotController.test('suffix')\n })}\n >\n <span part=\"prefix\" class=\"breadcrumb-item__prefix\">\n <slot name=\"prefix\"></slot>\n </span>\n\n ${this.renderType === 'link'\n ? html`\n <a\n part=\"label\"\n class=\"breadcrumb-item__label breadcrumb-item__label--link\"\n href=\"${this.href!}\"\n target=\"${ifDefined(this.target ? this.target : undefined)}\"\n rel=${ifDefined(this.target ? this.rel : undefined)}\n >\n <slot @slotchange=${this.handleSlotChange}></slot>\n </a>\n `\n : ''}\n ${this.renderType === 'button'\n ? html`\n <button part=\"label\" type=\"button\" class=\"breadcrumb-item__label breadcrumb-item__label--button\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </button>\n `\n : ''}\n ${this.renderType === 'dropdown'\n ? html`\n <div part=\"label\" class=\"breadcrumb-item__label breadcrumb-item__label--drop-down\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </div>\n `\n : ''}\n\n <span part=\"suffix\" class=\"breadcrumb-item__suffix\">\n <slot name=\"suffix\"></slot>\n </span>\n\n <span part=\"separator\" class=\"breadcrumb-item__separator\" aria-hidden=\"true\">\n <slot name=\"separator\"></slot>\n </span>\n </div>\n `;\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAQA,SAAS,gBAAgB;AAEzB,SAAS,YAAY;AACrB,SAAS,iBAAiB;AAC1B,SAAS,UAAU,OAAO,aAAa;AA0BvC,IAAqB,oBAArB,cAA+C,eAAe;AAAA,EAA9D;AAAA;AAGE,SAAiB,oBAAoB,IAAI,kBAAkB,MAAM,UAAU,QAAQ;AAI1E,SAAQ,aAA6C;AAYlD,eAAM;AAAA;AAAA,EAEV,gBAAgB;AACtB,UAAM,cACJ,KAAK,YAAY,iBAAiB,EAAE,SAAS,KAAK,CAAC,EAAE,OAAO,OAAK,EAAE,QAAQ,YAAY,MAAM,cAAc,EACxG,SAAS;AAEd,QAAI,KAAK,MAAM;AACb,WAAK,aAAa;AAClB;AAAA,IACF;AAEA,QAAI,aAAa;AACf,WAAK,aAAa;AAClB;AAAA,IACF;AAEA,SAAK,aAAa;AAAA,EACpB;AAAA,EAGA,cAAc;AACZ,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,mBAAmB;AACjB,SAAK,cAAc;AAAA,EACrB;AAAA,EAEA,SAAS;AACP,WAAO;AAAA;AAAA;AAAA,gBAGK,SAAS;AAAA,MACf,mBAAmB;AAAA,MACnB,+BAA+B,KAAK,kBAAkB,KAAK,QAAQ;AAAA,MACnE,+BAA+B,KAAK,kBAAkB,KAAK,QAAQ;AAAA,IACrE,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMA,KAAK,eAAe,SAClB;AAAA;AAAA;AAAA;AAAA,wBAIY,KAAK,IAAK;AAAA,0BACR,UAAU,KAAK,SAAS,KAAK,SAAS,MAAS,CAAC;AAAA,sBACpD,UAAU,KAAK,SAAS,KAAK,MAAM,MAAS,CAAC;AAAA;AAAA,oCAE/B,KAAK,gBAAgB;AAAA;AAAA,gBAG7C,EAAE;AAAA,UACJ,KAAK,eAAe,WAClB;AAAA;AAAA,oCAEwB,KAAK,gBAAgB;AAAA;AAAA,gBAG7C,EAAE;AAAA,UACJ,KAAK,eAAe,aAClB;AAAA;AAAA,oCAEwB,KAAK,gBAAgB;AAAA;AAAA,gBAG7C,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWZ;AACF;AApGqB,kBACZ,SAAyB,CAAC,0BAAiB,gCAAQ,qCAAY;AAI3C;AAAA,EAA1B,MAAM,kBAAkB;AAAA,GALN,kBAKQ;AAEV;AAAA,EAAhB,MAAM;AAAA,GAPY,kBAOF;AAML;AAAA,EAAX,SAAS;AAAA,GAbS,kBAaP;AAGA;AAAA,EAAX,SAAS;AAAA,GAhBS,kBAgBP;AAGA;AAAA,EAAX,SAAS;AAAA,GAnBS,kBAmBP;AAqBZ;AAAA,EADC,MAAM,QAAQ,EAAE,sBAAsB,KAAK,CAAC;AAAA,GAvC1B,kBAwCnB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SynBreadcrumb
|
|
3
|
-
} from "./chunk.
|
|
3
|
+
} from "./chunk.KKC6JEDF.js";
|
|
4
4
|
|
|
5
5
|
// src/components/breadcrumb/breadcrumb.ts
|
|
6
6
|
var breadcrumb_default = SynBreadcrumb;
|
|
@@ -9,4 +9,4 @@ SynBreadcrumb.define("syn-breadcrumb");
|
|
|
9
9
|
export {
|
|
10
10
|
breadcrumb_default
|
|
11
11
|
};
|
|
12
|
-
//# sourceMappingURL=chunk.
|
|
12
|
+
//# sourceMappingURL=chunk.D65PFCEJ.js.map
|