@fluentui/react-tabs 9.3.4 → 9.3.5
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/.swcrc +30 -0
- package/CHANGELOG.json +58 -1
- package/CHANGELOG.md +18 -2
- package/lib/Tab.js.map +1 -1
- package/lib/TabList.js.map +1 -1
- package/lib/components/Tab/Tab.js.map +1 -1
- package/lib/components/Tab/Tab.types.js.map +1 -1
- package/lib/components/Tab/index.js.map +1 -1
- package/lib/components/Tab/renderTab.js +1 -7
- package/lib/components/Tab/renderTab.js.map +1 -1
- package/lib/components/Tab/useTab.js.map +1 -1
- package/lib/components/Tab/useTabAnimatedIndicator.js +4 -4
- package/lib/components/Tab/useTabAnimatedIndicator.js.map +1 -1
- package/lib/components/Tab/useTabStyles.js +4 -6
- package/lib/components/Tab/useTabStyles.js.map +1 -1
- package/lib/components/TabList/TabList.js.map +1 -1
- package/lib/components/TabList/TabList.types.js +1 -1
- package/lib/components/TabList/TabList.types.js.map +1 -1
- package/lib/components/TabList/TabListContext.js +3 -6
- package/lib/components/TabList/TabListContext.js.map +1 -1
- package/lib/components/TabList/index.js.map +1 -1
- package/lib/components/TabList/renderTabList.js +1 -3
- package/lib/components/TabList/renderTabList.js.map +1 -1
- package/lib/components/TabList/useTabList.js.map +1 -1
- package/lib/components/TabList/useTabListContextValues.js.map +1 -1
- package/lib/components/TabList/useTabListStyles.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib-commonjs/Tab.js +5 -4
- package/lib-commonjs/Tab.js.map +1 -1
- package/lib-commonjs/TabList.js +5 -4
- package/lib-commonjs/TabList.js.map +1 -1
- package/lib-commonjs/components/Tab/Tab.js +19 -20
- package/lib-commonjs/components/Tab/Tab.js.map +1 -1
- package/lib-commonjs/components/Tab/Tab.types.js +3 -2
- package/lib-commonjs/components/Tab/Tab.types.js.map +1 -1
- package/lib-commonjs/components/Tab/index.js +10 -9
- package/lib-commonjs/components/Tab/index.js.map +1 -1
- package/lib-commonjs/components/Tab/renderTab.js +16 -25
- package/lib-commonjs/components/Tab/renderTab.js.map +1 -1
- package/lib-commonjs/components/Tab/useTab.js +76 -82
- package/lib-commonjs/components/Tab/useTab.js.map +1 -1
- package/lib-commonjs/components/Tab/useTabAnimatedIndicator.js +133 -117
- package/lib-commonjs/components/Tab/useTabAnimatedIndicator.js.map +1 -1
- package/lib-commonjs/components/Tab/useTabStyles.js +751 -396
- package/lib-commonjs/components/Tab/useTabStyles.js.map +1 -1
- package/lib-commonjs/components/TabList/TabList.js +21 -22
- package/lib-commonjs/components/TabList/TabList.js.map +1 -1
- package/lib-commonjs/components/TabList/TabList.types.js +5 -2
- package/lib-commonjs/components/TabList/TabList.types.js.map +1 -1
- package/lib-commonjs/components/TabList/TabListContext.js +34 -28
- package/lib-commonjs/components/TabList/TabListContext.js.map +1 -1
- package/lib-commonjs/components/TabList/index.js +11 -10
- package/lib-commonjs/components/TabList/index.js.map +1 -1
- package/lib-commonjs/components/TabList/renderTabList.js +16 -21
- package/lib-commonjs/components/TabList/renderTabList.js.map +1 -1
- package/lib-commonjs/components/TabList/useTabList.js +73 -84
- package/lib-commonjs/components/TabList/useTabList.js.map +1 -1
- package/lib-commonjs/components/TabList/useTabListContextValues.js +23 -32
- package/lib-commonjs/components/TabList/useTabListContextValues.js.map +1 -1
- package/lib-commonjs/components/TabList/useTabListStyles.js +46 -36
- package/lib-commonjs/components/TabList/useTabListStyles.js.map +1 -1
- package/lib-commonjs/index.js +27 -84
- package/lib-commonjs/index.js.map +1 -1
- package/package.json +10 -9
- package/lib-amd/Tab.js +0 -6
- package/lib-amd/Tab.js.map +0 -1
- package/lib-amd/TabList.js +0 -6
- package/lib-amd/TabList.js.map +0 -1
- package/lib-amd/components/Tab/Tab.js +0 -17
- package/lib-amd/components/Tab/Tab.js.map +0 -1
- package/lib-amd/components/Tab/Tab.types.js +0 -5
- package/lib-amd/components/Tab/Tab.types.js.map +0 -1
- package/lib-amd/components/Tab/index.js +0 -11
- package/lib-amd/components/Tab/index.js.map +0 -1
- package/lib-amd/components/Tab/renderTab.js +0 -17
- package/lib-amd/components/Tab/renderTab.js.map +0 -1
- package/lib-amd/components/Tab/useTab.js +0 -63
- package/lib-amd/components/Tab/useTab.js.map +0 -1
- package/lib-amd/components/Tab/useTabAnimatedIndicator.js +0 -112
- package/lib-amd/components/Tab/useTabAnimatedIndicator.js.map +0 -1
- package/lib-amd/components/Tab/useTabStyles.js +0 -380
- package/lib-amd/components/Tab/useTabStyles.js.map +0 -1
- package/lib-amd/components/TabList/TabList.js +0 -18
- package/lib-amd/components/TabList/TabList.js.map +0 -1
- package/lib-amd/components/TabList/TabList.types.js +0 -5
- package/lib-amd/components/TabList/TabList.types.js.map +0 -1
- package/lib-amd/components/TabList/TabListContext.js +0 -37
- package/lib-amd/components/TabList/TabListContext.js.map +0 -1
- package/lib-amd/components/TabList/index.js +0 -12
- package/lib-amd/components/TabList/index.js.map +0 -1
- package/lib-amd/components/TabList/renderTabList.js +0 -15
- package/lib-amd/components/TabList/renderTabList.js.map +0 -1
- package/lib-amd/components/TabList/useTabList.js +0 -74
- package/lib-amd/components/TabList/useTabList.js.map +0 -1
- package/lib-amd/components/TabList/useTabListContextValues.js +0 -23
- package/lib-amd/components/TabList/useTabListContextValues.js.map +0 -1
- package/lib-amd/components/TabList/useTabListStyles.js +0 -39
- package/lib-amd/components/TabList/useTabListStyles.js.map +0 -1
- package/lib-amd/index.js +0 -19
- package/lib-amd/index.js.map +0 -1
|
@@ -1,133 +1,149 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
2
|
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "useTabAnimatedIndicatorStyles_unstable", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: ()=>useTabAnimatedIndicatorStyles_unstable
|
|
5
8
|
});
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const react_theme_1 = /*#__PURE__*/require("@fluentui/react-theme");
|
|
9
|
+
const _interopRequireWildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
|
10
|
+
const _react = /*#__PURE__*/ _interopRequireWildcard(require("react"));
|
|
11
|
+
const _react1 = require("@griffel/react");
|
|
12
|
+
const _tabListContext = require("../TabList/TabListContext");
|
|
11
13
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
12
14
|
const tabIndicatorCssVars_unstable = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
offsetVar: '--fui-Tab__indicator--offset',
|
|
16
|
+
scaleVar: '--fui-Tab__indicator--scale'
|
|
15
17
|
};
|
|
16
|
-
const useActiveIndicatorStyles = /*#__PURE__*/
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
18
|
+
const useActiveIndicatorStyles = /*#__PURE__*/ (0, _react1["__styles"])({
|
|
19
|
+
base: {
|
|
20
|
+
B68tc82: "f1mtd64y",
|
|
21
|
+
Bmxbyg5: "f1y7q3j9"
|
|
22
|
+
},
|
|
23
|
+
animated: {
|
|
24
|
+
Ba2ppi3: "fhwpy7i",
|
|
25
|
+
F2fol1: "f6zz20j",
|
|
26
|
+
B1dyfl9: "f1ai4sc1",
|
|
27
|
+
B0vmy72: "f9qxlq5",
|
|
28
|
+
u9bimw: "f1aql376"
|
|
29
|
+
},
|
|
30
|
+
horizontal: {
|
|
31
|
+
sjv3b2: [
|
|
32
|
+
"fug4aj8",
|
|
33
|
+
"f1i5xzg7"
|
|
34
|
+
],
|
|
35
|
+
b1kco5: "f1q7ujh"
|
|
36
|
+
},
|
|
37
|
+
vertical: {
|
|
38
|
+
sjv3b2: "f1hqboyk",
|
|
39
|
+
b1kco5: "f1dxupa6"
|
|
40
|
+
}
|
|
36
41
|
}, {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
d: [
|
|
43
|
+
".f1mtd64y{overflow-x:visible;}",
|
|
44
|
+
".f1y7q3j9{overflow-y:visible;}",
|
|
45
|
+
".fhwpy7i::after{transition-property:transform;}",
|
|
46
|
+
".f6zz20j::after{transition-duration:var(--durationSlow);}",
|
|
47
|
+
".f1ai4sc1::after{transition-timing-function:var(--curveDecelerateMax);}",
|
|
48
|
+
".fug4aj8::after{transform-origin:left;}",
|
|
49
|
+
".f1i5xzg7::after{transform-origin:right;}",
|
|
50
|
+
".f1q7ujh::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));}",
|
|
51
|
+
".f1hqboyk::after{transform-origin:top;}",
|
|
52
|
+
".f1dxupa6::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));}"
|
|
53
|
+
],
|
|
54
|
+
m: [
|
|
55
|
+
[
|
|
56
|
+
"@media (prefers-reduced-motion: reduce){.f9qxlq5::after{transition-property:none;}}",
|
|
57
|
+
{
|
|
58
|
+
m: "(prefers-reduced-motion: reduce)"
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
[
|
|
62
|
+
"@media (prefers-reduced-motion: reduce){.f1aql376::after{transition-duration:0.01ms;}}",
|
|
63
|
+
{
|
|
64
|
+
m: "(prefers-reduced-motion: reduce)"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
]
|
|
43
68
|
});
|
|
44
|
-
const calculateTabRect = element
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
69
|
+
const calculateTabRect = (element)=>{
|
|
70
|
+
if (element) {
|
|
71
|
+
var _element_parentElement;
|
|
72
|
+
const parentRect = ((_element_parentElement = element.parentElement) === null || _element_parentElement === void 0 ? void 0 : _element_parentElement.getBoundingClientRect()) || {
|
|
73
|
+
x: 0,
|
|
74
|
+
y: 0,
|
|
75
|
+
width: 0,
|
|
76
|
+
height: 0
|
|
77
|
+
};
|
|
78
|
+
const tabRect = element.getBoundingClientRect();
|
|
79
|
+
return {
|
|
80
|
+
x: tabRect.x - parentRect.x,
|
|
81
|
+
y: tabRect.y - parentRect.y,
|
|
82
|
+
width: tabRect.width,
|
|
83
|
+
height: tabRect.height
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return undefined;
|
|
62
87
|
};
|
|
63
|
-
const getRegisteredTabRect = (registeredTabs, value)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
88
|
+
const getRegisteredTabRect = (registeredTabs, value)=>{
|
|
89
|
+
var _registeredTabs_JSON_stringify;
|
|
90
|
+
const element = value !== undefined && value !== null ? (_registeredTabs_JSON_stringify = registeredTabs[JSON.stringify(value)]) === null || _registeredTabs_JSON_stringify === void 0 ? void 0 : _registeredTabs_JSON_stringify.ref.current : undefined;
|
|
91
|
+
return element ? calculateTabRect(element) : undefined;
|
|
67
92
|
};
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
disabled,
|
|
74
|
-
selected,
|
|
75
|
-
vertical
|
|
76
|
-
} = state;
|
|
77
|
-
const activeIndicatorStyles = useActiveIndicatorStyles();
|
|
78
|
-
const [lastAnimatedFrom, setLastAnimatedFrom] = React.useState();
|
|
79
|
-
const [animationValues, setAnimationValues] = React.useState({
|
|
80
|
-
offset: 0,
|
|
81
|
-
scale: 1
|
|
82
|
-
});
|
|
83
|
-
const getRegisteredTabs = TabListContext_1.useTabListContext_unstable(ctx => ctx.getRegisteredTabs);
|
|
84
|
-
React.useEffect(() => {
|
|
85
|
-
if (lastAnimatedFrom) {
|
|
86
|
-
setAnimationValues({
|
|
93
|
+
const useTabAnimatedIndicatorStyles_unstable = (state)=>{
|
|
94
|
+
const { disabled , selected , vertical } = state;
|
|
95
|
+
const activeIndicatorStyles = useActiveIndicatorStyles();
|
|
96
|
+
const [lastAnimatedFrom, setLastAnimatedFrom] = _react.useState();
|
|
97
|
+
const [animationValues, setAnimationValues] = _react.useState({
|
|
87
98
|
offset: 0,
|
|
88
99
|
scale: 1
|
|
89
|
-
|
|
100
|
+
});
|
|
101
|
+
const getRegisteredTabs = (0, _tabListContext.useTabListContext_unstable)((ctx)=>ctx.getRegisteredTabs);
|
|
102
|
+
_react.useEffect(()=>{
|
|
103
|
+
if (lastAnimatedFrom) {
|
|
104
|
+
setAnimationValues({
|
|
105
|
+
offset: 0,
|
|
106
|
+
scale: 1
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}, [
|
|
110
|
+
lastAnimatedFrom
|
|
111
|
+
]);
|
|
112
|
+
if (selected) {
|
|
113
|
+
const { previousSelectedValue , selectedValue , registeredTabs } = getRegisteredTabs();
|
|
114
|
+
const previousSelectedTabRect = getRegisteredTabRect(registeredTabs, previousSelectedValue);
|
|
115
|
+
const selectedTabRect = getRegisteredTabRect(registeredTabs, selectedValue);
|
|
116
|
+
if (selectedTabRect && previousSelectedTabRect && previousSelectedValue && lastAnimatedFrom !== previousSelectedValue) {
|
|
117
|
+
const offset = vertical ? previousSelectedTabRect.y - selectedTabRect.y : previousSelectedTabRect.x - selectedTabRect.x;
|
|
118
|
+
const scale = vertical ? previousSelectedTabRect.height / selectedTabRect.height : previousSelectedTabRect.width / selectedTabRect.width;
|
|
119
|
+
setAnimationValues({
|
|
120
|
+
offset,
|
|
121
|
+
scale
|
|
122
|
+
});
|
|
123
|
+
setLastAnimatedFrom(previousSelectedValue);
|
|
124
|
+
}
|
|
125
|
+
} else if (lastAnimatedFrom) {
|
|
126
|
+
// need to clear the last animated from so that if this tab is selected again
|
|
127
|
+
// from the same previous tab as last time, that animation still happens.
|
|
128
|
+
setLastAnimatedFrom(undefined);
|
|
90
129
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
previousSelectedValue,
|
|
95
|
-
selectedValue,
|
|
96
|
-
registeredTabs
|
|
97
|
-
} = getRegisteredTabs();
|
|
98
|
-
const previousSelectedTabRect = getRegisteredTabRect(registeredTabs, previousSelectedValue);
|
|
99
|
-
const selectedTabRect = getRegisteredTabRect(registeredTabs, selectedValue);
|
|
100
|
-
if (selectedTabRect && previousSelectedTabRect && previousSelectedValue && lastAnimatedFrom !== previousSelectedValue) {
|
|
101
|
-
const offset = vertical ? previousSelectedTabRect.y - selectedTabRect.y : previousSelectedTabRect.x - selectedTabRect.x;
|
|
102
|
-
const scale = vertical ? previousSelectedTabRect.height / selectedTabRect.height : previousSelectedTabRect.width / selectedTabRect.width;
|
|
103
|
-
setAnimationValues({
|
|
104
|
-
offset,
|
|
105
|
-
scale
|
|
106
|
-
});
|
|
107
|
-
setLastAnimatedFrom(previousSelectedValue);
|
|
130
|
+
// do not apply any animation if the tab is disabled
|
|
131
|
+
if (disabled) {
|
|
132
|
+
return state;
|
|
108
133
|
}
|
|
109
|
-
|
|
110
|
-
//
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
134
|
+
// the animation should only happen as the selection indicator returns to its
|
|
135
|
+
// original position and not when set at the previous tabs position.
|
|
136
|
+
const animating = animationValues.offset === 0 && animationValues.scale === 1;
|
|
137
|
+
state.root.className = (0, _react1.mergeClasses)(state.root.className, selected && activeIndicatorStyles.base, selected && animating && activeIndicatorStyles.animated, selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal));
|
|
138
|
+
const rootCssVars = {
|
|
139
|
+
[tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,
|
|
140
|
+
[tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`
|
|
141
|
+
};
|
|
142
|
+
state.root.style = {
|
|
143
|
+
...rootCssVars,
|
|
144
|
+
...state.root.style
|
|
145
|
+
};
|
|
116
146
|
return state;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
// original position and not when set at the previous tabs position.
|
|
120
|
-
const animating = animationValues.offset === 0 && animationValues.scale === 1;
|
|
121
|
-
state.root.className = react_1.mergeClasses(state.root.className, selected && activeIndicatorStyles.base, selected && animating && activeIndicatorStyles.animated, selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal));
|
|
122
|
-
const rootCssVars = {
|
|
123
|
-
[tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,
|
|
124
|
-
[tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`
|
|
125
|
-
};
|
|
126
|
-
state.root.style = {
|
|
127
|
-
...rootCssVars,
|
|
128
|
-
...state.root.style
|
|
129
|
-
};
|
|
130
|
-
return state;
|
|
131
|
-
};
|
|
132
|
-
exports.useTabAnimatedIndicatorStyles_unstable = useTabAnimatedIndicatorStyles_unstable;
|
|
147
|
+
}; //# sourceMappingURL=useTabAnimatedIndicator.js.map
|
|
148
|
+
|
|
133
149
|
//# sourceMappingURL=useTabAnimatedIndicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","require","react_1","TabListContext_1","react_theme_1","tabIndicatorCssVars_unstable","offsetVar","scaleVar","useActiveIndicatorStyles","__styles","base","B68tc82","Bmxbyg5","animated","Ba2ppi3","F2fol1","B1dyfl9","B0vmy72","u9bimw","horizontal","sjv3b2","b1kco5","vertical","d","m","calculateTabRect","element","parentRect","_a","parentElement","getBoundingClientRect","x","y","width","height","tabRect","undefined","getRegisteredTabRect","registeredTabs","value","JSON","stringify","ref","current","useTabAnimatedIndicatorStyles_unstable","state","disabled","selected","activeIndicatorStyles","lastAnimatedFrom","setLastAnimatedFrom","useState","animationValues","setAnimationValues","offset","scale","getRegisteredTabs","useTabListContext_unstable","ctx","useEffect","previousSelectedValue","selectedValue","previousSelectedTabRect","selectedTabRect","animating","root","className","mergeClasses","rootCssVars","style","exports"],"sources":["../src/packages/react-components/react-tabs/src/components/Tab/useTabAnimatedIndicator.ts"],"sourcesContent":["import * as React from 'react';\nimport type { TabState, TabValue } from './Tab.types';\n\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { useTabListContext_unstable } from '../TabList/TabListContext';\nimport { TabRegisterData } from '../TabList/TabList.types';\nimport { tokens } from '@fluentui/react-theme';\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: `${tokens.durationSlow}`,\n transitionTimingFunction: `${tokens.curveDecelerateMax}`,\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 =\n value !== undefined && value !== null ? 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 = useTabListContext_unstable(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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/Tab/useTabAnimatedIndicator.js"],"sourcesContent":["import * as React from 'react';\nimport { __styles, mergeClasses, shorthands } from '@griffel/react';\nimport { useTabListContext_unstable } from '../TabList/TabListContext';\nimport { tokens } from '@fluentui/react-theme';\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};\nconst useActiveIndicatorStyles = /*#__PURE__*/__styles({\n base: {\n B68tc82: \"f1mtd64y\",\n Bmxbyg5: \"f1y7q3j9\"\n },\n animated: {\n Ba2ppi3: \"fhwpy7i\",\n F2fol1: \"f6zz20j\",\n B1dyfl9: \"f1ai4sc1\",\n B0vmy72: \"f9qxlq5\",\n u9bimw: \"f1aql376\"\n },\n horizontal: {\n sjv3b2: [\"fug4aj8\", \"f1i5xzg7\"],\n b1kco5: \"f1q7ujh\"\n },\n vertical: {\n sjv3b2: \"f1hqboyk\",\n b1kco5: \"f1dxupa6\"\n }\n}, {\n d: [\".f1mtd64y{overflow-x:visible;}\", \".f1y7q3j9{overflow-y:visible;}\", \".fhwpy7i::after{transition-property:transform;}\", \".f6zz20j::after{transition-duration:var(--durationSlow);}\", \".f1ai4sc1::after{transition-timing-function:var(--curveDecelerateMax);}\", \".fug4aj8::after{transform-origin:left;}\", \".f1i5xzg7::after{transform-origin:right;}\", \".f1q7ujh::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));}\", \".f1hqboyk::after{transform-origin:top;}\", \".f1dxupa6::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));}\"],\n m: [[\"@media (prefers-reduced-motion: reduce){.f9qxlq5::after{transition-property:none;}}\", {\n m: \"(prefers-reduced-motion: reduce)\"\n }], [\"@media (prefers-reduced-motion: reduce){.f1aql376::after{transition-duration:0.01ms;}}\", {\n m: \"(prefers-reduced-motion: reduce)\"\n }]]\n});\nconst calculateTabRect = element => {\n if (element) {\n var _element_parentElement;\n const parentRect = ((_element_parentElement = element.parentElement) === null || _element_parentElement === void 0 ? void 0 : _element_parentElement.getBoundingClientRect()) || {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n const tabRect = element.getBoundingClientRect();\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};\nconst getRegisteredTabRect = (registeredTabs, value) => {\n var _registeredTabs_JSON_stringify;\n const element = value !== undefined && value !== null ? (_registeredTabs_JSON_stringify = registeredTabs[JSON.stringify(value)]) === null || _registeredTabs_JSON_stringify === void 0 ? void 0 : _registeredTabs_JSON_stringify.ref.current : undefined;\n return element ? calculateTabRect(element) : undefined;\n};\n/**\n * Adds additional styling to the active tab selection indicator to create a sliding animation.\n */\nexport const useTabAnimatedIndicatorStyles_unstable = state => {\n const {\n disabled,\n selected,\n vertical\n } = state;\n const activeIndicatorStyles = useActiveIndicatorStyles();\n const [lastAnimatedFrom, setLastAnimatedFrom] = React.useState();\n const [animationValues, setAnimationValues] = React.useState({\n offset: 0,\n scale: 1\n });\n const getRegisteredTabs = useTabListContext_unstable(ctx => ctx.getRegisteredTabs);\n React.useEffect(() => {\n if (lastAnimatedFrom) {\n setAnimationValues({\n offset: 0,\n scale: 1\n });\n }\n }, [lastAnimatedFrom]);\n if (selected) {\n const {\n previousSelectedValue,\n selectedValue,\n registeredTabs\n } = getRegisteredTabs();\n const previousSelectedTabRect = getRegisteredTabRect(registeredTabs, previousSelectedValue);\n const selectedTabRect = getRegisteredTabRect(registeredTabs, selectedValue);\n if (selectedTabRect && previousSelectedTabRect && previousSelectedValue && lastAnimatedFrom !== previousSelectedValue) {\n const offset = vertical ? previousSelectedTabRect.y - selectedTabRect.y : previousSelectedTabRect.x - selectedTabRect.x;\n const scale = vertical ? previousSelectedTabRect.height / selectedTabRect.height : previousSelectedTabRect.width / selectedTabRect.width;\n setAnimationValues({\n offset,\n scale\n });\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 // do not apply any animation if the tab is disabled\n if (disabled) {\n return state;\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 state.root.className = mergeClasses(state.root.className, selected && activeIndicatorStyles.base, selected && animating && activeIndicatorStyles.animated, selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal));\n const rootCssVars = {\n [tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,\n [tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`\n };\n state.root.style = {\n ...rootCssVars,\n ...state.root.style\n };\n return state;\n};\n//# sourceMappingURL=useTabAnimatedIndicator.js.map"],"names":["useTabAnimatedIndicatorStyles_unstable","tabIndicatorCssVars_unstable","offsetVar","scaleVar","useActiveIndicatorStyles","__styles","base","B68tc82","Bmxbyg5","animated","Ba2ppi3","F2fol1","B1dyfl9","B0vmy72","u9bimw","horizontal","sjv3b2","b1kco5","vertical","d","m","calculateTabRect","element","_element_parentElement","parentRect","parentElement","getBoundingClientRect","x","y","width","height","tabRect","undefined","getRegisteredTabRect","registeredTabs","value","_registeredTabs_JSON_stringify","JSON","stringify","ref","current","state","disabled","selected","activeIndicatorStyles","lastAnimatedFrom","setLastAnimatedFrom","React","useState","animationValues","setAnimationValues","offset","scale","getRegisteredTabs","useTabListContext_unstable","ctx","useEffect","previousSelectedValue","selectedValue","previousSelectedTabRect","selectedTabRect","animating","root","className","mergeClasses","rootCssVars","style"],"mappings":"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"}
|