@tylertech/forge 3.0.0-next.21 → 3.0.0-next.23
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 +33600 -39264
- package/dist/dialog/forge-dialog-utils.css +1 -1
- 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.PDDBNHVU.js → chunk.2GUWHBUU.js} +2 -2
- package/dist/esm/chunks/{chunk.PDDBNHVU.js.map → chunk.2GUWHBUU.js.map} +2 -2
- package/dist/esm/chunks/chunk.2W23MOPP.js +7 -0
- package/dist/esm/chunks/chunk.2W23MOPP.js.map +7 -0
- package/dist/esm/chunks/{chunk.OSBNFFCI.js → chunk.32APLNN2.js} +2 -2
- package/dist/esm/chunks/chunk.32APLNN2.js.map +7 -0
- package/dist/esm/chunks/chunk.37B332ZK.js +7 -0
- package/dist/esm/chunks/{chunk.SOKORSUV.js.map → chunk.37B332ZK.js.map} +3 -3
- package/dist/esm/chunks/chunk.3II7OT2I.js +7 -0
- package/dist/esm/chunks/chunk.3II7OT2I.js.map +7 -0
- package/dist/esm/chunks/{chunk.IZRURH7C.js → chunk.3KAKJGUS.js} +2 -2
- package/dist/esm/chunks/chunk.3PMONORO.js +7 -0
- package/dist/esm/chunks/chunk.3PMONORO.js.map +7 -0
- package/dist/esm/chunks/chunk.473WRJ5G.js +7 -0
- package/dist/esm/chunks/{chunk.USQEIRST.js → chunk.5MB6CTBA.js} +2 -2
- package/dist/esm/chunks/{chunk.YS5JZHJ6.js → chunk.5QIWLZG3.js} +2 -2
- package/dist/esm/chunks/chunk.5SUJNEC7.js +7 -0
- package/dist/esm/chunks/chunk.5SUJNEC7.js.map +7 -0
- package/dist/esm/chunks/{chunk.47U6GVGZ.js → chunk.5UOX22ML.js} +2 -2
- package/dist/esm/chunks/{chunk.4NABD6XG.js → chunk.6VS3LYAF.js} +2 -2
- package/dist/esm/chunks/chunk.72BKSMAZ.js +7 -0
- package/dist/esm/chunks/{chunk.3TIBP6QT.js.map → chunk.72BKSMAZ.js.map} +3 -3
- package/dist/esm/chunks/chunk.77C7S7ZS.js +7 -0
- package/dist/esm/chunks/chunk.77C7S7ZS.js.map +7 -0
- package/dist/esm/chunks/chunk.7AAICE77.js +7 -0
- package/dist/esm/chunks/chunk.7AAICE77.js.map +7 -0
- package/dist/esm/chunks/chunk.7IPAW4D2.js +7 -0
- package/dist/esm/chunks/{chunk.MCR34SZQ.js.map → chunk.7IPAW4D2.js.map} +1 -1
- package/dist/esm/chunks/chunk.7RLY2O3H.js +7 -0
- package/dist/esm/chunks/chunk.7RLY2O3H.js.map +7 -0
- package/dist/esm/chunks/chunk.7Y3BUR7Q.js +7 -0
- package/dist/esm/chunks/{chunk.3U222LE4.js.map → chunk.7Y3BUR7Q.js.map} +1 -1
- package/dist/esm/chunks/{chunk.AOSBUJWW.js → chunk.A7BCLPP4.js} +2 -2
- package/dist/esm/chunks/chunk.AFWWND2C.js +7 -0
- package/dist/esm/chunks/chunk.AFWWND2C.js.map +7 -0
- package/dist/esm/chunks/{chunk.7UBIT4NP.js → chunk.AG6IRMLZ.js} +2 -2
- package/dist/esm/chunks/{chunk.A4UH52SA.js → chunk.AGLI4WR4.js} +2 -2
- package/dist/esm/chunks/chunk.AIJK3CTV.js +12 -0
- package/dist/esm/chunks/chunk.AIJK3CTV.js.map +7 -0
- package/dist/esm/chunks/{chunk.WTUXAH7Z.js → chunk.AOVXNX7P.js} +2 -2
- package/dist/esm/chunks/{chunk.AN2E2SSN.js → chunk.ASLHRT3N.js} +2 -2
- package/dist/esm/chunks/chunk.BEFAXPXJ.js +15 -0
- package/dist/esm/chunks/{chunk.EO3HELQ2.js.map → chunk.BEFAXPXJ.js.map} +1 -1
- package/dist/esm/chunks/{chunk.CBLUXYH2.js → chunk.BHE6Z5Y2.js} +2 -2
- package/dist/esm/chunks/{chunk.2WRAXA3H.js → chunk.BQ52JYLA.js} +2 -2
- package/dist/esm/chunks/chunk.BQZKOIAW.js +7 -0
- package/dist/esm/chunks/chunk.BQZKOIAW.js.map +7 -0
- package/dist/esm/chunks/chunk.BV7EAQST.js +7 -0
- package/dist/esm/chunks/chunk.BV7EAQST.js.map +7 -0
- package/dist/esm/chunks/{chunk.ROMRJIFR.js → chunk.CE35CVDV.js} +2 -2
- package/dist/esm/chunks/{chunk.ZPXMKY72.js → chunk.CEGBMUSR.js} +2 -2
- package/dist/esm/chunks/{chunk.GBGGUYTE.js → chunk.CFAI4K3E.js} +2 -2
- package/dist/esm/chunks/{chunk.ZIGVO6FN.js → chunk.CGFSMACZ.js} +2 -2
- package/dist/esm/chunks/chunk.CLYGTLXN.js +7 -0
- package/dist/esm/chunks/chunk.CLYGTLXN.js.map +7 -0
- package/dist/esm/chunks/chunk.DJSHVUEM.js +18 -0
- package/dist/esm/chunks/{chunk.MGLWXAZO.js.map → chunk.DJSHVUEM.js.map} +4 -4
- package/dist/esm/chunks/chunk.DKERDHXH.js +7 -0
- package/dist/esm/chunks/{chunk.JVWJHSPM.js.map → chunk.DKERDHXH.js.map} +1 -1
- package/dist/esm/chunks/{chunk.UEYPCCFG.js → chunk.ENUKGA2U.js} +2 -2
- package/dist/esm/chunks/chunk.EO3GP6DP.js +7 -0
- package/dist/esm/chunks/chunk.EO3GP6DP.js.map +7 -0
- package/dist/esm/chunks/chunk.FLBYVCQ6.js +7 -0
- package/dist/esm/chunks/chunk.FLBYVCQ6.js.map +7 -0
- package/dist/esm/chunks/chunk.FLF5RTYO.js +7 -0
- package/dist/esm/chunks/chunk.FLF5RTYO.js.map +7 -0
- package/dist/esm/chunks/chunk.GBAVJILM.js +7 -0
- package/dist/esm/chunks/chunk.GBAVJILM.js.map +7 -0
- package/dist/esm/chunks/chunk.GG7IQL46.js +7 -0
- package/dist/esm/chunks/{chunk.HBAC6E7O.js.map → chunk.GG7IQL46.js.map} +1 -1
- package/dist/esm/chunks/chunk.GIENHEMN.js +7 -0
- package/dist/esm/chunks/chunk.GIENHEMN.js.map +7 -0
- package/dist/esm/chunks/chunk.GRYO5XP2.js +7 -0
- package/dist/esm/chunks/chunk.GRYO5XP2.js.map +7 -0
- package/dist/esm/chunks/{chunk.FOSKVNVV.js → chunk.H4VQXV2H.js} +2 -2
- package/dist/esm/chunks/{chunk.FOSKVNVV.js.map → chunk.H4VQXV2H.js.map} +2 -2
- package/dist/esm/chunks/{chunk.GA6AO6FJ.js → chunk.H5RW3A4M.js} +2 -2
- package/dist/esm/chunks/chunk.HD2SLIL2.js +7 -0
- package/dist/esm/chunks/{chunk.V7ILFIOR.js.map → chunk.HD2SLIL2.js.map} +1 -1
- package/dist/esm/chunks/chunk.HG4IDRAC.js +7 -0
- package/dist/esm/chunks/chunk.HG4IDRAC.js.map +7 -0
- package/dist/esm/chunks/{chunk.CSOKFDFQ.js → chunk.HSADKCGS.js} +2 -2
- package/dist/esm/chunks/chunk.I7YON2TC.js +7 -0
- package/dist/esm/chunks/chunk.I7YON2TC.js.map +7 -0
- package/dist/esm/chunks/chunk.IEABOPNB.js +7 -0
- package/dist/esm/chunks/{chunk.22C7GQLX.js → chunk.IL4S57WO.js} +2 -2
- package/dist/esm/chunks/{chunk.HMJODLAS.js → chunk.IQYOLMPG.js} +2 -2
- package/dist/esm/chunks/{chunk.QG5EYBS3.js → chunk.J2Y5KPON.js} +2 -2
- package/dist/esm/chunks/{chunk.QG5EYBS3.js.map → chunk.J2Y5KPON.js.map} +2 -2
- package/dist/esm/chunks/{chunk.GTKYO6VB.js → chunk.JGURMVW7.js} +2 -2
- package/dist/esm/chunks/{chunk.YXHMD73U.js → chunk.K6GJNDTY.js} +2 -2
- package/dist/esm/chunks/{chunk.XYBVD3IE.js → chunk.KCCW4AMU.js} +2 -2
- package/dist/esm/chunks/{chunk.XYBVD3IE.js.map → chunk.KCCW4AMU.js.map} +2 -2
- package/dist/esm/chunks/{chunk.QUWEAFGI.js → chunk.KEOLH7G3.js} +2 -2
- package/dist/esm/chunks/chunk.KLU54MDQ.js +7 -0
- package/dist/esm/chunks/chunk.KLU54MDQ.js.map +7 -0
- package/dist/esm/chunks/chunk.KO6ODCZC.js +7 -0
- package/dist/esm/chunks/chunk.KO6ODCZC.js.map +7 -0
- package/dist/esm/chunks/chunk.L4QSPQDE.js +7 -0
- package/dist/esm/chunks/{chunk.DCCFF327.js.map → chunk.L4QSPQDE.js.map} +2 -2
- package/dist/esm/chunks/{chunk.BIQTNLIF.js → chunk.LNTTU2GL.js} +2 -2
- package/dist/esm/chunks/{chunk.7IJUN75W.js → chunk.LY2Z2Z7S.js} +2 -2
- package/dist/esm/chunks/{chunk.7IJUN75W.js.map → chunk.LY2Z2Z7S.js.map} +3 -3
- package/dist/esm/chunks/{chunk.2AM2BKEO.js → chunk.MFQRXVKO.js} +2 -2
- package/dist/esm/chunks/chunk.MFS7AVW6.js +7 -0
- package/dist/esm/chunks/chunk.MFS7AVW6.js.map +7 -0
- package/dist/esm/chunks/{chunk.JLSFTWPE.js → chunk.MTIPIEXA.js} +2 -2
- package/dist/esm/chunks/chunk.MX4JX4GT.js +7 -0
- package/dist/esm/chunks/{chunk.UOD3A7M4.js.map → chunk.MX4JX4GT.js.map} +1 -1
- package/dist/esm/chunks/chunk.NEQX2QVX.js +7 -0
- package/dist/esm/chunks/chunk.NEQX2QVX.js.map +7 -0
- package/dist/esm/chunks/chunk.NWVQ5HK2.js +7 -0
- package/dist/esm/chunks/{chunk.BETICEYY.js.map → chunk.NWVQ5HK2.js.map} +2 -2
- package/dist/esm/chunks/chunk.O5WAQQNR.js +7 -0
- package/dist/esm/chunks/{chunk.ZYKP23JP.js.map → chunk.O5WAQQNR.js.map} +2 -2
- package/dist/esm/chunks/{chunk.JSTCCUKZ.js → chunk.OEI35LFU.js} +2 -2
- package/dist/esm/chunks/chunk.OJ7JO4O6.js +7 -0
- package/dist/esm/chunks/chunk.OJ7JO4O6.js.map +7 -0
- package/dist/esm/chunks/{chunk.6GSVB5NB.js → chunk.OLFOVKQG.js} +2 -2
- package/dist/esm/chunks/chunk.OLFOVKQG.js.map +7 -0
- package/dist/esm/chunks/{chunk.IWVAI6XM.js → chunk.OOAJHLW4.js} +2 -2
- package/dist/esm/chunks/chunk.OOAJHLW4.js.map +7 -0
- package/dist/esm/chunks/chunk.OQHDHS2C.js +7 -0
- package/dist/esm/chunks/chunk.OQHDHS2C.js.map +7 -0
- package/dist/esm/chunks/{chunk.2537XOFQ.js → chunk.OREDK5MJ.js} +2 -2
- package/dist/esm/chunks/chunk.OVXEOEJF.js +7 -0
- package/dist/esm/chunks/chunk.OVXEOEJF.js.map +7 -0
- package/dist/esm/chunks/chunk.PC6TW5XE.js +7 -0
- package/dist/esm/chunks/chunk.PC6TW5XE.js.map +7 -0
- package/dist/esm/chunks/chunk.QCPV5DEG.js +7 -0
- package/dist/esm/chunks/{chunk.R3AWIPPK.js → chunk.QIZBZGYT.js} +2 -2
- package/dist/esm/chunks/{chunk.2XPAYTK4.js → chunk.QKTK5XUE.js} +2 -2
- package/dist/esm/chunks/chunk.QLGJS37N.js +7 -0
- package/dist/esm/chunks/chunk.QLGJS37N.js.map +7 -0
- package/dist/esm/chunks/{chunk.R66CYS27.js → chunk.QTY25OTN.js} +2 -2
- package/dist/esm/chunks/chunk.QUXMLWBJ.js +7 -0
- package/dist/esm/chunks/{chunk.BEUQVZKZ.js.map → chunk.QUXMLWBJ.js.map} +1 -1
- package/dist/esm/chunks/{chunk.BSV27GU7.js → chunk.QVATEY5S.js} +2 -2
- package/dist/esm/chunks/{chunk.FRTSXX33.js → chunk.RSYEG2RW.js} +2 -2
- package/dist/esm/chunks/{chunk.A6BIUNPW.js → chunk.RXBLU4OJ.js} +2 -2
- package/dist/esm/chunks/{chunk.FBDRM4YN.js → chunk.S7KEO2CH.js} +2 -2
- package/dist/esm/chunks/{chunk.XU3YSZPA.js → chunk.SQ3AZAHF.js} +2 -2
- package/dist/esm/chunks/{chunk.35MHQH7Z.js → chunk.SROEDYPL.js} +2 -2
- package/dist/esm/chunks/{chunk.SHBDQPPH.js → chunk.SZOZIJZI.js} +2 -2
- package/dist/esm/chunks/chunk.T7NWP7DB.js +7 -0
- package/dist/esm/chunks/chunk.T7NWP7DB.js.map +7 -0
- package/dist/esm/chunks/{chunk.PXRGQHWR.js → chunk.TQWZDM6T.js} +2 -2
- package/dist/esm/chunks/chunk.TSSZQPLE.js +7 -0
- package/dist/esm/chunks/{chunk.5UGN5FYV.js.map → chunk.TSSZQPLE.js.map} +2 -2
- package/dist/esm/chunks/chunk.U6J4VHU6.js +7 -0
- package/dist/esm/chunks/{chunk.STSAE2XP.js.map → chunk.U6J4VHU6.js.map} +1 -1
- package/dist/esm/chunks/{chunk.6JVMCBCR.js → chunk.UKBE2FMZ.js} +2 -2
- package/dist/esm/chunks/{chunk.MDDX4MJU.js → chunk.UPSXYWPD.js} +2 -2
- package/dist/esm/chunks/{chunk.MDDX4MJU.js.map → chunk.UPSXYWPD.js.map} +2 -2
- package/dist/esm/chunks/chunk.USTVZ6MZ.js +7 -0
- package/dist/esm/chunks/chunk.USTVZ6MZ.js.map +7 -0
- package/dist/esm/chunks/chunk.V6KUOCAR.js +7 -0
- package/dist/esm/chunks/chunk.V6KUOCAR.js.map +7 -0
- package/dist/esm/chunks/chunk.VGIRVTBJ.js +7 -0
- package/dist/esm/chunks/chunk.VGIRVTBJ.js.map +7 -0
- package/dist/esm/chunks/{chunk.4AEQ7KVU.js → chunk.VJZ7VDG5.js} +2 -2
- package/dist/esm/chunks/chunk.VL5RWSAV.js +7 -0
- package/dist/esm/chunks/chunk.VL5RWSAV.js.map +7 -0
- package/dist/esm/chunks/chunk.VRSPT7WX.js +7 -0
- package/dist/esm/chunks/{chunk.UQQQSJVM.js.map → chunk.VRSPT7WX.js.map} +3 -3
- package/dist/esm/chunks/chunk.W4HANHUO.js +7 -0
- package/dist/esm/chunks/{chunk.2W276VOR.js → chunk.WMJSYYXQ.js} +2 -2
- package/dist/esm/chunks/chunk.WXVVOFNK.js +7 -0
- package/dist/esm/chunks/chunk.WXVVOFNK.js.map +7 -0
- package/dist/esm/chunks/chunk.X77NKT6Z.js +7 -0
- package/dist/esm/chunks/chunk.X77NKT6Z.js.map +7 -0
- package/dist/esm/chunks/chunk.XZ23XHFE.js +7 -0
- package/dist/esm/chunks/chunk.XZ23XHFE.js.map +7 -0
- package/dist/esm/chunks/chunk.YNCTSMT6.js +7 -0
- package/dist/esm/chunks/chunk.YNCTSMT6.js.map +7 -0
- package/dist/esm/chunks/{chunk.YNXWVL4B.js → chunk.YPNSK2CK.js} +2 -2
- package/dist/esm/chunks/chunk.YRAEFQJW.js +7 -0
- package/dist/esm/chunks/{chunk.XAZ6EDIZ.js.map → chunk.YRAEFQJW.js.map} +3 -3
- package/dist/esm/chunks/chunk.YWJVZVZX.js +7 -0
- package/dist/esm/chunks/{chunk.6XLTVIUD.js → chunk.ZA7JY3AY.js} +2 -2
- package/dist/esm/chunks/chunk.ZG6YF2HI.js +7 -0
- package/dist/esm/chunks/{chunk.R6VPRRTT.js.map → chunk.ZG6YF2HI.js.map} +1 -1
- 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/deprecated/button/index.js +1 -1
- package/dist/esm/deprecated/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/{field-next → field}/base/index.js +1 -1
- package/dist/esm/field/index.js +7 -0
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/floating-action-button/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/overlay/index.js +1 -1
- package/dist/esm/page-state/index.js +1 -1
- package/dist/esm/paginator/index.js +1 -1
- package/dist/esm/popover/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 +1 -1
- package/dist/esm/radio/radio-group/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/dist/forge-core.css +1 -1
- package/dist/forge-dark.css +1 -1
- package/dist/forge.css +1 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.d.ts +6 -6
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +18 -10
- package/esm/app-bar/profile-button/app-bar-profile-button-foundation.d.ts +3 -3
- package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +13 -17
- package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +4 -4
- package/esm/app-bar/profile-button/app-bar-profile-button.js +3 -3
- package/esm/autocomplete/autocomplete-adapter.d.ts +6 -2
- package/esm/autocomplete/autocomplete-adapter.js +27 -23
- package/esm/autocomplete/autocomplete-constants.d.ts +2 -2
- package/esm/autocomplete/autocomplete-constants.js +1 -2
- package/esm/autocomplete/autocomplete-foundation.js +3 -5
- package/esm/autocomplete/autocomplete.js +2 -2
- package/esm/backdrop/backdrop-constants.d.ts +10 -13
- package/esm/backdrop/backdrop-constants.js +12 -17
- package/esm/backdrop/backdrop.d.ts +17 -29
- package/esm/backdrop/backdrop.js +79 -50
- package/esm/backdrop/index.d.ts +0 -2
- package/esm/backdrop/index.js +0 -2
- package/esm/bottom-sheet/bottom-sheet-adapter.d.ts +2 -2
- package/esm/bottom-sheet/bottom-sheet-adapter.js +12 -5
- package/esm/bottom-sheet/bottom-sheet-foundation.js +1 -1
- package/esm/bottom-sheet/bottom-sheet.js +2 -2
- package/esm/busy-indicator/busy-indicator-adapter.d.ts +2 -6
- package/esm/busy-indicator/busy-indicator-adapter.js +8 -6
- package/esm/busy-indicator/busy-indicator-foundation.js +1 -1
- package/esm/button/base/base-button-foundation.js +2 -1
- package/esm/calendar/calendar-constants.d.ts +1 -1
- package/esm/calendar/calendar-constants.js +1 -1
- package/esm/calendar/calendar-dropdown/calendar-dropdown.d.ts +6 -4
- package/esm/calendar/calendar-dropdown/calendar-dropdown.js +21 -25
- package/esm/calendar/calendar-menu/calendar-menu-constants.d.ts +1 -1
- package/esm/calendar/calendar-menu/calendar-menu-constants.js +1 -1
- package/esm/calendar/calendar-menu/calendar-menu.js +3 -3
- package/esm/calendar/calendar.js +3 -3
- package/esm/card/card-constants.d.ts +2 -5
- package/esm/card/card-constants.js +4 -10
- package/esm/card/card.d.ts +10 -5
- package/esm/card/card.js +14 -16
- package/esm/checkbox/checkbox-adapter.d.ts +0 -34
- package/esm/checkbox/checkbox-adapter.js +10 -105
- package/esm/checkbox/checkbox-constants.d.ts +13 -4
- package/esm/checkbox/checkbox-constants.js +8 -11
- package/esm/checkbox/checkbox-foundation.d.ts +5 -11
- package/esm/checkbox/checkbox-foundation.js +24 -35
- package/esm/checkbox/checkbox.d.ts +24 -24
- package/esm/checkbox/checkbox.js +65 -83
- package/esm/chip-field/chip-field-adapter.d.ts +48 -22
- package/esm/chip-field/chip-field-adapter.js +130 -30
- package/esm/chip-field/chip-field-component-delegate.js +1 -1
- package/esm/chip-field/chip-field-constants.d.ts +18 -16
- package/esm/chip-field/chip-field-constants.js +19 -20
- package/esm/chip-field/chip-field-foundation.d.ts +26 -16
- package/esm/chip-field/chip-field-foundation.js +128 -74
- package/esm/chip-field/chip-field.d.ts +9 -6
- package/esm/chip-field/chip-field.js +24 -11
- package/esm/chips/chip/chip.js +1 -1
- package/esm/constants.d.ts +2 -0
- package/esm/constants.js +2 -0
- package/esm/core/base/base-adapter.d.ts +1 -0
- package/esm/core/controllers/move-controller.d.ts +32 -0
- package/esm/core/controllers/move-controller.js +40 -0
- package/esm/core/mixins/interactions/moveable/with-moveable.d.ts +30 -0
- package/esm/core/mixins/interactions/moveable/with-moveable.js +131 -0
- package/esm/core/utils/dismissible-stack.d.ts +6 -0
- package/esm/core/utils/dismissible-stack.js +9 -0
- package/esm/core/utils/feature-detection.d.ts +5 -0
- package/esm/core/utils/feature-detection.js +7 -0
- package/esm/core/utils/index.d.ts +2 -0
- package/esm/core/utils/index.js +2 -0
- package/esm/core/utils/svg-utils.d.ts +1 -1
- package/esm/core/utils/svg-utils.js +2 -2
- package/esm/date-picker/date-picker.d.ts +0 -2
- package/esm/date-picker/date-picker.js +2 -4
- package/esm/date-range-picker/date-range-picker-adapter.js +1 -1
- package/esm/date-range-picker/date-range-picker-component-delegate.d.ts +1 -1
- package/esm/date-range-picker/date-range-picker.js +2 -2
- package/esm/dialog/dialog-adapter.d.ts +44 -62
- package/esm/dialog/dialog-adapter.js +107 -135
- package/esm/dialog/dialog-constants.d.ts +51 -28
- package/esm/dialog/dialog-constants.js +36 -33
- package/esm/dialog/dialog-foundation.d.ts +59 -75
- package/esm/dialog/dialog-foundation.js +218 -360
- package/esm/dialog/dialog.d.ts +127 -46
- package/esm/dialog/dialog.js +161 -60
- package/esm/drawer/modal-drawer/modal-drawer-adapter.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer-foundation.js +5 -6
- package/esm/{field-next → field}/base/base-field-foundation.js +14 -0
- package/esm/{field-next/field-foundation.d.ts → field/base/with-base-field.d.ts} +24 -39
- package/esm/field/base/with-base-field.js +210 -0
- package/esm/field/field-adapter.d.ts +49 -92
- package/esm/field/field-adapter.js +114 -154
- package/esm/field/field-constants.d.ts +82 -30
- package/esm/field/field-constants.js +51 -29
- package/esm/field/field-foundation.d.ts +78 -48
- package/esm/field/field-foundation.js +171 -273
- package/esm/field/field.d.ts +202 -24
- package/esm/field/field.js +267 -37
- package/esm/focus-indicator/focus-indicator-constants.d.ts +5 -0
- package/esm/focus-indicator/focus-indicator-constants.js +7 -2
- package/esm/focus-indicator/focus-indicator-foundation.d.ts +5 -0
- package/esm/focus-indicator/focus-indicator-foundation.js +21 -3
- package/esm/focus-indicator/focus-indicator.d.ts +5 -0
- package/esm/focus-indicator/focus-indicator.js +9 -7
- package/esm/icon/icon-adapter.d.ts +4 -2
- package/esm/icon/icon-adapter.js +13 -9
- package/esm/icon/icon-constants.d.ts +14 -2
- package/esm/icon/icon-constants.js +3 -1
- package/esm/icon/icon-foundation.d.ts +6 -2
- package/esm/icon/icon-foundation.js +50 -18
- package/esm/icon/icon-registry.d.ts +8 -2
- package/esm/icon/icon-registry.js +15 -2
- package/esm/icon/icon-utils.d.ts +6 -3
- package/esm/icon/icon-utils.js +6 -7
- package/esm/icon/icon.d.ts +35 -4
- package/esm/icon/icon.js +44 -18
- package/esm/icon/index.js +0 -6
- package/esm/icon-button/icon-button-component-delegate.d.ts +2 -2
- package/esm/index.d.ts +1 -4
- package/esm/index.js +2 -9
- package/esm/label-value/index.d.ts +0 -2
- package/esm/label-value/index.js +0 -2
- package/esm/label-value/label-value-constants.d.ts +7 -12
- package/esm/label-value/label-value-constants.js +7 -17
- package/esm/label-value/label-value.d.ts +44 -16
- package/esm/label-value/label-value.js +78 -36
- package/esm/list/list/list.d.ts +2 -3
- package/esm/list/list/list.js +4 -5
- package/esm/list/list-item/list-item.d.ts +1 -0
- package/esm/list/list-item/list-item.js +2 -1
- package/esm/list-dropdown/list-dropdown-adapter.d.ts +3 -1
- package/esm/list-dropdown/list-dropdown-adapter.js +24 -9
- package/esm/list-dropdown/list-dropdown-constants.d.ts +6 -5
- package/esm/list-dropdown/list-dropdown-foundation.d.ts +2 -2
- package/esm/list-dropdown/list-dropdown-foundation.js +3 -5
- package/esm/list-dropdown/list-dropdown-utils.d.ts +3 -3
- package/esm/list-dropdown/list-dropdown-utils.js +11 -19
- package/esm/list-dropdown/list-dropdown.d.ts +2 -2
- package/esm/list-dropdown/list-dropdown.js +1 -1
- package/esm/menu/menu-adapter.d.ts +4 -2
- package/esm/menu/menu-adapter.js +8 -2
- package/esm/menu/menu-foundation.d.ts +11 -10
- package/esm/menu/menu-foundation.js +9 -6
- package/esm/menu/menu.d.ts +8 -7
- package/esm/menu/menu.js +2 -2
- package/esm/overlay/overlay-adapter.d.ts +0 -1
- package/esm/overlay/overlay-adapter.js +1 -2
- package/esm/paginator/paginator.js +1 -1
- package/esm/popover/popover-adapter.d.ts +9 -0
- package/esm/popover/popover-adapter.js +41 -3
- package/esm/popover/popover-constants.d.ts +17 -0
- package/esm/popover/popover-constants.js +11 -6
- package/esm/popover/popover-foundation.d.ts +7 -1
- package/esm/popover/popover-foundation.js +35 -7
- package/esm/popover/popover.d.ts +15 -1
- package/esm/popover/popover.js +28 -15
- package/esm/radio/core/radio-group-manager.d.ts +18 -1
- package/esm/radio/core/radio-group-manager.js +27 -6
- package/esm/radio/radio/radio-adapter.js +4 -2
- package/esm/radio/radio/radio-component-delegate.d.ts +38 -0
- package/esm/radio/radio/radio-component-delegate.js +88 -1
- package/esm/radio/radio/radio-constants.d.ts +11 -0
- package/esm/radio/radio/radio-constants.js +3 -1
- package/esm/radio/radio/radio-foundation.js +3 -2
- package/esm/radio/radio/radio.d.ts +8 -3
- package/esm/radio/radio/radio.js +18 -19
- package/esm/radio/radio-group/radio-group-constants.d.ts +3 -0
- package/esm/radio/radio-group/radio-group-constants.js +3 -1
- package/esm/radio/radio-group/radio-group.js +5 -5
- package/esm/scaffold/scaffold-constants.d.ts +6 -0
- package/esm/scaffold/scaffold-constants.js +7 -1
- package/esm/scaffold/scaffold.d.ts +30 -2
- package/esm/scaffold/scaffold.js +43 -4
- package/esm/select/core/base-select-adapter.d.ts +5 -3
- package/esm/select/core/base-select-adapter.js +10 -9
- package/esm/select/core/base-select-constants.d.ts +11 -0
- package/esm/select/core/base-select-constants.js +1 -0
- package/esm/select/core/base-select-foundation.js +3 -3
- package/esm/select/core/base-select.d.ts +3 -3
- package/esm/select/select/select-adapter.d.ts +14 -60
- package/esm/select/select/select-adapter.js +52 -111
- package/esm/select/select/select-constants.d.ts +16 -14
- package/esm/select/select/select-constants.js +8 -16
- package/esm/select/select/select-foundation.d.ts +12 -58
- package/esm/select/select/select-foundation.js +45 -240
- package/esm/select/select/select.d.ts +17 -27
- package/esm/select/select/select.js +54 -62
- package/esm/select/select-dropdown/select-dropdown-adapter.d.ts +2 -2
- package/esm/select/select-dropdown/select-dropdown-adapter.js +1 -1
- package/esm/select/select-dropdown/select-dropdown.d.ts +0 -2
- package/esm/select/select-dropdown/select-dropdown.js +2 -4
- package/esm/slider/slider.d.ts +2 -2
- package/esm/slider/slider.js +2 -2
- package/esm/split-view/split-view/split-view.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel-adapter.d.ts +5 -10
- package/esm/split-view/split-view-panel/split-view-panel-adapter.js +7 -15
- package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +3 -3
- package/esm/split-view/split-view-panel/split-view-panel-constants.js +3 -3
- package/esm/split-view/split-view-panel/split-view-panel-foundation.js +0 -1
- package/esm/split-view/split-view-panel/split-view-panel-utils.js +2 -2
- package/esm/split-view/split-view-panel/split-view-panel.d.ts +0 -2
- package/esm/split-view/split-view-panel/split-view-panel.js +6 -6
- package/esm/stepper/step/step-adapter.d.ts +2 -9
- package/esm/stepper/step/step-adapter.js +3 -18
- package/esm/stepper/step/step-constants.js +21 -21
- package/esm/stepper/step/step-foundation.js +0 -2
- package/esm/stepper/step/step.d.ts +53 -0
- package/esm/stepper/step/step.js +60 -3
- package/esm/stepper/stepper/stepper-constants.js +9 -9
- package/esm/stepper/stepper/stepper.js +1 -1
- package/esm/switch/switch-adapter.d.ts +0 -32
- package/esm/switch/switch-adapter.js +15 -107
- package/esm/switch/switch-component-delegate.js +1 -1
- package/esm/switch/switch-constants.d.ts +24 -14
- package/esm/switch/switch-constants.js +11 -14
- package/esm/switch/switch-foundation.d.ts +5 -11
- package/esm/switch/switch-foundation.js +25 -31
- package/esm/switch/switch.d.ts +19 -19
- package/esm/switch/switch.js +59 -81
- package/esm/text-field/text-field-adapter.d.ts +2 -2
- package/esm/text-field/text-field-adapter.js +5 -2
- package/esm/text-field/text-field-foundation.d.ts +2 -2
- package/esm/text-field/text-field-foundation.js +2 -2
- package/esm/text-field/text-field.d.ts +1 -1
- package/esm/text-field/text-field.js +2 -2
- package/esm/time-picker/time-picker-adapter.d.ts +6 -2
- package/esm/time-picker/time-picker-adapter.js +7 -3
- package/esm/time-picker/time-picker-foundation.js +10 -10
- package/esm/time-picker/time-picker.js +2 -2
- package/esm/toast/toast-adapter.d.ts +18 -69
- package/esm/toast/toast-adapter.js +24 -121
- package/esm/toast/toast-constants.d.ts +25 -36
- package/esm/toast/toast-constants.js +20 -40
- package/esm/toast/toast-foundation.d.ts +22 -37
- package/esm/toast/toast-foundation.js +92 -92
- package/esm/toast/toast.d.ts +83 -24
- package/esm/toast/toast.js +126 -29
- package/esm/tooltip/tooltip-adapter.d.ts +1 -0
- package/esm/tooltip/tooltip-foundation.js +3 -0
- package/esm/tooltip/tooltip.d.ts +3 -1
- package/esm/tooltip/tooltip.js +4 -0
- package/package.json +1 -6
- package/styles/backdrop/_animations.scss +24 -0
- package/styles/backdrop/_core.scss +41 -0
- package/styles/backdrop/_token-utils.scss +30 -0
- package/styles/backdrop/backdrop.scss +38 -11
- package/{esm/radio/radio-group/radio-group-component-delegate.js → styles/backdrop/index.scss} +1 -0
- package/styles/bottom-sheet/_mixins.scss +3 -8
- package/styles/bottom-sheet/bottom-sheet.scss +0 -4
- package/styles/calendar/calendar-menu/calendar-menu.scss +1 -1
- package/styles/calendar/calendar.scss +1 -1
- package/styles/card/_core.scss +35 -0
- package/styles/card/_token-utils.scss +30 -0
- package/styles/card/card.scss +37 -3
- package/{esm/radio/radio-group/radio-group-component-delegate.d.ts → styles/card/index.scss} +1 -0
- package/styles/checkbox/_core.scss +9 -20
- package/styles/checkbox/checkbox.scss +2 -8
- package/styles/chip-field/_core.scss +21 -17
- package/styles/chip-field/_token-utils.scss +30 -0
- package/styles/chip-field/chip-field.scss +68 -3
- package/{dist/popup/forge-popup.css → styles/chip-field/index.scss} +1 -1
- package/styles/chips/chip/_core.scss +1 -1
- package/styles/core/styles/tokens/backdrop/_tokens.scss +29 -0
- package/styles/core/styles/tokens/card/_tokens.scss +33 -0
- package/styles/core/styles/tokens/checkbox/_tokens.scss +5 -4
- package/styles/core/styles/tokens/chip-field/_tokens.scss +16 -0
- package/styles/core/styles/tokens/dialog/_tokens.scss +82 -0
- package/styles/core/styles/tokens/field/_tokens.scss +3 -1
- package/styles/core/styles/tokens/icon/_tokens.scss +20 -0
- package/styles/core/styles/tokens/label-value/_tokens.scss +34 -0
- package/styles/core/styles/tokens/list/list/_tokens.scss +2 -3
- package/styles/core/styles/tokens/list/list-item/_tokens.scss +7 -4
- package/styles/core/styles/tokens/popover/_tokens.scss +29 -7
- package/styles/core/styles/tokens/radio/_tokens.scss +1 -1
- package/styles/core/styles/tokens/scaffold/_tokens.scss +18 -0
- package/styles/core/styles/tokens/select/_tokens.scss +18 -0
- package/styles/core/styles/tokens/stepper/step/_tokens.scss +62 -0
- package/styles/core/styles/tokens/switch/_tokens.scss +1 -1
- package/styles/core/styles/tokens/toast/_tokens.scss +39 -0
- package/styles/dialog/_animations.scss +82 -0
- package/styles/dialog/_core.scss +310 -0
- package/styles/dialog/_token-utils.scss +30 -0
- package/styles/dialog/dialog.scss +356 -6
- package/styles/dialog/forge-dialog-utils.scss +23 -6
- package/styles/dialog/index.scss +7 -0
- package/styles/{field-next → field}/_core.layout.scss +6 -4
- package/styles/field/_core.scss +200 -50
- package/styles/{field-next → field}/_core.shape.scss +5 -0
- package/styles/{field-next → field}/_core.variant.scss +1 -0
- package/styles/{field-next → field}/field.scss +39 -12
- package/styles/forge-core.scss +2 -6
- package/styles/forge.scss +0 -4
- package/styles/icon/_core.scss +27 -0
- package/styles/icon/_token-utils.scss +30 -0
- package/styles/icon/icon.scss +27 -12
- package/styles/icon/index.scss +6 -0
- package/styles/label-value/_core.scss +85 -0
- package/styles/label-value/_token-utils.scss +30 -0
- package/styles/label-value/index.scss +6 -0
- package/styles/label-value/label-value.scss +71 -3
- package/styles/list/list/_core.scss +6 -2
- package/styles/list/list/list.scss +4 -0
- package/styles/list/list-item/_core.scss +3 -0
- package/styles/popover/_animations.scss +30 -0
- package/styles/popover/_core.scss +43 -6
- package/styles/popover/popover.scss +227 -170
- package/styles/scaffold/_core.scss +98 -0
- package/styles/scaffold/_token-utils.scss +30 -0
- package/styles/scaffold/index.scss +6 -0
- package/styles/scaffold/scaffold.scss +85 -5
- package/{dist/esm/chunks/chunk.WF2MFLG4.js → styles/select/index.scss} +1 -1
- package/styles/select/select/_core.scss +31 -15
- package/styles/select/select/_token-utils.scss +31 -0
- package/styles/select/select/select.scss +50 -8
- package/styles/split-view/split-view/split-view.scss +0 -1
- package/styles/split-view/split-view-panel/_mixins.scss +1 -0
- package/styles/split-view/split-view-panel/split-view-panel.scss +7 -1
- package/styles/stepper/step/_core.scss +391 -0
- package/styles/stepper/step/_token-utils.scss +31 -0
- package/styles/stepper/step/step.scss +261 -81
- package/styles/stepper/stepper/_core.scss +49 -0
- package/styles/stepper/stepper/stepper.scss +38 -4
- package/styles/switch/_core.scss +3 -2
- package/styles/theme/_theme-dark.scss +8 -8
- package/styles/toast/_animations.scss +42 -0
- package/styles/toast/_core.scss +73 -0
- package/styles/toast/_token-utils.scss +30 -0
- package/styles/toast/index.scss +6 -0
- package/styles/toast/toast.scss +173 -6
- package/styles/utils/_mixins-core.scss +5 -9
- package/dist/dialog/forge-dialog.css +0 -6
- package/dist/esm/chunks/chunk.24MZM3AY.js +0 -7
- package/dist/esm/chunks/chunk.24MZM3AY.js.map +0 -7
- package/dist/esm/chunks/chunk.3L77JY5H.js +0 -7
- package/dist/esm/chunks/chunk.3TIBP6QT.js +0 -7
- package/dist/esm/chunks/chunk.3U222LE4.js +0 -7
- package/dist/esm/chunks/chunk.45PPQY45.js +0 -177
- package/dist/esm/chunks/chunk.45PPQY45.js.map +0 -7
- package/dist/esm/chunks/chunk.4UU6PWR2.js +0 -7
- package/dist/esm/chunks/chunk.4UU6PWR2.js.map +0 -7
- package/dist/esm/chunks/chunk.5A34DJLZ.js +0 -7
- package/dist/esm/chunks/chunk.5A34DJLZ.js.map +0 -7
- package/dist/esm/chunks/chunk.5UGN5FYV.js +0 -7
- package/dist/esm/chunks/chunk.5UZ2DEW3.js +0 -7
- package/dist/esm/chunks/chunk.5UZ2DEW3.js.map +0 -7
- package/dist/esm/chunks/chunk.656X22EF.js +0 -7
- package/dist/esm/chunks/chunk.656X22EF.js.map +0 -7
- package/dist/esm/chunks/chunk.66YURKP2.js +0 -7
- package/dist/esm/chunks/chunk.66YURKP2.js.map +0 -7
- package/dist/esm/chunks/chunk.6GSVB5NB.js.map +0 -7
- package/dist/esm/chunks/chunk.AFJ7QEVI.js +0 -7
- package/dist/esm/chunks/chunk.AFJ7QEVI.js.map +0 -7
- package/dist/esm/chunks/chunk.BETICEYY.js +0 -7
- package/dist/esm/chunks/chunk.BEUQVZKZ.js +0 -7
- package/dist/esm/chunks/chunk.BMQAVBWZ.js +0 -7
- package/dist/esm/chunks/chunk.BMQAVBWZ.js.map +0 -7
- package/dist/esm/chunks/chunk.CIUPY66Y.js +0 -7
- package/dist/esm/chunks/chunk.CIUPY66Y.js.map +0 -7
- package/dist/esm/chunks/chunk.CSCZRSDT.js +0 -7
- package/dist/esm/chunks/chunk.CSCZRSDT.js.map +0 -7
- package/dist/esm/chunks/chunk.CWBDPBYO.js +0 -7
- package/dist/esm/chunks/chunk.CWBDPBYO.js.map +0 -7
- package/dist/esm/chunks/chunk.D7RH43XD.js +0 -7
- package/dist/esm/chunks/chunk.D7RH43XD.js.map +0 -7
- package/dist/esm/chunks/chunk.DCCFF327.js +0 -7
- package/dist/esm/chunks/chunk.EO3HELQ2.js +0 -15
- package/dist/esm/chunks/chunk.FB4MXEIW.js +0 -7
- package/dist/esm/chunks/chunk.FB4MXEIW.js.map +0 -7
- package/dist/esm/chunks/chunk.G2HRYIIZ.js +0 -7
- package/dist/esm/chunks/chunk.G2HRYIIZ.js.map +0 -7
- package/dist/esm/chunks/chunk.G3GTO5ZC.js +0 -7
- package/dist/esm/chunks/chunk.G3GTO5ZC.js.map +0 -7
- package/dist/esm/chunks/chunk.GL2H6QOP.js +0 -7
- package/dist/esm/chunks/chunk.GL2H6QOP.js.map +0 -7
- package/dist/esm/chunks/chunk.HBAC6E7O.js +0 -7
- package/dist/esm/chunks/chunk.HYTFCFP6.js +0 -7
- package/dist/esm/chunks/chunk.HYTFCFP6.js.map +0 -7
- package/dist/esm/chunks/chunk.IM36A2ZI.js +0 -7
- package/dist/esm/chunks/chunk.IM36A2ZI.js.map +0 -7
- package/dist/esm/chunks/chunk.IWVAI6XM.js.map +0 -7
- package/dist/esm/chunks/chunk.JCEKCW4B.js +0 -7
- package/dist/esm/chunks/chunk.JCEKCW4B.js.map +0 -7
- package/dist/esm/chunks/chunk.JVWJHSPM.js +0 -7
- package/dist/esm/chunks/chunk.KDUH2DUE.js +0 -7
- package/dist/esm/chunks/chunk.KRKKMTXR.js +0 -7
- package/dist/esm/chunks/chunk.KRKKMTXR.js.map +0 -7
- package/dist/esm/chunks/chunk.LKA5HQQY.js +0 -7
- package/dist/esm/chunks/chunk.LKA5HQQY.js.map +0 -7
- package/dist/esm/chunks/chunk.MC3UAHWS.js +0 -7
- package/dist/esm/chunks/chunk.MC3UAHWS.js.map +0 -7
- package/dist/esm/chunks/chunk.MCR34SZQ.js +0 -7
- package/dist/esm/chunks/chunk.MGLWXAZO.js +0 -18
- package/dist/esm/chunks/chunk.MPUP6QAP.js +0 -7
- package/dist/esm/chunks/chunk.MZRAL4MY.js +0 -7
- package/dist/esm/chunks/chunk.MZRAL4MY.js.map +0 -7
- package/dist/esm/chunks/chunk.N632SJ7X.js +0 -7
- package/dist/esm/chunks/chunk.N632SJ7X.js.map +0 -7
- package/dist/esm/chunks/chunk.NHOGZDLN.js +0 -7
- package/dist/esm/chunks/chunk.NHOGZDLN.js.map +0 -7
- package/dist/esm/chunks/chunk.NIUX6DVF.js +0 -12
- package/dist/esm/chunks/chunk.NIUX6DVF.js.map +0 -7
- package/dist/esm/chunks/chunk.OSBNFFCI.js.map +0 -7
- package/dist/esm/chunks/chunk.OY3TG55O.js +0 -7
- package/dist/esm/chunks/chunk.OY3TG55O.js.map +0 -7
- package/dist/esm/chunks/chunk.QCRO5NSG.js +0 -7
- package/dist/esm/chunks/chunk.QCRO5NSG.js.map +0 -7
- package/dist/esm/chunks/chunk.QKYCMDLB.js +0 -7
- package/dist/esm/chunks/chunk.R6VPRRTT.js +0 -7
- package/dist/esm/chunks/chunk.RFCIELJM.js +0 -7
- package/dist/esm/chunks/chunk.RFCIELJM.js.map +0 -7
- package/dist/esm/chunks/chunk.RJC42RNR.js +0 -7
- package/dist/esm/chunks/chunk.RJC42RNR.js.map +0 -7
- package/dist/esm/chunks/chunk.SKBOB2BD.js +0 -7
- package/dist/esm/chunks/chunk.SKBOB2BD.js.map +0 -7
- package/dist/esm/chunks/chunk.SOKORSUV.js +0 -7
- package/dist/esm/chunks/chunk.STSAE2XP.js +0 -7
- package/dist/esm/chunks/chunk.SWKKDBO6.js +0 -7
- package/dist/esm/chunks/chunk.SWKKDBO6.js.map +0 -7
- package/dist/esm/chunks/chunk.SYKZ74SL.js +0 -7
- package/dist/esm/chunks/chunk.SYKZ74SL.js.map +0 -7
- package/dist/esm/chunks/chunk.UKVC23E5.js +0 -7
- package/dist/esm/chunks/chunk.UKVC23E5.js.map +0 -7
- package/dist/esm/chunks/chunk.UOD3A7M4.js +0 -7
- package/dist/esm/chunks/chunk.UQQQSJVM.js +0 -7
- package/dist/esm/chunks/chunk.V3X77TCO.js +0 -7
- package/dist/esm/chunks/chunk.V3X77TCO.js.map +0 -7
- package/dist/esm/chunks/chunk.V7ILFIOR.js +0 -7
- package/dist/esm/chunks/chunk.VBJ4WUVH.js +0 -7
- package/dist/esm/chunks/chunk.VBJ4WUVH.js.map +0 -7
- package/dist/esm/chunks/chunk.VZ2XONDI.js +0 -7
- package/dist/esm/chunks/chunk.VZ2XONDI.js.map +0 -7
- package/dist/esm/chunks/chunk.WAMFFIMP.js +0 -7
- package/dist/esm/chunks/chunk.WAMFFIMP.js.map +0 -7
- package/dist/esm/chunks/chunk.WBCQTZPS.js +0 -7
- package/dist/esm/chunks/chunk.WBCQTZPS.js.map +0 -7
- package/dist/esm/chunks/chunk.WBI34ZVP.js +0 -7
- package/dist/esm/chunks/chunk.WF2MFLG4.js.map +0 -7
- package/dist/esm/chunks/chunk.WPVGFQNY.js +0 -7
- package/dist/esm/chunks/chunk.WPVGFQNY.js.map +0 -7
- package/dist/esm/chunks/chunk.XAZ6EDIZ.js +0 -7
- package/dist/esm/chunks/chunk.XCI7O2KJ.js +0 -7
- package/dist/esm/chunks/chunk.XCI7O2KJ.js.map +0 -7
- package/dist/esm/chunks/chunk.XNJROSDZ.js +0 -7
- package/dist/esm/chunks/chunk.XNJROSDZ.js.map +0 -7
- package/dist/esm/chunks/chunk.Z6GRWPPN.js +0 -7
- package/dist/esm/chunks/chunk.Z6GRWPPN.js.map +0 -7
- package/dist/esm/chunks/chunk.ZLNI2M3F.js +0 -7
- package/dist/esm/chunks/chunk.ZLNI2M3F.js.map +0 -7
- package/dist/esm/chunks/chunk.ZSZFWZAI.js +0 -7
- package/dist/esm/chunks/chunk.ZSZFWZAI.js.map +0 -7
- package/dist/esm/chunks/chunk.ZYKP23JP.js +0 -7
- package/dist/esm/field-next/index.js +0 -7
- package/dist/esm/floating-label/index.js +0 -7
- package/dist/esm/floating-label/index.js.map +0 -7
- package/dist/esm/popup/index.js +0 -7
- package/dist/esm/popup/index.js.map +0 -7
- package/dist/esm/ripple/index.js +0 -7
- package/dist/esm/ripple/index.js.map +0 -7
- package/dist/floating-label/forge-floating-label.css +0 -6
- package/dist/form-field/forge-form-field.css +0 -6
- package/dist/ripple/forge-ripple.css +0 -6
- package/dist/scaffold/forge-scaffold.css +0 -6
- package/esm/backdrop/backdrop-adapter.d.ts +0 -36
- package/esm/backdrop/backdrop-adapter.js +0 -40
- package/esm/backdrop/backdrop-foundation.d.ts +0 -38
- package/esm/backdrop/backdrop-foundation.js +0 -82
- package/esm/field-next/field-adapter.d.ts +0 -56
- package/esm/field-next/field-adapter.js +0 -132
- package/esm/field-next/field-constants.d.ts +0 -95
- package/esm/field-next/field-constants.js +0 -64
- package/esm/field-next/field-foundation.js +0 -221
- package/esm/field-next/field.d.ts +0 -205
- package/esm/field-next/field.js +0 -287
- package/esm/floating-label/floating-label-adapter.d.ts +0 -23
- package/esm/floating-label/floating-label-adapter.js +0 -32
- package/esm/floating-label/floating-label-constants.d.ts +0 -13
- package/esm/floating-label/floating-label-constants.js +0 -14
- package/esm/floating-label/floating-label-foundation.d.ts +0 -20
- package/esm/floating-label/floating-label-foundation.js +0 -74
- package/esm/floating-label/floating-label.d.ts +0 -31
- package/esm/floating-label/floating-label.js +0 -34
- package/esm/floating-label/index.d.ts +0 -9
- package/esm/floating-label/index.js +0 -9
- package/esm/label-value/label-value-adapter.d.ts +0 -24
- package/esm/label-value/label-value-adapter.js +0 -47
- package/esm/label-value/label-value-foundation.d.ts +0 -33
- package/esm/label-value/label-value-foundation.js +0 -80
- package/esm/popup/index.d.ts +0 -10
- package/esm/popup/index.js +0 -14
- package/esm/popup/popup-adapter.d.ts +0 -45
- package/esm/popup/popup-adapter.js +0 -152
- package/esm/popup/popup-constants.d.ts +0 -55
- package/esm/popup/popup-constants.js +0 -53
- package/esm/popup/popup-foundation.d.ts +0 -72
- package/esm/popup/popup-foundation.js +0 -258
- package/esm/popup/popup.d.ts +0 -59
- package/esm/popup/popup.js +0 -102
- package/esm/ripple/forge-ripple.d.ts +0 -17
- package/esm/ripple/forge-ripple.js +0 -22
- package/esm/ripple/index.d.ts +0 -11
- package/esm/ripple/index.js +0 -15
- package/esm/ripple/ripple-adapter.d.ts +0 -23
- package/esm/ripple/ripple-adapter.js +0 -47
- package/esm/ripple/ripple-constants.d.ts +0 -15
- package/esm/ripple/ripple-constants.js +0 -19
- package/esm/ripple/ripple-foundation.d.ts +0 -30
- package/esm/ripple/ripple-foundation.js +0 -48
- package/esm/ripple/ripple.d.ts +0 -36
- package/esm/ripple/ripple.js +0 -65
- package/styles/backdrop/_mixins.scss +0 -31
- package/styles/backdrop/_variables.scss +0 -12
- package/styles/card/_mixins.scss +0 -47
- package/styles/card/_variables.scss +0 -9
- package/styles/chip-field/_base.scss +0 -299
- package/styles/chip-field/_mixins.scss +0 -26
- package/styles/chip-field/_selector.scss +0 -228
- package/styles/chip-field/_variables.scss +0 -76
- package/styles/dialog/_mixins.scss +0 -199
- package/styles/dialog/_variables.scss +0 -22
- package/styles/dialog/forge-dialog.scss +0 -8
- package/styles/field/_base.scss +0 -636
- package/styles/field/_selector.scss +0 -560
- package/styles/field/_utils.scss +0 -48
- package/styles/field/_variables.scss +0 -123
- package/styles/field-next/_core.scss +0 -213
- package/styles/floating-label/_mixins.scss +0 -291
- package/styles/floating-label/_variables.scss +0 -15
- package/styles/floating-label/forge-floating-label.scss +0 -8
- package/styles/form-field/_mixins.scss +0 -71
- package/styles/form-field/forge-form-field.scss +0 -8
- package/styles/icon/_mixins.scss +0 -37
- package/styles/icon/_variables.scss +0 -10
- package/styles/label-value/_mixins.scss +0 -205
- package/styles/label-value/_variables.scss +0 -12
- package/styles/popup/_mixins.scss +0 -86
- package/styles/popup/_variables.scss +0 -7
- package/styles/popup/forge-popup.scss +0 -8
- package/styles/popup/popup.scss +0 -20
- package/styles/ripple/forge-ripple.scss +0 -17
- package/styles/scaffold/_mixins.scss +0 -194
- package/styles/scaffold/forge-scaffold.scss +0 -43
- package/styles/select/select/_base.scss +0 -84
- package/styles/select/select/_mixins.scss +0 -25
- package/styles/select/select/_selector.scss +0 -90
- package/styles/select/select/_variables.scss +0 -16
- package/styles/stepper/step/_mixins.scss +0 -416
- package/styles/stepper/step/_variables.scss +0 -21
- package/styles/stepper/stepper/_mixins.scss +0 -113
- package/styles/toast/_mixins.scss +0 -242
- package/styles/toast/_variables.scss +0 -52
- /package/dist/esm/chunks/{chunk.IZRURH7C.js.map → chunk.3KAKJGUS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KDUH2DUE.js.map → chunk.473WRJ5G.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.USQEIRST.js.map → chunk.5MB6CTBA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YS5JZHJ6.js.map → chunk.5QIWLZG3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.47U6GVGZ.js.map → chunk.5UOX22ML.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4NABD6XG.js.map → chunk.6VS3LYAF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AOSBUJWW.js.map → chunk.A7BCLPP4.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7UBIT4NP.js.map → chunk.AG6IRMLZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.A4UH52SA.js.map → chunk.AGLI4WR4.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WTUXAH7Z.js.map → chunk.AOVXNX7P.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AN2E2SSN.js.map → chunk.ASLHRT3N.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CBLUXYH2.js.map → chunk.BHE6Z5Y2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2WRAXA3H.js.map → chunk.BQ52JYLA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ROMRJIFR.js.map → chunk.CE35CVDV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZPXMKY72.js.map → chunk.CEGBMUSR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GBGGUYTE.js.map → chunk.CFAI4K3E.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZIGVO6FN.js.map → chunk.CGFSMACZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UEYPCCFG.js.map → chunk.ENUKGA2U.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GA6AO6FJ.js.map → chunk.H5RW3A4M.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CSOKFDFQ.js.map → chunk.HSADKCGS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WBI34ZVP.js.map → chunk.IEABOPNB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.22C7GQLX.js.map → chunk.IL4S57WO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.HMJODLAS.js.map → chunk.IQYOLMPG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GTKYO6VB.js.map → chunk.JGURMVW7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YXHMD73U.js.map → chunk.K6GJNDTY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QUWEAFGI.js.map → chunk.KEOLH7G3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BIQTNLIF.js.map → chunk.LNTTU2GL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2AM2BKEO.js.map → chunk.MFQRXVKO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JLSFTWPE.js.map → chunk.MTIPIEXA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JSTCCUKZ.js.map → chunk.OEI35LFU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2537XOFQ.js.map → chunk.OREDK5MJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QKYCMDLB.js.map → chunk.QCPV5DEG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.R3AWIPPK.js.map → chunk.QIZBZGYT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2XPAYTK4.js.map → chunk.QKTK5XUE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.R66CYS27.js.map → chunk.QTY25OTN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BSV27GU7.js.map → chunk.QVATEY5S.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FRTSXX33.js.map → chunk.RSYEG2RW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.A6BIUNPW.js.map → chunk.RXBLU4OJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FBDRM4YN.js.map → chunk.S7KEO2CH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XU3YSZPA.js.map → chunk.SQ3AZAHF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.35MHQH7Z.js.map → chunk.SROEDYPL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SHBDQPPH.js.map → chunk.SZOZIJZI.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PXRGQHWR.js.map → chunk.TQWZDM6T.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.6JVMCBCR.js.map → chunk.UKBE2FMZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4AEQ7KVU.js.map → chunk.VJZ7VDG5.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3L77JY5H.js.map → chunk.W4HANHUO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2W276VOR.js.map → chunk.WMJSYYXQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YNXWVL4B.js.map → chunk.YPNSK2CK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MPUP6QAP.js.map → chunk.YWJVZVZX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.6XLTVIUD.js.map → chunk.ZA7JY3AY.js.map} +0 -0
- /package/dist/esm/{field-next → field}/base/index.js.map +0 -0
- /package/dist/esm/{field-next → field}/index.js.map +0 -0
- /package/esm/{field-next → field}/base/base-field-adapter.d.ts +0 -0
- /package/esm/{field-next → field}/base/base-field-adapter.js +0 -0
- /package/esm/{field-next → field}/base/base-field-constants.d.ts +0 -0
- /package/esm/{field-next → field}/base/base-field-constants.js +0 -0
- /package/esm/{field-next → field}/base/base-field-foundation.d.ts +0 -0
- /package/esm/{field-next → field}/base/base-field.d.ts +0 -0
- /package/esm/{field-next → field}/base/base-field.js +0 -0
- /package/esm/{field-next → field}/base/index.d.ts +0 -0
- /package/esm/{field-next → field}/base/index.js +0 -0
- /package/esm/{field-next → field}/index.d.ts +0 -0
- /package/esm/{field-next → field}/index.js +0 -0
- /package/styles/{field-next → field}/_core.slotted.scss +0 -0
- /package/styles/{field-next → field}/_core.state.scss +0 -0
- /package/styles/{field-next → field}/_token-utils.scss +0 -0
- /package/styles/{field-next → field}/index.scss +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/list-dropdown/list-dropdown-constants.ts", "../../../../../../node_modules/@tylertech/forge-core/esm/events/event-aware.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-types.js", "../../../../../../node_modules/@tylertech/forge-core/esm/scroll/scroll-axis-observer.js", "../../src/list-dropdown/list-dropdown-utils.ts", "../../src/list-dropdown/list-dropdown-foundation.ts", "../../src/list-dropdown/list-dropdown-adapter.ts", "../../src/list-dropdown/list-dropdown.ts", "../../src/list-dropdown/list-dropdown-aware-foundation.ts", "../../src/list-dropdown/cascading-list-dropdown-aware-foundation.ts"],
|
|
4
|
+
"sourcesContent": ["import type { IIconComponent } from '../icon';\nimport type { IOverlayOffset } from '../overlay/overlay-constants';\nimport { PositionPlacement } from '../core/utils/position-utils';\n\nconst attributes = {\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n CONSTRAIN_POPUP_WIDTH: 'constrain-popup-width',\n WRAP_OPTION_TEXT: 'wrap-option-text',\n\n // Internal\n CHECKBOX_ELEMENT: 'data-list-dropdown-checkbox',\n DATA_ALLOW_FOCUS: 'data-list-dropdown-allow-focus'\n};\n\nconst classes = {\n GROUP_WRAPPER: 'forge-list-dropdown__group-wrapper'\n};\n\nexport const LIST_DROPDOWN_CONSTANTS = {\n attributes,\n classes\n};\n\nexport type ListDropdownOptionBuilder<T = HTMLElement> = (option: IListDropdownOption, parentElement: T) => HTMLElement | string | void;\nexport type ListDropdownHeaderBuilder = () => HTMLElement;\nexport type ListDropdownFooterBuilder = () => HTMLElement;\nexport type ListDropdownOptionGroupBuilder<T = any> = (option: IListDropdownOptionGroup<T>) => HTMLElement | string;\nexport type ListDropdownTransformCallback = (label: string) => string | HTMLElement;\nexport type ListDropdownIconType = 'font' | 'component';\n\nexport interface IBaseListDropdownOption<T = any> {\n value: T;\n label: string;\n secondaryLabel?: string;\n disabled?: boolean;\n divider?: boolean;\n optionClass?: string | string[];\n leadingIcon?: string;\n leadingIconClass?: string;\n leadingIconType?: ListDropdownIconType;\n leadingIconComponentProps?: Partial<IIconComponent>;\n trailingIcon?: string;\n trailingIconClass?: string;\n trailingIconType?: ListDropdownIconType;\n trailingIconComponentProps?: Partial<IIconComponent>;\n leadingBuilder?: () => HTMLElement;\n trailingBuilder?: () => HTMLElement;\n}\n\nexport interface IListDropdownOption<T = any> extends IBaseListDropdownOption<T> {\n options?: Array<IListDropdownOption | IListDropdownOptionGroup>;\n elementAttributes?: Map<string, string>;\n}\n\nexport interface IListDropdownOptionGroup<T = any, K = any> {\n text?: string;\n value?: K;\n builder?: ListDropdownOptionGroupBuilder;\n options: IListDropdownOption<T>[];\n}\n\nexport interface IListDropdownSelectEventData {\n value: IListDropdownOption | IListDropdownOption[];\n}\n\nexport interface IListDropdownConfig<T = any> {\n id: string;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n selectCallback: (value: T) => void;\n \n // Optional values\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n syncWidth?: boolean;\n constrainViewportWidth?: boolean;\n wrapOptionText?: boolean;\n selectedValues?: T[];\n multiple?: boolean;\n activeStartIndex?: number;\n visibleStartIndex?: number;\n transform?: ListDropdownTransformCallback;\n allowBusy?: boolean;\n asyncStyle?: ListDropdownAsyncStyle;\n iconClass?: string;\n dense?: boolean;\n type?: ListDropdownType;\n popupClasses?: string | string[];\n popupOffset?: IOverlayOffset;\n popupStatic?: boolean;\n popupPlacement?: PositionPlacement;\n popupFallbackPlacements?: PositionPlacement[];\n optionLimit?: number;\n optionBuilder?: ListDropdownOptionBuilder;\n observeScroll?: boolean;\n observeScrollThreshold?: number;\n targetWidthCallback?: () => number;\n scrollEndListener?: () => void;\n headerBuilder?: ListDropdownHeaderBuilder;\n footerBuilder?: ListDropdownFooterBuilder;\n cascade?: boolean;\n cascadingElementFactory?: (config: IListDropdownCascadingElementFactoryConfig) => HTMLElement;\n}\n\nexport interface IListDropdownCascadingElementFactoryConfig {\n index: number;\n options: Array<IListDropdownOption | IListDropdownOptionGroup>;\n parentValue: any;\n}\n\nexport const DEFAULT_LIST_DROPDOWN_CONFIG: Partial<IListDropdownConfig> = {\n options: [],\n syncWidth: false,\n selectedValues: [],\n multiple: false\n};\n\nexport interface IListDropdownOpenConfig extends IListDropdownConfig {}\n\nexport enum ListDropdownType {\n None = 'none',\n Standard = 'standard',\n Menu = 'menu'\n}\n\nexport enum ListDropdownAsyncStyle {\n Spinner = 'spinner',\n Skeleton = 'skeleton'\n}\n", "export class EventAware {\n constructor() {\n this._listenerMap = new Map();\n }\n _emit(type, data) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length) {\n listeners.forEach(cb => cb({ type, data }));\n }\n }\n hasListeners(type) {\n return type ? this._listenerMap.has(type) : this._listenerMap.size > 0;\n }\n addListener(type, listener) {\n if (!this._listenerMap.has(type)) {\n this._listenerMap.set(type, [listener]);\n }\n else {\n const listeners = this._listenerMap.get(type);\n if (listeners) {\n listeners.push(listener);\n }\n }\n }\n removeListener(type, listener) {\n const listeners = this._listenerMap.get(type);\n if (listeners && listeners.length && listeners.includes(listener)) {\n listeners.splice(listeners.indexOf(listener), 1);\n if (!listeners.length) {\n this._listenerMap.delete(type);\n }\n }\n }\n}\n", "export var ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[\"Up\"] = \"up\";\n ScrollDirection[\"Down\"] = \"down\";\n ScrollDirection[\"Left\"] = \"left\";\n ScrollDirection[\"Right\"] = \"right\";\n})(ScrollDirection || (ScrollDirection = {}));\nexport var ScrollEvents;\n(function (ScrollEvents) {\n ScrollEvents[\"Scroll\"] = \"scroll\";\n ScrollEvents[\"Scrolled\"] = \"scrolled\";\n ScrollEvents[\"ScrolledStart\"] = \"scrolled-start\";\n ScrollEvents[\"ScrolledEnd\"] = \"scrolled-end\";\n})(ScrollEvents || (ScrollEvents = {}));\n", "import { EventAware } from '../events/event-aware';\nimport { ScrollEvents, ScrollDirection } from './scroll-types';\nimport { isDefined, throttle, isNumber } from '../utils';\nconst DEFAULT_SCROLL_THROTTLE = 100;\n/**\n * Provides facilties for observing and reacting to scroll events and information on a given element.\n */\nexport class ScrollAxisObserver extends EventAware {\n constructor(_element, _config = {}) {\n super();\n this._element = _element;\n this._config = _config;\n this._axis = 'vertical';\n this._scrollThreshold = 0;\n this._lastScrollPosition = 0;\n this._lastScrollTop = 0;\n this._lastScrollLeft = 0;\n this._isListening = false;\n this._initialize();\n }\n destroy() {\n this.stop();\n }\n start() {\n if (!this._isListening) {\n this._element.addEventListener('scroll', this._scrollListener);\n this._isListening = true;\n }\n }\n stop() {\n this._element.removeEventListener('scroll', this._scrollListener);\n this._isListening = false;\n }\n _initialize() {\n if (this._config.throttle) {\n const wait = this._config.throttleTime || DEFAULT_SCROLL_THROTTLE;\n this._scrollListener = throttle(() => this._onScroll(), wait);\n }\n else {\n this._scrollListener = () => this._onScroll();\n }\n if (!isDefined(this._config.paused) || !this._config.paused) {\n this.start();\n }\n if (isDefined(this._config.axis)) {\n this._axis = this._config.axis;\n }\n if (isDefined(this._config.scrollThreshold) && isNumber(this._config.scrollThreshold)) {\n this._scrollThreshold = this._config.scrollThreshold;\n }\n }\n _isScrollAxis() {\n const isVertical = this._lastScrollTop !== this._element.scrollTop;\n const isHorizontal = this._lastScrollLeft !== this._element.scrollLeft;\n return (this._axis === 'vertical' && isVertical) || (this._axis === 'horizontal' && isHorizontal);\n }\n _onScroll() {\n if (!this._isScrollAxis()) {\n return;\n }\n const position = this.scrollPosition;\n const direction = this._lastScrollPosition - position < 0 ? this._axis === 'vertical' ? ScrollDirection.Down : ScrollDirection.Right : this._axis === 'vertical' ? ScrollDirection.Up : ScrollDirection.Left;\n this._emit(ScrollEvents.Scroll, { direction, position });\n if (this._lastScrollPosition <= this._scrollThreshold && position > this._scrollThreshold) {\n this._emit(ScrollEvents.Scrolled, true);\n }\n else if (this._lastScrollPosition >= this._scrollThreshold && (this._scrollThreshold > 0 ? position < this._scrollThreshold : position === 0)) {\n this._emit(ScrollEvents.Scrolled, false);\n }\n const scrollStart = Math.round(position - this._scrollThreshold);\n const scrollEnd = Math.round(this.scrollSize - position);\n if (this._lastScrollPosition >= this._scrollThreshold && scrollStart <= 0) {\n this._emit(ScrollEvents.ScrolledStart);\n }\n else if (this._lastScrollPosition <= (this.scrollSize - this._scrollThreshold) && scrollEnd <= this._scrollThreshold) {\n this._emit(ScrollEvents.ScrolledEnd);\n }\n this._lastScrollPosition = position || 0;\n this._lastScrollTop = this._element.scrollTop || 0;\n this._lastScrollLeft = this._element.scrollLeft || 0;\n }\n get scrollPosition() {\n return this._axis === 'vertical' ? this._element.scrollTop : this._element.scrollLeft;\n }\n get isScrolled() {\n return this.scrollPosition > this._scrollThreshold;\n }\n get isScrolledStart() {\n return this.scrollPosition === 0;\n }\n get isScrolledEnd() {\n return this.scrollPosition === this._element.scrollWidth;\n }\n get isScrollable() {\n if (this._axis === 'vertical') {\n return this._element.scrollHeight > this._element.clientHeight;\n }\n return this._element.scrollWidth > this._element.clientWidth;\n }\n get scrollSize() {\n return (this._axis === 'vertical' ? this._element.scrollHeight : this._element.scrollWidth) - this.elementSize;\n }\n get elementSize() {\n return this._axis === 'vertical' ? this._element.clientHeight : this._element.clientWidth;\n }\n setScrollPosition(position) {\n if (this._axis === 'vertical') {\n this._element.scrollTop = position;\n }\n else {\n this._element.scrollLeft = position;\n }\n }\n}\n", "import { addClass, getEventPath, isDeepEqual, isDefined, isObject } from '@tylertech/forge-core';\nimport { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { IIconComponent } from '../icon';\nimport { ILinearProgressComponent, LINEAR_PROGRESS_CONSTANTS } from '../linear-progress';\nimport { IListComponent, LIST_CONSTANTS } from '../list/list';\nimport { POPOVER_CONSTANTS } from '../popover';\nimport { IPopoverComponent } from '../popover/popover';\nimport { ISkeletonComponent, SKELETON_CONSTANTS } from '../skeleton';\nimport { IListDropdownCascadingElementFactoryConfig, IListDropdownOpenConfig, IListDropdownOption, IListDropdownOptionGroup, ListDropdownAsyncStyle, ListDropdownIconType, ListDropdownType, LIST_DROPDOWN_CONSTANTS } from './list-dropdown-constants';\n\nexport enum ListDropdownOptionType { Option, Group }\n\n/**\n * Creates the floating dropdown element container.\n * @param config \n * @param targetElement \n */\nexport function createDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopoverComponent {\n const dropdownElement = createPopupDropdown(config, targetElement);\n const dropdownId = `list-dropdown-popup-${config.id}`;\n\n // Prevent mousedown events from changing focus. We keep focus in the target element at all times while open.\n dropdownElement.addEventListener('mousedown', evt => {\n const composedPath = getEventPath(evt);\n\n // We allow for custom header and footer templates and these elements could be focusable so we need to allow access into them\n const isFromCustomTemplate = composedPath.find(el => el.nodeType === 1 && el.hasAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS));\n if (isFromCustomTemplate) {\n return;\n }\n\n const isWithinDropdownElement = composedPath.find(el => el.id === dropdownId || el.id === config.id);\n if (isWithinDropdownElement) {\n evt.preventDefault();\n }\n });\n\n if (config.id) {\n dropdownElement.id = dropdownId;\n }\n if (config.popupClasses) {\n addClass(config.popupClasses, dropdownElement);\n }\n\n return dropdownElement;\n}\n\nexport function createPopupDropdown(config: IListDropdownOpenConfig, targetElement: HTMLElement): IPopoverComponent {\n const popoverElement = document.createElement('forge-popover');\n popoverElement.anchorElement = targetElement;\n popoverElement.placement = config.popupPlacement || 'bottom-start';\n popoverElement.persistent = Boolean(config.popupStatic);\n\n if (config.popupFallbackPlacements?.length) {\n popoverElement.fallbackPlacements = config.popupFallbackPlacements;\n }\n\n if (config.constrainViewportWidth) {\n popoverElement.setAttribute(POPOVER_CONSTANTS.attributes.CONSTRAIN_VIEWPORT_WIDTH, '');\n }\n\n if (config.popupOffset) {\n popoverElement.offset = config.popupOffset;\n }\n\n // Set the animations based on our type\n if (config.type === ListDropdownType.None) {\n popoverElement.animationType = 'none';\n }\n\n return popoverElement;\n}\n\nexport function createList(config: IListDropdownOpenConfig): IListComponent {\n const listElement = document.createElement(LIST_CONSTANTS.elementName) as IListComponent;\n listElement.id = `list-dropdown-list-${config.id}`;\n listElement.propagateClick = false;\n\n // Set roles and other attributes based on our type\n switch (config.type) {\n case ListDropdownType.Menu:\n listElement.setAttribute('role', 'menu');\n listElement.setAttribute('aria-orientation', 'vertical');\n break;\n default:\n listElement.setAttribute('role', 'listbox');\n }\n\n return listElement;\n}\n\n/**\n * Creates the list to place inside of the dropdown.\n * @param config \n */\nexport function createListItems(config: IListDropdownOpenConfig, listElement: IListComponent, options?: Array<IListDropdownOption | IListDropdownOptionGroup>, startIndex = 0, renderSelected = true): void {\n // Ensure the options are provided in the form a group (if no groups provided, then we have one anonymous group of options)\n const groups = getOptionsByGroup(options || config.options);\n const flatOptions = getFlattenedOptions(groups);\n\n const limitOptions = config.optionLimit ? true : false;\n let optionLimit = config.optionLimit || 0;\n let optionIdIndex = startIndex;\n\n // Iterate over our groups and render the optional headers and options for that group\n for (const group of groups) {\n let optionParent: IListComponent | HTMLElement = listElement;\n\n // Check for a group header builder callback\n if (group.builder && typeof group.builder === 'function') {\n const headerElement = group.builder(group);\n if (headerElement) {\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n optionParent = groupWrapper;\n\n if (typeof headerElement === 'string') {\n groupWrapper.innerHTML = headerElement;\n } else if (headerElement instanceof HTMLElement) {\n groupWrapper.appendChild(headerElement);\n }\n\n listElement.appendChild(groupWrapper);\n }\n } else if (group.text) {\n // We are rendering just text as a group header so create the group header element with predefined styles\n const groupWrapper = document.createElement('div');\n groupWrapper.classList.add(LIST_DROPDOWN_CONSTANTS.classes.GROUP_WRAPPER);\n\n const listHeaderElement = document.createElement('div');\n listHeaderElement.textContent = group.text;\n listHeaderElement.classList.add('forge-typography--overline');\n listHeaderElement.style.fontFamily = 'Roboto,sans-serif';\n listHeaderElement.style.fontSize = '0.75rem';\n listHeaderElement.style.lineHeight = '2rem';\n listHeaderElement.style.letterSpacing = '0.16667em';\n listHeaderElement.style.fontWeight = '500';\n listHeaderElement.style.margin = '4px 8px';\n\n optionParent = groupWrapper;\n groupWrapper.appendChild(listHeaderElement);\n listElement.appendChild(groupWrapper);\n }\n\n // Loop over the options for this group\n for (const option of group.options) {\n // First we check if this option is just a divider\n if (option.divider) {\n const dividerElement = createDivider();\n listElement.appendChild(dividerElement);\n continue;\n }\n\n // Check if an option limit has been provided to reduce amount of options that need to be rendered\n if (limitOptions && --optionLimit < 0) {\n break;\n }\n \n // Create and configure the list element\n const isSelected = config.selectedValues ? config.selectedValues.some(v => isDeepEqual(v, option.value)) : false;\n\n // We don't render selected options that are appended dynamically since those are always displayed at the top of the list\n if (!renderSelected && isSelected) {\n continue;\n }\n\n let listItemElement = document.createElement('forge-list-item');\n listItemElement.value = option.value;\n listItemElement.id = `list-dropdown-option-${config.id}-${optionIdIndex++}`;\n\n if (config.wrapOptionText) {\n listItemElement.wrap = true;\n }\n \n // Add any CSS classes to the option list-item\n if (option.optionClass && (typeof option.optionClass === 'string' || Array.isArray(option.optionClass) && option.optionClass.length)) {\n addClass(option.optionClass, listItemElement);\n }\n\n if (config.dense) {\n listItemElement.dense = true;\n }\n\n // Check for a custom option template builder\n if (config.optionBuilder && typeof config.optionBuilder === 'function') {\n const element = config.optionBuilder(option, listItemElement);\n if (element) {\n if (typeof element === 'string') {\n listItemElement.innerHTML = element;\n } else {\n listItemElement.appendChild(element);\n }\n }\n } else {\n if (typeof config.transform !== 'function') {\n listItemElement.textContent = option.label || '';\n } else {\n const result = config.transform(option.label);\n if (typeof result === 'string') {\n listItemElement.textContent = result;\n } else if (typeof result === 'object' && (result as HTMLElement).nodeType !== undefined) {\n listItemElement.appendChild(result);\n }\n }\n }\n\n // Check for secondary (subtitle) text\n if (option.secondaryLabel) {\n const secondaryLabelElement = document.createElement('span');\n secondaryLabelElement.slot = 'subtitle';\n secondaryLabelElement.textContent = option.secondaryLabel;\n listItemElement.twoLine = true;\n listItemElement.appendChild(secondaryLabelElement);\n }\n\n // If multiple selections are enabled then we need to create and append a leading checkbox element\n if (config.multiple) {\n const checkboxElement = createCheckboxElement(isSelected);\n listItemElement.appendChild(checkboxElement);\n listItemElement.setAttribute('aria-selected', `${isSelected}`);\n listItemElement.setAttribute('aria-checked', `${isSelected}`);\n }\n\n if (option.elementAttributes) {\n option.elementAttributes.forEach((value: string, key: string) => {\n listItemElement.setAttribute(key, value);\n });\n }\n\n // Leading element/icon\n if (option.leadingBuilder) {\n const element = option.leadingBuilder();\n if (isObject(element)) {\n element.slot = 'leading';\n listItemElement.appendChild(element);\n }\n } else if (option.leadingIcon) {\n const leadingIconElement = createIconElement(option.leadingIconType, option.leadingIcon, option.leadingIconClass || config.iconClass, option.leadingIconComponentProps);\n leadingIconElement.slot = 'leading';\n listItemElement.appendChild(leadingIconElement);\n }\n\n // Trailing element/icon\n if (option.trailingBuilder) {\n const element = option.trailingBuilder();\n if (isObject(element)) {\n element.slot = 'trailing';\n listItemElement.appendChild(element);\n }\n } else if (option.trailingIcon) {\n const trailingIconElement = createIconElement(option.trailingIconType, option.trailingIcon, option.trailingIconClass || config.iconClass, option.trailingIconComponentProps);\n trailingIconElement.slot = 'trailing';\n listItemElement.appendChild(trailingIconElement);\n }\n\n // Update the disabled state\n if (option.disabled) {\n listItemElement.disabled = option.disabled;\n listItemElement.setAttribute('aria-disabled', 'true');\n } else {\n listItemElement.setAttribute('aria-disabled', 'false');\n }\n\n // Update the selected state\n if (isSelected) {\n listItemElement.selected = true;\n }\n listItemElement.setAttribute('aria-selected', isSelected ? 'true' : 'false');\n\n // If we have any child options, we need to render a child menu for this list item\n if (!option.disabled && typeof config.cascadingElementFactory === 'function' && Array.isArray(option.options) && option.options.length) {\n // Create the trailing indicator icon to show that a child menu exists for this option. \n const optionIconElement = document.createElement('forge-icon');\n optionIconElement.name = 'arrow_right';\n optionIconElement.slot = 'trailing';\n listItemElement.appendChild(optionIconElement);\n\n const nonDividerOptions = flatOptions.filter(o => !o.divider);\n\n // Create the nested cascading element wrapper\n const factoryConfig: IListDropdownCascadingElementFactoryConfig = {\n index: nonDividerOptions.indexOf(option),\n options: option.options,\n parentValue: option.value\n };\n const cascadingElement = config.cascadingElementFactory.call(null, factoryConfig);\n cascadingElement.appendChild(listItemElement);\n listItemElement = cascadingElement;\n }\n\n optionParent.appendChild(listItemElement);\n }\n }\n}\n\nexport function createCheckboxElement(selected: boolean): HTMLElement {\n const checkboxElement = document.createElement('forge-icon');\n checkboxElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT, '');\n checkboxElement.name = selected ? tylIconCheckBox.name : tylIconCheckBoxOutlineBlank.name;\n checkboxElement.slot = 'leading';\n checkboxElement.style.marginRight = '16px';\n checkboxElement.style.verticalAlign = 'middle';\n return checkboxElement;\n}\n\nfunction createDivider(): HTMLElement {\n const divider = document.createElement('forge-divider');\n divider.setAttribute('aria-hidden', 'true');\n return divider;\n}\n\nfunction createIconElement(type: ListDropdownIconType = 'font', iconName: string, iconClass?: string, componentProps?: Partial<IIconComponent>): HTMLElement {\n if (type === 'component') {\n const icon = document.createElement('forge-icon');\n if (iconClass) {\n icon.classList.add(iconClass);\n }\n icon.setAttribute('aria-hidden', 'true');\n icon.name = iconName;\n if (componentProps) {\n Object.assign(icon, componentProps);\n }\n return icon;\n }\n\n const iconElement = document.createElement('i');\n iconElement.classList.add(iconClass || ICON_CLASS_NAME);\n iconElement.setAttribute('aria-hidden', 'true');\n iconElement.textContent = iconName;\n return iconElement;\n}\n\nexport function createAsyncElement(asyncStyle?: ListDropdownAsyncStyle): HTMLElement {\n switch (asyncStyle) {\n case ListDropdownAsyncStyle.Skeleton:\n return createSkeletonElement();\n default:\n return createSpinnerElement();\n }\n}\n\nfunction createSpinnerElement(): HTMLElement {\n const div = document.createElement('div');\n div.style.display = 'flex';\n div.style.justifyContent = 'center';\n div.style.alignItems = 'center';\n div.style.padding = '8px';\n div.style.boxSizing = 'border-box';\n\n const spinner = document.createElement('forge-circular-progress');\n spinner.style.setProperty('--forge-circular-progress-size', '24px');\n div.appendChild(spinner);\n\n return div;\n}\n\nfunction createSkeletonElement(): HTMLElement {\n const list = document.createElement('forge-list');\n const div = document.createElement('div');\n div.style.minWidth = '192px';\n for (let i = 0; i < 3; i++) {\n const listItemSkeleton = document.createElement(SKELETON_CONSTANTS.elementName) as ISkeletonComponent;\n listItemSkeleton.setAttribute('list-item', '');\n div.appendChild(listItemSkeleton);\n }\n list.appendChild(div);\n return list;\n}\n\nexport function createBusyElement(): ILinearProgressComponent {\n const linearProgress = document.createElement(LINEAR_PROGRESS_CONSTANTS.elementName) as ILinearProgressComponent;\n linearProgress.determinate = false;\n linearProgress.style.position = 'absolute';\n linearProgress.style.top = '0';\n linearProgress.style.left = '0';\n linearProgress.style.right = '0';\n linearProgress.style.width = '100%';\n return linearProgress;\n}\n\nfunction getOptionsByGroup(options: Array<IListDropdownOption | IListDropdownOptionGroup>): IListDropdownOptionGroup[] {\n return isListDropdownOptionType(options, ListDropdownOptionType.Group) ? (options as IListDropdownOptionGroup[]) : [{ text: '', options }] as IListDropdownOptionGroup[];\n}\n\n/**\n * Determines if the provided options are of the specified type.\n * @param options The options either grouped or individual.\n * @param type The type of option to detect.\n */\nexport function isListDropdownOptionType(options: Array<IListDropdownOption | IListDropdownOptionGroup>, type: ListDropdownOptionType): type is ListDropdownOptionType {\n const isOptionGroups = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('options') && (o.hasOwnProperty('text') || o.hasOwnProperty('builder')));\n const isOptionTypes = options.some((o: IListDropdownOption | IListDropdownOptionGroup) => isDefined(o) && isObject(o) && o.hasOwnProperty('label') && o.hasOwnProperty('value'));\n return (isOptionGroups && type === ListDropdownOptionType.Group) || (isOptionTypes && type === ListDropdownOptionType.Option);\n}\n\nexport function getFlattenedOptions(options: Array<IListDropdownOptionGroup | IListDropdownOption>): IListDropdownOption[] {\n if (isListDropdownOptionType(options, ListDropdownOptionType.Group)) {\n const groups = options as IListDropdownOptionGroup[];\n return groups.reduce((flatOpts, group) => flatOpts.concat(group.options), [] as IListDropdownOption[]);\n }\n return [...options as IListDropdownOption[]];\n}\n", "import { IListDropdownAdapter } from './list-dropdown-adapter';\nimport { DEFAULT_LIST_DROPDOWN_CONFIG, IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { getFlattenedOptions } from './list-dropdown-utils';\n\nexport interface IListDropdownFoundation {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): Promise<void>;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n setSelectedValues(values: any): void;\n clearActiveOption(): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdownFoundation implements IListDropdownFoundation {\n private _config: IListDropdownConfig;\n private _open = false;\n private _selectListener: (value: any, id: string) => void;\n private _closeListener: () => void;\n private _scrollEndListener: () => void;\n\n constructor(private _adapter: IListDropdownAdapter, config: IListDropdownConfig) {\n this._config = Object.assign({ ...DEFAULT_LIST_DROPDOWN_CONFIG }, { ...config });\n this._selectListener = (value, id) => this._onSelect(value, id);\n this._closeListener = () => {\n if (typeof this._config.closeCallback === 'function') {\n this._config.closeCallback();\n }\n };\n this._scrollEndListener = () => {\n if (this._config.observeScroll && typeof this._config.scrollEndListener === 'function') {\n this._config.scrollEndListener();\n }\n };\n }\n\n public destroy(): void {\n this._adapter.remove();\n }\n\n public open(): void {\n if (!this._open) {\n this._open = true;\n this._adapter.open(this._config, this._selectListener, this._closeListener);\n window.requestAnimationFrame(() => {\n if (this._open) {\n this.activateInitialOption();\n }\n });\n\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n }\n }\n\n public async close(): Promise<void> {\n if (this._open) {\n this._open = false;\n if (this._config.observeScroll && this._config.scrollEndListener) {\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n await this._adapter.close();\n }\n }\n\n private _onSelect(value: any, id: string): void {\n if (typeof this._config.activeChangeCallback === 'function') {\n this._config.activeChangeCallback(id);\n }\n\n if (typeof this._config.selectCallback === 'function') {\n this._config.selectCallback(value);\n }\n\n if (this._open) {\n const sync = this._config.syncWidth === undefined ? true : false;\n // Keep the popup width at least the same as the target if the target size has now changed\n this._adapter.syncWidth(sync);\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._adapter.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n const index = this.getActiveOptionIndex();\n return index >= 0 ? this._nonDividerOptions[index] : undefined;\n }\n \n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._adapter.toggleOptionMultiple(index, isSelected);\n }\n\n public activateSelectedOption(): void {\n this._adapter.activateSelectedOption(this._config);\n }\n\n public activateFirstOption(): number {\n const index = this._nonDividerOptions.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateLastOption(): number {\n const options = this._nonDividerOptions;\n const index = (options.length - 1) - options.findIndex(o => !o.disabled);\n if (index !== -1) {\n this.activateOption(index);\n }\n return index;\n }\n\n public activateOption(index: number, animate?: boolean): void {\n return this._adapter.activateOption(index, this._config.activeChangeCallback, animate);\n }\n\n public activateInitialOption(): void {\n if (typeof this._config.activeStartIndex === 'number' && this._nonDividerOptions[this._config.activeStartIndex]) {\n this.activateOption(this._config.activeStartIndex, false);\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (this._config.selectedValues && this._config.selectedValues.length) {\n this._adapter.scrollSelectedOptionIntoView(false);\n } else if (typeof this._config.visibleStartIndex === 'number' && this._nonDividerOptions[this._config.visibleStartIndex]) {\n this._adapter.scrollOptionIntoView(this._config.visibleStartIndex);\n }\n }\n\n public setSelectedValues(values: any[]): void {\n if (!Array.isArray(values)) {\n values = [values];\n }\n if (!this._config.multiple && values.length > 1) {\n values = [values[0]];\n }\n this._config.selectedValues = values;\n this._adapter.setSelectedValues(values, this._config.multiple);\n }\n\n public clearActiveOption(): void {\n this._adapter.clearActiveOption();\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = options;\n if (!this._open) {\n return;\n }\n this._adapter.setOptions(this._config);\n this.activateInitialOption();\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._config.options = [...this._config.options, ...options] as Array<IListDropdownOption | IListDropdownOptionGroup>;\n if (!this._open) {\n return;\n }\n this._adapter.appendOptions(options, this._config);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._adapter.dropdownElement;\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n this._adapter.scrollSelectedOptionIntoView(animate);\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._config.scrollEndListener = listener;\n this._config.observeScroll = true;\n this._config.observeScrollThreshold = threshold;\n this._adapter.setScrollBottomListener(this._scrollEndListener, this._config.observeScrollThreshold || 0);\n }\n\n public removeScrollBottomListener(): void {\n this._config.scrollEndListener = undefined;\n this._adapter.removeScrollBottomListener(this._scrollEndListener);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._config.allowBusy) {\n return;\n }\n this._adapter.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n switch (key) {\n case 'Enter':\n case 'NumpadEnter':\n const activeOptionIndex = this.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeOptionIndex];\n if (this._canSelectOption(activeOption)) {\n const id = this._adapter.getActiveOptionIdByIndex(activeOptionIndex);\n if (id) {\n this._onSelect(activeOption.value, id);\n }\n }\n break;\n case 'Up':\n case 'ArrowUp':\n case 'Down':\n case 'ArrowDown':\n const options = this._nonDividerOptions;\n if (options.length && options.every(o => !this._canSelectOption(o))) {\n return;\n }\n const index = this._getNextActiveOptionIndex(key);\n this.activateOption(index);\n break;\n case 'Home':\n this.activateFirstOption();\n break;\n case 'End':\n this.activateLastOption();\n break;\n }\n }\n\n private _canSelectOption(option: IListDropdownOption): boolean {\n return option && !option.disabled && !option.divider;\n }\n\n private _getNextActiveOptionIndex(key: string): number {\n let index = this._adapter.getActiveOptionIndex();\n if (index === -1) {\n index = this._adapter.getSelectedOptionIndex();\n }\n if (key === 'ArrowUp' || key === 'Up') {\n return this._getPreviousHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n return this._getNextHighlightableOptionIndex(index, this._nonDividerOptions);\n }\n\n private _getPreviousHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex <= 0 ? options.length - 1 : startIndex - 1;\n if (options[index].disabled) {\n return this._getPreviousHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private _getNextHighlightableOptionIndex(startIndex: number, options: IListDropdownOption[]): number {\n const index = startIndex === options.length - 1 ? 0 : startIndex + 1;\n if (options[index].disabled) {\n return this._getNextHighlightableOptionIndex(index, options);\n }\n return index;\n }\n\n private get _flatOptions(): IListDropdownOption[] {\n return getFlattenedOptions(this._config.options);\n }\n\n private get _nonDividerOptions(): IListDropdownOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n}\n", "import { IListDropdownOption, IListDropdownOpenConfig, IListDropdownOptionGroup, LIST_DROPDOWN_CONSTANTS, ListDropdownType } from './list-dropdown-constants';\nimport { createDropdown, createList, createListItems, createAsyncElement, createBusyElement, createCheckboxElement } from './list-dropdown-utils';\nimport { IListComponent } from '../list/list';\nimport { LIST_ITEM_CONSTANTS, IListItemComponent } from '../list/list-item';\nimport { ScrollEvents, getShadowElement, IScrollObserverConfiguration, ScrollAxisObserver, removeAllChildren, isFunction, removeElement, replaceElement, createVisuallyHiddenElement, isDeepEqual, tryScrollIntoView, closestElement } from '@tylertech/forge-core';\nimport { ILinearProgressComponent } from '../linear-progress';\nimport { ICON_CONSTANTS, IIconComponent } from '../icon';\nimport { IPopoverComponent, POPOVER_CONSTANTS } from '../popover';\n\nexport interface IListDropdownAdapter {\n dropdownElement: HTMLElement | undefined;\n open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void;\n close(): void;\n remove(): void;\n setScrollBottomListener(listener: () => void, scrollThreshold: number): void;\n removeScrollBottomListener(listener: () => void): void;\n getActiveOptionIndex(): number;\n getSelectedOptionIndex(): number;\n getActiveOptionIdByIndex(index: number): string | null;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n scrollOptionIntoView(index: number): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n activateSelectedOption(config: IListDropdownOpenConfig): void;\n activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate?: boolean): void;\n setSelectedValues(values: any[], multiple?: boolean): void;\n clearActiveOption(): void;\n syncWidth(sync: boolean, targetWidthCallback?: () => number): void;\n setOptions(config: IListDropdownOpenConfig): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void;\n setBusyVisibility(isVisible: boolean): void;\n getScreenWidth(): number;\n}\n\nexport class ListDropdownAdapter implements IListDropdownAdapter {\n private _dropdownElement: IPopoverComponent | undefined;\n private _listElement: IListComponent | undefined;\n private _announcerElement: HTMLElement | undefined;\n private _scrollObserver: ScrollAxisObserver | undefined;\n private _asyncElement: HTMLElement | undefined;\n private _busyElement: ILinearProgressComponent;\n private _headerElement: HTMLElement;\n private _footerElement: HTMLElement;\n\n constructor(private _targetElement: HTMLElement) {}\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._dropdownElement;\n }\n\n public open(config: IListDropdownOpenConfig, selectCallback: (value: any, id: string) => void, closeCb: () => void): void {\n // Now lets create the popup and append the children\n this._dropdownElement = createDropdown(config, this._targetElement);\n\n if (config.type !== ListDropdownType.None && config.type !== ListDropdownType.Menu) {\n this._dropdownElement.preset = 'dropdown';\n }\n\n this.syncWidth(!!config.syncWidth, config.targetWidthCallback);\n\n // If we are configured to show a busy indicator (linear progress bar across the top), then create and append it first\n if (config.allowBusy) {\n this._busyElement = createBusyElement();\n this._busyElement.style.display = 'none';\n this._dropdownElement.appendChild(this._busyElement);\n }\n\n // Create the header element if a builder exists\n if (config.headerBuilder) {\n this._headerElement = config.headerBuilder();\n if (this._headerElement) {\n this._headerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n \n // Create the footer element if a builder exists\n if (config.footerBuilder) {\n this._footerElement = config.footerBuilder();\n if (this._footerElement) {\n this._footerElement.setAttribute(LIST_DROPDOWN_CONSTANTS.attributes.DATA_ALLOW_FOCUS, '');\n }\n }\n\n // Create the list from our config\n this._listElement = createList(config);\n\n // Add the listener for when list items are selected from the dropdown\n this._listElement.addEventListener('forge-list-item-select', evt => {\n evt.detail.listItem.setAttribute('aria-selected', 'true');\n selectCallback(evt.detail.value, evt.detail.listItem.id);\n });\n\n // Determine if we need to show the list or the async element first\n if (config.options.length) {\n // Now we can create an append the list items\n createListItems(config, this._listElement);\n this._dropdownElement.appendChild(this._listElement);\n\n // Always append the optional header element **first**\n if (this._headerElement) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n\n // Always append the optional footer element **last**\n if (this._footerElement) {\n this._dropdownElement.appendChild(this._footerElement);\n }\n } else if (config.allowBusy) {\n this._asyncElement = createAsyncElement(config.asyncStyle);\n this._dropdownElement.appendChild(this._asyncElement);\n }\n\n // Create the announcer element for a11y\n this._announcerElement = createVisuallyHiddenElement();\n this._announcerElement.id = `${config.id}-activedescendant`;\n this._dropdownElement.appendChild(this._announcerElement);\n\n // Append to root node\n const hostDocument = this._targetElement.ownerDocument ?? document;\n const hostElement = (closestElement(POPOVER_CONSTANTS.selectors.HOST, this._targetElement) as HTMLElement) ?? hostDocument.body;\n hostElement.appendChild(this._dropdownElement);\n\n // Open the popup\n this._dropdownElement.setAttribute(POPOVER_CONSTANTS.attributes.HOST, '');\n this._dropdownElement.open = true;\n }\n\n public async close(): Promise<void> {\n if (!this._dropdownElement) {\n return;\n }\n await this._dropdownElement.hideAsync();\n this.remove();\n }\n\n public remove(): void {\n this._dropdownElement?.remove();\n this._dropdownElement = undefined;\n this._listElement = undefined;\n this._announcerElement = undefined;\n }\n\n public setScrollBottomListener(listener: () => void, scrollThreshold: number): void {\n if (this._dropdownElement) {\n if (!this._scrollObserver) {\n const scrollConfig: IScrollObserverConfiguration = { scrollThreshold };\n const scrollContainer = getShadowElement(this._dropdownElement, POPOVER_CONSTANTS.selectors.SURFACE) as HTMLElement;\n this._scrollObserver = new ScrollAxisObserver(scrollContainer, scrollConfig);\n this._scrollObserver.addListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n }\n\n public removeScrollBottomListener(listener: () => void): void {\n if (this._scrollObserver) {\n this._scrollObserver.removeListener(ScrollEvents.ScrolledEnd, listener);\n }\n }\n\n public getActiveOptionIndex(): number {\n if (!this._dropdownElement) {\n return -1;\n }\n const listItems = this._getListItemElements();\n const activeListItem = [...listItems].reverse().find(li => li.active);\n return activeListItem ? listItems.indexOf(activeListItem) : -1;\n }\n\n public getSelectedOptionIndex(): number {\n const listItems = this._getListItemElements();\n return listItems.findIndex(li => li.selected);\n }\n\n public getActiveOptionIdByIndex(index: number): string | null {\n if (!this._dropdownElement) {\n return null;\n }\n const listItems = this._getListItemElements();\n const item = listItems[index];\n return item ? item.id : null;\n }\n\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n const listItems = this._getListItemElements();\n if (listItems.length && listItems[index]) {\n this._toggleSelectedOption(listItems[index], isSelected);\n }\n }\n\n public scrollOptionIntoView(index: number, animate = true): void {\n const listItem = this._getListItemElements()[index];\n if (listItem) {\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n }\n\n public scrollSelectedOptionIntoView(animate = true): void {\n const listItem = this._getSelectedListItem();\n this._scrollListItemIntoView(listItem, animate ? 'smooth' : 'auto', 'center');\n }\n\n public activateSelectedOption(config: IListDropdownOpenConfig): void {\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n }\n \n const listItem = this._getSelectedListItem();\n if (listItem) {\n this._activateListOption(listItem, config.activeChangeCallback);\n }\n }\n\n public activateOption(index: number, activeChangeCallback: ((id: string) => void) | undefined, animate = true): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeListItems = listItems.filter(li => li.active);\n activeListItems.forEach(li => li.active = false);\n this._activateListOption(listItems[index], activeChangeCallback);\n this._scrollListItemIntoView(listItems[index], animate ? 'smooth' : 'auto');\n }\n }\n\n public setSelectedValues(values: any[], multiple = false): void {\n if (!this._dropdownElement) {\n return;\n }\n const listItems = this._getListItemElements();\n for (const listItem of listItems) {\n const isSelected = values.some(v => isDeepEqual(v, listItem.value));\n listItem.selected = isSelected;\n\n if (multiple) {\n const checkboxElement = listItem.querySelector(`[${LIST_DROPDOWN_CONSTANTS.attributes.CHECKBOX_ELEMENT}]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n }\n }\n\n public clearActiveOption(): void {\n const listItems = this._getListItemElements();\n listItems.forEach(li => li.active = false);\n }\n\n public syncWidth(sync: boolean, targetWidthCallback?: () => number): void {\n if (this._dropdownElement) {\n const propertyName = sync ? '--forge-popover-width' : '--forge-popover-min-width';\n this._dropdownElement.style.setProperty(propertyName, `${this._getTargetElementWidth(targetWidthCallback)}px`);\n }\n }\n\n public setOptions(config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n if (this._asyncElement && this._asyncElement.isConnected) {\n removeElement(this._asyncElement);\n }\n if (this._busyElement) {\n this._busyElement.style.display = 'none';\n }\n if (!this._listElement.isConnected) {\n this._dropdownElement.appendChild(this._listElement);\n }\n \n removeAllChildren(this._listElement);\n createListItems(config, this._listElement);\n\n if (this._headerElement && !this._headerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('afterbegin', this._headerElement);\n }\n if (this._footerElement && !this._footerElement.isConnected) {\n this._dropdownElement.insertAdjacentElement('beforeend', this._footerElement);\n }\n if ('position' in this._dropdownElement && typeof this._dropdownElement.position === 'function') {\n this._dropdownElement.position();\n }\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>, config: IListDropdownOpenConfig): void {\n if (!this._dropdownElement || !this._listElement) {\n return;\n }\n createListItems(config, this._listElement, options, this._listElement.childElementCount, false);\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n if (isVisible) {\n this._busyElement.style.removeProperty('display');\n } else {\n this._busyElement.style.display = 'none';\n }\n }\n\n public getScreenWidth(): number {\n return window.innerWidth;\n }\n\n private _getListItemElements(): IListItemComponent[] {\n return this._dropdownElement ? Array.from(this._dropdownElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[] : [];\n }\n\n private _toggleSelectedOption(listItem: IListItemComponent, isSelected: boolean): void {\n if (!this._dropdownElement) {\n return;\n }\n\n // First we need to remove the active state from any other list items\n const listItems = this._getListItemElements();\n if (listItems.length) {\n const activeItems = listItems.filter(li => li !== listItem && li.active);\n activeItems.forEach(ai => ai.active = false);\n }\n\n // Now we can toggle the selected state and sync the active state\n listItem.selected = isSelected;\n listItem.setAttribute('aria-selected', `${isSelected}`);\n listItem.setAttribute('aria-checked', `${isSelected}`);\n\n // Toggle the checkbox icon based on the selected state\n const checkboxElement = listItem.querySelector(`${ICON_CONSTANTS.elementName}[slot=leading]`) as IIconComponent;\n if (checkboxElement) {\n const newCheckboxElement = createCheckboxElement(isSelected);\n replaceElement(newCheckboxElement, checkboxElement);\n }\n }\n\n private _getTargetElementWidth(cb?: () => number): number {\n if (cb && isFunction(cb)) {\n return cb();\n }\n return this._targetElement.getBoundingClientRect().width;\n }\n\n private _activateListOption(listItem: IListItemComponent | undefined, activeChangeCallback?: (id: string) => void): void {\n if (listItem && !listItem.disabled) {\n listItem.active = true;\n if (activeChangeCallback && isFunction(activeChangeCallback)) {\n activeChangeCallback(listItem.id);\n }\n }\n }\n\n private _scrollListItemIntoView(listItem: HTMLElement | undefined, behavior: 'auto' | 'smooth' = 'auto', block: 'nearest' | 'center' = 'nearest'): void {\n if (listItem && this._dropdownElement && this._dropdownElement.isConnected) {\n const scrollContainer = getShadowElement(this._dropdownElement, POPOVER_CONSTANTS.selectors.SURFACE) as HTMLElement;\n if (scrollContainer) {\n tryScrollIntoView(scrollContainer, listItem, behavior, block);\n }\n }\n }\n\n private _getSelectedListItem(): IListItemComponent | undefined {\n const listItems = this._getListItemElements();\n return listItems.find(li => li.selected);\n }\n}\n", "import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';\n\nimport { IListDropdownConfig, IListDropdownOption, IListDropdownOptionGroup } from './list-dropdown-constants';\nimport { ListDropdownFoundation } from './list-dropdown-foundation';\nimport { ListDropdownAdapter } from './list-dropdown-adapter';\nimport { IconRegistry } from '../icon';\n\nexport interface IListDropdown {\n dropdownElement: HTMLElement | undefined;\n open(): void;\n close(): Promise<void>;\n destroy(): void;\n getActiveOptionIndex(): number;\n getActiveOption(): IListDropdownOption | undefined;\n toggleOptionMultiple(index: number, isSelected: boolean): void;\n activateSelectedOption(): void;\n activateFirstOption(): number;\n activateOption(index: number): void;\n activateInitialOption(): void;\n clearActiveOption(): void;\n setSelectedValues(values: any[]): void;\n setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void;\n scrollSelectedOptionIntoView(animate?: boolean): void;\n setScrollBottomListener(listener: () => void, threshold?: number): void;\n removeScrollBottomListener(): void;\n setBusyVisibility(isVisible: boolean): void;\n handleKey(key: string): void;\n}\n\nexport class ListDropdown implements IListDropdown {\n private _foundation: ListDropdownFoundation;\n\n constructor(private _targetElement: HTMLElement, config: IListDropdownConfig) {\n IconRegistry.define([tylIconCheckBox, tylIconCheckBoxOutlineBlank]);\n this._foundation = new ListDropdownFoundation(new ListDropdownAdapter(this._targetElement), config);\n }\n\n public destroy(): void {\n this._foundation.destroy();\n }\n\n /** Opens the dropdown. */\n public open(): void {\n this._foundation.open();\n }\n\n /** Closes the dropdown. */\n public close(): Promise<void> {\n return this._foundation.close();\n }\n\n /** Gets the currently highlighted option index in the dropdown. */\n public getActiveOptionIndex(): number {\n return this._foundation.getActiveOptionIndex();\n }\n\n public getActiveOption(): IListDropdownOption | undefined {\n return this._foundation.getActiveOption();\n }\n \n /** Toggles the selected option by index. Only applies when in multiselect mode. */\n public toggleOptionMultiple(index: number, isSelected: boolean): void {\n return this._foundation.toggleOptionMultiple(index, isSelected);\n }\n \n /** Activates the first selected option. */\n public activateSelectedOption(): void {\n this._foundation.activateSelectedOption();\n }\n\n /** Activates the first non-disabled option. */\n public activateFirstOption(): number {\n return this._foundation.activateFirstOption();\n }\n\n /** Activates (highlights) an option by index. */\n public activateOption(index: number): void {\n return this._foundation.activateOption(index);\n }\n\n /** Activates the first activatable option. */\n public activateInitialOption(): void {\n return this._foundation.activateInitialOption();\n }\n\n /** Clears the active option from the dropdown */\n public clearActiveOption(): void {\n this._foundation.clearActiveOption();\n }\n\n /** Sets the selected values. Only applies when in multiselect mode. */\n public setSelectedValues(values: any[]): void {\n return this._foundation.setSelectedValues(values);\n }\n\n public get dropdownElement(): HTMLElement | undefined {\n return this._foundation.dropdownElement;\n }\n\n public setOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.setOptions(options);\n }\n\n public appendOptions(options: Array<IListDropdownOption | IListDropdownOptionGroup>): void {\n this._foundation.appendOptions(options);\n }\n\n public scrollSelectedOptionIntoView(animate?: boolean): void {\n this._foundation.scrollSelectedOptionIntoView();\n }\n\n public setScrollBottomListener(listener: () => void, threshold?: number): void {\n this._foundation.setScrollBottomListener(listener, threshold);\n }\n\n public removeScrollBottomListener(): void {\n this._foundation.removeScrollBottomListener();\n }\n\n public setBusyVisibility(isVisible: boolean): void {\n this._foundation.setBusyVisibility(isVisible);\n }\n\n public handleKey(key: string): void {\n this._foundation.handleKey(key);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { ListDropdownHeaderBuilder, ListDropdownFooterBuilder } from './list-dropdown-constants';\n\nexport interface IListDropdownAwareFoundation extends ICustomElementFoundation {\n popupClasses: string | string[];\n popupHeaderBuilder: ListDropdownHeaderBuilder;\n popupFooterBuilder: ListDropdownHeaderBuilder;\n syncPopupWidth: boolean;\n optionLimit: number;\n observeScroll: boolean;\n observeScrollThreshold: number;\n constrainPopupWidth: boolean;\n wrapOptionText: boolean;\n}\n\nexport abstract class ListDropdownAwareFoundation implements IListDropdownAwareFoundation {\n protected _popupClasses: string | string[] = [];\n protected _popupHeaderBuilder: ListDropdownHeaderBuilder;\n protected _popupFooterBuilder: ListDropdownFooterBuilder;\n protected _syncPopupWidth = false;\n protected _optionLimit = 0;\n protected _observeScroll = false;\n protected _observeScrollThreshold = 0;\n protected _constrainPopupWidth = true;\n protected _wrapOptionText = false;\n\n public get syncPopupWidth(): boolean {\n return this._syncPopupWidth;\n }\n public set syncPopupWidth(value: boolean) {\n this._syncPopupWidth = value;\n }\n\n public get popupClasses(): string | string[] {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[]) {\n if (typeof value === 'string') {\n value = [value];\n }\n if (Array.isArray(value)) {\n this._popupClasses = value;\n }\n }\n\n public get observeScroll(): boolean {\n return this._observeScroll;\n }\n public set observeScroll(value: boolean) {\n this._observeScroll = value;\n }\n\n public get observeScrollThreshold(): number {\n return this._observeScrollThreshold;\n }\n public set observeScrollThreshold(value: number) {\n this._observeScrollThreshold = value;\n }\n\n public get optionLimit(): number {\n return this._optionLimit;\n }\n public set optionLimit(value: number) {\n this._optionLimit = value;\n }\n\n public get popupHeaderBuilder(): ListDropdownHeaderBuilder {\n return this._popupHeaderBuilder;\n }\n public set popupHeaderBuilder(value: ListDropdownHeaderBuilder) {\n this._popupHeaderBuilder = value;\n }\n\n public get popupFooterBuilder(): ListDropdownFooterBuilder {\n return this._popupFooterBuilder;\n }\n public set popupFooterBuilder(value: ListDropdownFooterBuilder) {\n this._popupFooterBuilder = value;\n }\n\n public get constrainPopupWidth(): boolean {\n return this._constrainPopupWidth;\n }\n public set constrainPopupWidth(value: boolean) {\n this._constrainPopupWidth = value;\n }\n\n public get wrapOptionText(): boolean {\n return this._wrapOptionText;\n }\n public set wrapOptionText(value: boolean) {\n this._wrapOptionText = value;\n }\n\n protected _applySelection(): void {}\n}\n", "import { IListDropdownAwareFoundation, ListDropdownAwareFoundation } from './list-dropdown-aware-foundation';\n\nexport interface ICascadingListDropdownAwareFoundation extends IListDropdownAwareFoundation {}\n\nexport interface ICascadingListDropdownAwareFoundationConfiguration {\n popupTimeout: number;\n targetTimeout: number;\n}\n\nexport abstract class CascadingListDropdownAwareFoundation<T> extends ListDropdownAwareFoundation implements ICascadingListDropdownAwareFoundation {\n protected _open = false;\n protected _options: T[] = [];\n protected _childOpen = false;\n protected _popupHasMouse = false; // Used to determine if the popup element is under the users mouse\n protected _mouseCoords: { x: number; y: number };\n protected _activeMouseLeaveTimeout: number;\n protected _targetMouseEnterListener: (evt: MouseEvent) => void;\n protected _targetMouseLeaveListener: (evt: MouseEvent) => void;\n protected _childPopupMouseEnterListener: (evt: MouseEvent) => void;\n protected _childPopupMouseLeaveListener: (evt: MouseEvent) => void;\n protected _documentMouseMoveListener: (evt: MouseEvent) => void;\n \n protected abstract _attachCascadingListeners(): void;\n protected abstract _detachCascadingListeners(): void;\n protected abstract _onCascadingOptionSelected(data: any): void;\n protected abstract _onCascadingChildOpen(index: number): void;\n protected abstract _onCascadingChildClose(index: number): void;\n protected abstract _closeDropdown(): void;\n protected abstract _openDropdown({ fromKeyboard }: { fromKeyboard?: boolean }): void;\n protected abstract _setCascadeTargetInactive(): void;\n protected abstract _isOwnElement(element: Element): boolean;\n\n constructor(private _config: ICascadingListDropdownAwareFoundationConfiguration) {\n super();\n this._targetMouseEnterListener = evt => this._onTargetMouseEnter(evt);\n this._targetMouseLeaveListener = evt => this._onTargetMouseLeave(evt);\n this._childPopupMouseEnterListener = () => this._onChildPopupMouseEnter();\n this._childPopupMouseLeaveListener = () => this._onChildPopupMouseLeave();\n this._documentMouseMoveListener = evt => this._mouseCoords = { x: evt.pageX, y: evt.pageY };\n }\n\n private _onChildPopupMouseEnter(): void {\n this._popupHasMouse = true;\n }\n\n private _onChildPopupMouseLeave(): void {\n this._popupHasMouse = false;\n setTimeout(() => {\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (!this._popupHasMouse && !this._childOpen && (!mouseElement || !this._isOwnElement(mouseElement))) {\n this._setCascadeTargetInactive();\n this._closeDropdown();\n }\n }, this._config.popupTimeout);\n }\n\n private _onTargetMouseEnter(evt: MouseEvent): void {\n if (!this._options.length) {\n return;\n }\n this._openDropdown({ fromKeyboard: false });\n }\n\n private _onTargetMouseLeave(evt: MouseEvent): void {\n // We wrap this in a timeout to allow for the user to take an indirect path toward an open child menu. This\n // allows for the popup to stay open while the user is moving their mouse to it (makes the transition easier and more smooth)\n this._activeMouseLeaveTimeout = window.setTimeout(() => {\n // Ignore this if our open state has changed, or if we have a child popup open now\n if (!this._open || this._childOpen) {\n return;\n }\n if (this._mouseCoords) {\n // We ignore this event if the mouse moved to an element within our own popup\n const mouseElement = document.elementFromPoint(this._mouseCoords.x, this._mouseCoords.y);\n if (mouseElement && this._isOwnElement(mouseElement)) {\n return;\n }\n }\n this._setCascadeTargetInactive();\n this._closeDropdown();\n }, this._config.targetTimeout);\n }\n\n protected _clearMouseLeaveTimeout(): void {\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["attributes", "classes", "LIST_DROPDOWN_CONSTANTS", "DEFAULT_LIST_DROPDOWN_CONFIG", "ListDropdownType", "ListDropdownAsyncStyle", "EventAware", "type", "data", "listeners", "cb", "listener", "ScrollDirection", "ScrollEvents", "DEFAULT_SCROLL_THROTTLE", "ScrollAxisObserver", "EventAware", "_element", "_config", "wait", "throttle", "isDefined", "isNumber", "isVertical", "isHorizontal", "position", "direction", "ScrollDirection", "ScrollEvents", "scrollStart", "scrollEnd", "createDropdown", "config", "targetElement", "dropdownElement", "createPopupDropdown", "dropdownId", "evt", "composedPath", "getEventPath", "el", "LIST_DROPDOWN_CONSTANTS", "addClass", "_a", "popoverElement", "POPOVER_CONSTANTS", "createList", "listElement", "LIST_CONSTANTS", "createListItems", "options", "startIndex", "renderSelected", "groups", "getOptionsByGroup", "flatOptions", "getFlattenedOptions", "limitOptions", "optionLimit", "optionIdIndex", "group", "optionParent", "headerElement", "groupWrapper", "listHeaderElement", "option", "dividerElement", "createDivider", "isSelected", "v", "isDeepEqual", "listItemElement", "element", "result", "secondaryLabelElement", "checkboxElement", "createCheckboxElement", "value", "key", "isObject", "leadingIconElement", "createIconElement", "trailingIconElement", "optionIconElement", "factoryConfig", "o", "cascadingElement", "selected", "tylIconCheckBox", "tylIconCheckBoxOutlineBlank", "divider", "type", "iconName", "iconClass", "componentProps", "icon", "iconElement", "ICON_CLASS_NAME", "createAsyncElement", "asyncStyle", "createSkeletonElement", "createSpinnerElement", "div", "spinner", "list", "i", "listItemSkeleton", "SKELETON_CONSTANTS", "createBusyElement", "linearProgress", "LINEAR_PROGRESS_CONSTANTS", "isListDropdownOptionType", "isOptionGroups", "isDefined", "isOptionTypes", "flatOpts", "ListDropdownFoundation", "_adapter", "config", "__spreadValues", "DEFAULT_LIST_DROPDOWN_CONFIG", "value", "id", "sync", "index", "isSelected", "o", "options", "animate", "values", "listener", "threshold", "isVisible", "key", "activeOptionIndex", "activeOption", "option", "startIndex", "getFlattenedOptions", "ListDropdownAdapter", "_targetElement", "config", "selectCallback", "closeCb", "_a", "_b", "createDropdown", "createBusyElement", "LIST_DROPDOWN_CONSTANTS", "createList", "evt", "createListItems", "createAsyncElement", "createVisuallyHiddenElement", "hostDocument", "closestElement", "POPOVER_CONSTANTS", "listener", "scrollThreshold", "scrollConfig", "scrollContainer", "getShadowElement", "ScrollAxisObserver", "ScrollEvents", "listItems", "activeListItem", "li", "index", "item", "isSelected", "animate", "listItem", "activeChangeCallback", "values", "multiple", "v", "isDeepEqual", "checkboxElement", "newCheckboxElement", "createCheckboxElement", "replaceElement", "sync", "targetWidthCallback", "propertyName", "removeElement", "removeAllChildren", "options", "isVisible", "LIST_ITEM_CONSTANTS", "ai", "ICON_CONSTANTS", "cb", "isFunction", "behavior", "block", "tryScrollIntoView", "ListDropdown", "_targetElement", "config", "IconRegistry", "tylIconCheckBox", "tylIconCheckBoxOutlineBlank", "ListDropdownFoundation", "ListDropdownAdapter", "index", "isSelected", "values", "options", "animate", "listener", "threshold", "isVisible", "key", "ListDropdownAwareFoundation", "value", "CascadingListDropdownAwareFoundation", "ListDropdownAwareFoundation", "_config", "evt", "mouseElement"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{b as _,d as m}from"./chunk.FLF5RTYO.js";import{a as v,p as f}from"./chunk.ASLHRT3N.js";import{a as g}from"./chunk.HSADKCGS.js";import{a as c,b as h}from"./chunk.VRSPT7WX.js";import{a as b,e as l,f as a,k as p}from"./chunk.LNTTU2GL.js";import{j as d,r as u}from"./chunk.L4QSPQDE.js";import{k as i}from"./chunk.J2M2MXP2.js";import{d as s}from"./chunk.M3QDAYD2.js";var E=`${h}deprecated-button`,w={TYPE:"type",DISABLED:"disabled",FULL_WIDTH:"full-width"},C={BUTTON:"button,a"},e={elementName:E,attributes:w,selectors:C};var T='<template><slot></slot><forge-focus-indicator part="focus-indicator"></forge-focus-indicator><forge-state-layer exportparts="surface:state-layer"></forge-state-layer></template>',B=':host{--_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-color, var(--forge-theme-surface-container, #e0e0e0));--_button-padding:var(--forge-button-padding, 8px);--_button-display:var(--forge-button-display, inline-flex);--_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-tonal-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-cursor:var(--forge-button-disabled-cursor, not-allowed);--_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-text-focus-indicator-offset, 0px);--_button-link-focus-indicator-offset:var(--forge-button-link-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)}:host{display:var(--_button-display);position:relative;outline:0;-webkit-tap-highlight-color:transparent;border-radius:var(--_button-shape)}:host([hidden]){display:none}::slotted(:is(button,a)){-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-icon-font-size:1.25em}::slotted(:is(button,a))::-moz-focus-inner{padding:0;border:0}::slotted(:is(button,a)):hover{--_button-shadow:var(--_button-hover-shadow);background:var(--_button-hover-background)}::slotted(:is(button,a)):active{--_button-shadow:var(--_button-active-shadow);background:var(--_button-active-background)}::slotted(a){text-decoration:none;--forge-typography-link-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(:is(:not([type],[type*=text]))) ::slotted(:is(button,a)){--_button-focus-indicator-offset:var(--_button-text-focus-indicator-offset)}:host(:is([type*=unelevated],[type*=raised])) ::slotted(:is(button,a)){--_button-background:var(--_button-filled-background);--_button-color:var(--_button-filled-color)}:host(:is([type*=unelevated],[type*=raised])) forge-state-layer{--forge-state-layer-color:var(--_button-filled-color)}:host([type*=raised]) ::slotted(:is(button,a)){--_button-shadow:var(--_button-raised-shadow)}:host([type*=raised]) ::slotted(:is(button,a)):hover{--_button-shadow:var(--_button-raised-hover-shadow)}:host([type*=raised]) ::slotted(:is(button,a)):active{--_button-shadow:var(--_button-raised-active-shadow)}:host([type*=outlined]) ::slotted(:is(button,a)){--_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([full-width]){width:100%}:host(:is([dense],[type*=dense])) ::slotted(:is(button,a)){--_button-height:var(--_button-dense-height)}:host([disabled]){cursor:var(--_button-disabled-cursor)}:host([disabled]) ::slotted(button[disabled]){--_button-background:var(--_button-disabled-background);--_button-color:var(--_button-disabled-text-color);--_button-shadow:var(--_button-disabled-shadow);pointer-events:none}:host([type*=outlined][disabled]) ::slotted(button[disabled]){--_button-border-color:var(--_button-disabled-border-color)}:host(:is([type*=unelevated],[type*=raised])[disabled]) ::slotted(button[disabled]){--_button-background:var(--_button-filled-disabled-background);--_button-color:var(--_button-filled-disabled-color)}:host([type*=raised][disabled]) ::slotted(button[disabled]){--_button-shadow:var(--_button-raised-disabled-shadow)}',r=class extends p{constructor(){super();this._buttonOrAnchorElement=null;this._disabled=!1;this._fullWidth=!1;this._buttonChangeListener=this._onButtonChange.bind(this);this._keydownListener=t=>this._onKeydown(t);l(this,T,B),this._slotElement=a(this,"slot:not([name])"),this._focusIndicator=a(this,_.elementName),this._stateLayer=a(this,v.elementName)}static get observedAttributes(){return Object.values(e.attributes)}connectedCallback(){this._slotElement.addEventListener("slotchange",this._buttonChangeListener),this.children.length?this._initialize():d(this).then(()=>this._initialize())}disconnectedCallback(){this._detachButton()}attributeChangedCallback(t,o,n){switch(t){case e.attributes.TYPE:this.type=n;return;case e.attributes.DISABLED:this.disabled=i(n);return;case e.attributes.FULL_WIDTH:this.fullWidth=i(n);return}}_onKeydown(t){(t.key==="Enter"||t.key===" ")&&this._stateLayer.playAnimation()}_onButtonChange(){this._detachButton(),this._initialize()}_initialize(){this._buttonOrAnchorElement=this.querySelector(e.selectors.BUTTON),this._buttonOrAnchorElement&&(this._stateLayer.targetElement=this._buttonOrAnchorElement,this._focusIndicator.targetElement=this._buttonOrAnchorElement,this._buttonOrAnchorElement.addEventListener("keydown",this._keydownListener),this._buttonOrAnchorElement instanceof HTMLButtonElement&&this._disabled&&!this._buttonOrAnchorElement.disabled?this._buttonOrAnchorElement.disabled=!0:this.disabled=this._buttonOrAnchorElement instanceof HTMLButtonElement&&this._buttonOrAnchorElement.disabled,this._buttonOrAnchorElement instanceof HTMLButtonElement&&(this._buttonAttrMutationObserver=new MutationObserver(t=>{t.some(o=>o.attributeName==="disabled")&&this._syncDisabledState()}),this._buttonAttrMutationObserver.observe(this._buttonOrAnchorElement,{attributes:!0,attributeFilter:["disabled"]})))}_syncDisabledState(){let t=this._buttonOrAnchorElement instanceof HTMLButtonElement&&this._buttonOrAnchorElement.disabled;u(this,t,e.attributes.DISABLED)}_detachButton(){var t;(t=this._buttonOrAnchorElement)==null||t.removeEventListener("keydown",this._keydownListener),this._buttonAttrMutationObserver&&(this._buttonAttrMutationObserver.disconnect(),this._buttonAttrMutationObserver=void 0)}get type(){return this._type}set type(t){this._type!==t&&(this._type=t,this.setAttribute(e.attributes.TYPE,this._type))}get disabled(){return this._disabled}set disabled(t){var o;this._disabled!==t&&(this._disabled=t,(o=this._buttonOrAnchorElement)==null||o.toggleAttribute(e.attributes.DISABLED,this._disabled),this.toggleAttribute(e.attributes.DISABLED,this._disabled))}get fullWidth(){return this._fullWidth}set fullWidth(t){this._fullWidth!==t&&(this._fullWidth=t,this.toggleAttribute(e.attributes.FULL_WIDTH,this._fullWidth))}focus(t){var o;(o=this._buttonOrAnchorElement)==null||o.focus(t)}};r=s([c({name:e.elementName,dependencies:[m,f]})],r);var y=class extends g{constructor(t){super(t)}destroy(){this._buttonElement=void 0}get buttonElement(){return this._buttonElement}_build(){var o,n;let t=document.createElement(e.elementName);return this._buttonElement=document.createElement("button"),this._buttonElement.type=((o=this._config.options)==null?void 0:o.type)||"button",this._buttonElement.textContent=((n=this._config.options)==null?void 0:n.text)||"",t.appendChild(this._buttonElement),t}onClick(t){var o;(o=this._buttonElement)==null||o.addEventListener("click",t)}onFocus(t){var o;(o=this._buttonElement)==null||o.addEventListener("focus",n=>t(n))}onBlur(t){var o;(o=this._buttonElement)==null||o.addEventListener("blur",n=>t(n))}};function $(){b(r)}export{e as a,r as b,y as c,$ as d};
|
|
7
|
+
//# sourceMappingURL=chunk.7IPAW4D2.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/deprecated/button/deprecated-button-constants.ts", "../../src/deprecated/button/deprecated-button.ts", "../../src/deprecated/button/deprecated-button-component-delegate.ts", "../../src/deprecated/button/index.ts"],
|
|
4
4
|
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}deprecated-button`;\n\nconst attributes = {\n TYPE: 'type',\n DISABLED: 'disabled',\n FULL_WIDTH: 'full-width'\n};\n\nconst selectors = {\n BUTTON: 'button,a'\n};\n\nexport const DEPRECATED_BUTTON_CONSTANTS = {\n elementName,\n attributes,\n selectors\n};\n\nexport type DeprecatedButtonType = 'text' | 'raised' | 'unelevated' | 'outlined' | 'dense';\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, ensureChildren, getShadowElement, toggleAttribute } from '@tylertech/forge-core';\nimport { FocusIndicatorComponent, FOCUS_INDICATOR_CONSTANTS, IFocusIndicatorComponent } from '../../focus-indicator';\nimport { IStateLayerComponent, StateLayerComponent, STATE_LAYER_CONSTANTS } from '../../state-layer';\nimport { DeprecatedButtonType, DEPRECATED_BUTTON_CONSTANTS } from './deprecated-button-constants';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\n\nconst template = '<template><slot></slot><forge-focus-indicator part=\\\"focus-indicator\\\"></forge-focus-indicator><forge-state-layer exportparts=\\\"surface:state-layer\\\"></forge-state-layer></template>';\nconst styles = ':host{--_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-color, var(--forge-theme-surface-container, #e0e0e0));--_button-padding:var(--forge-button-padding, 8px);--_button-display:var(--forge-button-display, inline-flex);--_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-tonal-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-cursor:var(--forge-button-disabled-cursor, not-allowed);--_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-text-focus-indicator-offset, 0px);--_button-link-focus-indicator-offset:var(--forge-button-link-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)}:host{display:var(--_button-display);position:relative;outline:0;-webkit-tap-highlight-color:transparent;border-radius:var(--_button-shape)}:host([hidden]){display:none}::slotted(:is(button,a)){-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-icon-font-size:1.25em}::slotted(:is(button,a))::-moz-focus-inner{padding:0;border:0}::slotted(:is(button,a)):hover{--_button-shadow:var(--_button-hover-shadow);background:var(--_button-hover-background)}::slotted(:is(button,a)):active{--_button-shadow:var(--_button-active-shadow);background:var(--_button-active-background)}::slotted(a){text-decoration:none;--forge-typography-link-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(:is(:not([type],[type*=text]))) ::slotted(:is(button,a)){--_button-focus-indicator-offset:var(--_button-text-focus-indicator-offset)}:host(:is([type*=unelevated],[type*=raised])) ::slotted(:is(button,a)){--_button-background:var(--_button-filled-background);--_button-color:var(--_button-filled-color)}:host(:is([type*=unelevated],[type*=raised])) forge-state-layer{--forge-state-layer-color:var(--_button-filled-color)}:host([type*=raised]) ::slotted(:is(button,a)){--_button-shadow:var(--_button-raised-shadow)}:host([type*=raised]) ::slotted(:is(button,a)):hover{--_button-shadow:var(--_button-raised-hover-shadow)}:host([type*=raised]) ::slotted(:is(button,a)):active{--_button-shadow:var(--_button-raised-active-shadow)}:host([type*=outlined]) ::slotted(:is(button,a)){--_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([full-width]){width:100%}:host(:is([dense],[type*=dense])) ::slotted(:is(button,a)){--_button-height:var(--_button-dense-height)}:host([disabled]){cursor:var(--_button-disabled-cursor)}:host([disabled]) ::slotted(button[disabled]){--_button-background:var(--_button-disabled-background);--_button-color:var(--_button-disabled-text-color);--_button-shadow:var(--_button-disabled-shadow);pointer-events:none}:host([type*=outlined][disabled]) ::slotted(button[disabled]){--_button-border-color:var(--_button-disabled-border-color)}:host(:is([type*=unelevated],[type*=raised])[disabled]) ::slotted(button[disabled]){--_button-background:var(--_button-filled-disabled-background);--_button-color:var(--_button-filled-disabled-color)}:host([type*=raised][disabled]) ::slotted(button[disabled]){--_button-shadow:var(--_button-raised-disabled-shadow)}';\n\n/**\n * @deprecated Use `IButtonComponent` component instead.\n */\nexport interface IDeprecatedButtonComponent extends IBaseComponent {\n type: string;\n disabled: boolean;\n fullWidth: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-deprecated-button': IDeprecatedButtonComponent;\n }\n}\n\n/**\n * @tag forge-deprecated-button\n * \n * @deprecated Use the `<forge-button>` element instead.\n */\n@CustomElement({\n name: DEPRECATED_BUTTON_CONSTANTS.elementName,\n dependencies: [\n FocusIndicatorComponent,\n StateLayerComponent\n ]\n})\nexport class DeprecatedButtonComponent extends BaseComponent implements IDeprecatedButtonComponent {\n public static get observedAttributes(): string[] {\n return Object.values(DEPRECATED_BUTTON_CONSTANTS.attributes);\n }\n\n private _slotElement: HTMLSlotElement;\n private _focusIndicator: IFocusIndicatorComponent;\n private _stateLayer: IStateLayerComponent;\n private _buttonOrAnchorElement: HTMLButtonElement | HTMLAnchorElement | null = null;\n private _type: DeprecatedButtonType;\n private _disabled = false;\n private _fullWidth = false;\n private _buttonChangeListener = this._onButtonChange.bind(this);\n private _buttonAttrMutationObserver: MutationObserver | undefined;\n private _keydownListener = (evt: KeyboardEvent): void => this._onKeydown(evt);\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._slotElement = getShadowElement(this, 'slot:not([name])') as HTMLSlotElement;\n this._focusIndicator = getShadowElement(this, FOCUS_INDICATOR_CONSTANTS.elementName) as IFocusIndicatorComponent;\n this._stateLayer = getShadowElement(this, STATE_LAYER_CONSTANTS.elementName) as IStateLayerComponent;\n }\n\n public connectedCallback(): void {\n this._slotElement.addEventListener('slotchange', this._buttonChangeListener);\n\n if (this.children.length) {\n this._initialize();\n } else {\n ensureChildren(this).then(() => this._initialize());\n }\n }\n\n public disconnectedCallback(): void {\n this._detachButton();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case DEPRECATED_BUTTON_CONSTANTS.attributes.TYPE:\n this.type = newValue as DeprecatedButtonType;\n return;\n case DEPRECATED_BUTTON_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n return;\n case DEPRECATED_BUTTON_CONSTANTS.attributes.FULL_WIDTH:\n this.fullWidth = coerceBoolean(newValue);\n return;\n }\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n if (evt.key === 'Enter' || evt.key === ' ') {\n this._stateLayer.playAnimation();\n }\n }\n\n private _onButtonChange(): void {\n this._detachButton();\n this._initialize();\n }\n\n private _initialize(): void {\n this._buttonOrAnchorElement = this.querySelector<HTMLButtonElement | HTMLAnchorElement>(DEPRECATED_BUTTON_CONSTANTS.selectors.BUTTON);\n if (!this._buttonOrAnchorElement) {\n return;\n }\n\n this._stateLayer.targetElement = this._buttonOrAnchorElement;\n this._focusIndicator.targetElement = this._buttonOrAnchorElement;\n\n this._buttonOrAnchorElement.addEventListener('keydown', this._keydownListener);\n \n // Sync disabled state\n if (this._buttonOrAnchorElement instanceof HTMLButtonElement && this._disabled && !this._buttonOrAnchorElement.disabled) {\n this._buttonOrAnchorElement.disabled = true;\n } else {\n this.disabled = this._buttonOrAnchorElement instanceof HTMLButtonElement && this._buttonOrAnchorElement.disabled;\n }\n\n // Listen for disabled attribute changes on the button\n if (this._buttonOrAnchorElement instanceof HTMLButtonElement) {\n this._buttonAttrMutationObserver = new MutationObserver(mutationList => {\n if (mutationList.some(mutation => mutation.attributeName === 'disabled')) {\n this._syncDisabledState();\n }\n });\n this._buttonAttrMutationObserver.observe(this._buttonOrAnchorElement, { attributes: true, attributeFilter: ['disabled'] });\n }\n }\n\n private _syncDisabledState(): void {\n const isDisabled = this._buttonOrAnchorElement instanceof HTMLButtonElement && this._buttonOrAnchorElement.disabled;\n toggleAttribute(this, isDisabled, DEPRECATED_BUTTON_CONSTANTS.attributes.DISABLED);\n }\n\n private _detachButton(): void {\n this._buttonOrAnchorElement?.removeEventListener('keydown', this._keydownListener);\n\n if (this._buttonAttrMutationObserver) {\n this._buttonAttrMutationObserver.disconnect();\n this._buttonAttrMutationObserver = undefined;\n }\n }\n\n public get type(): DeprecatedButtonType {\n return this._type;\n }\n public set type(value: DeprecatedButtonType) {\n if (this._type !== value) {\n this._type = value;\n this.setAttribute(DEPRECATED_BUTTON_CONSTANTS.attributes.TYPE, this._type);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._buttonOrAnchorElement?.toggleAttribute(DEPRECATED_BUTTON_CONSTANTS.attributes.DISABLED, this._disabled);\n this.toggleAttribute(DEPRECATED_BUTTON_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n\n public get fullWidth(): boolean {\n return this._fullWidth;\n }\n public set fullWidth(value: boolean) {\n if (this._fullWidth !== value) {\n this._fullWidth = value;\n this.toggleAttribute(DEPRECATED_BUTTON_CONSTANTS.attributes.FULL_WIDTH, this._fullWidth);\n }\n }\n\n public override focus(options?: FocusOptions | undefined): void {\n this._buttonOrAnchorElement?.focus(options);\n }\n}\n", "import { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../../core/delegates/base-component-delegate';\nimport { IDeprecatedButtonComponent } from './deprecated-button';\nimport { DEPRECATED_BUTTON_CONSTANTS } from './deprecated-button-constants';\n\nexport type DeprecatedButtonComponentDelegateProps = Partial<IDeprecatedButtonComponent>;\nexport interface IDeprecatedButtonComponentDelegateOptions extends IBaseComponentDelegateOptions {\n type?: 'button' | 'submit';\n text?: string;\n}\nexport interface IDeprecatedButtonComponentDelegateConfig extends IBaseComponentDelegateConfig<IDeprecatedButtonComponent, IDeprecatedButtonComponentDelegateOptions> {}\n\nexport class DeprecatedButtonComponentDelegate extends BaseComponentDelegate<IDeprecatedButtonComponent, IDeprecatedButtonComponentDelegateOptions> {\n private _buttonElement?: HTMLButtonElement;\n\n constructor(config?: IDeprecatedButtonComponentDelegateConfig) {\n super(config);\n }\n\n public override destroy(): void {\n this._buttonElement = undefined;\n }\n\n public get buttonElement(): HTMLButtonElement | undefined {\n return this._buttonElement;\n }\n\n protected _build(): IDeprecatedButtonComponent {\n const component = document.createElement(DEPRECATED_BUTTON_CONSTANTS.elementName);\n\n this._buttonElement = document.createElement('button');\n this._buttonElement.type = this._config.options?.type || 'button';\n this._buttonElement.textContent = this._config.options?.text || '';\n component.appendChild(this._buttonElement);\n\n return component;\n }\n\n public onClick(listener: (evt: MouseEvent) => void): void {\n this._buttonElement?.addEventListener('click', listener);\n }\n\n public onFocus(listener: (evt: Event) => void): void {\n this._buttonElement?.addEventListener('focus', evt => listener(evt));\n }\n\n public onBlur(listener: (evt: Event) => void): void {\n this._buttonElement?.addEventListener('blur', evt => listener(evt));\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { DeprecatedButtonComponent } from './deprecated-button';\n\nexport * from './deprecated-button';\nexport * from './deprecated-button-component-delegate';\nexport * from './deprecated-button-constants';\n\n/**\n * @deprecated Use `defineButtonComponent()` instead for the `<forge-button>` element.\n */\nexport function defineDeprecatedButtonComponent(): void {\n defineCustomElement(DeprecatedButtonComponent);\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "selectors", "DEPRECATED_BUTTON_CONSTANTS", "template", "styles", "DeprecatedButtonComponent", "BaseComponent", "evt", "attachShadowTemplate", "getShadowElement", "FOCUS_INDICATOR_CONSTANTS", "STATE_LAYER_CONSTANTS", "DEPRECATED_BUTTON_CONSTANTS", "ensureChildren", "name", "oldValue", "newValue", "coerceBoolean", "mutationList", "mutation", "isDisabled", "toggleAttribute", "_a", "value", "options", "__decorateClass", "CustomElement", "FocusIndicatorComponent", "StateLayerComponent", "DeprecatedButtonComponentDelegate", "BaseComponentDelegate", "config", "_a", "_b", "component", "DEPRECATED_BUTTON_CONSTANTS", "listener", "evt", "defineDeprecatedButtonComponent", "defineCustomElement", "DeprecatedButtonComponent"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{a as G}from"./chunk.BEFAXPXJ.js";import{a as z}from"./chunk.MFQRXVKO.js";import{a as T}from"./chunk.INQZNXG6.js";import{d as N}from"./chunk.FLF5RTYO.js";import{p as P}from"./chunk.ASLHRT3N.js";import{a as H,b as q}from"./chunk.BQ52JYLA.js";import{c as _}from"./chunk.BX4AQRHB.js";import{a as h}from"./chunk.NVUMRW44.js";import{a as I}from"./chunk.OLFOVKQG.js";import{a as C,b as w,g as x,h as S,j as D,k as m,l as F,m as u,n as p}from"./chunk.VRSPT7WX.js";import{a as E,e as L,f,k as A}from"./chunk.LNTTU2GL.js";import{k as b}from"./chunk.J2M2MXP2.js";import{a as R,d as c}from"./chunk.M3QDAYD2.js";var l=class l{static getRadioGroup(e,{rootNode:t,form:a}={}){var r;if(!e.name)return[e];if(!e.form&&!a){let M=(t!=null?t:e.getRootNode()).querySelectorAll(`${i.elementName}[name=${e.name}]`);return Array.from(M).filter(U=>!U.form)}let o=((r=e.form)!=null?r:a).elements.namedItem(e.name);return o&&Object.prototype.isPrototypeOf.call(RadioNodeList.prototype,o)?Array.from(o).filter(s=>s.matches(i.elementName)):[e]}static setRadioGroupValidity(e){let t=l.getRadioGroup(e),a=l._selectionIsRequired(t);t.forEach(o=>{if(!o.shadowRoot)return;let r=o[D]({required:a,checked:o.checked});o[m].setValidity({valueMissing:a},r)})}static setSelectedRadioInGroup(e){l.getRadioGroup(e).forEach(a=>a.checked=a===e)}static syncRadioFocusableState(e,{ignoreSelf:t,rootNode:a,form:o}={ignoreSelf:!1}){let r=l.getRadioGroup(e,{rootNode:a,form:o});if(r=r.filter(s=>t&&s!==e||s.shadowRoot),!r.some(s=>s.checked)){r.forEach(s=>s[u]=!s.disabled);return}r.forEach(s=>s[u]=s.checked&&!s.disabled)}static focusNextRadioInGroup(e){l._updateRadioGroupFocus(e,1)}static focusPreviousRadioInGroup(e){l._updateRadioGroupFocus(e,-1)}static setUncheckedRadioGroupFocus(e,t){let a=l.getRadioGroup(e);if(t==="focus"){a.forEach(o=>o[u]=o===e);return}(!e.checked||a[0]===e||a[a.length-1]===e)&&a.forEach(o=>o[u]=!0)}static async requestRadioGroupReset(e){if(this._radiosRequestingReset.add(e),await _(),!this._radiosRequestingReset.has(e))return;let t=l.getRadioGroup(e),a=null;t.forEach(o=>{this._radiosRequestingReset.delete(o),o.defaultChecked&&(a=o)}),t.forEach(o=>{o.checked=o===a,o[u]=!a||o.checked})}static _updateRadioGroupFocus(e,t){let a=l.getRadioGroup(e),o=a.indexOf(e),r=a[o];do if(o+=t,o<0?o=a.length-1:o>=a.length&&(o=0),r=a[o],r===e)return;while(r.disabled||r.readonly);r[v]()&&(r[u]=!0,r.focus(),a.forEach(s=>{s!==r&&(s[u]=!1,s.checked=!1)}))}static _selectionIsRequired(e){let t=!1,a=!1;return e.forEach(o=>{o.required&&(t=!0),o.checked&&(a=!0)}),t&&!a}};l._radiosRequestingReset=new WeakSet;var d=l;var B=`${w}radio`,O={CHECKED:"checked",DEFAULT_CHECKED:"default-checked",VALUE:"value",DENSE:"dense",DISABLED:"disabled",REQUIRED:"required",READONLY:"readonly",LABEL_POSITION:"label-position",TABINDEX:"tabindex"},K=R({},O),W={ROOT:".forge-radio",LABEL:"#label",STATE_LAYER:"forge-state-layer"},j={CHANGE:"change",INPUT:"input"},i={elementName:B,observedAttributes:O,attributes:K,selectors:W,events:j},v=Symbol("tryCheck");var g=class extends I{constructor(t){super(t);this._rootElement=f(t,i.selectors.ROOT),this._labelElement=f(t,i.selectors.LABEL),this._stateLayerElement=f(t,i.selectors.STATE_LAYER)}setChecked(t,a){this._component[p]({ariaChecked:t?"true":"false"}),t&&d.setSelectedRadioInGroup(this._component),d.syncRadioFocusableState(this._component);let o=t?a:null,r=t?"checked":"unchecked";this._component[m].setFormValue(o,r),d.setRadioGroupValidity(this._component)}trySetDisabled(t){let a=this._component.closest("forge-radio-group");return!t&&a&&a.disabled?!1:(this._component[p]({ariaDisabled:`${!!t}`}),d.syncRadioFocusableState(this._component),!0)}setRequired(t){this._component[p]({ariaRequired:t?"true":"false"},{setAttribute:!0}),d.setRadioGroupValidity(this._component)}setReadonly(t){this._component[p]({ariaDisabled:`${!!t}`})}disableStateLayer(t){this._stateLayerElement.disabled=t}setLabelPosition(t){this._labelElement.remove(),t==="start"?this._rootElement.prepend(this._labelElement):this._rootElement.append(this._labelElement)}setUncheckedRadioGroupFocus(t){d.setUncheckedRadioGroupFocus(this._component,t)}focusNext(){d.focusNextRadioInGroup(this._component)}focusPrevious(){d.focusPreviousRadioInGroup(this._component)}};var k=class{constructor(e){this._adapter=e;this._checked=!1;this._defaultChecked=!1;this._value="on";this._disabled=!1;this._required=!1;this._readonly=!1;this._dense=!1;this._labelPosition="end";this._focusListener=()=>this._handleFocus(),this._blurListener=()=>this._handleBlur(),this._clickListener=t=>this._handleClick(t),this._keydownListener=t=>this._handleKeydown(t),this._keyupListener=t=>this._handleKeyup(t)}initialize(){this._adapter.addHostListener("focus",this._focusListener),this._adapter.addHostListener("blur",this._blurListener),this._adapter.addHostListener("click",this._clickListener),this._adapter.addHostListener("keydown",this._keydownListener),this._adapter.addHostListener("keyup",this._keyupListener),this._adapter.setChecked(this._checked,this._value)}tryCheck(){return this._checked=!0,this._dispatchEvents()?(this._adapter.setChecked(this._checked,this._value),this._adapter.toggleHostAttribute(i.attributes.CHECKED,this._checked),!0):(this._checked=!1,!1)}_handleFocus(){this._checked||this._adapter.setUncheckedRadioGroupFocus("focus")}_handleBlur(){this._checked||this._adapter.setUncheckedRadioGroupFocus("blur")}_handleClick(e){this._activate(e)}_handleKeydown(e){switch(e.key){case"ArrowRight":case"ArrowDown":e.preventDefault(),this._adapter.focusNext();break;case"ArrowLeft":case"ArrowUp":e.preventDefault(),this._adapter.focusPrevious();break;case" ":e.preventDefault();break}}_handleKeyup(e){e.key===" "&&this._activate(e)}async _activate(e){if(!(this._checked||this._disabled||this._readonly)&&(await _(),!e.defaultPrevented)){if(this._checked=!0,!this._dispatchEvents()){this._checked=!1;return}this._adapter.setChecked(this._checked,this._value),this._adapter.toggleHostAttribute(i.attributes.CHECKED,this._checked)}}_dispatchEvents(){let e=new Event(i.events.CHANGE,{bubbles:!0,cancelable:!0}),t=new Event(i.events.INPUT,{bubbles:!0,cancelable:!0,composed:!0});return this._adapter.dispatchHostEvent(e),this._adapter.dispatchHostEvent(t),!(e.defaultPrevented||t.defaultPrevented)}get checked(){return this._checked}set checked(e){this._checked!==e&&(this._checked=e,this._adapter.setChecked(this._checked,this._value),this._adapter.toggleHostAttribute(i.attributes.CHECKED,this._checked))}get defaultChecked(){return this._defaultChecked}set defaultChecked(e){this._defaultChecked!==e&&(this._defaultChecked=e,this._adapter.toggleHostAttribute(i.attributes.DEFAULT_CHECKED,this._defaultChecked))}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this._adapter.setHostAttribute(i.attributes.VALUE,this._value))}get disabled(){return this._disabled}set disabled(e){this._disabled!==e&&(this._disabled=e,this._adapter.trySetDisabled(this._disabled)?(this._adapter.disableStateLayer(this._disabled||this._readonly),this._adapter.toggleHostAttribute(i.attributes.DISABLED,this._disabled)):this._disabled=!this._disabled)}get required(){return this._required}set required(e){this._required!==e&&(this._required=e,this._adapter.setRequired(this._required),this._adapter.toggleHostAttribute(i.attributes.REQUIRED,this._required))}get readonly(){return this._readonly}set readonly(e){this._readonly!==e&&(this._readonly=e,this._adapter.setReadonly(this._readonly),this._adapter.disableStateLayer(this._disabled||this._readonly),this._adapter.toggleHostAttribute(i.attributes.READONLY,this._readonly))}get dense(){return this._dense}set dense(e){this._dense!==e&&(this._dense=e,this._adapter.toggleHostAttribute(i.attributes.DENSE,this._dense))}get labelPosition(){return this._labelPosition}set labelPosition(e){this._labelPosition!==e&&(this._labelPosition=e,this._adapter.setLabelPosition(this._labelPosition),this._adapter.setHostAttribute(i.attributes.LABEL_POSITION,this._labelPosition))}};var V='<template><div id="radio" class="forge-radio" part="root"><div id="container" class="container" aria-hidden="true"><div id="background" class="background" part="background"></div><forge-focus-indicator target=":host" part="focus-indicator"></forge-focus-indicator><forge-state-layer exportparts="surface:state-layer"></forge-state-layer></div><span id="label" class="label" for="input" part="label"><slot></slot></span></div></template>',Y=':host{display:inline-block;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host(:focus){outline:0}.forge-radio{--_radio-primary-color:var(--forge-radio-primary-color, var(--forge-theme-tertiary, #3d5afe));--_radio-inactive-color:var(--forge-radio-inactive-color, var(--forge-theme-surface-container-high, #9e9e9e));--_radio-size:var(--forge-radio-size, 20px);--_radio-mark-size:var(--forge-radio-mark-size, 12px);--_radio-state-layer-size:var(--forge-radio-state-layer-size, 40px);--_radio-state-layer-dense-size:var(--forge-radio-state-layer-dense-size, 24px);--_radio-width:var(--forge-radio-width, var(--_radio-size));--_radio-height:var(--forge-radio-height, var(--_radio-size));--_radio-border-width:var(--forge-radio-border-width, var(--forge-border-medium, 2px));--_radio-unchecked-border-color:var(--forge-radio-unchecked-border-color, var(--_radio-inactive-color));--_radio-checked-border-color:var(--forge-radio-checked-border-color, var(--_radio-primary-color));--_radio-background:var(--forge-radio-background, transparent);--_radio-shape:var(--forge-radio-shape, var(--forge-shape-round, 50%));--_radio-mark-width:var(--forge-radio-mark-width, var(--_radio-mark-size));--_radio-mark-height:var(--forge-radio-mark-height, var(--_radio-mark-size));--_radio-mark-unchecked-color:var(--forge-radio-mark-unchecked-color, var(--_radio-inactive-color));--_radio-mark-checked-color:var(--forge-radio-mark-checked-color, var(--_radio-primary-color));--_radio-mark-unchecked-background:var(--forge-radio-mark-unchecked-background, transparent);--_radio-mark-checked-background:var(--forge-radio-mark-checked-background, transparent);--_radio-gap:var(--forge-radio-gap, 0);--_radio-justify:var(--forge-radio-justify, start);--_radio-direction:var(--forge-radio-direction, initial);--_radio-state-layer-width:var(--forge-radio-state-layer-width, var(--_radio-state-layer-size));--_radio-state-layer-height:var(--forge-radio-state-layer-height, var(--_radio-state-layer-size));--_radio-state-layer-unchecked-color:var(--forge-radio-state-layer-unchecked-color, var(--_radio-color));--_radio-state-layer-checked-color:var(--forge-radio-state-layer-checked-color, var(--_radio-primary-color));--_radio-state-layer-shape:var(--forge-radio-state-layer-shape, var(--_radio-shape));--_radio-state-layer-dense-width:var(--forge-radio-state-layer-dense-width, var(--_radio-state-layer-dense-size));--_radio-state-layer-dense-height:var(--forge-radio-state-layer-dense-height, var(--_radio-state-layer-dense-size));--_radio-disabled-opacity:var(--forge-radio-disabled-opacity, 0.38);--_radio-animation-duration:var(--forge-radio-animation-duration, var(--forge-animation-duration-short4, 200ms));--_radio-animation-timing-function:var(--forge-radio-animation-timing-function, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_radio-animation-delay:var(--forge-radio-animation-delay, 0ms)}.forge-radio{position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:var(--_radio-direction);flex-shrink:0;-webkit-box-align:center;align-items:center;-webkit-box-pack:var(--_radio-justify);justify-content:var(--_radio-justify);gap:var(--_radio-gap);display:-webkit-box;display:flex}.forge-radio .container{position:relative;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;display:-webkit-box;display:flex;border-radius:var(--_radio-shape);inline-size:var(--_radio-state-layer-width);block-size:var(--_radio-state-layer-height);cursor:pointer}.forge-radio .background{position:relative;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;display:-webkit-box;display:flex;overflow:hidden;-webkit-transition-duration:var(--_radio-animation-duration);transition-duration:var(--_radio-animation-duration);-webkit-transition-delay:var(--_radio-animation-delay);transition-delay:var(--_radio-animation-delay);-webkit-transition-timing-function:var(--_radio-animation-timing-function);transition-timing-function:var(--_radio-animation-timing-function);-webkit-transition-property:border-color;transition-property:border-color;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:var(--_radio-shape);border-width:var(--_radio-border-width);border-style:solid;border-color:var(--_radio-unchecked-border-color);inline-size:var(--_radio-width);block-size:var(--_radio-height);background:var(--_radio-background)}.forge-radio .background::after{content:"";position:absolute;contain:strict;-webkit-transition-duration:var(--_radio-animation-duration);transition-duration:var(--_radio-animation-duration);-webkit-transition-delay:var(--_radio-animation-delay);transition-delay:var(--_radio-animation-delay);-webkit-transition-timing-function:var(--_radio-animation-timing-function);transition-timing-function:var(--_radio-animation-timing-function);-webkit-transition-property:inline-size,block-size,border-color;transition-property:inline-size,block-size,border-color;border-radius:var(--_radio-shape);border-width:calc(var(--_radio-mark-height)/ 2) calc(var(--_radio-mark-width)/ 2);border-color:var(--_radio-mark-unchecked-color);border-style:solid;inline-size:calc(var(--_radio-width) - 2 * var(--_radio-border-width));block-size:calc(var(--_radio-height) - 2 * var(--_radio-border-width));background:var(--_radio-mark-unchecked-background)}.forge-radio .label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-label1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label1-font-weight,400);line-height:var(--forge-typography-label1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-label1-text-decoration,inherit);text-decoration:var(--forge-typography-label1-text-decoration,inherit);cursor:default}.forge-radio .label:empty{display:none}:host([checked]) .forge-radio .background{border-color:var(--_radio-checked-border-color)}:host([checked]) .forge-radio .background::after{border-color:var(--_radio-mark-checked-color);inline-size:0px;block-size:0px;background:var(--_radio-mark-checked-background)}:host([checked]) forge-state-layer{--forge-state-layer-color:var(--_radio-state-layer-checked-color)}:host([dense]) .forge-radio .container{inline-size:var(--_radio-state-layer-dense-width);block-size:var(--_radio-state-layer-dense-height)}:host([disabled]) .forge-radio{opacity:var(--_radio-disabled-opacity)}:host([disabled]) .forge-radio .container{cursor:not-allowed}:host([readonly]) .forge-radio .container{cursor:not-allowed}forge-focus-indicator{--forge-focus-indicator-color:var(--_radio-primary-color);--forge-focus-indicator-outward-offset:0px;--forge-focus-indicator-shape:var(--_radio-state-layer-shape)}forge-state-layer{--forge-state-layer-color:var(--_radio-state-layer-unchecked-color)}',$=G(T(z(q(H(A))))),n=class extends ${constructor(){super();L(this,V,Y),this[F]="radio",this._foundation=new k(new g(this))}static get observedAttributes(){return Object.values(i.observedAttributes)}connectedCallback(){super.connectedCallback(),this[p]({role:"radio",ariaChecked:this.checked?"true":"false",ariaDisabled:this.disabled?"true":"false",ariaRequired:this.required?"true":"false"}),d.syncRadioFocusableState(this),this._foundation.initialize(),this._rootNode=this.getRootNode()}disconnectedCallback(){d.syncRadioFocusableState(this,{ignoreSelf:!0,rootNode:this._rootNode,form:this._latestAssociatedForm})}attributeChangedCallback(t,a,o){switch(t){case i.attributes.CHECKED:this._foundation.checked=b(o);break;case i.attributes.DEFAULT_CHECKED:this._foundation.defaultChecked=b(o);break;case i.attributes.VALUE:this.value=o;break;case i.attributes.DENSE:this.dense=b(o);break;case i.attributes.DISABLED:this.disabled=b(o);break;case i.attributes.REQUIRED:this.required=b(o);break;case i.attributes.READONLY:this.readonly=b(o);break;case i.attributes.LABEL_POSITION:this.labelPosition=o;break}super.attributeChangedCallback(t,a,o)}[x](){return this.checked?this.value:null}[S](){return this.checked?"checked":"unchecked"}formAssociatedCallback(t){t&&(this._latestAssociatedForm=t)}formResetCallback(){d.requestRadioGroupReset(this)}formStateRestoreCallback(t){this.checked=t==="checked"}labelClickedCallback(){this.click()}labelChangedCallback(t){this[p]({ariaLabel:t})}[v](){return this._foundation.tryCheck()}};c([h()],n.prototype,"checked",2),c([h()],n.prototype,"defaultChecked",2),c([h()],n.prototype,"value",2),c([h()],n.prototype,"dense",2),c([h()],n.prototype,"disabled",2),c([h()],n.prototype,"required",2),c([h()],n.prototype,"readonly",2),c([h()],n.prototype,"labelPosition",2),n=c([C({name:i.elementName,dependencies:[N,P]})],n);function Ue(){E(n)}export{i as a,v as b,g as c,k as d,n as e,Ue as f};
|
|
7
|
+
//# sourceMappingURL=chunk.7RLY2O3H.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/radio/core/radio-group-manager.ts", "../../src/radio/radio/radio-constants.ts", "../../src/radio/radio/radio-adapter.ts", "../../src/radio/radio/radio-foundation.ts", "../../src/radio/radio/radio.ts", "../../src/radio/radio/index.ts"],
|
|
4
|
+
"sourcesContent": ["import { getValidationMessage, internals, isFocusable } from '../../constants';\nimport { task } from '../../core/utils/event-utils';\nimport { IRadioComponent, RADIO_CONSTANTS, tryCheck } from '../radio';\n\n/**\n * A class for coordinating the states of radio components within a radio group.\n */\nexport class RadioGroupManager {\n private static _radiosRequestingReset = new WeakSet<IRadioComponent>();\n\n /**\n * Returns an array of IRadioComponents that belong to the same radio group as the given\n * IRadioComponent.\n * If the given IRadioComponent does not have an associated form element, it searches the root\n * node for all IRadioComponents with the same name.\n * If the given IRadioComponent has an associated form element, it gets all RadioComponents with\n * the same name from the form element.\n * \n * @param el - The IRadioComponent to get the radio group for.\n * @param rootNode - The node to search for radios.\n * @param form - The form element to get radios from.\n * @returns An array of IRadioComponents that belong to the same radio group as the given\n * IRadioComponent.\n */\n public static getRadioGroup(el: IRadioComponent, {\n rootNode,\n form\n }: {\n rootNode?: ShadowRoot | Document;\n form?: HTMLFormElement;\n } = {}): IRadioComponent[] {\n // If there's no name, it's not part of a radio group\n if (!el.name) {\n return [el];\n }\n\n // If there's no associated form element search the root node\n if (!el.form && !form) {\n const root = rootNode ?? el.getRootNode() as ShadowRoot | Document;\n const namedRadios = root.querySelectorAll<IRadioComponent>(`${RADIO_CONSTANTS.elementName}[name=${el.name}]`);\n return Array.from(namedRadios).filter(radio => !radio.form);\n }\n\n // When there is a form element, get all RadioComponents with the same name\n const formRadios = ((el.form ?? form) as HTMLFormElement).elements.namedItem(el.name);\n if (formRadios && Object.prototype.isPrototypeOf.call(RadioNodeList.prototype, formRadios)) {\n return Array.from(formRadios as RadioNodeList)\n .filter((radio: HTMLElement) => radio.matches(RADIO_CONSTANTS.elementName)) as IRadioComponent[];\n }\n return [el];\n }\n\n /**\n * Sets the validity of a radio group.\n * If no radio is selected in the group and selection is required, it sets the validity to\n * `valueMissing`.\n * \n * @param el A radio component within the group to set the validity for.\n */\n public static setRadioGroupValidity(el: IRadioComponent): void {\n const group = RadioGroupManager.getRadioGroup(el);\n const invalid = RadioGroupManager._selectionIsRequired(group);\n \n group.forEach(radio => {\n if (!radio.shadowRoot) {\n return;\n }\n\n const validationMessage = radio[getValidationMessage]({\n required: invalid,\n checked: radio.checked\n });\n radio[internals].setValidity({ valueMissing: invalid }, validationMessage);\n });\n }\n\n /**\n * Sets the selected radio in a radio group.\n * \n * @param el - The radio component to set as selected.\n */\n public static setSelectedRadioInGroup(el: IRadioComponent): void {\n const group = RadioGroupManager.getRadioGroup(el);\n group.forEach(radio => radio.checked = radio === el);\n }\n\n /**\n * Sets the tabindices of radios in a radio group based on the currently checked radio.\n * @param el - A radio component within the group to update the tab indices for.\n * @param ignoreSelf - Whether to ignore the passed radio component when updating the tab indices.\n * @param rootNode - The node to search for radios.\n * @param form - The form element to get radios from.\n */\n public static syncRadioFocusableState(el: IRadioComponent, {\n ignoreSelf,\n rootNode,\n form\n }: {\n ignoreSelf: boolean;\n rootNode?: ShadowRoot | Document;\n form?: HTMLFormElement;\n } = { ignoreSelf: false }): void {\n let group = RadioGroupManager.getRadioGroup(el, { rootNode, form });\n group = group.filter(radio => (ignoreSelf && radio !== el) || radio.shadowRoot);\n\n if (!group.some(radio => radio.checked)) {\n group.forEach(radio => radio[isFocusable] = !radio.disabled);\n return;\n }\n group.forEach(radio => radio[isFocusable] = radio.checked && !radio.disabled);\n }\n\n /**\n * Focuses the next radio in the radio group.\n * \n * @param el - The currently focused radio component.\n */\n public static focusNextRadioInGroup(el: IRadioComponent): void {\n RadioGroupManager._updateRadioGroupFocus(el, 1);\n }\n\n /**\n * Focuses the previous radio in the radio group.\n * \n * @param el - The currently focused radio component.\n */\n public static focusPreviousRadioInGroup(el: IRadioComponent): void {\n RadioGroupManager._updateRadioGroupFocus(el, -1);\n }\n\n /**\n * Adds or removes each radio in a radio group from the tab order. When no radio is selected and\n * focus is not in the group, all radios are added to the tab order. Otherwise only the selected\n * radio is added to the tab order.\n * \n * @param el - The focused or blurred radio component.\n * @param event - The event type (`'focus'` or `'blur'`).\n */\n public static setUncheckedRadioGroupFocus(el: IRadioComponent, event: 'focus' | 'blur'): void {\n const group = RadioGroupManager.getRadioGroup(el);\n \n if (event === 'focus') {\n group.forEach(radio => radio[isFocusable] = radio === el);\n return;\n }\n\n if (!el.checked || group[0] === el || group[group.length - 1] === el) {\n group.forEach(radio => radio[isFocusable] = true);\n }\n }\n\n /**\n * Resets a radio group to . This will run once each radio has a chance to\n * update.\n * \n * @param el - The radio component requesting the reset.\n * @returns A promise that resolves when the reset logic is complete.\n */\n public static async requestRadioGroupReset(el: IRadioComponent): Promise<void> {\n this._radiosRequestingReset.add(el);\n\n // Wait for any other radios in the group to request a reset. The reset logic should only run\n // once per group\n await task();\n\n // If the radio has been removed from the set, its group has already been reset and we can\n // skip it\n if (!this._radiosRequestingReset.has(el)) {\n return;\n }\n \n const group = RadioGroupManager.getRadioGroup(el);\n let checkedRadio: IRadioComponent | null = null;\n\n // The first loop removes each radio in the group from the set and stores the radio that should\n // be checked, if any\n group.forEach(radio => {\n this._radiosRequestingReset.delete(radio);\n \n if (radio.defaultChecked) {\n checkedRadio = radio;\n }\n });\n\n // The second loop sets the checked radio and sets each radio to be focusable if there is a no\n // selection, or only the selected radio if there is\n group.forEach(radio => {\n radio.checked = radio === checkedRadio;\n radio[isFocusable] = !checkedRadio || radio.checked;\n });\n }\n\n /**\n * Updates the focus and selection of a radio group based on the currently focused radio and the\n * direction of the focus change.\n * \n * @param el - The currently focused radio element.\n * @param increment - The direction of the focus change. 1 for forward, -1 for backward.\n */\n private static _updateRadioGroupFocus(el: IRadioComponent, increment: 1 | -1): void {\n const group = RadioGroupManager.getRadioGroup(el);\n\n // Get the next enabled and writable radio in the group\n let index = group.indexOf(el);\n let nextRadio = group[index];\n do {\n index += increment;\n if (index < 0) {\n index = group.length - 1;\n } else if (index >= group.length) {\n index = 0;\n }\n\n nextRadio = group[index];\n if (nextRadio === el) {\n return;\n }\n } while (nextRadio.disabled || nextRadio.readonly);\n\n // Attempt to check the next radio, return if the event is cancelled\n if (!nextRadio[tryCheck]()) {\n return;\n }\n\n // Add the next radio to the tab order, and focus it\n nextRadio[isFocusable] = true;\n nextRadio.focus();\n\n // Remove every other radio from the tab order and deselect it\n group.forEach(radio => {\n if (radio === nextRadio) {\n return;\n }\n radio[isFocusable] = false;\n radio.checked = false;\n });\n }\n\n /**\n * Determines if a radio selection is required within a group.\n * \n * @param group - The radio components within a group.\n * @returns True if the radio selection is required, false otherwise.\n */\n private static _selectionIsRequired(group: IRadioComponent[]): boolean {\n let required = false;\n let selection = false;\n\n group.forEach(radio => {\n if (radio.required) {\n required = true;\n }\n if (radio.checked) {\n selection = true;\n }\n });\n\n return required && !selection;\n }\n}\n", "import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}radio`;\n\nconst observedAttributes = {\n CHECKED: 'checked',\n DEFAULT_CHECKED: 'default-checked',\n VALUE: 'value',\n DENSE: 'dense',\n DISABLED: 'disabled',\n REQUIRED: 'required',\n READONLY: 'readonly',\n LABEL_POSITION: 'label-position',\n TABINDEX: 'tabindex'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nconst selectors = {\n ROOT: '.forge-radio',\n LABEL: '#label',\n STATE_LAYER: 'forge-state-layer'\n};\n\nconst events = {\n CHANGE: 'change',\n INPUT: 'input'\n};\n\nexport const RADIO_CONSTANTS = {\n elementName,\n observedAttributes,\n attributes,\n selectors,\n events\n};\n\n/**\n * This symbol is used to attempt to check a radio while navigating between its siblings in a\n * group. It differs from simply setting `checked` in that it causes the input/change events to\n * emit and returns `false` if either was prevented. The radio group manager can then prevent a\n * change in focus and selection state.\n */\nexport const tryCheck = Symbol('tryCheck');\n\nexport type RadioState = 'checked' | 'unchecked';\nexport type RadioLabelPosition = 'start' | 'end';\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { internals, setDefaultAria } from '../../constants';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/';\nimport { StateLayerComponent } from '../../state-layer';\nimport { RadioGroupManager } from '../core/radio-group-manager';\nimport { IRadioComponent } from './radio';\nimport { RadioLabelPosition, RadioState, RADIO_CONSTANTS } from './radio-constants';\n\nexport interface IRadioAdapter extends IBaseAdapter {\n setChecked(checked: boolean, value: string): void;\n trySetDisabled(value: boolean): boolean;\n setRequired(value: boolean): void;\n setReadonly(value: boolean): void;\n setLabelPosition(value: RadioLabelPosition): void;\n disableStateLayer(value: boolean): void;\n setUncheckedRadioGroupFocus(event: 'focus' | 'blur'): void;\n focusNext(): void;\n focusPrevious(): void;\n}\n\nexport class RadioAdapter extends BaseAdapter<IRadioComponent> implements IRadioAdapter {\n private readonly _rootElement: HTMLElement;\n private readonly _labelElement: HTMLElement;\n private readonly _stateLayerElement: StateLayerComponent;\n\n constructor(component: IRadioComponent) {\n super(component);\n\n this._rootElement = getShadowElement(component, RADIO_CONSTANTS.selectors.ROOT);\n this._labelElement = getShadowElement(component, RADIO_CONSTANTS.selectors.LABEL);\n this._stateLayerElement = getShadowElement(component, RADIO_CONSTANTS.selectors.STATE_LAYER) as StateLayerComponent;\n }\n\n public setChecked(checked: boolean, value: string): void {\n this._component[setDefaultAria]({ ariaChecked: checked ? 'true' : 'false' });\n if (checked) {\n RadioGroupManager.setSelectedRadioInGroup(this._component);\n }\n\n // Update tab indices\n RadioGroupManager.syncRadioFocusableState(this._component);\n\n // Update the form value, state, and validity\n const formValue = checked ? value : null;\n const formState: RadioState = checked ? 'checked' : 'unchecked';\n this._component[internals].setFormValue(formValue, formState);\n RadioGroupManager.setRadioGroupValidity(this._component);\n }\n\n /**\n * Attempts to set the disabled state of the radio. If the radio is in a disabled radio group, it\n * can't be enabled.\n * \n * @param value Whether the radio should be disabled.\n * @returns Whether the disabled state was set.\n */\n public trySetDisabled(value: boolean): boolean {\n const group = this._component.closest('forge-radio-group');\n\n if (!value && group && group.disabled) {\n return false;\n }\n\n this._component[setDefaultAria]({ ariaDisabled: `${!!value}` });\n RadioGroupManager.syncRadioFocusableState(this._component);\n return true;\n }\n\n public setRequired(value: boolean): void {\n this._component[setDefaultAria]({\n ariaRequired: value ? 'true' : 'false'\n }, { setAttribute: true });\n RadioGroupManager.setRadioGroupValidity(this._component);\n }\n\n public setReadonly(value: boolean): void {\n this._component[setDefaultAria]({ ariaDisabled: `${!!value}` });\n }\n\n public disableStateLayer(value: boolean): void {\n this._stateLayerElement.disabled = value;\n }\n\n public setLabelPosition(value: RadioLabelPosition): void {\n this._labelElement.remove();\n\n if (value === 'start') {\n this._rootElement.prepend(this._labelElement);\n } else {\n this._rootElement.append(this._labelElement);\n }\n }\n\n public setUncheckedRadioGroupFocus(event: 'focus' | 'blur'): void {\n RadioGroupManager.setUncheckedRadioGroupFocus(this._component, event);\n }\n\n public focusNext(): void {\n RadioGroupManager.focusNextRadioInGroup(this._component);\n }\n\n public focusPrevious(): void {\n RadioGroupManager.focusPreviousRadioInGroup(this._component);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { task } from '../../core/utils/event-utils';\nimport { IRadioAdapter } from './radio-adapter';\nimport { RadioLabelPosition, RADIO_CONSTANTS } from './radio-constants';\n\nexport interface IRadioFoundation extends ICustomElementFoundation {\n checked: boolean;\n defaultChecked: boolean;\n value: string;\n disabled: boolean;\n required: boolean;\n readonly: boolean;\n dense: boolean;\n labelPosition: RadioLabelPosition;\n tryCheck(): boolean;\n}\n\nexport class RadioFoundation implements IRadioFoundation {\n // State\n private _checked = false;\n private _defaultChecked = false;\n private _value = 'on';\n private _disabled = false;\n private _required = false;\n private _readonly = false;\n private _dense = false;\n private _labelPosition: RadioLabelPosition = 'end';\n\n // Listeners\n private readonly _focusListener: EventListener;\n private readonly _blurListener: EventListener;\n private readonly _clickListener: EventListener;\n private readonly _keydownListener: EventListener;\n private readonly _keyupListener: EventListener;\n\n constructor(private _adapter: IRadioAdapter) {\n this._focusListener = () => this._handleFocus();\n this._blurListener = () => this._handleBlur();\n this._clickListener = (evt: MouseEvent) => this._handleClick(evt);\n this._keydownListener = (evt: KeyboardEvent) => this._handleKeydown(evt);\n this._keyupListener = (evt: KeyboardEvent) => this._handleKeyup(evt);\n }\n\n public initialize(): void {\n this._adapter.addHostListener('focus', this._focusListener);\n this._adapter.addHostListener('blur', this._blurListener);\n this._adapter.addHostListener('click', this._clickListener);\n this._adapter.addHostListener('keydown', this._keydownListener);\n this._adapter.addHostListener('keyup', this._keyupListener);\n this._adapter.setChecked(this._checked, this._value);\n }\n\n // Public methods\n\n public tryCheck(): boolean {\n this._checked = true;\n\n if (!this._dispatchEvents()) {\n this._checked = false;\n return false;\n }\n \n this._adapter.setChecked(this._checked, this._value);\n this._adapter.toggleHostAttribute(RADIO_CONSTANTS.attributes.CHECKED, this._checked);\n return true;\n }\n\n // Event handlers\n\n private _handleFocus(): void {\n if (!this._checked) {\n this._adapter.setUncheckedRadioGroupFocus('focus');\n }\n }\n\n private _handleBlur(): void {\n if (!this._checked) {\n this._adapter.setUncheckedRadioGroupFocus('blur');\n }\n }\n\n private _handleClick(evt: MouseEvent): void {\n this._activate(evt);\n }\n\n private _handleKeydown(evt: KeyboardEvent): void {\n switch (evt.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n evt.preventDefault();\n this._adapter.focusNext();\n break;\n case 'ArrowLeft':\n case 'ArrowUp':\n evt.preventDefault();\n this._adapter.focusPrevious();\n break;\n case ' ':\n // Prevent the spacebar from scrolling the page\n evt.preventDefault();\n break;\n }\n }\n\n private _handleKeyup(evt: KeyboardEvent): void {\n if (evt.key === ' ') {\n this._activate(evt);\n }\n }\n\n /**\n * Checks the radio button if it is not disabled or readonly. Exits early if the activating\n * event is cancelled.\n */\n private async _activate(evt: Event): Promise<void> {\n if (this._checked || this._disabled || this._readonly) {\n return;\n }\n\n // Wait a task to allow the event to propagate to user code.\n await task();\n if (evt.defaultPrevented) {\n return;\n }\n\n this._checked = true;\n\n if (!this._dispatchEvents()) {\n this._checked = false;\n return;\n }\n\n this._adapter.setChecked(this._checked, this._value);\n this._adapter.toggleHostAttribute(RADIO_CONSTANTS.attributes.CHECKED, this._checked);\n }\n\n /**\n * Dispatches change and input events.\n * \n * @returns {boolean} - Returns true if neither event was cancelled.\n */\n private _dispatchEvents(): boolean {\n // Emit both change and input events per the spec.\n const changeEvent = new Event(RADIO_CONSTANTS.events.CHANGE, { bubbles: true, cancelable: true });\n const inputEvent = new Event(RADIO_CONSTANTS.events.INPUT, { bubbles: true, cancelable: true, composed: true });\n this._adapter.dispatchHostEvent(changeEvent);\n this._adapter.dispatchHostEvent(inputEvent);\n return !(changeEvent.defaultPrevented || inputEvent.defaultPrevented);\n }\n\n public get checked(): boolean {\n return this._checked;\n }\n public set checked(value: boolean) {\n if (this._checked !== value) {\n this._checked = value;\n this._adapter.setChecked(this._checked, this._value);\n this._adapter.toggleHostAttribute(RADIO_CONSTANTS.attributes.CHECKED, this._checked);\n }\n }\n\n public get defaultChecked(): boolean {\n return this._defaultChecked;\n }\n public set defaultChecked(value: boolean) {\n if (this._defaultChecked !== value) {\n this._defaultChecked = value;\n this._adapter.toggleHostAttribute(RADIO_CONSTANTS.attributes.DEFAULT_CHECKED, this._defaultChecked);\n }\n }\n\n public get value(): string {\n return this._value;\n }\n public set value(value: string) {\n if (this._value !== value) {\n this._value = value;\n this._adapter.setHostAttribute(RADIO_CONSTANTS.attributes.VALUE, this._value);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n // Attempt to set disabled, restore if unsuccessful\n if (this._adapter.trySetDisabled(this._disabled)) {\n this._adapter.disableStateLayer(this._disabled || this._readonly);\n this._adapter.toggleHostAttribute(RADIO_CONSTANTS.attributes.DISABLED, this._disabled);\n } else {\n this._disabled = !this._disabled;\n }\n }\n }\n\n public get required(): boolean {\n return this._required;\n }\n public set required(value: boolean) {\n if (this._required !== value) {\n this._required = value;\n this._adapter.setRequired(this._required);\n this._adapter.toggleHostAttribute(RADIO_CONSTANTS.attributes.REQUIRED, this._required);\n }\n }\n\n public get readonly(): boolean {\n return this._readonly;\n }\n public set readonly(value: boolean) {\n if (this._readonly !== value) {\n this._readonly = value;\n this._adapter.setReadonly(this._readonly);\n this._adapter.disableStateLayer(this._disabled || this._readonly);\n this._adapter.toggleHostAttribute(RADIO_CONSTANTS.attributes.READONLY, this._readonly);\n }\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n if (this._dense !== value) {\n this._dense = value;\n this._adapter.toggleHostAttribute(RADIO_CONSTANTS.attributes.DENSE, this._dense);\n }\n }\n\n public get labelPosition(): RadioLabelPosition {\n return this._labelPosition;\n }\n public set labelPosition(value: RadioLabelPosition) {\n if (this._labelPosition !== value) {\n this._labelPosition = value;\n this._adapter.setLabelPosition(this._labelPosition);\n this._adapter.setHostAttribute(RADIO_CONSTANTS.attributes.LABEL_POSITION, this._labelPosition);\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { getFormState, getFormValue, inputType, setDefaultAria } from '../../constants';\nimport { BaseComponent } from '../../core/base/base-component';\nimport { IWithFocusable, WithFocusable } from '../../core/mixins/focus/with-focusable';\nimport { IWithFormAssociation, WithFormAssociation } from '../../core/mixins/form/with-form-associated';\nimport { IWithDefaultAria, WithDefaultAria } from '../../core/mixins/internals/with-default-aria';\nimport { IWithElementInternals, WithElementInternals } from '../../core/mixins/internals/with-element-internals';\nimport { IWithLabelAwareness, WithLabelAwareness } from '../../core/mixins/label/with-label-aware';\nimport { FormValue } from '../../core/utils/form-utils';\nimport { FocusIndicatorComponent } from '../../focus-indicator';\nimport { StateLayerComponent } from '../../state-layer';\nimport { RadioGroupManager } from '../core/radio-group-manager';\nimport { RadioAdapter } from './radio-adapter';\nimport { RadioLabelPosition, RadioState, RADIO_CONSTANTS, tryCheck } from './radio-constants';\nimport { RadioFoundation } from './radio-foundation';\n\nconst template = '<template><div id=\\\"radio\\\" class=\\\"forge-radio\\\" part=\\\"root\\\"><div id=\\\"container\\\" class=\\\"container\\\" aria-hidden=\\\"true\\\"><div id=\\\"background\\\" class=\\\"background\\\" part=\\\"background\\\"></div><forge-focus-indicator target=\\\":host\\\" part=\\\"focus-indicator\\\"></forge-focus-indicator><forge-state-layer exportparts=\\\"surface:state-layer\\\"></forge-state-layer></div><span id=\\\"label\\\" class=\\\"label\\\" for=\\\"input\\\" part=\\\"label\\\"><slot></slot></span></div></template>';\nconst styles = ':host{display:inline-block;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host(:focus){outline:0}.forge-radio{--_radio-primary-color:var(--forge-radio-primary-color, var(--forge-theme-tertiary, #3d5afe));--_radio-inactive-color:var(--forge-radio-inactive-color, var(--forge-theme-surface-container-high, #9e9e9e));--_radio-size:var(--forge-radio-size, 20px);--_radio-mark-size:var(--forge-radio-mark-size, 12px);--_radio-state-layer-size:var(--forge-radio-state-layer-size, 40px);--_radio-state-layer-dense-size:var(--forge-radio-state-layer-dense-size, 24px);--_radio-width:var(--forge-radio-width, var(--_radio-size));--_radio-height:var(--forge-radio-height, var(--_radio-size));--_radio-border-width:var(--forge-radio-border-width, var(--forge-border-medium, 2px));--_radio-unchecked-border-color:var(--forge-radio-unchecked-border-color, var(--_radio-inactive-color));--_radio-checked-border-color:var(--forge-radio-checked-border-color, var(--_radio-primary-color));--_radio-background:var(--forge-radio-background, transparent);--_radio-shape:var(--forge-radio-shape, var(--forge-shape-round, 50%));--_radio-mark-width:var(--forge-radio-mark-width, var(--_radio-mark-size));--_radio-mark-height:var(--forge-radio-mark-height, var(--_radio-mark-size));--_radio-mark-unchecked-color:var(--forge-radio-mark-unchecked-color, var(--_radio-inactive-color));--_radio-mark-checked-color:var(--forge-radio-mark-checked-color, var(--_radio-primary-color));--_radio-mark-unchecked-background:var(--forge-radio-mark-unchecked-background, transparent);--_radio-mark-checked-background:var(--forge-radio-mark-checked-background, transparent);--_radio-gap:var(--forge-radio-gap, 0);--_radio-justify:var(--forge-radio-justify, start);--_radio-direction:var(--forge-radio-direction, initial);--_radio-state-layer-width:var(--forge-radio-state-layer-width, var(--_radio-state-layer-size));--_radio-state-layer-height:var(--forge-radio-state-layer-height, var(--_radio-state-layer-size));--_radio-state-layer-unchecked-color:var(--forge-radio-state-layer-unchecked-color, var(--_radio-color));--_radio-state-layer-checked-color:var(--forge-radio-state-layer-checked-color, var(--_radio-primary-color));--_radio-state-layer-shape:var(--forge-radio-state-layer-shape, var(--_radio-shape));--_radio-state-layer-dense-width:var(--forge-radio-state-layer-dense-width, var(--_radio-state-layer-dense-size));--_radio-state-layer-dense-height:var(--forge-radio-state-layer-dense-height, var(--_radio-state-layer-dense-size));--_radio-disabled-opacity:var(--forge-radio-disabled-opacity, 0.38);--_radio-animation-duration:var(--forge-radio-animation-duration, var(--forge-animation-duration-short4, 200ms));--_radio-animation-timing-function:var(--forge-radio-animation-timing-function, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_radio-animation-delay:var(--forge-radio-animation-delay, 0ms)}.forge-radio{position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:var(--_radio-direction);flex-shrink:0;-webkit-box-align:center;align-items:center;-webkit-box-pack:var(--_radio-justify);justify-content:var(--_radio-justify);gap:var(--_radio-gap);display:-webkit-box;display:flex}.forge-radio .container{position:relative;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;display:-webkit-box;display:flex;border-radius:var(--_radio-shape);inline-size:var(--_radio-state-layer-width);block-size:var(--_radio-state-layer-height);cursor:pointer}.forge-radio .background{position:relative;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;display:-webkit-box;display:flex;overflow:hidden;-webkit-transition-duration:var(--_radio-animation-duration);transition-duration:var(--_radio-animation-duration);-webkit-transition-delay:var(--_radio-animation-delay);transition-delay:var(--_radio-animation-delay);-webkit-transition-timing-function:var(--_radio-animation-timing-function);transition-timing-function:var(--_radio-animation-timing-function);-webkit-transition-property:border-color;transition-property:border-color;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:var(--_radio-shape);border-width:var(--_radio-border-width);border-style:solid;border-color:var(--_radio-unchecked-border-color);inline-size:var(--_radio-width);block-size:var(--_radio-height);background:var(--_radio-background)}.forge-radio .background::after{content:\\\"\\\";position:absolute;contain:strict;-webkit-transition-duration:var(--_radio-animation-duration);transition-duration:var(--_radio-animation-duration);-webkit-transition-delay:var(--_radio-animation-delay);transition-delay:var(--_radio-animation-delay);-webkit-transition-timing-function:var(--_radio-animation-timing-function);transition-timing-function:var(--_radio-animation-timing-function);-webkit-transition-property:inline-size,block-size,border-color;transition-property:inline-size,block-size,border-color;border-radius:var(--_radio-shape);border-width:calc(var(--_radio-mark-height)/ 2) calc(var(--_radio-mark-width)/ 2);border-color:var(--_radio-mark-unchecked-color);border-style:solid;inline-size:calc(var(--_radio-width) - 2 * var(--_radio-border-width));block-size:calc(var(--_radio-height) - 2 * var(--_radio-border-width));background:var(--_radio-mark-unchecked-background)}.forge-radio .label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label1-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));font-size:var(--forge-typography-label1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label1-font-weight,400);line-height:var(--forge-typography-label1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-label1-text-decoration,inherit);text-decoration:var(--forge-typography-label1-text-decoration,inherit);cursor:default}.forge-radio .label:empty{display:none}:host([checked]) .forge-radio .background{border-color:var(--_radio-checked-border-color)}:host([checked]) .forge-radio .background::after{border-color:var(--_radio-mark-checked-color);inline-size:0px;block-size:0px;background:var(--_radio-mark-checked-background)}:host([checked]) forge-state-layer{--forge-state-layer-color:var(--_radio-state-layer-checked-color)}:host([dense]) .forge-radio .container{inline-size:var(--_radio-state-layer-dense-width);block-size:var(--_radio-state-layer-dense-height)}:host([disabled]) .forge-radio{opacity:var(--_radio-disabled-opacity)}:host([disabled]) .forge-radio .container{cursor:not-allowed}:host([readonly]) .forge-radio .container{cursor:not-allowed}forge-focus-indicator{--forge-focus-indicator-color:var(--_radio-primary-color);--forge-focus-indicator-outward-offset:0px;--forge-focus-indicator-shape:var(--_radio-state-layer-shape)}forge-state-layer{--forge-state-layer-color:var(--_radio-state-layer-unchecked-color)}';\n\nexport interface IRadioComponent extends IWithFormAssociation, IWithFocusable, IWithLabelAwareness, IWithElementInternals, IWithDefaultAria {\n checked: boolean;\n defaultChecked: boolean;\n value: string;\n required: boolean;\n dense: boolean;\n labelPosition: RadioLabelPosition;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-radio': IRadioComponent;\n }\n}\n\nconst BaseRadioClass = WithFormAssociation(WithLabelAwareness(WithFocusable(WithDefaultAria(WithElementInternals(BaseComponent)))));\n\n/**\n * @tag forge-radio\n * \n * @summary The Forge Radio component is used to create a form input where only one out of a set of\n * values should be selected.\n * \n * @property {boolean} checked - Indicates whether the radio button is checked.\n * @property {boolean} defaultChecked - Indicates whether the radio button is checked by default.\n * @property {string} value - The value of the radio button when submitted.\n * @property {boolean} dense - Indicates whether the radio button should be displayed in a dense layout.\n * @property {boolean} disabled - Indicates whether the radio button is disabled.\n * @property {boolean} required - Indicates whether the radio button is required.\n * @property {boolean} readonly - Indicates whether the radio button is read-only.\n * @property {RadioLabelPosition} labelPosition - The position of the radio button's label.\n * \n * @attribute {boolean} checked - Indicates whether the radio button is checked.\n * @attribute {boolean} default-checked - Indicates whether the radio button is checked by default.\n * @attribute {string} value - The value of the radio button when submitted.\n * @attribute {boolean} dense - Indicates whether the radio button should be displayed in a dense layout.\n * @attribute {boolean} disabled - Indicates whether the radio button is disabled.\n * @attribute {boolean} required - Indicates whether the radio button is required.\n * @attribute {boolean} readonly - Indicates whether the radio button is read-only.\n * @attribute {RadioLabelPosition} label-position - The position of the radio button's label.\n * \n * @cssproperty --forge-radio-primary-color - The primary color of the radio button when checked.\n * @cssproperty --forge-radio-inactive-color - The color of the radio button when unchecked.\n * @cssproperty --forge-radio-size - The size of the radio button in the inline and block directions.\n * @cssproperty --forge-radio-width - The width of the radio button.\n * @cssproperty --forge-radio-height - The height of the radio button.\n * @cssproperty --forge-radio-border-width - The width of the radio button's border.\n * @cssproperty --forge-radio-unchecked-border-color - The color of the radio button's border when unchecked.\n * @cssproperty --forge-radio-checked-border-color - The color of the radio button's border when checked.\n * @cssproperty --forge-radio-background - The background of the radio button.\n * @cssproperty --forge-radio-shape - The shape of the radio button.\n * @cssproperty --forge-radio-mark-size - The size of the radio button's mark in the inline and block directions.\n * @cssproperty --forge-radio-mark-width - The width of the radio button's mark.\n * @cssproperty --forge-radio-mark-height - The height of the radio button's mark.\n * @cssproperty --forge-radio-mark-unchecked-color - The color of the radio button's mark when unchecked.\n * @cssproperty --forge-radio-mark-checked-color - The color of the radio button's mark when checked.\n * @cssproperty --forge-radio-mark-unchecked-background - The background of the radio button's mark when unchecked.\n * @cssproperty --forge-radio-mark-checked-background - The background of the radio button's mark when checked.\n * @cssproperty --forge-radio-gap - The gap between the radio button and its label.\n * @cssproperty --forge-radio-justify - The alignment of the radio button and its label in the inline direction.\n * @cssproperty --forge-radio-direction - The direction of the radio button and its label.\n * @cssproperty --forge-radio-state-layer-size - The size of the radio button's state layer in the inline and block directions.\n * @cssproperty --forge-radio-state-layer-width - The width of the radio button's state layer.\n * @cssproperty --forge-radio-state-layer-height - The height of the radio button's state layer.\n * @cssproperty --forge-radio-state-layer-unchecked-color - The color of the radio button's state layer when unchecked.\n * @cssproperty --forge-radio-state-layer-checked-color - The color of the radio button's state layer when checked.\n * @cssproperty --forge-radio-state-layer-shape - The shape of the radio button's state layer.\n * @cssproperty --forge-radio-state-layer-dense-size - The size of the radio button's state layer when dense.\n * @cssproperty --forge-radio-state-layer-dense-width - The width of the radio button's state layer when dense.\n * @cssproperty --forge-radio-state-layer-dense-height - The height of the radio button's state layer when dense.\n * @cssproperty --forge-radio-disabled-opacity - The opacity of the radio button when disabled.\n * @cssproperty --forge-radio-animation-duration - The duration of the radio button's animations.\n * @cssproperty --forge-radio-animation-timing-function - The timing function of the radio button's animations.\n * @cssproperty --forge-radio-animation-delay - The delay of the radio button's animations.\n * \n * @csspart root - Styles the radio's root element.\n * @csspart background - Styles the border and background of the radio.\n * @csspart focus-indicator - Styles the focus indicator of the radio.\n * @csspart state-layer - Styles the state layer of the radio.\n * \n * @slot - This is a default/unnamed slot for the label text.\n */\n@CustomElement({\n name: RADIO_CONSTANTS.elementName,\n dependencies: [\n FocusIndicatorComponent,\n StateLayerComponent\n ]\n})\nexport class RadioComponent extends BaseRadioClass implements IRadioComponent {\n public static get observedAttributes(): string[] {\n return Object.values(RADIO_CONSTANTS.observedAttributes);\n }\n\n private _foundation: RadioFoundation;\n\n // Used to communicate with the form group after this radio instance has been disconnected\n private _rootNode?: ShadowRoot | Document;\n private _latestAssociatedForm?: HTMLFormElement;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this[inputType] = 'radio';\n this._foundation = new RadioFoundation(new RadioAdapter(this));\n }\n\n public override connectedCallback(): void {\n super.connectedCallback();\n this[setDefaultAria]({\n role: 'radio',\n ariaChecked: this.checked ? 'true' : 'false',\n ariaDisabled: this.disabled ? 'true' : 'false',\n ariaRequired: this.required ? 'true' : 'false'\n });\n RadioGroupManager.syncRadioFocusableState(this);\n this._foundation.initialize();\n this._rootNode = this.getRootNode() as ShadowRoot | Document;\n }\n\n public disconnectedCallback(): void {\n RadioGroupManager.syncRadioFocusableState(this, { ignoreSelf: true, rootNode: this._rootNode, form: this._latestAssociatedForm });\n }\n\n public override attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case RADIO_CONSTANTS.attributes.CHECKED:\n this._foundation.checked = coerceBoolean(newValue);\n break;\n case RADIO_CONSTANTS.attributes.DEFAULT_CHECKED:\n this._foundation.defaultChecked = coerceBoolean(newValue);\n break;\n case RADIO_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n case RADIO_CONSTANTS.attributes.DENSE:\n this.dense = coerceBoolean(newValue);\n break;\n case RADIO_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case RADIO_CONSTANTS.attributes.REQUIRED:\n this.required = coerceBoolean(newValue);\n break;\n case RADIO_CONSTANTS.attributes.READONLY:\n this.readonly = coerceBoolean(newValue);\n break;\n case RADIO_CONSTANTS.attributes.LABEL_POSITION:\n this.labelPosition = newValue as RadioLabelPosition;\n break;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n public override [getFormValue](): FormValue | null {\n return this.checked ? this.value : null;\n }\n\n public override [getFormState](): RadioState {\n return this.checked ? 'checked' : 'unchecked';\n }\n\n public formAssociatedCallback(form: HTMLFormElement | null): void {\n if (form) {\n this._latestAssociatedForm = form;\n }\n }\n\n public formResetCallback(): void {\n RadioGroupManager.requestRadioGroupReset(this);\n }\n\n public formStateRestoreCallback(state: RadioState): void {\n this.checked = state === 'checked';\n }\n\n public labelClickedCallback(): void {\n this.click();\n }\n\n public labelChangedCallback(value: string | null): void {\n this[setDefaultAria]({ ariaLabel: value });\n }\n\n @FoundationProperty()\n public declare checked: boolean;\n\n @FoundationProperty()\n public declare defaultChecked: boolean;\n\n @FoundationProperty()\n public declare value: string;\n\n @FoundationProperty()\n public declare dense: boolean;\n\n @FoundationProperty()\n public declare disabled: boolean;\n\n @FoundationProperty()\n public declare required: boolean;\n\n @FoundationProperty()\n public declare readonly: boolean;\n\n @FoundationProperty()\n public declare labelPosition: RadioLabelPosition;\n\n public [tryCheck](): boolean {\n return this._foundation.tryCheck();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { RadioComponent } from './radio';\n\nexport * from './radio-adapter';\nexport * from './radio-constants';\nexport * from './radio-foundation';\nexport * from './radio';\n\nexport function defineRadioComponent(): void {\n defineCustomElement(RadioComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["_RadioGroupManager", "el", "rootNode", "form", "_a", "namedRadios", "RADIO_CONSTANTS", "radio", "formRadios", "group", "invalid", "validationMessage", "getValidationMessage", "internals", "ignoreSelf", "isFocusable", "event", "task", "checkedRadio", "increment", "index", "nextRadio", "tryCheck", "required", "selection", "RadioGroupManager", "elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadValues", "selectors", "events", "RADIO_CONSTANTS", "tryCheck", "RadioAdapter", "BaseAdapter", "component", "getShadowElement", "RADIO_CONSTANTS", "checked", "value", "setDefaultAria", "RadioGroupManager", "formValue", "formState", "internals", "group", "event", "RadioFoundation", "_adapter", "evt", "RADIO_CONSTANTS", "task", "changeEvent", "inputEvent", "value", "template", "styles", "BaseRadioClass", "WithFormAssociation", "WithLabelAwareness", "WithFocusable", "WithDefaultAria", "WithElementInternals", "BaseComponent", "RadioComponent", "attachShadowTemplate", "inputType", "RadioFoundation", "RadioAdapter", "RADIO_CONSTANTS", "setDefaultAria", "RadioGroupManager", "name", "oldValue", "newValue", "coerceBoolean", "getFormValue", "getFormState", "form", "state", "value", "tryCheck", "__decorateClass", "FoundationProperty", "CustomElement", "FocusIndicatorComponent", "StateLayerComponent", "defineRadioComponent", "defineCustomElement", "RadioComponent"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import{d as y}from"./chunk.QVATEY5S.js";import{b as N}from"./chunk.SROEDYPL.js";import{d as B}from"./chunk.QIZBZGYT.js";import{a as E}from"./chunk.37B332ZK.js";import{l as I}from"./chunk.T7NWP7DB.js";import{a as o}from"./chunk.NVUMRW44.js";import{a as A}from"./chunk.OLFOVKQG.js";import{a as T,b as x}from"./chunk.VRSPT7WX.js";import{a as v,e as b,f as n,k as O}from"./chunk.LNTTU2GL.js";import{c as d}from"./chunk.L4QSPQDE.js";import{k as f,l as m}from"./chunk.J2M2MXP2.js";import{a as p,b as g,d as a}from"./chunk.M3QDAYD2.js";var h=`${x}profile-card`,L={FULL_NAME:"full-name",EMAIL:"email",SIGN_OUT:"sign-out",PROFILE:"profile",SIGN_OUT_TEXT:"sign-out-text",PROFILE_TEXT:"profile-text",AVATAR_TEXT:"avatar-text",AVATAR_ICON:"avatar-icon",AVATAR_IMAGE_URL:"avatar-image-url",AVATAR_LETTER_COUNT:"avatar-letter-count"},C={FULL_NAME:".full-name",EMAIL:".email",AVATAR:".avatar > forge-avatar",ACTION_TOOLBAR:"#action-toolbar",PROFILE_BUTTON:"#profile-button",SIGN_OUT_BUTTON:"#sign-out-button"},U={SHOW_SIGN_OUT_BUTTON:!0,SHOW_PROFILE_BUTTON:!1,SIGN_OUT_BUTTON_TEXT:"Sign out",PROFILE_BUTTON_TEXT:"Profile"},P={SIGN_OUT:`${h}-sign-out`,PROFILE:`${h}-profile`},i={elementName:h,attributes:L,selectors:C,defaults:U,events:P};var l=class extends A{constructor(e){super(e);this._fullNameElement=n(e,i.selectors.FULL_NAME),this._emailElement=n(e,i.selectors.EMAIL),this._avatarElement=n(e,i.selectors.AVATAR),this._actionToolbar=n(e,i.selectors.ACTION_TOOLBAR),this._profileButton=n(e,i.selectors.PROFILE_BUTTON),this._signOutButton=n(e,i.selectors.SIGN_OUT_BUTTON)}setFullName(e){this._fullNameElement.textContent=e}setEmail(e){this._emailElement.textContent=e}setAvatarText(e){d(this._avatarElement),this._avatarElement.text=e}setAvatarIcon(e){if(e){let _=new E({props:{name:e}});this._avatarElement.replaceChildren(_.element)}else d(this._avatarElement)}setAvatarImageUrl(e){this._avatarElement.imageUrl=e}setAvatarLetterCount(e){this._avatarElement.letterCount=e}setActionToolbarVisibility(e){e?this._actionToolbar.style.removeProperty("display"):this._actionToolbar.style.display="none"}setProfileButtonVisibility(e){e?this._profileButton.style.removeProperty("display"):this._profileButton.style.display="none"}setSignOutButtonVisibility(e){e?this._signOutButton.style.removeProperty("display"):this._signOutButton.style.display="none"}setSignOutButtonText(e){this._signOutButton.textContent=e}setProfileButtonText(e){this._profileButton.textContent=e}setProfileButtonListener(e){this._profileButton.addEventListener("click",e)}setSignOutButtonListener(e){this._signOutButton.addEventListener("click",e)}requestProfileButtonFocus(e){window.requestAnimationFrame(()=>this._profileButton.focus(e))}requestSignOutButtonFocus(e){window.requestAnimationFrame(()=>this._signOutButton.focus(e))}};var u=class{constructor(t){this._adapter=t;this._showSignOutButton=i.defaults.SHOW_SIGN_OUT_BUTTON;this._showProfileButton=i.defaults.SHOW_PROFILE_BUTTON;this._signOutButtonText=i.defaults.SIGN_OUT_BUTTON_TEXT;this._profileButtonText=i.defaults.PROFILE_BUTTON_TEXT;this._profileListener=e=>this._onProfileButtonClick(e),this._signOutListener=e=>this._onSignOutButtonClick(e)}initialize(){this._adapter.setProfileButtonListener(this._profileListener),this._adapter.setSignOutButtonListener(this._signOutListener)}focus(t){this._showSignOutButton?this._adapter.requestSignOutButtonFocus(g(p({},t),{focusVisible:!0})):this._showProfileButton&&this._adapter.requestProfileButtonFocus(g(p({},t),{focusVisible:!0}))}_setActionVisibility(){let t=this._showSignOutButton||this._showProfileButton;this._adapter.setActionToolbarVisibility(t),this._adapter.setSignOutButtonVisibility(this._showSignOutButton),this._adapter.setProfileButtonVisibility(this._showProfileButton)}_onProfileButtonClick(t){t.stopPropagation(),this._adapter.emitHostEvent(i.events.PROFILE)}_onSignOutButtonClick(t){t.stopPropagation(),this._adapter.emitHostEvent(i.events.SIGN_OUT)}get fullName(){return this._fullName}set fullName(t){this._fullName!==t&&(this._fullName=t!=null?t:"",this._adapter.setFullName(this._fullName),this._avatarText||this._adapter.setAvatarText(this._fullName),this._adapter.toggleHostAttribute(i.attributes.FULL_NAME,!!this._fullName,this._fullName))}get email(){return this._email}set email(t){this._email!==t&&(this._email=t!=null?t:"",this._adapter.setEmail(this._email),this._adapter.toggleHostAttribute(i.attributes.EMAIL,!!this._email,this._email))}get avatarText(){return this._avatarText}set avatarText(t){this._avatarText!==t&&(this._avatarText=t!=null?t:"",this._adapter.setAvatarText(this._avatarText),this._adapter.toggleHostAttribute(i.attributes.AVATAR_TEXT,!!this._avatarText,this._avatarText))}get avatarIcon(){return this._avatarIcon}set avatarIcon(t){this._avatarIcon!==t&&(this._avatarIcon=t!=null?t:"",this._adapter.setAvatarIcon(this._avatarIcon),this._adapter.toggleHostAttribute(i.attributes.AVATAR_ICON,!!this._avatarIcon,this._avatarIcon))}get avatarImageUrl(){return this._avatarImageUrl}set avatarImageUrl(t){this._avatarImageUrl!==t&&(this._avatarImageUrl=t,this._adapter.setAvatarImageUrl(this._avatarImageUrl),this._adapter.toggleHostAttribute(i.attributes.AVATAR_IMAGE_URL,!!this._avatarImageUrl,this._avatarImageUrl))}get avatarLetterCount(){return this._avatarLetterCount}set avatarLetterCount(t){this._avatarLetterCount!==t&&(this._avatarLetterCount=t,this._adapter.setAvatarLetterCount(this._avatarLetterCount),this._adapter.toggleHostAttribute(i.attributes.AVATAR_LETTER_COUNT,!!this._avatarLetterCount,`${this._avatarLetterCount}`))}get signOut(){return this._showSignOutButton}set signOut(t){t=!!t,this._showSignOutButton!==t&&(this._showSignOutButton=t,this._setActionVisibility(),this._adapter.toggleHostAttribute(i.attributes.SIGN_OUT,this._showSignOutButton))}get profile(){return this._showProfileButton}set profile(t){t=!!t,this._showProfileButton!==t&&(this._showProfileButton=t,this._setActionVisibility(),this._adapter.toggleHostAttribute(i.attributes.PROFILE,this._showProfileButton))}get signOutText(){return this._signOutButtonText}set signOutText(t){if(this._signOutButtonText!==t){this._signOutButtonText=t||i.defaults.SIGN_OUT_BUTTON_TEXT,this._adapter.setSignOutButtonText(this._signOutButtonText);let e=this._signOutButtonText!==i.defaults.SIGN_OUT_BUTTON_TEXT;this._adapter.toggleHostAttribute(i.attributes.SIGN_OUT_TEXT,e,this._signOutButtonText)}}get profileText(){return this._profileButtonText}set profileText(t){if(this._profileButtonText!==t){this._profileButtonText=t||i.defaults.PROFILE_BUTTON_TEXT,this._adapter.setProfileButtonText(this._profileButtonText);let e=t!==i.defaults.PROFILE_BUTTON_TEXT;this._adapter.toggleHostAttribute(i.attributes.PROFILE_TEXT,e,this._profileButtonText)}}};var R='<template><div class="forge-profile-card" part="root"><div class="info-container"><div class="avatar"><forge-avatar part="avatar"></forge-avatar></div><div class="info-text"><div class="full-name" part="name"></div><div class="email" part="email"></div></div></div><slot></slot><forge-toolbar inverted id="action-toolbar"><forge-button variant="outlined" slot="end" style="display: none;" part="profile-button" id="profile-button">Profile</forge-button><forge-button slot="end" part="sign-out-button" id="sign-out-button">Sign out</forge-button></forge-toolbar></div></template>',S=':host{display:block}:host([hidden]){display:none}.forge-profile-card{--_profile-card-min-width:var(--forge-profile-card-min-width, 360px);--_profile-card-shape:var(--forge-profile-card-shape, var(--forge-shape-medium, 4px));--_profile-card-avatar-size:var(--forge-profile-card-avatar-size, 56px)}.forge-profile-card{min-width:var(--_profile-card-min-width);border-radius:var(--_profile-card-shape)}@media (max-width:399px){.forge-profile-card{width:100vw;min-width:unset;overflow:auto}}.forge-profile-card .info-container{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding-block:var(--forge-spacing-xsmall,8px);padding-inline:var(--forge-spacing-medium,16px)}.forge-profile-card .avatar{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:var(--forge-spacing-xsmall,8px);-webkit-margin-end:var(--forge-spacing-medium,16px);margin-inline-end:var(--forge-spacing-medium,16px);--forge-avatar-size:var(--_profile-card-avatar-size)}.forge-profile-card .text{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.forge-profile-card .full-name{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-heading2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-heading2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading2-font-size-scale, 1)));font-weight:var(--forge-typography-heading2-font-weight,500);line-height:var(--forge-typography-heading2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading2-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-heading2-letter-spacing, .0125em);text-transform:var(--forge-typography-heading2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-heading2-text-decoration,inherit);text-decoration:var(--forge-typography-heading2-text-decoration,inherit)}.forge-profile-card .email{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-subheading1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-subheading1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading1-font-size-scale, .875)));font-weight:var(--forge-typography-subheading1-font-weight,400);line-height:var(--forge-typography-subheading1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading1-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-subheading1-letter-spacing, normal);text-transform:var(--forge-typography-subheading1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-subheading1-text-decoration,inherit);text-decoration:var(--forge-typography-subheading1-text-decoration,inherit);color:var(--forge-theme-text-medium,rgba(0,0,0,.6))}#action-toolbar{--forge-toolbar-background:var(--forge-theme-surface-bright, #ffffff);--forge-toolbar-padding:8px}#action-toolbar forge-button:not(:last-of-type){-webkit-margin-end:8px;margin-inline-end:8px}',r=class extends O{constructor(){super();b(this,R,S),this._foundation=new u(new l(this))}static get observedAttributes(){return[i.attributes.FULL_NAME,i.attributes.EMAIL,i.attributes.SIGN_OUT,i.attributes.PROFILE,i.attributes.SIGN_OUT_TEXT,i.attributes.PROFILE_TEXT,i.attributes.AVATAR_TEXT,i.attributes.AVATAR_ICON,i.attributes.AVATAR_IMAGE_URL,i.attributes.AVATAR_LETTER_COUNT]}connectedCallback(){this._foundation.initialize()}attributeChangedCallback(e,_,s){switch(e){case i.attributes.FULL_NAME:this.fullName=s;break;case i.attributes.EMAIL:this.email=s;break;case i.attributes.SIGN_OUT:this.signOut=f(s);break;case i.attributes.PROFILE:this.profile=f(s);break;case i.attributes.SIGN_OUT_TEXT:this.signOutText=s;break;case i.attributes.PROFILE_TEXT:this.profileText=s;break;case i.attributes.AVATAR_TEXT:this.avatarText=s;break;case i.attributes.AVATAR_ICON:this.avatarIcon=s;break;case i.attributes.AVATAR_IMAGE_URL:this.avatarImageUrl=s;break;case i.attributes.AVATAR_LETTER_COUNT:this.avatarLetterCount=m(s);break}}focus(e){this._foundation.focus(e)}};a([o()],r.prototype,"fullName",2),a([o()],r.prototype,"email",2),a([o()],r.prototype,"signOut",2),a([o()],r.prototype,"profile",2),a([o()],r.prototype,"signOutText",2),a([o()],r.prototype,"profileText",2),a([o()],r.prototype,"avatarText",2),a([o()],r.prototype,"avatarIcon",2),a([o()],r.prototype,"avatarImageUrl",2),a([o()],r.prototype,"avatarLetterCount",2),r=a([T({name:i.elementName,dependencies:[N,B,I,y]})],r);function st(){v(r)}export{i as a,l as b,u as c,r as d,st as e};
|
|
7
|
+
//# sourceMappingURL=chunk.7Y3BUR7Q.js.map
|