@fluentui/react-tabs 1.0.0-beta.97 → 9.0.0-beta.10
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/CHANGELOG.json +181 -1762
- package/CHANGELOG.md +54 -718
- package/README.md +0 -17
- package/Spec.md +433 -0
- package/dist/react-tabs.d.ts +173 -127
- package/lib/Tab.d.ts +1 -0
- package/lib/Tab.js +2 -0
- package/lib/Tab.js.map +1 -0
- package/lib/TabList.d.ts +1 -0
- package/lib/TabList.js +2 -0
- package/lib/TabList.js.map +1 -0
- package/lib/components/Tab/Tab.d.ts +6 -0
- package/lib/components/Tab/Tab.js +15 -0
- package/lib/components/Tab/Tab.js.map +1 -0
- package/lib/components/Tab/Tab.types.d.ts +61 -0
- package/lib/components/Tab/Tab.types.js +2 -0
- package/lib/components/Tab/Tab.types.js.map +1 -0
- package/lib/components/Tab/index.d.ts +6 -0
- package/lib/components/Tab/index.js +7 -0
- package/lib/components/Tab/index.js.map +1 -0
- package/lib/components/Tab/renderTab.d.ts +5 -0
- package/lib/components/Tab/renderTab.js +17 -0
- package/lib/components/Tab/renderTab.js.map +1 -0
- package/lib/components/Tab/useTab.d.ts +12 -0
- package/lib/components/Tab/useTab.js +78 -0
- package/lib/components/Tab/useTab.js.map +1 -0
- package/lib/components/Tab/useTabAnimatedIndicator.d.ts +5 -0
- package/lib/components/Tab/useTabAnimatedIndicator.js +134 -0
- package/lib/components/Tab/useTabAnimatedIndicator.js.map +1 -0
- package/lib/components/Tab/useTabStyles.d.ts +8 -0
- package/lib/components/Tab/useTabStyles.js +402 -0
- package/lib/components/Tab/useTabStyles.js.map +1 -0
- package/lib/components/TabList/TabList.d.ts +6 -0
- package/lib/components/TabList/TabList.js +17 -0
- package/lib/components/TabList/TabList.js.map +1 -0
- package/lib/components/TabList/TabList.types.d.ts +104 -0
- package/lib/components/TabList/TabList.types.js +2 -0
- package/lib/components/TabList/TabList.types.js.map +1 -0
- package/lib/components/TabList/TabListContext.d.ts +3 -0
- package/lib/components/TabList/TabListContext.js +23 -0
- package/lib/components/TabList/TabListContext.js.map +1 -0
- package/lib/components/TabList/index.d.ts +5 -0
- package/lib/components/TabList/index.js +6 -0
- package/lib/components/TabList/index.js.map +1 -0
- package/lib/components/TabList/renderTabList.d.ts +5 -0
- package/lib/components/TabList/renderTabList.js +18 -0
- package/lib/components/TabList/renderTabList.js.map +1 -0
- package/lib/components/TabList/useTabList.d.ts +12 -0
- package/lib/components/TabList/useTabList.js +81 -0
- package/lib/components/TabList/useTabList.js.map +1 -0
- package/lib/components/TabList/useTabListContextValues.d.ts +2 -0
- package/lib/components/TabList/useTabListContextValues.js +28 -0
- package/lib/components/TabList/useTabListContextValues.js.map +1 -0
- package/lib/components/TabList/useTabListStyles.d.ts +8 -0
- package/lib/components/TabList/useTabListStyles.js +45 -0
- package/lib/components/TabList/useTabListStyles.js.map +1 -0
- package/lib/index.d.ts +4 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/tab.constants.d.ts +62 -0
- package/lib/tab.constants.js +68 -0
- package/lib/tab.constants.js.map +1 -0
- package/lib/tsdoc-metadata.json +1 -1
- package/lib-commonjs/Tab.d.ts +1 -0
- package/lib-commonjs/Tab.js +10 -0
- package/lib-commonjs/Tab.js.map +1 -0
- package/lib-commonjs/TabList.d.ts +1 -0
- package/lib-commonjs/TabList.js +10 -0
- package/lib-commonjs/TabList.js.map +1 -0
- package/lib-commonjs/components/Tab/Tab.d.ts +6 -0
- package/lib-commonjs/components/Tab/Tab.js +26 -0
- package/lib-commonjs/components/Tab/Tab.js.map +1 -0
- package/lib-commonjs/components/Tab/Tab.types.d.ts +61 -0
- package/lib-commonjs/components/Tab/Tab.types.js +6 -0
- package/lib-commonjs/components/Tab/Tab.types.js.map +1 -0
- package/lib-commonjs/components/Tab/index.d.ts +6 -0
- package/lib-commonjs/components/Tab/index.js +20 -0
- package/lib-commonjs/components/Tab/index.js.map +1 -0
- package/lib-commonjs/components/Tab/renderTab.d.ts +5 -0
- package/lib-commonjs/components/Tab/renderTab.js +28 -0
- package/lib-commonjs/components/Tab/renderTab.js.map +1 -0
- package/lib-commonjs/components/Tab/useTab.d.ts +12 -0
- package/lib-commonjs/components/Tab/useTab.js +91 -0
- package/lib-commonjs/components/Tab/useTab.js.map +1 -0
- package/lib-commonjs/components/Tab/useTabAnimatedIndicator.d.ts +5 -0
- package/lib-commonjs/components/Tab/useTabAnimatedIndicator.js +148 -0
- package/lib-commonjs/components/Tab/useTabAnimatedIndicator.js.map +1 -0
- package/lib-commonjs/components/Tab/useTabStyles.d.ts +8 -0
- package/lib-commonjs/components/Tab/useTabStyles.js +416 -0
- package/lib-commonjs/components/Tab/useTabStyles.js.map +1 -0
- package/lib-commonjs/components/TabList/TabList.d.ts +6 -0
- package/lib-commonjs/components/TabList/TabList.js +29 -0
- package/lib-commonjs/components/TabList/TabList.js.map +1 -0
- package/lib-commonjs/components/TabList/TabList.types.d.ts +104 -0
- package/lib-commonjs/components/TabList/TabList.types.js +6 -0
- package/lib-commonjs/components/TabList/TabList.types.js.map +1 -0
- package/lib-commonjs/components/TabList/TabListContext.d.ts +3 -0
- package/lib-commonjs/components/TabList/TabListContext.js +31 -0
- package/lib-commonjs/components/TabList/TabListContext.js.map +1 -0
- package/lib-commonjs/components/TabList/index.d.ts +5 -0
- package/lib-commonjs/components/TabList/index.js +18 -0
- package/lib-commonjs/components/TabList/index.js.map +1 -0
- package/lib-commonjs/components/TabList/renderTabList.d.ts +5 -0
- package/lib-commonjs/components/TabList/renderTabList.js +30 -0
- package/lib-commonjs/components/TabList/renderTabList.js.map +1 -0
- package/lib-commonjs/components/TabList/useTabList.d.ts +12 -0
- package/lib-commonjs/components/TabList/useTabList.js +93 -0
- package/lib-commonjs/components/TabList/useTabList.js.map +1 -0
- package/lib-commonjs/components/TabList/useTabListContextValues.d.ts +2 -0
- package/lib-commonjs/components/TabList/useTabListContextValues.js +37 -0
- package/lib-commonjs/components/TabList/useTabListContextValues.js.map +1 -0
- package/lib-commonjs/components/TabList/useTabListStyles.d.ts +8 -0
- package/lib-commonjs/components/TabList/useTabListStyles.js +55 -0
- package/lib-commonjs/components/TabList/useTabListStyles.js.map +1 -0
- package/lib-commonjs/index.d.ts +4 -1
- package/lib-commonjs/index.js +83 -3
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/tab.constants.d.ts +62 -0
- package/lib-commonjs/tab.constants.js +75 -0
- package/lib-commonjs/tab.constants.js.map +1 -0
- package/package.json +25 -21
- package/config/api-extractor.json +0 -3
- package/config/tests.js +0 -14
- package/etc/react-tabs.api.md +0 -104
- package/just.config.ts +0 -3
- package/lib/Tabs.d.ts +0 -1
- package/lib/Tabs.js +0 -2
- package/lib/Tabs.js.map +0 -1
- package/lib/common/isConformant.d.ts +0 -2
- package/lib/common/isConformant.js +0 -9
- package/lib/common/isConformant.js.map +0 -1
- package/lib/components/Tabs/TabItem.d.ts +0 -6
- package/lib/components/Tabs/TabItem.js +0 -18
- package/lib/components/Tabs/TabItem.js.map +0 -1
- package/lib/components/Tabs/TabItem.types.d.ts +0 -61
- package/lib/components/Tabs/TabItem.types.js +0 -2
- package/lib/components/Tabs/TabItem.types.js.map +0 -1
- package/lib/components/Tabs/Tabs.base.d.ts +0 -3
- package/lib/components/Tabs/Tabs.base.js +0 -179
- package/lib/components/Tabs/Tabs.base.js.map +0 -1
- package/lib/components/Tabs/Tabs.d.ts +0 -8
- package/lib/components/Tabs/Tabs.js +0 -12
- package/lib/components/Tabs/Tabs.js.map +0 -1
- package/lib/components/Tabs/Tabs.styles.d.ts +0 -2
- package/lib/components/Tabs/Tabs.styles.js +0 -264
- package/lib/components/Tabs/Tabs.styles.js.map +0 -1
- package/lib/components/Tabs/Tabs.types.d.ts +0 -113
- package/lib/components/Tabs/Tabs.types.js +0 -2
- package/lib/components/Tabs/Tabs.types.js.map +0 -1
- package/lib/components/Tabs/index.d.ts +0 -5
- package/lib/components/Tabs/index.js +0 -6
- package/lib/components/Tabs/index.js.map +0 -1
- package/lib/utilities/observeResize.d.ts +0 -21
- package/lib/utilities/observeResize.js +0 -46
- package/lib/utilities/observeResize.js.map +0 -1
- package/lib/utilities/useOverflow.d.ts +0 -45
- package/lib/utilities/useOverflow.js +0 -126
- package/lib/utilities/useOverflow.js.map +0 -1
- package/lib-amd/Tabs.d.ts +0 -1
- package/lib-amd/Tabs.js +0 -6
- package/lib-amd/Tabs.js.map +0 -1
- package/lib-amd/common/isConformant.d.ts +0 -2
- package/lib-amd/common/isConformant.js +0 -14
- package/lib-amd/common/isConformant.js.map +0 -1
- package/lib-amd/components/Tabs/TabItem.d.ts +0 -6
- package/lib-amd/components/Tabs/TabItem.js +0 -20
- package/lib-amd/components/Tabs/TabItem.js.map +0 -1
- package/lib-amd/components/Tabs/TabItem.types.d.ts +0 -61
- package/lib-amd/components/Tabs/TabItem.types.js +0 -5
- package/lib-amd/components/Tabs/TabItem.types.js.map +0 -1
- package/lib-amd/components/Tabs/Tabs.base.d.ts +0 -3
- package/lib-amd/components/Tabs/Tabs.base.js +0 -176
- package/lib-amd/components/Tabs/Tabs.base.js.map +0 -1
- package/lib-amd/components/Tabs/Tabs.d.ts +0 -8
- package/lib-amd/components/Tabs/Tabs.js +0 -14
- package/lib-amd/components/Tabs/Tabs.js.map +0 -1
- package/lib-amd/components/Tabs/Tabs.styles.d.ts +0 -2
- package/lib-amd/components/Tabs/Tabs.styles.js +0 -267
- package/lib-amd/components/Tabs/Tabs.styles.js.map +0 -1
- package/lib-amd/components/Tabs/Tabs.types.d.ts +0 -113
- package/lib-amd/components/Tabs/Tabs.types.js +0 -5
- package/lib-amd/components/Tabs/Tabs.types.js.map +0 -1
- package/lib-amd/components/Tabs/index.d.ts +0 -5
- package/lib-amd/components/Tabs/index.js +0 -11
- package/lib-amd/components/Tabs/index.js.map +0 -1
- package/lib-amd/index.d.ts +0 -1
- package/lib-amd/index.js +0 -6
- package/lib-amd/index.js.map +0 -1
- package/lib-amd/utilities/observeResize.d.ts +0 -21
- package/lib-amd/utilities/observeResize.js +0 -51
- package/lib-amd/utilities/observeResize.js.map +0 -1
- package/lib-amd/utilities/useOverflow.d.ts +0 -45
- package/lib-amd/utilities/useOverflow.js +0 -128
- package/lib-amd/utilities/useOverflow.js.map +0 -1
- package/lib-commonjs/Tabs.d.ts +0 -1
- package/lib-commonjs/Tabs.js +0 -5
- package/lib-commonjs/Tabs.js.map +0 -1
- package/lib-commonjs/common/isConformant.d.ts +0 -2
- package/lib-commonjs/common/isConformant.js +0 -13
- package/lib-commonjs/common/isConformant.js.map +0 -1
- package/lib-commonjs/components/Tabs/TabItem.d.ts +0 -6
- package/lib-commonjs/components/Tabs/TabItem.js +0 -21
- package/lib-commonjs/components/Tabs/TabItem.js.map +0 -1
- package/lib-commonjs/components/Tabs/TabItem.types.d.ts +0 -61
- package/lib-commonjs/components/Tabs/TabItem.types.js +0 -3
- package/lib-commonjs/components/Tabs/TabItem.types.js.map +0 -1
- package/lib-commonjs/components/Tabs/Tabs.base.d.ts +0 -3
- package/lib-commonjs/components/Tabs/Tabs.base.js +0 -182
- package/lib-commonjs/components/Tabs/Tabs.base.js.map +0 -1
- package/lib-commonjs/components/Tabs/Tabs.d.ts +0 -8
- package/lib-commonjs/components/Tabs/Tabs.js +0 -15
- package/lib-commonjs/components/Tabs/Tabs.js.map +0 -1
- package/lib-commonjs/components/Tabs/Tabs.styles.d.ts +0 -2
- package/lib-commonjs/components/Tabs/Tabs.styles.js +0 -268
- package/lib-commonjs/components/Tabs/Tabs.styles.js.map +0 -1
- package/lib-commonjs/components/Tabs/Tabs.types.d.ts +0 -113
- package/lib-commonjs/components/Tabs/Tabs.types.js +0 -3
- package/lib-commonjs/components/Tabs/Tabs.types.js.map +0 -1
- package/lib-commonjs/components/Tabs/index.d.ts +0 -5
- package/lib-commonjs/components/Tabs/index.js +0 -11
- package/lib-commonjs/components/Tabs/index.js.map +0 -1
- package/lib-commonjs/utilities/observeResize.d.ts +0 -21
- package/lib-commonjs/utilities/observeResize.js +0 -50
- package/lib-commonjs/utilities/observeResize.js.map +0 -1
- package/lib-commonjs/utilities/useOverflow.d.ts +0 -45
- package/lib-commonjs/utilities/useOverflow.js +0 -130
- package/lib-commonjs/utilities/useOverflow.js.map +0 -1
- package/src/components/Tabs/TabItem.types.ts +0 -69
- package/src/components/Tabs/Tabs.types.ts +0 -131
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { __styles, mergeClasses, shorthands } from '@griffel/react';
|
|
3
|
+
import { pendingAnimationDurationTokens, pendingAnimationEasingTokens } from '../../tab.constants';
|
|
4
|
+
import { useContextSelector } from '@fluentui/react-context-selector';
|
|
5
|
+
import { TabListContext } from '../TabList/TabListContext'; // eslint-disable-next-line @typescript-eslint/naming-convention
|
|
6
|
+
|
|
7
|
+
const tabIndicatorCssVars_unstable = {
|
|
8
|
+
offsetVar: '--fui-Tab__indicator--offset',
|
|
9
|
+
scaleVar: '--fui-Tab__indicator--scale'
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const useActiveIndicatorStyles = /*#__PURE__*/__styles({
|
|
13
|
+
"base": {
|
|
14
|
+
"B68tc82": "f1mtd64y",
|
|
15
|
+
"Bmxbyg5": "f1y7q3j9"
|
|
16
|
+
},
|
|
17
|
+
"animated": {
|
|
18
|
+
"wbfbqe": "fopw4to",
|
|
19
|
+
"mafdb0": "f8wx3i3",
|
|
20
|
+
"Jgwf15": "fgw312z",
|
|
21
|
+
"Bh4j9q1": "f1cif4e6",
|
|
22
|
+
"Gk6w4d": "fa42t5a"
|
|
23
|
+
},
|
|
24
|
+
"horizontal": {
|
|
25
|
+
"Blx6ldh": ["f1g89gis", "fcjnwxz"],
|
|
26
|
+
"xn0juu": "f7m34ad"
|
|
27
|
+
},
|
|
28
|
+
"vertical": {
|
|
29
|
+
"Blx6ldh": "fqfgdei",
|
|
30
|
+
"xn0juu": "fwvsziq"
|
|
31
|
+
}
|
|
32
|
+
}, {
|
|
33
|
+
"d": [".f1mtd64y{overflow-x:visible;}", ".f1y7q3j9{overflow-y:visible;}", ".fopw4to:after{transition-property:transform;}", ".f8wx3i3:after{transition-duration:300ms;}", ".fgw312z:after{transition-timing-function:cubic-bezier(0,0,0,1);}", ".f1g89gis:after{transform-origin:left;}", ".fcjnwxz:after{transform-origin:right;}", ".f7m34ad:after{-webkit-transform:translateX(var(--fui-Tab__indicator--offset)) scaleX(var(--fui-Tab__indicator--scale));-moz-transform:translateX(var(--fui-Tab__indicator--offset)) scaleX(var(--fui-Tab__indicator--scale));-ms-transform:translateX(var(--fui-Tab__indicator--offset)) scaleX(var(--fui-Tab__indicator--scale));transform:translateX(var(--fui-Tab__indicator--offset)) scaleX(var(--fui-Tab__indicator--scale));}", ".fqfgdei:after{transform-origin:top;}", ".fwvsziq:after{-webkit-transform:translateY(var(--fui-Tab__indicator--offset)) scaleY(var(--fui-Tab__indicator--scale));-moz-transform:translateY(var(--fui-Tab__indicator--offset)) scaleY(var(--fui-Tab__indicator--scale));-ms-transform:translateY(var(--fui-Tab__indicator--offset)) scaleY(var(--fui-Tab__indicator--scale));transform:translateY(var(--fui-Tab__indicator--offset)) scaleY(var(--fui-Tab__indicator--scale));}"],
|
|
34
|
+
"t": ["@media (prefers-reduced-motion: reduce){.f1cif4e6:after{transition-property:none;}}", "@media (prefers-reduced-motion: reduce){.fa42t5a:after{transition-duration:0.01ms;}}"]
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const calculateTabRect = element => {
|
|
38
|
+
var _a;
|
|
39
|
+
|
|
40
|
+
if (element) {
|
|
41
|
+
const parentRect = ((_a = element.parentElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) || {
|
|
42
|
+
x: 0,
|
|
43
|
+
y: 0,
|
|
44
|
+
width: 0,
|
|
45
|
+
height: 0
|
|
46
|
+
};
|
|
47
|
+
const tabRect = element.getBoundingClientRect();
|
|
48
|
+
return {
|
|
49
|
+
x: tabRect.x - parentRect.x,
|
|
50
|
+
y: tabRect.y - parentRect.y,
|
|
51
|
+
width: tabRect.width,
|
|
52
|
+
height: tabRect.height
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return undefined;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const getRegisteredTabRect = (registeredTabs, value) => {
|
|
60
|
+
var _a;
|
|
61
|
+
|
|
62
|
+
const element = value ? (_a = registeredTabs[JSON.stringify(value)]) === null || _a === void 0 ? void 0 : _a.ref.current : undefined;
|
|
63
|
+
return element ? calculateTabRect(element) : undefined;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Adds additional styling to the active tab selection indicator to create a sliding animation.
|
|
67
|
+
*/
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
export const useTabAnimatedIndicatorStyles_unstable = state => {
|
|
71
|
+
const {
|
|
72
|
+
disabled,
|
|
73
|
+
selected,
|
|
74
|
+
vertical
|
|
75
|
+
} = state;
|
|
76
|
+
const activeIndicatorStyles = useActiveIndicatorStyles();
|
|
77
|
+
const [lastAnimatedFrom, setLastAnimatedFrom] = React.useState();
|
|
78
|
+
const [animationValues, setAnimationValues] = React.useState({
|
|
79
|
+
offset: 0,
|
|
80
|
+
scale: 1
|
|
81
|
+
});
|
|
82
|
+
const getRegisteredTabs = useContextSelector(TabListContext, ctx => ctx.getRegisteredTabs);
|
|
83
|
+
React.useEffect(() => {
|
|
84
|
+
if (lastAnimatedFrom) {
|
|
85
|
+
setAnimationValues({
|
|
86
|
+
offset: 0,
|
|
87
|
+
scale: 1
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}, [lastAnimatedFrom]);
|
|
91
|
+
|
|
92
|
+
if (selected) {
|
|
93
|
+
const {
|
|
94
|
+
previousSelectedValue,
|
|
95
|
+
selectedValue,
|
|
96
|
+
registeredTabs
|
|
97
|
+
} = getRegisteredTabs();
|
|
98
|
+
const previousSelectedTabRect = getRegisteredTabRect(registeredTabs, previousSelectedValue);
|
|
99
|
+
const selectedTabRect = getRegisteredTabRect(registeredTabs, selectedValue);
|
|
100
|
+
|
|
101
|
+
if (selectedTabRect && previousSelectedTabRect && previousSelectedValue && lastAnimatedFrom !== previousSelectedValue) {
|
|
102
|
+
const offset = vertical ? previousSelectedTabRect.y - selectedTabRect.y : previousSelectedTabRect.x - selectedTabRect.x;
|
|
103
|
+
const scale = vertical ? previousSelectedTabRect.height / selectedTabRect.height : previousSelectedTabRect.width / selectedTabRect.width;
|
|
104
|
+
setAnimationValues({
|
|
105
|
+
offset,
|
|
106
|
+
scale
|
|
107
|
+
});
|
|
108
|
+
setLastAnimatedFrom(previousSelectedValue);
|
|
109
|
+
}
|
|
110
|
+
} else if (lastAnimatedFrom) {
|
|
111
|
+
// need to clear the last animated from so that if this tab is selected again
|
|
112
|
+
// from the same previous tab as last time, that animation still happens.
|
|
113
|
+
setLastAnimatedFrom(undefined);
|
|
114
|
+
} // do not apply any animation if the tab is disabled
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
if (disabled) {
|
|
118
|
+
return state;
|
|
119
|
+
} // the animation should only happen as the selection indicator returns to its
|
|
120
|
+
// original position and not when set at the previous tabs position.
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
const animating = animationValues.offset === 0 && animationValues.scale === 1;
|
|
124
|
+
state.root.className = mergeClasses(state.root.className, selected && activeIndicatorStyles.base, selected && animating && activeIndicatorStyles.animated, selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal));
|
|
125
|
+
const rootCssVars = {
|
|
126
|
+
[tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,
|
|
127
|
+
[tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`
|
|
128
|
+
};
|
|
129
|
+
state.root.style = { ...rootCssVars,
|
|
130
|
+
...state.root.style
|
|
131
|
+
};
|
|
132
|
+
return state;
|
|
133
|
+
};
|
|
134
|
+
//# sourceMappingURL=useTabAnimatedIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Tab/useTabAnimatedIndicator.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport type { TabState, TabValue } from './Tab.types';\n\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { pendingAnimationDurationTokens, pendingAnimationEasingTokens } from '../../tab.constants';\nimport { useContextSelector } from '@fluentui/react-context-selector';\nimport { TabListContext } from '../TabList/TabListContext';\nimport { TabRegisterData } from '../TabList/TabList.types';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst tabIndicatorCssVars_unstable = {\n offsetVar: '--fui-Tab__indicator--offset',\n scaleVar: '--fui-Tab__indicator--scale',\n};\n\nconst useActiveIndicatorStyles = makeStyles({\n base: {\n // overflow is required to allow the selection indicator to animate outside the tab area.\n ...shorthands.overflow('visible'),\n },\n animated: {\n ':after': {\n transitionProperty: 'transform',\n transitionDuration: `${pendingAnimationDurationTokens.slow}`,\n transitionTimingFunction: `${pendingAnimationEasingTokens.declerateMax}`,\n },\n '@media (prefers-reduced-motion: reduce)': {\n ':after': {\n transitionProperty: 'none',\n transitionDuration: '0.01ms',\n },\n },\n },\n horizontal: {\n ':after': {\n transformOrigin: 'left',\n transform: `translateX(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleX(var(${tabIndicatorCssVars_unstable.scaleVar}))`,\n },\n },\n vertical: {\n ':after': {\n transformOrigin: 'top',\n transform: `translateY(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleY(var(${tabIndicatorCssVars_unstable.scaleVar}))`,\n },\n },\n});\n\nconst calculateTabRect = (element: HTMLElement) => {\n if (element) {\n const parentRect = element.parentElement?.getBoundingClientRect() || { x: 0, y: 0, width: 0, height: 0 };\n const tabRect = element.getBoundingClientRect();\n\n return {\n x: tabRect.x - parentRect.x,\n y: tabRect.y - parentRect.y,\n width: tabRect.width,\n height: tabRect.height,\n };\n }\n return undefined;\n};\n\nconst getRegisteredTabRect = (registeredTabs: Record<string, TabRegisterData>, value?: TabValue) => {\n const element = value ? registeredTabs[JSON.stringify(value)]?.ref.current : undefined;\n return element ? calculateTabRect(element) : undefined;\n};\n\n/**\n * Adds additional styling to the active tab selection indicator to create a sliding animation.\n */\nexport const useTabAnimatedIndicatorStyles_unstable = (state: TabState): TabState => {\n const { disabled, selected, vertical } = state;\n\n const activeIndicatorStyles = useActiveIndicatorStyles();\n const [lastAnimatedFrom, setLastAnimatedFrom] = React.useState<TabValue>();\n const [animationValues, setAnimationValues] = React.useState({ offset: 0, scale: 1 });\n const getRegisteredTabs = useContextSelector(TabListContext, ctx => ctx.getRegisteredTabs);\n\n React.useEffect(() => {\n if (lastAnimatedFrom) {\n setAnimationValues({ offset: 0, scale: 1 });\n }\n }, [lastAnimatedFrom]);\n\n if (selected) {\n const { previousSelectedValue, selectedValue, registeredTabs } = getRegisteredTabs();\n const previousSelectedTabRect = getRegisteredTabRect(registeredTabs, previousSelectedValue);\n const selectedTabRect = getRegisteredTabRect(registeredTabs, selectedValue);\n\n if (\n selectedTabRect &&\n previousSelectedTabRect &&\n previousSelectedValue &&\n lastAnimatedFrom !== previousSelectedValue\n ) {\n const offset = vertical\n ? previousSelectedTabRect.y - selectedTabRect.y\n : previousSelectedTabRect.x - selectedTabRect.x;\n\n const scale = vertical\n ? previousSelectedTabRect.height / selectedTabRect.height\n : previousSelectedTabRect.width / selectedTabRect.width;\n\n setAnimationValues({ offset, scale });\n setLastAnimatedFrom(previousSelectedValue);\n }\n } else if (lastAnimatedFrom) {\n // need to clear the last animated from so that if this tab is selected again\n // from the same previous tab as last time, that animation still happens.\n setLastAnimatedFrom(undefined);\n }\n\n // do not apply any animation if the tab is disabled\n if (disabled) {\n return state;\n }\n\n // the animation should only happen as the selection indicator returns to its\n // original position and not when set at the previous tabs position.\n const animating = animationValues.offset === 0 && animationValues.scale === 1;\n\n state.root.className = mergeClasses(\n state.root.className,\n selected && activeIndicatorStyles.base,\n selected && animating && activeIndicatorStyles.animated,\n selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal),\n );\n\n const rootCssVars = {\n [tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,\n [tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`,\n };\n\n state.root.style = {\n ...rootCssVars,\n ...state.root.style,\n };\n\n return state;\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TabSlots, TabState } from './Tab.types';
|
|
2
|
+
import { SlotClassNames } from '@fluentui/react-utilities';
|
|
3
|
+
export declare const tabClassNames: SlotClassNames<TabSlots>;
|
|
4
|
+
export declare const tabClassName: string;
|
|
5
|
+
/**
|
|
6
|
+
* Apply styling to the Tab slots based on the state
|
|
7
|
+
*/
|
|
8
|
+
export declare const useTabStyles_unstable: (state: TabState) => TabState;
|
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
import { __styles, mergeClasses, shorthands } from '@griffel/react';
|
|
2
|
+
import { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';
|
|
3
|
+
import { tokens } from '@fluentui/react-theme';
|
|
4
|
+
import { pendingContentSizeTokens, pendingSpacingTokens, tabIndicatorPadding, tabIndicatorStrokeWidths } from '../../tab.constants';
|
|
5
|
+
import { useTabAnimatedIndicatorStyles_unstable } from './useTabAnimatedIndicator';
|
|
6
|
+
export const tabClassNames = {
|
|
7
|
+
root: 'fui-Tab',
|
|
8
|
+
icon: 'fui-Tab__icon',
|
|
9
|
+
content: 'fui-Tab__content'
|
|
10
|
+
}; // TODO temporary export to pass conformance test.
|
|
11
|
+
|
|
12
|
+
export const tabClassName = tabClassNames.root;
|
|
13
|
+
/**
|
|
14
|
+
* Styles for the root slot
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
18
|
+
|
|
19
|
+
const useRootStyles = /*#__PURE__*/__styles({
|
|
20
|
+
"base": {
|
|
21
|
+
"Bt984gj": "f122n59",
|
|
22
|
+
"g2u3we": "fwhevhj",
|
|
23
|
+
"h3c5rm": ["f61n433", "f1q8l70w"],
|
|
24
|
+
"B9xav0g": "fv1dfc8",
|
|
25
|
+
"zhjwy3": ["f1q8l70w", "f61n433"],
|
|
26
|
+
"Bbmb7ep": ["f1aa9q02", "f16jpd5f"],
|
|
27
|
+
"Beyfa6y": ["f16jpd5f", "f1aa9q02"],
|
|
28
|
+
"B7oj6ja": ["f1jar5jt", "fyu767a"],
|
|
29
|
+
"Btl43ni": ["fyu767a", "f1jar5jt"],
|
|
30
|
+
"B4j52fo": "fre7gi1",
|
|
31
|
+
"Bekrc4i": ["f1358rze", "f1rvrf73"],
|
|
32
|
+
"Bn0qgzm": "fqdk4by",
|
|
33
|
+
"ibv6hh": ["f1rvrf73", "f1358rze"],
|
|
34
|
+
"Bceei9c": "f1k6fduh",
|
|
35
|
+
"mc9l5x": "f22iagw",
|
|
36
|
+
"Beiy3e4": "f1063pyq",
|
|
37
|
+
"Bnnss6s": "fi64zpg",
|
|
38
|
+
"Bahqtrf": "fk6fouc",
|
|
39
|
+
"Bg96gwp": "f1i3iumi",
|
|
40
|
+
"oeaueh": "f1s6fcnf",
|
|
41
|
+
"qhf8xq": "f10pi13n",
|
|
42
|
+
"B68tc82": "f1p9o1ba",
|
|
43
|
+
"Bmxbyg5": "f1sil6mw",
|
|
44
|
+
"B9bfxx9": "f1cxpek8"
|
|
45
|
+
},
|
|
46
|
+
"mediumHorizontal": {
|
|
47
|
+
"i8kkvl": "fgfbwa2",
|
|
48
|
+
"Brf1p80": "f4d9j23",
|
|
49
|
+
"z8tnut": "f1kcqot9",
|
|
50
|
+
"z189sj": ["f81rol6", "frdkuqy"],
|
|
51
|
+
"Byoj8tv": "fpe6lb7",
|
|
52
|
+
"uwmqm3": ["frdkuqy", "f81rol6"]
|
|
53
|
+
},
|
|
54
|
+
"mediumVertical": {
|
|
55
|
+
"i8kkvl": "fgfbwa2",
|
|
56
|
+
"Brf1p80": "fbhxue7",
|
|
57
|
+
"Bf4jedk": "fyvtabn",
|
|
58
|
+
"z8tnut": "f1xp5gbu",
|
|
59
|
+
"z189sj": ["f81rol6", "frdkuqy"],
|
|
60
|
+
"Byoj8tv": "f1d7kygh",
|
|
61
|
+
"uwmqm3": ["frdkuqy", "f81rol6"]
|
|
62
|
+
},
|
|
63
|
+
"smallHorizontal": {
|
|
64
|
+
"i8kkvl": "f16mnhsx",
|
|
65
|
+
"z8tnut": "f1xp5gbu",
|
|
66
|
+
"z189sj": ["f1sgzk6v", "f1bg5zqg"],
|
|
67
|
+
"Byoj8tv": "f1d7kygh",
|
|
68
|
+
"uwmqm3": ["f1bg5zqg", "f1sgzk6v"]
|
|
69
|
+
},
|
|
70
|
+
"smallVertical": {
|
|
71
|
+
"i8kkvl": "f16mnhsx",
|
|
72
|
+
"z8tnut": "fq1loh5",
|
|
73
|
+
"z189sj": ["f1sgzk6v", "f1bg5zqg"],
|
|
74
|
+
"Byoj8tv": "futqtb8",
|
|
75
|
+
"uwmqm3": ["f1bg5zqg", "f1sgzk6v"]
|
|
76
|
+
},
|
|
77
|
+
"transparent": {
|
|
78
|
+
"De3pzq": "f1c21dwh",
|
|
79
|
+
"Jwef8y": "fjxutwb",
|
|
80
|
+
"ecr2s2": "fophhak",
|
|
81
|
+
"Bptxc3x": "fmmjozx",
|
|
82
|
+
"B076xvk": "f1mfqf41",
|
|
83
|
+
"q9r9w5": "f10aiid4",
|
|
84
|
+
"cl4aha": "fpkze5g",
|
|
85
|
+
"Bk452zc": "f149wc3x",
|
|
86
|
+
"a4hkcw": "fjioou7"
|
|
87
|
+
},
|
|
88
|
+
"subtle": {
|
|
89
|
+
"De3pzq": "fhovq9v",
|
|
90
|
+
"Jwef8y": "f1t94bn6",
|
|
91
|
+
"ecr2s2": "f1wfn5kd",
|
|
92
|
+
"Bptxc3x": "fmmjozx",
|
|
93
|
+
"B076xvk": "f1mfqf41",
|
|
94
|
+
"q9r9w5": "f10aiid4",
|
|
95
|
+
"cl4aha": "fpkze5g",
|
|
96
|
+
"Bk452zc": "f149wc3x",
|
|
97
|
+
"a4hkcw": "fjioou7"
|
|
98
|
+
},
|
|
99
|
+
"disabled": {
|
|
100
|
+
"De3pzq": "f1c21dwh",
|
|
101
|
+
"Bptxc3x": "fato7r6",
|
|
102
|
+
"cl4aha": "fao1bnu",
|
|
103
|
+
"Bceei9c": "fdrzuqr"
|
|
104
|
+
},
|
|
105
|
+
"selected": {
|
|
106
|
+
"Bptxc3x": "f1cadz5z",
|
|
107
|
+
"B076xvk": "f1ck17l",
|
|
108
|
+
"q9r9w5": "f42ak0g",
|
|
109
|
+
"cl4aha": "ffplhdr",
|
|
110
|
+
"Bk452zc": "ffth601",
|
|
111
|
+
"a4hkcw": "fhklyu5"
|
|
112
|
+
}
|
|
113
|
+
}, {
|
|
114
|
+
"d": [".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".fwhevhj{border-top-color:none;}", ".f61n433{border-right-color:none;}", ".f1q8l70w{border-left-color:none;}", ".fv1dfc8{border-bottom-color:none;}", ".f1aa9q02{border-bottom-right-radius:var(--borderRadiusMedium);}", ".f16jpd5f{border-bottom-left-radius:var(--borderRadiusMedium);}", ".f1jar5jt{border-top-right-radius:var(--borderRadiusMedium);}", ".fyu767a{border-top-left-radius:var(--borderRadiusMedium);}", ".fre7gi1{border-top-width:0;}", ".f1358rze{border-right-width:0;}", ".f1rvrf73{border-left-width:0;}", ".fqdk4by{border-bottom-width:0;}", ".f1k6fduh{cursor:pointer;}", ".f22iagw{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}", ".f1063pyq{-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}", ".fi64zpg{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".f1s6fcnf{outline-style:none;}", ".f10pi13n{position:relative;}", ".f1p9o1ba{overflow-x:hidden;}", ".f1sil6mw{overflow-y:hidden;}", ".f1cxpek8{text-transform:none;}", ".fgfbwa2{-webkit-column-gap:6px;column-gap:6px;}", ".f4d9j23{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}", ".f1kcqot9{padding-top:12px;}", ".f81rol6{padding-right:10px;}", ".frdkuqy{padding-left:10px;}", ".fpe6lb7{padding-bottom:12px;}", ".fbhxue7{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;}", ".fyvtabn{min-width:120px;}", ".f1xp5gbu{padding-top:6px;}", ".f1d7kygh{padding-bottom:6px;}", ".f16mnhsx{-webkit-column-gap:2px;column-gap:2px;}", ".f1sgzk6v{padding-right:6px;}", ".f1bg5zqg{padding-left:6px;}", ".fq1loh5{padding-top:2px;}", ".futqtb8{padding-bottom:2px;}", ".f1c21dwh{background-color:var(--colorTransparentBackground);}", ".fmmjozx .fui-Tab__icon{color:var(--colorNeutralForeground2);}", ".fpkze5g .fui-Tab__content{color:var(--colorNeutralForeground2);}", ".fhovq9v{background-color:var(--colorSubtleBackground);}", ".fato7r6 .fui-Tab__icon{color:var(--colorNeutralForegroundDisabled);}", ".fao1bnu .fui-Tab__content{color:var(--colorNeutralForegroundDisabled);}", ".fdrzuqr{cursor:not-allowed;}", ".f1cadz5z .fui-Tab__icon{color:var(--colorCompoundBrandForeground1);}", ".ffplhdr .fui-Tab__content{color:var(--colorNeutralForeground1);}"],
|
|
115
|
+
"h": [".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}", ".f1mfqf41:hover .fui-Tab__icon{color:var(--colorNeutralForeground2Hover);}", ".f149wc3x:hover .fui-Tab__content{color:var(--colorNeutralForeground2Hover);}", ".f1t94bn6:hover{background-color:var(--colorSubtleBackgroundHover);}", ".f1ck17l:hover .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Hover);}", ".ffth601:hover .fui-Tab__content{color:var(--colorNeutralForeground1Hover);}"],
|
|
116
|
+
"a": [".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}", ".f10aiid4:active .fui-Tab__icon{color:var(--colorNeutralForeground2Pressed);}", ".fjioou7:active .fui-Tab__content{color:var(--colorNeutralForeground2Pressed);}", ".f1wfn5kd:active{background-color:var(--colorSubtleBackgroundPressed);}", ".f42ak0g:active .fui-Tab__icon{color:var(--colorCompoundBrandForeground1Pressed);}", ".fhklyu5:active .fui-Tab__content{color:var(--colorNeutralForeground1Pressed);}"]
|
|
117
|
+
});
|
|
118
|
+
/* eslint-enable @typescript-eslint/naming-convention */
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Focus styles for the root slot
|
|
122
|
+
*/
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
const useFocusStyles = /*#__PURE__*/__styles({
|
|
126
|
+
"base": {
|
|
127
|
+
"B486eqv": "f2hkw1w",
|
|
128
|
+
"Bnmjwt4": "flfsvnh",
|
|
129
|
+
"Jopkrh": ["f1781m5e", "flvaaa9"],
|
|
130
|
+
"hhrs2v": "f50u1b5",
|
|
131
|
+
"B7jbng7": ["flvaaa9", "f1781m5e"],
|
|
132
|
+
"B32s92o": "fgeg2qa",
|
|
133
|
+
"Bh48x57": "f19j8a82",
|
|
134
|
+
"B5hngm5": "fhcq1yo",
|
|
135
|
+
"D4py6b": "f1gkya50",
|
|
136
|
+
"Bgwpjed": "fpt6wn7"
|
|
137
|
+
}
|
|
138
|
+
}, {
|
|
139
|
+
"i": [".f2hkw1w:focus-visible{outline-style:none;}"],
|
|
140
|
+
"d": ["[data-keyboard-nav] .flfsvnh:focus{border-top-color:transparent;}", "[data-keyboard-nav] .f1781m5e:focus{border-right-color:transparent;}", "[data-keyboard-nav] .flvaaa9:focus{border-left-color:transparent;}", "[data-keyboard-nav] .f50u1b5:focus{border-bottom-color:transparent;}", "[data-keyboard-nav] .fgeg2qa:focus{outline-width:var(--strokeWidthThick);}", "[data-keyboard-nav] .f19j8a82:focus{outline-color:transparent;}", "[data-keyboard-nav] .fhcq1yo:focus{outline-style:solid;}", "[data-keyboard-nav] .f1gkya50:focus{box-shadow:var(--shadow4),0 0 0 var(--strokeWidthThick) var(--colorStrokeFocus2);}", "[data-keyboard-nav] .fpt6wn7:focus{z-index:1;}"]
|
|
141
|
+
});
|
|
142
|
+
/** Indicator styles for when pending selection */
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
const usePendingIndicatorStyles = /*#__PURE__*/__styles({
|
|
146
|
+
"base": {
|
|
147
|
+
"Cgij5x": "f19tg446",
|
|
148
|
+
"z7qlni": "f1mav41w",
|
|
149
|
+
"Bdipjll": ["f1suiu43", "f1kv3e19"],
|
|
150
|
+
"B37a91": "f1hmukci",
|
|
151
|
+
"Buig1va": ["f1kv3e19", "f1suiu43"],
|
|
152
|
+
"Bdyfc3e": "f1lqhc19",
|
|
153
|
+
"Bpjys6e": ["fgp1lrp", "f14he6sl"],
|
|
154
|
+
"pnx8oc": "f1c4qkgw",
|
|
155
|
+
"Btzsvkb": ["f14he6sl", "fgp1lrp"],
|
|
156
|
+
"d7kyl9": ["f1cj3r78", "f1xncuur"],
|
|
157
|
+
"Bisz106": ["f1xncuur", "f1cj3r78"],
|
|
158
|
+
"Bllnwrd": ["fi30ndc", "f19d7f88"],
|
|
159
|
+
"B3dpmnz": ["f19d7f88", "fi30ndc"],
|
|
160
|
+
"Fs9z49": "f56rwnc",
|
|
161
|
+
"Baevmrh": "f1lqcl48",
|
|
162
|
+
"ri70ih": "f1ego73q",
|
|
163
|
+
"Br1f9q3": "f1ppf73u",
|
|
164
|
+
"Bh9m8uq": "fkgvshs",
|
|
165
|
+
"f79n2v": ["f9ce8dc", "f1m8imsn"],
|
|
166
|
+
"zvkrb6": "fxkorn8",
|
|
167
|
+
"y3supe": ["f1m8imsn", "f9ce8dc"],
|
|
168
|
+
"Bcbdomo": "f1bb2bd5",
|
|
169
|
+
"gg7wqr": ["fyhhhxy", "flt5dqy"],
|
|
170
|
+
"Ixc8c": "fw019zk",
|
|
171
|
+
"B1ltu2w": ["flt5dqy", "fyhhhxy"],
|
|
172
|
+
"B2yjemk": ["f7c36j8", "f1tzhx6f"],
|
|
173
|
+
"Bph9bk4": ["f1tzhx6f", "f7c36j8"],
|
|
174
|
+
"utwc0c": ["f15ne2sm", "f18vik6r"],
|
|
175
|
+
"B5rxhlh": ["f18vik6r", "f15ne2sm"],
|
|
176
|
+
"Bseepjv": "f2sk4z1",
|
|
177
|
+
"Iy3360": "frq4ova",
|
|
178
|
+
"Dlf1w5": "f416fxa"
|
|
179
|
+
},
|
|
180
|
+
"disabled": {
|
|
181
|
+
"Bdyfc3e": "ft6wof",
|
|
182
|
+
"Bpjys6e": ["f1ojwtdc", "fgjfpko"],
|
|
183
|
+
"pnx8oc": "f5s0kyi",
|
|
184
|
+
"Btzsvkb": ["fgjfpko", "f1ojwtdc"],
|
|
185
|
+
"Bcbdomo": "f1dodv9r",
|
|
186
|
+
"gg7wqr": ["f1shuycv", "f19t3g6y"],
|
|
187
|
+
"Ixc8c": "f6psttw",
|
|
188
|
+
"B1ltu2w": ["f19t3g6y", "f1shuycv"]
|
|
189
|
+
},
|
|
190
|
+
"mediumHorizontal": {
|
|
191
|
+
"Bj2wrql": "flqennz",
|
|
192
|
+
"dj0dih": "fyg4ez2",
|
|
193
|
+
"D4ky5z": ["f1cquro8", "f1ro2kyx"],
|
|
194
|
+
"k1i1uq": "ffvjagy",
|
|
195
|
+
"Bcasopp": ["f1ro2kyx", "f1cquro8"],
|
|
196
|
+
"Bbc2r3f": "fvqq5f6",
|
|
197
|
+
"Byque4d": ["frssmbg", "fxzecjq"],
|
|
198
|
+
"qd6xl9": ["fxzecjq", "frssmbg"]
|
|
199
|
+
},
|
|
200
|
+
"mediumVertical": {
|
|
201
|
+
"Bj2wrql": "fa48u8l",
|
|
202
|
+
"dj0dih": "fyg4ez2",
|
|
203
|
+
"D4ky5z": ["f1cquro8", "f1ro2kyx"],
|
|
204
|
+
"k1i1uq": "ffvjagy",
|
|
205
|
+
"Bcasopp": ["f1ro2kyx", "f1cquro8"],
|
|
206
|
+
"Byque4d": ["f1t0u0az", "fmlx6bj"],
|
|
207
|
+
"Bf8kmfk": "f1itw4t3",
|
|
208
|
+
"Bdn98qo": "f1382oex"
|
|
209
|
+
},
|
|
210
|
+
"smallHorizontal": {
|
|
211
|
+
"Bj2wrql": "flqennz",
|
|
212
|
+
"dj0dih": "f1kkj9j",
|
|
213
|
+
"D4ky5z": ["f14ip387", "f1uj4yfi"],
|
|
214
|
+
"k1i1uq": "f7vsd80",
|
|
215
|
+
"Bcasopp": ["f1uj4yfi", "f14ip387"],
|
|
216
|
+
"Bbc2r3f": "f1y1nr8p",
|
|
217
|
+
"Byque4d": ["f1i98inn", "fadekk3"],
|
|
218
|
+
"qd6xl9": ["fadekk3", "f1i98inn"]
|
|
219
|
+
},
|
|
220
|
+
"smallVertical": {
|
|
221
|
+
"Bj2wrql": "f7efb1c",
|
|
222
|
+
"dj0dih": "fyg4ez2",
|
|
223
|
+
"D4ky5z": ["f1cquro8", "f1ro2kyx"],
|
|
224
|
+
"k1i1uq": "ffvjagy",
|
|
225
|
+
"Bcasopp": ["f1ro2kyx", "f1cquro8"],
|
|
226
|
+
"Byque4d": ["f1t0u0az", "fmlx6bj"],
|
|
227
|
+
"Bf8kmfk": "f1q0qvio",
|
|
228
|
+
"Bdn98qo": "f1382oex"
|
|
229
|
+
}
|
|
230
|
+
}, {
|
|
231
|
+
"h": [".f19tg446:hover:before{background-color:none;}", ".f1mav41w:hover:before{border-top-style:solid;}", ".f1suiu43:hover:before{border-right-style:solid;}", ".f1kv3e19:hover:before{border-left-style:solid;}", ".f1hmukci:hover:before{border-bottom-style:solid;}", ".f1lqhc19:hover:before{border-top-color:var(--colorNeutralStroke1Hover);}", ".fgp1lrp:hover:before{border-right-color:var(--colorNeutralStroke1Hover);}", ".f14he6sl:hover:before{border-left-color:var(--colorNeutralStroke1Hover);}", ".f1c4qkgw:hover:before{border-bottom-color:var(--colorNeutralStroke1Hover);}", ".f1cj3r78:hover:before{border-bottom-right-radius:var(--borderRadiusCircular);}", ".f1xncuur:hover:before{border-bottom-left-radius:var(--borderRadiusCircular);}", ".fi30ndc:hover:before{border-top-right-radius:var(--borderRadiusCircular);}", ".f19d7f88:hover:before{border-top-left-radius:var(--borderRadiusCircular);}", ".f56rwnc:hover:before{box-sizing:border-box;}", ".f1lqcl48:hover:before{content:\"\";}", ".f1ego73q:hover:before{position:absolute;}", ".ft6wof:hover:before{border-top-color:var(--colorTransparentStroke);}", ".f1ojwtdc:hover:before{border-right-color:var(--colorTransparentStroke);}", ".fgjfpko:hover:before{border-left-color:var(--colorTransparentStroke);}", ".f5s0kyi:hover:before{border-bottom-color:var(--colorTransparentStroke);}"],
|
|
232
|
+
"a": [".f1ppf73u:active:before{background-color:none;}", ".fkgvshs:active:before{border-top-style:solid;}", ".f9ce8dc:active:before{border-right-style:solid;}", ".f1m8imsn:active:before{border-left-style:solid;}", ".fxkorn8:active:before{border-bottom-style:solid;}", ".f1bb2bd5:active:before{border-top-color:var(--colorNeutralStroke1Pressed);}", ".fyhhhxy:active:before{border-right-color:var(--colorNeutralStroke1Pressed);}", ".flt5dqy:active:before{border-left-color:var(--colorNeutralStroke1Pressed);}", ".fw019zk:active:before{border-bottom-color:var(--colorNeutralStroke1Pressed);}", ".f7c36j8:active:before{border-bottom-right-radius:var(--borderRadiusCircular);}", ".f1tzhx6f:active:before{border-bottom-left-radius:var(--borderRadiusCircular);}", ".f15ne2sm:active:before{border-top-right-radius:var(--borderRadiusCircular);}", ".f18vik6r:active:before{border-top-left-radius:var(--borderRadiusCircular);}", ".f2sk4z1:active:before{box-sizing:border-box;}", ".frq4ova:active:before{content:\"\";}", ".f416fxa:active:before{position:absolute;}", ".f1dodv9r:active:before{border-top-color:var(--colorTransparentStroke);}", ".f1shuycv:active:before{border-right-color:var(--colorTransparentStroke);}", ".f19t3g6y:active:before{border-left-color:var(--colorTransparentStroke);}", ".f6psttw:active:before{border-bottom-color:var(--colorTransparentStroke);}"],
|
|
233
|
+
"d": [".flqennz:before{bottom:0;}", ".fyg4ez2:before{border-top-width:calc(var(--strokeWidthThicker) / 2.0);}", ".f1cquro8:before{border-right-width:calc(var(--strokeWidthThicker) / 2.0);}", ".f1ro2kyx:before{border-left-width:calc(var(--strokeWidthThicker) / 2.0);}", ".ffvjagy:before{border-bottom-width:calc(var(--strokeWidthThicker) / 2.0);}", ".fvqq5f6:before{height:var(--strokeWidthThicker);}", ".frssmbg:before{left:12px;}", ".fxzecjq:before{right:12px;}", ".fa48u8l:before{bottom:8px;}", ".f1t0u0az:before{left:0;}", ".fmlx6bj:before{right:0;}", ".f1itw4t3:before{top:8px;}", ".f1382oex:before{width:var(--strokeWidthThicker);}", ".f1kkj9j:before{border-top-width:calc(var(--strokeWidthThick) / 2.0);}", ".f14ip387:before{border-right-width:calc(var(--strokeWidthThick) / 2.0);}", ".f1uj4yfi:before{border-left-width:calc(var(--strokeWidthThick) / 2.0);}", ".f7vsd80:before{border-bottom-width:calc(var(--strokeWidthThick) / 2.0);}", ".f1y1nr8p:before{height:var(--strokeWidthThick);}", ".f1i98inn:before{left:6px;}", ".fadekk3:before{right:6px;}", ".f7efb1c:before{bottom:4px;}", ".f1q0qvio:before{top:4px;}"]
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
const useActiveIndicatorStyles = /*#__PURE__*/__styles({
|
|
237
|
+
"base": {
|
|
238
|
+
"F7kzw7": "f1vw7pcs",
|
|
239
|
+
"B13j16c": ["fi41b8y", "f1jbgs3z"],
|
|
240
|
+
"Bk8j60v": "f1p43pof",
|
|
241
|
+
"Bpbi4o9": ["f1jbgs3z", "fi41b8y"],
|
|
242
|
+
"rskduk": "f1iq3fds",
|
|
243
|
+
"Dctjco": ["f1r2jemi", "f11olovk"],
|
|
244
|
+
"J4s2b0": "fd0py6g",
|
|
245
|
+
"svcy3r": ["f11olovk", "f1r2jemi"],
|
|
246
|
+
"frdscb": ["fc4gh2t", "flndy84"],
|
|
247
|
+
"B9nohqn": ["flndy84", "fc4gh2t"],
|
|
248
|
+
"B1dhsta": ["fxgx2h0", "fh20ihy"],
|
|
249
|
+
"Bjdmjzx": ["fh20ihy", "fxgx2h0"],
|
|
250
|
+
"oqd9ik": "ffdc0f3",
|
|
251
|
+
"Bs6t6z0": "fqc6z8f",
|
|
252
|
+
"Hdbjpj": "f11ef69",
|
|
253
|
+
"Bunff0j": "fs357bs"
|
|
254
|
+
},
|
|
255
|
+
"selected": {
|
|
256
|
+
"F7kzw7": "f27ds8h",
|
|
257
|
+
"B13j16c": ["f2f2y1h", "fvkrelc"],
|
|
258
|
+
"Bk8j60v": "f1ta67ae",
|
|
259
|
+
"Bpbi4o9": ["fvkrelc", "f2f2y1h"],
|
|
260
|
+
"xay6vd": "f155wmea",
|
|
261
|
+
"F7whla": ["fz4itc5", "f10rdlzq"],
|
|
262
|
+
"Bkmnrzr": "f16a8na0",
|
|
263
|
+
"jjqiyg": ["f10rdlzq", "fz4itc5"],
|
|
264
|
+
"wo4o56": "fn9ghnu",
|
|
265
|
+
"Bm7x6ru": ["faeqx0n", "fyxlcfc"],
|
|
266
|
+
"id6p2d": "f1i10yqr",
|
|
267
|
+
"obzwb3": ["fyxlcfc", "faeqx0n"]
|
|
268
|
+
},
|
|
269
|
+
"disabled": {
|
|
270
|
+
"F7kzw7": "f8fvnjs",
|
|
271
|
+
"B13j16c": ["f1sie595", "f68ecio"],
|
|
272
|
+
"Bk8j60v": "f17l895u",
|
|
273
|
+
"Bpbi4o9": ["f68ecio", "f1sie595"]
|
|
274
|
+
},
|
|
275
|
+
"mediumHorizontal": {
|
|
276
|
+
"Bj55yzk": "fw2wsqs",
|
|
277
|
+
"Bouo9z4": "f1dqk8ca",
|
|
278
|
+
"Bjz4wo8": ["f6x7jdz", "f18ezp6p"],
|
|
279
|
+
"B3zxwmv": "fvhr22v",
|
|
280
|
+
"exdlgl": ["f18ezp6p", "f6x7jdz"],
|
|
281
|
+
"mpb1vu": "f11eg72r",
|
|
282
|
+
"jc51t6": ["fohqjvh", "f3if56i"],
|
|
283
|
+
"cnmfks": ["f3if56i", "fohqjvh"]
|
|
284
|
+
},
|
|
285
|
+
"mediumVertical": {
|
|
286
|
+
"Bj55yzk": "f1wxxv1q",
|
|
287
|
+
"Bouo9z4": "f1dqk8ca",
|
|
288
|
+
"Bjz4wo8": ["f6x7jdz", "f18ezp6p"],
|
|
289
|
+
"B3zxwmv": "fvhr22v",
|
|
290
|
+
"exdlgl": ["f18ezp6p", "f6x7jdz"],
|
|
291
|
+
"jc51t6": ["f1cvlmu2", "f15lyva8"],
|
|
292
|
+
"u6d25": "f1lbpgiz",
|
|
293
|
+
"Biobvvw": "fqauqbq"
|
|
294
|
+
},
|
|
295
|
+
"smallHorizontal": {
|
|
296
|
+
"Bj55yzk": "fw2wsqs",
|
|
297
|
+
"Bouo9z4": "fz0tshs",
|
|
298
|
+
"Bjz4wo8": ["fyhqs13", "f11og0us"],
|
|
299
|
+
"B3zxwmv": "f1qq4lft",
|
|
300
|
+
"exdlgl": ["f11og0us", "fyhqs13"],
|
|
301
|
+
"mpb1vu": "f4hj4m7",
|
|
302
|
+
"jc51t6": ["f1i8k3s6", "fy447wy"],
|
|
303
|
+
"cnmfks": ["fy447wy", "f1i8k3s6"]
|
|
304
|
+
},
|
|
305
|
+
"smallVertical": {
|
|
306
|
+
"Bj55yzk": "fu7gapb",
|
|
307
|
+
"Bouo9z4": "f1dqk8ca",
|
|
308
|
+
"Bjz4wo8": ["f6x7jdz", "f18ezp6p"],
|
|
309
|
+
"B3zxwmv": "fvhr22v",
|
|
310
|
+
"exdlgl": ["f18ezp6p", "f6x7jdz"],
|
|
311
|
+
"jc51t6": ["f1cvlmu2", "f15lyva8"],
|
|
312
|
+
"u6d25": "f1vmyuyf",
|
|
313
|
+
"Biobvvw": "fqauqbq"
|
|
314
|
+
}
|
|
315
|
+
}, {
|
|
316
|
+
"d": [".f1vw7pcs:after{border-top-color:var(--colorTransparentStroke);}", ".fi41b8y:after{border-right-color:var(--colorTransparentStroke);}", ".f1jbgs3z:after{border-left-color:var(--colorTransparentStroke);}", ".f1p43pof:after{border-bottom-color:var(--colorTransparentStroke);}", ".f1iq3fds:after{border-top-style:solid;}", ".f1r2jemi:after{border-right-style:solid;}", ".f11olovk:after{border-left-style:solid;}", ".fd0py6g:after{border-bottom-style:solid;}", ".fc4gh2t:after{border-bottom-right-radius:var(--borderRadiusCircular);}", ".flndy84:after{border-bottom-left-radius:var(--borderRadiusCircular);}", ".fxgx2h0:after{border-top-right-radius:var(--borderRadiusCircular);}", ".fh20ihy:after{border-top-left-radius:var(--borderRadiusCircular);}", ".ffdc0f3:after{box-sizing:border-box;}", ".fqc6z8f:after{content:\"\";}", ".f11ef69:after{position:absolute;}", ".fs357bs:after{z-index:1;}", ".f27ds8h:after{border-top-color:var(--colorCompoundBrandStroke);}", ".f2f2y1h:after{border-right-color:var(--colorCompoundBrandStroke);}", ".fvkrelc:after{border-left-color:var(--colorCompoundBrandStroke);}", ".f1ta67ae:after{border-bottom-color:var(--colorCompoundBrandStroke);}", ".f8fvnjs:after{border-top-color:var(--colorNeutralForegroundDisabled);}", ".f1sie595:after{border-right-color:var(--colorNeutralForegroundDisabled);}", ".f68ecio:after{border-left-color:var(--colorNeutralForegroundDisabled);}", ".f17l895u:after{border-bottom-color:var(--colorNeutralForegroundDisabled);}", ".fw2wsqs:after{bottom:0;}", ".f1dqk8ca:after{border-top-width:calc(var(--strokeWidthThicker) / 2.0);}", ".f6x7jdz:after{border-right-width:calc(var(--strokeWidthThicker) / 2.0);}", ".f18ezp6p:after{border-left-width:calc(var(--strokeWidthThicker) / 2.0);}", ".fvhr22v:after{border-bottom-width:calc(var(--strokeWidthThicker) / 2.0);}", ".f11eg72r:after{height:var(--strokeWidthThicker);}", ".fohqjvh:after{left:12px;}", ".f3if56i:after{right:12px;}", ".f1wxxv1q:after{bottom:8px;}", ".f1cvlmu2:after{left:0;}", ".f15lyva8:after{right:0;}", ".f1lbpgiz:after{top:8px;}", ".fqauqbq:after{width:var(--strokeWidthThicker);}", ".fz0tshs:after{border-top-width:calc(var(--strokeWidthThick) / 2.0);}", ".fyhqs13:after{border-right-width:calc(var(--strokeWidthThick) / 2.0);}", ".f11og0us:after{border-left-width:calc(var(--strokeWidthThick) / 2.0);}", ".f1qq4lft:after{border-bottom-width:calc(var(--strokeWidthThick) / 2.0);}", ".f4hj4m7:after{height:var(--strokeWidthThick);}", ".f1i8k3s6:after{left:6px;}", ".fy447wy:after{right:6px;}", ".fu7gapb:after{bottom:4px;}", ".f1vmyuyf:after{top:4px;}"],
|
|
317
|
+
"h": [".f155wmea:hover:after{border-top-color:var(--colorCompoundBrandStrokeHover);}", ".fz4itc5:hover:after{border-right-color:var(--colorCompoundBrandStrokeHover);}", ".f10rdlzq:hover:after{border-left-color:var(--colorCompoundBrandStrokeHover);}", ".f16a8na0:hover:after{border-bottom-color:var(--colorCompoundBrandStrokeHover);}"],
|
|
318
|
+
"a": [".fn9ghnu:active:after{border-top-color:var(--colorCompoundBrandStrokePressed);}", ".faeqx0n:active:after{border-right-color:var(--colorCompoundBrandStrokePressed);}", ".fyxlcfc:active:after{border-left-color:var(--colorCompoundBrandStrokePressed);}", ".f1i10yqr:active:after{border-bottom-color:var(--colorCompoundBrandStrokePressed);}"]
|
|
319
|
+
});
|
|
320
|
+
/**
|
|
321
|
+
* Styles for the icon slot.
|
|
322
|
+
*/
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
const useIconStyles = /*#__PURE__*/__styles({
|
|
326
|
+
"base": {
|
|
327
|
+
"Bt984gj": "f122n59",
|
|
328
|
+
"mc9l5x": "ftuwxu6",
|
|
329
|
+
"Brf1p80": "f4d9j23",
|
|
330
|
+
"B68tc82": "f1p9o1ba",
|
|
331
|
+
"Bmxbyg5": "f1sil6mw"
|
|
332
|
+
},
|
|
333
|
+
"small": {
|
|
334
|
+
"Be2twd7": "fe5j1ua",
|
|
335
|
+
"Bqenvij": "fjamq6b",
|
|
336
|
+
"a9b677": "f64fuq3"
|
|
337
|
+
},
|
|
338
|
+
"medium": {
|
|
339
|
+
"Be2twd7": "fe5j1ua",
|
|
340
|
+
"Bqenvij": "fjamq6b",
|
|
341
|
+
"a9b677": "f64fuq3"
|
|
342
|
+
}
|
|
343
|
+
}, {
|
|
344
|
+
"d": [".f122n59{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}", ".ftuwxu6{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}", ".f4d9j23{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}", ".f1p9o1ba{overflow-x:hidden;}", ".f1sil6mw{overflow-y:hidden;}", ".fe5j1ua{font-size:20px;}", ".fjamq6b{height:20px;}", ".f64fuq3{width:20px;}"]
|
|
345
|
+
});
|
|
346
|
+
/**
|
|
347
|
+
* Styles for the content slot (children)
|
|
348
|
+
*/
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
const useContentStyles = /*#__PURE__*/__styles({
|
|
352
|
+
"base": {
|
|
353
|
+
"Be2twd7": "fkhj508",
|
|
354
|
+
"Bhrd7zp": "figsok6",
|
|
355
|
+
"Bg96gwp": "f1i3iumi",
|
|
356
|
+
"B68tc82": "f1p9o1ba",
|
|
357
|
+
"Bmxbyg5": "f1sil6mw",
|
|
358
|
+
"z8tnut": "f1g0x7ka",
|
|
359
|
+
"z189sj": ["f12huiiw", "f161knb0"],
|
|
360
|
+
"Byoj8tv": "f1qch9an",
|
|
361
|
+
"uwmqm3": ["f161knb0", "f12huiiw"]
|
|
362
|
+
},
|
|
363
|
+
"selected": {
|
|
364
|
+
"Be2twd7": "fkhj508",
|
|
365
|
+
"Bhrd7zp": "fl43uef",
|
|
366
|
+
"Bg96gwp": "f1i3iumi"
|
|
367
|
+
}
|
|
368
|
+
}, {
|
|
369
|
+
"d": [".fkhj508{font-size:var(--fontSizeBase300);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", ".f1p9o1ba{overflow-x:hidden;}", ".f1sil6mw{overflow-y:hidden;}", ".f1g0x7ka{padding-top:0;}", ".f12huiiw{padding-right:2px;}", ".f161knb0{padding-left:2px;}", ".f1qch9an{padding-bottom:0;}", ".fl43uef{font-weight:var(--fontWeightSemibold);}"]
|
|
370
|
+
});
|
|
371
|
+
/**
|
|
372
|
+
* Apply styling to the Tab slots based on the state
|
|
373
|
+
*/
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
export const useTabStyles_unstable = state => {
|
|
377
|
+
const rootStyles = useRootStyles();
|
|
378
|
+
const focusStyles = useFocusStyles();
|
|
379
|
+
const pendingIndicatorStyles = usePendingIndicatorStyles();
|
|
380
|
+
const activeIndicatorStyles = useActiveIndicatorStyles();
|
|
381
|
+
const iconStyles = useIconStyles();
|
|
382
|
+
const contentStyles = useContentStyles();
|
|
383
|
+
const {
|
|
384
|
+
appearance,
|
|
385
|
+
disabled,
|
|
386
|
+
selected,
|
|
387
|
+
size,
|
|
388
|
+
vertical
|
|
389
|
+
} = state;
|
|
390
|
+
state.root.className = mergeClasses(tabClassNames.root, rootStyles.base, size !== 'small' && (vertical ? rootStyles.mediumVertical : rootStyles.mediumHorizontal), size === 'small' && (vertical ? rootStyles.smallVertical : rootStyles.smallHorizontal), focusStyles.base, !disabled && appearance === 'subtle' && rootStyles.subtle, !disabled && appearance === 'transparent' && rootStyles.transparent, !disabled && selected && rootStyles.selected, disabled && rootStyles.disabled, // pending indicator (before pseudo element)
|
|
391
|
+
pendingIndicatorStyles.base, size !== 'small' && (vertical ? pendingIndicatorStyles.mediumVertical : pendingIndicatorStyles.mediumHorizontal), size === 'small' && (vertical ? pendingIndicatorStyles.smallVertical : pendingIndicatorStyles.smallHorizontal), disabled && pendingIndicatorStyles.disabled, // active indicator (after pseudo element)
|
|
392
|
+
selected && activeIndicatorStyles.base, selected && !disabled && activeIndicatorStyles.selected, selected && size !== 'small' && (vertical ? activeIndicatorStyles.mediumVertical : activeIndicatorStyles.mediumHorizontal), selected && size === 'small' && (vertical ? activeIndicatorStyles.smallVertical : activeIndicatorStyles.smallHorizontal), selected && disabled && activeIndicatorStyles.disabled, state.root.className);
|
|
393
|
+
|
|
394
|
+
if (state.icon) {
|
|
395
|
+
state.icon.className = mergeClasses(tabClassNames.icon, iconStyles.base, iconStyles[size], state.icon.className);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
state.content.className = mergeClasses(tabClassNames.content, contentStyles.base, selected && contentStyles.selected, state.content.className);
|
|
399
|
+
useTabAnimatedIndicatorStyles_unstable(state);
|
|
400
|
+
return state;
|
|
401
|
+
};
|
|
402
|
+
//# sourceMappingURL=useTabStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Tab/useTabStyles.ts"],"names":[],"mappings":"AAEA,mBAAqB,YAArB,EAAmC,UAAnC,QAAqD,gBAArD;AACA,SAAS,+BAAT,QAAgD,yBAAhD;AACA,SAAS,MAAT,QAAuB,uBAAvB;AACA,SACE,wBADF,EAEE,oBAFF,EAGE,mBAHF,EAIE,wBAJF,QAKO,qBALP;AAOA,SAAS,sCAAT,QAAuD,2BAAvD;AAEA,OAAO,MAAM,aAAa,GAA6B;AACrD,EAAA,IAAI,EAAE,SAD+C;AAErD,EAAA,IAAI,EAAE,eAF+C;AAGrD,EAAA,OAAO,EAAE;AAH4C,CAAhD,C,CAMP;;AACA,OAAO,MAAM,YAAY,GAAG,aAAa,CAAC,IAAnC;AAEP;;AAEG;;AACH;;AACA,MAAM,aAAa,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAtB;AA0HA;;AAEA;;AAEG;;;AACH,MAAM,cAAc,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAvB;AAiBA;;;AACA,MAAM,yBAAyB,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAlC;;AAmEA,MAAM,wBAAwB,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAjC;AAkEA;;AAEG;;;AACH,MAAM,aAAa,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAtB;AAqBA;;AAEG;;;AACH,MAAM,gBAAgB,gBAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAzB;AAYA;;AAEG;;;AACH,OAAO,MAAM,qBAAqB,GAAI,KAAD,IAA8B;AACjE,QAAM,UAAU,GAAG,aAAa,EAAhC;AACA,QAAM,WAAW,GAAG,cAAc,EAAlC;AACA,QAAM,sBAAsB,GAAG,yBAAyB,EAAxD;AACA,QAAM,qBAAqB,GAAG,wBAAwB,EAAtD;AACA,QAAM,UAAU,GAAG,aAAa,EAAhC;AACA,QAAM,aAAa,GAAG,gBAAgB,EAAtC;AAEA,QAAM;AAAE,IAAA,UAAF;AAAc,IAAA,QAAd;AAAwB,IAAA,QAAxB;AAAkC,IAAA,IAAlC;AAAwC,IAAA;AAAxC,MAAqD,KAA3D;AAEA,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,YAAY,CACjC,aAAa,CAAC,IADmB,EAEjC,UAAU,CAAC,IAFsB,EAGjC,IAAI,KAAK,OAAT,KAAqB,QAAQ,GAAG,UAAU,CAAC,cAAd,GAA+B,UAAU,CAAC,gBAAvE,CAHiC,EAIjC,IAAI,KAAK,OAAT,KAAqB,QAAQ,GAAG,UAAU,CAAC,aAAd,GAA8B,UAAU,CAAC,eAAtE,CAJiC,EAKjC,WAAW,CAAC,IALqB,EAMjC,CAAC,QAAD,IAAa,UAAU,KAAK,QAA5B,IAAwC,UAAU,CAAC,MANlB,EAOjC,CAAC,QAAD,IAAa,UAAU,KAAK,aAA5B,IAA6C,UAAU,CAAC,WAPvB,EAQjC,CAAC,QAAD,IAAa,QAAb,IAAyB,UAAU,CAAC,QARH,EASjC,QAAQ,IAAI,UAAU,CAAC,QATU,EAWjC;AACA,EAAA,sBAAsB,CAAC,IAZU,EAajC,IAAI,KAAK,OAAT,KAAqB,QAAQ,GAAG,sBAAsB,CAAC,cAA1B,GAA2C,sBAAsB,CAAC,gBAA/F,CAbiC,EAcjC,IAAI,KAAK,OAAT,KAAqB,QAAQ,GAAG,sBAAsB,CAAC,aAA1B,GAA0C,sBAAsB,CAAC,eAA9F,CAdiC,EAejC,QAAQ,IAAI,sBAAsB,CAAC,QAfF,EAiBjC;AACA,EAAA,QAAQ,IAAI,qBAAqB,CAAC,IAlBD,EAmBjC,QAAQ,IAAI,CAAC,QAAb,IAAyB,qBAAqB,CAAC,QAnBd,EAoBjC,QAAQ,IACN,IAAI,KAAK,OADX,KAEG,QAAQ,GAAG,qBAAqB,CAAC,cAAzB,GAA0C,qBAAqB,CAAC,gBAF3E,CApBiC,EAuBjC,QAAQ,IACN,IAAI,KAAK,OADX,KAEG,QAAQ,GAAG,qBAAqB,CAAC,aAAzB,GAAyC,qBAAqB,CAAC,eAF1E,CAvBiC,EA0BjC,QAAQ,IAAI,QAAZ,IAAwB,qBAAqB,CAAC,QA1Bb,EA2BjC,KAAK,CAAC,IAAN,CAAW,SA3BsB,CAAnC;;AA8BA,MAAI,KAAK,CAAC,IAAV,EAAgB;AACd,IAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,YAAY,CAAC,aAAa,CAAC,IAAf,EAAqB,UAAU,CAAC,IAAhC,EAAsC,UAAU,CAAC,IAAD,CAAhD,EAAwD,KAAK,CAAC,IAAN,CAAW,SAAnE,CAAnC;AACD;;AAED,EAAA,KAAK,CAAC,OAAN,CAAc,SAAd,GAA0B,YAAY,CACpC,aAAa,CAAC,OADsB,EAEpC,aAAa,CAAC,IAFsB,EAGpC,QAAQ,IAAI,aAAa,CAAC,QAHU,EAIpC,KAAK,CAAC,OAAN,CAAc,SAJsB,CAAtC;AAOA,EAAA,sCAAsC,CAAC,KAAD,CAAtC;AAEA,SAAO,KAAP;AACD,CAtDM","sourcesContent":["import type { TabSlots, TabState } from './Tab.types';\n\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport { tokens } from '@fluentui/react-theme';\nimport {\n pendingContentSizeTokens,\n pendingSpacingTokens,\n tabIndicatorPadding,\n tabIndicatorStrokeWidths,\n} from '../../tab.constants';\nimport { SlotClassNames } from '@fluentui/react-utilities';\nimport { useTabAnimatedIndicatorStyles_unstable } from './useTabAnimatedIndicator';\n\nexport const tabClassNames: SlotClassNames<TabSlots> = {\n root: 'fui-Tab',\n icon: 'fui-Tab__icon',\n content: 'fui-Tab__content',\n};\n\n// TODO temporary export to pass conformance test.\nexport const tabClassName = tabClassNames.root;\n\n/**\n * Styles for the root slot\n */\n/* eslint-disable @typescript-eslint/naming-convention */\nconst useRootStyles = makeStyles({\n base: {\n alignItems: 'center',\n ...shorthands.borderColor('none'),\n ...shorthands.borderRadius(tokens.borderRadiusMedium),\n ...shorthands.borderWidth(0),\n cursor: 'pointer',\n display: 'flex',\n flexDirection: 'row',\n flexShrink: 0,\n fontFamily: tokens.fontFamilyBase,\n lineHeight: tokens.lineHeightBase300,\n outlineStyle: 'none',\n position: 'relative',\n ...shorthands.overflow('hidden'),\n textTransform: 'none',\n },\n mediumHorizontal: {\n columnGap: pendingSpacingTokens.sNudge,\n justifyContent: 'center',\n ...shorthands.padding(pendingSpacingTokens.m, pendingSpacingTokens.mNudge),\n },\n mediumVertical: {\n columnGap: pendingSpacingTokens.sNudge,\n justifyContent: 'flex-start',\n minWidth: '120px',\n ...shorthands.padding(pendingSpacingTokens.sNudge, pendingSpacingTokens.mNudge),\n },\n smallHorizontal: {\n columnGap: pendingSpacingTokens.xxs,\n ...shorthands.padding(pendingSpacingTokens.sNudge, pendingSpacingTokens.sNudge),\n },\n smallVertical: {\n columnGap: pendingSpacingTokens.xxs,\n ...shorthands.padding(pendingSpacingTokens.xxs, pendingSpacingTokens.sNudge),\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n },\n ':active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n },\n '& .fui-Tab__icon': {\n color: tokens.colorNeutralForeground2,\n },\n ':hover .fui-Tab__icon': {\n color: tokens.colorNeutralForeground2Hover,\n },\n ':active .fui-Tab__icon': {\n color: tokens.colorNeutralForeground2Pressed,\n },\n '& .fui-Tab__content': {\n color: tokens.colorNeutralForeground2,\n },\n ':hover .fui-Tab__content': {\n color: tokens.colorNeutralForeground2Hover,\n },\n ':active .fui-Tab__content': {\n color: tokens.colorNeutralForeground2Pressed,\n },\n },\n subtle: {\n backgroundColor: tokens.colorSubtleBackground,\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundHover,\n },\n ':active': {\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n },\n '& .fui-Tab__icon': {\n color: tokens.colorNeutralForeground2,\n },\n ':hover .fui-Tab__icon': {\n color: tokens.colorNeutralForeground2Hover,\n },\n ':active .fui-Tab__icon': {\n color: tokens.colorNeutralForeground2Pressed,\n },\n '& .fui-Tab__content': {\n color: tokens.colorNeutralForeground2,\n },\n ':hover .fui-Tab__content': {\n color: tokens.colorNeutralForeground2Hover,\n },\n ':active .fui-Tab__content': {\n color: tokens.colorNeutralForeground2Pressed,\n },\n },\n disabled: {\n backgroundColor: tokens.colorTransparentBackground,\n\n '& .fui-Tab__icon': {\n color: tokens.colorNeutralForegroundDisabled,\n },\n '& .fui-Tab__content': {\n color: tokens.colorNeutralForegroundDisabled,\n },\n cursor: 'not-allowed',\n },\n selected: {\n '& .fui-Tab__icon': {\n color: tokens.colorCompoundBrandForeground1,\n },\n ':hover .fui-Tab__icon': {\n color: tokens.colorCompoundBrandForeground1Hover,\n },\n ':active .fui-Tab__icon': {\n color: tokens.colorCompoundBrandForeground1Pressed,\n },\n '& .fui-Tab__content': {\n color: tokens.colorNeutralForeground1,\n },\n ':hover .fui-Tab__content': {\n color: tokens.colorNeutralForeground1Hover,\n },\n ':active .fui-Tab__content': {\n color: tokens.colorNeutralForeground1Pressed,\n },\n },\n});\n/* eslint-enable @typescript-eslint/naming-convention */\n\n/**\n * Focus styles for the root slot\n */\nconst useFocusStyles = makeStyles({\n // Tab creates a custom focus indicator because the default focus indicator\n // is applied using an :after pseudo-element on the root. Since the selection\n // indicator uses an :after pseudo-element on the root, there is a conflict.\n base: createCustomFocusIndicatorStyle({\n ...shorthands.borderColor('transparent'),\n outlineWidth: tokens.strokeWidthThick,\n outlineColor: 'transparent',\n outlineStyle: 'solid',\n boxShadow: `\n ${tokens.shadow4},\n 0 0 0 ${tokens.strokeWidthThick} ${tokens.colorStrokeFocus2}\n `,\n zIndex: 1,\n }),\n});\n\n/** Indicator styles for when pending selection */\nconst usePendingIndicatorStyles = makeStyles({\n base: {\n ':hover:before': {\n backgroundColor: 'none',\n ...shorthands.borderStyle('solid'),\n ...shorthands.borderColor(tokens.colorNeutralStroke1Hover),\n ...shorthands.borderRadius(tokens.borderRadiusCircular),\n boxSizing: 'border-box',\n content: '\"\"',\n position: 'absolute',\n },\n ':active:before': {\n backgroundColor: 'none',\n ...shorthands.borderStyle('solid'),\n ...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),\n ...shorthands.borderRadius(tokens.borderRadiusCircular),\n boxSizing: 'border-box',\n content: '\"\"',\n position: 'absolute',\n },\n },\n disabled: {\n ':hover:before': {\n ...shorthands.borderColor(tokens.colorTransparentStroke),\n },\n ':active:before': {\n ...shorthands.borderColor(tokens.colorTransparentStroke),\n },\n },\n mediumHorizontal: {\n ':before': {\n bottom: 0,\n ...shorthands.borderWidth(`calc(${tabIndicatorStrokeWidths.mediumHorizontal} / 2.0)`),\n height: tabIndicatorStrokeWidths.mediumHorizontal,\n left: tabIndicatorPadding.mediumHorizontal,\n right: tabIndicatorPadding.mediumHorizontal,\n },\n },\n mediumVertical: {\n ':before': {\n bottom: tabIndicatorPadding.mediumVertical,\n ...shorthands.borderWidth(`calc(${tabIndicatorStrokeWidths.mediumVertical} / 2.0)`),\n left: 0,\n top: tabIndicatorPadding.mediumVertical,\n width: tabIndicatorStrokeWidths.mediumVertical,\n },\n },\n smallHorizontal: {\n ':before': {\n bottom: 0,\n ...shorthands.borderWidth(`calc(${tabIndicatorStrokeWidths.smallHorizontal} / 2.0)`),\n height: tabIndicatorStrokeWidths.smallHorizontal,\n left: tabIndicatorPadding.smallHorizontal,\n right: tabIndicatorPadding.smallHorizontal,\n },\n },\n smallVertical: {\n ':before': {\n bottom: tabIndicatorPadding.smallVertical,\n ...shorthands.borderWidth(`calc(${tabIndicatorStrokeWidths.smallVertical} / 2.0)`),\n left: 0,\n top: tabIndicatorPadding.smallVertical,\n width: tabIndicatorStrokeWidths.smallVertical,\n },\n },\n});\n\nconst useActiveIndicatorStyles = makeStyles({\n base: {\n ':after': {\n ...shorthands.borderColor(tokens.colorTransparentStroke),\n ...shorthands.borderStyle('solid'),\n ...shorthands.borderRadius(tokens.borderRadiusCircular),\n boxSizing: 'border-box',\n content: '\"\"',\n position: 'absolute',\n zIndex: 1,\n },\n },\n selected: {\n ':after': {\n ...shorthands.borderColor(tokens.colorCompoundBrandStroke),\n },\n ':hover:after': {\n ...shorthands.borderColor(tokens.colorCompoundBrandStrokeHover),\n },\n ':active:after': {\n ...shorthands.borderColor(tokens.colorCompoundBrandStrokePressed),\n },\n },\n disabled: {\n ':after': {\n ...shorthands.borderColor(tokens.colorNeutralForegroundDisabled),\n },\n },\n mediumHorizontal: {\n ':after': {\n bottom: '0',\n ...shorthands.borderWidth(`calc(${tabIndicatorStrokeWidths.mediumHorizontal} / 2.0)`),\n height: tabIndicatorStrokeWidths.mediumHorizontal,\n left: tabIndicatorPadding.mediumHorizontal,\n right: tabIndicatorPadding.mediumHorizontal,\n },\n },\n mediumVertical: {\n ':after': {\n bottom: tabIndicatorPadding.mediumVertical,\n ...shorthands.borderWidth(`calc(${tabIndicatorStrokeWidths.mediumVertical} / 2.0)`),\n left: 0,\n top: tabIndicatorPadding.mediumVertical,\n width: tabIndicatorStrokeWidths.mediumVertical,\n },\n },\n smallHorizontal: {\n ':after': {\n bottom: 0,\n ...shorthands.borderWidth(`calc(${tabIndicatorStrokeWidths.smallHorizontal} / 2.0)`),\n height: tabIndicatorStrokeWidths.smallHorizontal,\n left: tabIndicatorPadding.smallHorizontal,\n right: tabIndicatorPadding.smallHorizontal,\n },\n },\n smallVertical: {\n ':after': {\n bottom: tabIndicatorPadding.smallVertical,\n ...shorthands.borderWidth(`calc(${tabIndicatorStrokeWidths.smallVertical} / 2.0)`),\n left: '0',\n top: tabIndicatorPadding.smallVertical,\n width: tabIndicatorStrokeWidths.smallVertical,\n },\n },\n});\n\n/**\n * Styles for the icon slot.\n */\nconst useIconStyles = makeStyles({\n base: {\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n ...shorthands.overflow('hidden'),\n },\n // per design, the small and medium font sizes are the same.\n // the size prop only affects spacing.\n small: {\n fontSize: '20px',\n height: '20px',\n width: '20px',\n },\n medium: {\n fontSize: '20px',\n height: '20px',\n width: '20px',\n },\n});\n\n/**\n * Styles for the content slot (children)\n */\nconst useContentStyles = makeStyles({\n base: {\n ...pendingContentSizeTokens.body1,\n ...shorthands.overflow('hidden'),\n // content padding is the same for medium & small, horiztonal & vertical\n ...shorthands.padding(0, pendingSpacingTokens.xxs),\n },\n selected: {\n ...pendingContentSizeTokens.body1Strong,\n },\n});\n\n/**\n * Apply styling to the Tab slots based on the state\n */\nexport const useTabStyles_unstable = (state: TabState): TabState => {\n const rootStyles = useRootStyles();\n const focusStyles = useFocusStyles();\n const pendingIndicatorStyles = usePendingIndicatorStyles();\n const activeIndicatorStyles = useActiveIndicatorStyles();\n const iconStyles = useIconStyles();\n const contentStyles = useContentStyles();\n\n const { appearance, disabled, selected, size, vertical } = state;\n\n state.root.className = mergeClasses(\n tabClassNames.root,\n rootStyles.base,\n size !== 'small' && (vertical ? rootStyles.mediumVertical : rootStyles.mediumHorizontal),\n size === 'small' && (vertical ? rootStyles.smallVertical : rootStyles.smallHorizontal),\n focusStyles.base,\n !disabled && appearance === 'subtle' && rootStyles.subtle,\n !disabled && appearance === 'transparent' && rootStyles.transparent,\n !disabled && selected && rootStyles.selected,\n disabled && rootStyles.disabled,\n\n // pending indicator (before pseudo element)\n pendingIndicatorStyles.base,\n size !== 'small' && (vertical ? pendingIndicatorStyles.mediumVertical : pendingIndicatorStyles.mediumHorizontal),\n size === 'small' && (vertical ? pendingIndicatorStyles.smallVertical : pendingIndicatorStyles.smallHorizontal),\n disabled && pendingIndicatorStyles.disabled,\n\n // active indicator (after pseudo element)\n selected && activeIndicatorStyles.base,\n selected && !disabled && activeIndicatorStyles.selected,\n selected &&\n size !== 'small' &&\n (vertical ? activeIndicatorStyles.mediumVertical : activeIndicatorStyles.mediumHorizontal),\n selected &&\n size === 'small' &&\n (vertical ? activeIndicatorStyles.smallVertical : activeIndicatorStyles.smallHorizontal),\n selected && disabled && activeIndicatorStyles.disabled,\n state.root.className,\n );\n\n if (state.icon) {\n state.icon.className = mergeClasses(tabClassNames.icon, iconStyles.base, iconStyles[size], state.icon.className);\n }\n\n state.content.className = mergeClasses(\n tabClassNames.content,\n contentStyles.base,\n selected && contentStyles.selected,\n state.content.className,\n );\n\n useTabAnimatedIndicatorStyles_unstable(state);\n\n return state;\n};\n"],"sourceRoot":"../src/"}
|