@tylertech/forge 2.3.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/custom-elements.json +114521 -0
- package/dist/esm/accordion/index.js +6 -5
- package/dist/esm/app-bar/help-button/index.js +16 -15
- package/dist/esm/app-bar/index.js +26 -25
- package/dist/esm/app-bar/menu-button/index.js +7 -6
- package/dist/esm/app-bar/notification-button/index.js +8 -7
- package/dist/esm/app-bar/profile-button/index.js +12 -11
- package/dist/esm/app-bar/search/index.js +5 -4
- package/dist/esm/autocomplete/index.js +18 -17
- package/dist/esm/avatar/index.js +1 -1
- package/dist/esm/backdrop/index.js +1 -1
- package/dist/esm/badge/index.js +1 -1
- package/dist/esm/banner/index.js +7 -6
- package/dist/esm/bottom-sheet/index.js +10 -9
- package/dist/esm/busy-indicator/index.js +8 -7
- package/dist/esm/button/index.js +4 -3
- package/dist/esm/button-toggle/button-toggle/index.js +3 -3
- package/dist/esm/button-toggle/button-toggle-group/index.js +3 -3
- package/dist/esm/button-toggle/index.js +4 -4
- package/dist/esm/calendar/calendar-dropdown/index.js +5 -4
- package/dist/esm/calendar/calendar-menu/index.js +3 -2
- package/dist/esm/calendar/index.js +11 -10
- package/dist/esm/card/index.js +1 -1
- package/dist/esm/checkbox/index.js +4 -3
- package/dist/esm/chip-field/index.js +8 -7
- package/dist/esm/chips/chip/index.js +6 -5
- package/dist/esm/chips/chip-set/index.js +6 -5
- package/dist/esm/chips/index.js +7 -6
- package/dist/esm/chunks/{chunk.PZ25GQD2.js → chunk.2MBI5DLT.js} +6 -6
- package/dist/esm/chunks/{chunk.PZ25GQD2.js.map → chunk.2MBI5DLT.js.map} +2 -2
- package/dist/esm/chunks/{chunk.B425FZOZ.js → chunk.2WBHHTUM.js} +2 -2
- package/dist/esm/chunks/{chunk.B425FZOZ.js.map → chunk.2WBHHTUM.js.map} +2 -2
- package/dist/esm/chunks/{chunk.WXFCZJJI.js → chunk.3EHQ3YHJ.js} +1 -1
- package/dist/esm/chunks/{chunk.WXFCZJJI.js.map → chunk.3EHQ3YHJ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.LKUKESRQ.js → chunk.3QXCVTCP.js} +2 -2
- package/dist/esm/chunks/{chunk.LKUKESRQ.js.map → chunk.3QXCVTCP.js.map} +0 -0
- package/dist/esm/chunks/{chunk.ZIFMMVW6.js → chunk.46BED43J.js} +3 -3
- package/dist/esm/chunks/{chunk.ZIFMMVW6.js.map → chunk.46BED43J.js.map} +2 -2
- package/dist/esm/chunks/{chunk.VTXXZ5KT.js → chunk.4PF7WRP4.js} +2 -2
- package/dist/esm/chunks/{chunk.VTXXZ5KT.js.map → chunk.4PF7WRP4.js.map} +2 -2
- package/dist/esm/chunks/{chunk.KZ2QNQK2.js → chunk.4WLVFWKI.js} +2 -2
- package/dist/esm/chunks/{chunk.KZ2QNQK2.js.map → chunk.4WLVFWKI.js.map} +0 -0
- package/dist/esm/chunks/{chunk.C2MR3RDF.js → chunk.56BNM7F2.js} +1 -1
- package/dist/esm/chunks/{chunk.C2MR3RDF.js.map → chunk.56BNM7F2.js.map} +2 -2
- package/dist/esm/chunks/{chunk.HNKH3ZP5.js → chunk.5H65ASFE.js} +74 -74
- package/dist/esm/chunks/{chunk.HNKH3ZP5.js.map → chunk.5H65ASFE.js.map} +0 -0
- package/dist/esm/chunks/{chunk.3AK3VGRT.js → chunk.5OYAJ36F.js} +2 -2
- package/dist/esm/chunks/{chunk.3AK3VGRT.js.map → chunk.5OYAJ36F.js.map} +0 -0
- package/dist/esm/chunks/{chunk.4UKSUUTX.js → chunk.5U6ZT6MC.js} +2 -2
- package/dist/esm/chunks/{chunk.4UKSUUTX.js.map → chunk.5U6ZT6MC.js.map} +2 -2
- package/dist/esm/chunks/{chunk.3NOZRZ7R.js → chunk.65GHMPX2.js} +3 -3
- package/dist/esm/chunks/{chunk.3NOZRZ7R.js.map → chunk.65GHMPX2.js.map} +2 -2
- package/dist/esm/chunks/{chunk.C44LSSHS.js → chunk.67B6JDOJ.js} +3 -3
- package/dist/esm/chunks/{chunk.C44LSSHS.js.map → chunk.67B6JDOJ.js.map} +2 -2
- package/dist/esm/chunks/chunk.6EGTLHJS.js +16 -0
- package/dist/esm/chunks/chunk.6EGTLHJS.js.map +7 -0
- package/dist/esm/chunks/{chunk.EL6B2ODN.js → chunk.6ZBFCE2A.js} +1 -1
- package/dist/esm/chunks/{chunk.EL6B2ODN.js.map → chunk.6ZBFCE2A.js.map} +2 -2
- package/dist/esm/chunks/{chunk.VAPJ75PS.js → chunk.7FWTBD6Y.js} +2 -2
- package/dist/esm/chunks/{chunk.VAPJ75PS.js.map → chunk.7FWTBD6Y.js.map} +0 -0
- package/dist/esm/chunks/{chunk.KCK3G74Y.js → chunk.7UAH67PT.js} +2 -2
- package/dist/esm/chunks/{chunk.KCK3G74Y.js.map → chunk.7UAH67PT.js.map} +2 -2
- package/dist/esm/chunks/{chunk.BORNGK7Q.js → chunk.ANME7BKM.js} +2 -2
- package/dist/esm/chunks/{chunk.BORNGK7Q.js.map → chunk.ANME7BKM.js.map} +2 -2
- package/dist/esm/chunks/{chunk.5INCRYSV.js → chunk.BEAJZPWS.js} +2 -2
- package/dist/esm/chunks/{chunk.5INCRYSV.js.map → chunk.BEAJZPWS.js.map} +0 -0
- package/dist/esm/chunks/{chunk.Y2ORADJS.js → chunk.BVGJFMEG.js} +8 -8
- package/dist/esm/chunks/{chunk.Y2ORADJS.js.map → chunk.BVGJFMEG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.L65L5VJ6.js → chunk.C73AZRT4.js} +4 -4
- package/dist/esm/chunks/{chunk.L65L5VJ6.js.map → chunk.C73AZRT4.js.map} +2 -2
- package/dist/esm/chunks/{chunk.4ZBBOR4H.js → chunk.CLEUHAZ6.js} +2 -2
- package/dist/esm/chunks/{chunk.4ZBBOR4H.js.map → chunk.CLEUHAZ6.js.map} +2 -2
- package/dist/esm/chunks/{chunk.V3FSZDTW.js → chunk.CMXAORYF.js} +5 -5
- package/dist/esm/chunks/{chunk.V3FSZDTW.js.map → chunk.CMXAORYF.js.map} +2 -2
- package/dist/esm/chunks/{chunk.U35QQZVK.js → chunk.D33KLIFD.js} +1 -1
- package/dist/esm/chunks/{chunk.U35QQZVK.js.map → chunk.D33KLIFD.js.map} +2 -2
- package/dist/esm/chunks/{chunk.5EEEKOOK.js → chunk.DLF5JAQO.js} +1 -1
- package/dist/esm/chunks/{chunk.5EEEKOOK.js.map → chunk.DLF5JAQO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.ZUM5YLB2.js → chunk.E26BROOG.js} +1 -1
- package/dist/esm/chunks/{chunk.ZUM5YLB2.js.map → chunk.E26BROOG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.UM3J4AZ7.js → chunk.EBC2HGO3.js} +4 -4
- package/dist/esm/chunks/chunk.EBC2HGO3.js.map +7 -0
- package/dist/esm/chunks/{chunk.YCW56AVX.js → chunk.FJJVIMZ2.js} +1 -1
- package/dist/esm/chunks/{chunk.YCW56AVX.js.map → chunk.FJJVIMZ2.js.map} +2 -2
- package/dist/esm/chunks/{chunk.HHHMDDTU.js → chunk.FZ6KICMD.js} +1 -1
- package/dist/esm/chunks/{chunk.HHHMDDTU.js.map → chunk.FZ6KICMD.js.map} +2 -2
- package/dist/esm/chunks/{chunk.D4VIYWFB.js → chunk.GHZ75UPO.js} +3 -3
- package/dist/esm/chunks/{chunk.D4VIYWFB.js.map → chunk.GHZ75UPO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.SJZ54RE3.js → chunk.GL72QT42.js} +1 -1
- package/dist/esm/chunks/{chunk.SJZ54RE3.js.map → chunk.GL72QT42.js.map} +2 -2
- package/dist/esm/chunks/{chunk.PCYIY5OY.js → chunk.GNAIKBO6.js} +2 -2
- package/dist/esm/chunks/{chunk.PCYIY5OY.js.map → chunk.GNAIKBO6.js.map} +2 -2
- package/dist/esm/chunks/{chunk.IWXT6VVJ.js → chunk.GOWHXADJ.js} +15 -1
- package/dist/esm/chunks/chunk.GOWHXADJ.js.map +7 -0
- package/dist/esm/chunks/{chunk.G6FY472A.js → chunk.GWNR3UUX.js} +2 -2
- package/dist/esm/chunks/{chunk.G6FY472A.js.map → chunk.GWNR3UUX.js.map} +2 -2
- package/dist/esm/chunks/{chunk.2NUAEZY7.js → chunk.GXTNND2M.js} +1 -1
- package/dist/esm/chunks/{chunk.2NUAEZY7.js.map → chunk.GXTNND2M.js.map} +2 -2
- package/dist/esm/chunks/{chunk.YJ5X3WZ4.js → chunk.HASAPJMX.js} +1 -1
- package/dist/esm/chunks/{chunk.YJ5X3WZ4.js.map → chunk.HASAPJMX.js.map} +2 -2
- package/dist/esm/chunks/{chunk.EWQENJ4W.js → chunk.HMM7PGGZ.js} +2 -2
- package/dist/esm/chunks/{chunk.EWQENJ4W.js.map → chunk.HMM7PGGZ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.IYOZSEZ3.js → chunk.I6PJGNJS.js} +2 -2
- package/dist/esm/chunks/{chunk.IYOZSEZ3.js.map → chunk.I6PJGNJS.js.map} +2 -2
- package/dist/esm/chunks/{chunk.3ZKORL4I.js → chunk.I7BQUB7Z.js} +2 -2
- package/dist/esm/chunks/chunk.I7BQUB7Z.js.map +7 -0
- package/dist/esm/chunks/{chunk.XY3ZHN7Y.js → chunk.IBED5TWL.js} +1 -1
- package/dist/esm/chunks/{chunk.XY3ZHN7Y.js.map → chunk.IBED5TWL.js.map} +2 -2
- package/dist/esm/chunks/{chunk.47D77ELY.js → chunk.IGBDDH3J.js} +6 -6
- package/dist/esm/chunks/{chunk.47D77ELY.js.map → chunk.IGBDDH3J.js.map} +0 -0
- package/dist/esm/chunks/{chunk.RF5UPII7.js → chunk.IJW2YKP3.js} +13 -13
- package/dist/esm/chunks/{chunk.RF5UPII7.js.map → chunk.IJW2YKP3.js.map} +2 -2
- package/dist/esm/chunks/{chunk.5CZWANU6.js → chunk.ITQ55IPH.js} +4 -4
- package/dist/esm/chunks/{chunk.5CZWANU6.js.map → chunk.ITQ55IPH.js.map} +2 -2
- package/dist/esm/chunks/{chunk.IBH5GL7A.js → chunk.IUNON3UL.js} +2 -2
- package/dist/esm/chunks/{chunk.IBH5GL7A.js.map → chunk.IUNON3UL.js.map} +2 -2
- package/dist/esm/chunks/{chunk.5VNEDRVC.js → chunk.J5NUYQ4D.js} +6 -6
- package/dist/esm/chunks/{chunk.5VNEDRVC.js.map → chunk.J5NUYQ4D.js.map} +0 -0
- package/dist/esm/chunks/{chunk.DWURTRGM.js → chunk.JC2PZ4TS.js} +8 -8
- package/dist/esm/chunks/{chunk.DWURTRGM.js.map → chunk.JC2PZ4TS.js.map} +2 -2
- package/dist/esm/chunks/{chunk.7M3P4QES.js → chunk.JUXKYUD4.js} +9 -9
- package/dist/esm/chunks/{chunk.7M3P4QES.js.map → chunk.JUXKYUD4.js.map} +2 -2
- package/dist/esm/chunks/{chunk.6V463G4I.js → chunk.KCVJDJ6K.js} +1 -1
- package/dist/esm/chunks/{chunk.6V463G4I.js.map → chunk.KCVJDJ6K.js.map} +2 -2
- package/dist/esm/chunks/{chunk.DKHOY6QU.js → chunk.KNR5DXE4.js} +2 -2
- package/dist/esm/chunks/{chunk.DKHOY6QU.js.map → chunk.KNR5DXE4.js.map} +2 -2
- package/dist/esm/chunks/{chunk.C64YUJHS.js → chunk.L344BPCW.js} +2 -2
- package/dist/esm/chunks/{chunk.C64YUJHS.js.map → chunk.L344BPCW.js.map} +2 -2
- package/dist/esm/chunks/{chunk.HWWCD755.js → chunk.L4OUV7W6.js} +5 -5
- package/dist/esm/chunks/{chunk.HWWCD755.js.map → chunk.L4OUV7W6.js.map} +2 -2
- package/dist/esm/chunks/{chunk.EQCPRLUV.js → chunk.LHWZ4KZU.js} +3 -3
- package/dist/esm/chunks/{chunk.EQCPRLUV.js.map → chunk.LHWZ4KZU.js.map} +2 -2
- package/dist/esm/chunks/{chunk.KQB2BYBK.js → chunk.LK2DN5KX.js} +4 -4
- package/dist/esm/chunks/{chunk.KQB2BYBK.js.map → chunk.LK2DN5KX.js.map} +2 -2
- package/dist/esm/chunks/{chunk.7G2S3DCM.js → chunk.LX2HDAIF.js} +2 -2
- package/dist/esm/chunks/{chunk.7G2S3DCM.js.map → chunk.LX2HDAIF.js.map} +2 -2
- package/dist/esm/chunks/{chunk.YDPSV74L.js → chunk.M3O5VPDD.js} +3 -3
- package/dist/esm/chunks/{chunk.YDPSV74L.js.map → chunk.M3O5VPDD.js.map} +0 -0
- package/dist/esm/chunks/{chunk.NJRPAX7P.js → chunk.MBZLA635.js} +30 -29
- package/dist/esm/chunks/chunk.MBZLA635.js.map +7 -0
- package/dist/esm/chunks/{chunk.XJVLHRVJ.js → chunk.MF3IZXQG.js} +2 -2
- package/dist/esm/chunks/{chunk.XJVLHRVJ.js.map → chunk.MF3IZXQG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.HFELDK4X.js → chunk.MUP3NY6M.js} +9 -9
- package/dist/esm/chunks/{chunk.HFELDK4X.js.map → chunk.MUP3NY6M.js.map} +2 -2
- package/dist/esm/chunks/{chunk.2F6PST3N.js → chunk.OXS2O7RG.js} +1 -1
- package/dist/esm/chunks/{chunk.2F6PST3N.js.map → chunk.OXS2O7RG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.RMVJBNCY.js → chunk.PKZ43JNW.js} +4 -4
- package/dist/esm/chunks/{chunk.RMVJBNCY.js.map → chunk.PKZ43JNW.js.map} +2 -2
- package/dist/esm/chunks/{chunk.3VR7VHL5.js → chunk.PM7D2SUE.js} +1 -1
- package/dist/esm/chunks/{chunk.3VR7VHL5.js.map → chunk.PM7D2SUE.js.map} +0 -0
- package/dist/esm/chunks/{chunk.WAJDLUSQ.js → chunk.QHHYCB7N.js} +1 -1
- package/dist/esm/chunks/{chunk.WAJDLUSQ.js.map → chunk.QHHYCB7N.js.map} +2 -2
- package/dist/esm/chunks/{chunk.I5JCM7RT.js → chunk.QWW6A7AF.js} +6 -6
- package/dist/esm/chunks/{chunk.I5JCM7RT.js.map → chunk.QWW6A7AF.js.map} +2 -2
- package/dist/esm/chunks/{chunk.OYO6NUZY.js → chunk.QXZZ2MTF.js} +1 -1
- package/dist/esm/chunks/{chunk.OYO6NUZY.js.map → chunk.QXZZ2MTF.js.map} +2 -2
- package/dist/esm/chunks/{chunk.P477KUJ4.js → chunk.QYWAZCBX.js} +3 -3
- package/dist/esm/chunks/chunk.QYWAZCBX.js.map +7 -0
- package/dist/esm/chunks/{chunk.Y2TDQIA4.js → chunk.RD4RIFOZ.js} +1 -1
- package/dist/esm/chunks/{chunk.Y2TDQIA4.js.map → chunk.RD4RIFOZ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.YKNYR3NX.js → chunk.RL7ZFLMG.js} +6 -6
- package/dist/esm/chunks/{chunk.YKNYR3NX.js.map → chunk.RL7ZFLMG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.VEC77KBM.js → chunk.S3UVF647.js} +2 -2
- package/dist/esm/chunks/{chunk.VEC77KBM.js.map → chunk.S3UVF647.js.map} +2 -2
- package/dist/esm/chunks/{chunk.RWCC6E4O.js → chunk.THKWQXBJ.js} +1 -1
- package/dist/esm/chunks/{chunk.RWCC6E4O.js.map → chunk.THKWQXBJ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.DVYPTR7X.js → chunk.TIUNGGBF.js} +4 -4
- package/dist/esm/chunks/{chunk.DVYPTR7X.js.map → chunk.TIUNGGBF.js.map} +0 -0
- package/dist/esm/chunks/{chunk.ZPABBQEA.js → chunk.TM46MNYN.js} +4 -4
- package/dist/esm/chunks/{chunk.ZPABBQEA.js.map → chunk.TM46MNYN.js.map} +2 -2
- package/dist/esm/chunks/{chunk.7XGNGXLR.js → chunk.TYU4RLZG.js} +1 -1
- package/dist/esm/chunks/{chunk.7XGNGXLR.js.map → chunk.TYU4RLZG.js.map} +2 -2
- package/dist/esm/chunks/{chunk.MSCWHFJZ.js → chunk.U37G47LH.js} +8 -8
- package/dist/esm/chunks/{chunk.MSCWHFJZ.js.map → chunk.U37G47LH.js.map} +2 -2
- package/dist/esm/chunks/{chunk.OZAKUOZA.js → chunk.U5ECVIX5.js} +5 -5
- package/dist/esm/chunks/{chunk.OZAKUOZA.js.map → chunk.U5ECVIX5.js.map} +2 -2
- package/dist/esm/chunks/{chunk.O7DYWQD7.js → chunk.UPW5HUKB.js} +5 -5
- package/dist/esm/chunks/{chunk.O7DYWQD7.js.map → chunk.UPW5HUKB.js.map} +2 -2
- package/dist/esm/chunks/{chunk.NL6CT7BU.js → chunk.UQ3QTUUB.js} +2 -2
- package/dist/esm/chunks/{chunk.NL6CT7BU.js.map → chunk.UQ3QTUUB.js.map} +2 -2
- package/dist/esm/chunks/{chunk.JVQP6BJ3.js → chunk.V2ELLBDP.js} +1 -1
- package/dist/esm/chunks/{chunk.JVQP6BJ3.js.map → chunk.V2ELLBDP.js.map} +2 -2
- package/dist/esm/chunks/{chunk.2LQMHAC7.js → chunk.V6Q2SM6Y.js} +1 -1
- package/dist/esm/chunks/{chunk.2LQMHAC7.js.map → chunk.V6Q2SM6Y.js.map} +2 -2
- package/dist/esm/chunks/{chunk.U7HKGOBR.js → chunk.VXAPRFMK.js} +4 -4
- package/dist/esm/chunks/{chunk.U7HKGOBR.js.map → chunk.VXAPRFMK.js.map} +2 -2
- package/dist/esm/chunks/{chunk.H3WRHPWA.js → chunk.VXVE7KEM.js} +4 -4
- package/dist/esm/chunks/{chunk.H3WRHPWA.js.map → chunk.VXVE7KEM.js.map} +2 -2
- package/dist/esm/chunks/{chunk.P7NOYP4O.js → chunk.WDD2GTIH.js} +1 -1
- package/dist/esm/chunks/{chunk.P7NOYP4O.js.map → chunk.WDD2GTIH.js.map} +2 -2
- package/dist/esm/chunks/{chunk.RNPIV3BY.js → chunk.WNVZQDNS.js} +1 -1
- package/dist/esm/chunks/{chunk.RNPIV3BY.js.map → chunk.WNVZQDNS.js.map} +2 -2
- package/dist/esm/chunks/{chunk.V6TRG2CM.js → chunk.WSH4S3GM.js} +2 -2
- package/dist/esm/chunks/{chunk.V6TRG2CM.js.map → chunk.WSH4S3GM.js.map} +2 -2
- package/dist/esm/chunks/{chunk.HVD3BBQG.js → chunk.XHMNHBZD.js} +2 -2
- package/dist/esm/chunks/{chunk.HVD3BBQG.js.map → chunk.XHMNHBZD.js.map} +2 -2
- package/dist/esm/chunks/{chunk.DB7ZQBES.js → chunk.YL2NAVJW.js} +1 -1
- package/dist/esm/chunks/{chunk.DB7ZQBES.js.map → chunk.YL2NAVJW.js.map} +2 -2
- package/dist/esm/chunks/{chunk.FF2RETWV.js → chunk.ZLF2G3YT.js} +11 -11
- package/dist/esm/chunks/{chunk.FF2RETWV.js.map → chunk.ZLF2G3YT.js.map} +2 -2
- package/dist/esm/chunks/{chunk.EKIW7VYG.js → chunk.ZXIDTDRC.js} +1 -1
- package/dist/esm/chunks/{chunk.EKIW7VYG.js.map → chunk.ZXIDTDRC.js.map} +2 -2
- package/dist/esm/circular-progress/index.js +1 -1
- package/dist/esm/color-picker/index.js +7 -6
- package/dist/esm/core/index.js +5 -1
- package/dist/esm/core/utils/index.js +5 -1
- package/dist/esm/date-picker/index.js +14 -13
- package/dist/esm/date-range-picker/index.js +14 -13
- package/dist/esm/dialog/index.js +10 -9
- package/dist/esm/divider/index.js +1 -1
- package/dist/esm/drawer/base/index.js +2 -1
- package/dist/esm/drawer/drawer/index.js +3 -2
- package/dist/esm/drawer/index.js +6 -5
- package/dist/esm/drawer/mini-drawer/index.js +3 -2
- package/dist/esm/drawer/modal-drawer/index.js +4 -3
- package/dist/esm/expansion-panel/index.js +5 -4
- package/dist/esm/file-picker/index.js +5 -4
- package/dist/esm/floating-action-button/index.js +2 -2
- package/dist/esm/icon/index.js +3 -2
- package/dist/esm/icon-button/index.js +5 -4
- package/dist/esm/index.js +90 -86
- package/dist/esm/inline-message/index.js +1 -1
- package/dist/esm/keyboard-shortcut/index.js +1 -1
- package/dist/esm/label-value/index.js +1 -1
- package/dist/esm/linear-progress/index.js +1 -1
- package/dist/esm/list/index.js +3 -3
- package/dist/esm/list/list/index.js +3 -3
- package/dist/esm/list/list-item/index.js +2 -2
- package/dist/esm/list-dropdown/index.js +10 -9
- package/dist/esm/menu/index.js +13 -12
- package/dist/esm/open-icon/index.js +4 -3
- package/dist/esm/page-state/index.js +1 -1
- package/dist/esm/paginator/index.js +23 -22
- package/dist/esm/popup/index.js +1 -1
- package/dist/esm/product-icon/index.js +1 -1
- package/dist/esm/profile-card/index.js +7 -6
- package/dist/esm/quantity-field/index.js +6 -5
- package/dist/esm/radio/index.js +2 -2
- package/dist/esm/ripple/index.js +1 -1
- package/dist/esm/scaffold/index.js +1 -1
- package/dist/esm/select/core/index.js +14 -13
- package/dist/esm/select/index.js +21 -20
- package/dist/esm/select/option/index.js +1 -1
- package/dist/esm/select/option-group/index.js +1 -1
- package/dist/esm/select/select/index.js +19 -18
- package/dist/esm/select/select-dropdown/index.js +19 -18
- package/dist/esm/skeleton/index.js +1 -1
- package/dist/esm/slider/index.js +3 -2
- package/dist/esm/stepper/index.js +6 -5
- package/dist/esm/stepper/step/index.js +5 -4
- package/dist/esm/stepper/stepper/index.js +6 -5
- package/dist/esm/switch/index.js +3 -2
- package/dist/esm/table/index.js +9 -8
- package/dist/esm/tabs/index.js +8 -7
- package/dist/esm/tabs/tab/index.js +3 -3
- package/dist/esm/tabs/tab-bar/index.js +7 -6
- package/dist/esm/text-field/index.js +1 -1
- package/dist/esm/time-picker/index.js +18 -17
- package/dist/esm/toast/index.js +7 -6
- package/dist/esm/toolbar/index.js +1 -1
- package/dist/esm/tooltip/index.js +1 -1
- package/dist/esm/view-switcher/index.js +2 -2
- package/dist/esm/view-switcher/view/index.js +1 -1
- package/dist/forge-dark.css +1 -1
- package/esm/accordion/accordion.d.ts +2 -0
- package/esm/accordion/accordion.js +2 -0
- package/esm/app-bar/app-bar.d.ts +5 -1
- package/esm/app-bar/app-bar.js +5 -1
- package/esm/app-bar/help-button/app-bar-help-button.d.ts +5 -0
- package/esm/app-bar/help-button/app-bar-help-button.js +5 -0
- package/esm/app-bar/menu-button/app-bar-menu-button.d.ts +5 -0
- package/esm/app-bar/menu-button/app-bar-menu-button.js +5 -0
- package/esm/app-bar/notification-button/app-bar-notification-button.d.ts +5 -0
- package/esm/app-bar/notification-button/app-bar-notification-button.js +5 -0
- package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +5 -0
- package/esm/app-bar/profile-button/app-bar-profile-button.js +5 -0
- package/esm/app-bar/search/app-bar-search.d.ts +26 -0
- package/esm/app-bar/search/app-bar-search.js +26 -0
- package/esm/autocomplete/autocomplete.d.ts +2 -0
- package/esm/autocomplete/autocomplete.js +2 -0
- package/esm/avatar/avatar.d.ts +2 -0
- package/esm/avatar/avatar.js +2 -0
- package/esm/backdrop/backdrop.d.ts +2 -0
- package/esm/backdrop/backdrop.js +2 -0
- package/esm/badge/badge.d.ts +5 -0
- package/esm/badge/badge.js +5 -0
- package/esm/banner/banner.d.ts +2 -0
- package/esm/banner/banner.js +2 -0
- package/esm/bottom-sheet/bottom-sheet.d.ts +5 -0
- package/esm/bottom-sheet/bottom-sheet.js +5 -0
- package/esm/busy-indicator/busy-indicator.d.ts +5 -1
- package/esm/busy-indicator/busy-indicator.js +5 -1
- package/esm/button/button.d.ts +2 -0
- package/esm/button/button.js +2 -0
- package/esm/button-toggle/button-toggle/button-toggle.d.ts +5 -0
- package/esm/button-toggle/button-toggle/button-toggle.js +5 -0
- package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +5 -0
- package/esm/button-toggle/button-toggle-group/button-toggle-group.js +5 -0
- package/esm/calendar/calendar-menu/calendar-menu.d.ts +6 -0
- package/esm/calendar/calendar-menu/calendar-menu.js +6 -0
- package/esm/calendar/calendar.d.ts +5 -0
- package/esm/calendar/calendar.js +5 -0
- package/esm/card/card.d.ts +5 -1
- package/esm/card/card.js +5 -1
- package/esm/checkbox/checkbox.d.ts +2 -0
- package/esm/checkbox/checkbox.js +2 -0
- package/esm/chip-field/chip-field.d.ts +5 -0
- package/esm/chip-field/chip-field.js +5 -0
- package/esm/chips/chip/chip.d.ts +2 -0
- package/esm/chips/chip/chip.js +2 -0
- package/esm/chips/chip-set/chip-set.d.ts +5 -0
- package/esm/chips/chip-set/chip-set.js +5 -0
- package/esm/circular-progress/circular-progress.d.ts +5 -0
- package/esm/circular-progress/circular-progress.js +5 -0
- package/esm/color-picker/color-picker.d.ts +5 -0
- package/esm/color-picker/color-picker.js +5 -0
- package/esm/core/utils/event-utils.d.ts +12 -0
- package/esm/core/utils/event-utils.js +16 -0
- package/esm/core/utils/index.d.ts +1 -0
- package/esm/core/utils/index.js +1 -0
- package/esm/date-picker/date-picker.d.ts +5 -1
- package/esm/date-picker/date-picker.js +5 -1
- package/esm/date-range-picker/date-range-picker.d.ts +5 -1
- package/esm/date-range-picker/date-range-picker.js +5 -1
- package/esm/dialog/dialog.d.ts +5 -0
- package/esm/dialog/dialog.js +5 -0
- package/esm/divider/divider.d.ts +2 -0
- package/esm/divider/divider.js +2 -0
- package/esm/drawer/base/base-drawer-adapter.d.ts +5 -0
- package/esm/drawer/base/base-drawer-adapter.js +13 -0
- package/esm/drawer/base/base-drawer-foundation.js +2 -0
- package/esm/drawer/drawer/drawer.d.ts +5 -0
- package/esm/drawer/drawer/drawer.js +5 -0
- package/esm/drawer/mini-drawer/mini-drawer.d.ts +5 -0
- package/esm/drawer/mini-drawer/mini-drawer.js +5 -0
- package/esm/drawer/modal-drawer/modal-drawer.d.ts +5 -0
- package/esm/drawer/modal-drawer/modal-drawer.js +5 -0
- package/esm/expansion-panel/expansion-panel.d.ts +2 -0
- package/esm/expansion-panel/expansion-panel.js +2 -0
- package/esm/file-picker/file-picker.d.ts +5 -0
- package/esm/file-picker/file-picker.js +5 -0
- package/esm/floating-action-button/floating-action-button.d.ts +5 -1
- package/esm/floating-action-button/floating-action-button.js +5 -1
- package/esm/icon/icon.d.ts +5 -0
- package/esm/icon/icon.js +5 -0
- package/esm/icon-button/icon-button.d.ts +2 -0
- package/esm/icon-button/icon-button.js +2 -0
- package/esm/inline-message/inline-message.d.ts +5 -0
- package/esm/inline-message/inline-message.js +5 -0
- package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +5 -0
- package/esm/keyboard-shortcut/keyboard-shortcut.js +5 -0
- package/esm/label-value/label-value.d.ts +5 -0
- package/esm/label-value/label-value.js +6 -1
- package/esm/linear-progress/linear-progress.d.ts +5 -0
- package/esm/linear-progress/linear-progress.js +5 -0
- package/esm/list/list/list.d.ts +2 -0
- package/esm/list/list/list.js +2 -0
- package/esm/list/list-item/list-item.d.ts +5 -1
- package/esm/list/list-item/list-item.js +5 -1
- package/esm/menu/menu.d.ts +5 -0
- package/esm/menu/menu.js +5 -0
- package/esm/open-icon/open-icon.d.ts +5 -0
- package/esm/open-icon/open-icon.js +5 -0
- package/esm/page-state/page-state.d.ts +5 -0
- package/esm/page-state/page-state.js +5 -0
- package/esm/paginator/paginator.d.ts +2 -0
- package/esm/paginator/paginator.js +2 -0
- package/esm/popup/popup.d.ts +5 -0
- package/esm/popup/popup.js +5 -0
- package/esm/product-icon/product-icon.d.ts +5 -0
- package/esm/product-icon/product-icon.js +5 -0
- package/esm/profile-card/profile-card.d.ts +5 -0
- package/esm/profile-card/profile-card.js +5 -0
- package/esm/quantity-field/quantity-field.d.ts +5 -0
- package/esm/quantity-field/quantity-field.js +5 -0
- package/esm/radio/radio.d.ts +2 -0
- package/esm/radio/radio.js +2 -0
- package/esm/ripple/ripple.d.ts +5 -0
- package/esm/ripple/ripple.js +5 -0
- package/esm/scaffold/scaffold.d.ts +2 -0
- package/esm/scaffold/scaffold.js +2 -0
- package/esm/select/option/option.d.ts +2 -0
- package/esm/select/option/option.js +2 -0
- package/esm/select/option-group/option-group.d.ts +2 -0
- package/esm/select/option-group/option-group.js +2 -0
- package/esm/select/select/select-adapter.js +12 -10
- package/esm/select/select/select-foundation.d.ts +2 -0
- package/esm/select/select/select-foundation.js +6 -2
- package/esm/select/select/select.d.ts +2 -2
- package/esm/select/select/select.js +4 -6
- package/esm/select/select-dropdown/select-dropdown.d.ts +5 -0
- package/esm/select/select-dropdown/select-dropdown.js +5 -0
- package/esm/skeleton/skeleton.d.ts +5 -0
- package/esm/skeleton/skeleton.js +5 -0
- package/esm/slider/slider.d.ts +2 -0
- package/esm/slider/slider.js +2 -0
- package/esm/stepper/step/step.d.ts +5 -0
- package/esm/stepper/step/step.js +5 -0
- package/esm/stepper/stepper/stepper.d.ts +5 -0
- package/esm/stepper/stepper/stepper.js +5 -0
- package/esm/switch/switch.d.ts +2 -0
- package/esm/switch/switch.js +2 -0
- package/esm/table/table.d.ts +3 -1
- package/esm/table/table.js +3 -1
- package/esm/tabs/tab/tab.d.ts +5 -0
- package/esm/tabs/tab/tab.js +5 -0
- package/esm/tabs/tab-bar/tab-bar.d.ts +2 -0
- package/esm/tabs/tab-bar/tab-bar.js +2 -0
- package/esm/text-field/text-field.d.ts +5 -0
- package/esm/text-field/text-field.js +5 -0
- package/esm/time-picker/time-picker.d.ts +5 -0
- package/esm/time-picker/time-picker.js +5 -0
- package/esm/toast/toast.d.ts +2 -0
- package/esm/toast/toast.js +2 -0
- package/esm/toolbar/toolbar.d.ts +5 -0
- package/esm/toolbar/toolbar.js +5 -0
- package/esm/tooltip/tooltip.d.ts +5 -1
- package/esm/tooltip/tooltip.js +5 -1
- package/esm/view-switcher/view/view.d.ts +5 -0
- package/esm/view-switcher/view/view.js +5 -0
- package/esm/view-switcher/view-switcher.d.ts +5 -0
- package/esm/view-switcher/view-switcher.js +5 -0
- package/package.json +3 -2
- package/styles/label-value/_mixins.scss +10 -7
- package/styles/label-value/_variables.scss +1 -0
- package/styles/select/select/_selector.scss +4 -2
- package/styles/select/select/select.scss +4 -0
- package/styles/theme/_theme-values.scss +1 -1
- package/styles/theme/_theme.scss +2 -1
- package/dist/esm/chunks/chunk.3ZKORL4I.js.map +0 -7
- package/dist/esm/chunks/chunk.IWXT6VVJ.js.map +0 -7
- package/dist/esm/chunks/chunk.NJRPAX7P.js.map +0 -7
- package/dist/esm/chunks/chunk.P477KUJ4.js.map +0 -7
- package/dist/esm/chunks/chunk.UM3J4AZ7.js.map +0 -7
- package/styles/label-value/_base.scss +0 -252
- package/styles/label-value/_core.scss +0 -15
- package/styles/label-value/_selector.scss +0 -167
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/select/select/select-constants.ts", "../../src/select/select/select-adapter.ts", "../../src/select/select/select-foundation.ts", "../../src/select/select/select.ts", "../../src/select/select/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}select`;\n\nconst classes = {\n ROOT: 'forge-select',\n OPENED: 'forge-select--opened',\n SELECTED_TEXT: 'forge-select__selected-text',\n DROPDOWN: 'forge-select__dropdown',\n LABEL_FLOAT: 'forge-select--label-float',\n GROUP_WRAPPER: 'forge-select__group-wrapper'\n};\n\nconst selectors = {\n ROOT: `.${classes.ROOT}`,\n SELECTED_TEXT: `.${classes.SELECTED_TEXT}`,\n LABEL: 'label#select-label',\n LEADING_SLOT: 'slot[name=leading]',\n ADDON_END_SLOT: 'slot[name=addon-end]'\n};\n\nconst attributes = {\n TYPE: 'type',\n VALUE: 'value',\n LABEL: 'label',\n MULTIPLE: 'multiple',\n DISABLED: 'disabled',\n PLACEHOLDER: 'placeholder',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold'\n};\n\nconst events = {\n SCROLLED_BOTTOM: `${elementName}-scrolled-bottom`\n};\n\nexport const SELECT_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events\n};\n\nexport {\n FieldDensityType as SelectDensityType,\n FieldFloatLabelType as SelectFloatLabelType,\n FieldShapeType as SelectShapeType\n} from '../../field/field-constants';\n", "import { calculateFontWidth, getShadowElement, IFontInfo, toggleClass, toggleAttribute } from '@tylertech/forge-core';\nimport { FloatingLabel, IFloatingLabel } from '../../floating-label/floating-label';\nimport { ISelectComponent } from './select';\nimport { SELECT_CONSTANTS } from './select-constants';\nimport { IBaseSelectAdapter, BaseSelectAdapter } from '../core';\nimport { IListDropdownConfig } from '../../list-dropdown/list-dropdown-constants';\nimport { FIELD_CONSTANTS } from '../../field/field-constants';\n\nexport type OptionListenerDestructor = () => void;\n\nexport interface ISelectAdapter extends IBaseSelectAdapter {\n initializeFloatingLabel(): IFloatingLabel;\n initializeLabel(): void;\n hasLabel(): boolean;\n setLabel(value: string): void;\n addRootClass(name: string): void;\n removeRootClass(name: string): void;\n setPlaceholderText(value: string): void;\n setSelectedText(value: string): void;\n addMouseDownListener(listener: (evt: MouseEvent) => void): void;\n removeMouseDownListener(listener: (evt: MouseEvent) => void): void;\n setLeadingListener(listener: (evt: Event) => void): void;\n removeLeadingListener(listener: (evt: Event) => void): void;\n setAddonEndListener(listener: (evt: Event) => void): void;\n removeAddonEndListener(listener: (evt: Event) => void): void;\n hasLeadingElement(): boolean;\n setDisabled(isDisabled: boolean): void;\n setInvalid(isInvalid: boolean): void;\n setRequired(isRequired: boolean): void;\n setRoomy(isRoomy: boolean): void;\n setDense(isDense: boolean): void;\n getLabelWidth(fontSize: number, fontFamily: string): number;\n getLabelFontMetrics(): IFontInfo;\n getTargetWidth(): number;\n hasAddonEndNodes(): boolean;\n setFocus(): void;\n isWithinSelf(element: HTMLElement): boolean;\n}\n\n/**\n * The DOM adapter behind the `<forge-select>` component.\n */\nexport class SelectAdapter extends BaseSelectAdapter implements ISelectAdapter {\n private _selectElement: HTMLElement;\n private _labelElement: HTMLLabelElement;\n private _selectedTextElement: HTMLElement;\n private _leadingSlot: HTMLSlotElement;\n private _addonEndSlot: HTMLSlotElement;\n\n constructor(component: ISelectComponent) {\n super(component);\n this._selectElement = getShadowElement(component, SELECT_CONSTANTS.selectors.ROOT);\n this._leadingSlot = getShadowElement(component, SELECT_CONSTANTS.selectors.LEADING_SLOT) as HTMLSlotElement;\n this._addonEndSlot = getShadowElement(this._component, SELECT_CONSTANTS.selectors.ADDON_END_SLOT) as HTMLSlotElement;\n this._selectedTextElement = getShadowElement(component, SELECT_CONSTANTS.selectors.SELECTED_TEXT) as HTMLElement;\n this._targetElement = this._selectElement;\n }\n\n public initializeLabel(): void {\n this._labelElement = getShadowElement(this._component, SELECT_CONSTANTS.selectors.LABEL) as HTMLLabelElement;\n }\n\n public hasLabel(): boolean {\n return !!this._labelElement;\n }\n\n public initializeAccessibility(): void {\n this._component.setAttribute('role', 'combobox');\n this._component.setAttribute('aria-live', 'assertive');\n this._component.setAttribute('aria-atomic', 'true');\n this._component.setAttribute('aria-haspopup', 'true');\n this._component.setAttribute('aria-expanded', 'false');\n }\n\n public initializeFloatingLabel(): IFloatingLabel {\n return new FloatingLabel(this._labelElement);\n }\n\n public setLabel(value: string): void {\n if (!this._component.hasAttribute('aria-label') || this._component.getAttribute('aria-label') === this._labelElement.textContent) {\n this._component.setAttribute('aria-label', value);\n }\n this._labelElement.textContent = value;\n }\n\n public addRootClass(name: string): void {\n this._selectElement.classList.add(name);\n }\n\n public removeRootClass(name: string): void {\n this._selectElement.classList.remove(name);\n }\n\n public setPlaceholderText(value: string): void {\n toggleAttribute(this._selectedTextElement, !!value, 'placeholder', value);\n }\n\n public addClickListener(listener: (evt: Event) => void): void {\n this._selectElement.addEventListener('click', listener);\n }\n\n public removeClickListener(listener: (evt: Event) => void): void {\n this._selectElement.removeEventListener('click', listener);\n }\n\n public addMouseDownListener(listener: (evt: MouseEvent) => void): void {\n this._selectElement.addEventListener('mousedown', listener);\n }\n\n public removeMouseDownListener(listener: (evt: MouseEvent) => void): void {\n this._selectElement.removeEventListener('mousedown', listener);\n }\n\n public addTargetListener(type: string, listener: (evt: Event) => void): void {\n this._selectedTextElement.addEventListener(type, listener);\n }\n\n public removeTargetListener(type: string, listener: (evt: Event) => void): void {\n this._selectedTextElement.removeEventListener(type, listener);\n }\n\n public open(config: IListDropdownConfig): void {\n super.open(config);\n this._component.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n this._component.setAttribute('aria-expanded', 'true');\n toggleClass(this._selectElement, true, SELECT_CONSTANTS.classes.OPENED);\n }\n\n public close(): void {\n this._component.setAttribute('aria-expanded', 'false');\n this._component.removeAttribute('aria-activedescendant');\n this._component.removeAttribute('aria-controls');\n toggleClass(this._selectElement, false, SELECT_CONSTANTS.classes.OPENED);\n super.close();\n }\n\n public updateActiveDescendant(id: string): void {\n toggleAttribute(this._component, !!id, 'aria-activedescendant', id);\n }\n\n public setSelectedText(value: string): void {\n this._selectedTextElement.textContent = value;\n }\n\n public setLeadingListener(listener: (evt: Event) => void): void {\n this._leadingSlot.addEventListener('slotchange', listener);\n }\n\n public removeLeadingListener(listener: (evt: Event) => void): void {\n this._leadingSlot.removeEventListener('slotchange', listener);\n }\n\n public setAddonEndListener(listener: (evt: Event) => void): void {\n this._addonEndSlot.addEventListener('slotchange', listener);\n }\n\n public removeAddonEndListener(listener: (evt: Event) => void): void {\n this._addonEndSlot.removeEventListener('slotchange', listener);\n }\n\n public hasLeadingElement(): boolean {\n return this._leadingSlot.assignedNodes().length > 0;\n }\n\n public setDisabled(isDisabled: boolean): void {\n toggleClass(this._selectElement, isDisabled, FIELD_CONSTANTS.classes.DISABLED);\n toggleAttribute(this._component, isDisabled, 'aria-disabled', 'true');\n this._selectedTextElement.tabIndex = isDisabled ? -1 : 0;\n }\n\n public setInvalid(isInvalid: boolean): void {\n toggleClass(this._selectElement, isInvalid, FIELD_CONSTANTS.classes.INVALID);\n toggleAttribute(this._component, isInvalid, 'aria-invalid', 'true');\n }\n\n public setRequired(isRequired: boolean): void {\n toggleClass(this._selectElement, isRequired, FIELD_CONSTANTS.classes.REQUIRED);\n toggleAttribute(this._component, isRequired, 'aria-required', 'true');\n }\n\n public setRoomy(isRoomy: boolean): void {\n toggleClass(this._selectElement, isRoomy, FIELD_CONSTANTS.classes.ROOMY);\n }\n\n public setDense(isDense: boolean): void {\n toggleClass(this._selectElement, isDense, FIELD_CONSTANTS.classes.DENSE);\n }\n\n public setMultiple(multiple: boolean): void {\n if (multiple) {\n this.setHostAttribute('aria-multiselectable', 'true');\n } else {\n this.removeHostAttribute('aria-multiselectable');\n }\n }\n\n public getLabelWidth(fontSize: number, fontFamily: string): number {\n return calculateFontWidth(this._labelElement.innerText, { fontSize, fontFamily });\n }\n\n public getLabelFontMetrics(): IFontInfo {\n const style = getComputedStyle(this._labelElement);\n return {\n fontSize: parseInt(style.fontSize || '16', 10),\n fontFamily: style.fontFamily || 'Roboto'\n };\n }\n\n public getTargetWidth(): number {\n return this._selectElement.getBoundingClientRect().width;\n }\n\n public hasAddonEndNodes(): boolean {\n if (!this._addonEndSlot) {\n return false;\n }\n return this._addonEndSlot.assignedNodes().length > 0;\n }\n\n public setFocus(): void {\n this._selectedTextElement.focus();\n }\n\n public isWithinSelf(element: HTMLElement): boolean {\n const isShadowChild = !!this._component.shadowRoot && this._component.shadowRoot.contains(element);\n return isShadowChild || this._component.contains(element);\n }\n}\n", "import { isDefined, getEventPath } from '@tylertech/forge-core';\nimport { IBaseSelectFoundation, ISelectOption, BaseSelectFoundation } from '../core';\nimport { SELECT_CONSTANTS } from './select-constants';\nimport { IFloatingLabel } from '../../floating-label';\nimport { ISelectAdapter } from './select-adapter';\nimport { FieldDensityType, FieldFloatLabelType, FieldShapeType, FIELD_CONSTANTS } from '../../field/field-constants';\n\nexport interface ISelectFoundation extends IBaseSelectFoundation {\n label: string;\n disabled: boolean;\n density: FieldDensityType;\n invalid: boolean;\n required: boolean;\n floatLabelType: FieldFloatLabelType;\n placeholder: string;\n}\n\n/**\n * The foundation class behind the `<forge-select>` component.\n */\nexport class SelectFoundation extends BaseSelectFoundation<ISelectAdapter> implements ISelectFoundation {\n private _floatingLabelInstance: IFloatingLabel | undefined;\n private _shape: FieldShapeType = 'default';\n private _label = '';\n private _disabled = false;\n private _invalid = false;\n private _required = false;\n private _floatLabelType: FieldFloatLabelType = 'auto';\n private _placeholder: string;\n private _density: FieldDensityType = 'default';\n private _isInitialized = false;\n private _leadingChangeListener: (evt: Event) => void;\n private _addonEndChangeListener: (evt: Event) => void;\n private _mousedownListener: (evt: MouseEvent) => void;\n\n constructor(adapter: ISelectAdapter) {\n super(adapter);\n this._leadingChangeListener = evt => this._onLeadingSlotChanged(evt);\n this._addonEndChangeListener = evt => this._onAddonEndSlotChanged(evt);\n this._targetWidthCallback = () => this._adapter.getTargetWidth();\n this._mousedownListener = evt => this._onMouseDown(evt);\n }\n\n public initialize(): void {\n super.initialize();\n super.initializeTarget();\n this._initializeLabel();\n this._initializeAccessibility();\n\n this._adapter.setPlaceholderText(this._placeholder);\n this._applyDensity();\n this._setShapeType();\n\n this._detectLeadingElement();\n this._detectAddonEndContent();\n this._adapter.addMouseDownListener(this._mousedownListener);\n this._adapter.setLeadingListener(this._leadingChangeListener);\n this._adapter.setAddonEndListener(this._addonEndChangeListener);\n\n if (this._disabled) {\n this._adapter.setDisabled(true);\n }\n\n if (this._invalid) {\n this._adapter.setInvalid(true);\n }\n\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n super.disconnect();\n this._adapter.removeMouseDownListener(this._mousedownListener);\n this._adapter.removeLeadingListener(this._leadingChangeListener);\n this._adapter.removeAddonEndListener(this._leadingChangeListener);\n\n if (this._floatingLabelInstance) {\n this._floatingLabelInstance.destroy();\n this._floatingLabelInstance = undefined;\n }\n }\n\n private _initializeLabel(): void {\n this._adapter.initializeLabel();\n this._updateLabel();\n this._floatingLabelInstance = this._adapter.initializeFloatingLabel();\n if (this._floatLabelType === 'always') {\n this._floatLabel(true);\n } else {\n const hasText = !!this._getSelectedText();\n const hasPlaceholder = !!this._placeholder;\n this._floatLabel(hasText || hasPlaceholder);\n }\n }\n\n private _destroyLabel(): void {\n if (this._floatingLabelInstance) {\n this._floatingLabelInstance.destroy();\n this._floatingLabelInstance = undefined;\n }\n }\n\n protected _initializeValue(): void {\n super._initializeValue();\n if (this._selectedValues.length) {\n this._floatLabel(true);\n }\n }\n\n private _initializeAccessibility(): void {\n this._adapter.setMultiple(this._multiple);\n if (this._required) {\n this._adapter.setHostAttribute('aria-required', 'true');\n }\n if (this._disabled) {\n this._adapter.setHostAttribute('aria-disabled', 'true');\n }\n if (this._invalid) {\n this._adapter.setHostAttribute('aria-invalid', 'true');\n }\n }\n\n private _onMouseDown(evt: MouseEvent): void {\n const isElementWithinSelf = this._adapter.isWithinSelf(evt.target as HTMLElement);\n if (isElementWithinSelf) {\n evt.preventDefault();\n }\n }\n\n /** Called when the `slotchange` event fires on the \"leading\" slot element. */\n private _onLeadingSlotChanged(evt: Event): void {\n this._detectLeadingElement();\n }\n\n /** Called when the `slotchange` event fires on the \"addon-end\" slot element. */\n private _onAddonEndSlotChanged(evt: Event): void {\n this._detectAddonEndContent();\n }\n\n /** Updates the component state based on the existance of elements within the \"leading\" slot. */\n private _detectLeadingElement(): void {\n if (this._adapter.hasLeadingElement()) {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.LEADING);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.LEADING);\n }\n }\n\n private _detectAddonEndContent(): void {\n if (this._adapter.hasAddonEndNodes()) {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.ADDON_END);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.ADDON_END);\n }\n }\n\n protected _onClick(evt: MouseEvent): void {\n if (this._disabled) {\n return;\n }\n\n // We ignore clicks events that originate from without our addon-end container\n const composedPath = getEventPath(evt);\n if (composedPath.find(el => el.classList && el.classList.contains(FIELD_CONSTANTS.classes.ADDON_END_CONTAINER))) {\n return;\n }\n\n this.setFocus();\n super._onClick(evt);\n }\n\n /** Handles receiving focus on the selected text element. */\n protected _onFocus(evt: Event): void {\n if (this._disabled) {\n return;\n }\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._floatLabel(true);\n super._onFocus(evt);\n }\n\n protected _floatLabel(value: boolean): void {\n if (!this._floatingLabelInstance) {\n return;\n }\n\n if (value) {\n this._adapter.addRootClass(SELECT_CONSTANTS.classes.LABEL_FLOAT);\n } else {\n this._adapter.removeRootClass(SELECT_CONSTANTS.classes.LABEL_FLOAT);\n }\n\n if (this._floatLabelType === 'always') {\n value = true;\n }\n\n this._floatingLabelInstance.float(value, this._floatLabelType === 'always');\n }\n\n /** Handles losing focus on the selected text element. */\n protected _onBlur(evt: FocusEvent): void {\n super._onBlur(evt);\n this._setBlurred();\n }\n\n protected _onDismiss(): void {\n super._onDismiss();\n this._setBlurred();\n }\n\n protected _onDropdownScrollEnd(): void {\n this._adapter.emitHostEvent(SELECT_CONSTANTS.events.SCROLLED_BOTTOM);\n }\n\n /**\n * Handles selecting an item in the dropdown.\n * @param {ISelectOption} option The selected option.\n * @param {number} optionIndex The index of the selected option.\n */\n protected async _onSelect(option: ISelectOption, optionIndex: number, closeDropdown = true): Promise<boolean> {\n const result = await super._onSelect(option, optionIndex, closeDropdown);\n if (result) {\n this._adapter.setSelectedText(this._getSelectedText());\n if (closeDropdown && !this._multiple) {\n this._adapter.setFocus();\n }\n }\n return result;\n }\n\n /** Updates the state of the component to not contain focus. */\n private _setBlurred(): void {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n if (!this._selectedValues.length && !this._placeholder?.length) {\n this._floatLabel(false);\n }\n }\n\n /** Resets the state of the component to original values. */\n protected _reset(): void {\n super._reset();\n this._adapter.setSelectedText('');\n this._floatLabel(!this._placeholder?.length);\n }\n\n private _updateLabel(): void {\n if (this._adapter.hasLabel()) {\n this._adapter.setLabel(this._label);\n }\n if (this._label && this._density !== 'dense') {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.LABEL);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.LABEL);\n }\n }\n\n protected _applyValue(value: string | string[]): void {\n super._applyValue(value);\n\n // Update the state of the component based on the existence of a selected value\n const text = this._getSelectedText();\n this._adapter.setSelectedText(text);\n if (!this._open) {\n this._floatLabel(!!text || !!this._placeholder);\n }\n }\n\n private _applyDensity(): void {\n this._adapter.setRoomy(this._density === 'roomy');\n this._adapter.setDense(this._density === 'dense');\n }\n\n protected _setShapeType(): void {\n if (this._shape === 'rounded') {\n this._adapter.addRootClass(FIELD_CONSTANTS.classes.SHAPE_ROUNDED);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.SHAPE_ROUNDED);\n }\n }\n\n public setFocus(): void {\n this._adapter.setFocus();\n }\n\n /** Gets/sets the label text. */\n public get label(): string {\n return this._label;\n }\n public set label(value: string) {\n if (this._label !== value) {\n this._label = value;\n this._updateLabel();\n if (this._label) {\n this._initializeLabel();\n this._adapter.setHostAttribute(SELECT_CONSTANTS.attributes.LABEL, this._label);\n } else {\n this._destroyLabel();\n this.required = false;\n this._adapter.removeHostAttribute(SELECT_CONSTANTS.attributes.LABEL);\n }\n }\n }\n\n public get shape(): FieldShapeType {\n return this._shape;\n }\n public set shape(value: FieldShapeType) {\n if (this._shape !== value) {\n this._shape = value;\n\n if (this._isInitialized) {\n this._setShapeType();\n }\n\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.SHAPE, this._shape);\n }\n }\n\n /** Gets/sets the disabled state. */\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.setDisabled(this._disabled);\n this._initializeLabel();\n }\n }\n\n /** Gets/sets the invalid state. */\n public get invalid(): boolean {\n return this._invalid;\n }\n public set invalid(value: boolean) {\n if (this._invalid !== value) {\n this._invalid = value;\n this._adapter.setInvalid(this._invalid);\n }\n }\n\n /** Gets/sets the required state which controls the visibility of the asterisk in the label. */\n public get required(): boolean {\n return this._required;\n }\n public set required(value: boolean) {\n if (this._required !== value) {\n this._required = value;\n this._adapter.setRequired(this._required);\n this._adapter.toggleHostAttribute(FIELD_CONSTANTS.attributes.REQUIRED, this._required);\n }\n }\n\n /** Gets/sets the dense state. */\n public get density(): FieldDensityType {\n return this._density;\n }\n public set density(value: FieldDensityType) {\n if (this._density !== value) {\n this._density = value;\n this._applyDensity();\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.DENSITY, this._density.toString());\n this._initializeLabel(); // This ensures label is removed while dense\n }\n }\n\n /** Gets/sets the floating label type. */\n public get floatLabelType(): FieldFloatLabelType {\n return this._floatLabelType;\n }\n public set floatLabelType(value: FieldFloatLabelType) {\n if (this._floatLabelType !== value) {\n this._floatLabelType = value;\n this._floatLabel(this._floatLabelType === 'always' || !!this._placeholder);\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE, isDefined(this._floatLabelType) ? this._floatLabelType.toString() : '');\n }\n }\n\n /** Gets/sets the placeholder text. */\n public get placeholder(): string {\n return this._placeholder;\n }\n public set placeholder(value: string) {\n if (this._placeholder !== value) {\n this._placeholder = value;\n this._adapter.setPlaceholderText(this._placeholder);\n this._initializeLabel();\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean } from '@tylertech/forge-core';\nimport { tylIconArrowDropDown, tylIconCheckBoxOutlineBlank, tylIconCheckBox } from '@tylertech/tyler-icons/standard';\nimport { SelectAdapter } from './select-adapter';\nimport { SelectFoundation } from './select-foundation';\nimport { SELECT_CONSTANTS } from './select-constants';\nimport { OptionComponent } from '../option';\nimport { PopupComponent } from '../../popup';\nimport { ListComponent, ListItemComponent } from '../../list';\nimport { OptionGroupComponent } from '../option-group';\nimport { IconComponent, IconRegistry } from '../../icon';\nimport { BaseSelectComponent, BASE_SELECT_CONSTANTS } from '../core';\nimport { CircularProgressComponent } from '../../circular-progress';\nimport { ScaffoldComponent } from '../../scaffold';\nimport { ToolbarComponent } from '../../toolbar';\nimport { IconButtonComponent } from '../../icon-button';\nimport { FieldDensityType, FieldFloatLabelType, FieldShapeType, FIELD_CONSTANTS } from '../../field/field-constants';\nimport { IBaseSelectComponent } from '../core/base-select';\n\nconst template = '<template><div class=\\\"forge-select__wrapper\\\" part=\\\"root\\\"><div class=\\\"forge-select forge-field\\\" part=\\\"container\\\"><div class=\\\"forge-select__leading-container\\\" part=\\\"leading-container\\\"><slot name=\\\"leading\\\"></slot></div><div class=\\\"forge-field__label-input-container\\\" part=\\\"label-input-container\\\"><div id=\\\"selected-text\\\" class=\\\"forge-select__selected-text\\\" tabindex=\\\"0\\\" part=\\\"text\\\"></div><label id=\\\"select-label\\\" part=\\\"label\\\"></label></div><forge-icon class=\\\"forge-select__dropdown-icon\\\" name=\\\"arrow_drop_down\\\" part=\\\"icon\\\"></forge-icon><div class=\\\"forge-field__addon-end-container\\\" part=\\\"addon-end-container\\\"><slot name=\\\"addon-end\\\"></slot></div></div><slot name=\\\"helper-text\\\"></slot></div></template>';\nconst styles = '.forge-select{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;position:relative;z-index:1;z-index:var(--forge-z-index-surface,1);margin-top:0;margin-top:var(--forge-select-margin-top,0)}.forge-select.forge-field--disabled{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5);cursor:not-allowed}.forge-select:not(.forge-field--dense):not(.forge-field--roomy){height:3rem;height:var(--forge-select-height,3rem)}.forge-select.forge-field--roomy:not(.forge-field--dense){height:3.5rem;height:var(--forge-select-height,3.5rem)}.forge-select.forge-field--dense:not(.forge-field--roomy){height:1.5rem;height:var(--forge-select-height,1.5rem)}.forge-field::before{content:\\\"\\\";display:-webkit-box;display:flex;position:absolute;top:0;right:0;left:0;z-index:-1;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:100%;height:100%;pointer-events:none;border-style:solid;border-width:1px;-webkit-transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);background-color:transparent;background-color:var(--forge-select-theme-background,transparent);text-align:left}.forge-field[dir=rtl]::before,[dir=rtl] .forge-field::before{text-align:right}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused)::before{border-color:rgba(0,0,0,.38);border-color:var(--mdc-theme-text-icon-on-background,rgba(0,0,0,.38))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused):hover::before{border-color:rgba(0,0,0,.87);border-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled)::before{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-field--invalid:not(.forge-field--disabled)::before{border-color:#b00020;border-color:var(--mdc-theme-error,#b00020)}.forge-field--invalid:not(.forge-field--disabled):not(.forge-field--focused):hover::before{border-color:#db8a98;border-color:var(--forge-theme-error-hover,#db8a98)}.forge-field--disabled::before{border-color:rgba(0,0,0,.12);border-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-field:not(.forge-field--shape-rounded){border-radius:4px}.forge-field:not(.forge-field--shape-rounded)::before{border-radius:4px}.forge-field--shape-rounded{border-radius:28px}.forge-field--shape-rounded::before{border-radius:28px}.forge-field--disabled::before{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5)}.forge-field--focused::before{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);border-width:2px}.forge-field__label-input-container{position:relative;-webkit-box-flex:1;flex:1 1 0.0001px;height:100%;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;min-width:0}.forge-field~::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;height:auto}.forge-field~::slotted([slot=helper-text])::before{display:inline-block;width:0;height:16px;content:\\\"\\\";vertical-align:0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field--roomy:not(.forge-field--dense)~::slotted([slot=helper-text]){font-size:.875rem}.forge-field--dense:not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field~::slotted([slot=helper-text]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled)~::slotted([slot=helper-text]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field:not(.forge-field--shape-rounded)~::slotted([slot=helper-text]){margin-left:12px}.forge-field--shape-rounded~::slotted([slot=helper-text]){margin-left:32px}.forge-field ::slotted([slot=leading]){display:-webkit-box;display:flex;align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=leading]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=leading]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=leading]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field ::slotted([slot=leading]){margin:0 4px}.forge-field ::slotted([slot=leading]:not(forge-icon-button)){padding:6px}.forge-field__addon-end-container{display:none}.forge-field--addon-end .forge-field__addon-end-container{height:100%;width:auto;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;padding:0 4px;border-left-width:1px;border-left-style:solid;-webkit-transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1)}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.54);border-left-color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container:hover{border-left-color:rgba(0,0,0,.87);border-left-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#3f51b5;border-left-color:var(--mdc-theme-primary,#3f51b5)}.forge-field.forge-field--invalid:not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#b00020;border-left-color:var(--mdc-theme-error,#b00020)}.forge-field.forge-field--invalid:not(.forge-field--focused):not(.forge-field--disabled) .forge-field__addon-end-container:hover{border-left-color:#db8a98;border-left-color:var(--forge-theme-error-hover,#db8a98)}.forge-field.forge-field--disabled .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.12);border-left-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=addon-end]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=addon-end]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=addon-end]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-select__leading-container{display:-webkit-box;display:flex;align-self:center}.forge-field label{color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65));pointer-events:none;right:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);font-size:var(--mdc-typography-subtitle1-font-size, 1rem);position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.1rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform;-webkit-transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1)}.forge-field label[dir=rtl],[dir=rtl] .forge-field label{right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.forge-field--dense:not(.forge-field--roomy) label{display:none}.forge-field--required label::after{content:none}.forge-field--required label::before{color:#b00020;color:var(--mdc-theme-error,#b00020);content:\\\"*\\\";margin-right:4px}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label{font-size:1rem}.forge-field--roomy:not(.forge-field--dense) label{font-size:1rem}.forge-field--disabled label{color:rgba(0,0,0,.38);color:var(--forge-theme-label-disabled-on-background,rgba(0,0,0,.38))}.forge-field--invalid:not(.forge-field--disabled) label{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) label{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label{top:1rem}.forge-field--roomy:not(.forge-field--dense) label{top:1.285rem}.forge-field:not(.forge-field--shape-rounded):not(.forge-field--leading) label{left:12px!important}.forge-field--shape-rounded:not(.forge-field--leading) label{left:32px!important}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end):not(.forge-field--shape-rounded) label{padding-right:12px}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end).forge-field--shape-rounded label{padding-right:32px}.forge-field label.forge-floating-label--float-above{color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65))}.forge-field--disabled label.forge-floating-label--float-above{color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6))}.forge-field--invalid:not(.forge-field--disabled) label.forge-floating-label--float-above{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) label.forge-floating-label--float-above{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label.forge-floating-label--float-above{-webkit-transform:translateY(-.54rem) scale(.8125);transform:translateY(-.54rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) label.forge-floating-label--float-above{-webkit-transform:translateY(-.72rem) scale(.8125);transform:translateY(-.72rem) scale(.8125);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe{-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.62rem) scale(1);transform:translateY(-.62rem) scale(1);cursor:auto}.forge-field--roomy:not(.forge-field--dense) label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe{-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.8rem) scale(1);transform:translateY(-.8rem) scale(1);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) label.forge-floating-label--unfloat-above-start-keyframe{-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.62rem) scale(.8125);transform:translateY(-.62rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) label.forge-floating-label--unfloat-above-start-keyframe{-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.8rem) scale(.8125);transform:translateY(-.8rem) scale(.8125);cursor:auto}.forge-field .forge-select__selected-text{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-body1-font-weight,400);letter-spacing:.03125em;letter-spacing:var(--mdc-typography-body1-letter-spacing, .03125em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));display:block;overflow:hidden;text-overflow:ellipsis;align-self:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;white-space:nowrap;-webkit-transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);border:none;background:0 0;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;line-height:normal;min-width:0;font-size:var(--forge-select-font-size, 1rem);padding:0 12px;padding-right:0}.forge-field:not(.forge-field--disabled) .forge-select__selected-text{color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--disabled .forge-select__selected-text{color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6));cursor:not-allowed}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) .forge-select__selected-text{font-size:1rem}.forge-field--roomy:not(.forge-field--dense) .forge-select__selected-text{font-size:1rem}.forge-field--dense:not(.forge-field--roomy) .forge-select__selected-text{font-size:.875rem}.forge-field .forge-select__selected-text{padding:0 12px}.forge-field--label .forge-select__selected-text{padding-top:24px}.forge-field--roomy.forge-field--label .forge-select__selected-text{padding-top:29px}.forge-field--shape-rounded:not(.forge-field--leading) .forge-select__selected-text{padding-left:32px}.forge-field--leading .forge-select__selected-text{padding-left:0}.forge-field--label .forge-select__selected-text{padding-bottom:3px}.forge-field--roomy.forge-field--label .forge-select__selected-text{padding-bottom:8px}.forge-field:not(.forge-field--label):not(.forge-field--dense):not(.forge-field--roomy) .forge-select__selected-text{line-height:var(--forge-select-height, 3rem)}.forge-field:not(.forge-field--label).forge-field--roomy:not(.forge-field--dense) .forge-select__selected-text{line-height:var(--forge-select-height-roomy, 3.5rem)}.forge-field:not(.forge-field--label).forge-field--dense:not(.forge-field--roomy) .forge-select__selected-text{line-height:var(--forge-select-height-dense, 1.5rem)}.forge-field.forge-field--dense:not(.forge-field--roomy) .forge-select__selected-text{padding:0 8px}.forge-field .forge-select__selected-text:empty::before{content:attr(placeholder);color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field .forge-select__selected-text{padding-top:25px}.forge-field .forge-select__dropdown-icon{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;width:24px;height:100%;-webkit-box-flex:0;flex:none;-webkit-transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);pointer-events:none;margin-right:8px}.forge-select--opened .forge-field .forge-select__dropdown-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1)}.forge-select--opened .forge-field .forge-select__dropdown-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg);-webkit-transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1)}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) .forge-select__dropdown-icon{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) .forge-select__dropdown-icon{color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled .forge-select__dropdown-icon{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field.forge-field--dense:not(.forge-field--roomy) .forge-select__dropdown-icon{margin-right:4px}:host{display:block;contain:layout}:host([hidden]){display:none}';\n\nexport interface ISelectComponent extends IBaseSelectComponent {\n density: FieldDensityType;\n floatLabelType: FieldFloatLabelType;\n shape: FieldShapeType;\n invalid: boolean;\n required: boolean;\n label: string;\n disabled: boolean;\n placeholder: string;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-select': ISelectComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-select-scrolled-bottom': CustomEvent<void>;\n 'change': CustomEvent<any>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-select>` component.\n */\n@CustomElement({\n name: SELECT_CONSTANTS.elementName,\n dependencies: [\n OptionComponent,\n OptionGroupComponent,\n PopupComponent,\n ListComponent,\n ListItemComponent,\n CircularProgressComponent,\n IconComponent,\n ScaffoldComponent,\n ToolbarComponent,\n IconButtonComponent\n ]\n})\nexport class SelectComponent extends BaseSelectComponent<SelectFoundation> implements ISelectComponent {\n public static get observedAttributes(): string[] {\n return [\n FIELD_CONSTANTS.attributes.DENSITY,\n FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE,\n FIELD_CONSTANTS.attributes.SHAPE,\n FIELD_CONSTANTS.attributes.INVALID,\n FIELD_CONSTANTS.attributes.REQUIRED,\n SELECT_CONSTANTS.attributes.LABEL,\n SELECT_CONSTANTS.attributes.MULTIPLE,\n SELECT_CONSTANTS.attributes.VALUE,\n SELECT_CONSTANTS.attributes.DISABLED,\n SELECT_CONSTANTS.attributes.PLACEHOLDER,\n SELECT_CONSTANTS.attributes.OBSERVE_SCROLL,\n SELECT_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD,\n BASE_SELECT_CONSTANTS.attributes.POPUP_CLASSES,\n BASE_SELECT_CONSTANTS.attributes.OPTION_LIMIT,\n BASE_SELECT_CONSTANTS.attributes.SYNC_POPUP_WIDTH\n ];\n }\n\n constructor() {\n super();\n IconRegistry.define([tylIconArrowDropDown, tylIconCheckBox, tylIconCheckBoxOutlineBlank]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new SelectFoundation(new SelectAdapter(this));\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case FIELD_CONSTANTS.attributes.DENSITY:\n this.density = newValue as FieldDensityType;\n return;\n case FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE:\n this.floatLabelType = newValue as FieldFloatLabelType;\n return;\n case FIELD_CONSTANTS.attributes.SHAPE:\n this.shape = newValue as FieldShapeType;\n break;\n case FIELD_CONSTANTS.attributes.INVALID:\n this.invalid = coerceBoolean(newValue);\n return;\n case FIELD_CONSTANTS.attributes.REQUIRED:\n this.required = coerceBoolean(newValue);\n return;\n case SELECT_CONSTANTS.attributes.LABEL:\n this.label = newValue;\n return;\n case SELECT_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n return;\n case SELECT_CONSTANTS.attributes.PLACEHOLDER:\n this.placeholder = newValue;\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n /** Gets/sets the label text. */\n @FoundationProperty()\n public label: string;\n\n /** Gets/sets the disabled state. */\n @FoundationProperty()\n public disabled: boolean;\n\n /** Gets/sets the invalid state. */\n @FoundationProperty()\n public invalid: boolean;\n\n /** Gets/sets the required state which controls the visibility of the asterisk in the label. */\n @FoundationProperty()\n public required: boolean;\n\n /** Controls the density type. */\n @FoundationProperty()\n public density: FieldDensityType;\n\n /** Whether the label should always float, never float or float as the user types. */\n @FoundationProperty()\n public floatLabelType: FieldFloatLabelType;\n\n /** The shape type to use. */\n @FoundationProperty()\n public shape: FieldShapeType;\n\n /** Gets/sets the placeholder text. */\n @FoundationProperty()\n public placeholder: string;\n\n /** Sets focus to the internal button element. */\n public override focus(): void {\n this._foundation.setFocus();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { SelectComponent } from './select';\n\nexport * from './select-adapter';\nexport * from './select-constants';\nexport * from './select-foundation';\nexport * from './select';\n\nexport function defineSelectComponent(): void {\n defineCustomElement(SelectComponent);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/button/button-constants.ts", "../../src/button/button.ts", "../../src/button/button-component-delegate.ts", "../../src/button/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}button`;\n\nconst classes = {\n BUTTON: 'forge-button',\n LABEL: 'forge-button__label',\n ICON: 'forge-button__icon',\n BUTTON_RAISED: 'forge-button--raised',\n BUTTON_UNELEVATED: 'forge-button--unelevated',\n BUTTON_OUTLINED: 'forge-button--outlined',\n BUTTON_DENSE: 'forge-button--dense',\n RIPPLE: 'forge-button__ripple'\n};\n\nconst selectors = {\n BUTTON: 'button',\n LABEL: `span:not(.${classes.RIPPLE})`,\n ICON: 'i,forge-icon,[data-forge-button-icon]',\n RIPPLE: `.${classes.RIPPLE}`\n};\n\nconst attributes = {\n TYPE: 'type',\n DISABLED: 'disabled'\n};\n\nexport const BUTTON_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes\n};\n", "import { CustomElement, ensureChildren, toggleAttribute } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { BUTTON_CONSTANTS } from './button-constants';\nimport { userInteractionListener } from '../core/utils';\nimport { ForgeRipple } from '../ripple';\n\nexport interface IButtonComponent extends IBaseComponent {\n type: string;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-button': IButtonComponent;\n }\n}\n\n/**\n * The custom element class behind the `<forge-button>` element.\n */\n@CustomElement({\n name: BUTTON_CONSTANTS.elementName\n})\nexport class ButtonComponent extends BaseComponent implements IButtonComponent {\n public static get observedAttributes(): string[] {\n return [BUTTON_CONSTANTS.attributes.TYPE];\n }\n\n private _rippleInstance: ForgeRipple;\n private _buttonElement: HTMLButtonElement;\n private _type: string;\n private _mutationObserver: MutationObserver;\n private _buttonAttrMutationObserver: MutationObserver;\n\n constructor() {\n super();\n }\n\n public connectedCallback(): void {\n if (this.children.length) {\n this._initialize();\n } else {\n ensureChildren(this).then(() => this._initialize());\n }\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case BUTTON_CONSTANTS.attributes.TYPE:\n this.type = newValue;\n break;\n }\n }\n\n public disconnectedCallback(): void {\n if (this._rippleInstance) {\n this._rippleInstance.destroy();\n }\n if (this._mutationObserver) {\n this._mutationObserver.disconnect();\n }\n if (this._buttonAttrMutationObserver) {\n this._buttonAttrMutationObserver.disconnect();\n }\n }\n\n /**\n * Sets the type of button decoration.\n * Possible values are: raised, elevated, outlined, and dense.\n * Can be combined as: outlined-dense.\n */\n public get type(): string {\n return this._type;\n }\n public set type(value: string) {\n if (this._type !== value) {\n this._type = value;\n this._applyType(value);\n this.setAttribute(BUTTON_CONSTANTS.attributes.TYPE, this._type);\n }\n }\n\n private _applyType(type: string): void {\n if (this._buttonElement) {\n this._buttonElement.classList.remove(BUTTON_CONSTANTS.classes.BUTTON_RAISED);\n this._buttonElement.classList.remove(BUTTON_CONSTANTS.classes.BUTTON_UNELEVATED);\n this._buttonElement.classList.remove(BUTTON_CONSTANTS.classes.BUTTON_OUTLINED);\n this._buttonElement.classList.remove(BUTTON_CONSTANTS.classes.BUTTON_DENSE);\n\n if (type.includes('raised')) {\n this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON_RAISED);\n }\n if (type.includes('unelevated')) {\n this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON_UNELEVATED);\n }\n if (type.includes('outlined')) {\n this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON_OUTLINED);\n }\n if (type.includes('dense')) {\n this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON_DENSE);\n }\n }\n }\n\n private _initialize(): void {\n this._initializeButton();\n this._initializeMutationObserver();\n }\n\n private _initializeButton(): void {\n this._buttonElement = this.querySelector(BUTTON_CONSTANTS.selectors.BUTTON) as HTMLButtonElement;\n if (!this._buttonElement) {\n return;\n }\n\n if (this.hasAttribute(BUTTON_CONSTANTS.attributes.TYPE)) {\n this._type = this.getAttribute(BUTTON_CONSTANTS.attributes.TYPE) as string;\n this._applyType(this._type);\n }\n this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON);\n\n this._syncDisabledState();\n this._initializeButtonChildren();\n\n // We wait to initialize the ripple instance until the user interacts with the component to avoid unnecessary performance overhead\n this._deferRippleInitialization();\n }\n\n private async _deferRippleInitialization(): Promise<void> {\n const type = await userInteractionListener(this._buttonElement);\n if (!this._rippleInstance) {\n this._initRipple();\n if (type === 'focusin') {\n // eslint-disable-next-line @typescript-eslint/dot-notation\n (this._rippleInstance as ForgeRipple)['foundation'].handleFocus();\n }\n }\n }\n\n private _initRipple(): void {\n if (this._rippleInstance) {\n this._rippleInstance.destroy();\n }\n this._rippleInstance = new ForgeRipple(this._buttonElement);\n }\n\n private _initializeButtonChildren(): void {\n if (!this._buttonElement.querySelector(BUTTON_CONSTANTS.selectors.RIPPLE)) {\n const rippleElement = document.createElement('span');\n rippleElement.classList.add(BUTTON_CONSTANTS.classes.RIPPLE);\n this._buttonElement.appendChild(rippleElement);\n }\n\n const labelElement = this.querySelector(BUTTON_CONSTANTS.selectors.LABEL);\n if (labelElement) {\n labelElement.classList.add(BUTTON_CONSTANTS.classes.LABEL);\n }\n\n const iconElements = Array.from(this.querySelectorAll(BUTTON_CONSTANTS.selectors.ICON));\n iconElements.forEach(iconElement => {\n iconElement.classList.add(BUTTON_CONSTANTS.classes.ICON);\n if (!iconElement.hasAttribute('aria-hidden')) {\n iconElement.setAttribute('aria-hidden', 'true');\n }\n });\n }\n\n private _initializeMutationObserver(): void {\n if (!this._mutationObserver) {\n const config: MutationObserverInit = { childList: true, subtree: true };\n const callback: MutationCallback = mutationList => {\n if (this._buttonWasAdded(mutationList)) {\n this._initializeButton();\n } else if (mutationList.some(mutation => mutation.addedNodes.length)) {\n this._initializeButtonChildren();\n }\n };\n this._mutationObserver = new MutationObserver(callback);\n this._mutationObserver.observe(this, config);\n \n if (this._buttonElement) {\n // Watch attributes on the `<button>` element\n this._buttonAttrMutationObserver = new MutationObserver(mutationList => {\n if (mutationList.some(mutation => mutation.attributeName === 'disabled')) {\n this._syncDisabledState();\n }\n });\n this._buttonAttrMutationObserver.observe(this._buttonElement, { attributes: true, attributeFilter: ['disabled'] });\n }\n }\n }\n\n private _buttonWasAdded(mutationList: MutationRecord[]): boolean {\n return mutationList.some(mutation => {\n return Array.from(mutation.addedNodes)\n .some(node => node.nodeName.toLowerCase() === BUTTON_CONSTANTS.selectors.BUTTON);\n });\n }\n\n private _syncDisabledState(): void {\n toggleAttribute(this, this._buttonElement.disabled, BUTTON_CONSTANTS.attributes.DISABLED);\n }\n}\n\n", "import { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { IButtonComponent } from './button';\nimport { BUTTON_CONSTANTS } from './button-constants';\n\nexport type ButtonComponentDelegateProps = Partial<IButtonComponent>;\nexport interface IButtonComponentDelegateOptions extends IBaseComponentDelegateOptions {\n type?: 'button' | 'submit';\n text?: string;\n}\nexport interface IButtonComponentDelegateConfig extends IBaseComponentDelegateConfig<IButtonComponent, IButtonComponentDelegateOptions> {}\n\nexport class ButtonComponentDelegate extends BaseComponentDelegate<IButtonComponent, IButtonComponentDelegateOptions> {\n private _buttonElement?: HTMLButtonElement;\n\n constructor(config?: IButtonComponentDelegateConfig) {\n super(config);\n }\n\n public override destroy(): void {\n this._buttonElement = undefined;\n }\n\n public get buttonElement(): HTMLButtonElement | undefined {\n return this._buttonElement;\n }\n\n protected _build(): IButtonComponent {\n const component = document.createElement(BUTTON_CONSTANTS.elementName);\n\n this._buttonElement = document.createElement('button');\n this._buttonElement.type = this._config.options?.type || 'button';\n this._buttonElement.textContent = this._config.options?.text || '';\n component.appendChild(this._buttonElement);\n\n return component;\n }\n\n public onClick(listener: (evt: MouseEvent) => void): void {\n this._buttonElement?.addEventListener('click', listener);\n }\n\n public onFocus(listener: (evt: Event) => void): void {\n this._buttonElement?.addEventListener('focus', evt => listener(evt));\n }\n\n public onBlur(listener: (evt: Event) => void): void {\n this._buttonElement?.addEventListener('blur', evt => listener(evt));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { ButtonComponent } from './button';\n\nexport * from './button';\nexport * from './button-constants';\nexport * from './button-component-delegate';\n\nexport function defineButtonComponent(): void {\n defineCustomElement(ButtonComponent);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/icon-button/icon-button-constants.ts", "../../src/icon-button/icon-button.ts", "../../src/icon-button/icon-button-component-delegate.ts", "../../src/icon-button/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}icon-button`;\n\nconst attributes = {\n TOGGLE: 'toggle',\n IS_ON: 'is-on',\n ICON_ON: 'forge-icon-button-on',\n DENSE: 'dense',\n DENSITY_LEVEL: 'density-level'\n};\n\nconst selectors = {\n BUTTON: 'button',\n ICON: 'i, span, svg, img, forge-icon'\n};\n\nconst classes = {\n BUTTON: 'forge-icon-button',\n BUTTON_ON: 'forge-icon-button--on',\n BUTTON_DENSE: 'forge-icon-button--dense',\n ICON: 'forge-icon-button__icon',\n ICON_ON: 'forge-icon-button__icon--on',\n DENSITY: [\n 'forge-icon-button--dense-1',\n 'forge-icon-button--dense-2',\n 'forge-icon-button--dense-3',\n 'forge-icon-button--dense-4',\n 'forge-icon-button--dense-5',\n 'forge-icon-button--dense-6'\n ]\n};\n\nconst events = {\n CHANGE: `${elementName}-change`\n};\n\nexport const ICON_BUTTON_CONSTANTS = {\n elementName,\n attributes,\n selectors,\n classes,\n events\n};\n", "import { coerceBoolean, coerceNumber, CustomElement, emitEvent, ensureChild, toggleClass } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { ForgeRipple } from '../ripple';\nimport { userInteractionListener } from '../core/utils';\nimport { ICON_BUTTON_CONSTANTS } from './icon-button-constants';\n\nexport interface IIconButtonComponent extends IBaseComponent {\n toggle: boolean;\n isOn: boolean;\n dense: boolean;\n densityLevel: number;\n layout(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-icon-button': IIconButtonComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-icon-button-change': CustomEvent<boolean>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-icon-button>` element.\n */\n@CustomElement({\n name: ICON_BUTTON_CONSTANTS.elementName\n})\nexport class IconButtonComponent extends BaseComponent implements IIconButtonComponent {\n public static get observedAttributes(): string[] {\n return [\n ICON_BUTTON_CONSTANTS.attributes.IS_ON,\n ICON_BUTTON_CONSTANTS.attributes.DENSE,\n ICON_BUTTON_CONSTANTS.attributes.DENSITY_LEVEL,\n ICON_BUTTON_CONSTANTS.attributes.TOGGLE\n ];\n }\n\n private _rippleInstance: ForgeRipple;\n private _buttonElement: HTMLButtonElement;\n private _toggle = false;\n private _isOn = false;\n private _dense = false;\n private _densityLevel = 5;\n private _toggleHandler: (event: Event) => void;\n\n constructor() {\n super();\n }\n\n public connectedCallback(): void {\n if (this.querySelector(ICON_BUTTON_CONSTANTS.selectors.BUTTON)) {\n this._initialize();\n } else {\n ensureChild(this, ICON_BUTTON_CONSTANTS.selectors.BUTTON).then(() => this._initialize());\n }\n }\n\n public disconnectedCallback(): void {\n if (this._rippleInstance) {\n this._rippleInstance.destroy();\n }\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case ICON_BUTTON_CONSTANTS.attributes.IS_ON:\n this.isOn = coerceBoolean(newValue);\n break;\n case ICON_BUTTON_CONSTANTS.attributes.DENSE:\n this.dense = coerceBoolean(newValue);\n break;\n case ICON_BUTTON_CONSTANTS.attributes.DENSITY_LEVEL:\n this.densityLevel = coerceNumber(newValue);\n break;\n case ICON_BUTTON_CONSTANTS.attributes.TOGGLE:\n this.toggle = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets/sets whether the button is togglable. */\n public get toggle(): boolean {\n return this._toggle;\n }\n public set toggle(value: boolean) {\n this._toggle = value;\n\n if (this._toggle) {\n this._initializeToggle();\n } else {\n this._destroyToggle();\n }\n }\n\n /** Gets/sets the toggled state of the icon button. Only applies when `toggle = true`. */\n public get isOn(): boolean {\n return this._isOn;\n }\n public set isOn(value: boolean) {\n if (this._isOn !== value) {\n this._isOn = value;\n this._applyToggle();\n }\n }\n\n /** Gets/sets whether the icon button is dense. */\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n if (this._dense !== value) {\n this._dense = value;\n this._applyDensity();\n }\n }\n\n /** Controls the density level. 1 (least dense) to 6 (most dense). */\n public get densityLevel(): number {\n return this._densityLevel;\n }\n public set densityLevel(value: number) {\n if (this._densityLevel !== value) {\n this._densityLevel = value;\n\n if (this._densityLevel <= 0) {\n this._densityLevel = 1;\n } else if (this._densityLevel > 6) {\n this._densityLevel = 6;\n } else if (typeof this._densityLevel !== 'number') {\n this._densityLevel = 5;\n }\n\n this._applyDensity();\n }\n }\n\n private _initialize(): void {\n this._buttonElement = this.querySelector(ICON_BUTTON_CONSTANTS.selectors.BUTTON) as HTMLButtonElement;\n if (!this._buttonElement) {\n return;\n }\n\n this._buttonElement.classList.add(ICON_BUTTON_CONSTANTS.classes.BUTTON);\n this._applyToggle();\n this._applyDensity();\n this._toggleHandler = () => {\n this._toggleValue();\n emitEvent(this, ICON_BUTTON_CONSTANTS.events.CHANGE, this._isOn, true);\n };\n\n if (this._toggle) {\n this._initializeToggle();\n }\n\n // We wait to initialize the ripple instance until the user interacts with the component to avoid unnecessary performance overhead\n this._deferRippleInitialization();\n }\n\n private async _deferRippleInitialization(): Promise<void> {\n const type = await userInteractionListener(this._buttonElement);\n if (!this._rippleInstance) {\n this._initRipple();\n if (type === 'focusin') {\n // eslint-disable-next-line @typescript-eslint/dot-notation\n (this._rippleInstance as ForgeRipple)['foundation'].handleFocus();\n }\n }\n }\n\n private _initRipple(): void {\n if (this._rippleInstance) {\n this._rippleInstance.destroy();\n }\n this._rippleInstance = new ForgeRipple(this._buttonElement);\n this._rippleInstance.unbounded = true;\n }\n\n private _toggleValue(): void {\n this._isOn = !this._isOn;\n this._applyToggle();\n }\n\n private _applyToggle(): void {\n if (!this._buttonElement) {\n return;\n }\n toggleClass(this._buttonElement, this._isOn, ICON_BUTTON_CONSTANTS.classes.BUTTON_ON);\n if (this._toggle) {\n this._buttonElement.setAttribute('aria-pressed', `${this._isOn}`);\n }\n }\n\n private _applyDensity(): void {\n if (!this._buttonElement) {\n return;\n }\n\n // Remove all other density classes first\n ICON_BUTTON_CONSTANTS.classes.DENSITY.forEach(c => this._buttonElement.classList.remove(c));\n\n if (this._dense) {\n this.setAttribute(ICON_BUTTON_CONSTANTS.attributes.DENSE, '');\n this._buttonElement.classList.add(ICON_BUTTON_CONSTANTS.classes.BUTTON_DENSE);\n\n // 5 is the default density level (we apply 5 implicitly in the regular dense class)\n // Exclude 5 since its already covered by dense class\n if (this._densityLevel < 7 && this._densityLevel > 0 && this.densityLevel !== 5) {\n const densityLevelClass = ICON_BUTTON_CONSTANTS.classes.DENSITY[this._densityLevel - 1];\n this._buttonElement.classList.add(densityLevelClass);\n this.setAttribute(ICON_BUTTON_CONSTANTS.attributes.DENSITY_LEVEL, this._densityLevel.toString());\n }\n } else {\n this.removeAttribute(ICON_BUTTON_CONSTANTS.attributes.DENSE);\n this._buttonElement.classList.remove(ICON_BUTTON_CONSTANTS.classes.BUTTON_DENSE);\n }\n\n // re-layout the ripple for cases where dense was changed after initial layout\n if (this._rippleInstance) {\n this._rippleInstance.layout();\n }\n }\n\n private _initializeToggle(): void {\n if (!this._buttonElement) {\n return;\n }\n const icons = Array.from(this._buttonElement.querySelectorAll(ICON_BUTTON_CONSTANTS.selectors.ICON));\n\n // We require two icon/image elements to be specified for the \"on\" and \"off\" states\n if (icons.length !== 2) {\n console.error('You must specify two icons, one for \"on\" and one for \"off\".');\n return;\n }\n\n // Add the icon class to each icon\n icons.forEach(icon => icon.classList.add(ICON_BUTTON_CONSTANTS.classes.ICON));\n\n // If there are no icons that specify the \"on\" class, then automatically choose the first icon as the \"on\" icon and add the class,\n // alternatively we check for the existence of a `forge-icon-button-on` attribute on any of the icons and use that.\n if (!icons.some(icon => icon.classList.contains(ICON_BUTTON_CONSTANTS.classes.ICON_ON))) {\n const requestedOnIcon = icons.find(icon => icon.hasAttribute(ICON_BUTTON_CONSTANTS.attributes.ICON_ON));\n if (requestedOnIcon) {\n requestedOnIcon.classList.add(ICON_BUTTON_CONSTANTS.classes.ICON_ON);\n } else {\n icons[0].classList.add(ICON_BUTTON_CONSTANTS.classes.ICON_ON);\n }\n }\n\n this._buttonElement.addEventListener('click', this._toggleHandler);\n\n // Wait a frame to ensure the value of the `on` property has been set\n window.requestAnimationFrame(() => {\n if (this._isOn) {\n this._buttonElement.classList.add(ICON_BUTTON_CONSTANTS.classes.BUTTON_ON);\n this._buttonElement.setAttribute('aria-pressed', `${this._isOn}`);\n }\n });\n }\n\n private _destroyToggle(): void {\n if (!this._buttonElement) {\n return;\n }\n this._buttonElement.removeEventListener('click', this._toggleHandler);\n }\n\n public layout(): void {\n if (this._rippleInstance) {\n this._rippleInstance.layout();\n }\n }\n}\n", "import { addClass } from '@tylertech/forge-core';\nimport { IconExternalType, ICON_CONSTANTS, IIconComponent } from '../icon';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { IIconButtonComponent } from './icon-button';\nimport { ICON_BUTTON_CONSTANTS } from './icon-button-constants';\nimport { PopupPlacement } from '../popup';\n\nexport type IconButtonComponentDelegateProps = Partial<IIconButtonComponent>;\nexport interface IIconButtonComponentDelegateOptions extends IBaseComponentDelegateOptions {\n iconName?: string;\n iconExternal?: boolean;\n iconExternalType?: IconExternalType;\n iconType?: 'font' | 'component';\n iconClass?: string | string[];\n tooltip?: string;\n tooltipPosition?: PopupPlacement;\n}\nexport interface IIconButtonComponentDelegateConfig extends IBaseComponentDelegateConfig<IIconButtonComponent, IIconButtonComponentDelegateOptions> {}\n\nexport class IconButtonComponentDelegate extends BaseComponentDelegate<IIconButtonComponent, IIconButtonComponentDelegateOptions> {\n private _buttonElement: HTMLButtonElement;\n private _iconElement?: IIconComponent;\n\n constructor(config?: IIconButtonComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): IIconButtonComponent {\n const component = document.createElement(ICON_BUTTON_CONSTANTS.elementName);\n this._buttonElement = document.createElement('button');\n this._buttonElement.type = 'button';\n component.appendChild(this._buttonElement);\n\n if (this._config.options?.tooltip) {\n const tooltip = document.createElement('forge-tooltip');\n tooltip.textContent = this._config.options.tooltip;\n \n if (this._config.options.tooltipPosition) {\n tooltip.position = this._config.options.tooltipPosition;\n }\n\n component.appendChild(tooltip);\n }\n\n return component;\n }\n\n public get iconElement(): IIconComponent | undefined {\n return this._iconElement;\n }\n\n public get disabled(): boolean {\n return !!this._buttonElement.disabled;\n }\n public set disabled(value: boolean) {\n this._buttonElement.disabled = value;\n }\n\n /** @deprecated Use buttonElement instead. */\n public get butttonElement(): HTMLButtonElement | undefined {\n return this._buttonElement;\n }\n\n public get buttonElement(): HTMLButtonElement | undefined {\n return this._buttonElement;\n }\n\n protected _configure(): void {\n this._configureIcon();\n }\n\n private _configureIcon(): void {\n if (!this._config.options?.iconName) {\n return;\n }\n\n const type = this._config.options?.iconType || 'component';\n\n switch (type) {\n case 'font':\n const classes = Array.isArray(this._config.options.iconClass) ? this._config.options.iconClass : [ICON_CLASS_NAME];\n addClass(classes, this._buttonElement);\n this._buttonElement.textContent = this._config.options.iconName;\n break;\n case 'component':\n this._iconElement = document.createElement(ICON_CONSTANTS.elementName);\n this._iconElement.name = this._config.options.iconName;\n if (this._config.options.iconExternal !== undefined) {\n this._iconElement.external = !!this._config.options.iconExternal;\n }\n if (this._config.options.iconExternalType) {\n this._iconElement.externalType = this._config.options.iconExternalType;\n }\n if (this._config.options.iconClass) {\n addClass(this._config.options.iconClass, this._iconElement);\n }\n this._buttonElement.appendChild(this._iconElement);\n break;\n }\n }\n\n public onClick(listener: (evt: MouseEvent) => void): void {\n this._buttonElement.addEventListener('click', listener);\n }\n\n public onFocus(listener: (evt: Event) => void): void {\n this._buttonElement.addEventListener('focus', evt => listener(evt));\n }\n\n public onBlur(listener: (evt: Event) => void): void {\n this._buttonElement.addEventListener('blur', evt => listener(evt));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { IconButtonComponent } from './icon-button';\n\nexport * from './icon-button-constants';\nexport * from './icon-button';\nexport * from './icon-button-component-delegate';\n\nexport function defineIconButtonComponent(): void {\n defineCustomElement(IconButtonComponent);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022 Tyler Technologies, Inc.
|
|
4
|
-
* License: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
@use 'sass:map';
|
|
7
|
-
@use '@material/theme/theme' as mdc-theme;
|
|
8
|
-
@use '@material/typography/typography' as mdc-typography;
|
|
9
|
-
@use '../field/variables' as field-variables;
|
|
10
|
-
@use './variables';
|
|
11
|
-
|
|
12
|
-
// Root
|
|
13
|
-
@mixin root-core {
|
|
14
|
-
display: flex;
|
|
15
|
-
box-sizing: border-box;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
@mixin root-min-height($layout-state, $orientation-state) {
|
|
19
|
-
// Single Line
|
|
20
|
-
@if $orientation-state == single-line {
|
|
21
|
-
min-height: map.get(field-variables.$field, height, dense);
|
|
22
|
-
}
|
|
23
|
-
@else if $orientation-state == default {
|
|
24
|
-
// Default
|
|
25
|
-
@if $layout-state == default {
|
|
26
|
-
min-height: map.get(field-variables.$field, height, default);
|
|
27
|
-
}
|
|
28
|
-
// Roomy
|
|
29
|
-
@else if $layout-state == roomy {
|
|
30
|
-
min-height: map.get(field-variables.$field, height, roomy);
|
|
31
|
-
}
|
|
32
|
-
// Dense
|
|
33
|
-
@else if $layout-state == dense {
|
|
34
|
-
// Field doesn't use label when dense so we use default height when dense for default orientation.
|
|
35
|
-
min-height: map.get(field-variables.$field, height, default);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
@include _error-orientation-state(root-min-height, $orientation-state);
|
|
39
|
-
@include _error-layout-state(root-min-height, $layout-state);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
@mixin root-padding-top($layout-state) {
|
|
43
|
-
// Default
|
|
44
|
-
@if $layout-state == default {
|
|
45
|
-
padding-top: map.get(variables.$root, padding, top, default);
|
|
46
|
-
}
|
|
47
|
-
// Roomy
|
|
48
|
-
@else if $layout-state == roomy {
|
|
49
|
-
padding-top: map.get(variables.$root, padding, top, roomy);
|
|
50
|
-
}
|
|
51
|
-
@include _error-layout-state(root-padding-top, $layout-state);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Icon Container
|
|
55
|
-
|
|
56
|
-
@mixin icon-container-core {
|
|
57
|
-
display: flex;
|
|
58
|
-
align-items: flex-start;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Container
|
|
62
|
-
|
|
63
|
-
@mixin container-orientation($orientation-state) {
|
|
64
|
-
// Default
|
|
65
|
-
@if $orientation-state == default {
|
|
66
|
-
display: flex;
|
|
67
|
-
flex-direction: column;
|
|
68
|
-
align-items: flex-start;
|
|
69
|
-
}
|
|
70
|
-
// Single Line
|
|
71
|
-
@else if $orientation-state == single-line {
|
|
72
|
-
display: flex;
|
|
73
|
-
flex-direction: row;
|
|
74
|
-
align-items: center;
|
|
75
|
-
}
|
|
76
|
-
@include _error-orientation-state(container-orientation, $orientation-state);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
@mixin container-align($align-state) {
|
|
80
|
-
// Left
|
|
81
|
-
@if $align-state == left {
|
|
82
|
-
align-items: flex-start;
|
|
83
|
-
}
|
|
84
|
-
// Center
|
|
85
|
-
@else if $align-state == center {
|
|
86
|
-
align-items: center;
|
|
87
|
-
}
|
|
88
|
-
// Right
|
|
89
|
-
@else if $align-state == right {
|
|
90
|
-
align-items: flex-end;
|
|
91
|
-
}
|
|
92
|
-
@include _error-align-state(root-align, $align-state);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
@mixin container-ellipsis {
|
|
96
|
-
overflow: hidden;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// Icon
|
|
100
|
-
@mixin icon-core {
|
|
101
|
-
@include mdc-theme.property(color, text-primary-on-background);
|
|
102
|
-
|
|
103
|
-
font-size: 1.25rem !important;
|
|
104
|
-
margin-right: 8px;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// Label
|
|
108
|
-
@mixin label-core {
|
|
109
|
-
@include mdc-typography.typography(subtitle1, $exclude-props: (line-height, font-size));
|
|
110
|
-
line-height: 1rem;
|
|
111
|
-
@include mdc-theme.property(color, text-secondary-on-background);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
@mixin label-font-size($layout-state, $orientation-state) {
|
|
115
|
-
// Default, Dense or Single Line
|
|
116
|
-
@if $orientation-state == single-line or $layout-state == default or $layout-state == dense {
|
|
117
|
-
font-size: map.get(field-variables.$label, font-size, default);
|
|
118
|
-
}
|
|
119
|
-
// Roomy
|
|
120
|
-
@else if $layout-state == roomy and $orientation-state != single-line {
|
|
121
|
-
font-size: map.get(field-variables.$label, font-size, roomy);
|
|
122
|
-
}
|
|
123
|
-
@include _error-layout-state(label-font-size, $layout-state);
|
|
124
|
-
@include _error-orientation-state(label-margin-right, $orientation-state);
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
@mixin label-transform($layout-state) {
|
|
128
|
-
// Default
|
|
129
|
-
@if $layout-state == default or $layout-state == dense {
|
|
130
|
-
transform:
|
|
131
|
-
translateX(map.get(variables.$label, transform, translate, x, default))
|
|
132
|
-
translateY(map.get(variables.$label, transform, translate, y, default))
|
|
133
|
-
scale(map.get(field-variables.$label, float-scale, default));
|
|
134
|
-
}
|
|
135
|
-
// Roomy
|
|
136
|
-
@else if $layout-state == roomy {
|
|
137
|
-
transform:
|
|
138
|
-
translateX(map.get(variables.$label, transform, translate, x, roomy))
|
|
139
|
-
translateY(map.get(variables.$label, transform, translate, y, roomy))
|
|
140
|
-
scale(map.get(field-variables.$label, float-scale, default));
|
|
141
|
-
}
|
|
142
|
-
@include _error-layout-state(label-transform, $layout-state);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
@mixin label-margin-bottom($layout-state) {
|
|
146
|
-
// Default
|
|
147
|
-
@if $layout-state == default or $layout-state == dense {
|
|
148
|
-
margin-bottom: map.get(variables.$label, margin, bottom, default);
|
|
149
|
-
}
|
|
150
|
-
// Roomy
|
|
151
|
-
@else if $layout-state == roomy {
|
|
152
|
-
margin-bottom: map.get(variables.$label, margin, bottom, roomy);
|
|
153
|
-
}
|
|
154
|
-
@include _error-layout-state(label-margin-bottom, $layout-state);
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
@mixin label-margin-right($orientation-state) {
|
|
158
|
-
// Single Line
|
|
159
|
-
@if $orientation-state == single-line {
|
|
160
|
-
margin-right: map.get(variables.$label, margin, right, single-line);
|
|
161
|
-
}
|
|
162
|
-
@include _error-orientation-state(label-margin-right, $orientation-state);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
@mixin label-width($orientation-state) {
|
|
166
|
-
// Default
|
|
167
|
-
@if $orientation-state == default {
|
|
168
|
-
max-width: 100%;
|
|
169
|
-
}
|
|
170
|
-
// Single Line
|
|
171
|
-
@else if $orientation-state == single-line {
|
|
172
|
-
flex: none;
|
|
173
|
-
}
|
|
174
|
-
@include _error-orientation-state(label-width, $orientation-state);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
@mixin label-ellipsis {
|
|
178
|
-
@include _ellipsis;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// Value
|
|
182
|
-
|
|
183
|
-
@mixin value-core {
|
|
184
|
-
@include mdc-typography.typography(body1, $exclude-props: (font-size, line-height));
|
|
185
|
-
line-height: 1.25rem;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
@mixin value-font-size($layout-state) {
|
|
189
|
-
// Default
|
|
190
|
-
@if $layout-state == default {
|
|
191
|
-
font-size: map.get(field-variables.$input, font-size, default);
|
|
192
|
-
}
|
|
193
|
-
// Roomy
|
|
194
|
-
@else if $layout-state == roomy {
|
|
195
|
-
font-size: map.get(field-variables.$input, font-size, roomy);
|
|
196
|
-
}
|
|
197
|
-
// Dense
|
|
198
|
-
@else if $layout-state == dense {
|
|
199
|
-
font-size: map.get(field-variables.$input, font-size, dense);
|
|
200
|
-
}
|
|
201
|
-
@include _error-layout-state(value-font-size, $layout-state);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
@mixin value-width($orientation-state) {
|
|
205
|
-
// Default
|
|
206
|
-
@if $orientation-state == default {
|
|
207
|
-
max-width: 100%;
|
|
208
|
-
}
|
|
209
|
-
// Single line
|
|
210
|
-
@else if $orientation-state == single-line {
|
|
211
|
-
flex: none;
|
|
212
|
-
}
|
|
213
|
-
@include _error-orientation-state(value-width, $orientation-state);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
@mixin value-empty {
|
|
217
|
-
@include mdc-theme.property(color, text-secondary-on-background);
|
|
218
|
-
font-style: italic;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
@mixin value-ellipsis {
|
|
222
|
-
@include _ellipsis;
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
@mixin _ellipsis {
|
|
226
|
-
overflow: hidden;
|
|
227
|
-
text-overflow: ellipsis;
|
|
228
|
-
white-space: nowrap;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
@mixin _error-layout-state($mixin-name, $layout-state) {
|
|
232
|
-
@if $layout-state != default
|
|
233
|
-
and $layout-state != roomy
|
|
234
|
-
and $layout-state != dense {
|
|
235
|
-
@error 'mixin #{$mixin-name} must take a $layout-state arguement of [default, roomy, dense]. Got #{$layout-state}.';
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
@mixin _error-align-state($mixin-name, $align-state) {
|
|
240
|
-
@if $align-state != left
|
|
241
|
-
and $align-state != center
|
|
242
|
-
and $align-state != right {
|
|
243
|
-
@error 'mixin #{$mixin-name} must take a $align-state arguement of [left, center, right]. Got #{$align-state}.';
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
@mixin _error-orientation-state($mixin-name, $orientation-state) {
|
|
248
|
-
@if $orientation-state != default
|
|
249
|
-
and $orientation-state != single-line {
|
|
250
|
-
@error 'mixin #{$mixin-name} must take a $orientation-state arguement of [default, single]. Got #{$orientation-state}.';
|
|
251
|
-
}
|
|
252
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022 Tyler Technologies, Inc.
|
|
4
|
-
* License: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
@use './selector';
|
|
7
|
-
|
|
8
|
-
@mixin core-styles {
|
|
9
|
-
@include selector.root;
|
|
10
|
-
@include selector.icon-container;
|
|
11
|
-
@include selector.container;
|
|
12
|
-
@include selector.icon;
|
|
13
|
-
@include selector.label;
|
|
14
|
-
@include selector.value;
|
|
15
|
-
}
|