@tylertech/forge 3.0.0-next.14 → 3.0.0-next.15
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/custom-elements.json +8607 -3358
- package/dist/esm/accordion/index.js +1 -1
- package/dist/esm/app-bar/app-bar/index.js +1 -1
- package/dist/esm/app-bar/help-button/index.js +1 -1
- package/dist/esm/app-bar/index.js +1 -1
- package/dist/esm/app-bar/menu-button/index.js +1 -1
- package/dist/esm/app-bar/notification-button/index.js +1 -1
- package/dist/esm/app-bar/profile-button/index.js +1 -1
- package/dist/esm/app-bar/search/index.js +1 -1
- package/dist/esm/autocomplete/index.js +1 -1
- 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 +1 -1
- package/dist/esm/bottom-sheet/index.js +1 -1
- package/dist/esm/busy-indicator/index.js +1 -1
- package/dist/esm/button/index.js +1 -1
- package/dist/esm/button-area/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle/index.js +1 -1
- package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
- package/dist/esm/button-toggle/index.js +1 -1
- package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
- package/dist/esm/calendar/calendar-menu/index.js +1 -1
- package/dist/esm/calendar/index.js +1 -1
- package/dist/esm/card/index.js +1 -1
- package/dist/esm/checkbox/index.js +1 -1
- package/dist/esm/chip-field/index.js +1 -1
- package/dist/esm/chips/chip/index.js +1 -1
- package/dist/esm/chips/chip-set/index.js +1 -1
- package/dist/esm/chips/index.js +1 -1
- package/dist/esm/chunks/chunk.3KEXRSB5.js +7 -0
- package/dist/esm/chunks/{chunk.IW7HALLT.js.map → chunk.3KEXRSB5.js.map} +1 -1
- package/dist/esm/chunks/chunk.3TKTJ3BY.js +7 -0
- package/dist/esm/chunks/chunk.3TKTJ3BY.js.map +7 -0
- package/dist/esm/chunks/{chunk.DOEG3DWJ.js → chunk.42YDA5FH.js} +2 -2
- package/dist/esm/chunks/chunk.447QNYAZ.js +7 -0
- package/dist/esm/chunks/{chunk.PQQVUUHU.js.map → chunk.447QNYAZ.js.map} +1 -1
- package/dist/esm/chunks/chunk.4IMRT2B3.js +7 -0
- package/dist/esm/chunks/{chunk.F2EBSV5Z.js.map → chunk.4IMRT2B3.js.map} +1 -1
- package/dist/esm/chunks/chunk.4JDJ33IU.js +7 -0
- package/dist/esm/chunks/{chunk.LXX3YZYS.js.map → chunk.4JDJ33IU.js.map} +1 -1
- package/dist/esm/chunks/chunk.4QCGBFLU.js +7 -0
- package/dist/esm/chunks/{chunk.J2KHTGSB.js.map → chunk.4QCGBFLU.js.map} +1 -1
- package/dist/esm/chunks/chunk.4XN2WGMP.js +7 -0
- package/dist/esm/chunks/{chunk.RDW7Z4W5.js.map → chunk.4XN2WGMP.js.map} +1 -1
- package/dist/esm/chunks/{chunk.CTZ3AWDW.js → chunk.5EGEZ4IY.js} +2 -2
- package/dist/esm/chunks/chunk.5FCUOZSU.js +7 -0
- package/dist/esm/chunks/{chunk.7ABZUBTT.js.map → chunk.5FCUOZSU.js.map} +1 -1
- package/dist/esm/chunks/chunk.5KYKGNGY.js +7 -0
- package/dist/esm/chunks/{chunk.4B5IOZAT.js.map → chunk.5KYKGNGY.js.map} +1 -1
- package/dist/esm/chunks/chunk.5QZPUOGG.js +7 -0
- package/dist/esm/chunks/{chunk.6Q3SV2R2.js.map → chunk.5QZPUOGG.js.map} +1 -1
- package/dist/esm/chunks/chunk.5ZMM75CJ.js +7 -0
- package/dist/esm/chunks/{chunk.MZZJY5NX.js.map → chunk.5ZMM75CJ.js.map} +1 -1
- package/dist/esm/chunks/chunk.6FUXTHO6.js +7 -0
- package/dist/esm/chunks/{chunk.KLPF4CNX.js.map → chunk.6FUXTHO6.js.map} +1 -1
- package/dist/esm/chunks/chunk.6ORVPXNN.js +7 -0
- package/dist/esm/chunks/{chunk.4QDN5PM6.js.map → chunk.6ORVPXNN.js.map} +1 -1
- package/dist/esm/chunks/chunk.6ZJIHOIG.js +7 -0
- package/dist/esm/chunks/chunk.6ZJIHOIG.js.map +7 -0
- package/dist/esm/chunks/chunk.7LOMI6J3.js +7 -0
- package/dist/esm/chunks/chunk.7PVVZC7P.js +7 -0
- package/dist/esm/chunks/chunk.7PVVZC7P.js.map +7 -0
- package/dist/esm/chunks/chunk.AEO2X5OZ.js +7 -0
- package/dist/esm/chunks/{chunk.7DHDFH5L.js.map → chunk.AEO2X5OZ.js.map} +1 -1
- package/dist/esm/chunks/chunk.AIPDMLJD.js +7 -0
- package/dist/esm/chunks/{chunk.Z7PBGV4K.js.map → chunk.AIPDMLJD.js.map} +1 -1
- package/dist/esm/chunks/chunk.APFDK6YA.js +7 -0
- package/dist/esm/chunks/{chunk.2YDKRTKP.js.map → chunk.APFDK6YA.js.map} +1 -1
- package/dist/esm/chunks/{chunk.57PXXJA6.js → chunk.AR6YUJUH.js} +2 -2
- package/dist/esm/chunks/chunk.AVRBHXDT.js +177 -0
- package/dist/esm/chunks/{chunk.TZFUKJ24.js.map → chunk.AVRBHXDT.js.map} +1 -1
- package/dist/esm/chunks/chunk.BAQYPAUM.js +7 -0
- package/dist/esm/chunks/{chunk.HHHBS6FB.js → chunk.BC7WB5RG.js} +2 -2
- package/dist/esm/chunks/chunk.BIVQ4GTK.js +7 -0
- package/dist/esm/chunks/{chunk.XDANTL6C.js.map → chunk.BIVQ4GTK.js.map} +2 -2
- package/dist/esm/chunks/chunk.BJD6BKGC.js +31 -0
- package/dist/esm/chunks/chunk.BJD6BKGC.js.map +7 -0
- package/dist/esm/chunks/chunk.BS73Y6IN.js +7 -0
- package/dist/esm/chunks/{chunk.QFY23EWU.js.map → chunk.BS73Y6IN.js.map} +1 -1
- package/dist/esm/chunks/chunk.BTWJPE4Y.js +7 -0
- package/dist/esm/chunks/{chunk.C5IB44HX.js.map → chunk.BTWJPE4Y.js.map} +1 -1
- package/dist/esm/chunks/chunk.BWGDZUJV.js +12 -0
- package/dist/esm/chunks/chunk.BWGDZUJV.js.map +7 -0
- package/dist/esm/chunks/{chunk.7XFU2W25.js → chunk.BX4AQRHB.js} +2 -2
- package/dist/esm/chunks/{chunk.7XFU2W25.js.map → chunk.BX4AQRHB.js.map} +3 -3
- package/dist/esm/chunks/chunk.CBY7M4X6.js +7 -0
- package/dist/esm/chunks/{chunk.LMIKNDBS.js.map → chunk.CBY7M4X6.js.map} +1 -1
- package/dist/esm/chunks/chunk.DLBAZD5X.js +7 -0
- package/dist/esm/chunks/{chunk.5VHUMZYS.js.map → chunk.DLBAZD5X.js.map} +1 -1
- package/dist/esm/chunks/chunk.DTWXICOY.js +7 -0
- package/dist/esm/chunks/{chunk.2GJ54C3Q.js.map → chunk.DTWXICOY.js.map} +1 -1
- package/dist/esm/chunks/{chunk.VD5ZL5ZN.js → chunk.EMCY55MX.js} +2 -2
- package/dist/esm/chunks/chunk.ESQWFHCF.js +7 -0
- package/dist/esm/chunks/{chunk.Q5Z6F3PI.js.map → chunk.ESQWFHCF.js.map} +1 -1
- package/dist/esm/chunks/{chunk.FYWPZFLJ.js → chunk.EWT2PBEP.js} +2 -2
- package/dist/esm/chunks/{chunk.FYWPZFLJ.js.map → chunk.EWT2PBEP.js.map} +2 -2
- package/dist/esm/chunks/chunk.FJ5VNWYK.js +7 -0
- package/dist/esm/chunks/{chunk.XNCBGWE4.js.map → chunk.FJ5VNWYK.js.map} +1 -1
- package/dist/esm/chunks/chunk.FJRCWWE2.js +7 -0
- package/dist/esm/chunks/chunk.FJRCWWE2.js.map +7 -0
- package/dist/esm/chunks/chunk.FQUZWINF.js +7 -0
- package/dist/esm/chunks/{chunk.F6KM5FO6.js.map → chunk.FQUZWINF.js.map} +1 -1
- package/dist/esm/chunks/chunk.FSILMO6U.js +7 -0
- package/dist/esm/chunks/{chunk.7PP6QHOM.js.map → chunk.FSILMO6U.js.map} +1 -1
- package/dist/esm/chunks/chunk.FXGY5IVK.js +7 -0
- package/dist/esm/chunks/chunk.FXGY5IVK.js.map +7 -0
- package/dist/esm/chunks/chunk.G67LO74A.js +7 -0
- package/dist/esm/chunks/chunk.G67LO74A.js.map +7 -0
- package/dist/esm/chunks/chunk.GGQL3OZB.js +7 -0
- package/dist/esm/chunks/{chunk.BFUGFHEH.js.map → chunk.GGQL3OZB.js.map} +1 -1
- package/dist/esm/chunks/{chunk.K7FPXAFS.js → chunk.HZUQXCOQ.js} +2 -2
- package/dist/esm/chunks/{chunk.K7FPXAFS.js.map → chunk.HZUQXCOQ.js.map} +2 -2
- package/dist/esm/chunks/chunk.I7OY43HW.js +7 -0
- package/dist/esm/chunks/{chunk.KFDYMENL.js.map → chunk.I7OY43HW.js.map} +1 -1
- package/dist/esm/chunks/{chunk.E3GVKR4E.js → chunk.I7X25KEB.js} +2 -2
- package/dist/esm/chunks/chunk.ICIGXLJW.js +7 -0
- package/dist/esm/chunks/{chunk.W324TWF2.js.map → chunk.ICIGXLJW.js.map} +1 -1
- package/dist/esm/chunks/chunk.IHIKIZIT.js +7 -0
- package/dist/esm/chunks/chunk.ILUXZNGY.js +7 -0
- package/dist/esm/chunks/{chunk.SNF35Y6C.js.map → chunk.ILUXZNGY.js.map} +1 -1
- package/dist/esm/chunks/chunk.JEZR25US.js +7 -0
- package/dist/esm/chunks/{chunk.THWSN3X4.js.map → chunk.JEZR25US.js.map} +1 -1
- package/dist/esm/chunks/{chunk.2GYZM6ZG.js → chunk.JHELTQKA.js} +2 -2
- package/dist/esm/chunks/{chunk.UWZWXNTW.js → chunk.JPI4XCQL.js} +2 -2
- package/dist/esm/chunks/chunk.JRSFCVYQ.js +7 -0
- package/dist/esm/chunks/{chunk.WQGPIOL6.js.map → chunk.JRSFCVYQ.js.map} +1 -1
- package/dist/esm/chunks/chunk.JZ27GPZJ.js +7 -0
- package/dist/esm/chunks/{chunk.J3B5CWKT.js.map → chunk.JZ27GPZJ.js.map} +1 -1
- package/dist/esm/chunks/chunk.K3TJMIKD.js +7 -0
- package/dist/esm/chunks/{chunk.LCNR2RPT.js.map → chunk.K3TJMIKD.js.map} +1 -1
- package/dist/esm/chunks/{chunk.26E4L52W.js → chunk.KDJZN6EW.js} +2 -2
- package/dist/esm/chunks/chunk.KGHABAFA.js +7 -0
- package/dist/esm/chunks/{chunk.GS72TBUD.js.map → chunk.KGHABAFA.js.map} +1 -1
- package/dist/esm/chunks/chunk.KR4BNI6X.js +7 -0
- package/dist/esm/chunks/{chunk.VDZ7HBKM.js.map → chunk.KR4BNI6X.js.map} +1 -1
- package/dist/esm/chunks/chunk.KUNIEX72.js +7 -0
- package/dist/esm/chunks/{chunk.H7GW57Q6.js.map → chunk.KUNIEX72.js.map} +1 -1
- package/dist/esm/chunks/{chunk.5C24LZNU.js → chunk.KWBYYSH3.js} +2 -2
- package/dist/esm/chunks/chunk.L27ANAIL.js +7 -0
- package/dist/esm/chunks/{chunk.3ZRQFXQU.js.map → chunk.L27ANAIL.js.map} +1 -1
- package/dist/esm/chunks/{chunk.DDXIHZFX.js → chunk.L45HXBDS.js} +2 -2
- package/dist/esm/chunks/chunk.L4UXWCVD.js +7 -0
- package/dist/esm/chunks/{chunk.5H4G6BWX.js.map → chunk.L4UXWCVD.js.map} +1 -1
- package/dist/esm/chunks/chunk.LK6QHLW2.js +7 -0
- package/dist/esm/chunks/{chunk.P7LC3YYW.js.map → chunk.LK6QHLW2.js.map} +1 -1
- package/dist/esm/chunks/chunk.LYZXJYTW.js +7 -0
- package/dist/esm/chunks/{chunk.OED5UCYT.js.map → chunk.LYZXJYTW.js.map} +1 -1
- package/dist/esm/chunks/chunk.LZ2YQYJA.js +7 -0
- package/dist/esm/chunks/chunk.LZ2YQYJA.js.map +7 -0
- package/dist/esm/chunks/chunk.M7RYU4HQ.js +7 -0
- package/dist/esm/chunks/chunk.M7RYU4HQ.js.map +7 -0
- package/dist/esm/chunks/{chunk.NZKIFXBU.js → chunk.MHH26REX.js} +2 -2
- package/dist/esm/chunks/chunk.MROUV35N.js +7 -0
- package/dist/esm/chunks/{chunk.U5WMRBSC.js.map → chunk.MROUV35N.js.map} +1 -1
- package/dist/esm/chunks/chunk.MTSWCXTY.js +7 -0
- package/dist/esm/chunks/chunk.NBLL7VAA.js +7 -0
- package/dist/esm/chunks/chunk.NM7FJISF.js +7 -0
- package/dist/esm/chunks/chunk.NM7FJISF.js.map +7 -0
- package/dist/esm/chunks/chunk.NVR6KN2B.js +7 -0
- package/dist/esm/chunks/{chunk.B46Q3AFP.js.map → chunk.NVR6KN2B.js.map} +1 -1
- package/dist/esm/chunks/chunk.O6F4U4VY.js +7 -0
- package/dist/esm/chunks/{chunk.IEB5KRFQ.js.map → chunk.O6F4U4VY.js.map} +1 -1
- package/dist/esm/chunks/chunk.O6MGA3XK.js +7 -0
- package/dist/esm/chunks/chunk.ONII3BV3.js +7 -0
- package/dist/esm/chunks/{chunk.TLFCQSJN.js.map → chunk.ONII3BV3.js.map} +1 -1
- package/dist/esm/chunks/chunk.OTUEB7SD.js +7 -0
- package/dist/esm/chunks/{chunk.G2BNY5QQ.js.map → chunk.OTUEB7SD.js.map} +1 -1
- package/dist/esm/chunks/{chunk.PADPL4L3.js → chunk.OUIWXKO2.js} +2 -2
- package/dist/esm/chunks/chunk.PMSCH6VK.js +7 -0
- package/dist/esm/chunks/{chunk.3UO6S3IK.js.map → chunk.PMSCH6VK.js.map} +1 -1
- package/dist/esm/chunks/chunk.PRJHBUU2.js +7 -0
- package/dist/esm/chunks/chunk.PRJHBUU2.js.map +7 -0
- package/dist/esm/chunks/chunk.Q2Q626DG.js +7 -0
- package/dist/esm/chunks/{chunk.NG6UZ4OL.js.map → chunk.Q2Q626DG.js.map} +1 -1
- package/dist/esm/chunks/chunk.Q4YL47ZL.js +7 -0
- package/dist/esm/chunks/{chunk.IVUK3W34.js.map → chunk.Q4YL47ZL.js.map} +1 -1
- package/dist/esm/chunks/chunk.Q54DACHS.js +7 -0
- package/dist/esm/chunks/{chunk.PSTGTQVK.js.map → chunk.Q54DACHS.js.map} +1 -1
- package/dist/esm/chunks/chunk.Q74SG6BV.js +7 -0
- package/dist/esm/chunks/{chunk.DTKFE7YB.js.map → chunk.Q74SG6BV.js.map} +1 -1
- package/dist/esm/chunks/chunk.QG5EYBS3.js +7 -0
- package/dist/esm/chunks/chunk.QG5EYBS3.js.map +7 -0
- package/dist/esm/chunks/chunk.QGMWM7IT.js +7 -0
- package/dist/esm/chunks/{chunk.CNRFOWHY.js.map → chunk.QGMWM7IT.js.map} +1 -1
- package/dist/esm/chunks/chunk.RCPUTZON.js +7 -0
- package/dist/esm/chunks/{chunk.FQSL747N.js.map → chunk.RCPUTZON.js.map} +1 -1
- package/dist/esm/chunks/chunk.SBKKBQDX.js +7 -0
- package/dist/esm/chunks/{chunk.6Y45DLA6.js.map → chunk.SBKKBQDX.js.map} +1 -1
- package/dist/esm/chunks/chunk.SVVF632P.js +7 -0
- package/dist/esm/chunks/chunk.SVVF632P.js.map +7 -0
- package/dist/esm/chunks/chunk.T4J66YX5.js +7 -0
- package/dist/esm/chunks/chunk.T4J66YX5.js.map +7 -0
- package/dist/esm/chunks/chunk.THNCYT3E.js +7 -0
- package/dist/esm/chunks/{chunk.OUACQISE.js.map → chunk.THNCYT3E.js.map} +2 -2
- package/dist/esm/chunks/chunk.TPXXHX5J.js +7 -0
- package/dist/esm/chunks/{chunk.JAWV5Y5T.js.map → chunk.TPXXHX5J.js.map} +2 -2
- package/dist/esm/chunks/chunk.TSUAFZGY.js +7 -0
- package/dist/esm/chunks/{chunk.L4Y4RO5O.js.map → chunk.TSUAFZGY.js.map} +1 -1
- package/dist/esm/chunks/chunk.U42I3PGF.js +7 -0
- package/dist/esm/chunks/chunk.U42I3PGF.js.map +7 -0
- package/dist/esm/chunks/{chunk.GHR7T6U2.js → chunk.U7S4DJTU.js} +2 -2
- package/dist/esm/chunks/chunk.UOEJCU6R.js +7 -0
- package/dist/esm/chunks/{chunk.PK7R6WDF.js.map → chunk.UOEJCU6R.js.map} +1 -1
- package/dist/esm/chunks/{chunk.543K5Y4E.js → chunk.URKQICJD.js} +2 -2
- package/dist/esm/chunks/chunk.VG452D3L.js +7 -0
- package/dist/esm/chunks/{chunk.A72W7RW7.js.map → chunk.VG452D3L.js.map} +1 -1
- package/dist/esm/chunks/chunk.VQPSP4HV.js +7 -0
- package/dist/esm/chunks/{chunk.LSNAGIIH.js.map → chunk.VQPSP4HV.js.map} +1 -1
- package/dist/esm/chunks/chunk.W7BP2DDU.js +7 -0
- package/dist/esm/chunks/{chunk.URCJO73M.js.map → chunk.W7BP2DDU.js.map} +1 -1
- package/dist/esm/chunks/chunk.WARVAVAW.js +7 -0
- package/dist/esm/chunks/{chunk.BMQYEYCT.js.map → chunk.WARVAVAW.js.map} +1 -1
- package/dist/esm/chunks/chunk.WEHQUUXJ.js +7 -0
- package/dist/esm/chunks/{chunk.GT3VPSXY.js.map → chunk.WEHQUUXJ.js.map} +1 -1
- package/dist/esm/chunks/chunk.WJCZJ6XD.js +7 -0
- package/dist/esm/chunks/{chunk.GWJ4QCSW.js.map → chunk.WJCZJ6XD.js.map} +1 -1
- package/dist/esm/chunks/{chunk.DD35U4AA.js → chunk.WMP2OLMG.js} +2 -2
- package/dist/esm/chunks/chunk.X3QZY7V4.js +7 -0
- package/dist/esm/chunks/{chunk.7W2UWAZX.js.map → chunk.X3QZY7V4.js.map} +1 -1
- package/dist/esm/chunks/chunk.XQLQ73NG.js +7 -0
- package/dist/esm/chunks/{chunk.Z2RB75TN.js.map → chunk.XQLQ73NG.js.map} +1 -1
- package/dist/esm/chunks/chunk.Y4ZS3A6F.js +7 -0
- package/dist/esm/chunks/{chunk.KTYYBWTN.js.map → chunk.Y4ZS3A6F.js.map} +1 -1
- package/dist/esm/chunks/chunk.YA5OQD37.js +7 -0
- package/dist/esm/chunks/{chunk.JVK64JDZ.js.map → chunk.YA5OQD37.js.map} +1 -1
- package/dist/esm/chunks/chunk.YMSX4F3J.js +7 -0
- package/dist/esm/chunks/{chunk.RYNQDXFA.js.map → chunk.YMSX4F3J.js.map} +1 -1
- package/dist/esm/chunks/{chunk.KVCDAZ6B.js → chunk.YTBNAGLS.js} +2 -2
- package/dist/esm/chunks/chunk.Z37CZMMR.js +7 -0
- package/dist/esm/chunks/{chunk.RZZBM3AW.js.map → chunk.Z37CZMMR.js.map} +1 -1
- package/dist/esm/chunks/chunk.ZIRA4PYV.js +7 -0
- package/dist/esm/chunks/chunk.ZIRA4PYV.js.map +7 -0
- package/dist/esm/chunks/chunk.ZT7U7WOX.js +7 -0
- package/dist/esm/chunks/{chunk.YKZ25J6B.js.map → chunk.ZT7U7WOX.js.map} +1 -1
- package/dist/esm/chunks/{chunk.FB6ZLH6P.js → chunk.ZX3CGET2.js} +2 -2
- package/dist/esm/circular-progress/index.js +1 -1
- package/dist/esm/color-picker/index.js +1 -1
- package/dist/esm/core/base/index.js +1 -1
- package/dist/esm/core/delegates/index.js +1 -1
- package/dist/esm/core/index.js +1 -1
- package/dist/esm/core/utils/index.js +1 -1
- package/dist/esm/date-picker/index.js +1 -1
- package/dist/esm/date-range-picker/index.js +1 -1
- package/dist/esm/dialog/index.js +1 -1
- package/dist/esm/divider/index.js +1 -1
- package/dist/esm/drawer/base/index.js +1 -1
- package/dist/esm/drawer/drawer/index.js +1 -1
- package/dist/esm/drawer/index.js +1 -1
- package/dist/esm/drawer/mini-drawer/index.js +1 -1
- package/dist/esm/drawer/modal-drawer/index.js +1 -1
- package/dist/esm/expansion-panel/index.js +1 -1
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/floating-action-button/index.js +1 -1
- package/dist/esm/floating-label/index.js +1 -1
- package/dist/esm/focus-indicator/index.js +1 -1
- package/dist/esm/icon/index.js +1 -1
- package/dist/esm/icon-button/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/inline-message/index.js +1 -1
- package/dist/esm/keyboard-shortcut/index.js +1 -1
- package/dist/esm/label/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 +1 -1
- package/dist/esm/list/list/index.js +1 -1
- package/dist/esm/list/list-item/index.js +1 -1
- package/dist/esm/list-dropdown/index.js +1 -1
- package/dist/esm/menu/index.js +1 -1
- package/dist/esm/open-icon/index.js +1 -1
- package/dist/esm/page-state/index.js +1 -1
- package/dist/esm/paginator/index.js +1 -1
- package/dist/esm/popup/index.js +1 -1
- package/dist/esm/product-icon/index.js +1 -1
- package/dist/esm/profile-card/index.js +1 -1
- package/dist/esm/quantity-field/index.js +1 -1
- package/dist/esm/radio/index.js +1 -1
- package/dist/esm/radio/radio/index.js +7 -0
- package/dist/esm/radio/radio/index.js.map +7 -0
- package/dist/esm/radio/radio-group/index.js +7 -0
- package/dist/esm/ripple/index.js +1 -1
- package/dist/esm/scaffold/index.js +1 -1
- package/dist/esm/select/core/index.js +1 -1
- package/dist/esm/select/index.js +1 -1
- 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 +1 -1
- package/dist/esm/select/select-dropdown/index.js +1 -1
- package/dist/esm/skeleton/index.js +1 -1
- package/dist/esm/slider/index.js +1 -1
- package/dist/esm/split-button/index.js +1 -1
- package/dist/esm/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view/index.js +1 -1
- package/dist/esm/split-view/split-view-panel/index.js +1 -1
- package/dist/esm/stack/index.js +1 -1
- package/dist/esm/state-layer/index.js +1 -1
- package/dist/esm/stepper/index.js +1 -1
- package/dist/esm/stepper/step/index.js +1 -1
- package/dist/esm/stepper/stepper/index.js +1 -1
- package/dist/esm/switch/index.js +1 -1
- package/dist/esm/table/index.js +1 -1
- package/dist/esm/tabs/index.js +1 -1
- package/dist/esm/tabs/tab/index.js +1 -1
- package/dist/esm/tabs/tab-bar/index.js +1 -1
- package/dist/esm/text-field/index.js +1 -1
- package/dist/esm/time-picker/index.js +1 -1
- package/dist/esm/toast/index.js +1 -1
- package/dist/esm/toolbar/index.js +1 -1
- package/dist/esm/tooltip/index.js +1 -1
- package/dist/esm/view-switcher/index.js +1 -1
- package/dist/esm/view-switcher/view/index.js +1 -1
- package/esm/app-bar/app-bar/app-bar.js +1 -1
- package/esm/app-bar/search/app-bar-search-adapter.d.ts +8 -43
- package/esm/app-bar/search/app-bar-search-adapter.js +23 -53
- package/esm/app-bar/search/app-bar-search-constants.d.ts +0 -15
- package/esm/app-bar/search/app-bar-search-constants.js +3 -20
- package/esm/app-bar/search/app-bar-search-foundation.d.ts +3 -37
- package/esm/app-bar/search/app-bar-search-foundation.js +27 -88
- package/esm/app-bar/search/app-bar-search.d.ts +1 -21
- package/esm/app-bar/search/app-bar-search.js +13 -39
- package/esm/button/base/base-button-adapter.d.ts +0 -2
- package/esm/button/base/base-button-adapter.js +13 -4
- package/esm/button/base/base-button-foundation.js +8 -10
- package/esm/button/base/base-button.d.ts +7 -5
- package/esm/button/base/base-button.js +5 -2
- package/esm/button/button-constants.d.ts +2 -0
- package/esm/button/button-constants.js +2 -1
- package/esm/button/button-foundation.d.ts +4 -0
- package/esm/button/button-foundation.js +10 -0
- package/esm/button/button.d.ts +4 -0
- package/esm/button/button.js +9 -1
- package/esm/constants.d.ts +14 -2
- package/esm/constants.js +11 -0
- package/esm/core/base/base-adapter.d.ts +4 -0
- package/esm/core/base/base-adapter.js +6 -0
- package/esm/core/base/base-component.d.ts +4 -0
- package/esm/core/base/base-element-internals-component.d.ts +41 -0
- package/esm/core/base/base-element-internals-component.js +47 -0
- package/esm/core/base/base-focusable-component.d.ts +11 -14
- package/esm/core/base/base-focusable-component.js +14 -15
- package/esm/core/base/base-form-associated-component.d.ts +122 -0
- package/esm/core/base/base-form-associated-component.js +71 -0
- package/esm/core/base/base-form-component.d.ts +0 -10
- package/esm/core/base/base-form-component.js +0 -6
- package/esm/core/base/base-label-aware-component.d.ts +33 -0
- package/esm/core/base/base-label-aware-component.js +17 -0
- package/esm/core/base/base-nullable-form-component.d.ts +0 -10
- package/esm/core/base/base-nullable-form-component.js +0 -6
- package/esm/core/base/index.d.ts +4 -0
- package/esm/core/base/index.js +4 -0
- package/esm/core/utils/a11y-utils.d.ts +156 -0
- package/esm/core/utils/a11y-utils.js +223 -0
- package/esm/core/utils/event-utils.d.ts +1 -0
- package/esm/core/utils/event-utils.js +3 -0
- package/esm/core/utils/feature-detection.d.ts +8 -0
- package/esm/core/utils/feature-detection.js +12 -0
- package/esm/core/utils/form-utils.d.ts +24 -0
- package/{dist/esm/chunks/chunk.U6FJJGO3.js → esm/core/utils/form-utils.js} +1 -1
- package/esm/core/utils/index.d.ts +1 -0
- package/esm/core/utils/index.js +1 -0
- package/esm/core/utils/mixin-utils.d.ts +20 -0
- package/esm/core/utils/mixin-utils.js +15 -0
- package/esm/core/utils/reflect-utils.d.ts +1 -1
- package/esm/core/utils/reflect-utils.js +2 -2
- package/esm/date-picker/base/base-date-picker.d.ts +1 -1
- package/esm/date-picker/base/base-date-picker.js +4 -3
- package/esm/index.d.ts +4 -4
- package/esm/index.js +29 -28
- package/esm/label/label-adapter.d.ts +2 -0
- package/esm/label/label-adapter.js +5 -2
- package/esm/label/label-aware.js +2 -1
- package/esm/label/label-constants.d.ts +6 -2
- package/esm/label/label-constants.js +12 -5
- package/esm/label/label-foundation.d.ts +16 -0
- package/esm/label/label-foundation.js +69 -6
- package/esm/label/label.d.ts +8 -0
- package/esm/label/label.js +21 -3
- package/esm/menu/menu-adapter.d.ts +3 -3
- package/esm/menu/menu-constants.d.ts +1 -1
- package/esm/menu/menu-foundation.d.ts +1 -0
- package/esm/menu/menu-foundation.js +11 -4
- package/esm/paginator/paginator-constants.d.ts +9 -0
- package/esm/paginator/paginator-foundation.d.ts +5 -2
- package/esm/paginator/paginator-foundation.js +29 -8
- package/esm/paginator/paginator.d.ts +3 -1
- package/esm/paginator/paginator.js +3 -0
- package/esm/radio/core/radio-group-manager.d.ts +83 -0
- package/esm/radio/core/radio-group-manager.js +201 -0
- package/esm/radio/index.d.ts +1 -2
- package/esm/radio/index.js +1 -6
- package/esm/radio/radio/index.d.ts +10 -0
- package/esm/radio/radio/index.js +14 -0
- package/esm/radio/radio/radio-adapter.d.ts +41 -0
- package/esm/radio/radio/radio-adapter.js +81 -0
- package/esm/radio/radio/radio-component-delegate.d.ts +5 -0
- package/esm/radio/radio/radio-component-delegate.js +6 -0
- package/esm/radio/radio/radio-constants.d.ts +39 -0
- package/esm/radio/radio/radio-constants.js +53 -0
- package/esm/radio/radio/radio-foundation.d.ts +70 -0
- package/esm/radio/radio/radio-foundation.js +199 -0
- package/esm/radio/radio/radio.d.ts +110 -0
- package/esm/radio/radio/radio.js +202 -0
- package/esm/radio/radio-group/index.d.ts +10 -0
- package/esm/radio/radio-group/index.js +14 -0
- package/esm/radio/radio-group/radio-group-adapter.d.ts +18 -0
- package/esm/radio/radio-group/radio-group-adapter.js +28 -0
- package/esm/radio/radio-group/radio-group-constants.d.ts +13 -0
- package/esm/radio/radio-group/radio-group-constants.js +19 -0
- package/esm/radio/radio-group/radio-group-foundation.d.ts +20 -0
- package/esm/radio/radio-group/radio-group-foundation.js +32 -0
- package/esm/radio/radio-group/radio-group.d.ts +44 -0
- package/esm/radio/radio-group/radio-group.js +81 -0
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/package.json +1 -1
- package/styles/app-bar/app-bar/_core.scss +4 -0
- package/styles/app-bar/app-bar/app-bar.scss +15 -1
- package/styles/app-bar/search/_configuration.scss +10 -0
- package/styles/app-bar/search/_core.scss +73 -0
- package/styles/app-bar/search/_token-utils.scss +30 -0
- package/styles/app-bar/search/app-bar-search.scss +51 -4
- package/styles/app-bar/search/index.scss +8 -0
- package/styles/button/button.scss +9 -0
- package/styles/core/styles/tokens/app-bar/search/_tokens.scss +35 -0
- package/styles/core/styles/tokens/radio/_tokens.scss +66 -0
- package/styles/label/_core.scss +2 -5
- package/styles/label/label.scss +1 -5
- package/styles/radio/index.scss +6 -0
- package/styles/radio/radio/_configuration.scss +10 -0
- package/styles/radio/radio/_core.scss +123 -0
- package/styles/radio/radio/_token-utils.scss +30 -0
- package/styles/radio/radio/index.scss +8 -0
- package/styles/radio/radio/radio.scss +102 -0
- package/styles/switch/_core.scss +6 -0
- package/dist/esm/chunks/chunk.2GJ54C3Q.js +0 -7
- package/dist/esm/chunks/chunk.2YDKRTKP.js +0 -7
- package/dist/esm/chunks/chunk.3JCHXLPT.js +0 -7
- package/dist/esm/chunks/chunk.3JCHXLPT.js.map +0 -7
- package/dist/esm/chunks/chunk.3RMBFRGC.js +0 -7
- package/dist/esm/chunks/chunk.3RMBFRGC.js.map +0 -7
- package/dist/esm/chunks/chunk.3UO6S3IK.js +0 -7
- package/dist/esm/chunks/chunk.3ZRQFXQU.js +0 -7
- package/dist/esm/chunks/chunk.4B5IOZAT.js +0 -7
- package/dist/esm/chunks/chunk.4QDN5PM6.js +0 -7
- package/dist/esm/chunks/chunk.5H4G6BWX.js +0 -7
- package/dist/esm/chunks/chunk.5VHUMZYS.js +0 -7
- package/dist/esm/chunks/chunk.6DXDNQUR.js +0 -15
- package/dist/esm/chunks/chunk.6DXDNQUR.js.map +0 -7
- package/dist/esm/chunks/chunk.6Q3SV2R2.js +0 -7
- package/dist/esm/chunks/chunk.6Y45DLA6.js +0 -7
- package/dist/esm/chunks/chunk.7ABZUBTT.js +0 -7
- package/dist/esm/chunks/chunk.7BGOH44S.js +0 -7
- package/dist/esm/chunks/chunk.7BGOH44S.js.map +0 -7
- package/dist/esm/chunks/chunk.7DHDFH5L.js +0 -7
- package/dist/esm/chunks/chunk.7PP6QHOM.js +0 -7
- package/dist/esm/chunks/chunk.7UXLLUTN.js +0 -7
- package/dist/esm/chunks/chunk.7W2UWAZX.js +0 -7
- package/dist/esm/chunks/chunk.A72W7RW7.js +0 -7
- package/dist/esm/chunks/chunk.AEJGC4YG.js +0 -7
- package/dist/esm/chunks/chunk.AEJGC4YG.js.map +0 -7
- package/dist/esm/chunks/chunk.B46Q3AFP.js +0 -7
- package/dist/esm/chunks/chunk.BFUGFHEH.js +0 -7
- package/dist/esm/chunks/chunk.BLW6QESQ.js +0 -12
- package/dist/esm/chunks/chunk.BLW6QESQ.js.map +0 -7
- package/dist/esm/chunks/chunk.BMQYEYCT.js +0 -7
- package/dist/esm/chunks/chunk.C5IB44HX.js +0 -7
- package/dist/esm/chunks/chunk.CNRFOWHY.js +0 -7
- package/dist/esm/chunks/chunk.DTKFE7YB.js +0 -7
- package/dist/esm/chunks/chunk.EBSBAFCX.js +0 -7
- package/dist/esm/chunks/chunk.EBSBAFCX.js.map +0 -7
- package/dist/esm/chunks/chunk.F2EBSV5Z.js +0 -7
- package/dist/esm/chunks/chunk.F6KM5FO6.js +0 -7
- package/dist/esm/chunks/chunk.FQSL747N.js +0 -7
- package/dist/esm/chunks/chunk.G2BNY5QQ.js +0 -7
- package/dist/esm/chunks/chunk.GS72TBUD.js +0 -7
- package/dist/esm/chunks/chunk.GT3VPSXY.js +0 -7
- package/dist/esm/chunks/chunk.GWJ4QCSW.js +0 -7
- package/dist/esm/chunks/chunk.H7GW57Q6.js +0 -7
- package/dist/esm/chunks/chunk.I3NHK2S3.js +0 -7
- package/dist/esm/chunks/chunk.IEB5KRFQ.js +0 -7
- package/dist/esm/chunks/chunk.IT66AOX7.js +0 -7
- package/dist/esm/chunks/chunk.IT66AOX7.js.map +0 -7
- package/dist/esm/chunks/chunk.IVUK3W34.js +0 -7
- package/dist/esm/chunks/chunk.IW7HALLT.js +0 -7
- package/dist/esm/chunks/chunk.J2KHTGSB.js +0 -7
- package/dist/esm/chunks/chunk.J3B5CWKT.js +0 -7
- package/dist/esm/chunks/chunk.JAWV5Y5T.js +0 -7
- package/dist/esm/chunks/chunk.JVK64JDZ.js +0 -7
- package/dist/esm/chunks/chunk.KFDYMENL.js +0 -7
- package/dist/esm/chunks/chunk.KLPF4CNX.js +0 -7
- package/dist/esm/chunks/chunk.KTYYBWTN.js +0 -7
- package/dist/esm/chunks/chunk.L4Y4RO5O.js +0 -7
- package/dist/esm/chunks/chunk.LCNR2RPT.js +0 -7
- package/dist/esm/chunks/chunk.LMIKNDBS.js +0 -7
- package/dist/esm/chunks/chunk.LOBKFTRM.js +0 -7
- package/dist/esm/chunks/chunk.LOBKFTRM.js.map +0 -7
- package/dist/esm/chunks/chunk.LS7WRRT2.js +0 -7
- package/dist/esm/chunks/chunk.LS7WRRT2.js.map +0 -7
- package/dist/esm/chunks/chunk.LSNAGIIH.js +0 -7
- package/dist/esm/chunks/chunk.LUIKMPQR.js +0 -7
- package/dist/esm/chunks/chunk.LUIKMPQR.js.map +0 -7
- package/dist/esm/chunks/chunk.LXX3YZYS.js +0 -7
- package/dist/esm/chunks/chunk.MZZJY5NX.js +0 -7
- package/dist/esm/chunks/chunk.NG6UZ4OL.js +0 -7
- package/dist/esm/chunks/chunk.NYYXUH3X.js +0 -7
- package/dist/esm/chunks/chunk.OED5UCYT.js +0 -7
- package/dist/esm/chunks/chunk.OUACQISE.js +0 -7
- package/dist/esm/chunks/chunk.OYO5O3NF.js +0 -7
- package/dist/esm/chunks/chunk.P7LC3YYW.js +0 -7
- package/dist/esm/chunks/chunk.PK7R6WDF.js +0 -7
- package/dist/esm/chunks/chunk.PQQVUUHU.js +0 -7
- package/dist/esm/chunks/chunk.PSTGTQVK.js +0 -7
- package/dist/esm/chunks/chunk.Q5Z6F3PI.js +0 -7
- package/dist/esm/chunks/chunk.QFY23EWU.js +0 -7
- package/dist/esm/chunks/chunk.RCSBJQ4G.js +0 -7
- package/dist/esm/chunks/chunk.RCSBJQ4G.js.map +0 -7
- package/dist/esm/chunks/chunk.RDW7Z4W5.js +0 -7
- package/dist/esm/chunks/chunk.RYNQDXFA.js +0 -7
- package/dist/esm/chunks/chunk.RZZBM3AW.js +0 -7
- package/dist/esm/chunks/chunk.SNF35Y6C.js +0 -7
- package/dist/esm/chunks/chunk.SOLF23NC.js +0 -7
- package/dist/esm/chunks/chunk.T34DG7BU.js +0 -7
- package/dist/esm/chunks/chunk.TA3MVDUU.js +0 -7
- package/dist/esm/chunks/chunk.TA3MVDUU.js.map +0 -7
- package/dist/esm/chunks/chunk.THWSN3X4.js +0 -7
- package/dist/esm/chunks/chunk.TLFCQSJN.js +0 -7
- package/dist/esm/chunks/chunk.TZFUKJ24.js +0 -177
- package/dist/esm/chunks/chunk.U5WMRBSC.js +0 -7
- package/dist/esm/chunks/chunk.URCJO73M.js +0 -7
- package/dist/esm/chunks/chunk.VDZ7HBKM.js +0 -7
- package/dist/esm/chunks/chunk.W324TWF2.js +0 -7
- package/dist/esm/chunks/chunk.WQGPIOL6.js +0 -7
- package/dist/esm/chunks/chunk.XDANTL6C.js +0 -7
- package/dist/esm/chunks/chunk.XNCBGWE4.js +0 -7
- package/dist/esm/chunks/chunk.YKZ25J6B.js +0 -7
- package/dist/esm/chunks/chunk.Z2RB75TN.js +0 -7
- package/dist/esm/chunks/chunk.Z7PBGV4K.js +0 -7
- package/dist/esm/chunks/chunk.ZSD7MMVB.js +0 -7
- package/dist/esm/chunks/chunk.ZSD7MMVB.js.map +0 -7
- package/dist/esm/chunks/chunk.ZVJMIBUM.js +0 -7
- package/dist/esm/chunks/chunk.ZVJMIBUM.js.map +0 -7
- package/esm/radio/radio-adapter.d.ts +0 -71
- package/esm/radio/radio-adapter.js +0 -260
- package/esm/radio/radio-constants.d.ts +0 -30
- package/esm/radio/radio-constants.js +0 -36
- package/esm/radio/radio-foundation.d.ts +0 -31
- package/esm/radio/radio-foundation.js +0 -80
- package/esm/radio/radio.d.ts +0 -33
- package/esm/radio/radio.js +0 -75
- package/styles/app-bar/search/_mixins.scss +0 -238
- package/styles/app-bar/search/_variables.scss +0 -18
- package/styles/radio/_mixins.scss +0 -309
- package/styles/radio/_radio-theme.scss +0 -314
- package/styles/radio/radio.scss +0 -19
- /package/dist/esm/chunks/{chunk.DOEG3DWJ.js.map → chunk.42YDA5FH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CTZ3AWDW.js.map → chunk.5EGEZ4IY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SOLF23NC.js.map → chunk.7LOMI6J3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.57PXXJA6.js.map → chunk.AR6YUJUH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.I3NHK2S3.js.map → chunk.BAQYPAUM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HHHBS6FB.js.map → chunk.BC7WB5RG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VD5ZL5ZN.js.map → chunk.EMCY55MX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.E3GVKR4E.js.map → chunk.I7X25KEB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OYO5O3NF.js.map → chunk.IHIKIZIT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2GYZM6ZG.js.map → chunk.JHELTQKA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UWZWXNTW.js.map → chunk.JPI4XCQL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.26E4L52W.js.map → chunk.KDJZN6EW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5C24LZNU.js.map → chunk.KWBYYSH3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DDXIHZFX.js.map → chunk.L45HXBDS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NZKIFXBU.js.map → chunk.MHH26REX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NYYXUH3X.js.map → chunk.MTSWCXTY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7UXLLUTN.js.map → chunk.NBLL7VAA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.T34DG7BU.js.map → chunk.O6MGA3XK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PADPL4L3.js.map → chunk.OUIWXKO2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GHR7T6U2.js.map → chunk.U7S4DJTU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.543K5Y4E.js.map → chunk.URKQICJD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DD35U4AA.js.map → chunk.WMP2OLMG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KVCDAZ6B.js.map → chunk.YTBNAGLS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FB6ZLH6P.js.map → chunk.ZX3CGET2.js.map} +0 -0
- /package/dist/esm/{chunks/chunk.U6FJJGO3.js.map → radio/radio-group/index.js.map} +0 -0
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { IWithFocusable } from '../../core/base/base-focusable-component';
|
|
7
|
+
import { BaseComponent } from '../../core/base/base-component';
|
|
7
8
|
import { ExperimentalFocusOptions, internals } from '../../constants';
|
|
8
|
-
import { IBaseComponent } from '../../core/base/base-component';
|
|
9
9
|
import { IBaseButtonAdapter } from './base-button-adapter';
|
|
10
10
|
import { ButtonType } from './base-button-constants';
|
|
11
11
|
import { BaseButtonFoundation } from './base-button-foundation';
|
|
12
|
-
import {
|
|
13
|
-
export interface IBaseButton extends
|
|
12
|
+
import { IWithLabelAwareness } from '../../core/base/base-label-aware-component';
|
|
13
|
+
export interface IBaseButton extends IWithFocusable, IWithLabelAwareness {
|
|
14
14
|
type: ButtonType;
|
|
15
15
|
disabled: boolean;
|
|
16
16
|
popoverIcon: boolean;
|
|
@@ -25,7 +25,8 @@ export interface IBaseButton extends IBaseComponent {
|
|
|
25
25
|
form: HTMLFormElement | null;
|
|
26
26
|
focus(options?: ExperimentalFocusOptions): void;
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
declare const BaseButtonClass: import("../../constants").AbstractConstructor<import("../../core/base/base-label-aware-component").WithLabelAwarenessContract> & import("../../constants").AbstractConstructor<import("../../core/base/base-focusable-component").WithFocusableContract> & typeof BaseComponent;
|
|
29
|
+
export declare abstract class BaseButton<T extends BaseButtonFoundation<IBaseButtonAdapter>> extends BaseButtonClass implements IBaseButton {
|
|
29
30
|
static readonly formAssociated = true;
|
|
30
31
|
[internals]: ElementInternals;
|
|
31
32
|
protected abstract _foundation: T;
|
|
@@ -51,3 +52,4 @@ export declare abstract class BaseButton<T extends BaseButtonFoundation<IBaseBut
|
|
|
51
52
|
click(): void;
|
|
52
53
|
focus(options: ExperimentalFocusOptions): void;
|
|
53
54
|
}
|
|
55
|
+
export {};
|
|
@@ -7,10 +7,13 @@ import { __decorate } from "tslib";
|
|
|
7
7
|
import { coerceBoolean, FoundationProperty } from '@tylertech/forge-core';
|
|
8
8
|
import { tylIconArrowDropDown } from '@tylertech/tyler-icons/standard';
|
|
9
9
|
import { IconRegistry } from '../../icon/icon-registry';
|
|
10
|
-
import {
|
|
10
|
+
import { WithFocusable } from '../../core/base/base-focusable-component';
|
|
11
|
+
import { BaseComponent } from '../../core/base/base-component';
|
|
11
12
|
import { internals } from '../../constants';
|
|
12
13
|
import { BASE_BUTTON_CONSTANTS } from './base-button-constants';
|
|
13
|
-
|
|
14
|
+
import { WithLabelAwareness } from '../../core/base/base-label-aware-component';
|
|
15
|
+
const BaseButtonClass = WithLabelAwareness(WithFocusable(BaseComponent));
|
|
16
|
+
export class BaseButton extends BaseButtonClass {
|
|
14
17
|
constructor() {
|
|
15
18
|
super();
|
|
16
19
|
IconRegistry.define(tylIconArrowDropDown);
|
|
@@ -10,11 +10,13 @@ export declare const BUTTON_CONSTANTS: {
|
|
|
10
10
|
VARIANT: string;
|
|
11
11
|
PILL: string;
|
|
12
12
|
THEME: string;
|
|
13
|
+
FULL_WIDTH: string;
|
|
13
14
|
};
|
|
14
15
|
attributes: {
|
|
15
16
|
VARIANT: string;
|
|
16
17
|
PILL: string;
|
|
17
18
|
THEME: string;
|
|
19
|
+
FULL_WIDTH: string;
|
|
18
20
|
};
|
|
19
21
|
};
|
|
20
22
|
export type ButtonVariant = 'text' | 'outlined' | 'tonal' | 'filled' | 'raised' | 'link';
|
|
@@ -8,7 +8,8 @@ const elementName = `${COMPONENT_NAME_PREFIX}button`;
|
|
|
8
8
|
const observedAttributes = {
|
|
9
9
|
VARIANT: 'variant',
|
|
10
10
|
PILL: 'pill',
|
|
11
|
-
THEME: 'theme'
|
|
11
|
+
THEME: 'theme',
|
|
12
|
+
FULL_WIDTH: 'full-width'
|
|
12
13
|
};
|
|
13
14
|
const attributes = Object.assign({}, observedAttributes);
|
|
14
15
|
export const BUTTON_CONSTANTS = {
|
|
@@ -10,11 +10,13 @@ export interface IButtonFoundation extends IBaseButtonFoundation {
|
|
|
10
10
|
variant: ButtonVariant;
|
|
11
11
|
pill: boolean;
|
|
12
12
|
theme: ButtonTheme;
|
|
13
|
+
fullWidth: boolean;
|
|
13
14
|
}
|
|
14
15
|
export declare class ButtonFoundation extends BaseButtonFoundation<IButtonAdapter> implements IButtonFoundation {
|
|
15
16
|
private _variant;
|
|
16
17
|
private _pill;
|
|
17
18
|
private _theme;
|
|
19
|
+
private _fullWidth;
|
|
18
20
|
constructor(adapter: IButtonAdapter);
|
|
19
21
|
get variant(): ButtonVariant;
|
|
20
22
|
set variant(value: ButtonVariant);
|
|
@@ -22,4 +24,6 @@ export declare class ButtonFoundation extends BaseButtonFoundation<IButtonAdapte
|
|
|
22
24
|
set pill(value: boolean);
|
|
23
25
|
get theme(): ButtonTheme;
|
|
24
26
|
set theme(value: ButtonTheme);
|
|
27
|
+
get fullWidth(): boolean;
|
|
28
|
+
set fullWidth(value: boolean);
|
|
25
29
|
}
|
|
@@ -11,6 +11,7 @@ export class ButtonFoundation extends BaseButtonFoundation {
|
|
|
11
11
|
this._variant = 'text';
|
|
12
12
|
this._pill = false;
|
|
13
13
|
this._theme = 'primary';
|
|
14
|
+
this._fullWidth = false;
|
|
14
15
|
}
|
|
15
16
|
get variant() {
|
|
16
17
|
return this._variant;
|
|
@@ -46,4 +47,13 @@ export class ButtonFoundation extends BaseButtonFoundation {
|
|
|
46
47
|
this._adapter.setHostAttribute(BUTTON_CONSTANTS.attributes.THEME, this._theme);
|
|
47
48
|
}
|
|
48
49
|
}
|
|
50
|
+
get fullWidth() {
|
|
51
|
+
return this._fullWidth;
|
|
52
|
+
}
|
|
53
|
+
set fullWidth(value) {
|
|
54
|
+
if (this._fullWidth !== value) {
|
|
55
|
+
this._fullWidth = value;
|
|
56
|
+
this._adapter.toggleHostAttribute(BUTTON_CONSTANTS.attributes.FULL_WIDTH, this._fullWidth);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
49
59
|
}
|
package/esm/button/button.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface IButtonComponent extends IBaseButton {
|
|
|
10
10
|
variant: ButtonVariant;
|
|
11
11
|
pill: boolean;
|
|
12
12
|
theme: ButtonTheme;
|
|
13
|
+
fullWidth: boolean;
|
|
13
14
|
}
|
|
14
15
|
declare global {
|
|
15
16
|
interface HTMLElementTagNameMap {
|
|
@@ -28,6 +29,7 @@ declare global {
|
|
|
28
29
|
*
|
|
29
30
|
* @property {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.
|
|
30
31
|
* @property {ButtonVariant} variant - The variant of the button. Defaults to `text`.
|
|
32
|
+
* @property {boolean} fullWidth - Whether or not the button is full-width.
|
|
31
33
|
* @property {boolean} disabled - Whether or not the button is disabled.
|
|
32
34
|
* @property {boolean} popoverIcon - Whether or not the button shows a built-in popover icon.
|
|
33
35
|
* @property {string} name - The name of the button.
|
|
@@ -44,6 +46,7 @@ declare global {
|
|
|
44
46
|
*
|
|
45
47
|
* @attribute {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.
|
|
46
48
|
* @attribute {ButtonVariant} variant - The variant of the button. Defaults to `text`.
|
|
49
|
+
* @attribute {boolean} full-width - Whether or not the button is full-width.
|
|
47
50
|
* @attribute {boolean} disabled - Whether or not the button is disabled.
|
|
48
51
|
* @attribute {boolean} popover-icon - Whether or not the button shows a built-in popover icon.
|
|
49
52
|
* @attribute {string} name - The name of the button.
|
|
@@ -141,4 +144,5 @@ export declare class ButtonComponent extends BaseButton<ButtonFoundation> implem
|
|
|
141
144
|
variant: ButtonVariant;
|
|
142
145
|
pill: boolean;
|
|
143
146
|
theme: ButtonTheme;
|
|
147
|
+
fullWidth: boolean;
|
|
144
148
|
}
|
package/esm/button/button.js
CHANGED
|
@@ -14,7 +14,7 @@ import { ButtonAdapter } from './button-adapter';
|
|
|
14
14
|
import { BUTTON_CONSTANTS } from './button-constants';
|
|
15
15
|
import { ButtonFoundation } from './button-foundation';
|
|
16
16
|
const template = '<template><div class=\"forge-button\" part=\"root\"><slot name=\"start\"></slot><slot></slot><slot name=\"end\"></slot><forge-focus-indicator target=\":host\" part=\"focus-indicator\"></forge-focus-indicator><forge-state-layer target=\":host\" exportparts=\"surface:state-layer\"></forge-state-layer></div></template>';
|
|
17
|
-
const styles = ':host{--_button-display:var(--forge-button-display, inline-flex);--_button-disabled-cursor:var(--forge-button-disabled-cursor, not-allowed)}:host{display:var(--_button-display);position:relative;outline:0;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}.forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-primary, #3f51b5));--_button-text-color:var(--forge-button-text-color, var(--_button-primary-color));--_button-disabled-color:var(--forge-button-disabled, var(--forge-theme-surface-container, #e0e0e0));--_button-padding:var(--forge-button-padding, 8px);--_button-justify:var(--forge-button-justify, center);--_button-shape:var(--forge-button-shape, var(--forge-shape-medium, 4px));--_button-height:var(--forge-button-height, 36px);--_button-min-width:var(--forge-button-min-width, 64px);--_button-spacing:var(--forge-button-spacing, var(--forge-spacing-xsmall, 8px));--_button-border-width:var(--forge-button-border-width, medium);--_button-border-style:var(--forge-button-border-style, none);--_button-border-color:var(--forge-button-border-color, currentColor);--_button-shape-start-start-radius:var(--forge-button-shape-start-start-radius, var(--_button-shape));--_button-shape-start-end-radius:var(--forge-button-shape-start-end-radius, var(--_button-shape));--_button-shape-end-start-radius:var(--forge-button-shape-end-start-radius, var(--_button-shape));--_button-shape-end-end-radius:var(--forge-button-shape-end-end-radius, var(--_button-shape));--_button-padding-block:var(--forge-button-padding-block, var(--_button-padding));--_button-padding-inline:var(--forge-button-padding-inline, var(--_button-padding));--_button-background:var(--forge-button-background, transparent);--_button-hover-background:var(--forge-button-hover-background, var(--_button-background));--_button-active-background:var(--forge-button-active-background, var(--_button-background));--_button-color:var(--forge-button-color, var(--_button-text-color));--_button-icon-size:var(--forge-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));--_button-shadow:var(--forge-button-shadow, none);--_button-hover-shadow:var(--forge-button-hover-shadow, none);--_button-active-shadow:var(--forge-button-active-shadow, none);--_button-cursor:var(--forge-button-cursor, pointer);--_button-transition-duration:var(--forge-button-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-transition-timing:var(--forge-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-outlined-background:var(--forge-button-outlined-background, var(--_button-background));--_button-outlined-color:var(--forge-button-outlined-color, var(--_button-primary-color));--_button-outlined-border-width:var(--forge-button-outlined-border-width, var(--forge-border-thin, 1px));--_button-outlined-border-style:var(--forge-button-outlined-border-style, solid);--_button-outlined-border-color:var(--forge-button-outlined-border-color, var(--_button-primary-color));--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-primary-container, #d1d5ed));--_button-tonal-disabled-background:var(--forge-button-tonal-disabled-background, var(--_button-disabled-color));--_button-tonal-color:var(--forge-button-flat-color, var(--forge-theme-on-primary-container, #222c62));--_button-tonal-disabled-color:var(--forge-button-tonal-disabled-color, var(--_button-disabled-text-color));--_button-filled-background:var(--forge-button-filled-background, var(--_button-primary-color));--_button-filled-disabled-background:var(--forge-button-filled-disabled-background, var(--_button-disabled-color));--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-primary, #ffffff));--_button-filled-disabled-color:var(--forge-button-filled-disabled-color, var(--_button-disabled-text-color));--_button-raised-shadow:var(--forge-button-raised-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));--_button-raised-hover-shadow:var(--forge-button-raised-hover-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));--_button-raised-active-shadow:var(--forge-button-raised-active-shadow, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12));--_button-raised-disabled-shadow:var(--forge-button-raised-disabled-shadow, none);--_button-link-color:var(--forge-button-link-color, var(--_button-primary-color));--_button-link-text-decoration:var(--forge-button-link-text-decoration, underline);--_button-link-height:var(--forge-button-link-height, auto);--_button-link-padding:var(--forge-button-link-padding, 0);--_button-link-line-height:var(--forge-button-link-line-height, normal);--_button-link-width:var(--forge-button-link-width, auto);--_button-link-hover-text-decoration:var(--forge-button-link-hover-text-decoration, none);--_button-link-active-opacity:var(--forge-button-link-active-opacity, 0.65);--_button-link-transition-duration:var(--forge-button-link-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-link-transition-timing:var(--forge-button-link-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-disabled-text-color:var(--forge-button-disabled-text-color, var(--forge-theme-text-low, rgba(0, 0, 0, 0.38)));--_button-disabled-background:var(--forge-button-disabled-background, transparent);--_button-disabled-border-color:var(--forge-button-disabled-border-color, var(--_button-disabled-color));--_button-disabled-shadow:var(--forge-button-disabled-shadow, none);--_button-dense-height:var(--forge-button-dense-height, 24px);--_button-pill-shape:var(--forge-button-pill-shape, var(--forge-shape-full, 9999px));--_button-pill-padding-inline:var(--forge-button-pill-padding-inline, var(--forge-spacing-small, 12px));--_button-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 4px);--_button-text-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 0px);--_button-link-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 2px);--_button-popover-icon-transition-duration:var(--forge-button-popover-icon-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-popover-icon-transition-timing:var(--forge-button-popover-icon-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-popover-icon-open-rotation:var(--forge-button-popover-icon-open-rotation, 180deg)}.forge-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, normal);letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-button-text-decoration,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);position:relative;display:var(--_button-display);-webkit-box-align:center;align-items:center;-webkit-box-pack:var(--_button-justify);justify-content:var(--_button-justify);gap:var(--_button-spacing);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;min-inline-size:var(--_button-min-width);height:var(--_button-height);inline-size:100%;border-width:var(--_button-border-width);border-style:var(--_button-border-style);border-color:var(--_button-border-color);border-start-start-radius:var(--_button-shape-start-start-radius);border-start-end-radius:var(--_button-shape-start-end-radius);border-end-start-radius:var(--_button-shape-end-start-radius);border-end-end-radius:var(--_button-shape-end-end-radius);padding-block:var(--_button-padding-block);padding-inline:var(--_button-padding-inline);-webkit-box-shadow:var(--_button-shadow);box-shadow:var(--_button-shadow);outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;vertical-align:middle;text-decoration:none;white-space:nowrap;background:var(--_button-background);color:var(--_button-color);cursor:var(--_button-cursor);-webkit-transition-property:background,-webkit-box-shadow;transition-property:background,-webkit-box-shadow;transition-property:box-shadow,background;transition-property:box-shadow,background,-webkit-box-shadow;-webkit-transition-duration:var(--_button-transition-duration);transition-duration:var(--_button-transition-duration);-webkit-transition-timing-function:var(--_button-transition-timing);transition-timing-function:var(--_button-transition-timing)}.forge-button::-moz-focus-inner{padding:0;border:0}.forge-button:hover{--_button-shadow:var(--_button-hover-shadow);background:var(--_button-hover-background)}.forge-button:active{--_button-shadow:var(--_button-active-shadow);background:var(--_button-active-background)}.forge-button ::slotted(:is([slot=start],[slot=end])){font-size:var(--_button-icon-size)}a{position:absolute;inset:0;text-decoration:none}forge-state-layer{--forge-state-layer-color:var(--_button-color)}forge-focus-indicator{--forge-focus-indicator-color:var(--_button-primary-color);--forge-focus-indicator-outward-offset:var(--_button-focus-indicator-offset)}:host([theme=secondary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-secondary-container, #fff0c3));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-secondary-container, #8a6804))}:host([theme=tertiary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-tertiary, #3d5afe))}:host([theme=tertiary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-tertiary-container, #d0d7ff));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-tertiary-container, #213189))}:host([theme=success]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-success, #2e7d32))}:host([theme=success][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-success-container, #cde0ce));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-success-container, #19441b))}:host([theme=error]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-error, #b00020))}:host([theme=error][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-error-container, #ecc2c9));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-error-container, #5f0011))}:host([theme=warning]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-warning, #d14900))}:host([theme=warning][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-warning-container, #f4d3c2));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-warning-container, #712700))}:host([theme=info]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-info, #1565c0))}:host([theme=info][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-info-container, #c7daf0));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-info-container, #0b3768))}:host(:is(:not([variant],[variant=text]))) .forge-button{--_button-focus-indicator-offset:var(--_button-text-focus-indicator-offset)}:host(:is([variant=filled],[variant=raised])) .forge-button{--_button-background:var(--_button-filled-background);--_button-color:var(--_button-filled-color)}:host(:is([variant=filled],[variant=raised])) forge-state-layer{--forge-state-layer-color:var(--_button-filled-color)}:host([variant=raised]) .forge-button{--_button-shadow:var(--_button-raised-shadow)}:host([variant=raised]) .forge-button:hover{--_button-shadow:var(--_button-raised-hover-shadow)}:host([variant=raised]) .forge-button:active{--_button-shadow:var(--_button-raised-active-shadow)}:host([variant=tonal]) .forge-button{--_button-background:var(--_button-tonal-background);--_button-color:var(--_button-tonal-color)}:host([variant=tonal]) forge-state-layer{--forge-state-layer-color:var(--_button-tonal-color)}:host([variant=outlined]) .forge-button{--_button-background:var(--_button-outlined-background);--_button-color:var(--_button-outlined-color);--_button-border-width:var(--_button-outlined-border-width);--_button-border-style:var(--_button-outlined-border-style);--_button-border-color:var(--_button-outlined-border-color)}:host([variant=link]) .forge-button{--_button-color:var(--_button-link-color);--_button-height:var(--_button-link-height);--_button-padding:var(--_button-link-padding);--_button-focus-indicator-offset:var(--_button-link-focus-indicator-offset);-webkit-text-decoration:var(--_button-link-text-decoration);text-decoration:var(--_button-link-text-decoration);line-height:var(--_button-link-line-height);-webkit-transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);inline-size:var(--_button-link-width)}:host([variant=link]) .forge-button:hover{-webkit-text-decoration:var(--_button-link-hover-text-decoration);text-decoration:var(--_button-link-hover-text-decoration)}:host([variant=link]) .forge-button:active{opacity:var(--_button-link-active-opacity)}:host([dense]) .forge-button{--_button-height:var(--_button-dense-height)}:host([pill]) .forge-button{--_button-shape:var(--_button-pill-shape);--_button-padding-inline:var(--_button-pill-padding-inline)}:host([pill]) forge-focus-indicator{--forge-focus-indicator-shape:var(--_button-pill-shape)}:host(:not([anchor])[disabled]){cursor:var(--_button-disabled-cursor)}:host(:not([anchor])[disabled]) .forge-button{--_button-background:var(--_button-disabled-background);--_button-color:var(--_button-disabled-text-color);--_button-shadow:var(--_button-disabled-shadow);pointer-events:none}:host(:not([anchor])[variant=outlined][disabled]) .forge-button{--_button-border-color:var(--_button-disabled-border-color)}:host(:not([anchor])[variant=tonal][disabled]) .forge-button{--_button-background:var(--_button-tonal-disabled-background);--_button-color:var(--_button-tonal-disabled-color)}:host(:not([anchor]):is([variant=filled],[variant=raised])[disabled]) .forge-button{--_button-background:var(--_button-filled-disabled-background);--_button-color:var(--_button-filled-disabled-color)}:host(:not([anchor])[variant=raised][disabled]) .forge-button{--_button-shadow:var(--_button-raised-disabled-shadow)}:host([popover-icon]) .forge-button__popover-icon{-webkit-transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing);transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing)}:host([popover-icon][aria-expanded=true]) .forge-button__popover-icon{rotate:var(--_button-popover-icon-open-rotation)}::slotted(forge-circular-progress){--forge-circular-progress-indicator-color:var(--_button-color);--forge-circular-progress-track-color:transparent;--forge-circular-progress-size:1em}';
|
|
17
|
+
const styles = ':host{--_button-display:var(--forge-button-display, inline-flex);--_button-disabled-cursor:var(--forge-button-disabled-cursor, not-allowed)}:host{display:var(--_button-display);position:relative;outline:0;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}.forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-primary, #3f51b5));--_button-text-color:var(--forge-button-text-color, var(--_button-primary-color));--_button-disabled-color:var(--forge-button-disabled, var(--forge-theme-surface-container, #e0e0e0));--_button-padding:var(--forge-button-padding, 8px);--_button-justify:var(--forge-button-justify, center);--_button-shape:var(--forge-button-shape, var(--forge-shape-medium, 4px));--_button-height:var(--forge-button-height, 36px);--_button-min-width:var(--forge-button-min-width, 64px);--_button-spacing:var(--forge-button-spacing, var(--forge-spacing-xsmall, 8px));--_button-border-width:var(--forge-button-border-width, medium);--_button-border-style:var(--forge-button-border-style, none);--_button-border-color:var(--forge-button-border-color, currentColor);--_button-shape-start-start-radius:var(--forge-button-shape-start-start-radius, var(--_button-shape));--_button-shape-start-end-radius:var(--forge-button-shape-start-end-radius, var(--_button-shape));--_button-shape-end-start-radius:var(--forge-button-shape-end-start-radius, var(--_button-shape));--_button-shape-end-end-radius:var(--forge-button-shape-end-end-radius, var(--_button-shape));--_button-padding-block:var(--forge-button-padding-block, var(--_button-padding));--_button-padding-inline:var(--forge-button-padding-inline, var(--_button-padding));--_button-background:var(--forge-button-background, transparent);--_button-hover-background:var(--forge-button-hover-background, var(--_button-background));--_button-active-background:var(--forge-button-active-background, var(--_button-background));--_button-color:var(--forge-button-color, var(--_button-text-color));--_button-icon-size:var(--forge-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));--_button-shadow:var(--forge-button-shadow, none);--_button-hover-shadow:var(--forge-button-hover-shadow, none);--_button-active-shadow:var(--forge-button-active-shadow, none);--_button-cursor:var(--forge-button-cursor, pointer);--_button-transition-duration:var(--forge-button-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-transition-timing:var(--forge-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-outlined-background:var(--forge-button-outlined-background, var(--_button-background));--_button-outlined-color:var(--forge-button-outlined-color, var(--_button-primary-color));--_button-outlined-border-width:var(--forge-button-outlined-border-width, var(--forge-border-thin, 1px));--_button-outlined-border-style:var(--forge-button-outlined-border-style, solid);--_button-outlined-border-color:var(--forge-button-outlined-border-color, var(--_button-primary-color));--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-primary-container, #d1d5ed));--_button-tonal-disabled-background:var(--forge-button-tonal-disabled-background, var(--_button-disabled-color));--_button-tonal-color:var(--forge-button-flat-color, var(--forge-theme-on-primary-container, #222c62));--_button-tonal-disabled-color:var(--forge-button-tonal-disabled-color, var(--_button-disabled-text-color));--_button-filled-background:var(--forge-button-filled-background, var(--_button-primary-color));--_button-filled-disabled-background:var(--forge-button-filled-disabled-background, var(--_button-disabled-color));--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-primary, #ffffff));--_button-filled-disabled-color:var(--forge-button-filled-disabled-color, var(--_button-disabled-text-color));--_button-raised-shadow:var(--forge-button-raised-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));--_button-raised-hover-shadow:var(--forge-button-raised-hover-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));--_button-raised-active-shadow:var(--forge-button-raised-active-shadow, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12));--_button-raised-disabled-shadow:var(--forge-button-raised-disabled-shadow, none);--_button-link-color:var(--forge-button-link-color, var(--_button-primary-color));--_button-link-text-decoration:var(--forge-button-link-text-decoration, underline);--_button-link-height:var(--forge-button-link-height, auto);--_button-link-padding:var(--forge-button-link-padding, 0);--_button-link-line-height:var(--forge-button-link-line-height, normal);--_button-link-width:var(--forge-button-link-width, auto);--_button-link-hover-text-decoration:var(--forge-button-link-hover-text-decoration, none);--_button-link-active-opacity:var(--forge-button-link-active-opacity, 0.65);--_button-link-transition-duration:var(--forge-button-link-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-link-transition-timing:var(--forge-button-link-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-disabled-text-color:var(--forge-button-disabled-text-color, var(--forge-theme-text-low, rgba(0, 0, 0, 0.38)));--_button-disabled-background:var(--forge-button-disabled-background, transparent);--_button-disabled-border-color:var(--forge-button-disabled-border-color, var(--_button-disabled-color));--_button-disabled-shadow:var(--forge-button-disabled-shadow, none);--_button-dense-height:var(--forge-button-dense-height, 24px);--_button-pill-shape:var(--forge-button-pill-shape, var(--forge-shape-full, 9999px));--_button-pill-padding-inline:var(--forge-button-pill-padding-inline, var(--forge-spacing-small, 12px));--_button-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 4px);--_button-text-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 0px);--_button-link-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 2px);--_button-popover-icon-transition-duration:var(--forge-button-popover-icon-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-popover-icon-transition-timing:var(--forge-button-popover-icon-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-popover-icon-open-rotation:var(--forge-button-popover-icon-open-rotation, 180deg)}.forge-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, normal);letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-button-text-decoration,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);position:relative;display:var(--_button-display);-webkit-box-align:center;align-items:center;-webkit-box-pack:var(--_button-justify);justify-content:var(--_button-justify);gap:var(--_button-spacing);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;min-inline-size:var(--_button-min-width);height:var(--_button-height);inline-size:100%;border-width:var(--_button-border-width);border-style:var(--_button-border-style);border-color:var(--_button-border-color);border-start-start-radius:var(--_button-shape-start-start-radius);border-start-end-radius:var(--_button-shape-start-end-radius);border-end-start-radius:var(--_button-shape-end-start-radius);border-end-end-radius:var(--_button-shape-end-end-radius);padding-block:var(--_button-padding-block);padding-inline:var(--_button-padding-inline);-webkit-box-shadow:var(--_button-shadow);box-shadow:var(--_button-shadow);outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;vertical-align:middle;text-decoration:none;white-space:nowrap;background:var(--_button-background);color:var(--_button-color);cursor:var(--_button-cursor);-webkit-transition-property:background,-webkit-box-shadow;transition-property:background,-webkit-box-shadow;transition-property:box-shadow,background;transition-property:box-shadow,background,-webkit-box-shadow;-webkit-transition-duration:var(--_button-transition-duration);transition-duration:var(--_button-transition-duration);-webkit-transition-timing-function:var(--_button-transition-timing);transition-timing-function:var(--_button-transition-timing)}.forge-button::-moz-focus-inner{padding:0;border:0}.forge-button:hover{--_button-shadow:var(--_button-hover-shadow);background:var(--_button-hover-background)}.forge-button:active{--_button-shadow:var(--_button-active-shadow);background:var(--_button-active-background)}.forge-button ::slotted(:is([slot=start],[slot=end])){font-size:var(--_button-icon-size)}a{position:absolute;inset:0;text-decoration:none}forge-state-layer{--forge-state-layer-color:var(--_button-color)}forge-focus-indicator{--forge-focus-indicator-color:var(--_button-primary-color);--forge-focus-indicator-outward-offset:var(--_button-focus-indicator-offset)}:host([theme=secondary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-secondary-container, #fff0c3));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-secondary-container, #8a6804))}:host([theme=tertiary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-tertiary, #3d5afe))}:host([theme=tertiary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-tertiary-container, #d0d7ff));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-tertiary-container, #213189))}:host([theme=success]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-success, #2e7d32))}:host([theme=success][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-success-container, #cde0ce));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-success-container, #19441b))}:host([theme=error]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-error, #b00020))}:host([theme=error][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-error-container, #ecc2c9));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-error-container, #5f0011))}:host([theme=warning]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-warning, #d14900))}:host([theme=warning][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-warning-container, #f4d3c2));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-warning-container, #712700))}:host([theme=info]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-info, #1565c0))}:host([theme=info][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-info-container, #c7daf0));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-info-container, #0b3768))}:host(:is(:not([variant],[variant=text]))) .forge-button{--_button-focus-indicator-offset:var(--_button-text-focus-indicator-offset)}:host(:is([variant=filled],[variant=raised])) .forge-button{--_button-background:var(--_button-filled-background);--_button-color:var(--_button-filled-color)}:host(:is([variant=filled],[variant=raised])) forge-state-layer{--forge-state-layer-color:var(--_button-filled-color)}:host([variant=raised]) .forge-button{--_button-shadow:var(--_button-raised-shadow)}:host([variant=raised]) .forge-button:hover{--_button-shadow:var(--_button-raised-hover-shadow)}:host([variant=raised]) .forge-button:active{--_button-shadow:var(--_button-raised-active-shadow)}:host([variant=tonal]) .forge-button{--_button-background:var(--_button-tonal-background);--_button-color:var(--_button-tonal-color)}:host([variant=tonal]) forge-state-layer{--forge-state-layer-color:var(--_button-tonal-color)}:host([variant=outlined]) .forge-button{--_button-background:var(--_button-outlined-background);--_button-color:var(--_button-outlined-color);--_button-border-width:var(--_button-outlined-border-width);--_button-border-style:var(--_button-outlined-border-style);--_button-border-color:var(--_button-outlined-border-color)}:host([variant=link]) .forge-button{--_button-color:var(--_button-link-color);--_button-height:var(--_button-link-height);--_button-padding:var(--_button-link-padding);--_button-focus-indicator-offset:var(--_button-link-focus-indicator-offset);-webkit-text-decoration:var(--_button-link-text-decoration);text-decoration:var(--_button-link-text-decoration);line-height:var(--_button-link-line-height);-webkit-transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);inline-size:var(--_button-link-width)}:host([variant=link]) .forge-button:hover{-webkit-text-decoration:var(--_button-link-hover-text-decoration);text-decoration:var(--_button-link-hover-text-decoration)}:host([variant=link]) .forge-button:active{opacity:var(--_button-link-active-opacity)}:host([full-width]){width:100%}:host([dense]) .forge-button{--_button-height:var(--_button-dense-height)}:host([pill]) .forge-button{--_button-shape:var(--_button-pill-shape);--_button-padding-inline:var(--_button-pill-padding-inline)}:host([pill]) forge-focus-indicator{--forge-focus-indicator-shape:var(--_button-pill-shape)}:host(:not([anchor])[disabled]){cursor:var(--_button-disabled-cursor)}:host(:not([anchor])[disabled]) .forge-button{--_button-background:var(--_button-disabled-background);--_button-color:var(--_button-disabled-text-color);--_button-shadow:var(--_button-disabled-shadow);pointer-events:none}:host(:not([anchor])[variant=outlined][disabled]) .forge-button{--_button-border-color:var(--_button-disabled-border-color)}:host(:not([anchor])[variant=tonal][disabled]) .forge-button{--_button-background:var(--_button-tonal-disabled-background);--_button-color:var(--_button-tonal-disabled-color)}:host(:not([anchor]):is([variant=filled],[variant=raised])[disabled]) .forge-button{--_button-background:var(--_button-filled-disabled-background);--_button-color:var(--_button-filled-disabled-color)}:host(:not([anchor])[variant=raised][disabled]) .forge-button{--_button-shadow:var(--_button-raised-disabled-shadow)}:host([popover-icon]) .forge-button__popover-icon{-webkit-transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing);transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing)}:host([popover-icon][aria-expanded=true]) .forge-button__popover-icon{rotate:var(--_button-popover-icon-open-rotation)}::slotted(forge-circular-progress){--forge-circular-progress-indicator-color:var(--_button-color);--forge-circular-progress-track-color:transparent;--forge-circular-progress-size:1em}';
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-button
|
|
20
20
|
*
|
|
@@ -27,6 +27,7 @@ const styles = ':host{--_button-display:var(--forge-button-display, inline-flex)
|
|
|
27
27
|
*
|
|
28
28
|
* @property {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.
|
|
29
29
|
* @property {ButtonVariant} variant - The variant of the button. Defaults to `text`.
|
|
30
|
+
* @property {boolean} fullWidth - Whether or not the button is full-width.
|
|
30
31
|
* @property {boolean} disabled - Whether or not the button is disabled.
|
|
31
32
|
* @property {boolean} popoverIcon - Whether or not the button shows a built-in popover icon.
|
|
32
33
|
* @property {string} name - The name of the button.
|
|
@@ -43,6 +44,7 @@ const styles = ':host{--_button-display:var(--forge-button-display, inline-flex)
|
|
|
43
44
|
*
|
|
44
45
|
* @attribute {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.
|
|
45
46
|
* @attribute {ButtonVariant} variant - The variant of the button. Defaults to `text`.
|
|
47
|
+
* @attribute {boolean} full-width - Whether or not the button is full-width.
|
|
46
48
|
* @attribute {boolean} disabled - Whether or not the button is disabled.
|
|
47
49
|
* @attribute {boolean} popover-icon - Whether or not the button shows a built-in popover icon.
|
|
48
50
|
* @attribute {string} name - The name of the button.
|
|
@@ -155,6 +157,9 @@ let ButtonComponent = class ButtonComponent extends BaseButton {
|
|
|
155
157
|
case BUTTON_CONSTANTS.observedAttributes.THEME:
|
|
156
158
|
this.theme = newValue;
|
|
157
159
|
return;
|
|
160
|
+
case BUTTON_CONSTANTS.observedAttributes.FULL_WIDTH:
|
|
161
|
+
this.fullWidth = coerceBoolean(newValue);
|
|
162
|
+
return;
|
|
158
163
|
}
|
|
159
164
|
super.attributeChangedCallback(name, oldValue, newValue);
|
|
160
165
|
}
|
|
@@ -168,6 +173,9 @@ __decorate([
|
|
|
168
173
|
__decorate([
|
|
169
174
|
FoundationProperty()
|
|
170
175
|
], ButtonComponent.prototype, "theme", void 0);
|
|
176
|
+
__decorate([
|
|
177
|
+
FoundationProperty()
|
|
178
|
+
], ButtonComponent.prototype, "fullWidth", void 0);
|
|
171
179
|
ButtonComponent = __decorate([
|
|
172
180
|
CustomElement({
|
|
173
181
|
name: BUTTON_CONSTANTS.elementName,
|
package/esm/constants.d.ts
CHANGED
|
@@ -3,18 +3,30 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import type { IBaseComponent } from './core/base/base-component';
|
|
6
7
|
export declare const COMPONENT_NAME_PREFIX = "forge-";
|
|
7
8
|
export declare const KEYSTROKE_DEBOUNCE_THRESHOLD = 500;
|
|
8
9
|
export declare const ICON_CLASS_NAME = "tyler-icons";
|
|
9
10
|
export declare const CDN_BASE_URL = "https://cdn.forge.tylertech.com/";
|
|
11
|
+
/** A method symbol that gets the submitted value of a form-associated component. */
|
|
12
|
+
export declare const getFormValue: unique symbol;
|
|
13
|
+
/** A method symbol that gets the form state of a form-associated component. */
|
|
14
|
+
export declare const getFormState: unique symbol;
|
|
15
|
+
/** A method symbol that gets the validation message of a form-associated component. */
|
|
16
|
+
export declare const getValidationMessage: unique symbol;
|
|
10
17
|
/** A property symbol that references the `ElementInternals` instance of an element. */
|
|
11
18
|
export declare const internals: unique symbol;
|
|
19
|
+
/** A property symbol that sets the type of an internal input element used to create validations messages */
|
|
20
|
+
export declare const inputType: unique symbol;
|
|
12
21
|
/** A property symbol that indicates whether or not a `Focusable` element can be focused. */
|
|
13
22
|
export declare const isFocusable: unique symbol;
|
|
23
|
+
/** A method symbol that sets default ARIA on the `ElementInternals` instance of an element if
|
|
24
|
+
* supported or sprouts attributes if not. */
|
|
25
|
+
export declare const setDefaultAria: unique symbol;
|
|
14
26
|
export type Theme = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'error' | 'info';
|
|
15
27
|
export type Density = 'small' | 'medium' | 'large';
|
|
16
|
-
export type
|
|
17
|
-
export type
|
|
28
|
+
export type AbstractConstructor<T> = abstract new (...args: any[]) => T;
|
|
29
|
+
export type MixinBase<TBase = IBaseComponent> = AbstractConstructor<TBase>;
|
|
18
30
|
/**
|
|
19
31
|
* The `focusVisible` property is an experimental feature that is not yet supported by all browsers.
|
|
20
32
|
*
|
package/esm/constants.js
CHANGED
|
@@ -7,7 +7,18 @@ export const COMPONENT_NAME_PREFIX = 'forge-';
|
|
|
7
7
|
export const KEYSTROKE_DEBOUNCE_THRESHOLD = 500;
|
|
8
8
|
export const ICON_CLASS_NAME = 'tyler-icons';
|
|
9
9
|
export const CDN_BASE_URL = 'https://cdn.forge.tylertech.com/';
|
|
10
|
+
/** A method symbol that gets the submitted value of a form-associated component. */
|
|
11
|
+
export const getFormValue = Symbol('getFormValue');
|
|
12
|
+
/** A method symbol that gets the form state of a form-associated component. */
|
|
13
|
+
export const getFormState = Symbol('getFormState');
|
|
14
|
+
/** A method symbol that gets the validation message of a form-associated component. */
|
|
15
|
+
export const getValidationMessage = Symbol('getValidityMessage');
|
|
10
16
|
/** A property symbol that references the `ElementInternals` instance of an element. */
|
|
11
17
|
export const internals = Symbol('ElementInternals');
|
|
18
|
+
/** A property symbol that sets the type of an internal input element used to create validations messages */
|
|
19
|
+
export const inputType = Symbol('inputType');
|
|
12
20
|
/** A property symbol that indicates whether or not a `Focusable` element can be focused. */
|
|
13
21
|
export const isFocusable = Symbol('isFocusable');
|
|
22
|
+
/** A method symbol that sets default ARIA on the `ElementInternals` instance of an element if
|
|
23
|
+
* supported or sprouts attributes if not. */
|
|
24
|
+
export const setDefaultAria = Symbol('setDefaultAria');
|
|
@@ -8,6 +8,7 @@ export interface IBaseAdapter<T extends HTMLElement = HTMLElement> {
|
|
|
8
8
|
readonly hostElement: T;
|
|
9
9
|
readonly isConnected: boolean;
|
|
10
10
|
removeHostAttribute(name: string): void;
|
|
11
|
+
hasHostAttribute(name: string): boolean;
|
|
11
12
|
getHostAttribute(name: string): string | null;
|
|
12
13
|
setHostAttribute(name: string, value?: string): void;
|
|
13
14
|
toggleHostAttribute(name: string, hasAttribute: boolean, value?: string): void;
|
|
@@ -17,6 +18,7 @@ export interface IBaseAdapter<T extends HTMLElement = HTMLElement> {
|
|
|
17
18
|
composed?: boolean;
|
|
18
19
|
}): boolean;
|
|
19
20
|
emitHostEvent(type: string, data?: any, bubble?: boolean, cancelable?: boolean): boolean;
|
|
21
|
+
dispatchHostEvent<U extends Event>(event: U): boolean;
|
|
20
22
|
addHostListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
|
|
21
23
|
removeHostListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
|
|
22
24
|
addWindowListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -32,6 +34,7 @@ export declare class BaseAdapter<T extends IBaseComponent> implements IBaseAdapt
|
|
|
32
34
|
protected _component: T;
|
|
33
35
|
constructor(_component: T);
|
|
34
36
|
get hostElement(): T;
|
|
37
|
+
hasHostAttribute(name: string): boolean;
|
|
35
38
|
getHostAttribute(name: string): string | null;
|
|
36
39
|
setHostAttribute(name: string, value?: string): void;
|
|
37
40
|
removeHostAttribute(name: string): void;
|
|
@@ -42,6 +45,7 @@ export declare class BaseAdapter<T extends IBaseComponent> implements IBaseAdapt
|
|
|
42
45
|
composed?: boolean;
|
|
43
46
|
}): boolean;
|
|
44
47
|
emitHostEvent(type: string, data?: any, bubble?: boolean, cancelable?: boolean): boolean;
|
|
48
|
+
dispatchHostEvent<U extends Event>(event: U): boolean;
|
|
45
49
|
toggleHostListener(event: string, listener: EventListener, value: boolean, options?: boolean | AddEventListenerOptions): void;
|
|
46
50
|
addHostListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
|
|
47
51
|
removeHostListener(event: string, callback: (event: Event) => void, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -11,6 +11,9 @@ export class BaseAdapter {
|
|
|
11
11
|
get hostElement() {
|
|
12
12
|
return this._component;
|
|
13
13
|
}
|
|
14
|
+
hasHostAttribute(name) {
|
|
15
|
+
return this._component.hasAttribute(name);
|
|
16
|
+
}
|
|
14
17
|
getHostAttribute(name) {
|
|
15
18
|
return this._component.getAttribute(name);
|
|
16
19
|
}
|
|
@@ -40,6 +43,9 @@ export class BaseAdapter {
|
|
|
40
43
|
emitHostEvent(type, data = null, bubble = true, cancelable) {
|
|
41
44
|
return emitEvent(this._component, type, data, bubble, cancelable);
|
|
42
45
|
}
|
|
46
|
+
dispatchHostEvent(event) {
|
|
47
|
+
return !this._component.dispatchEvent(event);
|
|
48
|
+
}
|
|
43
49
|
toggleHostListener(event, listener, value, options) {
|
|
44
50
|
if (value) {
|
|
45
51
|
this.addHostListener(event, listener, options);
|
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
export interface IBaseComponent extends HTMLElement {
|
|
7
|
+
initializedCallback?(): void;
|
|
8
|
+
connectedCallback?(): void;
|
|
9
|
+
disconnectedCallback?(): void;
|
|
10
|
+
attributeChangedCallback?(name: string, oldValue: string, newValue: string): void;
|
|
7
11
|
}
|
|
8
12
|
export declare abstract class BaseComponent extends HTMLElement implements IBaseComponent {
|
|
9
13
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { internals, MixinBase, setDefaultAria, AbstractConstructor } from '../../constants';
|
|
7
|
+
import { ARIAAttribute, ARIAMixinStrict, DefaultAriaOptions } from '../utils/a11y-utils';
|
|
8
|
+
import { IBaseComponent } from './base-component';
|
|
9
|
+
/**
|
|
10
|
+
* A component with attached Element Internals.
|
|
11
|
+
*/
|
|
12
|
+
export interface IWithElementInternals extends IBaseComponent {
|
|
13
|
+
/**
|
|
14
|
+
* The Element Internals of the component.
|
|
15
|
+
*/
|
|
16
|
+
readonly [internals]: ElementInternals;
|
|
17
|
+
/**
|
|
18
|
+
* Sets the default ARIA of the component using Element Internals if supported or sprouting
|
|
19
|
+
* ARIA attributes if not.
|
|
20
|
+
*
|
|
21
|
+
* @param properties The ARIA properties and values to set.
|
|
22
|
+
* @param options Whether or not to overwrite existing ARIA attributes. This only takes effect
|
|
23
|
+
* if Element Internals are not supported and a new attribute will be sprouted.
|
|
24
|
+
*/
|
|
25
|
+
[setDefaultAria](properties: Partial<ARIAMixinStrict>, options?: DefaultAriaOptions): void;
|
|
26
|
+
}
|
|
27
|
+
export declare abstract class WithElementInternalsContract {
|
|
28
|
+
readonly [internals]: ElementInternals;
|
|
29
|
+
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
30
|
+
[setDefaultAria](properties: Partial<ARIAMixinStrict>, options?: DefaultAriaOptions): void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Mixes in Element Internals functionality into a base component.
|
|
34
|
+
*
|
|
35
|
+
* @param base The base component to mix into.
|
|
36
|
+
* @param observedAria An array of ARIA attributes to observe for changes. If an observed attribute
|
|
37
|
+
* is removed, the default ARIA will be restored. This is only used if Element Internals is not
|
|
38
|
+
* supported.
|
|
39
|
+
* @returns The mixed-in base component.
|
|
40
|
+
*/
|
|
41
|
+
export declare function WithElementInternals<TBase extends MixinBase>(base: TBase, observedAria?: ARIAAttribute[]): AbstractConstructor<WithElementInternalsContract> & TBase;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { internals, setDefaultAria } from '../../constants';
|
|
7
|
+
import { ariaAttributeToProperty, restoreDefaultAria as restoreDefaultAriaUtil, setDefaultAria as setDefaultAriaUtil } from '../utils/a11y-utils';
|
|
8
|
+
import { supportsElementInternalsAria } from '../utils/feature-detection';
|
|
9
|
+
/**
|
|
10
|
+
* Mixes in Element Internals functionality into a base component.
|
|
11
|
+
*
|
|
12
|
+
* @param base The base component to mix into.
|
|
13
|
+
* @param observedAria An array of ARIA attributes to observe for changes. If an observed attribute
|
|
14
|
+
* is removed, the default ARIA will be restored. This is only used if Element Internals is not
|
|
15
|
+
* supported.
|
|
16
|
+
* @returns The mixed-in base component.
|
|
17
|
+
*/
|
|
18
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
19
|
+
export function WithElementInternals(base, observedAria) {
|
|
20
|
+
class ElementInternalsComponent extends base {
|
|
21
|
+
constructor(...args) {
|
|
22
|
+
super(...args);
|
|
23
|
+
this[internals] = this.attachInternals();
|
|
24
|
+
}
|
|
25
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
26
|
+
var _a;
|
|
27
|
+
(_a = super.attributeChangedCallback) === null || _a === void 0 ? void 0 : _a.call(this, name, oldValue, newValue);
|
|
28
|
+
// If Element Internals is supported our default ARIA is never set as an attribute, so
|
|
29
|
+
// there's nothing to do here.
|
|
30
|
+
if (!observedAria || supportsElementInternalsAria()) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
// If the observed attribute is removed, restore the default ARIA.
|
|
34
|
+
if (observedAria.includes(name) && !newValue) {
|
|
35
|
+
const ariaPropertyName = ariaAttributeToProperty(name);
|
|
36
|
+
this._restoreDefaultAria(ariaPropertyName);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
[setDefaultAria](properties, options) {
|
|
40
|
+
setDefaultAriaUtil(this, this[internals], properties, options);
|
|
41
|
+
}
|
|
42
|
+
_restoreDefaultAria(name) {
|
|
43
|
+
restoreDefaultAriaUtil(this, name);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return ElementInternalsComponent;
|
|
47
|
+
}
|
|
@@ -11,28 +11,24 @@
|
|
|
11
11
|
* Adapted and influenced from [Material Web](https://github.com/material-components/material-web).
|
|
12
12
|
* The original source code can be found at: [GitHub](https://github.com/material-components/material-web/blob/main/labs/behaviors/focusable.ts)
|
|
13
13
|
*/
|
|
14
|
-
import { isFocusable, MixinBase
|
|
15
|
-
import {
|
|
14
|
+
import { AbstractConstructor, isFocusable, MixinBase } from '../../constants';
|
|
15
|
+
import { IBaseComponent } from './base-component';
|
|
16
16
|
/**
|
|
17
17
|
* An element that can enable and disable `tabindex` focusability.
|
|
18
18
|
*/
|
|
19
|
-
export interface
|
|
19
|
+
export interface IWithFocusable extends IBaseComponent {
|
|
20
20
|
/**
|
|
21
21
|
* Whether or not the element can be focused. Defaults to true. Set to false
|
|
22
22
|
* to disable focusing (unless a user has set a `tabindex`).
|
|
23
23
|
*/
|
|
24
24
|
[isFocusable]: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare abstract class WithFocusableContract {
|
|
27
|
+
get [isFocusable](): boolean;
|
|
28
|
+
set [isFocusable](value: boolean);
|
|
25
29
|
connectedCallback(): void;
|
|
26
30
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
27
31
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Mixes in focusable functionality into a base component.
|
|
30
|
-
*
|
|
31
|
-
* @param base The base component to mix into.
|
|
32
|
-
* @returns The mixed-in base component.
|
|
33
|
-
*/
|
|
34
|
-
export declare function WithFocusable<T extends MixinBase<BaseComponent>>(base: T): MixinReturn<T, IBaseFocusableComponent>;
|
|
35
|
-
declare const BaseFocusableComponent_base: MixinReturn<typeof BaseComponent, IBaseFocusableComponent>;
|
|
36
32
|
/**
|
|
37
33
|
* Provides focusable functionality for an element.
|
|
38
34
|
*
|
|
@@ -43,7 +39,8 @@ declare const BaseFocusableComponent_base: MixinReturn<typeof BaseComponent, IBa
|
|
|
43
39
|
* but a user sets `tabindex="0"`, it will still be focusable.
|
|
44
40
|
*
|
|
45
41
|
* To remove user overrides and restore focus control to the element, remove the `tabindex` attribute.
|
|
42
|
+
*
|
|
43
|
+
* @param base The base component to mix into.
|
|
44
|
+
* @returns The mixed-in base component.
|
|
46
45
|
*/
|
|
47
|
-
export declare
|
|
48
|
-
}
|
|
49
|
-
export {};
|
|
46
|
+
export declare function WithFocusable<TBase extends MixinBase>(base: TBase): AbstractConstructor<WithFocusableContract> & TBase;
|
|
@@ -12,17 +12,25 @@
|
|
|
12
12
|
* The original source code can be found at: [GitHub](https://github.com/material-components/material-web/blob/main/labs/behaviors/focusable.ts)
|
|
13
13
|
*/
|
|
14
14
|
import { isFocusable } from '../../constants';
|
|
15
|
-
import { BaseComponent } from './base-component';
|
|
16
15
|
const _privateIsFocusable = Symbol('privateIsFocusable');
|
|
17
16
|
const _externalTabIndex = Symbol('externalTabIndex');
|
|
18
17
|
const _isUpdatingTabIndex = Symbol('isUpdatingTabIndex');
|
|
19
18
|
const _updateTabIndex = Symbol('updateTabIndex');
|
|
20
19
|
/**
|
|
21
|
-
*
|
|
20
|
+
* Provides focusable functionality for an element.
|
|
21
|
+
*
|
|
22
|
+
* Elements can enable and disable their focusability with the `isFocusable`
|
|
23
|
+
* symbol property. **Use this instead of changing `tabIndex` directly.**
|
|
24
|
+
*
|
|
25
|
+
* This will preserve externally-set tabindices. If an element sets `tabindex="-1"`,
|
|
26
|
+
* but a user sets `tabindex="0"`, it will still be focusable.
|
|
27
|
+
*
|
|
28
|
+
* To remove user overrides and restore focus control to the element, remove the `tabindex` attribute.
|
|
22
29
|
*
|
|
23
30
|
* @param base The base component to mix into.
|
|
24
31
|
* @returns The mixed-in base component.
|
|
25
32
|
*/
|
|
33
|
+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
26
34
|
export function WithFocusable(base) {
|
|
27
35
|
var _a, _b, _c;
|
|
28
36
|
class FocusableComponent extends base {
|
|
@@ -48,10 +56,14 @@ export function WithFocusable(base) {
|
|
|
48
56
|
this[_updateTabIndex]();
|
|
49
57
|
}
|
|
50
58
|
connectedCallback() {
|
|
59
|
+
var _d;
|
|
60
|
+
(_d = super.connectedCallback) === null || _d === void 0 ? void 0 : _d.call(this);
|
|
51
61
|
// This must be set in the connectedCallback to avoid sprouting a tabindex attribute on the host from the ctor
|
|
52
62
|
this[isFocusable] = true;
|
|
53
63
|
}
|
|
54
64
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
65
|
+
var _d;
|
|
66
|
+
(_d = super.attributeChangedCallback) === null || _d === void 0 ? void 0 : _d.call(this, name, oldValue, newValue);
|
|
55
67
|
if (name !== 'tabindex' || this[_isUpdatingTabIndex]) {
|
|
56
68
|
return;
|
|
57
69
|
}
|
|
@@ -75,16 +87,3 @@ export function WithFocusable(base) {
|
|
|
75
87
|
}
|
|
76
88
|
return FocusableComponent;
|
|
77
89
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Provides focusable functionality for an element.
|
|
80
|
-
*
|
|
81
|
-
* Elements can enable and disable their focusability with the `isFocusable`
|
|
82
|
-
* symbol property. **Use this instead of changing `tabIndex` directly.**
|
|
83
|
-
*
|
|
84
|
-
* This will preserve externally-set tabindices. If an element sets `tabindex="-1"`,
|
|
85
|
-
* but a user sets `tabindex="0"`, it will still be focusable.
|
|
86
|
-
*
|
|
87
|
-
* To remove user overrides and restore focus control to the element, remove the `tabindex` attribute.
|
|
88
|
-
*/
|
|
89
|
-
export class BaseFocusableComponent extends WithFocusable(BaseComponent) {
|
|
90
|
-
}
|