@matteoaliano/forest-ui 1.0.0 → 1.1.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
@@ -40,6 +40,7 @@ __export(src_exports, {
40
40
  AnimatedLine: () => import_LineChart7.AnimatedLine,
41
41
  AppBar: () => import_AppBar.default,
42
42
  AppBarNavItem: () => AppBarNavItem,
43
+ AppShell: () => AppShell,
43
44
  AreaElement: () => import_LineChart4.AreaElement,
44
45
  AreaElementPath: () => import_LineChart4.AreaElementPath,
45
46
  AreaPlot: () => import_LineChart4.AreaPlot,
@@ -55,7 +56,7 @@ __export(src_exports, {
55
56
  BarPlot: () => import_BarChart3.BarPlot,
56
57
  BottomNavigation: () => import_BottomNavigation.default,
57
58
  BottomNavigationAction: () => import_BottomNavigationAction.default,
58
- Box: () => Box3,
59
+ Box: () => Box5,
59
60
  Breadcrumbs: () => import_Breadcrumbs.default,
60
61
  Button: () => Button,
61
62
  ButtonBase: () => import_ButtonBase.default,
@@ -161,6 +162,7 @@ __export(src_exports, {
161
162
  MultiSelect: () => MultiSelect,
162
163
  NoSsr: () => import_NoSsr.default,
163
164
  OutlinedInput: () => import_OutlinedInput.default,
165
+ Page: () => Page,
164
166
  Pagination: () => import_Pagination.default,
165
167
  PaginationItem: () => import_PaginationItem.default,
166
168
  Paper: () => Paper,
@@ -275,7 +277,7 @@ __export(src_exports, {
275
277
  useAxisTooltip: () => import_ChartsTooltip4.useAxisTooltip,
276
278
  useChartColors: () => useChartColors,
277
279
  useChartId: () => import_hooks2.useChartId,
278
- useColorScheme: () => import_styles11.useColorScheme,
280
+ useColorScheme: () => import_styles12.useColorScheme,
279
281
  useDrawingArea: () => import_hooks.useDrawingArea,
280
282
  useFormControl: () => import_material6.useFormControl,
281
283
  useGaugeState: () => import_Gauge4.useGaugeState,
@@ -2358,8 +2360,11 @@ function buildComponents(tokens2) {
2358
2360
  }
2359
2361
  },
2360
2362
  staticTooltipLabel: {
2363
+ // Match MuiTooltip: inverted face (charcoal in light, near-white in
2364
+ // dark) with on-solid fg that inverts WITH it. text.white is
2365
+ // mode-invariant and vanished on the dark-mode light face.
2361
2366
  backgroundColor: bg4.primarySolid,
2362
- color: text4.white,
2367
+ color: buttonColors4.primary.fg,
2363
2368
  fontSize: 12,
2364
2369
  fontWeight: 600,
2365
2370
  borderRadius: radius4.md,
@@ -4262,7 +4267,7 @@ function ForestProvider({
4262
4267
  }
4263
4268
 
4264
4269
  // src/index.ts
4265
- var import_styles11 = require("@mui/material/styles");
4270
+ var import_styles12 = require("@mui/material/styles");
4266
4271
  var import_material3 = require("@mui/material");
4267
4272
 
4268
4273
  // src/components/Autocomplete/index.tsx
@@ -5332,9 +5337,215 @@ function SidebarItem({
5332
5337
  ] });
5333
5338
  }
5334
5339
 
5335
- // src/components/Box/index.tsx
5340
+ // src/components/AppShell/index.tsx
5341
+ var import_react5 = require("react");
5336
5342
  var import_Box2 = __toESM(require("@mui/material/Box"));
5337
- var Box3 = import_Box2.default;
5343
+ var import_Drawer3 = __toESM(require("@mui/material/Drawer"));
5344
+ var import_List2 = __toESM(require("@mui/material/List"));
5345
+ var import_useMediaQuery = __toESM(require("@mui/material/useMediaQuery"));
5346
+ var import_styles4 = require("@mui/material/styles");
5347
+ var import_MenuOutlined = __toESM(require("@mui/icons-material/MenuOutlined"));
5348
+ var import_DarkModeOutlined = __toESM(require("@mui/icons-material/DarkModeOutlined"));
5349
+ var import_LightModeOutlined = __toESM(require("@mui/icons-material/LightModeOutlined"));
5350
+ var import_jsx_runtime20 = require("react/jsx-runtime");
5351
+ function ColorModeToggle() {
5352
+ const { mode, systemMode, setMode } = (0, import_styles4.useColorScheme)();
5353
+ const resolved = mode === "system" ? systemMode : mode;
5354
+ 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)(
5356
+ IconButton2,
5357
+ {
5358
+ size: "small",
5359
+ color: "inherit",
5360
+ "aria-label": "Toggle color mode",
5361
+ 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" })
5363
+ }
5364
+ ) });
5365
+ }
5366
+ function ShellBrand({
5367
+ product,
5368
+ logoVariant
5369
+ }) {
5370
+ const { mode, systemMode } = (0, import_styles4.useColorScheme)();
5371
+ const dark = (mode === "system" ? systemMode : mode) === "dark";
5372
+ if (logoVariant === "full") {
5373
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Logo, { product, variant: "logo", color: dark ? "negative" : "positive" });
5374
+ }
5375
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Logo, { product, variant: "logomark", color: dark ? "negative" : "default" });
5376
+ }
5377
+ function AppShell({
5378
+ navItems,
5379
+ nav,
5380
+ product = "studio",
5381
+ logoVariant = "logomark",
5382
+ brand,
5383
+ search,
5384
+ actions,
5385
+ sidebarBehavior = "permanent",
5386
+ defaultSidebarOpen = true,
5387
+ children
5388
+ }) {
5389
+ const theme = (0, import_styles4.useTheme)();
5390
+ const isMobile = (0, import_useMediaQuery.default)(theme.breakpoints.down("sm"));
5391
+ const [sidebarOpen, setSidebarOpen] = (0, import_react5.useState)(defaultSidebarOpen);
5392
+ 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)(
5394
+ SidebarItem,
5395
+ {
5396
+ icon,
5397
+ label,
5398
+ selected: active,
5399
+ endAdornment,
5400
+ ...link
5401
+ },
5402
+ label
5403
+ )) });
5404
+ const brandEl = brand != null ? brand : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ShellBrand, { product, logoVariant });
5405
+ 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)(
5408
+ import_AppBar.default,
5409
+ {
5410
+ position: "sticky",
5411
+ elevation: 0,
5412
+ 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)(
5416
+ IconButton2,
5417
+ {
5418
+ size: "small",
5419
+ color: "inherit",
5420
+ "aria-label": "Open navigation",
5421
+ onClick: () => setMobileOpen(true),
5422
+ children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_MenuOutlined.default, { fontSize: "small" })
5423
+ }
5424
+ ),
5425
+ wrapLogomark ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_Box2.default, { sx: { width: 48, ml: "-16px", display: "flex", justifyContent: "center" }, children: brandEl }) : brandEl
5426
+ ] }),
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, {}),
5430
+ actions
5431
+ ] })
5432
+ ] })
5433
+ }
5434
+ ),
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)(
5437
+ SidebarNav,
5438
+ {
5439
+ open: sidebarOpen,
5440
+ onOpenChange: setSidebarOpen,
5441
+ behavior: sidebarBehavior,
5442
+ sx: {
5443
+ height: "100%",
5444
+ "& .MuiDrawer-paper": { position: "relative", height: "100%" }
5445
+ },
5446
+ children: navContent
5447
+ }
5448
+ ),
5449
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_Box2.default, { component: "main", sx: { flexGrow: 1, overflow: "auto" }, children })
5450
+ ] }),
5451
+ isMobile && navContent && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5452
+ import_Drawer3.default,
5453
+ {
5454
+ open: mobileOpen,
5455
+ onClose: () => setMobileOpen(false),
5456
+ onClick: () => setMobileOpen(false),
5457
+ sx: { "& .MuiDrawer-paper": { width: 240 } },
5458
+ children: navContent
5459
+ }
5460
+ )
5461
+ ] });
5462
+ }
5463
+
5464
+ // src/components/Page/index.tsx
5465
+ var import_Box3 = __toESM(require("@mui/material/Box"));
5466
+ var import_Breadcrumbs2 = __toESM(require("@mui/material/Breadcrumbs"));
5467
+ var import_Link2 = __toESM(require("@mui/material/Link"));
5468
+ var import_Typography2 = __toESM(require("@mui/material/Typography"));
5469
+ var import_jsx_runtime21 = (
5470
+ // Current page: plain text, not a link.
5471
+ require("react/jsx-runtime")
5472
+ );
5473
+ function Page({
5474
+ title,
5475
+ breadcrumbs,
5476
+ actions,
5477
+ disableGutters = false,
5478
+ maxWidth,
5479
+ sx,
5480
+ children
5481
+ }) {
5482
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
5483
+ import_Box3.default,
5484
+ {
5485
+ component: "section",
5486
+ sx: [
5487
+ {
5488
+ display: "flex",
5489
+ flexDirection: "column",
5490
+ minHeight: "100%",
5491
+ backgroundColor: "background.paper",
5492
+ ...disableGutters ? {} : { p: 3 }
5493
+ },
5494
+ ...Array.isArray(sx) ? sx : [sx]
5495
+ ],
5496
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
5497
+ import_Box3.default,
5498
+ {
5499
+ sx: {
5500
+ display: "flex",
5501
+ flexDirection: "column",
5502
+ flexGrow: 1,
5503
+ width: "100%",
5504
+ ...maxWidth ? { maxWidth, mx: "auto" } : {}
5505
+ },
5506
+ 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)(
5509
+ import_Link2.default,
5510
+ {
5511
+ variant: "body2",
5512
+ underline: "hover",
5513
+ color: "text.secondary",
5514
+ ...crumb.component ? { component: crumb.component } : {},
5515
+ ...crumb.href ? { href: crumb.href } : {},
5516
+ ...crumb.onClick ? { onClick: crumb.onClick } : {},
5517
+ children: crumb.label
5518
+ },
5519
+ crumb.label
5520
+ )
5521
+ ) }),
5522
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
5523
+ import_Box3.default,
5524
+ {
5525
+ sx: {
5526
+ display: "flex",
5527
+ alignItems: "center",
5528
+ justifyContent: "space-between",
5529
+ gap: 2,
5530
+ mb: 3
5531
+ },
5532
+ 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 })
5535
+ ]
5536
+ }
5537
+ ),
5538
+ children
5539
+ ]
5540
+ }
5541
+ )
5542
+ }
5543
+ );
5544
+ }
5545
+
5546
+ // src/components/Box/index.tsx
5547
+ var import_Box4 = __toESM(require("@mui/material/Box"));
5548
+ var Box5 = import_Box4.default;
5338
5549
 
5339
5550
  // src/components/Stack/index.tsx
5340
5551
  var import_Stack = __toESM(require("@mui/material/Stack"));
@@ -5393,12 +5604,12 @@ var import_TextareaAutosize = __toESM(require("@mui/material/TextareaAutosize"))
5393
5604
 
5394
5605
  // src/components/Charts/LineChart.tsx
5395
5606
  var import_LineChart = require("@mui/x-charts/LineChart");
5396
- var import_styles6 = require("@mui/material/styles");
5607
+ var import_styles7 = require("@mui/material/styles");
5397
5608
 
5398
5609
  // src/components/Charts/useChartColors.ts
5399
- var import_styles4 = require("@mui/material/styles");
5610
+ var import_styles5 = require("@mui/material/styles");
5400
5611
  function useChartColors(count) {
5401
- const theme = (0, import_styles4.useTheme)();
5612
+ const theme = (0, import_styles5.useTheme)();
5402
5613
  const chart = theme.palette.chart;
5403
5614
  const colors2 = chart.series.map((s) => s.fg);
5404
5615
  return colors2.slice(0, Math.min(count, colors2.length));
@@ -5406,8 +5617,8 @@ function useChartColors(count) {
5406
5617
 
5407
5618
  // src/components/Charts/CustomTooltip.tsx
5408
5619
  var import_material2 = require("@mui/material");
5409
- var import_styles5 = require("@mui/material/styles");
5410
- var import_jsx_runtime20 = require("react/jsx-runtime");
5620
+ var import_styles6 = require("@mui/material/styles");
5621
+ var import_jsx_runtime22 = require("react/jsx-runtime");
5411
5622
  function formatDate(date) {
5412
5623
  if (!date) return "";
5413
5624
  const d = new Date(date);
@@ -5428,11 +5639,11 @@ function renderValue(val) {
5428
5639
  }
5429
5640
  function CustomTooltip(props) {
5430
5641
  const { series, axisValue, dataIndex } = props;
5431
- const theme = (0, import_styles5.useTheme)();
5642
+ const theme = (0, import_styles6.useTheme)();
5432
5643
  if (dataIndex == null) {
5433
5644
  return null;
5434
5645
  }
5435
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
5646
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5436
5647
  import_material2.Box,
5437
5648
  {
5438
5649
  sx: {
@@ -5448,7 +5659,7 @@ function CustomTooltip(props) {
5448
5659
  border: `1px solid ${theme.palette.divider}`
5449
5660
  },
5450
5661
  children: [
5451
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5662
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5452
5663
  import_material2.Typography,
5453
5664
  {
5454
5665
  variant: "body2",
@@ -5465,8 +5676,8 @@ function CustomTooltip(props) {
5465
5676
  const color = typeof s.getColor === "function" ? s.getColor(dataIndex) : s.color;
5466
5677
  const value = s.data ? s.data[dataIndex] : null;
5467
5678
  if (value == null) return null;
5468
- 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: [
5469
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
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)(
5470
5681
  import_material2.Box,
5471
5682
  {
5472
5683
  sx: {
@@ -5478,7 +5689,7 @@ function CustomTooltip(props) {
5478
5689
  }
5479
5690
  }
5480
5691
  ),
5481
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
5692
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5482
5693
  import_material2.Typography,
5483
5694
  {
5484
5695
  variant: "body2",
@@ -5489,7 +5700,7 @@ function CustomTooltip(props) {
5489
5700
  gap: "6px"
5490
5701
  },
5491
5702
  children: [
5492
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
5703
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5493
5704
  import_material2.Box,
5494
5705
  {
5495
5706
  component: "span",
@@ -5517,10 +5728,10 @@ function CustomTooltip(props) {
5517
5728
  }
5518
5729
 
5519
5730
  // src/components/Charts/LineChart.tsx
5520
- var import_jsx_runtime21 = require("react/jsx-runtime");
5731
+ var import_jsx_runtime23 = require("react/jsx-runtime");
5521
5732
  function LineChart({ series, colors: colors2, ...props }) {
5522
5733
  var _a, _b;
5523
- const theme = (0, import_styles6.useTheme)();
5734
+ const theme = (0, import_styles7.useTheme)();
5524
5735
  const chart = theme.palette.chart;
5525
5736
  const seriesColors = useChartColors((_a = series == null ? void 0 : series.length) != null ? _a : 0);
5526
5737
  const modifiedSeries = series == null ? void 0 : series.map((s) => {
@@ -5531,7 +5742,7 @@ function LineChart({ series, colors: colors2, ...props }) {
5531
5742
  highlightScope: (_b2 = s.highlightScope) != null ? _b2 : { highlighted: "item", faded: "global" }
5532
5743
  };
5533
5744
  });
5534
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
5745
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
5535
5746
  import_LineChart.LineChart,
5536
5747
  {
5537
5748
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -5602,11 +5813,11 @@ function LineChart({ series, colors: colors2, ...props }) {
5602
5813
 
5603
5814
  // src/components/Charts/BarChart.tsx
5604
5815
  var import_BarChart = require("@mui/x-charts/BarChart");
5605
- var import_styles7 = require("@mui/material/styles");
5606
- var import_jsx_runtime22 = require("react/jsx-runtime");
5816
+ var import_styles8 = require("@mui/material/styles");
5817
+ var import_jsx_runtime24 = require("react/jsx-runtime");
5607
5818
  function BarChart({ series, colors: colors2, ...props }) {
5608
5819
  var _a, _b;
5609
- const theme = (0, import_styles7.useTheme)();
5820
+ const theme = (0, import_styles8.useTheme)();
5610
5821
  const chart = theme.palette.chart;
5611
5822
  const seriesColors = useChartColors((_a = series == null ? void 0 : series.length) != null ? _a : 0);
5612
5823
  const resolvedColors = colors2 != null ? colors2 : seriesColors;
@@ -5621,7 +5832,7 @@ function BarChart({ series, colors: colors2, ...props }) {
5621
5832
  highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
5622
5833
  };
5623
5834
  });
5624
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
5835
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
5625
5836
  import_BarChart.BarChart,
5626
5837
  {
5627
5838
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -5681,10 +5892,10 @@ function BarChart({ series, colors: colors2, ...props }) {
5681
5892
  ...(_b = props.sx) != null ? _b : {}
5682
5893
  },
5683
5894
  ...props,
5684
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("defs", { children: series == null ? void 0 : series.map((s, idx) => {
5895
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("defs", { children: series == null ? void 0 : series.map((s, idx) => {
5685
5896
  if (s.variant !== "striped") return null;
5686
5897
  const baseColor = s.color || resolvedColors[idx % resolvedColors.length];
5687
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
5898
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
5688
5899
  "pattern",
5689
5900
  {
5690
5901
  id: `striped-pattern-${idx}`,
@@ -5693,8 +5904,8 @@ function BarChart({ series, colors: colors2, ...props }) {
5693
5904
  height: "8",
5694
5905
  patternTransform: "rotate(45)",
5695
5906
  children: [
5696
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("rect", { width: "8", height: "8", fill: theme.palette.background.paper }),
5697
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("line", { x1: "0", y: "0", x2: "0", y2: "8", stroke: baseColor, strokeWidth: "4" })
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" })
5698
5909
  ]
5699
5910
  },
5700
5911
  `striped-${idx}`
@@ -5706,11 +5917,11 @@ function BarChart({ series, colors: colors2, ...props }) {
5706
5917
 
5707
5918
  // src/components/Charts/PieChart.tsx
5708
5919
  var import_PieChart = require("@mui/x-charts/PieChart");
5709
- var import_styles8 = require("@mui/material/styles");
5710
- var import_jsx_runtime23 = require("react/jsx-runtime");
5920
+ var import_styles9 = require("@mui/material/styles");
5921
+ var import_jsx_runtime25 = require("react/jsx-runtime");
5711
5922
  function PieChart({ series, colors: colors2, ...props }) {
5712
5923
  var _a, _b, _c, _d;
5713
- const theme = (0, import_styles8.useTheme)();
5924
+ const theme = (0, import_styles9.useTheme)();
5714
5925
  const chart = theme.palette.chart;
5715
5926
  const sliceCount = (_c = (_b = (_a = series == null ? void 0 : series[0]) == null ? void 0 : _a.data) == null ? void 0 : _b.length) != null ? _c : 0;
5716
5927
  const seriesColors = useChartColors(sliceCount);
@@ -5721,7 +5932,7 @@ function PieChart({ series, colors: colors2, ...props }) {
5721
5932
  highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
5722
5933
  };
5723
5934
  });
5724
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
5935
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
5725
5936
  import_PieChart.PieChart,
5726
5937
  {
5727
5938
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -5764,7 +5975,7 @@ function PieChart({ series, colors: colors2, ...props }) {
5764
5975
 
5765
5976
  // src/components/Charts/ScatterChart.tsx
5766
5977
  var import_ScatterChart = require("@mui/x-charts/ScatterChart");
5767
- var import_styles9 = require("@mui/material/styles");
5978
+ var import_styles10 = require("@mui/material/styles");
5768
5979
 
5769
5980
  // src/components/Charts/chartSx.ts
5770
5981
  function getForestChartSx(theme) {
@@ -5820,10 +6031,10 @@ var forestLegendSlotProps = {
5820
6031
  };
5821
6032
 
5822
6033
  // src/components/Charts/ScatterChart.tsx
5823
- var import_jsx_runtime24 = require("react/jsx-runtime");
6034
+ var import_jsx_runtime26 = require("react/jsx-runtime");
5824
6035
  function ScatterChart({ series, colors: colors2, ...props }) {
5825
6036
  var _a, _b;
5826
- const theme = (0, import_styles9.useTheme)();
6037
+ const theme = (0, import_styles10.useTheme)();
5827
6038
  const seriesColors = useChartColors((_a = series == null ? void 0 : series.length) != null ? _a : 0);
5828
6039
  const modifiedSeries = series == null ? void 0 : series.map((s) => {
5829
6040
  var _a2;
@@ -5832,7 +6043,7 @@ function ScatterChart({ series, colors: colors2, ...props }) {
5832
6043
  highlightScope: (_a2 = s.highlightScope) != null ? _a2 : { highlighted: "item", faded: "global" }
5833
6044
  };
5834
6045
  });
5835
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
6046
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
5836
6047
  import_ScatterChart.ScatterChart,
5837
6048
  {
5838
6049
  series: modifiedSeries != null ? modifiedSeries : [],
@@ -5850,12 +6061,12 @@ function ScatterChart({ series, colors: colors2, ...props }) {
5850
6061
 
5851
6062
  // src/components/Charts/Gauge.tsx
5852
6063
  var import_Gauge = require("@mui/x-charts/Gauge");
5853
- var import_styles10 = require("@mui/material/styles");
5854
- var import_jsx_runtime25 = require("react/jsx-runtime");
6064
+ var import_styles11 = require("@mui/material/styles");
6065
+ var import_jsx_runtime27 = require("react/jsx-runtime");
5855
6066
  function Gauge(props) {
5856
6067
  var _a;
5857
- const theme = (0, import_styles10.useTheme)();
5858
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
6068
+ const theme = (0, import_styles11.useTheme)();
6069
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
5859
6070
  import_Gauge.Gauge,
5860
6071
  {
5861
6072
  ...props,
@@ -5945,6 +6156,7 @@ var import_material7 = require("@mui/material");
5945
6156
  AnimatedLine,
5946
6157
  AppBar,
5947
6158
  AppBarNavItem,
6159
+ AppShell,
5948
6160
  AreaElement,
5949
6161
  AreaElementPath,
5950
6162
  AreaPlot,
@@ -6066,6 +6278,7 @@ var import_material7 = require("@mui/material");
6066
6278
  MultiSelect,
6067
6279
  NoSsr,
6068
6280
  OutlinedInput,
6281
+ Page,
6069
6282
  Pagination,
6070
6283
  PaginationItem,
6071
6284
  Paper,