@tylertech/forge 3.0.0-next.7 → 3.0.0-next.9
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 +7530 -4847
- package/dist/button/forge-button.css +1 -1
- package/dist/esm/accordion/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/banner/index.js +1 -1
- package/dist/esm/bottom-sheet/index.js +1 -1
- package/dist/esm/busy-indicator/index.js +1 -1
- package/dist/esm/button/index.js +1 -1
- package/dist/esm/button-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.PPPTT3SM.js → chunk.2VP57RZO.js} +2 -2
- package/dist/esm/chunks/{chunk.PPPTT3SM.js.map → chunk.2VP57RZO.js.map} +2 -2
- package/dist/esm/chunks/{chunk.TXFYS6EU.js → chunk.33EJTOVA.js} +2 -2
- package/dist/esm/chunks/{chunk.OTVT3XM2.js → chunk.3JDFBEF7.js} +2 -2
- package/dist/esm/chunks/chunk.3ME47JIX.js +7 -0
- package/dist/esm/chunks/chunk.3ME47JIX.js.map +7 -0
- package/dist/esm/chunks/{chunk.V6JVHYVW.js → chunk.44UCSD46.js} +2 -2
- package/dist/esm/chunks/{chunk.EUE3OVC7.js → chunk.4WVHON6T.js} +2 -2
- package/dist/esm/chunks/chunk.4WVHON6T.js.map +7 -0
- package/dist/esm/chunks/{chunk.6SBTLXLH.js → chunk.5IQGVS6U.js} +2 -2
- package/dist/esm/chunks/{chunk.6SBTLXLH.js.map → chunk.5IQGVS6U.js.map} +1 -1
- package/dist/esm/chunks/{chunk.7JQHQKXN.js → chunk.6MPXRRMB.js} +2 -2
- package/dist/esm/chunks/{chunk.MXNLCQRB.js → chunk.6VDF54LZ.js} +2 -2
- package/dist/esm/chunks/{chunk.GF2GUVYS.js → chunk.7TGGJGTG.js} +2 -2
- package/dist/esm/chunks/{chunk.GF2GUVYS.js.map → chunk.7TGGJGTG.js.map} +1 -1
- package/dist/esm/chunks/{chunk.4EB5NVCK.js → chunk.AHHNJSZK.js} +2 -2
- package/dist/esm/chunks/chunk.BBKRPL6R.js +7 -0
- package/dist/esm/chunks/chunk.BBKRPL6R.js.map +7 -0
- package/dist/esm/chunks/{chunk.BSTIDYQJ.js → chunk.BBWMSCVG.js} +2 -2
- package/dist/esm/chunks/{chunk.BKCEVPKW.js → chunk.BDCJIRNK.js} +2 -2
- package/dist/esm/chunks/chunk.BSVFCJCQ.js +7 -0
- package/dist/esm/chunks/chunk.BSVFCJCQ.js.map +7 -0
- package/dist/esm/chunks/chunk.CAUWWFF4.js +7 -0
- package/dist/esm/chunks/chunk.CAUWWFF4.js.map +7 -0
- package/dist/esm/chunks/{chunk.SYZB7B4F.js → chunk.CL65KLH7.js} +2 -2
- package/dist/esm/chunks/{chunk.4LVS2EYJ.js → chunk.DFGBVJBE.js} +2 -2
- package/dist/esm/chunks/chunk.DXZ5LVFJ.js +7 -0
- package/dist/esm/chunks/chunk.DXZ5LVFJ.js.map +7 -0
- package/dist/esm/chunks/{chunk.YUAU5IWT.js → chunk.F776DWXU.js} +2 -2
- package/dist/esm/chunks/{chunk.HKJEGD6C.js → chunk.FIBGOPNP.js} +2 -2
- package/dist/esm/chunks/{chunk.HKJEGD6C.js.map → chunk.FIBGOPNP.js.map} +1 -1
- package/dist/esm/chunks/{chunk.OHNPVHPF.js → chunk.GEGK55XX.js} +2 -2
- package/dist/esm/chunks/{chunk.OHNPVHPF.js.map → chunk.GEGK55XX.js.map} +2 -2
- package/dist/esm/chunks/{chunk.2QFIMTVP.js → chunk.GT3XBPZY.js} +2 -2
- package/dist/esm/chunks/{chunk.OT6H5NHX.js → chunk.HUGRRRQA.js} +2 -2
- package/dist/esm/chunks/{chunk.GJW4WS4I.js → chunk.HXJCTE47.js} +2 -2
- package/dist/esm/chunks/{chunk.RHYRMQS7.js → chunk.IPGZ24EH.js} +2 -2
- package/dist/esm/chunks/{chunk.RHYRMQS7.js.map → chunk.IPGZ24EH.js.map} +1 -1
- package/dist/esm/chunks/chunk.ISC7SZSP.js +7 -0
- package/dist/esm/chunks/chunk.ISC7SZSP.js.map +7 -0
- package/dist/esm/chunks/{chunk.RUSHOL23.js → chunk.JAAJDT5E.js} +2 -2
- package/dist/esm/chunks/{chunk.SIJGKRYS.js → chunk.JCRC2VEI.js} +2 -2
- package/dist/esm/chunks/{chunk.SIJGKRYS.js.map → chunk.JCRC2VEI.js.map} +1 -1
- package/dist/esm/chunks/{chunk.STGRPD2L.js → chunk.JFKSREWG.js} +2 -2
- package/dist/esm/chunks/{chunk.STGRPD2L.js.map → chunk.JFKSREWG.js.map} +1 -1
- package/dist/esm/chunks/{chunk.FAANPQES.js → chunk.JL4XB4RI.js} +2 -2
- package/dist/esm/chunks/{chunk.24L5GDD2.js → chunk.JTIPXKV6.js} +2 -2
- package/dist/esm/chunks/{chunk.24L5GDD2.js.map → chunk.JTIPXKV6.js.map} +2 -2
- package/dist/esm/chunks/chunk.KO45GDOA.js +7 -0
- package/dist/esm/chunks/{chunk.2CTK5R37.js.map → chunk.KO45GDOA.js.map} +2 -2
- package/dist/esm/chunks/chunk.KSCUIS5C.js +7 -0
- package/dist/esm/chunks/chunk.KSCUIS5C.js.map +7 -0
- package/dist/esm/chunks/{chunk.2LRDPTHK.js → chunk.M2M47T4L.js} +2 -2
- package/dist/esm/chunks/{chunk.JVW6JGV3.js → chunk.MGWY7YIL.js} +2 -2
- package/dist/esm/chunks/{chunk.JVW6JGV3.js.map → chunk.MGWY7YIL.js.map} +2 -2
- package/dist/esm/chunks/{chunk.3CBVRCKM.js → chunk.MJSLXZBM.js} +2 -2
- package/dist/esm/chunks/{chunk.3CBVRCKM.js.map → chunk.MJSLXZBM.js.map} +1 -1
- package/dist/esm/chunks/{chunk.2YAU7AXH.js → chunk.N7PQ2MUQ.js} +2 -2
- package/dist/esm/chunks/{chunk.2YAU7AXH.js.map → chunk.N7PQ2MUQ.js.map} +1 -1
- package/dist/esm/chunks/{chunk.XMFQFFKR.js → chunk.NE4NCRRZ.js} +2 -2
- package/dist/esm/chunks/chunk.NF4J3Q5X.js +7 -0
- package/dist/esm/chunks/chunk.NF4J3Q5X.js.map +7 -0
- package/dist/esm/chunks/chunk.OEYALYRM.js +7 -0
- package/dist/esm/chunks/chunk.OEYALYRM.js.map +7 -0
- package/dist/esm/chunks/{chunk.GHSAKRYH.js → chunk.OKKH7F7M.js} +2 -2
- package/dist/esm/chunks/{chunk.AGMPIMJV.js → chunk.QL45FKVJ.js} +2 -2
- package/dist/esm/chunks/{chunk.AGMPIMJV.js.map → chunk.QL45FKVJ.js.map} +2 -2
- package/dist/esm/chunks/chunk.QU76MOCS.js +12 -0
- package/dist/esm/chunks/chunk.QU76MOCS.js.map +7 -0
- package/dist/esm/chunks/{chunk.5PHLKON3.js → chunk.R5HZFOUK.js} +2 -2
- package/dist/esm/chunks/{chunk.5PHLKON3.js.map → chunk.R5HZFOUK.js.map} +2 -2
- package/dist/esm/chunks/chunk.SAXRW6GB.js +7 -0
- package/dist/esm/chunks/chunk.SAXRW6GB.js.map +7 -0
- package/dist/esm/chunks/{chunk.2IQGDFQS.js → chunk.SEP3L4QL.js} +2 -2
- package/dist/esm/chunks/{chunk.2IQGDFQS.js.map → chunk.SEP3L4QL.js.map} +1 -1
- package/dist/esm/chunks/{chunk.Z5TWWM7I.js → chunk.SN5LPTHH.js} +2 -2
- package/dist/esm/chunks/{chunk.Z5TWWM7I.js.map → chunk.SN5LPTHH.js.map} +1 -1
- package/dist/esm/chunks/{chunk.CNQESSA3.js → chunk.UKFJHDO7.js} +2 -2
- package/dist/esm/chunks/{chunk.IGK3VYZG.js → chunk.VI2GRQO3.js} +2 -2
- package/dist/esm/chunks/{chunk.A5MBSCSQ.js → chunk.VNOJO2PF.js} +2 -2
- package/dist/esm/chunks/chunk.W7PZTNZ4.js +7 -0
- package/dist/esm/chunks/chunk.W7PZTNZ4.js.map +7 -0
- package/dist/esm/chunks/chunk.WH6C36MO.js +7 -0
- package/dist/esm/chunks/chunk.WH6C36MO.js.map +7 -0
- package/dist/esm/chunks/{chunk.2YX7ASSX.js → chunk.WXN4S7CN.js} +2 -2
- package/dist/esm/chunks/{chunk.ER52NFXX.js → chunk.X5BG35YX.js} +2 -2
- package/dist/esm/chunks/{chunk.THPU5KBV.js → chunk.XRESQBNE.js} +2 -2
- package/dist/esm/chunks/{chunk.632OMHHN.js → chunk.YDY2IGBF.js} +2 -2
- package/dist/esm/chunks/{chunk.632OMHHN.js.map → chunk.YDY2IGBF.js.map} +1 -1
- package/dist/esm/chunks/{chunk.QYKO543K.js → chunk.YWCLKUK7.js} +2 -2
- package/dist/esm/chunks/{chunk.QA3NU7EN.js → chunk.Z4J4D5FD.js} +2 -2
- package/dist/esm/chunks/{chunk.QA3NU7EN.js.map → chunk.Z4J4D5FD.js.map} +1 -1
- package/dist/esm/chunks/{chunk.V4RBOYNH.js → chunk.ZTGPXIC2.js} +2 -2
- package/dist/esm/chunks/{chunk.V4RBOYNH.js.map → chunk.ZTGPXIC2.js.map} +1 -1
- package/dist/esm/circular-progress/index.js +1 -1
- package/dist/esm/color-picker/index.js +1 -1
- package/dist/esm/core/index.js +1 -1
- package/dist/esm/core/utils/index.js +1 -1
- package/dist/esm/date-picker/index.js +1 -1
- package/dist/esm/date-range-picker/index.js +1 -1
- package/dist/esm/expansion-panel/index.js +1 -1
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/focus-indicator/index.js +7 -0
- package/dist/esm/focus-indicator/index.js.map +7 -0
- 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/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/paginator/index.js +1 -1
- package/dist/esm/profile-card/index.js +1 -1
- package/dist/esm/quantity-field/index.js +1 -1
- package/dist/esm/radio/index.js +1 -1
- package/dist/esm/select/core/index.js +1 -1
- package/dist/esm/select/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/slider/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/state-layer/index.js +7 -0
- package/dist/esm/state-layer/index.js.map +7 -0
- 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/forge-dark.css +1 -1
- package/dist/forge.css +1 -1
- package/dist/icon-button/forge-icon-button.css +1 -1
- package/dist/table/forge-table.css +1 -1
- package/dist/theme/forge-theme.css +1 -1
- package/esm/app-bar/app-bar.js +1 -1
- package/esm/banner/banner.js +1 -1
- package/esm/bottom-sheet/bottom-sheet.js +1 -1
- package/esm/busy-indicator/busy-indicator.js +1 -1
- package/esm/button/button.d.ts +1 -0
- package/esm/button/button.js +8 -2
- package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
- package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
- package/esm/calendar/calendar.js +1 -1
- package/esm/card/card-constants.d.ts +2 -2
- package/esm/card/card-constants.js +2 -2
- package/esm/card/card.d.ts +19 -8
- package/esm/card/card.js +30 -21
- package/esm/checkbox/checkbox-adapter.d.ts +1 -0
- package/esm/checkbox/checkbox-adapter.js +9 -2
- package/esm/checkbox/checkbox.js +1 -1
- package/esm/chip-field/chip-field.js +1 -1
- package/esm/chips/chip/chip.js +1 -1
- package/esm/circular-progress/circular-progress.d.ts +3 -3
- package/esm/circular-progress/circular-progress.js +4 -4
- package/esm/color-picker/color-picker.js +1 -1
- package/esm/core/testing/pointer.d.ts +13 -0
- package/esm/core/testing/pointer.js +42 -0
- package/esm/core/utils/utils.d.ts +16 -2
- package/esm/core/utils/utils.js +47 -6
- package/esm/file-picker/file-picker.js +1 -1
- package/esm/focus-indicator/focus-indicator-adapter.d.ts +29 -0
- package/esm/focus-indicator/focus-indicator-adapter.js +39 -0
- package/esm/focus-indicator/focus-indicator-constants.d.ts +15 -0
- package/esm/focus-indicator/focus-indicator-constants.js +19 -0
- package/esm/focus-indicator/focus-indicator-foundation.d.ts +43 -0
- package/esm/focus-indicator/focus-indicator-foundation.js +110 -0
- package/esm/focus-indicator/focus-indicator.d.ts +67 -0
- package/esm/focus-indicator/focus-indicator.js +112 -0
- package/esm/focus-indicator/index.d.ts +10 -0
- package/esm/focus-indicator/index.js +14 -0
- package/esm/icon-button/icon-button.d.ts +1 -0
- package/esm/icon-button/icon-button.js +9 -2
- package/esm/index.d.ts +2 -0
- package/esm/index.js +6 -0
- package/esm/list/list-item/list-item-adapter.d.ts +3 -3
- package/esm/list/list-item/list-item-adapter.js +2 -2
- package/esm/list/list-item/list-item-foundation.d.ts +1 -0
- package/esm/list/list-item/list-item-foundation.js +8 -1
- package/esm/list/list-item/list-item.js +1 -1
- package/esm/paginator/paginator.js +1 -1
- package/esm/profile-card/profile-card.js +1 -1
- package/esm/radio/radio-adapter.d.ts +1 -0
- package/esm/radio/radio-adapter.js +9 -2
- package/esm/select/select/select.js +1 -1
- package/esm/slider/slider-adapter.d.ts +0 -16
- package/esm/slider/slider-adapter.js +11 -71
- package/esm/slider/slider-constants.d.ts +0 -3
- package/esm/slider/slider-constants.js +0 -3
- package/esm/slider/slider-foundation.d.ts +0 -1
- package/esm/slider/slider-foundation.js +0 -6
- package/esm/slider/slider-utils.js +6 -3
- package/esm/slider/slider.d.ts +0 -2
- package/esm/slider/slider.js +9 -7
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/state-layer/index.d.ts +10 -0
- package/esm/state-layer/index.js +14 -0
- package/esm/state-layer/state-layer-adapter.d.ts +41 -0
- package/esm/state-layer/state-layer-adapter.js +101 -0
- package/esm/state-layer/state-layer-constants.d.ts +79 -0
- package/esm/state-layer/state-layer-constants.js +89 -0
- package/esm/state-layer/state-layer-foundation.d.ts +57 -0
- package/esm/state-layer/state-layer-foundation.js +237 -0
- package/esm/state-layer/state-layer-utils.d.ts +26 -0
- package/esm/state-layer/state-layer-utils.js +54 -0
- package/esm/state-layer/state-layer.d.ts +66 -0
- package/esm/state-layer/state-layer.js +96 -0
- package/esm/stepper/step/step.js +1 -1
- package/esm/switch/switch.js +10 -3
- package/esm/tabs/tab/tab-adapter.d.ts +4 -6
- package/esm/tabs/tab/tab-adapter.js +9 -18
- package/esm/tabs/tab/tab-constants.d.ts +0 -1
- package/esm/tabs/tab/tab-constants.js +0 -1
- package/esm/tabs/tab/tab-foundation.d.ts +0 -1
- package/esm/tabs/tab/tab-foundation.js +1 -3
- package/esm/tabs/tab/tab.d.ts +0 -1
- package/esm/tabs/tab/tab.js +9 -6
- package/esm/tabs/tab-bar/tab-bar.d.ts +2 -2
- package/esm/tabs/tab-bar/tab-bar.js +3 -3
- package/esm/text-field/text-field.js +1 -1
- package/esm/toast/toast.js +1 -1
- package/package.json +1 -1
- package/styles/app-bar/_mixins.scss +9 -1
- package/styles/card/_mixins.scss +8 -7
- package/styles/circular-progress/_mixins.scss +3 -10
- package/styles/core/{style-layer → styles}/circular-progress/_core.scss +5 -8
- package/styles/core/styles/focus-indicator/_core.scss +5 -0
- package/styles/core/styles/focus-indicator/_variables.scss +8 -0
- package/styles/core/styles/focus-indicator/index.scss +7 -0
- package/styles/core/{style-layer → styles}/slider/_core.scss +13 -31
- package/styles/core/styles/state-layer/_core.scss +144 -0
- package/styles/core/styles/state-layer/_variables.scss +8 -0
- package/styles/core/{style-layer/tabs/tab → styles/state-layer}/index.scss +0 -4
- package/styles/core/{style-layer → styles}/tabs/tab/_core.scss +36 -40
- package/styles/core/{style-layer → styles}/tabs/tab-bar/_core.scss +2 -2
- package/styles/core/{style-layer → styles}/tabs/tab-bar/_variables.scss +1 -1
- package/styles/core/styles/tabs/tab-bar/index.scss +7 -0
- package/styles/core/styles/tokens/_color-palette.scss +299 -0
- package/styles/core/styles/tokens/circular-progress/_tokens.scss +14 -0
- package/styles/core/styles/tokens/focus-indicator/_tokens.scss +24 -0
- package/styles/core/styles/tokens/index.scss +58 -0
- package/styles/core/styles/tokens/state-layer/_tokens.scss +17 -0
- package/styles/core/styles/tokens/theme/_tokens.scss +185 -0
- package/styles/core/styles/tokens/typography/_tokens.scss +47 -0
- package/styles/core/styles/utils/_elevation.scss +5 -0
- package/styles/focus-indicator/_mixins.scss +138 -0
- package/styles/focus-indicator/_variables.scss +5 -0
- package/styles/focus-indicator/focus-indicator.scss +32 -0
- package/styles/linear-progress/_mixins.scss +1 -1
- package/styles/linear-progress/_variables.scss +1 -1
- package/styles/slider/_mixins.scss +17 -1
- package/styles/state-layer/_mixins.scss +23 -0
- package/styles/state-layer/state-layer.scss +20 -0
- package/styles/tabs/tab/_mixins.scss +20 -1
- package/styles/tabs/tab/_variables.scss +2 -0
- package/styles/tabs/tab-bar/_mixins.scss +2 -1
- package/styles/tabs/tab-bar/_variables.scss +2 -2
- package/styles/theme/_theme-dark.scss +5 -3
- package/styles/theme/_theme.scss +3 -36
- package/dist/esm/chunks/chunk.246JM2YT.js +0 -7
- package/dist/esm/chunks/chunk.246JM2YT.js.map +0 -7
- package/dist/esm/chunks/chunk.2CTK5R37.js +0 -7
- package/dist/esm/chunks/chunk.2XFVFZ3P.js +0 -7
- package/dist/esm/chunks/chunk.2XFVFZ3P.js.map +0 -7
- package/dist/esm/chunks/chunk.5IVB5L5Z.js +0 -7
- package/dist/esm/chunks/chunk.5IVB5L5Z.js.map +0 -7
- package/dist/esm/chunks/chunk.A5R7KUIP.js +0 -7
- package/dist/esm/chunks/chunk.A5R7KUIP.js.map +0 -7
- package/dist/esm/chunks/chunk.BWZKQ6WX.js +0 -7
- package/dist/esm/chunks/chunk.BWZKQ6WX.js.map +0 -7
- package/dist/esm/chunks/chunk.EUE3OVC7.js.map +0 -7
- package/dist/esm/chunks/chunk.GUYPITGA.js +0 -7
- package/dist/esm/chunks/chunk.GUYPITGA.js.map +0 -7
- package/dist/esm/chunks/chunk.GWIVOPRO.js +0 -7
- package/dist/esm/chunks/chunk.GWIVOPRO.js.map +0 -7
- package/dist/esm/chunks/chunk.JHXNEHWR.js +0 -12
- package/dist/esm/chunks/chunk.JHXNEHWR.js.map +0 -7
- package/dist/esm/chunks/chunk.NVMILGC2.js +0 -7
- package/dist/esm/chunks/chunk.NVMILGC2.js.map +0 -7
- package/dist/esm/chunks/chunk.WFDIA7R6.js +0 -7
- package/dist/esm/chunks/chunk.WFDIA7R6.js.map +0 -7
- package/esm/slider/slider-handle-ripple.d.ts +0 -18
- package/esm/slider/slider-handle-ripple.js +0 -37
- package/esm/tabs/tab/tab-ripple.d.ts +0 -17
- package/esm/tabs/tab/tab-ripple.js +0 -33
- package/styles/circular-progress/_variables.scss +0 -12
- /package/dist/esm/chunks/{chunk.TXFYS6EU.js.map → chunk.33EJTOVA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OTVT3XM2.js.map → chunk.3JDFBEF7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.V6JVHYVW.js.map → chunk.44UCSD46.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7JQHQKXN.js.map → chunk.6MPXRRMB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MXNLCQRB.js.map → chunk.6VDF54LZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4EB5NVCK.js.map → chunk.AHHNJSZK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BSTIDYQJ.js.map → chunk.BBWMSCVG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BKCEVPKW.js.map → chunk.BDCJIRNK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SYZB7B4F.js.map → chunk.CL65KLH7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4LVS2EYJ.js.map → chunk.DFGBVJBE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YUAU5IWT.js.map → chunk.F776DWXU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2QFIMTVP.js.map → chunk.GT3XBPZY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.OT6H5NHX.js.map → chunk.HUGRRRQA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GJW4WS4I.js.map → chunk.HXJCTE47.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RUSHOL23.js.map → chunk.JAAJDT5E.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.FAANPQES.js.map → chunk.JL4XB4RI.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2LRDPTHK.js.map → chunk.M2M47T4L.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XMFQFFKR.js.map → chunk.NE4NCRRZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GHSAKRYH.js.map → chunk.OKKH7F7M.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.CNQESSA3.js.map → chunk.UKFJHDO7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IGK3VYZG.js.map → chunk.VI2GRQO3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.A5MBSCSQ.js.map → chunk.VNOJO2PF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.2YX7ASSX.js.map → chunk.WXN4S7CN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ER52NFXX.js.map → chunk.X5BG35YX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.THPU5KBV.js.map → chunk.XRESQBNE.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QYKO543K.js.map → chunk.YWCLKUK7.js.map} +0 -0
- /package/styles/core/{style-layer → styles}/circular-progress/_animations.scss +0 -0
- /package/styles/core/{style-layer → styles}/circular-progress/_variables.scss +0 -0
- /package/styles/core/{style-layer → styles}/circular-progress/index.scss +0 -0
- /package/styles/core/{style-layer → styles}/core/_config.scss +0 -0
- /package/styles/core/{style-layer → styles}/linear-progress/_animations.scss +0 -0
- /package/styles/core/{style-layer → styles}/linear-progress/_core.scss +0 -0
- /package/styles/core/{style-layer → styles}/linear-progress/_variables.scss +0 -0
- /package/styles/core/{style-layer → styles}/linear-progress/index.scss +0 -0
- /package/styles/core/{style-layer → styles}/slider/_functions.scss +0 -0
- /package/styles/core/{style-layer → styles}/slider/_variables.scss +0 -0
- /package/styles/core/{style-layer → styles}/slider/index.scss +0 -0
- /package/styles/core/{style-layer → styles}/tabs/tab/_variables.scss +0 -0
- /package/styles/core/{style-layer/tabs/tab-bar → styles/tabs/tab}/index.scss +0 -0
|
@@ -11,7 +11,7 @@ import { FilePickerAdapter } from './file-picker-adapter';
|
|
|
11
11
|
import { FILE_PICKER_CONSTANTS } from './file-picker-constants';
|
|
12
12
|
import { FilePickerFoundation } from './file-picker-foundation';
|
|
13
13
|
const template = '<template><form class=\"forge-file-picker\" id=\"container\" part=\"form\"><div class=\"forge-file-picker__primary\" id=\"primary\" part=\"primary\"><slot name=\"primary\"></slot></div><slot id=\"button-slot\"></slot><div class=\"forge-file-picker__secondary\" id=\"secondary\" part=\"secondary\"><slot name=\"secondary\"></slot></div><input type=\"file\" class=\"forge-file-picker__input\" id=\"input\" part=\"input\"></form><div class=\"forge-file-picker__helper-text\" part=\"helper-text-container\"><slot name=\"helper-text\"></slot></div></template>';
|
|
14
|
-
const styles = '.forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-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;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker[disabled]{background-color:#
|
|
14
|
+
const styles = '.forge-file-picker{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;background-color:rgba(189,189,189,.12);border:1px dashed #e0e0e0;display:grid;-webkit-box-pack:center;justify-content:center;align-content:center;gap:16px;padding:16px;text-align:center;cursor:pointer}.forge-file-picker__primary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:1rem;font-size:var(--mdc-typography-subtitle1-font-size, 1rem);line-height:1.75rem;line-height:var(--mdc-typography-subtitle1-line-height, 1.75rem);font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__secondary{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:.875rem;font-size:var(--forge-typography-subtitle2-secondary-font-size, .875rem);line-height:1.375rem;line-height:var(--forge-typography-subtitle2-secondary-line-height, 1.375rem);font-weight:400;font-weight:var(--forge-typography-subtitle2-secondary-font-weight,400);letter-spacing:.0087500001em;letter-spacing:var(--forge-typography-subtitle2-secondary-letter-spacing, .0087500001em);text-decoration:inherit;-webkit-text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-decoration:var(--forge-typography-subtitle2-secondary-text-decoration,inherit);text-transform:inherit;text-transform:var(--forge-typography-subtitle2-secondary-text-transform,inherit);color:var(--mdc-theme-text-secondary-on-background);color:var(--forge-typography-subtitle2-secondary-color,var(--mdc-theme-text-secondary-on-background));color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));max-width:auto;max-width:var(--forge-file-picker-max-content-width,auto)}.forge-file-picker__input{display:none}.forge-file-picker__helper-text ::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));margin-left:12px;-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;text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);text-align:start}.forge-file-picker[disabled]{background-color:#fff;background-color:var(--mdc-theme-background,#fff);border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);opacity:.38;cursor:unset}.forge-file-picker.compact{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;background-color:transparent;border:none;padding:0}.forge-file-picker.compact .forge-file-picker__primary,.forge-file-picker.compact .forge-file-picker__secondary{display:none}.forge-file-picker.compact .forge-file-picker__button>button{width:auto;width:var(--forge-file-picker-width,auto);background-color:transparent}.forge-file-picker:not(.compact).highlight{border-color:#6200ee;border-color:var(--mdc-theme-primary,#6200ee);background-color:rgba(98,0,238,.12);border-width:1px;border-style:solid}.forge-file-picker.borderless{--forge-file-picker-width:100%;border:none}.forge-file-picker.borderless:not(.compact).highlight{border:none}.forge-file-picker.borderless+.forge-file-picker__helper-text{display:none}:host{width:auto;width:var(--forge-file-picker-width,auto);height:auto;height:var(--forge-file-picker-height,auto);display:inline-block}:host([hidden]){display:none}';
|
|
15
15
|
/**
|
|
16
16
|
* The web component class behind the `<forge-file-picker>` custom element.
|
|
17
17
|
*
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BaseAdapter, IBaseAdapter } from '../core';
|
|
7
|
+
import { IFocusIndicatorComponent } from './focus-indicator';
|
|
8
|
+
export interface IFocusIndicatorAdapter extends IBaseAdapter {
|
|
9
|
+
destroy(): void;
|
|
10
|
+
hasTargetElement(): boolean;
|
|
11
|
+
addTargetListener(type: string, listener: EventListener): void;
|
|
12
|
+
removeTargetListener(type: string, listener: EventListener): void;
|
|
13
|
+
getTargetElement(): HTMLElement | null;
|
|
14
|
+
setTargetElement(el: HTMLElement | null): void;
|
|
15
|
+
trySetTarget(value: string | null): void;
|
|
16
|
+
isActive(selector: string): boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare class FocusIndicatorAdapter extends BaseAdapter<IFocusIndicatorComponent> implements IFocusIndicatorAdapter {
|
|
19
|
+
private _targetElement;
|
|
20
|
+
constructor(component: IFocusIndicatorComponent);
|
|
21
|
+
destroy(): void;
|
|
22
|
+
hasTargetElement(): boolean;
|
|
23
|
+
addTargetListener(type: string, listener: EventListener): void;
|
|
24
|
+
removeTargetListener(type: string, listener: EventListener): void;
|
|
25
|
+
getTargetElement(): HTMLElement | null;
|
|
26
|
+
setTargetElement(el: HTMLElement | null): void;
|
|
27
|
+
trySetTarget(value: string | null): void;
|
|
28
|
+
isActive(selector: string): boolean;
|
|
29
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BaseAdapter, locateTargetHeuristic } from '../core';
|
|
7
|
+
export class FocusIndicatorAdapter extends BaseAdapter {
|
|
8
|
+
constructor(component) {
|
|
9
|
+
super(component);
|
|
10
|
+
this._targetElement = null;
|
|
11
|
+
}
|
|
12
|
+
destroy() {
|
|
13
|
+
this._targetElement = null;
|
|
14
|
+
}
|
|
15
|
+
hasTargetElement() {
|
|
16
|
+
return !!this._targetElement;
|
|
17
|
+
}
|
|
18
|
+
addTargetListener(type, listener) {
|
|
19
|
+
var _a;
|
|
20
|
+
(_a = this._targetElement) === null || _a === void 0 ? void 0 : _a.addEventListener(type, listener);
|
|
21
|
+
}
|
|
22
|
+
removeTargetListener(type, listener) {
|
|
23
|
+
var _a;
|
|
24
|
+
(_a = this._targetElement) === null || _a === void 0 ? void 0 : _a.removeEventListener(type, listener);
|
|
25
|
+
}
|
|
26
|
+
getTargetElement() {
|
|
27
|
+
return this._targetElement;
|
|
28
|
+
}
|
|
29
|
+
setTargetElement(el) {
|
|
30
|
+
this._targetElement = el;
|
|
31
|
+
}
|
|
32
|
+
trySetTarget(value) {
|
|
33
|
+
this._targetElement = locateTargetHeuristic(this._component, value);
|
|
34
|
+
}
|
|
35
|
+
isActive(selector) {
|
|
36
|
+
var _a;
|
|
37
|
+
return !!((_a = this._targetElement) === null || _a === void 0 ? void 0 : _a.matches(selector));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export declare const FOCUS_INDICATOR_CONSTANTS: {
|
|
7
|
+
elementName: "forge-focus-indicator";
|
|
8
|
+
attributes: {
|
|
9
|
+
TARGET: string;
|
|
10
|
+
ACTIVE: string;
|
|
11
|
+
INWARD: string;
|
|
12
|
+
CIRCULAR: string;
|
|
13
|
+
ALLOW_FOCUS: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { COMPONENT_NAME_PREFIX } from '../constants';
|
|
7
|
+
const elementName = `${COMPONENT_NAME_PREFIX}focus-indicator`;
|
|
8
|
+
const observedAttributes = {
|
|
9
|
+
TARGET: 'target',
|
|
10
|
+
ACTIVE: 'active',
|
|
11
|
+
INWARD: 'inward',
|
|
12
|
+
CIRCULAR: 'circular',
|
|
13
|
+
ALLOW_FOCUS: 'allow-focus'
|
|
14
|
+
};
|
|
15
|
+
const attributes = Object.assign({}, observedAttributes);
|
|
16
|
+
export const FOCUS_INDICATOR_CONSTANTS = {
|
|
17
|
+
elementName,
|
|
18
|
+
attributes
|
|
19
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { IFocusIndicatorAdapter } from './focus-indicator-adapter';
|
|
7
|
+
export interface IFocusIndicatorFoundation {
|
|
8
|
+
targetElement: HTMLElement | null;
|
|
9
|
+
target: string | null;
|
|
10
|
+
active: boolean;
|
|
11
|
+
inward: boolean;
|
|
12
|
+
circular: boolean;
|
|
13
|
+
allowFocus: boolean;
|
|
14
|
+
initialize(): void;
|
|
15
|
+
destroy(): void;
|
|
16
|
+
}
|
|
17
|
+
export declare class FocusIndicatorFoundation implements IFocusIndicatorFoundation {
|
|
18
|
+
private _adapter;
|
|
19
|
+
private _target;
|
|
20
|
+
private _active;
|
|
21
|
+
private _inward;
|
|
22
|
+
private _circular;
|
|
23
|
+
private _allowFocus;
|
|
24
|
+
private _interactionListener;
|
|
25
|
+
constructor(_adapter: IFocusIndicatorAdapter);
|
|
26
|
+
initialize(): void;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
private _addListeners;
|
|
29
|
+
private _removeListeners;
|
|
30
|
+
private _onInteraction;
|
|
31
|
+
get targetElement(): HTMLElement | null;
|
|
32
|
+
set targetElement(value: HTMLElement | null);
|
|
33
|
+
get target(): string | null;
|
|
34
|
+
set target(value: string | null);
|
|
35
|
+
get active(): boolean;
|
|
36
|
+
set active(value: boolean);
|
|
37
|
+
get inward(): boolean;
|
|
38
|
+
set inward(value: boolean);
|
|
39
|
+
get circular(): boolean;
|
|
40
|
+
set circular(value: boolean);
|
|
41
|
+
get allowFocus(): boolean;
|
|
42
|
+
set allowFocus(value: boolean);
|
|
43
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { FOCUS_INDICATOR_CONSTANTS } from './focus-indicator-constants';
|
|
7
|
+
export class FocusIndicatorFoundation {
|
|
8
|
+
constructor(_adapter) {
|
|
9
|
+
this._adapter = _adapter;
|
|
10
|
+
this._target = null;
|
|
11
|
+
this._active = false;
|
|
12
|
+
this._inward = false;
|
|
13
|
+
this._circular = false;
|
|
14
|
+
this._allowFocus = false;
|
|
15
|
+
this._interactionListener = evt => this._onInteraction(evt);
|
|
16
|
+
}
|
|
17
|
+
initialize() {
|
|
18
|
+
if (!this._adapter.hasTargetElement()) {
|
|
19
|
+
this._adapter.trySetTarget(this._target);
|
|
20
|
+
}
|
|
21
|
+
this._addListeners();
|
|
22
|
+
}
|
|
23
|
+
destroy() {
|
|
24
|
+
this._adapter.destroy();
|
|
25
|
+
this._removeListeners();
|
|
26
|
+
}
|
|
27
|
+
_addListeners() {
|
|
28
|
+
this._adapter.addTargetListener('focusin', this._interactionListener);
|
|
29
|
+
this._adapter.addTargetListener('focusout', this._interactionListener);
|
|
30
|
+
this._adapter.addTargetListener('pointerdown', this._interactionListener);
|
|
31
|
+
}
|
|
32
|
+
_removeListeners() {
|
|
33
|
+
this._adapter.removeTargetListener('focusin', this._interactionListener);
|
|
34
|
+
this._adapter.removeTargetListener('focusout', this._interactionListener);
|
|
35
|
+
this._adapter.removeTargetListener('pointerdown', this._interactionListener);
|
|
36
|
+
}
|
|
37
|
+
_onInteraction(evt) {
|
|
38
|
+
switch (evt.type) {
|
|
39
|
+
case 'focusin':
|
|
40
|
+
this.active = this._adapter.isActive(this._allowFocus ? ':focus' : ':focus-visible');
|
|
41
|
+
break;
|
|
42
|
+
case 'focusout':
|
|
43
|
+
this.active = false;
|
|
44
|
+
break;
|
|
45
|
+
case 'pointerdown':
|
|
46
|
+
this.active = this._allowFocus ? this._adapter.isActive(':focus') : this._adapter.isActive(':focus-visible');
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
get targetElement() {
|
|
51
|
+
return this._adapter.getTargetElement();
|
|
52
|
+
}
|
|
53
|
+
set targetElement(value) {
|
|
54
|
+
this._removeListeners();
|
|
55
|
+
this._adapter.setTargetElement(value);
|
|
56
|
+
this._addListeners();
|
|
57
|
+
}
|
|
58
|
+
get target() {
|
|
59
|
+
return this._adapter.getHostAttribute(FOCUS_INDICATOR_CONSTANTS.attributes.TARGET);
|
|
60
|
+
}
|
|
61
|
+
set target(value) {
|
|
62
|
+
if (this._target !== value) {
|
|
63
|
+
this._target = value;
|
|
64
|
+
if (this._adapter.isConnected) {
|
|
65
|
+
this._adapter.trySetTarget(value);
|
|
66
|
+
}
|
|
67
|
+
this._adapter.toggleHostAttribute(FOCUS_INDICATOR_CONSTANTS.attributes.TARGET, Boolean(this._target), this._target);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
get active() {
|
|
71
|
+
return this._active;
|
|
72
|
+
}
|
|
73
|
+
set active(value) {
|
|
74
|
+
value = Boolean(value);
|
|
75
|
+
if (this._active !== value) {
|
|
76
|
+
this._active = value;
|
|
77
|
+
this._adapter.toggleHostAttribute(FOCUS_INDICATOR_CONSTANTS.attributes.ACTIVE, this._active);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
get inward() {
|
|
81
|
+
return this._inward;
|
|
82
|
+
}
|
|
83
|
+
set inward(value) {
|
|
84
|
+
value = Boolean(value);
|
|
85
|
+
if (this._inward !== value) {
|
|
86
|
+
this._inward = value;
|
|
87
|
+
this._adapter.toggleHostAttribute(FOCUS_INDICATOR_CONSTANTS.attributes.INWARD, this._inward);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
get circular() {
|
|
91
|
+
return this._circular;
|
|
92
|
+
}
|
|
93
|
+
set circular(value) {
|
|
94
|
+
value = Boolean(value);
|
|
95
|
+
if (this._circular !== value) {
|
|
96
|
+
this._circular = value;
|
|
97
|
+
this._adapter.toggleHostAttribute(FOCUS_INDICATOR_CONSTANTS.attributes.CIRCULAR, this._circular);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
get allowFocus() {
|
|
101
|
+
return this._allowFocus;
|
|
102
|
+
}
|
|
103
|
+
set allowFocus(value) {
|
|
104
|
+
value = Boolean(value);
|
|
105
|
+
if (this._allowFocus !== value) {
|
|
106
|
+
this._allowFocus = value;
|
|
107
|
+
this._adapter.toggleHostAttribute(FOCUS_INDICATOR_CONSTANTS.attributes.ALLOW_FOCUS, this._allowFocus);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { BaseComponent, IBaseComponent } from '../core/base/base-component';
|
|
7
|
+
export interface IFocusIndicatorComponent extends IBaseComponent {
|
|
8
|
+
targetElement: HTMLElement;
|
|
9
|
+
target: string | null;
|
|
10
|
+
active: boolean;
|
|
11
|
+
inward: boolean;
|
|
12
|
+
circular: boolean;
|
|
13
|
+
allowFocus: boolean;
|
|
14
|
+
}
|
|
15
|
+
declare global {
|
|
16
|
+
interface HTMLElementTagNameMap {
|
|
17
|
+
'forge-focus-indicator': IFocusIndicatorComponent;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @tag forge-focus-indicator
|
|
22
|
+
*
|
|
23
|
+
* @summary Renders a focus indicator when an attached element matches `:focus-visible`.
|
|
24
|
+
*
|
|
25
|
+
* @property {HTMLElement} targetElement - The element to attach the focus indicator to.
|
|
26
|
+
* @property {string} target - The id of the element to attach the focus indicator to.
|
|
27
|
+
* @property {boolean} active - Controls whether the indicator is active.
|
|
28
|
+
* @property {boolean} inward - Controls whether the indicator renders inward.
|
|
29
|
+
* @property {boolean} circular - Controls whether the indicator renders circular.
|
|
30
|
+
* @property {boolean} allowFocus - Controls whether the indicator renders when the target element matches `:focus` instead of `:focus-visible`.
|
|
31
|
+
*
|
|
32
|
+
* @attribute {string} target - The id of the element to attach the focus indicator to.
|
|
33
|
+
* @attribute {boolean} active - Controls whether the indicator is active.
|
|
34
|
+
* @attribute {boolean} inward - Controls whether the indicator renders inward.
|
|
35
|
+
* @attribute {boolean} circular - Controls whether the indicator renders circular.
|
|
36
|
+
* @attribute {boolean} allow-focus - Controls whether the indicator renders when the target element matches `:focus` instead of `:focus-visible`.
|
|
37
|
+
*
|
|
38
|
+
* @cssproperty --forge-focus-indicator-active-width - The width of the focus indicator when active. When animating this is the max extent.
|
|
39
|
+
* @cssproperty --forge-focus-indicator-color - The color of the focus indicator.
|
|
40
|
+
* @cssproperty --forge-focus-indicator-duration - The animation duration.
|
|
41
|
+
* @cssproperty --forge-focus-indicator-outward-offset - The offset of the focus indicator when outward.
|
|
42
|
+
* @cssproperty --forge-focus-indicator-inward-offset - The offset of the focus indicator when inward.
|
|
43
|
+
* @cssproperty --forge-focus-indicator-shape - The shape of the focus indicator.
|
|
44
|
+
* @cssproperty --forge-focus-indicator-width - The width of the focus indicator when resting.
|
|
45
|
+
* @cssproperty --forge-focus-indicator-shape-start-start - The start start shape.
|
|
46
|
+
* @cssproperty --forge-focus-indicator-shape-start-end - The start end shape.
|
|
47
|
+
* @cssproperty --forge-focus-indicator-shape-end-start - The end start shape.
|
|
48
|
+
* @cssproperty --forge-focus-indicator-shape-end-end - The end end shape.
|
|
49
|
+
* @cssproperty --forge-focus-indicator-offset-block - The block offset.
|
|
50
|
+
* @cssproperty --forge-focus-indicator-offset-inline - The inline offset.
|
|
51
|
+
*
|
|
52
|
+
* @csspart indicator - The focus indicator element.
|
|
53
|
+
*/
|
|
54
|
+
export declare class FocusIndicatorComponent extends BaseComponent implements IFocusIndicatorComponent {
|
|
55
|
+
static get observedAttributes(): string[];
|
|
56
|
+
private _foundation;
|
|
57
|
+
constructor();
|
|
58
|
+
connectedCallback(): void;
|
|
59
|
+
disconnectedCallback(): void;
|
|
60
|
+
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
61
|
+
targetElement: HTMLElement;
|
|
62
|
+
target: string | null;
|
|
63
|
+
active: boolean;
|
|
64
|
+
inward: boolean;
|
|
65
|
+
circular: boolean;
|
|
66
|
+
allowFocus: boolean;
|
|
67
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { __decorate } from "tslib";
|
|
7
|
+
import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';
|
|
8
|
+
import { BaseComponent } from '../core/base/base-component';
|
|
9
|
+
import { FocusIndicatorAdapter } from './focus-indicator-adapter';
|
|
10
|
+
import { FOCUS_INDICATOR_CONSTANTS } from './focus-indicator-constants';
|
|
11
|
+
import { FocusIndicatorFoundation } from './focus-indicator-foundation';
|
|
12
|
+
const template = '<template><div class=\"forge-focus-indicator\" part=\"indicator\"></div></template>';
|
|
13
|
+
const styles = '.forge-focus-indicator{--_active-width:var(--forge-focus-indicator-active-width, 6px);--_color:var(--forge-focus-indicator-color, var(--forge-theme-primary, #3f51b5));--_duration:var(--forge-focus-indicator-duration, 600ms);--_outward-offset:var(--forge-focus-indicator-outward-offset, 4px);--_inward-offset:var(--forge-focus-indicator-inward-offset, 0px);--_shape:var(--forge-focus-indicator-shape, 1px);--_width:var(--forge-focus-indicator-width, 2px);--_easing:var(--forge-focus-indicator-easing, cubic-bezier(0.2, 0, 0, 1));--_shape-start-start:var(--forge-focus-indicator-shape-start-start, var(--_shape));--_shape-start-end:var(--forge-focus-indicator-shape-start-end, var(--_shape));--_shape-end-start:var(--forge-focus-indicator-shape-end-start, var(--_shape));--_shape-end-end:var(--forge-focus-indicator-shape-end-end, var(--_shape));--_margin-block:var(--forge-focus-indicator-offset-block, 0);--_margin-inline:var(--forge-focus-indicator-offset-inline, 0);-webkit-animation-delay:0s,calc(var(--_duration) * .25);animation-delay:0s,calc(var(--_duration) * .25);-webkit-animation-duration:calc(var(--_duration) * .25),calc(var(--_duration) * .75);animation-duration:calc(var(--_duration) * .25),calc(var(--_duration) * .75);-webkit-animation-timing-function:var(--_easing);animation-timing-function:var(--_easing);-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--_color);display:none;pointer-events:none;position:absolute;margin-block:var(--_margin-block);margin-inline:var(--_margin-inline)}@media (prefers-reduced-motion){.forge-focus-indicator{-webkit-animation:none;animation:none}}@-webkit-keyframes outward-grow{from{outline-width:0}to{outline-width:var(--_active-width)}}@keyframes outward-grow{from{outline-width:0}to{outline-width:var(--_active-width)}}@-webkit-keyframes outward-shrink{from{outline-width:var(--_active-width)}}@keyframes outward-shrink{from{outline-width:var(--_active-width)}}@-webkit-keyframes inward-grow{from{border-width:0}to{border-width:var(--_active-width)}}@keyframes inward-grow{from{border-width:0}to{border-width:var(--_active-width)}}@-webkit-keyframes inward-shrink{from{border-width:var(--_active-width)}}@keyframes inward-shrink{from{border-width:var(--_active-width)}}:host{display:contents}:host([hidden]){display:none}:host([active]) .forge-focus-indicator{display:-webkit-box;display:flex}:host(:not([inward])) .forge-focus-indicator{-webkit-animation-name:outward-grow,outward-shrink;animation-name:outward-grow,outward-shrink;border-end-end-radius:calc(var(--_shape-end-end) + var(--_outward-offset));border-end-start-radius:calc(var(--_shape-end-start) + var(--_outward-offset));border-start-end-radius:calc(var(--_shape-start-end) + var(--_outward-offset));border-start-start-radius:calc(var(--_shape-start-start) + var(--_outward-offset));inset:calc(-1 * var(--_outward-offset));outline:var(--_width) solid currentColor}:host([inward]) .forge-focus-indicator{-webkit-animation-name:inward-grow,inward-shrink;animation-name:inward-grow,inward-shrink;border-end-end-radius:calc(var(--_shape-end-end) - var(--_inward-offset));border-end-start-radius:calc(var(--_shape-end-start) - var(--_inward-offset));border-start-end-radius:calc(var(--_shape-start-end) - var(--_inward-offset));border-start-start-radius:calc(var(--_shape-start-start) - var(--_inward-offset));border:var(--_width) solid currentColor;inset:var(--_inward-offset)}:host([circular]) .forge-focus-indicator{--_shape:50%}';
|
|
14
|
+
/**
|
|
15
|
+
* @tag forge-focus-indicator
|
|
16
|
+
*
|
|
17
|
+
* @summary Renders a focus indicator when an attached element matches `:focus-visible`.
|
|
18
|
+
*
|
|
19
|
+
* @property {HTMLElement} targetElement - The element to attach the focus indicator to.
|
|
20
|
+
* @property {string} target - The id of the element to attach the focus indicator to.
|
|
21
|
+
* @property {boolean} active - Controls whether the indicator is active.
|
|
22
|
+
* @property {boolean} inward - Controls whether the indicator renders inward.
|
|
23
|
+
* @property {boolean} circular - Controls whether the indicator renders circular.
|
|
24
|
+
* @property {boolean} allowFocus - Controls whether the indicator renders when the target element matches `:focus` instead of `:focus-visible`.
|
|
25
|
+
*
|
|
26
|
+
* @attribute {string} target - The id of the element to attach the focus indicator to.
|
|
27
|
+
* @attribute {boolean} active - Controls whether the indicator is active.
|
|
28
|
+
* @attribute {boolean} inward - Controls whether the indicator renders inward.
|
|
29
|
+
* @attribute {boolean} circular - Controls whether the indicator renders circular.
|
|
30
|
+
* @attribute {boolean} allow-focus - Controls whether the indicator renders when the target element matches `:focus` instead of `:focus-visible`.
|
|
31
|
+
*
|
|
32
|
+
* @cssproperty --forge-focus-indicator-active-width - The width of the focus indicator when active. When animating this is the max extent.
|
|
33
|
+
* @cssproperty --forge-focus-indicator-color - The color of the focus indicator.
|
|
34
|
+
* @cssproperty --forge-focus-indicator-duration - The animation duration.
|
|
35
|
+
* @cssproperty --forge-focus-indicator-outward-offset - The offset of the focus indicator when outward.
|
|
36
|
+
* @cssproperty --forge-focus-indicator-inward-offset - The offset of the focus indicator when inward.
|
|
37
|
+
* @cssproperty --forge-focus-indicator-shape - The shape of the focus indicator.
|
|
38
|
+
* @cssproperty --forge-focus-indicator-width - The width of the focus indicator when resting.
|
|
39
|
+
* @cssproperty --forge-focus-indicator-shape-start-start - The start start shape.
|
|
40
|
+
* @cssproperty --forge-focus-indicator-shape-start-end - The start end shape.
|
|
41
|
+
* @cssproperty --forge-focus-indicator-shape-end-start - The end start shape.
|
|
42
|
+
* @cssproperty --forge-focus-indicator-shape-end-end - The end end shape.
|
|
43
|
+
* @cssproperty --forge-focus-indicator-offset-block - The block offset.
|
|
44
|
+
* @cssproperty --forge-focus-indicator-offset-inline - The inline offset.
|
|
45
|
+
*
|
|
46
|
+
* @csspart indicator - The focus indicator element.
|
|
47
|
+
*/
|
|
48
|
+
let FocusIndicatorComponent = class FocusIndicatorComponent extends BaseComponent {
|
|
49
|
+
static get observedAttributes() {
|
|
50
|
+
return [
|
|
51
|
+
FOCUS_INDICATOR_CONSTANTS.attributes.TARGET,
|
|
52
|
+
FOCUS_INDICATOR_CONSTANTS.attributes.ACTIVE,
|
|
53
|
+
FOCUS_INDICATOR_CONSTANTS.attributes.INWARD,
|
|
54
|
+
FOCUS_INDICATOR_CONSTANTS.attributes.CIRCULAR,
|
|
55
|
+
FOCUS_INDICATOR_CONSTANTS.attributes.ALLOW_FOCUS
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
constructor() {
|
|
59
|
+
super();
|
|
60
|
+
attachShadowTemplate(this, template, styles);
|
|
61
|
+
this._foundation = new FocusIndicatorFoundation(new FocusIndicatorAdapter(this));
|
|
62
|
+
}
|
|
63
|
+
connectedCallback() {
|
|
64
|
+
this._foundation.initialize();
|
|
65
|
+
}
|
|
66
|
+
disconnectedCallback() {
|
|
67
|
+
this._foundation.destroy();
|
|
68
|
+
}
|
|
69
|
+
attributeChangedCallback(name, oldValue, newValue) {
|
|
70
|
+
switch (name) {
|
|
71
|
+
case FOCUS_INDICATOR_CONSTANTS.attributes.TARGET:
|
|
72
|
+
this.target = newValue;
|
|
73
|
+
break;
|
|
74
|
+
case FOCUS_INDICATOR_CONSTANTS.attributes.ACTIVE:
|
|
75
|
+
this.active = coerceBoolean(newValue);
|
|
76
|
+
break;
|
|
77
|
+
case FOCUS_INDICATOR_CONSTANTS.attributes.INWARD:
|
|
78
|
+
this.inward = coerceBoolean(newValue);
|
|
79
|
+
break;
|
|
80
|
+
case FOCUS_INDICATOR_CONSTANTS.attributes.CIRCULAR:
|
|
81
|
+
this.circular = coerceBoolean(newValue);
|
|
82
|
+
break;
|
|
83
|
+
case FOCUS_INDICATOR_CONSTANTS.attributes.ALLOW_FOCUS:
|
|
84
|
+
this.allowFocus = coerceBoolean(newValue);
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
__decorate([
|
|
90
|
+
FoundationProperty()
|
|
91
|
+
], FocusIndicatorComponent.prototype, "targetElement", void 0);
|
|
92
|
+
__decorate([
|
|
93
|
+
FoundationProperty()
|
|
94
|
+
], FocusIndicatorComponent.prototype, "target", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
FoundationProperty()
|
|
97
|
+
], FocusIndicatorComponent.prototype, "active", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
FoundationProperty()
|
|
100
|
+
], FocusIndicatorComponent.prototype, "inward", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
FoundationProperty()
|
|
103
|
+
], FocusIndicatorComponent.prototype, "circular", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
FoundationProperty()
|
|
106
|
+
], FocusIndicatorComponent.prototype, "allowFocus", void 0);
|
|
107
|
+
FocusIndicatorComponent = __decorate([
|
|
108
|
+
CustomElement({
|
|
109
|
+
name: FOCUS_INDICATOR_CONSTANTS.elementName
|
|
110
|
+
})
|
|
111
|
+
], FocusIndicatorComponent);
|
|
112
|
+
export { FocusIndicatorComponent };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export * from './focus-indicator-adapter';
|
|
7
|
+
export * from './focus-indicator-constants';
|
|
8
|
+
export * from './focus-indicator-foundation';
|
|
9
|
+
export * from './focus-indicator';
|
|
10
|
+
export declare function defineFocusIndicatorComponent(): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { defineCustomElement } from '@tylertech/forge-core';
|
|
7
|
+
import { FocusIndicatorComponent } from './focus-indicator';
|
|
8
|
+
export * from './focus-indicator-adapter';
|
|
9
|
+
export * from './focus-indicator-constants';
|
|
10
|
+
export * from './focus-indicator-foundation';
|
|
11
|
+
export * from './focus-indicator';
|
|
12
|
+
export function defineFocusIndicatorComponent() {
|
|
13
|
+
defineCustomElement(FocusIndicatorComponent);
|
|
14
|
+
}
|
|
@@ -33,6 +33,7 @@ export declare class IconButtonComponent extends BaseComponent implements IIconB
|
|
|
33
33
|
private _dense;
|
|
34
34
|
private _densityLevel;
|
|
35
35
|
private _toggleHandler;
|
|
36
|
+
private _destroyUserInteractionListener;
|
|
36
37
|
constructor();
|
|
37
38
|
connectedCallback(): void;
|
|
38
39
|
disconnectedCallback(): void;
|
|
@@ -7,7 +7,7 @@ import { __decorate } from "tslib";
|
|
|
7
7
|
import { coerceBoolean, coerceNumber, CustomElement, emitEvent, ensureChild, toggleClass } from '@tylertech/forge-core';
|
|
8
8
|
import { BaseComponent } from '../core/base/base-component';
|
|
9
9
|
import { ForgeRipple } from '../ripple';
|
|
10
|
-
import {
|
|
10
|
+
import { createUserInteractionListener } from '../core/utils';
|
|
11
11
|
import { ICON_BUTTON_CONSTANTS } from './icon-button-constants';
|
|
12
12
|
/**
|
|
13
13
|
* The custom element class behind the `<forge-icon-button>` element.
|
|
@@ -39,6 +39,10 @@ let IconButtonComponent = class IconButtonComponent extends BaseComponent {
|
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
disconnectedCallback() {
|
|
42
|
+
if (typeof this._destroyUserInteractionListener === 'function') {
|
|
43
|
+
this._destroyUserInteractionListener();
|
|
44
|
+
this._destroyUserInteractionListener = undefined;
|
|
45
|
+
}
|
|
42
46
|
if (this._rippleInstance) {
|
|
43
47
|
this._rippleInstance.destroy();
|
|
44
48
|
}
|
|
@@ -130,7 +134,10 @@ let IconButtonComponent = class IconButtonComponent extends BaseComponent {
|
|
|
130
134
|
this._deferRippleInitialization();
|
|
131
135
|
}
|
|
132
136
|
async _deferRippleInitialization() {
|
|
133
|
-
const
|
|
137
|
+
const { userInteraction, destroy } = createUserInteractionListener(this._buttonElement);
|
|
138
|
+
this._destroyUserInteractionListener = destroy;
|
|
139
|
+
const { type } = await userInteraction;
|
|
140
|
+
this._destroyUserInteractionListener = undefined;
|
|
134
141
|
if (!this._rippleInstance) {
|
|
135
142
|
this._rippleInstance = this._createRipple();
|
|
136
143
|
if (type === 'focusin') {
|
package/esm/index.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export * from './expansion-panel';
|
|
|
32
32
|
export * from './file-picker';
|
|
33
33
|
export * from './floating-action-button';
|
|
34
34
|
export * from './floating-label';
|
|
35
|
+
export * from './focus-indicator';
|
|
35
36
|
export * from './icon-button';
|
|
36
37
|
export * from './inline-message';
|
|
37
38
|
export * from './keyboard-shortcut';
|
|
@@ -52,6 +53,7 @@ export * from './select';
|
|
|
52
53
|
export * from './skeleton';
|
|
53
54
|
export * from './slider';
|
|
54
55
|
export * from './split-view';
|
|
56
|
+
export * from './state-layer';
|
|
55
57
|
export * from './stepper';
|
|
56
58
|
export * from './switch';
|
|
57
59
|
export * from './table';
|
package/esm/index.js
CHANGED
|
@@ -35,6 +35,7 @@ import { DrawerComponent, MiniDrawerComponent, ModalDrawerComponent } from './dr
|
|
|
35
35
|
import { ExpansionPanelComponent } from './expansion-panel';
|
|
36
36
|
import { FilePickerComponent } from './file-picker';
|
|
37
37
|
import { FloatingActionButton } from './floating-action-button';
|
|
38
|
+
import { FocusIndicatorComponent } from './focus-indicator';
|
|
38
39
|
import { IconButtonComponent } from './icon-button';
|
|
39
40
|
import { InlineMessageComponent } from './inline-message';
|
|
40
41
|
import { KeyboardShortcutComponent } from './keyboard-shortcut';
|
|
@@ -57,6 +58,7 @@ import { OptionComponent, OptionGroupComponent, SelectComponent } from './select
|
|
|
57
58
|
import { SkeletonComponent } from './skeleton';
|
|
58
59
|
import { SliderComponent } from './slider';
|
|
59
60
|
import { SplitViewComponent } from './split-view';
|
|
61
|
+
import { StateLayerComponent } from './state-layer';
|
|
60
62
|
import { StepComponent, StepperComponent } from './stepper';
|
|
61
63
|
import { SwitchComponent } from './switch';
|
|
62
64
|
import { TableComponent } from './table';
|
|
@@ -99,6 +101,7 @@ export * from './expansion-panel';
|
|
|
99
101
|
export * from './file-picker';
|
|
100
102
|
export * from './floating-action-button';
|
|
101
103
|
export * from './floating-label';
|
|
104
|
+
export * from './focus-indicator';
|
|
102
105
|
export * from './icon-button';
|
|
103
106
|
export * from './inline-message';
|
|
104
107
|
export * from './keyboard-shortcut';
|
|
@@ -119,6 +122,7 @@ export * from './select';
|
|
|
119
122
|
export * from './skeleton';
|
|
120
123
|
export * from './slider';
|
|
121
124
|
export * from './split-view';
|
|
125
|
+
export * from './state-layer';
|
|
122
126
|
export * from './stepper';
|
|
123
127
|
export * from './switch';
|
|
124
128
|
export * from './table';
|
|
@@ -162,6 +166,7 @@ const CUSTOM_ELEMENTS = [
|
|
|
162
166
|
ExpansionPanelComponent,
|
|
163
167
|
FilePickerComponent,
|
|
164
168
|
FloatingActionButton,
|
|
169
|
+
FocusIndicatorComponent,
|
|
165
170
|
ProductIconComponent,
|
|
166
171
|
IconComponent,
|
|
167
172
|
IconButtonComponent,
|
|
@@ -195,6 +200,7 @@ const CUSTOM_ELEMENTS = [
|
|
|
195
200
|
SliderComponent,
|
|
196
201
|
SplitViewComponent,
|
|
197
202
|
StackComponent,
|
|
203
|
+
StateLayerComponent,
|
|
198
204
|
StepperComponent,
|
|
199
205
|
StepComponent,
|
|
200
206
|
SwitchComponent,
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';
|
|
7
|
-
import {
|
|
7
|
+
import { createUserInteractionListener } from '../../core/utils';
|
|
8
8
|
import { IListItemComponent } from './list-item';
|
|
9
9
|
export interface IListItemAdapter extends IBaseAdapter {
|
|
10
10
|
initializeAccessibility(): void;
|
|
@@ -27,7 +27,7 @@ export interface IListItemAdapter extends IBaseAdapter {
|
|
|
27
27
|
setIndented(indented: boolean): void;
|
|
28
28
|
setWrap(value: boolean): void;
|
|
29
29
|
trySelect(value: unknown): boolean | null;
|
|
30
|
-
userInteractionListener(): ReturnType<typeof
|
|
30
|
+
userInteractionListener(): ReturnType<typeof createUserInteractionListener>;
|
|
31
31
|
}
|
|
32
32
|
export declare class ListItemAdapter extends BaseAdapter<IListItemComponent> implements IListItemAdapter {
|
|
33
33
|
private _listItemElement;
|
|
@@ -105,5 +105,5 @@ export declare class ListItemAdapter extends BaseAdapter<IListItemComponent> imp
|
|
|
105
105
|
* @returns Returns whether the list item is selected or not
|
|
106
106
|
*/
|
|
107
107
|
trySelect(value: unknown): boolean | null;
|
|
108
|
-
userInteractionListener(): ReturnType<typeof
|
|
108
|
+
userInteractionListener(): ReturnType<typeof createUserInteractionListener>;
|
|
109
109
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { addClass, getShadowElement, removeClass, requireParent, isDeepEqual, toggleClass } from '@tylertech/forge-core';
|
|
7
7
|
import { BaseAdapter } from '../../core/base/base-adapter';
|
|
8
|
-
import {
|
|
8
|
+
import { createUserInteractionListener } from '../../core/utils';
|
|
9
9
|
import { LIST_CONSTANTS } from '../list/list-constants';
|
|
10
10
|
import { LIST_ITEM_CONSTANTS } from './list-item-constants';
|
|
11
11
|
import { ForgeRipple } from '../../ripple';
|
|
@@ -180,6 +180,6 @@ export class ListItemAdapter extends BaseAdapter {
|
|
|
180
180
|
return isSelected;
|
|
181
181
|
}
|
|
182
182
|
userInteractionListener() {
|
|
183
|
-
return
|
|
183
|
+
return createUserInteractionListener(this._listItemElement);
|
|
184
184
|
}
|
|
185
185
|
}
|