@iowas/toolpad 1.0.4 → 1.0.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/dist/chunk-3JWXE2JW.mjs +5 -16
- package/dist/chunk-5B2NQDIH.js +145 -0
- package/dist/chunk-BN55HN4U.js +12 -0
- package/dist/chunk-F6JD4MSY.mjs +1 -3
- package/dist/chunk-LUTZBKSG.mjs +64 -138
- package/dist/chunk-PMIWCP25.mjs +4 -19
- package/dist/chunk-SITC3EZQ.js +2225 -0
- package/dist/chunk-SWAF5R4Y.js +686 -0
- package/dist/chunk-VMBNHIHN.js +84 -0
- package/dist/chunk-ZXM3V5SD.mjs +367 -552
- package/dist/core.js +126 -3100
- package/dist/core.mjs +4 -72
- package/dist/index.js +195 -3260
- package/dist/index.mjs +5 -110
- package/dist/nextjs.js +38 -771
- package/dist/nextjs.mjs +9 -19
- package/dist/utils.js +71 -213
- package/dist/utils.mjs +3 -42
- package/package.json +1 -1
package/dist/chunk-ZXM3V5SD.mjs
CHANGED
|
@@ -1,40 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
import
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import { RouterContext, NotificationsContext, WindowContext, useLocaleText, DialogsContext, AuthenticationContext, SessionContext, PaletteModeContext, BrandingContext, NavigationContext, DashboardSidebarPageItemContext } from './chunk-LUTZBKSG.mjs';
|
|
2
|
+
import { warnOnce } from './chunk-F6JD4MSY.mjs';
|
|
3
|
+
import { __objRest, __spreadProps, __spreadValues, useNonNullableContext } from './chunk-3JWXE2JW.mjs';
|
|
4
|
+
import * as React16 from 'react';
|
|
5
|
+
import PropTypes9 from 'prop-types';
|
|
6
|
+
import Popover from '@mui/material/Popover';
|
|
7
|
+
import Divider from '@mui/material/Divider';
|
|
8
|
+
import Stack from '@mui/material/Stack';
|
|
9
|
+
import Button from '@mui/material/Button';
|
|
10
|
+
import Dialog from '@mui/material/Dialog';
|
|
11
|
+
import DialogTitle from '@mui/material/DialogTitle';
|
|
12
|
+
import DialogContent from '@mui/material/DialogContent';
|
|
13
|
+
import DialogActions from '@mui/material/DialogActions';
|
|
14
|
+
import TextField from '@mui/material/TextField';
|
|
15
|
+
import DialogContentText from '@mui/material/DialogContentText';
|
|
16
|
+
import invariant from 'invariant';
|
|
17
|
+
import useEventCallback from '@mui/utils/useEventCallback';
|
|
18
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
19
|
+
import LogoutIcon from '@mui/icons-material/Logout';
|
|
20
|
+
import Avatar from '@mui/material/Avatar';
|
|
21
|
+
import Typography from '@mui/material/Typography';
|
|
22
|
+
import Tooltip from '@mui/material/Tooltip';
|
|
23
|
+
import IconButton from '@mui/material/IconButton';
|
|
24
|
+
import MoreVertIcon from '@mui/icons-material/MoreVert';
|
|
25
|
+
import Box4 from '@mui/material/Box';
|
|
26
|
+
import { styled as styled$1, useTheme as useTheme$1 } from '@mui/material/styles';
|
|
27
|
+
import useMediaQuery from '@mui/material/useMediaQuery';
|
|
28
|
+
import Drawer from '@mui/material/Drawer';
|
|
29
|
+
import Toolbar2 from '@mui/material/Toolbar';
|
|
30
|
+
import MuiAppBar from '@mui/material/AppBar';
|
|
31
|
+
import MenuIcon from '@mui/icons-material/Menu';
|
|
32
|
+
import MenuOpenIcon from '@mui/icons-material/MenuOpen';
|
|
33
|
+
import { styled, useTheme } from '@mui/material';
|
|
34
|
+
import DarkModeIcon from '@mui/icons-material/DarkMode';
|
|
35
|
+
import LightModeIcon from '@mui/icons-material/LightMode';
|
|
36
|
+
import List from '@mui/material/List';
|
|
37
|
+
import ListSubheader from '@mui/material/ListSubheader';
|
|
38
|
+
import { pathToRegexp } from 'path-to-regexp';
|
|
39
|
+
import Collapse from '@mui/material/Collapse';
|
|
40
|
+
import Grow from '@mui/material/Grow';
|
|
41
|
+
import ListItem from '@mui/material/ListItem';
|
|
42
|
+
import ListItemButton from '@mui/material/ListItemButton';
|
|
43
|
+
import ListItemIcon from '@mui/material/ListItemIcon';
|
|
44
|
+
import ListItemText from '@mui/material/ListItemText';
|
|
45
|
+
import Paper from '@mui/material/Paper';
|
|
46
|
+
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
47
|
+
import Container from '@mui/material/Container';
|
|
48
|
+
import Breadcrumbs from '@mui/material/Breadcrumbs';
|
|
49
|
+
import Link4 from '@mui/material/Link';
|
|
50
|
+
import useSlotProps from '@mui/utils/useSlotProps';
|
|
23
51
|
|
|
24
|
-
// src/toolpad-core/Account/Account.tsx
|
|
25
|
-
import * as React7 from "react";
|
|
26
|
-
import PropTypes6 from "prop-types";
|
|
27
|
-
import Popover from "@mui/material/Popover";
|
|
28
|
-
import Divider from "@mui/material/Divider";
|
|
29
|
-
import Stack3 from "@mui/material/Stack";
|
|
30
|
-
|
|
31
|
-
// src/toolpad-core/Account/SignInButton.tsx
|
|
32
|
-
import * as React4 from "react";
|
|
33
|
-
import PropTypes from "prop-types";
|
|
34
|
-
import Button2 from "@mui/material/Button";
|
|
35
|
-
|
|
36
|
-
// src/toolpad-core/useNotifications/useNotifications.tsx
|
|
37
|
-
import * as React from "react";
|
|
38
52
|
var serverNotifications = {
|
|
39
53
|
show: () => {
|
|
40
54
|
throw new Error("Not supported on server side");
|
|
@@ -44,25 +58,12 @@ var serverNotifications = {
|
|
|
44
58
|
}
|
|
45
59
|
};
|
|
46
60
|
function useNotifications() {
|
|
47
|
-
const context =
|
|
61
|
+
const context = React16.useContext(NotificationsContext);
|
|
48
62
|
if (context) {
|
|
49
63
|
return context;
|
|
50
64
|
}
|
|
51
65
|
return serverNotifications;
|
|
52
66
|
}
|
|
53
|
-
|
|
54
|
-
// src/toolpad-core/useDialogs/useDialogs.tsx
|
|
55
|
-
import Button from "@mui/material/Button";
|
|
56
|
-
import Dialog from "@mui/material/Dialog";
|
|
57
|
-
import DialogTitle from "@mui/material/DialogTitle";
|
|
58
|
-
import DialogContent from "@mui/material/DialogContent";
|
|
59
|
-
import DialogActions from "@mui/material/DialogActions";
|
|
60
|
-
import TextField from "@mui/material/TextField";
|
|
61
|
-
import DialogContentText from "@mui/material/DialogContentText";
|
|
62
|
-
import invariant from "invariant";
|
|
63
|
-
import * as React2 from "react";
|
|
64
|
-
import useEventCallback from "@mui/utils/useEventCallback";
|
|
65
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
66
67
|
var defaultLocaleText = {
|
|
67
68
|
alert: "Alert",
|
|
68
69
|
confirm: "Confirm",
|
|
@@ -70,7 +71,7 @@ var defaultLocaleText = {
|
|
|
70
71
|
ok: "Ok"
|
|
71
72
|
};
|
|
72
73
|
function useDialogLoadingButton(onClose) {
|
|
73
|
-
const [loading, setLoading] =
|
|
74
|
+
const [loading, setLoading] = React16.useState(false);
|
|
74
75
|
const handleClick = async () => {
|
|
75
76
|
try {
|
|
76
77
|
setLoading(true);
|
|
@@ -86,7 +87,7 @@ function useDialogLoadingButton(onClose) {
|
|
|
86
87
|
}
|
|
87
88
|
function AlertDialog({ open, payload, onClose }) {
|
|
88
89
|
var _a, _b;
|
|
89
|
-
const appWindowContext =
|
|
90
|
+
const appWindowContext = React16.useContext(WindowContext);
|
|
90
91
|
const globalLocaleText = useLocaleText();
|
|
91
92
|
const localeText = __spreadValues(__spreadValues({}, defaultLocaleText), globalLocaleText);
|
|
92
93
|
const okButtonProps = useDialogLoadingButton(() => onClose());
|
|
@@ -108,7 +109,7 @@ function AlertDialog({ open, payload, onClose }) {
|
|
|
108
109
|
}
|
|
109
110
|
function ConfirmDialog({ open, payload, onClose }) {
|
|
110
111
|
var _a, _b, _c;
|
|
111
|
-
const appWindowContext =
|
|
112
|
+
const appWindowContext = React16.useContext(WindowContext);
|
|
112
113
|
const globalLocaleText = useLocaleText();
|
|
113
114
|
const localeText = __spreadValues(__spreadValues({}, defaultLocaleText), globalLocaleText);
|
|
114
115
|
const cancelButtonProps = useDialogLoadingButton(() => onClose(false));
|
|
@@ -134,12 +135,12 @@ function ConfirmDialog({ open, payload, onClose }) {
|
|
|
134
135
|
}
|
|
135
136
|
function PromptDialog({ open, payload, onClose }) {
|
|
136
137
|
var _a, _b, _c;
|
|
137
|
-
const appWindowContext =
|
|
138
|
+
const appWindowContext = React16.useContext(WindowContext);
|
|
138
139
|
const globalLocaleText = useLocaleText();
|
|
139
140
|
const localeText = __spreadValues(__spreadValues({}, defaultLocaleText), globalLocaleText);
|
|
140
|
-
const [input, setInput] =
|
|
141
|
+
const [input, setInput] = React16.useState("");
|
|
141
142
|
const cancelButtonProps = useDialogLoadingButton(() => onClose(null));
|
|
142
|
-
const [loading, setLoading] =
|
|
143
|
+
const [loading, setLoading] = React16.useState(false);
|
|
143
144
|
const name = "input";
|
|
144
145
|
return /* @__PURE__ */ jsxs(
|
|
145
146
|
Dialog,
|
|
@@ -216,7 +217,7 @@ function useDialogs() {
|
|
|
216
217
|
return open(PromptDialog, __spreadProps(__spreadValues({}, options), { msg }), { onClose });
|
|
217
218
|
}
|
|
218
219
|
);
|
|
219
|
-
return
|
|
220
|
+
return React16.useMemo(
|
|
220
221
|
() => ({
|
|
221
222
|
alert,
|
|
222
223
|
confirm,
|
|
@@ -227,20 +228,14 @@ function useDialogs() {
|
|
|
227
228
|
[alert, close, confirm, open, prompt]
|
|
228
229
|
);
|
|
229
230
|
}
|
|
230
|
-
|
|
231
|
-
// src/toolpad-core/Account/AccountLocaleContext.tsx
|
|
232
|
-
import * as React3 from "react";
|
|
233
|
-
var AccountLocaleContext = React3.createContext(null);
|
|
234
|
-
|
|
235
|
-
// src/toolpad-core/Account/SignInButton.tsx
|
|
236
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
231
|
+
var AccountLocaleContext = React16.createContext(null);
|
|
237
232
|
function SignInButton(props) {
|
|
238
|
-
const authentication =
|
|
233
|
+
const authentication = React16.useContext(AuthenticationContext);
|
|
239
234
|
const globalLocaleText = useLocaleText();
|
|
240
|
-
const accountLocaleText =
|
|
235
|
+
const accountLocaleText = React16.useContext(AccountLocaleContext);
|
|
241
236
|
const localeText = __spreadValues(__spreadValues({}, globalLocaleText), accountLocaleText);
|
|
242
|
-
return /* @__PURE__ */
|
|
243
|
-
|
|
237
|
+
return /* @__PURE__ */ jsx(
|
|
238
|
+
Button,
|
|
244
239
|
__spreadProps(__spreadValues({
|
|
245
240
|
disableElevation: true,
|
|
246
241
|
variant: "contained",
|
|
@@ -269,22 +264,15 @@ SignInButton.propTypes = {
|
|
|
269
264
|
/**
|
|
270
265
|
* The content of the component.
|
|
271
266
|
*/
|
|
272
|
-
children:
|
|
267
|
+
children: PropTypes9.node
|
|
273
268
|
};
|
|
274
|
-
|
|
275
|
-
// src/toolpad-core/Account/SignOutButton.tsx
|
|
276
|
-
import * as React5 from "react";
|
|
277
|
-
import PropTypes2 from "prop-types";
|
|
278
|
-
import Button3 from "@mui/material/Button";
|
|
279
|
-
import LogoutIcon from "@mui/icons-material/Logout";
|
|
280
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
281
269
|
function SignOutButton(props) {
|
|
282
|
-
const authentication =
|
|
270
|
+
const authentication = React16.useContext(AuthenticationContext);
|
|
283
271
|
const globalLocaleText = useLocaleText();
|
|
284
|
-
const accountLocaleText =
|
|
272
|
+
const accountLocaleText = React16.useContext(AccountLocaleContext);
|
|
285
273
|
const localeText = __spreadValues(__spreadValues({}, globalLocaleText), accountLocaleText);
|
|
286
|
-
return /* @__PURE__ */
|
|
287
|
-
|
|
274
|
+
return /* @__PURE__ */ jsx(
|
|
275
|
+
Button,
|
|
288
276
|
__spreadProps(__spreadValues({
|
|
289
277
|
disabled: !authentication,
|
|
290
278
|
variant: "outlined",
|
|
@@ -300,7 +288,7 @@ function SignOutButton(props) {
|
|
|
300
288
|
filter: "opacity(1)"
|
|
301
289
|
}
|
|
302
290
|
},
|
|
303
|
-
startIcon: /* @__PURE__ */
|
|
291
|
+
startIcon: /* @__PURE__ */ jsx(LogoutIcon, {})
|
|
304
292
|
}, props), {
|
|
305
293
|
children: localeText == null ? void 0 : localeText.accountSignOutLabel
|
|
306
294
|
})
|
|
@@ -314,30 +302,19 @@ SignOutButton.propTypes = {
|
|
|
314
302
|
/**
|
|
315
303
|
* The content of the component.
|
|
316
304
|
*/
|
|
317
|
-
children:
|
|
305
|
+
children: PropTypes9.node
|
|
318
306
|
};
|
|
319
|
-
|
|
320
|
-
// src/toolpad-core/Account/AccountPreview.tsx
|
|
321
|
-
import * as React6 from "react";
|
|
322
|
-
import PropTypes3 from "prop-types";
|
|
323
|
-
import Avatar from "@mui/material/Avatar";
|
|
324
|
-
import Typography from "@mui/material/Typography";
|
|
325
|
-
import Tooltip from "@mui/material/Tooltip";
|
|
326
|
-
import Stack from "@mui/material/Stack";
|
|
327
|
-
import IconButton from "@mui/material/IconButton";
|
|
328
|
-
import MoreVertIcon from "@mui/icons-material/MoreVert";
|
|
329
|
-
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
330
307
|
function AccountPreview(props) {
|
|
331
308
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
332
309
|
const { slots, variant = "condensed", slotProps, open, handleClick, sx } = props;
|
|
333
|
-
const session =
|
|
310
|
+
const session = React16.useContext(SessionContext);
|
|
334
311
|
const globalLocaleText = useLocaleText();
|
|
335
|
-
const accountLocaleText =
|
|
312
|
+
const accountLocaleText = React16.useContext(AccountLocaleContext);
|
|
336
313
|
const localeText = __spreadValues(__spreadValues({}, globalLocaleText), accountLocaleText);
|
|
337
314
|
if (!session || !session.user) {
|
|
338
315
|
return null;
|
|
339
316
|
}
|
|
340
|
-
const avatarContent = (slots == null ? void 0 : slots.avatar) ? /* @__PURE__ */
|
|
317
|
+
const avatarContent = (slots == null ? void 0 : slots.avatar) ? /* @__PURE__ */ jsx(slots.avatar, {}) : /* @__PURE__ */ jsx(
|
|
341
318
|
Avatar,
|
|
342
319
|
__spreadValues({
|
|
343
320
|
src: ((_a = session.user) == null ? void 0 : _a.image) || "",
|
|
@@ -346,27 +323,27 @@ function AccountPreview(props) {
|
|
|
346
323
|
}, slotProps == null ? void 0 : slotProps.avatar)
|
|
347
324
|
);
|
|
348
325
|
if (variant === "expanded") {
|
|
349
|
-
return /* @__PURE__ */
|
|
350
|
-
/* @__PURE__ */
|
|
326
|
+
return /* @__PURE__ */ jsxs(Stack, { direction: "row", justifyContent: "space-between", sx: __spreadValues({ py: 1, px: 2, gap: 2 }, sx), children: [
|
|
327
|
+
/* @__PURE__ */ jsxs(Stack, { direction: "row", justifyContent: "flex-start", spacing: 2, overflow: "hidden", children: [
|
|
351
328
|
avatarContent,
|
|
352
|
-
/* @__PURE__ */
|
|
353
|
-
/* @__PURE__ */
|
|
354
|
-
/* @__PURE__ */
|
|
329
|
+
/* @__PURE__ */ jsxs(Stack, { direction: "column", justifyContent: "space-evenly", overflow: "hidden", children: [
|
|
330
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body2", fontWeight: "bolder", noWrap: true, children: (_d = session.user) == null ? void 0 : _d.name }),
|
|
331
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", noWrap: true, children: (_e = session.user) == null ? void 0 : _e.email })
|
|
355
332
|
] })
|
|
356
333
|
] }),
|
|
357
|
-
handleClick && ((slots == null ? void 0 : slots.moreIconButton) ? /* @__PURE__ */
|
|
334
|
+
handleClick && ((slots == null ? void 0 : slots.moreIconButton) ? /* @__PURE__ */ jsx(slots.moreIconButton, {}) : /* @__PURE__ */ jsx(
|
|
358
335
|
IconButton,
|
|
359
336
|
__spreadProps(__spreadValues({
|
|
360
337
|
size: "small",
|
|
361
338
|
onClick: handleClick
|
|
362
339
|
}, slotProps == null ? void 0 : slotProps.moreIconButton), {
|
|
363
340
|
sx: __spreadValues({ alignSelf: "center" }, (_f = slotProps == null ? void 0 : slotProps.moreIconButton) == null ? void 0 : _f.sx),
|
|
364
|
-
children: /* @__PURE__ */
|
|
341
|
+
children: /* @__PURE__ */ jsx(MoreVertIcon, { fontSize: "small" })
|
|
365
342
|
})
|
|
366
343
|
))
|
|
367
344
|
] });
|
|
368
345
|
}
|
|
369
|
-
return /* @__PURE__ */
|
|
346
|
+
return /* @__PURE__ */ jsx(Tooltip, { title: (_g = session.user.name) != null ? _g : accountLocaleText == null ? void 0 : accountLocaleText.accountPreviewTitle, children: (slots == null ? void 0 : slots.avatarIconButton) ? /* @__PURE__ */ jsx(slots.avatarIconButton, __spreadValues({}, slotProps == null ? void 0 : slotProps.avatarIconButton)) : /* @__PURE__ */ jsx(Stack, { sx: __spreadValues({ py: 0.5 }, sx), children: /* @__PURE__ */ jsx(
|
|
370
347
|
IconButton,
|
|
371
348
|
__spreadProps(__spreadValues({
|
|
372
349
|
onClick: handleClick,
|
|
@@ -389,35 +366,35 @@ AccountPreview.propTypes = {
|
|
|
389
366
|
/**
|
|
390
367
|
* The handler used when the preview is expanded
|
|
391
368
|
*/
|
|
392
|
-
handleClick:
|
|
369
|
+
handleClick: PropTypes9.func,
|
|
393
370
|
/**
|
|
394
371
|
* The state of the Account popover
|
|
395
372
|
* @default false
|
|
396
373
|
*/
|
|
397
|
-
open:
|
|
374
|
+
open: PropTypes9.bool,
|
|
398
375
|
/**
|
|
399
376
|
* The props used for each slot inside.
|
|
400
377
|
*/
|
|
401
|
-
slotProps:
|
|
402
|
-
avatar:
|
|
403
|
-
avatarIconButton:
|
|
404
|
-
moreIconButton:
|
|
378
|
+
slotProps: PropTypes9.shape({
|
|
379
|
+
avatar: PropTypes9.object,
|
|
380
|
+
avatarIconButton: PropTypes9.object,
|
|
381
|
+
moreIconButton: PropTypes9.object
|
|
405
382
|
}),
|
|
406
383
|
/**
|
|
407
384
|
* The components used for each slot inside.
|
|
408
385
|
*/
|
|
409
|
-
slots:
|
|
410
|
-
avatar:
|
|
411
|
-
avatarIconButton:
|
|
412
|
-
moreIconButton:
|
|
386
|
+
slots: PropTypes9.shape({
|
|
387
|
+
avatar: PropTypes9.elementType,
|
|
388
|
+
avatarIconButton: PropTypes9.elementType,
|
|
389
|
+
moreIconButton: PropTypes9.elementType
|
|
413
390
|
}),
|
|
414
391
|
/**
|
|
415
392
|
* The prop used to customize the styling of the preview
|
|
416
393
|
*/
|
|
417
|
-
sx:
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
394
|
+
sx: PropTypes9.oneOfType([
|
|
395
|
+
PropTypes9.arrayOf(PropTypes9.oneOfType([PropTypes9.func, PropTypes9.object, PropTypes9.bool])),
|
|
396
|
+
PropTypes9.func,
|
|
397
|
+
PropTypes9.object
|
|
421
398
|
]),
|
|
422
399
|
/**
|
|
423
400
|
* The type of account details to display.
|
|
@@ -425,16 +402,11 @@ AccountPreview.propTypes = {
|
|
|
425
402
|
* @property {'expanded'} expanded - Displays the user's avatar, name, and email if available.
|
|
426
403
|
* @default 'condensed'
|
|
427
404
|
*/
|
|
428
|
-
variant:
|
|
405
|
+
variant: PropTypes9.oneOf(["condensed", "expanded"])
|
|
429
406
|
};
|
|
430
|
-
|
|
431
|
-
// src/toolpad-core/Account/AccountPopoverHeader.tsx
|
|
432
|
-
import PropTypes4 from "prop-types";
|
|
433
|
-
import Stack2 from "@mui/material/Stack";
|
|
434
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
435
407
|
function AccountPopoverHeader(props) {
|
|
436
408
|
const _a = props, { children } = _a, rest = __objRest(_a, ["children"]);
|
|
437
|
-
return /* @__PURE__ */
|
|
409
|
+
return /* @__PURE__ */ jsx(Stack, __spreadProps(__spreadValues({}, rest), { children }));
|
|
438
410
|
}
|
|
439
411
|
AccountPopoverHeader.propTypes = {
|
|
440
412
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
@@ -444,17 +416,12 @@ AccountPopoverHeader.propTypes = {
|
|
|
444
416
|
/**
|
|
445
417
|
* The content of the component.
|
|
446
418
|
*/
|
|
447
|
-
children:
|
|
419
|
+
children: PropTypes9.node
|
|
448
420
|
};
|
|
449
|
-
|
|
450
|
-
// src/toolpad-core/Account/AccountPopoverFooter.tsx
|
|
451
|
-
import PropTypes5 from "prop-types";
|
|
452
|
-
import Box from "@mui/material/Box";
|
|
453
|
-
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
454
421
|
function AccountPopoverFooter(props) {
|
|
455
422
|
const _a = props, { children } = _a, rest = __objRest(_a, ["children"]);
|
|
456
|
-
return /* @__PURE__ */
|
|
457
|
-
|
|
423
|
+
return /* @__PURE__ */ jsx(
|
|
424
|
+
Box4,
|
|
458
425
|
__spreadProps(__spreadValues({}, rest), {
|
|
459
426
|
sx: __spreadValues({ display: "flex", flexDirection: "row", p: 1, justifyContent: "flex-end" }, rest.sx),
|
|
460
427
|
children
|
|
@@ -469,19 +436,16 @@ AccountPopoverFooter.propTypes = {
|
|
|
469
436
|
/**
|
|
470
437
|
* @ignore
|
|
471
438
|
*/
|
|
472
|
-
children:
|
|
439
|
+
children: PropTypes9.node,
|
|
473
440
|
/**
|
|
474
441
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
475
442
|
*/
|
|
476
|
-
sx:
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
443
|
+
sx: PropTypes9.oneOfType([
|
|
444
|
+
PropTypes9.arrayOf(PropTypes9.oneOfType([PropTypes9.func, PropTypes9.object, PropTypes9.bool])),
|
|
445
|
+
PropTypes9.func,
|
|
446
|
+
PropTypes9.object
|
|
480
447
|
])
|
|
481
448
|
};
|
|
482
|
-
|
|
483
|
-
// src/toolpad-core/Account/Account.tsx
|
|
484
|
-
import { jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
485
449
|
var defaultAccountLocaleText = {
|
|
486
450
|
accountPreviewIconButtonLabel: "Current User",
|
|
487
451
|
accountPreviewTitle: "Account",
|
|
@@ -492,14 +456,14 @@ function Account(props) {
|
|
|
492
456
|
var _a;
|
|
493
457
|
const { localeText: propsLocaleText } = props;
|
|
494
458
|
const globalLocaleText = useLocaleText();
|
|
495
|
-
const localeText =
|
|
459
|
+
const localeText = React16.useMemo(
|
|
496
460
|
() => __spreadValues(__spreadValues(__spreadValues({}, defaultAccountLocaleText), globalLocaleText), propsLocaleText),
|
|
497
461
|
[globalLocaleText, propsLocaleText]
|
|
498
462
|
);
|
|
499
463
|
const { slots, slotProps } = props;
|
|
500
|
-
const [anchorEl, setAnchorEl] =
|
|
501
|
-
const session =
|
|
502
|
-
const authentication =
|
|
464
|
+
const [anchorEl, setAnchorEl] = React16.useState(null);
|
|
465
|
+
const session = React16.useContext(SessionContext);
|
|
466
|
+
const authentication = React16.useContext(AuthenticationContext);
|
|
503
467
|
const open = Boolean(anchorEl);
|
|
504
468
|
const handleClick = (event) => {
|
|
505
469
|
setAnchorEl(event.currentTarget);
|
|
@@ -512,10 +476,10 @@ function Account(props) {
|
|
|
512
476
|
}
|
|
513
477
|
let accountContent = null;
|
|
514
478
|
if (!(session == null ? void 0 : session.user)) {
|
|
515
|
-
accountContent = (slots == null ? void 0 : slots.signInButton) ? /* @__PURE__ */
|
|
479
|
+
accountContent = (slots == null ? void 0 : slots.signInButton) ? /* @__PURE__ */ jsx(slots.signInButton, { onClick: authentication.signIn }) : /* @__PURE__ */ jsx(SignInButton, __spreadValues({}, slotProps == null ? void 0 : slotProps.signInButton));
|
|
516
480
|
} else {
|
|
517
|
-
accountContent = /* @__PURE__ */
|
|
518
|
-
(slots == null ? void 0 : slots.preview) ? /* @__PURE__ */
|
|
481
|
+
accountContent = /* @__PURE__ */ jsxs(React16.Fragment, { children: [
|
|
482
|
+
(slots == null ? void 0 : slots.preview) ? /* @__PURE__ */ jsx(slots.preview, { handleClick, open }) : /* @__PURE__ */ jsx(
|
|
519
483
|
AccountPreview,
|
|
520
484
|
__spreadValues({
|
|
521
485
|
variant: "condensed",
|
|
@@ -523,14 +487,14 @@ function Account(props) {
|
|
|
523
487
|
open
|
|
524
488
|
}, slotProps == null ? void 0 : slotProps.preview)
|
|
525
489
|
),
|
|
526
|
-
(slots == null ? void 0 : slots.popover) ? /* @__PURE__ */
|
|
490
|
+
(slots == null ? void 0 : slots.popover) ? /* @__PURE__ */ jsx(
|
|
527
491
|
slots.popover,
|
|
528
492
|
__spreadValues({
|
|
529
493
|
open,
|
|
530
494
|
onClick: handleClick,
|
|
531
495
|
onClose: handleClose
|
|
532
496
|
}, slotProps == null ? void 0 : slotProps.popover)
|
|
533
|
-
) : /* @__PURE__ */
|
|
497
|
+
) : /* @__PURE__ */ jsx(
|
|
534
498
|
Popover,
|
|
535
499
|
__spreadProps(__spreadValues({
|
|
536
500
|
anchorEl,
|
|
@@ -563,16 +527,16 @@ function Account(props) {
|
|
|
563
527
|
}
|
|
564
528
|
}
|
|
565
529
|
}, (_a = slotProps == null ? void 0 : slotProps.popover) == null ? void 0 : _a.slotProps),
|
|
566
|
-
children: (slots == null ? void 0 : slots.popoverContent) ? /* @__PURE__ */
|
|
567
|
-
/* @__PURE__ */
|
|
568
|
-
/* @__PURE__ */
|
|
569
|
-
/* @__PURE__ */
|
|
530
|
+
children: (slots == null ? void 0 : slots.popoverContent) ? /* @__PURE__ */ jsx(slots.popoverContent, __spreadValues({}, slotProps == null ? void 0 : slotProps.popoverContent)) : /* @__PURE__ */ jsxs(Stack, __spreadProps(__spreadValues({ direction: "column" }, slotProps == null ? void 0 : slotProps.popoverContent), { children: [
|
|
531
|
+
/* @__PURE__ */ jsx(AccountPopoverHeader, { children: /* @__PURE__ */ jsx(AccountPreview, { variant: "expanded" }) }),
|
|
532
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
533
|
+
/* @__PURE__ */ jsx(AccountPopoverFooter, { children: /* @__PURE__ */ jsx(SignOutButton, __spreadValues({}, slotProps == null ? void 0 : slotProps.signOutButton)) })
|
|
570
534
|
] }))
|
|
571
535
|
})
|
|
572
536
|
)
|
|
573
537
|
] });
|
|
574
538
|
}
|
|
575
|
-
return /* @__PURE__ */
|
|
539
|
+
return /* @__PURE__ */ jsx(AccountLocaleContext.Provider, { value: localeText, children: accountContent });
|
|
576
540
|
}
|
|
577
541
|
Account.propTypes = {
|
|
578
542
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
@@ -582,82 +546,51 @@ Account.propTypes = {
|
|
|
582
546
|
/**
|
|
583
547
|
* The labels for the account component.
|
|
584
548
|
*/
|
|
585
|
-
localeText:
|
|
549
|
+
localeText: PropTypes9.object,
|
|
586
550
|
/**
|
|
587
551
|
* The props used for each slot inside.
|
|
588
552
|
*/
|
|
589
|
-
slotProps:
|
|
590
|
-
popover:
|
|
591
|
-
popoverContent:
|
|
592
|
-
preview:
|
|
593
|
-
handleClick:
|
|
594
|
-
open:
|
|
595
|
-
slotProps:
|
|
596
|
-
avatar:
|
|
597
|
-
avatarIconButton:
|
|
598
|
-
moreIconButton:
|
|
553
|
+
slotProps: PropTypes9.shape({
|
|
554
|
+
popover: PropTypes9.object,
|
|
555
|
+
popoverContent: PropTypes9.object,
|
|
556
|
+
preview: PropTypes9.shape({
|
|
557
|
+
handleClick: PropTypes9.func,
|
|
558
|
+
open: PropTypes9.bool,
|
|
559
|
+
slotProps: PropTypes9.shape({
|
|
560
|
+
avatar: PropTypes9.object,
|
|
561
|
+
avatarIconButton: PropTypes9.object,
|
|
562
|
+
moreIconButton: PropTypes9.object
|
|
599
563
|
}),
|
|
600
|
-
slots:
|
|
601
|
-
avatar:
|
|
602
|
-
avatarIconButton:
|
|
603
|
-
moreIconButton:
|
|
564
|
+
slots: PropTypes9.shape({
|
|
565
|
+
avatar: PropTypes9.elementType,
|
|
566
|
+
avatarIconButton: PropTypes9.elementType,
|
|
567
|
+
moreIconButton: PropTypes9.elementType
|
|
604
568
|
}),
|
|
605
|
-
sx:
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
569
|
+
sx: PropTypes9.oneOfType([
|
|
570
|
+
PropTypes9.arrayOf(PropTypes9.oneOfType([PropTypes9.func, PropTypes9.object, PropTypes9.bool])),
|
|
571
|
+
PropTypes9.func,
|
|
572
|
+
PropTypes9.object
|
|
609
573
|
]),
|
|
610
|
-
variant:
|
|
574
|
+
variant: PropTypes9.oneOf(["condensed", "expanded"])
|
|
611
575
|
}),
|
|
612
|
-
signInButton:
|
|
613
|
-
signOutButton:
|
|
576
|
+
signInButton: PropTypes9.object,
|
|
577
|
+
signOutButton: PropTypes9.object
|
|
614
578
|
}),
|
|
615
579
|
/**
|
|
616
580
|
* The components used for each slot inside.
|
|
617
581
|
*/
|
|
618
|
-
slots:
|
|
619
|
-
popover:
|
|
620
|
-
popoverContent:
|
|
621
|
-
preview:
|
|
622
|
-
signInButton:
|
|
623
|
-
signOutButton:
|
|
582
|
+
slots: PropTypes9.shape({
|
|
583
|
+
popover: PropTypes9.elementType,
|
|
584
|
+
popoverContent: PropTypes9.elementType,
|
|
585
|
+
preview: PropTypes9.elementType,
|
|
586
|
+
signInButton: PropTypes9.elementType,
|
|
587
|
+
signOutButton: PropTypes9.elementType
|
|
624
588
|
})
|
|
625
589
|
};
|
|
626
|
-
|
|
627
|
-
// src/toolpad-core/DashboardLayout/DashboardLayout.tsx
|
|
628
|
-
import * as React16 from "react";
|
|
629
|
-
import PropTypes9 from "prop-types";
|
|
630
|
-
import { useTheme as useTheme3 } from "@mui/material/styles";
|
|
631
|
-
import useMediaQuery from "@mui/material/useMediaQuery";
|
|
632
|
-
import Box4 from "@mui/material/Box";
|
|
633
|
-
import Drawer from "@mui/material/Drawer";
|
|
634
|
-
import Toolbar2 from "@mui/material/Toolbar";
|
|
635
|
-
|
|
636
|
-
// src/toolpad-core/DashboardLayout/DashboardHeader.tsx
|
|
637
|
-
import * as React12 from "react";
|
|
638
|
-
import PropTypes7 from "prop-types";
|
|
639
|
-
import { styled as styled2 } from "@mui/material/styles";
|
|
640
|
-
import Box2 from "@mui/material/Box";
|
|
641
|
-
import MuiAppBar from "@mui/material/AppBar";
|
|
642
|
-
import IconButton3 from "@mui/material/IconButton";
|
|
643
|
-
import Toolbar from "@mui/material/Toolbar";
|
|
644
|
-
import Tooltip3 from "@mui/material/Tooltip";
|
|
645
|
-
import MenuIcon from "@mui/icons-material/Menu";
|
|
646
|
-
import MenuOpenIcon from "@mui/icons-material/MenuOpen";
|
|
647
|
-
import Stack6 from "@mui/material/Stack";
|
|
648
|
-
|
|
649
|
-
// src/toolpad-core/DashboardLayout/AppTitle.tsx
|
|
650
|
-
import Typography2 from "@mui/material/Typography";
|
|
651
|
-
import Stack4 from "@mui/material/Stack";
|
|
652
|
-
import { styled, useTheme } from "@mui/material";
|
|
653
|
-
|
|
654
|
-
// src/toolpad-core/shared/Link.tsx
|
|
655
|
-
import * as React8 from "react";
|
|
656
|
-
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
657
|
-
var DefaultLink = React8.forwardRef(function Link(props, ref) {
|
|
590
|
+
var DefaultLink = React16.forwardRef(function Link(props, ref) {
|
|
658
591
|
const _a = props, { children, href, onClick, history } = _a, rest = __objRest(_a, ["children", "href", "onClick", "history"]);
|
|
659
|
-
const routerContext =
|
|
660
|
-
const handleLinkClick =
|
|
592
|
+
const routerContext = React16.useContext(RouterContext);
|
|
593
|
+
const handleLinkClick = React16.useMemo(() => {
|
|
661
594
|
if (!routerContext) {
|
|
662
595
|
return onClick;
|
|
663
596
|
}
|
|
@@ -668,25 +601,22 @@ var DefaultLink = React8.forwardRef(function Link(props, ref) {
|
|
|
668
601
|
onClick == null ? void 0 : onClick(event);
|
|
669
602
|
};
|
|
670
603
|
}, [routerContext, onClick, history]);
|
|
671
|
-
return /* @__PURE__ */
|
|
604
|
+
return /* @__PURE__ */ jsx("a", __spreadProps(__spreadValues({ ref, href }, rest), { onClick: handleLinkClick, children }));
|
|
672
605
|
});
|
|
673
|
-
var Link2 =
|
|
606
|
+
var Link2 = React16.forwardRef(function Link3(props, ref) {
|
|
674
607
|
var _a;
|
|
675
|
-
const routerContext =
|
|
608
|
+
const routerContext = React16.useContext(RouterContext);
|
|
676
609
|
const LinkComponent = (_a = routerContext == null ? void 0 : routerContext.Link) != null ? _a : DefaultLink;
|
|
677
|
-
return /* @__PURE__ */
|
|
610
|
+
return /* @__PURE__ */ jsx(LinkComponent, __spreadProps(__spreadValues({ ref }, props), { children: props.children }));
|
|
678
611
|
});
|
|
679
|
-
|
|
680
|
-
// src/toolpad-core/DashboardLayout/ToolpadLogo.tsx
|
|
681
|
-
import { jsx as jsx9, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
682
612
|
function ToolpadLogo({ size = 40 }) {
|
|
683
|
-
return /* @__PURE__ */
|
|
684
|
-
/* @__PURE__ */
|
|
685
|
-
/* @__PURE__ */
|
|
686
|
-
/* @__PURE__ */
|
|
687
|
-
/* @__PURE__ */
|
|
613
|
+
return /* @__PURE__ */ jsxs("svg", { width: size, height: size, fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [
|
|
614
|
+
/* @__PURE__ */ jsxs("g", { mask: "url(#a)", children: [
|
|
615
|
+
/* @__PURE__ */ jsx("path", { d: "M22.74 27.73v-7.6l6.64-3.79v7.6l-6.64 3.79Z", fill: "#007FFF" }),
|
|
616
|
+
/* @__PURE__ */ jsx("path", { d: "M16.1 23.93v-7.59l6.64 3.8v7.59l-6.65-3.8Z", fill: "#39F" }),
|
|
617
|
+
/* @__PURE__ */ jsx("path", { d: "m16.1 16.34 6.64-3.8 6.64 3.8-6.64 3.8-6.65-3.8Z", fill: "#A5D8FF" })
|
|
688
618
|
] }),
|
|
689
|
-
/* @__PURE__ */
|
|
619
|
+
/* @__PURE__ */ jsx(
|
|
690
620
|
"mask",
|
|
691
621
|
{
|
|
692
622
|
id: "b",
|
|
@@ -698,7 +628,7 @@ function ToolpadLogo({ size = 40 }) {
|
|
|
698
628
|
y: "17",
|
|
699
629
|
width: "14",
|
|
700
630
|
height: "15",
|
|
701
|
-
children: /* @__PURE__ */
|
|
631
|
+
children: /* @__PURE__ */ jsx(
|
|
702
632
|
"path",
|
|
703
633
|
{
|
|
704
634
|
d: "M8.5 22.3c0-1.05.56-2 1.46-2.53l3.75-2.14c.89-.5 1.98-.5 2.87 0l3.75 2.14a2.9 2.9 0 0 1 1.46 2.52v4.23c0 1.04-.56 2-1.46 2.52l-3.75 2.14c-.89.5-1.98.5-2.87 0l-3.75-2.14a2.9 2.9 0 0 1-1.46-2.52v-4.23Z",
|
|
@@ -707,12 +637,12 @@ function ToolpadLogo({ size = 40 }) {
|
|
|
707
637
|
)
|
|
708
638
|
}
|
|
709
639
|
),
|
|
710
|
-
/* @__PURE__ */
|
|
711
|
-
/* @__PURE__ */
|
|
712
|
-
/* @__PURE__ */
|
|
713
|
-
/* @__PURE__ */
|
|
640
|
+
/* @__PURE__ */ jsxs("g", { mask: "url(#b)", children: [
|
|
641
|
+
/* @__PURE__ */ jsx("path", { d: "M15.14 32v-7.6l6.65-3.8v7.6L15.14 32Z", fill: "#007FFF" }),
|
|
642
|
+
/* @__PURE__ */ jsx("path", { d: "M8.5 28.2v-7.6l6.64 3.8V32L8.5 28.2Z", fill: "#39F" }),
|
|
643
|
+
/* @__PURE__ */ jsx("path", { d: "m8.5 20.6 6.64-3.79 6.65 3.8-6.65 3.8-6.64-3.8Z", fill: "#A5D8FF" })
|
|
714
644
|
] }),
|
|
715
|
-
/* @__PURE__ */
|
|
645
|
+
/* @__PURE__ */ jsx(
|
|
716
646
|
"mask",
|
|
717
647
|
{
|
|
718
648
|
id: "c",
|
|
@@ -724,7 +654,7 @@ function ToolpadLogo({ size = 40 }) {
|
|
|
724
654
|
y: "4",
|
|
725
655
|
width: "22",
|
|
726
656
|
height: "20",
|
|
727
|
-
children: /* @__PURE__ */
|
|
657
|
+
children: /* @__PURE__ */ jsx(
|
|
728
658
|
"path",
|
|
729
659
|
{
|
|
730
660
|
d: "M24.17 4.82a2.9 2.9 0 0 0-2.87 0L9.97 11.22a2.9 2.9 0 0 0-1.47 2.53v4.22c0 1.04.56 2 1.46 2.52l3.75 2.14c.89.5 1.98.5 2.87 0l11.33-6.42a2.9 2.9 0 0 0 1.47-2.52V9.48c0-1.04-.56-2-1.46-2.52l-3.75-2.14Z",
|
|
@@ -733,24 +663,18 @@ function ToolpadLogo({ size = 40 }) {
|
|
|
733
663
|
)
|
|
734
664
|
}
|
|
735
665
|
),
|
|
736
|
-
/* @__PURE__ */
|
|
737
|
-
/* @__PURE__ */
|
|
738
|
-
/* @__PURE__ */
|
|
739
|
-
/* @__PURE__ */
|
|
666
|
+
/* @__PURE__ */ jsxs("g", { mask: "url(#c)", children: [
|
|
667
|
+
/* @__PURE__ */ jsx("path", { d: "M15.14 23.46v-7.6L29.38 7.8v7.59l-14.24 8.07Z", fill: "#007FFF" }),
|
|
668
|
+
/* @__PURE__ */ jsx("path", { d: "M8.5 19.66v-7.6l6.64 3.8v7.6l-6.64-3.8Z", fill: "#39F" }),
|
|
669
|
+
/* @__PURE__ */ jsx("path", { d: "M8.5 12.07 22.74 4l6.64 3.8-14.24 8.06-6.64-3.8Z", fill: "#A5D8FF" })
|
|
740
670
|
] })
|
|
741
671
|
] });
|
|
742
672
|
}
|
|
743
|
-
|
|
744
|
-
// src/toolpad-core/shared/branding.ts
|
|
745
|
-
import * as React9 from "react";
|
|
746
673
|
function useApplicationTitle() {
|
|
747
674
|
var _a;
|
|
748
|
-
const branding =
|
|
675
|
+
const branding = React16.useContext(BrandingContext);
|
|
749
676
|
return (_a = branding == null ? void 0 : branding.title) != null ? _a : "Toolpad";
|
|
750
677
|
}
|
|
751
|
-
|
|
752
|
-
// src/toolpad-core/DashboardLayout/AppTitle.tsx
|
|
753
|
-
import { jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
754
678
|
var LogoContainer = styled("div")({
|
|
755
679
|
position: "relative",
|
|
756
680
|
height: 40,
|
|
@@ -765,10 +689,10 @@ function AppTitle(props) {
|
|
|
765
689
|
const theme = useTheme();
|
|
766
690
|
const defaultTitle = useApplicationTitle();
|
|
767
691
|
const title = (_b = (_a = props == null ? void 0 : props.branding) == null ? void 0 : _a.title) != null ? _b : defaultTitle;
|
|
768
|
-
return /* @__PURE__ */
|
|
769
|
-
/* @__PURE__ */
|
|
770
|
-
/* @__PURE__ */
|
|
771
|
-
|
|
692
|
+
return /* @__PURE__ */ jsx(Link2, { href: (_d = (_c = props == null ? void 0 : props.branding) == null ? void 0 : _c.homeUrl) != null ? _d : "/", style: { textDecoration: "none" }, children: /* @__PURE__ */ jsxs(Stack, { direction: "row", alignItems: "center", children: [
|
|
693
|
+
/* @__PURE__ */ jsx(LogoContainer, { children: (_f = (_e = props == null ? void 0 : props.branding) == null ? void 0 : _e.logo) != null ? _f : /* @__PURE__ */ jsx(ToolpadLogo, { size: 40 }) }),
|
|
694
|
+
/* @__PURE__ */ jsx(
|
|
695
|
+
Typography,
|
|
772
696
|
{
|
|
773
697
|
variant: "h6",
|
|
774
698
|
sx: {
|
|
@@ -783,20 +707,6 @@ function AppTitle(props) {
|
|
|
783
707
|
)
|
|
784
708
|
] }) });
|
|
785
709
|
}
|
|
786
|
-
|
|
787
|
-
// src/toolpad-core/DashboardLayout/ToolbarActions.tsx
|
|
788
|
-
import Stack5 from "@mui/material/Stack";
|
|
789
|
-
|
|
790
|
-
// src/toolpad-core/DashboardLayout/ThemeSwitcher.tsx
|
|
791
|
-
import * as React11 from "react";
|
|
792
|
-
import { useTheme as useTheme2 } from "@mui/material";
|
|
793
|
-
import IconButton2 from "@mui/material/IconButton";
|
|
794
|
-
import Tooltip2 from "@mui/material/Tooltip";
|
|
795
|
-
import DarkModeIcon from "@mui/icons-material/DarkMode";
|
|
796
|
-
import LightModeIcon from "@mui/icons-material/LightMode";
|
|
797
|
-
|
|
798
|
-
// src/toolpad-utils/hooks/useSsr.ts
|
|
799
|
-
import * as React10 from "react";
|
|
800
710
|
function subscribe() {
|
|
801
711
|
return () => {
|
|
802
712
|
};
|
|
@@ -808,34 +718,31 @@ function getServerSnapshot() {
|
|
|
808
718
|
return true;
|
|
809
719
|
}
|
|
810
720
|
function useSsr() {
|
|
811
|
-
return
|
|
721
|
+
return React16.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
812
722
|
}
|
|
813
|
-
|
|
814
|
-
// src/toolpad-core/DashboardLayout/ThemeSwitcher.tsx
|
|
815
|
-
import { jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
816
723
|
function ThemeSwitcher() {
|
|
817
724
|
var _a;
|
|
818
725
|
const isSsr = useSsr();
|
|
819
|
-
const theme =
|
|
820
|
-
const { paletteMode, setPaletteMode, isDualTheme } =
|
|
821
|
-
const toggleMode =
|
|
726
|
+
const theme = useTheme();
|
|
727
|
+
const { paletteMode, setPaletteMode, isDualTheme } = React16.useContext(PaletteModeContext);
|
|
728
|
+
const toggleMode = React16.useCallback(() => {
|
|
822
729
|
setPaletteMode(paletteMode === "dark" ? "light" : "dark");
|
|
823
730
|
}, [paletteMode, setPaletteMode]);
|
|
824
|
-
return isDualTheme ? /* @__PURE__ */
|
|
825
|
-
|
|
731
|
+
return isDualTheme ? /* @__PURE__ */ jsx(
|
|
732
|
+
Tooltip,
|
|
826
733
|
{
|
|
827
734
|
title: isSsr ? "Switch mode" : `${paletteMode === "dark" ? "Light" : "Dark"} mode`,
|
|
828
735
|
enterDelay: 1e3,
|
|
829
|
-
children: /* @__PURE__ */
|
|
830
|
-
|
|
736
|
+
children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
737
|
+
IconButton,
|
|
831
738
|
{
|
|
832
739
|
"aria-label": isSsr ? "Switch theme mode" : `Switch to ${paletteMode === "dark" ? "light" : "dark"} mode`,
|
|
833
740
|
onClick: toggleMode,
|
|
834
741
|
sx: {
|
|
835
742
|
color: ((_a = theme.vars) != null ? _a : theme).palette.primary.dark
|
|
836
743
|
},
|
|
837
|
-
children: theme.getColorSchemeSelector ? /* @__PURE__ */
|
|
838
|
-
/* @__PURE__ */
|
|
744
|
+
children: theme.getColorSchemeSelector ? /* @__PURE__ */ jsxs(React16.Fragment, { children: [
|
|
745
|
+
/* @__PURE__ */ jsx(
|
|
839
746
|
DarkModeIcon,
|
|
840
747
|
{
|
|
841
748
|
sx: {
|
|
@@ -846,7 +753,7 @@ function ThemeSwitcher() {
|
|
|
846
753
|
}
|
|
847
754
|
}
|
|
848
755
|
),
|
|
849
|
-
/* @__PURE__ */
|
|
756
|
+
/* @__PURE__ */ jsx(
|
|
850
757
|
LightModeIcon,
|
|
851
758
|
{
|
|
852
759
|
sx: {
|
|
@@ -857,25 +764,19 @@ function ThemeSwitcher() {
|
|
|
857
764
|
}
|
|
858
765
|
}
|
|
859
766
|
)
|
|
860
|
-
] }) : /* @__PURE__ */
|
|
767
|
+
] }) : /* @__PURE__ */ jsx(React16.Fragment, { children: isSsr || paletteMode !== "dark" ? /* @__PURE__ */ jsx(DarkModeIcon, {}) : /* @__PURE__ */ jsx(LightModeIcon, {}) })
|
|
861
768
|
}
|
|
862
769
|
) })
|
|
863
770
|
}
|
|
864
771
|
) : null;
|
|
865
772
|
}
|
|
866
|
-
|
|
867
|
-
// src/toolpad-core/DashboardLayout/ToolbarActions.tsx
|
|
868
|
-
import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
869
773
|
function ToolbarActions() {
|
|
870
|
-
return /* @__PURE__ */
|
|
871
|
-
/* @__PURE__ */
|
|
872
|
-
/* @__PURE__ */
|
|
774
|
+
return /* @__PURE__ */ jsxs(Stack, { direction: "row", alignItems: "center", children: [
|
|
775
|
+
/* @__PURE__ */ jsx(ThemeSwitcher, {}),
|
|
776
|
+
/* @__PURE__ */ jsx(Account, {})
|
|
873
777
|
] });
|
|
874
778
|
}
|
|
875
|
-
|
|
876
|
-
// src/toolpad-core/DashboardLayout/DashboardHeader.tsx
|
|
877
|
-
import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
878
|
-
var AppBar = styled2(MuiAppBar)(({ theme }) => {
|
|
779
|
+
var AppBar = styled$1(MuiAppBar)(({ theme }) => {
|
|
879
780
|
var _a;
|
|
880
781
|
return {
|
|
881
782
|
borderWidth: 0,
|
|
@@ -896,26 +797,26 @@ function DashboardHeader(props) {
|
|
|
896
797
|
slots,
|
|
897
798
|
slotProps
|
|
898
799
|
} = props;
|
|
899
|
-
const brandingContext =
|
|
800
|
+
const brandingContext = React16.useContext(BrandingContext);
|
|
900
801
|
const branding = __spreadValues(__spreadValues({}, brandingContext), brandingProp);
|
|
901
|
-
const handleMenuOpen =
|
|
802
|
+
const handleMenuOpen = React16.useCallback(() => {
|
|
902
803
|
onToggleMenu(!menuOpen);
|
|
903
804
|
}, [menuOpen, onToggleMenu]);
|
|
904
|
-
const getMenuIcon =
|
|
805
|
+
const getMenuIcon = React16.useCallback(
|
|
905
806
|
(isExpanded) => {
|
|
906
807
|
const expandMenuActionText = "Expand";
|
|
907
808
|
const collapseMenuActionText = "Collapse";
|
|
908
|
-
return /* @__PURE__ */
|
|
909
|
-
|
|
809
|
+
return /* @__PURE__ */ jsx(
|
|
810
|
+
Tooltip,
|
|
910
811
|
{
|
|
911
812
|
title: `${isExpanded ? collapseMenuActionText : expandMenuActionText} menu`,
|
|
912
813
|
enterDelay: 1e3,
|
|
913
|
-
children: /* @__PURE__ */
|
|
914
|
-
|
|
814
|
+
children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
|
|
815
|
+
IconButton,
|
|
915
816
|
{
|
|
916
817
|
"aria-label": `${isExpanded ? collapseMenuActionText : expandMenuActionText} navigation menu`,
|
|
917
818
|
onClick: handleMenuOpen,
|
|
918
|
-
children: isExpanded ? /* @__PURE__ */
|
|
819
|
+
children: isExpanded ? /* @__PURE__ */ jsx(MenuOpenIcon, {}) : /* @__PURE__ */ jsx(MenuIcon, {})
|
|
919
820
|
}
|
|
920
821
|
) })
|
|
921
822
|
}
|
|
@@ -925,8 +826,8 @@ function DashboardHeader(props) {
|
|
|
925
826
|
);
|
|
926
827
|
const ToolbarActionsSlot = (_a = slots == null ? void 0 : slots.toolbarActions) != null ? _a : ToolbarActions;
|
|
927
828
|
const ToolbarAccountSlot = (_b = slots == null ? void 0 : slots.toolbarAccount) != null ? _b : (() => null);
|
|
928
|
-
return /* @__PURE__ */
|
|
929
|
-
|
|
829
|
+
return /* @__PURE__ */ jsx(AppBar, { color: "inherit", position: "absolute", sx: { displayPrint: "none" }, children: /* @__PURE__ */ jsx(Toolbar2, { sx: { backgroundColor: "inherit", mx: { xs: -0.75, sm: -1 } }, children: /* @__PURE__ */ jsxs(
|
|
830
|
+
Stack,
|
|
930
831
|
{
|
|
931
832
|
direction: "row",
|
|
932
833
|
justifyContent: "space-between",
|
|
@@ -936,10 +837,10 @@ function DashboardHeader(props) {
|
|
|
936
837
|
width: "100%"
|
|
937
838
|
},
|
|
938
839
|
children: [
|
|
939
|
-
/* @__PURE__ */
|
|
940
|
-
!hideMenuButton ? /* @__PURE__ */
|
|
941
|
-
/* @__PURE__ */
|
|
942
|
-
|
|
840
|
+
/* @__PURE__ */ jsxs(Stack, { direction: "row", children: [
|
|
841
|
+
!hideMenuButton ? /* @__PURE__ */ jsxs(React16.Fragment, { children: [
|
|
842
|
+
/* @__PURE__ */ jsx(
|
|
843
|
+
Box4,
|
|
943
844
|
{
|
|
944
845
|
sx: {
|
|
945
846
|
display: { xs: "block", md: "none" },
|
|
@@ -948,8 +849,8 @@ function DashboardHeader(props) {
|
|
|
948
849
|
children: getMenuIcon(menuOpen)
|
|
949
850
|
}
|
|
950
851
|
),
|
|
951
|
-
/* @__PURE__ */
|
|
952
|
-
|
|
852
|
+
/* @__PURE__ */ jsx(
|
|
853
|
+
Box4,
|
|
953
854
|
{
|
|
954
855
|
sx: {
|
|
955
856
|
display: { xs: "none", md: "block" },
|
|
@@ -959,18 +860,18 @@ function DashboardHeader(props) {
|
|
|
959
860
|
}
|
|
960
861
|
)
|
|
961
862
|
] }) : null,
|
|
962
|
-
(slots == null ? void 0 : slots.appTitle) ? /* @__PURE__ */
|
|
863
|
+
(slots == null ? void 0 : slots.appTitle) ? /* @__PURE__ */ jsx(slots.appTitle, __spreadValues({}, slotProps == null ? void 0 : slotProps.appTitle)) : (
|
|
963
864
|
/* Hierarchy of application of `branding`
|
|
964
865
|
* 1. Branding prop passed in the `slotProps.appTitle`
|
|
965
866
|
* 2. Branding prop passed to the `DashboardLayout`
|
|
966
867
|
* 3. Branding prop passed to the `AppProvider`
|
|
967
868
|
*/
|
|
968
|
-
/* @__PURE__ */
|
|
869
|
+
/* @__PURE__ */ jsx(AppTitle, __spreadValues({ branding }, slotProps == null ? void 0 : slotProps.appTitle))
|
|
969
870
|
)
|
|
970
871
|
] }),
|
|
971
|
-
/* @__PURE__ */
|
|
972
|
-
/* @__PURE__ */
|
|
973
|
-
/* @__PURE__ */
|
|
872
|
+
/* @__PURE__ */ jsxs(Stack, { direction: "row", alignItems: "center", spacing: 1, sx: { marginLeft: "auto" }, children: [
|
|
873
|
+
/* @__PURE__ */ jsx(ToolbarActionsSlot, __spreadValues({}, slotProps == null ? void 0 : slotProps.toolbarActions)),
|
|
874
|
+
/* @__PURE__ */ jsx(ToolbarAccountSlot, __spreadValues({}, slotProps == null ? void 0 : slotProps.toolbarAccount))
|
|
974
875
|
] })
|
|
975
876
|
]
|
|
976
877
|
}
|
|
@@ -985,75 +886,65 @@ DashboardHeader.propTypes = {
|
|
|
985
886
|
* Branding options for the header.
|
|
986
887
|
* @default null
|
|
987
888
|
*/
|
|
988
|
-
branding:
|
|
989
|
-
homeUrl:
|
|
990
|
-
logo:
|
|
991
|
-
title:
|
|
889
|
+
branding: PropTypes9.shape({
|
|
890
|
+
homeUrl: PropTypes9.string,
|
|
891
|
+
logo: PropTypes9.node,
|
|
892
|
+
title: PropTypes9.string
|
|
992
893
|
}),
|
|
993
894
|
/**
|
|
994
895
|
* Whether the menu icon should always be hidden.
|
|
995
896
|
* @default false
|
|
996
897
|
*/
|
|
997
|
-
hideMenuButton:
|
|
898
|
+
hideMenuButton: PropTypes9.bool,
|
|
998
899
|
/**
|
|
999
900
|
* If `true`, show menu button as if menu is expanded, otherwise show it as if menu is collapsed.
|
|
1000
901
|
*/
|
|
1001
|
-
menuOpen:
|
|
902
|
+
menuOpen: PropTypes9.bool.isRequired,
|
|
1002
903
|
/**
|
|
1003
904
|
* Callback fired when the menu button is clicked.
|
|
1004
905
|
*/
|
|
1005
|
-
onToggleMenu:
|
|
906
|
+
onToggleMenu: PropTypes9.func.isRequired,
|
|
1006
907
|
/**
|
|
1007
908
|
* The props used for each slot inside.
|
|
1008
909
|
* @default {}
|
|
1009
910
|
*/
|
|
1010
|
-
slotProps:
|
|
1011
|
-
appTitle:
|
|
1012
|
-
branding:
|
|
1013
|
-
homeUrl:
|
|
1014
|
-
logo:
|
|
1015
|
-
title:
|
|
911
|
+
slotProps: PropTypes9.shape({
|
|
912
|
+
appTitle: PropTypes9.shape({
|
|
913
|
+
branding: PropTypes9.shape({
|
|
914
|
+
homeUrl: PropTypes9.string,
|
|
915
|
+
logo: PropTypes9.node,
|
|
916
|
+
title: PropTypes9.string
|
|
1016
917
|
})
|
|
1017
918
|
}),
|
|
1018
|
-
toolbarAccount:
|
|
1019
|
-
localeText:
|
|
1020
|
-
slotProps:
|
|
1021
|
-
popover:
|
|
1022
|
-
popoverContent:
|
|
1023
|
-
preview:
|
|
1024
|
-
signInButton:
|
|
1025
|
-
signOutButton:
|
|
919
|
+
toolbarAccount: PropTypes9.shape({
|
|
920
|
+
localeText: PropTypes9.object,
|
|
921
|
+
slotProps: PropTypes9.shape({
|
|
922
|
+
popover: PropTypes9.object,
|
|
923
|
+
popoverContent: PropTypes9.object,
|
|
924
|
+
preview: PropTypes9.object,
|
|
925
|
+
signInButton: PropTypes9.object,
|
|
926
|
+
signOutButton: PropTypes9.object
|
|
1026
927
|
}),
|
|
1027
|
-
slots:
|
|
1028
|
-
popover:
|
|
1029
|
-
popoverContent:
|
|
1030
|
-
preview:
|
|
1031
|
-
signInButton:
|
|
1032
|
-
signOutButton:
|
|
928
|
+
slots: PropTypes9.shape({
|
|
929
|
+
popover: PropTypes9.elementType,
|
|
930
|
+
popoverContent: PropTypes9.elementType,
|
|
931
|
+
preview: PropTypes9.elementType,
|
|
932
|
+
signInButton: PropTypes9.elementType,
|
|
933
|
+
signOutButton: PropTypes9.elementType
|
|
1033
934
|
})
|
|
1034
935
|
}),
|
|
1035
|
-
toolbarActions:
|
|
936
|
+
toolbarActions: PropTypes9.object
|
|
1036
937
|
}),
|
|
1037
938
|
/**
|
|
1038
939
|
* The components used for each slot inside.
|
|
1039
940
|
* @default {}
|
|
1040
941
|
*/
|
|
1041
|
-
slots:
|
|
1042
|
-
appTitle:
|
|
1043
|
-
toolbarAccount:
|
|
1044
|
-
toolbarActions:
|
|
942
|
+
slots: PropTypes9.shape({
|
|
943
|
+
appTitle: PropTypes9.elementType,
|
|
944
|
+
toolbarAccount: PropTypes9.elementType,
|
|
945
|
+
toolbarActions: PropTypes9.elementType
|
|
1045
946
|
})
|
|
1046
947
|
};
|
|
1047
|
-
|
|
1048
|
-
// src/toolpad-core/DashboardLayout/DashboardSidebarSubNavigation.tsx
|
|
1049
|
-
import * as React15 from "react";
|
|
1050
|
-
import Divider2 from "@mui/material/Divider";
|
|
1051
|
-
import List from "@mui/material/List";
|
|
1052
|
-
import ListSubheader from "@mui/material/ListSubheader";
|
|
1053
|
-
|
|
1054
|
-
// src/toolpad-core/shared/navigation.tsx
|
|
1055
|
-
import { pathToRegexp } from "path-to-regexp";
|
|
1056
|
-
import invariant2 from "invariant";
|
|
1057
948
|
var getItemKind = (item) => {
|
|
1058
949
|
var _a;
|
|
1059
950
|
return (_a = item.kind) != null ? _a : "page";
|
|
@@ -1139,7 +1030,7 @@ function matchPath(navigation, path) {
|
|
|
1139
1030
|
function getItemPath(navigation, item) {
|
|
1140
1031
|
const map = getItemToPathMap(navigation);
|
|
1141
1032
|
const path = map.get(item);
|
|
1142
|
-
|
|
1033
|
+
invariant(path, `Item not found in navigation: ${item.title}`);
|
|
1143
1034
|
return path;
|
|
1144
1035
|
}
|
|
1145
1036
|
function hasSelectedNavigationChildren(navigation, item, activePagePath) {
|
|
@@ -1171,17 +1062,14 @@ function getDrawerWidthTransitionMixin(isExpanded) {
|
|
|
1171
1062
|
overflowX: "hidden"
|
|
1172
1063
|
});
|
|
1173
1064
|
}
|
|
1174
|
-
|
|
1175
|
-
// src/toolpad-core/useActivePage/useActivePage.ts
|
|
1176
|
-
import * as React13 from "react";
|
|
1177
1065
|
function useActivePage() {
|
|
1178
1066
|
var _a;
|
|
1179
|
-
const navigationContext =
|
|
1180
|
-
const routerContext =
|
|
1067
|
+
const navigationContext = React16.useContext(NavigationContext);
|
|
1068
|
+
const routerContext = React16.useContext(RouterContext);
|
|
1181
1069
|
const pathname = (_a = routerContext == null ? void 0 : routerContext.pathname) != null ? _a : "/";
|
|
1182
1070
|
const activeItem = matchPath(navigationContext, pathname);
|
|
1183
1071
|
const rootItem = matchPath(navigationContext, "/");
|
|
1184
|
-
return
|
|
1072
|
+
return React16.useMemo(() => {
|
|
1185
1073
|
if (!activeItem) {
|
|
1186
1074
|
return null;
|
|
1187
1075
|
}
|
|
@@ -1218,29 +1106,9 @@ function useActivePage() {
|
|
|
1218
1106
|
}, [activeItem, rootItem, pathname, navigationContext]);
|
|
1219
1107
|
}
|
|
1220
1108
|
|
|
1221
|
-
// src/toolpad-core/DashboardLayout/DashboardSidebarPageItem.tsx
|
|
1222
|
-
import * as React14 from "react";
|
|
1223
|
-
import PropTypes8 from "prop-types";
|
|
1224
|
-
import { styled as styled3 } from "@mui/material";
|
|
1225
|
-
import Avatar2 from "@mui/material/Avatar";
|
|
1226
|
-
import Box3 from "@mui/material/Box";
|
|
1227
|
-
import Collapse from "@mui/material/Collapse";
|
|
1228
|
-
import Grow from "@mui/material/Grow";
|
|
1229
|
-
import ListItem from "@mui/material/ListItem";
|
|
1230
|
-
import ListItemButton from "@mui/material/ListItemButton";
|
|
1231
|
-
import ListItemIcon from "@mui/material/ListItemIcon";
|
|
1232
|
-
import ListItemText from "@mui/material/ListItemText";
|
|
1233
|
-
import Paper from "@mui/material/Paper";
|
|
1234
|
-
import Typography3 from "@mui/material/Typography";
|
|
1235
|
-
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
|
|
1236
|
-
import invariant3 from "invariant";
|
|
1237
|
-
|
|
1238
1109
|
// src/toolpad-core/DashboardLayout/shared.ts
|
|
1239
1110
|
var MINI_DRAWER_WIDTH = 84;
|
|
1240
|
-
|
|
1241
|
-
// src/toolpad-core/DashboardLayout/DashboardSidebarPageItem.tsx
|
|
1242
|
-
import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1243
|
-
var NavigationListItemButton = styled3(ListItemButton)(({ theme }) => {
|
|
1111
|
+
var NavigationListItemButton = styled(ListItemButton)(({ theme }) => {
|
|
1244
1112
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
1245
1113
|
return {
|
|
1246
1114
|
borderRadius: 8,
|
|
@@ -1272,9 +1140,9 @@ var NavigationListItemButton = styled3(ListItemButton)(({ theme }) => {
|
|
|
1272
1140
|
var LIST_ITEM_ICON_SIZE = 34;
|
|
1273
1141
|
function DashboardSidebarPageItem(props) {
|
|
1274
1142
|
var _a;
|
|
1275
|
-
const navigationContext =
|
|
1276
|
-
const pageItemContextProps =
|
|
1277
|
-
|
|
1143
|
+
const navigationContext = React16.useContext(NavigationContext);
|
|
1144
|
+
const pageItemContextProps = React16.useContext(DashboardSidebarPageItemContext);
|
|
1145
|
+
invariant(pageItemContextProps, "No navigation page item context provided.");
|
|
1278
1146
|
const contextAwareProps = __spreadValues(__spreadValues({}, pageItemContextProps), props);
|
|
1279
1147
|
const {
|
|
1280
1148
|
item,
|
|
@@ -1290,10 +1158,10 @@ function DashboardSidebarPageItem(props) {
|
|
|
1290
1158
|
isSidebarFullyCollapsed = false,
|
|
1291
1159
|
renderNestedNavigation
|
|
1292
1160
|
} = contextAwareProps;
|
|
1293
|
-
const [hoveredMiniSidebarItemId, setHoveredMiniSidebarItemId] =
|
|
1161
|
+
const [hoveredMiniSidebarItemId, setHoveredMiniSidebarItemId] = React16.useState(
|
|
1294
1162
|
null
|
|
1295
1163
|
);
|
|
1296
|
-
const handleClick =
|
|
1164
|
+
const handleClick = React16.useCallback(() => {
|
|
1297
1165
|
onClick(id, item);
|
|
1298
1166
|
}, [id, item, onClick]);
|
|
1299
1167
|
let nestedNavigationCollapseSx = { display: "none" };
|
|
@@ -1318,7 +1186,7 @@ function DashboardSidebarPageItem(props) {
|
|
|
1318
1186
|
const hasExternalHref = href.startsWith("http://") || href.startsWith("https://");
|
|
1319
1187
|
const LinkComponent = LinkComponentProp != null ? LinkComponentProp : hasExternalHref ? "a" : Link2;
|
|
1320
1188
|
const title = getItemTitle(item);
|
|
1321
|
-
const listItem = /* @__PURE__ */
|
|
1189
|
+
const listItem = /* @__PURE__ */ jsxs(
|
|
1322
1190
|
ListItem,
|
|
1323
1191
|
__spreadProps(__spreadValues({}, item.children && isMini ? {
|
|
1324
1192
|
onMouseEnter: () => {
|
|
@@ -1334,7 +1202,7 @@ function DashboardSidebarPageItem(props) {
|
|
|
1334
1202
|
overflowX: "hidden"
|
|
1335
1203
|
},
|
|
1336
1204
|
children: [
|
|
1337
|
-
/* @__PURE__ */
|
|
1205
|
+
/* @__PURE__ */ jsxs(
|
|
1338
1206
|
NavigationListItemButton,
|
|
1339
1207
|
__spreadProps(__spreadValues(__spreadValues({
|
|
1340
1208
|
selected,
|
|
@@ -1355,8 +1223,8 @@ function DashboardSidebarPageItem(props) {
|
|
|
1355
1223
|
onClick: handleClick
|
|
1356
1224
|
}) : {}), {
|
|
1357
1225
|
children: [
|
|
1358
|
-
item.icon || isMini ? /* @__PURE__ */
|
|
1359
|
-
|
|
1226
|
+
item.icon || isMini ? /* @__PURE__ */ jsxs(
|
|
1227
|
+
Box4,
|
|
1360
1228
|
{
|
|
1361
1229
|
sx: isMini ? {
|
|
1362
1230
|
position: "absolute",
|
|
@@ -1365,7 +1233,7 @@ function DashboardSidebarPageItem(props) {
|
|
|
1365
1233
|
transform: "translate(-50%, -50%)"
|
|
1366
1234
|
} : {},
|
|
1367
1235
|
children: [
|
|
1368
|
-
/* @__PURE__ */
|
|
1236
|
+
/* @__PURE__ */ jsxs(
|
|
1369
1237
|
ListItemIcon,
|
|
1370
1238
|
{
|
|
1371
1239
|
sx: {
|
|
@@ -1376,8 +1244,8 @@ function DashboardSidebarPageItem(props) {
|
|
|
1376
1244
|
},
|
|
1377
1245
|
children: [
|
|
1378
1246
|
(_a = item.icon) != null ? _a : null,
|
|
1379
|
-
!item.icon && isMini ? /* @__PURE__ */
|
|
1380
|
-
|
|
1247
|
+
!item.icon && isMini ? /* @__PURE__ */ jsx(
|
|
1248
|
+
Avatar,
|
|
1381
1249
|
{
|
|
1382
1250
|
sx: {
|
|
1383
1251
|
width: LIST_ITEM_ICON_SIZE - 7,
|
|
@@ -1390,8 +1258,8 @@ function DashboardSidebarPageItem(props) {
|
|
|
1390
1258
|
]
|
|
1391
1259
|
}
|
|
1392
1260
|
),
|
|
1393
|
-
isMini ? /* @__PURE__ */
|
|
1394
|
-
|
|
1261
|
+
isMini ? /* @__PURE__ */ jsx(
|
|
1262
|
+
Typography,
|
|
1395
1263
|
{
|
|
1396
1264
|
variant: "caption",
|
|
1397
1265
|
sx: {
|
|
@@ -1413,7 +1281,7 @@ function DashboardSidebarPageItem(props) {
|
|
|
1413
1281
|
]
|
|
1414
1282
|
}
|
|
1415
1283
|
) : null,
|
|
1416
|
-
!isMini ? /* @__PURE__ */
|
|
1284
|
+
!isMini ? /* @__PURE__ */ jsx(
|
|
1417
1285
|
ListItemText,
|
|
1418
1286
|
{
|
|
1419
1287
|
primary: title,
|
|
@@ -1425,19 +1293,19 @@ function DashboardSidebarPageItem(props) {
|
|
|
1425
1293
|
}
|
|
1426
1294
|
) : null,
|
|
1427
1295
|
item.action && !isMini && isSidebarFullyExpanded ? item.action : null,
|
|
1428
|
-
item.children ? /* @__PURE__ */
|
|
1296
|
+
item.children ? /* @__PURE__ */ jsx(ExpandMoreIcon, { sx: nestedNavigationCollapseSx }) : null
|
|
1429
1297
|
]
|
|
1430
1298
|
})
|
|
1431
1299
|
),
|
|
1432
|
-
item.children && isMini ? /* @__PURE__ */
|
|
1433
|
-
|
|
1300
|
+
item.children && isMini ? /* @__PURE__ */ jsx(Grow, { in: id === hoveredMiniSidebarItemId, children: /* @__PURE__ */ jsx(
|
|
1301
|
+
Box4,
|
|
1434
1302
|
{
|
|
1435
1303
|
sx: {
|
|
1436
1304
|
position: "fixed",
|
|
1437
1305
|
left: MINI_DRAWER_WIDTH - 2,
|
|
1438
1306
|
pl: "6px"
|
|
1439
1307
|
},
|
|
1440
|
-
children: /* @__PURE__ */
|
|
1308
|
+
children: /* @__PURE__ */ jsx(
|
|
1441
1309
|
Paper,
|
|
1442
1310
|
{
|
|
1443
1311
|
sx: {
|
|
@@ -1453,9 +1321,9 @@ function DashboardSidebarPageItem(props) {
|
|
|
1453
1321
|
]
|
|
1454
1322
|
})
|
|
1455
1323
|
);
|
|
1456
|
-
return /* @__PURE__ */
|
|
1324
|
+
return /* @__PURE__ */ jsxs(React16.Fragment, { children: [
|
|
1457
1325
|
listItem,
|
|
1458
|
-
item.children && !isMini ? /* @__PURE__ */
|
|
1326
|
+
item.children && !isMini ? /* @__PURE__ */ jsx(Collapse, { in: expanded, timeout: "auto", unmountOnExit: true, children: renderNestedNavigation(item.children) }) : null
|
|
1459
1327
|
] }, id);
|
|
1460
1328
|
}
|
|
1461
1329
|
DashboardSidebarPageItem.propTypes = {
|
|
@@ -1467,54 +1335,51 @@ DashboardSidebarPageItem.propTypes = {
|
|
|
1467
1335
|
* If `true`, the item is disabled.
|
|
1468
1336
|
* @default false
|
|
1469
1337
|
*/
|
|
1470
|
-
disabled:
|
|
1338
|
+
disabled: PropTypes9.bool,
|
|
1471
1339
|
/**
|
|
1472
1340
|
* If `true`, expands any nested navigation in the item, otherwise collapse it.
|
|
1473
1341
|
* @default false
|
|
1474
1342
|
*/
|
|
1475
|
-
expanded:
|
|
1343
|
+
expanded: PropTypes9.bool,
|
|
1476
1344
|
/**
|
|
1477
1345
|
* Link `href` for when the item is rendered as a link.
|
|
1478
1346
|
* @default getItemPath(navigationContext, item)
|
|
1479
1347
|
*/
|
|
1480
|
-
href:
|
|
1348
|
+
href: PropTypes9.string,
|
|
1481
1349
|
/**
|
|
1482
1350
|
* Navigation page item definition.
|
|
1483
1351
|
*/
|
|
1484
|
-
item:
|
|
1485
|
-
action:
|
|
1486
|
-
children:
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
kind:
|
|
1491
|
-
title:
|
|
1352
|
+
item: PropTypes9.shape({
|
|
1353
|
+
action: PropTypes9.node,
|
|
1354
|
+
children: PropTypes9.arrayOf(
|
|
1355
|
+
PropTypes9.oneOfType([
|
|
1356
|
+
PropTypes9.object,
|
|
1357
|
+
PropTypes9.shape({
|
|
1358
|
+
kind: PropTypes9.oneOf(["header"]).isRequired,
|
|
1359
|
+
title: PropTypes9.string.isRequired
|
|
1492
1360
|
}),
|
|
1493
|
-
|
|
1494
|
-
kind:
|
|
1361
|
+
PropTypes9.shape({
|
|
1362
|
+
kind: PropTypes9.oneOf(["divider"]).isRequired
|
|
1495
1363
|
})
|
|
1496
1364
|
]).isRequired
|
|
1497
1365
|
),
|
|
1498
|
-
icon:
|
|
1499
|
-
kind:
|
|
1500
|
-
pattern:
|
|
1501
|
-
segment:
|
|
1502
|
-
title:
|
|
1366
|
+
icon: PropTypes9.node,
|
|
1367
|
+
kind: PropTypes9.oneOf(["page"]),
|
|
1368
|
+
pattern: PropTypes9.string,
|
|
1369
|
+
segment: PropTypes9.string,
|
|
1370
|
+
title: PropTypes9.string
|
|
1503
1371
|
}).isRequired,
|
|
1504
1372
|
/**
|
|
1505
1373
|
* The component used to render the item as a link.
|
|
1506
1374
|
* @default Link
|
|
1507
1375
|
*/
|
|
1508
|
-
LinkComponent:
|
|
1376
|
+
LinkComponent: PropTypes9.elementType,
|
|
1509
1377
|
/**
|
|
1510
1378
|
* Use to apply selected styling.
|
|
1511
1379
|
* @default false
|
|
1512
1380
|
*/
|
|
1513
|
-
selected:
|
|
1381
|
+
selected: PropTypes9.bool
|
|
1514
1382
|
};
|
|
1515
|
-
|
|
1516
|
-
// src/toolpad-core/DashboardLayout/DashboardSidebarSubNavigation.tsx
|
|
1517
|
-
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1518
1383
|
function DashboardSidebarSubNavigationPageItem({
|
|
1519
1384
|
id,
|
|
1520
1385
|
item,
|
|
@@ -1528,11 +1393,11 @@ function DashboardSidebarSubNavigationPageItem({
|
|
|
1528
1393
|
sidebarExpandedWidth,
|
|
1529
1394
|
renderPageItem
|
|
1530
1395
|
}) {
|
|
1531
|
-
const navigationContext =
|
|
1396
|
+
const navigationContext = React16.useContext(NavigationContext);
|
|
1532
1397
|
const activePage = useActivePage();
|
|
1533
1398
|
const isActive = !!activePage && activePage.path === getItemPath(navigationContext, item);
|
|
1534
1399
|
const isSelected = activePage && item.children && isMini ? hasSelectedNavigationChildren(navigationContext, item, activePage.path) : isActive && !item.children;
|
|
1535
|
-
const pageItemContextProps =
|
|
1400
|
+
const pageItemContextProps = React16.useMemo(
|
|
1536
1401
|
() => ({
|
|
1537
1402
|
expanded: isExpanded,
|
|
1538
1403
|
selected: isSelected,
|
|
@@ -1543,7 +1408,7 @@ function DashboardSidebarSubNavigationPageItem({
|
|
|
1543
1408
|
isSidebarFullyCollapsed: isFullyCollapsed,
|
|
1544
1409
|
renderNestedNavigation: () => {
|
|
1545
1410
|
var _a;
|
|
1546
|
-
return /* @__PURE__ */
|
|
1411
|
+
return /* @__PURE__ */ jsx(
|
|
1547
1412
|
DashboardSidebarSubNavigation,
|
|
1548
1413
|
{
|
|
1549
1414
|
subNavigation: (_a = item.children) != null ? _a : [],
|
|
@@ -1569,7 +1434,7 @@ function DashboardSidebarSubNavigationPageItem({
|
|
|
1569
1434
|
sidebarExpandedWidth
|
|
1570
1435
|
]
|
|
1571
1436
|
);
|
|
1572
|
-
return /* @__PURE__ */
|
|
1437
|
+
return /* @__PURE__ */ jsx(DashboardSidebarPageItemContext.Provider, { value: pageItemContextProps, children: renderPageItem ? renderPageItem(item, { mini: isMini }) : /* @__PURE__ */ jsx(DashboardSidebarPageItem, { item }) });
|
|
1573
1438
|
}
|
|
1574
1439
|
function DashboardSidebarSubNavigation({
|
|
1575
1440
|
subNavigation,
|
|
@@ -1583,9 +1448,9 @@ function DashboardSidebarSubNavigation({
|
|
|
1583
1448
|
sidebarExpandedWidth,
|
|
1584
1449
|
renderPageItem
|
|
1585
1450
|
}) {
|
|
1586
|
-
const navigationContext =
|
|
1451
|
+
const navigationContext = React16.useContext(NavigationContext);
|
|
1587
1452
|
const activePage = useActivePage();
|
|
1588
|
-
const initialExpandedItemIds =
|
|
1453
|
+
const initialExpandedItemIds = React16.useMemo(
|
|
1589
1454
|
() => subNavigation.map((navigationItem, navigationItemIndex) => ({
|
|
1590
1455
|
navigationItem,
|
|
1591
1456
|
originalIndex: navigationItemIndex
|
|
@@ -1594,8 +1459,8 @@ function DashboardSidebarSubNavigation({
|
|
|
1594
1459
|
).map(({ originalIndex }) => `page-${depth}-${originalIndex}`),
|
|
1595
1460
|
[activePage, depth, navigationContext, subNavigation]
|
|
1596
1461
|
);
|
|
1597
|
-
const [expandedItemIds, setExpandedItemIds] =
|
|
1598
|
-
const handlePageItemClick =
|
|
1462
|
+
const [expandedItemIds, setExpandedItemIds] = React16.useState(initialExpandedItemIds);
|
|
1463
|
+
const handlePageItemClick = React16.useCallback(
|
|
1599
1464
|
(itemId, item) => {
|
|
1600
1465
|
if (item.children && !isMini) {
|
|
1601
1466
|
setExpandedItemIds(
|
|
@@ -1607,7 +1472,7 @@ function DashboardSidebarSubNavigation({
|
|
|
1607
1472
|
},
|
|
1608
1473
|
[isMini, onLinkClick]
|
|
1609
1474
|
);
|
|
1610
|
-
return /* @__PURE__ */
|
|
1475
|
+
return /* @__PURE__ */ jsx(
|
|
1611
1476
|
List,
|
|
1612
1477
|
{
|
|
1613
1478
|
sx: {
|
|
@@ -1620,7 +1485,7 @@ function DashboardSidebarSubNavigation({
|
|
|
1620
1485
|
},
|
|
1621
1486
|
children: subNavigation.map((navigationItem, navigationItemIndex) => {
|
|
1622
1487
|
if (navigationItem.kind === "header") {
|
|
1623
|
-
return /* @__PURE__ */
|
|
1488
|
+
return /* @__PURE__ */ jsx(
|
|
1624
1489
|
ListSubheader,
|
|
1625
1490
|
{
|
|
1626
1491
|
sx: __spreadProps(__spreadValues({
|
|
@@ -1642,8 +1507,8 @@ function DashboardSidebarSubNavigation({
|
|
|
1642
1507
|
}
|
|
1643
1508
|
if (navigationItem.kind === "divider") {
|
|
1644
1509
|
const nextItem = subNavigation[navigationItemIndex + 1];
|
|
1645
|
-
return /* @__PURE__ */
|
|
1646
|
-
|
|
1510
|
+
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
1511
|
+
Divider,
|
|
1647
1512
|
{
|
|
1648
1513
|
sx: __spreadValues({
|
|
1649
1514
|
borderBottomWidth: 2,
|
|
@@ -1655,7 +1520,7 @@ function DashboardSidebarSubNavigation({
|
|
|
1655
1520
|
) }, `divider-${depth}-${navigationItemIndex}`);
|
|
1656
1521
|
}
|
|
1657
1522
|
const pageItemId = `page-${depth}-${navigationItemIndex}`;
|
|
1658
|
-
return /* @__PURE__ */
|
|
1523
|
+
return /* @__PURE__ */ jsx(
|
|
1659
1524
|
DashboardSidebarSubNavigationPageItem,
|
|
1660
1525
|
{
|
|
1661
1526
|
id: pageItemId,
|
|
@@ -1676,9 +1541,6 @@ function DashboardSidebarSubNavigation({
|
|
|
1676
1541
|
}
|
|
1677
1542
|
);
|
|
1678
1543
|
}
|
|
1679
|
-
|
|
1680
|
-
// src/toolpad-core/DashboardLayout/DashboardLayout.tsx
|
|
1681
|
-
import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1682
1544
|
function DashboardLayout(props) {
|
|
1683
1545
|
var _a, _b;
|
|
1684
1546
|
const {
|
|
@@ -1699,7 +1561,7 @@ function DashboardLayout(props) {
|
|
|
1699
1561
|
"The navigation prop in the DashboardLayout component is deprecated and will eventually be removed. Set the navigation prop in the AppProvider instead (https://mui.com/toolpad/core/react-app-provider/#navigation)."
|
|
1700
1562
|
);
|
|
1701
1563
|
}
|
|
1702
|
-
const theme =
|
|
1564
|
+
const theme = useTheme$1();
|
|
1703
1565
|
const navigationContext = React16.useContext(NavigationContext);
|
|
1704
1566
|
const appWindowContext = React16.useContext(WindowContext);
|
|
1705
1567
|
const navigation = navigationProp != null ? navigationProp : navigationContext;
|
|
@@ -1803,9 +1665,9 @@ function DashboardLayout(props) {
|
|
|
1803
1665
|
const getDrawerContent = React16.useCallback(
|
|
1804
1666
|
(isMini, viewport) => {
|
|
1805
1667
|
var _a2;
|
|
1806
|
-
return /* @__PURE__ */
|
|
1807
|
-
/* @__PURE__ */
|
|
1808
|
-
/* @__PURE__ */
|
|
1668
|
+
return /* @__PURE__ */ jsxs(React16.Fragment, { children: [
|
|
1669
|
+
/* @__PURE__ */ jsx(Toolbar2, {}),
|
|
1670
|
+
/* @__PURE__ */ jsxs(
|
|
1809
1671
|
Box4,
|
|
1810
1672
|
{
|
|
1811
1673
|
component: "nav",
|
|
@@ -1821,7 +1683,7 @@ function DashboardLayout(props) {
|
|
|
1821
1683
|
pt: ((_a2 = navigation[0]) == null ? void 0 : _a2.kind) === "header" && !isMini ? 0 : 2
|
|
1822
1684
|
}, hasDrawerTransitions ? getDrawerSxTransitionMixin(isNavigationFullyExpanded, "padding") : {}),
|
|
1823
1685
|
children: [
|
|
1824
|
-
/* @__PURE__ */
|
|
1686
|
+
/* @__PURE__ */ jsx(
|
|
1825
1687
|
DashboardSidebarSubNavigation,
|
|
1826
1688
|
{
|
|
1827
1689
|
subNavigation: navigation,
|
|
@@ -1834,7 +1696,7 @@ function DashboardLayout(props) {
|
|
|
1834
1696
|
renderPageItem
|
|
1835
1697
|
}
|
|
1836
1698
|
),
|
|
1837
|
-
SidebarFooterSlot ? /* @__PURE__ */
|
|
1699
|
+
SidebarFooterSlot ? /* @__PURE__ */ jsx(SidebarFooterSlot, __spreadValues({ mini: isMini }, slotProps == null ? void 0 : slotProps.sidebarFooter)) : null
|
|
1838
1700
|
]
|
|
1839
1701
|
}
|
|
1840
1702
|
)
|
|
@@ -1870,7 +1732,7 @@ function DashboardLayout(props) {
|
|
|
1870
1732
|
},
|
|
1871
1733
|
[isNavigationExpanded, sidebarExpandedWidth]
|
|
1872
1734
|
);
|
|
1873
|
-
return /* @__PURE__ */
|
|
1735
|
+
return /* @__PURE__ */ jsxs(
|
|
1874
1736
|
Box4,
|
|
1875
1737
|
{
|
|
1876
1738
|
sx: __spreadValues({
|
|
@@ -1881,9 +1743,9 @@ function DashboardLayout(props) {
|
|
|
1881
1743
|
width: "100vw"
|
|
1882
1744
|
}, sx),
|
|
1883
1745
|
children: [
|
|
1884
|
-
/* @__PURE__ */
|
|
1885
|
-
!hideNavigation ? /* @__PURE__ */
|
|
1886
|
-
/* @__PURE__ */
|
|
1746
|
+
/* @__PURE__ */ jsx(HeaderSlot, __spreadValues({}, headerSlotProps)),
|
|
1747
|
+
!hideNavigation ? /* @__PURE__ */ jsxs(React16.Fragment, { children: [
|
|
1748
|
+
/* @__PURE__ */ jsx(
|
|
1887
1749
|
Drawer,
|
|
1888
1750
|
{
|
|
1889
1751
|
container: appWindowContext == null ? void 0 : appWindowContext.document.body,
|
|
@@ -1904,7 +1766,7 @@ function DashboardLayout(props) {
|
|
|
1904
1766
|
children: getDrawerContent(false, "phone")
|
|
1905
1767
|
}
|
|
1906
1768
|
),
|
|
1907
|
-
/* @__PURE__ */
|
|
1769
|
+
/* @__PURE__ */ jsx(
|
|
1908
1770
|
Drawer,
|
|
1909
1771
|
{
|
|
1910
1772
|
variant: "permanent",
|
|
@@ -1918,7 +1780,7 @@ function DashboardLayout(props) {
|
|
|
1918
1780
|
children: getDrawerContent(isMobileMini, "tablet")
|
|
1919
1781
|
}
|
|
1920
1782
|
),
|
|
1921
|
-
/* @__PURE__ */
|
|
1783
|
+
/* @__PURE__ */ jsx(
|
|
1922
1784
|
Drawer,
|
|
1923
1785
|
{
|
|
1924
1786
|
variant: "permanent",
|
|
@@ -1929,7 +1791,7 @@ function DashboardLayout(props) {
|
|
|
1929
1791
|
}
|
|
1930
1792
|
)
|
|
1931
1793
|
] }) : null,
|
|
1932
|
-
/* @__PURE__ */
|
|
1794
|
+
/* @__PURE__ */ jsxs(
|
|
1933
1795
|
Box4,
|
|
1934
1796
|
{
|
|
1935
1797
|
sx: {
|
|
@@ -1939,8 +1801,8 @@ function DashboardLayout(props) {
|
|
|
1939
1801
|
minWidth: 0
|
|
1940
1802
|
},
|
|
1941
1803
|
children: [
|
|
1942
|
-
/* @__PURE__ */
|
|
1943
|
-
/* @__PURE__ */
|
|
1804
|
+
/* @__PURE__ */ jsx(Toolbar2, { sx: { displayPrint: "none" } }),
|
|
1805
|
+
/* @__PURE__ */ jsx(
|
|
1944
1806
|
Box4,
|
|
1945
1807
|
{
|
|
1946
1808
|
component: "main",
|
|
@@ -2116,27 +1978,7 @@ DashboardLayout.propTypes = {
|
|
|
2116
1978
|
PropTypes9.object
|
|
2117
1979
|
])
|
|
2118
1980
|
};
|
|
2119
|
-
|
|
2120
|
-
// src/toolpad-core/PageContainer/PageContainer.tsx
|
|
2121
|
-
import PropTypes12 from "prop-types";
|
|
2122
|
-
import Box5 from "@mui/material/Box";
|
|
2123
|
-
import Container from "@mui/material/Container";
|
|
2124
|
-
import Stack8 from "@mui/material/Stack";
|
|
2125
|
-
|
|
2126
|
-
// src/toolpad-core/PageContainer/PageHeader.tsx
|
|
2127
|
-
import PropTypes11 from "prop-types";
|
|
2128
|
-
import Breadcrumbs from "@mui/material/Breadcrumbs";
|
|
2129
|
-
import Link4 from "@mui/material/Link";
|
|
2130
|
-
import Stack7 from "@mui/material/Stack";
|
|
2131
|
-
import Typography4 from "@mui/material/Typography";
|
|
2132
|
-
import useSlotProps from "@mui/utils/useSlotProps";
|
|
2133
|
-
import { styled as styled5 } from "@mui/material";
|
|
2134
|
-
|
|
2135
|
-
// src/toolpad-core/PageContainer/PageHeaderToolbar.tsx
|
|
2136
|
-
import PropTypes10 from "prop-types";
|
|
2137
|
-
import { styled as styled4 } from "@mui/material";
|
|
2138
|
-
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
2139
|
-
var PageHeaderToolbarRoot = styled4("div")(({ theme }) => ({
|
|
1981
|
+
var PageHeaderToolbarRoot = styled("div")(({ theme }) => ({
|
|
2140
1982
|
display: "flex",
|
|
2141
1983
|
flexDirection: "row",
|
|
2142
1984
|
gap: theme.spacing(1),
|
|
@@ -2144,7 +1986,7 @@ var PageHeaderToolbarRoot = styled4("div")(({ theme }) => ({
|
|
|
2144
1986
|
marginLeft: "auto"
|
|
2145
1987
|
}));
|
|
2146
1988
|
function PageHeaderToolbar(props) {
|
|
2147
|
-
return /* @__PURE__ */
|
|
1989
|
+
return /* @__PURE__ */ jsx(PageHeaderToolbarRoot, __spreadValues({}, props));
|
|
2148
1990
|
}
|
|
2149
1991
|
PageHeaderToolbar.propTypes = {
|
|
2150
1992
|
// ┌────────────────────────────── Warning ──────────────────────────────┐
|
|
@@ -2154,12 +1996,9 @@ PageHeaderToolbar.propTypes = {
|
|
|
2154
1996
|
/**
|
|
2155
1997
|
* @ignore
|
|
2156
1998
|
*/
|
|
2157
|
-
children:
|
|
1999
|
+
children: PropTypes9.node
|
|
2158
2000
|
};
|
|
2159
|
-
|
|
2160
|
-
// src/toolpad-core/PageContainer/PageHeader.tsx
|
|
2161
|
-
import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2162
|
-
var PageContentHeader = styled5("div")(({ theme }) => ({
|
|
2001
|
+
var PageContentHeader = styled("div")(({ theme }) => ({
|
|
2163
2002
|
display: "flex",
|
|
2164
2003
|
flexDirection: "row",
|
|
2165
2004
|
justifyContent: "space-between",
|
|
@@ -2178,9 +2017,9 @@ function PageHeader(props) {
|
|
|
2178
2017
|
externalSlotProps: (_e = props == null ? void 0 : props.slotProps) == null ? void 0 : _e.toolbar,
|
|
2179
2018
|
additionalProps: {}
|
|
2180
2019
|
});
|
|
2181
|
-
return /* @__PURE__ */
|
|
2182
|
-
/* @__PURE__ */
|
|
2183
|
-
return item.path ? /* @__PURE__ */
|
|
2020
|
+
return /* @__PURE__ */ jsxs(Stack, { children: [
|
|
2021
|
+
/* @__PURE__ */ jsx(Breadcrumbs, { "aria-label": "breadcrumb", children: resolvedBreadcrumbs ? resolvedBreadcrumbs.map((item, index) => {
|
|
2022
|
+
return item.path ? /* @__PURE__ */ jsx(
|
|
2184
2023
|
Link4,
|
|
2185
2024
|
{
|
|
2186
2025
|
component: Link2,
|
|
@@ -2190,11 +2029,11 @@ function PageHeader(props) {
|
|
|
2190
2029
|
children: getItemTitle(item)
|
|
2191
2030
|
},
|
|
2192
2031
|
index
|
|
2193
|
-
) : /* @__PURE__ */
|
|
2032
|
+
) : /* @__PURE__ */ jsx(Typography, { color: "text.primary", children: getItemTitle(item) }, index);
|
|
2194
2033
|
}) : null }),
|
|
2195
|
-
/* @__PURE__ */
|
|
2196
|
-
resolvedTitle ? /* @__PURE__ */
|
|
2197
|
-
/* @__PURE__ */
|
|
2034
|
+
/* @__PURE__ */ jsxs(PageContentHeader, { children: [
|
|
2035
|
+
resolvedTitle ? /* @__PURE__ */ jsx(Typography, { variant: "h4", children: resolvedTitle }) : null,
|
|
2036
|
+
/* @__PURE__ */ jsx(ToolbarComponent, __spreadValues({}, toolbarSlotProps))
|
|
2198
2037
|
] })
|
|
2199
2038
|
] });
|
|
2200
2039
|
}
|
|
@@ -2206,41 +2045,38 @@ PageHeader.propTypes = {
|
|
|
2206
2045
|
/**
|
|
2207
2046
|
* The breadcrumbs of the page. Leave blank to use the active page breadcrumbs.
|
|
2208
2047
|
*/
|
|
2209
|
-
breadcrumbs:
|
|
2210
|
-
|
|
2211
|
-
path:
|
|
2212
|
-
title:
|
|
2048
|
+
breadcrumbs: PropTypes9.arrayOf(
|
|
2049
|
+
PropTypes9.shape({
|
|
2050
|
+
path: PropTypes9.string,
|
|
2051
|
+
title: PropTypes9.string.isRequired
|
|
2213
2052
|
})
|
|
2214
2053
|
),
|
|
2215
2054
|
/**
|
|
2216
2055
|
* The props used for each slot inside.
|
|
2217
2056
|
*/
|
|
2218
|
-
slotProps:
|
|
2219
|
-
toolbar:
|
|
2220
|
-
children:
|
|
2057
|
+
slotProps: PropTypes9.shape({
|
|
2058
|
+
toolbar: PropTypes9.shape({
|
|
2059
|
+
children: PropTypes9.node
|
|
2221
2060
|
}).isRequired
|
|
2222
2061
|
}),
|
|
2223
2062
|
/**
|
|
2224
2063
|
* The components used for each slot inside.
|
|
2225
2064
|
*/
|
|
2226
|
-
slots:
|
|
2227
|
-
toolbar:
|
|
2065
|
+
slots: PropTypes9.shape({
|
|
2066
|
+
toolbar: PropTypes9.elementType
|
|
2228
2067
|
}),
|
|
2229
2068
|
/**
|
|
2230
2069
|
* The title of the page. Leave blank to use the active page title.
|
|
2231
2070
|
*/
|
|
2232
|
-
title:
|
|
2071
|
+
title: PropTypes9.string
|
|
2233
2072
|
};
|
|
2234
|
-
|
|
2235
|
-
// src/toolpad-core/PageContainer/PageContainer.tsx
|
|
2236
|
-
import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2237
2073
|
function PageContainer(props) {
|
|
2238
2074
|
var _b;
|
|
2239
2075
|
const _a = props, { children, breadcrumbs, slots, slotProps, title } = _a, rest = __objRest(_a, ["children", "breadcrumbs", "slots", "slotProps", "title"]);
|
|
2240
2076
|
const PageHeaderSlot = (_b = slots == null ? void 0 : slots.header) != null ? _b : PageHeader;
|
|
2241
|
-
return /* @__PURE__ */
|
|
2242
|
-
/* @__PURE__ */
|
|
2243
|
-
/* @__PURE__ */
|
|
2077
|
+
return /* @__PURE__ */ jsx(Container, __spreadProps(__spreadValues({}, rest), { sx: __spreadValues({ flex: 1, display: "flex", flexDirection: "column" }, rest.sx), children: /* @__PURE__ */ jsxs(Stack, { sx: { flex: 1, my: 2 }, spacing: 2, children: [
|
|
2078
|
+
/* @__PURE__ */ jsx(PageHeaderSlot, __spreadValues({ title, breadcrumbs }, slotProps == null ? void 0 : slotProps.header)),
|
|
2079
|
+
/* @__PURE__ */ jsx(Box4, { sx: { flex: 1, display: "flex", flexDirection: "column" }, children })
|
|
2244
2080
|
] }) }));
|
|
2245
2081
|
}
|
|
2246
2082
|
PageContainer.propTypes = {
|
|
@@ -2251,75 +2087,54 @@ PageContainer.propTypes = {
|
|
|
2251
2087
|
/**
|
|
2252
2088
|
* The breadcrumbs of the page. Leave blank to use the active page breadcrumbs.
|
|
2253
2089
|
*/
|
|
2254
|
-
breadcrumbs:
|
|
2255
|
-
|
|
2256
|
-
path:
|
|
2257
|
-
title:
|
|
2090
|
+
breadcrumbs: PropTypes9.arrayOf(
|
|
2091
|
+
PropTypes9.shape({
|
|
2092
|
+
path: PropTypes9.string,
|
|
2093
|
+
title: PropTypes9.string.isRequired
|
|
2258
2094
|
})
|
|
2259
2095
|
),
|
|
2260
2096
|
/**
|
|
2261
2097
|
* @ignore
|
|
2262
2098
|
*/
|
|
2263
|
-
children:
|
|
2099
|
+
children: PropTypes9.node,
|
|
2264
2100
|
/**
|
|
2265
2101
|
* The props used for each slot inside.
|
|
2266
2102
|
*/
|
|
2267
|
-
slotProps:
|
|
2268
|
-
header:
|
|
2269
|
-
breadcrumbs:
|
|
2270
|
-
|
|
2271
|
-
path:
|
|
2272
|
-
title:
|
|
2103
|
+
slotProps: PropTypes9.shape({
|
|
2104
|
+
header: PropTypes9.shape({
|
|
2105
|
+
breadcrumbs: PropTypes9.arrayOf(
|
|
2106
|
+
PropTypes9.shape({
|
|
2107
|
+
path: PropTypes9.string,
|
|
2108
|
+
title: PropTypes9.string.isRequired
|
|
2273
2109
|
})
|
|
2274
2110
|
),
|
|
2275
|
-
slotProps:
|
|
2276
|
-
toolbar:
|
|
2111
|
+
slotProps: PropTypes9.shape({
|
|
2112
|
+
toolbar: PropTypes9.object.isRequired
|
|
2277
2113
|
}),
|
|
2278
|
-
slots:
|
|
2279
|
-
toolbar:
|
|
2114
|
+
slots: PropTypes9.shape({
|
|
2115
|
+
toolbar: PropTypes9.elementType
|
|
2280
2116
|
}),
|
|
2281
|
-
title:
|
|
2117
|
+
title: PropTypes9.string
|
|
2282
2118
|
}).isRequired
|
|
2283
2119
|
}),
|
|
2284
2120
|
/**
|
|
2285
2121
|
* The components used for each slot inside.
|
|
2286
2122
|
*/
|
|
2287
|
-
slots:
|
|
2288
|
-
header:
|
|
2123
|
+
slots: PropTypes9.shape({
|
|
2124
|
+
header: PropTypes9.elementType
|
|
2289
2125
|
}),
|
|
2290
2126
|
/**
|
|
2291
2127
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
2292
2128
|
*/
|
|
2293
|
-
sx:
|
|
2294
|
-
|
|
2295
|
-
|
|
2296
|
-
|
|
2129
|
+
sx: PropTypes9.oneOfType([
|
|
2130
|
+
PropTypes9.arrayOf(PropTypes9.oneOfType([PropTypes9.func, PropTypes9.object, PropTypes9.bool])),
|
|
2131
|
+
PropTypes9.func,
|
|
2132
|
+
PropTypes9.object
|
|
2297
2133
|
]),
|
|
2298
2134
|
/**
|
|
2299
2135
|
* The title of the page. Leave blank to use the active page title.
|
|
2300
2136
|
*/
|
|
2301
|
-
title:
|
|
2137
|
+
title: PropTypes9.string
|
|
2302
2138
|
};
|
|
2303
2139
|
|
|
2304
|
-
export {
|
|
2305
|
-
useNotifications,
|
|
2306
|
-
AlertDialog,
|
|
2307
|
-
ConfirmDialog,
|
|
2308
|
-
PromptDialog,
|
|
2309
|
-
useDialogs,
|
|
2310
|
-
SignInButton,
|
|
2311
|
-
SignOutButton,
|
|
2312
|
-
AccountPreview,
|
|
2313
|
-
AccountPopoverHeader,
|
|
2314
|
-
AccountPopoverFooter,
|
|
2315
|
-
Account,
|
|
2316
|
-
ThemeSwitcher,
|
|
2317
|
-
ToolbarActions,
|
|
2318
|
-
DashboardHeader,
|
|
2319
|
-
useActivePage,
|
|
2320
|
-
DashboardSidebarPageItem,
|
|
2321
|
-
DashboardLayout,
|
|
2322
|
-
PageHeaderToolbar,
|
|
2323
|
-
PageHeader,
|
|
2324
|
-
PageContainer
|
|
2325
|
-
};
|
|
2140
|
+
export { Account, AccountPopoverFooter, AccountPopoverHeader, AccountPreview, AlertDialog, ConfirmDialog, DashboardHeader, DashboardLayout, DashboardSidebarPageItem, PageContainer, PageHeader, PageHeaderToolbar, PromptDialog, SignInButton, SignOutButton, ThemeSwitcher, ToolbarActions, useActivePage, useDialogs, useNotifications };
|