@cere/cere-design-system 0.0.21 → 0.0.22
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.d.mts +165 -1
- package/dist/index.d.ts +165 -1
- package/dist/index.js +353 -59
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +352 -50
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -7353,8 +7353,307 @@ var MetricsChart = ({ history = [] }) => {
|
|
|
7353
7353
|
] });
|
|
7354
7354
|
};
|
|
7355
7355
|
|
|
7356
|
+
// src/components/charts/TimeSeriesGraph/TimeSeriesGraph.tsx
|
|
7357
|
+
import { useCallback as useCallback6, useMemo as useMemo2, useState as useState10 } from "react";
|
|
7358
|
+
import {
|
|
7359
|
+
Box as Box24,
|
|
7360
|
+
Card as Card3,
|
|
7361
|
+
CardHeader as CardHeader3,
|
|
7362
|
+
CardMedia as CardMedia2,
|
|
7363
|
+
CircularProgress as CircularProgress7,
|
|
7364
|
+
Divider as Divider8,
|
|
7365
|
+
Stack as Stack7,
|
|
7366
|
+
Typography as Typography21,
|
|
7367
|
+
styled as styled45,
|
|
7368
|
+
useTheme as useTheme5
|
|
7369
|
+
} from "@mui/material";
|
|
7370
|
+
import { LineChart as LineChart3 } from "@mui/x-charts";
|
|
7371
|
+
import { format as format3 } from "date-fns";
|
|
7372
|
+
|
|
7373
|
+
// src/components/charts/TimeSeriesGraph/TimeRangeSelect.tsx
|
|
7374
|
+
import { MenuItem as MenuItem4, TextField as TextField5 } from "@mui/material";
|
|
7375
|
+
import { jsx as jsx87 } from "react/jsx-runtime";
|
|
7376
|
+
var TimeRangeSelect = ({ options: options2, value, onChange }) => /* @__PURE__ */ jsx87(
|
|
7377
|
+
TextField5,
|
|
7378
|
+
{
|
|
7379
|
+
select: true,
|
|
7380
|
+
size: "small",
|
|
7381
|
+
value: value ?? (options2.length > 0 ? options2[0].value : ""),
|
|
7382
|
+
onChange: (e) => onChange?.(e.target.value),
|
|
7383
|
+
"aria-label": "Time range selector",
|
|
7384
|
+
sx: { minWidth: 120 },
|
|
7385
|
+
children: options2.map((option) => /* @__PURE__ */ jsx87(MenuItem4, { value: option.value, children: option.label }, option.value))
|
|
7386
|
+
}
|
|
7387
|
+
);
|
|
7388
|
+
|
|
7389
|
+
// src/components/charts/TimeSeriesGraph/SummaryStats.tsx
|
|
7390
|
+
import { Stack as Stack6, Typography as Typography20 } from "@mui/material";
|
|
7391
|
+
import { jsx as jsx88, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
7392
|
+
var formatSummaryValue = (value, unit) => {
|
|
7393
|
+
const displayValue = typeof value === "number" ? value.toLocaleString() : value;
|
|
7394
|
+
return unit ? `${displayValue} ${unit}` : displayValue;
|
|
7395
|
+
};
|
|
7396
|
+
var SummaryStats = ({ items }) => {
|
|
7397
|
+
if (items.length === 0) {
|
|
7398
|
+
return null;
|
|
7399
|
+
}
|
|
7400
|
+
return /* @__PURE__ */ jsx88(
|
|
7401
|
+
Stack6,
|
|
7402
|
+
{
|
|
7403
|
+
direction: "row",
|
|
7404
|
+
spacing: 3,
|
|
7405
|
+
padding: 2,
|
|
7406
|
+
flexWrap: "wrap",
|
|
7407
|
+
useFlexGap: true,
|
|
7408
|
+
role: "list",
|
|
7409
|
+
"aria-label": "Summary statistics",
|
|
7410
|
+
children: items.map((item) => /* @__PURE__ */ jsxs40(
|
|
7411
|
+
Stack6,
|
|
7412
|
+
{
|
|
7413
|
+
direction: "row",
|
|
7414
|
+
alignItems: "center",
|
|
7415
|
+
spacing: 1,
|
|
7416
|
+
role: "listitem",
|
|
7417
|
+
children: [
|
|
7418
|
+
/* @__PURE__ */ jsx88(Typography20, { variant: "body2", color: "text.secondary", children: item.label }),
|
|
7419
|
+
/* @__PURE__ */ jsx88(Typography20, { variant: "h5", fontWeight: 600, children: formatSummaryValue(item.value, item.unit) })
|
|
7420
|
+
]
|
|
7421
|
+
},
|
|
7422
|
+
item.label
|
|
7423
|
+
))
|
|
7424
|
+
}
|
|
7425
|
+
);
|
|
7426
|
+
};
|
|
7427
|
+
|
|
7428
|
+
// src/components/charts/TimeSeriesGraph/TimeSeriesGraph.tsx
|
|
7429
|
+
import { Fragment as Fragment13, jsx as jsx89, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
7430
|
+
var ChartContainer = styled45(Box24)({
|
|
7431
|
+
position: "relative",
|
|
7432
|
+
height: 320
|
|
7433
|
+
});
|
|
7434
|
+
var LoadingOverlay = styled45(Box24)(({ theme: theme2 }) => ({
|
|
7435
|
+
position: "absolute",
|
|
7436
|
+
inset: 0,
|
|
7437
|
+
display: "flex",
|
|
7438
|
+
alignItems: "center",
|
|
7439
|
+
justifyContent: "center",
|
|
7440
|
+
backgroundColor: "rgba(255, 255, 255, 0.7)",
|
|
7441
|
+
zIndex: 1,
|
|
7442
|
+
borderRadius: theme2.shape.borderRadius
|
|
7443
|
+
}));
|
|
7444
|
+
var LegendDot = styled45(Box24, {
|
|
7445
|
+
shouldForwardProp: (prop) => prop !== "dotColor"
|
|
7446
|
+
})(({ dotColor }) => ({
|
|
7447
|
+
width: 14,
|
|
7448
|
+
height: 14,
|
|
7449
|
+
borderRadius: 4,
|
|
7450
|
+
backgroundColor: dotColor,
|
|
7451
|
+
flexShrink: 0
|
|
7452
|
+
}));
|
|
7453
|
+
var formatYAxisValue = (value) => {
|
|
7454
|
+
const absValue = Math.abs(value);
|
|
7455
|
+
if (absValue >= 1e9) {
|
|
7456
|
+
return `${(value / 1e9).toFixed(absValue % 1e9 === 0 ? 0 : 1)}B`;
|
|
7457
|
+
}
|
|
7458
|
+
if (absValue >= 1e6) {
|
|
7459
|
+
return `${(value / 1e6).toFixed(absValue % 1e6 === 0 ? 0 : 1)}M`;
|
|
7460
|
+
}
|
|
7461
|
+
if (absValue >= 1e3) {
|
|
7462
|
+
return `${(value / 1e3).toFixed(absValue % 1e3 === 0 ? 0 : 1)}K`;
|
|
7463
|
+
}
|
|
7464
|
+
return String(value);
|
|
7465
|
+
};
|
|
7466
|
+
var buildDataset = (series, hiddenSeries) => {
|
|
7467
|
+
const timestampMap = /* @__PURE__ */ new Map();
|
|
7468
|
+
series.forEach((s) => {
|
|
7469
|
+
if (hiddenSeries.has(s.name)) return;
|
|
7470
|
+
s.data.forEach((dp) => {
|
|
7471
|
+
const ts = dp.timestamp.getTime();
|
|
7472
|
+
if (!timestampMap.has(ts)) {
|
|
7473
|
+
timestampMap.set(ts, { timestamp: dp.timestamp });
|
|
7474
|
+
}
|
|
7475
|
+
timestampMap.get(ts)[s.name] = dp.value;
|
|
7476
|
+
});
|
|
7477
|
+
});
|
|
7478
|
+
return Array.from(timestampMap.values()).sort(
|
|
7479
|
+
(a, b) => a.timestamp.getTime() - b.timestamp.getTime()
|
|
7480
|
+
);
|
|
7481
|
+
};
|
|
7482
|
+
var TimeSeriesGraph = ({
|
|
7483
|
+
title,
|
|
7484
|
+
series,
|
|
7485
|
+
timeRangeOptions,
|
|
7486
|
+
selectedTimeRange,
|
|
7487
|
+
onTimeRangeChange,
|
|
7488
|
+
summaryItems,
|
|
7489
|
+
showSummary = true,
|
|
7490
|
+
headerAction,
|
|
7491
|
+
loading = false
|
|
7492
|
+
}) => {
|
|
7493
|
+
const theme2 = useTheme5();
|
|
7494
|
+
const [hiddenSeries, setHiddenSeries] = useState10(/* @__PURE__ */ new Set());
|
|
7495
|
+
const dataset = useMemo2(() => buildDataset(series, hiddenSeries), [series, hiddenSeries]);
|
|
7496
|
+
const visibleSeries = useMemo2(
|
|
7497
|
+
() => series.filter((s) => !hiddenSeries.has(s.name)),
|
|
7498
|
+
[series, hiddenSeries]
|
|
7499
|
+
);
|
|
7500
|
+
const chartColors = useMemo2(() => visibleSeries.map((s) => s.color), [visibleSeries]);
|
|
7501
|
+
const handleLegendToggle = useCallback6((seriesName) => {
|
|
7502
|
+
setHiddenSeries((prev) => {
|
|
7503
|
+
const next = new Set(prev);
|
|
7504
|
+
if (next.has(seriesName)) {
|
|
7505
|
+
next.delete(seriesName);
|
|
7506
|
+
} else {
|
|
7507
|
+
next.add(seriesName);
|
|
7508
|
+
}
|
|
7509
|
+
return next;
|
|
7510
|
+
});
|
|
7511
|
+
}, []);
|
|
7512
|
+
const timeBounds = useMemo2(() => {
|
|
7513
|
+
if (dataset.length === 0) return { min: void 0, max: void 0 };
|
|
7514
|
+
const timestamps = dataset.map((row) => row.timestamp.getTime());
|
|
7515
|
+
return {
|
|
7516
|
+
min: new Date(Math.min(...timestamps)),
|
|
7517
|
+
max: new Date(Math.max(...timestamps))
|
|
7518
|
+
};
|
|
7519
|
+
}, [dataset]);
|
|
7520
|
+
const hasData = dataset.length > 0;
|
|
7521
|
+
const shouldShowSummary = showSummary && summaryItems && summaryItems.length > 0;
|
|
7522
|
+
const headerActionElement = /* @__PURE__ */ jsxs41(Stack7, { direction: "row", spacing: 1, alignItems: "center", children: [
|
|
7523
|
+
headerAction,
|
|
7524
|
+
timeRangeOptions && timeRangeOptions.length > 0 && /* @__PURE__ */ jsx89(
|
|
7525
|
+
TimeRangeSelect,
|
|
7526
|
+
{
|
|
7527
|
+
options: timeRangeOptions,
|
|
7528
|
+
value: selectedTimeRange,
|
|
7529
|
+
onChange: onTimeRangeChange
|
|
7530
|
+
}
|
|
7531
|
+
)
|
|
7532
|
+
] });
|
|
7533
|
+
const showHeader = !!title || !!headerAction || timeRangeOptions && timeRangeOptions.length > 0;
|
|
7534
|
+
return /* @__PURE__ */ jsxs41(
|
|
7535
|
+
Card3,
|
|
7536
|
+
{
|
|
7537
|
+
"aria-label": title ? `Line chart showing ${title}` : "Line chart",
|
|
7538
|
+
role: "figure",
|
|
7539
|
+
children: [
|
|
7540
|
+
showHeader && /* @__PURE__ */ jsx89(
|
|
7541
|
+
CardHeader3,
|
|
7542
|
+
{
|
|
7543
|
+
title,
|
|
7544
|
+
titleTypographyProps: {
|
|
7545
|
+
variant: "subtitle1",
|
|
7546
|
+
fontWeight: 500
|
|
7547
|
+
},
|
|
7548
|
+
action: headerActionElement
|
|
7549
|
+
}
|
|
7550
|
+
),
|
|
7551
|
+
/* @__PURE__ */ jsxs41(CardMedia2, { children: [
|
|
7552
|
+
/* @__PURE__ */ jsxs41(ChartContainer, { children: [
|
|
7553
|
+
loading && /* @__PURE__ */ jsx89(LoadingOverlay, { role: "status", "aria-label": "Loading chart data", children: /* @__PURE__ */ jsx89(CircularProgress7, { size: 40 }) }),
|
|
7554
|
+
/* @__PURE__ */ jsx89(
|
|
7555
|
+
LineChart3,
|
|
7556
|
+
{
|
|
7557
|
+
dataset,
|
|
7558
|
+
axisHighlight: { x: "line", y: "none" },
|
|
7559
|
+
grid: { horizontal: true, vertical: false },
|
|
7560
|
+
margin: { top: 10, right: 20, bottom: 40, left: 50 },
|
|
7561
|
+
colors: chartColors.length > 0 ? chartColors : [theme2.palette.primary.main],
|
|
7562
|
+
slots: {
|
|
7563
|
+
noDataOverlay: () => null
|
|
7564
|
+
},
|
|
7565
|
+
tooltip: { trigger: hasData ? "axis" : "none" },
|
|
7566
|
+
yAxis: [
|
|
7567
|
+
{
|
|
7568
|
+
disableLine: true,
|
|
7569
|
+
disableTicks: true,
|
|
7570
|
+
min: hasData ? void 0 : 0,
|
|
7571
|
+
max: hasData ? void 0 : 100,
|
|
7572
|
+
tickNumber: hasData ? void 0 : 5,
|
|
7573
|
+
valueFormatter: (value) => formatYAxisValue(value || 0),
|
|
7574
|
+
tickLabelStyle: {
|
|
7575
|
+
fontSize: 10
|
|
7576
|
+
}
|
|
7577
|
+
}
|
|
7578
|
+
],
|
|
7579
|
+
xAxis: [
|
|
7580
|
+
{
|
|
7581
|
+
dataKey: "timestamp",
|
|
7582
|
+
scaleType: "time",
|
|
7583
|
+
min: timeBounds.min,
|
|
7584
|
+
max: timeBounds.max,
|
|
7585
|
+
disableLine: true,
|
|
7586
|
+
disableTicks: true,
|
|
7587
|
+
valueFormatter: (date) => format3(date, "do MMM"),
|
|
7588
|
+
tickLabelStyle: {
|
|
7589
|
+
fontSize: 10
|
|
7590
|
+
}
|
|
7591
|
+
}
|
|
7592
|
+
],
|
|
7593
|
+
series: visibleSeries.map((s) => ({
|
|
7594
|
+
curve: "linear",
|
|
7595
|
+
dataKey: s.name,
|
|
7596
|
+
label: s.name,
|
|
7597
|
+
showMark: false,
|
|
7598
|
+
connectNulls: false
|
|
7599
|
+
})),
|
|
7600
|
+
slotProps: {
|
|
7601
|
+
legend: { hidden: true }
|
|
7602
|
+
}
|
|
7603
|
+
}
|
|
7604
|
+
)
|
|
7605
|
+
] }),
|
|
7606
|
+
series.length > 0 && /* @__PURE__ */ jsx89(
|
|
7607
|
+
Stack7,
|
|
7608
|
+
{
|
|
7609
|
+
direction: "row",
|
|
7610
|
+
spacing: 2,
|
|
7611
|
+
justifyContent: "center",
|
|
7612
|
+
paddingY: 1,
|
|
7613
|
+
flexWrap: "wrap",
|
|
7614
|
+
useFlexGap: true,
|
|
7615
|
+
role: "list",
|
|
7616
|
+
"aria-label": "Chart legend",
|
|
7617
|
+
children: series.map((s) => {
|
|
7618
|
+
const isHidden = hiddenSeries.has(s.name);
|
|
7619
|
+
return /* @__PURE__ */ jsxs41(
|
|
7620
|
+
Stack7,
|
|
7621
|
+
{
|
|
7622
|
+
direction: "row",
|
|
7623
|
+
spacing: 1,
|
|
7624
|
+
alignItems: "center",
|
|
7625
|
+
role: "listitem",
|
|
7626
|
+
onClick: () => handleLegendToggle(s.name),
|
|
7627
|
+
sx: {
|
|
7628
|
+
cursor: "pointer",
|
|
7629
|
+
opacity: isHidden ? 0.4 : 1,
|
|
7630
|
+
transition: "opacity 0.2s ease",
|
|
7631
|
+
userSelect: "none"
|
|
7632
|
+
},
|
|
7633
|
+
"aria-pressed": !isHidden,
|
|
7634
|
+
"aria-label": `Toggle ${s.name} visibility`,
|
|
7635
|
+
children: [
|
|
7636
|
+
/* @__PURE__ */ jsx89(LegendDot, { dotColor: s.color }),
|
|
7637
|
+
/* @__PURE__ */ jsx89(Typography21, { variant: "body2", children: s.name })
|
|
7638
|
+
]
|
|
7639
|
+
},
|
|
7640
|
+
s.name
|
|
7641
|
+
);
|
|
7642
|
+
})
|
|
7643
|
+
}
|
|
7644
|
+
)
|
|
7645
|
+
] }),
|
|
7646
|
+
shouldShowSummary && /* @__PURE__ */ jsxs41(Fragment13, { children: [
|
|
7647
|
+
/* @__PURE__ */ jsx89(Divider8, {}),
|
|
7648
|
+
/* @__PURE__ */ jsx89(SummaryStats, { items: summaryItems })
|
|
7649
|
+
] })
|
|
7650
|
+
]
|
|
7651
|
+
}
|
|
7652
|
+
);
|
|
7653
|
+
};
|
|
7654
|
+
|
|
7356
7655
|
// src/components/third-party/FlowEditor.tsx
|
|
7357
|
-
import { useCallback as
|
|
7656
|
+
import { useCallback as useCallback7 } from "react";
|
|
7358
7657
|
import ReactFlow, {
|
|
7359
7658
|
Background,
|
|
7360
7659
|
Controls,
|
|
@@ -7363,10 +7662,10 @@ import ReactFlow, {
|
|
|
7363
7662
|
BackgroundVariant,
|
|
7364
7663
|
ConnectionLineType
|
|
7365
7664
|
} from "reactflow";
|
|
7366
|
-
import { Box as
|
|
7367
|
-
import { useTheme as
|
|
7665
|
+
import { Box as Box25 } from "@mui/material";
|
|
7666
|
+
import { useTheme as useTheme6 } from "@mui/material/styles";
|
|
7368
7667
|
import { Background as Background2, Controls as Controls2, MiniMap as MiniMap2, Panel, BackgroundVariant as BackgroundVariant2, ConnectionLineType as ConnectionLineType2 } from "reactflow";
|
|
7369
|
-
import { jsx as
|
|
7668
|
+
import { jsx as jsx90, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
7370
7669
|
var FlowEditor = ({
|
|
7371
7670
|
nodes,
|
|
7372
7671
|
edges,
|
|
@@ -7383,8 +7682,8 @@ var FlowEditor = ({
|
|
|
7383
7682
|
onInit,
|
|
7384
7683
|
...reactFlowProps
|
|
7385
7684
|
}) => {
|
|
7386
|
-
const theme2 =
|
|
7387
|
-
const handleInit =
|
|
7685
|
+
const theme2 = useTheme6();
|
|
7686
|
+
const handleInit = useCallback7(
|
|
7388
7687
|
(instance) => {
|
|
7389
7688
|
if (onInit) {
|
|
7390
7689
|
onInit(instance);
|
|
@@ -7392,8 +7691,8 @@ var FlowEditor = ({
|
|
|
7392
7691
|
},
|
|
7393
7692
|
[onInit]
|
|
7394
7693
|
);
|
|
7395
|
-
return /* @__PURE__ */
|
|
7396
|
-
|
|
7694
|
+
return /* @__PURE__ */ jsx90(ReactFlowProvider, { children: /* @__PURE__ */ jsx90(
|
|
7695
|
+
Box25,
|
|
7397
7696
|
{
|
|
7398
7697
|
sx: {
|
|
7399
7698
|
width: "100%",
|
|
@@ -7405,7 +7704,7 @@ var FlowEditor = ({
|
|
|
7405
7704
|
...containerProps?.sx
|
|
7406
7705
|
},
|
|
7407
7706
|
...containerProps,
|
|
7408
|
-
children: /* @__PURE__ */
|
|
7707
|
+
children: /* @__PURE__ */ jsxs42(
|
|
7409
7708
|
ReactFlow,
|
|
7410
7709
|
{
|
|
7411
7710
|
nodes,
|
|
@@ -7427,7 +7726,7 @@ var FlowEditor = ({
|
|
|
7427
7726
|
},
|
|
7428
7727
|
...reactFlowProps,
|
|
7429
7728
|
children: [
|
|
7430
|
-
showBackground && /* @__PURE__ */
|
|
7729
|
+
showBackground && /* @__PURE__ */ jsx90(
|
|
7431
7730
|
Background,
|
|
7432
7731
|
{
|
|
7433
7732
|
variant: backgroundVariant,
|
|
@@ -7436,8 +7735,8 @@ var FlowEditor = ({
|
|
|
7436
7735
|
color: theme2.palette.divider
|
|
7437
7736
|
}
|
|
7438
7737
|
),
|
|
7439
|
-
showControls && /* @__PURE__ */
|
|
7440
|
-
showMinimap && /* @__PURE__ */
|
|
7738
|
+
showControls && /* @__PURE__ */ jsx90(Controls, {}),
|
|
7739
|
+
showMinimap && /* @__PURE__ */ jsx90(
|
|
7441
7740
|
MiniMap,
|
|
7442
7741
|
{
|
|
7443
7742
|
nodeColor: (node) => {
|
|
@@ -7460,15 +7759,15 @@ var FlowEditor = ({
|
|
|
7460
7759
|
};
|
|
7461
7760
|
|
|
7462
7761
|
// src/components/third-party/CodeEditor.tsx
|
|
7463
|
-
import { useCallback as
|
|
7762
|
+
import { useCallback as useCallback8, useEffect as useEffect2, useState as useState11, useRef as useRef2 } from "react";
|
|
7464
7763
|
import Editor from "@monaco-editor/react";
|
|
7465
|
-
import { Box as
|
|
7764
|
+
import { Box as Box26, IconButton as IconButton11, Tooltip as Tooltip7 } from "@mui/material";
|
|
7466
7765
|
import FullscreenIcon from "@mui/icons-material/Fullscreen";
|
|
7467
7766
|
import FullscreenExitIcon from "@mui/icons-material/FullscreenExit";
|
|
7468
7767
|
import ErrorOutlineIcon from "@mui/icons-material/ErrorOutline";
|
|
7469
7768
|
import ExpandMoreIcon3 from "@mui/icons-material/ExpandMore";
|
|
7470
7769
|
import ExpandLessIcon from "@mui/icons-material/ExpandLess";
|
|
7471
|
-
import { jsx as
|
|
7770
|
+
import { jsx as jsx91, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
7472
7771
|
var configureTypeScript = (monaco) => {
|
|
7473
7772
|
monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
|
|
7474
7773
|
target: monaco.languages.typescript.ScriptTarget.ES2020,
|
|
@@ -7512,15 +7811,15 @@ var CodeEditor = ({
|
|
|
7512
7811
|
containerProps,
|
|
7513
7812
|
typeDefinitions
|
|
7514
7813
|
}) => {
|
|
7515
|
-
const [isEditorReady, setIsEditorReady] =
|
|
7516
|
-
const [validationErrors, setValidationErrors] =
|
|
7517
|
-
const [isFullscreen, setIsFullscreen] =
|
|
7518
|
-
const [tsCode, setTsCode] =
|
|
7519
|
-
const [actualHeight, setActualHeight] =
|
|
7814
|
+
const [isEditorReady, setIsEditorReady] = useState11(false);
|
|
7815
|
+
const [validationErrors, setValidationErrors] = useState11([]);
|
|
7816
|
+
const [isFullscreen, setIsFullscreen] = useState11(false);
|
|
7817
|
+
const [tsCode, setTsCode] = useState11(value);
|
|
7818
|
+
const [actualHeight, setActualHeight] = useState11(
|
|
7520
7819
|
typeof height === "number" ? `${height}px` : height
|
|
7521
7820
|
);
|
|
7522
|
-
const [showProblems, setShowProblems] =
|
|
7523
|
-
const [hasUserToggledProblems, setHasUserToggledProblems] =
|
|
7821
|
+
const [showProblems, setShowProblems] = useState11(false);
|
|
7822
|
+
const [hasUserToggledProblems, setHasUserToggledProblems] = useState11(false);
|
|
7524
7823
|
useEffect2(() => {
|
|
7525
7824
|
if (hasUserToggledProblems) return;
|
|
7526
7825
|
if (validationErrors.length > 0) {
|
|
@@ -7540,14 +7839,14 @@ var CodeEditor = ({
|
|
|
7540
7839
|
setActualHeight(typeof height === "number" ? `${height}px` : height);
|
|
7541
7840
|
}
|
|
7542
7841
|
}, [height, isFullscreen]);
|
|
7543
|
-
const toggleFullscreen =
|
|
7842
|
+
const toggleFullscreen = useCallback8(() => {
|
|
7544
7843
|
const newFullscreenState = !isFullscreen;
|
|
7545
7844
|
setIsFullscreen(newFullscreenState);
|
|
7546
7845
|
if (onFullscreenChange) {
|
|
7547
7846
|
onFullscreenChange(newFullscreenState);
|
|
7548
7847
|
}
|
|
7549
7848
|
}, [isFullscreen, onFullscreenChange]);
|
|
7550
|
-
const gotoMarker =
|
|
7849
|
+
const gotoMarker = useCallback8(
|
|
7551
7850
|
(marker) => {
|
|
7552
7851
|
const ed = finalEditorRef?.current;
|
|
7553
7852
|
if (!ed) return;
|
|
@@ -7579,7 +7878,7 @@ var CodeEditor = ({
|
|
|
7579
7878
|
window.removeEventListener("keydown", escapeHandler, { capture: true });
|
|
7580
7879
|
};
|
|
7581
7880
|
}, [isFullscreen, onFullscreenChange]);
|
|
7582
|
-
const handleEditorDidMount =
|
|
7881
|
+
const handleEditorDidMount = useCallback8(
|
|
7583
7882
|
(editor, monaco) => {
|
|
7584
7883
|
console.log("CodeEditor: onMount called", { editor: !!editor, monaco: !!monaco });
|
|
7585
7884
|
try {
|
|
@@ -7680,8 +7979,8 @@ var CodeEditor = ({
|
|
|
7680
7979
|
theme: themeProp || "vs",
|
|
7681
7980
|
...options2
|
|
7682
7981
|
};
|
|
7683
|
-
return /* @__PURE__ */
|
|
7684
|
-
|
|
7982
|
+
return /* @__PURE__ */ jsx91(
|
|
7983
|
+
Box26,
|
|
7685
7984
|
{
|
|
7686
7985
|
sx: {
|
|
7687
7986
|
display: "flex",
|
|
@@ -7701,8 +8000,8 @@ var CodeEditor = ({
|
|
|
7701
8000
|
pb: isFullscreen ? 2 : 0,
|
|
7702
8001
|
overflow: isFullscreen ? "hidden" : "visible"
|
|
7703
8002
|
},
|
|
7704
|
-
children: /* @__PURE__ */
|
|
7705
|
-
|
|
8003
|
+
children: /* @__PURE__ */ jsxs43(
|
|
8004
|
+
Box26,
|
|
7706
8005
|
{
|
|
7707
8006
|
sx: {
|
|
7708
8007
|
flex: 1,
|
|
@@ -7717,7 +8016,7 @@ var CodeEditor = ({
|
|
|
7717
8016
|
},
|
|
7718
8017
|
...containerProps,
|
|
7719
8018
|
children: [
|
|
7720
|
-
/* @__PURE__ */
|
|
8019
|
+
/* @__PURE__ */ jsx91(Tooltip7, { title: isFullscreen ? "Exit Fullscreen" : "Fullscreen", children: /* @__PURE__ */ jsx91(
|
|
7721
8020
|
IconButton11,
|
|
7722
8021
|
{
|
|
7723
8022
|
onClick: toggleFullscreen,
|
|
@@ -7735,11 +8034,11 @@ var CodeEditor = ({
|
|
|
7735
8034
|
},
|
|
7736
8035
|
boxShadow: 1
|
|
7737
8036
|
},
|
|
7738
|
-
children: isFullscreen ? /* @__PURE__ */
|
|
8037
|
+
children: isFullscreen ? /* @__PURE__ */ jsx91(FullscreenExitIcon, { fontSize: "small" }) : /* @__PURE__ */ jsx91(FullscreenIcon, { fontSize: "small" })
|
|
7739
8038
|
}
|
|
7740
8039
|
) }),
|
|
7741
|
-
/* @__PURE__ */
|
|
7742
|
-
|
|
8040
|
+
/* @__PURE__ */ jsx91(
|
|
8041
|
+
Box26,
|
|
7743
8042
|
{
|
|
7744
8043
|
sx: {
|
|
7745
8044
|
flex: 1,
|
|
@@ -7750,7 +8049,7 @@ var CodeEditor = ({
|
|
|
7750
8049
|
position: "relative",
|
|
7751
8050
|
height: isFullscreen ? "100%" : actualHeight
|
|
7752
8051
|
},
|
|
7753
|
-
children: /* @__PURE__ */
|
|
8052
|
+
children: /* @__PURE__ */ jsx91(
|
|
7754
8053
|
Editor,
|
|
7755
8054
|
{
|
|
7756
8055
|
height: "100%",
|
|
@@ -7761,7 +8060,7 @@ var CodeEditor = ({
|
|
|
7761
8060
|
onMount: handleEditorDidMount,
|
|
7762
8061
|
theme: themeProp || "vs",
|
|
7763
8062
|
options: defaultOptions,
|
|
7764
|
-
loading: /* @__PURE__ */
|
|
8063
|
+
loading: /* @__PURE__ */ jsx91(Box26, { sx: { p: 2, textAlign: "center" }, children: "Loading Monaco Editor..." }),
|
|
7765
8064
|
beforeMount: (monaco) => {
|
|
7766
8065
|
console.log("CodeEditor: beforeMount called", { monaco: !!monaco });
|
|
7767
8066
|
}
|
|
@@ -7769,8 +8068,8 @@ var CodeEditor = ({
|
|
|
7769
8068
|
)
|
|
7770
8069
|
}
|
|
7771
8070
|
),
|
|
7772
|
-
validationErrors.length > 0 && /* @__PURE__ */
|
|
7773
|
-
|
|
8071
|
+
validationErrors.length > 0 && /* @__PURE__ */ jsxs43(
|
|
8072
|
+
Box26,
|
|
7774
8073
|
{
|
|
7775
8074
|
sx: {
|
|
7776
8075
|
borderTop: 1,
|
|
@@ -7783,8 +8082,8 @@ var CodeEditor = ({
|
|
|
7783
8082
|
transition: "max-height 0.2s ease"
|
|
7784
8083
|
},
|
|
7785
8084
|
children: [
|
|
7786
|
-
/* @__PURE__ */
|
|
7787
|
-
|
|
8085
|
+
/* @__PURE__ */ jsxs43(
|
|
8086
|
+
Box26,
|
|
7788
8087
|
{
|
|
7789
8088
|
sx: {
|
|
7790
8089
|
display: "flex",
|
|
@@ -7798,15 +8097,15 @@ var CodeEditor = ({
|
|
|
7798
8097
|
color: "text.secondary"
|
|
7799
8098
|
},
|
|
7800
8099
|
children: [
|
|
7801
|
-
/* @__PURE__ */
|
|
7802
|
-
/* @__PURE__ */
|
|
7803
|
-
/* @__PURE__ */
|
|
8100
|
+
/* @__PURE__ */ jsx91(ErrorOutlineIcon, { color: "error", fontSize: "small" }),
|
|
8101
|
+
/* @__PURE__ */ jsx91(Box26, { sx: { fontWeight: 600, color: "text.primary" }, children: "Problems" }),
|
|
8102
|
+
/* @__PURE__ */ jsxs43(Box26, { sx: { ml: 1 }, children: [
|
|
7804
8103
|
validationErrors.length,
|
|
7805
8104
|
" error",
|
|
7806
8105
|
validationErrors.length > 1 ? "s" : ""
|
|
7807
8106
|
] }),
|
|
7808
|
-
/* @__PURE__ */
|
|
7809
|
-
/* @__PURE__ */
|
|
8107
|
+
/* @__PURE__ */ jsx91(Box26, { sx: { flex: 1 } }),
|
|
8108
|
+
/* @__PURE__ */ jsx91(
|
|
7810
8109
|
IconButton11,
|
|
7811
8110
|
{
|
|
7812
8111
|
size: "small",
|
|
@@ -7815,14 +8114,14 @@ var CodeEditor = ({
|
|
|
7815
8114
|
setHasUserToggledProblems(true);
|
|
7816
8115
|
setShowProblems((s) => !s);
|
|
7817
8116
|
},
|
|
7818
|
-
children: showProblems ? /* @__PURE__ */
|
|
8117
|
+
children: showProblems ? /* @__PURE__ */ jsx91(ExpandMoreIcon3, { fontSize: "small" }) : /* @__PURE__ */ jsx91(ExpandLessIcon, { fontSize: "small" })
|
|
7819
8118
|
}
|
|
7820
8119
|
)
|
|
7821
8120
|
]
|
|
7822
8121
|
}
|
|
7823
8122
|
),
|
|
7824
|
-
showProblems && /* @__PURE__ */
|
|
7825
|
-
|
|
8123
|
+
showProblems && /* @__PURE__ */ jsx91(Box26, { sx: { overflow: "auto" }, children: validationErrors.map((error, index) => /* @__PURE__ */ jsxs43(
|
|
8124
|
+
Box26,
|
|
7826
8125
|
{
|
|
7827
8126
|
onClick: () => gotoMarker(error),
|
|
7828
8127
|
sx: {
|
|
@@ -7838,12 +8137,12 @@ var CodeEditor = ({
|
|
|
7838
8137
|
fontSize: "0.85rem"
|
|
7839
8138
|
},
|
|
7840
8139
|
children: [
|
|
7841
|
-
/* @__PURE__ */
|
|
7842
|
-
/* @__PURE__ */
|
|
8140
|
+
/* @__PURE__ */ jsx91(ErrorOutlineIcon, { color: "error", sx: { fontSize: 18 } }),
|
|
8141
|
+
/* @__PURE__ */ jsxs43(Box26, { sx: { color: "text.secondary", width: 64 }, children: [
|
|
7843
8142
|
"Line ",
|
|
7844
8143
|
error.startLineNumber
|
|
7845
8144
|
] }),
|
|
7846
|
-
/* @__PURE__ */
|
|
8145
|
+
/* @__PURE__ */ jsx91(Box26, { sx: { color: "text.primary", flex: 1, minWidth: 0 }, children: error.message })
|
|
7847
8146
|
]
|
|
7848
8147
|
},
|
|
7849
8148
|
`${error.startLineNumber}-${error.startColumn}-${index}`
|
|
@@ -7968,11 +8267,14 @@ export {
|
|
|
7968
8267
|
StepLabel,
|
|
7969
8268
|
Stepper,
|
|
7970
8269
|
StorageAppIcon,
|
|
8270
|
+
SummaryStats,
|
|
7971
8271
|
Switch,
|
|
7972
8272
|
Tab,
|
|
7973
8273
|
Table,
|
|
7974
8274
|
TableHeader,
|
|
7975
8275
|
TextField,
|
|
8276
|
+
TimeRangeSelect,
|
|
8277
|
+
TimeSeriesGraph,
|
|
7976
8278
|
ToggleButton,
|
|
7977
8279
|
ToggleButtonGroup,
|
|
7978
8280
|
Toolbar,
|