@cgi-learning-hub/ui 0.0.1-dev.1708990372 → 0.0.1-dev.1709023966
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/dist/Box-7uR7JZiM.cjs +1 -0
- package/dist/Box-CPGTKTgx.js +56 -0
- package/dist/ButtonBase-B0tkJ9zf.js +831 -0
- package/dist/ButtonBase-DCL6Xlnm.cjs +75 -0
- package/dist/CircularProgress-CZX5SfKt.cjs +28 -0
- package/dist/CircularProgress-CguDBnxV.js +215 -0
- package/dist/IconButton-CJ1Nt-jf.js +182 -0
- package/dist/IconButton-De7ZdW2q.cjs +2 -0
- package/dist/{InputBase-B13Nzzhk.js → InputBase-C_yPRkam.js} +193 -215
- package/dist/InputBase-Dvr5GnwD.cjs +4 -0
- package/dist/Tab-Bhm9hCrX.cjs +1 -0
- package/dist/Tab-C4l6V01S.js +237 -0
- package/dist/TransitionGroupContext-C7wWJ6l7.js +14 -0
- package/dist/TransitionGroupContext-g4tmk10h.cjs +1 -0
- package/dist/Typography-CyFLZjnE.js +202 -0
- package/dist/Typography-DwsN2Ttm.cjs +1 -0
- package/dist/assets/index.css +1 -1
- package/dist/components/Dropzone/Dropzone.cjs.js +5 -0
- package/dist/components/Dropzone/Dropzone.d.ts +9 -0
- package/dist/components/Dropzone/Dropzone.es.js +1210 -0
- package/dist/components/Dropzone/Dropzone.stories.cjs.js +1 -0
- package/dist/components/{AnotherComponent/AnotherComponent.stories.d.ts → Dropzone/Dropzone.stories.d.ts} +1 -2
- package/dist/components/Dropzone/Dropzone.stories.es.js +17 -0
- package/dist/components/Dropzone/index.cjs.js +1 -0
- package/dist/components/Dropzone/index.d.ts +2 -0
- package/dist/components/Dropzone/index.es.js +4 -0
- package/dist/components/buttons/DefaultButton/DefaultButton.cjs.js +1 -28
- package/dist/components/buttons/DefaultButton/DefaultButton.es.js +408 -267
- package/dist/components/buttons/DefaultButton/DefaultButtonIcon.cjs.js +1 -1
- package/dist/components/buttons/DefaultButton/DefaultButtonIcon.es.js +5 -5
- package/dist/components/buttons/IconButton.stories.cjs.js +1 -0
- package/dist/components/buttons/IconButton.stories.d.ts +4 -0
- package/dist/components/buttons/IconButton.stories.es.js +27 -0
- package/dist/components/buttons/PrimaryButton/PrimaryButton.cjs.js +1 -1
- package/dist/components/buttons/PrimaryButton/PrimaryButton.es.js +1 -1
- package/dist/components/buttons/PrimaryButton/PrimaryButton.stories.cjs.js +1 -1
- package/dist/components/buttons/PrimaryButton/PrimaryButton.stories.d.ts +1 -1
- package/dist/components/buttons/PrimaryButton/PrimaryButton.stories.es.js +8 -7
- package/dist/components/buttons/SecondaryButton/SecondaryButton.cjs.js +1 -1
- package/dist/components/buttons/SecondaryButton/SecondaryButton.es.js +1 -1
- package/dist/components/buttons/SecondaryButton/SecondaryButton.stories.cjs.js +1 -1
- package/dist/components/buttons/SecondaryButton/SecondaryButton.stories.d.ts +1 -1
- package/dist/components/buttons/SecondaryButton/SecondaryButton.stories.es.js +10 -9
- package/dist/components/index.cjs.js +1 -1
- package/dist/components/index.d.ts +4 -2
- package/dist/components/index.es.js +18 -14
- package/dist/components/inputs/SearchInput/SearchInput.cjs.js +1 -1
- package/dist/components/inputs/SearchInput/SearchInput.es.js +77 -247
- package/dist/components/inputs/SearchInput/SearchInput.stories.cjs.js +1 -0
- package/dist/components/inputs/SearchInput/SearchInput.stories.d.ts +4 -0
- package/dist/components/inputs/SearchInput/SearchInput.stories.es.js +16 -0
- package/dist/components/inputs/TextInput/TextInput.cjs.js +11 -13
- package/dist/components/inputs/TextInput/TextInput.es.js +1844 -1631
- package/dist/components/inputs/TextInput/TextInput.stories.cjs.js +1 -0
- package/dist/components/inputs/TextInput/TextInput.stories.d.ts +4 -0
- package/dist/components/inputs/TextInput/TextInput.stories.es.js +17 -0
- package/dist/components/lists/FileList/FileList.cjs.js +1 -0
- package/dist/components/lists/FileList/FileList.d.ts +7 -0
- package/dist/components/lists/FileList/FileList.es.js +19 -0
- package/dist/components/lists/FileList/FileList.stories.cjs.js +1 -0
- package/dist/components/lists/FileList/FileList.stories.d.ts +4 -0
- package/dist/components/lists/FileList/FileList.stories.es.js +28 -0
- package/dist/components/lists/FileList/FileListItem.cjs.js +1 -0
- package/dist/components/lists/FileList/FileListItem.d.ts +13 -0
- package/dist/components/lists/FileList/FileListItem.es.js +41 -0
- package/dist/components/lists/FileList/index.cjs.js +1 -0
- package/dist/components/lists/FileList/index.d.ts +4 -0
- package/dist/components/lists/FileList/index.es.js +6 -0
- package/dist/components/lists/TabList.stories.cjs.js +4 -0
- package/dist/components/lists/TabList.stories.d.ts +4 -0
- package/dist/components/lists/TabList.stories.es.js +1027 -0
- package/dist/components/lists/index.cjs.js +1 -0
- package/dist/components/lists/index.d.ts +1 -0
- package/dist/components/lists/index.es.js +6 -0
- package/dist/{createSvgIcon-jvI3LIfI.cjs → createSvgIcon-B6bZPuto.cjs} +1 -1
- package/dist/createSvgIcon-BX8WQ5r-.cjs +2 -0
- package/dist/{createSvgIcon-qXNZi4k1.js → createSvgIcon-KaSN8JhZ.js} +8 -8
- package/dist/createSvgIcon-m_wsenOJ.js +84 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +16 -12
- package/dist/isHostComponent-PydJW4A4.cjs +1 -0
- package/dist/isHostComponent-kiaBvYVo.js +6 -0
- package/dist/ownerWindow-C7EH1lr6.js +23 -0
- package/dist/ownerWindow-Dk_4aaak.cjs +1 -0
- package/dist/refType-CHSN6ysS.cjs +1 -0
- package/dist/refType-Hh9tfnoF.js +29 -0
- package/dist/unsupportedProp-Bn6XWqwH.cjs +1 -0
- package/dist/unsupportedProp-BuVD30Gh.js +9 -0
- package/dist/useControlled-BsLcOmhe.js +48 -0
- package/dist/useControlled-jN3fqFfv.cjs +3 -0
- package/dist/useForkRef-CGd3Nhyb.cjs +1 -0
- package/dist/useForkRef-DwN_Iz9R.js +17 -0
- package/dist/useIsFocusVisible-BF0lT08B.cjs +1 -0
- package/dist/useIsFocusVisible-D8ksiuhS.js +69 -0
- package/dist/useSlotProps-MoAYME1z.js +70 -0
- package/dist/useSlotProps-R4s13HHI.cjs +1 -0
- package/dist/useTheme-BDPYLOoP.cjs +1 -0
- package/dist/useTheme-DJEDOopE.js +9 -0
- package/dist/{useThemeProps-B6yTTpAe.js → useThemeProps-Dg9Uoq7q.js} +1018 -1024
- package/dist/useThemeProps-jkB5q9ie.cjs +65 -0
- package/dist/useTimeout-KN97abZR.js +47 -0
- package/dist/useTimeout-qjxkiZZn.cjs +1 -0
- package/package.json +2 -1
- package/dist/Button-Tkz5NkF_.cjs +0 -1
- package/dist/Button-X7eWZQfX.js +0 -356
- package/dist/ButtonBase-CKfcGhaU.js +0 -892
- package/dist/ButtonBase-Cg8cBMzO.cjs +0 -75
- package/dist/Input-CAb0EFzc.cjs +0 -1
- package/dist/Input-CbYjsRHK.js +0 -322
- package/dist/InputBase-CKlCw9fj.cjs +0 -4
- package/dist/components/AnotherComponent/AnotherComponent.cjs.js +0 -1
- package/dist/components/AnotherComponent/AnotherComponent.d.ts +0 -2
- package/dist/components/AnotherComponent/AnotherComponent.es.js +0 -15
- package/dist/components/AnotherComponent/AnotherComponent.stories.cjs.js +0 -1
- package/dist/components/AnotherComponent/AnotherComponent.stories.es.js +0 -22
- package/dist/components/AnotherComponent/index.cjs.js +0 -1
- package/dist/components/AnotherComponent/index.d.ts +0 -2
- package/dist/components/AnotherComponent/index.es.js +0 -4
- package/dist/components/BasicButtons/BasicButtons.cjs.js +0 -1
- package/dist/components/BasicButtons/BasicButtons.d.ts +0 -2
- package/dist/components/BasicButtons/BasicButtons.es.js +0 -189
- package/dist/components/BasicButtons/BasicButtons.stories.cjs.js +0 -1
- package/dist/components/BasicButtons/BasicButtons.stories.d.ts +0 -5
- package/dist/components/BasicButtons/BasicButtons.stories.es.js +0 -22
- package/dist/components/BasicButtons/index.cjs.js +0 -1
- package/dist/components/BasicButtons/index.d.ts +0 -2
- package/dist/components/BasicButtons/index.es.js +0 -4
- package/dist/extendSxProp-BRHiEwyk.js +0 -29
- package/dist/extendSxProp-CvhhU9Vb.cjs +0 -1
- package/dist/useForkRef-82uiK71d.cjs +0 -1
- package/dist/useForkRef-CLcOhrzI.js +0 -44
- package/dist/useTheme-BWRyHzdn.js +0 -65
- package/dist/useTheme-BpLcDNG1.cjs +0 -1
- package/dist/useThemeProps-CDriK9TK.cjs +0 -65
|
@@ -0,0 +1,1027 @@
|
|
|
1
|
+
import { jsx as h, jsxs as ee } from "react/jsx-runtime";
|
|
2
|
+
import { P as t, e as U, _ as p, g as pe, a as he, s as $, b as ve, f as D, h as me, t as ft } from "../../useThemeProps-Dg9Uoq7q.js";
|
|
3
|
+
import * as a from "react";
|
|
4
|
+
import { u as $e } from "../../useTheme-DJEDOopE.js";
|
|
5
|
+
import { u as bt } from "../../useForkRef-DwN_Iz9R.js";
|
|
6
|
+
import { d as _e, a as Ae, o as pt } from "../../ownerWindow-C7EH1lr6.js";
|
|
7
|
+
import { a as ue } from "../../useTimeout-KN97abZR.js";
|
|
8
|
+
import { r as ht } from "../../refType-Hh9tfnoF.js";
|
|
9
|
+
import { c as je } from "../../createSvgIcon-KaSN8JhZ.js";
|
|
10
|
+
import { B as vt } from "../../ButtonBase-B0tkJ9zf.js";
|
|
11
|
+
import { u as te } from "../../useSlotProps-MoAYME1z.js";
|
|
12
|
+
import { T as de } from "../../Tab-C4l6V01S.js";
|
|
13
|
+
let A;
|
|
14
|
+
function ke() {
|
|
15
|
+
if (A)
|
|
16
|
+
return A;
|
|
17
|
+
const e = document.createElement("div"), o = document.createElement("div");
|
|
18
|
+
return o.style.width = "10px", o.style.height = "1px", e.appendChild(o), e.dir = "rtl", e.style.fontSize = "14px", e.style.width = "4px", e.style.height = "1px", e.style.position = "absolute", e.style.top = "-1000px", e.style.overflow = "scroll", document.body.appendChild(e), A = "reverse", e.scrollLeft > 0 ? A = "default" : (e.scrollLeft = 1, e.scrollLeft === 0 && (A = "negative")), document.body.removeChild(e), A;
|
|
19
|
+
}
|
|
20
|
+
function mt(e, o) {
|
|
21
|
+
const l = e.scrollLeft;
|
|
22
|
+
if (o !== "rtl")
|
|
23
|
+
return l;
|
|
24
|
+
switch (ke()) {
|
|
25
|
+
case "negative":
|
|
26
|
+
return e.scrollWidth - e.clientWidth + l;
|
|
27
|
+
case "reverse":
|
|
28
|
+
return e.scrollWidth - e.clientWidth - l;
|
|
29
|
+
default:
|
|
30
|
+
return l;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const Se = /* @__PURE__ */ a.createContext(null);
|
|
34
|
+
process.env.NODE_ENV !== "production" && (Se.displayName = "TabContext");
|
|
35
|
+
function St() {
|
|
36
|
+
const [e, o] = a.useState(null);
|
|
37
|
+
return a.useEffect(() => {
|
|
38
|
+
o(`mui-p-${Math.round(Math.random() * 1e5)}`);
|
|
39
|
+
}, []), e;
|
|
40
|
+
}
|
|
41
|
+
function We(e) {
|
|
42
|
+
const {
|
|
43
|
+
children: o,
|
|
44
|
+
value: l
|
|
45
|
+
} = e, c = St(), s = a.useMemo(() => ({
|
|
46
|
+
idPrefix: c,
|
|
47
|
+
value: l
|
|
48
|
+
}), [c, l]);
|
|
49
|
+
return /* @__PURE__ */ h(Se.Provider, {
|
|
50
|
+
value: s,
|
|
51
|
+
children: o
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
process.env.NODE_ENV !== "production" && (We.propTypes = {
|
|
55
|
+
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
56
|
+
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
57
|
+
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
58
|
+
// └─────────────────────────────────────────────────────────────────────┘
|
|
59
|
+
/**
|
|
60
|
+
* The content of the component.
|
|
61
|
+
*/
|
|
62
|
+
children: t.node,
|
|
63
|
+
/**
|
|
64
|
+
* The value of the currently selected `Tab`.
|
|
65
|
+
*/
|
|
66
|
+
value: t.oneOfType([t.number, t.string]).isRequired
|
|
67
|
+
});
|
|
68
|
+
function Ve() {
|
|
69
|
+
return a.useContext(Se);
|
|
70
|
+
}
|
|
71
|
+
function Ue(e, o) {
|
|
72
|
+
const {
|
|
73
|
+
idPrefix: l
|
|
74
|
+
} = e;
|
|
75
|
+
return l === null ? null : `${e.idPrefix}-P-${o}`;
|
|
76
|
+
}
|
|
77
|
+
function Fe(e, o) {
|
|
78
|
+
const {
|
|
79
|
+
idPrefix: l
|
|
80
|
+
} = e;
|
|
81
|
+
return l === null ? null : `${e.idPrefix}-T-${o}`;
|
|
82
|
+
}
|
|
83
|
+
function yt(e) {
|
|
84
|
+
return (1 + Math.sin(Math.PI * e - Math.PI / 2)) / 2;
|
|
85
|
+
}
|
|
86
|
+
function Tt(e, o, l, c = {}, s = () => {
|
|
87
|
+
}) {
|
|
88
|
+
const {
|
|
89
|
+
ease: d = yt,
|
|
90
|
+
duration: v = 300
|
|
91
|
+
// standard
|
|
92
|
+
} = c;
|
|
93
|
+
let b = null;
|
|
94
|
+
const m = o[e];
|
|
95
|
+
let w = !1;
|
|
96
|
+
const y = () => {
|
|
97
|
+
w = !0;
|
|
98
|
+
}, P = (E) => {
|
|
99
|
+
if (w) {
|
|
100
|
+
s(new Error("Animation cancelled"));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
b === null && (b = E);
|
|
104
|
+
const x = Math.min(1, (E - b) / v);
|
|
105
|
+
if (o[e] = d(x) * (l - m) + m, x >= 1) {
|
|
106
|
+
requestAnimationFrame(() => {
|
|
107
|
+
s(null);
|
|
108
|
+
});
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
requestAnimationFrame(P);
|
|
112
|
+
};
|
|
113
|
+
return m === l ? (s(new Error("Element already at target position")), y) : (requestAnimationFrame(P), y);
|
|
114
|
+
}
|
|
115
|
+
const gt = ["onChange"], Bt = {
|
|
116
|
+
width: 99,
|
|
117
|
+
height: 99,
|
|
118
|
+
position: "absolute",
|
|
119
|
+
top: -9999,
|
|
120
|
+
overflow: "scroll"
|
|
121
|
+
};
|
|
122
|
+
function He(e) {
|
|
123
|
+
const {
|
|
124
|
+
onChange: o
|
|
125
|
+
} = e, l = U(e, gt), c = a.useRef(), s = a.useRef(null), d = () => {
|
|
126
|
+
c.current = s.current.offsetHeight - s.current.clientHeight;
|
|
127
|
+
};
|
|
128
|
+
return bt(() => {
|
|
129
|
+
const v = _e(() => {
|
|
130
|
+
const m = c.current;
|
|
131
|
+
d(), m !== c.current && o(c.current);
|
|
132
|
+
}), b = Ae(s.current);
|
|
133
|
+
return b.addEventListener("resize", v), () => {
|
|
134
|
+
v.clear(), b.removeEventListener("resize", v);
|
|
135
|
+
};
|
|
136
|
+
}, [o]), a.useEffect(() => {
|
|
137
|
+
d(), o(c.current);
|
|
138
|
+
}, [o]), /* @__PURE__ */ h("div", p({
|
|
139
|
+
style: Bt,
|
|
140
|
+
ref: s
|
|
141
|
+
}, l));
|
|
142
|
+
}
|
|
143
|
+
process.env.NODE_ENV !== "production" && (He.propTypes = {
|
|
144
|
+
onChange: t.func.isRequired
|
|
145
|
+
});
|
|
146
|
+
const wt = je(/* @__PURE__ */ h("path", {
|
|
147
|
+
d: "M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"
|
|
148
|
+
}), "KeyboardArrowLeft"), xt = je(/* @__PURE__ */ h("path", {
|
|
149
|
+
d: "M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"
|
|
150
|
+
}), "KeyboardArrowRight");
|
|
151
|
+
function Ct(e) {
|
|
152
|
+
return he("MuiTabScrollButton", e);
|
|
153
|
+
}
|
|
154
|
+
const Et = pe("MuiTabScrollButton", ["root", "vertical", "horizontal", "disabled"]), It = Et, Nt = ["className", "slots", "slotProps", "direction", "orientation", "disabled"], Ot = (e) => {
|
|
155
|
+
const {
|
|
156
|
+
classes: o,
|
|
157
|
+
orientation: l,
|
|
158
|
+
disabled: c
|
|
159
|
+
} = e;
|
|
160
|
+
return me({
|
|
161
|
+
root: ["root", l, c && "disabled"]
|
|
162
|
+
}, Ct, o);
|
|
163
|
+
}, Mt = $(vt, {
|
|
164
|
+
name: "MuiTabScrollButton",
|
|
165
|
+
slot: "Root",
|
|
166
|
+
overridesResolver: (e, o) => {
|
|
167
|
+
const {
|
|
168
|
+
ownerState: l
|
|
169
|
+
} = e;
|
|
170
|
+
return [o.root, l.orientation && o[l.orientation]];
|
|
171
|
+
}
|
|
172
|
+
})(({
|
|
173
|
+
ownerState: e
|
|
174
|
+
}) => p({
|
|
175
|
+
width: 40,
|
|
176
|
+
flexShrink: 0,
|
|
177
|
+
opacity: 0.8,
|
|
178
|
+
[`&.${It.disabled}`]: {
|
|
179
|
+
opacity: 0
|
|
180
|
+
}
|
|
181
|
+
}, e.orientation === "vertical" && {
|
|
182
|
+
width: "100%",
|
|
183
|
+
height: 40,
|
|
184
|
+
"& svg": {
|
|
185
|
+
transform: `rotate(${e.isRtl ? -90 : 90}deg)`
|
|
186
|
+
}
|
|
187
|
+
})), Xe = /* @__PURE__ */ a.forwardRef(function(o, l) {
|
|
188
|
+
var c, s;
|
|
189
|
+
const d = ve({
|
|
190
|
+
props: o,
|
|
191
|
+
name: "MuiTabScrollButton"
|
|
192
|
+
}), {
|
|
193
|
+
className: v,
|
|
194
|
+
slots: b = {},
|
|
195
|
+
slotProps: m = {},
|
|
196
|
+
direction: w
|
|
197
|
+
} = d, y = U(d, Nt), E = $e().direction === "rtl", x = p({
|
|
198
|
+
isRtl: E
|
|
199
|
+
}, d), oe = Ot(x), F = (c = b.StartScrollButtonIcon) != null ? c : wt, T = (s = b.EndScrollButtonIcon) != null ? s : xt, H = te({
|
|
200
|
+
elementType: F,
|
|
201
|
+
externalSlotProps: m.startScrollButtonIcon,
|
|
202
|
+
additionalProps: {
|
|
203
|
+
fontSize: "small"
|
|
204
|
+
},
|
|
205
|
+
ownerState: x
|
|
206
|
+
}), N = te({
|
|
207
|
+
elementType: T,
|
|
208
|
+
externalSlotProps: m.endScrollButtonIcon,
|
|
209
|
+
additionalProps: {
|
|
210
|
+
fontSize: "small"
|
|
211
|
+
},
|
|
212
|
+
ownerState: x
|
|
213
|
+
});
|
|
214
|
+
return /* @__PURE__ */ h(Mt, p({
|
|
215
|
+
component: "div",
|
|
216
|
+
className: D(oe.root, v),
|
|
217
|
+
ref: l,
|
|
218
|
+
role: null,
|
|
219
|
+
ownerState: x,
|
|
220
|
+
tabIndex: null
|
|
221
|
+
}, y, {
|
|
222
|
+
children: w === "left" ? /* @__PURE__ */ h(F, p({}, H)) : /* @__PURE__ */ h(T, p({}, N))
|
|
223
|
+
}));
|
|
224
|
+
});
|
|
225
|
+
process.env.NODE_ENV !== "production" && (Xe.propTypes = {
|
|
226
|
+
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
227
|
+
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
228
|
+
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
229
|
+
// └─────────────────────────────────────────────────────────────────────┘
|
|
230
|
+
/**
|
|
231
|
+
* The content of the component.
|
|
232
|
+
*/
|
|
233
|
+
children: t.node,
|
|
234
|
+
/**
|
|
235
|
+
* Override or extend the styles applied to the component.
|
|
236
|
+
*/
|
|
237
|
+
classes: t.object,
|
|
238
|
+
/**
|
|
239
|
+
* @ignore
|
|
240
|
+
*/
|
|
241
|
+
className: t.string,
|
|
242
|
+
/**
|
|
243
|
+
* The direction the button should indicate.
|
|
244
|
+
*/
|
|
245
|
+
direction: t.oneOf(["left", "right"]).isRequired,
|
|
246
|
+
/**
|
|
247
|
+
* If `true`, the component is disabled.
|
|
248
|
+
* @default false
|
|
249
|
+
*/
|
|
250
|
+
disabled: t.bool,
|
|
251
|
+
/**
|
|
252
|
+
* The component orientation (layout flow direction).
|
|
253
|
+
*/
|
|
254
|
+
orientation: t.oneOf(["horizontal", "vertical"]).isRequired,
|
|
255
|
+
/**
|
|
256
|
+
* The extra props for the slot components.
|
|
257
|
+
* You can override the existing props or add new ones.
|
|
258
|
+
* @default {}
|
|
259
|
+
*/
|
|
260
|
+
slotProps: t.shape({
|
|
261
|
+
endScrollButtonIcon: t.oneOfType([t.func, t.object]),
|
|
262
|
+
startScrollButtonIcon: t.oneOfType([t.func, t.object])
|
|
263
|
+
}),
|
|
264
|
+
/**
|
|
265
|
+
* The components used for each slot inside.
|
|
266
|
+
* @default {}
|
|
267
|
+
*/
|
|
268
|
+
slots: t.shape({
|
|
269
|
+
EndScrollButtonIcon: t.elementType,
|
|
270
|
+
StartScrollButtonIcon: t.elementType
|
|
271
|
+
}),
|
|
272
|
+
/**
|
|
273
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
274
|
+
*/
|
|
275
|
+
sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object])
|
|
276
|
+
});
|
|
277
|
+
const Pt = Xe;
|
|
278
|
+
function Rt(e) {
|
|
279
|
+
return he("MuiTabs", e);
|
|
280
|
+
}
|
|
281
|
+
const zt = pe("MuiTabs", ["root", "vertical", "flexContainer", "flexContainerVertical", "centered", "scroller", "fixed", "scrollableX", "scrollableY", "hideScrollbar", "scrollButtons", "scrollButtonsHideMobile", "indicator"]), fe = zt, Lt = ["aria-label", "aria-labelledby", "action", "centered", "children", "className", "component", "allowScrollButtonsMobile", "indicatorColor", "onChange", "orientation", "ScrollButtonComponent", "scrollButtons", "selectionFollowsFocus", "slots", "slotProps", "TabIndicatorProps", "TabScrollButtonProps", "textColor", "value", "variant", "visibleScrollbar"], Re = (e, o) => e === o ? e.firstChild : o && o.nextElementSibling ? o.nextElementSibling : e.firstChild, ze = (e, o) => e === o ? e.lastChild : o && o.previousElementSibling ? o.previousElementSibling : e.lastChild, Z = (e, o, l) => {
|
|
282
|
+
let c = !1, s = l(e, o);
|
|
283
|
+
for (; s; ) {
|
|
284
|
+
if (s === e.firstChild) {
|
|
285
|
+
if (c)
|
|
286
|
+
return;
|
|
287
|
+
c = !0;
|
|
288
|
+
}
|
|
289
|
+
const d = s.disabled || s.getAttribute("aria-disabled") === "true";
|
|
290
|
+
if (!s.hasAttribute("tabindex") || d)
|
|
291
|
+
s = l(e, s);
|
|
292
|
+
else {
|
|
293
|
+
s.focus();
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}, Dt = (e) => {
|
|
298
|
+
const {
|
|
299
|
+
vertical: o,
|
|
300
|
+
fixed: l,
|
|
301
|
+
hideScrollbar: c,
|
|
302
|
+
scrollableX: s,
|
|
303
|
+
scrollableY: d,
|
|
304
|
+
centered: v,
|
|
305
|
+
scrollButtonsHideMobile: b,
|
|
306
|
+
classes: m
|
|
307
|
+
} = e;
|
|
308
|
+
return me({
|
|
309
|
+
root: ["root", o && "vertical"],
|
|
310
|
+
scroller: ["scroller", l && "fixed", c && "hideScrollbar", s && "scrollableX", d && "scrollableY"],
|
|
311
|
+
flexContainer: ["flexContainer", o && "flexContainerVertical", v && "centered"],
|
|
312
|
+
indicator: ["indicator"],
|
|
313
|
+
scrollButtons: ["scrollButtons", b && "scrollButtonsHideMobile"],
|
|
314
|
+
scrollableX: [s && "scrollableX"],
|
|
315
|
+
hideScrollbar: [c && "hideScrollbar"]
|
|
316
|
+
}, Rt, m);
|
|
317
|
+
}, $t = $("div", {
|
|
318
|
+
name: "MuiTabs",
|
|
319
|
+
slot: "Root",
|
|
320
|
+
overridesResolver: (e, o) => {
|
|
321
|
+
const {
|
|
322
|
+
ownerState: l
|
|
323
|
+
} = e;
|
|
324
|
+
return [{
|
|
325
|
+
[`& .${fe.scrollButtons}`]: o.scrollButtons
|
|
326
|
+
}, {
|
|
327
|
+
[`& .${fe.scrollButtons}`]: l.scrollButtonsHideMobile && o.scrollButtonsHideMobile
|
|
328
|
+
}, o.root, l.vertical && o.vertical];
|
|
329
|
+
}
|
|
330
|
+
})(({
|
|
331
|
+
ownerState: e,
|
|
332
|
+
theme: o
|
|
333
|
+
}) => p({
|
|
334
|
+
overflow: "hidden",
|
|
335
|
+
minHeight: 48,
|
|
336
|
+
// Add iOS momentum scrolling for iOS < 13.0
|
|
337
|
+
WebkitOverflowScrolling: "touch",
|
|
338
|
+
display: "flex"
|
|
339
|
+
}, e.vertical && {
|
|
340
|
+
flexDirection: "column"
|
|
341
|
+
}, e.scrollButtonsHideMobile && {
|
|
342
|
+
[`& .${fe.scrollButtons}`]: {
|
|
343
|
+
[o.breakpoints.down("sm")]: {
|
|
344
|
+
display: "none"
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
})), _t = $("div", {
|
|
348
|
+
name: "MuiTabs",
|
|
349
|
+
slot: "Scroller",
|
|
350
|
+
overridesResolver: (e, o) => {
|
|
351
|
+
const {
|
|
352
|
+
ownerState: l
|
|
353
|
+
} = e;
|
|
354
|
+
return [o.scroller, l.fixed && o.fixed, l.hideScrollbar && o.hideScrollbar, l.scrollableX && o.scrollableX, l.scrollableY && o.scrollableY];
|
|
355
|
+
}
|
|
356
|
+
})(({
|
|
357
|
+
ownerState: e
|
|
358
|
+
}) => p({
|
|
359
|
+
position: "relative",
|
|
360
|
+
display: "inline-block",
|
|
361
|
+
flex: "1 1 auto",
|
|
362
|
+
whiteSpace: "nowrap"
|
|
363
|
+
}, e.fixed && {
|
|
364
|
+
overflowX: "hidden",
|
|
365
|
+
width: "100%"
|
|
366
|
+
}, e.hideScrollbar && {
|
|
367
|
+
// Hide dimensionless scrollbar on macOS
|
|
368
|
+
scrollbarWidth: "none",
|
|
369
|
+
// Firefox
|
|
370
|
+
"&::-webkit-scrollbar": {
|
|
371
|
+
display: "none"
|
|
372
|
+
// Safari + Chrome
|
|
373
|
+
}
|
|
374
|
+
}, e.scrollableX && {
|
|
375
|
+
overflowX: "auto",
|
|
376
|
+
overflowY: "hidden"
|
|
377
|
+
}, e.scrollableY && {
|
|
378
|
+
overflowY: "auto",
|
|
379
|
+
overflowX: "hidden"
|
|
380
|
+
})), At = $("div", {
|
|
381
|
+
name: "MuiTabs",
|
|
382
|
+
slot: "FlexContainer",
|
|
383
|
+
overridesResolver: (e, o) => {
|
|
384
|
+
const {
|
|
385
|
+
ownerState: l
|
|
386
|
+
} = e;
|
|
387
|
+
return [o.flexContainer, l.vertical && o.flexContainerVertical, l.centered && o.centered];
|
|
388
|
+
}
|
|
389
|
+
})(({
|
|
390
|
+
ownerState: e
|
|
391
|
+
}) => p({
|
|
392
|
+
display: "flex"
|
|
393
|
+
}, e.vertical && {
|
|
394
|
+
flexDirection: "column"
|
|
395
|
+
}, e.centered && {
|
|
396
|
+
justifyContent: "center"
|
|
397
|
+
})), jt = $("span", {
|
|
398
|
+
name: "MuiTabs",
|
|
399
|
+
slot: "Indicator",
|
|
400
|
+
overridesResolver: (e, o) => o.indicator
|
|
401
|
+
})(({
|
|
402
|
+
ownerState: e,
|
|
403
|
+
theme: o
|
|
404
|
+
}) => p({
|
|
405
|
+
position: "absolute",
|
|
406
|
+
height: 2,
|
|
407
|
+
bottom: 0,
|
|
408
|
+
width: "100%",
|
|
409
|
+
transition: o.transitions.create()
|
|
410
|
+
}, e.indicatorColor === "primary" && {
|
|
411
|
+
backgroundColor: (o.vars || o).palette.primary.main
|
|
412
|
+
}, e.indicatorColor === "secondary" && {
|
|
413
|
+
backgroundColor: (o.vars || o).palette.secondary.main
|
|
414
|
+
}, e.vertical && {
|
|
415
|
+
height: "100%",
|
|
416
|
+
width: 2,
|
|
417
|
+
right: 0
|
|
418
|
+
})), kt = $(He)({
|
|
419
|
+
overflowX: "auto",
|
|
420
|
+
overflowY: "hidden",
|
|
421
|
+
// Hide dimensionless scrollbar on macOS
|
|
422
|
+
scrollbarWidth: "none",
|
|
423
|
+
// Firefox
|
|
424
|
+
"&::-webkit-scrollbar": {
|
|
425
|
+
display: "none"
|
|
426
|
+
// Safari + Chrome
|
|
427
|
+
}
|
|
428
|
+
}), Le = {};
|
|
429
|
+
let De = !1;
|
|
430
|
+
const Ye = /* @__PURE__ */ a.forwardRef(function(o, l) {
|
|
431
|
+
const c = ve({
|
|
432
|
+
props: o,
|
|
433
|
+
name: "MuiTabs"
|
|
434
|
+
}), s = $e(), d = s.direction === "rtl", {
|
|
435
|
+
"aria-label": v,
|
|
436
|
+
"aria-labelledby": b,
|
|
437
|
+
action: m,
|
|
438
|
+
centered: w = !1,
|
|
439
|
+
children: y,
|
|
440
|
+
className: P,
|
|
441
|
+
component: E = "div",
|
|
442
|
+
allowScrollButtonsMobile: x = !1,
|
|
443
|
+
indicatorColor: oe = "primary",
|
|
444
|
+
onChange: F,
|
|
445
|
+
orientation: T = "horizontal",
|
|
446
|
+
ScrollButtonComponent: H = Pt,
|
|
447
|
+
scrollButtons: N = "auto",
|
|
448
|
+
selectionFollowsFocus: Je,
|
|
449
|
+
slots: X = {},
|
|
450
|
+
slotProps: ye = {},
|
|
451
|
+
TabIndicatorProps: re = {},
|
|
452
|
+
TabScrollButtonProps: Y = {},
|
|
453
|
+
textColor: Te = "primary",
|
|
454
|
+
value: _,
|
|
455
|
+
variant: ne = "standard",
|
|
456
|
+
visibleScrollbar: le = !1
|
|
457
|
+
} = c, Qe = U(c, Lt), g = ne === "scrollable", B = T === "vertical", j = B ? "scrollTop" : "scrollLeft", q = B ? "top" : "left", K = B ? "bottom" : "right", se = B ? "clientHeight" : "clientWidth", k = B ? "height" : "width", R = p({}, c, {
|
|
458
|
+
component: E,
|
|
459
|
+
allowScrollButtonsMobile: x,
|
|
460
|
+
indicatorColor: oe,
|
|
461
|
+
orientation: T,
|
|
462
|
+
vertical: B,
|
|
463
|
+
scrollButtons: N,
|
|
464
|
+
textColor: Te,
|
|
465
|
+
variant: ne,
|
|
466
|
+
visibleScrollbar: le,
|
|
467
|
+
fixed: !g,
|
|
468
|
+
hideScrollbar: g && !le,
|
|
469
|
+
scrollableX: g && !B,
|
|
470
|
+
scrollableY: g && B,
|
|
471
|
+
centered: w && !g,
|
|
472
|
+
scrollButtonsHideMobile: !x
|
|
473
|
+
}), O = Dt(R), Ze = te({
|
|
474
|
+
elementType: X.StartScrollButtonIcon,
|
|
475
|
+
externalSlotProps: ye.startScrollButtonIcon,
|
|
476
|
+
ownerState: R
|
|
477
|
+
}), et = te({
|
|
478
|
+
elementType: X.EndScrollButtonIcon,
|
|
479
|
+
externalSlotProps: ye.endScrollButtonIcon,
|
|
480
|
+
ownerState: R
|
|
481
|
+
});
|
|
482
|
+
process.env.NODE_ENV !== "production" && w && g && console.error('MUI: You can not use the `centered={true}` and `variant="scrollable"` properties at the same time on a `Tabs` component.');
|
|
483
|
+
const [ge, tt] = a.useState(!1), [z, Be] = a.useState(Le), [we, ot] = a.useState(!1), [xe, rt] = a.useState(!1), [Ce, nt] = a.useState(!1), [Ee, lt] = a.useState({
|
|
484
|
+
overflow: "hidden",
|
|
485
|
+
scrollbarWidth: 0
|
|
486
|
+
}), G = /* @__PURE__ */ new Map(), I = a.useRef(null), L = a.useRef(null), Ie = () => {
|
|
487
|
+
const r = I.current;
|
|
488
|
+
let n;
|
|
489
|
+
if (r) {
|
|
490
|
+
const u = r.getBoundingClientRect();
|
|
491
|
+
n = {
|
|
492
|
+
clientWidth: r.clientWidth,
|
|
493
|
+
scrollLeft: r.scrollLeft,
|
|
494
|
+
scrollTop: r.scrollTop,
|
|
495
|
+
scrollLeftNormalized: mt(r, s.direction),
|
|
496
|
+
scrollWidth: r.scrollWidth,
|
|
497
|
+
top: u.top,
|
|
498
|
+
bottom: u.bottom,
|
|
499
|
+
left: u.left,
|
|
500
|
+
right: u.right
|
|
501
|
+
};
|
|
502
|
+
}
|
|
503
|
+
let i;
|
|
504
|
+
if (r && _ !== !1) {
|
|
505
|
+
const u = L.current.children;
|
|
506
|
+
if (u.length > 0) {
|
|
507
|
+
const f = u[G.get(_)];
|
|
508
|
+
process.env.NODE_ENV !== "production" && (f || console.error(["MUI: The `value` provided to the Tabs component is invalid.", `None of the Tabs' children match with "${_}".`, G.keys ? `You can provide one of the following values: ${Array.from(G.keys()).join(", ")}.` : null].join(`
|
|
509
|
+
`))), i = f ? f.getBoundingClientRect() : null, process.env.NODE_ENV !== "production" && process.env.NODE_ENV !== "test" && !De && i && i.width === 0 && i.height === 0 && // if the whole Tabs component is hidden, don't warn
|
|
510
|
+
n.clientWidth !== 0 && (n = null, console.error(["MUI: The `value` provided to the Tabs component is invalid.", `The Tab with this \`value\` ("${_}") is not part of the document layout.`, "Make sure the tab item is present in the document or that it's not `display: none`."].join(`
|
|
511
|
+
`)), De = !0);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
return {
|
|
515
|
+
tabsMeta: n,
|
|
516
|
+
tabMeta: i
|
|
517
|
+
};
|
|
518
|
+
}, W = ue(() => {
|
|
519
|
+
const {
|
|
520
|
+
tabsMeta: r,
|
|
521
|
+
tabMeta: n
|
|
522
|
+
} = Ie();
|
|
523
|
+
let i = 0, u;
|
|
524
|
+
if (B)
|
|
525
|
+
u = "top", n && r && (i = n.top - r.top + r.scrollTop);
|
|
526
|
+
else if (u = d ? "right" : "left", n && r) {
|
|
527
|
+
const S = d ? r.scrollLeftNormalized + r.clientWidth - r.scrollWidth : r.scrollLeft;
|
|
528
|
+
i = (d ? -1 : 1) * (n[u] - r[u] + S);
|
|
529
|
+
}
|
|
530
|
+
const f = {
|
|
531
|
+
[u]: i,
|
|
532
|
+
// May be wrong until the font is loaded.
|
|
533
|
+
[k]: n ? n[k] : 0
|
|
534
|
+
};
|
|
535
|
+
if (isNaN(z[u]) || isNaN(z[k]))
|
|
536
|
+
Be(f);
|
|
537
|
+
else {
|
|
538
|
+
const S = Math.abs(z[u] - f[u]), C = Math.abs(z[k] - f[k]);
|
|
539
|
+
(S >= 1 || C >= 1) && Be(f);
|
|
540
|
+
}
|
|
541
|
+
}), ae = (r, {
|
|
542
|
+
animation: n = !0
|
|
543
|
+
} = {}) => {
|
|
544
|
+
n ? Tt(j, I.current, r, {
|
|
545
|
+
duration: s.transitions.duration.standard
|
|
546
|
+
}) : I.current[j] = r;
|
|
547
|
+
}, Ne = (r) => {
|
|
548
|
+
let n = I.current[j];
|
|
549
|
+
B ? n += r : (n += r * (d ? -1 : 1), n *= d && ke() === "reverse" ? -1 : 1), ae(n);
|
|
550
|
+
}, Oe = () => {
|
|
551
|
+
const r = I.current[se];
|
|
552
|
+
let n = 0;
|
|
553
|
+
const i = Array.from(L.current.children);
|
|
554
|
+
for (let u = 0; u < i.length; u += 1) {
|
|
555
|
+
const f = i[u];
|
|
556
|
+
if (n + f[se] > r) {
|
|
557
|
+
u === 0 && (n = r);
|
|
558
|
+
break;
|
|
559
|
+
}
|
|
560
|
+
n += f[se];
|
|
561
|
+
}
|
|
562
|
+
return n;
|
|
563
|
+
}, st = () => {
|
|
564
|
+
Ne(-1 * Oe());
|
|
565
|
+
}, at = () => {
|
|
566
|
+
Ne(Oe());
|
|
567
|
+
}, ct = a.useCallback((r) => {
|
|
568
|
+
lt({
|
|
569
|
+
overflow: null,
|
|
570
|
+
scrollbarWidth: r
|
|
571
|
+
});
|
|
572
|
+
}, []), it = () => {
|
|
573
|
+
const r = {};
|
|
574
|
+
r.scrollbarSizeListener = g ? /* @__PURE__ */ h(kt, {
|
|
575
|
+
onChange: ct,
|
|
576
|
+
className: D(O.scrollableX, O.hideScrollbar)
|
|
577
|
+
}) : null;
|
|
578
|
+
const i = g && (N === "auto" && (we || xe) || N === !0);
|
|
579
|
+
return r.scrollButtonStart = i ? /* @__PURE__ */ h(H, p({
|
|
580
|
+
slots: {
|
|
581
|
+
StartScrollButtonIcon: X.StartScrollButtonIcon
|
|
582
|
+
},
|
|
583
|
+
slotProps: {
|
|
584
|
+
startScrollButtonIcon: Ze
|
|
585
|
+
},
|
|
586
|
+
orientation: T,
|
|
587
|
+
direction: d ? "right" : "left",
|
|
588
|
+
onClick: st,
|
|
589
|
+
disabled: !we
|
|
590
|
+
}, Y, {
|
|
591
|
+
className: D(O.scrollButtons, Y.className)
|
|
592
|
+
})) : null, r.scrollButtonEnd = i ? /* @__PURE__ */ h(H, p({
|
|
593
|
+
slots: {
|
|
594
|
+
EndScrollButtonIcon: X.EndScrollButtonIcon
|
|
595
|
+
},
|
|
596
|
+
slotProps: {
|
|
597
|
+
endScrollButtonIcon: et
|
|
598
|
+
},
|
|
599
|
+
orientation: T,
|
|
600
|
+
direction: d ? "left" : "right",
|
|
601
|
+
onClick: at,
|
|
602
|
+
disabled: !xe
|
|
603
|
+
}, Y, {
|
|
604
|
+
className: D(O.scrollButtons, Y.className)
|
|
605
|
+
})) : null, r;
|
|
606
|
+
}, Me = ue((r) => {
|
|
607
|
+
const {
|
|
608
|
+
tabsMeta: n,
|
|
609
|
+
tabMeta: i
|
|
610
|
+
} = Ie();
|
|
611
|
+
if (!(!i || !n)) {
|
|
612
|
+
if (i[q] < n[q]) {
|
|
613
|
+
const u = n[j] + (i[q] - n[q]);
|
|
614
|
+
ae(u, {
|
|
615
|
+
animation: r
|
|
616
|
+
});
|
|
617
|
+
} else if (i[K] > n[K]) {
|
|
618
|
+
const u = n[j] + (i[K] - n[K]);
|
|
619
|
+
ae(u, {
|
|
620
|
+
animation: r
|
|
621
|
+
});
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
}), J = ue(() => {
|
|
625
|
+
g && N !== !1 && nt(!Ce);
|
|
626
|
+
});
|
|
627
|
+
a.useEffect(() => {
|
|
628
|
+
const r = _e(() => {
|
|
629
|
+
I.current && W();
|
|
630
|
+
});
|
|
631
|
+
let n;
|
|
632
|
+
const i = (S) => {
|
|
633
|
+
S.forEach((C) => {
|
|
634
|
+
C.removedNodes.forEach((V) => {
|
|
635
|
+
var M;
|
|
636
|
+
(M = n) == null || M.unobserve(V);
|
|
637
|
+
}), C.addedNodes.forEach((V) => {
|
|
638
|
+
var M;
|
|
639
|
+
(M = n) == null || M.observe(V);
|
|
640
|
+
});
|
|
641
|
+
}), r(), J();
|
|
642
|
+
}, u = Ae(I.current);
|
|
643
|
+
u.addEventListener("resize", r);
|
|
644
|
+
let f;
|
|
645
|
+
return typeof ResizeObserver < "u" && (n = new ResizeObserver(r), Array.from(L.current.children).forEach((S) => {
|
|
646
|
+
n.observe(S);
|
|
647
|
+
})), typeof MutationObserver < "u" && (f = new MutationObserver(i), f.observe(L.current, {
|
|
648
|
+
childList: !0
|
|
649
|
+
})), () => {
|
|
650
|
+
var S, C;
|
|
651
|
+
r.clear(), u.removeEventListener("resize", r), (S = f) == null || S.disconnect(), (C = n) == null || C.disconnect();
|
|
652
|
+
};
|
|
653
|
+
}, [W, J]), a.useEffect(() => {
|
|
654
|
+
const r = Array.from(L.current.children), n = r.length;
|
|
655
|
+
if (typeof IntersectionObserver < "u" && n > 0 && g && N !== !1) {
|
|
656
|
+
const i = r[0], u = r[n - 1], f = {
|
|
657
|
+
root: I.current,
|
|
658
|
+
threshold: 0.99
|
|
659
|
+
}, S = (ie) => {
|
|
660
|
+
ot(!ie[0].isIntersecting);
|
|
661
|
+
}, C = new IntersectionObserver(S, f);
|
|
662
|
+
C.observe(i);
|
|
663
|
+
const V = (ie) => {
|
|
664
|
+
rt(!ie[0].isIntersecting);
|
|
665
|
+
}, M = new IntersectionObserver(V, f);
|
|
666
|
+
return M.observe(u), () => {
|
|
667
|
+
C.disconnect(), M.disconnect();
|
|
668
|
+
};
|
|
669
|
+
}
|
|
670
|
+
}, [g, N, Ce, y == null ? void 0 : y.length]), a.useEffect(() => {
|
|
671
|
+
tt(!0);
|
|
672
|
+
}, []), a.useEffect(() => {
|
|
673
|
+
W();
|
|
674
|
+
}), a.useEffect(() => {
|
|
675
|
+
Me(Le !== z);
|
|
676
|
+
}, [Me, z]), a.useImperativeHandle(m, () => ({
|
|
677
|
+
updateIndicator: W,
|
|
678
|
+
updateScrollButtons: J
|
|
679
|
+
}), [W, J]);
|
|
680
|
+
const Pe = /* @__PURE__ */ h(jt, p({}, re, {
|
|
681
|
+
className: D(O.indicator, re.className),
|
|
682
|
+
ownerState: R,
|
|
683
|
+
style: p({}, z, re.style)
|
|
684
|
+
}));
|
|
685
|
+
let Q = 0;
|
|
686
|
+
const ut = a.Children.map(y, (r) => {
|
|
687
|
+
if (!/* @__PURE__ */ a.isValidElement(r))
|
|
688
|
+
return null;
|
|
689
|
+
process.env.NODE_ENV !== "production" && ft.isFragment(r) && console.error(["MUI: The Tabs component doesn't accept a Fragment as a child.", "Consider providing an array instead."].join(`
|
|
690
|
+
`));
|
|
691
|
+
const n = r.props.value === void 0 ? Q : r.props.value;
|
|
692
|
+
G.set(n, Q);
|
|
693
|
+
const i = n === _;
|
|
694
|
+
return Q += 1, /* @__PURE__ */ a.cloneElement(r, p({
|
|
695
|
+
fullWidth: ne === "fullWidth",
|
|
696
|
+
indicator: i && !ge && Pe,
|
|
697
|
+
selected: i,
|
|
698
|
+
selectionFollowsFocus: Je,
|
|
699
|
+
onChange: F,
|
|
700
|
+
textColor: Te,
|
|
701
|
+
value: n
|
|
702
|
+
}, Q === 1 && _ === !1 && !r.props.tabIndex ? {
|
|
703
|
+
tabIndex: 0
|
|
704
|
+
} : {}));
|
|
705
|
+
}), dt = (r) => {
|
|
706
|
+
const n = L.current, i = pt(n).activeElement;
|
|
707
|
+
if (i.getAttribute("role") !== "tab")
|
|
708
|
+
return;
|
|
709
|
+
let f = T === "horizontal" ? "ArrowLeft" : "ArrowUp", S = T === "horizontal" ? "ArrowRight" : "ArrowDown";
|
|
710
|
+
switch (T === "horizontal" && d && (f = "ArrowRight", S = "ArrowLeft"), r.key) {
|
|
711
|
+
case f:
|
|
712
|
+
r.preventDefault(), Z(n, i, ze);
|
|
713
|
+
break;
|
|
714
|
+
case S:
|
|
715
|
+
r.preventDefault(), Z(n, i, Re);
|
|
716
|
+
break;
|
|
717
|
+
case "Home":
|
|
718
|
+
r.preventDefault(), Z(n, null, Re);
|
|
719
|
+
break;
|
|
720
|
+
case "End":
|
|
721
|
+
r.preventDefault(), Z(n, null, ze);
|
|
722
|
+
break;
|
|
723
|
+
}
|
|
724
|
+
}, ce = it();
|
|
725
|
+
return /* @__PURE__ */ ee($t, p({
|
|
726
|
+
className: D(O.root, P),
|
|
727
|
+
ownerState: R,
|
|
728
|
+
ref: l,
|
|
729
|
+
as: E
|
|
730
|
+
}, Qe, {
|
|
731
|
+
children: [ce.scrollButtonStart, ce.scrollbarSizeListener, /* @__PURE__ */ ee(_t, {
|
|
732
|
+
className: O.scroller,
|
|
733
|
+
ownerState: R,
|
|
734
|
+
style: {
|
|
735
|
+
overflow: Ee.overflow,
|
|
736
|
+
[B ? `margin${d ? "Left" : "Right"}` : "marginBottom"]: le ? void 0 : -Ee.scrollbarWidth
|
|
737
|
+
},
|
|
738
|
+
ref: I,
|
|
739
|
+
children: [/* @__PURE__ */ h(At, {
|
|
740
|
+
"aria-label": v,
|
|
741
|
+
"aria-labelledby": b,
|
|
742
|
+
"aria-orientation": T === "vertical" ? "vertical" : null,
|
|
743
|
+
className: O.flexContainer,
|
|
744
|
+
ownerState: R,
|
|
745
|
+
onKeyDown: dt,
|
|
746
|
+
ref: L,
|
|
747
|
+
role: "tablist",
|
|
748
|
+
children: ut
|
|
749
|
+
}), ge && Pe]
|
|
750
|
+
}), ce.scrollButtonEnd]
|
|
751
|
+
}));
|
|
752
|
+
});
|
|
753
|
+
process.env.NODE_ENV !== "production" && (Ye.propTypes = {
|
|
754
|
+
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
755
|
+
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
756
|
+
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
757
|
+
// └─────────────────────────────────────────────────────────────────────┘
|
|
758
|
+
/**
|
|
759
|
+
* Callback fired when the component mounts.
|
|
760
|
+
* This is useful when you want to trigger an action programmatically.
|
|
761
|
+
* It supports two actions: `updateIndicator()` and `updateScrollButtons()`
|
|
762
|
+
*
|
|
763
|
+
* @param {object} actions This object contains all possible actions
|
|
764
|
+
* that can be triggered programmatically.
|
|
765
|
+
*/
|
|
766
|
+
action: ht,
|
|
767
|
+
/**
|
|
768
|
+
* If `true`, the scroll buttons aren't forced hidden on mobile.
|
|
769
|
+
* By default the scroll buttons are hidden on mobile and takes precedence over `scrollButtons`.
|
|
770
|
+
* @default false
|
|
771
|
+
*/
|
|
772
|
+
allowScrollButtonsMobile: t.bool,
|
|
773
|
+
/**
|
|
774
|
+
* The label for the Tabs as a string.
|
|
775
|
+
*/
|
|
776
|
+
"aria-label": t.string,
|
|
777
|
+
/**
|
|
778
|
+
* An id or list of ids separated by a space that label the Tabs.
|
|
779
|
+
*/
|
|
780
|
+
"aria-labelledby": t.string,
|
|
781
|
+
/**
|
|
782
|
+
* If `true`, the tabs are centered.
|
|
783
|
+
* This prop is intended for large views.
|
|
784
|
+
* @default false
|
|
785
|
+
*/
|
|
786
|
+
centered: t.bool,
|
|
787
|
+
/**
|
|
788
|
+
* The content of the component.
|
|
789
|
+
*/
|
|
790
|
+
children: t.node,
|
|
791
|
+
/**
|
|
792
|
+
* Override or extend the styles applied to the component.
|
|
793
|
+
*/
|
|
794
|
+
classes: t.object,
|
|
795
|
+
/**
|
|
796
|
+
* @ignore
|
|
797
|
+
*/
|
|
798
|
+
className: t.string,
|
|
799
|
+
/**
|
|
800
|
+
* The component used for the root node.
|
|
801
|
+
* Either a string to use a HTML element or a component.
|
|
802
|
+
*/
|
|
803
|
+
component: t.elementType,
|
|
804
|
+
/**
|
|
805
|
+
* Determines the color of the indicator.
|
|
806
|
+
* @default 'primary'
|
|
807
|
+
*/
|
|
808
|
+
indicatorColor: t.oneOfType([t.oneOf(["primary", "secondary"]), t.string]),
|
|
809
|
+
/**
|
|
810
|
+
* Callback fired when the value changes.
|
|
811
|
+
*
|
|
812
|
+
* @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.
|
|
813
|
+
* @param {any} value We default to the index of the child (number)
|
|
814
|
+
*/
|
|
815
|
+
onChange: t.func,
|
|
816
|
+
/**
|
|
817
|
+
* The component orientation (layout flow direction).
|
|
818
|
+
* @default 'horizontal'
|
|
819
|
+
*/
|
|
820
|
+
orientation: t.oneOf(["horizontal", "vertical"]),
|
|
821
|
+
/**
|
|
822
|
+
* The component used to render the scroll buttons.
|
|
823
|
+
* @default TabScrollButton
|
|
824
|
+
*/
|
|
825
|
+
ScrollButtonComponent: t.elementType,
|
|
826
|
+
/**
|
|
827
|
+
* Determine behavior of scroll buttons when tabs are set to scroll:
|
|
828
|
+
*
|
|
829
|
+
* - `auto` will only present them when not all the items are visible.
|
|
830
|
+
* - `true` will always present them.
|
|
831
|
+
* - `false` will never present them.
|
|
832
|
+
*
|
|
833
|
+
* By default the scroll buttons are hidden on mobile.
|
|
834
|
+
* This behavior can be disabled with `allowScrollButtonsMobile`.
|
|
835
|
+
* @default 'auto'
|
|
836
|
+
*/
|
|
837
|
+
scrollButtons: t.oneOf(["auto", !1, !0]),
|
|
838
|
+
/**
|
|
839
|
+
* If `true` the selected tab changes on focus. Otherwise it only
|
|
840
|
+
* changes on activation.
|
|
841
|
+
*/
|
|
842
|
+
selectionFollowsFocus: t.bool,
|
|
843
|
+
/**
|
|
844
|
+
* The extra props for the slot components.
|
|
845
|
+
* You can override the existing props or add new ones.
|
|
846
|
+
* @default {}
|
|
847
|
+
*/
|
|
848
|
+
slotProps: t.shape({
|
|
849
|
+
endScrollButtonIcon: t.oneOfType([t.func, t.object]),
|
|
850
|
+
startScrollButtonIcon: t.oneOfType([t.func, t.object])
|
|
851
|
+
}),
|
|
852
|
+
/**
|
|
853
|
+
* The components used for each slot inside.
|
|
854
|
+
* @default {}
|
|
855
|
+
*/
|
|
856
|
+
slots: t.shape({
|
|
857
|
+
EndScrollButtonIcon: t.elementType,
|
|
858
|
+
StartScrollButtonIcon: t.elementType
|
|
859
|
+
}),
|
|
860
|
+
/**
|
|
861
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
862
|
+
*/
|
|
863
|
+
sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object]),
|
|
864
|
+
/**
|
|
865
|
+
* Props applied to the tab indicator element.
|
|
866
|
+
* @default {}
|
|
867
|
+
*/
|
|
868
|
+
TabIndicatorProps: t.object,
|
|
869
|
+
/**
|
|
870
|
+
* Props applied to the [`TabScrollButton`](/material-ui/api/tab-scroll-button/) element.
|
|
871
|
+
* @default {}
|
|
872
|
+
*/
|
|
873
|
+
TabScrollButtonProps: t.object,
|
|
874
|
+
/**
|
|
875
|
+
* Determines the color of the `Tab`.
|
|
876
|
+
* @default 'primary'
|
|
877
|
+
*/
|
|
878
|
+
textColor: t.oneOf(["inherit", "primary", "secondary"]),
|
|
879
|
+
/**
|
|
880
|
+
* The value of the currently selected `Tab`.
|
|
881
|
+
* If you don't want any selected `Tab`, you can set this prop to `false`.
|
|
882
|
+
*/
|
|
883
|
+
value: t.any,
|
|
884
|
+
/**
|
|
885
|
+
* Determines additional display behavior of the tabs:
|
|
886
|
+
*
|
|
887
|
+
* - `scrollable` will invoke scrolling properties and allow for horizontally
|
|
888
|
+
* scrolling (or swiping) of the tab bar.
|
|
889
|
+
* - `fullWidth` will make the tabs grow to use all the available space,
|
|
890
|
+
* which should be used for small views, like on mobile.
|
|
891
|
+
* - `standard` will render the default state.
|
|
892
|
+
* @default 'standard'
|
|
893
|
+
*/
|
|
894
|
+
variant: t.oneOf(["fullWidth", "scrollable", "standard"]),
|
|
895
|
+
/**
|
|
896
|
+
* If `true`, the scrollbar is visible. It can be useful when displaying
|
|
897
|
+
* a long vertical list of tabs.
|
|
898
|
+
* @default false
|
|
899
|
+
*/
|
|
900
|
+
visibleScrollbar: t.bool
|
|
901
|
+
});
|
|
902
|
+
const Wt = Ye, Vt = ["children"], qe = /* @__PURE__ */ a.forwardRef(function(o, l) {
|
|
903
|
+
const {
|
|
904
|
+
children: c
|
|
905
|
+
} = o, s = U(o, Vt), d = Ve();
|
|
906
|
+
if (d === null)
|
|
907
|
+
throw new TypeError("No TabContext provided");
|
|
908
|
+
const v = a.Children.map(c, (b) => /* @__PURE__ */ a.isValidElement(b) ? /* @__PURE__ */ a.cloneElement(b, {
|
|
909
|
+
// SOMEDAY: `Tabs` will set those themselves
|
|
910
|
+
"aria-controls": Ue(d, b.props.value),
|
|
911
|
+
id: Fe(d, b.props.value)
|
|
912
|
+
}) : null);
|
|
913
|
+
return /* @__PURE__ */ h(Wt, p({}, s, {
|
|
914
|
+
ref: l,
|
|
915
|
+
value: d.value,
|
|
916
|
+
children: v
|
|
917
|
+
}));
|
|
918
|
+
});
|
|
919
|
+
process.env.NODE_ENV !== "production" && (qe.propTypes = {
|
|
920
|
+
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
921
|
+
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
922
|
+
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
923
|
+
// └─────────────────────────────────────────────────────────────────────┘
|
|
924
|
+
/**
|
|
925
|
+
* A list of `<Tab />` elements.
|
|
926
|
+
*/
|
|
927
|
+
children: t.node
|
|
928
|
+
});
|
|
929
|
+
const Ke = qe;
|
|
930
|
+
function Ut(e) {
|
|
931
|
+
return he("MuiTabPanel", e);
|
|
932
|
+
}
|
|
933
|
+
pe("MuiTabPanel", ["root"]);
|
|
934
|
+
const Ft = ["children", "className", "value"], Ht = (e) => {
|
|
935
|
+
const {
|
|
936
|
+
classes: o
|
|
937
|
+
} = e;
|
|
938
|
+
return me({
|
|
939
|
+
root: ["root"]
|
|
940
|
+
}, Ut, o);
|
|
941
|
+
}, Xt = $("div", {
|
|
942
|
+
name: "MuiTabPanel",
|
|
943
|
+
slot: "Root",
|
|
944
|
+
overridesResolver: (e, o) => o.root
|
|
945
|
+
})(({
|
|
946
|
+
theme: e
|
|
947
|
+
}) => ({
|
|
948
|
+
padding: e.spacing(3)
|
|
949
|
+
})), Ge = /* @__PURE__ */ a.forwardRef(function(o, l) {
|
|
950
|
+
const c = ve({
|
|
951
|
+
props: o,
|
|
952
|
+
name: "MuiTabPanel"
|
|
953
|
+
}), {
|
|
954
|
+
children: s,
|
|
955
|
+
className: d,
|
|
956
|
+
value: v
|
|
957
|
+
} = c, b = U(c, Ft), m = p({}, c), w = Ht(m), y = Ve();
|
|
958
|
+
if (y === null)
|
|
959
|
+
throw new TypeError("No TabContext provided");
|
|
960
|
+
const P = Ue(y, v), E = Fe(y, v);
|
|
961
|
+
return /* @__PURE__ */ h(Xt, p({
|
|
962
|
+
"aria-labelledby": E,
|
|
963
|
+
className: D(w.root, d),
|
|
964
|
+
hidden: v !== y.value,
|
|
965
|
+
id: P,
|
|
966
|
+
ref: l,
|
|
967
|
+
role: "tabpanel",
|
|
968
|
+
ownerState: m
|
|
969
|
+
}, b, {
|
|
970
|
+
children: v === y.value && s
|
|
971
|
+
}));
|
|
972
|
+
});
|
|
973
|
+
process.env.NODE_ENV !== "production" && (Ge.propTypes = {
|
|
974
|
+
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
975
|
+
// │ These PropTypes are generated from the TypeScript type definitions. │
|
|
976
|
+
// │ To update them, edit the d.ts file and run `pnpm proptypes`. │
|
|
977
|
+
// └─────────────────────────────────────────────────────────────────────┘
|
|
978
|
+
/**
|
|
979
|
+
* The content of the component.
|
|
980
|
+
*/
|
|
981
|
+
children: t.node,
|
|
982
|
+
/**
|
|
983
|
+
* Override or extend the styles applied to the component.
|
|
984
|
+
*/
|
|
985
|
+
classes: t.object,
|
|
986
|
+
/**
|
|
987
|
+
* @ignore
|
|
988
|
+
*/
|
|
989
|
+
className: t.string,
|
|
990
|
+
/**
|
|
991
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
992
|
+
*/
|
|
993
|
+
sx: t.oneOfType([t.arrayOf(t.oneOfType([t.func, t.object, t.bool])), t.func, t.object]),
|
|
994
|
+
/**
|
|
995
|
+
* The `value` of the corresponding `Tab`. Must use the index of the `Tab` when
|
|
996
|
+
* no `value` was passed to `Tab`.
|
|
997
|
+
*/
|
|
998
|
+
value: t.string.isRequired
|
|
999
|
+
});
|
|
1000
|
+
const be = Ge, so = {
|
|
1001
|
+
title: "Components/Lists/TabList",
|
|
1002
|
+
component: Ke,
|
|
1003
|
+
argTypes: {
|
|
1004
|
+
// Définissez ici vos paramètres d'histoires spécifiques aux arguments (args).
|
|
1005
|
+
value: {
|
|
1006
|
+
options: ["1", "2", "3"],
|
|
1007
|
+
control: { type: "select" }
|
|
1008
|
+
}
|
|
1009
|
+
}
|
|
1010
|
+
}, Yt = (e) => /* @__PURE__ */ ee(We, { value: e.value, children: [
|
|
1011
|
+
/* @__PURE__ */ ee(Ke, { onChange: e.handleChange, "aria-label": "lab API tabs example", children: [
|
|
1012
|
+
/* @__PURE__ */ h(de, { label: "Utilisateurs", value: "1" }),
|
|
1013
|
+
/* @__PURE__ */ h(de, { label: "Groupes", value: "2" }),
|
|
1014
|
+
/* @__PURE__ */ h(de, { label: "Demandes d'inscription", value: "3" })
|
|
1015
|
+
] }),
|
|
1016
|
+
/* @__PURE__ */ h(be, { value: "1", children: "Utilisateurs" }),
|
|
1017
|
+
/* @__PURE__ */ h(be, { value: "2", children: "Groupes" }),
|
|
1018
|
+
/* @__PURE__ */ h(be, { value: "3", children: "Demandes d'inscription" })
|
|
1019
|
+
] }), qt = Yt.bind({});
|
|
1020
|
+
qt.args = {
|
|
1021
|
+
value: "1",
|
|
1022
|
+
handleChange: (e, o) => !0
|
|
1023
|
+
};
|
|
1024
|
+
export {
|
|
1025
|
+
qt as Default,
|
|
1026
|
+
so as default
|
|
1027
|
+
};
|