@tylertech/forge 3.0.0-next.23 → 3.0.0-next.24
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 +28789 -33252
- 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/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.AOVXNX7P.js → chunk.24L6GVJK.js} +2 -2
- package/dist/esm/chunks/{chunk.WMJSYYXQ.js → chunk.27YQZWEJ.js} +2 -2
- package/dist/esm/chunks/{chunk.AG6IRMLZ.js → chunk.2CP5CIRB.js} +2 -2
- package/dist/esm/chunks/chunk.2FF7EQQ3.js +7 -0
- package/dist/esm/chunks/chunk.2FF7EQQ3.js.map +7 -0
- package/dist/esm/chunks/{chunk.USTVZ6MZ.js → chunk.345JBXIL.js} +2 -2
- package/dist/esm/chunks/{chunk.USTVZ6MZ.js.map → chunk.345JBXIL.js.map} +2 -2
- package/dist/esm/chunks/chunk.3B573FQF.js +7 -0
- package/dist/esm/chunks/chunk.3B573FQF.js.map +7 -0
- package/dist/esm/chunks/{chunk.H4VQXV2H.js → chunk.3CXCYRCE.js} +2 -2
- package/dist/esm/chunks/{chunk.MTIPIEXA.js → chunk.3LNZRQAL.js} +2 -2
- package/dist/esm/chunks/{chunk.BQ52JYLA.js → chunk.3LUG3LPU.js} +2 -2
- package/dist/esm/chunks/{chunk.IL4S57WO.js → chunk.3ODT27TD.js} +2 -2
- package/dist/esm/chunks/chunk.3S3NH5P4.js +7 -0
- package/dist/esm/chunks/chunk.3S3NH5P4.js.map +7 -0
- package/dist/esm/chunks/{chunk.XZ23XHFE.js → chunk.45N7ZZVL.js} +2 -2
- package/dist/esm/chunks/{chunk.YWJVZVZX.js → chunk.4GFUXXXH.js} +2 -2
- package/dist/esm/chunks/chunk.4UMFAYZH.js +7 -0
- package/dist/esm/chunks/chunk.4UMFAYZH.js.map +7 -0
- package/dist/esm/chunks/{chunk.ZA7JY3AY.js → chunk.5DDR6QSF.js} +2 -2
- package/dist/esm/chunks/{chunk.3KAKJGUS.js → chunk.5NEWFXFX.js} +2 -2
- package/dist/esm/chunks/{chunk.VRSPT7WX.js → chunk.5OT53ZJM.js} +2 -2
- package/dist/esm/chunks/{chunk.VL5RWSAV.js → chunk.6DWRGYKV.js} +2 -2
- package/dist/esm/chunks/{chunk.IEABOPNB.js → chunk.6T7KPDCD.js} +2 -2
- package/dist/esm/chunks/chunk.6TQDZAMD.js +7 -0
- package/dist/esm/chunks/chunk.6TQDZAMD.js.map +7 -0
- package/dist/esm/chunks/chunk.6V6VLKIK.js +7 -0
- package/dist/esm/chunks/chunk.6V6VLKIK.js.map +7 -0
- package/dist/esm/chunks/{chunk.SROEDYPL.js → chunk.7JO5MB55.js} +2 -2
- package/dist/esm/chunks/{chunk.CLYGTLXN.js → chunk.7TE74NJZ.js} +2 -2
- package/dist/esm/chunks/{chunk.AGLI4WR4.js → chunk.AJLS5C7O.js} +2 -2
- package/dist/esm/chunks/{chunk.TSSZQPLE.js → chunk.BURDWL57.js} +2 -2
- package/dist/esm/chunks/chunk.BYSMPFWQ.js +7 -0
- package/dist/esm/chunks/chunk.BYSMPFWQ.js.map +7 -0
- package/dist/esm/chunks/{chunk.BHE6Z5Y2.js → chunk.CQ4XBOX5.js} +2 -2
- package/dist/esm/chunks/{chunk.NEQX2QVX.js → chunk.DJQXJO3T.js} +2 -2
- package/dist/esm/chunks/chunk.DN6Y3VXC.js +7 -0
- package/dist/esm/chunks/{chunk.RLQB7224.js.map → chunk.DN6Y3VXC.js.map} +2 -2
- package/dist/esm/chunks/{chunk.VJZ7VDG5.js → chunk.DPJJB67L.js} +2 -2
- package/dist/esm/chunks/{chunk.7Y3BUR7Q.js → chunk.EBRMG6N3.js} +2 -2
- package/dist/esm/chunks/{chunk.7Y3BUR7Q.js.map → chunk.EBRMG6N3.js.map} +2 -2
- package/dist/esm/chunks/chunk.EPMDEQF7.js +7 -0
- package/dist/esm/chunks/chunk.EPMDEQF7.js.map +7 -0
- package/dist/esm/chunks/{chunk.OOAJHLW4.js → chunk.EZIABLIR.js} +2 -2
- package/dist/esm/chunks/{chunk.ZG6YF2HI.js → chunk.F53DSRUO.js} +2 -2
- package/dist/esm/chunks/{chunk.7AAICE77.js → chunk.FIO22U2C.js} +2 -2
- package/dist/esm/chunks/{chunk.U6J4VHU6.js → chunk.FKMTIOBA.js} +2 -2
- package/dist/esm/chunks/chunk.FMDUCGOU.js +7 -0
- package/dist/esm/chunks/{chunk.OJ7JO4O6.js.map → chunk.FMDUCGOU.js.map} +1 -1
- package/dist/esm/chunks/{chunk.W4HANHUO.js → chunk.FMGBPF7B.js} +2 -2
- package/dist/esm/chunks/{chunk.5MB6CTBA.js → chunk.FVFPDWA4.js} +2 -2
- package/dist/esm/chunks/{chunk.ENUKGA2U.js → chunk.FYPIHFXD.js} +2 -2
- package/dist/esm/chunks/chunk.GNQ24XWK.js +7 -0
- package/dist/esm/chunks/chunk.GNQ24XWK.js.map +7 -0
- package/dist/esm/chunks/chunk.GP6LHJDA.js +7 -0
- package/dist/esm/chunks/chunk.GP6LHJDA.js.map +7 -0
- package/dist/esm/chunks/{chunk.CE35CVDV.js → chunk.GQ33JZVE.js} +2 -2
- package/dist/esm/chunks/{chunk.2W23MOPP.js → chunk.GUBLRHCG.js} +2 -2
- package/dist/esm/chunks/{chunk.473WRJ5G.js → chunk.HJUXBSFZ.js} +2 -2
- package/dist/esm/chunks/chunk.HJUXBSFZ.js.map +7 -0
- package/dist/esm/chunks/{chunk.37B332ZK.js → chunk.HSNVTV7K.js} +2 -2
- package/dist/esm/chunks/{chunk.PC6TW5XE.js → chunk.HXNNWUI3.js} +2 -2
- package/dist/esm/chunks/{chunk.QCPV5DEG.js → chunk.IOGCI64X.js} +2 -2
- package/dist/esm/chunks/chunk.JB2F2HQE.js +7 -0
- package/dist/esm/chunks/chunk.JB2F2HQE.js.map +7 -0
- package/dist/esm/chunks/chunk.JGPWKCAU.js +7 -0
- package/dist/esm/chunks/chunk.JGPWKCAU.js.map +7 -0
- package/dist/esm/chunks/chunk.JU76GN6C.js +7 -0
- package/dist/esm/chunks/{chunk.KLU54MDQ.js.map → chunk.JU76GN6C.js.map} +2 -2
- package/dist/esm/chunks/chunk.K7I5FWBT.js +7 -0
- package/dist/esm/chunks/chunk.K7I5FWBT.js.map +7 -0
- package/dist/esm/chunks/{chunk.5UOX22ML.js → chunk.KKVQNKMV.js} +2 -2
- package/dist/esm/chunks/{chunk.YPNSK2CK.js → chunk.KW5A2U5U.js} +2 -2
- package/dist/esm/chunks/chunk.L6L3CPBH.js +7 -0
- package/dist/esm/chunks/chunk.L6L3CPBH.js.map +7 -0
- package/dist/esm/chunks/{chunk.KO6ODCZC.js → chunk.LIJE4T3D.js} +2 -2
- package/dist/esm/chunks/{chunk.KEOLH7G3.js → chunk.LQN5U4QH.js} +2 -2
- package/dist/esm/chunks/{chunk.5QIWLZG3.js → chunk.LSUIJDFO.js} +2 -2
- package/dist/esm/chunks/{chunk.77C7S7ZS.js → chunk.N65CAIE5.js} +2 -2
- package/dist/esm/chunks/{chunk.UKBE2FMZ.js → chunk.NNLZKMFX.js} +2 -2
- package/dist/esm/chunks/{chunk.EO3GP6DP.js → chunk.ON6FFHRE.js} +2 -2
- package/dist/esm/chunks/{chunk.OVXEOEJF.js → chunk.ONFZ3H7M.js} +2 -2
- package/dist/esm/chunks/{chunk.32APLNN2.js → chunk.OVVBXM6K.js} +2 -2
- package/dist/esm/chunks/{chunk.FLBYVCQ6.js → chunk.P3Q3IVVX.js} +2 -2
- package/dist/esm/chunks/{chunk.FLBYVCQ6.js.map → chunk.P3Q3IVVX.js.map} +2 -2
- package/dist/esm/chunks/{chunk.DKERDHXH.js → chunk.P74RZEWP.js} +2 -2
- package/dist/esm/chunks/{chunk.QLGJS37N.js → chunk.PBORL6KX.js} +2 -2
- package/dist/esm/chunks/chunk.PDJ2H5ZG.js +7 -0
- package/dist/esm/chunks/{chunk.UPSXYWPD.js.map → chunk.PDJ2H5ZG.js.map} +3 -3
- package/dist/esm/chunks/{chunk.JGURMVW7.js → chunk.PGMOAILY.js} +2 -2
- package/dist/esm/chunks/{chunk.OEI35LFU.js → chunk.PKCMTSWR.js} +2 -2
- package/dist/esm/chunks/{chunk.QUXMLWBJ.js → chunk.Q3Z6VZUD.js} +2 -2
- package/dist/esm/chunks/{chunk.TQWZDM6T.js → chunk.QBHJFCLL.js} +2 -2
- package/dist/esm/chunks/{chunk.WXVVOFNK.js → chunk.QDG6TP2Z.js} +2 -2
- package/dist/esm/chunks/{chunk.H5RW3A4M.js → chunk.QH27OIAK.js} +2 -2
- package/dist/esm/chunks/chunk.QKCPE4LW.js +7 -0
- package/dist/esm/chunks/{chunk.2GUWHBUU.js → chunk.QM32CJAX.js} +2 -2
- package/dist/esm/chunks/{chunk.2GUWHBUU.js.map → chunk.QM32CJAX.js.map} +2 -2
- package/dist/esm/chunks/{chunk.FLF5RTYO.js → chunk.R2CJMM2F.js} +2 -2
- package/dist/esm/chunks/{chunk.IQYOLMPG.js → chunk.RGDLRUSM.js} +2 -2
- package/dist/esm/chunks/{chunk.QIZBZGYT.js → chunk.RKPWFEFJ.js} +2 -2
- package/dist/esm/chunks/{chunk.RXBLU4OJ.js → chunk.S5EU72NR.js} +2 -2
- package/dist/esm/chunks/chunk.SJYEDGBN.js +7 -0
- package/dist/esm/chunks/chunk.SJYEDGBN.js.map +7 -0
- package/dist/esm/chunks/{chunk.T7NWP7DB.js → chunk.SW6JDC2Y.js} +2 -2
- package/dist/esm/chunks/{chunk.7IPAW4D2.js → chunk.TAQRHBGS.js} +2 -2
- package/dist/esm/chunks/{chunk.MFQRXVKO.js → chunk.TEZFEC5B.js} +2 -2
- package/dist/esm/chunks/{chunk.MX4JX4GT.js → chunk.THIUQ2AU.js} +2 -2
- package/dist/esm/chunks/{chunk.LY2Z2Z7S.js → chunk.TQMT7BIZ.js} +2 -2
- package/dist/esm/chunks/{chunk.GIENHEMN.js → chunk.TR45SGWL.js} +2 -2
- package/dist/esm/chunks/chunk.TZHVZMOB.js +12 -0
- package/dist/esm/chunks/chunk.TZHVZMOB.js.map +7 -0
- package/dist/esm/chunks/{chunk.CFAI4K3E.js → chunk.UBVWYWO7.js} +2 -2
- package/dist/esm/chunks/{chunk.NWVQ5HK2.js → chunk.UHPODZWA.js} +2 -2
- package/dist/esm/chunks/{chunk.3PMONORO.js → chunk.V4R7FCZ2.js} +2 -2
- package/dist/esm/chunks/chunk.V5YGDB7V.js +7 -0
- package/dist/esm/chunks/{chunk.3II7OT2I.js.map → chunk.V5YGDB7V.js.map} +2 -2
- package/dist/esm/chunks/chunk.VAE5IFEM.js +7 -0
- package/dist/esm/chunks/{chunk.GBAVJILM.js.map → chunk.VAE5IFEM.js.map} +4 -4
- package/dist/esm/chunks/{chunk.QTY25OTN.js → chunk.VCASLYVR.js} +2 -2
- package/dist/esm/chunks/{chunk.QTY25OTN.js.map → chunk.VCASLYVR.js.map} +2 -2
- package/dist/esm/chunks/chunk.W4CL56G7.js +7 -0
- package/dist/esm/chunks/{chunk.BQZKOIAW.js.map → chunk.W4CL56G7.js.map} +2 -2
- package/dist/esm/chunks/{chunk.BEFAXPXJ.js → chunk.WNX3GGYT.js} +2 -2
- package/dist/esm/chunks/chunk.X4NHJE7S.js +7 -0
- package/dist/esm/chunks/chunk.X4NHJE7S.js.map +7 -0
- package/dist/esm/chunks/{chunk.I7YON2TC.js → chunk.X5MI5OFS.js} +2 -2
- package/dist/esm/chunks/{chunk.QKTK5XUE.js → chunk.XHRBFPZ2.js} +2 -2
- package/dist/esm/chunks/{chunk.ASLHRT3N.js → chunk.XT6RPXTM.js} +2 -2
- package/dist/esm/chunks/{chunk.VGIRVTBJ.js → chunk.XWVFJVBN.js} +2 -2
- package/dist/esm/chunks/{chunk.YNCTSMT6.js → chunk.YXFGOJ5Z.js} +2 -2
- package/dist/esm/chunks/chunk.YZ26YDCO.js +7 -0
- package/dist/esm/chunks/{chunk.A7BCLPP4.js.map → chunk.YZ26YDCO.js.map} +2 -2
- package/dist/esm/chunks/chunk.Z6G2RUC2.js +7 -0
- package/dist/esm/chunks/chunk.Z6G2RUC2.js.map +7 -0
- package/dist/esm/chunks/{chunk.K6GJNDTY.js → chunk.Z7IUKJHZ.js} +2 -2
- package/dist/esm/chunks/{chunk.K6GJNDTY.js.map → chunk.Z7IUKJHZ.js.map} +1 -1
- package/dist/esm/chunks/{chunk.GG7IQL46.js → chunk.ZPH3TMNA.js} +2 -2
- package/dist/esm/chunks/chunk.ZSHPKAXP.js +7 -0
- package/dist/esm/chunks/chunk.ZSHPKAXP.js.map +7 -0
- package/dist/esm/chunks/{chunk.CEGBMUSR.js → chunk.ZWELGTD7.js} +2 -2
- package/dist/esm/circular-progress/index.js +1 -1
- package/dist/esm/color-picker/index.js +1 -1
- package/dist/esm/core/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/icon-button/index.js +7 -0
- 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/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/index.js +1 -1
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/floating-action-button/index.js +1 -1
- package/dist/esm/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/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/utils/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-dark.css +1 -1
- package/dist/forge-tokens.css +6 -0
- package/dist/forge.css +1 -1
- package/dist/table/forge-table.css +1 -1
- package/dist/theme/forge-theme.css +1 -1
- package/dist/typography/forge-typography.css +1 -1
- package/esm/app-bar/search/app-bar-search.d.ts +3 -3
- package/esm/app-bar/search/app-bar-search.js +3 -3
- package/esm/avatar/avatar-constants.d.ts +0 -1
- package/esm/avatar/avatar-constants.js +0 -2
- package/esm/bottom-sheet/bottom-sheet-adapter.d.ts +26 -42
- package/esm/bottom-sheet/bottom-sheet-adapter.js +46 -85
- package/esm/bottom-sheet/bottom-sheet-constants.d.ts +16 -13
- package/esm/bottom-sheet/bottom-sheet-constants.js +24 -27
- package/esm/bottom-sheet/bottom-sheet-foundation.d.ts +17 -43
- package/esm/bottom-sheet/bottom-sheet-foundation.js +106 -213
- package/esm/bottom-sheet/bottom-sheet.d.ts +42 -29
- package/esm/bottom-sheet/bottom-sheet.js +52 -41
- package/esm/calendar/calendar-constants.d.ts +0 -1
- package/esm/calendar/calendar-constants.js +0 -1
- package/esm/calendar/calendar-dom-utils.js +10 -4
- package/esm/calendar/calendar-menu/calendar-menu-adapter.js +9 -2
- package/esm/calendar/calendar-menu/calendar-menu-constants.d.ts +0 -1
- package/esm/calendar/calendar-menu/calendar-menu-constants.js +0 -1
- package/esm/calendar/calendar-menu/calendar-menu-utils.js +10 -0
- package/esm/calendar/calendar-menu/calendar-menu.js +8 -2
- package/esm/calendar/calendar.js +6 -2
- package/esm/checkbox/checkbox-foundation.js +9 -9
- package/esm/color-picker/color-picker.js +1 -1
- package/esm/deprecated/icon-button/deprecated-icon-button-component-delegate.d.ts +38 -0
- package/esm/deprecated/icon-button/deprecated-icon-button-component-delegate.js +93 -0
- package/esm/deprecated/icon-button/deprecated-icon-button-constants.d.ts +28 -0
- package/esm/deprecated/icon-button/deprecated-icon-button-constants.js +28 -0
- package/esm/deprecated/icon-button/deprecated-icon-button.d.ts +62 -0
- package/esm/deprecated/icon-button/deprecated-icon-button.js +208 -0
- package/esm/deprecated/icon-button/index.d.ts +12 -0
- package/esm/deprecated/icon-button/index.js +16 -0
- package/esm/dialog/dialog.js +1 -1
- package/esm/drawer/drawer/drawer.js +1 -1
- package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
- package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
- package/esm/field/field.js +1 -1
- package/esm/index.d.ts +1 -3
- package/esm/index.js +4 -8
- package/esm/list/list/list.js +1 -1
- package/esm/list/list-item/list-item-adapter.js +4 -0
- package/esm/list/list-item/list-item.d.ts +6 -4
- package/esm/list/list-item/list-item.js +7 -5
- package/esm/open-icon/index.d.ts +0 -2
- package/esm/open-icon/index.js +0 -2
- package/esm/open-icon/open-icon-constants.d.ts +10 -6
- package/esm/open-icon/open-icon-constants.js +9 -11
- package/esm/open-icon/open-icon.d.ts +37 -12
- package/esm/open-icon/open-icon.js +67 -22
- package/esm/paginator/paginator-adapter.d.ts +19 -52
- package/esm/paginator/paginator-adapter.js +25 -106
- package/esm/paginator/paginator-constants.d.ts +22 -35
- package/esm/paginator/paginator-constants.js +17 -40
- package/esm/paginator/paginator-foundation.d.ts +10 -12
- package/esm/paginator/paginator-foundation.js +39 -51
- package/esm/paginator/paginator.d.ts +4 -7
- package/esm/paginator/paginator.js +24 -45
- package/esm/popover/popover.js +1 -1
- package/esm/profile-card/profile-card.js +1 -1
- package/esm/radio/radio/radio-foundation.js +2 -2
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/stepper/step/step.js +1 -1
- package/esm/switch/switch-foundation.js +6 -6
- package/esm/table/table-constants.d.ts +1 -0
- package/esm/table/table-constants.js +4 -3
- package/esm/table/table-foundation.js +2 -2
- package/esm/table/table-utils.js +31 -14
- package/esm/tooltip/tooltip.js +1 -1
- package/esm/utils/color-utils.d.ts +0 -4
- package/esm/utils/color-utils.js +0 -19
- package/esm/view-switcher/view-switcher.js +1 -1
- package/package.json +1 -12
- package/styles/bottom-sheet/_core.scss +19 -0
- package/styles/bottom-sheet/_token-utils.scss +30 -0
- package/styles/bottom-sheet/bottom-sheet.scss +59 -3
- package/styles/{color-picker/_variables.scss → bottom-sheet/index.scss} +1 -1
- package/styles/calendar/_mixins.scss +33 -56
- package/styles/calendar/_variables.scss +39 -39
- package/styles/calendar/calendar-menu/_mixins.scss +25 -84
- package/styles/color-picker/_mixins.scss +15 -21
- package/styles/color-picker/color-picker.scss +0 -1
- package/styles/core/styles/animation/index.scss +22 -0
- package/styles/core/styles/border/index.scss +10 -1
- package/styles/core/styles/elevation/index.scss +19 -26
- package/styles/core/styles/shape/index.scss +9 -0
- package/styles/core/styles/spacing/index.scss +9 -0
- package/styles/core/styles/theme/index.scss +2 -13
- package/styles/core/styles/tokens/bottom-sheet/_tokens.scss +21 -0
- package/styles/core/styles/tokens/elevation/_tokens.scss +35 -84
- package/styles/core/styles/tokens/list/list/_tokens.scss +14 -1
- package/styles/core/styles/tokens/list/list-item/_tokens.scss +6 -6
- package/styles/core/styles/tokens/open-icon/_tokens.scss +25 -0
- package/styles/core/styles/tokens/popover/_tokens.scss +1 -1
- package/styles/core/styles/tokens/theme/_tokens.core.scss +60 -30
- package/styles/core/styles/tokens/theme/_tokens.scss +1 -48
- package/styles/core/styles/tokens/theme/_tokens.status.scss +78 -32
- package/styles/core/styles/tokens/theme/_tokens.surface.scss +33 -51
- package/styles/core/styles/tokens/theme/_tokens.text.scss +20 -26
- package/styles/core/styles/tokens/theme/_tokens.utilities.scss +13 -23
- package/styles/core/styles/tokens/tooltip/_tokens.scss +1 -1
- package/styles/deprecated/icon-button/deprecated-icon-button.scss +114 -0
- package/styles/dialog/_core.scss +3 -1
- package/styles/dialog/dialog.scss +1 -1
- package/styles/drawer/base/_mixins.scss +11 -10
- package/styles/drawer/base/_variables.scss +6 -5
- package/styles/drawer/drawer/_variables.scss +6 -5
- package/styles/drawer/mini-drawer/_mixins.scss +11 -14
- package/styles/drawer/modal-drawer/_mixins.scss +4 -9
- package/styles/field/_core.variant.scss +0 -1
- package/styles/forge-tokens.scss +40 -0
- package/styles/forge.scss +1 -10
- package/styles/linear-progress/_core.scss +0 -1
- package/styles/list/list/list.scss +23 -7
- package/styles/list/list-item/_core.scss +10 -10
- package/styles/list/list-item/list-item.scss +4 -4
- package/styles/open-icon/_core.scss +26 -0
- package/styles/open-icon/_token-utils.scss +30 -0
- package/styles/{paginator/_variables.scss → open-icon/index.scss} +1 -1
- package/styles/open-icon/open-icon.scss +75 -3
- package/styles/paginator/_core.scss +42 -0
- package/styles/{typography/_index.scss → paginator/index.scss} +1 -2
- package/styles/paginator/paginator.scss +49 -5
- package/styles/profile-card/profile-card.scss +0 -1
- package/styles/split-view/split-view/_mixins.scss +0 -2
- package/styles/split-view/split-view-panel/_mixins.scss +12 -16
- package/styles/split-view/split-view-panel/_variables.scss +0 -1
- package/styles/table/_core.scss +333 -0
- package/styles/table/_variables.scss +22 -37
- package/styles/table/forge-table.scss +217 -3
- package/styles/{theme/_index.scss → table/index.scss} +1 -2
- package/styles/theme/_theme-dark.scss +0 -5
- package/styles/theme/forge-theme.scss +0 -7
- package/styles/typography/forge-typography.scss +0 -3
- package/styles/view-switcher/_mixins.scss +8 -8
- package/dist/busy-indicator/forge-busy-indicator.css +0 -6
- package/dist/esm/busy-indicator/index.js +0 -7
- package/dist/esm/chunks/chunk.3CTKWBV2.js +0 -7
- package/dist/esm/chunks/chunk.3CTKWBV2.js.map +0 -7
- package/dist/esm/chunks/chunk.3II7OT2I.js +0 -7
- package/dist/esm/chunks/chunk.6VS3LYAF.js +0 -7
- package/dist/esm/chunks/chunk.6VS3LYAF.js.map +0 -7
- package/dist/esm/chunks/chunk.7RLY2O3H.js +0 -7
- package/dist/esm/chunks/chunk.7RLY2O3H.js.map +0 -7
- package/dist/esm/chunks/chunk.A7BCLPP4.js +0 -7
- package/dist/esm/chunks/chunk.AFWWND2C.js +0 -7
- package/dist/esm/chunks/chunk.AFWWND2C.js.map +0 -7
- package/dist/esm/chunks/chunk.AIJK3CTV.js +0 -12
- package/dist/esm/chunks/chunk.AIJK3CTV.js.map +0 -7
- package/dist/esm/chunks/chunk.BQZKOIAW.js +0 -7
- package/dist/esm/chunks/chunk.BV7EAQST.js +0 -7
- package/dist/esm/chunks/chunk.BV7EAQST.js.map +0 -7
- package/dist/esm/chunks/chunk.CGFSMACZ.js +0 -7
- package/dist/esm/chunks/chunk.CGFSMACZ.js.map +0 -7
- package/dist/esm/chunks/chunk.GBAVJILM.js +0 -7
- package/dist/esm/chunks/chunk.GRYO5XP2.js +0 -7
- package/dist/esm/chunks/chunk.GRYO5XP2.js.map +0 -7
- package/dist/esm/chunks/chunk.HD2SLIL2.js +0 -7
- package/dist/esm/chunks/chunk.HD2SLIL2.js.map +0 -7
- package/dist/esm/chunks/chunk.HG4IDRAC.js +0 -7
- package/dist/esm/chunks/chunk.HG4IDRAC.js.map +0 -7
- package/dist/esm/chunks/chunk.KCCW4AMU.js +0 -7
- package/dist/esm/chunks/chunk.KCCW4AMU.js.map +0 -7
- package/dist/esm/chunks/chunk.KLU54MDQ.js +0 -7
- package/dist/esm/chunks/chunk.MFS7AVW6.js +0 -7
- package/dist/esm/chunks/chunk.MFS7AVW6.js.map +0 -7
- package/dist/esm/chunks/chunk.O5WAQQNR.js +0 -7
- package/dist/esm/chunks/chunk.O5WAQQNR.js.map +0 -7
- package/dist/esm/chunks/chunk.OJ7JO4O6.js +0 -7
- package/dist/esm/chunks/chunk.OQHDHS2C.js +0 -7
- package/dist/esm/chunks/chunk.OQHDHS2C.js.map +0 -7
- package/dist/esm/chunks/chunk.OREDK5MJ.js +0 -7
- package/dist/esm/chunks/chunk.OREDK5MJ.js.map +0 -7
- package/dist/esm/chunks/chunk.QVATEY5S.js +0 -7
- package/dist/esm/chunks/chunk.QVATEY5S.js.map +0 -7
- package/dist/esm/chunks/chunk.RKIJTSSL.js +0 -7
- package/dist/esm/chunks/chunk.RKIJTSSL.js.map +0 -7
- package/dist/esm/chunks/chunk.RLQB7224.js +0 -7
- package/dist/esm/chunks/chunk.RSYEG2RW.js +0 -7
- package/dist/esm/chunks/chunk.RSYEG2RW.js.map +0 -7
- package/dist/esm/chunks/chunk.SZOZIJZI.js +0 -7
- package/dist/esm/chunks/chunk.SZOZIJZI.js.map +0 -7
- package/dist/esm/chunks/chunk.UPSXYWPD.js +0 -7
- package/dist/esm/chunks/chunk.V6KUOCAR.js +0 -7
- package/dist/esm/chunks/chunk.V6KUOCAR.js.map +0 -7
- package/dist/esm/chunks/chunk.X77NKT6Z.js +0 -7
- package/dist/esm/chunks/chunk.X77NKT6Z.js.map +0 -7
- package/dist/esm/chunks/chunk.YRAEFQJW.js +0 -7
- package/dist/esm/chunks/chunk.YRAEFQJW.js.map +0 -7
- package/dist/esm/quantity-field/index.js +0 -7
- package/dist/esm/quantity-field/index.js.map +0 -7
- package/dist/esm/theme/index.js +0 -7
- package/dist/esm/theme/index.js.map +0 -7
- package/dist/quantity-field/forge-quantity-field.css +0 -6
- package/dist/typography/forge-typography-legacy.css +0 -6
- package/dist/utils/forge-utils.css +0 -6
- package/esm/busy-indicator/busy-indicator-adapter.d.ts +0 -155
- package/esm/busy-indicator/busy-indicator-adapter.js +0 -203
- package/esm/busy-indicator/busy-indicator-constants.d.ts +0 -49
- package/esm/busy-indicator/busy-indicator-constants.js +0 -58
- package/esm/busy-indicator/busy-indicator-foundation.d.ts +0 -97
- package/esm/busy-indicator/busy-indicator-foundation.js +0 -268
- package/esm/busy-indicator/busy-indicator.d.ts +0 -77
- package/esm/busy-indicator/busy-indicator.js +0 -115
- package/esm/busy-indicator/index.d.ts +0 -10
- package/esm/busy-indicator/index.js +0 -14
- package/esm/open-icon/open-icon-adapter.d.ts +0 -18
- package/esm/open-icon/open-icon-adapter.js +0 -27
- package/esm/open-icon/open-icon-foundation.d.ts +0 -22
- package/esm/open-icon/open-icon-foundation.js +0 -35
- package/esm/quantity-field/index.d.ts +0 -11
- package/esm/quantity-field/index.js +0 -15
- package/esm/quantity-field/quantity-field-adapter.d.ts +0 -77
- package/esm/quantity-field/quantity-field-adapter.js +0 -221
- package/esm/quantity-field/quantity-field-component-delegate.d.ts +0 -44
- package/esm/quantity-field/quantity-field-component-delegate.js +0 -129
- package/esm/quantity-field/quantity-field-constants.d.ts +0 -35
- package/esm/quantity-field/quantity-field-constants.js +0 -41
- package/esm/quantity-field/quantity-field-foundation.d.ts +0 -36
- package/esm/quantity-field/quantity-field-foundation.js +0 -100
- package/esm/quantity-field/quantity-field.d.ts +0 -34
- package/esm/quantity-field/quantity-field.js +0 -100
- package/esm/theme/color-constants.d.ts +0 -313
- package/esm/theme/color-constants.js +0 -363
- package/esm/theme/index.d.ts +0 -7
- package/esm/theme/index.js +0 -7
- package/esm/theme/theme-utils.d.ts +0 -9
- package/esm/theme/theme-utils.js +0 -68
- package/styles/bottom-sheet/_mixins.scss +0 -93
- package/styles/bottom-sheet/_variables.scss +0 -7
- package/styles/busy-indicator/_mixins.scss +0 -185
- package/styles/busy-indicator/_variables.scss +0 -9
- package/styles/busy-indicator/busy-indicator.scss +0 -22
- package/styles/busy-indicator/forge-busy-indicator.scss +0 -8
- package/styles/open-icon/_mixins.scss +0 -39
- package/styles/open-icon/_variables.scss +0 -8
- package/styles/paginator/_mixins.scss +0 -136
- package/styles/quantity-field/_mixins.scss +0 -116
- package/styles/quantity-field/forge-quantity-field.scss +0 -18
- package/styles/quantity-field/quantity-field.scss +0 -16
- package/styles/table/_mixins.scss +0 -547
- package/styles/theme/_custom-properties.scss +0 -311
- package/styles/theme/_keys.scss +0 -477
- package/styles/theme/_theme-utils.scss +0 -23
- package/styles/theme/_theme-values.scss +0 -246
- package/styles/theme/_theme.scss +0 -279
- package/styles/typography/_mixins.scss +0 -73
- package/styles/typography/_variables.scss +0 -100
- package/styles/typography/forge-typography-legacy.scss +0 -8
- package/styles/utils/forge-utils.scss +0 -45
- /package/dist/esm/chunks/{chunk.AOVXNX7P.js.map → chunk.24L6GVJK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WMJSYYXQ.js.map → chunk.27YQZWEJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AG6IRMLZ.js.map → chunk.2CP5CIRB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.H4VQXV2H.js.map → chunk.3CXCYRCE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MTIPIEXA.js.map → chunk.3LNZRQAL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BQ52JYLA.js.map → chunk.3LUG3LPU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IL4S57WO.js.map → chunk.3ODT27TD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XZ23XHFE.js.map → chunk.45N7ZZVL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YWJVZVZX.js.map → chunk.4GFUXXXH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZA7JY3AY.js.map → chunk.5DDR6QSF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3KAKJGUS.js.map → chunk.5NEWFXFX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VRSPT7WX.js.map → chunk.5OT53ZJM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VL5RWSAV.js.map → chunk.6DWRGYKV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IEABOPNB.js.map → chunk.6T7KPDCD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SROEDYPL.js.map → chunk.7JO5MB55.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CLYGTLXN.js.map → chunk.7TE74NJZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AGLI4WR4.js.map → chunk.AJLS5C7O.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.TSSZQPLE.js.map → chunk.BURDWL57.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BHE6Z5Y2.js.map → chunk.CQ4XBOX5.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NEQX2QVX.js.map → chunk.DJQXJO3T.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VJZ7VDG5.js.map → chunk.DPJJB67L.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OOAJHLW4.js.map → chunk.EZIABLIR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZG6YF2HI.js.map → chunk.F53DSRUO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7AAICE77.js.map → chunk.FIO22U2C.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.U6J4VHU6.js.map → chunk.FKMTIOBA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.W4HANHUO.js.map → chunk.FMGBPF7B.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5MB6CTBA.js.map → chunk.FVFPDWA4.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ENUKGA2U.js.map → chunk.FYPIHFXD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CE35CVDV.js.map → chunk.GQ33JZVE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2W23MOPP.js.map → chunk.GUBLRHCG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.37B332ZK.js.map → chunk.HSNVTV7K.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PC6TW5XE.js.map → chunk.HXNNWUI3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.77C7S7ZS.js.map → chunk.IOGCI64X.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5UOX22ML.js.map → chunk.KKVQNKMV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YPNSK2CK.js.map → chunk.KW5A2U5U.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KO6ODCZC.js.map → chunk.LIJE4T3D.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.KEOLH7G3.js.map → chunk.LQN5U4QH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5QIWLZG3.js.map → chunk.LSUIJDFO.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QCPV5DEG.js.map → chunk.N65CAIE5.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UKBE2FMZ.js.map → chunk.NNLZKMFX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.EO3GP6DP.js.map → chunk.ON6FFHRE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OVXEOEJF.js.map → chunk.ONFZ3H7M.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.32APLNN2.js.map → chunk.OVVBXM6K.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DKERDHXH.js.map → chunk.P74RZEWP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QLGJS37N.js.map → chunk.PBORL6KX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JGURMVW7.js.map → chunk.PGMOAILY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OEI35LFU.js.map → chunk.PKCMTSWR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QUXMLWBJ.js.map → chunk.Q3Z6VZUD.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.TQWZDM6T.js.map → chunk.QBHJFCLL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.WXVVOFNK.js.map → chunk.QDG6TP2Z.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.H5RW3A4M.js.map → chunk.QH27OIAK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.473WRJ5G.js.map → chunk.QKCPE4LW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FLF5RTYO.js.map → chunk.R2CJMM2F.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IQYOLMPG.js.map → chunk.RGDLRUSM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QIZBZGYT.js.map → chunk.RKPWFEFJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RXBLU4OJ.js.map → chunk.S5EU72NR.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.T7NWP7DB.js.map → chunk.SW6JDC2Y.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7IPAW4D2.js.map → chunk.TAQRHBGS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MFQRXVKO.js.map → chunk.TEZFEC5B.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MX4JX4GT.js.map → chunk.THIUQ2AU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.LY2Z2Z7S.js.map → chunk.TQMT7BIZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GIENHEMN.js.map → chunk.TR45SGWL.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CFAI4K3E.js.map → chunk.UBVWYWO7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NWVQ5HK2.js.map → chunk.UHPODZWA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3PMONORO.js.map → chunk.V4R7FCZ2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BEFAXPXJ.js.map → chunk.WNX3GGYT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.I7YON2TC.js.map → chunk.X5MI5OFS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QKTK5XUE.js.map → chunk.XHRBFPZ2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ASLHRT3N.js.map → chunk.XT6RPXTM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VGIRVTBJ.js.map → chunk.XWVFJVBN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YNCTSMT6.js.map → chunk.YXFGOJ5Z.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GG7IQL46.js.map → chunk.ZPH3TMNA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CEGBMUSR.js.map → chunk.ZWELGTD7.js.map} +0 -0
- /package/dist/esm/{busy-indicator → deprecated/icon-button}/index.js.map +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/color-picker/color-picker-constants.ts", "../../src/color-picker/color-picker-adapter.ts", "../../src/color-picker/color-picker-utils.ts", "../../src/color-picker/color-picker-gradient-slider.ts", "../../src/color-picker/color-picker-slider.ts", "../../src/color-picker/color-picker-foundation.ts", "../../src/color-picker/color-picker.ts", "../../src/color-picker/index.ts"],
|
|
4
|
-
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}color-picker`;\n\nconst attributes = {\n VALUE: 'value',\n ALLOW_OPACITY: 'allow-opacity',\n DEBOUNCE_CHANGE_EVENT: 'debounce-change-event'\n};\n\nconst classes = {\n SLIDER_THUMB_ACTIVE: 'forge-color-picker__slider-thumb--active',\n GRADIENT_THUMB_ACTIVE: 'forge-color-picker__gradient-thumb--active'\n};\n\nconst selectors = {\n GRADIENT: '.forge-color-picker__gradient',\n GRADIENT_THUMB: '.forge-color-picker__gradient-thumb',\n PREVIEW_COLOR: '.forge-color-picker__color-preview',\n HEX_INPUT: '#forge-color-picker-hex-input',\n RGBA_INPUT: '#forge-color-picker-rgba-input',\n HSVA_INPUT: '#forge-color-picker-hsva-input',\n HUE_SLIDER: '.forge-color-picker__hue-slider',\n HUE_SLIDER_THUMB: '#forge-color-picker-hue-thumb',\n OPACITY_SLIDER: '.forge-color-picker__opacity-slider',\n OPACITY_SLIDER_THUMB: '#forge-color-picker-opacity-thumb',\n SLIDER: '.forge-color-picker__slider',\n SLIDER_THUMB: '.forge-color-picker__slider-thumb',\n COLOR_VALUE_HEX_CONTAINER: '.forge-color-picker__color-hex',\n COLOR_VALUE_RGBA_CONTAINER: '.forge-color-picker__color-rgba',\n COLOR_VALUE_HSVA_CONTAINER: '.forge-color-picker__color-hsva',\n TYPE_BUTTON: '#forge-color-picker-type-button',\n COLOR_VALUE_RGBA_R: '#forge-color-picker-rgba-r-input',\n COLOR_VALUE_RGBA_G: '#forge-color-picker-rgba-g-input',\n COLOR_VALUE_RGBA_B: '#forge-color-picker-rgba-b-input',\n COLOR_VALUE_RGBA_A: '#forge-color-picker-rgba-a-input',\n COLOR_VALUE_HSVA_H: '#forge-color-picker-hsva-h-input',\n COLOR_VALUE_HSVA_S: '#forge-color-picker-hsva-s-input',\n COLOR_VALUE_HSVA_V: '#forge-color-picker-hsva-v-input',\n COLOR_VALUE_HSVA_A: '#forge-color-picker-hsva-a-input'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`\n};\n\nconst numbers = {\n CHANGE_EVENT_DEBOUNCE_THRESHOLD: 200\n};\n\nexport const COLOR_PICKER_CONSTANTS = {\n elementName,\n attributes,\n events,\n classes,\n selectors,\n numbers\n};\n\nexport const DEFAULT_COLOR = '000000';\n\nexport enum ColorPickerValueType {\n HEX = 'hex',\n RGB = 'rgb',\n RGBA = 'rgba',\n HSV = 'hsv',\n HSVA = 'hsva'\n}\n\nexport interface IRGBA {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\nexport interface IHSVA {\n h: number;\n s: number;\n v: number;\n a: number;\n}\n\nexport type ColorPickerChangeEventType = 'slider' | 'input';\nexport type ColorPickerChangeEventSource = 'gradient' | 'hue' | 'opacity' | 'hex' | 'rgba' | 'hsva';\n\nexport interface IColorPickerChangeEventData {\n type: ColorPickerChangeEventType;\n source: ColorPickerChangeEventSource;\n hex: string;\n rgba: IRGBA;\n hsva: IHSVA;\n alpha?: number;\n}\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IColorPickerComponent } from './color-picker';\nimport { ColorPickerValueType, COLOR_PICKER_CONSTANTS, IHSVA, IRGBA } from './color-picker-constants';\n\nexport interface IColorPickerAdapter extends IBaseAdapter {\n setPreviewColor(rgbaStyle: string): void;\n setHexInputValue(value: string): void;\n setRgbaInputValue(rgba: IRGBA): void;\n setHsvaInputValue(hsva: IHSVA): void;\n updateA11y(hueValue: number, opacityValue: number): void;\n setGradientColor(value: string): void;\n getHueSliderElement(): HTMLElement;\n getOpacitySliderElement(): HTMLElement;\n getGradientElement(): HTMLElement;\n setActiveValueType(type: ColorPickerValueType): void;\n focusValueInput(type: ColorPickerValueType): void;\n setTypeClickListener(listener: (evt: MouseEvent) => void): void;\n removeTypeClickListener(listener: (evt: MouseEvent) => void): void;\n setHexInputListener(type: string, listener: (evt: Event) => void): void;\n removeHexInputListener(type: string, listener: (evt: Event) => void): void;\n getHexInputValue(): string;\n setRgbaInputListener(type: string, listener: (evt: Event) => void): void;\n removeRgbaInputListener(type: string, listener: (evt: Event) => void): void;\n getRgbaInputValue(): IRGBA;\n setHsvaInputListener(type: string, listener: (evt: Event) => void): void;\n removeHsvaInputListener(type: string, listener: (evt: Event) => void): void;\n getHsvaInputValue(): IHSVA;\n toggleOpacityControls(visible: boolean): void;\n}\n\nexport class ColorPickerAdapter extends BaseAdapter<IColorPickerComponent> implements IColorPickerAdapter {\n private _gradientElement: HTMLElement;\n private _previewColorElement: HTMLElement;\n private _hexInputElement: HTMLInputElement;\n private _rgbaInputRElement: HTMLInputElement;\n private _rgbaInputGElement: HTMLInputElement;\n private _rgbaInputBElement: HTMLInputElement;\n private _rgbaInputAElement: HTMLInputElement;\n private _hsvaInputHElement: HTMLInputElement;\n private _hsvaInputSElement: HTMLInputElement;\n private _hsvaInputVElement: HTMLInputElement;\n private _hsvaInputAElement: HTMLInputElement;\n private _hueSliderElement: HTMLElement;\n private _hueSliderThumbElement: HTMLElement;\n private _opacitySliderElement: HTMLElement;\n private _opacitySliderThumbElement: HTMLElement;\n private _hexValueContainerElement: HTMLElement;\n private _rgbaValueContainerElement: HTMLElement;\n private _hsvaValueContainerElement: HTMLElement;\n private _typeButtonElement: HTMLButtonElement;\n\n constructor(component: IColorPickerComponent) {\n super(component);\n this._gradientElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.GRADIENT);\n this._previewColorElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.PREVIEW_COLOR);\n this._hexInputElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.HEX_INPUT) as HTMLInputElement;\n this._rgbaInputRElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_R) as HTMLInputElement;\n this._rgbaInputGElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_G) as HTMLInputElement;\n this._rgbaInputBElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_B) as HTMLInputElement;\n this._rgbaInputAElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_A) as HTMLInputElement;\n this._hsvaInputHElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_H) as HTMLInputElement;\n this._hsvaInputSElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_S) as HTMLInputElement;\n this._hsvaInputVElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_V) as HTMLInputElement;\n this._hsvaInputAElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_A) as HTMLInputElement;\n this._hueSliderElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.HUE_SLIDER);\n this._hueSliderThumbElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.HUE_SLIDER_THUMB);\n this._opacitySliderElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.OPACITY_SLIDER);\n this._opacitySliderThumbElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.OPACITY_SLIDER_THUMB);\n this._hexValueContainerElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HEX_CONTAINER);\n this._rgbaValueContainerElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_CONTAINER);\n this._hsvaValueContainerElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_CONTAINER);\n this._typeButtonElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.TYPE_BUTTON) as HTMLButtonElement;\n }\n\n public setPreviewColor(rgbaStyle: string): void {\n this._previewColorElement.style.backgroundColor = rgbaStyle;\n }\n\n public setHexInputValue(value: string): void {\n this._hexInputElement.value = value;\n }\n\n public setRgbaInputValue(rgba: IRGBA): void {\n this._rgbaInputRElement.value = rgba.r.toString();\n this._rgbaInputGElement.value = rgba.g.toString();\n this._rgbaInputBElement.value = rgba.b.toString();\n this._rgbaInputAElement.value = rgba.a.toString();\n }\n\n public setHsvaInputValue(hsva: IHSVA): void {\n this._hsvaInputHElement.value = hsva.h.toString();\n this._hsvaInputSElement.value = hsva.s.toString();\n this._hsvaInputVElement.value = hsva.v.toString();\n this._hsvaInputAElement.value = hsva.a.toString();\n }\n\n public updateA11y(hueValue: number, opacityValue: number): void {\n this._hueSliderThumbElement.setAttribute('aria-valuenow', hueValue.toString());\n this._hueSliderThumbElement.setAttribute('aria-valuetext', hueValue.toString());\n\n this._opacitySliderThumbElement.setAttribute('aria-valuenow', opacityValue.toString());\n this._opacitySliderThumbElement.setAttribute('aria-valuetext', opacityValue.toString());\n }\n\n public setGradientColor(value: string): void {\n this._gradientElement.style.backgroundColor = value;\n }\n\n public getHueSliderElement(): HTMLElement {\n return this._hueSliderElement;\n }\n\n public getOpacitySliderElement(): HTMLElement {\n return this._opacitySliderElement;\n }\n\n public getGradientElement(): HTMLElement {\n return this._gradientElement;\n }\n\n public setActiveValueType(type: ColorPickerValueType): void {\n this._hexValueContainerElement.style.display = 'none';\n this._rgbaValueContainerElement.style.display = 'none';\n this._hsvaValueContainerElement.style.display = 'none';\n\n switch (type) {\n case ColorPickerValueType.HEX:\n this._hexValueContainerElement.style.removeProperty('display');\n break;\n case ColorPickerValueType.RGBA:\n this._rgbaValueContainerElement.style.removeProperty('display');\n break;\n case ColorPickerValueType.HSVA:\n this._hsvaValueContainerElement.style.removeProperty('display');\n break;\n }\n }\n\n public focusValueInput(type: ColorPickerValueType): void {\n switch (type) {\n case ColorPickerValueType.HEX:\n this._hexInputElement.focus();\n this._hexInputElement.select();\n break;\n case ColorPickerValueType.RGBA:\n this._rgbaInputRElement.focus();\n this._rgbaInputRElement.select();\n break;\n case ColorPickerValueType.HSVA:\n this._hsvaInputHElement.focus();\n this._hsvaInputHElement.select();\n break;\n }\n }\n\n public setTypeClickListener(listener: (evt: MouseEvent) => void): void {\n this._typeButtonElement.addEventListener('click', listener);\n }\n\n public removeTypeClickListener(listener: (evt: MouseEvent) => void): void {\n this._typeButtonElement.removeEventListener('click', listener);\n }\n\n public setHexInputListener(type: string, listener: (evt: Event) => void): void {\n this._hexInputElement.addEventListener(type, listener);\n }\n\n public removeHexInputListener(type: string, listener: (evt: Event) => void): void {\n this._hexInputElement.removeEventListener(type, listener);\n }\n\n public getHexInputValue(): string {\n return this._hexInputElement.value;\n }\n\n public setRgbaInputListener(type: string, listener: (evt: Event) => void): void {\n this._rgbaInputRElement.addEventListener(type, listener);\n this._rgbaInputGElement.addEventListener(type, listener);\n this._rgbaInputBElement.addEventListener(type, listener);\n this._rgbaInputAElement.addEventListener(type, listener);\n }\n\n public removeRgbaInputListener(type: string, listener: (evt: Event) => void): void {\n this._rgbaInputRElement.removeEventListener(type, listener);\n this._rgbaInputGElement.removeEventListener(type, listener);\n this._rgbaInputBElement.removeEventListener(type, listener);\n this._rgbaInputAElement.removeEventListener(type, listener);\n }\n\n public getRgbaInputValue(): IRGBA {\n return {\n r: parseInt(this._rgbaInputRElement.value, 10),\n g: parseInt(this._rgbaInputGElement.value, 10),\n b: parseInt(this._rgbaInputBElement.value, 10),\n a: parseFloat(this._rgbaInputAElement.value)\n };\n }\n\n public setHsvaInputListener(type: string, listener: (evt: Event) => void): void {\n this._hsvaInputHElement.addEventListener(type, listener);\n this._hsvaInputSElement.addEventListener(type, listener);\n this._hsvaInputVElement.addEventListener(type, listener);\n this._hsvaInputAElement.addEventListener(type, listener);\n }\n\n public removeHsvaInputListener(type: string, listener: (evt: Event) => void): void {\n this._hsvaInputHElement.removeEventListener(type, listener);\n this._hsvaInputSElement.removeEventListener(type, listener);\n this._hsvaInputVElement.removeEventListener(type, listener);\n this._hsvaInputAElement.removeEventListener(type, listener);\n }\n\n public getHsvaInputValue(): IHSVA {\n return {\n h: parseInt(this._hsvaInputHElement.value, 10),\n s: parseInt(this._hsvaInputSElement.value, 10),\n v: parseInt(this._hsvaInputVElement.value, 10),\n a: parseFloat(this._hsvaInputAElement.value)\n };\n }\n\n public toggleOpacityControls(visible: boolean): void {\n if (visible) {\n this._opacitySliderElement.style.removeProperty('display');\n if (this._rgbaInputAElement.parentElement) {\n this._rgbaInputAElement.parentElement.style.removeProperty('display');\n }\n if (this._hsvaInputAElement.parentElement) {\n this._hsvaInputAElement.parentElement.style.removeProperty('display');\n }\n } else {\n this._opacitySliderElement.style.display = 'none';\n if (this._rgbaInputAElement.parentElement) {\n this._rgbaInputAElement.parentElement.style.display = 'none';\n }\n if (this._hsvaInputAElement.parentElement) {\n this._hsvaInputAElement.parentElement.style.display = 'none';\n }\n }\n }\n}\n", "import { isNumber } from '@tylertech/forge-core';\n\nimport { IRGBA, IHSVA } from './color-picker-constants';\n\n/**\n * Calcuates coordinates relative to the provided element based on absolute coordinates.\n * @param absX The x coordinate in screen space.\n * @param absY The y coordinate in screen space.\n * @param element The element to calculate the relative coordinates from.\n */\nexport function relativeCoords(absX: number, absY: number, element: HTMLElement): { x: number; y: number; height: number; width: number } {\n const bounds = element.getBoundingClientRect();\n let x = absX - bounds.left;\n let y = absY - bounds.top;\n\n if (x > bounds.width) {\n x = bounds.width;\n } else if (x < 0) {\n x = 0;\n }\n\n if (y > bounds.height) {\n y = bounds.height;\n } else if (y < 0) {\n y = 0;\n }\n\n return { x, y, height: bounds.height, width: bounds.width };\n}\n\nexport function hsvaToRgba(hsva: IHSVA): IRGBA {\n let r: number;\n let g: number;\n let b: number;\n const h = hsva.h / 60;\n const s = hsva.s / 100;\n const v = hsva.v / 100;\n\n if (s === 0) {\n r = g = b = v;\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n a: hsva.a\n };\n }\n\n const i = Math.floor(h);\n const f = h - i;\n const p = v * (1 - s);\n const q = v * (1 - s * f);\n const t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n default: r = v; g = p; b = q;\n }\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n a: hsva.a\n };\n}\n\nexport function rgbaToHex(rgba: IRGBA): string {\n return toHex(rgba.r) + toHex(rgba.g) + toHex(rgba.b) + (Math.round(rgba.a * 255) + 0x10000).toString(16).substr(-2);\n}\n\nexport function toHex(x: number): string {\n return ('0' + x.toString(16)).slice(-2);\n}\n\nexport function hexToRgba(hex: string): IRGBA {\n const isShorthand = hex.length === 3 || hex.length === 4;\n const hexR = isShorthand ? `${hex.slice(0, 1)}${hex.slice(0, 1)}` : hex.slice(0, 2);\n const hexG = isShorthand ? `${hex.slice(1, 2)}${hex.slice(1, 2)}` : hex.slice(2, 4);\n const hexB = isShorthand ? `${hex.slice(2, 3)}${hex.slice(2, 3)}` : hex.slice(4, 6);\n const hexA = (isShorthand ? `${hex.slice(3, 4)}${hex.slice(3, 4)}` : hex.slice(6, 8)) || 'ff';\n\n return {\n r: parseInt(hexR, 16),\n g: parseInt(hexG, 16),\n b: parseInt(hexB, 16),\n a: parseFloat((parseInt(hexA, 16) / 255).toFixed(2))\n };\n}\n\nexport function formatRgba(rgba: IRGBA): string {\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;\n}\n\nexport function formatHex(value: string, allowOpacity: boolean): string {\n let hex = value.replace(/^#/, '');\n\n if (!allowOpacity) {\n if (hex.length === 4) {\n hex = hex.substring(0, 3);\n } else if (hex.length === 8) {\n hex = hex.substring(0, 6);\n }\n }\n\n return `#${hex}`;\n}\n\nexport function rgbaToHsva(rgba: IRGBA): IHSVA {\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = max;\n let s = max;\n const v = max;\n\n const d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0;\n } else {\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n\n return {\n h: Math.round(h * 360),\n s: Math.round(s * 100),\n v: Math.round(v * 100),\n a: rgba.a\n };\n}\n\n/**\n * Determines if the provided hex color string is valid.\n * @param value The hex color string.\n */\nexport function isValidHex(value: string): boolean {\n if (!value || typeof value !== 'string') {\n return false;\n }\n\n if (value.substring(0, 1) === '#') {\n value = value.substring(1);\n }\n\n switch (value.length) {\n case 3: return /^[0-9A-F]{3}$/i.test(value);\n case 4: return /^[0-9A-F]{4}$/i.test(value);\n case 6: return /^[0-9A-F]{6}$/i.test(value);\n case 8: return /^[0-9A-F]{8}$/i.test(value);\n default: return false;\n }\n}\n\n/**\n * Determines if the provided RGBA values are valid.\n * @param value The RGBA color values.\n */\nexport function isValidRGBA(value: IRGBA): boolean {\n return isNumber(value.r) && value.r >= 0 && value.r <= 255 &&\n isNumber(value.g) && value.g >= 0 && value.g <= 255 &&\n isNumber(value.b) && value.b >= 0 && value.b <= 255 &&\n isNumber(value.a) && value.a >= 0 && value.a <= 1;\n}\n\n/**\n * Determines if the provided HSVA values are valid.\n * @param value The HSVA color values.\n */\nexport function isValidHSVA(value: IHSVA): boolean {\n return isNumber(value.h) && value.h >= 0 && value.h <= 360 &&\n isNumber(value.s) && value.s >= 0 && value.s <= 100 &&\n isNumber(value.v) && value.v >= 0 && value.v <= 100 &&\n isNumber(value.a) && value.a >= 0 && value.a <= 1;\n}\n", "import { COLOR_PICKER_CONSTANTS } from './color-picker-constants';\nimport { relativeCoords } from './color-picker-utils';\n\nexport class ColorPickerGradientSlider {\n private _xPercent: number;\n private _yPercent: number;\n private _thumbElement: HTMLElement;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _downListener: (evt: MouseEvent & TouchEvent) => void;\n private _moveListener: (evt: MouseEvent & TouchEvent) => void;\n private _upListener: (evt: MouseEvent & TouchEvent) => void;\n\n constructor(private _rootElement: HTMLElement, private _changeListener: (x: number, y: number) => void) {\n this._keydownListener = evt => this._onKeydown(evt);\n this._downListener = evt => this._onDown(evt);\n this._moveListener = evt => this._onMove(evt);\n this._upListener = evt => this._onUp(evt);\n this._initialize();\n }\n\n public destroy(): void {\n this._unlisten();\n }\n\n public setValue(saturation: number, value: number): void {\n window.requestAnimationFrame(() => {\n const bounds = this._rootElement.getBoundingClientRect();\n this._xPercent = Math.round(bounds.width * (saturation / 100));\n this._yPercent = bounds.height - Math.round(bounds.height * (value / 100));\n this._setThumbPosition(this._xPercent, this._yPercent);\n });\n }\n\n private _initialize(): void {\n this._thumbElement = this._rootElement.querySelector(COLOR_PICKER_CONSTANTS.selectors.GRADIENT_THUMB) as HTMLElement;\n this._listen();\n this._setThumbPosition(this._xPercent, this._yPercent);\n }\n\n private _listen(): void {\n this._rootElement.addEventListener('keydown', this._keydownListener);\n this._rootElement.addEventListener('mousedown', this._downListener);\n this._rootElement.addEventListener('touchstart', this._downListener);\n }\n\n private _unlisten(): void {\n this._rootElement.removeEventListener('keydown', this._keydownListener);\n this._rootElement.removeEventListener('mousedown', this._downListener);\n this._rootElement.removeEventListener('touchstart', this._downListener);\n document.removeEventListener('mousemove', this._moveListener);\n document.removeEventListener('touchmove', this._moveListener);\n document.removeEventListener('mouseup', this._upListener);\n document.removeEventListener('touchend', this._upListener);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const isEnterKey = evt.key === 'Enter' || evt.keyCode === 13;\n const isArrowLeftKey = evt.key === 'ArrowLeft' || evt.keyCode === 37;\n const isArrowUpKey = evt.key === 'ArrowUp' || evt.keyCode === 38;\n const isArrowRightKey = evt.key === 'ArrowRight' || evt.keyCode === 39;\n const isArrowDownKey = evt.key === 'ArrowDown' || evt.keyCode === 40;\n\n const bounds = this._rootElement.getBoundingClientRect();\n\n if (isArrowDownKey) {\n evt.preventDefault();\n this._yPercent++;\n } else if (isArrowUpKey) {\n evt.preventDefault();\n this._yPercent--;\n } else if (isArrowLeftKey) {\n evt.preventDefault();\n this._xPercent--;\n } else if (isArrowRightKey) {\n evt.preventDefault();\n this._xPercent++;\n } else if (isEnterKey) {\n evt.preventDefault();\n // TODO(kieran.nichols): Select the current color\n } else {\n return;\n }\n\n if (this._xPercent > bounds.width) {\n this._xPercent = bounds.width;\n } else if (this._xPercent < 0) {\n this._xPercent = 0;\n }\n\n if (this._yPercent > bounds.height) {\n this._yPercent = bounds.height;\n } else if (this._yPercent < 0) {\n this._yPercent = 0;\n }\n\n this._setThumbPosition(this._xPercent, this._yPercent);\n this._notify();\n }\n\n private _onDown(evt: MouseEvent & TouchEvent): void {\n evt.preventDefault();\n document.addEventListener('mousemove', this._moveListener);\n document.addEventListener('touchmove', this._moveListener);\n document.addEventListener('mouseup', this._upListener);\n document.addEventListener('touchend', this._upListener);\n this._updateThumbPosition(evt);\n }\n\n private _onMove(evt: MouseEvent & TouchEvent): void {\n evt.preventDefault();\n this._updateThumbPosition(evt);\n }\n\n private _onUp(evt: MouseEvent & TouchEvent): void {\n document.removeEventListener('mousemove', this._moveListener);\n document.removeEventListener('touchmove', this._moveListener);\n document.removeEventListener('mouseup', this._upListener);\n document.removeEventListener('touchend', this._upListener);\n this._updateThumbPosition(evt);\n this._thumbElement.focus();\n }\n\n private _updateThumbPosition(evt: MouseEvent & TouchEvent): void {\n const isMouseEvent = /^mouse/.test(evt.type);\n const x = isMouseEvent ? evt.clientX : evt.changedTouches[0].clientX;\n const y = isMouseEvent ? evt.clientY : evt.changedTouches[0].clientY;\n const coords = this._calculateSliderPercent(x, y);\n this._setThumbPosition(coords.x, coords.y);\n this._xPercent = parseInt(((coords.x / coords.width) * 100).toString(), 10);\n this._yPercent = Math.abs(parseInt(((coords.y / coords.height) * 100).toString(), 10) - 100);\n this._notify();\n }\n\n private _calculateSliderPercent(absX: number, absY: number): { x: number; y: number; width: number; height: number } {\n return relativeCoords(absX, absY, this._rootElement);\n }\n\n private _setThumbPosition(xPercent: number, yPercent: number): void {\n this._thumbElement.style.left = `${xPercent}px`;\n this._thumbElement.style.top = `${yPercent}px`;\n }\n\n private _notify(): void {\n if (typeof this._changeListener === 'function') {\n this._changeListener(this._xPercent, this._yPercent);\n }\n }\n}\n", "import { COLOR_PICKER_CONSTANTS } from './color-picker-constants';\nimport { relativeCoords } from './color-picker-utils';\n\nexport interface IColorPickerSliderOptions {\n min: number;\n max: number;\n step: number;\n change: (value: number) => void;\n}\n\nexport class ColorPickerSlider {\n private _percent = 1;\n private _min = 0;\n private _max = 1;\n private _step = 0.01;\n private _thumbElement: HTMLElement;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _downListener: (evt: MouseEvent & TouchEvent) => void;\n private _moveListener: (evt: MouseEvent & TouchEvent) => void;\n private _upListener: (evt: MouseEvent & TouchEvent) => void;\n \n constructor(private _rootElement: HTMLElement, private _changeListener: (value: number) => void) {\n this._keydownListener = evt => this._onKeydown(evt);\n this._downListener = evt => this._onDown(evt);\n this._moveListener = evt => this._onMove(evt);\n this._upListener = evt => this._onUp(evt);\n this._initialize();\n }\n\n public destroy(): void {\n this._unlisten();\n }\n\n public setValue(value: number): void {\n this._percent = value;\n this._setThumbPosition(this._percent);\n }\n\n private _initialize(): void {\n this._thumbElement = this._rootElement.querySelector(COLOR_PICKER_CONSTANTS.selectors.SLIDER_THUMB) as HTMLElement;\n this._listen();\n this._setThumbPosition(this._percent);\n }\n\n private _listen(): void {\n this._thumbElement.addEventListener('keydown', this._keydownListener);\n this._rootElement.addEventListener('mousedown', this._downListener);\n this._rootElement.addEventListener('touchstart', this._downListener);\n }\n\n private _unlisten(): void {\n this._thumbElement.removeEventListener('keydown', this._keydownListener);\n this._rootElement.removeEventListener('mousedown', this._downListener);\n this._rootElement.removeEventListener('touchstart', this._downListener);\n document.removeEventListener('mousemove', this._moveListener);\n document.removeEventListener('touchmove', this._moveListener);\n document.removeEventListener('mouseup', this._upListener);\n document.removeEventListener('touchend', this._upListener);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const isArrowLeftKey = evt.key === 'ArrowLeft' || evt.keyCode === 37;\n const isArrowRightKey = evt.key === 'ArrowRight' || evt.keyCode === 39;\n const isHomeKey = evt.key === 'Home' || evt.keyCode === 36;\n const isEndKey = evt.key === 'End' || evt.keyCode === 35;\n\n if (isArrowLeftKey) {\n evt.preventDefault();\n this._percent -= this._step;\n } else if (isArrowRightKey) {\n evt.preventDefault();\n this._percent += this._step;\n } else if (isHomeKey) {\n evt.preventDefault();\n this._percent = this._min;\n } else if (isEndKey) {\n evt.preventDefault();\n this._percent = this._max;\n }\n\n if (this._percent < this._min) {\n this._percent = this._min;\n } else if (this._percent > this._max) {\n this._percent = this._max;\n }\n\n this._setThumbPosition(this._percent);\n this._notify();\n }\n\n private _onDown(evt: MouseEvent & TouchEvent): void {\n evt.preventDefault();\n document.addEventListener('mousemove', this._moveListener);\n document.addEventListener('touchmove', this._moveListener);\n document.addEventListener('mouseup', this._upListener);\n document.addEventListener('touchend', this._upListener);\n this._updateThumbPosition(evt);\n }\n\n private _onMove(evt: MouseEvent & TouchEvent): void {\n evt.preventDefault();\n this._thumbElement.classList.add(COLOR_PICKER_CONSTANTS.classes.SLIDER_THUMB_ACTIVE);\n this._updateThumbPosition(evt);\n }\n\n private _onUp(evt: MouseEvent & TouchEvent): void {\n this._thumbElement.classList.remove(COLOR_PICKER_CONSTANTS.classes.SLIDER_THUMB_ACTIVE);\n document.removeEventListener('mousemove', this._moveListener);\n document.removeEventListener('touchmove', this._moveListener);\n document.removeEventListener('mouseup', this._upListener);\n document.removeEventListener('touchend', this._upListener);\n this._updateThumbPosition(evt);\n this._thumbElement.focus();\n }\n\n private _updateThumbPosition(evt: MouseEvent & TouchEvent): void {\n const x = /^mouse/.test(evt.type) ? evt.clientX : evt.changedTouches[0].clientX;\n this._percent = this._calculateSliderPercent(x);\n this._setThumbPosition(this._percent);\n this._notify();\n }\n\n private _calculateSliderPercent(absX: number): number {\n const coords = relativeCoords(absX, 0, this._rootElement);\n return parseFloat((coords.x / coords.width).toFixed(2));\n }\n\n private _setThumbPosition(percent: number): void {\n this._thumbElement.style.left = `${percent * 100}%`;\n }\n\n private _notify(): void {\n if (typeof this._changeListener === 'function') {\n this._changeListener(this._percent);\n }\n }\n}\n", "import { ICustomElementFoundation, debounce } from '@tylertech/forge-core';\nimport { IColorPickerAdapter } from './color-picker-adapter';\nimport { ColorPickerValueType, COLOR_PICKER_CONSTANTS, DEFAULT_COLOR, IColorPickerChangeEventData, IHSVA, IRGBA, ColorPickerChangeEventType, ColorPickerChangeEventSource } from './color-picker-constants';\nimport { ColorPickerGradientSlider } from './color-picker-gradient-slider';\nimport { ColorPickerSlider } from './color-picker-slider';\nimport { formatHex, formatRgba, hexToRgba, hsvaToRgba, isValidHex, isValidHSVA, isValidRGBA, rgbaToHex, rgbaToHsva } from './color-picker-utils';\n\nexport interface IColorPickerFoundation extends ICustomElementFoundation {\n value: string | null | undefined;\n rgba: IRGBA | null | undefined;\n hsva: IHSVA | null | undefined;\n opacity: number | null | undefined;\n allowOpacity: boolean;\n debounceChangeEvent: boolean;\n}\n\nexport class ColorPickerFoundation implements IColorPickerFoundation {\n private _value: string | null | undefined = null;\n private _allowOpacity = true;\n private _hex = DEFAULT_COLOR;\n private _hsva: IHSVA = { h: 0, s: 0, v: 0, a: 1 };\n private _rgba: IRGBA = { r: 0, g: 0, b: 0, a: 1 };\n private _debounceChangeEvent = false;\n private _valueType = ColorPickerValueType.HEX;\n private _gradientSlider: ColorPickerGradientSlider;\n private _hueSlider: ColorPickerSlider;\n private _opacitySlider: ColorPickerSlider;\n private _initialized = false;\n private _gradientSliderChangedListener: (x: number, y: number) => void;\n private _hueSliderChangedListener: (percent: number) => void;\n private _opacitySliderChangedListener: (percent: number) => void;\n private _typeClickListener: (evt: MouseEvent) => void;\n private _hexInputChangedListener: (evt: KeyboardEvent) => void;\n private _rgbaInputChangedListener: (evt: KeyboardEvent) => void;\n private _hsvaInputChangedListener: (evt: KeyboardEvent) => void;\n private _triggerChangeEvent: (type: ColorPickerChangeEventType, source: ColorPickerChangeEventSource) => void;\n\n constructor(private _adapter: IColorPickerAdapter) {\n this._gradientSliderChangedListener = (x, y) => this._onGradientSliderChanged(x, y);\n this._hueSliderChangedListener = value => this._onHueSliderChanged(value);\n this._opacitySliderChangedListener = value => this._onOpacitySliderChanged(value);\n this._typeClickListener = evt => this._onTypeClicked(evt);\n this._hexInputChangedListener = evt => this._onHexInputChanged();\n this._rgbaInputChangedListener = evt => this._onRgbaInputChanged();\n this._hsvaInputChangedListener = evt => this._onHsvaInputChanged();\n }\n \n public initialize(): void {\n this._initialized = true;\n this._applyChangeEventTrigger();\n this._adapter.setTypeClickListener(this._typeClickListener);\n this._adapter.setHexInputListener('input', this._hexInputChangedListener);\n this._adapter.setRgbaInputListener('input', this._rgbaInputChangedListener);\n this._adapter.setHsvaInputListener('input', this._hsvaInputChangedListener);\n this._gradientSlider = new ColorPickerGradientSlider(this._adapter.getGradientElement(), this._gradientSliderChangedListener);\n this._hueSlider = new ColorPickerSlider(this._adapter.getHueSliderElement(), this._hueSliderChangedListener);\n this._opacitySlider = new ColorPickerSlider(this._adapter.getOpacitySliderElement(), this._opacitySliderChangedListener);\n\n this._initializeOpacity();\n this._setColorFromHex();\n this._adapter.setActiveValueType(this._valueType);\n }\n\n public disconnect(): void {\n this._adapter.removeTypeClickListener(this._typeClickListener);\n this._adapter.removeHexInputListener('input', this._hexInputChangedListener);\n this._adapter.removeRgbaInputListener('input', this._hexInputChangedListener);\n this._adapter.removeHsvaInputListener('input', this._hexInputChangedListener);\n\n this._gradientSlider.destroy();\n this._hueSlider.destroy();\n this._opacitySlider.destroy();\n this._initialized = false;\n }\n\n private _applyChangeEventTrigger(): void {\n if (this._debounceChangeEvent) {\n this._triggerChangeEvent = debounce((type: ColorPickerChangeEventType, source: ColorPickerChangeEventSource) => {\n this._emitChangeEvent(type, source);\n }, COLOR_PICKER_CONSTANTS.numbers.CHANGE_EVENT_DEBOUNCE_THRESHOLD, false);\n } else {\n this._triggerChangeEvent = (type, source) => this._emitChangeEvent(type, source);\n }\n }\n\n private _initializeOpacity(): void {\n this._hsva.a = 1;\n this._adapter.toggleOpacityControls(this._allowOpacity);\n this._render();\n }\n\n private _onTypeClicked(evt: MouseEvent): void {\n if (this._valueType === ColorPickerValueType.HEX) {\n this._valueType = ColorPickerValueType.RGBA;\n } else if (this._valueType === ColorPickerValueType.RGBA) {\n this._valueType = ColorPickerValueType.HSVA;\n } else if (this._valueType === ColorPickerValueType.HSVA) {\n this._valueType = ColorPickerValueType.HEX;\n }\n\n this._adapter.setActiveValueType(this._valueType);\n this._adapter.focusValueInput(this._valueType);\n }\n\n private _onHexInputChanged(): void {\n const value = this._adapter.getHexInputValue();\n if (isValidHex(value)) {\n this.value = value;\n this._triggerChangeEvent('input', 'hex');\n }\n }\n\n private _onRgbaInputChanged(): void {\n const value = this._adapter.getRgbaInputValue();\n if (isValidRGBA(value)) {\n this.value = rgbaToHex(value);\n this._triggerChangeEvent('input', 'rgba');\n }\n }\n\n private _onHsvaInputChanged(): void {\n const value = this._adapter.getHsvaInputValue();\n if (isValidHSVA(value)) {\n this.value = rgbaToHex(hsvaToRgba(value));\n this._triggerChangeEvent('input', 'hsva');\n }\n }\n\n private _setColorFromHex(): void {\n this._rgba = hexToRgba(this._hex);\n this._hsva = rgbaToHsva(this._rgba);\n\n if (this._initialized) {\n this._gradientSlider.setValue(this._hsva.s, this._hsva.v);\n this._hueSlider.setValue(parseFloat((this._hsva.h / 360).toFixed(2)));\n this._opacitySlider.setValue(this._hsva.a);\n this._render();\n }\n }\n\n private _onGradientSliderChanged(x: number, y: number): void {\n this._hsva.s = x;\n this._hsva.v = y;\n this._syncColors();\n this._render();\n this._triggerChangeEvent('slider', 'gradient');\n }\n\n private _onHueSliderChanged(value: number): void {\n this._hsva.h = parseInt((360 * value).toString(), 10);\n this._syncColors();\n this._setGradientColor();\n this._render();\n this._triggerChangeEvent('slider', 'hue');\n }\n\n private _onOpacitySliderChanged(value: number): void {\n this._hsva.a = value;\n this._syncColors();\n this._render();\n this._triggerChangeEvent('slider', 'opacity');\n }\n\n private _setGradientColor(): void {\n const rgba = hsvaToRgba({ h: this._hsva.h, s: 100, v: 100, a: 1 });\n this._adapter.setGradientColor(`rgb(${rgba.r}, ${rgba.g}, ${rgba.b})`);\n }\n\n private _syncColors(): void {\n this._rgba = hsvaToRgba(this._hsva);\n this._hex = rgbaToHex(this._rgba);\n this._value = this._hex || null;\n }\n\n private _render(): void {\n this._setGradientColor();\n this._adapter.setPreviewColor(formatRgba(this._rgba));\n this._adapter.setHexInputValue(`#${this._hex}`);\n this._adapter.setRgbaInputValue(this._rgba);\n this._adapter.setHsvaInputValue(this._hsva);\n this._adapter.updateA11y(this._hsva.h, Math.round(this._hsva.a * 100));\n }\n\n private _emitChangeEvent(type: ColorPickerChangeEventType, source: ColorPickerChangeEventSource): void {\n const data: IColorPickerChangeEventData = {\n type,\n source,\n hex: formatHex(this._hex, false).replace(/^#/, ''),\n rgba: this._rgba,\n hsva: this._hsva\n };\n if (this._allowOpacity) {\n data.alpha = this._hsva.a;\n }\n this._adapter.emitHostEvent(COLOR_PICKER_CONSTANTS.events.CHANGE, data);\n }\n\n public get value(): string | null | undefined {\n return formatHex(this._hex, false);\n }\n public set value(value: string | null | undefined) {\n if (this._value !== value) {\n this._value = value || DEFAULT_COLOR;\n\n if (!isValidHex(this._value)) {\n throw new Error('Invalid hex value provided.');\n }\n\n this._hex = this._value.replace(/^#/, '');\n this._setColorFromHex();\n this._adapter.setHostAttribute(COLOR_PICKER_CONSTANTS.attributes.VALUE, this._value);\n }\n }\n\n public get rgba(): IRGBA | null | undefined {\n return !!this._rgba ? { ...this._rgba } : null;\n }\n public set rgba(value: IRGBA | null | undefined) {\n if (value) {\n if (isValidRGBA(value)) {\n this.value = rgbaToHex(value);\n }\n } else {\n this.value = null;\n }\n }\n\n public get hsva(): IHSVA | null | undefined {\n return !!this._hsva ? { ...this._hsva } : null;\n }\n public set hsva(value: IHSVA | null | undefined) {\n if (value) {\n if (isValidHSVA(value)) {\n this.value = rgbaToHex(hsvaToRgba(value));\n }\n } else {\n this.value = null;\n }\n }\n\n public get opacity(): number | null | undefined {\n return this._hsva ? this._hsva.a : null;\n }\n public set opacity(value: number | null | undefined) {\n if (this._hsva.a !== value) {\n if (value != null && this._allowOpacity) {\n if (value >= 0 && value <= 1) {\n this._hsva.a = value;\n this._syncColors();\n\n if (this._initialized) {\n this._opacitySlider.setValue(this._hsva.a);\n this._render();\n }\n } else {\n console.warn(`The provided opacity value (${value}) must be between 0 and 1.`);\n }\n }\n }\n }\n\n public get allowOpacity(): boolean {\n return this._allowOpacity;\n }\n public set allowOpacity(value: boolean) {\n this._allowOpacity = value;\n if (this._initialized) {\n this._initializeOpacity();\n }\n }\n\n public get debounceChangeEvent(): boolean {\n return this._debounceChangeEvent;\n }\n public set debounceChangeEvent(value: boolean) {\n if (this._debounceChangeEvent !== value) {\n this._debounceChangeEvent = value;\n if (this._initialized) {\n this._applyChangeEventTrigger();\n }\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconUnfoldMore } from '@tylertech/tyler-icons/standard';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { TooltipComponent } from '../tooltip';\nimport { ColorPickerAdapter } from './color-picker-adapter';\nimport { COLOR_PICKER_CONSTANTS, IColorPickerChangeEventData, IHSVA, IRGBA } from './color-picker-constants';\nimport { ColorPickerFoundation } from './color-picker-foundation';\n\nconst template = '<template><div class=\\\"forge-color-picker\\\" part=\\\"root\\\"><input type=\\\"color\\\" tabindex=\\\"-1\\\" class=\\\"forge-color-picker__input\\\" spellcheck=\\\"false\\\" autocomplete=\\\"off\\\" aria-label=\\\"Color picker value\\\" part=\\\"input\\\"><div class=\\\"forge-color-picker__container\\\" part=\\\"container\\\"><div class=\\\"forge-color-picker__gradient\\\" tabindex=\\\"0\\\" part=\\\"gradient\\\"><div class=\\\"forge-color-picker__gradient-color\\\" part=\\\"gradient-color\\\"></div><div class=\\\"forge-color-picker__gradient-thumb\\\" part=\\\"gradient-thumb\\\"></div></div><div class=\\\"forge-color-picker__control-preview\\\" part=\\\"controls-preview-container\\\"><div class=\\\"forge-color-picker__controls\\\" part=\\\"controls-container\\\"><div class=\\\"forge-color-picker__slider-control\\\" part=\\\"hue-control-container\\\"><div class=\\\"forge-color-picker__slider forge-color-picker__hue-slider\\\" part=\\\"hue-control-slider\\\"><div class=\\\"forge-color-picker__slider-thumb\\\" id=\\\"forge-color-picker-hue-thumb\\\" part=\\\"hue-control-slider-thumb\\\" tabindex=\\\"0\\\" role=\\\"slider\\\" aria-label=\\\"Change hue\\\" aria-valuemin=\\\"0\\\" aria-valuemax=\\\"360\\\" aria-valuenow=\\\"0\\\" aria-orientation=\\\"horizontal\\\" aria-valuetext=\\\"0\\\"></div></div></div><div class=\\\"forge-color-picker__slider-control\\\" part=\\\"opacity-control-container\\\"><div class=\\\"forge-color-picker__canvas\\\" part=\\\"opacity-control-canvas\\\"><div class=\\\"forge-color-picker__slider forge-color-picker__opacity-slider\\\" part=\\\"opacity-control-slider\\\"><div class=\\\"forge-color-picker__slider-thumb\\\" id=\\\"forge-color-picker-opacity-thumb\\\" part=\\\"opacity-control-slider-thumb\\\" tabindex=\\\"0\\\" role=\\\"slider\\\" aria-label=\\\"Change opacity\\\" aria-valuemin=\\\"0\\\" aria-valuemax=\\\"100\\\" aria-valuenow=\\\"0\\\" aria-orientation=\\\"horizontal\\\" aria-valuetext=\\\"0\\\"></div></div></div></div></div><div class=\\\"forge-color-picker__color-preview-container forge-color-picker__canvas\\\" part=\\\"color-preview-container\\\"><div class=\\\"forge-color-picker__color-preview\\\" part=\\\"color-preview\\\"></div></div></div><div class=\\\"forge-color-picker__value\\\" part=\\\"value-container\\\"><div class=\\\"forge-color-picker__color-types\\\" part=\\\"types-container\\\"><div class=\\\"forge-color-picker__color-hex\\\" part=\\\"hex-type-container\\\"><div part=\\\"hex-type-label-wrapper\\\"><label for=\\\"forge-color-picker-hex-input\\\" part=\\\"hex-label\\\">HEX</label></div><input type=\\\"text\\\" id=\\\"forge-color-picker-hex-input\\\" part=\\\"hex-input\\\" style=\\\"width: 88px;\\\" maxlength=\\\"9\\\" spellcheck=\\\"false\\\" autocomplete=\\\"off\\\" aria-label=\\\"HEX value\\\"></div><div class=\\\"forge-color-picker__color-rgba\\\" part=\\\"rgba-type-container\\\"><div part=\\\"rgba-type-wrapper-r\\\"><label for=\\\"forge-color-picker-rgba-r-input\\\" part=\\\"rgba-type-label-r\\\">R</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-rgba-r-input\\\" part=\\\"rgba-type-input-r\\\" min=\\\"0\\\" max=\\\"255\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Red\\\"></div><div part=\\\"rgba-type-wrapper-g\\\"><label for=\\\"forge-color-picker-rgba-g-input\\\" part=\\\"rgba-type-label-g\\\">G</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-rgba-g-input\\\" part=\\\"rgba-type-input-g\\\" min=\\\"0\\\" max=\\\"255\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Green\\\"></div><div part=\\\"rgba-type-wrapper-b\\\"><label for=\\\"forge-color-picker-rgba-b-input\\\" part=\\\"rgba-type-label-b\\\">B</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-rgba-b-input\\\" part=\\\"rgba-type-input-b\\\" min=\\\"0\\\" max=\\\"255\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Blue\\\"></div><div part=\\\"rgba-type-wrapper-a\\\"><label for=\\\"forge-color-picker-rgba-a-input\\\" part=\\\"rgba-type-label-a\\\">A</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-rgba-a-input\\\" part=\\\"rgba-type-input-a\\\" min=\\\"0\\\" max=\\\"1\\\" step=\\\"0.1\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Alpha\\\"></div></div><div class=\\\"forge-color-picker__color-hsva\\\" part=\\\"hsva-type-container\\\"><div part=\\\"hsva-type-wrapper-h\\\"><label for=\\\"forge-color-picker-hsva-h-input\\\" part=\\\"hsva-type-label-h\\\">H</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-hsva-h-input\\\" part=\\\"hsva-type-input-h\\\" min=\\\"0\\\" max=\\\"360\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Hue\\\"></div><div part=\\\"hsva-type-wrapper-s\\\"><label for=\\\"forge-color-picker-hsva-s-input\\\" part=\\\"hsva-type-label-s\\\">S</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-hsva-s-input\\\" part=\\\"hsva-type-input-s\\\" min=\\\"0\\\" max=\\\"100\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Saturation\\\"></div><div part=\\\"hsva-type-wrapper-v\\\"><label for=\\\"forge-color-picker-hsva-v-input\\\" part=\\\"hsva-type-label-v\\\">V</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-hsva-v-input\\\" part=\\\"hsva-type-input-v\\\" min=\\\"0\\\" max=\\\"100\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Value\\\"></div><div part=\\\"hsva-type-wrapper-a\\\"><label for=\\\"forge-color-picker-hsva-a-input\\\" part=\\\"hsva-type-label-a\\\">A</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-hsva-a-input\\\" part=\\\"hsva-type-input-a\\\" min=\\\"0\\\" max=\\\"1\\\" step=\\\"0.1\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Alpha\\\"></div></div></div><div class=\\\"forge-color-picker__type-button\\\" part=\\\"type-container\\\"><forge-icon-button part=\\\"type-button\\\" id=\\\"forge-color-picker-type-button\\\" aria-labelledby=\\\"type-button-tooltip\\\" part=\\\"type-button-element\\\"><forge-icon name=\\\"unfold_more\\\" part=\\\"type-button-icon\\\"></forge-icon></forge-icon-button><forge-tooltip placement=\\\"bottom\\\" id=\\\"type-button-tooltip\\\">Change color format</forge-tooltip></div></div></div></div></template>';\nconst styles = '*{-webkit-box-sizing:border-box;box-sizing:border-box}.forge-color-picker{width:272px;width:var(--forge-color-picker-width,272px);position:relative;display:inline-block;overflow:hidden}.forge-color-picker__input{height:1px;opacity:0;position:absolute;width:1px}.forge-color-picker__gradient{position:relative;outline:0}.forge-color-picker__gradient-color{background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0)),to(#000)),-webkit-gradient(linear,left top,right top,color-stop(0,#fff),to(rgba(255,255,255,0)));background:linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 100%),linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%);height:152px}.forge-color-picker__gradient-thumb{border:1px solid #fff;border-radius:50%;cursor:pointer;display:inline-block;height:10px;width:10px;margin-left:-5px;margin-top:-5px;position:absolute;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:left .2s cubic-bezier(.25, .8, .25, 1) 0s,top .2s cubic-bezier(.25, .8, .25, 1) 0s;transition:left .2s cubic-bezier(.25, .8, .25, 1) 0s,top .2s cubic-bezier(.25, .8, .25, 1) 0s}.forge-color-picker__control-preview{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%;padding:16px}.forge-color-picker__controls{-webkit-box-flex:1;flex:1;margin-right:16px}.forge-color-picker__slider{position:relative}.forge-color-picker__slider-thumb{outline:0;height:16px;width:16px;background-color:#fff;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3);position:absolute;border-radius:50%;top:calc(50% - 8px);margin-left:-8px;-webkit-transition:left .4s cubic-bezier(.25, .8, .25, 1);transition:left .4s cubic-bezier(.25, .8, .25, 1)}.forge-color-picker__slider-thumb--active{-webkit-transition:none;transition:none}.forge-color-picker__slider-thumb:hover{cursor:pointer}.forge-color-picker__color-preview-container{border-radius:50%;-webkit-box-shadow:0 0 2px 0 rgba(0,0,0,.54) inset,0 0 2px 0 rgba(0,0,0,.54);box-shadow:0 0 2px 0 rgba(0,0,0,.54) inset,0 0 2px 0 rgba(0,0,0,.54);overflow:hidden}.forge-color-picker__color-preview{height:32px;width:32px;-webkit-transition:background-color .2s cubic-bezier(.25, .8, .25, 1);transition:background-color .2s cubic-bezier(.25, .8, .25, 1)}.forge-color-picker__value{display:-webkit-box;display:flex;width:100%;-webkit-box-align:center;align-items:center;padding:0 8px 16px 16px;font-size:12px}.forge-color-picker__color-types{-webkit-box-flex:1;flex:1}.forge-color-picker__color-types label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-light,rgba(0,0,0,.54))}.forge-color-picker__color-types input{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit)}.forge-color-picker__color-types input[type=number],.forge-color-picker__color-types input[type=text]{color:#000;color:var(--mdc-theme-on-surface,#000);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);background-color:transparent;padding:4px 8px;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;-webkit-transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1),-webkit-box-shadow .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1),-webkit-box-shadow .2s 0s cubic-bezier(0, 0, .2, 1);transition:box-shadow .2s 0s cubic-bezier(0, 0, .2, 1),border-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:box-shadow .2s 0s cubic-bezier(0, 0, .2, 1),border-color .2s 0s cubic-bezier(0, 0, .2, 1),-webkit-box-shadow .2s 0s cubic-bezier(0, 0, .2, 1)}.forge-color-picker__color-types input[type=number]:hover,.forge-color-picker__color-types input[type=text]:hover{border-color:rgba(0,0,0,.87);border-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-color-picker__color-types input[type=number]:focus,.forge-color-picker__color-types input[type=text]:focus{border-color:#6200ee;border-color:var(--mdc-theme-primary,#6200ee);-webkit-box-shadow:0 0 0 1px inset #3f51b5;box-shadow:0 0 0 1px inset #3f51b5;-webkit-box-shadow:0 0 0 1px inset var(--mdc-theme-primary,#3f51b5);box-shadow:0 0 0 1px inset var(--mdc-theme-primary,#3f51b5)}.forge-color-picker__color-types input[type=number]{text-align:center;-moz-appearance:textfield}.forge-color-picker__color-types input[type=number]::-webkit-inner-spin-button,.forge-color-picker__color-types input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.forge-color-picker__color-hex{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;-webkit-box-align:space-between;align-items:space-between}.forge-color-picker__canvas{background-image:url(\\\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNnB4IiBoZWlnaHQ9IjZweCIgdmlld0JveD0iMCAwIDYgNiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggNTAgKDU0OTgzKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5Hcm91cCA5PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Ikdyb3VwLTkiPgogICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTExIiBmaWxsPSIjRTBFMEUwIiB4PSIwIiB5PSIwIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTEtQ29weS0yIiBmaWxsPSIjRkZGRkZGIiB4PSIwIiB5PSIzIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTEtQ29weSIgZmlsbD0iI0ZGRkZGRiIgeD0iMyIgeT0iMCIgd2lkdGg9IjMiIGhlaWdodD0iMyI+PC9yZWN0PgogICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTExLUNvcHktMyIgZmlsbD0iI0UwRTBFMCIgeD0iMyIgeT0iMyIgd2lkdGg9IjMiIGhlaWdodD0iMyI+PC9yZWN0PgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\\\")}.forge-color-picker__hue-slider{height:8px;background:-webkit-gradient(linear,left top,right top,color-stop(0,red),color-stop(16%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(84%,#f0f),to(#ff0004));background:linear-gradient(to right,red 0,#ff0 16%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 84%,#ff0004 100%)}.forge-color-picker__opacity-slider{height:8px;margin-top:16px;background:-webkit-gradient(linear,left top,right top,from(rgba(255,0,0,0)),to(red));background:linear-gradient(to right,rgba(255,0,0,0) 0,red 100%)}.forge-color-picker__color-hsva,.forge-color-picker__color-rgba{display:-webkit-box;display:flex}.forge-color-picker__color-hsva div,.forge-color-picker__color-rgba div{margin-right:4px}.forge-color-picker__color-hsva label,.forge-color-picker__color-rgba label{display:block;text-align:center}.forge-color-picker__color-hsva input,.forge-color-picker__color-rgba input{width:44px}:host{display:inline-block}:host([hidden]){display:none}';\nexport interface IColorPickerComponent extends IBaseComponent {\n value: string | null | undefined;\n rgba: IRGBA | null | undefined;\n hsva: IHSVA | null | undefined;\n opacity: number | null | undefined;\n allowOpacity: boolean;\n debounceChangeEvent: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-color-picker': IColorPickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-color-picker-change': CustomEvent<IColorPickerChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-color-picker>` custom element.\n * \n * @tag forge-color-picker\n */\n@CustomElement({\n name: COLOR_PICKER_CONSTANTS.elementName,\n dependencies: [\n IconButtonComponent,\n TooltipComponent,\n IconComponent\n ]\n})\nexport class ColorPickerComponent extends BaseComponent implements IColorPickerComponent {\n public static get observedAttributes(): string[] {\n return [\n COLOR_PICKER_CONSTANTS.attributes.VALUE,\n COLOR_PICKER_CONSTANTS.attributes.ALLOW_OPACITY,\n COLOR_PICKER_CONSTANTS.attributes.DEBOUNCE_CHANGE_EVENT\n ];\n }\n\n private _foundation: ColorPickerFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconUnfoldMore);\n attachShadowTemplate(this, template, styles);\n this._foundation = new ColorPickerFoundation(new ColorPickerAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case COLOR_PICKER_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n case COLOR_PICKER_CONSTANTS.attributes.ALLOW_OPACITY:\n this.allowOpacity = coerceBoolean(newValue);\n break;\n case COLOR_PICKER_CONSTANTS.attributes.DEBOUNCE_CHANGE_EVENT:\n this.debounceChangeEvent = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets/sets the value using hex format only. */\n @FoundationProperty()\n public declare value: string | null | undefined;\n\n /** Gets/sets the value using rgba format. */\n @FoundationProperty()\n public declare rgba: IRGBA | null | undefined;\n\n /** Gets/sets the value using hsva format. */\n @FoundationProperty()\n public declare hsva: IHSVA | null | undefined;\n\n /** Gets/sets the opacity value, if `allowOpacity` is true. */\n @FoundationProperty()\n public declare opacity: number | null | undefined;\n\n /** Gets/sets whether opacity is displayed and allowed be to changed. */\n @FoundationProperty()\n public declare allowOpacity: boolean;\n\n /** Gets/sets whether change event has a debounce applied to avoid successive updates. Defaults to `false`. */\n @FoundationProperty()\n public declare debounceChangeEvent: boolean;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { ColorPickerComponent } from './color-picker';\n\nexport * from './color-picker-adapter';\nexport * from './color-picker-constants';\nexport * from './color-picker-foundation';\nexport * from './color-picker';\n\nexport function defineColorPickerComponent(): void {\n defineCustomElement(ColorPickerComponent);\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}color-picker`;\n\nconst attributes = {\n VALUE: 'value',\n ALLOW_OPACITY: 'allow-opacity',\n DEBOUNCE_CHANGE_EVENT: 'debounce-change-event'\n};\n\nconst classes = {\n SLIDER_THUMB_ACTIVE: 'forge-color-picker__slider-thumb--active',\n GRADIENT_THUMB_ACTIVE: 'forge-color-picker__gradient-thumb--active'\n};\n\nconst selectors = {\n GRADIENT: '.forge-color-picker__gradient',\n GRADIENT_THUMB: '.forge-color-picker__gradient-thumb',\n PREVIEW_COLOR: '.forge-color-picker__color-preview',\n HEX_INPUT: '#forge-color-picker-hex-input',\n RGBA_INPUT: '#forge-color-picker-rgba-input',\n HSVA_INPUT: '#forge-color-picker-hsva-input',\n HUE_SLIDER: '.forge-color-picker__hue-slider',\n HUE_SLIDER_THUMB: '#forge-color-picker-hue-thumb',\n OPACITY_SLIDER: '.forge-color-picker__opacity-slider',\n OPACITY_SLIDER_THUMB: '#forge-color-picker-opacity-thumb',\n SLIDER: '.forge-color-picker__slider',\n SLIDER_THUMB: '.forge-color-picker__slider-thumb',\n COLOR_VALUE_HEX_CONTAINER: '.forge-color-picker__color-hex',\n COLOR_VALUE_RGBA_CONTAINER: '.forge-color-picker__color-rgba',\n COLOR_VALUE_HSVA_CONTAINER: '.forge-color-picker__color-hsva',\n TYPE_BUTTON: '#forge-color-picker-type-button',\n COLOR_VALUE_RGBA_R: '#forge-color-picker-rgba-r-input',\n COLOR_VALUE_RGBA_G: '#forge-color-picker-rgba-g-input',\n COLOR_VALUE_RGBA_B: '#forge-color-picker-rgba-b-input',\n COLOR_VALUE_RGBA_A: '#forge-color-picker-rgba-a-input',\n COLOR_VALUE_HSVA_H: '#forge-color-picker-hsva-h-input',\n COLOR_VALUE_HSVA_S: '#forge-color-picker-hsva-s-input',\n COLOR_VALUE_HSVA_V: '#forge-color-picker-hsva-v-input',\n COLOR_VALUE_HSVA_A: '#forge-color-picker-hsva-a-input'\n};\n\nconst events = {\n CHANGE: `${elementName}-change`\n};\n\nconst numbers = {\n CHANGE_EVENT_DEBOUNCE_THRESHOLD: 200\n};\n\nexport const COLOR_PICKER_CONSTANTS = {\n elementName,\n attributes,\n events,\n classes,\n selectors,\n numbers\n};\n\nexport const DEFAULT_COLOR = '000000';\n\nexport enum ColorPickerValueType {\n HEX = 'hex',\n RGB = 'rgb',\n RGBA = 'rgba',\n HSV = 'hsv',\n HSVA = 'hsva'\n}\n\nexport interface IRGBA {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\nexport interface IHSVA {\n h: number;\n s: number;\n v: number;\n a: number;\n}\n\nexport type ColorPickerChangeEventType = 'slider' | 'input';\nexport type ColorPickerChangeEventSource = 'gradient' | 'hue' | 'opacity' | 'hex' | 'rgba' | 'hsva';\n\nexport interface IColorPickerChangeEventData {\n type: ColorPickerChangeEventType;\n source: ColorPickerChangeEventSource;\n hex: string;\n rgba: IRGBA;\n hsva: IHSVA;\n alpha?: number;\n}\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IColorPickerComponent } from './color-picker';\nimport { ColorPickerValueType, COLOR_PICKER_CONSTANTS, IHSVA, IRGBA } from './color-picker-constants';\n\nexport interface IColorPickerAdapter extends IBaseAdapter {\n setPreviewColor(rgbaStyle: string): void;\n setHexInputValue(value: string): void;\n setRgbaInputValue(rgba: IRGBA): void;\n setHsvaInputValue(hsva: IHSVA): void;\n updateA11y(hueValue: number, opacityValue: number): void;\n setGradientColor(value: string): void;\n getHueSliderElement(): HTMLElement;\n getOpacitySliderElement(): HTMLElement;\n getGradientElement(): HTMLElement;\n setActiveValueType(type: ColorPickerValueType): void;\n focusValueInput(type: ColorPickerValueType): void;\n setTypeClickListener(listener: (evt: MouseEvent) => void): void;\n removeTypeClickListener(listener: (evt: MouseEvent) => void): void;\n setHexInputListener(type: string, listener: (evt: Event) => void): void;\n removeHexInputListener(type: string, listener: (evt: Event) => void): void;\n getHexInputValue(): string;\n setRgbaInputListener(type: string, listener: (evt: Event) => void): void;\n removeRgbaInputListener(type: string, listener: (evt: Event) => void): void;\n getRgbaInputValue(): IRGBA;\n setHsvaInputListener(type: string, listener: (evt: Event) => void): void;\n removeHsvaInputListener(type: string, listener: (evt: Event) => void): void;\n getHsvaInputValue(): IHSVA;\n toggleOpacityControls(visible: boolean): void;\n}\n\nexport class ColorPickerAdapter extends BaseAdapter<IColorPickerComponent> implements IColorPickerAdapter {\n private _gradientElement: HTMLElement;\n private _previewColorElement: HTMLElement;\n private _hexInputElement: HTMLInputElement;\n private _rgbaInputRElement: HTMLInputElement;\n private _rgbaInputGElement: HTMLInputElement;\n private _rgbaInputBElement: HTMLInputElement;\n private _rgbaInputAElement: HTMLInputElement;\n private _hsvaInputHElement: HTMLInputElement;\n private _hsvaInputSElement: HTMLInputElement;\n private _hsvaInputVElement: HTMLInputElement;\n private _hsvaInputAElement: HTMLInputElement;\n private _hueSliderElement: HTMLElement;\n private _hueSliderThumbElement: HTMLElement;\n private _opacitySliderElement: HTMLElement;\n private _opacitySliderThumbElement: HTMLElement;\n private _hexValueContainerElement: HTMLElement;\n private _rgbaValueContainerElement: HTMLElement;\n private _hsvaValueContainerElement: HTMLElement;\n private _typeButtonElement: HTMLButtonElement;\n\n constructor(component: IColorPickerComponent) {\n super(component);\n this._gradientElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.GRADIENT);\n this._previewColorElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.PREVIEW_COLOR);\n this._hexInputElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.HEX_INPUT) as HTMLInputElement;\n this._rgbaInputRElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_R) as HTMLInputElement;\n this._rgbaInputGElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_G) as HTMLInputElement;\n this._rgbaInputBElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_B) as HTMLInputElement;\n this._rgbaInputAElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_A) as HTMLInputElement;\n this._hsvaInputHElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_H) as HTMLInputElement;\n this._hsvaInputSElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_S) as HTMLInputElement;\n this._hsvaInputVElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_V) as HTMLInputElement;\n this._hsvaInputAElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_A) as HTMLInputElement;\n this._hueSliderElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.HUE_SLIDER);\n this._hueSliderThumbElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.HUE_SLIDER_THUMB);\n this._opacitySliderElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.OPACITY_SLIDER);\n this._opacitySliderThumbElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.OPACITY_SLIDER_THUMB);\n this._hexValueContainerElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HEX_CONTAINER);\n this._rgbaValueContainerElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_RGBA_CONTAINER);\n this._hsvaValueContainerElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.COLOR_VALUE_HSVA_CONTAINER);\n this._typeButtonElement = getShadowElement(component, COLOR_PICKER_CONSTANTS.selectors.TYPE_BUTTON) as HTMLButtonElement;\n }\n\n public setPreviewColor(rgbaStyle: string): void {\n this._previewColorElement.style.backgroundColor = rgbaStyle;\n }\n\n public setHexInputValue(value: string): void {\n this._hexInputElement.value = value;\n }\n\n public setRgbaInputValue(rgba: IRGBA): void {\n this._rgbaInputRElement.value = rgba.r.toString();\n this._rgbaInputGElement.value = rgba.g.toString();\n this._rgbaInputBElement.value = rgba.b.toString();\n this._rgbaInputAElement.value = rgba.a.toString();\n }\n\n public setHsvaInputValue(hsva: IHSVA): void {\n this._hsvaInputHElement.value = hsva.h.toString();\n this._hsvaInputSElement.value = hsva.s.toString();\n this._hsvaInputVElement.value = hsva.v.toString();\n this._hsvaInputAElement.value = hsva.a.toString();\n }\n\n public updateA11y(hueValue: number, opacityValue: number): void {\n this._hueSliderThumbElement.setAttribute('aria-valuenow', hueValue.toString());\n this._hueSliderThumbElement.setAttribute('aria-valuetext', hueValue.toString());\n\n this._opacitySliderThumbElement.setAttribute('aria-valuenow', opacityValue.toString());\n this._opacitySliderThumbElement.setAttribute('aria-valuetext', opacityValue.toString());\n }\n\n public setGradientColor(value: string): void {\n this._gradientElement.style.backgroundColor = value;\n }\n\n public getHueSliderElement(): HTMLElement {\n return this._hueSliderElement;\n }\n\n public getOpacitySliderElement(): HTMLElement {\n return this._opacitySliderElement;\n }\n\n public getGradientElement(): HTMLElement {\n return this._gradientElement;\n }\n\n public setActiveValueType(type: ColorPickerValueType): void {\n this._hexValueContainerElement.style.display = 'none';\n this._rgbaValueContainerElement.style.display = 'none';\n this._hsvaValueContainerElement.style.display = 'none';\n\n switch (type) {\n case ColorPickerValueType.HEX:\n this._hexValueContainerElement.style.removeProperty('display');\n break;\n case ColorPickerValueType.RGBA:\n this._rgbaValueContainerElement.style.removeProperty('display');\n break;\n case ColorPickerValueType.HSVA:\n this._hsvaValueContainerElement.style.removeProperty('display');\n break;\n }\n }\n\n public focusValueInput(type: ColorPickerValueType): void {\n switch (type) {\n case ColorPickerValueType.HEX:\n this._hexInputElement.focus();\n this._hexInputElement.select();\n break;\n case ColorPickerValueType.RGBA:\n this._rgbaInputRElement.focus();\n this._rgbaInputRElement.select();\n break;\n case ColorPickerValueType.HSVA:\n this._hsvaInputHElement.focus();\n this._hsvaInputHElement.select();\n break;\n }\n }\n\n public setTypeClickListener(listener: (evt: MouseEvent) => void): void {\n this._typeButtonElement.addEventListener('click', listener);\n }\n\n public removeTypeClickListener(listener: (evt: MouseEvent) => void): void {\n this._typeButtonElement.removeEventListener('click', listener);\n }\n\n public setHexInputListener(type: string, listener: (evt: Event) => void): void {\n this._hexInputElement.addEventListener(type, listener);\n }\n\n public removeHexInputListener(type: string, listener: (evt: Event) => void): void {\n this._hexInputElement.removeEventListener(type, listener);\n }\n\n public getHexInputValue(): string {\n return this._hexInputElement.value;\n }\n\n public setRgbaInputListener(type: string, listener: (evt: Event) => void): void {\n this._rgbaInputRElement.addEventListener(type, listener);\n this._rgbaInputGElement.addEventListener(type, listener);\n this._rgbaInputBElement.addEventListener(type, listener);\n this._rgbaInputAElement.addEventListener(type, listener);\n }\n\n public removeRgbaInputListener(type: string, listener: (evt: Event) => void): void {\n this._rgbaInputRElement.removeEventListener(type, listener);\n this._rgbaInputGElement.removeEventListener(type, listener);\n this._rgbaInputBElement.removeEventListener(type, listener);\n this._rgbaInputAElement.removeEventListener(type, listener);\n }\n\n public getRgbaInputValue(): IRGBA {\n return {\n r: parseInt(this._rgbaInputRElement.value, 10),\n g: parseInt(this._rgbaInputGElement.value, 10),\n b: parseInt(this._rgbaInputBElement.value, 10),\n a: parseFloat(this._rgbaInputAElement.value)\n };\n }\n\n public setHsvaInputListener(type: string, listener: (evt: Event) => void): void {\n this._hsvaInputHElement.addEventListener(type, listener);\n this._hsvaInputSElement.addEventListener(type, listener);\n this._hsvaInputVElement.addEventListener(type, listener);\n this._hsvaInputAElement.addEventListener(type, listener);\n }\n\n public removeHsvaInputListener(type: string, listener: (evt: Event) => void): void {\n this._hsvaInputHElement.removeEventListener(type, listener);\n this._hsvaInputSElement.removeEventListener(type, listener);\n this._hsvaInputVElement.removeEventListener(type, listener);\n this._hsvaInputAElement.removeEventListener(type, listener);\n }\n\n public getHsvaInputValue(): IHSVA {\n return {\n h: parseInt(this._hsvaInputHElement.value, 10),\n s: parseInt(this._hsvaInputSElement.value, 10),\n v: parseInt(this._hsvaInputVElement.value, 10),\n a: parseFloat(this._hsvaInputAElement.value)\n };\n }\n\n public toggleOpacityControls(visible: boolean): void {\n if (visible) {\n this._opacitySliderElement.style.removeProperty('display');\n if (this._rgbaInputAElement.parentElement) {\n this._rgbaInputAElement.parentElement.style.removeProperty('display');\n }\n if (this._hsvaInputAElement.parentElement) {\n this._hsvaInputAElement.parentElement.style.removeProperty('display');\n }\n } else {\n this._opacitySliderElement.style.display = 'none';\n if (this._rgbaInputAElement.parentElement) {\n this._rgbaInputAElement.parentElement.style.display = 'none';\n }\n if (this._hsvaInputAElement.parentElement) {\n this._hsvaInputAElement.parentElement.style.display = 'none';\n }\n }\n }\n}\n", "import { isNumber } from '@tylertech/forge-core';\n\nimport { IRGBA, IHSVA } from './color-picker-constants';\n\n/**\n * Calcuates coordinates relative to the provided element based on absolute coordinates.\n * @param absX The x coordinate in screen space.\n * @param absY The y coordinate in screen space.\n * @param element The element to calculate the relative coordinates from.\n */\nexport function relativeCoords(absX: number, absY: number, element: HTMLElement): { x: number; y: number; height: number; width: number } {\n const bounds = element.getBoundingClientRect();\n let x = absX - bounds.left;\n let y = absY - bounds.top;\n\n if (x > bounds.width) {\n x = bounds.width;\n } else if (x < 0) {\n x = 0;\n }\n\n if (y > bounds.height) {\n y = bounds.height;\n } else if (y < 0) {\n y = 0;\n }\n\n return { x, y, height: bounds.height, width: bounds.width };\n}\n\nexport function hsvaToRgba(hsva: IHSVA): IRGBA {\n let r: number;\n let g: number;\n let b: number;\n const h = hsva.h / 60;\n const s = hsva.s / 100;\n const v = hsva.v / 100;\n\n if (s === 0) {\n r = g = b = v;\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n a: hsva.a\n };\n }\n\n const i = Math.floor(h);\n const f = h - i;\n const p = v * (1 - s);\n const q = v * (1 - s * f);\n const t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n default: r = v; g = p; b = q;\n }\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n a: hsva.a\n };\n}\n\nexport function rgbaToHex(rgba: IRGBA): string {\n return toHex(rgba.r) + toHex(rgba.g) + toHex(rgba.b) + (Math.round(rgba.a * 255) + 0x10000).toString(16).substr(-2);\n}\n\nexport function toHex(x: number): string {\n return ('0' + x.toString(16)).slice(-2);\n}\n\nexport function hexToRgba(hex: string): IRGBA {\n const isShorthand = hex.length === 3 || hex.length === 4;\n const hexR = isShorthand ? `${hex.slice(0, 1)}${hex.slice(0, 1)}` : hex.slice(0, 2);\n const hexG = isShorthand ? `${hex.slice(1, 2)}${hex.slice(1, 2)}` : hex.slice(2, 4);\n const hexB = isShorthand ? `${hex.slice(2, 3)}${hex.slice(2, 3)}` : hex.slice(4, 6);\n const hexA = (isShorthand ? `${hex.slice(3, 4)}${hex.slice(3, 4)}` : hex.slice(6, 8)) || 'ff';\n\n return {\n r: parseInt(hexR, 16),\n g: parseInt(hexG, 16),\n b: parseInt(hexB, 16),\n a: parseFloat((parseInt(hexA, 16) / 255).toFixed(2))\n };\n}\n\nexport function formatRgba(rgba: IRGBA): string {\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`;\n}\n\nexport function formatHex(value: string, allowOpacity: boolean): string {\n let hex = value.replace(/^#/, '');\n\n if (!allowOpacity) {\n if (hex.length === 4) {\n hex = hex.substring(0, 3);\n } else if (hex.length === 8) {\n hex = hex.substring(0, 6);\n }\n }\n\n return `#${hex}`;\n}\n\nexport function rgbaToHsva(rgba: IRGBA): IHSVA {\n const r = rgba.r / 255;\n const g = rgba.g / 255;\n const b = rgba.b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h = max;\n let s = max;\n const v = max;\n\n const d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if (max === min) {\n h = 0;\n } else {\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n\n return {\n h: Math.round(h * 360),\n s: Math.round(s * 100),\n v: Math.round(v * 100),\n a: rgba.a\n };\n}\n\n/**\n * Determines if the provided hex color string is valid.\n * @param value The hex color string.\n */\nexport function isValidHex(value: string): boolean {\n if (!value || typeof value !== 'string') {\n return false;\n }\n\n if (value.substring(0, 1) === '#') {\n value = value.substring(1);\n }\n\n switch (value.length) {\n case 3: return /^[0-9A-F]{3}$/i.test(value);\n case 4: return /^[0-9A-F]{4}$/i.test(value);\n case 6: return /^[0-9A-F]{6}$/i.test(value);\n case 8: return /^[0-9A-F]{8}$/i.test(value);\n default: return false;\n }\n}\n\n/**\n * Determines if the provided RGBA values are valid.\n * @param value The RGBA color values.\n */\nexport function isValidRGBA(value: IRGBA): boolean {\n return isNumber(value.r) && value.r >= 0 && value.r <= 255 &&\n isNumber(value.g) && value.g >= 0 && value.g <= 255 &&\n isNumber(value.b) && value.b >= 0 && value.b <= 255 &&\n isNumber(value.a) && value.a >= 0 && value.a <= 1;\n}\n\n/**\n * Determines if the provided HSVA values are valid.\n * @param value The HSVA color values.\n */\nexport function isValidHSVA(value: IHSVA): boolean {\n return isNumber(value.h) && value.h >= 0 && value.h <= 360 &&\n isNumber(value.s) && value.s >= 0 && value.s <= 100 &&\n isNumber(value.v) && value.v >= 0 && value.v <= 100 &&\n isNumber(value.a) && value.a >= 0 && value.a <= 1;\n}\n", "import { COLOR_PICKER_CONSTANTS } from './color-picker-constants';\nimport { relativeCoords } from './color-picker-utils';\n\nexport class ColorPickerGradientSlider {\n private _xPercent: number;\n private _yPercent: number;\n private _thumbElement: HTMLElement;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _downListener: (evt: MouseEvent & TouchEvent) => void;\n private _moveListener: (evt: MouseEvent & TouchEvent) => void;\n private _upListener: (evt: MouseEvent & TouchEvent) => void;\n\n constructor(private _rootElement: HTMLElement, private _changeListener: (x: number, y: number) => void) {\n this._keydownListener = evt => this._onKeydown(evt);\n this._downListener = evt => this._onDown(evt);\n this._moveListener = evt => this._onMove(evt);\n this._upListener = evt => this._onUp(evt);\n this._initialize();\n }\n\n public destroy(): void {\n this._unlisten();\n }\n\n public setValue(saturation: number, value: number): void {\n window.requestAnimationFrame(() => {\n const bounds = this._rootElement.getBoundingClientRect();\n this._xPercent = Math.round(bounds.width * (saturation / 100));\n this._yPercent = bounds.height - Math.round(bounds.height * (value / 100));\n this._setThumbPosition(this._xPercent, this._yPercent);\n });\n }\n\n private _initialize(): void {\n this._thumbElement = this._rootElement.querySelector(COLOR_PICKER_CONSTANTS.selectors.GRADIENT_THUMB) as HTMLElement;\n this._listen();\n this._setThumbPosition(this._xPercent, this._yPercent);\n }\n\n private _listen(): void {\n this._rootElement.addEventListener('keydown', this._keydownListener);\n this._rootElement.addEventListener('mousedown', this._downListener);\n this._rootElement.addEventListener('touchstart', this._downListener);\n }\n\n private _unlisten(): void {\n this._rootElement.removeEventListener('keydown', this._keydownListener);\n this._rootElement.removeEventListener('mousedown', this._downListener);\n this._rootElement.removeEventListener('touchstart', this._downListener);\n document.removeEventListener('mousemove', this._moveListener);\n document.removeEventListener('touchmove', this._moveListener);\n document.removeEventListener('mouseup', this._upListener);\n document.removeEventListener('touchend', this._upListener);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const isEnterKey = evt.key === 'Enter' || evt.keyCode === 13;\n const isArrowLeftKey = evt.key === 'ArrowLeft' || evt.keyCode === 37;\n const isArrowUpKey = evt.key === 'ArrowUp' || evt.keyCode === 38;\n const isArrowRightKey = evt.key === 'ArrowRight' || evt.keyCode === 39;\n const isArrowDownKey = evt.key === 'ArrowDown' || evt.keyCode === 40;\n\n const bounds = this._rootElement.getBoundingClientRect();\n\n if (isArrowDownKey) {\n evt.preventDefault();\n this._yPercent++;\n } else if (isArrowUpKey) {\n evt.preventDefault();\n this._yPercent--;\n } else if (isArrowLeftKey) {\n evt.preventDefault();\n this._xPercent--;\n } else if (isArrowRightKey) {\n evt.preventDefault();\n this._xPercent++;\n } else if (isEnterKey) {\n evt.preventDefault();\n // TODO(kieran.nichols): Select the current color\n } else {\n return;\n }\n\n if (this._xPercent > bounds.width) {\n this._xPercent = bounds.width;\n } else if (this._xPercent < 0) {\n this._xPercent = 0;\n }\n\n if (this._yPercent > bounds.height) {\n this._yPercent = bounds.height;\n } else if (this._yPercent < 0) {\n this._yPercent = 0;\n }\n\n this._setThumbPosition(this._xPercent, this._yPercent);\n this._notify();\n }\n\n private _onDown(evt: MouseEvent & TouchEvent): void {\n evt.preventDefault();\n document.addEventListener('mousemove', this._moveListener);\n document.addEventListener('touchmove', this._moveListener);\n document.addEventListener('mouseup', this._upListener);\n document.addEventListener('touchend', this._upListener);\n this._updateThumbPosition(evt);\n }\n\n private _onMove(evt: MouseEvent & TouchEvent): void {\n evt.preventDefault();\n this._updateThumbPosition(evt);\n }\n\n private _onUp(evt: MouseEvent & TouchEvent): void {\n document.removeEventListener('mousemove', this._moveListener);\n document.removeEventListener('touchmove', this._moveListener);\n document.removeEventListener('mouseup', this._upListener);\n document.removeEventListener('touchend', this._upListener);\n this._updateThumbPosition(evt);\n this._thumbElement.focus();\n }\n\n private _updateThumbPosition(evt: MouseEvent & TouchEvent): void {\n const isMouseEvent = /^mouse/.test(evt.type);\n const x = isMouseEvent ? evt.clientX : evt.changedTouches[0].clientX;\n const y = isMouseEvent ? evt.clientY : evt.changedTouches[0].clientY;\n const coords = this._calculateSliderPercent(x, y);\n this._setThumbPosition(coords.x, coords.y);\n this._xPercent = parseInt(((coords.x / coords.width) * 100).toString(), 10);\n this._yPercent = Math.abs(parseInt(((coords.y / coords.height) * 100).toString(), 10) - 100);\n this._notify();\n }\n\n private _calculateSliderPercent(absX: number, absY: number): { x: number; y: number; width: number; height: number } {\n return relativeCoords(absX, absY, this._rootElement);\n }\n\n private _setThumbPosition(xPercent: number, yPercent: number): void {\n this._thumbElement.style.left = `${xPercent}px`;\n this._thumbElement.style.top = `${yPercent}px`;\n }\n\n private _notify(): void {\n if (typeof this._changeListener === 'function') {\n this._changeListener(this._xPercent, this._yPercent);\n }\n }\n}\n", "import { COLOR_PICKER_CONSTANTS } from './color-picker-constants';\nimport { relativeCoords } from './color-picker-utils';\n\nexport interface IColorPickerSliderOptions {\n min: number;\n max: number;\n step: number;\n change: (value: number) => void;\n}\n\nexport class ColorPickerSlider {\n private _percent = 1;\n private _min = 0;\n private _max = 1;\n private _step = 0.01;\n private _thumbElement: HTMLElement;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _downListener: (evt: MouseEvent & TouchEvent) => void;\n private _moveListener: (evt: MouseEvent & TouchEvent) => void;\n private _upListener: (evt: MouseEvent & TouchEvent) => void;\n \n constructor(private _rootElement: HTMLElement, private _changeListener: (value: number) => void) {\n this._keydownListener = evt => this._onKeydown(evt);\n this._downListener = evt => this._onDown(evt);\n this._moveListener = evt => this._onMove(evt);\n this._upListener = evt => this._onUp(evt);\n this._initialize();\n }\n\n public destroy(): void {\n this._unlisten();\n }\n\n public setValue(value: number): void {\n this._percent = value;\n this._setThumbPosition(this._percent);\n }\n\n private _initialize(): void {\n this._thumbElement = this._rootElement.querySelector(COLOR_PICKER_CONSTANTS.selectors.SLIDER_THUMB) as HTMLElement;\n this._listen();\n this._setThumbPosition(this._percent);\n }\n\n private _listen(): void {\n this._thumbElement.addEventListener('keydown', this._keydownListener);\n this._rootElement.addEventListener('mousedown', this._downListener);\n this._rootElement.addEventListener('touchstart', this._downListener);\n }\n\n private _unlisten(): void {\n this._thumbElement.removeEventListener('keydown', this._keydownListener);\n this._rootElement.removeEventListener('mousedown', this._downListener);\n this._rootElement.removeEventListener('touchstart', this._downListener);\n document.removeEventListener('mousemove', this._moveListener);\n document.removeEventListener('touchmove', this._moveListener);\n document.removeEventListener('mouseup', this._upListener);\n document.removeEventListener('touchend', this._upListener);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const isArrowLeftKey = evt.key === 'ArrowLeft' || evt.keyCode === 37;\n const isArrowRightKey = evt.key === 'ArrowRight' || evt.keyCode === 39;\n const isHomeKey = evt.key === 'Home' || evt.keyCode === 36;\n const isEndKey = evt.key === 'End' || evt.keyCode === 35;\n\n if (isArrowLeftKey) {\n evt.preventDefault();\n this._percent -= this._step;\n } else if (isArrowRightKey) {\n evt.preventDefault();\n this._percent += this._step;\n } else if (isHomeKey) {\n evt.preventDefault();\n this._percent = this._min;\n } else if (isEndKey) {\n evt.preventDefault();\n this._percent = this._max;\n }\n\n if (this._percent < this._min) {\n this._percent = this._min;\n } else if (this._percent > this._max) {\n this._percent = this._max;\n }\n\n this._setThumbPosition(this._percent);\n this._notify();\n }\n\n private _onDown(evt: MouseEvent & TouchEvent): void {\n evt.preventDefault();\n document.addEventListener('mousemove', this._moveListener);\n document.addEventListener('touchmove', this._moveListener);\n document.addEventListener('mouseup', this._upListener);\n document.addEventListener('touchend', this._upListener);\n this._updateThumbPosition(evt);\n }\n\n private _onMove(evt: MouseEvent & TouchEvent): void {\n evt.preventDefault();\n this._thumbElement.classList.add(COLOR_PICKER_CONSTANTS.classes.SLIDER_THUMB_ACTIVE);\n this._updateThumbPosition(evt);\n }\n\n private _onUp(evt: MouseEvent & TouchEvent): void {\n this._thumbElement.classList.remove(COLOR_PICKER_CONSTANTS.classes.SLIDER_THUMB_ACTIVE);\n document.removeEventListener('mousemove', this._moveListener);\n document.removeEventListener('touchmove', this._moveListener);\n document.removeEventListener('mouseup', this._upListener);\n document.removeEventListener('touchend', this._upListener);\n this._updateThumbPosition(evt);\n this._thumbElement.focus();\n }\n\n private _updateThumbPosition(evt: MouseEvent & TouchEvent): void {\n const x = /^mouse/.test(evt.type) ? evt.clientX : evt.changedTouches[0].clientX;\n this._percent = this._calculateSliderPercent(x);\n this._setThumbPosition(this._percent);\n this._notify();\n }\n\n private _calculateSliderPercent(absX: number): number {\n const coords = relativeCoords(absX, 0, this._rootElement);\n return parseFloat((coords.x / coords.width).toFixed(2));\n }\n\n private _setThumbPosition(percent: number): void {\n this._thumbElement.style.left = `${percent * 100}%`;\n }\n\n private _notify(): void {\n if (typeof this._changeListener === 'function') {\n this._changeListener(this._percent);\n }\n }\n}\n", "import { ICustomElementFoundation, debounce } from '@tylertech/forge-core';\nimport { IColorPickerAdapter } from './color-picker-adapter';\nimport { ColorPickerValueType, COLOR_PICKER_CONSTANTS, DEFAULT_COLOR, IColorPickerChangeEventData, IHSVA, IRGBA, ColorPickerChangeEventType, ColorPickerChangeEventSource } from './color-picker-constants';\nimport { ColorPickerGradientSlider } from './color-picker-gradient-slider';\nimport { ColorPickerSlider } from './color-picker-slider';\nimport { formatHex, formatRgba, hexToRgba, hsvaToRgba, isValidHex, isValidHSVA, isValidRGBA, rgbaToHex, rgbaToHsva } from './color-picker-utils';\n\nexport interface IColorPickerFoundation extends ICustomElementFoundation {\n value: string | null | undefined;\n rgba: IRGBA | null | undefined;\n hsva: IHSVA | null | undefined;\n opacity: number | null | undefined;\n allowOpacity: boolean;\n debounceChangeEvent: boolean;\n}\n\nexport class ColorPickerFoundation implements IColorPickerFoundation {\n private _value: string | null | undefined = null;\n private _allowOpacity = true;\n private _hex = DEFAULT_COLOR;\n private _hsva: IHSVA = { h: 0, s: 0, v: 0, a: 1 };\n private _rgba: IRGBA = { r: 0, g: 0, b: 0, a: 1 };\n private _debounceChangeEvent = false;\n private _valueType = ColorPickerValueType.HEX;\n private _gradientSlider: ColorPickerGradientSlider;\n private _hueSlider: ColorPickerSlider;\n private _opacitySlider: ColorPickerSlider;\n private _initialized = false;\n private _gradientSliderChangedListener: (x: number, y: number) => void;\n private _hueSliderChangedListener: (percent: number) => void;\n private _opacitySliderChangedListener: (percent: number) => void;\n private _typeClickListener: (evt: MouseEvent) => void;\n private _hexInputChangedListener: (evt: KeyboardEvent) => void;\n private _rgbaInputChangedListener: (evt: KeyboardEvent) => void;\n private _hsvaInputChangedListener: (evt: KeyboardEvent) => void;\n private _triggerChangeEvent: (type: ColorPickerChangeEventType, source: ColorPickerChangeEventSource) => void;\n\n constructor(private _adapter: IColorPickerAdapter) {\n this._gradientSliderChangedListener = (x, y) => this._onGradientSliderChanged(x, y);\n this._hueSliderChangedListener = value => this._onHueSliderChanged(value);\n this._opacitySliderChangedListener = value => this._onOpacitySliderChanged(value);\n this._typeClickListener = evt => this._onTypeClicked(evt);\n this._hexInputChangedListener = evt => this._onHexInputChanged();\n this._rgbaInputChangedListener = evt => this._onRgbaInputChanged();\n this._hsvaInputChangedListener = evt => this._onHsvaInputChanged();\n }\n \n public initialize(): void {\n this._initialized = true;\n this._applyChangeEventTrigger();\n this._adapter.setTypeClickListener(this._typeClickListener);\n this._adapter.setHexInputListener('input', this._hexInputChangedListener);\n this._adapter.setRgbaInputListener('input', this._rgbaInputChangedListener);\n this._adapter.setHsvaInputListener('input', this._hsvaInputChangedListener);\n this._gradientSlider = new ColorPickerGradientSlider(this._adapter.getGradientElement(), this._gradientSliderChangedListener);\n this._hueSlider = new ColorPickerSlider(this._adapter.getHueSliderElement(), this._hueSliderChangedListener);\n this._opacitySlider = new ColorPickerSlider(this._adapter.getOpacitySliderElement(), this._opacitySliderChangedListener);\n\n this._initializeOpacity();\n this._setColorFromHex();\n this._adapter.setActiveValueType(this._valueType);\n }\n\n public disconnect(): void {\n this._adapter.removeTypeClickListener(this._typeClickListener);\n this._adapter.removeHexInputListener('input', this._hexInputChangedListener);\n this._adapter.removeRgbaInputListener('input', this._hexInputChangedListener);\n this._adapter.removeHsvaInputListener('input', this._hexInputChangedListener);\n\n this._gradientSlider.destroy();\n this._hueSlider.destroy();\n this._opacitySlider.destroy();\n this._initialized = false;\n }\n\n private _applyChangeEventTrigger(): void {\n if (this._debounceChangeEvent) {\n this._triggerChangeEvent = debounce((type: ColorPickerChangeEventType, source: ColorPickerChangeEventSource) => {\n this._emitChangeEvent(type, source);\n }, COLOR_PICKER_CONSTANTS.numbers.CHANGE_EVENT_DEBOUNCE_THRESHOLD, false);\n } else {\n this._triggerChangeEvent = (type, source) => this._emitChangeEvent(type, source);\n }\n }\n\n private _initializeOpacity(): void {\n this._hsva.a = 1;\n this._adapter.toggleOpacityControls(this._allowOpacity);\n this._render();\n }\n\n private _onTypeClicked(evt: MouseEvent): void {\n if (this._valueType === ColorPickerValueType.HEX) {\n this._valueType = ColorPickerValueType.RGBA;\n } else if (this._valueType === ColorPickerValueType.RGBA) {\n this._valueType = ColorPickerValueType.HSVA;\n } else if (this._valueType === ColorPickerValueType.HSVA) {\n this._valueType = ColorPickerValueType.HEX;\n }\n\n this._adapter.setActiveValueType(this._valueType);\n this._adapter.focusValueInput(this._valueType);\n }\n\n private _onHexInputChanged(): void {\n const value = this._adapter.getHexInputValue();\n if (isValidHex(value)) {\n this.value = value;\n this._triggerChangeEvent('input', 'hex');\n }\n }\n\n private _onRgbaInputChanged(): void {\n const value = this._adapter.getRgbaInputValue();\n if (isValidRGBA(value)) {\n this.value = rgbaToHex(value);\n this._triggerChangeEvent('input', 'rgba');\n }\n }\n\n private _onHsvaInputChanged(): void {\n const value = this._adapter.getHsvaInputValue();\n if (isValidHSVA(value)) {\n this.value = rgbaToHex(hsvaToRgba(value));\n this._triggerChangeEvent('input', 'hsva');\n }\n }\n\n private _setColorFromHex(): void {\n this._rgba = hexToRgba(this._hex);\n this._hsva = rgbaToHsva(this._rgba);\n\n if (this._initialized) {\n this._gradientSlider.setValue(this._hsva.s, this._hsva.v);\n this._hueSlider.setValue(parseFloat((this._hsva.h / 360).toFixed(2)));\n this._opacitySlider.setValue(this._hsva.a);\n this._render();\n }\n }\n\n private _onGradientSliderChanged(x: number, y: number): void {\n this._hsva.s = x;\n this._hsva.v = y;\n this._syncColors();\n this._render();\n this._triggerChangeEvent('slider', 'gradient');\n }\n\n private _onHueSliderChanged(value: number): void {\n this._hsva.h = parseInt((360 * value).toString(), 10);\n this._syncColors();\n this._setGradientColor();\n this._render();\n this._triggerChangeEvent('slider', 'hue');\n }\n\n private _onOpacitySliderChanged(value: number): void {\n this._hsva.a = value;\n this._syncColors();\n this._render();\n this._triggerChangeEvent('slider', 'opacity');\n }\n\n private _setGradientColor(): void {\n const rgba = hsvaToRgba({ h: this._hsva.h, s: 100, v: 100, a: 1 });\n this._adapter.setGradientColor(`rgb(${rgba.r}, ${rgba.g}, ${rgba.b})`);\n }\n\n private _syncColors(): void {\n this._rgba = hsvaToRgba(this._hsva);\n this._hex = rgbaToHex(this._rgba);\n this._value = this._hex || null;\n }\n\n private _render(): void {\n this._setGradientColor();\n this._adapter.setPreviewColor(formatRgba(this._rgba));\n this._adapter.setHexInputValue(`#${this._hex}`);\n this._adapter.setRgbaInputValue(this._rgba);\n this._adapter.setHsvaInputValue(this._hsva);\n this._adapter.updateA11y(this._hsva.h, Math.round(this._hsva.a * 100));\n }\n\n private _emitChangeEvent(type: ColorPickerChangeEventType, source: ColorPickerChangeEventSource): void {\n const data: IColorPickerChangeEventData = {\n type,\n source,\n hex: formatHex(this._hex, false).replace(/^#/, ''),\n rgba: this._rgba,\n hsva: this._hsva\n };\n if (this._allowOpacity) {\n data.alpha = this._hsva.a;\n }\n this._adapter.emitHostEvent(COLOR_PICKER_CONSTANTS.events.CHANGE, data);\n }\n\n public get value(): string | null | undefined {\n return formatHex(this._hex, false);\n }\n public set value(value: string | null | undefined) {\n if (this._value !== value) {\n this._value = value || DEFAULT_COLOR;\n\n if (!isValidHex(this._value)) {\n throw new Error('Invalid hex value provided.');\n }\n\n this._hex = this._value.replace(/^#/, '');\n this._setColorFromHex();\n this._adapter.setHostAttribute(COLOR_PICKER_CONSTANTS.attributes.VALUE, this._value);\n }\n }\n\n public get rgba(): IRGBA | null | undefined {\n return !!this._rgba ? { ...this._rgba } : null;\n }\n public set rgba(value: IRGBA | null | undefined) {\n if (value) {\n if (isValidRGBA(value)) {\n this.value = rgbaToHex(value);\n }\n } else {\n this.value = null;\n }\n }\n\n public get hsva(): IHSVA | null | undefined {\n return !!this._hsva ? { ...this._hsva } : null;\n }\n public set hsva(value: IHSVA | null | undefined) {\n if (value) {\n if (isValidHSVA(value)) {\n this.value = rgbaToHex(hsvaToRgba(value));\n }\n } else {\n this.value = null;\n }\n }\n\n public get opacity(): number | null | undefined {\n return this._hsva ? this._hsva.a : null;\n }\n public set opacity(value: number | null | undefined) {\n if (this._hsva.a !== value) {\n if (value != null && this._allowOpacity) {\n if (value >= 0 && value <= 1) {\n this._hsva.a = value;\n this._syncColors();\n\n if (this._initialized) {\n this._opacitySlider.setValue(this._hsva.a);\n this._render();\n }\n } else {\n console.warn(`The provided opacity value (${value}) must be between 0 and 1.`);\n }\n }\n }\n }\n\n public get allowOpacity(): boolean {\n return this._allowOpacity;\n }\n public set allowOpacity(value: boolean) {\n this._allowOpacity = value;\n if (this._initialized) {\n this._initializeOpacity();\n }\n }\n\n public get debounceChangeEvent(): boolean {\n return this._debounceChangeEvent;\n }\n public set debounceChangeEvent(value: boolean) {\n if (this._debounceChangeEvent !== value) {\n this._debounceChangeEvent = value;\n if (this._initialized) {\n this._applyChangeEventTrigger();\n }\n }\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconUnfoldMore } from '@tylertech/tyler-icons/standard';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { IconButtonComponent } from '../icon-button';\nimport { TooltipComponent } from '../tooltip';\nimport { ColorPickerAdapter } from './color-picker-adapter';\nimport { COLOR_PICKER_CONSTANTS, IColorPickerChangeEventData, IHSVA, IRGBA } from './color-picker-constants';\nimport { ColorPickerFoundation } from './color-picker-foundation';\n\nconst template = '<template><div class=\\\"forge-color-picker\\\" part=\\\"root\\\"><input type=\\\"color\\\" tabindex=\\\"-1\\\" class=\\\"forge-color-picker__input\\\" spellcheck=\\\"false\\\" autocomplete=\\\"off\\\" aria-label=\\\"Color picker value\\\" part=\\\"input\\\"><div class=\\\"forge-color-picker__container\\\" part=\\\"container\\\"><div class=\\\"forge-color-picker__gradient\\\" tabindex=\\\"0\\\" part=\\\"gradient\\\"><div class=\\\"forge-color-picker__gradient-color\\\" part=\\\"gradient-color\\\"></div><div class=\\\"forge-color-picker__gradient-thumb\\\" part=\\\"gradient-thumb\\\"></div></div><div class=\\\"forge-color-picker__control-preview\\\" part=\\\"controls-preview-container\\\"><div class=\\\"forge-color-picker__controls\\\" part=\\\"controls-container\\\"><div class=\\\"forge-color-picker__slider-control\\\" part=\\\"hue-control-container\\\"><div class=\\\"forge-color-picker__slider forge-color-picker__hue-slider\\\" part=\\\"hue-control-slider\\\"><div class=\\\"forge-color-picker__slider-thumb\\\" id=\\\"forge-color-picker-hue-thumb\\\" part=\\\"hue-control-slider-thumb\\\" tabindex=\\\"0\\\" role=\\\"slider\\\" aria-label=\\\"Change hue\\\" aria-valuemin=\\\"0\\\" aria-valuemax=\\\"360\\\" aria-valuenow=\\\"0\\\" aria-orientation=\\\"horizontal\\\" aria-valuetext=\\\"0\\\"></div></div></div><div class=\\\"forge-color-picker__slider-control\\\" part=\\\"opacity-control-container\\\"><div class=\\\"forge-color-picker__canvas\\\" part=\\\"opacity-control-canvas\\\"><div class=\\\"forge-color-picker__slider forge-color-picker__opacity-slider\\\" part=\\\"opacity-control-slider\\\"><div class=\\\"forge-color-picker__slider-thumb\\\" id=\\\"forge-color-picker-opacity-thumb\\\" part=\\\"opacity-control-slider-thumb\\\" tabindex=\\\"0\\\" role=\\\"slider\\\" aria-label=\\\"Change opacity\\\" aria-valuemin=\\\"0\\\" aria-valuemax=\\\"100\\\" aria-valuenow=\\\"0\\\" aria-orientation=\\\"horizontal\\\" aria-valuetext=\\\"0\\\"></div></div></div></div></div><div class=\\\"forge-color-picker__color-preview-container forge-color-picker__canvas\\\" part=\\\"color-preview-container\\\"><div class=\\\"forge-color-picker__color-preview\\\" part=\\\"color-preview\\\"></div></div></div><div class=\\\"forge-color-picker__value\\\" part=\\\"value-container\\\"><div class=\\\"forge-color-picker__color-types\\\" part=\\\"types-container\\\"><div class=\\\"forge-color-picker__color-hex\\\" part=\\\"hex-type-container\\\"><div part=\\\"hex-type-label-wrapper\\\"><label for=\\\"forge-color-picker-hex-input\\\" part=\\\"hex-label\\\">HEX</label></div><input type=\\\"text\\\" id=\\\"forge-color-picker-hex-input\\\" part=\\\"hex-input\\\" style=\\\"width: 88px;\\\" maxlength=\\\"9\\\" spellcheck=\\\"false\\\" autocomplete=\\\"off\\\" aria-label=\\\"HEX value\\\"></div><div class=\\\"forge-color-picker__color-rgba\\\" part=\\\"rgba-type-container\\\"><div part=\\\"rgba-type-wrapper-r\\\"><label for=\\\"forge-color-picker-rgba-r-input\\\" part=\\\"rgba-type-label-r\\\">R</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-rgba-r-input\\\" part=\\\"rgba-type-input-r\\\" min=\\\"0\\\" max=\\\"255\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Red\\\"></div><div part=\\\"rgba-type-wrapper-g\\\"><label for=\\\"forge-color-picker-rgba-g-input\\\" part=\\\"rgba-type-label-g\\\">G</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-rgba-g-input\\\" part=\\\"rgba-type-input-g\\\" min=\\\"0\\\" max=\\\"255\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Green\\\"></div><div part=\\\"rgba-type-wrapper-b\\\"><label for=\\\"forge-color-picker-rgba-b-input\\\" part=\\\"rgba-type-label-b\\\">B</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-rgba-b-input\\\" part=\\\"rgba-type-input-b\\\" min=\\\"0\\\" max=\\\"255\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Blue\\\"></div><div part=\\\"rgba-type-wrapper-a\\\"><label for=\\\"forge-color-picker-rgba-a-input\\\" part=\\\"rgba-type-label-a\\\">A</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-rgba-a-input\\\" part=\\\"rgba-type-input-a\\\" min=\\\"0\\\" max=\\\"1\\\" step=\\\"0.1\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Alpha\\\"></div></div><div class=\\\"forge-color-picker__color-hsva\\\" part=\\\"hsva-type-container\\\"><div part=\\\"hsva-type-wrapper-h\\\"><label for=\\\"forge-color-picker-hsva-h-input\\\" part=\\\"hsva-type-label-h\\\">H</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-hsva-h-input\\\" part=\\\"hsva-type-input-h\\\" min=\\\"0\\\" max=\\\"360\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Hue\\\"></div><div part=\\\"hsva-type-wrapper-s\\\"><label for=\\\"forge-color-picker-hsva-s-input\\\" part=\\\"hsva-type-label-s\\\">S</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-hsva-s-input\\\" part=\\\"hsva-type-input-s\\\" min=\\\"0\\\" max=\\\"100\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Saturation\\\"></div><div part=\\\"hsva-type-wrapper-v\\\"><label for=\\\"forge-color-picker-hsva-v-input\\\" part=\\\"hsva-type-label-v\\\">V</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-hsva-v-input\\\" part=\\\"hsva-type-input-v\\\" min=\\\"0\\\" max=\\\"100\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Value\\\"></div><div part=\\\"hsva-type-wrapper-a\\\"><label for=\\\"forge-color-picker-hsva-a-input\\\" part=\\\"hsva-type-label-a\\\">A</label> <input type=\\\"number\\\" id=\\\"forge-color-picker-hsva-a-input\\\" part=\\\"hsva-type-input-a\\\" min=\\\"0\\\" max=\\\"1\\\" step=\\\"0.1\\\" maxlength=\\\"3\\\" autocomplete=\\\"off\\\" aria-label=\\\"Alpha\\\"></div></div></div><div class=\\\"forge-color-picker__type-button\\\" part=\\\"type-container\\\"><forge-icon-button part=\\\"type-button\\\" id=\\\"forge-color-picker-type-button\\\" aria-labelledby=\\\"type-button-tooltip\\\" part=\\\"type-button-element\\\"><forge-icon name=\\\"unfold_more\\\" part=\\\"type-button-icon\\\"></forge-icon></forge-icon-button><forge-tooltip placement=\\\"bottom\\\" id=\\\"type-button-tooltip\\\">Change color format</forge-tooltip></div></div></div></div></template>';\nconst styles = '*{-webkit-box-sizing:border-box;box-sizing:border-box}.forge-color-picker{width:var(--forge-color-picker-width,272px);position:relative;display:inline-block;overflow:hidden}.forge-color-picker__input{height:1px;opacity:0;position:absolute;width:1px}.forge-color-picker__gradient{position:relative;outline:0}.forge-color-picker__gradient-color{background:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(0,0,0,0)),to(#000)),-webkit-gradient(linear,left top,right top,color-stop(0,#fff),to(rgba(255,255,255,0)));background:linear-gradient(to bottom,rgba(0,0,0,0) 0,#000 100%),linear-gradient(to right,#fff 0,rgba(255,255,255,0) 100%);height:152px}.forge-color-picker__gradient-thumb{border:1px solid #fff;border-radius:50%;cursor:pointer;display:inline-block;height:10px;width:10px;margin-left:-5px;margin-top:-5px;position:absolute;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:left .2s cubic-bezier(.25, .8, .25, 1) 0s,top .2s cubic-bezier(.25, .8, .25, 1) 0s;transition:left .2s cubic-bezier(.25, .8, .25, 1) 0s,top .2s cubic-bezier(.25, .8, .25, 1) 0s}.forge-color-picker__control-preview{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;width:100%;padding:16px}.forge-color-picker__controls{-webkit-box-flex:1;flex:1;margin-right:16px}.forge-color-picker__slider{position:relative}.forge-color-picker__slider-thumb{outline:0;height:16px;width:16px;background-color:#fff;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3);position:absolute;border-radius:50%;top:calc(50% - 8px);margin-left:-8px;-webkit-transition:left .4s cubic-bezier(.25, .8, .25, 1);transition:left .4s cubic-bezier(.25, .8, .25, 1)}.forge-color-picker__slider-thumb--active{-webkit-transition:none;transition:none}.forge-color-picker__slider-thumb:hover{cursor:pointer}.forge-color-picker__color-preview-container{border-radius:50%;-webkit-box-shadow:0 0 2px 0 rgba(0,0,0,.54) inset,0 0 2px 0 rgba(0,0,0,.54);box-shadow:0 0 2px 0 rgba(0,0,0,.54) inset,0 0 2px 0 rgba(0,0,0,.54);overflow:hidden}.forge-color-picker__color-preview{height:32px;width:32px;-webkit-transition:background-color .2s cubic-bezier(.25, .8, .25, 1);transition:background-color .2s cubic-bezier(.25, .8, .25, 1)}.forge-color-picker__value{display:-webkit-box;display:flex;width:100%;-webkit-box-align:center;align-items:center;padding:0 8px 16px 16px;font-size:12px}.forge-color-picker__color-types{-webkit-box-flex:1;flex:1}.forge-color-picker__color-types label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label2-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));font-size:var(--forge-typography-label2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .8125)));font-weight:var(--forge-typography-label2-font-weight,400);line-height:var(--forge-typography-label2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label2-letter-spacing, .0096153846em);text-transform:var(--forge-typography-label2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-label2-text-decoration,inherit);text-decoration:var(--forge-typography-label2-text-decoration,inherit);color:var(--forge-theme-text-medium,rgba(0,0,0,.6))}.forge-color-picker__color-types input{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label2-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));font-size:var(--forge-typography-label2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .8125)));font-weight:var(--forge-typography-label2-font-weight,400);line-height:var(--forge-typography-label2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label2-letter-spacing, .0096153846em);text-transform:var(--forge-typography-label2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-label2-text-decoration,inherit);text-decoration:var(--forge-typography-label2-text-decoration,inherit)}.forge-color-picker__color-types input[type=number],.forge-color-picker__color-types input[type=text]{border-color:var(--forge-theme-outline,#e0e0e0);color:var(--forge-theme-on-surface,#000);background-color:transparent;padding:4px 8px;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;-webkit-transition-property:border-colo,-webkit-box-shadow;transition-property:border-colo,-webkit-box-shadow;transition-property:box-shadow,border-colo;transition-property:box-shadow,border-colo,-webkit-box-shadow;-webkit-transition-duration:var(--forge-animation-duration-short4, 200ms);transition-duration:var(--forge-animation-duration-short4, 200ms);-webkit-transition-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));transition-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}.forge-color-picker__color-types input[type=number]:hover,.forge-color-picker__color-types input[type=text]:hover{border-color:var(--forge-theme-text-high,rgba(0,0,0,.87))}.forge-color-picker__color-types input[type=number]:focus,.forge-color-picker__color-types input[type=text]:focus{border-color:var(--forge-theme-primary,#3f51b5);-webkit-box-shadow:0 0 0 1px inset var(--forge-theme-primary,#3f51b5);box-shadow:0 0 0 1px inset var(--forge-theme-primary,#3f51b5)}.forge-color-picker__color-types input[type=number]{text-align:center;-moz-appearance:textfield}.forge-color-picker__color-types input[type=number]::-webkit-inner-spin-button,.forge-color-picker__color-types input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.forge-color-picker__color-hex{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-pack:center;justify-content:center;-webkit-box-align:space-between;align-items:space-between}.forge-color-picker__canvas{background-image:url(\\\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iNnB4IiBoZWlnaHQ9IjZweCIgdmlld0JveD0iMCAwIDYgNiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDwhLS0gR2VuZXJhdG9yOiBTa2V0Y2ggNTAgKDU0OTgzKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5Hcm91cCA5PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Ikdyb3VwLTkiPgogICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTExIiBmaWxsPSIjRTBFMEUwIiB4PSIwIiB5PSIwIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTEtQ29weS0yIiBmaWxsPSIjRkZGRkZGIiB4PSIwIiB5PSIzIiB3aWR0aD0iMyIgaGVpZ2h0PSIzIj48L3JlY3Q+CiAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtMTEtQ29weSIgZmlsbD0iI0ZGRkZGRiIgeD0iMyIgeT0iMCIgd2lkdGg9IjMiIGhlaWdodD0iMyI+PC9yZWN0PgogICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLTExLUNvcHktMyIgZmlsbD0iI0UwRTBFMCIgeD0iMyIgeT0iMyIgd2lkdGg9IjMiIGhlaWdodD0iMyI+PC9yZWN0PgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+\\\")}.forge-color-picker__hue-slider{height:8px;background:-webkit-gradient(linear,left top,right top,color-stop(0,red),color-stop(16%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(84%,#f0f),to(#ff0004));background:linear-gradient(to right,red 0,#ff0 16%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 84%,#ff0004 100%)}.forge-color-picker__opacity-slider{height:8px;margin-top:16px;background:-webkit-gradient(linear,left top,right top,from(rgba(255,0,0,0)),to(red));background:linear-gradient(to right,rgba(255,0,0,0) 0,red 100%)}.forge-color-picker__color-hsva,.forge-color-picker__color-rgba{display:-webkit-box;display:flex}.forge-color-picker__color-hsva div,.forge-color-picker__color-rgba div{margin-right:4px}.forge-color-picker__color-hsva label,.forge-color-picker__color-rgba label{display:block;text-align:center}.forge-color-picker__color-hsva input,.forge-color-picker__color-rgba input{width:44px}:host{display:inline-block}:host([hidden]){display:none}';\nexport interface IColorPickerComponent extends IBaseComponent {\n value: string | null | undefined;\n rgba: IRGBA | null | undefined;\n hsva: IHSVA | null | undefined;\n opacity: number | null | undefined;\n allowOpacity: boolean;\n debounceChangeEvent: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-color-picker': IColorPickerComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-color-picker-change': CustomEvent<IColorPickerChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-color-picker>` custom element.\n * \n * @tag forge-color-picker\n */\n@CustomElement({\n name: COLOR_PICKER_CONSTANTS.elementName,\n dependencies: [\n IconButtonComponent,\n TooltipComponent,\n IconComponent\n ]\n})\nexport class ColorPickerComponent extends BaseComponent implements IColorPickerComponent {\n public static get observedAttributes(): string[] {\n return [\n COLOR_PICKER_CONSTANTS.attributes.VALUE,\n COLOR_PICKER_CONSTANTS.attributes.ALLOW_OPACITY,\n COLOR_PICKER_CONSTANTS.attributes.DEBOUNCE_CHANGE_EVENT\n ];\n }\n\n private _foundation: ColorPickerFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconUnfoldMore);\n attachShadowTemplate(this, template, styles);\n this._foundation = new ColorPickerFoundation(new ColorPickerAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case COLOR_PICKER_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n case COLOR_PICKER_CONSTANTS.attributes.ALLOW_OPACITY:\n this.allowOpacity = coerceBoolean(newValue);\n break;\n case COLOR_PICKER_CONSTANTS.attributes.DEBOUNCE_CHANGE_EVENT:\n this.debounceChangeEvent = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets/sets the value using hex format only. */\n @FoundationProperty()\n public declare value: string | null | undefined;\n\n /** Gets/sets the value using rgba format. */\n @FoundationProperty()\n public declare rgba: IRGBA | null | undefined;\n\n /** Gets/sets the value using hsva format. */\n @FoundationProperty()\n public declare hsva: IHSVA | null | undefined;\n\n /** Gets/sets the opacity value, if `allowOpacity` is true. */\n @FoundationProperty()\n public declare opacity: number | null | undefined;\n\n /** Gets/sets whether opacity is displayed and allowed be to changed. */\n @FoundationProperty()\n public declare allowOpacity: boolean;\n\n /** Gets/sets whether change event has a debounce applied to avoid successive updates. Defaults to `false`. */\n @FoundationProperty()\n public declare debounceChangeEvent: boolean;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { ColorPickerComponent } from './color-picker';\n\nexport * from './color-picker-adapter';\nexport * from './color-picker-constants';\nexport * from './color-picker-foundation';\nexport * from './color-picker';\n\nexport function defineColorPickerComponent(): void {\n defineCustomElement(ColorPickerComponent);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "events", "numbers", "COLOR_PICKER_CONSTANTS", "DEFAULT_COLOR", "ColorPickerValueType", "ColorPickerAdapter", "BaseAdapter", "component", "getShadowElement", "COLOR_PICKER_CONSTANTS", "rgbaStyle", "value", "rgba", "hsva", "hueValue", "opacityValue", "type", "listener", "visible", "relativeCoords", "absX", "absY", "element", "bounds", "x", "y", "hsvaToRgba", "hsva", "r", "g", "b", "h", "s", "v", "i", "f", "p", "q", "t", "rgbaToHex", "rgba", "toHex", "hexToRgba", "hex", "isShorthand", "hexR", "hexG", "hexB", "hexA", "formatRgba", "formatHex", "value", "allowOpacity", "rgbaToHsva", "max", "min", "d", "isValidHex", "isValidRGBA", "isNumber", "isValidHSVA", "ColorPickerGradientSlider", "_rootElement", "_changeListener", "evt", "saturation", "value", "bounds", "COLOR_PICKER_CONSTANTS", "isEnterKey", "isArrowLeftKey", "isArrowUpKey", "isArrowRightKey", "isArrowDownKey", "isMouseEvent", "x", "y", "coords", "absX", "absY", "relativeCoords", "xPercent", "yPercent", "ColorPickerSlider", "_rootElement", "_changeListener", "evt", "value", "COLOR_PICKER_CONSTANTS", "isArrowLeftKey", "isArrowRightKey", "isHomeKey", "isEndKey", "x", "absX", "coords", "relativeCoords", "percent", "ColorPickerFoundation", "_adapter", "DEFAULT_COLOR", "x", "y", "value", "evt", "ColorPickerGradientSlider", "ColorPickerSlider", "debounce", "type", "source", "COLOR_PICKER_CONSTANTS", "isValidHex", "isValidRGBA", "rgbaToHex", "isValidHSVA", "hsvaToRgba", "hexToRgba", "rgbaToHsva", "rgba", "formatRgba", "data", "formatHex", "__spreadValues", "template", "styles", "ColorPickerComponent", "BaseComponent", "IconRegistry", "tylIconUnfoldMore", "attachShadowTemplate", "ColorPickerFoundation", "ColorPickerAdapter", "COLOR_PICKER_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "IconButtonComponent", "TooltipComponent", "IconComponent", "defineColorPickerComponent", "defineCustomElement", "ColorPickerComponent"]
|
|
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 w}from"./chunk.LEVFMI2Q.js";import{d as P}from"./chunk.R2CJMM2F.js";import{p as R}from"./chunk.XT6RPXTM.js";import{a as I}from"./chunk.NVUMRW44.js";import{a as F}from"./chunk.OLFOVKQG.js";import{a as M,b as N}from"./chunk.5OT53ZJM.js";import{a as S,e as k,f as x}from"./chunk.LNTTU2GL.js";import{a as O,c as y,g as m,u as A}from"./chunk.L4QSPQDE.js";import{b as T,k as L}from"./chunk.J2M2MXP2.js";import{d as _}from"./chunk.M3QDAYD2.js";var E=`${N}calendar-menu`,G={ANIMATION_TYPE:"animation-type",DATA_ANIMATION:"data-animation",DATA_VALUE:"data-value",POPOVER_CONTEXT:"forge-popover-context",PREVENT_FOCUS:"prevent-focus"},c={BACKDROP:"forge-calendar-menu__backdrop",CLOSING:"forge-calendar-menu--closing",GRID:"forge-calendar-menu__grid",GRID_ITEM:"forge-calendar-menu__item--grid",GRID_FOUR_COL:"forge-calendar-menu__grid--four-col",GRID_THREE_COL:"forge-calendar-menu__grid--three-col",ITEM:"forge-calendar-menu__item",ITEM_FOCUSED:"forge-calendar-menu__item--focused",ITEM_SELECTED:"forge-calendar-menu__item--selected",LIST:"forge-calendar-menu__list",LIST_ITEM:"forge-calendar-menu__item--list",LIST_WRAPPER:"forge-calendar-menu__list__wrapper",OPEN:"forge-calendar-menu--open",REPLACING_VIEW:"forge-calendar-menu--replacing-view",SLIDE_LEFT:"forge-calendar-menu--slide-left",SLIDE_RIGHT:"forge-calendar-menu--slide-right",VIEW:"forge-calendar-menu__view"},C={SCROLL_SPY_BOTTOM:"scroll-spy-bottom",SCROLL_SPY_TOP:"scroll-spy-top"},U={ITEM:"menu-item",ITEM_BUTTON:"menu-item-button",ITEM_CONTENT:"menu-item-content",MENU:"menu"},V={CONTAINER:".forge-calendar-menu",FOCUSED:`.${c.ITEM_FOCUSED}`,GRID:`.${c.GRID}`,ITEM:`.${c.ITEM}`,LIST:`.${c.LIST}`,LIST_WRAPPER:`.${c.LIST_WRAPPER}`,SCROLL_SPY_BOTTOM:`#${C.SCROLL_SPY_BOTTOM}`,SCROLL_SPY_TOP:`#${C.SCROLL_SPY_TOP}`,SELECTED:`.${c.ITEM_SELECTED}`,VIEW:`.${c.VIEW}`},B={FOCUS_CHANGE:`${E}-focus-change`,SELECT:`${E}-select`},Y={FOUR_COL:4,LARGE_ITEM_SET:13,LIST_SLICE_SIZE:20,THREE_COL:3},n={elementName:E,attributes:G,classes:c,ids:C,parts:U,selectors:V,events:B,numbers:Y};function h(a){let t=document.createElement("div");t.setAttribute("part",n.parts.MENU),t.classList.add(n.classes.VIEW,n.classes.GRID);let e;return a.length>12?(t.classList.add(n.classes.GRID_FOUR_COL),e=D(a)):(t.classList.add(n.classes.GRID_THREE_COL),e=D(a)),e.forEach(i=>t.appendChild(i)),t}function D(a){return a.map(t=>{let e=document.createElement("div");e.classList.add(n.classes.ITEM,n.classes.GRID_ITEM),e.innerText=t.label,e.setAttribute("role","button"),e.setAttribute("part",n.parts.ITEM),e.setAttribute("tabindex","-1"),e.setAttribute(n.attributes.DATA_VALUE,t.value.toString()),t.selected&&(e.classList.add(n.classes.ITEM_SELECTED),e.setAttribute("aria-current","true")),t.disabled&&e.setAttribute("disabled","true");let i=document.createElement("forge-state-layer");e.appendChild(i);let o=document.createElement("forge-focus-indicator");return o.inward=!0,e.appendChild(o),e})}function X(a){let t=document.createElement("div"),e=document.createElement("div");return t.classList.add(n.classes.VIEW,n.classes.LIST_WRAPPER),e.classList.add(n.classes.LIST),e.setAttribute("role","list"),e.appendChild(H(n.ids.SCROLL_SPY_TOP)),b(a).forEach(i=>e.appendChild(i)),e.appendChild(H(n.ids.SCROLL_SPY_BOTTOM)),t.appendChild(e),t}function b(a){return a.map(t=>{let e=document.createElement("div");e.innerText=t.label,e.classList.add(n.classes.ITEM,n.classes.LIST_ITEM),e.setAttribute("part",n.parts.ITEM),e.setAttribute("tabindex","-1"),e.setAttribute("role","listitem"),e.setAttribute(n.attributes.DATA_VALUE,t.value.toString()),t.selected&&(e.classList.toggle(n.classes.ITEM_SELECTED,!0),e.setAttribute("aria-current","true")),t.disabled&&e.setAttribute("disabled","true");let i=document.createElement("forge-state-layer");e.appendChild(i);let o=document.createElement("forge-focus-indicator");return o.inward=!0,e.appendChild(o),e})}function H(a){let t=document.createElement("div");return t.id=a,t.setAttribute("aria-hidden","true"),t}function u(a){for(;a.childNodes.length>1;)a.firstChild&&a.removeChild(a.firstChild)}var g=class extends F{constructor(e){super(e);this.component=e;this._container=x(e,n.selectors.CONTAINER)}registerClickListener(e){this._container.addEventListener("click",e)}unregisterClickListener(e){this._container.removeEventListener("click",e)}registerIntersectionObserver(e){let i=this._container.querySelector(n.selectors.LIST_WRAPPER);if(!i)return;let o={root:i};this._intersectionObserver=new IntersectionObserver(e,o);let r=this._container.querySelector(n.selectors.SCROLL_SPY_BOTTOM),s=this._container.querySelector(n.selectors.SCROLL_SPY_TOP);r&&this._intersectionObserver.observe(r),s&&this._intersectionObserver.observe(s)}unregisterIntersectionObserver(){this._intersectionObserver&&(this._intersectionObserver.disconnect(),this._intersectionObserver=void 0)}setAnimationType(e){this._container.setAttribute(n.attributes.DATA_ANIMATION,e)}setClosed(){this._container.classList.remove(n.classes.OPEN),this._container.classList.add(n.classes.CLOSING),m(this._container,n.classes.CLOSING,!0).then(()=>{y(this._container),this.toggleHostAttribute("hidden",!0)})}setOpenAsGrid(e,i,o,r,s){let l=h(e);s&&m(this._container,n.classes.REPLACING_VIEW,!0).then(()=>{u(this._container),this.setFocusAtIndex(i,o,r)}),this._container.appendChild(l),this.toggleHostAttribute("hidden",!1),this._container.classList.add(n.classes.OPEN),s||this.setFocusAtIndex(i,o,r)}setOpenAsList(e,i,o,r,s){let l=X(e);s&&m(this._container,n.classes.REPLACING_VIEW,!0).then(()=>{u(this._container),this.setFocusAtIndex(i,o,r)}),this._container.appendChild(l),this.toggleHostAttribute("hidden",!1),this._container.classList.add(n.classes.OPEN),this._scrollItemIntoView("selected"),s||this.setFocusAtIndex(i,o,r)}appendListItemsToStart(e){let i=this._container.querySelector(n.selectors.LIST_WRAPPER),o=this._container.querySelector(n.selectors.LIST),r=o==null?void 0:o.querySelector(n.selectors.ITEM);if(i&&o&&r){let s=i.scrollTop,l=i.scrollHeight-i.clientHeight;b(e).forEach(f=>{o.insertBefore(f,r)});let p=i.scrollHeight-i.clientHeight;i.scrollTop=s+(p-l)}}appendListItemsToEnd(e){let i=this._container.querySelector(n.selectors.LIST),o=this._container.querySelector(n.selectors.SCROLL_SPY_BOTTOM);i&&o&&b(e).forEach(r=>{i.insertBefore(r,o)})}animateInFromLeft(e,i){m(this._container,n.classes.SLIDE_RIGHT,!0).then(()=>{u(this._container),i&&i()});let o=h(e);this._container.appendChild(o)}animateInFromRight(e,i){m(this._container,n.classes.SLIDE_LEFT,!0).then(()=>{u(this._container),i&&i()});let o=h(e);this._container.appendChild(o)}setFocusAtIndex(e,i,o){var p;let r=this._container.querySelector(n.selectors.FOCUSED);r==null||r.classList.remove(n.classes.ITEM_FOCUSED),r==null||r.setAttribute("tabindex","-1");let s=r==null?void 0:r.querySelector("forge-focus-indicator");s&&(s.active=!1);let l=(p=this._container.querySelectorAll(n.selectors.ITEM))==null?void 0:p[e];if(l){if(l.classList.add(n.classes.ITEM_FOCUSED),l.setAttribute("tabindex",o?"-1":"0"),i&&!o)l.focus();else if(o){let f=l.querySelector("forge-focus-indicator");f&&(f.active=!0)}this._scrollItemIntoView("focused")}}_scrollItemIntoView(e){let i=this._container.querySelector(n.selectors.LIST),o=i==null?void 0:i.querySelector(e==="selected"?n.selectors.SELECTED:n.selectors.FOCUSED);i&&o&&A(i.parentElement,o,e==="selected"?"auto":"smooth",e==="selected"?"center":"nearest")}};var v=class{constructor(t){this._adapter=t;this._animationType="scale";this._columnCount=3;this._focusedIndex=0;this._list=!1;this._open=!1;this._options=[];this._preventFocus=!1;this._sliceEnd=-1;this._sliceStart=-1;this._clickListener=e=>this._onClick(e),this._intersectionObserverCallback=e=>this._onIntersection(e)}initialize(){this._applyAnimationType(),this._applyPreventFocus(),this._adapter.setHostAttribute("exportparts",Object.values(n.parts).join(", ")),this._adapter.toggleHostAttribute("hidden",!0),this._adapter.registerClickListener(this._clickListener)}disconnect(){this._adapter.unregisterClickListener(this._clickListener),this._adapter.unregisterIntersectionObserver()}openAsGrid(t,e){this._list=!1,this._options=t,this._focusedIndex=0,this._setColumnCount(),this._adapter.setOpenAsGrid(t,this._focusedIndex,e,this._preventFocus,this._open),this._setGridListeners(),this._open=!0,this._emitFocusChangeEvent()}openAsList(t,e){this._list=!0,this._options=t;let i=this._getOptionSliceIncludingSelected();this._focusedIndex=Math.max(t.findIndex(o=>o.selected),this._sliceStart),this._adapter.setOpenAsList(i,this._focusedIndex-this._sliceStart,e,this._preventFocus,this._open),this._setListListeners(),this._open=!0,this._emitFocusChangeEvent()}close(){this._open=!1,this._options=[],this._adapter.setClosed()}animateIn(t,e,i){let o=()=>{this._setFocusFromStoredIndex(i)};e==="left"?this._adapter.animateInFromLeft(t,o):this._adapter.animateInFromRight(t,o),this._options=t,this._setColumnCount()}selectFocusedItem(){var t;this._adapter.emitHostEvent(n.events.SELECT,(t=this._options[this._focusedIndex])==null?void 0:t.value)}moveFocusBackward(){if(this._list)return!0;let t=this._focusedIndex-1,e=t>=0&&t%this._columnCount!==this._columnCount-1;return this._focusedIndexAfterAnimation=e?void 0:t+this._columnCount,this._tryMoveFocus(t,e)}moveFocusDown(){if(this._list){let t=Math.min(this._focusedIndex+=1,this._options.length-1);this._tryMoveFocus(t,!0)}else{let t=this._focusedIndex+this._columnCount,e=t<this._options.length;this._focusedIndexAfterAnimation=e?void 0:t%this._columnCount,this._tryMoveFocus(t,e)}}moveFocusForward(){if(this._list)return!0;let t=this._focusedIndex+1,e=t<this._options.length&&t%this._columnCount!==0;return this._focusedIndexAfterAnimation=e?void 0:t-this._columnCount,this._tryMoveFocus(t,e)}moveFocusUp(){if(this._list){let t=Math.max(this._focusedIndex-=1,0);this._tryMoveFocus(t,!0)}else{let t=this._focusedIndex-this._columnCount,e=t>=0;this._focusedIndexAfterAnimation=e?void 0:this._options.length+t,this._tryMoveFocus(t,e)}}_tryMoveFocus(t,e){var i;return e&&!((i=this._options[t])!=null&&i.disabled)&&(this._focusedIndex=t,this._adapter.setFocusAtIndex(this._list?this._focusedIndex-this._sliceStart:this._focusedIndex,!0,this._preventFocus),this._emitFocusChangeEvent()),e}_setFocusFromStoredIndex(t){var e,i;this._focusedIndexAfterAnimation!==void 0&&(this._options[this._focusedIndexAfterAnimation]&&!((e=this._options[this._focusedIndexAfterAnimation])!=null&&e.disabled)?this._focusedIndex=this._focusedIndexAfterAnimation:(i=this._options[0])!=null&&i.disabled?this._focusedIndex=this._options.findIndex(o=>!o.disabled):this._focusedIndex=this._options.length-this._options.slice().reverse().findIndex(o=>!o.disabled)-1,this._focusedIndexAfterAnimation=void 0,this._adapter.setFocusAtIndex(this._focusedIndex,t,this._preventFocus),this._emitFocusChangeEvent())}_onClick(t){let e=w(t).find(o=>o.classList&&o.classList.contains(n.classes.ITEM)),i=e==null?void 0:e.getAttribute(n.attributes.DATA_VALUE);T(i)&&this._adapter.emitHostEvent(n.events.SELECT,+i)}_onIntersection(t){this._sliceStart>0&&t.some(e=>e.target.id===n.ids.SCROLL_SPY_TOP&&e.isIntersecting)&&this._adapter.appendListItemsToStart(this._getPreviousOptionsSlice()),this._sliceEnd<this._options.length&&t.some(e=>e.target.id===n.ids.SCROLL_SPY_BOTTOM&&e.isIntersecting)&&this._adapter.appendListItemsToEnd(this._getNextOptionsSlice())}_setColumnCount(){this._columnCount=this._options.length>=n.numbers.LARGE_ITEM_SET?n.numbers.FOUR_COL:n.numbers.THREE_COL}_emitFocusChangeEvent(){var t;this._adapter.emitHostEvent(n.events.FOCUS_CHANGE,(t=this._options[this._focusedIndex])==null?void 0:t.value)}_setGridListeners(){this._adapter.unregisterIntersectionObserver()}_setListListeners(){this._adapter.unregisterIntersectionObserver(),this._adapter.registerIntersectionObserver(this._intersectionObserverCallback)}_getOptionSliceIncludingSelected(){if(this._options.length<=n.numbers.LIST_SLICE_SIZE)return this._sliceStart=0,this._sliceEnd=this._options.length,this._options.slice();let t=Math.max(this._options.findIndex(o=>o.selected),0),e=Math.max(Math.floor(t-n.numbers.LIST_SLICE_SIZE/2),0),i=e+n.numbers.LIST_SLICE_SIZE;return i>this._options.length&&(e=this._options.length-1-n.numbers.LIST_SLICE_SIZE,i=this._options.length),this._sliceStart=e,this._sliceEnd=i,this._options.slice(this._sliceStart,this._sliceEnd)}_getNextOptionsSlice(){let t=Math.min(this._sliceEnd+n.numbers.LIST_SLICE_SIZE,this._options.length),e=this._options.slice(this._sliceEnd,t);return this._sliceEnd=t,e}_getPreviousOptionsSlice(){let t=Math.max(this._sliceStart-n.numbers.LIST_SLICE_SIZE,0),e=this._options.slice(t,this._sliceStart);return this._sliceStart=t,e}_applyAnimationType(){this._adapter.setHostAttribute(n.attributes.ANIMATION_TYPE,this._animationType),this._adapter.setAnimationType(this._animationType)}_applyPreventFocus(){this._adapter.toggleHostAttribute(n.attributes.PREVENT_FOCUS,this._preventFocus),this._adapter.setFocusAtIndex(this._focusedIndex,!1,this._preventFocus)}get animationType(){return this._animationType}set animationType(t){this._animationType!==t&&(this._animationType=t,this._applyAnimationType())}get preventFocus(){return this._preventFocus}set preventFocus(t){this._preventFocus!==t&&(this._preventFocus=t,this._applyPreventFocus())}};var q='<template><div class="forge-calendar-menu" part="root"></div></template>',W='.forge-calendar-menu{background-color:var(--forge-theme-surface,#fff);position:relative;height:100%;width:100%;overflow:hidden}.forge-calendar-menu__view{position:absolute;top:0;left:0;height:100%;width:100%;background-color:inherit}.forge-calendar-menu__grid{max-height:var(--forge-calendar-menu-max-height,320px);display:grid;gap:16px;justify-items:center;-webkit-box-align:center;align-items:center;padding:8px;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-calendar-menu__grid--three-col{grid-template-columns:repeat(3,1fr)}.forge-calendar-menu__grid--four-col{grid-template-columns:repeat(4,1fr)}.forge-calendar-menu__list{position:relative;background-color:inherit}.forge-calendar-menu__list__wrapper{position:relative;height:100%;overflow:auto}.forge-calendar-menu__list__wrapper::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,var(--forge-shape-full,9999px));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-calendar-menu__item--grid{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-body1-text-decoration,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;width:100%;height:100%;border-radius:4px;overflow:hidden;font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.forge-calendar-menu__item--grid:not([disabled]){border:1px solid var(--forge-theme-outline,#e0e0e0);cursor:pointer}.forge-calendar-menu__item--grid[disabled]{color:var(--forge-theme-text-low,rgba(0,0,0,.38))}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected{background-color:var(--forge-theme-primary,#3f51b5);color:var(--forge-theme-on-primary,#fff)}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected forge-focus-indicator{--forge-focus-indicator-color:var(--forge-theme-primary-container, #d1d5ed)}.forge-calendar-menu__item--list{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;margin:0 4px;width:calc(100% - 8px);height:48px;border-radius:4px;overflow:hidden;text-align:center;cursor:pointer;position:relative}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected{background-color:var(--forge-theme-primary,#3f51b5);color:var(--forge-theme-on-primary,#fff)}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected forge-focus-indicator{--forge-focus-indicator-color:var(--forge-theme-primary-container)}.forge-calendar-menu__item--focused,.forge-calendar-menu__item:focus{outline:0}.forge-calendar-menu--open{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:scale-open;animation-name:scale-open;-webkit-transform-origin:top center;transform-origin:top center}.forge-calendar-menu--open[data-animation=fade]{-webkit-animation-name:fade-in;animation-name:fade-in}.forge-calendar-menu--open[data-animation=none]{-webkit-animation-duration:1ms;animation-duration:1ms}@media (prefers-reduced-motion){.forge-calendar-menu--open{-webkit-animation-name:fade-in;animation-name:fade-in}}.forge-calendar-menu--closing{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:scale-closed;animation-name:scale-closed;-webkit-transform-origin:top center;transform-origin:top center}.forge-calendar-menu--closing[data-animation=fade]{-webkit-animation-name:fade-out;animation-name:fade-out}.forge-calendar-menu--closing[data-animation=none]{-webkit-animation-duration:1ms;animation-duration:1ms}@media (prefers-reduced-motion){.forge-calendar-menu--closing{-webkit-animation-name:fade-out;animation-name:fade-out}}.forge-calendar-menu--slide-right .forge-calendar-menu__view:first-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-out-to-right;animation-name:slide-out-to-right}@media (prefers-reduced-motion){.forge-calendar-menu--slide-right .forge-calendar-menu__view:first-child{-webkit-animation-name:fade-out;animation-name:fade-out}}.forge-calendar-menu--slide-right .forge-calendar-menu__view:last-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-in-from-left;animation-name:slide-in-from-left}@media (prefers-reduced-motion){.forge-calendar-menu--slide-right .forge-calendar-menu__view:last-child{-webkit-animation-name:fade-in;animation-name:fade-in}}.forge-calendar-menu--slide-left .forge-calendar-menu__view:first-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-out-to-left;animation-name:slide-out-to-left}@media (prefers-reduced-motion){.forge-calendar-menu--slide-left .forge-calendar-menu__view:first-child{-webkit-animation-name:fade-out;animation-name:fade-out}}.forge-calendar-menu--slide-left .forge-calendar-menu__view:last-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:slide-in-from-right;animation-name:slide-in-from-right}@media (prefers-reduced-motion){.forge-calendar-menu--slide-left .forge-calendar-menu__view:last-child{-webkit-animation-name:fade-in;animation-name:fade-in}}.forge-calendar-menu--replacing-view .forge-calendar-menu__view:first-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:fade-out;animation-name:fade-out}.forge-calendar-menu--replacing-view .forge-calendar-menu__view:last-child{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-name:fade-in;animation-name:fade-in}#scroll-spy-bottom{position:absolute;bottom:0;height:48px;pointer-events:none}#scroll-spy-top{position:absolute;top:0;height:48px;pointer-events:none}@-webkit-keyframes scale-open{from{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scale-open{from{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes scale-closed{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}}@keyframes scale-closed{from{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(.4);transform:scale(.4)}}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes fade-out{from{opacity:1}to{opacity:0}}@-webkit-keyframes slide-in-from-left{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-from-left{from{-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-in-from-right{from{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in-from-right{from{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slide-out-to-left{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes slide-out-to-left{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@-webkit-keyframes slide-out-to-right{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes slide-out-to-right{from{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}:host{display:block;position:absolute;top:0;left:0;height:100%;width:100%}:host([hidden]){display:none}:host([forge-popover-context=true]) .forge-calendar-menu{background-color:var(--forge-theme-surface-bright,#fff)}',d=class extends HTMLElement{constructor(){super();k(this,q,W),this._foundation=new v(new g(this))}static get observedAttributes(){return[n.attributes.ANIMATION_TYPE,n.attributes.PREVENT_FOCUS]}connectedCallback(){!this.hasAttribute(n.attributes.POPOVER_CONTEXT)&&O(this).some(e=>e.tagName.toLowerCase()==="forge-popover")&&this.setAttribute(n.attributes.POPOVER_CONTEXT,"true"),this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,i,o){switch(e){case n.attributes.ANIMATION_TYPE:this.animationType=o;break;case n.attributes.PREVENT_FOCUS:this.preventFocus=L(o);break}}animateIn(e,i,o=!1){this._foundation.animateIn(e,i,o)}close(){this._foundation.close()}moveFocusDown(){this._foundation.moveFocusDown()}moveFocusBackward(){return this._foundation.moveFocusBackward()}moveFocusForward(){return this._foundation.moveFocusForward()}moveFocusUp(){this._foundation.moveFocusUp()}openAsGrid(e,i=!1){this._foundation.openAsGrid(e,i)}openAsList(e,i=!1){this._foundation.openAsList(e,i)}selectFocusedItem(){this._foundation.selectFocusedItem()}};_([I()],d.prototype,"animationType",2),_([I()],d.prototype,"preventFocus",2),d=_([M({name:n.elementName,dependencies:[R,P]})],d);function ye(){S(d)}export{n as a,h as b,D as c,X as d,b as e,H as f,u as g,g as h,v as i,d as j,ye as k};
|
|
7
|
+
//# sourceMappingURL=chunk.Z6G2RUC2.js.map
|