@matteoaliano/forest-ui 1.2.3 → 1.2.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/index.mjs CHANGED
@@ -38,7 +38,7 @@ import {
38
38
  toggleColors,
39
39
  warning,
40
40
  widths
41
- } from "./chunk-NXIZI6F7.mjs";
41
+ } from "./chunk-B5MZMBLL.mjs";
42
42
 
43
43
  // src/provider/ForestProvider.tsx
44
44
  import { useMemo } from "react";
@@ -86,7 +86,7 @@ function Button({ variant = "contained", ...props }) {
86
86
  // src/components/ButtonGroup/index.tsx
87
87
  import MuiButtonGroup from "@mui/material/ButtonGroup";
88
88
  import { jsx as jsx3 } from "react/jsx-runtime";
89
- function ButtonGroup({ variant = "contained", ...props }) {
89
+ function ButtonGroup({ variant = "outlined", ...props }) {
90
90
  return /* @__PURE__ */ jsx3(MuiButtonGroup, { variant, ...props });
91
91
  }
92
92
 
@@ -838,15 +838,28 @@ var Logo = forwardRef(
838
838
  Logo.displayName = "Logo";
839
839
 
840
840
  // src/components/ToggleButton/index.tsx
841
+ import { createContext, useContext } from "react";
841
842
  import MuiToggleButton from "@mui/material/ToggleButton";
842
- import { default as default10 } from "@mui/material/ToggleButtonGroup";
843
+ import MuiToggleButtonGroup from "@mui/material/ToggleButtonGroup";
843
844
  import { jsx as jsx10 } from "react/jsx-runtime";
845
+ var ToggleButtonVariantContext = createContext(
846
+ void 0
847
+ );
848
+ function ToggleButtonGroup({
849
+ variant = "outlined",
850
+ ...props
851
+ }) {
852
+ return /* @__PURE__ */ jsx10(ToggleButtonVariantContext.Provider, { value: variant, children: /* @__PURE__ */ jsx10(MuiToggleButtonGroup, { ...props }) });
853
+ }
844
854
  function ToggleButton({
845
- variant = "contained",
855
+ variant,
846
856
  className,
847
857
  ...props
848
858
  }) {
849
- const cls = variant === "outlined" ? ["ForestToggleButton-outlined", className].filter(Boolean).join(" ") : className;
859
+ var _a;
860
+ const groupVariant = useContext(ToggleButtonVariantContext);
861
+ const resolved = (_a = variant != null ? variant : groupVariant) != null ? _a : "outlined";
862
+ const cls = resolved === "outlined" ? ["ForestToggleButton-outlined", className].filter(Boolean).join(" ") : className;
850
863
  return /* @__PURE__ */ jsx10(MuiToggleButton, { className: cls, ...props });
851
864
  }
852
865
 
@@ -860,31 +873,31 @@ function DatePicker(props) {
860
873
  }
861
874
 
862
875
  // src/components/FormControl/index.tsx
863
- import { default as default11 } from "@mui/material/FormControl";
864
- import { default as default12 } from "@mui/material/FormControlLabel";
865
- import { default as default13 } from "@mui/material/FormGroup";
866
- import { default as default14 } from "@mui/material/FormHelperText";
867
- import { default as default15 } from "@mui/material/FormLabel";
876
+ import { default as default10 } from "@mui/material/FormControl";
877
+ import { default as default11 } from "@mui/material/FormControlLabel";
878
+ import { default as default12 } from "@mui/material/FormGroup";
879
+ import { default as default13 } from "@mui/material/FormHelperText";
880
+ import { default as default14 } from "@mui/material/FormLabel";
868
881
 
869
882
  // src/components/InputAdornment/index.tsx
870
- import { default as default16 } from "@mui/material/InputAdornment";
883
+ import { default as default15 } from "@mui/material/InputAdornment";
871
884
 
872
885
  // src/components/InputBase/index.tsx
873
- import { default as default17 } from "@mui/material/InputBase";
886
+ import { default as default16 } from "@mui/material/InputBase";
874
887
 
875
888
  // src/components/InputLabel/index.tsx
876
- import { default as default18 } from "@mui/material/InputLabel";
889
+ import { default as default17 } from "@mui/material/InputLabel";
877
890
 
878
891
  // src/components/OutlinedInput/index.tsx
879
- import { default as default19 } from "@mui/material/OutlinedInput";
880
- import { default as default20 } from "@mui/material/FilledInput";
892
+ import { default as default18 } from "@mui/material/OutlinedInput";
893
+ import { default as default19 } from "@mui/material/FilledInput";
881
894
 
882
895
  // src/components/Avatar/index.tsx
883
- import { default as default21 } from "@mui/material/Avatar";
884
- import { default as default22 } from "@mui/material/AvatarGroup";
896
+ import { default as default20 } from "@mui/material/Avatar";
897
+ import { default as default21 } from "@mui/material/AvatarGroup";
885
898
 
886
899
  // src/components/Badge/index.tsx
887
- import { default as default23 } from "@mui/material/Badge";
900
+ import { default as default22 } from "@mui/material/Badge";
888
901
 
889
902
  // src/components/Chip/index.tsx
890
903
  import MuiChip from "@mui/material/Chip";
@@ -958,36 +971,36 @@ function Chip({ color, deleteIcon = /* @__PURE__ */ jsx12(CloseIcon, {}), sx, ..
958
971
  }
959
972
 
960
973
  // src/components/Divider/index.tsx
961
- import { default as default24 } from "@mui/material/Divider";
974
+ import { default as default23 } from "@mui/material/Divider";
962
975
 
963
976
  // src/components/ImageList/index.tsx
964
- import { default as default25 } from "@mui/material/ImageList";
965
- import { default as default26 } from "@mui/material/ImageListItem";
966
- import { default as default27 } from "@mui/material/ImageListItemBar";
977
+ import { default as default24 } from "@mui/material/ImageList";
978
+ import { default as default25 } from "@mui/material/ImageListItem";
979
+ import { default as default26 } from "@mui/material/ImageListItemBar";
967
980
 
968
981
  // src/components/List/index.tsx
969
- import { default as default28 } from "@mui/material/List";
970
- import { default as default29 } from "@mui/material/ListItem";
971
- import { default as default30 } from "@mui/material/ListItemButton";
972
- import { default as default31 } from "@mui/material/ListItemIcon";
973
- import { default as default32 } from "@mui/material/ListItemText";
974
- import { default as default33 } from "@mui/material/ListItemAvatar";
975
- import { default as default34 } from "@mui/material/ListSubheader";
976
- import { default as default35 } from "@mui/material/ListItemSecondaryAction";
982
+ import { default as default27 } from "@mui/material/List";
983
+ import { default as default28 } from "@mui/material/ListItem";
984
+ import { default as default29 } from "@mui/material/ListItemButton";
985
+ import { default as default30 } from "@mui/material/ListItemIcon";
986
+ import { default as default31 } from "@mui/material/ListItemText";
987
+ import { default as default32 } from "@mui/material/ListItemAvatar";
988
+ import { default as default33 } from "@mui/material/ListSubheader";
989
+ import { default as default34 } from "@mui/material/ListItemSecondaryAction";
977
990
 
978
991
  // src/components/Rating/index.tsx
979
- import { default as default36 } from "@mui/material/Rating";
992
+ import { default as default35 } from "@mui/material/Rating";
980
993
 
981
994
  // src/components/Table/index.tsx
982
- import { default as default37 } from "@mui/material/Table";
983
- import { default as default38 } from "@mui/material/TableBody";
984
- import { default as default39 } from "@mui/material/TableCell";
985
- import { default as default40 } from "@mui/material/TableContainer";
986
- import { default as default41 } from "@mui/material/TableHead";
987
- import { default as default42 } from "@mui/material/TableRow";
988
- import { default as default43 } from "@mui/material/TableFooter";
989
- import { default as default44 } from "@mui/material/TablePagination";
990
- import { default as default45 } from "@mui/material/TableSortLabel";
995
+ import { default as default36 } from "@mui/material/Table";
996
+ import { default as default37 } from "@mui/material/TableBody";
997
+ import { default as default38 } from "@mui/material/TableCell";
998
+ import { default as default39 } from "@mui/material/TableContainer";
999
+ import { default as default40 } from "@mui/material/TableHead";
1000
+ import { default as default41 } from "@mui/material/TableRow";
1001
+ import { default as default42 } from "@mui/material/TableFooter";
1002
+ import { default as default43 } from "@mui/material/TablePagination";
1003
+ import { default as default44 } from "@mui/material/TableSortLabel";
991
1004
 
992
1005
  // src/components/DataGrid/index.tsx
993
1006
  import { DataGrid } from "@mui/x-data-grid";
@@ -1000,18 +1013,18 @@ function Tooltip({ arrow = true, ...props }) {
1000
1013
  }
1001
1014
 
1002
1015
  // src/components/Typography/index.tsx
1003
- import { default as default46 } from "@mui/material/Typography";
1016
+ import { default as default45 } from "@mui/material/Typography";
1004
1017
 
1005
1018
  // src/components/Accordion/index.tsx
1006
- import { default as default47 } from "@mui/material/Accordion";
1007
- import { default as default48 } from "@mui/material/AccordionSummary";
1008
- import { default as default49 } from "@mui/material/AccordionDetails";
1009
- import { default as default50 } from "@mui/material/AccordionActions";
1019
+ import { default as default46 } from "@mui/material/Accordion";
1020
+ import { default as default47 } from "@mui/material/AccordionSummary";
1021
+ import { default as default48 } from "@mui/material/AccordionDetails";
1022
+ import { default as default49 } from "@mui/material/AccordionActions";
1010
1023
 
1011
1024
  // src/components/AppBar/index.tsx
1012
1025
  import MuiButton3 from "@mui/material/Button";
1013
- import { default as default51 } from "@mui/material/AppBar";
1014
- import { default as default52 } from "@mui/material/Toolbar";
1026
+ import { default as default50 } from "@mui/material/AppBar";
1027
+ import { default as default51 } from "@mui/material/Toolbar";
1015
1028
  import { jsx as jsx14 } from "react/jsx-runtime";
1016
1029
  function AppBarNavItem({
1017
1030
  label,
@@ -1068,10 +1081,10 @@ function AppBarNavItem({
1068
1081
 
1069
1082
  // src/components/Card/index.tsx
1070
1083
  import MuiCard from "@mui/material/Card";
1071
- import { default as default53 } from "@mui/material/CardContent";
1072
- import { default as default54 } from "@mui/material/CardHeader";
1073
- import { default as default55 } from "@mui/material/CardActions";
1074
- import { default as default56 } from "@mui/material/CardMedia";
1084
+ import { default as default52 } from "@mui/material/CardContent";
1085
+ import { default as default53 } from "@mui/material/CardHeader";
1086
+ import { default as default54 } from "@mui/material/CardActions";
1087
+ import { default as default55 } from "@mui/material/CardMedia";
1075
1088
  import { jsx as jsx15 } from "react/jsx-runtime";
1076
1089
  function Card({ color = "primary", sx, ...props }) {
1077
1090
  return /* @__PURE__ */ jsx15(
@@ -1079,7 +1092,12 @@ function Card({ color = "primary", sx, ...props }) {
1079
1092
  {
1080
1093
  ...props,
1081
1094
  sx: [
1082
- color === "secondary" && { backgroundColor: "background.paper" },
1095
+ color === "secondary" && {
1096
+ backgroundColor: "background.paper",
1097
+ // Also hand the surface to a wrapped CardActionArea, which paints the
1098
+ // card's background itself (the Card goes transparent around one).
1099
+ "--forest-card-surface": "var(--mui-palette-background-paper)"
1100
+ },
1083
1101
  ...Array.isArray(sx) ? sx : [sx]
1084
1102
  ]
1085
1103
  }
@@ -1087,42 +1105,42 @@ function Card({ color = "primary", sx, ...props }) {
1087
1105
  }
1088
1106
 
1089
1107
  // src/components/CardActionArea/index.tsx
1090
- import { default as default57 } from "@mui/material/CardActionArea";
1108
+ import { default as default56 } from "@mui/material/CardActionArea";
1091
1109
 
1092
1110
  // src/components/Drawer/index.tsx
1093
1111
  import MuiDrawer from "@mui/material/Drawer";
1094
- import { default as default58 } from "@mui/material/SwipeableDrawer";
1112
+ import { default as default57 } from "@mui/material/SwipeableDrawer";
1095
1113
  import { jsx as jsx16 } from "react/jsx-runtime";
1096
1114
  function Drawer({ anchor = "right", hideBackdrop = true, ...props }) {
1097
1115
  return /* @__PURE__ */ jsx16(MuiDrawer, { anchor, hideBackdrop, ...props });
1098
1116
  }
1099
1117
 
1100
1118
  // src/components/Paper/index.tsx
1101
- import { default as default59 } from "@mui/material/Paper";
1119
+ import { default as default58 } from "@mui/material/Paper";
1102
1120
 
1103
1121
  // src/components/Alert/index.tsx
1104
- import { default as default60 } from "@mui/material/Alert";
1105
- import { default as default61 } from "@mui/material/AlertTitle";
1122
+ import { default as default59 } from "@mui/material/Alert";
1123
+ import { default as default60 } from "@mui/material/AlertTitle";
1106
1124
 
1107
1125
  // src/components/Backdrop/index.tsx
1108
- import { default as default62 } from "@mui/material/Backdrop";
1126
+ import { default as default61 } from "@mui/material/Backdrop";
1109
1127
 
1110
1128
  // src/components/Dialog/index.tsx
1111
- import { default as default63 } from "@mui/material/Dialog";
1112
- import { default as default64 } from "@mui/material/DialogTitle";
1113
- import { default as default65 } from "@mui/material/DialogContent";
1114
- import { default as default66 } from "@mui/material/DialogActions";
1115
- import { default as default67 } from "@mui/material/DialogContentText";
1129
+ import { default as default62 } from "@mui/material/Dialog";
1130
+ import { default as default63 } from "@mui/material/DialogTitle";
1131
+ import { default as default64 } from "@mui/material/DialogContent";
1132
+ import { default as default65 } from "@mui/material/DialogActions";
1133
+ import { default as default66 } from "@mui/material/DialogContentText";
1116
1134
 
1117
1135
  // src/components/Progress/index.tsx
1118
- import { default as default68 } from "@mui/material/LinearProgress";
1119
- import { default as default69 } from "@mui/material/CircularProgress";
1136
+ import { default as default67 } from "@mui/material/LinearProgress";
1137
+ import { default as default68 } from "@mui/material/CircularProgress";
1120
1138
 
1121
1139
  // src/components/Skeleton/index.tsx
1122
- import { default as default70 } from "@mui/material/Skeleton";
1140
+ import { default as default69 } from "@mui/material/Skeleton";
1123
1141
 
1124
1142
  // src/components/Modal/index.tsx
1125
- import { default as default71 } from "@mui/material/Modal";
1143
+ import { default as default70 } from "@mui/material/Modal";
1126
1144
 
1127
1145
  // src/components/Popover/index.tsx
1128
1146
  import MuiPopover from "@mui/material/Popover";
@@ -1144,57 +1162,57 @@ function Popover({ slotProps, ...props }) {
1144
1162
  }
1145
1163
 
1146
1164
  // src/components/Snackbar/index.tsx
1147
- import { default as default72 } from "@mui/material/Snackbar";
1165
+ import { default as default71 } from "@mui/material/Snackbar";
1148
1166
 
1149
1167
  // src/components/SnackbarContent/index.tsx
1150
- import { default as default73 } from "@mui/material/SnackbarContent";
1168
+ import { default as default72 } from "@mui/material/SnackbarContent";
1151
1169
 
1152
1170
  // src/components/BottomNavigation/index.tsx
1153
- import { default as default74 } from "@mui/material/BottomNavigation";
1154
- import { default as default75 } from "@mui/material/BottomNavigationAction";
1171
+ import { default as default73 } from "@mui/material/BottomNavigation";
1172
+ import { default as default74 } from "@mui/material/BottomNavigationAction";
1155
1173
 
1156
1174
  // src/components/Breadcrumbs/index.tsx
1157
- import { default as default76 } from "@mui/material/Breadcrumbs";
1175
+ import { default as default75 } from "@mui/material/Breadcrumbs";
1158
1176
 
1159
1177
  // src/components/Link/index.tsx
1160
- import { default as default77 } from "@mui/material/Link";
1178
+ import { default as default76 } from "@mui/material/Link";
1161
1179
 
1162
1180
  // src/components/Menu/index.tsx
1163
- import { default as default78 } from "@mui/material/Menu";
1164
- import { default as default79 } from "@mui/material/MenuList";
1181
+ import { default as default77 } from "@mui/material/Menu";
1182
+ import { default as default78 } from "@mui/material/MenuList";
1165
1183
 
1166
1184
  // src/components/MobileStepper/index.tsx
1167
- import { default as default80 } from "@mui/material/MobileStepper";
1185
+ import { default as default79 } from "@mui/material/MobileStepper";
1168
1186
 
1169
1187
  // src/components/Pagination/index.tsx
1170
- import { default as default81 } from "@mui/material/Pagination";
1188
+ import { default as default80 } from "@mui/material/Pagination";
1171
1189
 
1172
1190
  // src/components/PaginationItem/index.tsx
1173
- import { default as default82 } from "@mui/material/PaginationItem";
1191
+ import { default as default81 } from "@mui/material/PaginationItem";
1174
1192
 
1175
1193
  // src/components/SpeedDial/index.tsx
1176
- import { default as default83 } from "@mui/material/SpeedDial";
1177
- import { default as default84 } from "@mui/material/SpeedDialAction";
1178
- import { default as default85 } from "@mui/material/SpeedDialIcon";
1194
+ import { default as default82 } from "@mui/material/SpeedDial";
1195
+ import { default as default83 } from "@mui/material/SpeedDialAction";
1196
+ import { default as default84 } from "@mui/material/SpeedDialIcon";
1179
1197
 
1180
1198
  // src/components/Stepper/index.tsx
1181
- import { default as default86 } from "@mui/material/Stepper";
1182
- import { default as default87 } from "@mui/material/Step";
1183
- import { default as default88 } from "@mui/material/StepLabel";
1184
- import { default as default89 } from "@mui/material/StepButton";
1185
- import { default as default90 } from "@mui/material/StepConnector";
1186
- import { default as default91 } from "@mui/material/StepContent";
1187
- import { default as default92 } from "@mui/material/StepIcon";
1199
+ import { default as default85 } from "@mui/material/Stepper";
1200
+ import { default as default86 } from "@mui/material/Step";
1201
+ import { default as default87 } from "@mui/material/StepLabel";
1202
+ import { default as default88 } from "@mui/material/StepButton";
1203
+ import { default as default89 } from "@mui/material/StepConnector";
1204
+ import { default as default90 } from "@mui/material/StepContent";
1205
+ import { default as default91 } from "@mui/material/StepIcon";
1188
1206
 
1189
1207
  // src/components/Tabs/index.tsx
1190
- import { default as default93 } from "@mui/material/Tabs";
1191
- import { default as default94 } from "@mui/material/Tab";
1208
+ import { default as default92 } from "@mui/material/Tabs";
1209
+ import { default as default93 } from "@mui/material/Tab";
1192
1210
 
1193
1211
  // src/components/TabScrollButton/index.tsx
1194
- import { default as default95 } from "@mui/material/TabScrollButton";
1212
+ import { default as default94 } from "@mui/material/TabScrollButton";
1195
1213
 
1196
1214
  // src/components/Sidebar/index.tsx
1197
- import { createContext, useContext } from "react";
1215
+ import { createContext as createContext2, useContext as useContext2, useEffect, useRef, useState as useState2 } from "react";
1198
1216
  import MuiDrawer2 from "@mui/material/Drawer";
1199
1217
  import Box2 from "@mui/material/Box";
1200
1218
  import ChevronLeftOutlined from "@mui/icons-material/ChevronLeftOutlined";
@@ -1204,14 +1222,15 @@ import ListItemIcon from "@mui/material/ListItemIcon";
1204
1222
  import ListItemText from "@mui/material/ListItemText";
1205
1223
  import MuiTooltip2 from "@mui/material/Tooltip";
1206
1224
  import { jsx as jsx18, jsxs as jsxs3 } from "react/jsx-runtime";
1207
- var SidebarContext = createContext({
1225
+ var SidebarContext = createContext2({
1208
1226
  open: true,
1209
1227
  collapsedWidth: 48,
1210
1228
  expandedWidth: 240
1211
1229
  });
1212
1230
  function useSidebar() {
1213
- return useContext(SidebarContext);
1231
+ return useContext2(SidebarContext);
1214
1232
  }
1233
+ var TOGGLE_SIZE = 28;
1215
1234
  function SidebarNav({
1216
1235
  open,
1217
1236
  onOpenChange,
@@ -1222,6 +1241,7 @@ function SidebarNav({
1222
1241
  children,
1223
1242
  header,
1224
1243
  footer,
1244
+ toggleEdgeAllowance = 12,
1225
1245
  sx,
1226
1246
  ...rest
1227
1247
  }) {
@@ -1229,6 +1249,60 @@ function SidebarNav({
1229
1249
  const drawerWidth = open ? expandedWidth : collapsedWidth;
1230
1250
  const layoutWidth = isHover ? collapsedWidth : drawerWidth;
1231
1251
  const shouldShowToggle = showToggle != null ? showToggle : !isHover;
1252
+ const wrapperRef = useRef(null);
1253
+ const toggleRef = useRef(null);
1254
+ const edgeYRef = useRef(null);
1255
+ const [edgeActive, setEdgeActive] = useState2(false);
1256
+ const [toggleFocused, setToggleFocused] = useState2(false);
1257
+ const writeY = (y) => {
1258
+ edgeYRef.current = y;
1259
+ if (y === null) return;
1260
+ const el = toggleRef.current;
1261
+ if (!el) return;
1262
+ el.style.top = "0px";
1263
+ el.style.transform = `translate3d(50%, ${y - TOGGLE_SIZE / 2}px, 0)`;
1264
+ };
1265
+ const resetY = () => {
1266
+ edgeYRef.current = null;
1267
+ const el = toggleRef.current;
1268
+ if (!el) return;
1269
+ el.style.top = "";
1270
+ el.style.transform = "";
1271
+ };
1272
+ useEffect(() => {
1273
+ if (!shouldShowToggle) return;
1274
+ const onMove = (e) => {
1275
+ const el = wrapperRef.current;
1276
+ if (!el) return;
1277
+ const r = el.getBoundingClientRect();
1278
+ const withinBand = Math.abs(e.clientX - r.right) <= toggleEdgeAllowance && e.clientY >= r.top && e.clientY <= r.bottom;
1279
+ const half = TOGGLE_SIZE / 2;
1280
+ const cur = edgeYRef.current;
1281
+ const overToggle = cur !== null && Math.abs(e.clientX - r.right) <= half && Math.abs(e.clientY - (r.top + cur)) <= half;
1282
+ let next = null;
1283
+ if (withinBand || overToggle) {
1284
+ const max = Math.max(r.height - half, half);
1285
+ next = Math.min(Math.max(e.clientY - r.top, half), max);
1286
+ }
1287
+ const prev = edgeYRef.current;
1288
+ if (prev === next) return;
1289
+ if (prev !== null && next !== null && Math.abs(prev - next) < 0.5) return;
1290
+ writeY(next);
1291
+ if (prev === null !== (next === null)) setEdgeActive(next !== null);
1292
+ };
1293
+ const onLeave = () => {
1294
+ if (edgeYRef.current === null) return;
1295
+ writeY(null);
1296
+ setEdgeActive(false);
1297
+ };
1298
+ window.addEventListener("pointermove", onMove, { passive: true });
1299
+ document.addEventListener("pointerleave", onLeave);
1300
+ return () => {
1301
+ window.removeEventListener("pointermove", onMove);
1302
+ document.removeEventListener("pointerleave", onLeave);
1303
+ };
1304
+ }, [shouldShowToggle, toggleEdgeAllowance]);
1305
+ const toggleVisible = edgeActive || toggleFocused;
1232
1306
  const hoverHandlers = isHover ? {
1233
1307
  onMouseEnter: () => onOpenChange(true),
1234
1308
  onMouseLeave: () => onOpenChange(false)
@@ -1236,6 +1310,7 @@ function SidebarNav({
1236
1310
  return /* @__PURE__ */ jsx18(SidebarContext.Provider, { value: { open, collapsedWidth, expandedWidth }, children: /* @__PURE__ */ jsxs3(
1237
1311
  Box2,
1238
1312
  {
1313
+ ref: wrapperRef,
1239
1314
  sx: {
1240
1315
  position: "relative",
1241
1316
  width: layoutWidth,
@@ -1243,7 +1318,13 @@ function SidebarNav({
1243
1318
  // Match the drawer paper's width animation so the absolutely-
1244
1319
  // positioned toggle (pinned to this box's right edge) glides with the
1245
1320
  // sidebar instead of jumping. Constant in hover mode → no-op there.
1246
- transition: "width 200ms ease-in-out"
1321
+ transition: "width 200ms ease-in-out",
1322
+ // A hover-expanded sidebar has to overlay the content, which in
1323
+ // AppShell sits at drawer + 1. This lives on the wrapper rather than
1324
+ // on `& .MuiDrawer-paper` because a consumer's `sx` replaces that
1325
+ // nested key wholesale (AppShell does). Only while expanded, so the
1326
+ // resting rail still takes the content surface's shadow.
1327
+ ...isHover && open && { zIndex: (theme) => theme.zIndex.drawer + 2 }
1247
1328
  },
1248
1329
  children: [
1249
1330
  /* @__PURE__ */ jsx18(
@@ -1259,8 +1340,7 @@ function SidebarNav({
1259
1340
  width: drawerWidth,
1260
1341
  transition: "width 200ms ease-in-out",
1261
1342
  overflowX: "hidden",
1262
- boxSizing: "border-box",
1263
- ...isHover && { zIndex: (theme) => theme.zIndex.drawer + 2 }
1343
+ boxSizing: "border-box"
1264
1344
  },
1265
1345
  ...sx
1266
1346
  },
@@ -1275,53 +1355,113 @@ function SidebarNav({
1275
1355
  },
1276
1356
  children: [
1277
1357
  header && /* @__PURE__ */ jsx18(Box2, { sx: { flexShrink: 0 }, children: header }),
1278
- /* @__PURE__ */ jsx18(Box2, { sx: { flexGrow: 1, overflowY: "auto", overflowX: "hidden" }, children }),
1358
+ /* @__PURE__ */ jsx18(
1359
+ Box2,
1360
+ {
1361
+ sx: {
1362
+ flexGrow: 1,
1363
+ overflowY: "auto",
1364
+ overflowX: "hidden",
1365
+ px: 1,
1366
+ "& > .MuiList-root": { paddingInline: 0 }
1367
+ },
1368
+ children
1369
+ }
1370
+ ),
1279
1371
  footer && /* @__PURE__ */ jsx18(Box2, { sx: { flexShrink: 0 }, children: footer })
1280
1372
  ]
1281
1373
  }
1282
1374
  )
1283
1375
  }
1284
1376
  ),
1285
- shouldShowToggle && // The forest Button carries the faux-3D bevel/glaze/press, sized down
1286
- // to a square icon toggle. Face is the tonal secondary (light grey in
1287
- // light / charcoal in dark), not the primary brand fill — the toggle
1288
- // is a utility control, not a call to action.
1377
+ shouldShowToggle && // Positioning shell: pinned to the wrapper's top-right, moved down the
1378
+ // edge with a transform written by the pointermove handler (see
1379
+ // `writeY`). Only opacity transitions position snaps to the pointer
1380
+ // so the toggle appears under the cursor and tracks it 1:1.
1289
1381
  /* @__PURE__ */ jsx18(
1290
- Button,
1382
+ Box2,
1291
1383
  {
1292
- "aria-label": open ? "Collapse sidebar" : "Expand sidebar",
1293
- onClick: () => onOpenChange(!open),
1384
+ ref: toggleRef,
1294
1385
  sx: (theme) => ({
1295
1386
  position: "absolute",
1296
- top: "50%",
1297
1387
  right: 0,
1298
- transform: "translate(50%, -50%)",
1299
- zIndex: theme.zIndex.drawer + 1,
1300
- minWidth: 0,
1301
- width: 28,
1302
- height: 28,
1303
- padding: 0,
1304
- // Match the shell surface (bg.primary = lightest grey) so the
1305
- // toggle reads as part of the sidebar, not a darker chip.
1306
- backgroundColor: `var(--mui-palette-bg-primary, ${bg.primary})`,
1307
- color: `var(--mui-palette-text-primary, ${text.primary})`,
1308
- // Light-grey standard border instead of the contained bevel's
1309
- // darker greyscale (fg.tertiary) the toggle is a light utility
1310
- // control, so the heavier border read too dark.
1311
- borderColor: `var(--mui-palette-border-primary, ${border.primary})`,
1312
- "& .MuiSvgIcon-root": {
1313
- fontSize: 18
1388
+ width: TOGGLE_SIZE,
1389
+ height: TOGGLE_SIZE,
1390
+ // Resting spot for keyboard focus and touch, where no pointer
1391
+ // sets a transform: vertically centred on the edge. `writeY`
1392
+ // overrides both `top` and `transform` inline while tracking
1393
+ // and leaves them in place on hide so the exit fades in situ.
1394
+ top: "50%",
1395
+ transform: "translate3d(50%, -50%, 0)",
1396
+ // Hidden until the pointer reaches the edge band. Kept mounted so
1397
+ // it stays in the tab order and can be reached by keyboard.
1398
+ opacity: toggleVisible ? 1 : 0,
1399
+ pointerEvents: toggleVisible ? "auto" : "none",
1400
+ // Enter fast with a strong ease-out so it reads as "already
1401
+ // there"; exit a touch shorter — the user has moved on.
1402
+ transition: toggleVisible ? "opacity 120ms cubic-bezier(0.19, 1, 0.22, 1)" : "opacity 100ms ease",
1403
+ "@media (prefers-reduced-motion: reduce)": {
1404
+ transition: "none"
1314
1405
  },
1315
- "&:hover": {
1316
- backgroundColor: `var(--mui-palette-bg-quaternary, ${bg.quaternary})`,
1317
- // The contained brightness lift assumes a dark face — on the
1318
- // light-grey light-mode face it would blow out. In dark the
1319
- // hover token matches the face, so a small lift is the cue.
1320
- filter: "none",
1321
- ...theme.applyStyles("dark", { filter: "brightness(1.15)" })
1322
- }
1406
+ // No hover on touch: there is no pointer to bring the toggle out,
1407
+ // so it stays visible at its resting position.
1408
+ "@media (hover: none)": {
1409
+ opacity: 1,
1410
+ pointerEvents: "auto"
1411
+ },
1412
+ // Above both the AppShell content surface (drawer + 1, which
1413
+ // paints its shadow over the sidebar) and the hover-expanded
1414
+ // drawer (drawer + 2) — the toggle straddles the seam and has
1415
+ // to stay clickable and whole on top of both.
1416
+ zIndex: theme.zIndex.drawer + 3
1323
1417
  }),
1324
- children: open ? /* @__PURE__ */ jsx18(ChevronLeftOutlined, {}) : /* @__PURE__ */ jsx18(ChevronRightOutlined, {})
1418
+ children: /* @__PURE__ */ jsx18(
1419
+ Button,
1420
+ {
1421
+ "aria-label": open ? "Collapse sidebar" : "Expand sidebar",
1422
+ onClick: (e) => {
1423
+ onOpenChange(!open);
1424
+ writeY(null);
1425
+ setEdgeActive(false);
1426
+ if (!e.currentTarget.matches(":focus-visible")) {
1427
+ e.currentTarget.blur();
1428
+ }
1429
+ },
1430
+ onFocus: (e) => {
1431
+ const kb = e.currentTarget.matches(":focus-visible");
1432
+ if (kb) resetY();
1433
+ setToggleFocused(kb);
1434
+ },
1435
+ onBlur: () => setToggleFocused(false),
1436
+ sx: (theme) => ({
1437
+ minWidth: 0,
1438
+ width: TOGGLE_SIZE,
1439
+ height: TOGGLE_SIZE,
1440
+ padding: 0,
1441
+ transition: "background-color 300ms ease",
1442
+ // Match the shell surface (bg.primary = lightest grey) so the
1443
+ // toggle reads as part of the sidebar, not a darker chip.
1444
+ backgroundColor: `var(--mui-palette-bg-primary, ${bg.primary})`,
1445
+ color: `var(--mui-palette-text-primary, ${text.primary})`,
1446
+ // Light-grey standard border instead of the contained bevel's
1447
+ // darker greyscale (fg.tertiary) — the toggle is a light
1448
+ // utility control, so the heavier border read too dark.
1449
+ borderColor: `var(--mui-palette-border-primary, ${border.primary})`,
1450
+ "& .MuiSvgIcon-root": {
1451
+ fontSize: 18
1452
+ },
1453
+ "&:hover": {
1454
+ backgroundColor: `var(--mui-palette-bg-quaternary, ${bg.quaternary})`,
1455
+ // The contained brightness lift assumes a dark face — on the
1456
+ // light-grey light-mode face it would blow out. In dark the
1457
+ // hover token matches the face, so a small lift is the cue.
1458
+ filter: "none",
1459
+ ...theme.applyStyles("dark", { filter: "brightness(1.15)" })
1460
+ }
1461
+ }),
1462
+ children: open ? /* @__PURE__ */ jsx18(ChevronLeftOutlined, {}) : /* @__PURE__ */ jsx18(ChevronRightOutlined, {})
1463
+ }
1464
+ )
1325
1465
  }
1326
1466
  )
1327
1467
  ]
@@ -1329,8 +1469,13 @@ function SidebarNav({
1329
1469
  ) });
1330
1470
  }
1331
1471
  var itemSx = {
1332
- // Preset radius.md (4px) same corner radius as buttons and inputs.
1333
- borderRadius: "4px",
1472
+ // Off-scale on purpose: the alkemy+ preset's radius steps run 1→12, so 11px
1473
+ // sits between "3xl" (10) and "4xl" (12) with no token to name it.
1474
+ borderRadius: "11px",
1475
+ // The MuiListItemButton override sets 12px; 8px here absorbs the container's
1476
+ // new 8px gutter so the icon column stays exactly 16px from the sidebar edge,
1477
+ // where it has always been.
1478
+ paddingInline: "8px",
1334
1479
  // 4px gap between stacked items, independent of the container (List/flex).
1335
1480
  marginBottom: "4px",
1336
1481
  "&:last-of-type": { marginBottom: 0 },
@@ -1392,7 +1537,7 @@ function SidebarItem({
1392
1537
  }
1393
1538
 
1394
1539
  // src/components/AppShell/index.tsx
1395
- import { useState as useState2 } from "react";
1540
+ import { useState as useState3 } from "react";
1396
1541
  import Box3 from "@mui/material/Box";
1397
1542
  import MuiDrawer3 from "@mui/material/Drawer";
1398
1543
  import List from "@mui/material/List";
@@ -1443,8 +1588,8 @@ function AppShell({
1443
1588
  }) {
1444
1589
  const theme = useTheme();
1445
1590
  const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
1446
- const [sidebarOpen, setSidebarOpen] = useState2(defaultSidebarOpen);
1447
- const [mobileOpen, setMobileOpen] = useState2(false);
1591
+ const [sidebarOpen, setSidebarOpen] = useState3(defaultSidebarOpen);
1592
+ const [mobileOpen, setMobileOpen] = useState3(false);
1448
1593
  const navContent = nav != null ? nav : navItems && /* @__PURE__ */ jsx19(List, { children: navItems.map(({ label, icon, active, endAdornment, ...link }) => /* @__PURE__ */ jsx19(
1449
1594
  SidebarItem,
1450
1595
  {
@@ -1458,63 +1603,135 @@ function AppShell({
1458
1603
  )) });
1459
1604
  const brandEl = brand != null ? brand : /* @__PURE__ */ jsx19(ShellBrand, { product, logoVariant });
1460
1605
  const wrapLogomark = !brand && logoVariant === "logomark" && !isMobile;
1461
- return /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", flexDirection: "column", height: "100vh" }, children: [
1462
- /* @__PURE__ */ jsx19(
1463
- default51,
1606
+ return (
1607
+ // Clipping lives here rather than on the body row below, so the content
1608
+ // surface's shadow can spill up over the AppBar instead of being cut off
1609
+ // at the row's top edge.
1610
+ /* @__PURE__ */ jsxs4(
1611
+ Box3,
1464
1612
  {
1465
- position: "sticky",
1466
- elevation: 0,
1467
- sx: { zIndex: theme.zIndex.drawer + 1 },
1468
- children: /* @__PURE__ */ jsxs4(default52, { variant: "dense", sx: { px: { xs: "16px", sm: "16px" } }, children: [
1469
- /* @__PURE__ */ jsxs4(Box3, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-start", gap: 1 }, children: [
1470
- isMobile && /* @__PURE__ */ jsx19(
1471
- IconButton2,
1613
+ sx: {
1614
+ display: "flex",
1615
+ flexDirection: "column",
1616
+ height: "100vh",
1617
+ overflow: "hidden",
1618
+ // The chrome fill belongs here, not only on the AppBar and Drawer.
1619
+ // `main`'s rounded top-left corner clips its own background, and the
1620
+ // notch between that arc and the square box corner is reached by
1621
+ // neither the bar nor the sidebar — so without this, whatever sits
1622
+ // behind the shell shows through it. Storybook's docs container is
1623
+ // white, which is exactly how it surfaced.
1624
+ backgroundColor: "background.default"
1625
+ },
1626
+ children: [
1627
+ /* @__PURE__ */ jsx19(
1628
+ default50,
1629
+ {
1630
+ position: "sticky",
1631
+ elevation: 0,
1632
+ sx: { zIndex: theme.zIndex.drawer + 1, borderBottom: "none" },
1633
+ children: /* @__PURE__ */ jsxs4(default51, { variant: "dense", sx: { px: { xs: "16px", sm: "16px" } }, children: [
1634
+ /* @__PURE__ */ jsxs4(Box3, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-start", gap: 1 }, children: [
1635
+ isMobile && /* @__PURE__ */ jsx19(
1636
+ IconButton2,
1637
+ {
1638
+ variant: "icon",
1639
+ size: "small",
1640
+ color: "inherit",
1641
+ "aria-label": "Open navigation",
1642
+ onClick: () => setMobileOpen(true),
1643
+ children: /* @__PURE__ */ jsx19(MenuOutlined, { fontSize: "small" })
1644
+ }
1645
+ ),
1646
+ wrapLogomark ? /* @__PURE__ */ jsx19(Box3, { sx: { width: 48, ml: "-16px", display: "flex", justifyContent: "center" }, children: brandEl }) : brandEl
1647
+ ] }),
1648
+ /* @__PURE__ */ jsx19(Box3, { sx: { flex: 1, display: "flex", justifyContent: "center" }, children: search === true ? /* @__PURE__ */ jsx19(Search, { size: "small", placeholder: "Search\u2026", sx: { width: "100%", maxWidth: 480 } }) : search || null }),
1649
+ /* @__PURE__ */ jsxs4(Box3, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-end", gap: 1 }, children: [
1650
+ /* @__PURE__ */ jsx19(ColorModeToggle, {}),
1651
+ actions
1652
+ ] })
1653
+ ] })
1654
+ }
1655
+ ),
1656
+ /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", flexGrow: 1, minHeight: 0 }, children: [
1657
+ !isMobile && navContent && /* @__PURE__ */ jsx19(
1658
+ SidebarNav,
1472
1659
  {
1473
- variant: "icon",
1474
- size: "small",
1475
- color: "inherit",
1476
- "aria-label": "Open navigation",
1477
- onClick: () => setMobileOpen(true),
1478
- children: /* @__PURE__ */ jsx19(MenuOutlined, { fontSize: "small" })
1660
+ open: sidebarOpen,
1661
+ onOpenChange: setSidebarOpen,
1662
+ behavior: sidebarBehavior,
1663
+ sx: {
1664
+ height: "100%",
1665
+ "& .MuiDrawer-paper": {
1666
+ position: "relative",
1667
+ height: "100%",
1668
+ // Same reason as the AppBar's border: the chrome is one piece.
1669
+ borderRight: "none"
1670
+ }
1671
+ },
1672
+ children: navContent
1479
1673
  }
1480
1674
  ),
1481
- wrapLogomark ? /* @__PURE__ */ jsx19(Box3, { sx: { width: 48, ml: "-16px", display: "flex", justifyContent: "center" }, children: brandEl }) : brandEl
1675
+ /* @__PURE__ */ jsx19(
1676
+ Box3,
1677
+ {
1678
+ component: "main",
1679
+ sx: (t) => ({
1680
+ flexGrow: 1,
1681
+ overflow: "auto",
1682
+ backgroundColor: "background.paper",
1683
+ // Lift the surface above the chrome so its shadow lands ON the
1684
+ // sidebar and the AppBar rather than under them. Level with the
1685
+ // AppBar and later in the DOM, so it wins there; the hover
1686
+ // sidebar sits a level higher still and keeps overlaying content.
1687
+ position: "relative",
1688
+ zIndex: t.zIndex.drawer + 1,
1689
+ // Longhands, not `borderTop: "1px solid"` — the shorthand resets
1690
+ // border-*-color to currentColor and the hairline renders as text
1691
+ // black however `borderColor` is ordered around it.
1692
+ borderStyle: "solid",
1693
+ borderColor: "divider",
1694
+ borderTopWidth: "1px",
1695
+ borderRightWidth: 0,
1696
+ borderBottomWidth: 0,
1697
+ borderTopLeftRadius: `${container.shellRadius}px`,
1698
+ // With no sidebar below "sm" a single left corner reads lopsided,
1699
+ // so the surface rounds both top corners and drops the left edge.
1700
+ borderLeftWidth: { xs: 0, sm: "1px" },
1701
+ borderTopRightRadius: { xs: `${container.shellRadius}px`, sm: 0 },
1702
+ // Up-and-left, so the lift falls onto the chrome. In dark the
1703
+ // surface is already a step lighter than the chrome and does most
1704
+ // of the lifting itself, so the shadow only has to seat the edge.
1705
+ // Wide and low-contrast rather than tight and dark — a diffuse
1706
+ // falloff reads as lift without drawing a line.
1707
+ boxShadow: "-2px -2px 20px -16px #1018281a, -1px -1px 6px -3px #1018281c",
1708
+ // Dark keeps the same `divider` hairline as light — gray-900 on
1709
+ // gray-950 is only a ~15-level tonal step, so the line still does
1710
+ // the work of defining the edge. Only the shadow changes: one
1711
+ // contact layer, since the surface being lighter than the chrome
1712
+ // already reads as raised.
1713
+ ...t.applyStyles("dark", {
1714
+ boxShadow: "-1px -1px 6px -3px #00000059"
1715
+ })
1716
+ }),
1717
+ children
1718
+ }
1719
+ )
1482
1720
  ] }),
1483
- /* @__PURE__ */ jsx19(Box3, { sx: { flex: 1, display: "flex", justifyContent: "center" }, children: search === true ? /* @__PURE__ */ jsx19(Search, { size: "small", placeholder: "Search\u2026", sx: { width: "100%", maxWidth: 480 } }) : search || null }),
1484
- /* @__PURE__ */ jsxs4(Box3, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-end", gap: 1 }, children: [
1485
- /* @__PURE__ */ jsx19(ColorModeToggle, {}),
1486
- actions
1487
- ] })
1488
- ] })
1489
- }
1490
- ),
1491
- /* @__PURE__ */ jsxs4(Box3, { sx: { display: "flex", flexGrow: 1, overflow: "hidden" }, children: [
1492
- !isMobile && navContent && /* @__PURE__ */ jsx19(
1493
- SidebarNav,
1494
- {
1495
- open: sidebarOpen,
1496
- onOpenChange: setSidebarOpen,
1497
- behavior: sidebarBehavior,
1498
- sx: {
1499
- height: "100%",
1500
- "& .MuiDrawer-paper": { position: "relative", height: "100%" }
1501
- },
1502
- children: navContent
1503
- }
1504
- ),
1505
- /* @__PURE__ */ jsx19(Box3, { component: "main", sx: { flexGrow: 1, overflow: "auto" }, children })
1506
- ] }),
1507
- isMobile && navContent && /* @__PURE__ */ jsx19(
1508
- MuiDrawer3,
1509
- {
1510
- open: mobileOpen,
1511
- onClose: () => setMobileOpen(false),
1512
- onClick: () => setMobileOpen(false),
1513
- sx: { "& .MuiDrawer-paper": { width: 240 } },
1514
- children: navContent
1721
+ isMobile && navContent && /* @__PURE__ */ jsx19(
1722
+ MuiDrawer3,
1723
+ {
1724
+ open: mobileOpen,
1725
+ onClose: () => setMobileOpen(false),
1726
+ onClick: () => setMobileOpen(false),
1727
+ sx: { "& .MuiDrawer-paper": { width: 240 } },
1728
+ children: navContent
1729
+ }
1730
+ )
1731
+ ]
1515
1732
  }
1516
1733
  )
1517
- ] });
1734
+ );
1518
1735
  }
1519
1736
 
1520
1737
  // src/components/Page/index.tsx
@@ -1600,58 +1817,58 @@ function Page({
1600
1817
  }
1601
1818
 
1602
1819
  // src/components/Box/index.tsx
1603
- import { default as default96 } from "@mui/material/Box";
1820
+ import { default as default95 } from "@mui/material/Box";
1604
1821
 
1605
1822
  // src/components/Stack/index.tsx
1606
- import { default as default97 } from "@mui/material/Stack";
1823
+ import { default as default96 } from "@mui/material/Stack";
1607
1824
 
1608
1825
  // src/components/Grid/index.tsx
1609
- import { default as default98 } from "@mui/material/Grid";
1826
+ import { default as default97 } from "@mui/material/Grid";
1610
1827
 
1611
1828
  // src/components/Container/index.tsx
1612
- import { default as default99 } from "@mui/material/Container";
1829
+ import { default as default98 } from "@mui/material/Container";
1613
1830
 
1614
1831
  // src/components/Collapse/index.tsx
1615
- import { default as default100 } from "@mui/material/Collapse";
1832
+ import { default as default99 } from "@mui/material/Collapse";
1616
1833
 
1617
1834
  // src/components/Fade/index.tsx
1618
- import { default as default101 } from "@mui/material/Fade";
1835
+ import { default as default100 } from "@mui/material/Fade";
1619
1836
 
1620
1837
  // src/components/Grow/index.tsx
1621
- import { default as default102 } from "@mui/material/Grow";
1838
+ import { default as default101 } from "@mui/material/Grow";
1622
1839
 
1623
1840
  // src/components/Slide/index.tsx
1624
- import { default as default103 } from "@mui/material/Slide";
1841
+ import { default as default102 } from "@mui/material/Slide";
1625
1842
 
1626
1843
  // src/components/Zoom/index.tsx
1627
- import { default as default104 } from "@mui/material/Zoom";
1844
+ import { default as default103 } from "@mui/material/Zoom";
1628
1845
 
1629
1846
  // src/components/ButtonBase/index.tsx
1630
- import { default as default105 } from "@mui/material/ButtonBase";
1847
+ import { default as default104 } from "@mui/material/ButtonBase";
1631
1848
 
1632
1849
  // src/components/ClickAwayListener/index.tsx
1633
- import { default as default106 } from "@mui/material/ClickAwayListener";
1850
+ import { default as default105 } from "@mui/material/ClickAwayListener";
1634
1851
 
1635
1852
  // src/components/GlobalStyles/index.tsx
1636
- import { default as default107 } from "@mui/material/GlobalStyles";
1853
+ import { default as default106 } from "@mui/material/GlobalStyles";
1637
1854
 
1638
1855
  // src/components/NoSsr/index.tsx
1639
- import { default as default108 } from "@mui/material/NoSsr";
1856
+ import { default as default107 } from "@mui/material/NoSsr";
1640
1857
 
1641
1858
  // src/components/Popper/index.tsx
1642
- import { default as default109 } from "@mui/material/Popper";
1859
+ import { default as default108 } from "@mui/material/Popper";
1643
1860
 
1644
1861
  // src/components/Portal/index.tsx
1645
- import { default as default110 } from "@mui/material/Portal";
1862
+ import { default as default109 } from "@mui/material/Portal";
1646
1863
 
1647
1864
  // src/components/Slider/index.tsx
1648
- import { default as default111 } from "@mui/material/Slider";
1865
+ import { default as default110 } from "@mui/material/Slider";
1649
1866
 
1650
1867
  // src/components/SvgIcon/index.tsx
1651
- import { default as default112 } from "@mui/material/SvgIcon";
1868
+ import { default as default111 } from "@mui/material/SvgIcon";
1652
1869
 
1653
1870
  // src/components/TextareaAutosize/index.tsx
1654
- import { default as default113 } from "@mui/material/TextareaAutosize";
1871
+ import { default as default112 } from "@mui/material/TextareaAutosize";
1655
1872
 
1656
1873
  // src/components/Charts/LineChart.tsx
1657
1874
  import {
@@ -2216,43 +2433,43 @@ import { useScrollTrigger } from "@mui/material";
2216
2433
  import { useFormControl } from "@mui/material";
2217
2434
  import { useTheme as useTheme9 } from "@mui/material";
2218
2435
  export {
2219
- default47 as Accordion,
2220
- default50 as AccordionActions,
2221
- default49 as AccordionDetails,
2222
- default48 as AccordionSummary,
2223
- default60 as Alert,
2224
- default61 as AlertTitle,
2436
+ default46 as Accordion,
2437
+ default49 as AccordionActions,
2438
+ default48 as AccordionDetails,
2439
+ default47 as AccordionSummary,
2440
+ default59 as Alert,
2441
+ default60 as AlertTitle,
2225
2442
  AnimatedArea,
2226
2443
  AnimatedLine,
2227
- default51 as AppBar,
2444
+ default50 as AppBar,
2228
2445
  AppBarNavItem,
2229
2446
  AppShell,
2230
2447
  AreaElement,
2231
2448
  AreaElementPath,
2232
2449
  AreaPlot,
2233
2450
  default2 as Autocomplete,
2234
- default21 as Avatar,
2235
- default22 as AvatarGroup,
2236
- default62 as Backdrop,
2237
- default23 as Badge,
2451
+ default20 as Avatar,
2452
+ default21 as AvatarGroup,
2453
+ default61 as Backdrop,
2454
+ default22 as Badge,
2238
2455
  BarChart,
2239
2456
  BarElement,
2240
2457
  BarElementPath,
2241
2458
  BarLabel,
2242
2459
  BarPlot,
2243
- default74 as BottomNavigation,
2244
- default75 as BottomNavigationAction,
2245
- default96 as Box,
2246
- default76 as Breadcrumbs,
2460
+ default73 as BottomNavigation,
2461
+ default74 as BottomNavigationAction,
2462
+ default95 as Box,
2463
+ default75 as Breadcrumbs,
2247
2464
  Button,
2248
- default105 as ButtonBase,
2465
+ default104 as ButtonBase,
2249
2466
  ButtonGroup,
2250
2467
  Card,
2251
- default57 as CardActionArea,
2252
- default55 as CardActions,
2253
- default53 as CardContent,
2254
- default54 as CardHeader,
2255
- default56 as CardMedia,
2468
+ default56 as CardActionArea,
2469
+ default54 as CardActions,
2470
+ default52 as CardContent,
2471
+ default53 as CardHeader,
2472
+ default55 as CardMedia,
2256
2473
  ChartContainer,
2257
2474
  ChartsAxis,
2258
2475
  ChartsAxisHighlight,
@@ -2277,81 +2494,81 @@ export {
2277
2494
  ChartsYAxis,
2278
2495
  default3 as Checkbox,
2279
2496
  Chip,
2280
- default69 as CircularProgress,
2281
- default106 as ClickAwayListener,
2282
- default100 as Collapse,
2283
- default99 as Container,
2497
+ default68 as CircularProgress,
2498
+ default105 as ClickAwayListener,
2499
+ default99 as Collapse,
2500
+ default98 as Container,
2284
2501
  ContinuousColorLegend,
2285
2502
  DataGrid,
2286
2503
  DatePicker,
2287
2504
  DefaultChartsAxisTooltipContent,
2288
2505
  DefaultChartsItemTooltipContent,
2289
2506
  DefaultChartsLegend,
2290
- default63 as Dialog,
2291
- default66 as DialogActions,
2292
- default65 as DialogContent,
2293
- default67 as DialogContentText,
2294
- default64 as DialogTitle,
2295
- default24 as Divider,
2507
+ default62 as Dialog,
2508
+ default65 as DialogActions,
2509
+ default64 as DialogContent,
2510
+ default66 as DialogContentText,
2511
+ default63 as DialogTitle,
2512
+ default23 as Divider,
2296
2513
  Drawer,
2297
2514
  Fab,
2298
- default101 as Fade,
2299
- default20 as FilledInput,
2515
+ default100 as Fade,
2516
+ default19 as FilledInput,
2300
2517
  ForestProvider,
2301
- default11 as FormControl,
2302
- default12 as FormControlLabel,
2303
- default13 as FormGroup,
2304
- default14 as FormHelperText,
2305
- default15 as FormLabel,
2518
+ default10 as FormControl,
2519
+ default11 as FormControlLabel,
2520
+ default12 as FormGroup,
2521
+ default13 as FormHelperText,
2522
+ default14 as FormLabel,
2306
2523
  Gauge,
2307
2524
  GaugeContainer,
2308
2525
  GaugeReferenceArc,
2309
2526
  GaugeValueArc,
2310
2527
  GaugeValueText,
2311
- default107 as GlobalStyles,
2312
- default98 as Grid,
2313
- default102 as Grow,
2528
+ default106 as GlobalStyles,
2529
+ default97 as Grid,
2530
+ default101 as Grow,
2314
2531
  HighlightedProvider,
2315
2532
  IconButton2 as IconButton,
2316
- default25 as ImageList,
2317
- default26 as ImageListItem,
2318
- default27 as ImageListItemBar,
2533
+ default24 as ImageList,
2534
+ default25 as ImageListItem,
2535
+ default26 as ImageListItemBar,
2319
2536
  InitColorSchemeScript,
2320
2537
  default9 as Input,
2321
- default16 as InputAdornment,
2322
- default17 as InputBase,
2323
- default18 as InputLabel,
2538
+ default15 as InputAdornment,
2539
+ default16 as InputBase,
2540
+ default17 as InputLabel,
2324
2541
  LineChart,
2325
2542
  LineElement,
2326
2543
  LineElementPath,
2327
2544
  LineHighlightElement,
2328
2545
  LineHighlightPlot,
2329
2546
  LinePlot,
2330
- default68 as LinearProgress,
2331
- default77 as Link,
2332
- default28 as List,
2333
- default29 as ListItem,
2334
- default33 as ListItemAvatar,
2335
- default30 as ListItemButton,
2336
- default31 as ListItemIcon,
2337
- default35 as ListItemSecondaryAction,
2338
- default32 as ListItemText,
2339
- default34 as ListSubheader,
2547
+ default67 as LinearProgress,
2548
+ default76 as Link,
2549
+ default27 as List,
2550
+ default28 as ListItem,
2551
+ default32 as ListItemAvatar,
2552
+ default29 as ListItemButton,
2553
+ default30 as ListItemIcon,
2554
+ default34 as ListItemSecondaryAction,
2555
+ default31 as ListItemText,
2556
+ default33 as ListSubheader,
2340
2557
  Logo,
2341
2558
  MarkElement,
2342
2559
  MarkPlot,
2343
- default78 as Menu,
2560
+ default77 as Menu,
2344
2561
  default6 as MenuItem,
2345
- default79 as MenuList,
2346
- default80 as MobileStepper,
2347
- default71 as Modal,
2562
+ default78 as MenuList,
2563
+ default79 as MobileStepper,
2564
+ default70 as Modal,
2348
2565
  MultiSelect,
2349
- default108 as NoSsr,
2350
- default19 as OutlinedInput,
2566
+ default107 as NoSsr,
2567
+ default18 as OutlinedInput,
2351
2568
  Page,
2352
- default81 as Pagination,
2353
- default82 as PaginationItem,
2354
- default59 as Paper,
2569
+ default80 as Pagination,
2570
+ default81 as PaginationItem,
2571
+ default58 as Paper,
2355
2572
  PieArc,
2356
2573
  PieArcLabel,
2357
2574
  PieArcLabelPlot,
@@ -2360,11 +2577,11 @@ export {
2360
2577
  PiePlot,
2361
2578
  PiecewiseColorLegend,
2362
2579
  Popover,
2363
- default109 as Popper,
2364
- default110 as Portal,
2580
+ default108 as Popper,
2581
+ default109 as Portal,
2365
2582
  default5 as Radio,
2366
2583
  default4 as RadioGroup,
2367
- default36 as Rating,
2584
+ default35 as Rating,
2368
2585
  ResponsiveChartContainer,
2369
2586
  Scatter,
2370
2587
  ScatterChart,
@@ -2373,46 +2590,46 @@ export {
2373
2590
  Select,
2374
2591
  SidebarItem,
2375
2592
  SidebarNav,
2376
- default70 as Skeleton,
2377
- default103 as Slide,
2378
- default111 as Slider,
2379
- default72 as Snackbar,
2380
- default73 as SnackbarContent,
2593
+ default69 as Skeleton,
2594
+ default102 as Slide,
2595
+ default110 as Slider,
2596
+ default71 as Snackbar,
2597
+ default72 as SnackbarContent,
2381
2598
  SparkLineChart,
2382
- default83 as SpeedDial,
2383
- default84 as SpeedDialAction,
2384
- default85 as SpeedDialIcon,
2385
- default97 as Stack,
2386
- default87 as Step,
2387
- default89 as StepButton,
2388
- default90 as StepConnector,
2389
- default91 as StepContent,
2390
- default92 as StepIcon,
2391
- default88 as StepLabel,
2392
- default86 as Stepper,
2393
- default112 as SvgIcon,
2394
- default58 as SwipeableDrawer,
2599
+ default82 as SpeedDial,
2600
+ default83 as SpeedDialAction,
2601
+ default84 as SpeedDialIcon,
2602
+ default96 as Stack,
2603
+ default86 as Step,
2604
+ default88 as StepButton,
2605
+ default89 as StepConnector,
2606
+ default90 as StepContent,
2607
+ default91 as StepIcon,
2608
+ default87 as StepLabel,
2609
+ default85 as Stepper,
2610
+ default111 as SvgIcon,
2611
+ default57 as SwipeableDrawer,
2395
2612
  default7 as Switch,
2396
- default94 as Tab,
2397
- default95 as TabScrollButton,
2398
- default37 as Table,
2399
- default38 as TableBody,
2400
- default39 as TableCell,
2401
- default40 as TableContainer,
2402
- default43 as TableFooter,
2403
- default41 as TableHead,
2404
- default44 as TablePagination,
2405
- default42 as TableRow,
2406
- default45 as TableSortLabel,
2407
- default93 as Tabs,
2613
+ default93 as Tab,
2614
+ default94 as TabScrollButton,
2615
+ default36 as Table,
2616
+ default37 as TableBody,
2617
+ default38 as TableCell,
2618
+ default39 as TableContainer,
2619
+ default42 as TableFooter,
2620
+ default40 as TableHead,
2621
+ default43 as TablePagination,
2622
+ default41 as TableRow,
2623
+ default44 as TableSortLabel,
2624
+ default92 as Tabs,
2408
2625
  default8 as TextField,
2409
- default113 as TextareaAutosize,
2626
+ default112 as TextareaAutosize,
2410
2627
  ToggleButton,
2411
- default10 as ToggleButtonGroup,
2412
- default52 as Toolbar,
2628
+ ToggleButtonGroup,
2629
+ default51 as Toolbar,
2413
2630
  Tooltip,
2414
- default46 as Typography,
2415
- default104 as Zoom,
2631
+ default45 as Typography,
2632
+ default103 as Zoom,
2416
2633
  alpha,
2417
2634
  avatarColors,
2418
2635
  base,