@cere/cere-design-system 0.0.37 → 0.0.40

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
@@ -51,6 +51,8 @@ __export(index_exports, {
51
51
  CardActions: () => CardActions,
52
52
  CardContent: () => CardContent,
53
53
  CardHeader: () => CardHeader,
54
+ CardMedia: () => CardMedia,
55
+ Carousel: () => Carousel,
54
56
  CereIcon: () => CereIcon,
55
57
  ChartWidget: () => ChartWidget,
56
58
  CheckMarkAnimation: () => CheckMarkAnimation,
@@ -73,6 +75,7 @@ __export(index_exports, {
73
75
  CopyChip: () => CopyChip,
74
76
  DateRangePicker: () => DateRangePicker,
75
77
  DecentralizedServerIcon: () => DecentralizedServerIcon,
78
+ DefinitionRow: () => DefinitionRow,
76
79
  DeploymentDashboardCard: () => DeploymentDashboardCard,
77
80
  DeploymentDashboardPanel: () => DeploymentDashboardPanel,
78
81
  DeploymentDashboardTree: () => DeploymentDashboardTree,
@@ -94,7 +97,9 @@ __export(index_exports, {
94
97
  FormControlLabel: () => import_material3.FormControlLabel,
95
98
  FormHelperText: () => import_material3.FormHelperText,
96
99
  FormLabel: () => import_material3.FormLabel,
100
+ GRADIENT_PALETTE_COUNT: () => GRADIENT_PALETTE_COUNT,
97
101
  GithubLogoIcon: () => GithubLogoIcon,
102
+ GradientSurface: () => GradientSurface,
98
103
  Grid: () => import_material32.Grid2,
99
104
  IDBlock: () => IDBlock,
100
105
  IconButton: () => IconButton,
@@ -122,6 +127,7 @@ __export(index_exports, {
122
127
  OnboardingProvider: () => OnboardingProvider,
123
128
  Pagination: () => Pagination,
124
129
  Panel: () => import_reactflow4.Panel,
130
+ PanelDialog: () => PanelDialog,
125
131
  Paper: () => Paper,
126
132
  PeriodSelect: () => PeriodSelect,
127
133
  Progress: () => Progress,
@@ -132,6 +138,7 @@ __export(index_exports, {
132
138
  RoleBadge: () => RoleBadge,
133
139
  ScrollableRow: () => ScrollableRow,
134
140
  SearchField: () => SearchField,
141
+ SectionRow: () => SectionRow,
135
142
  Selector: () => Selector,
136
143
  ServiceSelectorButton: () => ServiceSelectorButton,
137
144
  ShareIcon: () => ShareIcon,
@@ -186,6 +193,7 @@ __export(index_exports, {
186
193
  useIsMobile: () => useIsMobile,
187
194
  useIsTablet: () => useIsTablet,
188
195
  useOnboarding: () => useOnboarding,
196
+ useSearchHotkeys: () => useSearchHotkeys,
189
197
  workflowConnectionColors: () => workflowConnectionColors,
190
198
  workflowNodeColors: () => workflowNodeColors
191
199
  });
@@ -2329,32 +2337,110 @@ var TextField = ({
2329
2337
  };
2330
2338
 
2331
2339
  // src/components/inputs/SearchField.tsx
2340
+ var import_react2 = require("react");
2332
2341
  var import_Search = __toESM(require("@mui/icons-material/Search"));
2333
2342
  var import_InputAdornment = __toESM(require("@mui/material/InputAdornment"));
2343
+ var import_Box = __toESM(require("@mui/material/Box"));
2334
2344
  var import_styles5 = require("@mui/material/styles");
2345
+
2346
+ // src/components/inputs/useSearchHotkeys.ts
2347
+ var import_react = require("react");
2348
+ function isMacPlatform() {
2349
+ if (typeof navigator === "undefined") return false;
2350
+ const uaDataPlatform = navigator.userAgentData?.platform;
2351
+ if (typeof uaDataPlatform === "string") return /mac/i.test(uaDataPlatform);
2352
+ return /Mac|iPhone|iPad|iPod/i.test(navigator.platform);
2353
+ }
2354
+ function useSearchHotkeys(inputRef, options2 = {}) {
2355
+ const { k: enableK = true, slash: enableSlash = true } = options2;
2356
+ (0, import_react.useEffect)(() => {
2357
+ if (!enableK && !enableSlash) return;
2358
+ const mac = isMacPlatform();
2359
+ function onKeyDown(event) {
2360
+ if (enableK && event.key.toLowerCase() === "k") {
2361
+ const correctMod = mac ? event.metaKey && !event.ctrlKey : event.ctrlKey && !event.metaKey;
2362
+ if (correctMod) {
2363
+ event.preventDefault();
2364
+ inputRef.current?.focus();
2365
+ return;
2366
+ }
2367
+ }
2368
+ if (enableSlash && event.key === "/") {
2369
+ const target = event.target;
2370
+ const typingInField = target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || (target?.isContentEditable ?? false);
2371
+ if (!typingInField) {
2372
+ event.preventDefault();
2373
+ inputRef.current?.focus();
2374
+ }
2375
+ }
2376
+ }
2377
+ window.addEventListener("keydown", onKeyDown);
2378
+ return () => window.removeEventListener("keydown", onKeyDown);
2379
+ }, [inputRef, enableK, enableSlash]);
2380
+ }
2381
+
2382
+ // src/components/inputs/SearchField.tsx
2335
2383
  var import_jsx_runtime8 = require("react/jsx-runtime");
2384
+ var ShortcutHint = () => {
2385
+ const [mounted, setMounted] = (0, import_react2.useState)(false);
2386
+ (0, import_react2.useEffect)(() => {
2387
+ setMounted(true);
2388
+ }, []);
2389
+ if (!mounted) return null;
2390
+ const modKey = isMacPlatform() ? "\u2318" : "Ctrl";
2391
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
2392
+ import_Box.default,
2393
+ {
2394
+ component: "span",
2395
+ "aria-hidden": true,
2396
+ sx: {
2397
+ fontFamily: "monospace",
2398
+ fontSize: 11,
2399
+ letterSpacing: 0.4,
2400
+ px: 0.75,
2401
+ py: 0.25,
2402
+ borderRadius: 1,
2403
+ border: "1px solid",
2404
+ borderColor: "divider",
2405
+ color: "text.secondary",
2406
+ lineHeight: 1
2407
+ },
2408
+ children: [
2409
+ modKey,
2410
+ "K"
2411
+ ]
2412
+ }
2413
+ );
2414
+ };
2336
2415
  var SearchField = ({
2337
2416
  placeholder = "Search...",
2338
2417
  onSearch,
2339
2418
  onChange,
2419
+ variant = "standard",
2420
+ shortcutHint = false,
2421
+ sx,
2340
2422
  ...props
2341
2423
  }) => {
2342
2424
  const theme2 = (0, import_styles5.useTheme)();
2343
2425
  const handleChange = (e) => {
2344
- if (onChange) {
2345
- onChange(e);
2346
- }
2347
- if (onSearch) {
2348
- onSearch(e.target.value);
2349
- }
2426
+ onChange?.(e);
2427
+ onSearch?.(e.target.value);
2350
2428
  };
2429
+ const pillSx = variant === "pill" ? {
2430
+ "& .MuiOutlinedInput-root": {
2431
+ borderRadius: "999px",
2432
+ paddingRight: "6px"
2433
+ }
2434
+ } : void 0;
2351
2435
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2352
2436
  TextField,
2353
2437
  {
2354
2438
  placeholder,
2355
2439
  onChange: handleChange,
2440
+ sx: [pillSx, ...Array.isArray(sx) ? sx : [sx]],
2356
2441
  InputProps: {
2357
- startAdornment: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_InputAdornment.default, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Search.default, { style: { fontSize: 18, color: theme2.palette.text.disabled } }) })
2442
+ startAdornment: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_InputAdornment.default, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Search.default, { style: { fontSize: 18, color: theme2.palette.text.disabled } }) }),
2443
+ endAdornment: shortcutHint ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_InputAdornment.default, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ShortcutHint, {}) }) : void 0
2358
2444
  },
2359
2445
  ...props
2360
2446
  }
@@ -2600,10 +2686,10 @@ var DateRangePicker = ({
2600
2686
 
2601
2687
  // src/components/navigation/Dropdown/Dropdown.tsx
2602
2688
  var import_material6 = require("@mui/material");
2603
- var import_react2 = require("react");
2689
+ var import_react4 = require("react");
2604
2690
 
2605
2691
  // src/components/navigation/Dropdown/DropdownAnchor.tsx
2606
- var import_react = require("react");
2692
+ var import_react3 = require("react");
2607
2693
  var import_material5 = require("@mui/material");
2608
2694
  var import_icons_material = require("@mui/icons-material");
2609
2695
  var import_jsx_runtime14 = require("react/jsx-runtime");
@@ -2631,7 +2717,7 @@ var Center = (0, import_material5.styled)(import_material5.Typography)(({ theme:
2631
2717
  fontWeight: theme2.typography.fontWeightBold,
2632
2718
  color: theme2.palette.text.primary
2633
2719
  }));
2634
- var DropdownAnchor = (0, import_react.forwardRef)(
2720
+ var DropdownAnchor = (0, import_react3.forwardRef)(
2635
2721
  ({ open, label, leftElement, onOpen, variant, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Clickable, { ref, ...props, color: "inherit", variant: "text", onClick: onOpen, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Anchor, { variant, spacing: 1, direction: "row", alignItems: "stretch", children: [
2636
2722
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Left, { children: leftElement }),
2637
2723
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Center, { variant: "body1", children: label }),
@@ -2655,9 +2741,9 @@ var Dropdown = ({
2655
2741
  variant,
2656
2742
  renderAnchor = ({ ref, open: open2, onOpen }) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(DropdownAnchor, { ref, open: open2, label, leftElement, onOpen, variant })
2657
2743
  }) => {
2658
- const anchorRef = (0, import_react2.useRef)(null);
2744
+ const anchorRef = (0, import_react4.useRef)(null);
2659
2745
  const horizontal = direction === "left" ? "right" : "left";
2660
- const onOpen = (0, import_react2.useCallback)(() => onToggle?.(true), [onToggle]);
2746
+ const onOpen = (0, import_react4.useCallback)(() => onToggle?.(true), [onToggle]);
2661
2747
  const padding = dense ? 1 : 2;
2662
2748
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
2663
2749
  renderAnchor({ ref: anchorRef, onOpen, open }),
@@ -2783,7 +2869,7 @@ var Sidebar = ({
2783
2869
  };
2784
2870
 
2785
2871
  // src/components/navigation/ServiceSelector.tsx
2786
- var import_react3 = require("react");
2872
+ var import_react5 = require("react");
2787
2873
  var import_material9 = require("@mui/material");
2788
2874
  var import_KeyboardArrowDown = __toESM(require("@mui/icons-material/KeyboardArrowDown"));
2789
2875
  var import_Archive = __toESM(require("@mui/icons-material/Archive"));
@@ -2809,9 +2895,9 @@ var ServiceSelectorButton = ({
2809
2895
  onOpenSettings,
2810
2896
  onOpenAddMember
2811
2897
  }) => {
2812
- const [anchorEl, setAnchorEl] = (0, import_react3.useState)(null);
2813
- const [searchTerm, setSearchTerm] = (0, import_react3.useState)("");
2814
- const [showArchived, setShowArchived] = (0, import_react3.useState)(false);
2898
+ const [anchorEl, setAnchorEl] = (0, import_react5.useState)(null);
2899
+ const [searchTerm, setSearchTerm] = (0, import_react5.useState)("");
2900
+ const [showArchived, setShowArchived] = (0, import_react5.useState)(false);
2815
2901
  const handleOpenSelector = (event) => {
2816
2902
  event.stopPropagation();
2817
2903
  setAnchorEl(event.currentTarget);
@@ -2827,7 +2913,7 @@ var ServiceSelectorButton = ({
2827
2913
  onServiceClick(selectedServiceId);
2828
2914
  }
2829
2915
  };
2830
- const handleSelectService = (0, import_react3.useCallback)(
2916
+ const handleSelectService = (0, import_react5.useCallback)(
2831
2917
  (serviceId) => {
2832
2918
  handleClose();
2833
2919
  if (onSelectService) {
@@ -3051,8 +3137,8 @@ var ServiceSelectorPanel = ({
3051
3137
  onOpenSettings,
3052
3138
  onOpenAddMember
3053
3139
  }) => {
3054
- const [internalSearchTerm, setInternalSearchTerm] = (0, import_react3.useState)("");
3055
- const [internalShowArchived, setInternalShowArchived] = (0, import_react3.useState)(false);
3140
+ const [internalSearchTerm, setInternalSearchTerm] = (0, import_react5.useState)("");
3141
+ const [internalShowArchived, setInternalShowArchived] = (0, import_react5.useState)(false);
3056
3142
  const searchTerm = externalSearchTerm !== void 0 ? externalSearchTerm : internalSearchTerm;
3057
3143
  const setSearchTerm = externalOnSearchChange || setInternalSearchTerm;
3058
3144
  const showArchived = externalShowArchived !== void 0 ? externalShowArchived : internalShowArchived;
@@ -3398,7 +3484,7 @@ var ServiceSelectorPanel = ({
3398
3484
  };
3399
3485
 
3400
3486
  // src/components/navigation/WorkspaceSelector.tsx
3401
- var import_react4 = __toESM(require("react"));
3487
+ var import_react6 = __toESM(require("react"));
3402
3488
  var import_material10 = require("@mui/material");
3403
3489
  var import_KeyboardArrowDown2 = __toESM(require("@mui/icons-material/KeyboardArrowDown"));
3404
3490
  var import_Search3 = __toESM(require("@mui/icons-material/Search"));
@@ -3415,7 +3501,7 @@ var WorkspaceSelectorButton = ({
3415
3501
  sx = {},
3416
3502
  panelWidth = 350
3417
3503
  }) => {
3418
- const [anchorEl, setAnchorEl] = (0, import_react4.useState)(null);
3504
+ const [anchorEl, setAnchorEl] = (0, import_react6.useState)(null);
3419
3505
  const handleOpenSelector = (event) => {
3420
3506
  event.stopPropagation();
3421
3507
  setAnchorEl(event.currentTarget);
@@ -3423,7 +3509,7 @@ var WorkspaceSelectorButton = ({
3423
3509
  const handleClose = () => {
3424
3510
  setAnchorEl(null);
3425
3511
  };
3426
- const handleSelectWorkspace = (0, import_react4.useCallback)(
3512
+ const handleSelectWorkspace = (0, import_react6.useCallback)(
3427
3513
  (workspaceId) => {
3428
3514
  handleClose();
3429
3515
  if (onSelectWorkspace) {
@@ -3525,8 +3611,8 @@ var WorkspaceSelectorPanel = ({
3525
3611
  loading = false,
3526
3612
  width = 350
3527
3613
  }) => {
3528
- const [searchTerm, setSearchTerm] = (0, import_react4.useState)("");
3529
- import_react4.default.useEffect(() => {
3614
+ const [searchTerm, setSearchTerm] = (0, import_react6.useState)("");
3615
+ import_react6.default.useEffect(() => {
3530
3616
  if (open) {
3531
3617
  setSearchTerm("");
3532
3618
  }
@@ -3666,7 +3752,7 @@ var StepButton = (props) => {
3666
3752
  };
3667
3753
 
3668
3754
  // src/components/navigation/SideNav/SideNav.tsx
3669
- var import_react5 = __toESM(require("react"));
3755
+ var import_react7 = __toESM(require("react"));
3670
3756
  var import_material12 = require("@mui/material");
3671
3757
  var import_styles10 = require("@mui/material/styles");
3672
3758
 
@@ -3689,7 +3775,7 @@ var scrollbarStyles = {
3689
3775
 
3690
3776
  // src/components/navigation/SideNav/SideNav.tsx
3691
3777
  var import_jsx_runtime21 = require("react/jsx-runtime");
3692
- var SideNavContext = import_react5.default.createContext({
3778
+ var SideNavContext = import_react7.default.createContext({
3693
3779
  collapsed: false,
3694
3780
  showTooltips: true
3695
3781
  });
@@ -3727,11 +3813,11 @@ var FooterSection = (0, import_styles10.styled)(import_material12.Box)(({ theme:
3727
3813
  flexShrink: 0,
3728
3814
  backgroundColor: theme2.palette.background.paper
3729
3815
  }));
3730
- var Header = import_react5.default.memo(({ children, className }) => {
3731
- const { collapsed, onToggleCollapse } = import_react5.default.useContext(SideNavContext);
3732
- const enhancedChildren = import_react5.default.Children.map(children, (child) => {
3733
- if (import_react5.default.isValidElement(child)) {
3734
- return import_react5.default.cloneElement(child, {
3816
+ var Header = import_react7.default.memo(({ children, className }) => {
3817
+ const { collapsed, onToggleCollapse } = import_react7.default.useContext(SideNavContext);
3818
+ const enhancedChildren = import_react7.default.Children.map(children, (child) => {
3819
+ if (import_react7.default.isValidElement(child)) {
3820
+ return import_react7.default.cloneElement(child, {
3735
3821
  collapsed,
3736
3822
  onCollapse: onToggleCollapse
3737
3823
  });
@@ -3741,11 +3827,11 @@ var Header = import_react5.default.memo(({ children, className }) => {
3741
3827
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(HeaderSection, { className, "data-testid": "sidenav-header", children: enhancedChildren });
3742
3828
  });
3743
3829
  Header.displayName = "SideNav.Header";
3744
- var Navigation = import_react5.default.memo(({ children, className }) => {
3745
- const { collapsed, showTooltips } = import_react5.default.useContext(SideNavContext);
3746
- const enhancedChildren = import_react5.default.Children.map(children, (child) => {
3747
- if (import_react5.default.isValidElement(child)) {
3748
- return import_react5.default.cloneElement(child, {
3830
+ var Navigation = import_react7.default.memo(({ children, className }) => {
3831
+ const { collapsed, showTooltips } = import_react7.default.useContext(SideNavContext);
3832
+ const enhancedChildren = import_react7.default.Children.map(children, (child) => {
3833
+ if (import_react7.default.isValidElement(child)) {
3834
+ return import_react7.default.cloneElement(child, {
3749
3835
  collapsed,
3750
3836
  showTooltips
3751
3837
  });
@@ -3755,11 +3841,11 @@ var Navigation = import_react5.default.memo(({ children, className }) => {
3755
3841
  return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(NavigationSection, { className, "data-testid": "sidenav-navigation", children: enhancedChildren });
3756
3842
  });
3757
3843
  Navigation.displayName = "SideNav.Navigation";
3758
- var Footer = import_react5.default.memo(({ children, className }) => {
3759
- const { collapsed } = import_react5.default.useContext(SideNavContext);
3760
- const enhancedChildren = import_react5.default.Children.map(children, (child) => {
3761
- if (import_react5.default.isValidElement(child)) {
3762
- return import_react5.default.cloneElement(child, {
3844
+ var Footer = import_react7.default.memo(({ children, className }) => {
3845
+ const { collapsed } = import_react7.default.useContext(SideNavContext);
3846
+ const enhancedChildren = import_react7.default.Children.map(children, (child) => {
3847
+ if (import_react7.default.isValidElement(child)) {
3848
+ return import_react7.default.cloneElement(child, {
3763
3849
  compact: collapsed
3764
3850
  });
3765
3851
  }
@@ -3769,7 +3855,7 @@ var Footer = import_react5.default.memo(({ children, className }) => {
3769
3855
  });
3770
3856
  Footer.displayName = "SideNav.Footer";
3771
3857
  var SideNav = Object.assign(
3772
- import_react5.default.memo(({
3858
+ import_react7.default.memo(({
3773
3859
  width = 280,
3774
3860
  collapsedWidth = 68,
3775
3861
  collapsed: controlledCollapsed,
@@ -3784,10 +3870,10 @@ var SideNav = Object.assign(
3784
3870
  className,
3785
3871
  ariaLabel = "Main navigation"
3786
3872
  }) => {
3787
- const [internalCollapsed, setInternalCollapsed] = (0, import_react5.useState)(defaultCollapsed);
3873
+ const [internalCollapsed, setInternalCollapsed] = (0, import_react7.useState)(defaultCollapsed);
3788
3874
  const isControlled = controlledCollapsed !== void 0;
3789
3875
  const collapsed = isControlled ? controlledCollapsed : internalCollapsed;
3790
- const handleToggleCollapse = (0, import_react5.useCallback)(() => {
3876
+ const handleToggleCollapse = (0, import_react7.useCallback)(() => {
3791
3877
  const newCollapsed = !collapsed;
3792
3878
  if (!isControlled) {
3793
3879
  setInternalCollapsed(newCollapsed);
@@ -3827,7 +3913,7 @@ var SideNav = Object.assign(
3827
3913
  SideNav.displayName = "SideNav";
3828
3914
 
3829
3915
  // src/components/navigation/SideNav/SideNavHeader.tsx
3830
- var import_react6 = __toESM(require("react"));
3916
+ var import_react8 = __toESM(require("react"));
3831
3917
  var import_material13 = require("@mui/material");
3832
3918
  var import_styles12 = require("@mui/material/styles");
3833
3919
  var import_ChevronLeft = __toESM(require("@mui/icons-material/ChevronLeft"));
@@ -3863,7 +3949,7 @@ var BrandingButton = (0, import_styles12.styled)(import_material13.ButtonBase)((
3863
3949
  outlineOffset: 2
3864
3950
  }
3865
3951
  }));
3866
- var SideNavHeader = import_react6.default.memo(({
3952
+ var SideNavHeader = import_react8.default.memo(({
3867
3953
  logo,
3868
3954
  title,
3869
3955
  showCollapseButton = true,
@@ -3962,11 +4048,11 @@ var SideNavHeader = import_react6.default.memo(({
3962
4048
  SideNavHeader.displayName = "SideNavHeader";
3963
4049
 
3964
4050
  // src/components/navigation/SideNav/NavigationList.tsx
3965
- var import_react8 = __toESM(require("react"));
4051
+ var import_react10 = __toESM(require("react"));
3966
4052
  var import_material15 = require("@mui/material");
3967
4053
 
3968
4054
  // src/components/navigation/SideNav/NavigationItem.tsx
3969
- var import_react7 = __toESM(require("react"));
4055
+ var import_react9 = __toESM(require("react"));
3970
4056
  var import_material14 = require("@mui/material");
3971
4057
  var import_styles13 = require("@mui/material/styles");
3972
4058
  var import_jsx_runtime23 = require("react/jsx-runtime");
@@ -4031,7 +4117,7 @@ var StyledListItemButton2 = (0, import_styles13.styled)(import_material14.ListIt
4031
4117
  }
4032
4118
  };
4033
4119
  });
4034
- var NavigationItem = import_react7.default.memo(({
4120
+ var NavigationItem = import_react9.default.memo(({
4035
4121
  id,
4036
4122
  label,
4037
4123
  icon,
@@ -4136,7 +4222,7 @@ NavigationItem.displayName = "NavigationItem";
4136
4222
 
4137
4223
  // src/components/navigation/SideNav/NavigationList.tsx
4138
4224
  var import_jsx_runtime24 = require("react/jsx-runtime");
4139
- var NavigationList = import_react8.default.memo(({
4225
+ var NavigationList = import_react10.default.memo(({
4140
4226
  items,
4141
4227
  selectedId,
4142
4228
  onSelectionChange,
@@ -4145,7 +4231,7 @@ var NavigationList = import_react8.default.memo(({
4145
4231
  collapsed = false,
4146
4232
  showTooltips = true
4147
4233
  }) => {
4148
- const [internalSelectedId, setInternalSelectedId] = (0, import_react8.useState)(
4234
+ const [internalSelectedId, setInternalSelectedId] = (0, import_react10.useState)(
4149
4235
  selectedId
4150
4236
  );
4151
4237
  const isControlled = selectedId !== void 0;
@@ -4208,7 +4294,7 @@ var NavigationList = import_react8.default.memo(({
4208
4294
  NavigationList.displayName = "NavigationList";
4209
4295
 
4210
4296
  // src/components/navigation/SideNav/ConnectionStatus.tsx
4211
- var import_react9 = __toESM(require("react"));
4297
+ var import_react11 = __toESM(require("react"));
4212
4298
  var import_material16 = require("@mui/material");
4213
4299
  var import_styles15 = require("@mui/material/styles");
4214
4300
  var import_Power = __toESM(require("@mui/icons-material/Power"));
@@ -4273,7 +4359,7 @@ var StatusPill = (0, import_styles15.styled)(import_material16.Box, {
4273
4359
  }
4274
4360
  };
4275
4361
  });
4276
- var ConnectionStatus = import_react9.default.memo(({
4362
+ var ConnectionStatus = import_react11.default.memo(({
4277
4363
  status,
4278
4364
  variant = "info",
4279
4365
  icon,
@@ -4342,7 +4428,7 @@ var ConnectionStatus = import_react9.default.memo(({
4342
4428
  ConnectionStatus.displayName = "ConnectionStatus";
4343
4429
 
4344
4430
  // src/components/navigation/SideNav/AccountSection.tsx
4345
- var import_react10 = __toESM(require("react"));
4431
+ var import_react12 = __toESM(require("react"));
4346
4432
  var import_material17 = require("@mui/material");
4347
4433
  var import_styles16 = require("@mui/material/styles");
4348
4434
  var import_Logout = __toESM(require("@mui/icons-material/Logout"));
@@ -4378,7 +4464,7 @@ var deriveInitials = (name) => {
4378
4464
  }
4379
4465
  return (words[0][0] + words[words.length - 1][0]).toUpperCase();
4380
4466
  };
4381
- var AccountSection = import_react10.default.memo(({
4467
+ var AccountSection = import_react12.default.memo(({
4382
4468
  user,
4383
4469
  onLogout,
4384
4470
  showEmail = false,
@@ -4660,7 +4746,7 @@ var Pagination = ({ color = "primary", ...props }) => {
4660
4746
  };
4661
4747
 
4662
4748
  // src/components/navigation/Selector.tsx
4663
- var import_react11 = require("react");
4749
+ var import_react13 = require("react");
4664
4750
  var import_material19 = require("@mui/material");
4665
4751
  var import_KeyboardArrowDown3 = __toESM(require("@mui/icons-material/KeyboardArrowDown"));
4666
4752
  var import_Search4 = __toESM(require("@mui/icons-material/Search"));
@@ -4696,8 +4782,8 @@ var Selector = ({
4696
4782
  width = 350
4697
4783
  }) => {
4698
4784
  const theme2 = (0, import_styles22.useTheme)();
4699
- const [anchorEl, setAnchorEl] = (0, import_react11.useState)(null);
4700
- const [searchTerm, setSearchTerm] = (0, import_react11.useState)("");
4785
+ const [anchorEl, setAnchorEl] = (0, import_react13.useState)(null);
4786
+ const [searchTerm, setSearchTerm] = (0, import_react13.useState)("");
4701
4787
  const open = Boolean(anchorEl);
4702
4788
  const selectedOption = options2.find((opt) => opt.id === selectedId);
4703
4789
  const filteredOptions = options2.filter(
@@ -4951,8 +5037,8 @@ var StatusDot = ({
4951
5037
  };
4952
5038
 
4953
5039
  // src/components/feedback/CopyChip.tsx
4954
- var import_react12 = require("react");
4955
- var import_Box = __toESM(require("@mui/material/Box"));
5040
+ var import_react14 = require("react");
5041
+ var import_Box2 = __toESM(require("@mui/material/Box"));
4956
5042
  var import_Tooltip = __toESM(require("@mui/material/Tooltip"));
4957
5043
  var import_Check3 = __toESM(require("@mui/icons-material/Check"));
4958
5044
  var import_ContentCopy = __toESM(require("@mui/icons-material/ContentCopy"));
@@ -4966,9 +5052,9 @@ var CopyChip = ({
4966
5052
  tooltipCopiedLabel = "Copied",
4967
5053
  onCopy
4968
5054
  }) => {
4969
- const [copied, setCopied] = (0, import_react12.useState)(false);
4970
- const timerRef = (0, import_react12.useRef)(null);
4971
- (0, import_react12.useEffect)(() => {
5055
+ const [copied, setCopied] = (0, import_react14.useState)(false);
5056
+ const timerRef = (0, import_react14.useRef)(null);
5057
+ (0, import_react14.useEffect)(() => {
4972
5058
  return () => {
4973
5059
  if (timerRef.current != null) clearTimeout(timerRef.current);
4974
5060
  };
@@ -4985,7 +5071,7 @@ var CopyChip = ({
4985
5071
  timerRef.current = setTimeout(() => setCopied(false), COPY_FEEDBACK_MS);
4986
5072
  };
4987
5073
  return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(import_Tooltip.default, { title: copied ? tooltipCopiedLabel : tooltipLabel, placement: "top", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
4988
- import_Box.default,
5074
+ import_Box2.default,
4989
5075
  {
4990
5076
  component: "button",
4991
5077
  type: "button",
@@ -5010,7 +5096,7 @@ var CopyChip = ({
5010
5096
  },
5011
5097
  children: [
5012
5098
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
5013
- import_Box.default,
5099
+ import_Box2.default,
5014
5100
  {
5015
5101
  component: "span",
5016
5102
  sx: {
@@ -5070,8 +5156,8 @@ var RoleBadge = ({
5070
5156
  };
5071
5157
 
5072
5158
  // src/components/feedback/IDBlock.tsx
5073
- var import_react13 = require("react");
5074
- var import_Box2 = __toESM(require("@mui/material/Box"));
5159
+ var import_react15 = require("react");
5160
+ var import_Box3 = __toESM(require("@mui/material/Box"));
5075
5161
  var import_Typography2 = __toESM(require("@mui/material/Typography"));
5076
5162
  var import_IconButton4 = __toESM(require("@mui/material/IconButton"));
5077
5163
  var import_Snackbar = __toESM(require("@mui/material/Snackbar"));
@@ -5079,7 +5165,7 @@ var import_Alert = __toESM(require("@mui/material/Alert"));
5079
5165
  var import_ContentCopy2 = __toESM(require("@mui/icons-material/ContentCopy"));
5080
5166
  var import_styles26 = require("@mui/material/styles");
5081
5167
  var import_jsx_runtime37 = require("react/jsx-runtime");
5082
- var IDContainer = (0, import_styles26.styled)(import_Box2.default)(() => ({
5168
+ var IDContainer = (0, import_styles26.styled)(import_Box3.default)(() => ({
5083
5169
  display: "inline-flex",
5084
5170
  alignItems: "center",
5085
5171
  gap: "4px",
@@ -5094,7 +5180,7 @@ var IDBlock = ({
5094
5180
  entityType = "entity",
5095
5181
  onCopy
5096
5182
  }) => {
5097
- const [snackbar, setSnackbar] = (0, import_react13.useState)({
5183
+ const [snackbar, setSnackbar] = (0, import_react15.useState)({
5098
5184
  open: false,
5099
5185
  message: "",
5100
5186
  severity: "success"
@@ -5235,7 +5321,7 @@ var Progress = ({
5235
5321
  };
5236
5322
 
5237
5323
  // src/components/feedback/Alert.tsx
5238
- var import_react14 = __toESM(require("react"));
5324
+ var import_react16 = __toESM(require("react"));
5239
5325
  var import_Alert2 = __toESM(require("@mui/material/Alert"));
5240
5326
  var import_material21 = require("@mui/material");
5241
5327
  var import_Snackbar2 = __toESM(require("@mui/material/Snackbar"));
@@ -5290,9 +5376,9 @@ var Snackbar2 = ({
5290
5376
  if (!content) {
5291
5377
  return null;
5292
5378
  }
5293
- const NoTransition = import_react14.default.forwardRef(
5379
+ const NoTransition = import_react16.default.forwardRef(
5294
5380
  (props2, ref) => {
5295
- return import_react14.default.cloneElement(props2.children, {
5381
+ return import_react16.default.cloneElement(props2.children, {
5296
5382
  ref,
5297
5383
  style: {
5298
5384
  ...props2.children.props.style,
@@ -5464,10 +5550,10 @@ var CircularProgress5 = ({
5464
5550
  var import_material27 = require("@mui/material");
5465
5551
 
5466
5552
  // src/components/icons/CereIcon.tsx
5467
- var import_react15 = require("react");
5553
+ var import_react17 = require("react");
5468
5554
  var import_material26 = require("@mui/material");
5469
5555
  var import_jsx_runtime45 = require("react/jsx-runtime");
5470
- var CereIcon = (0, import_react15.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material26.SvgIcon, { ...props, viewBox: "0 0 24 28", children: [
5556
+ var CereIcon = (0, import_react17.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(import_material26.SvgIcon, { ...props, viewBox: "0 0 24 28", children: [
5471
5557
  /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("g", { clipPath: "url(#a)", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
5472
5558
  "path",
5473
5559
  {
@@ -5770,12 +5856,12 @@ var Drawer2 = ({
5770
5856
  };
5771
5857
 
5772
5858
  // src/components/layout/MetaField.tsx
5773
- var import_Box3 = __toESM(require("@mui/material/Box"));
5859
+ var import_Box4 = __toESM(require("@mui/material/Box"));
5774
5860
  var import_Typography3 = __toESM(require("@mui/material/Typography"));
5775
5861
  var import_jsx_runtime49 = require("react/jsx-runtime");
5776
5862
  var MetaField = ({ label, value, mono = false, title }) => {
5777
5863
  const resolvedTitle = title ?? (typeof value === "string" ? value : void 0);
5778
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_Box3.default, { sx: { display: "flex", flexDirection: "column", gap: 0.25, minWidth: 0 }, children: [
5864
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_Box4.default, { sx: { display: "flex", flexDirection: "column", gap: 0.25, minWidth: 0 }, children: [
5779
5865
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
5780
5866
  import_Typography3.default,
5781
5867
  {
@@ -5809,8 +5895,8 @@ var MetaField = ({ label, value, mono = false, title }) => {
5809
5895
  };
5810
5896
 
5811
5897
  // src/components/layout/ScrollableRow.tsx
5812
- var import_react16 = require("react");
5813
- var import_Box4 = __toESM(require("@mui/material/Box"));
5898
+ var import_react18 = require("react");
5899
+ var import_Box5 = __toESM(require("@mui/material/Box"));
5814
5900
  var import_IconButton5 = __toESM(require("@mui/material/IconButton"));
5815
5901
  var import_ChevronLeft2 = __toESM(require("@mui/icons-material/ChevronLeft"));
5816
5902
  var import_ChevronRight2 = __toESM(require("@mui/icons-material/ChevronRight"));
@@ -5823,10 +5909,10 @@ var ScrollableRow = ({
5823
5909
  minNudge = 160,
5824
5910
  nudgeFraction = 0.6
5825
5911
  }) => {
5826
- const scrollerRef = (0, import_react16.useRef)(null);
5827
- const [canLeft, setCanLeft] = (0, import_react16.useState)(false);
5828
- const [canRight, setCanRight] = (0, import_react16.useState)(false);
5829
- (0, import_react16.useEffect)(() => {
5912
+ const scrollerRef = (0, import_react18.useRef)(null);
5913
+ const [canLeft, setCanLeft] = (0, import_react18.useState)(false);
5914
+ const [canRight, setCanRight] = (0, import_react18.useState)(false);
5915
+ (0, import_react18.useEffect)(() => {
5830
5916
  const el = scrollerRef.current;
5831
5917
  if (!el) return;
5832
5918
  const update = () => {
@@ -5854,9 +5940,9 @@ var ScrollableRow = ({
5854
5940
  if (!el) return;
5855
5941
  el.scrollBy({ left: dir * Math.max(minNudge, el.clientWidth * nudgeFraction), behavior: "smooth" });
5856
5942
  };
5857
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_Box4.default, { sx: { position: "relative", flex: 1, minWidth: 0 }, children: [
5943
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_Box5.default, { sx: { position: "relative", flex: 1, minWidth: 0 }, children: [
5858
5944
  /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
5859
- import_Box4.default,
5945
+ import_Box5.default,
5860
5946
  {
5861
5947
  ref: scrollerRef,
5862
5948
  "data-scrollable-row-scroller": true,
@@ -5910,48 +5996,511 @@ var ScrollableRow = ({
5910
5996
  ] });
5911
5997
  };
5912
5998
 
5999
+ // src/components/layout/SectionRow.tsx
6000
+ var import_Box6 = __toESM(require("@mui/material/Box"));
6001
+ var import_Typography4 = __toESM(require("@mui/material/Typography"));
6002
+ var import_jsx_runtime51 = require("react/jsx-runtime");
6003
+ function SectionRow({
6004
+ title,
6005
+ subtitle,
6006
+ action,
6007
+ leftLabel,
6008
+ rightLabel,
6009
+ children
6010
+ }) {
6011
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_Box6.default, { component: "section", sx: { mb: 4 }, children: [
6012
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
6013
+ import_Box6.default,
6014
+ {
6015
+ component: "header",
6016
+ sx: {
6017
+ display: "flex",
6018
+ alignItems: "flex-end",
6019
+ justifyContent: "space-between",
6020
+ gap: 1.5,
6021
+ mb: 1.5
6022
+ },
6023
+ children: [
6024
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(import_Box6.default, { sx: { minWidth: 0 }, children: [
6025
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_Typography4.default, { component: "h2", variant: "h6", sx: { m: 0 }, children: title }),
6026
+ subtitle && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_Typography4.default, { variant: "caption", sx: { color: "text.secondary" }, children: subtitle })
6027
+ ] }),
6028
+ action && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_Box6.default, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: action })
6029
+ ]
6030
+ }
6031
+ ),
6032
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ScrollableRow, { leftLabel, rightLabel, children })
6033
+ ] });
6034
+ }
6035
+
6036
+ // src/components/layout/Carousel.tsx
6037
+ var import_react19 = require("react");
6038
+ var import_Box7 = __toESM(require("@mui/material/Box"));
6039
+ var import_IconButton6 = __toESM(require("@mui/material/IconButton"));
6040
+ var import_Typography5 = __toESM(require("@mui/material/Typography"));
6041
+ var import_ChevronLeft3 = __toESM(require("@mui/icons-material/ChevronLeft"));
6042
+ var import_ChevronRight3 = __toESM(require("@mui/icons-material/ChevronRight"));
6043
+ var import_embla_carousel_react = __toESM(require("embla-carousel-react"));
6044
+ var import_jsx_runtime52 = require("react/jsx-runtime");
6045
+ var pad2 = (n) => String(n).padStart(2, "0");
6046
+ function Carousel({
6047
+ slides,
6048
+ renderSlide,
6049
+ getKey,
6050
+ slidesPerView = 1,
6051
+ autoplay = true,
6052
+ autoplayDelayMs = 5e3,
6053
+ showDots = true,
6054
+ showCounter = true,
6055
+ showArrows = true,
6056
+ pauseOnHover = true,
6057
+ ariaLabel,
6058
+ onSelect,
6059
+ arrowSx,
6060
+ dotColor,
6061
+ dotActiveColor
6062
+ }) {
6063
+ const [emblaRef, emblaApi] = (0, import_embla_carousel_react.default)({ loop: true, align: "start" });
6064
+ const [selected, setSelected] = (0, import_react19.useState)(0);
6065
+ const [paused, setPaused] = (0, import_react19.useState)(false);
6066
+ const count = slides.length;
6067
+ (0, import_react19.useEffect)(() => {
6068
+ if (!emblaApi) return;
6069
+ const handleSelect = () => {
6070
+ const next = emblaApi.selectedScrollSnap();
6071
+ setSelected(next);
6072
+ onSelect?.(next);
6073
+ };
6074
+ emblaApi.on("select", handleSelect);
6075
+ handleSelect();
6076
+ return () => {
6077
+ emblaApi.off("select", handleSelect);
6078
+ };
6079
+ }, [emblaApi, onSelect]);
6080
+ (0, import_react19.useEffect)(() => {
6081
+ if (!emblaApi || !autoplay || paused || count <= 1) return;
6082
+ const id = window.setInterval(() => emblaApi.scrollNext(), autoplayDelayMs);
6083
+ return () => window.clearInterval(id);
6084
+ }, [emblaApi, autoplay, paused, count, autoplayDelayMs]);
6085
+ if (count === 0) return null;
6086
+ const showControls = count > 1;
6087
+ const slideBasis = `${100 / Math.max(1, slidesPerView)}%`;
6088
+ const arrowBaseSx = {
6089
+ position: "absolute",
6090
+ top: "50%",
6091
+ transform: "translateY(-50%)",
6092
+ bgcolor: "background.paper",
6093
+ boxShadow: 1,
6094
+ "&:hover": { bgcolor: "background.paper" }
6095
+ };
6096
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
6097
+ import_Box7.default,
6098
+ {
6099
+ role: "region",
6100
+ "aria-roledescription": "carousel",
6101
+ "aria-label": ariaLabel,
6102
+ onPointerEnter: pauseOnHover ? () => setPaused(true) : void 0,
6103
+ onPointerLeave: pauseOnHover ? () => setPaused(false) : void 0,
6104
+ sx: { position: "relative", width: "100%" },
6105
+ children: [
6106
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_Box7.default, { ref: emblaRef, sx: { overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_Box7.default, { sx: { display: "flex" }, children: slides.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
6107
+ import_Box7.default,
6108
+ {
6109
+ role: "group",
6110
+ "aria-roledescription": "slide",
6111
+ "aria-label": `${i + 1} of ${count}`,
6112
+ sx: { flex: `0 0 ${slideBasis}`, minWidth: 0 },
6113
+ children: renderSlide(item, i)
6114
+ },
6115
+ getKey ? getKey(item, i) : i
6116
+ )) }) }),
6117
+ showControls && showArrows && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
6118
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
6119
+ import_IconButton6.default,
6120
+ {
6121
+ "aria-label": "Previous slide",
6122
+ onClick: () => emblaApi?.scrollPrev(),
6123
+ sx: [arrowBaseSx, { left: 8 }, ...Array.isArray(arrowSx) ? arrowSx : [arrowSx]],
6124
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_ChevronLeft3.default, {})
6125
+ }
6126
+ ),
6127
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
6128
+ import_IconButton6.default,
6129
+ {
6130
+ "aria-label": "Next slide",
6131
+ onClick: () => emblaApi?.scrollNext(),
6132
+ sx: [arrowBaseSx, { right: 8 }, ...Array.isArray(arrowSx) ? arrowSx : [arrowSx]],
6133
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_ChevronRight3.default, {})
6134
+ }
6135
+ )
6136
+ ] }),
6137
+ showControls && showCounter && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
6138
+ import_Typography5.default,
6139
+ {
6140
+ variant: "caption",
6141
+ sx: {
6142
+ position: "absolute",
6143
+ top: 12,
6144
+ right: 16,
6145
+ px: 1,
6146
+ py: 0.25,
6147
+ borderRadius: 1,
6148
+ bgcolor: "rgba(0,0,0,0.5)",
6149
+ color: "common.white",
6150
+ letterSpacing: 1
6151
+ },
6152
+ children: [
6153
+ pad2(selected + 1),
6154
+ " / ",
6155
+ pad2(count)
6156
+ ]
6157
+ }
6158
+ ),
6159
+ showControls && showDots && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
6160
+ import_Box7.default,
6161
+ {
6162
+ role: "tablist",
6163
+ "aria-label": "Carousel slides",
6164
+ sx: {
6165
+ position: "absolute",
6166
+ bottom: 12,
6167
+ left: 0,
6168
+ right: 0,
6169
+ display: "flex",
6170
+ justifyContent: "center",
6171
+ gap: 1
6172
+ },
6173
+ children: slides.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
6174
+ import_Box7.default,
6175
+ {
6176
+ component: "button",
6177
+ role: "tab",
6178
+ "aria-selected": i === selected,
6179
+ "aria-label": `Go to slide ${i + 1}`,
6180
+ type: "button",
6181
+ onClick: () => emblaApi?.scrollTo(i),
6182
+ sx: (theme2) => ({
6183
+ width: i === selected ? 24 : 8,
6184
+ height: 8,
6185
+ borderRadius: 4,
6186
+ border: "none",
6187
+ padding: 0,
6188
+ cursor: "pointer",
6189
+ bgcolor: i === selected ? dotActiveColor ?? theme2.palette.primary.main : dotColor ?? theme2.palette.action.disabled,
6190
+ transition: "width 0.2s ease, background 0.2s ease"
6191
+ })
6192
+ },
6193
+ getKey ? getKey(item, i) : i
6194
+ ))
6195
+ }
6196
+ )
6197
+ ]
6198
+ }
6199
+ );
6200
+ }
6201
+
6202
+ // src/components/layout/GradientSurface.tsx
6203
+ var import_Box8 = __toESM(require("@mui/material/Box"));
6204
+ var import_jsx_runtime53 = require("react/jsx-runtime");
6205
+ var PALETTES = [
6206
+ { base: "linear-gradient(115deg, #0d0627 0%, #23194b 55%, #8B00EC 130%)", blobA: "#BD32A7", blobB: "#8B00EC" },
6207
+ { base: "linear-gradient(115deg, #2a1635 0%, #5b2a55 55%, #c75a8a 130%)", blobA: "#ff7ea8", blobB: "#ffd1a8" },
6208
+ { base: "linear-gradient(115deg, #0e2a2c 0%, #1d5d63 55%, #59c6c4 130%)", blobA: "#59c6c4", blobB: "#2bb0a0" },
6209
+ { base: "linear-gradient(115deg, #131534 0%, #2c3a8c 55%, #6088e8 130%)", blobA: "#6088e8", blobB: "#3b5db8" },
6210
+ { base: "linear-gradient(115deg, #1a0f30 0%, #3d2a78 55%, #8a5cf6 130%)", blobA: "#a892ff", blobB: "#6b4cf0" },
6211
+ { base: "linear-gradient(115deg, #2b1124 0%, #6d2244 55%, #d44a7a 130%)", blobA: "#d44a7a", blobB: "#a8345e" }
6212
+ ];
6213
+ var GRADIENT_PALETTE_COUNT = PALETTES.length;
6214
+ function GradientSurface({ index, children, sx }) {
6215
+ const wrapped = (index % GRADIENT_PALETTE_COUNT + GRADIENT_PALETTE_COUNT) % GRADIENT_PALETTE_COUNT;
6216
+ const palette = PALETTES[wrapped];
6217
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
6218
+ import_Box8.default,
6219
+ {
6220
+ "data-gradient-index": wrapped,
6221
+ sx: [
6222
+ {
6223
+ position: "relative",
6224
+ overflow: "hidden",
6225
+ background: palette.base,
6226
+ color: "common.white",
6227
+ "&::before, &::after": {
6228
+ content: '""',
6229
+ position: "absolute",
6230
+ pointerEvents: "none",
6231
+ borderRadius: "50%",
6232
+ filter: "blur(6px)"
6233
+ },
6234
+ "&::before": {
6235
+ width: 460,
6236
+ height: 460,
6237
+ top: -120,
6238
+ right: -120,
6239
+ opacity: 0.7,
6240
+ background: `radial-gradient(circle, ${palette.blobA} 0%, transparent 70%)`
6241
+ },
6242
+ "&::after": {
6243
+ width: 520,
6244
+ height: 520,
6245
+ bottom: -180,
6246
+ left: -160,
6247
+ opacity: 0.55,
6248
+ background: `radial-gradient(circle, ${palette.blobB} 0%, transparent 70%)`
6249
+ }
6250
+ },
6251
+ ...Array.isArray(sx) ? sx : [sx]
6252
+ ],
6253
+ children
6254
+ }
6255
+ );
6256
+ }
6257
+
6258
+ // src/components/layout/DefinitionRow.tsx
6259
+ var import_Box9 = __toESM(require("@mui/material/Box"));
6260
+ var import_Typography6 = __toESM(require("@mui/material/Typography"));
6261
+ var import_jsx_runtime54 = require("react/jsx-runtime");
6262
+ function DefinitionRow({
6263
+ icon,
6264
+ label,
6265
+ sublabel,
6266
+ value,
6267
+ hint,
6268
+ dense = false,
6269
+ divider = true
6270
+ }) {
6271
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
6272
+ import_Box9.default,
6273
+ {
6274
+ "data-density": dense ? "dense" : "normal",
6275
+ sx: {
6276
+ py: dense ? 0.75 : 1.25,
6277
+ display: "flex",
6278
+ alignItems: "center",
6279
+ gap: 1.5,
6280
+ ...divider && {
6281
+ borderBottom: "1px solid",
6282
+ borderColor: "divider",
6283
+ "&:last-of-type": { borderBottom: "none" }
6284
+ }
6285
+ },
6286
+ children: [
6287
+ icon && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_Box9.default, { sx: { display: "flex", alignItems: "center", color: "text.secondary" }, children: icon }),
6288
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_Box9.default, { sx: { minWidth: 0, flex: 1 }, children: [
6289
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_Typography6.default, { variant: "body2", sx: { fontWeight: 500, lineHeight: 1.2 }, children: label }),
6290
+ sublabel && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_Typography6.default, { variant: "caption", sx: { color: "text.secondary" }, children: sublabel })
6291
+ ] }),
6292
+ (value || hint) && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
6293
+ import_Box9.default,
6294
+ {
6295
+ sx: {
6296
+ display: "flex",
6297
+ flexDirection: "column",
6298
+ alignItems: "flex-end",
6299
+ textAlign: "right"
6300
+ },
6301
+ children: [
6302
+ value && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_Typography6.default, { variant: "body2", sx: { color: "text.secondary" }, children: value }),
6303
+ hint && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_Typography6.default, { variant: "caption", sx: { color: "text.disabled" }, children: hint })
6304
+ ]
6305
+ }
6306
+ )
6307
+ ]
6308
+ }
6309
+ );
6310
+ }
6311
+
6312
+ // src/components/layout/PanelDialog.tsx
6313
+ var import_react20 = require("react");
6314
+ var import_Dialog = __toESM(require("@mui/material/Dialog"));
6315
+ var import_IconButton7 = __toESM(require("@mui/material/IconButton"));
6316
+ var import_Box10 = __toESM(require("@mui/material/Box"));
6317
+ var import_Typography7 = __toESM(require("@mui/material/Typography"));
6318
+ var import_Slide = __toESM(require("@mui/material/Slide"));
6319
+ var import_Close3 = __toESM(require("@mui/icons-material/Close"));
6320
+ var import_jsx_runtime55 = require("react/jsx-runtime");
6321
+ var WIDTH_PX = {
6322
+ sm: 420,
6323
+ md: 640,
6324
+ lg: 880,
6325
+ xl: 1080
6326
+ };
6327
+ var SlideLeft = (0, import_react20.forwardRef)(
6328
+ function SlideLeft2(props, ref) {
6329
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_Slide.default, { direction: "left", ref, ...props });
6330
+ }
6331
+ );
6332
+ var SlideUp = (0, import_react20.forwardRef)(
6333
+ function SlideUp2(props, ref) {
6334
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_Slide.default, { direction: "up", ref, ...props });
6335
+ }
6336
+ );
6337
+ function PanelDialog({
6338
+ open,
6339
+ onClose,
6340
+ title,
6341
+ headerActions,
6342
+ width = "md",
6343
+ side = "right",
6344
+ ariaLabel,
6345
+ hideHeader = false,
6346
+ paperSx,
6347
+ backdropSx,
6348
+ transition,
6349
+ children
6350
+ }) {
6351
+ const accessibleName = ariaLabel ?? (typeof title === "string" ? title : void 0);
6352
+ const isRight = side === "right";
6353
+ const resolvedTransition = transition ?? (isRight ? "slide-left" : "fade");
6354
+ const TransitionComponent = resolvedTransition === "slide-left" ? SlideLeft : resolvedTransition === "slide-up" ? SlideUp : void 0;
6355
+ const paperBaseSx = {
6356
+ width: WIDTH_PX[width],
6357
+ maxWidth: "100%",
6358
+ ...isRight && {
6359
+ position: "absolute",
6360
+ right: 0,
6361
+ top: 0,
6362
+ bottom: 0,
6363
+ margin: 0,
6364
+ maxHeight: "100vh",
6365
+ height: "100vh",
6366
+ borderRadius: 0
6367
+ }
6368
+ };
6369
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
6370
+ import_Dialog.default,
6371
+ {
6372
+ open,
6373
+ onClose,
6374
+ TransitionComponent,
6375
+ slotProps: {
6376
+ paper: {
6377
+ "aria-label": accessibleName,
6378
+ sx: [paperBaseSx, ...Array.isArray(paperSx) ? paperSx : [paperSx]]
6379
+ },
6380
+ ...backdropSx ? { backdrop: { sx: backdropSx } } : {}
6381
+ },
6382
+ children: [
6383
+ !hideHeader && /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
6384
+ import_Box10.default,
6385
+ {
6386
+ sx: {
6387
+ display: "flex",
6388
+ alignItems: "center",
6389
+ justifyContent: "space-between",
6390
+ gap: 1,
6391
+ px: 2,
6392
+ py: 1.5,
6393
+ borderBottom: "1px solid",
6394
+ borderColor: "divider"
6395
+ },
6396
+ children: [
6397
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_Box10.default, { sx: { display: "flex", alignItems: "center", minWidth: 0 }, children: typeof title === "string" ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_Typography7.default, { variant: "h6", noWrap: true, children: title }) : title }),
6398
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_Box10.default, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
6399
+ headerActions,
6400
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_IconButton7.default, { "aria-label": "Close", onClick: onClose, edge: "end", size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_Close3.default, { fontSize: "small" }) })
6401
+ ] })
6402
+ ]
6403
+ }
6404
+ ),
6405
+ hideHeader && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6406
+ import_IconButton7.default,
6407
+ {
6408
+ "aria-label": "Close",
6409
+ onClick: onClose,
6410
+ size: "small",
6411
+ sx: {
6412
+ position: "absolute",
6413
+ top: 12,
6414
+ right: 12,
6415
+ zIndex: 2,
6416
+ bgcolor: "background.paper",
6417
+ boxShadow: 1,
6418
+ "&:hover": { bgcolor: "background.paper" }
6419
+ },
6420
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_Close3.default, { fontSize: "small" })
6421
+ }
6422
+ ),
6423
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_Box10.default, { sx: { flex: 1, overflow: "auto", minHeight: 0 }, children })
6424
+ ]
6425
+ }
6426
+ );
6427
+ }
6428
+
5913
6429
  // src/components/layout/Card.tsx
5914
6430
  var import_Card = __toESM(require("@mui/material/Card"));
5915
6431
  var import_CardContent = __toESM(require("@mui/material/CardContent"));
5916
6432
  var import_CardHeader = __toESM(require("@mui/material/CardHeader"));
5917
6433
  var import_CardActions = __toESM(require("@mui/material/CardActions"));
6434
+ var import_CardMedia = __toESM(require("@mui/material/CardMedia"));
5918
6435
  var import_styles30 = require("@mui/material/styles");
5919
- var import_jsx_runtime51 = require("react/jsx-runtime");
6436
+ var import_jsx_runtime56 = require("react/jsx-runtime");
6437
+ var CardMedia = (props) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_CardMedia.default, { ...props });
5920
6438
  var StyledCard = (0, import_styles30.styled)(import_Card.default, {
5921
- shouldForwardProp: (prop) => prop !== "hoverable" && prop !== "clickable"
5922
- })(({ hoverable, clickable }) => ({
5923
- borderRadius: 8,
5924
- boxShadow: "0px 1px 3px rgba(0, 0, 0, 0.12)",
5925
- transition: "all 0.2s ease-in-out",
5926
- ...clickable && {
5927
- cursor: "pointer"
5928
- },
5929
- ...hoverable && {
5930
- "&:hover": {
5931
- boxShadow: "0px 4px 12px rgba(0, 0, 0, 0.15)",
5932
- transform: "translateY(-2px)"
6439
+ shouldForwardProp: (prop) => prop !== "hoverable" && prop !== "clickable" && prop !== "dsVariant"
6440
+ })(
6441
+ ({ theme: theme2, hoverable, clickable, dsVariant }) => ({
6442
+ borderRadius: 8,
6443
+ transition: "all 0.2s ease-in-out",
6444
+ ...dsVariant === "standard" && {
6445
+ boxShadow: "0px 1px 3px rgba(0, 0, 0, 0.12)",
6446
+ backgroundColor: theme2.palette.background.paper
6447
+ },
6448
+ ...dsVariant === "tinted" && {
6449
+ boxShadow: "none",
6450
+ backgroundColor: theme2.palette.action.hover,
6451
+ border: `1px solid ${theme2.palette.divider}`
6452
+ },
6453
+ ...dsVariant === "outlined" && {
6454
+ boxShadow: "none",
6455
+ backgroundColor: theme2.palette.background.paper,
6456
+ border: `1px solid ${theme2.palette.divider}`
6457
+ },
6458
+ ...clickable && {
6459
+ cursor: "pointer"
6460
+ },
6461
+ ...hoverable && {
6462
+ "&:hover": {
6463
+ boxShadow: "0px 4px 12px rgba(0, 0, 0, 0.15)",
6464
+ transform: "translateY(-2px)"
6465
+ }
5933
6466
  }
5934
- }
5935
- }));
5936
- var Card = ({ hoverable = false, clickable = false, children, ...props }) => {
5937
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(StyledCard, { hoverable, clickable, ...props, children });
6467
+ })
6468
+ );
6469
+ var Card = ({
6470
+ variant = "standard",
6471
+ hoverable = false,
6472
+ clickable = false,
6473
+ children,
6474
+ ...props
6475
+ }) => {
6476
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
6477
+ StyledCard,
6478
+ {
6479
+ dsVariant: variant,
6480
+ hoverable,
6481
+ clickable,
6482
+ variant: "elevation",
6483
+ ...props,
6484
+ children
6485
+ }
6486
+ );
5938
6487
  };
5939
6488
  var CardContent = (props) => {
5940
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_CardContent.default, { ...props });
6489
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_CardContent.default, { ...props });
5941
6490
  };
5942
6491
  var CardHeader = (props) => {
5943
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_CardHeader.default, { ...props });
6492
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_CardHeader.default, { ...props });
5944
6493
  };
5945
6494
  var CardActions = (props) => {
5946
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_CardActions.default, { ...props });
6495
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_CardActions.default, { ...props });
5947
6496
  };
5948
6497
 
5949
6498
  // src/components/layout/List.tsx
5950
6499
  var import_material30 = require("@mui/material");
5951
6500
  var import_styles31 = require("@mui/material/styles");
5952
- var import_jsx_runtime52 = require("react/jsx-runtime");
6501
+ var import_jsx_runtime57 = require("react/jsx-runtime");
5953
6502
  var List6 = (props) => {
5954
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_material30.List, { ...props });
6503
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_material30.List, { ...props });
5955
6504
  };
5956
6505
  var StyledListItem = (0, import_styles31.styled)(import_material30.ListItem, {
5957
6506
  shouldForwardProp: (prop) => prop !== "hoverable"
@@ -5974,9 +6523,9 @@ var ListItem4 = ({
5974
6523
  children,
5975
6524
  ...props
5976
6525
  }) => {
5977
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(StyledListItem, { hoverable, ...props, children: [
5978
- icon && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_material30.ListItemIcon, { children: icon }),
5979
- (primary || secondary) && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
6526
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(StyledListItem, { hoverable, ...props, children: [
6527
+ icon && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_material30.ListItemIcon, { children: icon }),
6528
+ (primary || secondary) && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
5980
6529
  import_material30.ListItemText,
5981
6530
  {
5982
6531
  primary,
@@ -5991,7 +6540,7 @@ var ListItem4 = ({
5991
6540
  // src/components/layout/Avatar.tsx
5992
6541
  var import_Avatar = __toESM(require("@mui/material/Avatar"));
5993
6542
  var import_styles32 = require("@mui/material/styles");
5994
- var import_jsx_runtime53 = require("react/jsx-runtime");
6543
+ var import_jsx_runtime58 = require("react/jsx-runtime");
5995
6544
  var sizeMap = {
5996
6545
  small: 32,
5997
6546
  medium: 40,
@@ -6008,13 +6557,13 @@ var StyledAvatar = (0, import_styles32.styled)(import_Avatar.default, {
6008
6557
  }));
6009
6558
  var Avatar5 = ({ size: size3 = "medium", ...props }) => {
6010
6559
  const avatarSize = typeof size3 === "number" ? size3 : sizeMap[size3];
6011
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(StyledAvatar, { avatarSize, ...props });
6560
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(StyledAvatar, { avatarSize, ...props });
6012
6561
  };
6013
6562
 
6014
6563
  // src/components/layout/Table.tsx
6015
6564
  var import_material31 = require("@mui/material");
6016
6565
  var import_styles33 = require("@mui/material/styles");
6017
- var import_jsx_runtime54 = require("react/jsx-runtime");
6566
+ var import_jsx_runtime59 = require("react/jsx-runtime");
6018
6567
  var StyledTableContainer = (0, import_styles33.styled)(import_material31.TableContainer)(({ theme: theme2 }) => ({
6019
6568
  borderRadius: 8,
6020
6569
  border: `1px solid ${theme2.palette.grey[200]}`
@@ -6027,7 +6576,7 @@ var StyledTableHead = (0, import_styles33.styled)(import_material31.TableHead)((
6027
6576
  }
6028
6577
  }));
6029
6578
  var Table = ({ stickyHeader = false, children, ...props }) => {
6030
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(StyledTableContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_material31.Table, { stickyHeader, ...props, children }) });
6579
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StyledTableContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_material31.Table, { stickyHeader, ...props, children }) });
6031
6580
  };
6032
6581
  var TableHeader = ({
6033
6582
  columns,
@@ -6035,7 +6584,7 @@ var TableHeader = ({
6035
6584
  order = "asc",
6036
6585
  onSort
6037
6586
  }) => {
6038
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(StyledTableHead, { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_material31.TableRow, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_material31.TableCell, { align: column.align || "left", children: column.sortable && onSort ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
6587
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StyledTableHead, { children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_material31.TableRow, { children: columns.map((column) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_material31.TableCell, { align: column.align || "left", children: column.sortable && onSort ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
6039
6588
  import_material31.TableSortLabel,
6040
6589
  {
6041
6590
  active: orderBy === column.id,
@@ -6052,9 +6601,9 @@ var import_material32 = require("@mui/material");
6052
6601
  // src/components/layout/Breadcrumbs.tsx
6053
6602
  var import_Breadcrumbs = __toESM(require("@mui/material/Breadcrumbs"));
6054
6603
  var import_Link3 = __toESM(require("@mui/material/Link"));
6055
- var import_Typography4 = __toESM(require("@mui/material/Typography"));
6604
+ var import_Typography8 = __toESM(require("@mui/material/Typography"));
6056
6605
  var import_styles34 = require("@mui/material/styles");
6057
- var import_jsx_runtime55 = require("react/jsx-runtime");
6606
+ var import_jsx_runtime60 = require("react/jsx-runtime");
6058
6607
  var StyledBreadcrumbs = (0, import_styles34.styled)(import_Breadcrumbs.default)(({ theme: theme2 }) => ({
6059
6608
  "& .MuiBreadcrumbs-ol": {
6060
6609
  flexWrap: "nowrap"
@@ -6071,12 +6620,12 @@ var StyledLink2 = (0, import_styles34.styled)(import_Link3.default)(({ theme: th
6071
6620
  }
6072
6621
  }));
6073
6622
  var Breadcrumbs = ({ items, ...props }) => {
6074
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(StyledBreadcrumbs, { ...props, children: items.map((item, index) => {
6623
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(StyledBreadcrumbs, { ...props, children: items.map((item, index) => {
6075
6624
  const isLast = index === items.length - 1;
6076
6625
  if (isLast || !item.href && !item.onClick) {
6077
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_Typography4.default, { color: "text.primary", children: item.label }, index);
6626
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_Typography8.default, { color: "text.primary", children: item.label }, index);
6078
6627
  }
6079
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
6628
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
6080
6629
  StyledLink2,
6081
6630
  {
6082
6631
  href: item.href,
@@ -6097,7 +6646,7 @@ var Breadcrumbs = ({ items, ...props }) => {
6097
6646
  var import_material33 = require("@mui/material");
6098
6647
  var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
6099
6648
  var import_styles35 = require("@mui/material/styles");
6100
- var import_jsx_runtime56 = require("react/jsx-runtime");
6649
+ var import_jsx_runtime61 = require("react/jsx-runtime");
6101
6650
  var StyledAccordion = (0, import_styles35.styled)(import_material33.Accordion)(({ theme: theme2 }) => ({
6102
6651
  borderRadius: 8,
6103
6652
  boxShadow: "none",
@@ -6128,16 +6677,16 @@ var Accordion = ({
6128
6677
  defaultExpanded = false,
6129
6678
  ...props
6130
6679
  }) => {
6131
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(StyledAccordion, { defaultExpanded, ...props, children: [
6132
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(StyledAccordionSummary, { expandIcon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_ExpandMore.default, {}), children: title }),
6133
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(StyledAccordionDetails, { children })
6680
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(StyledAccordion, { defaultExpanded, ...props, children: [
6681
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StyledAccordionSummary, { expandIcon: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_ExpandMore.default, {}), children: title }),
6682
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(StyledAccordionDetails, { children })
6134
6683
  ] });
6135
6684
  };
6136
6685
 
6137
6686
  // src/components/layout/Paper.tsx
6138
6687
  var import_Paper = __toESM(require("@mui/material/Paper"));
6139
6688
  var import_styles36 = require("@mui/material/styles");
6140
- var import_jsx_runtime57 = require("react/jsx-runtime");
6689
+ var import_jsx_runtime62 = require("react/jsx-runtime");
6141
6690
  var StyledPaper = (0, import_styles36.styled)(import_Paper.default)(({ theme: theme2 }) => ({
6142
6691
  borderRadius: 8,
6143
6692
  "&.MuiPaper-elevation": {
@@ -6149,18 +6698,18 @@ var StyledPaper = (0, import_styles36.styled)(import_Paper.default)(({ theme: th
6149
6698
  }
6150
6699
  }));
6151
6700
  var Paper = ({ variant = "elevation", ...props }) => {
6152
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(StyledPaper, { variant, elevation: variant === "elevation" ? 1 : 0, ...props });
6701
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(StyledPaper, { variant, elevation: variant === "elevation" ? 1 : 0, ...props });
6153
6702
  };
6154
6703
 
6155
6704
  // src/components/layout/Divider.tsx
6156
6705
  var import_Divider = __toESM(require("@mui/material/Divider"));
6157
6706
  var import_styles37 = require("@mui/material/styles");
6158
- var import_jsx_runtime58 = require("react/jsx-runtime");
6707
+ var import_jsx_runtime63 = require("react/jsx-runtime");
6159
6708
  var StyledDivider = (0, import_styles37.styled)(import_Divider.default)(({ theme: theme2 }) => ({
6160
6709
  borderColor: theme2.palette.grey[200]
6161
6710
  }));
6162
6711
  var Divider4 = ({ ...props }) => {
6163
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(StyledDivider, { ...props });
6712
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(StyledDivider, { ...props });
6164
6713
  };
6165
6714
 
6166
6715
  // src/components/layout/Stack.tsx
@@ -6178,7 +6727,7 @@ var import_material37 = require("@mui/material");
6178
6727
  // src/components/layout/AppBar.tsx
6179
6728
  var import_material38 = require("@mui/material");
6180
6729
  var import_styles38 = require("@mui/material/styles");
6181
- var import_jsx_runtime59 = require("react/jsx-runtime");
6730
+ var import_jsx_runtime64 = require("react/jsx-runtime");
6182
6731
  var StyledAppBar = (0, import_styles38.styled)(import_material38.AppBar, {
6183
6732
  shouldForwardProp: (prop) => prop !== "appBarHeight"
6184
6733
  })(({ appBarHeight = 64, theme: theme2 }) => ({
@@ -6195,23 +6744,23 @@ var StyledToolbar = (0, import_styles38.styled)(import_material38.Toolbar)(({ th
6195
6744
  gap: theme2.spacing(2)
6196
6745
  }));
6197
6746
  var AppBar = ({ height = 64, children, ...props }) => {
6198
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StyledAppBar, { position: "fixed", appBarHeight: height, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(StyledToolbar, { children }) });
6747
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(StyledAppBar, { position: "fixed", appBarHeight: height, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(StyledToolbar, { children }) });
6199
6748
  };
6200
6749
 
6201
6750
  // src/components/layout/Collapse.tsx
6202
6751
  var import_material39 = require("@mui/material");
6203
- var import_jsx_runtime60 = require("react/jsx-runtime");
6752
+ var import_jsx_runtime65 = require("react/jsx-runtime");
6204
6753
  var Collapse = (props) => {
6205
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(import_material39.Collapse, { ...props });
6754
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_material39.Collapse, { ...props });
6206
6755
  };
6207
6756
 
6208
6757
  // src/components/layout/EntityHeader/EntityHeader.tsx
6209
- var import_Box5 = __toESM(require("@mui/material/Box"));
6210
- var import_Typography5 = __toESM(require("@mui/material/Typography"));
6211
- var import_IconButton6 = __toESM(require("@mui/material/IconButton"));
6758
+ var import_Box11 = __toESM(require("@mui/material/Box"));
6759
+ var import_Typography9 = __toESM(require("@mui/material/Typography"));
6760
+ var import_IconButton8 = __toESM(require("@mui/material/IconButton"));
6212
6761
  var import_Divider2 = __toESM(require("@mui/material/Divider"));
6213
6762
  var import_MoreHoriz = __toESM(require("@mui/icons-material/MoreHoriz"));
6214
- var import_jsx_runtime61 = require("react/jsx-runtime");
6763
+ var import_jsx_runtime66 = require("react/jsx-runtime");
6215
6764
  var EntityHeader = ({
6216
6765
  title,
6217
6766
  subtitle,
@@ -6230,9 +6779,9 @@ var EntityHeader = ({
6230
6779
  const { label, count } = primaryAction;
6231
6780
  return count !== void 0 ? `${label} (${count})` : label;
6232
6781
  };
6233
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_Box5.default, { children: [
6234
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
6235
- import_Box5.default,
6782
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(import_Box11.default, { children: [
6783
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
6784
+ import_Box11.default,
6236
6785
  {
6237
6786
  sx: {
6238
6787
  display: "flex",
@@ -6243,8 +6792,8 @@ var EntityHeader = ({
6243
6792
  gap: 1
6244
6793
  },
6245
6794
  children: [
6246
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
6247
- import_Box5.default,
6795
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
6796
+ import_Box11.default,
6248
6797
  {
6249
6798
  sx: {
6250
6799
  display: "flex",
@@ -6253,8 +6802,8 @@ var EntityHeader = ({
6253
6802
  flexWrap: "wrap"
6254
6803
  },
6255
6804
  children: [
6256
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
6257
- import_Box5.default,
6805
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
6806
+ import_Box11.default,
6258
6807
  {
6259
6808
  sx: {
6260
6809
  display: "flex",
@@ -6262,8 +6811,8 @@ var EntityHeader = ({
6262
6811
  gap: 0.5
6263
6812
  },
6264
6813
  children: [
6265
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6266
- import_Typography5.default,
6814
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6815
+ import_Typography9.default,
6267
6816
  {
6268
6817
  component: headingLevel,
6269
6818
  sx: {
@@ -6276,8 +6825,8 @@ var EntityHeader = ({
6276
6825
  children: title
6277
6826
  }
6278
6827
  ),
6279
- subtitle && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6280
- import_Typography5.default,
6828
+ subtitle && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6829
+ import_Typography9.default,
6281
6830
  {
6282
6831
  variant: "body2",
6283
6832
  sx: {
@@ -6293,13 +6842,13 @@ var EntityHeader = ({
6293
6842
  ]
6294
6843
  }
6295
6844
  ),
6296
- role && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(RoleBadge, { label: role, color: "primary", size: "small" }),
6297
- id && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(IDBlock, { id, label: "ID", entityType: "entity", onCopy: onCopyId })
6845
+ role && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(RoleBadge, { label: role, color: "primary", size: "small" }),
6846
+ id && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(IDBlock, { id, label: "ID", entityType: "entity", onCopy: onCopyId })
6298
6847
  ]
6299
6848
  }
6300
6849
  ),
6301
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
6302
- import_Box5.default,
6850
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
6851
+ import_Box11.default,
6303
6852
  {
6304
6853
  sx: {
6305
6854
  display: "flex",
@@ -6309,7 +6858,7 @@ var EntityHeader = ({
6309
6858
  },
6310
6859
  children: [
6311
6860
  startActions,
6312
- primaryAction && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6861
+ primaryAction && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6313
6862
  Button,
6314
6863
  {
6315
6864
  variant: "primary",
@@ -6322,8 +6871,8 @@ var EntityHeader = ({
6322
6871
  }
6323
6872
  ),
6324
6873
  endActions,
6325
- onMoreOptions && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6326
- import_IconButton6.default,
6874
+ onMoreOptions && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6875
+ import_IconButton8.default,
6327
6876
  {
6328
6877
  onClick: onMoreOptions,
6329
6878
  size: "small",
@@ -6337,7 +6886,7 @@ var EntityHeader = ({
6337
6886
  borderColor: deploymentSurfaceTokens.borderDefault
6338
6887
  }
6339
6888
  },
6340
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6889
+ children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6341
6890
  import_MoreHoriz.default,
6342
6891
  {
6343
6892
  sx: {
@@ -6354,7 +6903,7 @@ var EntityHeader = ({
6354
6903
  ]
6355
6904
  }
6356
6905
  ),
6357
- divider && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
6906
+ divider && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
6358
6907
  import_Divider2.default,
6359
6908
  {
6360
6909
  sx: {
@@ -6368,7 +6917,7 @@ var EntityHeader = ({
6368
6917
  // src/components/layout/DeploymentDashboardCard/DeploymentDashboardCard.tsx
6369
6918
  var import_material40 = require("@mui/material");
6370
6919
  var import_ExpandMore2 = __toESM(require("@mui/icons-material/ExpandMore"));
6371
- var import_ChevronRight3 = __toESM(require("@mui/icons-material/ChevronRight"));
6920
+ var import_ChevronRight4 = __toESM(require("@mui/icons-material/ChevronRight"));
6372
6921
  var import_WorkOutline = __toESM(require("@mui/icons-material/WorkOutline"));
6373
6922
  var import_Waves = __toESM(require("@mui/icons-material/Waves"));
6374
6923
  var import_RocketLaunchOutlined = __toESM(require("@mui/icons-material/RocketLaunchOutlined"));
@@ -6377,9 +6926,9 @@ var import_SmartToyOutlined = __toESM(require("@mui/icons-material/SmartToyOutli
6377
6926
  var import_styles39 = require("@mui/material/styles");
6378
6927
 
6379
6928
  // src/hooks/useControlledExpand.ts
6380
- var import_react17 = require("react");
6929
+ var import_react21 = require("react");
6381
6930
  function useControlledExpand(controlledExpanded, onToggle, defaultExpanded = false) {
6382
- const [internal, setInternal] = (0, import_react17.useState)(defaultExpanded);
6931
+ const [internal, setInternal] = (0, import_react21.useState)(defaultExpanded);
6383
6932
  const isControlled = controlledExpanded !== void 0 && onToggle != null;
6384
6933
  const expanded = isControlled ? controlledExpanded : internal;
6385
6934
  const toggle = isControlled ? () => onToggle() : () => setInternal((prev) => !prev);
@@ -6387,7 +6936,7 @@ function useControlledExpand(controlledExpanded, onToggle, defaultExpanded = fal
6387
6936
  }
6388
6937
 
6389
6938
  // src/components/layout/DeploymentDashboardCard/DeploymentDashboardCard.tsx
6390
- var import_jsx_runtime62 = require("react/jsx-runtime");
6939
+ var import_jsx_runtime67 = require("react/jsx-runtime");
6391
6940
  var ENTITY_LABELS = {
6392
6941
  workspace: "Workspace",
6393
6942
  stream: "Stream",
@@ -6397,11 +6946,11 @@ var ENTITY_LABELS = {
6397
6946
  };
6398
6947
  var ENTITY_ICON_SIZE = 16;
6399
6948
  var ENTITY_ICONS = {
6400
- workspace: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_WorkOutline.default, { sx: { fontSize: ENTITY_ICON_SIZE } }),
6401
- stream: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_Waves.default, { sx: { fontSize: ENTITY_ICON_SIZE } }),
6402
- deployment: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_RocketLaunchOutlined.default, { sx: { fontSize: ENTITY_ICON_SIZE } }),
6403
- engagement: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_InsertLink.default, { sx: { fontSize: ENTITY_ICON_SIZE } }),
6404
- agent: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_SmartToyOutlined.default, { sx: { fontSize: ENTITY_ICON_SIZE } })
6949
+ workspace: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_WorkOutline.default, { sx: { fontSize: ENTITY_ICON_SIZE } }),
6950
+ stream: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_Waves.default, { sx: { fontSize: ENTITY_ICON_SIZE } }),
6951
+ deployment: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_RocketLaunchOutlined.default, { sx: { fontSize: ENTITY_ICON_SIZE } }),
6952
+ engagement: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_InsertLink.default, { sx: { fontSize: ENTITY_ICON_SIZE } }),
6953
+ agent: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_SmartToyOutlined.default, { sx: { fontSize: ENTITY_ICON_SIZE } })
6405
6954
  };
6406
6955
  var STATUS_DOT_COLORS = {
6407
6956
  normal: deploymentStatusColors.normal,
@@ -6431,7 +6980,7 @@ var StatusDot2 = (0, import_styles39.styled)(import_material40.Box, {
6431
6980
  backgroundColor: status ? STATUS_DOT_COLORS[status] ?? "transparent" : "transparent",
6432
6981
  flexShrink: 0
6433
6982
  }));
6434
- var EntityChip = ({ entityType, color }) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
6983
+ var EntityChip = ({ entityType, color }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
6435
6984
  import_material40.Box,
6436
6985
  {
6437
6986
  sx: {
@@ -6447,8 +6996,8 @@ var EntityChip = ({ entityType, color }) => /* @__PURE__ */ (0, import_jsx_runti
6447
6996
  flexShrink: 0
6448
6997
  },
6449
6998
  children: [
6450
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_material40.Box, { sx: { color, display: "flex", alignItems: "center" }, children: ENTITY_ICONS[entityType] }),
6451
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
6999
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_material40.Box, { sx: { color, display: "flex", alignItems: "center" }, children: ENTITY_ICONS[entityType] }),
7000
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6452
7001
  import_material40.Typography,
6453
7002
  {
6454
7003
  variant: "body2",
@@ -6465,15 +7014,15 @@ var EntityChip = ({ entityType, color }) => /* @__PURE__ */ (0, import_jsx_runti
6465
7014
  ]
6466
7015
  }
6467
7016
  );
6468
- var CapacityBar = ({ value, indented = false }) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_material40.Box, { sx: { pl: indented ? "40px" : 0, pr: "20px", py: 1 }, children: [
6469
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_material40.Box, { sx: { display: "flex", justifyContent: "space-between", mb: 1 }, children: [
6470
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_material40.Typography, { variant: "body2", sx: { color: deploymentSurfaceTokens.textPrimary }, children: "Capacity" }),
6471
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_material40.Typography, { variant: "body2", sx: { color: deploymentSurfaceTokens.accentBlue }, children: [
7017
+ var CapacityBar = ({ value, indented = false }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_material40.Box, { sx: { pl: indented ? "40px" : 0, pr: "20px", py: 1 }, children: [
7018
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_material40.Box, { sx: { display: "flex", justifyContent: "space-between", mb: 1 }, children: [
7019
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_material40.Typography, { variant: "body2", sx: { color: deploymentSurfaceTokens.textPrimary }, children: "Capacity" }),
7020
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_material40.Typography, { variant: "body2", sx: { color: deploymentSurfaceTokens.accentBlue }, children: [
6472
7021
  value,
6473
7022
  "%"
6474
7023
  ] })
6475
7024
  ] }),
6476
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
7025
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6477
7026
  import_material40.LinearProgress,
6478
7027
  {
6479
7028
  variant: "determinate",
@@ -6513,19 +7062,19 @@ var getActionButtonStyles = (action) => {
6513
7062
  };
6514
7063
  return { ...baseStyles, ...variantStyles };
6515
7064
  };
6516
- var CardAction = ({ action }) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
7065
+ var CardAction = ({ action }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
6517
7066
  import_material40.Box,
6518
7067
  {
6519
7068
  component: action.onClick ? "button" : "span",
6520
7069
  onClick: action.onClick,
6521
7070
  sx: getActionButtonStyles(action),
6522
7071
  children: [
6523
- action.icon && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_material40.Box, { component: "span", sx: { display: "flex", alignItems: "center" }, children: action.icon }),
6524
- action.label && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_material40.Typography, { variant: "body2", fontWeight: 500, component: "span", sx: { fontSize: "14px" }, children: action.label })
7072
+ action.icon && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_material40.Box, { component: "span", sx: { display: "flex", alignItems: "center" }, children: action.icon }),
7073
+ action.label && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_material40.Typography, { variant: "body2", fontWeight: 500, component: "span", sx: { fontSize: "14px" }, children: action.label })
6525
7074
  ]
6526
7075
  }
6527
7076
  );
6528
- var CardActionList = ({ actions }) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_jsx_runtime62.Fragment, { children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CardAction, { action }, action.id)) });
7077
+ var CardActionList = ({ actions }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_jsx_runtime67.Fragment, { children: actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(CardAction, { action }, action.id)) });
6529
7078
  var DeploymentDashboardCard = ({
6530
7079
  entityType,
6531
7080
  title,
@@ -6558,7 +7107,7 @@ var DeploymentDashboardCard = ({
6558
7107
  return Math.min(100, Math.max(0, capacity2));
6559
7108
  };
6560
7109
  const capacityClamped = getClampedCapacity(capacity);
6561
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
7110
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
6562
7111
  import_material40.Paper,
6563
7112
  {
6564
7113
  className,
@@ -6575,7 +7124,7 @@ var DeploymentDashboardCard = ({
6575
7124
  gap: 0
6576
7125
  },
6577
7126
  children: [
6578
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
7127
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
6579
7128
  import_material40.Box,
6580
7129
  {
6581
7130
  sx: {
@@ -6585,20 +7134,20 @@ var DeploymentDashboardCard = ({
6585
7134
  width: "100%"
6586
7135
  },
6587
7136
  children: [
6588
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_material40.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.5, minWidth: 0 }, children: [
6589
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_material40.Box, { sx: { display: "flex", gap: 1, alignItems: "center" }, children: [
6590
- expandable ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
7137
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_material40.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.5, minWidth: 0 }, children: [
7138
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_material40.Box, { sx: { display: "flex", gap: 1, alignItems: "center" }, children: [
7139
+ expandable ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6591
7140
  import_material40.IconButton,
6592
7141
  {
6593
7142
  size: "small",
6594
7143
  onClick: toggle,
6595
7144
  "aria-label": expanded ? "Collapse" : "Expand",
6596
7145
  sx: { p: "5px" },
6597
- children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_ExpandMore2.default, { sx: { fontSize: CHEVRON_SIZE, color: deploymentSurfaceTokens.accentBlue } }) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_ChevronRight3.default, { sx: { fontSize: CHEVRON_SIZE, color: deploymentSurfaceTokens.accentBlue } })
7146
+ children: expanded ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_ExpandMore2.default, { sx: { fontSize: CHEVRON_SIZE, color: deploymentSurfaceTokens.accentBlue } }) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_ChevronRight4.default, { sx: { fontSize: CHEVRON_SIZE, color: deploymentSurfaceTokens.accentBlue } })
6598
7147
  }
6599
- ) : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_material40.Box, { sx: { width: 26, flexShrink: 0 } }),
6600
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(EntityChip, { entityType, color: entityColor }),
6601
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
7148
+ ) : /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_material40.Box, { sx: { width: 26, flexShrink: 0 } }),
7149
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(EntityChip, { entityType, color: entityColor }),
7150
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
6602
7151
  import_material40.Typography,
6603
7152
  {
6604
7153
  variant: "subtitle1",
@@ -6608,9 +7157,9 @@ var DeploymentDashboardCard = ({
6608
7157
  children: title
6609
7158
  }
6610
7159
  ),
6611
- idDisplay != null && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(IDBlock, { id: idDisplay, label: "ID", entityType, onCopy: onCopyId })
7160
+ idDisplay != null && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(IDBlock, { id: idDisplay, label: "ID", entityType, onCopy: onCopyId })
6612
7161
  ] }),
6613
- (createdAt != null || updatedAt != null) && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
7162
+ (createdAt != null || updatedAt != null) && /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
6614
7163
  import_material40.Box,
6615
7164
  {
6616
7165
  sx: {
@@ -6620,27 +7169,27 @@ var DeploymentDashboardCard = ({
6620
7169
  color: deploymentSurfaceTokens.textSecondary
6621
7170
  },
6622
7171
  children: [
6623
- createdAt != null && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_material40.Typography, { variant: "body2", sx: { color: "inherit", fontSize: "14px" }, children: [
7172
+ createdAt != null && /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_material40.Typography, { variant: "body2", sx: { color: "inherit", fontSize: "14px" }, children: [
6624
7173
  "Created: ",
6625
7174
  createdAt
6626
7175
  ] }),
6627
- updatedAt != null && /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_material40.Typography, { variant: "body2", sx: { color: "inherit", fontSize: "14px" }, children: [
7176
+ updatedAt != null && /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_material40.Typography, { variant: "body2", sx: { color: "inherit", fontSize: "14px" }, children: [
6628
7177
  "Last Updated: ",
6629
7178
  updatedAt
6630
7179
  ] })
6631
7180
  ]
6632
7181
  }
6633
7182
  ),
6634
- capacityClamped !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CapacityBar, { value: capacityClamped, indented: expandable })
7183
+ capacityClamped !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(CapacityBar, { value: capacityClamped, indented: expandable })
6635
7184
  ] }),
6636
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(import_material40.Box, { sx: { display: "flex", gap: 1, alignItems: "center", flexShrink: 0 }, children: [
6637
- statusIndicator != null && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(StatusDot2, { status: statusIndicator, "aria-hidden": true }),
6638
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(CardActionList, { actions })
7185
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_material40.Box, { sx: { display: "flex", gap: 1, alignItems: "center", flexShrink: 0 }, children: [
7186
+ statusIndicator != null && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(StatusDot2, { status: statusIndicator, "aria-hidden": true }),
7187
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(CardActionList, { actions })
6639
7188
  ] })
6640
7189
  ]
6641
7190
  }
6642
7191
  ),
6643
- children && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_material40.Box, { sx: { mt: 1.5, display: "flex", flexDirection: "column", gap: 1 }, children })
7192
+ children && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_material40.Box, { sx: { mt: 1.5, display: "flex", flexDirection: "column", gap: 1 }, children })
6644
7193
  ]
6645
7194
  }
6646
7195
  );
@@ -6649,7 +7198,7 @@ var DeploymentDashboardCard = ({
6649
7198
  // src/components/layout/DeploymentEntityContextMenu/DeploymentEntityContextMenu.tsx
6650
7199
  var import_material41 = require("@mui/material");
6651
7200
  var import_styles40 = require("@mui/material/styles");
6652
- var import_jsx_runtime63 = require("react/jsx-runtime");
7201
+ var import_jsx_runtime68 = require("react/jsx-runtime");
6653
7202
  var StyledMenu2 = (0, import_styles40.styled)(import_material41.Menu)({
6654
7203
  "& .MuiPaper-root": {
6655
7204
  borderRadius: 4,
@@ -6747,7 +7296,7 @@ var DeploymentEntityContextMenu = ({
6747
7296
  enableChecked = false,
6748
7297
  onEnableChange
6749
7298
  }) => {
6750
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
7299
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6751
7300
  StyledMenu2,
6752
7301
  {
6753
7302
  anchorEl,
@@ -6759,11 +7308,11 @@ var DeploymentEntityContextMenu = ({
6759
7308
  children: [
6760
7309
  items.map((item) => {
6761
7310
  if (item.type === "divider") {
6762
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(StyledDivider2, {}, item.id);
7311
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StyledDivider2, {}, item.id);
6763
7312
  }
6764
7313
  if (item.type === "toggle") {
6765
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(ToggleMenuItem, { disableRipple: true, children: [
6766
- onEnableChange && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
7314
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(ToggleMenuItem, { disableRipple: true, children: [
7315
+ onEnableChange && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6767
7316
  EnableSwitch,
6768
7317
  {
6769
7318
  size: "small",
@@ -6772,11 +7321,11 @@ var DeploymentEntityContextMenu = ({
6772
7321
  inputProps: { "aria-label": item.label }
6773
7322
  }
6774
7323
  ),
6775
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_material41.ListItemText, { primary: item.label })
7324
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_material41.ListItemText, { primary: item.label })
6776
7325
  ] }, item.id);
6777
7326
  }
6778
7327
  const Row = item.highlighted ? HighlightedMenuItem : StyledMenuItem;
6779
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
7328
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
6780
7329
  Row,
6781
7330
  {
6782
7331
  onClick: () => {
@@ -6784,17 +7333,17 @@ var DeploymentEntityContextMenu = ({
6784
7333
  onClose();
6785
7334
  },
6786
7335
  children: [
6787
- item.icon && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_material41.ListItemIcon, { children: item.icon }),
6788
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_material41.ListItemText, { primary: item.label })
7336
+ item.icon && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_material41.ListItemIcon, { children: item.icon }),
7337
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_material41.ListItemText, { primary: item.label })
6789
7338
  ]
6790
7339
  },
6791
7340
  item.id
6792
7341
  );
6793
7342
  }),
6794
- enableToggle && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
6795
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(StyledDivider2, {}),
6796
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(ToggleMenuItem, { disableRipple: true, children: [
6797
- onEnableChange && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
7343
+ enableToggle && /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_jsx_runtime68.Fragment, { children: [
7344
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(StyledDivider2, {}),
7345
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(ToggleMenuItem, { disableRipple: true, children: [
7346
+ onEnableChange && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
6798
7347
  EnableSwitch,
6799
7348
  {
6800
7349
  size: "small",
@@ -6803,7 +7352,7 @@ var DeploymentEntityContextMenu = ({
6803
7352
  inputProps: { "aria-label": "Enable" }
6804
7353
  }
6805
7354
  ),
6806
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_material41.ListItemText, { primary: "Enable" })
7355
+ /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_material41.ListItemText, { primary: "Enable" })
6807
7356
  ] })
6808
7357
  ] })
6809
7358
  ]
@@ -6818,48 +7367,48 @@ var import_ContentCopy3 = __toESM(require("@mui/icons-material/ContentCopy"));
6818
7367
  var import_SmartToyOutlined2 = __toESM(require("@mui/icons-material/SmartToyOutlined"));
6819
7368
  var import_Description = __toESM(require("@mui/icons-material/Description"));
6820
7369
  var import_Settings2 = __toESM(require("@mui/icons-material/Settings"));
6821
- var import_jsx_runtime64 = require("react/jsx-runtime");
7370
+ var import_jsx_runtime69 = require("react/jsx-runtime");
6822
7371
  var contextMenuItems = {
6823
7372
  /** Add Engagement action (Add Circle icon) */
6824
7373
  addEngagement: (onClick) => ({
6825
7374
  id: "add-engagement",
6826
7375
  label: "Add Engagement",
6827
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_AddCircleOutline.default, {}),
7376
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_AddCircleOutline.default, {}),
6828
7377
  onClick
6829
7378
  }),
6830
7379
  /** Add Agent action (Add Circle icon) */
6831
7380
  addAgent: (onClick) => ({
6832
7381
  id: "add-agent",
6833
7382
  label: "Add Agent",
6834
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_AddCircleOutline.default, {}),
7383
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_AddCircleOutline.default, {}),
6835
7384
  onClick
6836
7385
  }),
6837
7386
  /** Add Stream action (Add Circle icon) */
6838
7387
  addStream: (onClick) => ({
6839
7388
  id: "add-stream",
6840
7389
  label: "Add Stream",
6841
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_AddCircleOutline.default, {}),
7390
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_AddCircleOutline.default, {}),
6842
7391
  onClick
6843
7392
  }),
6844
7393
  /** Edit action (Pen / Edit icon) */
6845
7394
  edit: (onClick) => ({
6846
7395
  id: "edit",
6847
7396
  label: "Edit",
6848
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_Edit.default, {}),
7397
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_Edit.default, {}),
6849
7398
  onClick
6850
7399
  }),
6851
7400
  /** Copy ID action (Copy icon) */
6852
7401
  copyId: (onClick) => ({
6853
7402
  id: "copy-id",
6854
7403
  label: "Copy ID",
6855
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_ContentCopy3.default, {}),
7404
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_ContentCopy3.default, {}),
6856
7405
  onClick
6857
7406
  }),
6858
7407
  /** Agent Flow Visualization — highlighted action (SmartToy icon) */
6859
7408
  agentFlowVisualization: (onClick) => ({
6860
7409
  id: "agent-flow",
6861
7410
  label: "Agent Flow Visualization",
6862
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_SmartToyOutlined2.default, {}),
7411
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_SmartToyOutlined2.default, {}),
6863
7412
  onClick,
6864
7413
  highlighted: true
6865
7414
  }),
@@ -6867,7 +7416,7 @@ var contextMenuItems = {
6867
7416
  viewLogs: (onClick) => ({
6868
7417
  id: "view-logs",
6869
7418
  label: "View Logs",
6870
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_Description.default, {}),
7419
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_Description.default, {}),
6871
7420
  onClick
6872
7421
  }),
6873
7422
  /** Horizontal divider between sections */
@@ -6886,7 +7435,7 @@ var contextMenuItems = {
6886
7435
  settings: (onClick) => ({
6887
7436
  id: "settings",
6888
7437
  label: "Settings",
6889
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_Settings2.default, {}),
7438
+ icon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_Settings2.default, {}),
6890
7439
  onClick
6891
7440
  })
6892
7441
  };
@@ -6894,7 +7443,7 @@ var contextMenuItems = {
6894
7443
  // src/components/layout/DeploymentDashboardTree/DeploymentDashboardTree.tsx
6895
7444
  var import_material42 = require("@mui/material");
6896
7445
  var import_styles41 = require("@mui/material/styles");
6897
- var import_jsx_runtime65 = require("react/jsx-runtime");
7446
+ var import_jsx_runtime70 = require("react/jsx-runtime");
6898
7447
  var TREE_SP = {
6899
7448
  /** Vertical gap between sibling rows (Figma S / sp-8) */
6900
7449
  rowGap: 8,
@@ -6931,9 +7480,9 @@ var TreeRow = ({ node, depth, onExpandToggle, onCopyId, renderCard }) => {
6931
7480
  const entityColor = deploymentEntityColors[node.entityType] ?? deploymentEntityColors.workspace;
6932
7481
  const railOpacity = RAIL_OPACITY[node.entityType] ?? 0.5;
6933
7482
  const railColor = (0, import_styles41.alpha)(entityColor, railOpacity);
6934
- const renderedChildren = hasChildren && expanded ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_material42.Box, { sx: { display: "flex", gap: `${TREE_SP.railGap}px` }, children: [
6935
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Rail, { railColor, "aria-hidden": true, "data-rail": true }),
6936
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7483
+ const renderedChildren = hasChildren && expanded ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_material42.Box, { sx: { display: "flex", gap: `${TREE_SP.railGap}px` }, children: [
7484
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Rail, { railColor, "aria-hidden": true, "data-rail": true }),
7485
+ /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6937
7486
  import_material42.Box,
6938
7487
  {
6939
7488
  role: "group",
@@ -6944,7 +7493,7 @@ var TreeRow = ({ node, depth, onExpandToggle, onCopyId, renderCard }) => {
6944
7493
  flexDirection: "column",
6945
7494
  gap: `${TREE_SP.rowGap}px`
6946
7495
  },
6947
- children: node.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7496
+ children: node.children.map((child) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6948
7497
  TreeRow,
6949
7498
  {
6950
7499
  node: child,
@@ -6958,7 +7507,7 @@ var TreeRow = ({ node, depth, onExpandToggle, onCopyId, renderCard }) => {
6958
7507
  }
6959
7508
  )
6960
7509
  ] }) : null;
6961
- const cardContent = renderCard?.(node) ?? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7510
+ const cardContent = renderCard?.(node) ?? /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6962
7511
  DeploymentDashboardCard,
6963
7512
  {
6964
7513
  entityType: node.entityType,
@@ -6976,7 +7525,7 @@ var TreeRow = ({ node, depth, onExpandToggle, onCopyId, renderCard }) => {
6976
7525
  children: renderedChildren
6977
7526
  }
6978
7527
  );
6979
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_material42.Box, { role: "treeitem", children: cardContent });
7528
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_material42.Box, { role: "treeitem", children: cardContent });
6980
7529
  };
6981
7530
  var DeploymentDashboardTree = ({
6982
7531
  nodes,
@@ -6984,7 +7533,7 @@ var DeploymentDashboardTree = ({
6984
7533
  onCopyId,
6985
7534
  renderCard
6986
7535
  }) => {
6987
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7536
+ return /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6988
7537
  import_material42.Box,
6989
7538
  {
6990
7539
  role: "tree",
@@ -6994,7 +7543,7 @@ var DeploymentDashboardTree = ({
6994
7543
  gap: `${TREE_SP.rowGap}px`,
6995
7544
  p: `${TREE_SP.rowGap}px`
6996
7545
  },
6997
- children: nodes.map((node) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7546
+ children: nodes.map((node) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
6998
7547
  TreeRow,
6999
7548
  {
7000
7549
  node,
@@ -7012,7 +7561,7 @@ var DeploymentDashboardTree = ({
7012
7561
  // src/components/layout/DeploymentDashboardPanel/DeploymentDashboardPanel.tsx
7013
7562
  var import_material43 = require("@mui/material");
7014
7563
  var import_styles42 = require("@mui/material/styles");
7015
- var import_jsx_runtime66 = require("react/jsx-runtime");
7564
+ var import_jsx_runtime71 = require("react/jsx-runtime");
7016
7565
  var PANEL_RADIUS = 12;
7017
7566
  var PANEL_SHADOW = "0px 1px 3px rgba(0, 0, 0, 0.08)";
7018
7567
  var StyledPanel = (0, import_styles42.styled)(import_material43.Box)({
@@ -7027,7 +7576,7 @@ var DeploymentDashboardPanel = ({
7027
7576
  className,
7028
7577
  padding = 2
7029
7578
  }) => {
7030
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(StyledPanel, { className, sx: { p: padding }, children });
7579
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(StyledPanel, { className, sx: { p: padding }, children });
7031
7580
  };
7032
7581
 
7033
7582
  // src/components/layout/WorkflowNode/WorkflowNode.tsx
@@ -7048,7 +7597,7 @@ var import_CheckCircleOutline = __toESM(require("@mui/icons-material/CheckCircle
7048
7597
  var import_ForkRight = __toESM(require("@mui/icons-material/ForkRight"));
7049
7598
  var import_CallMerge = __toESM(require("@mui/icons-material/CallMerge"));
7050
7599
  var import_material45 = require("@mui/material");
7051
- var import_jsx_runtime67 = require("react/jsx-runtime");
7600
+ var import_jsx_runtime72 = require("react/jsx-runtime");
7052
7601
  var WORKFLOW_NODE_LABELS = {
7053
7602
  start: "Start",
7054
7603
  input: "Input",
@@ -7069,21 +7618,21 @@ var WORKFLOW_NODE_LABELS = {
7069
7618
  var NODE_ICON_SIZE = 18;
7070
7619
  var WORKFLOW_NODE_SHADOW = "0px 1px 3px rgba(0, 0, 0, 0.1), 0px 1px 2px rgba(0, 0, 0, 0.1)";
7071
7620
  var WORKFLOW_NODE_ICONS = {
7072
- start: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_PlayCircleOutline.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7073
- input: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_CloudDownload.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7074
- stream: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_Waves2.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7075
- rafts: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_Link4.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7076
- cubbies: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_Cloud.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7077
- events: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_Bolt.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7078
- trigger: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_FlashOn.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7079
- action: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_PlayArrow.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7080
- aiModel: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_Psychology.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7081
- aiAgent: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_SmartToyOutlined3.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7082
- condition: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_CallSplit.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7083
- output: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_Send.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7084
- end: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_CheckCircleOutline.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7085
- parallel: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_ForkRight.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7086
- merge: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_CallMerge.default, { sx: { fontSize: NODE_ICON_SIZE } })
7621
+ start: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_PlayCircleOutline.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7622
+ input: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_CloudDownload.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7623
+ stream: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_Waves2.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7624
+ rafts: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_Link4.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7625
+ cubbies: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_Cloud.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7626
+ events: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_Bolt.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7627
+ trigger: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_FlashOn.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7628
+ action: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_PlayArrow.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7629
+ aiModel: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_Psychology.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7630
+ aiAgent: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_SmartToyOutlined3.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7631
+ condition: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_CallSplit.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7632
+ output: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_Send.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7633
+ end: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_CheckCircleOutline.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7634
+ parallel: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_ForkRight.default, { sx: { fontSize: NODE_ICON_SIZE } }),
7635
+ merge: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_CallMerge.default, { sx: { fontSize: NODE_ICON_SIZE } })
7087
7636
  };
7088
7637
  var BADGE_TYPOGRAPHY = {
7089
7638
  fontSize: "12px",
@@ -7093,7 +7642,7 @@ var BADGE_TYPOGRAPHY = {
7093
7642
  var SideConnectorDot = ({
7094
7643
  accentColor,
7095
7644
  side
7096
- }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
7645
+ }) => /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7097
7646
  import_material44.Box,
7098
7647
  {
7099
7648
  "data-testid": `workflow-node-dot-${side}`,
@@ -7113,7 +7662,7 @@ var SideConnectorDot = ({
7113
7662
  })
7114
7663
  }
7115
7664
  );
7116
- var NodeTypeBadge = ({ nodeType, badgeBackground, badgeBorder, badgeText, icon, label }) => /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
7665
+ var NodeTypeBadge = ({ nodeType, badgeBackground, badgeBorder, badgeText, icon, label }) => /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
7117
7666
  import_material44.Box,
7118
7667
  {
7119
7668
  sx: {
@@ -7129,8 +7678,8 @@ var NodeTypeBadge = ({ nodeType, badgeBackground, badgeBorder, badgeText, icon,
7129
7678
  flexShrink: 0
7130
7679
  },
7131
7680
  children: [
7132
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(import_material44.Box, { sx: { color: badgeText, display: "flex", alignItems: "center" }, children: icon ?? WORKFLOW_NODE_ICONS[nodeType] }),
7133
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
7681
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_material44.Box, { sx: { color: badgeText, display: "flex", alignItems: "center" }, children: icon ?? WORKFLOW_NODE_ICONS[nodeType] }),
7682
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7134
7683
  import_material44.Typography,
7135
7684
  {
7136
7685
  variant: "body2",
@@ -7163,7 +7712,7 @@ var WorkflowNode = ({
7163
7712
  const nodeTokens = theme2.palette.workflow.node[nodeType];
7164
7713
  const chrome = theme2.palette.workflow.chrome;
7165
7714
  const accentColor = nodeTokens.accent;
7166
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
7715
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
7167
7716
  import_material44.Paper,
7168
7717
  {
7169
7718
  elevation: 0,
@@ -7187,9 +7736,9 @@ var WorkflowNode = ({
7187
7736
  ],
7188
7737
  ...paperProps,
7189
7738
  children: [
7190
- showSideDots && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(SideConnectorDot, { accentColor, side: "left" }),
7191
- showSideDots && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(SideConnectorDot, { accentColor, side: "right" }),
7192
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
7739
+ showSideDots && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(SideConnectorDot, { accentColor, side: "left" }),
7740
+ showSideDots && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(SideConnectorDot, { accentColor, side: "right" }),
7741
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(
7193
7742
  import_material44.Box,
7194
7743
  {
7195
7744
  sx: {
@@ -7203,8 +7752,8 @@ var WorkflowNode = ({
7203
7752
  minWidth: 0
7204
7753
  },
7205
7754
  children: [
7206
- /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(import_material44.Box, { sx: { minWidth: 0, flex: 1 }, children: [
7207
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
7755
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(import_material44.Box, { sx: { minWidth: 0, flex: 1 }, children: [
7756
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7208
7757
  import_material44.Typography,
7209
7758
  {
7210
7759
  variant: "subtitle2",
@@ -7219,7 +7768,7 @@ var WorkflowNode = ({
7219
7768
  children: title
7220
7769
  }
7221
7770
  ),
7222
- description && /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
7771
+ description && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7223
7772
  import_material44.Typography,
7224
7773
  {
7225
7774
  variant: "body2",
@@ -7238,7 +7787,7 @@ var WorkflowNode = ({
7238
7787
  }
7239
7788
  )
7240
7789
  ] }),
7241
- /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
7790
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
7242
7791
  NodeTypeBadge,
7243
7792
  {
7244
7793
  nodeType,
@@ -7259,10 +7808,10 @@ var WorkflowNode = ({
7259
7808
 
7260
7809
  // src/components/layout/WorkflowTopBar/WorkflowTopBar.tsx
7261
7810
  var import_material46 = require("@mui/material");
7262
- var import_Close3 = __toESM(require("@mui/icons-material/Close"));
7811
+ var import_Close4 = __toESM(require("@mui/icons-material/Close"));
7263
7812
  var import_Cancel = __toESM(require("@mui/icons-material/Cancel"));
7264
7813
  var import_styles43 = require("@mui/material/styles");
7265
- var import_jsx_runtime68 = require("react/jsx-runtime");
7814
+ var import_jsx_runtime73 = require("react/jsx-runtime");
7266
7815
  var WorkflowTopBar = ({
7267
7816
  title = "Agent visualization flow chart",
7268
7817
  executionId,
@@ -7280,7 +7829,7 @@ var WorkflowTopBar = ({
7280
7829
  ...boxProps
7281
7830
  }) => {
7282
7831
  const chrome = (0, import_styles43.useTheme)().palette.workflow.chrome;
7283
- return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
7832
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7284
7833
  import_material46.Box,
7285
7834
  {
7286
7835
  sx: [
@@ -7294,7 +7843,7 @@ var WorkflowTopBar = ({
7294
7843
  ],
7295
7844
  ...boxProps,
7296
7845
  children: [
7297
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
7846
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7298
7847
  import_material46.Box,
7299
7848
  {
7300
7849
  sx: {
@@ -7307,7 +7856,7 @@ var WorkflowTopBar = ({
7307
7856
  minHeight: 72
7308
7857
  },
7309
7858
  children: [
7310
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
7859
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7311
7860
  import_material46.Typography,
7312
7861
  {
7313
7862
  variant: "subtitle1",
@@ -7319,7 +7868,7 @@ var WorkflowTopBar = ({
7319
7868
  children: title
7320
7869
  }
7321
7870
  ),
7322
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
7871
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7323
7872
  import_material46.Box,
7324
7873
  {
7325
7874
  sx: {
@@ -7331,7 +7880,7 @@ var WorkflowTopBar = ({
7331
7880
  minWidth: 0
7332
7881
  },
7333
7882
  children: [
7334
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(
7883
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7335
7884
  import_material46.Box,
7336
7885
  {
7337
7886
  sx: {
@@ -7347,8 +7896,8 @@ var WorkflowTopBar = ({
7347
7896
  minHeight: 56
7348
7897
  },
7349
7898
  children: [
7350
- /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)(import_material46.Box, { sx: { flex: 1, minWidth: 0 }, children: [
7351
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
7899
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_material46.Box, { sx: { flex: 1, minWidth: 0 }, children: [
7900
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7352
7901
  import_material46.Typography,
7353
7902
  {
7354
7903
  variant: "caption",
@@ -7360,7 +7909,7 @@ var WorkflowTopBar = ({
7360
7909
  children: executionIdLabel
7361
7910
  }
7362
7911
  ),
7363
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
7912
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7364
7913
  import_material46.InputBase,
7365
7914
  {
7366
7915
  value: executionId,
@@ -7379,20 +7928,20 @@ var WorkflowTopBar = ({
7379
7928
  }
7380
7929
  )
7381
7930
  ] }),
7382
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
7931
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7383
7932
  import_material46.IconButton,
7384
7933
  {
7385
7934
  size: "small",
7386
7935
  "aria-label": `Clear ${executionIdLabel.toLowerCase()}`,
7387
7936
  onClick: onClearExecutionId,
7388
7937
  sx: { color: chrome.iconColor, ml: 1 },
7389
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_Cancel.default, { fontSize: "small" })
7938
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_Cancel.default, { fontSize: "small" })
7390
7939
  }
7391
7940
  )
7392
7941
  ]
7393
7942
  }
7394
7943
  ),
7395
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
7944
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7396
7945
  Button,
7397
7946
  {
7398
7947
  variant: "primary",
@@ -7409,8 +7958,8 @@ var WorkflowTopBar = ({
7409
7958
  children: submitLabel
7410
7959
  }
7411
7960
  ),
7412
- showInspectorToggle && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(Button, { variant: "secondary", onClick: onInspectorToggle, children: inspectorLabel }),
7413
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
7961
+ showInspectorToggle && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { variant: "secondary", onClick: onInspectorToggle, children: inspectorLabel }),
7962
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
7414
7963
  import_material46.IconButton,
7415
7964
  {
7416
7965
  "aria-label": "Close workflow chrome",
@@ -7421,7 +7970,7 @@ var WorkflowTopBar = ({
7421
7970
  backgroundColor: (0, import_material46.alpha)(chrome.closeBtnBg, 0.28),
7422
7971
  color: chrome.iconColor
7423
7972
  },
7424
- children: /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_Close3.default, { fontSize: "small" })
7973
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_Close4.default, { fontSize: "small" })
7425
7974
  }
7426
7975
  )
7427
7976
  ]
@@ -7430,7 +7979,7 @@ var WorkflowTopBar = ({
7430
7979
  ]
7431
7980
  }
7432
7981
  ),
7433
- /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(import_material46.Divider, { sx: { borderColor: deploymentSurfaceTokens.strokeOutside } })
7982
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_material46.Divider, { sx: { borderColor: deploymentSurfaceTokens.strokeOutside } })
7434
7983
  ]
7435
7984
  }
7436
7985
  );
@@ -7438,13 +7987,13 @@ var WorkflowTopBar = ({
7438
7987
 
7439
7988
  // src/components/layout/WorkflowSideInspector/WorkflowSideInspector.tsx
7440
7989
  var import_material47 = require("@mui/material");
7441
- var import_Close4 = __toESM(require("@mui/icons-material/Close"));
7990
+ var import_Close5 = __toESM(require("@mui/icons-material/Close"));
7442
7991
  var import_ContentCopyOutlined = __toESM(require("@mui/icons-material/ContentCopyOutlined"));
7443
- var import_jsx_runtime69 = require("react/jsx-runtime");
7992
+ var import_jsx_runtime74 = require("react/jsx-runtime");
7444
7993
  var INSPECTOR_WIDTH = 320;
7445
- var InfoBlock = ({ label, value, mutedColor }) => /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: [
7446
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Typography, { variant: "body2", sx: { color: mutedColor }, children: label }),
7447
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
7994
+ var InfoBlock = ({ label, value, mutedColor }) => /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: [
7995
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Typography, { variant: "body2", sx: { color: mutedColor }, children: label }),
7996
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7448
7997
  import_material47.Typography,
7449
7998
  {
7450
7999
  variant: "body2",
@@ -7481,7 +8030,7 @@ var WorkflowSideInspector = ({
7481
8030
  return null;
7482
8031
  }
7483
8032
  const accent = theme2.palette.workflow.node[nodeType].accent;
7484
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
8033
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7485
8034
  import_material47.Paper,
7486
8035
  {
7487
8036
  elevation: 0,
@@ -7500,10 +8049,10 @@ var WorkflowSideInspector = ({
7500
8049
  },
7501
8050
  ...paperProps,
7502
8051
  children: [
7503
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 1.25 }, children: [
7504
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_material47.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [
7505
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Typography, { variant: "subtitle1", sx: { color: deploymentSurfaceTokens.textPrimary }, children: title }),
7506
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
8052
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 1.25 }, children: [
8053
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_material47.Box, { sx: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [
8054
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Typography, { variant: "subtitle1", sx: { color: deploymentSurfaceTokens.textPrimary }, children: title }),
8055
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7507
8056
  import_material47.IconButton,
7508
8057
  {
7509
8058
  "aria-label": "Close inspector",
@@ -7512,15 +8061,15 @@ var WorkflowSideInspector = ({
7512
8061
  border: `1px solid ${deploymentSurfaceTokens.strokeOutside}`,
7513
8062
  borderRadius: 2
7514
8063
  },
7515
- children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_Close4.default, { fontSize: "small" })
8064
+ children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_Close5.default, { fontSize: "small" })
7516
8065
  }
7517
8066
  )
7518
8067
  ] }),
7519
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } })
8068
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } })
7520
8069
  ] }),
7521
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 3, flex: 1 }, children: [
7522
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: [
7523
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
8070
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 3, flex: 1 }, children: [
8071
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: [
8072
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7524
8073
  import_material47.Typography,
7525
8074
  {
7526
8075
  variant: "subtitle1",
@@ -7528,8 +8077,8 @@ var WorkflowSideInspector = ({
7528
8077
  children: nodeTitle
7529
8078
  }
7530
8079
  ),
7531
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Typography, { variant: "body2", sx: { color: chrome.mutedText }, children: nodeDescription }),
7532
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(
8080
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Typography, { variant: "body2", sx: { color: chrome.mutedText }, children: nodeDescription }),
8081
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(
7533
8082
  import_material47.Box,
7534
8083
  {
7535
8084
  sx: {
@@ -7544,7 +8093,7 @@ var WorkflowSideInspector = ({
7544
8093
  backgroundColor: (0, import_material47.alpha)(accent, 0.12)
7545
8094
  },
7546
8095
  children: [
7547
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
8096
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7548
8097
  import_material47.Box,
7549
8098
  {
7550
8099
  sx: {
@@ -7555,43 +8104,43 @@ var WorkflowSideInspector = ({
7555
8104
  }
7556
8105
  }
7557
8106
  ),
7558
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Typography, { variant: "caption", sx: { color: accent, fontWeight: 500 }, children: WORKFLOW_NODE_LABELS[nodeType] })
8107
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Typography, { variant: "caption", sx: { color: accent, fontWeight: 500 }, children: WORKFLOW_NODE_LABELS[nodeType] })
7559
8108
  ]
7560
8109
  }
7561
8110
  )
7562
8111
  ] }),
7563
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } }),
7564
- (showInput || showOutput) && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
7565
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 2 }, children: [
7566
- showInput && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InfoBlock, { label: "Input", value: inputValue, mutedColor: chrome.mutedText }),
7567
- showOutput && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InfoBlock, { label: "Output", value: outputValue, mutedColor: chrome.mutedText })
8112
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } }),
8113
+ (showInput || showOutput) && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
8114
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 2 }, children: [
8115
+ showInput && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(InfoBlock, { label: "Input", value: inputValue, mutedColor: chrome.mutedText }),
8116
+ showOutput && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(InfoBlock, { label: "Output", value: outputValue, mutedColor: chrome.mutedText })
7568
8117
  ] }),
7569
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } })
8118
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } })
7570
8119
  ] }),
7571
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: [
7572
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Typography, { variant: "body2", sx: { color: chrome.mutedText }, children: "Cubby ID" }),
7573
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
8120
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 1 }, children: [
8121
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Typography, { variant: "body2", sx: { color: chrome.mutedText }, children: "Cubby ID" }),
8122
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
7574
8123
  Button,
7575
8124
  {
7576
8125
  variant: "secondary",
7577
8126
  size: "small",
7578
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_ContentCopyOutlined.default, { fontSize: "small" }),
8127
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_ContentCopyOutlined.default, { fontSize: "small" }),
7579
8128
  onClick: onCopyCubbyId,
7580
8129
  sx: { alignSelf: "flex-start" },
7581
8130
  children: cubbyId
7582
8131
  }
7583
8132
  )
7584
8133
  ] }),
7585
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } }),
7586
- (showTimestamp || showDuration) && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
7587
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 2 }, children: [
7588
- showTimestamp && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InfoBlock, { label: "Timestamp", value: timestamp, mutedColor: chrome.mutedText }),
7589
- showDuration && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(InfoBlock, { label: "Duration", value: duration, mutedColor: chrome.mutedText })
8134
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } }),
8135
+ (showTimestamp || showDuration) && /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
8136
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_material47.Box, { sx: { display: "flex", flexDirection: "column", gap: 2 }, children: [
8137
+ showTimestamp && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(InfoBlock, { label: "Timestamp", value: timestamp, mutedColor: chrome.mutedText }),
8138
+ showDuration && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(InfoBlock, { label: "Duration", value: duration, mutedColor: chrome.mutedText })
7590
8139
  ] }),
7591
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } })
8140
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_material47.Divider, { sx: { borderColor: chrome.divider } })
7592
8141
  ] })
7593
8142
  ] }),
7594
- actionLabel && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Button, { variant: "primary", fullWidth: true, onClick: onAction, children: actionLabel })
8143
+ actionLabel && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Button, { variant: "primary", fullWidth: true, onClick: onAction, children: actionLabel })
7595
8144
  ]
7596
8145
  }
7597
8146
  );
@@ -7600,12 +8149,12 @@ var WorkflowSideInspector = ({
7600
8149
  // src/components/layout/WorkflowTimeBar/WorkflowTimeBar.tsx
7601
8150
  var import_material48 = require("@mui/material");
7602
8151
  var import_Stop = __toESM(require("@mui/icons-material/Stop"));
7603
- var import_ChevronLeft3 = __toESM(require("@mui/icons-material/ChevronLeft"));
7604
- var import_ChevronRight4 = __toESM(require("@mui/icons-material/ChevronRight"));
8152
+ var import_ChevronLeft4 = __toESM(require("@mui/icons-material/ChevronLeft"));
8153
+ var import_ChevronRight5 = __toESM(require("@mui/icons-material/ChevronRight"));
7605
8154
  var import_Replay = __toESM(require("@mui/icons-material/Replay"));
7606
8155
  var import_styles44 = require("@mui/material/styles");
7607
- var import_jsx_runtime70 = require("react/jsx-runtime");
7608
- var SpeedButton = ({ value, selected, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
8156
+ var import_jsx_runtime75 = require("react/jsx-runtime");
8157
+ var SpeedButton = ({ value, selected, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7609
8158
  Button,
7610
8159
  {
7611
8160
  variant: selected ? "primary" : "secondary",
@@ -7641,7 +8190,7 @@ var WorkflowTimeBar = ({
7641
8190
  const boundedProgress = Math.max(0, Math.min(100, progress));
7642
8191
  const atFirstStep = currentStep <= 1;
7643
8192
  const atLastStep = currentStep >= totalSteps;
7644
- return /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(
8193
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
7645
8194
  import_material48.Box,
7646
8195
  {
7647
8196
  sx: [
@@ -7658,9 +8207,9 @@ var WorkflowTimeBar = ({
7658
8207
  ],
7659
8208
  ...boxProps,
7660
8209
  children: [
7661
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_material48.Divider, { sx: { borderColor: deploymentSurfaceTokens.strokeOutside } }),
7662
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
7663
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
8210
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_material48.Divider, { sx: { borderColor: deploymentSurfaceTokens.strokeOutside } }),
8211
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", gap: 2 }, children: [
8212
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7664
8213
  import_material48.IconButton,
7665
8214
  {
7666
8215
  onClick: onStop,
@@ -7673,11 +8222,11 @@ var WorkflowTimeBar = ({
7673
8222
  color: deploymentSurfaceTokens.textPrimary,
7674
8223
  backgroundColor: deploymentSurfaceTokens.surfaceHigh
7675
8224
  },
7676
- children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_Stop.default, { sx: { fontSize: 16 } })
8225
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_Stop.default, { sx: { fontSize: 16 } })
7677
8226
  }
7678
8227
  ),
7679
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_material48.Box, { sx: { flex: 1, minWidth: 220, px: 1 }, children: [
7680
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
8228
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_material48.Box, { sx: { flex: 1, minWidth: 220, px: 1 }, children: [
8229
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7681
8230
  import_material48.Typography,
7682
8231
  {
7683
8232
  variant: "body2",
@@ -7685,7 +8234,7 @@ var WorkflowTimeBar = ({
7685
8234
  children: elapsedTime
7686
8235
  }
7687
8236
  ),
7688
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
8237
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7689
8238
  import_material48.LinearProgress,
7690
8239
  {
7691
8240
  variant: "determinate",
@@ -7701,10 +8250,10 @@ var WorkflowTimeBar = ({
7701
8250
  }
7702
8251
  )
7703
8252
  ] }),
7704
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", gap: 3 }, children: [
7705
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
7706
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_material48.Typography, { variant: "subtitle1", sx: { fontWeight: 500 }, children: "Steps" }),
7707
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
8253
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", gap: 3 }, children: [
8254
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
8255
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_material48.Typography, { variant: "subtitle1", sx: { fontWeight: 500 }, children: "Steps" }),
8256
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7708
8257
  import_material48.IconButton,
7709
8258
  {
7710
8259
  size: "small",
@@ -7712,11 +8261,11 @@ var WorkflowTimeBar = ({
7712
8261
  onClick: onPreviousStep,
7713
8262
  disabled: atFirstStep,
7714
8263
  sx: { backgroundColor: chrome.stepBtnBg },
7715
- children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_ChevronLeft3.default, { fontSize: "small" })
8264
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_ChevronLeft4.default, { fontSize: "small" })
7716
8265
  }
7717
8266
  ),
7718
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_material48.Typography, { variant: "subtitle1", sx: { minWidth: 52, textAlign: "center" }, children: `${currentStep} / ${totalSteps}` }),
7719
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
8267
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_material48.Typography, { variant: "subtitle1", sx: { minWidth: 52, textAlign: "center" }, children: `${currentStep} / ${totalSteps}` }),
8268
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7720
8269
  import_material48.IconButton,
7721
8270
  {
7722
8271
  size: "small",
@@ -7724,13 +8273,13 @@ var WorkflowTimeBar = ({
7724
8273
  onClick: onNextStep,
7725
8274
  disabled: atLastStep,
7726
8275
  sx: { backgroundColor: chrome.stepBtnBgHover },
7727
- children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_ChevronRight4.default, { fontSize: "small" })
8276
+ children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_ChevronRight5.default, { fontSize: "small" })
7728
8277
  }
7729
8278
  )
7730
8279
  ] }),
7731
- /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
7732
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_material48.Typography, { variant: "subtitle1", sx: { fontWeight: 500 }, children: "Speed" }),
7733
- speedOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
8280
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_material48.Box, { sx: { display: "flex", alignItems: "center", gap: 1 }, children: [
8281
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_material48.Typography, { variant: "subtitle1", sx: { fontWeight: 500 }, children: "Speed" }),
8282
+ speedOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
7734
8283
  SpeedButton,
7735
8284
  {
7736
8285
  value: option,
@@ -7739,7 +8288,7 @@ var WorkflowTimeBar = ({
7739
8288
  },
7740
8289
  option
7741
8290
  )),
7742
- /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_material48.IconButton, { "aria-label": "Reset playback", onClick: onReset, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(import_Replay.default, { fontSize: "small" }) })
8291
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_material48.IconButton, { "aria-label": "Reset playback", onClick: onReset, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_Replay.default, { fontSize: "small" }) })
7743
8292
  ] })
7744
8293
  ] })
7745
8294
  ] })
@@ -7749,12 +8298,12 @@ var WorkflowTimeBar = ({
7749
8298
  };
7750
8299
 
7751
8300
  // src/components/icons/ActivityAppIcon.tsx
7752
- var import_react18 = require("react");
8301
+ var import_react22 = require("react");
7753
8302
  var import_material49 = require("@mui/material");
7754
- var import_jsx_runtime71 = require("react/jsx-runtime");
7755
- var ActivityAppIcon = (0, import_react18.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(import_material49.SvgIcon, { ...props, viewBox: "0 0 36 36", children: [
7756
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("rect", { fill: "none", stroke: "currentColor", width: 34, height: 34, x: 1, y: 1, strokeWidth: 1.5, rx: 6.8 }),
7757
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
8303
+ var import_jsx_runtime76 = require("react/jsx-runtime");
8304
+ var ActivityAppIcon = (0, import_react22.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime76.jsxs)(import_material49.SvgIcon, { ...props, viewBox: "0 0 36 36", children: [
8305
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)("rect", { fill: "none", stroke: "currentColor", width: 34, height: 34, x: 1, y: 1, strokeWidth: 1.5, rx: 6.8 }),
8306
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7758
8307
  "rect",
7759
8308
  {
7760
8309
  fill: "none",
@@ -7767,7 +8316,7 @@ var ActivityAppIcon = (0, import_react18.memo)((props) => /* @__PURE__ */ (0, im
7767
8316
  rx: 1.7
7768
8317
  }
7769
8318
  ),
7770
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
8319
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7771
8320
  "rect",
7772
8321
  {
7773
8322
  fill: "none",
@@ -7780,7 +8329,7 @@ var ActivityAppIcon = (0, import_react18.memo)((props) => /* @__PURE__ */ (0, im
7780
8329
  rx: 1.7
7781
8330
  }
7782
8331
  ),
7783
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
8332
+ /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
7784
8333
  "rect",
7785
8334
  {
7786
8335
  fill: "none",
@@ -7797,9 +8346,9 @@ var ActivityAppIcon = (0, import_react18.memo)((props) => /* @__PURE__ */ (0, im
7797
8346
 
7798
8347
  // src/components/icons/ArrowLeft.tsx
7799
8348
  var import_material50 = require("@mui/material");
7800
- var import_jsx_runtime72 = require("react/jsx-runtime");
8349
+ var import_jsx_runtime77 = require("react/jsx-runtime");
7801
8350
  var LeftArrowIcon = (props) => {
7802
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_material50.SvgIcon, { ...props, width: "24", height: "24", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("g", { id: " Arrow Left", children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
8351
+ return /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(import_material50.SvgIcon, { ...props, width: "24", height: "24", viewBox: "0 0 24 24", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)("g", { id: " Arrow Left", children: /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
7803
8352
  "path",
7804
8353
  {
7805
8354
  id: "Vector (Stroke)",
@@ -7813,9 +8362,9 @@ var LeftArrowIcon = (props) => {
7813
8362
 
7814
8363
  // src/components/icons/ArrowRight.tsx
7815
8364
  var import_material51 = require("@mui/material");
7816
- var import_jsx_runtime73 = require("react/jsx-runtime");
8365
+ var import_jsx_runtime78 = require("react/jsx-runtime");
7817
8366
  var RightArrowIcon = (props) => {
7818
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_material51.SvgIcon, { ...props, width: "25", height: "24", viewBox: "0 0 25 24", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
8367
+ return /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(import_material51.SvgIcon, { ...props, width: "25", height: "24", viewBox: "0 0 25 24", children: /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
7819
8368
  "path",
7820
8369
  {
7821
8370
  fillRule: "evenodd",
@@ -7828,10 +8377,10 @@ var RightArrowIcon = (props) => {
7828
8377
 
7829
8378
  // src/components/icons/AvatarIcon.tsx
7830
8379
  var import_material52 = require("@mui/material");
7831
- var import_jsx_runtime74 = require("react/jsx-runtime");
8380
+ var import_jsx_runtime79 = require("react/jsx-runtime");
7832
8381
  var AvatarIcon = (props) => {
7833
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_material52.SvgIcon, { ...props, viewBox: "0 0 16 16", children: [
7834
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
8382
+ return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(import_material52.SvgIcon, { ...props, viewBox: "0 0 16 16", children: [
8383
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
7835
8384
  "path",
7836
8385
  {
7837
8386
  fillRule: "evenodd",
@@ -7840,7 +8389,7 @@ var AvatarIcon = (props) => {
7840
8389
  fill: "#1D1B20"
7841
8390
  }
7842
8391
  ),
7843
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
8392
+ /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
7844
8393
  "path",
7845
8394
  {
7846
8395
  fillRule: "evenodd",
@@ -7853,11 +8402,11 @@ var AvatarIcon = (props) => {
7853
8402
  };
7854
8403
 
7855
8404
  // src/components/icons/BarTrackingIcon.tsx
7856
- var import_react19 = require("react");
8405
+ var import_react23 = require("react");
7857
8406
  var import_material53 = require("@mui/material");
7858
- var import_jsx_runtime75 = require("react/jsx-runtime");
7859
- var BarTrackingIcon = (0, import_react19.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(import_material53.SvgIcon, { ...props, viewBox: "0 0 96 97", children: [
7860
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
8407
+ var import_jsx_runtime80 = require("react/jsx-runtime");
8408
+ var BarTrackingIcon = (0, import_react23.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_material53.SvgIcon, { ...props, viewBox: "0 0 96 97", children: [
8409
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
7861
8410
  "rect",
7862
8411
  {
7863
8412
  x: "7.19922",
@@ -7870,7 +8419,7 @@ var BarTrackingIcon = (0, import_react19.memo)((props) => /* @__PURE__ */ (0, im
7870
8419
  fill: "none"
7871
8420
  }
7872
8421
  ),
7873
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
8422
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
7874
8423
  "rect",
7875
8424
  {
7876
8425
  x: "21.0371",
@@ -7883,7 +8432,7 @@ var BarTrackingIcon = (0, import_react19.memo)((props) => /* @__PURE__ */ (0, im
7883
8432
  strokeWidth: "2"
7884
8433
  }
7885
8434
  ),
7886
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
8435
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
7887
8436
  "rect",
7888
8437
  {
7889
8438
  x: "40.4746",
@@ -7896,7 +8445,7 @@ var BarTrackingIcon = (0, import_react19.memo)((props) => /* @__PURE__ */ (0, im
7896
8445
  strokeWidth: "2"
7897
8446
  }
7898
8447
  ),
7899
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
8448
+ /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
7900
8449
  "rect",
7901
8450
  {
7902
8451
  x: "59.8828",
@@ -7912,10 +8461,10 @@ var BarTrackingIcon = (0, import_react19.memo)((props) => /* @__PURE__ */ (0, im
7912
8461
  ] }));
7913
8462
 
7914
8463
  // src/components/icons/ClockIcon.tsx
7915
- var import_react20 = require("react");
8464
+ var import_react24 = require("react");
7916
8465
  var import_material54 = require("@mui/material");
7917
- var import_jsx_runtime76 = require("react/jsx-runtime");
7918
- var ClockIcon = (0, import_react20.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(import_material54.SvgIcon, { ...props, viewBox: "0 0 22 22", children: /* @__PURE__ */ (0, import_jsx_runtime76.jsx)(
8466
+ var import_jsx_runtime81 = require("react/jsx-runtime");
8467
+ var ClockIcon = (0, import_react24.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(import_material54.SvgIcon, { ...props, viewBox: "0 0 22 22", children: /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
7919
8468
  "path",
7920
8469
  {
7921
8470
  fill: "currentColor",
@@ -7926,11 +8475,11 @@ var ClockIcon = (0, import_react20.memo)((props) => /* @__PURE__ */ (0, import_j
7926
8475
  ) }));
7927
8476
 
7928
8477
  // src/components/icons/CloudFlashIcon.tsx
7929
- var import_react21 = require("react");
8478
+ var import_react25 = require("react");
7930
8479
  var import_material55 = require("@mui/material");
7931
- var import_jsx_runtime77 = require("react/jsx-runtime");
7932
- var CloudFlashIcon = (0, import_react21.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime77.jsxs)(import_material55.SvgIcon, { ...props, fill: "none", viewBox: "0 0 96 97", children: [
7933
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8480
+ var import_jsx_runtime82 = require("react/jsx-runtime");
8481
+ var CloudFlashIcon = (0, import_react25.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_material55.SvgIcon, { ...props, fill: "none", viewBox: "0 0 96 97", children: [
8482
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
7934
8483
  "path",
7935
8484
  {
7936
8485
  d: "M18.8029 43.3396V43.2933H19.8029C20.3752 43.2933 20.9384 43.328 21.4908 43.3937C21.9111 39.4438 22.9817 34.2181 25.6601 29.8138C28.6259 24.937 33.5595 21.0898 41.5689 21.0898C46.9417 21.0898 50.8839 22.9055 53.7292 25.6773C56.5498 28.4249 58.2303 32.0495 59.2307 35.5901C60.1768 38.9386 60.5315 42.2718 60.6446 44.8476C60.891 44.4671 61.1651 44.0792 61.4696 43.691C63.7235 40.8178 67.6089 37.9824 74.0317 37.9824C77.222 37.9824 79.8196 38.6871 81.9219 39.7574L81.9232 39.7581C86.8327 42.2671 89.793 47.4136 89.793 52.8846V54.7368C89.793 65.644 80.9404 74.4889 70.0269 74.4889H18.865C11.867 74.4889 6.19295 68.8202 6.19295 61.8256V57.184C6.19295 49.9845 11.6911 43.8799 18.8029 43.3396Z",
@@ -7939,7 +8488,7 @@ var CloudFlashIcon = (0, import_react21.memo)((props) => /* @__PURE__ */ (0, imp
7939
8488
  strokeWidth: "2"
7940
8489
  }
7941
8490
  ),
7942
- /* @__PURE__ */ (0, import_jsx_runtime77.jsx)(
8491
+ /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
7943
8492
  "path",
7944
8493
  {
7945
8494
  d: "M79.1804 45.7001C79.1804 45.7001 60.7908 47.259 60.7908 10.0898C60.7908 10.0898 60.9856 45.7768 43.1934 45.7768C43.1934 45.7768 61.1933 48.1151 61.1933 67.6899C61.1933 67.6899 61.1933 45.7001 79.1934 45.7001H79.1804Z",
@@ -7951,11 +8500,11 @@ var CloudFlashIcon = (0, import_react21.memo)((props) => /* @__PURE__ */ (0, imp
7951
8500
  ] }));
7952
8501
 
7953
8502
  // src/components/icons/DecentralizedServerIcon.tsx
7954
- var import_react22 = require("react");
8503
+ var import_react26 = require("react");
7955
8504
  var import_material56 = require("@mui/material");
7956
- var import_jsx_runtime78 = require("react/jsx-runtime");
7957
- var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime78.jsxs)(import_material56.SvgIcon, { ...props, viewBox: "0 0 96 97", children: [
7958
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8505
+ var import_jsx_runtime83 = require("react/jsx-runtime");
8506
+ var DecentralizedServerIcon = (0, import_react26.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(import_material56.SvgIcon, { ...props, viewBox: "0 0 96 97", children: [
8507
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
7959
8508
  "path",
7960
8509
  {
7961
8510
  d: "M14.5706 15.0858L48.016 8.29688L81.3694 15.0858L88.2242 48.3742L81.3694 81.6556L48.016 88.4445L14.5706 81.6556L7.80078 48.3742L14.5706 15.0858Z",
@@ -7966,7 +8515,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
7966
8515
  strokeLinejoin: "round"
7967
8516
  }
7968
8517
  ),
7969
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8518
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
7970
8519
  "path",
7971
8520
  {
7972
8521
  d: "M48.0118 11.2609C49.6622 11.2609 51.0001 9.92755 51.0001 8.28279C51.0001 6.63803 49.6622 5.30469 48.0118 5.30469C46.3614 5.30469 45.0234 6.63803 45.0234 8.28279C45.0234 9.92755 46.3614 11.2609 48.0118 11.2609Z",
@@ -7977,7 +8526,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
7977
8526
  strokeLinejoin: "round"
7978
8527
  }
7979
8528
  ),
7980
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8529
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
7981
8530
  "path",
7982
8531
  {
7983
8532
  d: "M48.0118 91.4132C49.6622 91.4132 51.0001 90.0799 51.0001 88.4351C51.0001 86.7904 49.6622 85.457 48.0118 85.457C46.3614 85.457 45.0234 86.7904 45.0234 88.4351C45.0234 90.0799 46.3614 91.4132 48.0118 91.4132Z",
@@ -7988,7 +8537,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
7988
8537
  strokeLinejoin: "round"
7989
8538
  }
7990
8539
  ),
7991
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8540
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
7992
8541
  "path",
7993
8542
  {
7994
8543
  d: "M7.79304 51.339C9.44346 51.339 10.7814 50.0057 10.7814 48.3609C10.7814 46.7162 9.44346 45.3828 7.79304 45.3828C6.14262 45.3828 4.80469 46.7162 4.80469 48.3609C4.80469 50.0057 6.14262 51.339 7.79304 51.339Z",
@@ -7999,7 +8548,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
7999
8548
  strokeLinejoin: "round"
8000
8549
  }
8001
8550
  ),
8002
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8551
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8003
8552
  "path",
8004
8553
  {
8005
8554
  d: "M88.2247 51.339C89.8751 51.339 91.213 50.0057 91.213 48.3609C91.213 46.7162 89.8751 45.3828 88.2247 45.3828C86.5743 45.3828 85.2363 46.7162 85.2363 48.3609C85.2363 50.0057 86.5743 51.339 88.2247 51.339Z",
@@ -8010,7 +8559,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8010
8559
  strokeLinejoin: "round"
8011
8560
  }
8012
8561
  ),
8013
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8562
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8014
8563
  "path",
8015
8564
  {
8016
8565
  d: "M81.3477 18.0539C82.9982 18.0539 84.3361 16.7205 84.3361 15.0758C84.3361 13.431 82.9982 12.0977 81.3477 12.0977C79.6973 12.0977 78.3594 13.431 78.3594 15.0758C78.3594 16.7205 79.6973 18.0539 81.3477 18.0539Z",
@@ -8021,7 +8570,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8021
8570
  strokeLinejoin: "round"
8022
8571
  }
8023
8572
  ),
8024
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8573
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8025
8574
  "path",
8026
8575
  {
8027
8576
  d: "M14.5508 84.6203C16.2013 84.6203 17.5392 83.2869 17.5392 81.6422C17.5392 79.9974 16.2013 78.6641 14.5508 78.6641C12.9004 78.6641 11.5625 79.9974 11.5625 81.6422C11.5625 83.2869 12.9004 84.6203 14.5508 84.6203Z",
@@ -8032,7 +8581,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8032
8581
  strokeLinejoin: "round"
8033
8582
  }
8034
8583
  ),
8035
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8584
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8036
8585
  "path",
8037
8586
  {
8038
8587
  d: "M81.3477 84.6203C82.9982 84.6203 84.3361 83.2869 84.3361 81.6422C84.3361 79.9974 82.9982 78.6641 81.3477 78.6641C79.6973 78.6641 78.3594 79.9974 78.3594 81.6422C78.3594 83.2869 79.6973 84.6203 81.3477 84.6203Z",
@@ -8043,7 +8592,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8043
8592
  strokeLinejoin: "round"
8044
8593
  }
8045
8594
  ),
8046
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8595
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8047
8596
  "path",
8048
8597
  {
8049
8598
  d: "M14.5508 18.0539C16.2013 18.0539 17.5392 16.7205 17.5392 15.0758C17.5392 13.431 16.2013 12.0977 14.5508 12.0977C12.9004 12.0977 11.5625 13.431 11.5625 15.0758C11.5625 16.7205 12.9004 18.0539 14.5508 18.0539Z",
@@ -8054,7 +8603,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8054
8603
  strokeLinejoin: "round"
8055
8604
  }
8056
8605
  ),
8057
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8606
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8058
8607
  "rect",
8059
8608
  {
8060
8609
  x: "22.623",
@@ -8067,7 +8616,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8067
8616
  strokeWidth: "2"
8068
8617
  }
8069
8618
  ),
8070
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8619
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8071
8620
  "rect",
8072
8621
  {
8073
8622
  x: "22.623",
@@ -8080,7 +8629,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8080
8629
  strokeWidth: "2"
8081
8630
  }
8082
8631
  ),
8083
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8632
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8084
8633
  "rect",
8085
8634
  {
8086
8635
  x: "22.623",
@@ -8093,7 +8642,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8093
8642
  strokeWidth: "2"
8094
8643
  }
8095
8644
  ),
8096
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8645
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8097
8646
  "path",
8098
8647
  {
8099
8648
  d: "M29.612 37.1542C31.2803 37.1542 32.634 35.8026 32.634 34.1337C32.634 32.4649 31.2803 31.1133 29.612 31.1133C27.9437 31.1133 26.5901 32.4649 26.5901 34.1337C26.5901 35.8026 27.9437 37.1542 29.612 37.1542Z",
@@ -8103,7 +8652,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8103
8652
  strokeMiterlimit: "10"
8104
8653
  }
8105
8654
  ),
8106
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8655
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8107
8656
  "path",
8108
8657
  {
8109
8658
  d: "M40.3464 37.1542C42.0147 37.1542 43.3684 35.8026 43.3684 34.1337C43.3684 32.4649 42.0147 31.1133 40.3464 31.1133C38.6782 31.1133 37.3245 32.4649 37.3245 34.1337C37.3245 35.8026 38.6782 37.1542 40.3464 37.1542Z",
@@ -8113,7 +8662,7 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8113
8662
  strokeMiterlimit: "10"
8114
8663
  }
8115
8664
  ),
8116
- /* @__PURE__ */ (0, import_jsx_runtime78.jsx)(
8665
+ /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8117
8666
  "path",
8118
8667
  {
8119
8668
  d: "M51.0808 37.1542C52.7491 37.1542 54.1028 35.8026 54.1028 34.1337C54.1028 32.4649 52.7491 31.1133 51.0808 31.1133C49.4125 31.1133 48.0588 32.4649 48.0588 34.1337C48.0588 35.8026 49.4125 37.1542 51.0808 37.1542Z",
@@ -8126,10 +8675,10 @@ var DecentralizedServerIcon = (0, import_react22.memo)((props) => /* @__PURE__ *
8126
8675
  ] }));
8127
8676
 
8128
8677
  // src/components/icons/DiscordIcon.tsx
8129
- var import_react23 = require("react");
8678
+ var import_react27 = require("react");
8130
8679
  var import_material57 = require("@mui/material");
8131
- var import_jsx_runtime79 = require("react/jsx-runtime");
8132
- var DiscordIcon = (0, import_react23.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(import_material57.SvgIcon, { ...props, viewBox: "0 0 15 12", children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
8680
+ var import_jsx_runtime84 = require("react/jsx-runtime");
8681
+ var DiscordIcon = (0, import_react27.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_material57.SvgIcon, { ...props, viewBox: "0 0 15 12", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
8133
8682
  "path",
8134
8683
  {
8135
8684
  fill: "currentColor",
@@ -8138,18 +8687,18 @@ var DiscordIcon = (0, import_react23.memo)((props) => /* @__PURE__ */ (0, import
8138
8687
  ) }));
8139
8688
 
8140
8689
  // src/components/icons/DownloadIcon.tsx
8141
- var import_react24 = require("react");
8690
+ var import_react28 = require("react");
8142
8691
  var import_material58 = require("@mui/material");
8143
- var import_jsx_runtime80 = require("react/jsx-runtime");
8144
- var DownloadIcon = (0, import_react24.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime80.jsxs)(import_material58.SvgIcon, { ...props, viewBox: "0 0 17 16", fill: "none", children: [
8145
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8692
+ var import_jsx_runtime85 = require("react/jsx-runtime");
8693
+ var DownloadIcon = (0, import_react28.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(import_material58.SvgIcon, { ...props, viewBox: "0 0 17 16", fill: "none", children: [
8694
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
8146
8695
  "path",
8147
8696
  {
8148
8697
  d: "M8.86902 11.0041C8.77429 11.1077 8.64038 11.1667 8.5 11.1667C8.35962 11.1667 8.22571 11.1077 8.13099 11.0041L5.46432 8.08738C5.27799 7.88358 5.29215 7.56732 5.49595 7.38099C5.69975 7.19465 6.01602 7.20881 6.20235 7.41262L8 9.3788V2C8 1.72386 8.22386 1.5 8.5 1.5C8.77614 1.5 9 1.72386 9 2V9.3788L10.7977 7.41262C10.984 7.20881 11.3003 7.19465 11.5041 7.38099C11.7079 7.56732 11.722 7.88358 11.5357 8.08738L8.86902 11.0041Z",
8149
8698
  fill: "currentColor"
8150
8699
  }
8151
8700
  ),
8152
- /* @__PURE__ */ (0, import_jsx_runtime80.jsx)(
8701
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
8153
8702
  "path",
8154
8703
  {
8155
8704
  d: "M3 10C3 9.72386 2.77614 9.5 2.5 9.5C2.22386 9.5 2 9.72386 2 10V10.0366C1.99999 10.9483 1.99998 11.6832 2.07768 12.2612C2.15836 12.8612 2.33096 13.3665 2.73223 13.7678C3.13351 14.169 3.63876 14.3416 4.23883 14.4223C4.81681 14.5 5.55169 14.5 6.46342 14.5H10.5366C11.4483 14.5 12.1832 14.5 12.7612 14.4223C13.3612 14.3416 13.8665 14.169 14.2678 13.7678C14.669 13.3665 14.8416 12.8612 14.9223 12.2612C15 11.6832 15 10.9483 15 10.0366V10C15 9.72386 14.7761 9.5 14.5 9.5C14.2239 9.5 14 9.72386 14 10C14 10.9569 13.9989 11.6244 13.9312 12.1279C13.8655 12.6171 13.7452 12.8762 13.5607 13.0607C13.3762 13.2452 13.1171 13.3655 12.6279 13.4312C12.1244 13.4989 11.4569 13.5 10.5 13.5H6.5C5.54306 13.5 4.87565 13.4989 4.37208 13.4312C3.8829 13.3655 3.62385 13.2452 3.43934 13.0607C3.25483 12.8762 3.13453 12.6171 3.06877 12.1279C3.00106 11.6244 3 10.9569 3 10Z",
@@ -8159,13 +8708,13 @@ var DownloadIcon = (0, import_react24.memo)((props) => /* @__PURE__ */ (0, impor
8159
8708
  ] }));
8160
8709
 
8161
8710
  // src/components/icons/FilledFolderIcon.tsx
8162
- var import_react25 = require("react");
8711
+ var import_react29 = require("react");
8163
8712
  var import_material59 = require("@mui/material");
8164
- var import_jsx_runtime81 = require("react/jsx-runtime");
8165
- var FilledFolderIcon = (0, import_react25.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime81.jsxs)(import_material59.SvgIcon, { sx: { fill: "none" }, ...props, fill: "none", viewBox: "0 0 22 22", children: [
8166
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", fill: "#FCF8EC" }),
8167
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", stroke: "#E1B43E" }),
8168
- /* @__PURE__ */ (0, import_jsx_runtime81.jsx)(
8713
+ var import_jsx_runtime86 = require("react/jsx-runtime");
8714
+ var FilledFolderIcon = (0, import_react29.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)(import_material59.SvgIcon, { sx: { fill: "none" }, ...props, fill: "none", viewBox: "0 0 22 22", children: [
8715
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", fill: "#FCF8EC" }),
8716
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", stroke: "#E1B43E" }),
8717
+ /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
8169
8718
  "path",
8170
8719
  {
8171
8720
  fillRule: "evenodd",
@@ -8177,13 +8726,13 @@ var FilledFolderIcon = (0, import_react25.memo)((props) => /* @__PURE__ */ (0, i
8177
8726
  ] }));
8178
8727
 
8179
8728
  // src/components/icons/FolderIcon.tsx
8180
- var import_react26 = require("react");
8729
+ var import_react30 = require("react");
8181
8730
  var import_material60 = require("@mui/material");
8182
- var import_jsx_runtime82 = require("react/jsx-runtime");
8183
- var FolderIcon = (0, import_react26.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime82.jsxs)(import_material60.SvgIcon, { sx: { fill: "none" }, ...props, fill: "none", viewBox: "0 0 22 22", children: [
8184
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", fill: "#F5F7FA" }),
8185
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", stroke: "#E6E6E6" }),
8186
- /* @__PURE__ */ (0, import_jsx_runtime82.jsx)(
8731
+ var import_jsx_runtime87 = require("react/jsx-runtime");
8732
+ var FolderIcon = (0, import_react30.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(import_material60.SvgIcon, { sx: { fill: "none" }, ...props, fill: "none", viewBox: "0 0 22 22", children: [
8733
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", fill: "#F5F7FA" }),
8734
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", stroke: "#E6E6E6" }),
8735
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
8187
8736
  "path",
8188
8737
  {
8189
8738
  fillRule: "evenodd",
@@ -8197,18 +8746,18 @@ var FolderIcon = (0, import_react26.memo)((props) => /* @__PURE__ */ (0, import_
8197
8746
  ] }));
8198
8747
 
8199
8748
  // src/components/icons/GithubLogoIcon.tsx
8200
- var import_react27 = require("react");
8749
+ var import_react31 = require("react");
8201
8750
  var import_material61 = require("@mui/material");
8202
- var import_jsx_runtime83 = require("react/jsx-runtime");
8203
- var GithubLogoIcon = (0, import_react27.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime83.jsxs)(import_material61.SvgIcon, { ...props, viewBox: "0 0 17 16", sx: { fill: "none" }, children: [
8204
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8751
+ var import_jsx_runtime88 = require("react/jsx-runtime");
8752
+ var GithubLogoIcon = (0, import_react31.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime88.jsxs)(import_material61.SvgIcon, { ...props, viewBox: "0 0 17 16", sx: { fill: "none" }, children: [
8753
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
8205
8754
  "path",
8206
8755
  {
8207
8756
  d: "M8.79754 0C4.268 0 0.595032 3.67233 0.595032 8.20251C0.595032 11.8267 2.9453 14.9013 6.20443 15.9859C6.61435 16.0618 6.76488 15.808 6.76488 15.5913C6.76488 15.3957 6.75723 14.7495 6.75375 14.0642C4.47174 14.5603 3.99022 13.0964 3.99022 13.0964C3.61711 12.1483 3.07949 11.8962 3.07949 11.8962C2.33531 11.3871 3.13559 11.3975 3.13559 11.3975C3.95928 11.4554 4.393 12.2428 4.393 12.2428C5.12457 13.4968 6.31186 13.1343 6.77993 12.9247C6.85353 12.3945 7.06614 12.0327 7.30069 11.8279C5.47884 11.6204 3.56358 10.9171 3.56358 7.77413C3.56358 6.87865 3.88401 6.14688 4.40876 5.57247C4.32359 5.36584 4.04285 4.5316 4.48821 3.40175C4.48821 3.40175 5.177 3.18129 6.74449 4.24256C7.39873 4.06076 8.10045 3.96967 8.79754 3.96658C9.49463 3.96967 10.1969 4.06076 10.8524 4.24256C12.418 3.18129 13.1059 3.40175 13.1059 3.40175C13.5523 4.5316 13.2714 5.36584 13.1863 5.57247C13.7122 6.14688 14.0304 6.87858 14.0304 7.77413C14.0304 10.9245 12.1116 11.6183 10.2851 11.8213C10.5793 12.0759 10.8414 12.5751 10.8414 13.3403C10.8414 14.4378 10.8319 15.3211 10.8319 15.5913C10.8319 15.8096 10.9795 16.0654 11.3954 15.9848C14.6527 14.899 17 11.8254 17 8.20251C17 3.67233 13.3275 0 8.79754 0Z",
8208
8757
  fill: "white"
8209
8758
  }
8210
8759
  ),
8211
- /* @__PURE__ */ (0, import_jsx_runtime83.jsx)(
8760
+ /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(
8212
8761
  "path",
8213
8762
  {
8214
8763
  d: "M3.66696 11.6845C3.64895 11.7252 3.58474 11.7374 3.5264 11.7095C3.46689 11.6828 3.43344 11.6272 3.45274 11.5863C3.47043 11.5443 3.53463 11.5326 3.59401 11.5608C3.65364 11.5875 3.68761 11.6436 3.66696 11.6845ZM4.07044 12.0445C4.03133 12.0808 3.95484 12.0639 3.90292 12.0066C3.84927 11.9494 3.83924 11.873 3.87893 11.8361C3.91926 11.7999 3.99344 11.8168 4.04722 11.8741C4.10087 11.9319 4.11129 12.0079 4.07038 12.0446M4.34726 12.5051C4.29695 12.54 4.21474 12.5073 4.16398 12.4343C4.11374 12.3615 4.11374 12.274 4.16507 12.2389C4.21602 12.2038 4.29695 12.2354 4.34842 12.3077C4.39859 12.3819 4.39859 12.4694 4.34719 12.5052M4.81533 13.0386C4.77036 13.0881 4.67464 13.0749 4.60452 13.0072C4.53285 12.9411 4.51285 12.8472 4.55794 12.7976C4.60342 12.748 4.69973 12.7619 4.77036 12.829C4.84158 12.895 4.86332 12.9896 4.81539 13.0386M5.4203 13.2187C5.40055 13.2829 5.3083 13.3121 5.2154 13.2849C5.12264 13.2568 5.06191 13.1815 5.08063 13.1166C5.09993 13.0519 5.19257 13.0215 5.28617 13.0507C5.37881 13.0787 5.43966 13.1534 5.42036 13.2187M6.1089 13.2951C6.11121 13.3628 6.03241 13.4189 5.93488 13.4201C5.83678 13.4222 5.75746 13.3675 5.75643 13.3009C5.75643 13.2326 5.83343 13.177 5.93147 13.1754C6.029 13.1735 6.1089 13.2279 6.1089 13.2951ZM6.78527 13.2692C6.79698 13.3352 6.72918 13.403 6.63236 13.421C6.53715 13.4384 6.44901 13.3976 6.43686 13.3322C6.42502 13.2645 6.49411 13.1968 6.58913 13.1792C6.68614 13.1624 6.77292 13.2021 6.78527 13.2692Z",
@@ -8218,10 +8767,10 @@ var GithubLogoIcon = (0, import_react27.memo)((props) => /* @__PURE__ */ (0, imp
8218
8767
  ] }));
8219
8768
 
8220
8769
  // src/components/icons/ShareIcon.tsx
8221
- var import_react28 = require("react");
8770
+ var import_react32 = require("react");
8222
8771
  var import_material62 = require("@mui/material");
8223
- var import_jsx_runtime84 = require("react/jsx-runtime");
8224
- var ShareIcon = (0, import_react28.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_material62.SvgIcon, { ...props, viewBox: "0 0 17 16", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
8772
+ var import_jsx_runtime89 = require("react/jsx-runtime");
8773
+ var ShareIcon = (0, import_react32.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_material62.SvgIcon, { ...props, viewBox: "0 0 17 16", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
8225
8774
  "path",
8226
8775
  {
8227
8776
  fillRule: "evenodd",
@@ -8232,11 +8781,11 @@ var ShareIcon = (0, import_react28.memo)((props) => /* @__PURE__ */ (0, import_j
8232
8781
  ) }));
8233
8782
 
8234
8783
  // src/components/icons/StorageAppIcon.tsx
8235
- var import_react29 = require("react");
8784
+ var import_react33 = require("react");
8236
8785
  var import_material63 = require("@mui/material");
8237
- var import_jsx_runtime85 = require("react/jsx-runtime");
8238
- var StorageAppIcon = (0, import_react29.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(import_material63.SvgIcon, { ...props, viewBox: "0 0 38 29", fill: "none", children: [
8239
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
8786
+ var import_jsx_runtime90 = require("react/jsx-runtime");
8787
+ var StorageAppIcon = (0, import_react33.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(import_material63.SvgIcon, { ...props, viewBox: "0 0 38 29", fill: "none", children: [
8788
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
8240
8789
  "path",
8241
8790
  {
8242
8791
  d: "M6.25415 13.3371V13.2515H7.25415C7.31809 13.2515 7.38176 13.2524 7.44516 13.2543C7.66366 11.6446 8.14354 9.64623 9.19625 7.91521C10.5234 5.73296 12.756 4 16.3233 4C18.7076 4 20.4981 4.81149 21.7972 6.07693C23.0714 7.31823 23.8108 8.93436 24.2437 10.4665C24.4895 11.3363 24.6426 12.2007 24.7362 12.9909C25.8141 11.9297 27.4506 11.0385 29.8495 11.0385C31.2681 11.0385 32.4415 11.3528 33.4017 11.8416L33.4031 11.8423C35.655 12.9932 37 15.3454 37 17.8312V18.6029C37 23.4701 33.0499 27.4163 28.1808 27.4163H6.86335C3.62577 27.4163 1 24.7935 1 21.5565V19.6226C1 16.5122 3.24401 13.8341 6.25415 13.3371Z",
@@ -8245,7 +8794,7 @@ var StorageAppIcon = (0, import_react29.memo)((props) => /* @__PURE__ */ (0, imp
8245
8794
  fill: "none"
8246
8795
  }
8247
8796
  ),
8248
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
8797
+ /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
8249
8798
  "path",
8250
8799
  {
8251
8800
  d: "M31.9946 14.8376C31.9946 14.8376 24.3322 15.4871 24.3322 0C24.3322 0 24.4134 14.8696 17 14.8696C17 14.8696 24.5 15.8438 24.5 24C24.5 24 24.5 14.8376 32 14.8376H31.9946Z",
@@ -8257,10 +8806,10 @@ var StorageAppIcon = (0, import_react29.memo)((props) => /* @__PURE__ */ (0, imp
8257
8806
  ] }));
8258
8807
 
8259
8808
  // src/components/icons/UploadFileIcon.tsx
8260
- var import_react30 = require("react");
8809
+ var import_react34 = require("react");
8261
8810
  var import_material64 = require("@mui/material");
8262
- var import_jsx_runtime86 = require("react/jsx-runtime");
8263
- var UploadFileIcon = (0, import_react30.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(import_material64.SvgIcon, { ...props, viewBox: "0 0 12 12", children: /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
8811
+ var import_jsx_runtime91 = require("react/jsx-runtime");
8812
+ var UploadFileIcon = (0, import_react34.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_material64.SvgIcon, { ...props, viewBox: "0 0 12 12", children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(
8264
8813
  "path",
8265
8814
  {
8266
8815
  fillRule: "evenodd",
@@ -8273,10 +8822,10 @@ var UploadFileIcon = (0, import_react30.memo)((props) => /* @__PURE__ */ (0, imp
8273
8822
  ) }));
8274
8823
 
8275
8824
  // src/components/icons/UploadFolderIcon.tsx
8276
- var import_react31 = require("react");
8825
+ var import_react35 = require("react");
8277
8826
  var import_material65 = require("@mui/material");
8278
- var import_jsx_runtime87 = require("react/jsx-runtime");
8279
- var UploadFolderIcon = (0, import_react31.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_material65.SvgIcon, { ...props, viewBox: "0 0 12 12", children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(
8827
+ var import_jsx_runtime92 = require("react/jsx-runtime");
8828
+ var UploadFolderIcon = (0, import_react35.memo)((props) => /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_material65.SvgIcon, { ...props, viewBox: "0 0 12 12", children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
8280
8829
  "path",
8281
8830
  {
8282
8831
  fillRule: "evenodd",
@@ -8295,7 +8844,7 @@ var import_github_markdown_light = require("github-markdown-css/github-markdown-
8295
8844
  var import_react_markdown = __toESM(require("react-markdown"));
8296
8845
  var import_rehype_highlight = __toESM(require("rehype-highlight"));
8297
8846
  var import_rehype_raw = __toESM(require("rehype-raw"));
8298
- var import_jsx_runtime88 = require("react/jsx-runtime");
8847
+ var import_jsx_runtime93 = require("react/jsx-runtime");
8299
8848
  var Content = (0, import_material66.styled)(import_material66.Box)(({ theme: theme2 }) => ({
8300
8849
  backgroundColor: "transparent",
8301
8850
  ...theme2.typography.body1,
@@ -8313,36 +8862,36 @@ var Content = (0, import_material66.styled)(import_material66.Box)(({ theme: the
8313
8862
  backgroundColor: theme2.palette.background.paper
8314
8863
  }
8315
8864
  }));
8316
- var Markdown = ({ content, children }) => /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(Content, { className: "markdown-body", children: /* @__PURE__ */ (0, import_jsx_runtime88.jsx)(import_react_markdown.default, { rehypePlugins: [import_rehype_highlight.default, import_rehype_raw.default], children: content || children }) });
8865
+ var Markdown = ({ content, children }) => /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Content, { className: "markdown-body", children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_react_markdown.default, { rehypePlugins: [import_rehype_highlight.default, import_rehype_raw.default], children: content || children }) });
8317
8866
 
8318
8867
  // src/components/utilities/OnboardingProvider/OnboardingProvider.tsx
8319
- var import_react32 = require("react");
8320
- var import_jsx_runtime89 = require("react/jsx-runtime");
8321
- var OnboardingContext = (0, import_react32.createContext)(void 0);
8868
+ var import_react36 = require("react");
8869
+ var import_jsx_runtime94 = require("react/jsx-runtime");
8870
+ var OnboardingContext = (0, import_react36.createContext)(void 0);
8322
8871
  var useOnboarding = () => {
8323
- const context = (0, import_react32.useContext)(OnboardingContext);
8872
+ const context = (0, import_react36.useContext)(OnboardingContext);
8324
8873
  if (!context) {
8325
8874
  throw new Error("useOnboarding should be used inside OnboardingProvider");
8326
8875
  }
8327
8876
  return context;
8328
8877
  };
8329
8878
  var OnboardingProvider = ({ children }) => {
8330
- const [isOnboardingActive, setIsOnboardingActive] = (0, import_react32.useState)(() => {
8879
+ const [isOnboardingActive, setIsOnboardingActive] = (0, import_react36.useState)(() => {
8331
8880
  const savedState = localStorage.getItem("isOnboardingActive");
8332
8881
  return savedState !== null ? JSON.parse(savedState) : true;
8333
8882
  });
8334
- (0, import_react32.useEffect)(() => {
8883
+ (0, import_react36.useEffect)(() => {
8335
8884
  localStorage.setItem("isOnboardingActive", JSON.stringify(isOnboardingActive));
8336
8885
  }, [isOnboardingActive]);
8337
- const startOnboarding = (0, import_react32.useCallback)(() => setIsOnboardingActive(true), []);
8338
- const stopOnboarding = (0, import_react32.useCallback)(() => {
8886
+ const startOnboarding = (0, import_react36.useCallback)(() => setIsOnboardingActive(true), []);
8887
+ const stopOnboarding = (0, import_react36.useCallback)(() => {
8339
8888
  setIsOnboardingActive(false);
8340
8889
  }, []);
8341
- const restartOnboarding = (0, import_react32.useCallback)(() => {
8890
+ const restartOnboarding = (0, import_react36.useCallback)(() => {
8342
8891
  setIsOnboardingActive(false);
8343
8892
  setTimeout(() => setIsOnboardingActive(true), 0);
8344
8893
  }, []);
8345
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
8894
+ return /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
8346
8895
  OnboardingContext.Provider,
8347
8896
  {
8348
8897
  value: {
@@ -8357,7 +8906,7 @@ var OnboardingProvider = ({ children }) => {
8357
8906
  };
8358
8907
 
8359
8908
  // src/components/utilities/Truncate/Truncate.tsx
8360
- var import_jsx_runtime90 = require("react/jsx-runtime");
8909
+ var import_jsx_runtime95 = require("react/jsx-runtime");
8361
8910
  var getDefaultEndingLength = ({ text, variant, maxLength = text.length }) => {
8362
8911
  if (variant === "hex") {
8363
8912
  return 4;
@@ -8381,21 +8930,21 @@ var Truncate = ({
8381
8930
  const truncated = text.slice(0, maxLength - endingLength);
8382
8931
  truncatedText = [truncated, ending].filter(Boolean).join("...");
8383
8932
  }
8384
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { ...props, "data-full": text, children: truncatedText });
8933
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { ...props, "data-full": text, children: truncatedText });
8385
8934
  };
8386
8935
 
8387
8936
  // src/components/utilities/BytesSize/BytesSize.tsx
8388
8937
  var import_byte_size = __toESM(require("byte-size"));
8389
- var import_jsx_runtime91 = require("react/jsx-runtime");
8938
+ var import_jsx_runtime96 = require("react/jsx-runtime");
8390
8939
  var BytesSize = ({ bytes }) => {
8391
- return /* @__PURE__ */ (0, import_jsx_runtime91.jsx)(import_jsx_runtime91.Fragment, { children: (0, import_byte_size.default)(bytes).toString() });
8940
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_jsx_runtime96.Fragment, { children: (0, import_byte_size.default)(bytes).toString() });
8392
8941
  };
8393
8942
 
8394
8943
  // src/components/utilities/QRCode/QRCode.tsx
8395
- var import_react33 = require("react");
8944
+ var import_react37 = require("react");
8396
8945
  var import_react_qr_code = __toESM(require("react-qr-code"));
8397
- var import_jsx_runtime92 = require("react/jsx-runtime");
8398
- var QRCode = (0, import_react33.forwardRef)(({ size: size3 = 168, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_react_qr_code.default, { ref, size: size3, ...props }));
8946
+ var import_jsx_runtime97 = require("react/jsx-runtime");
8947
+ var QRCode = (0, import_react37.forwardRef)(({ size: size3 = 168, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_react_qr_code.default, { ref, size: size3, ...props }));
8399
8948
  QRCode.displayName = "QRCode";
8400
8949
 
8401
8950
  // src/components/charts/ChartWidget/ChartWidget.tsx
@@ -8403,7 +8952,7 @@ var import_material67 = require("@mui/material");
8403
8952
  var import_x_charts = require("@mui/x-charts");
8404
8953
  var import_byte_size2 = __toESM(require("byte-size"));
8405
8954
  var import_date_fns = require("date-fns");
8406
- var import_jsx_runtime93 = require("react/jsx-runtime");
8955
+ var import_jsx_runtime98 = require("react/jsx-runtime");
8407
8956
  var Chart = (0, import_material67.styled)(import_material67.Box)(() => ({
8408
8957
  height: 200
8409
8958
  }));
@@ -8414,10 +8963,10 @@ var ChartWidget = ({
8414
8963
  formatValue = (value2) => (0, import_byte_size2.default)(value2 || 0).toString()
8415
8964
  }) => {
8416
8965
  const theme2 = (0, import_material67.useTheme)();
8417
- return /* @__PURE__ */ (0, import_jsx_runtime93.jsxs)(import_material67.Stack, { spacing: 1, children: [
8418
- /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_material67.Typography, { variant: "caption", color: "text.secondary", children: title }),
8419
- /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(import_material67.Typography, { fontWeight: "bold", children: value }),
8420
- /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(Chart, { children: /* @__PURE__ */ (0, import_jsx_runtime93.jsx)(
8966
+ return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(import_material67.Stack, { spacing: 1, children: [
8967
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_material67.Typography, { variant: "caption", color: "text.secondary", children: title }),
8968
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_material67.Typography, { fontWeight: "bold", children: value }),
8969
+ /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(Chart, { children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
8421
8970
  import_x_charts.LineChart,
8422
8971
  {
8423
8972
  dataset: history || [],
@@ -8479,7 +9028,7 @@ var import_material69 = require("@mui/material");
8479
9028
 
8480
9029
  // src/components/charts/MetricsChart/PeriodSelect.tsx
8481
9030
  var import_material68 = require("@mui/material");
8482
- var import_jsx_runtime94 = require("react/jsx-runtime");
9031
+ var import_jsx_runtime99 = require("react/jsx-runtime");
8483
9032
  var options = [
8484
9033
  /**
8485
9034
  * TODO: Enable the options below when the backend supports them
@@ -8489,7 +9038,7 @@ var options = [
8489
9038
  { value: "week", label: "1 week" },
8490
9039
  { value: "month", label: "1 month" }
8491
9040
  ];
8492
- var PeriodSelect = ({ value, onChange }) => /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
9041
+ var PeriodSelect = ({ value, onChange }) => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
8493
9042
  import_material68.TextField,
8494
9043
  {
8495
9044
  select: true,
@@ -8497,13 +9046,13 @@ var PeriodSelect = ({ value, onChange }) => /* @__PURE__ */ (0, import_jsx_runti
8497
9046
  value,
8498
9047
  defaultValue: options[0].value,
8499
9048
  onChange: (e) => onChange?.(e.target.value),
8500
- children: options.map(({ value: value2, label }) => /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_material68.MenuItem, { value: value2, children: label }, value2))
9049
+ children: options.map(({ value: value2, label }) => /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_material68.MenuItem, { value: value2, children: label }, value2))
8501
9050
  }
8502
9051
  );
8503
9052
 
8504
9053
  // src/components/charts/MetricsChart/MetricsChart.tsx
8505
- var import_react34 = require("react");
8506
- var import_jsx_runtime95 = require("react/jsx-runtime");
9054
+ var import_react38 = require("react");
9055
+ var import_jsx_runtime100 = require("react/jsx-runtime");
8507
9056
  var mapPeriodToFromDate = (period = "month") => {
8508
9057
  const date = /* @__PURE__ */ new Date();
8509
9058
  if (period === "hour") {
@@ -8533,13 +9082,13 @@ var LoadingText = (0, import_material69.styled)("text")(({ theme: theme2 }) => (
8533
9082
  }));
8534
9083
  var MetricsChart = ({ history = [] }) => {
8535
9084
  const theme2 = (0, import_material69.useTheme)();
8536
- const [period, setPeriod] = (0, import_react34.useState)("week");
8537
- const periodFrom = (0, import_react34.useMemo)(() => mapPeriodToFromDate(period), [period]);
8538
- const periodHistory = (0, import_react34.useMemo)(
9085
+ const [period, setPeriod] = (0, import_react38.useState)("week");
9086
+ const periodFrom = (0, import_react38.useMemo)(() => mapPeriodToFromDate(period), [period]);
9087
+ const periodHistory = (0, import_react38.useMemo)(
8539
9088
  () => history.filter((record) => record.recordTime > periodFrom),
8540
9089
  [history, periodFrom]
8541
9090
  );
8542
- const total = (0, import_react34.useMemo)(
9091
+ const total = (0, import_react38.useMemo)(
8543
9092
  () => periodHistory.reduce(
8544
9093
  (acc, record) => ({
8545
9094
  gets: acc.gets + record.gets,
@@ -8563,15 +9112,15 @@ var MetricsChart = ({ history = [] }) => {
8563
9112
  const backgroundHeight = textHeight + padding.top + padding.bottom;
8564
9113
  const rectX = left + (width - backgroundWidth) / 2;
8565
9114
  const rectY = top + (height - backgroundHeight) / 2;
8566
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("g", { children: [
8567
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(NoDataRect, { x: rectX, y: rectY, width: backgroundWidth, height: backgroundHeight }),
8568
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(LoadingText, { style: { ...theme2.typography.subtitle1 }, x: left + width / 2, y: top + height / 2, children: text })
9115
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)("g", { children: [
9116
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(NoDataRect, { x: rectX, y: rectY, width: backgroundWidth, height: backgroundHeight }),
9117
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(LoadingText, { style: { ...theme2.typography.subtitle1 }, x: left + width / 2, y: top + height / 2, children: text })
8569
9118
  ] });
8570
9119
  };
8571
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.Card, { children: [
8572
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.CardHeader, { title: "GET / PUT Requests", action: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(PeriodSelect, { value: period, onChange: setPeriod }) }),
8573
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.CardMedia, { children: [
8574
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
9120
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.Card, { children: [
9121
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.CardHeader, { title: "GET / PUT Requests", action: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(PeriodSelect, { value: period, onChange: setPeriod }) }),
9122
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.CardMedia, { children: [
9123
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
8575
9124
  Chart2,
8576
9125
  {
8577
9126
  skipAnimation: true,
@@ -8632,35 +9181,35 @@ var MetricsChart = ({ history = [] }) => {
8632
9181
  ]
8633
9182
  }
8634
9183
  ),
8635
- periodHistory.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.Stack, { direction: "row", spacing: 2, marginY: 3, justifyContent: "center", children: [
8636
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.Stack, { direction: "row", spacing: 1, alignItems: "center", children: [
8637
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Box, { sx: { width: 14, height: 14, borderRadius: "4px", backgroundColor: theme2.palette.primary.main } }),
8638
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "body2", children: "Get" })
9184
+ periodHistory.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.Stack, { direction: "row", spacing: 2, marginY: 3, justifyContent: "center", children: [
9185
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.Stack, { direction: "row", spacing: 1, alignItems: "center", children: [
9186
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Box, { sx: { width: 14, height: 14, borderRadius: "4px", backgroundColor: theme2.palette.primary.main } }),
9187
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "body2", children: "Get" })
8639
9188
  ] }),
8640
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.Stack, { direction: "row", spacing: 1, alignItems: "center", children: [
8641
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Box, { sx: { width: 14, height: 14, borderRadius: "4px", backgroundColor: theme2.palette.success.main } }),
8642
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "body2", children: "Put" })
9189
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.Stack, { direction: "row", spacing: 1, alignItems: "center", children: [
9190
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Box, { sx: { width: 14, height: 14, borderRadius: "4px", backgroundColor: theme2.palette.success.main } }),
9191
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "body2", children: "Put" })
8643
9192
  ] })
8644
9193
  ] })
8645
9194
  ] }),
8646
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.CardMedia, { children: [
8647
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Divider, { flexItem: true }),
8648
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.Stack, { direction: "row", spacing: 2, padding: 2, children: [
8649
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.Stack, { direction: "row", alignItems: "center", spacing: 1, children: [
8650
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "body2", color: "secondary", children: "GET Requests per account" }),
8651
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "h3", children: total.gets })
9195
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.CardMedia, { children: [
9196
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Divider, { flexItem: true }),
9197
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.Stack, { direction: "row", spacing: 2, padding: 2, children: [
9198
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.Stack, { direction: "row", alignItems: "center", spacing: 1, children: [
9199
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "body2", color: "secondary", children: "GET Requests per account" }),
9200
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "h3", children: total.gets })
8652
9201
  ] }),
8653
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.Stack, { direction: "row", alignItems: "center", spacing: 1, children: [
8654
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "body2", color: "secondary", children: "PUT Requests per account" }),
8655
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "h3", children: total.puts })
9202
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.Stack, { direction: "row", alignItems: "center", spacing: 1, children: [
9203
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "body2", color: "secondary", children: "PUT Requests per account" }),
9204
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "h3", children: total.puts })
8656
9205
  ] }),
8657
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.Stack, { direction: "row", alignItems: "center", spacing: 1, children: [
8658
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "body2", color: "secondary", children: "Total Consumed per account" }),
8659
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "h3", children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(BytesSize, { bytes: total.transferredBytes }) })
9206
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.Stack, { direction: "row", alignItems: "center", spacing: 1, children: [
9207
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "body2", color: "secondary", children: "Total Consumed per account" }),
9208
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "h3", children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(BytesSize, { bytes: total.transferredBytes }) })
8660
9209
  ] }),
8661
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(import_material69.Stack, { direction: "row", alignItems: "center", spacing: 1, children: [
8662
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "body2", color: "secondary", children: "Total Stored per account" }),
8663
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_material69.Typography, { variant: "h3", children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(BytesSize, { bytes: total.storedBytes }) })
9210
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material69.Stack, { direction: "row", alignItems: "center", spacing: 1, children: [
9211
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "body2", color: "secondary", children: "Total Stored per account" }),
9212
+ /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material69.Typography, { variant: "h3", children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(BytesSize, { bytes: total.storedBytes }) })
8664
9213
  ] })
8665
9214
  ] })
8666
9215
  ] })
@@ -8668,15 +9217,15 @@ var MetricsChart = ({ history = [] }) => {
8668
9217
  };
8669
9218
 
8670
9219
  // src/components/charts/TimeSeriesGraph/TimeSeriesGraph.tsx
8671
- var import_react35 = require("react");
9220
+ var import_react39 = require("react");
8672
9221
  var import_material72 = require("@mui/material");
8673
9222
  var import_x_charts3 = require("@mui/x-charts");
8674
9223
  var import_date_fns3 = require("date-fns");
8675
9224
 
8676
9225
  // src/components/charts/TimeSeriesGraph/TimeRangeSelect.tsx
8677
9226
  var import_material70 = require("@mui/material");
8678
- var import_jsx_runtime96 = require("react/jsx-runtime");
8679
- var TimeRangeSelect = ({ options: options2, value, onChange }) => /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
9227
+ var import_jsx_runtime101 = require("react/jsx-runtime");
9228
+ var TimeRangeSelect = ({ options: options2, value, onChange }) => /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
8680
9229
  import_material70.TextField,
8681
9230
  {
8682
9231
  select: true,
@@ -8685,13 +9234,13 @@ var TimeRangeSelect = ({ options: options2, value, onChange }) => /* @__PURE__ *
8685
9234
  onChange: (e) => onChange?.(e.target.value),
8686
9235
  "aria-label": "Time range selector",
8687
9236
  sx: { minWidth: 120 },
8688
- children: options2.map((option) => /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_material70.MenuItem, { value: option.value, children: option.label }, option.value))
9237
+ children: options2.map((option) => /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_material70.MenuItem, { value: option.value, children: option.label }, option.value))
8689
9238
  }
8690
9239
  );
8691
9240
 
8692
9241
  // src/components/charts/TimeSeriesGraph/SummaryStats.tsx
8693
9242
  var import_material71 = require("@mui/material");
8694
- var import_jsx_runtime97 = require("react/jsx-runtime");
9243
+ var import_jsx_runtime102 = require("react/jsx-runtime");
8695
9244
  var formatSummaryValue = (value, unit) => {
8696
9245
  const displayValue = typeof value === "number" ? value.toLocaleString() : value;
8697
9246
  return unit ? `${displayValue} ${unit}` : displayValue;
@@ -8700,7 +9249,7 @@ var SummaryStats = ({ items }) => {
8700
9249
  if (items.length === 0) {
8701
9250
  return null;
8702
9251
  }
8703
- return /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(
9252
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
8704
9253
  import_material71.Stack,
8705
9254
  {
8706
9255
  direction: "row",
@@ -8710,7 +9259,7 @@ var SummaryStats = ({ items }) => {
8710
9259
  useFlexGap: true,
8711
9260
  role: "list",
8712
9261
  "aria-label": "Summary statistics",
8713
- children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime97.jsxs)(
9262
+ children: items.map((item) => /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
8714
9263
  import_material71.Stack,
8715
9264
  {
8716
9265
  direction: "row",
@@ -8718,8 +9267,8 @@ var SummaryStats = ({ items }) => {
8718
9267
  spacing: 1,
8719
9268
  role: "listitem",
8720
9269
  children: [
8721
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_material71.Typography, { variant: "body2", color: "text.secondary", children: item.label }),
8722
- /* @__PURE__ */ (0, import_jsx_runtime97.jsx)(import_material71.Typography, { variant: "h5", fontWeight: 600, children: formatSummaryValue(item.value, item.unit) })
9270
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_material71.Typography, { variant: "body2", color: "text.secondary", children: item.label }),
9271
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_material71.Typography, { variant: "h5", fontWeight: 600, children: formatSummaryValue(item.value, item.unit) })
8723
9272
  ]
8724
9273
  },
8725
9274
  item.label
@@ -8729,7 +9278,7 @@ var SummaryStats = ({ items }) => {
8729
9278
  };
8730
9279
 
8731
9280
  // src/components/charts/TimeSeriesGraph/TimeSeriesGraph.tsx
8732
- var import_jsx_runtime98 = require("react/jsx-runtime");
9281
+ var import_jsx_runtime103 = require("react/jsx-runtime");
8733
9282
  var ChartContainer = (0, import_material72.styled)(import_material72.Box)({
8734
9283
  position: "relative",
8735
9284
  height: 320
@@ -8801,14 +9350,14 @@ var TimeSeriesGraph = ({
8801
9350
  xAxisFormat
8802
9351
  }) => {
8803
9352
  const theme2 = (0, import_material72.useTheme)();
8804
- const [hiddenSeries, setHiddenSeries] = (0, import_react35.useState)(/* @__PURE__ */ new Set());
8805
- const dataset = (0, import_react35.useMemo)(() => buildDataset(series, hiddenSeries), [series, hiddenSeries]);
8806
- const visibleSeries = (0, import_react35.useMemo)(
9353
+ const [hiddenSeries, setHiddenSeries] = (0, import_react39.useState)(/* @__PURE__ */ new Set());
9354
+ const dataset = (0, import_react39.useMemo)(() => buildDataset(series, hiddenSeries), [series, hiddenSeries]);
9355
+ const visibleSeries = (0, import_react39.useMemo)(
8807
9356
  () => series.filter((s) => !hiddenSeries.has(s.name)),
8808
9357
  [series, hiddenSeries]
8809
9358
  );
8810
- const chartColors = (0, import_react35.useMemo)(() => visibleSeries.map((s) => s.color), [visibleSeries]);
8811
- const handleLegendToggle = (0, import_react35.useCallback)((seriesName) => {
9359
+ const chartColors = (0, import_react39.useMemo)(() => visibleSeries.map((s) => s.color), [visibleSeries]);
9360
+ const handleLegendToggle = (0, import_react39.useCallback)((seriesName) => {
8812
9361
  setHiddenSeries((prev) => {
8813
9362
  const next = new Set(prev);
8814
9363
  if (next.has(seriesName)) {
@@ -8819,7 +9368,7 @@ var TimeSeriesGraph = ({
8819
9368
  return next;
8820
9369
  });
8821
9370
  }, []);
8822
- const timeBounds = (0, import_react35.useMemo)(() => {
9371
+ const timeBounds = (0, import_react39.useMemo)(() => {
8823
9372
  if (dataset.length === 0) return { min: void 0, max: void 0 };
8824
9373
  const timestamps = dataset.map((row) => row.timestamp.getTime());
8825
9374
  return {
@@ -8827,15 +9376,15 @@ var TimeSeriesGraph = ({
8827
9376
  max: new Date(Math.max(...timestamps))
8828
9377
  };
8829
9378
  }, [dataset]);
8830
- const resolvedXAxisFormat = (0, import_react35.useMemo)(
9379
+ const resolvedXAxisFormat = (0, import_react39.useMemo)(
8831
9380
  () => xAxisFormat ?? inferXAxisFormat(timeBounds.min, timeBounds.max),
8832
9381
  [xAxisFormat, timeBounds.min, timeBounds.max]
8833
9382
  );
8834
9383
  const hasData = dataset.length > 0;
8835
9384
  const shouldShowSummary = showSummary && summaryItems && summaryItems.length > 0;
8836
- const headerActionElement = /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(import_material72.Stack, { direction: "row", spacing: 1, alignItems: "center", children: [
9385
+ const headerActionElement = /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(import_material72.Stack, { direction: "row", spacing: 1, alignItems: "center", children: [
8837
9386
  headerAction,
8838
- timeRangeOptions && timeRangeOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
9387
+ timeRangeOptions && timeRangeOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8839
9388
  TimeRangeSelect,
8840
9389
  {
8841
9390
  options: timeRangeOptions,
@@ -8845,13 +9394,13 @@ var TimeSeriesGraph = ({
8845
9394
  )
8846
9395
  ] });
8847
9396
  const showHeader = !!title || !!headerAction || timeRangeOptions && timeRangeOptions.length > 0;
8848
- return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
9397
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
8849
9398
  import_material72.Card,
8850
9399
  {
8851
9400
  "aria-label": title ? `Line chart showing ${title}` : "Line chart",
8852
9401
  role: "figure",
8853
9402
  children: [
8854
- showHeader && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
9403
+ showHeader && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8855
9404
  import_material72.CardHeader,
8856
9405
  {
8857
9406
  title,
@@ -8862,10 +9411,10 @@ var TimeSeriesGraph = ({
8862
9411
  action: headerActionElement
8863
9412
  }
8864
9413
  ),
8865
- /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(import_material72.CardMedia, { children: [
8866
- /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(ChartContainer, { children: [
8867
- loading && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(LoadingOverlay, { role: "status", "aria-label": "Loading chart data", children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_material72.CircularProgress, { size: 40 }) }),
8868
- /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
9414
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(import_material72.CardMedia, { children: [
9415
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(ChartContainer, { children: [
9416
+ loading && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(LoadingOverlay, { role: "status", "aria-label": "Loading chart data", children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_material72.CircularProgress, { size: 40 }) }),
9417
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8869
9418
  import_x_charts3.LineChart,
8870
9419
  {
8871
9420
  dataset,
@@ -8917,7 +9466,7 @@ var TimeSeriesGraph = ({
8917
9466
  }
8918
9467
  )
8919
9468
  ] }),
8920
- series.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
9469
+ series.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8921
9470
  import_material72.Stack,
8922
9471
  {
8923
9472
  direction: "row",
@@ -8930,7 +9479,7 @@ var TimeSeriesGraph = ({
8930
9479
  "aria-label": "Chart legend",
8931
9480
  children: series.map((s) => {
8932
9481
  const isHidden = hiddenSeries.has(s.name);
8933
- return /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(
9482
+ return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
8934
9483
  import_material72.Stack,
8935
9484
  {
8936
9485
  direction: "row",
@@ -8947,8 +9496,8 @@ var TimeSeriesGraph = ({
8947
9496
  "aria-pressed": !isHidden,
8948
9497
  "aria-label": `Toggle ${s.name} visibility`,
8949
9498
  children: [
8950
- /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(LegendDot, { dotColor: s.color }),
8951
- /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_material72.Typography, { variant: "body2", children: s.name })
9499
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(LegendDot, { dotColor: s.color }),
9500
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_material72.Typography, { variant: "body2", children: s.name })
8952
9501
  ]
8953
9502
  },
8954
9503
  s.name
@@ -8957,9 +9506,9 @@ var TimeSeriesGraph = ({
8957
9506
  }
8958
9507
  )
8959
9508
  ] }),
8960
- shouldShowSummary && /* @__PURE__ */ (0, import_jsx_runtime98.jsxs)(import_jsx_runtime98.Fragment, { children: [
8961
- /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_material72.Divider, {}),
8962
- /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(SummaryStats, { items: summaryItems })
9509
+ shouldShowSummary && /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(import_jsx_runtime103.Fragment, { children: [
9510
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_material72.Divider, {}),
9511
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SummaryStats, { items: summaryItems })
8963
9512
  ] })
8964
9513
  ]
8965
9514
  }
@@ -8967,12 +9516,12 @@ var TimeSeriesGraph = ({
8967
9516
  };
8968
9517
 
8969
9518
  // src/components/third-party/FlowEditor.tsx
8970
- var import_react36 = require("react");
9519
+ var import_react40 = require("react");
8971
9520
  var import_reactflow = __toESM(require("reactflow"));
8972
9521
  var import_material73 = require("@mui/material");
8973
9522
  var import_styles45 = require("@mui/material/styles");
8974
9523
  var import_reactflow2 = require("reactflow");
8975
- var import_jsx_runtime99 = require("react/jsx-runtime");
9524
+ var import_jsx_runtime104 = require("react/jsx-runtime");
8976
9525
  var FlowEditor = ({
8977
9526
  nodes,
8978
9527
  edges,
@@ -8994,7 +9543,7 @@ var FlowEditor = ({
8994
9543
  ...reactFlowProps
8995
9544
  }) => {
8996
9545
  const theme2 = (0, import_styles45.useTheme)();
8997
- const handleInit = (0, import_react36.useCallback)(
9546
+ const handleInit = (0, import_react40.useCallback)(
8998
9547
  (instance) => {
8999
9548
  if (onInit) {
9000
9549
  onInit(instance);
@@ -9003,7 +9552,7 @@ var FlowEditor = ({
9003
9552
  [onInit]
9004
9553
  );
9005
9554
  const { sx: containerSx, ...restContainerProps } = containerProps ?? {};
9006
- return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_reactflow.ReactFlowProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
9555
+ return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(import_reactflow.ReactFlowProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
9007
9556
  import_material73.Box,
9008
9557
  {
9009
9558
  sx: [
@@ -9018,7 +9567,7 @@ var FlowEditor = ({
9018
9567
  ...Array.isArray(containerSx) ? containerSx : [containerSx]
9019
9568
  ],
9020
9569
  ...restContainerProps,
9021
- children: /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
9570
+ children: /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
9022
9571
  import_reactflow.default,
9023
9572
  {
9024
9573
  nodes,
@@ -9041,7 +9590,7 @@ var FlowEditor = ({
9041
9590
  },
9042
9591
  ...reactFlowProps,
9043
9592
  children: [
9044
- showBackground && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
9593
+ showBackground && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
9045
9594
  import_reactflow.Background,
9046
9595
  {
9047
9596
  variant: backgroundVariant,
@@ -9050,8 +9599,8 @@ var FlowEditor = ({
9050
9599
  color: theme2.palette.divider
9051
9600
  }
9052
9601
  ),
9053
- showControls && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_reactflow.Controls, {}),
9054
- showMinimap && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
9602
+ showControls && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(import_reactflow.Controls, {}),
9603
+ showMinimap && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
9055
9604
  import_reactflow.MiniMap,
9056
9605
  {
9057
9606
  nodeColor: (node) => {
@@ -9075,15 +9624,15 @@ var FlowEditor = ({
9075
9624
  };
9076
9625
 
9077
9626
  // src/components/third-party/CodeEditor.tsx
9078
- var import_react37 = require("react");
9079
- var import_react38 = __toESM(require("@monaco-editor/react"));
9627
+ var import_react41 = require("react");
9628
+ var import_react42 = __toESM(require("@monaco-editor/react"));
9080
9629
  var import_material74 = require("@mui/material");
9081
9630
  var import_Fullscreen = __toESM(require("@mui/icons-material/Fullscreen"));
9082
9631
  var import_FullscreenExit = __toESM(require("@mui/icons-material/FullscreenExit"));
9083
9632
  var import_ErrorOutline = __toESM(require("@mui/icons-material/ErrorOutline"));
9084
9633
  var import_ExpandMore3 = __toESM(require("@mui/icons-material/ExpandMore"));
9085
9634
  var import_ExpandLess = __toESM(require("@mui/icons-material/ExpandLess"));
9086
- var import_jsx_runtime100 = require("react/jsx-runtime");
9635
+ var import_jsx_runtime105 = require("react/jsx-runtime");
9087
9636
  var configureTypeScript = (monaco) => {
9088
9637
  monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
9089
9638
  target: monaco.languages.typescript.ScriptTarget.ES2020,
@@ -9132,16 +9681,16 @@ var CodeEditor = ({
9132
9681
  typeDefinitions,
9133
9682
  externalModelManagement = false
9134
9683
  }) => {
9135
- const [isEditorReady, setIsEditorReady] = (0, import_react37.useState)(false);
9136
- const [validationErrors, setValidationErrors] = (0, import_react37.useState)([]);
9137
- const [isFullscreen, setIsFullscreen] = (0, import_react37.useState)(false);
9138
- const [tsCode, setTsCode] = (0, import_react37.useState)(value);
9139
- const [actualHeight, setActualHeight] = (0, import_react37.useState)(
9684
+ const [isEditorReady, setIsEditorReady] = (0, import_react41.useState)(false);
9685
+ const [validationErrors, setValidationErrors] = (0, import_react41.useState)([]);
9686
+ const [isFullscreen, setIsFullscreen] = (0, import_react41.useState)(false);
9687
+ const [tsCode, setTsCode] = (0, import_react41.useState)(value);
9688
+ const [actualHeight, setActualHeight] = (0, import_react41.useState)(
9140
9689
  typeof height === "number" ? `${height}px` : height
9141
9690
  );
9142
- const [showProblems, setShowProblems] = (0, import_react37.useState)(false);
9143
- const [hasUserToggledProblems, setHasUserToggledProblems] = (0, import_react37.useState)(false);
9144
- (0, import_react37.useEffect)(() => {
9691
+ const [showProblems, setShowProblems] = (0, import_react41.useState)(false);
9692
+ const [hasUserToggledProblems, setHasUserToggledProblems] = (0, import_react41.useState)(false);
9693
+ (0, import_react41.useEffect)(() => {
9145
9694
  if (hasUserToggledProblems) return;
9146
9695
  if (validationErrors.length > 0) {
9147
9696
  setShowProblems(true);
@@ -9149,25 +9698,25 @@ var CodeEditor = ({
9149
9698
  setShowProblems(false);
9150
9699
  }
9151
9700
  }, [validationErrors, hasUserToggledProblems]);
9152
- const internalEditorRef = (0, import_react37.useRef)(null);
9153
- const internalMonacoRef = (0, import_react37.useRef)(null);
9701
+ const internalEditorRef = (0, import_react41.useRef)(null);
9702
+ const internalMonacoRef = (0, import_react41.useRef)(null);
9154
9703
  const finalEditorRef = editorRef || internalEditorRef;
9155
9704
  const finalMonacoRef = monacoRef || internalMonacoRef;
9156
- (0, import_react37.useEffect)(() => {
9705
+ (0, import_react41.useEffect)(() => {
9157
9706
  if (isFullscreen) {
9158
9707
  setActualHeight("calc(100vh - 80px)");
9159
9708
  } else {
9160
9709
  setActualHeight(typeof height === "number" ? `${height}px` : height);
9161
9710
  }
9162
9711
  }, [height, isFullscreen]);
9163
- const toggleFullscreen = (0, import_react37.useCallback)(() => {
9712
+ const toggleFullscreen = (0, import_react41.useCallback)(() => {
9164
9713
  const newFullscreenState = !isFullscreen;
9165
9714
  setIsFullscreen(newFullscreenState);
9166
9715
  if (onFullscreenChange) {
9167
9716
  onFullscreenChange(newFullscreenState);
9168
9717
  }
9169
9718
  }, [isFullscreen, onFullscreenChange]);
9170
- const gotoMarker = (0, import_react37.useCallback)(
9719
+ const gotoMarker = (0, import_react41.useCallback)(
9171
9720
  (marker) => {
9172
9721
  const ed = finalEditorRef?.current;
9173
9722
  if (!ed) return;
@@ -9182,7 +9731,7 @@ var CodeEditor = ({
9182
9731
  },
9183
9732
  [finalEditorRef]
9184
9733
  );
9185
- (0, import_react37.useEffect)(() => {
9734
+ (0, import_react41.useEffect)(() => {
9186
9735
  if (!isFullscreen) return;
9187
9736
  function escapeHandler(event) {
9188
9737
  if (event.key === "Escape") {
@@ -9199,7 +9748,7 @@ var CodeEditor = ({
9199
9748
  window.removeEventListener("keydown", escapeHandler, { capture: true });
9200
9749
  };
9201
9750
  }, [isFullscreen, onFullscreenChange]);
9202
- const handleEditorDidMount = (0, import_react37.useCallback)(
9751
+ const handleEditorDidMount = (0, import_react41.useCallback)(
9203
9752
  (editor, monaco) => {
9204
9753
  console.log("CodeEditor: onMount called", { editor: !!editor, monaco: !!monaco });
9205
9754
  try {
@@ -9253,7 +9802,7 @@ var CodeEditor = ({
9253
9802
  },
9254
9803
  [isFullscreen, onFullscreenChange, onValidate, onMount, finalEditorRef, finalMonacoRef]
9255
9804
  );
9256
- (0, import_react37.useEffect)(() => {
9805
+ (0, import_react41.useEffect)(() => {
9257
9806
  if (!isEditorReady || !finalMonacoRef?.current || !typeDefinitions) return;
9258
9807
  const monaco = finalMonacoRef.current;
9259
9808
  const definitions = Array.isArray(typeDefinitions) ? typeDefinitions : [typeDefinitions];
@@ -9275,7 +9824,7 @@ var CodeEditor = ({
9275
9824
  setTsCode(valueStr);
9276
9825
  onChange(valueStr);
9277
9826
  };
9278
- (0, import_react37.useEffect)(() => {
9827
+ (0, import_react41.useEffect)(() => {
9279
9828
  if (externalModelManagement) return;
9280
9829
  if (value !== tsCode) {
9281
9830
  setTsCode(value);
@@ -9301,7 +9850,7 @@ var CodeEditor = ({
9301
9850
  theme: themeProp || "vs",
9302
9851
  ...options2
9303
9852
  };
9304
- return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
9853
+ return /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
9305
9854
  import_material74.Box,
9306
9855
  {
9307
9856
  sx: {
@@ -9322,7 +9871,7 @@ var CodeEditor = ({
9322
9871
  pb: isFullscreen ? 2 : 0,
9323
9872
  overflow: isFullscreen ? "hidden" : "visible"
9324
9873
  },
9325
- children: /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(
9874
+ children: /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
9326
9875
  import_material74.Box,
9327
9876
  {
9328
9877
  sx: {
@@ -9338,7 +9887,7 @@ var CodeEditor = ({
9338
9887
  },
9339
9888
  ...containerProps,
9340
9889
  children: [
9341
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material74.Tooltip, { title: isFullscreen ? "Exit Fullscreen" : "Fullscreen", children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
9890
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_material74.Tooltip, { title: isFullscreen ? "Exit Fullscreen" : "Fullscreen", children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
9342
9891
  import_material74.IconButton,
9343
9892
  {
9344
9893
  onClick: toggleFullscreen,
@@ -9356,10 +9905,10 @@ var CodeEditor = ({
9356
9905
  },
9357
9906
  boxShadow: 1
9358
9907
  },
9359
- children: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_FullscreenExit.default, { fontSize: "small" }) : /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_Fullscreen.default, { fontSize: "small" })
9908
+ children: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_FullscreenExit.default, { fontSize: "small" }) : /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_Fullscreen.default, { fontSize: "small" })
9360
9909
  }
9361
9910
  ) }),
9362
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
9911
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
9363
9912
  import_material74.Box,
9364
9913
  {
9365
9914
  sx: {
@@ -9371,8 +9920,8 @@ var CodeEditor = ({
9371
9920
  position: "relative",
9372
9921
  height: isFullscreen ? "100%" : actualHeight
9373
9922
  },
9374
- children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
9375
- import_react38.default,
9923
+ children: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
9924
+ import_react42.default,
9376
9925
  {
9377
9926
  height: "100%",
9378
9927
  defaultLanguage: language,
@@ -9382,7 +9931,7 @@ var CodeEditor = ({
9382
9931
  onMount: handleEditorDidMount,
9383
9932
  theme: themeProp || "vs",
9384
9933
  options: defaultOptions,
9385
- loading: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material74.Box, { sx: { p: 2, textAlign: "center" }, children: "Loading Monaco Editor..." }),
9934
+ loading: /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_material74.Box, { sx: { p: 2, textAlign: "center" }, children: "Loading Monaco Editor..." }),
9386
9935
  beforeMount: (monaco) => {
9387
9936
  console.log("CodeEditor: beforeMount called", { monaco: !!monaco });
9388
9937
  }
@@ -9390,7 +9939,7 @@ var CodeEditor = ({
9390
9939
  )
9391
9940
  }
9392
9941
  ),
9393
- validationErrors.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(
9942
+ validationErrors.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
9394
9943
  import_material74.Box,
9395
9944
  {
9396
9945
  sx: {
@@ -9404,7 +9953,7 @@ var CodeEditor = ({
9404
9953
  transition: "max-height 0.2s ease"
9405
9954
  },
9406
9955
  children: [
9407
- /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(
9956
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
9408
9957
  import_material74.Box,
9409
9958
  {
9410
9959
  sx: {
@@ -9419,15 +9968,15 @@ var CodeEditor = ({
9419
9968
  color: "text.secondary"
9420
9969
  },
9421
9970
  children: [
9422
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_ErrorOutline.default, { color: "error", fontSize: "small" }),
9423
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material74.Box, { sx: { fontWeight: 600, color: "text.primary" }, children: "Problems" }),
9424
- /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material74.Box, { sx: { ml: 1 }, children: [
9971
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_ErrorOutline.default, { color: "error", fontSize: "small" }),
9972
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_material74.Box, { sx: { fontWeight: 600, color: "text.primary" }, children: "Problems" }),
9973
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(import_material74.Box, { sx: { ml: 1 }, children: [
9425
9974
  validationErrors.length,
9426
9975
  " error",
9427
9976
  validationErrors.length > 1 ? "s" : ""
9428
9977
  ] }),
9429
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material74.Box, { sx: { flex: 1 } }),
9430
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
9978
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_material74.Box, { sx: { flex: 1 } }),
9979
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
9431
9980
  import_material74.IconButton,
9432
9981
  {
9433
9982
  size: "small",
@@ -9436,13 +9985,13 @@ var CodeEditor = ({
9436
9985
  setHasUserToggledProblems(true);
9437
9986
  setShowProblems((s) => !s);
9438
9987
  },
9439
- children: showProblems ? /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_ExpandMore3.default, { fontSize: "small" }) : /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_ExpandLess.default, { fontSize: "small" })
9988
+ children: showProblems ? /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_ExpandMore3.default, { fontSize: "small" }) : /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_ExpandLess.default, { fontSize: "small" })
9440
9989
  }
9441
9990
  )
9442
9991
  ]
9443
9992
  }
9444
9993
  ),
9445
- showProblems && /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material74.Box, { sx: { overflow: "auto" }, children: validationErrors.map((error, index) => /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(
9994
+ showProblems && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_material74.Box, { sx: { overflow: "auto" }, children: validationErrors.map((error, index) => /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
9446
9995
  import_material74.Box,
9447
9996
  {
9448
9997
  onClick: () => gotoMarker(error),
@@ -9459,12 +10008,12 @@ var CodeEditor = ({
9459
10008
  fontSize: "0.85rem"
9460
10009
  },
9461
10010
  children: [
9462
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_ErrorOutline.default, { color: "error", sx: { fontSize: 18 } }),
9463
- /* @__PURE__ */ (0, import_jsx_runtime100.jsxs)(import_material74.Box, { sx: { color: "text.secondary", width: 64 }, children: [
10011
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_ErrorOutline.default, { color: "error", sx: { fontSize: 18 } }),
10012
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(import_material74.Box, { sx: { color: "text.secondary", width: 64 }, children: [
9464
10013
  "Line ",
9465
10014
  error.startLineNumber
9466
10015
  ] }),
9467
- /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_material74.Box, { sx: { color: "text.primary", flex: 1, minWidth: 0 }, children: error.message })
10016
+ /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(import_material74.Box, { sx: { color: "text.primary", flex: 1, minWidth: 0 }, children: error.message })
9468
10017
  ]
9469
10018
  },
9470
10019
  `${error.startLineNumber}-${error.startColumn}-${index}`
@@ -9485,7 +10034,7 @@ var import_reactflow4 = require("reactflow");
9485
10034
  // src/components/third-party/WorkflowNodeHandle.tsx
9486
10035
  var import_reactflow3 = require("reactflow");
9487
10036
  var import_material75 = require("@mui/material");
9488
- var import_jsx_runtime101 = require("react/jsx-runtime");
10037
+ var import_jsx_runtime106 = require("react/jsx-runtime");
9489
10038
  var WorkflowNodeHandle = ({
9490
10039
  data,
9491
10040
  selected
@@ -9500,9 +10049,9 @@ var WorkflowNodeHandle = ({
9500
10049
  background: handleColor,
9501
10050
  boxShadow: WORKFLOW_NODE_SHADOW
9502
10051
  };
9503
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(import_jsx_runtime101.Fragment, { children: [
9504
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_reactflow3.Handle, { type: "target", position: import_reactflow3.Position.Left, style: handleStyle }),
9505
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
10052
+ return /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(import_jsx_runtime106.Fragment, { children: [
10053
+ /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_reactflow3.Handle, { type: "target", position: import_reactflow3.Position.Left, style: handleStyle }),
10054
+ /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
9506
10055
  WorkflowNode,
9507
10056
  {
9508
10057
  nodeType: data.nodeType,
@@ -9514,7 +10063,7 @@ var WorkflowNodeHandle = ({
9514
10063
  showSideDots: false
9515
10064
  }
9516
10065
  ),
9517
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_reactflow3.Handle, { type: "source", position: import_reactflow3.Position.Right, style: handleStyle })
10066
+ /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_reactflow3.Handle, { type: "source", position: import_reactflow3.Position.Right, style: handleStyle })
9518
10067
  ] });
9519
10068
  };
9520
10069
 
@@ -9545,23 +10094,23 @@ function getFileName(path) {
9545
10094
  }
9546
10095
 
9547
10096
  // src/components/third-party/CodeEditorWorkspace/useCodeEditorWorkspace.ts
9548
- var import_react39 = require("react");
10097
+ var import_react43 = require("react");
9549
10098
  function useCodeEditorWorkspace({
9550
10099
  files,
9551
10100
  initialOpenPaths,
9552
10101
  onFileChange,
9553
10102
  onValidationChange
9554
10103
  }) {
9555
- const fileContentsRef = (0, import_react39.useRef)(/* @__PURE__ */ new Map());
9556
- const originalContentsRef = (0, import_react39.useRef)(/* @__PURE__ */ new Map());
9557
- const [openTabs, setOpenTabs] = (0, import_react39.useState)([]);
9558
- const [activeFilePath, setActiveFilePath] = (0, import_react39.useState)(null);
9559
- const monacoRef = (0, import_react39.useRef)(null);
9560
- const editorRef = (0, import_react39.useRef)(null);
9561
- const modelsRef = (0, import_react39.useRef)(/* @__PURE__ */ new Map());
9562
- const [validationMarkers, setValidationMarkers] = (0, import_react39.useState)({});
9563
- const [cursorPosition, setCursorPosition] = (0, import_react39.useState)(null);
9564
- (0, import_react39.useEffect)(() => {
10104
+ const fileContentsRef = (0, import_react43.useRef)(/* @__PURE__ */ new Map());
10105
+ const originalContentsRef = (0, import_react43.useRef)(/* @__PURE__ */ new Map());
10106
+ const [openTabs, setOpenTabs] = (0, import_react43.useState)([]);
10107
+ const [activeFilePath, setActiveFilePath] = (0, import_react43.useState)(null);
10108
+ const monacoRef = (0, import_react43.useRef)(null);
10109
+ const editorRef = (0, import_react43.useRef)(null);
10110
+ const modelsRef = (0, import_react43.useRef)(/* @__PURE__ */ new Map());
10111
+ const [validationMarkers, setValidationMarkers] = (0, import_react43.useState)({});
10112
+ const [cursorPosition, setCursorPosition] = (0, import_react43.useState)(null);
10113
+ (0, import_react43.useEffect)(() => {
9565
10114
  for (const file of files) {
9566
10115
  if (!fileContentsRef.current.has(file.path)) {
9567
10116
  fileContentsRef.current.set(file.path, file.value);
@@ -9585,7 +10134,7 @@ function useCodeEditorWorkspace({
9585
10134
  }
9586
10135
  }
9587
10136
  }, [files]);
9588
- (0, import_react39.useEffect)(() => {
10137
+ (0, import_react43.useEffect)(() => {
9589
10138
  if (initialOpenPaths && initialOpenPaths.length > 0) {
9590
10139
  const tabs = initialOpenPaths.filter((p) => files.some((f) => f.path === p)).map((p) => ({
9591
10140
  path: p,
@@ -9598,7 +10147,7 @@ function useCodeEditorWorkspace({
9598
10147
  }
9599
10148
  }
9600
10149
  }, []);
9601
- const getOrCreateModel = (0, import_react39.useCallback)(
10150
+ const getOrCreateModel = (0, import_react43.useCallback)(
9602
10151
  (path) => {
9603
10152
  const monaco = monacoRef.current;
9604
10153
  if (!monaco) return null;
@@ -9617,14 +10166,14 @@ function useCodeEditorWorkspace({
9617
10166
  },
9618
10167
  [files]
9619
10168
  );
9620
- const disposeModel = (0, import_react39.useCallback)((path) => {
10169
+ const disposeModel = (0, import_react43.useCallback)((path) => {
9621
10170
  const model = modelsRef.current.get(path);
9622
10171
  if (model && !model.isDisposed()) {
9623
10172
  model.dispose();
9624
10173
  }
9625
10174
  modelsRef.current.delete(path);
9626
10175
  }, []);
9627
- const switchToFile = (0, import_react39.useCallback)(
10176
+ const switchToFile = (0, import_react43.useCallback)(
9628
10177
  (path) => {
9629
10178
  const ed = editorRef.current;
9630
10179
  if (!ed) return;
@@ -9635,7 +10184,7 @@ function useCodeEditorWorkspace({
9635
10184
  },
9636
10185
  [getOrCreateModel]
9637
10186
  );
9638
- const openFile = (0, import_react39.useCallback)(
10187
+ const openFile = (0, import_react43.useCallback)(
9639
10188
  (path) => {
9640
10189
  const file = files.find((f) => f.path === path);
9641
10190
  if (!file) return;
@@ -9656,7 +10205,7 @@ function useCodeEditorWorkspace({
9656
10205
  },
9657
10206
  [files, switchToFile]
9658
10207
  );
9659
- const closeFile = (0, import_react39.useCallback)(
10208
+ const closeFile = (0, import_react43.useCallback)(
9660
10209
  (path) => {
9661
10210
  disposeModel(path);
9662
10211
  setOpenTabs((prev) => {
@@ -9675,14 +10224,14 @@ function useCodeEditorWorkspace({
9675
10224
  },
9676
10225
  [activeFilePath, disposeModel, switchToFile]
9677
10226
  );
9678
- const setActiveFileAction = (0, import_react39.useCallback)(
10227
+ const setActiveFileAction = (0, import_react43.useCallback)(
9679
10228
  (path) => {
9680
10229
  setActiveFilePath(path);
9681
10230
  switchToFile(path);
9682
10231
  },
9683
10232
  [switchToFile]
9684
10233
  );
9685
- const updateFileContent = (0, import_react39.useCallback)(
10234
+ const updateFileContent = (0, import_react43.useCallback)(
9686
10235
  (path, value) => {
9687
10236
  fileContentsRef.current.set(path, value);
9688
10237
  const model = modelsRef.current.get(path);
@@ -9697,10 +10246,10 @@ function useCodeEditorWorkspace({
9697
10246
  },
9698
10247
  [onFileChange]
9699
10248
  );
9700
- const getFileContent = (0, import_react39.useCallback)((path) => {
10249
+ const getFileContent = (0, import_react43.useCallback)((path) => {
9701
10250
  return fileContentsRef.current.get(path);
9702
10251
  }, []);
9703
- const markSaved = (0, import_react39.useCallback)((path) => {
10252
+ const markSaved = (0, import_react43.useCallback)((path) => {
9704
10253
  const content = fileContentsRef.current.get(path);
9705
10254
  if (content !== void 0) {
9706
10255
  originalContentsRef.current.set(path, content);
@@ -9709,13 +10258,13 @@ function useCodeEditorWorkspace({
9709
10258
  (prev) => prev.map((t) => t.path === path ? { ...t, isDirty: false } : t)
9710
10259
  );
9711
10260
  }, []);
9712
- const markAllSaved = (0, import_react39.useCallback)(() => {
10261
+ const markAllSaved = (0, import_react43.useCallback)(() => {
9713
10262
  for (const [path, content] of fileContentsRef.current.entries()) {
9714
10263
  originalContentsRef.current.set(path, content);
9715
10264
  }
9716
10265
  setOpenTabs((prev) => prev.map((t) => ({ ...t, isDirty: false })));
9717
10266
  }, []);
9718
- const handleEditorMount = (0, import_react39.useCallback)(
10267
+ const handleEditorMount = (0, import_react43.useCallback)(
9719
10268
  (editorInstance, monacoInstance) => {
9720
10269
  monacoRef.current = monacoInstance;
9721
10270
  editorRef.current = editorInstance;
@@ -9746,7 +10295,7 @@ function useCodeEditorWorkspace({
9746
10295
  // eslint-disable-next-line react-hooks/exhaustive-deps
9747
10296
  [activeFilePath, getOrCreateModel, onValidationChange]
9748
10297
  );
9749
- const handleEditorChange = (0, import_react39.useCallback)(
10298
+ const handleEditorChange = (0, import_react43.useCallback)(
9750
10299
  (value) => {
9751
10300
  if (!activeFilePath) return;
9752
10301
  fileContentsRef.current.set(activeFilePath, value);
@@ -9765,7 +10314,7 @@ function useCodeEditorWorkspace({
9765
10314
  value: fileContentsRef.current.get(activeFilePath) ?? "",
9766
10315
  language: files.find((f) => f.path === activeFilePath)?.language ?? detectLanguage(activeFilePath)
9767
10316
  } : void 0;
9768
- (0, import_react39.useEffect)(() => {
10317
+ (0, import_react43.useEffect)(() => {
9769
10318
  return () => {
9770
10319
  for (const model of modelsRef.current.values()) {
9771
10320
  if (!model.isDisposed()) {
@@ -9796,10 +10345,10 @@ function useCodeEditorWorkspace({
9796
10345
  }
9797
10346
 
9798
10347
  // src/components/third-party/CodeEditorWorkspace/CodeEditorTabs.tsx
9799
- var import_react40 = __toESM(require("react"));
10348
+ var import_react44 = __toESM(require("react"));
9800
10349
  var import_material76 = require("@mui/material");
9801
- var import_Close5 = __toESM(require("@mui/icons-material/Close"));
9802
- var import_jsx_runtime102 = require("react/jsx-runtime");
10350
+ var import_Close6 = __toESM(require("@mui/icons-material/Close"));
10351
+ var import_jsx_runtime107 = require("react/jsx-runtime");
9803
10352
  var CodeEditorTabs = ({
9804
10353
  tabs,
9805
10354
  activeTab,
@@ -9809,7 +10358,7 @@ var CodeEditorTabs = ({
9809
10358
  containerProps
9810
10359
  }) => {
9811
10360
  if (tabs.length === 0) return null;
9812
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
10361
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
9813
10362
  import_material76.Box,
9814
10363
  {
9815
10364
  sx: {
@@ -9828,14 +10377,14 @@ var CodeEditorTabs = ({
9828
10377
  const isActive = tab.path === activeTab;
9829
10378
  const label = tab.label ?? getFileName(tab.path);
9830
10379
  if (renderTab) {
9831
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_react40.default.Fragment, { children: renderTab({
10380
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(import_react44.default.Fragment, { children: renderTab({
9832
10381
  tab,
9833
10382
  isActive,
9834
10383
  onSelect: () => onTabSelect?.(tab.path),
9835
10384
  onClose: () => onTabClose?.(tab.path)
9836
10385
  }) }, tab.path);
9837
10386
  }
9838
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
10387
+ return /* @__PURE__ */ (0, import_jsx_runtime107.jsxs)(
9839
10388
  import_material76.Box,
9840
10389
  {
9841
10390
  onClick: () => onTabSelect?.(tab.path),
@@ -9858,7 +10407,7 @@ var CodeEditorTabs = ({
9858
10407
  transition: "background-color 0.15s ease"
9859
10408
  },
9860
10409
  children: [
9861
- tab.isDirty && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
10410
+ tab.isDirty && /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
9862
10411
  import_material76.Box,
9863
10412
  {
9864
10413
  sx: {
@@ -9870,7 +10419,7 @@ var CodeEditorTabs = ({
9870
10419
  }
9871
10420
  }
9872
10421
  ),
9873
- tab.syncStatus && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
10422
+ tab.syncStatus && /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
9874
10423
  import_material76.Box,
9875
10424
  {
9876
10425
  component: "span",
@@ -9884,7 +10433,7 @@ var CodeEditorTabs = ({
9884
10433
  children: tab.syncStatus === "new" ? "N" : "M"
9885
10434
  }
9886
10435
  ),
9887
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_material76.Tooltip, { title: tab.path, enterDelay: 600, children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
10436
+ /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(import_material76.Tooltip, { title: tab.path, enterDelay: 600, children: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
9888
10437
  import_material76.Typography,
9889
10438
  {
9890
10439
  variant: "body2",
@@ -9897,7 +10446,7 @@ var CodeEditorTabs = ({
9897
10446
  children: label
9898
10447
  }
9899
10448
  ) }),
9900
- onTabClose && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
10449
+ onTabClose && /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(
9901
10450
  import_material76.IconButton,
9902
10451
  {
9903
10452
  size: "small",
@@ -9914,7 +10463,7 @@ var CodeEditorTabs = ({
9914
10463
  transition: "opacity 0.15s ease"
9915
10464
  },
9916
10465
  "aria-label": `Close ${label}`,
9917
- children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_Close5.default, { sx: { fontSize: 14 } })
10466
+ children: /* @__PURE__ */ (0, import_jsx_runtime107.jsx)(import_Close6.default, { sx: { fontSize: 14 } })
9918
10467
  }
9919
10468
  )
9920
10469
  ]
@@ -9927,14 +10476,14 @@ var CodeEditorTabs = ({
9927
10476
  };
9928
10477
 
9929
10478
  // src/components/third-party/CodeEditorWorkspace/CodeEditorFileTree.tsx
9930
- var import_react41 = __toESM(require("react"));
10479
+ var import_react45 = __toESM(require("react"));
9931
10480
  var import_material77 = require("@mui/material");
9932
10481
  var import_Folder = __toESM(require("@mui/icons-material/Folder"));
9933
10482
  var import_FolderOpen = __toESM(require("@mui/icons-material/FolderOpen"));
9934
10483
  var import_InsertDriveFileOutlined = __toESM(require("@mui/icons-material/InsertDriveFileOutlined"));
9935
10484
  var import_ExpandMore4 = __toESM(require("@mui/icons-material/ExpandMore"));
9936
- var import_ChevronRight5 = __toESM(require("@mui/icons-material/ChevronRight"));
9937
- var import_jsx_runtime103 = require("react/jsx-runtime");
10485
+ var import_ChevronRight6 = __toESM(require("@mui/icons-material/ChevronRight"));
10486
+ var import_jsx_runtime108 = require("react/jsx-runtime");
9938
10487
  var STATUS_CONFIG = {
9939
10488
  new: { label: "N", color: "success.main" },
9940
10489
  modified: { label: "M", color: "warning.main" },
@@ -9959,10 +10508,10 @@ var CodeEditorFileTree = ({
9959
10508
  width = 220,
9960
10509
  containerProps
9961
10510
  }) => {
9962
- const [expandedPaths, setExpandedPaths] = (0, import_react41.useState)(
10511
+ const [expandedPaths, setExpandedPaths] = (0, import_react45.useState)(
9963
10512
  () => new Set(defaultExpandedPaths ?? [])
9964
10513
  );
9965
- const toggleFolder = (0, import_react41.useCallback)(
10514
+ const toggleFolder = (0, import_react45.useCallback)(
9966
10515
  (path) => {
9967
10516
  setExpandedPaths((prev) => {
9968
10517
  const next = new Set(prev);
@@ -9983,7 +10532,7 @@ var CodeEditorFileTree = ({
9983
10532
  const isExpanded = expandedPaths.has(node.path);
9984
10533
  const isSelected = node.path === selectedPath;
9985
10534
  if (renderNode) {
9986
- return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(import_react41.default.Fragment, { children: [
10535
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(import_react45.default.Fragment, { children: [
9987
10536
  renderNode({
9988
10537
  node,
9989
10538
  depth,
@@ -10001,8 +10550,8 @@ var CodeEditorFileTree = ({
10001
10550
  isFolder && isExpanded && node.children?.map((child) => renderTreeNode(child, depth + 1))
10002
10551
  ] }, node.path);
10003
10552
  }
10004
- return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(import_react41.default.Fragment, { children: [
10005
- /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
10553
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(import_react45.default.Fragment, { children: [
10554
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsxs)(
10006
10555
  import_material77.ListItemButton,
10007
10556
  {
10008
10557
  selected: isSelected,
@@ -10023,9 +10572,9 @@ var CodeEditorFileTree = ({
10023
10572
  }
10024
10573
  },
10025
10574
  children: [
10026
- isFolder && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_material77.ListItemIcon, { sx: { minWidth: 20 }, children: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_ExpandMore4.default, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_ChevronRight5.default, { sx: { fontSize: 16 } }) }),
10027
- /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_material77.ListItemIcon, { sx: { minWidth: 24 }, children: node.icon ?? (isFolder ? isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_FolderOpen.default, { sx: { fontSize: 16, color: "warning.main" } }) : /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_Folder.default, { sx: { fontSize: 16, color: "warning.main" } }) : /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_InsertDriveFileOutlined.default, { sx: { fontSize: 16, color: "text.secondary" } })) }),
10028
- /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
10575
+ isFolder && /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_material77.ListItemIcon, { sx: { minWidth: 20 }, children: isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_ExpandMore4.default, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_ChevronRight6.default, { sx: { fontSize: 16 } }) }),
10576
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_material77.ListItemIcon, { sx: { minWidth: 24 }, children: node.icon ?? (isFolder ? isExpanded ? /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_FolderOpen.default, { sx: { fontSize: 16, color: "warning.main" } }) : /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_Folder.default, { sx: { fontSize: 16, color: "warning.main" } }) : /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_InsertDriveFileOutlined.default, { sx: { fontSize: 16, color: "text.secondary" } })) }),
10577
+ /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
10029
10578
  import_material77.ListItemText,
10030
10579
  {
10031
10580
  primary: node.name,
@@ -10046,7 +10595,7 @@ var CodeEditorFileTree = ({
10046
10595
  const effectiveStatus = isFolder ? computeFolderStatus(node) : node.status;
10047
10596
  if (!effectiveStatus) return null;
10048
10597
  const cfg = STATUS_CONFIG[effectiveStatus];
10049
- return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
10598
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
10050
10599
  import_material77.Box,
10051
10600
  {
10052
10601
  component: "span",
@@ -10066,10 +10615,10 @@ var CodeEditorFileTree = ({
10066
10615
  ]
10067
10616
  }
10068
10617
  ),
10069
- isFolder && /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_material77.Collapse, { in: isExpanded, timeout: "auto", unmountOnExit: true, children: node.children?.map((child) => renderTreeNode(child, depth + 1)) })
10618
+ isFolder && /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_material77.Collapse, { in: isExpanded, timeout: "auto", unmountOnExit: true, children: node.children?.map((child) => renderTreeNode(child, depth + 1)) })
10070
10619
  ] }, node.path);
10071
10620
  };
10072
- return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
10621
+ return /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(
10073
10622
  import_material77.Box,
10074
10623
  {
10075
10624
  sx: {
@@ -10082,14 +10631,14 @@ var CodeEditorFileTree = ({
10082
10631
  bgcolor: "background.default"
10083
10632
  },
10084
10633
  ...containerProps,
10085
- children: /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_material77.List, { dense: true, disablePadding: true, children: tree.map((node) => renderTreeNode(node, 0)) })
10634
+ children: /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_material77.List, { dense: true, disablePadding: true, children: tree.map((node) => renderTreeNode(node, 0)) })
10086
10635
  }
10087
10636
  );
10088
10637
  };
10089
10638
 
10090
10639
  // src/components/third-party/CodeEditorWorkspace/CodeEditorStatusBar.tsx
10091
10640
  var import_material78 = require("@mui/material");
10092
- var import_jsx_runtime104 = require("react/jsx-runtime");
10641
+ var import_jsx_runtime109 = require("react/jsx-runtime");
10093
10642
  var LANGUAGE_LABELS = {
10094
10643
  typescript: "TypeScript",
10095
10644
  javascript: "JavaScript",
@@ -10113,11 +10662,11 @@ var CodeEditorStatusBar = ({
10113
10662
  containerProps
10114
10663
  }) => {
10115
10664
  if (renderStatusBar) {
10116
- return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(import_jsx_runtime104.Fragment, { children: renderStatusBar({ gitInfo, language, cursorPosition, items }) });
10665
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_jsx_runtime109.Fragment, { children: renderStatusBar({ gitInfo, language, cursorPosition, items }) });
10117
10666
  }
10118
10667
  const leftItems = items?.filter((i) => i.align !== "right") ?? [];
10119
10668
  const rightItems = items?.filter((i) => i.align === "right") ?? [];
10120
- return /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
10669
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
10121
10670
  import_material78.Box,
10122
10671
  {
10123
10672
  sx: {
@@ -10138,8 +10687,8 @@ var CodeEditorStatusBar = ({
10138
10687
  },
10139
10688
  ...containerProps,
10140
10689
  children: [
10141
- /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(import_material78.Box, { sx: { display: "flex", alignItems: "center", gap: 1.5, overflow: "hidden" }, children: [
10142
- gitInfo && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
10690
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_material78.Box, { sx: { display: "flex", alignItems: "center", gap: 1.5, overflow: "hidden" }, children: [
10691
+ gitInfo && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
10143
10692
  import_material78.Tooltip,
10144
10693
  {
10145
10694
  title: [
@@ -10149,7 +10698,7 @@ var CodeEditorStatusBar = ({
10149
10698
  gitInfo.behind != null && `\u2193 ${gitInfo.behind} behind`
10150
10699
  ].filter(Boolean).join(" \xB7 ") || gitInfo.branch,
10151
10700
  enterDelay: 400,
10152
- children: /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
10701
+ children: /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
10153
10702
  import_material78.Box,
10154
10703
  {
10155
10704
  onClick: onBranchClick,
@@ -10162,7 +10711,7 @@ var CodeEditorStatusBar = ({
10162
10711
  "&:hover": onBranchClick ? { opacity: 0.8 } : void 0
10163
10712
  },
10164
10713
  children: [
10165
- /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
10714
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
10166
10715
  "svg",
10167
10716
  {
10168
10717
  width: "14",
@@ -10170,7 +10719,7 @@ var CodeEditorStatusBar = ({
10170
10719
  viewBox: "0 0 16 16",
10171
10720
  fill: "currentColor",
10172
10721
  style: { flexShrink: 0 },
10173
- children: /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
10722
+ children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
10174
10723
  "path",
10175
10724
  {
10176
10725
  fillRule: "evenodd",
@@ -10179,7 +10728,7 @@ var CodeEditorStatusBar = ({
10179
10728
  )
10180
10729
  }
10181
10730
  ),
10182
- /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
10731
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
10183
10732
  import_material78.Typography,
10184
10733
  {
10185
10734
  variant: "caption",
@@ -10196,7 +10745,7 @@ var CodeEditorStatusBar = ({
10196
10745
  children: gitInfo.branch
10197
10746
  }
10198
10747
  ),
10199
- gitInfo.isDirty && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
10748
+ gitInfo.isDirty && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
10200
10749
  import_material78.Box,
10201
10750
  {
10202
10751
  component: "span",
@@ -10209,11 +10758,11 @@ var CodeEditorStatusBar = ({
10209
10758
  }
10210
10759
  }
10211
10760
  ),
10212
- gitInfo.ahead != null && gitInfo.ahead > 0 && /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(import_material78.Typography, { variant: "caption", sx: { fontSize: "inherit", fontFamily: "inherit", color: "inherit", lineHeight: 1, opacity: 0.85 }, children: [
10761
+ gitInfo.ahead != null && gitInfo.ahead > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_material78.Typography, { variant: "caption", sx: { fontSize: "inherit", fontFamily: "inherit", color: "inherit", lineHeight: 1, opacity: 0.85 }, children: [
10213
10762
  "\u2191",
10214
10763
  gitInfo.ahead
10215
10764
  ] }),
10216
- gitInfo.behind != null && gitInfo.behind > 0 && /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(import_material78.Typography, { variant: "caption", sx: { fontSize: "inherit", fontFamily: "inherit", color: "inherit", lineHeight: 1, opacity: 0.85 }, children: [
10765
+ gitInfo.behind != null && gitInfo.behind > 0 && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_material78.Typography, { variant: "caption", sx: { fontSize: "inherit", fontFamily: "inherit", color: "inherit", lineHeight: 1, opacity: 0.85 }, children: [
10217
10766
  "\u2193",
10218
10767
  gitInfo.behind
10219
10768
  ] })
@@ -10222,11 +10771,11 @@ var CodeEditorStatusBar = ({
10222
10771
  )
10223
10772
  }
10224
10773
  ),
10225
- leftItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(StatusBarItemElement, { item }, item.id))
10774
+ leftItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(StatusBarItemElement, { item }, item.id))
10226
10775
  ] }),
10227
- /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(import_material78.Box, { sx: { display: "flex", alignItems: "center", gap: 1.5, overflow: "hidden" }, children: [
10228
- rightItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(StatusBarItemElement, { item }, item.id)),
10229
- cursorPosition && /* @__PURE__ */ (0, import_jsx_runtime104.jsxs)(
10776
+ /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(import_material78.Box, { sx: { display: "flex", alignItems: "center", gap: 1.5, overflow: "hidden" }, children: [
10777
+ rightItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(StatusBarItemElement, { item }, item.id)),
10778
+ cursorPosition && /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
10230
10779
  import_material78.Typography,
10231
10780
  {
10232
10781
  variant: "caption",
@@ -10239,7 +10788,7 @@ var CodeEditorStatusBar = ({
10239
10788
  ]
10240
10789
  }
10241
10790
  ),
10242
- language && /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
10791
+ language && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
10243
10792
  import_material78.Typography,
10244
10793
  {
10245
10794
  variant: "caption",
@@ -10253,7 +10802,7 @@ var CodeEditorStatusBar = ({
10253
10802
  );
10254
10803
  };
10255
10804
  var StatusBarItemElement = ({ item }) => {
10256
- const inner = /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
10805
+ const inner = /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
10257
10806
  import_material78.Box,
10258
10807
  {
10259
10808
  onClick: item.onClick,
@@ -10265,7 +10814,7 @@ var StatusBarItemElement = ({ item }) => {
10265
10814
  whiteSpace: "nowrap",
10266
10815
  "&:hover": item.onClick ? { opacity: 0.8 } : void 0
10267
10816
  },
10268
- children: typeof item.content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(
10817
+ children: typeof item.content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
10269
10818
  import_material78.Typography,
10270
10819
  {
10271
10820
  variant: "caption",
@@ -10276,20 +10825,20 @@ var StatusBarItemElement = ({ item }) => {
10276
10825
  }
10277
10826
  );
10278
10827
  if (item.tooltip) {
10279
- return /* @__PURE__ */ (0, import_jsx_runtime104.jsx)(import_material78.Tooltip, { title: item.tooltip, enterDelay: 400, children: inner });
10828
+ return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_material78.Tooltip, { title: item.tooltip, enterDelay: 400, children: inner });
10280
10829
  }
10281
10830
  return inner;
10282
10831
  };
10283
10832
 
10284
10833
  // src/components/third-party/CodeEditorWorkspace/CodeEditorWelcomeScreen.tsx
10285
10834
  var import_material79 = require("@mui/material");
10286
- var import_jsx_runtime105 = require("react/jsx-runtime");
10835
+ var import_jsx_runtime110 = require("react/jsx-runtime");
10287
10836
  var CodeEditorWelcomeScreen = ({
10288
10837
  logo,
10289
10838
  children,
10290
10839
  containerProps
10291
10840
  }) => {
10292
- const defaultLogo = /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
10841
+ const defaultLogo = /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
10293
10842
  CereIcon,
10294
10843
  {
10295
10844
  sx: {
@@ -10299,7 +10848,7 @@ var CodeEditorWelcomeScreen = ({
10299
10848
  }
10300
10849
  }
10301
10850
  );
10302
- return /* @__PURE__ */ (0, import_jsx_runtime105.jsxs)(
10851
+ return /* @__PURE__ */ (0, import_jsx_runtime110.jsxs)(
10303
10852
  import_material79.Box,
10304
10853
  {
10305
10854
  sx: {
@@ -10315,7 +10864,7 @@ var CodeEditorWelcomeScreen = ({
10315
10864
  ...containerProps,
10316
10865
  children: [
10317
10866
  logo !== void 0 ? logo : defaultLogo,
10318
- children && /* @__PURE__ */ (0, import_jsx_runtime105.jsx)(
10867
+ children && /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
10319
10868
  import_material79.Box,
10320
10869
  {
10321
10870
  sx: {
@@ -10333,9 +10882,9 @@ var CodeEditorWelcomeScreen = ({
10333
10882
  };
10334
10883
 
10335
10884
  // src/components/third-party/CodeEditorWorkspace/CodeEditorWorkspace.tsx
10336
- var import_react42 = __toESM(require("react"));
10885
+ var import_react46 = __toESM(require("react"));
10337
10886
  var import_material80 = require("@mui/material");
10338
- var import_jsx_runtime106 = require("react/jsx-runtime");
10887
+ var import_jsx_runtime111 = require("react/jsx-runtime");
10339
10888
  var CodeEditorWorkspace = ({
10340
10889
  files,
10341
10890
  initialOpenPaths,
@@ -10369,10 +10918,10 @@ var CodeEditorWorkspace = ({
10369
10918
  onFileChange,
10370
10919
  onValidationChange
10371
10920
  });
10372
- import_react42.default.useEffect(() => {
10921
+ import_react46.default.useEffect(() => {
10373
10922
  onWorkspaceReady?.(workspace);
10374
10923
  }, []);
10375
- import_react42.default.useEffect(() => {
10924
+ import_react46.default.useEffect(() => {
10376
10925
  if (!onSave) return;
10377
10926
  const handleKeyDown = (e) => {
10378
10927
  if ((e.ctrlKey || e.metaKey) && e.key === "s") {
@@ -10400,7 +10949,7 @@ var CodeEditorWorkspace = ({
10400
10949
  onTabSelect: workspace.setActiveFile,
10401
10950
  onTabClose: workspace.closeFile
10402
10951
  };
10403
- const tabsElement = showTabs ? renderTabs ? renderTabs({ ...tabsProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(CodeEditorTabs, { ...tabsProps }) : null;
10952
+ const tabsElement = showTabs ? renderTabs ? renderTabs({ ...tabsProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(CodeEditorTabs, { ...tabsProps }) : null;
10404
10953
  const fileTreeProps = {
10405
10954
  tree: fileTree ?? [],
10406
10955
  selectedPath: workspace.activeFilePath,
@@ -10408,7 +10957,7 @@ var CodeEditorWorkspace = ({
10408
10957
  defaultExpandedPaths,
10409
10958
  width: fileTreeWidth
10410
10959
  };
10411
- const fileTreeElement = hasFileTree ? renderFileTree ? renderFileTree({ ...fileTreeProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(CodeEditorFileTree, { ...fileTreeProps }) : null;
10960
+ const fileTreeElement = hasFileTree ? renderFileTree ? renderFileTree({ ...fileTreeProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(CodeEditorFileTree, { ...fileTreeProps }) : null;
10412
10961
  const statusBarProps = {
10413
10962
  gitInfo,
10414
10963
  language: workspace.activeFile?.language,
@@ -10416,9 +10965,9 @@ var CodeEditorWorkspace = ({
10416
10965
  items: statusBarItems,
10417
10966
  onBranchClick
10418
10967
  };
10419
- const statusBarElement = showStatusBar ? renderStatusBar ? renderStatusBar({ ...statusBarProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(CodeEditorStatusBar, { ...statusBarProps }) : null;
10420
- const welcomeElement = renderWelcomeScreen ? renderWelcomeScreen(workspace) : welcomeScreen !== void 0 ? welcomeScreen : /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(CodeEditorWelcomeScreen, { ...welcomeScreenProps });
10421
- const editorElement = renderEditor ? renderEditor(workspace) : workspace.activeFile ? /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
10968
+ const statusBarElement = showStatusBar ? renderStatusBar ? renderStatusBar({ ...statusBarProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(CodeEditorStatusBar, { ...statusBarProps }) : null;
10969
+ const welcomeElement = renderWelcomeScreen ? renderWelcomeScreen(workspace) : welcomeScreen !== void 0 ? welcomeScreen : /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(CodeEditorWelcomeScreen, { ...welcomeScreenProps });
10970
+ const editorElement = renderEditor ? renderEditor(workspace) : workspace.activeFile ? /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(
10422
10971
  CodeEditor,
10423
10972
  {
10424
10973
  value: workspace.activeFile.value,
@@ -10437,7 +10986,7 @@ var CodeEditorWorkspace = ({
10437
10986
  ...editorProps
10438
10987
  }
10439
10988
  ) : welcomeElement;
10440
- return /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(
10989
+ return /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(
10441
10990
  import_material80.Box,
10442
10991
  {
10443
10992
  sx: {
@@ -10452,9 +11001,9 @@ var CodeEditorWorkspace = ({
10452
11001
  ...containerProps,
10453
11002
  children: [
10454
11003
  fileTreeElement,
10455
- /* @__PURE__ */ (0, import_jsx_runtime106.jsxs)(import_material80.Box, { sx: { flex: 1, display: "flex", flexDirection: "column", minWidth: 0, overflow: "hidden" }, children: [
11004
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsxs)(import_material80.Box, { sx: { flex: 1, display: "flex", flexDirection: "column", minWidth: 0, overflow: "hidden" }, children: [
10456
11005
  tabsElement,
10457
- /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_material80.Box, { sx: { flex: 1, overflow: "hidden" }, children: editorElement }),
11006
+ /* @__PURE__ */ (0, import_jsx_runtime111.jsx)(import_material80.Box, { sx: { flex: 1, overflow: "hidden" }, children: editorElement }),
10458
11007
  statusBarElement
10459
11008
  ] })
10460
11009
  ]
@@ -10484,6 +11033,8 @@ var CodeEditorWorkspace = ({
10484
11033
  CardActions,
10485
11034
  CardContent,
10486
11035
  CardHeader,
11036
+ CardMedia,
11037
+ Carousel,
10487
11038
  CereIcon,
10488
11039
  ChartWidget,
10489
11040
  CheckMarkAnimation,
@@ -10506,6 +11057,7 @@ var CodeEditorWorkspace = ({
10506
11057
  CopyChip,
10507
11058
  DateRangePicker,
10508
11059
  DecentralizedServerIcon,
11060
+ DefinitionRow,
10509
11061
  DeploymentDashboardCard,
10510
11062
  DeploymentDashboardPanel,
10511
11063
  DeploymentDashboardTree,
@@ -10527,7 +11079,9 @@ var CodeEditorWorkspace = ({
10527
11079
  FormControlLabel,
10528
11080
  FormHelperText,
10529
11081
  FormLabel,
11082
+ GRADIENT_PALETTE_COUNT,
10530
11083
  GithubLogoIcon,
11084
+ GradientSurface,
10531
11085
  Grid,
10532
11086
  IDBlock,
10533
11087
  IconButton,
@@ -10555,6 +11109,7 @@ var CodeEditorWorkspace = ({
10555
11109
  OnboardingProvider,
10556
11110
  Pagination,
10557
11111
  Panel,
11112
+ PanelDialog,
10558
11113
  Paper,
10559
11114
  PeriodSelect,
10560
11115
  Progress,
@@ -10565,6 +11120,7 @@ var CodeEditorWorkspace = ({
10565
11120
  RoleBadge,
10566
11121
  ScrollableRow,
10567
11122
  SearchField,
11123
+ SectionRow,
10568
11124
  Selector,
10569
11125
  ServiceSelectorButton,
10570
11126
  ShareIcon,
@@ -10619,6 +11175,7 @@ var CodeEditorWorkspace = ({
10619
11175
  useIsMobile,
10620
11176
  useIsTablet,
10621
11177
  useOnboarding,
11178
+ useSearchHotkeys,
10622
11179
  workflowConnectionColors,
10623
11180
  workflowNodeColors
10624
11181
  });