@tylertech/forge 3.0.0-next.6 → 3.0.0-next.8
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 +2084 -1482
- 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.Q6IP5GJ6.js → chunk.246JM2YT.js} +2 -2
- package/dist/esm/chunks/{chunk.DHTAH23Y.js → chunk.24L5GDD2.js} +2 -2
- package/dist/esm/chunks/{chunk.ZWTZJJ6H.js → chunk.2IQGDFQS.js} +2 -2
- package/dist/esm/chunks/{chunk.DAGXGSX7.js → chunk.2LRDPTHK.js} +2 -2
- package/dist/esm/chunks/{chunk.Q47M2LB5.js → chunk.2QFIMTVP.js} +2 -2
- package/dist/esm/chunks/{chunk.IVB6XTHQ.js → chunk.2TQONIPK.js} +2 -2
- package/dist/esm/chunks/{chunk.DXHKS7XO.js → chunk.2XFVFZ3P.js} +2 -2
- package/dist/esm/chunks/{chunk.3ICROIFD.js → chunk.2YAU7AXH.js} +2 -2
- package/dist/esm/chunks/{chunk.5B2CGITX.js → chunk.2YX7ASSX.js} +2 -2
- package/dist/esm/chunks/{chunk.QLNGQCJX.js → chunk.2ZTERGYF.js} +2 -2
- package/dist/esm/chunks/{chunk.BIJJCDHE.js → chunk.3AF7CJP2.js} +2 -2
- package/dist/esm/chunks/{chunk.BIJJCDHE.js.map → chunk.3AF7CJP2.js.map} +1 -1
- package/dist/esm/chunks/{chunk.Y2ANYRZH.js → chunk.4EB5NVCK.js} +2 -2
- package/dist/esm/chunks/{chunk.SACZLJPQ.js → chunk.4LVS2EYJ.js} +2 -2
- package/dist/esm/chunks/chunk.57XQ4F6F.js +12 -0
- package/dist/esm/chunks/chunk.57XQ4F6F.js.map +7 -0
- package/dist/esm/chunks/{chunk.E3VXLUEY.js → chunk.5IVB5L5Z.js} +2 -2
- package/dist/esm/chunks/{chunk.GZZ6GFKT.js → chunk.5MK5YWCK.js} +2 -2
- package/dist/esm/chunks/{chunk.QO37K76P.js → chunk.6SBTLXLH.js} +2 -2
- package/dist/esm/chunks/{chunk.BTZF6QGA.js → chunk.7JQHQKXN.js} +2 -2
- package/dist/esm/chunks/{chunk.TWV4OTF7.js → chunk.A5MBSCSQ.js} +2 -2
- package/dist/esm/chunks/{chunk.4EF7UJDK.js → chunk.A5R7KUIP.js} +2 -2
- package/dist/esm/chunks/{chunk.NQH4ZCXJ.js → chunk.AGMPIMJV.js} +2 -2
- package/dist/esm/chunks/{chunk.PMY4KVCF.js → chunk.BKCEVPKW.js} +2 -2
- package/dist/esm/chunks/{chunk.I5MLIFN5.js → chunk.BSTIDYQJ.js} +2 -2
- package/dist/esm/chunks/chunk.C2LTB7EX.js +7 -0
- package/dist/esm/chunks/chunk.C2LTB7EX.js.map +7 -0
- package/dist/esm/chunks/chunk.CN27IHDN.js +7 -0
- package/dist/esm/chunks/chunk.CN27IHDN.js.map +7 -0
- package/dist/esm/chunks/{chunk.MZNL36GJ.js → chunk.CNQESSA3.js} +2 -2
- package/dist/esm/chunks/{chunk.6FISJTFJ.js → chunk.E6KWYFZG.js} +2 -2
- package/dist/esm/chunks/{chunk.H3SBIXK5.js → chunk.ECRL6O3V.js} +2 -2
- package/dist/esm/chunks/{chunk.SBDWCXK3.js → chunk.ER52NFXX.js} +2 -2
- package/dist/esm/chunks/{chunk.GSQF3ACL.js → chunk.EUE3OVC7.js} +2 -2
- package/dist/esm/chunks/{chunk.DGNS4JNN.js → chunk.FAANPQES.js} +2 -2
- package/dist/esm/chunks/{chunk.MZLPUI6R.js → chunk.FYWPZFLJ.js} +2 -2
- package/dist/esm/chunks/{chunk.MZLPUI6R.js.map → chunk.FYWPZFLJ.js.map} +2 -2
- package/dist/esm/chunks/{chunk.LMSXJOPL.js → chunk.GF2GUVYS.js} +2 -2
- package/dist/esm/chunks/{chunk.QKRB6AIQ.js → chunk.GHSAKRYH.js} +2 -2
- package/dist/esm/chunks/{chunk.JHTGKXXX.js → chunk.GJW4WS4I.js} +2 -2
- package/dist/esm/chunks/{chunk.IW37LUQJ.js → chunk.GUYPITGA.js} +2 -2
- package/dist/esm/chunks/{chunk.G75X57KY.js → chunk.HKJEGD6C.js} +2 -2
- package/dist/esm/chunks/{chunk.3ARIVYGG.js → chunk.IGK3VYZG.js} +2 -2
- package/dist/esm/chunks/chunk.IIXLFXHZ.js +7 -0
- package/dist/esm/chunks/chunk.IIXLFXHZ.js.map +7 -0
- package/dist/esm/chunks/chunk.JQIOVCKI.js +7 -0
- package/dist/esm/chunks/chunk.JQIOVCKI.js.map +7 -0
- package/dist/esm/chunks/{chunk.7MDHI4PT.js → chunk.JVW6JGV3.js} +2 -2
- package/dist/esm/chunks/chunk.LJYTJ3RV.js +7 -0
- package/dist/esm/chunks/chunk.LJYTJ3RV.js.map +7 -0
- package/dist/esm/chunks/{chunk.LQ4RD7WW.js → chunk.MXNLCQRB.js} +2 -2
- package/dist/esm/chunks/{chunk.DCCJTW7C.js → chunk.NDGFQILG.js} +2 -2
- package/dist/esm/chunks/{chunk.PG4HEEX2.js → chunk.OTVT3XM2.js} +2 -2
- package/dist/esm/chunks/{chunk.VSO5QDBV.js → chunk.P5QIB6OY.js} +2 -2
- package/dist/esm/chunks/{chunk.XUV63FEH.js → chunk.PPPTT3SM.js} +2 -2
- package/dist/esm/chunks/{chunk.GZRMHYID.js → chunk.QA3NU7EN.js} +2 -2
- package/dist/esm/chunks/{chunk.MVYTV6WX.js → chunk.QYKO543K.js} +2 -2
- package/dist/esm/chunks/{chunk.XI4RWFCG.js → chunk.RHYRMQS7.js} +2 -2
- package/dist/esm/chunks/{chunk.Q4SCW4FN.js → chunk.RUSHOL23.js} +2 -2
- package/dist/esm/chunks/{chunk.AD4CP4UK.js → chunk.SIJGKRYS.js} +2 -2
- package/dist/esm/chunks/{chunk.RTMDWDS4.js → chunk.SYZB7B4F.js} +2 -2
- package/dist/esm/chunks/{chunk.GYPPM2D2.js → chunk.SZIM4KFZ.js} +2 -2
- package/dist/esm/chunks/{chunk.UXQZFI55.js → chunk.THPU5KBV.js} +2 -2
- package/dist/esm/chunks/{chunk.K6VWRQWY.js → chunk.TXFYS6EU.js} +2 -2
- package/dist/esm/chunks/{chunk.ZLFH7VOM.js → chunk.V4RBOYNH.js} +2 -2
- package/dist/esm/chunks/chunk.WH6C36MO.js +7 -0
- package/dist/esm/chunks/chunk.WH6C36MO.js.map +7 -0
- package/dist/esm/chunks/{chunk.JRV5FYMW.js → chunk.YUAU5IWT.js} +2 -2
- package/dist/esm/chunks/{chunk.YSFUL5AD.js → chunk.YZLASVCK.js} +2 -2
- package/dist/esm/chunks/{chunk.R7MQKCHR.js → chunk.Z5TWWM7I.js} +2 -2
- 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/expansion-panel/index.js +1 -1
- package/dist/esm/file-picker/index.js +1 -1
- package/dist/esm/floating-action-button/index.js +1 -1
- package/dist/esm/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/ripple/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/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/time-picker/index.js +1 -1
- package/dist/esm/toast/index.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/focus-indicator/focus-indicator-adapter.d.ts +37 -0
- package/esm/focus-indicator/focus-indicator-adapter.js +59 -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/index.d.ts +1 -0
- package/esm/index.js +3 -0
- package/esm/slider/slider-utils.js +3 -0
- package/esm/slider/slider.d.ts +0 -1
- package/esm/slider/slider.js +7 -4
- package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
- package/esm/tabs/tab/tab-adapter.d.ts +15 -39
- package/esm/tabs/tab/tab-adapter.js +65 -78
- package/esm/tabs/tab/tab-constants.d.ts +13 -13
- package/esm/tabs/tab/tab-constants.js +18 -10
- package/esm/tabs/tab/tab-foundation.d.ts +24 -23
- package/esm/tabs/tab/tab-foundation.js +68 -62
- package/esm/tabs/tab/tab-ripple.d.ts +17 -0
- package/esm/tabs/tab/tab-ripple.js +33 -0
- package/esm/tabs/tab/tab.d.ts +56 -19
- package/esm/tabs/tab/tab.js +82 -32
- package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +49 -87
- package/esm/tabs/tab-bar/tab-bar-adapter.js +114 -188
- package/esm/tabs/tab-bar/tab-bar-constants.d.ts +15 -45
- package/esm/tabs/tab-bar/tab-bar-constants.js +22 -56
- package/esm/tabs/tab-bar/tab-bar-foundation.d.ts +56 -65
- package/esm/tabs/tab-bar/tab-bar-foundation.js +241 -302
- package/esm/tabs/tab-bar/tab-bar.d.ts +51 -36
- package/esm/tabs/tab-bar/tab-bar.js +84 -52
- package/package.json +1 -1
- package/styles/card/_mixins.scss +8 -7
- package/styles/core/style-layer/tabs/tab/_core.scss +419 -0
- package/styles/core/style-layer/tabs/tab/_variables.scss +20 -0
- package/styles/core/style-layer/tabs/tab/index.scss +13 -0
- package/styles/core/style-layer/tabs/tab-bar/_core.scss +110 -0
- package/styles/core/style-layer/tabs/tab-bar/_variables.scss +9 -0
- package/styles/core/style-layer/tabs/tab-bar/index.scss +13 -0
- package/styles/focus-indicator/_mixins.scss +147 -0
- package/styles/focus-indicator/_variables.scss +20 -0
- package/styles/focus-indicator/focus-indicator.scss +32 -0
- package/styles/slider/_mixins.scss +9 -0
- package/styles/tabs/tab/_mixins.scss +55 -126
- package/styles/tabs/tab/_variables.scss +26 -4
- package/styles/tabs/tab/tab.scss +50 -11
- package/styles/tabs/tab-bar/_mixins.scss +20 -60
- package/styles/tabs/tab-bar/_variables.scss +11 -0
- package/styles/tabs/tab-bar/tab-bar.scss +29 -2
- package/dist/esm/chunks/chunk.4B22UXEH.js +0 -7
- package/dist/esm/chunks/chunk.4B22UXEH.js.map +0 -7
- package/dist/esm/chunks/chunk.4QPMNWJ3.js +0 -129
- package/dist/esm/chunks/chunk.4QPMNWJ3.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.D3IAEEPM.js +0 -201
- package/dist/esm/chunks/chunk.D3IAEEPM.js.map +0 -7
- package/dist/esm/chunks/chunk.NV4U4DE6.js +0 -12
- package/dist/esm/chunks/chunk.NV4U4DE6.js.map +0 -7
- /package/dist/esm/chunks/{chunk.Q6IP5GJ6.js.map → chunk.246JM2YT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DHTAH23Y.js.map → chunk.24L5GDD2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZWTZJJ6H.js.map → chunk.2IQGDFQS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DAGXGSX7.js.map → chunk.2LRDPTHK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Q47M2LB5.js.map → chunk.2QFIMTVP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IVB6XTHQ.js.map → chunk.2TQONIPK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DXHKS7XO.js.map → chunk.2XFVFZ3P.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3ICROIFD.js.map → chunk.2YAU7AXH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.5B2CGITX.js.map → chunk.2YX7ASSX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QLNGQCJX.js.map → chunk.2ZTERGYF.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Y2ANYRZH.js.map → chunk.4EB5NVCK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SACZLJPQ.js.map → chunk.4LVS2EYJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.E3VXLUEY.js.map → chunk.5IVB5L5Z.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GZZ6GFKT.js.map → chunk.5MK5YWCK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QO37K76P.js.map → chunk.6SBTLXLH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.BTZF6QGA.js.map → chunk.7JQHQKXN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.TWV4OTF7.js.map → chunk.A5MBSCSQ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.4EF7UJDK.js.map → chunk.A5R7KUIP.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.NQH4ZCXJ.js.map → chunk.AGMPIMJV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PMY4KVCF.js.map → chunk.BKCEVPKW.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.I5MLIFN5.js.map → chunk.BSTIDYQJ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MZNL36GJ.js.map → chunk.CNQESSA3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.6FISJTFJ.js.map → chunk.E6KWYFZG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.H3SBIXK5.js.map → chunk.ECRL6O3V.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.SBDWCXK3.js.map → chunk.ER52NFXX.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GSQF3ACL.js.map → chunk.EUE3OVC7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DGNS4JNN.js.map → chunk.FAANPQES.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.LMSXJOPL.js.map → chunk.GF2GUVYS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.QKRB6AIQ.js.map → chunk.GHSAKRYH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JHTGKXXX.js.map → chunk.GJW4WS4I.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.IW37LUQJ.js.map → chunk.GUYPITGA.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.G75X57KY.js.map → chunk.HKJEGD6C.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.3ARIVYGG.js.map → chunk.IGK3VYZG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.7MDHI4PT.js.map → chunk.JVW6JGV3.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.LQ4RD7WW.js.map → chunk.MXNLCQRB.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.DCCJTW7C.js.map → chunk.NDGFQILG.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.PG4HEEX2.js.map → chunk.OTVT3XM2.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.VSO5QDBV.js.map → chunk.P5QIB6OY.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XUV63FEH.js.map → chunk.PPPTT3SM.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GZRMHYID.js.map → chunk.QA3NU7EN.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.MVYTV6WX.js.map → chunk.QYKO543K.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.XI4RWFCG.js.map → chunk.RHYRMQS7.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.Q4SCW4FN.js.map → chunk.RUSHOL23.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.AD4CP4UK.js.map → chunk.SIJGKRYS.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.RTMDWDS4.js.map → chunk.SYZB7B4F.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.GYPPM2D2.js.map → chunk.SZIM4KFZ.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.UXQZFI55.js.map → chunk.THPU5KBV.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.K6VWRQWY.js.map → chunk.TXFYS6EU.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.ZLFH7VOM.js.map → chunk.V4RBOYNH.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.JRV5FYMW.js.map → chunk.YUAU5IWT.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.YSFUL5AD.js.map → chunk.YZLASVCK.js.map} +0 -0
- /package/dist/esm/chunks/{chunk.R7MQKCHR.js.map → chunk.Z5TWWM7I.js.map} +0 -0
|
@@ -3,32 +3,64 @@
|
|
|
3
3
|
* Copyright 2023 Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { TabBarLayoutMode, TabBarLayoutAlign, ITabBarActivateEventData } from './tab-bar-constants';
|
|
7
6
|
import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
|
|
8
7
|
export interface ITabBarComponent extends IBaseComponent {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
autoActivate: boolean;
|
|
8
|
+
disabled: boolean;
|
|
9
|
+
activeTab: number | null | undefined;
|
|
10
|
+
vertical: boolean;
|
|
11
|
+
clustered: boolean;
|
|
14
12
|
stacked: boolean;
|
|
13
|
+
secondary: boolean;
|
|
14
|
+
inverted: boolean;
|
|
15
|
+
autoActivate: boolean;
|
|
15
16
|
scrollButtons: boolean;
|
|
16
|
-
forceScrollButtons: boolean;
|
|
17
|
-
activateTab(index: number): void;
|
|
18
|
-
scrollTabIntoView(index: number): void;
|
|
19
17
|
}
|
|
20
18
|
declare global {
|
|
21
19
|
interface HTMLElementTagNameMap {
|
|
22
20
|
'forge-tab-bar': ITabBarComponent;
|
|
23
21
|
}
|
|
24
22
|
interface HTMLElementEventMap {
|
|
25
|
-
'forge-tab-bar-
|
|
23
|
+
'forge-tab-bar-change': CustomEvent<number>;
|
|
26
24
|
}
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
29
|
-
* The custom element class behind the `<forge-tab-bar>` element.
|
|
30
|
-
*
|
|
31
27
|
* @tag forge-tab-bar
|
|
28
|
+
*
|
|
29
|
+
* @summary Tabs organize content across different screens and views.
|
|
30
|
+
*
|
|
31
|
+
* @description
|
|
32
|
+
* Use tabs to group content into helpful categories. Tabs are typically placed
|
|
33
|
+
* above the content they relate to. Tabs can be used to navigate between screens,
|
|
34
|
+
* or to group related content within a screen.
|
|
35
|
+
*
|
|
36
|
+
* @property {boolean} disabled - The disabled state of the tab bar.
|
|
37
|
+
* @property {number} activeTab - The index of the active tab.
|
|
38
|
+
* @property {boolean} vertical - Controls whether the tab bar is vertical or horizontal.
|
|
39
|
+
* @property {boolean} clustered - Controls whether the tabs stretch the full width of their container or cluster together at their minimum width.
|
|
40
|
+
* @property {boolean} stacked - Controls whether the tabs are taller to allow for slotted leading/trailing elements.
|
|
41
|
+
* @property {boolean} secondary - Controls whether the tabs are styled as secondary tab navigation.
|
|
42
|
+
* @property {boolean} inverted - Controls whether the tabs are rendered inverted (tab indicator at top instead of bottom).
|
|
43
|
+
* @property {boolean} autoActivate - Controls whether the tabs are automatically activated when receiving focus.
|
|
44
|
+
* @property {boolean} scrollButtons - Controls whether scroll buttons are displayed when the tabs overflow their container.
|
|
45
|
+
*
|
|
46
|
+
* @attribute disabled - The disabled state of the tab bar.
|
|
47
|
+
* @attribute active-tab - The index of the active tab.
|
|
48
|
+
* @attribute vertical - Controls whether the tab bar is vertical or horizontal.
|
|
49
|
+
* @attribute clustered - Controls whether the tabs stretch the full width of their container or cluster together at their minimum width.
|
|
50
|
+
* @attribute stacked - Controls whether the tabs are taller to allow for slotted leading/trailing elements.
|
|
51
|
+
* @attribute secondary - Controls whether the tabs are styled as secondary tab navigation.
|
|
52
|
+
* @attribute auto-activate - Controls whether the tabs are automatically activated when receiving focus.
|
|
53
|
+
* @attribute scroll-buttons - Controls whether scroll buttons are displayed when the tabs overflow their container.
|
|
54
|
+
*
|
|
55
|
+
* @event forge-tab-bar-change {CustomEvent<number>} - Dispatches when the active tab changes.
|
|
56
|
+
*
|
|
57
|
+
* @cssproperty --forge-tab-bar-justify - The `justify-content` value for the tab bar flex container.
|
|
58
|
+
* @cssproperty --forge-tab-bar-stretch - The `flex` value for the child `<forge-tab>` elements.
|
|
59
|
+
* @cssproperty --forge-tab-bar-underline-color - The color of the underline.
|
|
60
|
+
* @cssproperty --forge-tab-bar-underline-thickness - The thickness of the underline.
|
|
61
|
+
*
|
|
62
|
+
* @csspart container - The container element.
|
|
63
|
+
* @csspart scroll-container - The scroll container element.
|
|
32
64
|
*/
|
|
33
65
|
export declare class TabBarComponent extends BaseComponent implements ITabBarComponent {
|
|
34
66
|
static get observedAttributes(): string[];
|
|
@@ -37,30 +69,13 @@ export declare class TabBarComponent extends BaseComponent implements ITabBarCom
|
|
|
37
69
|
connectedCallback(): void;
|
|
38
70
|
disconnectedCallback(): void;
|
|
39
71
|
attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
|
|
40
|
-
|
|
41
|
-
activeTab: number;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
/** Gets/sets the layout alignment. Only pertains to non-full width layout modes. */
|
|
45
|
-
layoutAlign: TabBarLayoutAlign;
|
|
46
|
-
/** Gets/sets whether the component displays an underline or not. Default is `false`. */
|
|
47
|
-
underline: boolean;
|
|
48
|
-
/** Gets/sets whether tabs are auto-activated when using arrow keys. Default is `true` */
|
|
49
|
-
autoActivate: boolean;
|
|
50
|
-
/** Gets/sets whether the tabs are displayed with as their stacked variant. Default is `false`. */
|
|
72
|
+
disabled: boolean;
|
|
73
|
+
activeTab: number | null | undefined;
|
|
74
|
+
vertical: boolean;
|
|
75
|
+
clustered: boolean;
|
|
51
76
|
stacked: boolean;
|
|
52
|
-
|
|
77
|
+
secondary: boolean;
|
|
78
|
+
inverted: boolean;
|
|
79
|
+
autoActivate: boolean;
|
|
53
80
|
scrollButtons: boolean;
|
|
54
|
-
/** Gets/sets whether the scroll buttons are visible indefinitely or not. Default is `false`. */
|
|
55
|
-
forceScrollButtons: boolean;
|
|
56
|
-
/**
|
|
57
|
-
* Activates the tab at the given index.
|
|
58
|
-
* @param index The index of the tab.
|
|
59
|
-
*/
|
|
60
|
-
activateTab(index: number): void;
|
|
61
|
-
/**
|
|
62
|
-
* Scrolls the tab at the given index into view.
|
|
63
|
-
* @param index The index of the tab.
|
|
64
|
-
*/
|
|
65
|
-
scrollTabIntoView(index: number): void;
|
|
66
81
|
}
|
|
@@ -4,38 +4,78 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { TabComponent } from '../tab/tab';
|
|
7
|
+
import { attachShadowTemplate, coerceBoolean, coerceNumber, CustomElement, FoundationProperty } from '@tylertech/forge-core';
|
|
8
|
+
import { IconComponent, IconRegistry } from '../../icon';
|
|
10
9
|
import { IconButtonComponent } from '../../icon-button';
|
|
10
|
+
import { BaseComponent } from '../../core/base/base-component';
|
|
11
|
+
import { TabComponent } from '../tab/tab';
|
|
12
|
+
import { TabBarAdapter } from './tab-bar-adapter';
|
|
11
13
|
import { TAB_BAR_CONSTANTS } from './tab-bar-constants';
|
|
12
14
|
import { TabBarFoundation } from './tab-bar-foundation';
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const template = '<template><div class=\"forge-tab-bar\" part=\"root\"><div class=\"forge-tab-bar__scroll-prev-container\" part=\"previous-container\"><forge-icon-button part=\"previous-button\"><button type=\"button\" tabindex=\"-1\" aria-label=\"Scroll left\" id=\"scroll-prev-btn\" part=\"previous-button-element\"><forge-icon name=\"keyboard_arrow_left\" part=\"previous-button-icon\"></forge-icon></button></forge-icon-button></div><div class=\"mdc-tab-scroller\" part=\"tab-scroller\"><div class=\"mdc-tab-scroller__scroll-area\" part=\"scroll-area\"><div class=\"mdc-tab-scroller__scroll-content\" part=\"scroll-content\"><slot></slot></div></div></div><div class=\"forge-tab-bar__scroll-next-container\" part=\"next-container\"><forge-icon-button part=\"next-button\"><button type=\"button\" tabindex=\"-1\" aria-label=\"Scroll right\" id=\"scroll-next-btn\" part=\"next-button-element\"><forge-icon name=\"keyboard_arrow_right\" part=\"next-button-icon\"></forge-icon></button></forge-icon-button></div></div></template>';
|
|
17
|
-
const styles = '.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{-webkit-transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1),250ms -webkit-transform cubic-bezier(.4, 0, .2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:-webkit-box;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 0 auto;-webkit-transform:none;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{-webkit-box-pack:start;justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.forge-tab-bar{height:48px;height:var(--forge-tab-bar-height,48px);display:-webkit-box;display:flex;position:relative}.forge-tab-bar--underlined::after{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);content:\"\";border-bottom-width:1px;border-bottom-style:solid;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:absolute;bottom:0;left:0;right:0}.forge-tab-bar--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.forge-tab-bar--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.forge-tab-bar--stacked{height:72px;height:var(--forge-tab-bar-height,72px);-webkit-box-align:center;align-items:center}.forge-tab-bar--stacked .mdc-tab-scroller{height:100%}.mdc-tab-scroller{z-index:1;width:100%}.mdc-tab-scroller__scroll-area{height:100%;overflow-x:auto;scrollbar-width:none}:host{display:block;overflow:hidden}:host([hidden]){display:none}';
|
|
15
|
+
import { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight, tylIconKeyboardArrowUp, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons/standard';
|
|
16
|
+
const template = '<template><div class=\"container\" part=\"container\"><div role=\"tablist\" class=\"scroll-container\" part=\"scroll-container\"><slot></slot></div></div></template>';
|
|
17
|
+
const styles = '.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.container{--_container-justify:var(--forge-tab-bar-justify, space-between);--_tab-flex:var(--forge-tab-bar-stretch, 1);--_divider-color:var(--forge-tab-bar-underline-color, var(--forge-theme-border-color, #e0e0e0));--_divider-thickness:var(--forge-tab-bar-underline-thickness, 1px);position:relative;display:grid;grid-template-columns:auto 1fr auto;max-width:100%;max-height:100%;-webkit-box-align:center;align-items:center;border-bottom:var(--_divider-thickness) solid var(--_divider-color)}.scroll-container{position:relative;display:-webkit-box;display:flex;-webkit-box-pack:var(--_container-justify);justify-content:var(--_container-justify);-webkit-box-align:end;align-items:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;scroll-behavior:smooth;scrollbar-width:none;grid-column:2}.scroll-container::-webkit-scrollbar{display:none}::slotted(*){-webkit-box-flex:var(--_tab-flex);flex:var(--_tab-flex)}::slotted([selected]){z-index:1}:host{position:relative;display:block}:host([vertical]) .container{grid-template-columns:none;grid-template-rows:auto 1fr auto;-webkit-box-align:initial;align-items:initial;border-bottom:none;border-right:var(--_divider-thickness) solid var(--_divider-color);height:100%}:host([vertical]) .scroll-container{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:stretch;align-items:stretch;gap:0;grid-column:auto;grid-row:2}:host([vertical]) .scroll-button{justify-self:center}:host([inverted]:not([vertical])) .container{border-bottom:none;border-top:var(--_divider-thickness) solid var(--_divider-color)}:host([inverted][vertical]) .container{border-right:none;border-left:var(--_divider-thickness) solid var(--_divider-color)}:host([clustered]){--forge-tab-bar-justify:flex-start;--forge-tab-bar-stretch:0}:host([clustered=start]){--forge-tab-bar-justify:flex-start}:host([clustered=center]){--forge-tab-bar-justify:center}:host([clustered=end]){--forge-tab-bar-justify:flex-end}:host([hidden]){display:none}';
|
|
18
18
|
/**
|
|
19
|
-
* The custom element class behind the `<forge-tab-bar>` element.
|
|
20
|
-
*
|
|
21
19
|
* @tag forge-tab-bar
|
|
20
|
+
*
|
|
21
|
+
* @summary Tabs organize content across different screens and views.
|
|
22
|
+
*
|
|
23
|
+
* @description
|
|
24
|
+
* Use tabs to group content into helpful categories. Tabs are typically placed
|
|
25
|
+
* above the content they relate to. Tabs can be used to navigate between screens,
|
|
26
|
+
* or to group related content within a screen.
|
|
27
|
+
*
|
|
28
|
+
* @property {boolean} disabled - The disabled state of the tab bar.
|
|
29
|
+
* @property {number} activeTab - The index of the active tab.
|
|
30
|
+
* @property {boolean} vertical - Controls whether the tab bar is vertical or horizontal.
|
|
31
|
+
* @property {boolean} clustered - Controls whether the tabs stretch the full width of their container or cluster together at their minimum width.
|
|
32
|
+
* @property {boolean} stacked - Controls whether the tabs are taller to allow for slotted leading/trailing elements.
|
|
33
|
+
* @property {boolean} secondary - Controls whether the tabs are styled as secondary tab navigation.
|
|
34
|
+
* @property {boolean} inverted - Controls whether the tabs are rendered inverted (tab indicator at top instead of bottom).
|
|
35
|
+
* @property {boolean} autoActivate - Controls whether the tabs are automatically activated when receiving focus.
|
|
36
|
+
* @property {boolean} scrollButtons - Controls whether scroll buttons are displayed when the tabs overflow their container.
|
|
37
|
+
*
|
|
38
|
+
* @attribute disabled - The disabled state of the tab bar.
|
|
39
|
+
* @attribute active-tab - The index of the active tab.
|
|
40
|
+
* @attribute vertical - Controls whether the tab bar is vertical or horizontal.
|
|
41
|
+
* @attribute clustered - Controls whether the tabs stretch the full width of their container or cluster together at their minimum width.
|
|
42
|
+
* @attribute stacked - Controls whether the tabs are taller to allow for slotted leading/trailing elements.
|
|
43
|
+
* @attribute secondary - Controls whether the tabs are styled as secondary tab navigation.
|
|
44
|
+
* @attribute auto-activate - Controls whether the tabs are automatically activated when receiving focus.
|
|
45
|
+
* @attribute scroll-buttons - Controls whether scroll buttons are displayed when the tabs overflow their container.
|
|
46
|
+
*
|
|
47
|
+
* @event forge-tab-bar-change {CustomEvent<number>} - Dispatches when the active tab changes.
|
|
48
|
+
*
|
|
49
|
+
* @cssproperty --forge-tab-bar-justify - The `justify-content` value for the tab bar flex container.
|
|
50
|
+
* @cssproperty --forge-tab-bar-stretch - The `flex` value for the child `<forge-tab>` elements.
|
|
51
|
+
* @cssproperty --forge-tab-bar-underline-color - The color of the underline.
|
|
52
|
+
* @cssproperty --forge-tab-bar-underline-thickness - The thickness of the underline.
|
|
53
|
+
*
|
|
54
|
+
* @csspart container - The container element.
|
|
55
|
+
* @csspart scroll-container - The scroll container element.
|
|
22
56
|
*/
|
|
23
57
|
let TabBarComponent = class TabBarComponent extends BaseComponent {
|
|
24
58
|
static get observedAttributes() {
|
|
25
59
|
return [
|
|
60
|
+
TAB_BAR_CONSTANTS.attributes.DISABLED,
|
|
26
61
|
TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB,
|
|
27
|
-
TAB_BAR_CONSTANTS.attributes.
|
|
28
|
-
TAB_BAR_CONSTANTS.attributes.
|
|
29
|
-
TAB_BAR_CONSTANTS.attributes.UNDERLINE,
|
|
30
|
-
TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE,
|
|
62
|
+
TAB_BAR_CONSTANTS.attributes.VERTICAL,
|
|
63
|
+
TAB_BAR_CONSTANTS.attributes.CLUSTERED,
|
|
31
64
|
TAB_BAR_CONSTANTS.attributes.STACKED,
|
|
32
|
-
TAB_BAR_CONSTANTS.attributes.
|
|
33
|
-
TAB_BAR_CONSTANTS.attributes.
|
|
65
|
+
TAB_BAR_CONSTANTS.attributes.SECONDARY,
|
|
66
|
+
TAB_BAR_CONSTANTS.attributes.INVERTED,
|
|
67
|
+
TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE,
|
|
68
|
+
TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS
|
|
34
69
|
];
|
|
35
70
|
}
|
|
36
71
|
constructor() {
|
|
37
72
|
super();
|
|
38
|
-
IconRegistry.define([
|
|
73
|
+
IconRegistry.define([
|
|
74
|
+
tylIconKeyboardArrowLeft,
|
|
75
|
+
tylIconKeyboardArrowRight,
|
|
76
|
+
tylIconKeyboardArrowUp,
|
|
77
|
+
tylIconKeyboardArrowDown
|
|
78
|
+
]);
|
|
39
79
|
attachShadowTemplate(this, template, styles);
|
|
40
80
|
this._foundation = new TabBarFoundation(new TabBarAdapter(this));
|
|
41
81
|
}
|
|
@@ -43,75 +83,67 @@ let TabBarComponent = class TabBarComponent extends BaseComponent {
|
|
|
43
83
|
this._foundation.initialize();
|
|
44
84
|
}
|
|
45
85
|
disconnectedCallback() {
|
|
46
|
-
this._foundation.
|
|
86
|
+
this._foundation.destroy();
|
|
47
87
|
}
|
|
48
88
|
attributeChangedCallback(name, oldValue, newValue) {
|
|
49
89
|
switch (name) {
|
|
90
|
+
case TAB_BAR_CONSTANTS.attributes.DISABLED:
|
|
91
|
+
this.disabled = coerceBoolean(newValue);
|
|
92
|
+
break;
|
|
50
93
|
case TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB:
|
|
51
|
-
this.activeTab = coerceNumber(newValue);
|
|
94
|
+
this.activeTab = newValue ? coerceNumber(newValue) : undefined;
|
|
52
95
|
break;
|
|
53
|
-
case TAB_BAR_CONSTANTS.attributes.
|
|
54
|
-
this.
|
|
96
|
+
case TAB_BAR_CONSTANTS.attributes.VERTICAL:
|
|
97
|
+
this.vertical = coerceBoolean(newValue);
|
|
55
98
|
break;
|
|
56
|
-
case TAB_BAR_CONSTANTS.attributes.
|
|
57
|
-
this.
|
|
99
|
+
case TAB_BAR_CONSTANTS.attributes.CLUSTERED:
|
|
100
|
+
this.clustered = coerceBoolean(newValue);
|
|
58
101
|
break;
|
|
59
|
-
case TAB_BAR_CONSTANTS.attributes.
|
|
60
|
-
this.
|
|
102
|
+
case TAB_BAR_CONSTANTS.attributes.STACKED:
|
|
103
|
+
this.stacked = coerceBoolean(newValue);
|
|
104
|
+
break;
|
|
105
|
+
case TAB_BAR_CONSTANTS.attributes.SECONDARY:
|
|
106
|
+
this.secondary = coerceBoolean(newValue);
|
|
107
|
+
break;
|
|
108
|
+
case TAB_BAR_CONSTANTS.attributes.INVERTED:
|
|
109
|
+
this.inverted = coerceBoolean(newValue);
|
|
61
110
|
break;
|
|
62
111
|
case TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE:
|
|
63
112
|
this.autoActivate = coerceBoolean(newValue);
|
|
64
113
|
break;
|
|
65
|
-
case TAB_BAR_CONSTANTS.attributes.STACKED:
|
|
66
|
-
this.stacked = coerceBoolean(newValue);
|
|
67
|
-
break;
|
|
68
114
|
case TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS:
|
|
69
115
|
this.scrollButtons = coerceBoolean(newValue);
|
|
70
116
|
break;
|
|
71
|
-
case TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS:
|
|
72
|
-
this.forceScrollButtons = coerceBoolean(newValue);
|
|
73
|
-
break;
|
|
74
117
|
}
|
|
75
118
|
}
|
|
76
|
-
/**
|
|
77
|
-
* Activates the tab at the given index.
|
|
78
|
-
* @param index The index of the tab.
|
|
79
|
-
*/
|
|
80
|
-
activateTab(index) {
|
|
81
|
-
this._foundation.activateTab(index);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Scrolls the tab at the given index into view.
|
|
85
|
-
* @param index The index of the tab.
|
|
86
|
-
*/
|
|
87
|
-
scrollTabIntoView(index) {
|
|
88
|
-
this._foundation.scrollIntoView(index);
|
|
89
|
-
}
|
|
90
119
|
};
|
|
120
|
+
__decorate([
|
|
121
|
+
FoundationProperty()
|
|
122
|
+
], TabBarComponent.prototype, "disabled", void 0);
|
|
91
123
|
__decorate([
|
|
92
124
|
FoundationProperty()
|
|
93
125
|
], TabBarComponent.prototype, "activeTab", void 0);
|
|
94
126
|
__decorate([
|
|
95
127
|
FoundationProperty()
|
|
96
|
-
], TabBarComponent.prototype, "
|
|
128
|
+
], TabBarComponent.prototype, "vertical", void 0);
|
|
97
129
|
__decorate([
|
|
98
130
|
FoundationProperty()
|
|
99
|
-
], TabBarComponent.prototype, "
|
|
131
|
+
], TabBarComponent.prototype, "clustered", void 0);
|
|
100
132
|
__decorate([
|
|
101
133
|
FoundationProperty()
|
|
102
|
-
], TabBarComponent.prototype, "
|
|
134
|
+
], TabBarComponent.prototype, "stacked", void 0);
|
|
103
135
|
__decorate([
|
|
104
136
|
FoundationProperty()
|
|
105
|
-
], TabBarComponent.prototype, "
|
|
137
|
+
], TabBarComponent.prototype, "secondary", void 0);
|
|
106
138
|
__decorate([
|
|
107
139
|
FoundationProperty()
|
|
108
|
-
], TabBarComponent.prototype, "
|
|
140
|
+
], TabBarComponent.prototype, "inverted", void 0);
|
|
109
141
|
__decorate([
|
|
110
142
|
FoundationProperty()
|
|
111
|
-
], TabBarComponent.prototype, "
|
|
143
|
+
], TabBarComponent.prototype, "autoActivate", void 0);
|
|
112
144
|
__decorate([
|
|
113
145
|
FoundationProperty()
|
|
114
|
-
], TabBarComponent.prototype, "
|
|
146
|
+
], TabBarComponent.prototype, "scrollButtons", void 0);
|
|
115
147
|
TabBarComponent = __decorate([
|
|
116
148
|
CustomElement({
|
|
117
149
|
name: TAB_BAR_CONSTANTS.elementName,
|
package/package.json
CHANGED
package/styles/card/_mixins.scss
CHANGED
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
.forge-card {
|
|
17
17
|
@include base;
|
|
18
18
|
|
|
19
|
-
&--
|
|
20
|
-
@include
|
|
19
|
+
&--raised {
|
|
20
|
+
@include raised;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
}
|
|
@@ -29,17 +29,18 @@
|
|
|
29
29
|
@mixin base() {
|
|
30
30
|
@include mdc-card-mixins.fill-color(surface);
|
|
31
31
|
@include mdc-card-mixins.shape-radius(medium);
|
|
32
|
-
@include mdc-
|
|
32
|
+
@include mdc-card-mixins.outline(mdc-card-variables.$outline-color);
|
|
33
33
|
@include theme.css-custom-property(height, --forge-card-height, 100%);
|
|
34
34
|
@include theme.css-custom-property(width, --forge-card-width, 100%);
|
|
35
35
|
@include theme.css-custom-property(padding, --forge-card-padding, variables.$padding);
|
|
36
36
|
@include theme.css-custom-property(overflow, --forge-card-overflow, hidden);
|
|
37
|
+
@include theme.property(border-color, border-color);
|
|
37
38
|
|
|
38
39
|
box-sizing: border-box;
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
@mixin
|
|
42
|
-
@include mdc-elevation-theme.elevation(
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
@mixin raised() {
|
|
43
|
+
@include mdc-elevation-theme.elevation(1);
|
|
44
|
+
|
|
45
|
+
border: none;
|
|
45
46
|
}
|