@matteoaliano/forest-ui 1.1.1 → 1.2.1
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/bin/sync.mjs +15 -1
- package/dist/{chunk-BCOHH5MJ.mjs → chunk-4PNVZETQ.mjs} +63 -18
- package/dist/chunk-4PNVZETQ.mjs.map +1 -0
- package/dist/index.d.mts +155 -32
- package/dist/index.d.ts +155 -32
- package/dist/index.js +163 -129
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +306 -317
- package/dist/index.mjs.map +1 -1
- package/dist/theme.js +62 -17
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +1 -1
- package/package.json +2 -2
- package/skills/forest-alkemy-plus/SKILL.md +3 -2
- package/skills/forest-alkemy-plus/references/components.md +4 -4
- package/skills/forest-alkemy-plus/references/patterns.md +3 -3
- package/dist/chunk-BCOHH5MJ.mjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -56,7 +56,7 @@ __export(src_exports, {
|
|
|
56
56
|
BarPlot: () => import_BarChart3.BarPlot,
|
|
57
57
|
BottomNavigation: () => import_BottomNavigation.default,
|
|
58
58
|
BottomNavigationAction: () => import_BottomNavigationAction.default,
|
|
59
|
-
Box: () =>
|
|
59
|
+
Box: () => import_Box4.default,
|
|
60
60
|
Breadcrumbs: () => import_Breadcrumbs.default,
|
|
61
61
|
Button: () => Button,
|
|
62
62
|
ButtonBase: () => import_ButtonBase.default,
|
|
@@ -94,7 +94,7 @@ __export(src_exports, {
|
|
|
94
94
|
CircularProgress: () => import_CircularProgress.default,
|
|
95
95
|
ClickAwayListener: () => import_ClickAwayListener.default,
|
|
96
96
|
Collapse: () => import_Collapse.default,
|
|
97
|
-
Container: () =>
|
|
97
|
+
Container: () => import_Container.default,
|
|
98
98
|
ContinuousColorLegend: () => import_ChartsLegend3.ContinuousColorLegend,
|
|
99
99
|
DataGrid: () => import_x_data_grid.DataGrid,
|
|
100
100
|
DatePicker: () => DatePicker,
|
|
@@ -123,7 +123,7 @@ __export(src_exports, {
|
|
|
123
123
|
GaugeValueArc: () => import_Gauge3.GaugeValueArc,
|
|
124
124
|
GaugeValueText: () => import_Gauge3.GaugeValueText,
|
|
125
125
|
GlobalStyles: () => import_GlobalStyles.default,
|
|
126
|
-
Grid: () =>
|
|
126
|
+
Grid: () => import_Grid.default,
|
|
127
127
|
Grow: () => import_Grow.default,
|
|
128
128
|
HighlightedProvider: () => import_context.HighlightedProvider,
|
|
129
129
|
IconButton: () => IconButton2,
|
|
@@ -165,7 +165,7 @@ __export(src_exports, {
|
|
|
165
165
|
Page: () => Page,
|
|
166
166
|
Pagination: () => import_Pagination.default,
|
|
167
167
|
PaginationItem: () => import_PaginationItem.default,
|
|
168
|
-
Paper: () =>
|
|
168
|
+
Paper: () => import_Paper.default,
|
|
169
169
|
PieArc: () => import_PieChart3.PieArc,
|
|
170
170
|
PieArcLabel: () => import_PieChart3.PieArcLabel,
|
|
171
171
|
PieArcLabelPlot: () => import_PieChart3.PieArcLabelPlot,
|
|
@@ -175,7 +175,7 @@ __export(src_exports, {
|
|
|
175
175
|
PiecewiseColorLegend: () => import_ChartsLegend4.PiecewiseColorLegend,
|
|
176
176
|
Popover: () => Popover,
|
|
177
177
|
Popper: () => import_Popper.default,
|
|
178
|
-
Portal: () =>
|
|
178
|
+
Portal: () => import_Portal.default,
|
|
179
179
|
Radio: () => import_Radio.default,
|
|
180
180
|
RadioGroup: () => import_RadioGroup.default,
|
|
181
181
|
Rating: () => import_Rating.default,
|
|
@@ -196,7 +196,7 @@ __export(src_exports, {
|
|
|
196
196
|
SpeedDial: () => import_SpeedDial.default,
|
|
197
197
|
SpeedDialAction: () => import_SpeedDialAction.default,
|
|
198
198
|
SpeedDialIcon: () => import_SpeedDialIcon.default,
|
|
199
|
-
Stack: () =>
|
|
199
|
+
Stack: () => import_Stack.default,
|
|
200
200
|
Step: () => import_Step.default,
|
|
201
201
|
StepButton: () => import_StepButton.default,
|
|
202
202
|
StepConnector: () => import_StepConnector.default,
|
|
@@ -206,7 +206,7 @@ __export(src_exports, {
|
|
|
206
206
|
Stepper: () => import_Stepper.default,
|
|
207
207
|
SvgIcon: () => import_SvgIcon.default,
|
|
208
208
|
SwipeableDrawer: () => import_SwipeableDrawer.default,
|
|
209
|
-
Switch: () =>
|
|
209
|
+
Switch: () => import_Switch.default,
|
|
210
210
|
Tab: () => import_Tab.default,
|
|
211
211
|
TabScrollButton: () => import_TabScrollButton.default,
|
|
212
212
|
Table: () => import_Table.default,
|
|
@@ -756,6 +756,20 @@ function buildComponents(tokens2) {
|
|
|
756
756
|
borderTopRightRadius: radius4.md,
|
|
757
757
|
opacity: 0.75
|
|
758
758
|
},
|
|
759
|
+
// Unified disabled treatment across the button family (Button,
|
|
760
|
+
// IconButton, Fab, ButtonGroup, ToggleButton): transparent face,
|
|
761
|
+
// disabled border, disabled text — matching the outlined
|
|
762
|
+
// IconButton reference. Contained's fill is dropped and the bevel
|
|
763
|
+
// geometry re-asserted (MUI's outlined disabled `border: 1px`
|
|
764
|
+
// shorthand would otherwise flatten it).
|
|
765
|
+
"&.Mui-disabled": {
|
|
766
|
+
backgroundColor: "transparent",
|
|
767
|
+
borderColor: border4.disabled,
|
|
768
|
+
borderTopWidth: 1,
|
|
769
|
+
borderRightWidth: 1,
|
|
770
|
+
borderLeftWidth: 1,
|
|
771
|
+
borderBottomWidth: 4
|
|
772
|
+
},
|
|
759
773
|
"@media (prefers-reduced-motion: reduce)": {
|
|
760
774
|
transition: "none",
|
|
761
775
|
"&::before": { display: "none" }
|
|
@@ -797,6 +811,13 @@ function buildComponents(tokens2) {
|
|
|
797
811
|
"&.MuiButtonGroup-contained .MuiButtonGroup-grouped:not(.Mui-disabled)": {
|
|
798
812
|
borderColor: fg4.tertiary
|
|
799
813
|
},
|
|
814
|
+
// Disabled grouped children: MUI's per-position grouped-contained
|
|
815
|
+
// border wins over the child Button's own .Mui-disabled rule on the
|
|
816
|
+
// first/middle buttons — pin the unified disabled border here so the
|
|
817
|
+
// whole group matches the standalone disabled Button.
|
|
818
|
+
"&.MuiButtonGroup-contained .MuiButtonGroup-grouped.Mui-disabled": {
|
|
819
|
+
borderColor: border4.disabled
|
|
820
|
+
},
|
|
800
821
|
// outlined group → the outlined-Button look (outlinedFill), including
|
|
801
822
|
// its lightened hover sweep (the forced-contained children would
|
|
802
823
|
// otherwise sweep at full currentColor strength).
|
|
@@ -861,6 +882,13 @@ function buildComponents(tokens2) {
|
|
|
861
882
|
},
|
|
862
883
|
"&.ForestIconButton": {
|
|
863
884
|
...bevel3D,
|
|
885
|
+
// Square 32×32 with border-box so the faux-3D bevel (1px top + 4px
|
|
886
|
+
// bottom, 1px left/right) is absorbed rather than added on top —
|
|
887
|
+
// otherwise it rendered a 37×34 control instead of matching the
|
|
888
|
+
// standalone Button's 32px height.
|
|
889
|
+
height: 32,
|
|
890
|
+
width: 32,
|
|
891
|
+
boxSizing: "border-box",
|
|
864
892
|
boxShadow: tokenShadows.xs,
|
|
865
893
|
"&:focus-visible": {
|
|
866
894
|
boxShadow: focusRings4.brandShadowXs
|
|
@@ -898,15 +926,13 @@ function buildComponents(tokens2) {
|
|
|
898
926
|
filter: "brightness(0.97)"
|
|
899
927
|
}
|
|
900
928
|
},
|
|
901
|
-
//
|
|
902
|
-
//
|
|
903
|
-
//
|
|
904
|
-
//
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
},
|
|
909
|
-
"&.ForestIconButton-outlined.Mui-disabled": {
|
|
929
|
+
// Unified disabled treatment for both variants: transparent face,
|
|
930
|
+
// disabled border, disabled icon — bevel geometry retained. This is
|
|
931
|
+
// the reference the rest of the button family matches. The two-class
|
|
932
|
+
// selector out-specifies the single-class variant faces so contained's
|
|
933
|
+
// fill is dropped.
|
|
934
|
+
"&.ForestIconButton.Mui-disabled": {
|
|
935
|
+
backgroundColor: "transparent",
|
|
910
936
|
color: (theme.vars || theme).palette.action.disabled,
|
|
911
937
|
borderColor: border4.disabled
|
|
912
938
|
}
|
|
@@ -973,6 +999,13 @@ function buildComponents(tokens2) {
|
|
|
973
999
|
"&:focus-visible": {
|
|
974
1000
|
boxShadow: focusRings4.brandShadowSm
|
|
975
1001
|
},
|
|
1002
|
+
// Same unified disabled treatment as Button/IconButton: drop the
|
|
1003
|
+
// contained fill for a transparent, disabled-bordered face.
|
|
1004
|
+
"&.Mui-disabled": {
|
|
1005
|
+
backgroundColor: "transparent",
|
|
1006
|
+
borderColor: border4.disabled,
|
|
1007
|
+
color: (theme.vars || theme).palette.action.disabled
|
|
1008
|
+
},
|
|
976
1009
|
"@media (prefers-reduced-motion: reduce)": {
|
|
977
1010
|
transition: "none",
|
|
978
1011
|
"&::before": { display: "none" }
|
|
@@ -1262,7 +1295,19 @@ function buildComponents(tokens2) {
|
|
|
1262
1295
|
root: {
|
|
1263
1296
|
width: 44,
|
|
1264
1297
|
height: 24,
|
|
1265
|
-
padding: 0
|
|
1298
|
+
padding: 0,
|
|
1299
|
+
// MUI's `size="small"` variant only half-applies here: the theme pins
|
|
1300
|
+
// the track at the wide 44px medium geometry, but MUI still shrinks the
|
|
1301
|
+
// thumb (16px), bumps switchBase padding (4px), and cuts the checked
|
|
1302
|
+
// travel to 16px — leaving the thumb parked mid-track. Forest ships a
|
|
1303
|
+
// single calibrated 24px switch, so neutralize `small` back to it.
|
|
1304
|
+
"&.MuiSwitch-sizeSmall": {
|
|
1305
|
+
"& .MuiSwitch-switchBase": {
|
|
1306
|
+
padding: 2,
|
|
1307
|
+
"&.Mui-checked": { transform: "translateX(20px)" }
|
|
1308
|
+
},
|
|
1309
|
+
"& .MuiSwitch-thumb": { width: 20, height: 20 }
|
|
1310
|
+
}
|
|
1266
1311
|
},
|
|
1267
1312
|
switchBase: {
|
|
1268
1313
|
padding: 2,
|
|
@@ -1356,16 +1401,16 @@ function buildComponents(tokens2) {
|
|
|
1356
1401
|
borderTopRightRadius: radius4.md
|
|
1357
1402
|
}
|
|
1358
1403
|
},
|
|
1359
|
-
// Disabled parity with the
|
|
1360
|
-
// disabled fg, bevel geometry retained. MUI's own
|
|
1361
|
-
// only swaps color and border-shorthands the bevel
|
|
1362
|
-
// with .Mui-selected at (0,2,0) — so this block sits
|
|
1363
|
-
// to win both.
|
|
1404
|
+
// Disabled parity with the rest of the button family: transparent
|
|
1405
|
+
// face, disabled border + fg, bevel geometry retained. MUI's own
|
|
1406
|
+
// .Mui-disabled rule only swaps color and border-shorthands the bevel
|
|
1407
|
+
// away — and ties with .Mui-selected at (0,2,0) — so this block sits
|
|
1408
|
+
// AFTER selected to win both.
|
|
1364
1409
|
"&.Mui-disabled": {
|
|
1365
|
-
backgroundColor:
|
|
1410
|
+
backgroundColor: "transparent",
|
|
1366
1411
|
color: (theme.vars || theme).palette.action.disabled,
|
|
1367
1412
|
borderStyle: "solid",
|
|
1368
|
-
borderColor:
|
|
1413
|
+
borderColor: border4.disabled,
|
|
1369
1414
|
borderTopWidth: 1,
|
|
1370
1415
|
borderRightWidth: 1,
|
|
1371
1416
|
borderLeftWidth: 1,
|
|
@@ -4399,10 +4444,6 @@ function MultiSelect({
|
|
|
4399
4444
|
|
|
4400
4445
|
// src/components/Switch/index.tsx
|
|
4401
4446
|
var import_Switch = __toESM(require("@mui/material/Switch"));
|
|
4402
|
-
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
4403
|
-
function Switch(props) {
|
|
4404
|
-
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Switch.default, { ...props });
|
|
4405
|
-
}
|
|
4406
4447
|
|
|
4407
4448
|
// src/components/TextField/index.tsx
|
|
4408
4449
|
var import_TextField = __toESM(require("@mui/material/TextField"));
|
|
@@ -4414,7 +4455,7 @@ var import_InputAdornment = __toESM(require("@mui/material/InputAdornment"));
|
|
|
4414
4455
|
var import_IconButton = __toESM(require("@mui/material/IconButton"));
|
|
4415
4456
|
var import_Search = __toESM(require("@mui/icons-material/Search"));
|
|
4416
4457
|
var import_Clear = __toESM(require("@mui/icons-material/Clear"));
|
|
4417
|
-
var
|
|
4458
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
4418
4459
|
function Search({
|
|
4419
4460
|
value: controlledValue,
|
|
4420
4461
|
onChange,
|
|
@@ -4438,7 +4479,7 @@ function Search({
|
|
|
4438
4479
|
if (!isControlled) setInternalValue("");
|
|
4439
4480
|
onClear == null ? void 0 : onClear();
|
|
4440
4481
|
}, [isControlled, onClear]);
|
|
4441
|
-
return /* @__PURE__ */ (0,
|
|
4482
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
4442
4483
|
import_TextField2.default,
|
|
4443
4484
|
{
|
|
4444
4485
|
variant,
|
|
@@ -4454,15 +4495,15 @@ function Search({
|
|
|
4454
4495
|
gap: 0,
|
|
4455
4496
|
"& .MuiOutlinedInput-input": { pl: "8px" }
|
|
4456
4497
|
},
|
|
4457
|
-
startAdornment: /* @__PURE__ */ (0,
|
|
4458
|
-
endAdornment: currentValue ? /* @__PURE__ */ (0,
|
|
4498
|
+
startAdornment: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_InputAdornment.default, { position: "start", sx: { mr: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Search.default, { sx: { fontSize: 20, color: "text.placeholder" } }) }),
|
|
4499
|
+
endAdornment: currentValue ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_InputAdornment.default, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
4459
4500
|
import_IconButton.default,
|
|
4460
4501
|
{
|
|
4461
4502
|
"aria-label": "clear search",
|
|
4462
4503
|
onClick: handleClear,
|
|
4463
4504
|
edge: "end",
|
|
4464
4505
|
size: "small",
|
|
4465
|
-
children: /* @__PURE__ */ (0,
|
|
4506
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Clear.default, { fontSize: "small" })
|
|
4466
4507
|
}
|
|
4467
4508
|
) }) : null,
|
|
4468
4509
|
...typeof (slotProps == null ? void 0 : slotProps.input) === "object" ? slotProps.input : {}
|
|
@@ -4478,14 +4519,14 @@ var import_InputBase = __toESM(require("@mui/material/InputBase"));
|
|
|
4478
4519
|
|
|
4479
4520
|
// src/components/IconButton/index.tsx
|
|
4480
4521
|
var import_IconButton2 = __toESM(require("@mui/material/IconButton"));
|
|
4481
|
-
var
|
|
4522
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
4482
4523
|
function IconButton2({
|
|
4483
|
-
variant = "
|
|
4524
|
+
variant = "contained",
|
|
4484
4525
|
className,
|
|
4485
4526
|
...props
|
|
4486
4527
|
}) {
|
|
4487
|
-
const cls = variant === "
|
|
4488
|
-
return /* @__PURE__ */ (0,
|
|
4528
|
+
const cls = variant === "icon" ? className : ["ForestIconButton", `ForestIconButton-${variant}`, className].filter(Boolean).join(" ");
|
|
4529
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_IconButton2.default, { className: cls, ...props });
|
|
4489
4530
|
}
|
|
4490
4531
|
|
|
4491
4532
|
// src/components/Logo/index.tsx
|
|
@@ -4748,7 +4789,7 @@ function scopeArtworkIds(inner, id) {
|
|
|
4748
4789
|
}
|
|
4749
4790
|
|
|
4750
4791
|
// src/components/Logo/index.tsx
|
|
4751
|
-
var
|
|
4792
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
4752
4793
|
function resolveArtwork(product, variant, color) {
|
|
4753
4794
|
const variantArt = PRODUCT_ARTWORK[product][variant];
|
|
4754
4795
|
if (variant === "logomark") {
|
|
@@ -4768,7 +4809,7 @@ var Logo = (0, import_react3.forwardRef)(
|
|
|
4768
4809
|
() => artwork ? scopeArtworkIds(artwork.inner, id) : "",
|
|
4769
4810
|
[artwork, id]
|
|
4770
4811
|
);
|
|
4771
|
-
return /* @__PURE__ */ (0,
|
|
4812
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
4772
4813
|
import_material.Box,
|
|
4773
4814
|
{
|
|
4774
4815
|
component: "svg",
|
|
@@ -4798,9 +4839,9 @@ var import_ToggleButtonGroup = __toESM(require("@mui/material/ToggleButtonGroup"
|
|
|
4798
4839
|
var import_DatePicker = require("@mui/x-date-pickers/DatePicker");
|
|
4799
4840
|
var import_LocalizationProvider = require("@mui/x-date-pickers/LocalizationProvider");
|
|
4800
4841
|
var import_AdapterDayjs = require("@mui/x-date-pickers/AdapterDayjs");
|
|
4801
|
-
var
|
|
4842
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
4802
4843
|
function DatePicker(props) {
|
|
4803
|
-
return /* @__PURE__ */ (0,
|
|
4844
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_LocalizationProvider.LocalizationProvider, { dateAdapter: import_AdapterDayjs.AdapterDayjs, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_DatePicker.DatePicker, { ...props }) });
|
|
4804
4845
|
}
|
|
4805
4846
|
|
|
4806
4847
|
// src/components/FormControl/index.tsx
|
|
@@ -4834,7 +4875,7 @@ var import_Badge = __toESM(require("@mui/material/Badge"));
|
|
|
4834
4875
|
var import_Chip = __toESM(require("@mui/material/Chip"));
|
|
4835
4876
|
var import_CloseOutlined = __toESM(require("@mui/icons-material/CloseOutlined"));
|
|
4836
4877
|
var import_styles3 = require("@mui/material/styles");
|
|
4837
|
-
var
|
|
4878
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
4838
4879
|
var customChipScales = {
|
|
4839
4880
|
teal: misc.teal,
|
|
4840
4881
|
orange: misc.orange,
|
|
@@ -4847,10 +4888,10 @@ var customChipScales = {
|
|
|
4847
4888
|
rose: misc.rose,
|
|
4848
4889
|
blueLight: misc.blueLight
|
|
4849
4890
|
};
|
|
4850
|
-
function Chip({ color, deleteIcon = /* @__PURE__ */ (0,
|
|
4851
|
-
const scale = color &&
|
|
4891
|
+
function Chip({ color, deleteIcon = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_CloseOutlined.default, {}), sx, ...props }) {
|
|
4892
|
+
const scale = color && color in customChipScales ? customChipScales[color] : void 0;
|
|
4852
4893
|
if (scale) {
|
|
4853
|
-
return /* @__PURE__ */ (0,
|
|
4894
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
4854
4895
|
import_Chip.default,
|
|
4855
4896
|
{
|
|
4856
4897
|
deleteIcon,
|
|
@@ -4890,7 +4931,7 @@ function Chip({ color, deleteIcon = /* @__PURE__ */ (0, import_jsx_runtime12.jsx
|
|
|
4890
4931
|
}
|
|
4891
4932
|
);
|
|
4892
4933
|
}
|
|
4893
|
-
return /* @__PURE__ */ (0,
|
|
4934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
4894
4935
|
import_Chip.default,
|
|
4895
4936
|
{
|
|
4896
4937
|
color,
|
|
@@ -4938,9 +4979,9 @@ var import_x_data_grid = require("@mui/x-data-grid");
|
|
|
4938
4979
|
|
|
4939
4980
|
// src/components/Tooltip/index.tsx
|
|
4940
4981
|
var import_Tooltip = __toESM(require("@mui/material/Tooltip"));
|
|
4941
|
-
var
|
|
4982
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
4942
4983
|
function Tooltip({ arrow = true, ...props }) {
|
|
4943
|
-
return /* @__PURE__ */ (0,
|
|
4984
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_Tooltip.default, { arrow, ...props });
|
|
4944
4985
|
}
|
|
4945
4986
|
|
|
4946
4987
|
// src/components/Typography/index.tsx
|
|
@@ -4956,7 +4997,7 @@ var import_AccordionActions = __toESM(require("@mui/material/AccordionActions"))
|
|
|
4956
4997
|
var import_Button3 = __toESM(require("@mui/material/Button"));
|
|
4957
4998
|
var import_AppBar = __toESM(require("@mui/material/AppBar"));
|
|
4958
4999
|
var import_Toolbar = __toESM(require("@mui/material/Toolbar"));
|
|
4959
|
-
var
|
|
5000
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
4960
5001
|
function AppBarNavItem({
|
|
4961
5002
|
label,
|
|
4962
5003
|
icon,
|
|
@@ -4965,7 +5006,7 @@ function AppBarNavItem({
|
|
|
4965
5006
|
sx,
|
|
4966
5007
|
...props
|
|
4967
5008
|
}) {
|
|
4968
|
-
return /* @__PURE__ */ (0,
|
|
5009
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
4969
5010
|
import_Button3.default,
|
|
4970
5011
|
{
|
|
4971
5012
|
variant: "text",
|
|
@@ -5016,9 +5057,9 @@ var import_CardContent = __toESM(require("@mui/material/CardContent"));
|
|
|
5016
5057
|
var import_CardHeader = __toESM(require("@mui/material/CardHeader"));
|
|
5017
5058
|
var import_CardActions = __toESM(require("@mui/material/CardActions"));
|
|
5018
5059
|
var import_CardMedia = __toESM(require("@mui/material/CardMedia"));
|
|
5019
|
-
var
|
|
5060
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
5020
5061
|
function Card({ color = "primary", sx, ...props }) {
|
|
5021
|
-
return /* @__PURE__ */ (0,
|
|
5062
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
5022
5063
|
import_Card.default,
|
|
5023
5064
|
{
|
|
5024
5065
|
...props,
|
|
@@ -5036,17 +5077,13 @@ var import_CardActionArea = __toESM(require("@mui/material/CardActionArea"));
|
|
|
5036
5077
|
// src/components/Drawer/index.tsx
|
|
5037
5078
|
var import_Drawer = __toESM(require("@mui/material/Drawer"));
|
|
5038
5079
|
var import_SwipeableDrawer = __toESM(require("@mui/material/SwipeableDrawer"));
|
|
5039
|
-
var
|
|
5080
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
5040
5081
|
function Drawer({ anchor = "right", hideBackdrop = true, ...props }) {
|
|
5041
|
-
return /* @__PURE__ */ (0,
|
|
5082
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Drawer.default, { anchor, hideBackdrop, ...props });
|
|
5042
5083
|
}
|
|
5043
5084
|
|
|
5044
5085
|
// src/components/Paper/index.tsx
|
|
5045
5086
|
var import_Paper = __toESM(require("@mui/material/Paper"));
|
|
5046
|
-
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
5047
|
-
function Paper(props) {
|
|
5048
|
-
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_Paper.default, { ...props });
|
|
5049
|
-
}
|
|
5050
5087
|
|
|
5051
5088
|
// src/components/Alert/index.tsx
|
|
5052
5089
|
var import_Alert = __toESM(require("@mui/material/Alert"));
|
|
@@ -5074,9 +5111,9 @@ var import_Modal = __toESM(require("@mui/material/Modal"));
|
|
|
5074
5111
|
|
|
5075
5112
|
// src/components/Popover/index.tsx
|
|
5076
5113
|
var import_Popover = __toESM(require("@mui/material/Popover"));
|
|
5077
|
-
var
|
|
5114
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
5078
5115
|
function Popover({ slotProps, ...props }) {
|
|
5079
|
-
return /* @__PURE__ */ (0,
|
|
5116
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
5080
5117
|
import_Popover.default,
|
|
5081
5118
|
{
|
|
5082
5119
|
...props,
|
|
@@ -5151,7 +5188,7 @@ var import_ListItemButton2 = __toESM(require("@mui/material/ListItemButton"));
|
|
|
5151
5188
|
var import_ListItemIcon2 = __toESM(require("@mui/material/ListItemIcon"));
|
|
5152
5189
|
var import_ListItemText3 = __toESM(require("@mui/material/ListItemText"));
|
|
5153
5190
|
var import_Tooltip2 = __toESM(require("@mui/material/Tooltip"));
|
|
5154
|
-
var
|
|
5191
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
5155
5192
|
var SidebarContext = (0, import_react4.createContext)({
|
|
5156
5193
|
open: true,
|
|
5157
5194
|
collapsedWidth: 48,
|
|
@@ -5181,7 +5218,7 @@ function SidebarNav({
|
|
|
5181
5218
|
onMouseEnter: () => onOpenChange(true),
|
|
5182
5219
|
onMouseLeave: () => onOpenChange(false)
|
|
5183
5220
|
} : {};
|
|
5184
|
-
return /* @__PURE__ */ (0,
|
|
5221
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SidebarContext.Provider, { value: { open, collapsedWidth, expandedWidth }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
5185
5222
|
import_Box.default,
|
|
5186
5223
|
{
|
|
5187
5224
|
sx: {
|
|
@@ -5194,7 +5231,7 @@ function SidebarNav({
|
|
|
5194
5231
|
transition: "width 200ms ease-in-out"
|
|
5195
5232
|
},
|
|
5196
5233
|
children: [
|
|
5197
|
-
/* @__PURE__ */ (0,
|
|
5234
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
5198
5235
|
import_Drawer2.default,
|
|
5199
5236
|
{
|
|
5200
5237
|
variant: "permanent",
|
|
@@ -5212,7 +5249,7 @@ function SidebarNav({
|
|
|
5212
5249
|
},
|
|
5213
5250
|
...sx
|
|
5214
5251
|
},
|
|
5215
|
-
children: /* @__PURE__ */ (0,
|
|
5252
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
5216
5253
|
import_Box.default,
|
|
5217
5254
|
{
|
|
5218
5255
|
sx: {
|
|
@@ -5222,9 +5259,9 @@ function SidebarNav({
|
|
|
5222
5259
|
overflow: "hidden"
|
|
5223
5260
|
},
|
|
5224
5261
|
children: [
|
|
5225
|
-
header && /* @__PURE__ */ (0,
|
|
5226
|
-
/* @__PURE__ */ (0,
|
|
5227
|
-
footer && /* @__PURE__ */ (0,
|
|
5262
|
+
header && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_Box.default, { sx: { flexShrink: 0 }, children: header }),
|
|
5263
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_Box.default, { sx: { flexGrow: 1, overflowY: "auto", overflowX: "hidden" }, children }),
|
|
5264
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_Box.default, { sx: { flexShrink: 0 }, children: footer })
|
|
5228
5265
|
]
|
|
5229
5266
|
}
|
|
5230
5267
|
)
|
|
@@ -5234,7 +5271,7 @@ function SidebarNav({
|
|
|
5234
5271
|
// to a square icon toggle. Face is the tonal secondary (light grey in
|
|
5235
5272
|
// light / charcoal in dark), not the primary brand fill — the toggle
|
|
5236
5273
|
// is a utility control, not a call to action.
|
|
5237
|
-
/* @__PURE__ */ (0,
|
|
5274
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
5238
5275
|
Button,
|
|
5239
5276
|
{
|
|
5240
5277
|
"aria-label": open ? "Collapse sidebar" : "Expand sidebar",
|
|
@@ -5267,7 +5304,7 @@ function SidebarNav({
|
|
|
5267
5304
|
...theme.applyStyles("dark", { filter: "brightness(1.15)" })
|
|
5268
5305
|
}
|
|
5269
5306
|
}),
|
|
5270
|
-
children: open ? /* @__PURE__ */ (0,
|
|
5307
|
+
children: open ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_ChevronLeftOutlined.default, {}) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_ChevronRightOutlined.default, {})
|
|
5271
5308
|
}
|
|
5272
5309
|
)
|
|
5273
5310
|
]
|
|
@@ -5311,7 +5348,7 @@ function SidebarItem({
|
|
|
5311
5348
|
}) {
|
|
5312
5349
|
const { open } = useSidebar();
|
|
5313
5350
|
if (!open) {
|
|
5314
|
-
return /* @__PURE__ */ (0,
|
|
5351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_Tooltip2.default, { title: label, placement: "right", arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
5315
5352
|
import_ListItemButton2.default,
|
|
5316
5353
|
{
|
|
5317
5354
|
...rest,
|
|
@@ -5326,13 +5363,13 @@ function SidebarItem({
|
|
|
5326
5363
|
marginInline: "auto",
|
|
5327
5364
|
...sx
|
|
5328
5365
|
},
|
|
5329
|
-
children: /* @__PURE__ */ (0,
|
|
5366
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_ListItemIcon2.default, { sx: { minWidth: "unset", margin: 0, "& .MuiSvgIcon-root": { fontSize: 20 } }, children: icon })
|
|
5330
5367
|
}
|
|
5331
5368
|
) });
|
|
5332
5369
|
}
|
|
5333
|
-
return /* @__PURE__ */ (0,
|
|
5334
|
-
/* @__PURE__ */ (0,
|
|
5335
|
-
/* @__PURE__ */ (0,
|
|
5370
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_ListItemButton2.default, { ...rest, sx: { ...itemSx, height: 32, ...sx }, children: [
|
|
5371
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_ListItemIcon2.default, { sx: { minWidth: 32, "& .MuiSvgIcon-root": { fontSize: 20 } }, children: icon }),
|
|
5372
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_ListItemText3.default, { primary: label }),
|
|
5336
5373
|
endAdornment
|
|
5337
5374
|
] });
|
|
5338
5375
|
}
|
|
@@ -5347,19 +5384,20 @@ var import_styles4 = require("@mui/material/styles");
|
|
|
5347
5384
|
var import_MenuOutlined = __toESM(require("@mui/icons-material/MenuOutlined"));
|
|
5348
5385
|
var import_DarkModeOutlined = __toESM(require("@mui/icons-material/DarkModeOutlined"));
|
|
5349
5386
|
var import_LightModeOutlined = __toESM(require("@mui/icons-material/LightModeOutlined"));
|
|
5350
|
-
var
|
|
5387
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
5351
5388
|
function ColorModeToggle() {
|
|
5352
5389
|
const { mode, systemMode, setMode } = (0, import_styles4.useColorScheme)();
|
|
5353
5390
|
const resolved = mode === "system" ? systemMode : mode;
|
|
5354
5391
|
const isDark = resolved === "dark";
|
|
5355
|
-
return /* @__PURE__ */ (0,
|
|
5392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Tooltip, { title: isDark ? "Switch to light mode" : "Switch to dark mode", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
5356
5393
|
IconButton2,
|
|
5357
5394
|
{
|
|
5395
|
+
variant: "icon",
|
|
5358
5396
|
size: "small",
|
|
5359
5397
|
color: "inherit",
|
|
5360
5398
|
"aria-label": "Toggle color mode",
|
|
5361
5399
|
onClick: () => setMode(isDark ? "light" : "dark"),
|
|
5362
|
-
children: isDark ? /* @__PURE__ */ (0,
|
|
5400
|
+
children: isDark ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_LightModeOutlined.default, { fontSize: "small" }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_DarkModeOutlined.default, { fontSize: "small" })
|
|
5363
5401
|
}
|
|
5364
5402
|
) });
|
|
5365
5403
|
}
|
|
@@ -5370,9 +5408,9 @@ function ShellBrand({
|
|
|
5370
5408
|
const { mode, systemMode } = (0, import_styles4.useColorScheme)();
|
|
5371
5409
|
const dark = (mode === "system" ? systemMode : mode) === "dark";
|
|
5372
5410
|
if (logoVariant === "full") {
|
|
5373
|
-
return /* @__PURE__ */ (0,
|
|
5411
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Logo, { product, variant: "logo", color: dark ? "negative" : "positive" });
|
|
5374
5412
|
}
|
|
5375
|
-
return /* @__PURE__ */ (0,
|
|
5413
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Logo, { product, variant: "logomark", color: "default" });
|
|
5376
5414
|
}
|
|
5377
5415
|
function AppShell({
|
|
5378
5416
|
navItems,
|
|
@@ -5390,7 +5428,7 @@ function AppShell({
|
|
|
5390
5428
|
const isMobile = (0, import_useMediaQuery.default)(theme.breakpoints.down("sm"));
|
|
5391
5429
|
const [sidebarOpen, setSidebarOpen] = (0, import_react5.useState)(defaultSidebarOpen);
|
|
5392
5430
|
const [mobileOpen, setMobileOpen] = (0, import_react5.useState)(false);
|
|
5393
|
-
const navContent = nav != null ? nav : navItems && /* @__PURE__ */ (0,
|
|
5431
|
+
const navContent = nav != null ? nav : navItems && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_List2.default, { children: navItems.map(({ label, icon, active, endAdornment, ...link }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
5394
5432
|
SidebarItem,
|
|
5395
5433
|
{
|
|
5396
5434
|
icon,
|
|
@@ -5401,39 +5439,40 @@ function AppShell({
|
|
|
5401
5439
|
},
|
|
5402
5440
|
label
|
|
5403
5441
|
)) });
|
|
5404
|
-
const brandEl = brand != null ? brand : /* @__PURE__ */ (0,
|
|
5442
|
+
const brandEl = brand != null ? brand : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ShellBrand, { product, logoVariant });
|
|
5405
5443
|
const wrapLogomark = !brand && logoVariant === "logomark" && !isMobile;
|
|
5406
|
-
return /* @__PURE__ */ (0,
|
|
5407
|
-
/* @__PURE__ */ (0,
|
|
5444
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_Box2.default, { sx: { display: "flex", flexDirection: "column", height: "100vh" }, children: [
|
|
5445
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
5408
5446
|
import_AppBar.default,
|
|
5409
5447
|
{
|
|
5410
5448
|
position: "sticky",
|
|
5411
5449
|
elevation: 0,
|
|
5412
5450
|
sx: { zIndex: theme.zIndex.drawer + 1 },
|
|
5413
|
-
children: /* @__PURE__ */ (0,
|
|
5414
|
-
/* @__PURE__ */ (0,
|
|
5415
|
-
isMobile && /* @__PURE__ */ (0,
|
|
5451
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_Toolbar.default, { variant: "dense", sx: { px: { xs: "16px", sm: "16px" } }, children: [
|
|
5452
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_Box2.default, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-start", gap: 1 }, children: [
|
|
5453
|
+
isMobile && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
5416
5454
|
IconButton2,
|
|
5417
5455
|
{
|
|
5456
|
+
variant: "icon",
|
|
5418
5457
|
size: "small",
|
|
5419
5458
|
color: "inherit",
|
|
5420
5459
|
"aria-label": "Open navigation",
|
|
5421
5460
|
onClick: () => setMobileOpen(true),
|
|
5422
|
-
children: /* @__PURE__ */ (0,
|
|
5461
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_MenuOutlined.default, { fontSize: "small" })
|
|
5423
5462
|
}
|
|
5424
5463
|
),
|
|
5425
|
-
wrapLogomark ? /* @__PURE__ */ (0,
|
|
5464
|
+
wrapLogomark ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_Box2.default, { sx: { width: 48, ml: "-16px", display: "flex", justifyContent: "center" }, children: brandEl }) : brandEl
|
|
5426
5465
|
] }),
|
|
5427
|
-
/* @__PURE__ */ (0,
|
|
5428
|
-
/* @__PURE__ */ (0,
|
|
5429
|
-
/* @__PURE__ */ (0,
|
|
5466
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_Box2.default, { sx: { flex: 1, display: "flex", justifyContent: "center" }, children: search === true ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Search, { size: "small", placeholder: "Search\u2026", sx: { width: "100%", maxWidth: 480 } }) : search || null }),
|
|
5467
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_Box2.default, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-end", gap: 1 }, children: [
|
|
5468
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ColorModeToggle, {}),
|
|
5430
5469
|
actions
|
|
5431
5470
|
] })
|
|
5432
5471
|
] })
|
|
5433
5472
|
}
|
|
5434
5473
|
),
|
|
5435
|
-
/* @__PURE__ */ (0,
|
|
5436
|
-
!isMobile && navContent && /* @__PURE__ */ (0,
|
|
5474
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_Box2.default, { sx: { display: "flex", flexGrow: 1, overflow: "hidden" }, children: [
|
|
5475
|
+
!isMobile && navContent && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
5437
5476
|
SidebarNav,
|
|
5438
5477
|
{
|
|
5439
5478
|
open: sidebarOpen,
|
|
@@ -5446,9 +5485,9 @@ function AppShell({
|
|
|
5446
5485
|
children: navContent
|
|
5447
5486
|
}
|
|
5448
5487
|
),
|
|
5449
|
-
/* @__PURE__ */ (0,
|
|
5488
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_Box2.default, { component: "main", sx: { flexGrow: 1, overflow: "auto" }, children })
|
|
5450
5489
|
] }),
|
|
5451
|
-
isMobile && navContent && /* @__PURE__ */ (0,
|
|
5490
|
+
isMobile && navContent && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
5452
5491
|
import_Drawer3.default,
|
|
5453
5492
|
{
|
|
5454
5493
|
open: mobileOpen,
|
|
@@ -5466,7 +5505,7 @@ var import_Box3 = __toESM(require("@mui/material/Box"));
|
|
|
5466
5505
|
var import_Breadcrumbs2 = __toESM(require("@mui/material/Breadcrumbs"));
|
|
5467
5506
|
var import_Link2 = __toESM(require("@mui/material/Link"));
|
|
5468
5507
|
var import_Typography2 = __toESM(require("@mui/material/Typography"));
|
|
5469
|
-
var
|
|
5508
|
+
var import_jsx_runtime19 = (
|
|
5470
5509
|
// Current page: plain text, not a link.
|
|
5471
5510
|
require("react/jsx-runtime")
|
|
5472
5511
|
);
|
|
@@ -5479,7 +5518,7 @@ function Page({
|
|
|
5479
5518
|
sx,
|
|
5480
5519
|
children
|
|
5481
5520
|
}) {
|
|
5482
|
-
return /* @__PURE__ */ (0,
|
|
5521
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5483
5522
|
import_Box3.default,
|
|
5484
5523
|
{
|
|
5485
5524
|
component: "section",
|
|
@@ -5493,7 +5532,7 @@ function Page({
|
|
|
5493
5532
|
},
|
|
5494
5533
|
...Array.isArray(sx) ? sx : [sx]
|
|
5495
5534
|
],
|
|
5496
|
-
children: /* @__PURE__ */ (0,
|
|
5535
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
5497
5536
|
import_Box3.default,
|
|
5498
5537
|
{
|
|
5499
5538
|
sx: {
|
|
@@ -5504,8 +5543,8 @@ function Page({
|
|
|
5504
5543
|
...maxWidth ? { maxWidth, mx: "auto" } : {}
|
|
5505
5544
|
},
|
|
5506
5545
|
children: [
|
|
5507
|
-
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0,
|
|
5508
|
-
(crumb, i) => i === breadcrumbs.length - 1 ? /* @__PURE__ */ (0,
|
|
5546
|
+
breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Breadcrumbs2.default, { "aria-label": "breadcrumb", sx: { mb: 1 }, children: breadcrumbs.map(
|
|
5547
|
+
(crumb, i) => i === breadcrumbs.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Typography2.default, { variant: "body2", color: "text.primary", children: crumb.label }, crumb.label) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
5509
5548
|
import_Link2.default,
|
|
5510
5549
|
{
|
|
5511
5550
|
variant: "body2",
|
|
@@ -5519,7 +5558,7 @@ function Page({
|
|
|
5519
5558
|
crumb.label
|
|
5520
5559
|
)
|
|
5521
5560
|
) }),
|
|
5522
|
-
/* @__PURE__ */ (0,
|
|
5561
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
5523
5562
|
import_Box3.default,
|
|
5524
5563
|
{
|
|
5525
5564
|
sx: {
|
|
@@ -5530,8 +5569,8 @@ function Page({
|
|
|
5530
5569
|
mb: 3
|
|
5531
5570
|
},
|
|
5532
5571
|
children: [
|
|
5533
|
-
/* @__PURE__ */ (0,
|
|
5534
|
-
actions && /* @__PURE__ */ (0,
|
|
5572
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Typography2.default, { variant: "h5", children: title }),
|
|
5573
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Box3.default, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: actions })
|
|
5535
5574
|
]
|
|
5536
5575
|
}
|
|
5537
5576
|
),
|
|
@@ -5545,19 +5584,15 @@ function Page({
|
|
|
5545
5584
|
|
|
5546
5585
|
// src/components/Box/index.tsx
|
|
5547
5586
|
var import_Box4 = __toESM(require("@mui/material/Box"));
|
|
5548
|
-
var Box5 = import_Box4.default;
|
|
5549
5587
|
|
|
5550
5588
|
// src/components/Stack/index.tsx
|
|
5551
5589
|
var import_Stack = __toESM(require("@mui/material/Stack"));
|
|
5552
|
-
var Stack = import_Stack.default;
|
|
5553
5590
|
|
|
5554
5591
|
// src/components/Grid/index.tsx
|
|
5555
5592
|
var import_Grid = __toESM(require("@mui/material/Grid"));
|
|
5556
|
-
var Grid = import_Grid.default;
|
|
5557
5593
|
|
|
5558
5594
|
// src/components/Container/index.tsx
|
|
5559
5595
|
var import_Container = __toESM(require("@mui/material/Container"));
|
|
5560
|
-
var Container = import_Container.default;
|
|
5561
5596
|
|
|
5562
5597
|
// src/components/Collapse/index.tsx
|
|
5563
5598
|
var import_Collapse = __toESM(require("@mui/material/Collapse"));
|
|
@@ -5591,7 +5626,6 @@ var import_Popper = __toESM(require("@mui/material/Popper"));
|
|
|
5591
5626
|
|
|
5592
5627
|
// src/components/Portal/index.tsx
|
|
5593
5628
|
var import_Portal = __toESM(require("@mui/material/Portal"));
|
|
5594
|
-
var Portal = import_Portal.default;
|
|
5595
5629
|
|
|
5596
5630
|
// src/components/Slider/index.tsx
|
|
5597
5631
|
var import_Slider = __toESM(require("@mui/material/Slider"));
|
|
@@ -5618,7 +5652,7 @@ function useChartColors(count) {
|
|
|
5618
5652
|
// src/components/Charts/CustomTooltip.tsx
|
|
5619
5653
|
var import_material2 = require("@mui/material");
|
|
5620
5654
|
var import_styles6 = require("@mui/material/styles");
|
|
5621
|
-
var
|
|
5655
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
5622
5656
|
function formatDate(date) {
|
|
5623
5657
|
if (!date) return "";
|
|
5624
5658
|
const d = new Date(date);
|
|
@@ -5643,7 +5677,7 @@ function CustomTooltip(props) {
|
|
|
5643
5677
|
if (dataIndex == null) {
|
|
5644
5678
|
return null;
|
|
5645
5679
|
}
|
|
5646
|
-
return /* @__PURE__ */ (0,
|
|
5680
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5647
5681
|
import_material2.Box,
|
|
5648
5682
|
{
|
|
5649
5683
|
sx: {
|
|
@@ -5659,7 +5693,7 @@ function CustomTooltip(props) {
|
|
|
5659
5693
|
border: `1px solid ${theme.palette.divider}`
|
|
5660
5694
|
},
|
|
5661
5695
|
children: [
|
|
5662
|
-
/* @__PURE__ */ (0,
|
|
5696
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5663
5697
|
import_material2.Typography,
|
|
5664
5698
|
{
|
|
5665
5699
|
variant: "body2",
|
|
@@ -5676,8 +5710,8 @@ function CustomTooltip(props) {
|
|
|
5676
5710
|
const color = typeof s.getColor === "function" ? s.getColor(dataIndex) : s.color;
|
|
5677
5711
|
const value = s.data ? s.data[dataIndex] : null;
|
|
5678
5712
|
if (value == null) return null;
|
|
5679
|
-
return /* @__PURE__ */ (0,
|
|
5680
|
-
/* @__PURE__ */ (0,
|
|
5713
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_material2.Box, { sx: { display: "flex", flexDirection: "column", gap: "6px" }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_material2.Box, { sx: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
5714
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5681
5715
|
import_material2.Box,
|
|
5682
5716
|
{
|
|
5683
5717
|
sx: {
|
|
@@ -5689,7 +5723,7 @@ function CustomTooltip(props) {
|
|
|
5689
5723
|
}
|
|
5690
5724
|
}
|
|
5691
5725
|
),
|
|
5692
|
-
/* @__PURE__ */ (0,
|
|
5726
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
5693
5727
|
import_material2.Typography,
|
|
5694
5728
|
{
|
|
5695
5729
|
variant: "body2",
|
|
@@ -5700,7 +5734,7 @@ function CustomTooltip(props) {
|
|
|
5700
5734
|
gap: "6px"
|
|
5701
5735
|
},
|
|
5702
5736
|
children: [
|
|
5703
|
-
/* @__PURE__ */ (0,
|
|
5737
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
5704
5738
|
import_material2.Box,
|
|
5705
5739
|
{
|
|
5706
5740
|
component: "span",
|
|
@@ -5728,7 +5762,7 @@ function CustomTooltip(props) {
|
|
|
5728
5762
|
}
|
|
5729
5763
|
|
|
5730
5764
|
// src/components/Charts/LineChart.tsx
|
|
5731
|
-
var
|
|
5765
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
5732
5766
|
function LineChart({ series, colors: colors2, ...props }) {
|
|
5733
5767
|
var _a, _b;
|
|
5734
5768
|
const theme = (0, import_styles7.useTheme)();
|
|
@@ -5742,7 +5776,7 @@ function LineChart({ series, colors: colors2, ...props }) {
|
|
|
5742
5776
|
highlightScope: (_b2 = s.highlightScope) != null ? _b2 : { highlighted: "item", faded: "global" }
|
|
5743
5777
|
};
|
|
5744
5778
|
});
|
|
5745
|
-
return /* @__PURE__ */ (0,
|
|
5779
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
5746
5780
|
import_LineChart.LineChart,
|
|
5747
5781
|
{
|
|
5748
5782
|
series: modifiedSeries != null ? modifiedSeries : [],
|
|
@@ -5814,7 +5848,7 @@ function LineChart({ series, colors: colors2, ...props }) {
|
|
|
5814
5848
|
// src/components/Charts/BarChart.tsx
|
|
5815
5849
|
var import_BarChart = require("@mui/x-charts/BarChart");
|
|
5816
5850
|
var import_styles8 = require("@mui/material/styles");
|
|
5817
|
-
var
|
|
5851
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
5818
5852
|
function BarChart({ series, colors: colors2, ...props }) {
|
|
5819
5853
|
var _a, _b;
|
|
5820
5854
|
const theme = (0, import_styles8.useTheme)();
|
|
@@ -5832,7 +5866,7 @@ function BarChart({ series, colors: colors2, ...props }) {
|
|
|
5832
5866
|
highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
|
|
5833
5867
|
};
|
|
5834
5868
|
});
|
|
5835
|
-
return /* @__PURE__ */ (0,
|
|
5869
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
5836
5870
|
import_BarChart.BarChart,
|
|
5837
5871
|
{
|
|
5838
5872
|
series: modifiedSeries != null ? modifiedSeries : [],
|
|
@@ -5892,10 +5926,10 @@ function BarChart({ series, colors: colors2, ...props }) {
|
|
|
5892
5926
|
...(_b = props.sx) != null ? _b : {}
|
|
5893
5927
|
},
|
|
5894
5928
|
...props,
|
|
5895
|
-
children: /* @__PURE__ */ (0,
|
|
5929
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("defs", { children: series == null ? void 0 : series.map((s, idx) => {
|
|
5896
5930
|
if (s.variant !== "striped") return null;
|
|
5897
5931
|
const baseColor = s.color || resolvedColors[idx % resolvedColors.length];
|
|
5898
|
-
return /* @__PURE__ */ (0,
|
|
5932
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
5899
5933
|
"pattern",
|
|
5900
5934
|
{
|
|
5901
5935
|
id: `striped-pattern-${idx}`,
|
|
@@ -5904,8 +5938,8 @@ function BarChart({ series, colors: colors2, ...props }) {
|
|
|
5904
5938
|
height: "8",
|
|
5905
5939
|
patternTransform: "rotate(45)",
|
|
5906
5940
|
children: [
|
|
5907
|
-
/* @__PURE__ */ (0,
|
|
5908
|
-
/* @__PURE__ */ (0,
|
|
5941
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("rect", { width: "8", height: "8", fill: theme.palette.background.paper }),
|
|
5942
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("line", { x1: "0", y: "0", x2: "0", y2: "8", stroke: baseColor, strokeWidth: "4" })
|
|
5909
5943
|
]
|
|
5910
5944
|
},
|
|
5911
5945
|
`striped-${idx}`
|
|
@@ -5918,7 +5952,7 @@ function BarChart({ series, colors: colors2, ...props }) {
|
|
|
5918
5952
|
// src/components/Charts/PieChart.tsx
|
|
5919
5953
|
var import_PieChart = require("@mui/x-charts/PieChart");
|
|
5920
5954
|
var import_styles9 = require("@mui/material/styles");
|
|
5921
|
-
var
|
|
5955
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
5922
5956
|
function PieChart({ series, colors: colors2, ...props }) {
|
|
5923
5957
|
var _a, _b, _c, _d;
|
|
5924
5958
|
const theme = (0, import_styles9.useTheme)();
|
|
@@ -5932,7 +5966,7 @@ function PieChart({ series, colors: colors2, ...props }) {
|
|
|
5932
5966
|
highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
|
|
5933
5967
|
};
|
|
5934
5968
|
});
|
|
5935
|
-
return /* @__PURE__ */ (0,
|
|
5969
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5936
5970
|
import_PieChart.PieChart,
|
|
5937
5971
|
{
|
|
5938
5972
|
series: modifiedSeries != null ? modifiedSeries : [],
|
|
@@ -6031,7 +6065,7 @@ var forestLegendSlotProps = {
|
|
|
6031
6065
|
};
|
|
6032
6066
|
|
|
6033
6067
|
// src/components/Charts/ScatterChart.tsx
|
|
6034
|
-
var
|
|
6068
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
6035
6069
|
function ScatterChart({ series, colors: colors2, ...props }) {
|
|
6036
6070
|
var _a, _b;
|
|
6037
6071
|
const theme = (0, import_styles10.useTheme)();
|
|
@@ -6043,7 +6077,7 @@ function ScatterChart({ series, colors: colors2, ...props }) {
|
|
|
6043
6077
|
highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
|
|
6044
6078
|
};
|
|
6045
6079
|
});
|
|
6046
|
-
return /* @__PURE__ */ (0,
|
|
6080
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
6047
6081
|
import_ScatterChart.ScatterChart,
|
|
6048
6082
|
{
|
|
6049
6083
|
series: modifiedSeries != null ? modifiedSeries : [],
|
|
@@ -6062,11 +6096,11 @@ function ScatterChart({ series, colors: colors2, ...props }) {
|
|
|
6062
6096
|
// src/components/Charts/Gauge.tsx
|
|
6063
6097
|
var import_Gauge = require("@mui/x-charts/Gauge");
|
|
6064
6098
|
var import_styles11 = require("@mui/material/styles");
|
|
6065
|
-
var
|
|
6099
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
6066
6100
|
function Gauge(props) {
|
|
6067
6101
|
var _a;
|
|
6068
6102
|
const theme = (0, import_styles11.useTheme)();
|
|
6069
|
-
return /* @__PURE__ */ (0,
|
|
6103
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
6070
6104
|
import_Gauge.Gauge,
|
|
6071
6105
|
{
|
|
6072
6106
|
...props,
|