@matteoaliano/forest-ui 1.1.1 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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" }
@@ -1262,7 +1295,19 @@ function buildComponents(tokens2) {
1262
1295
  root: {
1263
1296
  width: 44,
1264
1297
  height: 24,
1265
- padding: 0
1298
+ padding: 0,
1299
+ // MUI's `size="small"` variant only half-applies here: the theme pins
1300
+ // the track at the wide 44px medium geometry, but MUI still shrinks the
1301
+ // thumb (16px), bumps switchBase padding (4px), and cuts the checked
1302
+ // travel to 16px — leaving the thumb parked mid-track. Forest ships a
1303
+ // single calibrated 24px switch, so neutralize `small` back to it.
1304
+ "&.MuiSwitch-sizeSmall": {
1305
+ "& .MuiSwitch-switchBase": {
1306
+ padding: 2,
1307
+ "&.Mui-checked": { transform: "translateX(20px)" }
1308
+ },
1309
+ "& .MuiSwitch-thumb": { width: 20, height: 20 }
1310
+ }
1266
1311
  },
1267
1312
  switchBase: {
1268
1313
  padding: 2,
@@ -1356,16 +1401,16 @@ function buildComponents(tokens2) {
1356
1401
  borderTopRightRadius: radius4.md
1357
1402
  }
1358
1403
  },
1359
- // Disabled parity with the disabled contained Button: greyed face +
1360
- // disabled fg, bevel geometry retained. MUI's own .Mui-disabled rule
1361
- // only swaps color and border-shorthands the bevel away — and ties
1362
- // with .Mui-selected at (0,2,0) — so this block sits AFTER selected
1363
- // to win both.
1404
+ // Disabled parity with the rest of the button family: transparent
1405
+ // face, disabled border + fg, bevel geometry retained. MUI's own
1406
+ // .Mui-disabled rule only swaps color and border-shorthands the bevel
1407
+ // away — and ties with .Mui-selected at (0,2,0) — so this block sits
1408
+ // AFTER selected to win both.
1364
1409
  "&.Mui-disabled": {
1365
- backgroundColor: (theme.vars || theme).palette.action.disabledBackground,
1410
+ backgroundColor: "transparent",
1366
1411
  color: (theme.vars || theme).palette.action.disabled,
1367
1412
  borderStyle: "solid",
1368
- borderColor: fg4.tertiary,
1413
+ borderColor: border4.disabled,
1369
1414
  borderTopWidth: 1,
1370
1415
  borderRightWidth: 1,
1371
1416
  borderLeftWidth: 1,
@@ -4399,10 +4444,6 @@ function MultiSelect({
4399
4444
 
4400
4445
  // src/components/Switch/index.tsx
4401
4446
  var import_Switch = __toESM(require("@mui/material/Switch"));
4402
- var import_jsx_runtime7 = require("react/jsx-runtime");
4403
- function Switch(props) {
4404
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Switch.default, { ...props });
4405
- }
4406
4447
 
4407
4448
  // src/components/TextField/index.tsx
4408
4449
  var import_TextField = __toESM(require("@mui/material/TextField"));
@@ -4414,7 +4455,7 @@ var import_InputAdornment = __toESM(require("@mui/material/InputAdornment"));
4414
4455
  var import_IconButton = __toESM(require("@mui/material/IconButton"));
4415
4456
  var import_Search = __toESM(require("@mui/icons-material/Search"));
4416
4457
  var import_Clear = __toESM(require("@mui/icons-material/Clear"));
4417
- var import_jsx_runtime8 = require("react/jsx-runtime");
4458
+ var import_jsx_runtime7 = require("react/jsx-runtime");
4418
4459
  function Search({
4419
4460
  value: controlledValue,
4420
4461
  onChange,
@@ -4438,7 +4479,7 @@ function Search({
4438
4479
  if (!isControlled) setInternalValue("");
4439
4480
  onClear == null ? void 0 : onClear();
4440
4481
  }, [isControlled, onClear]);
4441
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
4482
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
4442
4483
  import_TextField2.default,
4443
4484
  {
4444
4485
  variant,
@@ -4454,15 +4495,15 @@ function Search({
4454
4495
  gap: 0,
4455
4496
  "& .MuiOutlinedInput-input": { pl: "8px" }
4456
4497
  },
4457
- startAdornment: /* @__PURE__ */ (0, 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" } }) }),
4458
- 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)(
4459
4500
  import_IconButton.default,
4460
4501
  {
4461
4502
  "aria-label": "clear search",
4462
4503
  onClick: handleClear,
4463
4504
  edge: "end",
4464
4505
  size: "small",
4465
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Clear.default, { fontSize: "small" })
4506
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Clear.default, { fontSize: "small" })
4466
4507
  }
4467
4508
  ) }) : null,
4468
4509
  ...typeof (slotProps == null ? void 0 : slotProps.input) === "object" ? slotProps.input : {}
@@ -4478,14 +4519,14 @@ var import_InputBase = __toESM(require("@mui/material/InputBase"));
4478
4519
 
4479
4520
  // src/components/IconButton/index.tsx
4480
4521
  var import_IconButton2 = __toESM(require("@mui/material/IconButton"));
4481
- var import_jsx_runtime9 = require("react/jsx-runtime");
4522
+ var import_jsx_runtime8 = require("react/jsx-runtime");
4482
4523
  function IconButton2({
4483
- variant = "text",
4524
+ variant = "contained",
4484
4525
  className,
4485
4526
  ...props
4486
4527
  }) {
4487
- const cls = variant === "text" ? className : ["ForestIconButton", `ForestIconButton-${variant}`, className].filter(Boolean).join(" ");
4488
- 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 });
4489
4530
  }
4490
4531
 
4491
4532
  // src/components/Logo/index.tsx
@@ -4748,7 +4789,7 @@ function scopeArtworkIds(inner, id) {
4748
4789
  }
4749
4790
 
4750
4791
  // src/components/Logo/index.tsx
4751
- var import_jsx_runtime10 = require("react/jsx-runtime");
4792
+ var import_jsx_runtime9 = require("react/jsx-runtime");
4752
4793
  function resolveArtwork(product, variant, color) {
4753
4794
  const variantArt = PRODUCT_ARTWORK[product][variant];
4754
4795
  if (variant === "logomark") {
@@ -4768,7 +4809,7 @@ var Logo = (0, import_react3.forwardRef)(
4768
4809
  () => artwork ? scopeArtworkIds(artwork.inner, id) : "",
4769
4810
  [artwork, id]
4770
4811
  );
4771
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
4812
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
4772
4813
  import_material.Box,
4773
4814
  {
4774
4815
  component: "svg",
@@ -4798,9 +4839,9 @@ var import_ToggleButtonGroup = __toESM(require("@mui/material/ToggleButtonGroup"
4798
4839
  var import_DatePicker = require("@mui/x-date-pickers/DatePicker");
4799
4840
  var import_LocalizationProvider = require("@mui/x-date-pickers/LocalizationProvider");
4800
4841
  var import_AdapterDayjs = require("@mui/x-date-pickers/AdapterDayjs");
4801
- var import_jsx_runtime11 = require("react/jsx-runtime");
4842
+ var import_jsx_runtime10 = require("react/jsx-runtime");
4802
4843
  function DatePicker(props) {
4803
- 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 }) });
4804
4845
  }
4805
4846
 
4806
4847
  // src/components/FormControl/index.tsx
@@ -4834,7 +4875,7 @@ var import_Badge = __toESM(require("@mui/material/Badge"));
4834
4875
  var import_Chip = __toESM(require("@mui/material/Chip"));
4835
4876
  var import_CloseOutlined = __toESM(require("@mui/icons-material/CloseOutlined"));
4836
4877
  var import_styles3 = require("@mui/material/styles");
4837
- var import_jsx_runtime12 = require("react/jsx-runtime");
4878
+ var import_jsx_runtime11 = require("react/jsx-runtime");
4838
4879
  var customChipScales = {
4839
4880
  teal: misc.teal,
4840
4881
  orange: misc.orange,
@@ -4847,10 +4888,10 @@ var customChipScales = {
4847
4888
  rose: misc.rose,
4848
4889
  blueLight: misc.blueLight
4849
4890
  };
4850
- function Chip({ color, deleteIcon = /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_CloseOutlined.default, {}), sx, ...props }) {
4851
- const scale = color && typeof color === "string" ? customChipScales[color] : void 0;
4891
+ function Chip({ color, deleteIcon = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_CloseOutlined.default, {}), sx, ...props }) {
4892
+ const scale = color && color in customChipScales ? customChipScales[color] : void 0;
4852
4893
  if (scale) {
4853
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
4894
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
4854
4895
  import_Chip.default,
4855
4896
  {
4856
4897
  deleteIcon,
@@ -4890,7 +4931,7 @@ function Chip({ color, deleteIcon = /* @__PURE__ */ (0, import_jsx_runtime12.jsx
4890
4931
  }
4891
4932
  );
4892
4933
  }
4893
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
4934
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
4894
4935
  import_Chip.default,
4895
4936
  {
4896
4937
  color,
@@ -4938,9 +4979,9 @@ var import_x_data_grid = require("@mui/x-data-grid");
4938
4979
 
4939
4980
  // src/components/Tooltip/index.tsx
4940
4981
  var import_Tooltip = __toESM(require("@mui/material/Tooltip"));
4941
- var import_jsx_runtime13 = require("react/jsx-runtime");
4982
+ var import_jsx_runtime12 = require("react/jsx-runtime");
4942
4983
  function Tooltip({ arrow = true, ...props }) {
4943
- 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 });
4944
4985
  }
4945
4986
 
4946
4987
  // src/components/Typography/index.tsx
@@ -4956,7 +4997,7 @@ var import_AccordionActions = __toESM(require("@mui/material/AccordionActions"))
4956
4997
  var import_Button3 = __toESM(require("@mui/material/Button"));
4957
4998
  var import_AppBar = __toESM(require("@mui/material/AppBar"));
4958
4999
  var import_Toolbar = __toESM(require("@mui/material/Toolbar"));
4959
- var import_jsx_runtime14 = require("react/jsx-runtime");
5000
+ var import_jsx_runtime13 = require("react/jsx-runtime");
4960
5001
  function AppBarNavItem({
4961
5002
  label,
4962
5003
  icon,
@@ -4965,7 +5006,7 @@ function AppBarNavItem({
4965
5006
  sx,
4966
5007
  ...props
4967
5008
  }) {
4968
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5009
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
4969
5010
  import_Button3.default,
4970
5011
  {
4971
5012
  variant: "text",
@@ -5016,9 +5057,9 @@ var import_CardContent = __toESM(require("@mui/material/CardContent"));
5016
5057
  var import_CardHeader = __toESM(require("@mui/material/CardHeader"));
5017
5058
  var import_CardActions = __toESM(require("@mui/material/CardActions"));
5018
5059
  var import_CardMedia = __toESM(require("@mui/material/CardMedia"));
5019
- var import_jsx_runtime15 = require("react/jsx-runtime");
5060
+ var import_jsx_runtime14 = require("react/jsx-runtime");
5020
5061
  function Card({ color = "primary", sx, ...props }) {
5021
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
5062
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
5022
5063
  import_Card.default,
5023
5064
  {
5024
5065
  ...props,
@@ -5036,17 +5077,13 @@ var import_CardActionArea = __toESM(require("@mui/material/CardActionArea"));
5036
5077
  // src/components/Drawer/index.tsx
5037
5078
  var import_Drawer = __toESM(require("@mui/material/Drawer"));
5038
5079
  var import_SwipeableDrawer = __toESM(require("@mui/material/SwipeableDrawer"));
5039
- var import_jsx_runtime16 = require("react/jsx-runtime");
5080
+ var import_jsx_runtime15 = require("react/jsx-runtime");
5040
5081
  function Drawer({ anchor = "right", hideBackdrop = true, ...props }) {
5041
- 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 });
5042
5083
  }
5043
5084
 
5044
5085
  // src/components/Paper/index.tsx
5045
5086
  var import_Paper = __toESM(require("@mui/material/Paper"));
5046
- var import_jsx_runtime17 = require("react/jsx-runtime");
5047
- function Paper(props) {
5048
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_Paper.default, { ...props });
5049
- }
5050
5087
 
5051
5088
  // src/components/Alert/index.tsx
5052
5089
  var import_Alert = __toESM(require("@mui/material/Alert"));
@@ -5074,9 +5111,9 @@ var import_Modal = __toESM(require("@mui/material/Modal"));
5074
5111
 
5075
5112
  // src/components/Popover/index.tsx
5076
5113
  var import_Popover = __toESM(require("@mui/material/Popover"));
5077
- var import_jsx_runtime18 = require("react/jsx-runtime");
5114
+ var import_jsx_runtime16 = require("react/jsx-runtime");
5078
5115
  function Popover({ slotProps, ...props }) {
5079
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
5116
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
5080
5117
  import_Popover.default,
5081
5118
  {
5082
5119
  ...props,
@@ -5151,7 +5188,7 @@ var import_ListItemButton2 = __toESM(require("@mui/material/ListItemButton"));
5151
5188
  var import_ListItemIcon2 = __toESM(require("@mui/material/ListItemIcon"));
5152
5189
  var import_ListItemText3 = __toESM(require("@mui/material/ListItemText"));
5153
5190
  var import_Tooltip2 = __toESM(require("@mui/material/Tooltip"));
5154
- var import_jsx_runtime19 = require("react/jsx-runtime");
5191
+ var import_jsx_runtime17 = require("react/jsx-runtime");
5155
5192
  var SidebarContext = (0, import_react4.createContext)({
5156
5193
  open: true,
5157
5194
  collapsedWidth: 48,
@@ -5181,7 +5218,7 @@ function SidebarNav({
5181
5218
  onMouseEnter: () => onOpenChange(true),
5182
5219
  onMouseLeave: () => onOpenChange(false)
5183
5220
  } : {};
5184
- return /* @__PURE__ */ (0, 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)(
5185
5222
  import_Box.default,
5186
5223
  {
5187
5224
  sx: {
@@ -5194,7 +5231,7 @@ function SidebarNav({
5194
5231
  transition: "width 200ms ease-in-out"
5195
5232
  },
5196
5233
  children: [
5197
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5234
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
5198
5235
  import_Drawer2.default,
5199
5236
  {
5200
5237
  variant: "permanent",
@@ -5212,7 +5249,7 @@ function SidebarNav({
5212
5249
  },
5213
5250
  ...sx
5214
5251
  },
5215
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5252
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
5216
5253
  import_Box.default,
5217
5254
  {
5218
5255
  sx: {
@@ -5222,9 +5259,9 @@ function SidebarNav({
5222
5259
  overflow: "hidden"
5223
5260
  },
5224
5261
  children: [
5225
- header && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Box.default, { sx: { flexShrink: 0 }, children: header }),
5226
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_Box.default, { sx: { flexGrow: 1, overflowY: "auto", overflowX: "hidden" }, children }),
5227
- 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 })
5228
5265
  ]
5229
5266
  }
5230
5267
  )
@@ -5234,7 +5271,7 @@ function SidebarNav({
5234
5271
  // to a square icon toggle. Face is the tonal secondary (light grey in
5235
5272
  // light / charcoal in dark), not the primary brand fill — the toggle
5236
5273
  // is a utility control, not a call to action.
5237
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5274
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
5238
5275
  Button,
5239
5276
  {
5240
5277
  "aria-label": open ? "Collapse sidebar" : "Expand sidebar",
@@ -5267,7 +5304,7 @@ function SidebarNav({
5267
5304
  ...theme.applyStyles("dark", { filter: "brightness(1.15)" })
5268
5305
  }
5269
5306
  }),
5270
- children: open ? /* @__PURE__ */ (0, 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, {})
5271
5308
  }
5272
5309
  )
5273
5310
  ]
@@ -5311,7 +5348,7 @@ function SidebarItem({
5311
5348
  }) {
5312
5349
  const { open } = useSidebar();
5313
5350
  if (!open) {
5314
- return /* @__PURE__ */ (0, 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)(
5315
5352
  import_ListItemButton2.default,
5316
5353
  {
5317
5354
  ...rest,
@@ -5326,13 +5363,13 @@ function SidebarItem({
5326
5363
  marginInline: "auto",
5327
5364
  ...sx
5328
5365
  },
5329
- children: /* @__PURE__ */ (0, 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 })
5330
5367
  }
5331
5368
  ) });
5332
5369
  }
5333
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_ListItemButton2.default, { ...rest, sx: { ...itemSx, height: 32, ...sx }, children: [
5334
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_ListItemIcon2.default, { sx: { minWidth: 32, "& .MuiSvgIcon-root": { fontSize: 20 } }, children: icon }),
5335
- /* @__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 }),
5336
5373
  endAdornment
5337
5374
  ] });
5338
5375
  }
@@ -5347,19 +5384,20 @@ var import_styles4 = require("@mui/material/styles");
5347
5384
  var import_MenuOutlined = __toESM(require("@mui/icons-material/MenuOutlined"));
5348
5385
  var import_DarkModeOutlined = __toESM(require("@mui/icons-material/DarkModeOutlined"));
5349
5386
  var import_LightModeOutlined = __toESM(require("@mui/icons-material/LightModeOutlined"));
5350
- var import_jsx_runtime20 = require("react/jsx-runtime");
5387
+ var import_jsx_runtime18 = require("react/jsx-runtime");
5351
5388
  function ColorModeToggle() {
5352
5389
  const { mode, systemMode, setMode } = (0, import_styles4.useColorScheme)();
5353
5390
  const resolved = mode === "system" ? systemMode : mode;
5354
5391
  const isDark = resolved === "dark";
5355
- return /* @__PURE__ */ (0, 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)(
5356
5393
  IconButton2,
5357
5394
  {
5395
+ variant: "icon",
5358
5396
  size: "small",
5359
5397
  color: "inherit",
5360
5398
  "aria-label": "Toggle color mode",
5361
5399
  onClick: () => setMode(isDark ? "light" : "dark"),
5362
- children: isDark ? /* @__PURE__ */ (0, 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" })
5363
5401
  }
5364
5402
  ) });
5365
5403
  }
@@ -5370,9 +5408,9 @@ function ShellBrand({
5370
5408
  const { mode, systemMode } = (0, import_styles4.useColorScheme)();
5371
5409
  const dark = (mode === "system" ? systemMode : mode) === "dark";
5372
5410
  if (logoVariant === "full") {
5373
- return /* @__PURE__ */ (0, 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" });
5374
5412
  }
5375
- 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" });
5376
5414
  }
5377
5415
  function AppShell({
5378
5416
  navItems,
@@ -5390,7 +5428,7 @@ function AppShell({
5390
5428
  const isMobile = (0, import_useMediaQuery.default)(theme.breakpoints.down("sm"));
5391
5429
  const [sidebarOpen, setSidebarOpen] = (0, import_react5.useState)(defaultSidebarOpen);
5392
5430
  const [mobileOpen, setMobileOpen] = (0, import_react5.useState)(false);
5393
- const navContent = nav != null ? nav : navItems && /* @__PURE__ */ (0, 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)(
5394
5432
  SidebarItem,
5395
5433
  {
5396
5434
  icon,
@@ -5401,39 +5439,40 @@ function AppShell({
5401
5439
  },
5402
5440
  label
5403
5441
  )) });
5404
- const brandEl = brand != null ? brand : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ShellBrand, { product, logoVariant });
5442
+ const brandEl = brand != null ? brand : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ShellBrand, { product, logoVariant });
5405
5443
  const wrapLogomark = !brand && logoVariant === "logomark" && !isMobile;
5406
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Box2.default, { sx: { display: "flex", flexDirection: "column", height: "100vh" }, children: [
5407
- /* @__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)(
5408
5446
  import_AppBar.default,
5409
5447
  {
5410
5448
  position: "sticky",
5411
5449
  elevation: 0,
5412
5450
  sx: { zIndex: theme.zIndex.drawer + 1 },
5413
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Toolbar.default, { variant: "dense", sx: { px: { xs: "16px", sm: "16px" } }, children: [
5414
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Box2.default, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-start", gap: 1 }, children: [
5415
- 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)(
5416
5454
  IconButton2,
5417
5455
  {
5456
+ variant: "icon",
5418
5457
  size: "small",
5419
5458
  color: "inherit",
5420
5459
  "aria-label": "Open navigation",
5421
5460
  onClick: () => setMobileOpen(true),
5422
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_MenuOutlined.default, { fontSize: "small" })
5461
+ children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_MenuOutlined.default, { fontSize: "small" })
5423
5462
  }
5424
5463
  ),
5425
- 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
5426
5465
  ] }),
5427
- /* @__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 }),
5428
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Box2.default, { sx: { flex: 1, display: "flex", alignItems: "center", justifyContent: "flex-end", gap: 1 }, children: [
5429
- /* @__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, {}),
5430
5469
  actions
5431
5470
  ] })
5432
5471
  ] })
5433
5472
  }
5434
5473
  ),
5435
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(import_Box2.default, { sx: { display: "flex", flexGrow: 1, overflow: "hidden" }, children: [
5436
- !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)(
5437
5476
  SidebarNav,
5438
5477
  {
5439
5478
  open: sidebarOpen,
@@ -5446,9 +5485,9 @@ function AppShell({
5446
5485
  children: navContent
5447
5486
  }
5448
5487
  ),
5449
- /* @__PURE__ */ (0, 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 })
5450
5489
  ] }),
5451
- isMobile && navContent && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5490
+ isMobile && navContent && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
5452
5491
  import_Drawer3.default,
5453
5492
  {
5454
5493
  open: mobileOpen,
@@ -5466,7 +5505,7 @@ var import_Box3 = __toESM(require("@mui/material/Box"));
5466
5505
  var import_Breadcrumbs2 = __toESM(require("@mui/material/Breadcrumbs"));
5467
5506
  var import_Link2 = __toESM(require("@mui/material/Link"));
5468
5507
  var import_Typography2 = __toESM(require("@mui/material/Typography"));
5469
- var import_jsx_runtime21 = (
5508
+ var import_jsx_runtime19 = (
5470
5509
  // Current page: plain text, not a link.
5471
5510
  require("react/jsx-runtime")
5472
5511
  );
@@ -5479,7 +5518,7 @@ function Page({
5479
5518
  sx,
5480
5519
  children
5481
5520
  }) {
5482
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
5521
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
5483
5522
  import_Box3.default,
5484
5523
  {
5485
5524
  component: "section",
@@ -5493,7 +5532,7 @@ function Page({
5493
5532
  },
5494
5533
  ...Array.isArray(sx) ? sx : [sx]
5495
5534
  ],
5496
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
5535
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5497
5536
  import_Box3.default,
5498
5537
  {
5499
5538
  sx: {
@@ -5504,8 +5543,8 @@ function Page({
5504
5543
  ...maxWidth ? { maxWidth, mx: "auto" } : {}
5505
5544
  },
5506
5545
  children: [
5507
- breadcrumbs && breadcrumbs.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_Breadcrumbs2.default, { "aria-label": "breadcrumb", sx: { mb: 1 }, children: breadcrumbs.map(
5508
- (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)(
5509
5548
  import_Link2.default,
5510
5549
  {
5511
5550
  variant: "body2",
@@ -5519,7 +5558,7 @@ function Page({
5519
5558
  crumb.label
5520
5559
  )
5521
5560
  ) }),
5522
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
5561
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
5523
5562
  import_Box3.default,
5524
5563
  {
5525
5564
  sx: {
@@ -5530,8 +5569,8 @@ function Page({
5530
5569
  mb: 3
5531
5570
  },
5532
5571
  children: [
5533
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_Typography2.default, { variant: "h5", children: title }),
5534
- 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 })
5535
5574
  ]
5536
5575
  }
5537
5576
  ),
@@ -5545,19 +5584,15 @@ function Page({
5545
5584
 
5546
5585
  // src/components/Box/index.tsx
5547
5586
  var import_Box4 = __toESM(require("@mui/material/Box"));
5548
- var Box5 = import_Box4.default;
5549
5587
 
5550
5588
  // src/components/Stack/index.tsx
5551
5589
  var import_Stack = __toESM(require("@mui/material/Stack"));
5552
- var Stack = import_Stack.default;
5553
5590
 
5554
5591
  // src/components/Grid/index.tsx
5555
5592
  var import_Grid = __toESM(require("@mui/material/Grid"));
5556
- var Grid = import_Grid.default;
5557
5593
 
5558
5594
  // src/components/Container/index.tsx
5559
5595
  var import_Container = __toESM(require("@mui/material/Container"));
5560
- var Container = import_Container.default;
5561
5596
 
5562
5597
  // src/components/Collapse/index.tsx
5563
5598
  var import_Collapse = __toESM(require("@mui/material/Collapse"));
@@ -5591,7 +5626,6 @@ var import_Popper = __toESM(require("@mui/material/Popper"));
5591
5626
 
5592
5627
  // src/components/Portal/index.tsx
5593
5628
  var import_Portal = __toESM(require("@mui/material/Portal"));
5594
- var Portal = import_Portal.default;
5595
5629
 
5596
5630
  // src/components/Slider/index.tsx
5597
5631
  var import_Slider = __toESM(require("@mui/material/Slider"));
@@ -5618,7 +5652,7 @@ function useChartColors(count) {
5618
5652
  // src/components/Charts/CustomTooltip.tsx
5619
5653
  var import_material2 = require("@mui/material");
5620
5654
  var import_styles6 = require("@mui/material/styles");
5621
- var import_jsx_runtime22 = require("react/jsx-runtime");
5655
+ var import_jsx_runtime20 = require("react/jsx-runtime");
5622
5656
  function formatDate(date) {
5623
5657
  if (!date) return "";
5624
5658
  const d = new Date(date);
@@ -5643,7 +5677,7 @@ function CustomTooltip(props) {
5643
5677
  if (dataIndex == null) {
5644
5678
  return null;
5645
5679
  }
5646
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5680
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
5647
5681
  import_material2.Box,
5648
5682
  {
5649
5683
  sx: {
@@ -5659,7 +5693,7 @@ function CustomTooltip(props) {
5659
5693
  border: `1px solid ${theme.palette.divider}`
5660
5694
  },
5661
5695
  children: [
5662
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5696
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5663
5697
  import_material2.Typography,
5664
5698
  {
5665
5699
  variant: "body2",
@@ -5676,8 +5710,8 @@ function CustomTooltip(props) {
5676
5710
  const color = typeof s.getColor === "function" ? s.getColor(dataIndex) : s.color;
5677
5711
  const value = s.data ? s.data[dataIndex] : null;
5678
5712
  if (value == null) return null;
5679
- return /* @__PURE__ */ (0, 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: [
5680
- /* @__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)(
5681
5715
  import_material2.Box,
5682
5716
  {
5683
5717
  sx: {
@@ -5689,7 +5723,7 @@ function CustomTooltip(props) {
5689
5723
  }
5690
5724
  }
5691
5725
  ),
5692
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5726
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
5693
5727
  import_material2.Typography,
5694
5728
  {
5695
5729
  variant: "body2",
@@ -5700,7 +5734,7 @@ function CustomTooltip(props) {
5700
5734
  gap: "6px"
5701
5735
  },
5702
5736
  children: [
5703
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5737
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5704
5738
  import_material2.Box,
5705
5739
  {
5706
5740
  component: "span",
@@ -5728,7 +5762,7 @@ function CustomTooltip(props) {
5728
5762
  }
5729
5763
 
5730
5764
  // src/components/Charts/LineChart.tsx
5731
- var import_jsx_runtime23 = require("react/jsx-runtime");
5765
+ var import_jsx_runtime21 = require("react/jsx-runtime");
5732
5766
  function LineChart({ series, colors: colors2, ...props }) {
5733
5767
  var _a, _b;
5734
5768
  const theme = (0, import_styles7.useTheme)();
@@ -5742,7 +5776,7 @@ function LineChart({ series, colors: colors2, ...props }) {
5742
5776
  highlightScope: (_b2 = s.highlightScope) != null ? _b2 : { highlighted: "item", faded: "global" }
5743
5777
  };
5744
5778
  });
5745
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
5779
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
5746
5780
  import_LineChart.LineChart,
5747
5781
  {
5748
5782
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -5814,7 +5848,7 @@ function LineChart({ series, colors: colors2, ...props }) {
5814
5848
  // src/components/Charts/BarChart.tsx
5815
5849
  var import_BarChart = require("@mui/x-charts/BarChart");
5816
5850
  var import_styles8 = require("@mui/material/styles");
5817
- var import_jsx_runtime24 = require("react/jsx-runtime");
5851
+ var import_jsx_runtime22 = require("react/jsx-runtime");
5818
5852
  function BarChart({ series, colors: colors2, ...props }) {
5819
5853
  var _a, _b;
5820
5854
  const theme = (0, import_styles8.useTheme)();
@@ -5832,7 +5866,7 @@ function BarChart({ series, colors: colors2, ...props }) {
5832
5866
  highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
5833
5867
  };
5834
5868
  });
5835
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
5869
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5836
5870
  import_BarChart.BarChart,
5837
5871
  {
5838
5872
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -5892,10 +5926,10 @@ function BarChart({ series, colors: colors2, ...props }) {
5892
5926
  ...(_b = props.sx) != null ? _b : {}
5893
5927
  },
5894
5928
  ...props,
5895
- children: /* @__PURE__ */ (0, 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) => {
5896
5930
  if (s.variant !== "striped") return null;
5897
5931
  const baseColor = s.color || resolvedColors[idx % resolvedColors.length];
5898
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
5932
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5899
5933
  "pattern",
5900
5934
  {
5901
5935
  id: `striped-pattern-${idx}`,
@@ -5904,8 +5938,8 @@ function BarChart({ series, colors: colors2, ...props }) {
5904
5938
  height: "8",
5905
5939
  patternTransform: "rotate(45)",
5906
5940
  children: [
5907
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("rect", { width: "8", height: "8", fill: theme.palette.background.paper }),
5908
- /* @__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" })
5909
5943
  ]
5910
5944
  },
5911
5945
  `striped-${idx}`
@@ -5918,7 +5952,7 @@ function BarChart({ series, colors: colors2, ...props }) {
5918
5952
  // src/components/Charts/PieChart.tsx
5919
5953
  var import_PieChart = require("@mui/x-charts/PieChart");
5920
5954
  var import_styles9 = require("@mui/material/styles");
5921
- var import_jsx_runtime25 = require("react/jsx-runtime");
5955
+ var import_jsx_runtime23 = require("react/jsx-runtime");
5922
5956
  function PieChart({ series, colors: colors2, ...props }) {
5923
5957
  var _a, _b, _c, _d;
5924
5958
  const theme = (0, import_styles9.useTheme)();
@@ -5932,7 +5966,7 @@ function PieChart({ series, colors: colors2, ...props }) {
5932
5966
  highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
5933
5967
  };
5934
5968
  });
5935
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
5969
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
5936
5970
  import_PieChart.PieChart,
5937
5971
  {
5938
5972
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -6031,7 +6065,7 @@ var forestLegendSlotProps = {
6031
6065
  };
6032
6066
 
6033
6067
  // src/components/Charts/ScatterChart.tsx
6034
- var import_jsx_runtime26 = require("react/jsx-runtime");
6068
+ var import_jsx_runtime24 = require("react/jsx-runtime");
6035
6069
  function ScatterChart({ series, colors: colors2, ...props }) {
6036
6070
  var _a, _b;
6037
6071
  const theme = (0, import_styles10.useTheme)();
@@ -6043,7 +6077,7 @@ function ScatterChart({ series, colors: colors2, ...props }) {
6043
6077
  highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
6044
6078
  };
6045
6079
  });
6046
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
6080
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
6047
6081
  import_ScatterChart.ScatterChart,
6048
6082
  {
6049
6083
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -6062,11 +6096,11 @@ function ScatterChart({ series, colors: colors2, ...props }) {
6062
6096
  // src/components/Charts/Gauge.tsx
6063
6097
  var import_Gauge = require("@mui/x-charts/Gauge");
6064
6098
  var import_styles11 = require("@mui/material/styles");
6065
- var import_jsx_runtime27 = require("react/jsx-runtime");
6099
+ var import_jsx_runtime25 = require("react/jsx-runtime");
6066
6100
  function Gauge(props) {
6067
6101
  var _a;
6068
6102
  const theme = (0, import_styles11.useTheme)();
6069
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
6103
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
6070
6104
  import_Gauge.Gauge,
6071
6105
  {
6072
6106
  ...props,