@matteoaliano/forest-ui 1.2.0 → 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/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: () => Box5,
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: () => 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: () => 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: () => 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: () => 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: () => 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: () => 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
- // Disabled parity with the Button variants: MUI IconButton's own
902
- // .Mui-disabled (transparent bg + action.disabled icon) ties with the
903
- // variant faces at (0,2,0) and loses on insertion order pin the
904
- // disabled treatment one class higher.
905
- "&.ForestIconButton-contained.Mui-disabled": {
906
- backgroundColor: (theme.vars || theme).palette.action.disabledBackground,
907
- color: (theme.vars || theme).palette.action.disabled
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" }
@@ -1368,16 +1401,16 @@ function buildComponents(tokens2) {
1368
1401
  borderTopRightRadius: radius4.md
1369
1402
  }
1370
1403
  },
1371
- // Disabled parity with the disabled contained Button: greyed face +
1372
- // disabled fg, bevel geometry retained. MUI's own .Mui-disabled rule
1373
- // only swaps color and border-shorthands the bevel away — and ties
1374
- // with .Mui-selected at (0,2,0) — so this block sits AFTER selected
1375
- // 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.
1376
1409
  "&.Mui-disabled": {
1377
- backgroundColor: (theme.vars || theme).palette.action.disabledBackground,
1410
+ backgroundColor: "transparent",
1378
1411
  color: (theme.vars || theme).palette.action.disabled,
1379
1412
  borderStyle: "solid",
1380
- borderColor: fg4.tertiary,
1413
+ borderColor: border4.disabled,
1381
1414
  borderTopWidth: 1,
1382
1415
  borderRightWidth: 1,
1383
1416
  borderLeftWidth: 1,
@@ -4411,10 +4444,6 @@ function MultiSelect({
4411
4444
 
4412
4445
  // src/components/Switch/index.tsx
4413
4446
  var import_Switch = __toESM(require("@mui/material/Switch"));
4414
- var import_jsx_runtime7 = require("react/jsx-runtime");
4415
- function Switch(props) {
4416
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Switch.default, { ...props });
4417
- }
4418
4447
 
4419
4448
  // src/components/TextField/index.tsx
4420
4449
  var import_TextField = __toESM(require("@mui/material/TextField"));
@@ -4426,7 +4455,7 @@ var import_InputAdornment = __toESM(require("@mui/material/InputAdornment"));
4426
4455
  var import_IconButton = __toESM(require("@mui/material/IconButton"));
4427
4456
  var import_Search = __toESM(require("@mui/icons-material/Search"));
4428
4457
  var import_Clear = __toESM(require("@mui/icons-material/Clear"));
4429
- var import_jsx_runtime8 = require("react/jsx-runtime");
4458
+ var import_jsx_runtime7 = require("react/jsx-runtime");
4430
4459
  function Search({
4431
4460
  value: controlledValue,
4432
4461
  onChange,
@@ -4450,7 +4479,7 @@ function Search({
4450
4479
  if (!isControlled) setInternalValue("");
4451
4480
  onClear == null ? void 0 : onClear();
4452
4481
  }, [isControlled, onClear]);
4453
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
4482
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
4454
4483
  import_TextField2.default,
4455
4484
  {
4456
4485
  variant,
@@ -4466,15 +4495,15 @@ function Search({
4466
4495
  gap: 0,
4467
4496
  "& .MuiOutlinedInput-input": { pl: "8px" }
4468
4497
  },
4469
- startAdornment: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_InputAdornment.default, { position: "start", sx: { mr: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Search.default, { sx: { fontSize: 20, color: "text.placeholder" } }) }),
4470
- endAdornment: currentValue ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_InputAdornment.default, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
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)(
4471
4500
  import_IconButton.default,
4472
4501
  {
4473
4502
  "aria-label": "clear search",
4474
4503
  onClick: handleClear,
4475
4504
  edge: "end",
4476
4505
  size: "small",
4477
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Clear.default, { fontSize: "small" })
4506
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Clear.default, { fontSize: "small" })
4478
4507
  }
4479
4508
  ) }) : null,
4480
4509
  ...typeof (slotProps == null ? void 0 : slotProps.input) === "object" ? slotProps.input : {}
@@ -4490,14 +4519,14 @@ var import_InputBase = __toESM(require("@mui/material/InputBase"));
4490
4519
 
4491
4520
  // src/components/IconButton/index.tsx
4492
4521
  var import_IconButton2 = __toESM(require("@mui/material/IconButton"));
4493
- var import_jsx_runtime9 = require("react/jsx-runtime");
4522
+ var import_jsx_runtime8 = require("react/jsx-runtime");
4494
4523
  function IconButton2({
4495
- variant = "text",
4524
+ variant = "contained",
4496
4525
  className,
4497
4526
  ...props
4498
4527
  }) {
4499
- const cls = variant === "text" ? className : ["ForestIconButton", `ForestIconButton-${variant}`, className].filter(Boolean).join(" ");
4500
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_IconButton2.default, { className: cls, ...props });
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 });
4501
4530
  }
4502
4531
 
4503
4532
  // src/components/Logo/index.tsx
@@ -4760,7 +4789,7 @@ function scopeArtworkIds(inner, id) {
4760
4789
  }
4761
4790
 
4762
4791
  // src/components/Logo/index.tsx
4763
- var import_jsx_runtime10 = require("react/jsx-runtime");
4792
+ var import_jsx_runtime9 = require("react/jsx-runtime");
4764
4793
  function resolveArtwork(product, variant, color) {
4765
4794
  const variantArt = PRODUCT_ARTWORK[product][variant];
4766
4795
  if (variant === "logomark") {
@@ -4780,7 +4809,7 @@ var Logo = (0, import_react3.forwardRef)(
4780
4809
  () => artwork ? scopeArtworkIds(artwork.inner, id) : "",
4781
4810
  [artwork, id]
4782
4811
  );
4783
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
4812
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
4784
4813
  import_material.Box,
4785
4814
  {
4786
4815
  component: "svg",
@@ -4810,9 +4839,9 @@ var import_ToggleButtonGroup = __toESM(require("@mui/material/ToggleButtonGroup"
4810
4839
  var import_DatePicker = require("@mui/x-date-pickers/DatePicker");
4811
4840
  var import_LocalizationProvider = require("@mui/x-date-pickers/LocalizationProvider");
4812
4841
  var import_AdapterDayjs = require("@mui/x-date-pickers/AdapterDayjs");
4813
- var import_jsx_runtime11 = require("react/jsx-runtime");
4842
+ var import_jsx_runtime10 = require("react/jsx-runtime");
4814
4843
  function DatePicker(props) {
4815
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_LocalizationProvider.LocalizationProvider, { dateAdapter: import_AdapterDayjs.AdapterDayjs, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_DatePicker.DatePicker, { ...props }) });
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 }) });
4816
4845
  }
4817
4846
 
4818
4847
  // src/components/FormControl/index.tsx
@@ -4846,7 +4875,7 @@ var import_Badge = __toESM(require("@mui/material/Badge"));
4846
4875
  var import_Chip = __toESM(require("@mui/material/Chip"));
4847
4876
  var import_CloseOutlined = __toESM(require("@mui/icons-material/CloseOutlined"));
4848
4877
  var import_styles3 = require("@mui/material/styles");
4849
- var import_jsx_runtime12 = require("react/jsx-runtime");
4878
+ var import_jsx_runtime11 = require("react/jsx-runtime");
4850
4879
  var customChipScales = {
4851
4880
  teal: misc.teal,
4852
4881
  orange: misc.orange,
@@ -4859,10 +4888,10 @@ var customChipScales = {
4859
4888
  rose: misc.rose,
4860
4889
  blueLight: misc.blueLight
4861
4890
  };
4862
- function Chip({ color, deleteIcon = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_CloseOutlined.default, {}), sx, ...props }) {
4891
+ function Chip({ color, deleteIcon = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_CloseOutlined.default, {}), sx, ...props }) {
4863
4892
  const scale = color && color in customChipScales ? customChipScales[color] : void 0;
4864
4893
  if (scale) {
4865
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
4894
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
4866
4895
  import_Chip.default,
4867
4896
  {
4868
4897
  deleteIcon,
@@ -4902,7 +4931,7 @@ function Chip({ color, deleteIcon = /* @__PURE__ */ (0, import_jsx_runtime12.jsx
4902
4931
  }
4903
4932
  );
4904
4933
  }
4905
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
4934
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
4906
4935
  import_Chip.default,
4907
4936
  {
4908
4937
  color,
@@ -4950,9 +4979,9 @@ var import_x_data_grid = require("@mui/x-data-grid");
4950
4979
 
4951
4980
  // src/components/Tooltip/index.tsx
4952
4981
  var import_Tooltip = __toESM(require("@mui/material/Tooltip"));
4953
- var import_jsx_runtime13 = require("react/jsx-runtime");
4982
+ var import_jsx_runtime12 = require("react/jsx-runtime");
4954
4983
  function Tooltip({ arrow = true, ...props }) {
4955
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_Tooltip.default, { arrow, ...props });
4984
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_Tooltip.default, { arrow, ...props });
4956
4985
  }
4957
4986
 
4958
4987
  // src/components/Typography/index.tsx
@@ -4968,7 +4997,7 @@ var import_AccordionActions = __toESM(require("@mui/material/AccordionActions"))
4968
4997
  var import_Button3 = __toESM(require("@mui/material/Button"));
4969
4998
  var import_AppBar = __toESM(require("@mui/material/AppBar"));
4970
4999
  var import_Toolbar = __toESM(require("@mui/material/Toolbar"));
4971
- var import_jsx_runtime14 = require("react/jsx-runtime");
5000
+ var import_jsx_runtime13 = require("react/jsx-runtime");
4972
5001
  function AppBarNavItem({
4973
5002
  label,
4974
5003
  icon,
@@ -4977,7 +5006,7 @@ function AppBarNavItem({
4977
5006
  sx,
4978
5007
  ...props
4979
5008
  }) {
4980
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5009
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
4981
5010
  import_Button3.default,
4982
5011
  {
4983
5012
  variant: "text",
@@ -5028,9 +5057,9 @@ var import_CardContent = __toESM(require("@mui/material/CardContent"));
5028
5057
  var import_CardHeader = __toESM(require("@mui/material/CardHeader"));
5029
5058
  var import_CardActions = __toESM(require("@mui/material/CardActions"));
5030
5059
  var import_CardMedia = __toESM(require("@mui/material/CardMedia"));
5031
- var import_jsx_runtime15 = require("react/jsx-runtime");
5060
+ var import_jsx_runtime14 = require("react/jsx-runtime");
5032
5061
  function Card({ color = "primary", sx, ...props }) {
5033
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5062
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5034
5063
  import_Card.default,
5035
5064
  {
5036
5065
  ...props,
@@ -5048,17 +5077,13 @@ var import_CardActionArea = __toESM(require("@mui/material/CardActionArea"));
5048
5077
  // src/components/Drawer/index.tsx
5049
5078
  var import_Drawer = __toESM(require("@mui/material/Drawer"));
5050
5079
  var import_SwipeableDrawer = __toESM(require("@mui/material/SwipeableDrawer"));
5051
- var import_jsx_runtime16 = require("react/jsx-runtime");
5080
+ var import_jsx_runtime15 = require("react/jsx-runtime");
5052
5081
  function Drawer({ anchor = "right", hideBackdrop = true, ...props }) {
5053
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_Drawer.default, { anchor, hideBackdrop, ...props });
5082
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_Drawer.default, { anchor, hideBackdrop, ...props });
5054
5083
  }
5055
5084
 
5056
5085
  // src/components/Paper/index.tsx
5057
5086
  var import_Paper = __toESM(require("@mui/material/Paper"));
5058
- var import_jsx_runtime17 = require("react/jsx-runtime");
5059
- function Paper(props) {
5060
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_Paper.default, { ...props });
5061
- }
5062
5087
 
5063
5088
  // src/components/Alert/index.tsx
5064
5089
  var import_Alert = __toESM(require("@mui/material/Alert"));
@@ -5086,9 +5111,9 @@ var import_Modal = __toESM(require("@mui/material/Modal"));
5086
5111
 
5087
5112
  // src/components/Popover/index.tsx
5088
5113
  var import_Popover = __toESM(require("@mui/material/Popover"));
5089
- var import_jsx_runtime18 = require("react/jsx-runtime");
5114
+ var import_jsx_runtime16 = require("react/jsx-runtime");
5090
5115
  function Popover({ slotProps, ...props }) {
5091
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
5116
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
5092
5117
  import_Popover.default,
5093
5118
  {
5094
5119
  ...props,
@@ -5163,7 +5188,7 @@ var import_ListItemButton2 = __toESM(require("@mui/material/ListItemButton"));
5163
5188
  var import_ListItemIcon2 = __toESM(require("@mui/material/ListItemIcon"));
5164
5189
  var import_ListItemText3 = __toESM(require("@mui/material/ListItemText"));
5165
5190
  var import_Tooltip2 = __toESM(require("@mui/material/Tooltip"));
5166
- var import_jsx_runtime19 = require("react/jsx-runtime");
5191
+ var import_jsx_runtime17 = require("react/jsx-runtime");
5167
5192
  var SidebarContext = (0, import_react4.createContext)({
5168
5193
  open: true,
5169
5194
  collapsedWidth: 48,
@@ -5193,7 +5218,7 @@ function SidebarNav({
5193
5218
  onMouseEnter: () => onOpenChange(true),
5194
5219
  onMouseLeave: () => onOpenChange(false)
5195
5220
  } : {};
5196
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(SidebarContext.Provider, { value: { open, collapsedWidth, expandedWidth }, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5221
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(SidebarContext.Provider, { value: { open, collapsedWidth, expandedWidth }, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
5197
5222
  import_Box.default,
5198
5223
  {
5199
5224
  sx: {
@@ -5206,7 +5231,7 @@ function SidebarNav({
5206
5231
  transition: "width 200ms ease-in-out"
5207
5232
  },
5208
5233
  children: [
5209
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5234
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
5210
5235
  import_Drawer2.default,
5211
5236
  {
5212
5237
  variant: "permanent",
@@ -5224,7 +5249,7 @@ function SidebarNav({
5224
5249
  },
5225
5250
  ...sx
5226
5251
  },
5227
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5252
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
5228
5253
  import_Box.default,
5229
5254
  {
5230
5255
  sx: {
@@ -5234,9 +5259,9 @@ function SidebarNav({
5234
5259
  overflow: "hidden"
5235
5260
  },
5236
5261
  children: [
5237
- header && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Box.default, { sx: { flexShrink: 0 }, children: header }),
5238
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Box.default, { sx: { flexGrow: 1, overflowY: "auto", overflowX: "hidden" }, children }),
5239
- footer && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Box.default, { sx: { flexShrink: 0 }, children: footer })
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 })
5240
5265
  ]
5241
5266
  }
5242
5267
  )
@@ -5246,7 +5271,7 @@ function SidebarNav({
5246
5271
  // to a square icon toggle. Face is the tonal secondary (light grey in
5247
5272
  // light / charcoal in dark), not the primary brand fill — the toggle
5248
5273
  // is a utility control, not a call to action.
5249
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5274
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
5250
5275
  Button,
5251
5276
  {
5252
5277
  "aria-label": open ? "Collapse sidebar" : "Expand sidebar",
@@ -5279,7 +5304,7 @@ function SidebarNav({
5279
5304
  ...theme.applyStyles("dark", { filter: "brightness(1.15)" })
5280
5305
  }
5281
5306
  }),
5282
- children: open ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_ChevronLeftOutlined.default, {}) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_ChevronRightOutlined.default, {})
5307
+ children: open ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_ChevronLeftOutlined.default, {}) : /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_ChevronRightOutlined.default, {})
5283
5308
  }
5284
5309
  )
5285
5310
  ]
@@ -5323,7 +5348,7 @@ function SidebarItem({
5323
5348
  }) {
5324
5349
  const { open } = useSidebar();
5325
5350
  if (!open) {
5326
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Tooltip2.default, { title: label, placement: "right", arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5351
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_Tooltip2.default, { title: label, placement: "right", arrow: true, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
5327
5352
  import_ListItemButton2.default,
5328
5353
  {
5329
5354
  ...rest,
@@ -5338,13 +5363,13 @@ function SidebarItem({
5338
5363
  marginInline: "auto",
5339
5364
  ...sx
5340
5365
  },
5341
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_ListItemIcon2.default, { sx: { minWidth: "unset", margin: 0, "& .MuiSvgIcon-root": { fontSize: 20 } }, children: icon })
5366
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_ListItemIcon2.default, { sx: { minWidth: "unset", margin: 0, "& .MuiSvgIcon-root": { fontSize: 20 } }, children: icon })
5342
5367
  }
5343
5368
  ) });
5344
5369
  }
5345
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_ListItemButton2.default, { ...rest, sx: { ...itemSx, height: 32, ...sx }, children: [
5346
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_ListItemIcon2.default, { sx: { minWidth: 32, "& .MuiSvgIcon-root": { fontSize: 20 } }, children: icon }),
5347
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_ListItemText3.default, { primary: label }),
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 }),
5348
5373
  endAdornment
5349
5374
  ] });
5350
5375
  }
@@ -5359,19 +5384,20 @@ var import_styles4 = require("@mui/material/styles");
5359
5384
  var import_MenuOutlined = __toESM(require("@mui/icons-material/MenuOutlined"));
5360
5385
  var import_DarkModeOutlined = __toESM(require("@mui/icons-material/DarkModeOutlined"));
5361
5386
  var import_LightModeOutlined = __toESM(require("@mui/icons-material/LightModeOutlined"));
5362
- var import_jsx_runtime20 = require("react/jsx-runtime");
5387
+ var import_jsx_runtime18 = require("react/jsx-runtime");
5363
5388
  function ColorModeToggle() {
5364
5389
  const { mode, systemMode, setMode } = (0, import_styles4.useColorScheme)();
5365
5390
  const resolved = mode === "system" ? systemMode : mode;
5366
5391
  const isDark = resolved === "dark";
5367
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Tooltip, { title: isDark ? "Switch to light mode" : "Switch to dark mode", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
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)(
5368
5393
  IconButton2,
5369
5394
  {
5395
+ variant: "icon",
5370
5396
  size: "small",
5371
5397
  color: "inherit",
5372
5398
  "aria-label": "Toggle color mode",
5373
5399
  onClick: () => setMode(isDark ? "light" : "dark"),
5374
- children: isDark ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_LightModeOutlined.default, { fontSize: "small" }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_DarkModeOutlined.default, { fontSize: "small" })
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" })
5375
5401
  }
5376
5402
  ) });
5377
5403
  }
@@ -5382,9 +5408,9 @@ function ShellBrand({
5382
5408
  const { mode, systemMode } = (0, import_styles4.useColorScheme)();
5383
5409
  const dark = (mode === "system" ? systemMode : mode) === "dark";
5384
5410
  if (logoVariant === "full") {
5385
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Logo, { product, variant: "logo", color: dark ? "negative" : "positive" });
5411
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Logo, { product, variant: "logo", color: dark ? "negative" : "positive" });
5386
5412
  }
5387
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Logo, { product, variant: "logomark", color: dark ? "negative" : "default" });
5413
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Logo, { product, variant: "logomark", color: "default" });
5388
5414
  }
5389
5415
  function AppShell({
5390
5416
  navItems,
@@ -5402,7 +5428,7 @@ function AppShell({
5402
5428
  const isMobile = (0, import_useMediaQuery.default)(theme.breakpoints.down("sm"));
5403
5429
  const [sidebarOpen, setSidebarOpen] = (0, import_react5.useState)(defaultSidebarOpen);
5404
5430
  const [mobileOpen, setMobileOpen] = (0, import_react5.useState)(false);
5405
- const navContent = nav != null ? nav : navItems && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_List2.default, { children: navItems.map(({ label, icon, active, endAdornment, ...link }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
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)(
5406
5432
  SidebarItem,
5407
5433
  {
5408
5434
  icon,
@@ -5413,39 +5439,40 @@ function AppShell({
5413
5439
  },
5414
5440
  label
5415
5441
  )) });
5416
- const brandEl = brand != null ? brand : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ShellBrand, { product, logoVariant });
5442
+ const brandEl = brand != null ? brand : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ShellBrand, { product, logoVariant });
5417
5443
  const wrapLogomark = !brand && logoVariant === "logomark" && !isMobile;
5418
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Box2.default, { sx: { display: "flex", flexDirection: "column", height: "100vh" }, children: [
5419
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
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)(
5420
5446
  import_AppBar.default,
5421
5447
  {
5422
5448
  position: "sticky",
5423
5449
  elevation: 0,
5424
5450
  sx: { zIndex: theme.zIndex.drawer + 1 },
5425
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Toolbar.default, { variant: "dense", sx: { px: { xs: "16px", sm: "16px" } }, children: [
5426
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Box2.default, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-start", gap: 1 }, children: [
5427
- isMobile && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
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)(
5428
5454
  IconButton2,
5429
5455
  {
5456
+ variant: "icon",
5430
5457
  size: "small",
5431
5458
  color: "inherit",
5432
5459
  "aria-label": "Open navigation",
5433
5460
  onClick: () => setMobileOpen(true),
5434
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_MenuOutlined.default, { fontSize: "small" })
5461
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_MenuOutlined.default, { fontSize: "small" })
5435
5462
  }
5436
5463
  ),
5437
- wrapLogomark ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_Box2.default, { sx: { width: 48, ml: "-16px", display: "flex", justifyContent: "center" }, children: brandEl }) : brandEl
5464
+ wrapLogomark ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_Box2.default, { sx: { width: 48, ml: "-16px", display: "flex", justifyContent: "center" }, children: brandEl }) : brandEl
5438
5465
  ] }),
5439
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_Box2.default, { sx: { flex: 1, display: "flex", justifyContent: "center" }, children: search === true ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Search, { size: "small", placeholder: "Search\u2026", sx: { width: "100%", maxWidth: 480 } }) : search || null }),
5440
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Box2.default, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-end", gap: 1 }, children: [
5441
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ColorModeToggle, {}),
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, {}),
5442
5469
  actions
5443
5470
  ] })
5444
5471
  ] })
5445
5472
  }
5446
5473
  ),
5447
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Box2.default, { sx: { display: "flex", flexGrow: 1, overflow: "hidden" }, children: [
5448
- !isMobile && navContent && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
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)(
5449
5476
  SidebarNav,
5450
5477
  {
5451
5478
  open: sidebarOpen,
@@ -5458,9 +5485,9 @@ function AppShell({
5458
5485
  children: navContent
5459
5486
  }
5460
5487
  ),
5461
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_Box2.default, { component: "main", sx: { flexGrow: 1, overflow: "auto" }, children })
5488
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_Box2.default, { component: "main", sx: { flexGrow: 1, overflow: "auto" }, children })
5462
5489
  ] }),
5463
- isMobile && navContent && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5490
+ isMobile && navContent && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
5464
5491
  import_Drawer3.default,
5465
5492
  {
5466
5493
  open: mobileOpen,
@@ -5478,7 +5505,7 @@ var import_Box3 = __toESM(require("@mui/material/Box"));
5478
5505
  var import_Breadcrumbs2 = __toESM(require("@mui/material/Breadcrumbs"));
5479
5506
  var import_Link2 = __toESM(require("@mui/material/Link"));
5480
5507
  var import_Typography2 = __toESM(require("@mui/material/Typography"));
5481
- var import_jsx_runtime21 = (
5508
+ var import_jsx_runtime19 = (
5482
5509
  // Current page: plain text, not a link.
5483
5510
  require("react/jsx-runtime")
5484
5511
  );
@@ -5491,7 +5518,7 @@ function Page({
5491
5518
  sx,
5492
5519
  children
5493
5520
  }) {
5494
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
5521
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5495
5522
  import_Box3.default,
5496
5523
  {
5497
5524
  component: "section",
@@ -5505,7 +5532,7 @@ function Page({
5505
5532
  },
5506
5533
  ...Array.isArray(sx) ? sx : [sx]
5507
5534
  ],
5508
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
5535
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5509
5536
  import_Box3.default,
5510
5537
  {
5511
5538
  sx: {
@@ -5516,8 +5543,8 @@ function Page({
5516
5543
  ...maxWidth ? { maxWidth, mx: "auto" } : {}
5517
5544
  },
5518
5545
  children: [
5519
- breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_Breadcrumbs2.default, { "aria-label": "breadcrumb", sx: { mb: 1 }, children: breadcrumbs.map(
5520
- (crumb, i) => i === breadcrumbs.length - 1 ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_Typography2.default, { variant: "body2", color: "text.primary", children: crumb.label }, crumb.label) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
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)(
5521
5548
  import_Link2.default,
5522
5549
  {
5523
5550
  variant: "body2",
@@ -5531,7 +5558,7 @@ function Page({
5531
5558
  crumb.label
5532
5559
  )
5533
5560
  ) }),
5534
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
5561
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5535
5562
  import_Box3.default,
5536
5563
  {
5537
5564
  sx: {
@@ -5542,8 +5569,8 @@ function Page({
5542
5569
  mb: 3
5543
5570
  },
5544
5571
  children: [
5545
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_Typography2.default, { variant: "h5", children: title }),
5546
- actions && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_Box3.default, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: actions })
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 })
5547
5574
  ]
5548
5575
  }
5549
5576
  ),
@@ -5557,19 +5584,15 @@ function Page({
5557
5584
 
5558
5585
  // src/components/Box/index.tsx
5559
5586
  var import_Box4 = __toESM(require("@mui/material/Box"));
5560
- var Box5 = import_Box4.default;
5561
5587
 
5562
5588
  // src/components/Stack/index.tsx
5563
5589
  var import_Stack = __toESM(require("@mui/material/Stack"));
5564
- var Stack = import_Stack.default;
5565
5590
 
5566
5591
  // src/components/Grid/index.tsx
5567
5592
  var import_Grid = __toESM(require("@mui/material/Grid"));
5568
- var Grid = import_Grid.default;
5569
5593
 
5570
5594
  // src/components/Container/index.tsx
5571
5595
  var import_Container = __toESM(require("@mui/material/Container"));
5572
- var Container = import_Container.default;
5573
5596
 
5574
5597
  // src/components/Collapse/index.tsx
5575
5598
  var import_Collapse = __toESM(require("@mui/material/Collapse"));
@@ -5603,7 +5626,6 @@ var import_Popper = __toESM(require("@mui/material/Popper"));
5603
5626
 
5604
5627
  // src/components/Portal/index.tsx
5605
5628
  var import_Portal = __toESM(require("@mui/material/Portal"));
5606
- var Portal = import_Portal.default;
5607
5629
 
5608
5630
  // src/components/Slider/index.tsx
5609
5631
  var import_Slider = __toESM(require("@mui/material/Slider"));
@@ -5630,7 +5652,7 @@ function useChartColors(count) {
5630
5652
  // src/components/Charts/CustomTooltip.tsx
5631
5653
  var import_material2 = require("@mui/material");
5632
5654
  var import_styles6 = require("@mui/material/styles");
5633
- var import_jsx_runtime22 = require("react/jsx-runtime");
5655
+ var import_jsx_runtime20 = require("react/jsx-runtime");
5634
5656
  function formatDate(date) {
5635
5657
  if (!date) return "";
5636
5658
  const d = new Date(date);
@@ -5655,7 +5677,7 @@ function CustomTooltip(props) {
5655
5677
  if (dataIndex == null) {
5656
5678
  return null;
5657
5679
  }
5658
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5680
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
5659
5681
  import_material2.Box,
5660
5682
  {
5661
5683
  sx: {
@@ -5671,7 +5693,7 @@ function CustomTooltip(props) {
5671
5693
  border: `1px solid ${theme.palette.divider}`
5672
5694
  },
5673
5695
  children: [
5674
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5696
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5675
5697
  import_material2.Typography,
5676
5698
  {
5677
5699
  variant: "body2",
@@ -5688,8 +5710,8 @@ function CustomTooltip(props) {
5688
5710
  const color = typeof s.getColor === "function" ? s.getColor(dataIndex) : s.color;
5689
5711
  const value = s.data ? s.data[dataIndex] : null;
5690
5712
  if (value == null) return null;
5691
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_material2.Box, { sx: { display: "flex", flexDirection: "column", gap: "6px" }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_material2.Box, { sx: { display: "flex", alignItems: "center", gap: "8px" }, children: [
5692
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
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)(
5693
5715
  import_material2.Box,
5694
5716
  {
5695
5717
  sx: {
@@ -5701,7 +5723,7 @@ function CustomTooltip(props) {
5701
5723
  }
5702
5724
  }
5703
5725
  ),
5704
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5726
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
5705
5727
  import_material2.Typography,
5706
5728
  {
5707
5729
  variant: "body2",
@@ -5712,7 +5734,7 @@ function CustomTooltip(props) {
5712
5734
  gap: "6px"
5713
5735
  },
5714
5736
  children: [
5715
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5737
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5716
5738
  import_material2.Box,
5717
5739
  {
5718
5740
  component: "span",
@@ -5740,7 +5762,7 @@ function CustomTooltip(props) {
5740
5762
  }
5741
5763
 
5742
5764
  // src/components/Charts/LineChart.tsx
5743
- var import_jsx_runtime23 = require("react/jsx-runtime");
5765
+ var import_jsx_runtime21 = require("react/jsx-runtime");
5744
5766
  function LineChart({ series, colors: colors2, ...props }) {
5745
5767
  var _a, _b;
5746
5768
  const theme = (0, import_styles7.useTheme)();
@@ -5754,7 +5776,7 @@ function LineChart({ series, colors: colors2, ...props }) {
5754
5776
  highlightScope: (_b2 = s.highlightScope) != null ? _b2 : { highlighted: "item", faded: "global" }
5755
5777
  };
5756
5778
  });
5757
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
5779
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
5758
5780
  import_LineChart.LineChart,
5759
5781
  {
5760
5782
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -5826,7 +5848,7 @@ function LineChart({ series, colors: colors2, ...props }) {
5826
5848
  // src/components/Charts/BarChart.tsx
5827
5849
  var import_BarChart = require("@mui/x-charts/BarChart");
5828
5850
  var import_styles8 = require("@mui/material/styles");
5829
- var import_jsx_runtime24 = require("react/jsx-runtime");
5851
+ var import_jsx_runtime22 = require("react/jsx-runtime");
5830
5852
  function BarChart({ series, colors: colors2, ...props }) {
5831
5853
  var _a, _b;
5832
5854
  const theme = (0, import_styles8.useTheme)();
@@ -5844,7 +5866,7 @@ function BarChart({ series, colors: colors2, ...props }) {
5844
5866
  highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
5845
5867
  };
5846
5868
  });
5847
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
5869
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5848
5870
  import_BarChart.BarChart,
5849
5871
  {
5850
5872
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -5904,10 +5926,10 @@ function BarChart({ series, colors: colors2, ...props }) {
5904
5926
  ...(_b = props.sx) != null ? _b : {}
5905
5927
  },
5906
5928
  ...props,
5907
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("defs", { children: series == null ? void 0 : series.map((s, idx) => {
5929
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("defs", { children: series == null ? void 0 : series.map((s, idx) => {
5908
5930
  if (s.variant !== "striped") return null;
5909
5931
  const baseColor = s.color || resolvedColors[idx % resolvedColors.length];
5910
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
5932
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5911
5933
  "pattern",
5912
5934
  {
5913
5935
  id: `striped-pattern-${idx}`,
@@ -5916,8 +5938,8 @@ function BarChart({ series, colors: colors2, ...props }) {
5916
5938
  height: "8",
5917
5939
  patternTransform: "rotate(45)",
5918
5940
  children: [
5919
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("rect", { width: "8", height: "8", fill: theme.palette.background.paper }),
5920
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("line", { x1: "0", y: "0", x2: "0", y2: "8", stroke: baseColor, strokeWidth: "4" })
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" })
5921
5943
  ]
5922
5944
  },
5923
5945
  `striped-${idx}`
@@ -5930,7 +5952,7 @@ function BarChart({ series, colors: colors2, ...props }) {
5930
5952
  // src/components/Charts/PieChart.tsx
5931
5953
  var import_PieChart = require("@mui/x-charts/PieChart");
5932
5954
  var import_styles9 = require("@mui/material/styles");
5933
- var import_jsx_runtime25 = require("react/jsx-runtime");
5955
+ var import_jsx_runtime23 = require("react/jsx-runtime");
5934
5956
  function PieChart({ series, colors: colors2, ...props }) {
5935
5957
  var _a, _b, _c, _d;
5936
5958
  const theme = (0, import_styles9.useTheme)();
@@ -5944,7 +5966,7 @@ function PieChart({ series, colors: colors2, ...props }) {
5944
5966
  highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
5945
5967
  };
5946
5968
  });
5947
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
5969
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
5948
5970
  import_PieChart.PieChart,
5949
5971
  {
5950
5972
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -6043,7 +6065,7 @@ var forestLegendSlotProps = {
6043
6065
  };
6044
6066
 
6045
6067
  // src/components/Charts/ScatterChart.tsx
6046
- var import_jsx_runtime26 = require("react/jsx-runtime");
6068
+ var import_jsx_runtime24 = require("react/jsx-runtime");
6047
6069
  function ScatterChart({ series, colors: colors2, ...props }) {
6048
6070
  var _a, _b;
6049
6071
  const theme = (0, import_styles10.useTheme)();
@@ -6055,7 +6077,7 @@ function ScatterChart({ series, colors: colors2, ...props }) {
6055
6077
  highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
6056
6078
  };
6057
6079
  });
6058
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
6080
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
6059
6081
  import_ScatterChart.ScatterChart,
6060
6082
  {
6061
6083
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -6074,11 +6096,11 @@ function ScatterChart({ series, colors: colors2, ...props }) {
6074
6096
  // src/components/Charts/Gauge.tsx
6075
6097
  var import_Gauge = require("@mui/x-charts/Gauge");
6076
6098
  var import_styles11 = require("@mui/material/styles");
6077
- var import_jsx_runtime27 = require("react/jsx-runtime");
6099
+ var import_jsx_runtime25 = require("react/jsx-runtime");
6078
6100
  function Gauge(props) {
6079
6101
  var _a;
6080
6102
  const theme = (0, import_styles11.useTheme)();
6081
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
6103
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
6082
6104
  import_Gauge.Gauge,
6083
6105
  {
6084
6106
  ...props,