@cere/cere-design-system 0.0.17 → 0.0.19

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.mjs CHANGED
@@ -62,7 +62,39 @@ var colors = {
62
62
  selected: "rgba(123, 44, 191, 0.1)"
63
63
  }
64
64
  };
65
- var theme = createTheme({
65
+ var deploymentEntityColors = {
66
+ workspace: "#aa44f2",
67
+ stream: "#53b96a",
68
+ deployment: "#eeb510",
69
+ engagement: "#f941e6",
70
+ agent: "#77c3ff"
71
+ };
72
+ var deploymentStatusColors = {
73
+ normal: "#53b96a",
74
+ warning: "#eeb510",
75
+ error: "#ef5059",
76
+ disabled: "#ffffff",
77
+ disabledDim: "#ded8e1"
78
+ };
79
+ var deploymentSurfaceTokens = {
80
+ /** Surface/high background (Figma #fefcff) */
81
+ surfaceHigh: "#fefcff",
82
+ /** Stroke/Outside border (Figma #e6e6e6) */
83
+ strokeOutside: "#e6e6e6",
84
+ /** Default card border (Figma #cdcccd) */
85
+ borderDefault: "#cdcccd",
86
+ /** Primary text (Figma #1d1b20) */
87
+ textPrimary: "#1d1b20",
88
+ /** Secondary/muted text (Figma #818083) */
89
+ textSecondary: "#818083",
90
+ /** Accent blue for workspace border, capacity bar, chevrons (Figma #5865f2) */
91
+ accentBlue: "#5865f2",
92
+ /** Workspace card shadow */
93
+ workspaceShadow: "0px 8px 12px rgba(26, 10, 124, 0.1)",
94
+ /** Hover state for context menu items */
95
+ hoverLight: "#F0F1FF"
96
+ };
97
+ var baseTheme = createTheme({
66
98
  palette: {
67
99
  mode: "light",
68
100
  primary: colors.primary,
@@ -225,6 +257,14 @@ var theme = createTheme({
225
257
  }
226
258
  }
227
259
  });
260
+ var theme = createTheme(baseTheme, {
261
+ palette: {
262
+ deployment: {
263
+ entity: deploymentEntityColors,
264
+ status: deploymentStatusColors
265
+ }
266
+ }
267
+ });
228
268
 
229
269
  // src/animations/CheckMarkAnimation/CheckMarkAnimation.tsx
230
270
  import Lottie from "lottie-react";
@@ -1754,6 +1794,17 @@ var useIsMobile = () => {
1754
1794
  import MuiButton from "@mui/material/Button";
1755
1795
  import { styled } from "@mui/material/styles";
1756
1796
  import { jsx as jsx4 } from "react/jsx-runtime";
1797
+ var BUTTON_SPACING = {
1798
+ borderRadius: "8px",
1799
+ padding: "8px 16px",
1800
+ iconMargin: "8px"
1801
+ };
1802
+ var BUTTON_TYPOGRAPHY = {
1803
+ fontSize: "16px",
1804
+ fontWeight: 500,
1805
+ lineHeight: 1.5,
1806
+ letterSpacing: "0.8px"
1807
+ };
1757
1808
  var StyledPrimaryButton = styled(MuiButton)(() => ({
1758
1809
  backgroundColor: colors.primary.main,
1759
1810
  color: colors.primary.contrastText,
@@ -1768,21 +1819,42 @@ var StyledPrimaryButton = styled(MuiButton)(() => ({
1768
1819
  color: colors.grey[500]
1769
1820
  }
1770
1821
  }));
1822
+ var iconStyles = {
1823
+ "& > *": {
1824
+ fontSize: BUTTON_TYPOGRAPHY.fontSize
1825
+ }
1826
+ };
1771
1827
  var StyledSecondaryButton = styled(MuiButton)(() => ({
1772
- backgroundColor: "transparent",
1773
- color: colors.primary.main,
1774
- border: `1px solid ${colors.primary.main}`,
1828
+ backgroundColor: deploymentSurfaceTokens.surfaceHigh,
1829
+ color: deploymentSurfaceTokens.textPrimary,
1830
+ border: `1px solid ${deploymentSurfaceTokens.strokeOutside}`,
1831
+ borderRadius: BUTTON_SPACING.borderRadius,
1832
+ padding: BUTTON_SPACING.padding,
1833
+ textTransform: "capitalize",
1834
+ letterSpacing: BUTTON_TYPOGRAPHY.letterSpacing,
1835
+ fontSize: BUTTON_TYPOGRAPHY.fontSize,
1836
+ fontWeight: BUTTON_TYPOGRAPHY.fontWeight,
1837
+ lineHeight: BUTTON_TYPOGRAPHY.lineHeight,
1775
1838
  "&:hover": {
1776
1839
  backgroundColor: colors.background.selected,
1777
- borderColor: colors.primary.light
1840
+ borderColor: deploymentSurfaceTokens.strokeOutside
1778
1841
  },
1779
1842
  "&:active": {
1780
1843
  backgroundColor: colors.background.selected,
1781
- borderColor: colors.primary.dark
1844
+ borderColor: deploymentSurfaceTokens.borderDefault
1782
1845
  },
1783
1846
  "&:disabled": {
1784
1847
  borderColor: colors.grey[300],
1785
- color: colors.grey[500]
1848
+ color: colors.grey[500],
1849
+ backgroundColor: colors.grey[50]
1850
+ },
1851
+ "& .MuiButton-startIcon": {
1852
+ marginRight: BUTTON_SPACING.iconMargin,
1853
+ ...iconStyles
1854
+ },
1855
+ "& .MuiButton-endIcon": {
1856
+ marginLeft: BUTTON_SPACING.iconMargin,
1857
+ ...iconStyles
1786
1858
  }
1787
1859
  }));
1788
1860
  var StyledTertiaryButton = styled(MuiButton)(() => ({
@@ -1798,6 +1870,11 @@ var StyledTertiaryButton = styled(MuiButton)(() => ({
1798
1870
  color: colors.grey[500]
1799
1871
  }
1800
1872
  }));
1873
+ var BUTTON_COMPONENTS = {
1874
+ primary: StyledPrimaryButton,
1875
+ secondary: StyledSecondaryButton,
1876
+ tertiary: StyledTertiaryButton
1877
+ };
1801
1878
  var Button = ({
1802
1879
  variant = "primary",
1803
1880
  children,
@@ -1805,21 +1882,13 @@ var Button = ({
1805
1882
  endIcon,
1806
1883
  ...props
1807
1884
  }) => {
1885
+ const ButtonComponent = BUTTON_COMPONENTS[variant];
1808
1886
  const buttonProps = {
1809
1887
  ...props,
1810
1888
  startIcon,
1811
1889
  endIcon
1812
1890
  };
1813
- switch (variant) {
1814
- case "primary":
1815
- return /* @__PURE__ */ jsx4(StyledPrimaryButton, { ...buttonProps, children });
1816
- case "secondary":
1817
- return /* @__PURE__ */ jsx4(StyledSecondaryButton, { ...buttonProps, children });
1818
- case "tertiary":
1819
- return /* @__PURE__ */ jsx4(StyledTertiaryButton, { ...buttonProps, children });
1820
- default:
1821
- return /* @__PURE__ */ jsx4(StyledPrimaryButton, { ...buttonProps, children });
1822
- }
1891
+ return /* @__PURE__ */ jsx4(ButtonComponent, { ...buttonProps, children });
1823
1892
  };
1824
1893
 
1825
1894
  // src/components/buttons/IconButton.tsx
@@ -4927,16 +4996,633 @@ var ListItem4 = ({
4927
4996
  ] });
4928
4997
  };
4929
4998
 
4999
+ // src/components/layout/DeploymentDashboardCard/DeploymentDashboardCard.tsx
5000
+ import {
5001
+ Paper,
5002
+ Box as Box12,
5003
+ Typography as Typography10,
5004
+ IconButton as IconButton8,
5005
+ useTheme as useTheme2,
5006
+ LinearProgress as LinearProgress2
5007
+ } from "@mui/material";
5008
+ import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
5009
+ import ChevronRightIcon2 from "@mui/icons-material/ChevronRight";
5010
+ import ContentCopyIcon from "@mui/icons-material/ContentCopy";
5011
+ import WorkOutlineIcon from "@mui/icons-material/WorkOutline";
5012
+ import WavesIcon from "@mui/icons-material/Waves";
5013
+ import RocketLaunchOutlinedIcon from "@mui/icons-material/RocketLaunchOutlined";
5014
+ import InsertLinkIcon from "@mui/icons-material/InsertLink";
5015
+ import SmartToyOutlinedIcon from "@mui/icons-material/SmartToyOutlined";
5016
+ import { styled as styled28 } from "@mui/material/styles";
5017
+
5018
+ // src/hooks/useControlledExpand.ts
5019
+ import { useState as useState7 } from "react";
5020
+ function useControlledExpand(controlledExpanded, onToggle, defaultExpanded = false) {
5021
+ const [internal, setInternal] = useState7(defaultExpanded);
5022
+ const isControlled = controlledExpanded !== void 0 && onToggle != null;
5023
+ const expanded = isControlled ? controlledExpanded : internal;
5024
+ const toggle = isControlled ? () => onToggle() : () => setInternal((prev) => !prev);
5025
+ return { expanded, toggle };
5026
+ }
5027
+
5028
+ // src/components/layout/DeploymentDashboardCard/DeploymentDashboardCard.tsx
5029
+ import { Fragment as Fragment9, jsx as jsx42, jsxs as jsxs19 } from "react/jsx-runtime";
5030
+ var ENTITY_LABELS = {
5031
+ workspace: "Workspace",
5032
+ stream: "Stream",
5033
+ deployment: "Deployment",
5034
+ engagement: "Engagement",
5035
+ agent: "Agent"
5036
+ };
5037
+ var ENTITY_ICON_SIZE = 16;
5038
+ var ENTITY_ICONS = {
5039
+ workspace: /* @__PURE__ */ jsx42(WorkOutlineIcon, { sx: { fontSize: ENTITY_ICON_SIZE } }),
5040
+ stream: /* @__PURE__ */ jsx42(WavesIcon, { sx: { fontSize: ENTITY_ICON_SIZE } }),
5041
+ deployment: /* @__PURE__ */ jsx42(RocketLaunchOutlinedIcon, { sx: { fontSize: ENTITY_ICON_SIZE } }),
5042
+ engagement: /* @__PURE__ */ jsx42(InsertLinkIcon, { sx: { fontSize: ENTITY_ICON_SIZE } }),
5043
+ agent: /* @__PURE__ */ jsx42(SmartToyOutlinedIcon, { sx: { fontSize: ENTITY_ICON_SIZE } })
5044
+ };
5045
+ var STATUS_DOT_COLORS = {
5046
+ normal: deploymentStatusColors.normal,
5047
+ warning: deploymentStatusColors.warning,
5048
+ error: deploymentStatusColors.error,
5049
+ disabled: deploymentStatusColors.disabledDim
5050
+ };
5051
+ var CHEVRON_SIZE = 16;
5052
+ var ENTITY_CHIP_STYLES = {
5053
+ borderRadius: "12px",
5054
+ borderWidth: "1.5px",
5055
+ padding: { left: 0.75, right: 1, vertical: 0.25 },
5056
+ gap: 0.5
5057
+ };
5058
+ var ENTITY_CHIP_TYPOGRAPHY = {
5059
+ fontSize: "12px",
5060
+ fontWeight: 500,
5061
+ lineHeight: 1.33,
5062
+ letterSpacing: "0.07px"
5063
+ };
5064
+ var StatusDot = styled28(Box12, {
5065
+ shouldForwardProp: (p) => p !== "status"
5066
+ })(({ status }) => ({
5067
+ width: 8,
5068
+ height: 8,
5069
+ borderRadius: "50%",
5070
+ backgroundColor: status ? STATUS_DOT_COLORS[status] ?? "transparent" : "transparent",
5071
+ flexShrink: 0
5072
+ }));
5073
+ var EntityChip = ({ entityType, color }) => /* @__PURE__ */ jsxs19(
5074
+ Box12,
5075
+ {
5076
+ sx: {
5077
+ display: "inline-flex",
5078
+ alignItems: "center",
5079
+ gap: ENTITY_CHIP_STYLES.gap,
5080
+ pl: ENTITY_CHIP_STYLES.padding.left,
5081
+ pr: ENTITY_CHIP_STYLES.padding.right,
5082
+ py: ENTITY_CHIP_STYLES.padding.vertical,
5083
+ borderRadius: ENTITY_CHIP_STYLES.borderRadius,
5084
+ backgroundColor: deploymentSurfaceTokens.surfaceHigh,
5085
+ border: `${ENTITY_CHIP_STYLES.borderWidth} solid ${color}`,
5086
+ flexShrink: 0
5087
+ },
5088
+ children: [
5089
+ /* @__PURE__ */ jsx42(Box12, { sx: { color, display: "flex", alignItems: "center" }, children: ENTITY_ICONS[entityType] }),
5090
+ /* @__PURE__ */ jsx42(
5091
+ Typography10,
5092
+ {
5093
+ variant: "body2",
5094
+ fontWeight: ENTITY_CHIP_TYPOGRAPHY.fontWeight,
5095
+ sx: {
5096
+ color: "black",
5097
+ lineHeight: ENTITY_CHIP_TYPOGRAPHY.lineHeight,
5098
+ fontSize: ENTITY_CHIP_TYPOGRAPHY.fontSize,
5099
+ letterSpacing: ENTITY_CHIP_TYPOGRAPHY.letterSpacing
5100
+ },
5101
+ children: ENTITY_LABELS[entityType]
5102
+ }
5103
+ )
5104
+ ]
5105
+ }
5106
+ );
5107
+ var IdBadge = ({ id, onCopy }) => /* @__PURE__ */ jsxs19(
5108
+ Box12,
5109
+ {
5110
+ sx: {
5111
+ display: "inline-flex",
5112
+ alignItems: "center",
5113
+ gap: 0.5,
5114
+ px: 2,
5115
+ py: 1,
5116
+ borderRadius: "8px",
5117
+ border: `1px solid ${deploymentSurfaceTokens.strokeOutside}`,
5118
+ bgcolor: "white",
5119
+ flexShrink: 0
5120
+ },
5121
+ children: [
5122
+ /* @__PURE__ */ jsxs19(
5123
+ Typography10,
5124
+ {
5125
+ variant: "body2",
5126
+ fontWeight: 500,
5127
+ sx: { color: deploymentSurfaceTokens.textPrimary, whiteSpace: "nowrap" },
5128
+ children: [
5129
+ "ID: ",
5130
+ id
5131
+ ]
5132
+ }
5133
+ ),
5134
+ onCopy && /* @__PURE__ */ jsx42(IconButton8, { size: "small", onClick: onCopy, "aria-label": "Copy ID", sx: { p: 0 }, children: /* @__PURE__ */ jsx42(ContentCopyIcon, { sx: { fontSize: 14, color: deploymentSurfaceTokens.textSecondary } }) })
5135
+ ]
5136
+ }
5137
+ );
5138
+ var CapacityBar = ({ value, indented = false }) => /* @__PURE__ */ jsxs19(Box12, { sx: { pl: indented ? "40px" : 0, pr: "20px", py: 1 }, children: [
5139
+ /* @__PURE__ */ jsxs19(Box12, { sx: { display: "flex", justifyContent: "space-between", mb: 1 }, children: [
5140
+ /* @__PURE__ */ jsx42(Typography10, { variant: "body2", sx: { color: deploymentSurfaceTokens.textPrimary }, children: "Capacity" }),
5141
+ /* @__PURE__ */ jsxs19(Typography10, { variant: "body2", sx: { color: deploymentSurfaceTokens.accentBlue }, children: [
5142
+ value,
5143
+ "%"
5144
+ ] })
5145
+ ] }),
5146
+ /* @__PURE__ */ jsx42(
5147
+ LinearProgress2,
5148
+ {
5149
+ variant: "determinate",
5150
+ value,
5151
+ sx: {
5152
+ height: 4,
5153
+ borderRadius: "20px",
5154
+ backgroundColor: deploymentSurfaceTokens.strokeOutside,
5155
+ "& .MuiLinearProgress-bar": {
5156
+ borderRadius: "20px",
5157
+ backgroundColor: deploymentSurfaceTokens.accentBlue
5158
+ }
5159
+ }
5160
+ }
5161
+ )
5162
+ ] });
5163
+ var getActionButtonStyles = (action) => {
5164
+ const baseStyles = {
5165
+ display: "inline-flex",
5166
+ alignItems: "center",
5167
+ gap: 0.5,
5168
+ cursor: action.onClick ? "pointer" : "default",
5169
+ background: "none",
5170
+ font: "inherit",
5171
+ color: deploymentSurfaceTokens.textPrimary,
5172
+ whiteSpace: "nowrap",
5173
+ "&:hover": action.onClick ? { opacity: 0.7 } : void 0
5174
+ };
5175
+ const variantStyles = action.outlined ? {
5176
+ border: `1px solid ${deploymentSurfaceTokens.strokeOutside}`,
5177
+ borderRadius: "8px",
5178
+ p: 1,
5179
+ bgcolor: "white"
5180
+ } : {
5181
+ border: "none",
5182
+ p: 0
5183
+ };
5184
+ return { ...baseStyles, ...variantStyles };
5185
+ };
5186
+ var CardAction = ({ action }) => /* @__PURE__ */ jsxs19(
5187
+ Box12,
5188
+ {
5189
+ component: action.onClick ? "button" : "span",
5190
+ onClick: action.onClick,
5191
+ sx: getActionButtonStyles(action),
5192
+ children: [
5193
+ action.icon && /* @__PURE__ */ jsx42(Box12, { component: "span", sx: { display: "flex", alignItems: "center" }, children: action.icon }),
5194
+ action.label && /* @__PURE__ */ jsx42(Typography10, { variant: "body2", fontWeight: 500, component: "span", sx: { fontSize: "14px" }, children: action.label })
5195
+ ]
5196
+ }
5197
+ );
5198
+ var CardActionList = ({ actions }) => /* @__PURE__ */ jsx42(Fragment9, { children: actions.map((action) => /* @__PURE__ */ jsx42(CardAction, { action }, action.id)) });
5199
+ var DeploymentDashboardCard = ({
5200
+ entityType,
5201
+ title,
5202
+ id: idDisplay,
5203
+ createdAt,
5204
+ updatedAt,
5205
+ capacity,
5206
+ actions = [],
5207
+ statusIndicator = null,
5208
+ expandable = false,
5209
+ expanded: controlledExpanded,
5210
+ onExpandToggle,
5211
+ onCopyId,
5212
+ className,
5213
+ children
5214
+ }) => {
5215
+ const theme2 = useTheme2();
5216
+ const entityColor = theme2.palette.deployment?.entity?.[entityType] ?? deploymentEntityColors[entityType];
5217
+ const isControlled = expandable && onExpandToggle != null;
5218
+ const { expanded, toggle } = useControlledExpand(
5219
+ isControlled ? controlledExpanded : void 0,
5220
+ isControlled ? onExpandToggle : void 0
5221
+ );
5222
+ const isWorkspace = entityType === "workspace";
5223
+ const isDeployment = entityType === "deployment";
5224
+ const getClampedCapacity = (capacity2) => {
5225
+ if (!isDeployment || capacity2 == null) {
5226
+ return void 0;
5227
+ }
5228
+ return Math.min(100, Math.max(0, capacity2));
5229
+ };
5230
+ const capacityClamped = getClampedCapacity(capacity);
5231
+ return /* @__PURE__ */ jsxs19(
5232
+ Paper,
5233
+ {
5234
+ className,
5235
+ elevation: 0,
5236
+ sx: {
5237
+ border: `1px solid ${isWorkspace ? deploymentSurfaceTokens.accentBlue : deploymentSurfaceTokens.borderDefault}`,
5238
+ borderRadius: isWorkspace ? "4px" : "12px",
5239
+ boxShadow: isWorkspace ? deploymentSurfaceTokens.workspaceShadow : "none",
5240
+ px: 1,
5241
+ py: isDeployment ? 2 : 1,
5242
+ pl: 1,
5243
+ display: "flex",
5244
+ flexDirection: "column",
5245
+ gap: 0
5246
+ },
5247
+ children: [
5248
+ /* @__PURE__ */ jsxs19(
5249
+ Box12,
5250
+ {
5251
+ sx: {
5252
+ display: "flex",
5253
+ justifyContent: "space-between",
5254
+ alignItems: isDeployment ? "flex-start" : "center",
5255
+ width: "100%"
5256
+ },
5257
+ children: [
5258
+ /* @__PURE__ */ jsxs19(Box12, { sx: { display: "flex", flexDirection: "column", gap: 0.5, minWidth: 0 }, children: [
5259
+ /* @__PURE__ */ jsxs19(Box12, { sx: { display: "flex", gap: 1, alignItems: "center" }, children: [
5260
+ expandable ? /* @__PURE__ */ jsx42(
5261
+ IconButton8,
5262
+ {
5263
+ size: "small",
5264
+ onClick: toggle,
5265
+ "aria-label": expanded ? "Collapse" : "Expand",
5266
+ sx: { p: "5px" },
5267
+ children: expanded ? /* @__PURE__ */ jsx42(ExpandMoreIcon, { sx: { fontSize: CHEVRON_SIZE, color: deploymentSurfaceTokens.accentBlue } }) : /* @__PURE__ */ jsx42(ChevronRightIcon2, { sx: { fontSize: CHEVRON_SIZE, color: deploymentSurfaceTokens.accentBlue } })
5268
+ }
5269
+ ) : /* @__PURE__ */ jsx42(Box12, { sx: { width: 26, flexShrink: 0 } }),
5270
+ /* @__PURE__ */ jsx42(EntityChip, { entityType, color: entityColor }),
5271
+ /* @__PURE__ */ jsx42(
5272
+ Typography10,
5273
+ {
5274
+ variant: "subtitle1",
5275
+ fontWeight: 500,
5276
+ noWrap: true,
5277
+ sx: { color: deploymentSurfaceTokens.textPrimary, fontSize: "16px", letterSpacing: "0.08px" },
5278
+ children: title
5279
+ }
5280
+ ),
5281
+ idDisplay != null && /* @__PURE__ */ jsx42(IdBadge, { id: idDisplay, onCopy: onCopyId })
5282
+ ] }),
5283
+ (createdAt != null || updatedAt != null) && /* @__PURE__ */ jsxs19(
5284
+ Box12,
5285
+ {
5286
+ sx: {
5287
+ display: "flex",
5288
+ gap: 2,
5289
+ px: "34px",
5290
+ color: deploymentSurfaceTokens.textSecondary
5291
+ },
5292
+ children: [
5293
+ createdAt != null && /* @__PURE__ */ jsxs19(Typography10, { variant: "body2", sx: { color: "inherit", fontSize: "14px" }, children: [
5294
+ "Created: ",
5295
+ createdAt
5296
+ ] }),
5297
+ updatedAt != null && /* @__PURE__ */ jsxs19(Typography10, { variant: "body2", sx: { color: "inherit", fontSize: "14px" }, children: [
5298
+ "Last Updated: ",
5299
+ updatedAt
5300
+ ] })
5301
+ ]
5302
+ }
5303
+ ),
5304
+ capacityClamped !== void 0 && /* @__PURE__ */ jsx42(CapacityBar, { value: capacityClamped, indented: expandable })
5305
+ ] }),
5306
+ /* @__PURE__ */ jsxs19(Box12, { sx: { display: "flex", gap: 1, alignItems: "center", flexShrink: 0 }, children: [
5307
+ statusIndicator != null && /* @__PURE__ */ jsx42(StatusDot, { status: statusIndicator, "aria-hidden": true }),
5308
+ /* @__PURE__ */ jsx42(CardActionList, { actions })
5309
+ ] })
5310
+ ]
5311
+ }
5312
+ ),
5313
+ children && /* @__PURE__ */ jsx42(Box12, { sx: { mt: 1.5, display: "flex", flexDirection: "column", gap: 1 }, children })
5314
+ ]
5315
+ }
5316
+ );
5317
+ };
5318
+
5319
+ // src/components/layout/DeploymentEntityContextMenu/DeploymentEntityContextMenu.tsx
5320
+ import { Menu as Menu5, Switch as Switch2 } from "@mui/material";
5321
+ import { styled as styled29 } from "@mui/material/styles";
5322
+ import { jsx as jsx43, jsxs as jsxs20 } from "react/jsx-runtime";
5323
+ var StyledMenu2 = styled29(Menu5)({
5324
+ "& .MuiPaper-root": {
5325
+ borderRadius: 10,
5326
+ boxShadow: "0px 4px 12px rgba(0, 0, 0, 0.15)",
5327
+ minWidth: 220,
5328
+ border: "1px solid",
5329
+ borderColor: "grey.200"
5330
+ }
5331
+ });
5332
+ var MenuListWrapper = styled29("div")({
5333
+ "& .MuiList-root": {
5334
+ padding: 8
5335
+ },
5336
+ "& .MuiListItem-root": {
5337
+ borderRadius: 8,
5338
+ marginBottom: 4,
5339
+ "&:hover": {
5340
+ backgroundColor: deploymentSurfaceTokens.hoverLight
5341
+ }
5342
+ }
5343
+ });
5344
+ var DeploymentEntityContextMenu = ({
5345
+ open,
5346
+ anchorEl,
5347
+ onClose,
5348
+ items,
5349
+ enableToggle = false,
5350
+ enableChecked = false,
5351
+ onEnableChange
5352
+ }) => {
5353
+ return /* @__PURE__ */ jsx43(
5354
+ StyledMenu2,
5355
+ {
5356
+ anchorEl,
5357
+ open,
5358
+ onClose,
5359
+ anchorOrigin: { vertical: "bottom", horizontal: "right" },
5360
+ transformOrigin: { vertical: "top", horizontal: "right" },
5361
+ slotProps: { paper: { "aria-label": "Entity context menu" } },
5362
+ children: /* @__PURE__ */ jsx43(MenuListWrapper, { children: /* @__PURE__ */ jsxs20(List6, { disablePadding: true, children: [
5363
+ items.map(
5364
+ (item) => item.type === "toggle" ? /* @__PURE__ */ jsx43(
5365
+ ListItem4,
5366
+ {
5367
+ primary: item.label,
5368
+ icon: item.icon,
5369
+ action: onEnableChange ? /* @__PURE__ */ jsx43(
5370
+ Switch2,
5371
+ {
5372
+ size: "small",
5373
+ checked: enableChecked,
5374
+ onChange: (_, checked) => onEnableChange(checked),
5375
+ color: "success"
5376
+ }
5377
+ ) : void 0,
5378
+ hoverable: true,
5379
+ sx: { cursor: "default" }
5380
+ },
5381
+ item.id
5382
+ ) : /* @__PURE__ */ jsx43(
5383
+ ListItem4,
5384
+ {
5385
+ primary: item.label,
5386
+ icon: item.icon,
5387
+ onClick: () => {
5388
+ item.onClick?.();
5389
+ onClose();
5390
+ },
5391
+ hoverable: true
5392
+ },
5393
+ item.id
5394
+ )
5395
+ ),
5396
+ enableToggle && /* @__PURE__ */ jsx43(
5397
+ ListItem4,
5398
+ {
5399
+ primary: "Enable",
5400
+ action: onEnableChange ? /* @__PURE__ */ jsx43(
5401
+ Switch2,
5402
+ {
5403
+ size: "small",
5404
+ checked: enableChecked,
5405
+ onChange: (_, checked) => onEnableChange(checked),
5406
+ color: "success"
5407
+ }
5408
+ ) : void 0,
5409
+ hoverable: true,
5410
+ sx: { cursor: "default" }
5411
+ }
5412
+ )
5413
+ ] }) })
5414
+ }
5415
+ );
5416
+ };
5417
+
5418
+ // src/components/layout/DeploymentEntityContextMenu/contextMenuItems.tsx
5419
+ import AddCircleOutlineIcon from "@mui/icons-material/AddCircleOutline";
5420
+ import EditIcon from "@mui/icons-material/Edit";
5421
+ import ContentCopyIcon2 from "@mui/icons-material/ContentCopy";
5422
+ import AccountTreeIcon from "@mui/icons-material/AccountTree";
5423
+ import DescriptionIcon from "@mui/icons-material/Description";
5424
+ import SettingsIcon2 from "@mui/icons-material/Settings";
5425
+ import { jsx as jsx44 } from "react/jsx-runtime";
5426
+ var contextMenuItems = {
5427
+ addEngagement: (onClick) => ({
5428
+ id: "add-engagement",
5429
+ label: "Add Engagement",
5430
+ icon: /* @__PURE__ */ jsx44(AddCircleOutlineIcon, { fontSize: "small" }),
5431
+ onClick
5432
+ }),
5433
+ addAgent: (onClick) => ({
5434
+ id: "add-agent",
5435
+ label: "Add Agent",
5436
+ icon: /* @__PURE__ */ jsx44(AddCircleOutlineIcon, { fontSize: "small" }),
5437
+ onClick
5438
+ }),
5439
+ addStream: (onClick) => ({
5440
+ id: "add-stream",
5441
+ label: "Add Stream",
5442
+ icon: /* @__PURE__ */ jsx44(AddCircleOutlineIcon, { fontSize: "small" }),
5443
+ onClick
5444
+ }),
5445
+ edit: (onClick) => ({
5446
+ id: "edit",
5447
+ label: "Edit",
5448
+ icon: /* @__PURE__ */ jsx44(EditIcon, { fontSize: "small" }),
5449
+ onClick
5450
+ }),
5451
+ copyId: (onClick) => ({
5452
+ id: "copy-id",
5453
+ label: "Copy ID",
5454
+ icon: /* @__PURE__ */ jsx44(ContentCopyIcon2, { fontSize: "small" }),
5455
+ onClick
5456
+ }),
5457
+ agentFlowVisualization: (onClick) => ({
5458
+ id: "agent-flow",
5459
+ label: "Agent Flow Visualization",
5460
+ icon: /* @__PURE__ */ jsx44(AccountTreeIcon, { fontSize: "small" }),
5461
+ onClick
5462
+ }),
5463
+ viewLogs: (onClick) => ({
5464
+ id: "view-logs",
5465
+ label: "View Logs",
5466
+ icon: /* @__PURE__ */ jsx44(DescriptionIcon, { fontSize: "small" }),
5467
+ onClick
5468
+ }),
5469
+ settings: (onClick) => ({
5470
+ id: "settings",
5471
+ label: "Settings",
5472
+ icon: /* @__PURE__ */ jsx44(SettingsIcon2, { fontSize: "small" }),
5473
+ onClick
5474
+ })
5475
+ };
5476
+
5477
+ // src/components/layout/DeploymentDashboardTree/DeploymentDashboardTree.tsx
5478
+ import { Box as Box13 } from "@mui/material";
5479
+ import { styled as styled30, alpha } from "@mui/material/styles";
5480
+ import { jsx as jsx45, jsxs as jsxs21 } from "react/jsx-runtime";
5481
+ var TREE_SP = {
5482
+ /** Vertical gap between sibling rows (Figma S / sp-8) */
5483
+ rowGap: 8,
5484
+ /** Gap between rail and children column (Figma sp-12) */
5485
+ railGap: 12,
5486
+ /** Rail width (Figma) */
5487
+ railWidth: 4,
5488
+ /** Total horizontal indent per level = railWidth + railGap (Figma M = 16) */
5489
+ indentPerLevel: 4 + 12
5490
+ };
5491
+ var RAIL_OPACITY = {
5492
+ workspace: 0.5,
5493
+ stream: 0.5,
5494
+ deployment: 0.4,
5495
+ engagement: 0.4,
5496
+ agent: 0.4
5497
+ };
5498
+ var Rail = styled30(Box13, {
5499
+ shouldForwardProp: (p) => p !== "railColor"
5500
+ })(({ railColor }) => ({
5501
+ width: TREE_SP.railWidth,
5502
+ borderRadius: TREE_SP.railWidth / 2,
5503
+ backgroundColor: railColor,
5504
+ flexShrink: 0,
5505
+ alignSelf: "stretch"
5506
+ }));
5507
+ var TreeRow = ({ node, depth, onExpandToggle, onCopyId, renderCard }) => {
5508
+ const hasChildren = Boolean(node.children && node.children.length > 0);
5509
+ const { expanded, toggle } = useControlledExpand(
5510
+ onExpandToggle != null ? node.expanded : void 0,
5511
+ onExpandToggle ? () => onExpandToggle(node.id) : void 0,
5512
+ node.expanded ?? false
5513
+ );
5514
+ const entityColor = deploymentEntityColors[node.entityType] ?? deploymentEntityColors.workspace;
5515
+ const railOpacity = RAIL_OPACITY[node.entityType] ?? 0.5;
5516
+ const railColor = alpha(entityColor, railOpacity);
5517
+ const renderedChildren = hasChildren && expanded ? /* @__PURE__ */ jsxs21(Box13, { sx: { display: "flex", gap: `${TREE_SP.railGap}px` }, children: [
5518
+ /* @__PURE__ */ jsx45(Rail, { railColor, "aria-hidden": true, "data-rail": true }),
5519
+ /* @__PURE__ */ jsx45(
5520
+ Box13,
5521
+ {
5522
+ role: "group",
5523
+ sx: {
5524
+ flex: 1,
5525
+ minWidth: 0,
5526
+ display: "flex",
5527
+ flexDirection: "column",
5528
+ gap: `${TREE_SP.rowGap}px`
5529
+ },
5530
+ children: node.children.map((child) => /* @__PURE__ */ jsx45(
5531
+ TreeRow,
5532
+ {
5533
+ node: child,
5534
+ depth: depth + 1,
5535
+ onExpandToggle,
5536
+ onCopyId,
5537
+ renderCard
5538
+ },
5539
+ child.id
5540
+ ))
5541
+ }
5542
+ )
5543
+ ] }) : null;
5544
+ const cardContent = renderCard?.(node) ?? /* @__PURE__ */ jsx45(
5545
+ DeploymentDashboardCard,
5546
+ {
5547
+ entityType: node.entityType,
5548
+ title: node.title,
5549
+ id: node.idDisplay,
5550
+ createdAt: node.createdAt,
5551
+ updatedAt: node.updatedAt,
5552
+ capacity: node.capacity,
5553
+ actions: node.actions,
5554
+ statusIndicator: node.statusIndicator,
5555
+ expandable: hasChildren,
5556
+ expanded,
5557
+ onExpandToggle: hasChildren ? toggle : void 0,
5558
+ onCopyId: onCopyId && node.idDisplay ? () => onCopyId(node.id) : void 0,
5559
+ children: renderedChildren
5560
+ }
5561
+ );
5562
+ return /* @__PURE__ */ jsx45(Box13, { role: "treeitem", children: cardContent });
5563
+ };
5564
+ var DeploymentDashboardTree = ({
5565
+ nodes,
5566
+ onExpandToggle,
5567
+ onCopyId,
5568
+ renderCard
5569
+ }) => {
5570
+ return /* @__PURE__ */ jsx45(
5571
+ Box13,
5572
+ {
5573
+ role: "tree",
5574
+ sx: {
5575
+ display: "flex",
5576
+ flexDirection: "column",
5577
+ gap: `${TREE_SP.rowGap}px`,
5578
+ p: `${TREE_SP.rowGap}px`
5579
+ },
5580
+ children: nodes.map((node) => /* @__PURE__ */ jsx45(
5581
+ TreeRow,
5582
+ {
5583
+ node,
5584
+ depth: 0,
5585
+ onExpandToggle,
5586
+ onCopyId,
5587
+ renderCard
5588
+ },
5589
+ node.id
5590
+ ))
5591
+ }
5592
+ );
5593
+ };
5594
+
5595
+ // src/components/layout/DeploymentDashboardPanel/DeploymentDashboardPanel.tsx
5596
+ import { Box as Box14 } from "@mui/material";
5597
+ import { styled as styled31 } from "@mui/material/styles";
5598
+ import { jsx as jsx46 } from "react/jsx-runtime";
5599
+ var PANEL_RADIUS = 12;
5600
+ var PANEL_SHADOW = "0px 1px 3px rgba(0, 0, 0, 0.08)";
5601
+ var StyledPanel = styled31(Box14)({
5602
+ backgroundColor: deploymentSurfaceTokens.surfaceHigh,
5603
+ border: `1px solid ${deploymentSurfaceTokens.strokeOutside}`,
5604
+ borderRadius: PANEL_RADIUS,
5605
+ boxShadow: PANEL_SHADOW,
5606
+ overflow: "hidden"
5607
+ });
5608
+ var DeploymentDashboardPanel = ({
5609
+ children,
5610
+ className,
5611
+ padding = 2
5612
+ }) => {
5613
+ return /* @__PURE__ */ jsx46(StyledPanel, { className, sx: { p: padding }, children });
5614
+ };
5615
+
4930
5616
  // src/components/layout/Avatar.tsx
4931
5617
  import MuiAvatar from "@mui/material/Avatar";
4932
- import { styled as styled28 } from "@mui/material/styles";
4933
- import { jsx as jsx42 } from "react/jsx-runtime";
5618
+ import { styled as styled32 } from "@mui/material/styles";
5619
+ import { jsx as jsx47 } from "react/jsx-runtime";
4934
5620
  var sizeMap = {
4935
5621
  small: 32,
4936
5622
  medium: 40,
4937
5623
  large: 56
4938
5624
  };
4939
- var StyledAvatar = styled28(MuiAvatar, {
5625
+ var StyledAvatar = styled32(MuiAvatar, {
4940
5626
  shouldForwardProp: (prop) => prop !== "avatarSize"
4941
5627
  })(({ avatarSize = 40 }) => ({
4942
5628
  width: avatarSize,
@@ -4947,7 +5633,7 @@ var StyledAvatar = styled28(MuiAvatar, {
4947
5633
  }));
4948
5634
  var Avatar5 = ({ size: size3 = "medium", ...props }) => {
4949
5635
  const avatarSize = typeof size3 === "number" ? size3 : sizeMap[size3];
4950
- return /* @__PURE__ */ jsx42(StyledAvatar, { avatarSize, ...props });
5636
+ return /* @__PURE__ */ jsx47(StyledAvatar, { avatarSize, ...props });
4951
5637
  };
4952
5638
 
4953
5639
  // src/components/layout/Table.tsx
@@ -4960,13 +5646,13 @@ import {
4960
5646
  TableRow,
4961
5647
  TableSortLabel
4962
5648
  } from "@mui/material";
4963
- import { styled as styled29 } from "@mui/material/styles";
4964
- import { jsx as jsx43 } from "react/jsx-runtime";
4965
- var StyledTableContainer = styled29(TableContainer)({
5649
+ import { styled as styled33 } from "@mui/material/styles";
5650
+ import { jsx as jsx48 } from "react/jsx-runtime";
5651
+ var StyledTableContainer = styled33(TableContainer)({
4966
5652
  borderRadius: 8,
4967
5653
  border: `1px solid ${colors.grey[200]}`
4968
5654
  });
4969
- var StyledTableHead = styled29(TableHead)({
5655
+ var StyledTableHead = styled33(TableHead)({
4970
5656
  backgroundColor: colors.grey[50],
4971
5657
  "& .MuiTableCell-head": {
4972
5658
  fontWeight: 600,
@@ -4974,7 +5660,7 @@ var StyledTableHead = styled29(TableHead)({
4974
5660
  }
4975
5661
  });
4976
5662
  var Table = ({ stickyHeader = false, children, ...props }) => {
4977
- return /* @__PURE__ */ jsx43(StyledTableContainer, { children: /* @__PURE__ */ jsx43(MuiTable, { stickyHeader, ...props, children }) });
5663
+ return /* @__PURE__ */ jsx48(StyledTableContainer, { children: /* @__PURE__ */ jsx48(MuiTable, { stickyHeader, ...props, children }) });
4978
5664
  };
4979
5665
  var TableHeader = ({
4980
5666
  columns,
@@ -4982,7 +5668,7 @@ var TableHeader = ({
4982
5668
  order = "asc",
4983
5669
  onSort
4984
5670
  }) => {
4985
- return /* @__PURE__ */ jsx43(StyledTableHead, { children: /* @__PURE__ */ jsx43(TableRow, { children: columns.map((column) => /* @__PURE__ */ jsx43(TableCell, { align: column.align || "left", children: column.sortable && onSort ? /* @__PURE__ */ jsx43(
5671
+ return /* @__PURE__ */ jsx48(StyledTableHead, { children: /* @__PURE__ */ jsx48(TableRow, { children: columns.map((column) => /* @__PURE__ */ jsx48(TableCell, { align: column.align || "left", children: column.sortable && onSort ? /* @__PURE__ */ jsx48(
4986
5672
  TableSortLabel,
4987
5673
  {
4988
5674
  active: orderBy === column.id,
@@ -4999,10 +5685,10 @@ import { Grid2 } from "@mui/material";
4999
5685
  // src/components/layout/Breadcrumbs.tsx
5000
5686
  import MuiBreadcrumbs from "@mui/material/Breadcrumbs";
5001
5687
  import Link4 from "@mui/material/Link";
5002
- import Typography10 from "@mui/material/Typography";
5003
- import { styled as styled30 } from "@mui/material/styles";
5004
- import { jsx as jsx44 } from "react/jsx-runtime";
5005
- var StyledBreadcrumbs = styled30(MuiBreadcrumbs)({
5688
+ import Typography11 from "@mui/material/Typography";
5689
+ import { styled as styled34 } from "@mui/material/styles";
5690
+ import { jsx as jsx49 } from "react/jsx-runtime";
5691
+ var StyledBreadcrumbs = styled34(MuiBreadcrumbs)({
5006
5692
  "& .MuiBreadcrumbs-ol": {
5007
5693
  flexWrap: "nowrap"
5008
5694
  },
@@ -5010,7 +5696,7 @@ var StyledBreadcrumbs = styled30(MuiBreadcrumbs)({
5010
5696
  color: colors.text.secondary
5011
5697
  }
5012
5698
  });
5013
- var StyledLink2 = styled30(Link4)({
5699
+ var StyledLink2 = styled34(Link4)({
5014
5700
  color: colors.primary.main,
5015
5701
  textDecoration: "none",
5016
5702
  "&:hover": {
@@ -5018,12 +5704,12 @@ var StyledLink2 = styled30(Link4)({
5018
5704
  }
5019
5705
  });
5020
5706
  var Breadcrumbs = ({ items, ...props }) => {
5021
- return /* @__PURE__ */ jsx44(StyledBreadcrumbs, { ...props, children: items.map((item, index) => {
5707
+ return /* @__PURE__ */ jsx49(StyledBreadcrumbs, { ...props, children: items.map((item, index) => {
5022
5708
  const isLast = index === items.length - 1;
5023
5709
  if (isLast || !item.href && !item.onClick) {
5024
- return /* @__PURE__ */ jsx44(Typography10, { color: "text.primary", children: item.label }, index);
5710
+ return /* @__PURE__ */ jsx49(Typography11, { color: "text.primary", children: item.label }, index);
5025
5711
  }
5026
- return /* @__PURE__ */ jsx44(
5712
+ return /* @__PURE__ */ jsx49(
5027
5713
  StyledLink2,
5028
5714
  {
5029
5715
  href: item.href,
@@ -5046,10 +5732,10 @@ import {
5046
5732
  AccordionSummary,
5047
5733
  AccordionDetails
5048
5734
  } from "@mui/material";
5049
- import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
5050
- import { styled as styled31 } from "@mui/material/styles";
5051
- import { jsx as jsx45, jsxs as jsxs19 } from "react/jsx-runtime";
5052
- var StyledAccordion = styled31(MuiAccordion)({
5735
+ import ExpandMoreIcon2 from "@mui/icons-material/ExpandMore";
5736
+ import { styled as styled35 } from "@mui/material/styles";
5737
+ import { jsx as jsx50, jsxs as jsxs22 } from "react/jsx-runtime";
5738
+ var StyledAccordion = styled35(MuiAccordion)({
5053
5739
  borderRadius: 8,
5054
5740
  boxShadow: "none",
5055
5741
  border: `1px solid ${colors.grey[200]}`,
@@ -5060,7 +5746,7 @@ var StyledAccordion = styled31(MuiAccordion)({
5060
5746
  margin: 0
5061
5747
  }
5062
5748
  });
5063
- var StyledAccordionSummary = styled31(AccordionSummary)({
5749
+ var StyledAccordionSummary = styled35(AccordionSummary)({
5064
5750
  backgroundColor: colors.grey[50],
5065
5751
  borderRadius: "8px 8px 0 0",
5066
5752
  "&.Mui-expanded": {
@@ -5070,7 +5756,7 @@ var StyledAccordionSummary = styled31(AccordionSummary)({
5070
5756
  margin: "12px 0"
5071
5757
  }
5072
5758
  });
5073
- var StyledAccordionDetails = styled31(AccordionDetails)({
5759
+ var StyledAccordionDetails = styled35(AccordionDetails)({
5074
5760
  padding: "16px"
5075
5761
  });
5076
5762
  var Accordion = ({
@@ -5079,17 +5765,17 @@ var Accordion = ({
5079
5765
  defaultExpanded = false,
5080
5766
  ...props
5081
5767
  }) => {
5082
- return /* @__PURE__ */ jsxs19(StyledAccordion, { defaultExpanded, ...props, children: [
5083
- /* @__PURE__ */ jsx45(StyledAccordionSummary, { expandIcon: /* @__PURE__ */ jsx45(ExpandMoreIcon, {}), children: title }),
5084
- /* @__PURE__ */ jsx45(StyledAccordionDetails, { children })
5768
+ return /* @__PURE__ */ jsxs22(StyledAccordion, { defaultExpanded, ...props, children: [
5769
+ /* @__PURE__ */ jsx50(StyledAccordionSummary, { expandIcon: /* @__PURE__ */ jsx50(ExpandMoreIcon2, {}), children: title }),
5770
+ /* @__PURE__ */ jsx50(StyledAccordionDetails, { children })
5085
5771
  ] });
5086
5772
  };
5087
5773
 
5088
5774
  // src/components/layout/Paper.tsx
5089
5775
  import MuiPaper from "@mui/material/Paper";
5090
- import { styled as styled32 } from "@mui/material/styles";
5091
- import { jsx as jsx46 } from "react/jsx-runtime";
5092
- var StyledPaper = styled32(MuiPaper)({
5776
+ import { styled as styled36 } from "@mui/material/styles";
5777
+ import { jsx as jsx51 } from "react/jsx-runtime";
5778
+ var StyledPaper = styled36(MuiPaper)({
5093
5779
  borderRadius: 8,
5094
5780
  "&.MuiPaper-elevation": {
5095
5781
  boxShadow: "0px 2px 8px rgba(0, 0, 0, 0.08)"
@@ -5099,29 +5785,29 @@ var StyledPaper = styled32(MuiPaper)({
5099
5785
  boxShadow: "none"
5100
5786
  }
5101
5787
  });
5102
- var Paper = ({ variant = "elevation", ...props }) => {
5103
- return /* @__PURE__ */ jsx46(StyledPaper, { variant, elevation: variant === "elevation" ? 1 : 0, ...props });
5788
+ var Paper2 = ({ variant = "elevation", ...props }) => {
5789
+ return /* @__PURE__ */ jsx51(StyledPaper, { variant, elevation: variant === "elevation" ? 1 : 0, ...props });
5104
5790
  };
5105
5791
 
5106
5792
  // src/components/layout/Divider.tsx
5107
5793
  import MuiDivider from "@mui/material/Divider";
5108
- import { styled as styled33 } from "@mui/material/styles";
5109
- import { jsx as jsx47 } from "react/jsx-runtime";
5110
- var StyledDivider = styled33(MuiDivider)({
5794
+ import { styled as styled37 } from "@mui/material/styles";
5795
+ import { jsx as jsx52 } from "react/jsx-runtime";
5796
+ var StyledDivider = styled37(MuiDivider)({
5111
5797
  borderColor: colors.grey[200]
5112
5798
  });
5113
5799
  var Divider4 = ({ ...props }) => {
5114
- return /* @__PURE__ */ jsx47(StyledDivider, { ...props });
5800
+ return /* @__PURE__ */ jsx52(StyledDivider, { ...props });
5115
5801
  };
5116
5802
 
5117
5803
  // src/components/layout/Stack.tsx
5118
5804
  import { Stack as Stack3 } from "@mui/material";
5119
5805
 
5120
5806
  // src/components/layout/Box.tsx
5121
- import { Box as Box12 } from "@mui/material";
5807
+ import { Box as Box15 } from "@mui/material";
5122
5808
 
5123
5809
  // src/components/layout/Typography.tsx
5124
- import { Typography as Typography11 } from "@mui/material";
5810
+ import { Typography as Typography12 } from "@mui/material";
5125
5811
 
5126
5812
  // src/components/layout/Container.tsx
5127
5813
  import { Container as Container2 } from "@mui/material";
@@ -5131,9 +5817,9 @@ import {
5131
5817
  AppBar as MuiAppBar,
5132
5818
  Toolbar
5133
5819
  } from "@mui/material";
5134
- import { styled as styled34 } from "@mui/material/styles";
5135
- import { jsx as jsx48 } from "react/jsx-runtime";
5136
- var StyledAppBar = styled34(MuiAppBar, {
5820
+ import { styled as styled38 } from "@mui/material/styles";
5821
+ import { jsx as jsx53 } from "react/jsx-runtime";
5822
+ var StyledAppBar = styled38(MuiAppBar, {
5137
5823
  shouldForwardProp: (prop) => prop !== "appBarHeight"
5138
5824
  })(({ appBarHeight = 64 }) => ({
5139
5825
  backgroundColor: colors.background.paper,
@@ -5142,23 +5828,23 @@ var StyledAppBar = styled34(MuiAppBar, {
5142
5828
  height: appBarHeight,
5143
5829
  zIndex: 1300
5144
5830
  }));
5145
- var StyledToolbar = styled34(Toolbar)(({ theme: theme2 }) => ({
5831
+ var StyledToolbar = styled38(Toolbar)(({ theme: theme2 }) => ({
5146
5832
  height: "100%",
5147
5833
  paddingLeft: theme2.spacing(2),
5148
5834
  paddingRight: theme2.spacing(2),
5149
5835
  gap: theme2.spacing(2)
5150
5836
  }));
5151
5837
  var AppBar = ({ height = 64, children, ...props }) => {
5152
- return /* @__PURE__ */ jsx48(StyledAppBar, { position: "fixed", appBarHeight: height, ...props, children: /* @__PURE__ */ jsx48(StyledToolbar, { children }) });
5838
+ return /* @__PURE__ */ jsx53(StyledAppBar, { position: "fixed", appBarHeight: height, ...props, children: /* @__PURE__ */ jsx53(StyledToolbar, { children }) });
5153
5839
  };
5154
5840
 
5155
5841
  // src/components/layout/Collapse.tsx
5156
5842
  import {
5157
5843
  Collapse as MuiCollapse
5158
5844
  } from "@mui/material";
5159
- import { jsx as jsx49 } from "react/jsx-runtime";
5845
+ import { jsx as jsx54 } from "react/jsx-runtime";
5160
5846
  var Collapse = (props) => {
5161
- return /* @__PURE__ */ jsx49(MuiCollapse, { ...props });
5847
+ return /* @__PURE__ */ jsx54(MuiCollapse, { ...props });
5162
5848
  };
5163
5849
 
5164
5850
  // src/components/feedback/Alert.tsx
@@ -5166,9 +5852,9 @@ import React10 from "react";
5166
5852
  import MuiAlert from "@mui/material/Alert";
5167
5853
  import { AlertTitle as MuiAlertTitle } from "@mui/material";
5168
5854
  import MuiSnackbar from "@mui/material/Snackbar";
5169
- import { styled as styled35 } from "@mui/material/styles";
5170
- import { jsx as jsx50, jsxs as jsxs20 } from "react/jsx-runtime";
5171
- var StyledAlert = styled35(MuiAlert)({
5855
+ import { styled as styled39 } from "@mui/material/styles";
5856
+ import { jsx as jsx55, jsxs as jsxs23 } from "react/jsx-runtime";
5857
+ var StyledAlert = styled39(MuiAlert)({
5172
5858
  borderRadius: 8,
5173
5859
  "&.MuiAlert-filled": {
5174
5860
  borderRadius: 8
@@ -5180,12 +5866,12 @@ var Alert2 = ({
5180
5866
  children,
5181
5867
  ...props
5182
5868
  }) => {
5183
- return /* @__PURE__ */ jsxs20(StyledAlert, { severity, ...props, children: [
5184
- title && /* @__PURE__ */ jsx50(MuiAlertTitle, { children: title }),
5869
+ return /* @__PURE__ */ jsxs23(StyledAlert, { severity, ...props, children: [
5870
+ title && /* @__PURE__ */ jsx55(MuiAlertTitle, { children: title }),
5185
5871
  children
5186
5872
  ] });
5187
5873
  };
5188
- var StyledSnackbar = styled35(MuiSnackbar)({});
5874
+ var StyledSnackbar = styled39(MuiSnackbar)({});
5189
5875
  var Snackbar2 = ({
5190
5876
  message,
5191
5877
  severity = "info",
@@ -5203,7 +5889,7 @@ var Snackbar2 = ({
5203
5889
  }
5204
5890
  onClose?.();
5205
5891
  };
5206
- const content = children || (message ? /* @__PURE__ */ jsx50(
5892
+ const content = children || (message ? /* @__PURE__ */ jsx55(
5207
5893
  Alert2,
5208
5894
  {
5209
5895
  onClose: onClose ? handleClose : void 0,
@@ -5229,7 +5915,7 @@ var Snackbar2 = ({
5229
5915
  }
5230
5916
  );
5231
5917
  NoTransition.displayName = "NoTransition";
5232
- return /* @__PURE__ */ jsx50(
5918
+ return /* @__PURE__ */ jsx55(
5233
5919
  StyledSnackbar,
5234
5920
  {
5235
5921
  anchorOrigin,
@@ -5249,16 +5935,16 @@ var Snackbar2 = ({
5249
5935
  };
5250
5936
 
5251
5937
  // src/components/feedback/EmptyState.tsx
5252
- import { Box as Box13, Typography as Typography12 } from "@mui/material";
5253
- import { jsx as jsx51, jsxs as jsxs21 } from "react/jsx-runtime";
5938
+ import { Box as Box16, Typography as Typography13 } from "@mui/material";
5939
+ import { jsx as jsx56, jsxs as jsxs24 } from "react/jsx-runtime";
5254
5940
  var EmptyState = ({
5255
5941
  title = "No items found",
5256
5942
  description,
5257
5943
  icon,
5258
5944
  action
5259
5945
  }) => {
5260
- return /* @__PURE__ */ jsxs21(
5261
- Box13,
5946
+ return /* @__PURE__ */ jsxs24(
5947
+ Box16,
5262
5948
  {
5263
5949
  sx: {
5264
5950
  display: "flex",
@@ -5270,8 +5956,8 @@ var EmptyState = ({
5270
5956
  minHeight: 200
5271
5957
  },
5272
5958
  children: [
5273
- icon && /* @__PURE__ */ jsx51(
5274
- Box13,
5959
+ icon && /* @__PURE__ */ jsx56(
5960
+ Box16,
5275
5961
  {
5276
5962
  sx: {
5277
5963
  color: colors.text.secondary,
@@ -5281,24 +5967,24 @@ var EmptyState = ({
5281
5967
  children: icon
5282
5968
  }
5283
5969
  ),
5284
- /* @__PURE__ */ jsx51(Typography12, { variant: "h6", sx: { marginBottom: 1, color: colors.text.primary }, children: title }),
5285
- description && /* @__PURE__ */ jsx51(Typography12, { variant: "body2", sx: { color: colors.text.secondary, marginBottom: 3 }, children: description }),
5286
- action && /* @__PURE__ */ jsx51(Box13, { children: action })
5970
+ /* @__PURE__ */ jsx56(Typography13, { variant: "h6", sx: { marginBottom: 1, color: colors.text.primary }, children: title }),
5971
+ description && /* @__PURE__ */ jsx56(Typography13, { variant: "body2", sx: { color: colors.text.secondary, marginBottom: 3 }, children: description }),
5972
+ action && /* @__PURE__ */ jsx56(Box16, { children: action })
5287
5973
  ]
5288
5974
  }
5289
5975
  );
5290
5976
  };
5291
5977
 
5292
5978
  // src/components/feedback/Loading.tsx
5293
- import { Box as Box14, CircularProgress as CircularProgress4, Typography as Typography13 } from "@mui/material";
5294
- import { jsx as jsx52, jsxs as jsxs22 } from "react/jsx-runtime";
5979
+ import { Box as Box17, CircularProgress as CircularProgress4, Typography as Typography14 } from "@mui/material";
5980
+ import { jsx as jsx57, jsxs as jsxs25 } from "react/jsx-runtime";
5295
5981
  var Loading = ({
5296
5982
  message = "Loading...",
5297
5983
  size: size3 = 40,
5298
5984
  fullScreen = false
5299
5985
  }) => {
5300
- const content = /* @__PURE__ */ jsxs22(
5301
- Box14,
5986
+ const content = /* @__PURE__ */ jsxs25(
5987
+ Box17,
5302
5988
  {
5303
5989
  sx: {
5304
5990
  display: "flex",
@@ -5320,8 +6006,8 @@ var Loading = ({
5320
6006
  }
5321
6007
  },
5322
6008
  children: [
5323
- /* @__PURE__ */ jsx52(CircularProgress4, { size: size3, thickness: 4 }),
5324
- message && /* @__PURE__ */ jsx52(Typography13, { variant: "body2", color: "text.secondary", children: message })
6009
+ /* @__PURE__ */ jsx57(CircularProgress4, { size: size3, thickness: 4 }),
6010
+ message && /* @__PURE__ */ jsx57(Typography14, { variant: "body2", color: "text.secondary", children: message })
5325
6011
  ]
5326
6012
  }
5327
6013
  );
@@ -5329,15 +6015,15 @@ var Loading = ({
5329
6015
  };
5330
6016
 
5331
6017
  // src/components/feedback/AppLoading.tsx
5332
- import { Box as Box15, CircularProgress as CircularProgress5, Typography as Typography14 } from "@mui/material";
5333
- import { jsx as jsx53, jsxs as jsxs23 } from "react/jsx-runtime";
6018
+ import { Box as Box18, CircularProgress as CircularProgress5, Typography as Typography15 } from "@mui/material";
6019
+ import { jsx as jsx58, jsxs as jsxs26 } from "react/jsx-runtime";
5334
6020
  var AppLoading = ({
5335
6021
  message = "Loading...",
5336
6022
  logo = "/icons/logo.png",
5337
6023
  sx = {}
5338
6024
  }) => {
5339
- return /* @__PURE__ */ jsxs23(
5340
- Box15,
6025
+ return /* @__PURE__ */ jsxs26(
6026
+ Box18,
5341
6027
  {
5342
6028
  sx: {
5343
6029
  display: "flex",
@@ -5355,8 +6041,8 @@ var AppLoading = ({
5355
6041
  ...sx
5356
6042
  },
5357
6043
  children: [
5358
- logo && /* @__PURE__ */ jsx53(
5359
- Box15,
6044
+ logo && /* @__PURE__ */ jsx58(
6045
+ Box18,
5360
6046
  {
5361
6047
  component: "img",
5362
6048
  src: logo,
@@ -5368,8 +6054,8 @@ var AppLoading = ({
5368
6054
  }
5369
6055
  }
5370
6056
  ),
5371
- /* @__PURE__ */ jsx53(CircularProgress5, { size: 40, thickness: 4, sx: { mb: 2 } }),
5372
- /* @__PURE__ */ jsx53(Typography14, { variant: "body1", color: "text.secondary", children: message })
6057
+ /* @__PURE__ */ jsx58(CircularProgress5, { size: 40, thickness: 4, sx: { mb: 2 } }),
6058
+ /* @__PURE__ */ jsx58(Typography15, { variant: "body1", color: "text.secondary", children: message })
5373
6059
  ]
5374
6060
  }
5375
6061
  );
@@ -5379,22 +6065,22 @@ var AppLoading = ({
5379
6065
  import {
5380
6066
  CircularProgress as MuiCircularProgress
5381
6067
  } from "@mui/material";
5382
- import { jsx as jsx54 } from "react/jsx-runtime";
6068
+ import { jsx as jsx59 } from "react/jsx-runtime";
5383
6069
  var CircularProgress6 = ({
5384
6070
  size: size3 = 40,
5385
6071
  thickness = 4,
5386
6072
  ...props
5387
6073
  }) => {
5388
- return /* @__PURE__ */ jsx54(MuiCircularProgress, { size: size3, thickness, ...props });
6074
+ return /* @__PURE__ */ jsx59(MuiCircularProgress, { size: size3, thickness, ...props });
5389
6075
  };
5390
6076
 
5391
6077
  // src/components/icons/ActivityAppIcon.tsx
5392
6078
  import { memo as memo2 } from "react";
5393
6079
  import { SvgIcon as SvgIcon2 } from "@mui/material";
5394
- import { jsx as jsx55, jsxs as jsxs24 } from "react/jsx-runtime";
5395
- var ActivityAppIcon = memo2((props) => /* @__PURE__ */ jsxs24(SvgIcon2, { ...props, viewBox: "0 0 36 36", children: [
5396
- /* @__PURE__ */ jsx55("rect", { fill: "none", stroke: "currentColor", width: 34, height: 34, x: 1, y: 1, strokeWidth: 1.5, rx: 6.8 }),
5397
- /* @__PURE__ */ jsx55(
6080
+ import { jsx as jsx60, jsxs as jsxs27 } from "react/jsx-runtime";
6081
+ var ActivityAppIcon = memo2((props) => /* @__PURE__ */ jsxs27(SvgIcon2, { ...props, viewBox: "0 0 36 36", children: [
6082
+ /* @__PURE__ */ jsx60("rect", { fill: "none", stroke: "currentColor", width: 34, height: 34, x: 1, y: 1, strokeWidth: 1.5, rx: 6.8 }),
6083
+ /* @__PURE__ */ jsx60(
5398
6084
  "rect",
5399
6085
  {
5400
6086
  fill: "none",
@@ -5407,7 +6093,7 @@ var ActivityAppIcon = memo2((props) => /* @__PURE__ */ jsxs24(SvgIcon2, { ...pro
5407
6093
  rx: 1.7
5408
6094
  }
5409
6095
  ),
5410
- /* @__PURE__ */ jsx55(
6096
+ /* @__PURE__ */ jsx60(
5411
6097
  "rect",
5412
6098
  {
5413
6099
  fill: "none",
@@ -5420,7 +6106,7 @@ var ActivityAppIcon = memo2((props) => /* @__PURE__ */ jsxs24(SvgIcon2, { ...pro
5420
6106
  rx: 1.7
5421
6107
  }
5422
6108
  ),
5423
- /* @__PURE__ */ jsx55(
6109
+ /* @__PURE__ */ jsx60(
5424
6110
  "rect",
5425
6111
  {
5426
6112
  fill: "none",
@@ -5437,9 +6123,9 @@ var ActivityAppIcon = memo2((props) => /* @__PURE__ */ jsxs24(SvgIcon2, { ...pro
5437
6123
 
5438
6124
  // src/components/icons/ArrowLeft.tsx
5439
6125
  import { SvgIcon as SvgIcon3 } from "@mui/material";
5440
- import { jsx as jsx56 } from "react/jsx-runtime";
6126
+ import { jsx as jsx61 } from "react/jsx-runtime";
5441
6127
  var LeftArrowIcon = (props) => {
5442
- return /* @__PURE__ */ jsx56(SvgIcon3, { ...props, width: "24", height: "24", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx56("g", { id: " Arrow Left", children: /* @__PURE__ */ jsx56(
6128
+ return /* @__PURE__ */ jsx61(SvgIcon3, { ...props, width: "24", height: "24", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx61("g", { id: " Arrow Left", children: /* @__PURE__ */ jsx61(
5443
6129
  "path",
5444
6130
  {
5445
6131
  id: "Vector (Stroke)",
@@ -5453,9 +6139,9 @@ var LeftArrowIcon = (props) => {
5453
6139
 
5454
6140
  // src/components/icons/ArrowRight.tsx
5455
6141
  import { SvgIcon as SvgIcon4 } from "@mui/material";
5456
- import { jsx as jsx57 } from "react/jsx-runtime";
6142
+ import { jsx as jsx62 } from "react/jsx-runtime";
5457
6143
  var RightArrowIcon = (props) => {
5458
- return /* @__PURE__ */ jsx57(SvgIcon4, { ...props, width: "25", height: "24", viewBox: "0 0 25 24", children: /* @__PURE__ */ jsx57(
6144
+ return /* @__PURE__ */ jsx62(SvgIcon4, { ...props, width: "25", height: "24", viewBox: "0 0 25 24", children: /* @__PURE__ */ jsx62(
5459
6145
  "path",
5460
6146
  {
5461
6147
  fillRule: "evenodd",
@@ -5468,10 +6154,10 @@ var RightArrowIcon = (props) => {
5468
6154
 
5469
6155
  // src/components/icons/AvatarIcon.tsx
5470
6156
  import { SvgIcon as SvgIcon5 } from "@mui/material";
5471
- import { jsx as jsx58, jsxs as jsxs25 } from "react/jsx-runtime";
6157
+ import { jsx as jsx63, jsxs as jsxs28 } from "react/jsx-runtime";
5472
6158
  var AvatarIcon = (props) => {
5473
- return /* @__PURE__ */ jsxs25(SvgIcon5, { ...props, viewBox: "0 0 16 16", children: [
5474
- /* @__PURE__ */ jsx58(
6159
+ return /* @__PURE__ */ jsxs28(SvgIcon5, { ...props, viewBox: "0 0 16 16", children: [
6160
+ /* @__PURE__ */ jsx63(
5475
6161
  "path",
5476
6162
  {
5477
6163
  fillRule: "evenodd",
@@ -5480,7 +6166,7 @@ var AvatarIcon = (props) => {
5480
6166
  fill: "#1D1B20"
5481
6167
  }
5482
6168
  ),
5483
- /* @__PURE__ */ jsx58(
6169
+ /* @__PURE__ */ jsx63(
5484
6170
  "path",
5485
6171
  {
5486
6172
  fillRule: "evenodd",
@@ -5495,9 +6181,9 @@ var AvatarIcon = (props) => {
5495
6181
  // src/components/icons/BarTrackingIcon.tsx
5496
6182
  import { memo as memo3 } from "react";
5497
6183
  import { SvgIcon as SvgIcon6 } from "@mui/material";
5498
- import { jsx as jsx59, jsxs as jsxs26 } from "react/jsx-runtime";
5499
- var BarTrackingIcon = memo3((props) => /* @__PURE__ */ jsxs26(SvgIcon6, { ...props, viewBox: "0 0 96 97", children: [
5500
- /* @__PURE__ */ jsx59(
6184
+ import { jsx as jsx64, jsxs as jsxs29 } from "react/jsx-runtime";
6185
+ var BarTrackingIcon = memo3((props) => /* @__PURE__ */ jsxs29(SvgIcon6, { ...props, viewBox: "0 0 96 97", children: [
6186
+ /* @__PURE__ */ jsx64(
5501
6187
  "rect",
5502
6188
  {
5503
6189
  x: "7.19922",
@@ -5510,7 +6196,7 @@ var BarTrackingIcon = memo3((props) => /* @__PURE__ */ jsxs26(SvgIcon6, { ...pro
5510
6196
  fill: "none"
5511
6197
  }
5512
6198
  ),
5513
- /* @__PURE__ */ jsx59(
6199
+ /* @__PURE__ */ jsx64(
5514
6200
  "rect",
5515
6201
  {
5516
6202
  x: "21.0371",
@@ -5523,7 +6209,7 @@ var BarTrackingIcon = memo3((props) => /* @__PURE__ */ jsxs26(SvgIcon6, { ...pro
5523
6209
  strokeWidth: "2"
5524
6210
  }
5525
6211
  ),
5526
- /* @__PURE__ */ jsx59(
6212
+ /* @__PURE__ */ jsx64(
5527
6213
  "rect",
5528
6214
  {
5529
6215
  x: "40.4746",
@@ -5536,7 +6222,7 @@ var BarTrackingIcon = memo3((props) => /* @__PURE__ */ jsxs26(SvgIcon6, { ...pro
5536
6222
  strokeWidth: "2"
5537
6223
  }
5538
6224
  ),
5539
- /* @__PURE__ */ jsx59(
6225
+ /* @__PURE__ */ jsx64(
5540
6226
  "rect",
5541
6227
  {
5542
6228
  x: "59.8828",
@@ -5554,8 +6240,8 @@ var BarTrackingIcon = memo3((props) => /* @__PURE__ */ jsxs26(SvgIcon6, { ...pro
5554
6240
  // src/components/icons/ClockIcon.tsx
5555
6241
  import { memo as memo4 } from "react";
5556
6242
  import { SvgIcon as SvgIcon7 } from "@mui/material";
5557
- import { jsx as jsx60 } from "react/jsx-runtime";
5558
- var ClockIcon = memo4((props) => /* @__PURE__ */ jsx60(SvgIcon7, { ...props, viewBox: "0 0 22 22", children: /* @__PURE__ */ jsx60(
6243
+ import { jsx as jsx65 } from "react/jsx-runtime";
6244
+ var ClockIcon = memo4((props) => /* @__PURE__ */ jsx65(SvgIcon7, { ...props, viewBox: "0 0 22 22", children: /* @__PURE__ */ jsx65(
5559
6245
  "path",
5560
6246
  {
5561
6247
  fill: "currentColor",
@@ -5568,9 +6254,9 @@ var ClockIcon = memo4((props) => /* @__PURE__ */ jsx60(SvgIcon7, { ...props, vie
5568
6254
  // src/components/icons/CloudFlashIcon.tsx
5569
6255
  import { memo as memo5 } from "react";
5570
6256
  import { SvgIcon as SvgIcon8 } from "@mui/material";
5571
- import { jsx as jsx61, jsxs as jsxs27 } from "react/jsx-runtime";
5572
- var CloudFlashIcon = memo5((props) => /* @__PURE__ */ jsxs27(SvgIcon8, { ...props, fill: "none", viewBox: "0 0 96 97", children: [
5573
- /* @__PURE__ */ jsx61(
6257
+ import { jsx as jsx66, jsxs as jsxs30 } from "react/jsx-runtime";
6258
+ var CloudFlashIcon = memo5((props) => /* @__PURE__ */ jsxs30(SvgIcon8, { ...props, fill: "none", viewBox: "0 0 96 97", children: [
6259
+ /* @__PURE__ */ jsx66(
5574
6260
  "path",
5575
6261
  {
5576
6262
  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",
@@ -5579,7 +6265,7 @@ var CloudFlashIcon = memo5((props) => /* @__PURE__ */ jsxs27(SvgIcon8, { ...prop
5579
6265
  strokeWidth: "2"
5580
6266
  }
5581
6267
  ),
5582
- /* @__PURE__ */ jsx61(
6268
+ /* @__PURE__ */ jsx66(
5583
6269
  "path",
5584
6270
  {
5585
6271
  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",
@@ -5593,9 +6279,9 @@ var CloudFlashIcon = memo5((props) => /* @__PURE__ */ jsxs27(SvgIcon8, { ...prop
5593
6279
  // src/components/icons/DecentralizedServerIcon.tsx
5594
6280
  import { memo as memo6 } from "react";
5595
6281
  import { SvgIcon as SvgIcon9 } from "@mui/material";
5596
- import { jsx as jsx62, jsxs as jsxs28 } from "react/jsx-runtime";
5597
- var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9, { ...props, viewBox: "0 0 96 97", children: [
5598
- /* @__PURE__ */ jsx62(
6282
+ import { jsx as jsx67, jsxs as jsxs31 } from "react/jsx-runtime";
6283
+ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs31(SvgIcon9, { ...props, viewBox: "0 0 96 97", children: [
6284
+ /* @__PURE__ */ jsx67(
5599
6285
  "path",
5600
6286
  {
5601
6287
  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",
@@ -5606,7 +6292,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5606
6292
  strokeLinejoin: "round"
5607
6293
  }
5608
6294
  ),
5609
- /* @__PURE__ */ jsx62(
6295
+ /* @__PURE__ */ jsx67(
5610
6296
  "path",
5611
6297
  {
5612
6298
  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",
@@ -5617,7 +6303,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5617
6303
  strokeLinejoin: "round"
5618
6304
  }
5619
6305
  ),
5620
- /* @__PURE__ */ jsx62(
6306
+ /* @__PURE__ */ jsx67(
5621
6307
  "path",
5622
6308
  {
5623
6309
  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",
@@ -5628,7 +6314,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5628
6314
  strokeLinejoin: "round"
5629
6315
  }
5630
6316
  ),
5631
- /* @__PURE__ */ jsx62(
6317
+ /* @__PURE__ */ jsx67(
5632
6318
  "path",
5633
6319
  {
5634
6320
  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",
@@ -5639,7 +6325,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5639
6325
  strokeLinejoin: "round"
5640
6326
  }
5641
6327
  ),
5642
- /* @__PURE__ */ jsx62(
6328
+ /* @__PURE__ */ jsx67(
5643
6329
  "path",
5644
6330
  {
5645
6331
  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",
@@ -5650,7 +6336,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5650
6336
  strokeLinejoin: "round"
5651
6337
  }
5652
6338
  ),
5653
- /* @__PURE__ */ jsx62(
6339
+ /* @__PURE__ */ jsx67(
5654
6340
  "path",
5655
6341
  {
5656
6342
  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",
@@ -5661,7 +6347,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5661
6347
  strokeLinejoin: "round"
5662
6348
  }
5663
6349
  ),
5664
- /* @__PURE__ */ jsx62(
6350
+ /* @__PURE__ */ jsx67(
5665
6351
  "path",
5666
6352
  {
5667
6353
  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",
@@ -5672,7 +6358,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5672
6358
  strokeLinejoin: "round"
5673
6359
  }
5674
6360
  ),
5675
- /* @__PURE__ */ jsx62(
6361
+ /* @__PURE__ */ jsx67(
5676
6362
  "path",
5677
6363
  {
5678
6364
  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",
@@ -5683,7 +6369,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5683
6369
  strokeLinejoin: "round"
5684
6370
  }
5685
6371
  ),
5686
- /* @__PURE__ */ jsx62(
6372
+ /* @__PURE__ */ jsx67(
5687
6373
  "path",
5688
6374
  {
5689
6375
  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",
@@ -5694,7 +6380,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5694
6380
  strokeLinejoin: "round"
5695
6381
  }
5696
6382
  ),
5697
- /* @__PURE__ */ jsx62(
6383
+ /* @__PURE__ */ jsx67(
5698
6384
  "rect",
5699
6385
  {
5700
6386
  x: "22.623",
@@ -5707,7 +6393,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5707
6393
  strokeWidth: "2"
5708
6394
  }
5709
6395
  ),
5710
- /* @__PURE__ */ jsx62(
6396
+ /* @__PURE__ */ jsx67(
5711
6397
  "rect",
5712
6398
  {
5713
6399
  x: "22.623",
@@ -5720,7 +6406,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5720
6406
  strokeWidth: "2"
5721
6407
  }
5722
6408
  ),
5723
- /* @__PURE__ */ jsx62(
6409
+ /* @__PURE__ */ jsx67(
5724
6410
  "rect",
5725
6411
  {
5726
6412
  x: "22.623",
@@ -5733,7 +6419,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5733
6419
  strokeWidth: "2"
5734
6420
  }
5735
6421
  ),
5736
- /* @__PURE__ */ jsx62(
6422
+ /* @__PURE__ */ jsx67(
5737
6423
  "path",
5738
6424
  {
5739
6425
  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",
@@ -5743,7 +6429,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5743
6429
  strokeMiterlimit: "10"
5744
6430
  }
5745
6431
  ),
5746
- /* @__PURE__ */ jsx62(
6432
+ /* @__PURE__ */ jsx67(
5747
6433
  "path",
5748
6434
  {
5749
6435
  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",
@@ -5753,7 +6439,7 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5753
6439
  strokeMiterlimit: "10"
5754
6440
  }
5755
6441
  ),
5756
- /* @__PURE__ */ jsx62(
6442
+ /* @__PURE__ */ jsx67(
5757
6443
  "path",
5758
6444
  {
5759
6445
  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",
@@ -5768,8 +6454,8 @@ var DecentralizedServerIcon = memo6((props) => /* @__PURE__ */ jsxs28(SvgIcon9,
5768
6454
  // src/components/icons/DiscordIcon.tsx
5769
6455
  import { memo as memo7 } from "react";
5770
6456
  import { SvgIcon as SvgIcon10 } from "@mui/material";
5771
- import { jsx as jsx63 } from "react/jsx-runtime";
5772
- var DiscordIcon = memo7((props) => /* @__PURE__ */ jsx63(SvgIcon10, { ...props, viewBox: "0 0 15 12", children: /* @__PURE__ */ jsx63(
6457
+ import { jsx as jsx68 } from "react/jsx-runtime";
6458
+ var DiscordIcon = memo7((props) => /* @__PURE__ */ jsx68(SvgIcon10, { ...props, viewBox: "0 0 15 12", children: /* @__PURE__ */ jsx68(
5773
6459
  "path",
5774
6460
  {
5775
6461
  fill: "currentColor",
@@ -5780,16 +6466,16 @@ var DiscordIcon = memo7((props) => /* @__PURE__ */ jsx63(SvgIcon10, { ...props,
5780
6466
  // src/components/icons/DownloadIcon.tsx
5781
6467
  import { memo as memo8 } from "react";
5782
6468
  import { SvgIcon as SvgIcon11 } from "@mui/material";
5783
- import { jsx as jsx64, jsxs as jsxs29 } from "react/jsx-runtime";
5784
- var DownloadIcon = memo8((props) => /* @__PURE__ */ jsxs29(SvgIcon11, { ...props, viewBox: "0 0 17 16", fill: "none", children: [
5785
- /* @__PURE__ */ jsx64(
6469
+ import { jsx as jsx69, jsxs as jsxs32 } from "react/jsx-runtime";
6470
+ var DownloadIcon = memo8((props) => /* @__PURE__ */ jsxs32(SvgIcon11, { ...props, viewBox: "0 0 17 16", fill: "none", children: [
6471
+ /* @__PURE__ */ jsx69(
5786
6472
  "path",
5787
6473
  {
5788
6474
  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",
5789
6475
  fill: "currentColor"
5790
6476
  }
5791
6477
  ),
5792
- /* @__PURE__ */ jsx64(
6478
+ /* @__PURE__ */ jsx69(
5793
6479
  "path",
5794
6480
  {
5795
6481
  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",
@@ -5801,11 +6487,11 @@ var DownloadIcon = memo8((props) => /* @__PURE__ */ jsxs29(SvgIcon11, { ...props
5801
6487
  // src/components/icons/FilledFolderIcon.tsx
5802
6488
  import { memo as memo9 } from "react";
5803
6489
  import { SvgIcon as SvgIcon12 } from "@mui/material";
5804
- import { jsx as jsx65, jsxs as jsxs30 } from "react/jsx-runtime";
5805
- var FilledFolderIcon = memo9((props) => /* @__PURE__ */ jsxs30(SvgIcon12, { sx: { fill: "none" }, ...props, fill: "none", viewBox: "0 0 22 22", children: [
5806
- /* @__PURE__ */ jsx65("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", fill: "#FCF8EC" }),
5807
- /* @__PURE__ */ jsx65("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", stroke: "#E1B43E" }),
5808
- /* @__PURE__ */ jsx65(
6490
+ import { jsx as jsx70, jsxs as jsxs33 } from "react/jsx-runtime";
6491
+ var FilledFolderIcon = memo9((props) => /* @__PURE__ */ jsxs33(SvgIcon12, { sx: { fill: "none" }, ...props, fill: "none", viewBox: "0 0 22 22", children: [
6492
+ /* @__PURE__ */ jsx70("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", fill: "#FCF8EC" }),
6493
+ /* @__PURE__ */ jsx70("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", stroke: "#E1B43E" }),
6494
+ /* @__PURE__ */ jsx70(
5809
6495
  "path",
5810
6496
  {
5811
6497
  fillRule: "evenodd",
@@ -5819,11 +6505,11 @@ var FilledFolderIcon = memo9((props) => /* @__PURE__ */ jsxs30(SvgIcon12, { sx:
5819
6505
  // src/components/icons/FolderIcon.tsx
5820
6506
  import { memo as memo10 } from "react";
5821
6507
  import { SvgIcon as SvgIcon13 } from "@mui/material";
5822
- import { jsx as jsx66, jsxs as jsxs31 } from "react/jsx-runtime";
5823
- var FolderIcon = memo10((props) => /* @__PURE__ */ jsxs31(SvgIcon13, { sx: { fill: "none" }, ...props, fill: "none", viewBox: "0 0 22 22", children: [
5824
- /* @__PURE__ */ jsx66("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", fill: "#F5F7FA" }),
5825
- /* @__PURE__ */ jsx66("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", stroke: "#E6E6E6" }),
5826
- /* @__PURE__ */ jsx66(
6508
+ import { jsx as jsx71, jsxs as jsxs34 } from "react/jsx-runtime";
6509
+ var FolderIcon = memo10((props) => /* @__PURE__ */ jsxs34(SvgIcon13, { sx: { fill: "none" }, ...props, fill: "none", viewBox: "0 0 22 22", children: [
6510
+ /* @__PURE__ */ jsx71("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", fill: "#F5F7FA" }),
6511
+ /* @__PURE__ */ jsx71("rect", { x: "0.5", y: "0.5", width: "21", height: "21", rx: "4.5", stroke: "#E6E6E6" }),
6512
+ /* @__PURE__ */ jsx71(
5827
6513
  "path",
5828
6514
  {
5829
6515
  fillRule: "evenodd",
@@ -5839,16 +6525,16 @@ var FolderIcon = memo10((props) => /* @__PURE__ */ jsxs31(SvgIcon13, { sx: { fil
5839
6525
  // src/components/icons/GithubLogoIcon.tsx
5840
6526
  import { memo as memo11 } from "react";
5841
6527
  import { SvgIcon as SvgIcon14 } from "@mui/material";
5842
- import { jsx as jsx67, jsxs as jsxs32 } from "react/jsx-runtime";
5843
- var GithubLogoIcon = memo11((props) => /* @__PURE__ */ jsxs32(SvgIcon14, { ...props, viewBox: "0 0 17 16", sx: { fill: "none" }, children: [
5844
- /* @__PURE__ */ jsx67(
6528
+ import { jsx as jsx72, jsxs as jsxs35 } from "react/jsx-runtime";
6529
+ var GithubLogoIcon = memo11((props) => /* @__PURE__ */ jsxs35(SvgIcon14, { ...props, viewBox: "0 0 17 16", sx: { fill: "none" }, children: [
6530
+ /* @__PURE__ */ jsx72(
5845
6531
  "path",
5846
6532
  {
5847
6533
  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",
5848
6534
  fill: "white"
5849
6535
  }
5850
6536
  ),
5851
- /* @__PURE__ */ jsx67(
6537
+ /* @__PURE__ */ jsx72(
5852
6538
  "path",
5853
6539
  {
5854
6540
  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",
@@ -5860,8 +6546,8 @@ var GithubLogoIcon = memo11((props) => /* @__PURE__ */ jsxs32(SvgIcon14, { ...pr
5860
6546
  // src/components/icons/ShareIcon.tsx
5861
6547
  import { memo as memo12 } from "react";
5862
6548
  import { SvgIcon as SvgIcon15 } from "@mui/material";
5863
- import { jsx as jsx68 } from "react/jsx-runtime";
5864
- var ShareIcon = memo12((props) => /* @__PURE__ */ jsx68(SvgIcon15, { ...props, viewBox: "0 0 17 16", fill: "none", children: /* @__PURE__ */ jsx68(
6549
+ import { jsx as jsx73 } from "react/jsx-runtime";
6550
+ var ShareIcon = memo12((props) => /* @__PURE__ */ jsx73(SvgIcon15, { ...props, viewBox: "0 0 17 16", fill: "none", children: /* @__PURE__ */ jsx73(
5865
6551
  "path",
5866
6552
  {
5867
6553
  fillRule: "evenodd",
@@ -5874,9 +6560,9 @@ var ShareIcon = memo12((props) => /* @__PURE__ */ jsx68(SvgIcon15, { ...props, v
5874
6560
  // src/components/icons/StorageAppIcon.tsx
5875
6561
  import { memo as memo13 } from "react";
5876
6562
  import { SvgIcon as SvgIcon16 } from "@mui/material";
5877
- import { jsx as jsx69, jsxs as jsxs33 } from "react/jsx-runtime";
5878
- var StorageAppIcon = memo13((props) => /* @__PURE__ */ jsxs33(SvgIcon16, { ...props, viewBox: "0 0 38 29", fill: "none", children: [
5879
- /* @__PURE__ */ jsx69(
6563
+ import { jsx as jsx74, jsxs as jsxs36 } from "react/jsx-runtime";
6564
+ var StorageAppIcon = memo13((props) => /* @__PURE__ */ jsxs36(SvgIcon16, { ...props, viewBox: "0 0 38 29", fill: "none", children: [
6565
+ /* @__PURE__ */ jsx74(
5880
6566
  "path",
5881
6567
  {
5882
6568
  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",
@@ -5885,7 +6571,7 @@ var StorageAppIcon = memo13((props) => /* @__PURE__ */ jsxs33(SvgIcon16, { ...pr
5885
6571
  fill: "none"
5886
6572
  }
5887
6573
  ),
5888
- /* @__PURE__ */ jsx69(
6574
+ /* @__PURE__ */ jsx74(
5889
6575
  "path",
5890
6576
  {
5891
6577
  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",
@@ -5899,8 +6585,8 @@ var StorageAppIcon = memo13((props) => /* @__PURE__ */ jsxs33(SvgIcon16, { ...pr
5899
6585
  // src/components/icons/UploadFileIcon.tsx
5900
6586
  import { memo as memo14 } from "react";
5901
6587
  import { SvgIcon as SvgIcon17 } from "@mui/material";
5902
- import { jsx as jsx70 } from "react/jsx-runtime";
5903
- var UploadFileIcon = memo14((props) => /* @__PURE__ */ jsx70(SvgIcon17, { ...props, viewBox: "0 0 12 12", children: /* @__PURE__ */ jsx70(
6588
+ import { jsx as jsx75 } from "react/jsx-runtime";
6589
+ var UploadFileIcon = memo14((props) => /* @__PURE__ */ jsx75(SvgIcon17, { ...props, viewBox: "0 0 12 12", children: /* @__PURE__ */ jsx75(
5904
6590
  "path",
5905
6591
  {
5906
6592
  fillRule: "evenodd",
@@ -5915,8 +6601,8 @@ var UploadFileIcon = memo14((props) => /* @__PURE__ */ jsx70(SvgIcon17, { ...pro
5915
6601
  // src/components/icons/UploadFolderIcon.tsx
5916
6602
  import { memo as memo15 } from "react";
5917
6603
  import { SvgIcon as SvgIcon18 } from "@mui/material";
5918
- import { jsx as jsx71 } from "react/jsx-runtime";
5919
- var UploadFolderIcon = memo15((props) => /* @__PURE__ */ jsx71(SvgIcon18, { ...props, viewBox: "0 0 12 12", children: /* @__PURE__ */ jsx71(
6604
+ import { jsx as jsx76 } from "react/jsx-runtime";
6605
+ var UploadFolderIcon = memo15((props) => /* @__PURE__ */ jsx76(SvgIcon18, { ...props, viewBox: "0 0 12 12", children: /* @__PURE__ */ jsx76(
5920
6606
  "path",
5921
6607
  {
5922
6608
  fillRule: "evenodd",
@@ -5929,14 +6615,14 @@ var UploadFolderIcon = memo15((props) => /* @__PURE__ */ jsx71(SvgIcon18, { ...p
5929
6615
  ) }));
5930
6616
 
5931
6617
  // src/components/utilities/Markdown/Markdown.tsx
5932
- import { Box as Box16, styled as styled36 } from "@mui/material";
6618
+ import { Box as Box19, styled as styled40 } from "@mui/material";
5933
6619
  import "highlight.js/styles/github.css";
5934
6620
  import "github-markdown-css/github-markdown-light.css";
5935
6621
  import MD from "react-markdown";
5936
6622
  import highlight from "rehype-highlight";
5937
6623
  import rehypeRaw from "rehype-raw";
5938
- import { jsx as jsx72 } from "react/jsx-runtime";
5939
- var Content = styled36(Box16)(({ theme: theme2 }) => ({
6624
+ import { jsx as jsx77 } from "react/jsx-runtime";
6625
+ var Content = styled40(Box19)(({ theme: theme2 }) => ({
5940
6626
  backgroundColor: "transparent",
5941
6627
  ...theme2.typography.body1,
5942
6628
  color: theme2.palette.text.primary,
@@ -5953,11 +6639,11 @@ var Content = styled36(Box16)(({ theme: theme2 }) => ({
5953
6639
  backgroundColor: theme2.palette.background.paper
5954
6640
  }
5955
6641
  }));
5956
- var Markdown = ({ content, children }) => /* @__PURE__ */ jsx72(Content, { className: "markdown-body", children: /* @__PURE__ */ jsx72(MD, { rehypePlugins: [highlight, rehypeRaw], children: content || children }) });
6642
+ var Markdown = ({ content, children }) => /* @__PURE__ */ jsx77(Content, { className: "markdown-body", children: /* @__PURE__ */ jsx77(MD, { rehypePlugins: [highlight, rehypeRaw], children: content || children }) });
5957
6643
 
5958
6644
  // src/components/utilities/OnboardingProvider/OnboardingProvider.tsx
5959
- import { createContext as createContext2, useContext as useContext2, useState as useState7, useCallback as useCallback6, useEffect as useEffect2 } from "react";
5960
- import { jsx as jsx73 } from "react/jsx-runtime";
6645
+ import { createContext as createContext2, useContext as useContext2, useState as useState8, useCallback as useCallback6, useEffect as useEffect2 } from "react";
6646
+ import { jsx as jsx78 } from "react/jsx-runtime";
5961
6647
  var OnboardingContext = createContext2(void 0);
5962
6648
  var useOnboarding = () => {
5963
6649
  const context = useContext2(OnboardingContext);
@@ -5967,7 +6653,7 @@ var useOnboarding = () => {
5967
6653
  return context;
5968
6654
  };
5969
6655
  var OnboardingProvider = ({ children }) => {
5970
- const [isOnboardingActive, setIsOnboardingActive] = useState7(() => {
6656
+ const [isOnboardingActive, setIsOnboardingActive] = useState8(() => {
5971
6657
  const savedState = localStorage.getItem("isOnboardingActive");
5972
6658
  return savedState !== null ? JSON.parse(savedState) : true;
5973
6659
  });
@@ -5982,7 +6668,7 @@ var OnboardingProvider = ({ children }) => {
5982
6668
  setIsOnboardingActive(false);
5983
6669
  setTimeout(() => setIsOnboardingActive(true), 0);
5984
6670
  }, []);
5985
- return /* @__PURE__ */ jsx73(
6671
+ return /* @__PURE__ */ jsx78(
5986
6672
  OnboardingContext.Provider,
5987
6673
  {
5988
6674
  value: {
@@ -5997,7 +6683,7 @@ var OnboardingProvider = ({ children }) => {
5997
6683
  };
5998
6684
 
5999
6685
  // src/components/utilities/Truncate/Truncate.tsx
6000
- import { jsx as jsx74 } from "react/jsx-runtime";
6686
+ import { jsx as jsx79 } from "react/jsx-runtime";
6001
6687
  var getDefaultEndingLength = ({ text, variant, maxLength = text.length }) => {
6002
6688
  if (variant === "hex") {
6003
6689
  return 4;
@@ -6021,30 +6707,30 @@ var Truncate = ({
6021
6707
  const truncated = text.slice(0, maxLength - endingLength);
6022
6708
  truncatedText = [truncated, ending].filter(Boolean).join("...");
6023
6709
  }
6024
- return /* @__PURE__ */ jsx74("span", { ...props, "data-full": text, children: truncatedText });
6710
+ return /* @__PURE__ */ jsx79("span", { ...props, "data-full": text, children: truncatedText });
6025
6711
  };
6026
6712
 
6027
6713
  // src/components/utilities/BytesSize/BytesSize.tsx
6028
6714
  import size from "byte-size";
6029
- import { Fragment as Fragment9, jsx as jsx75 } from "react/jsx-runtime";
6715
+ import { Fragment as Fragment10, jsx as jsx80 } from "react/jsx-runtime";
6030
6716
  var BytesSize = ({ bytes }) => {
6031
- return /* @__PURE__ */ jsx75(Fragment9, { children: size(bytes).toString() });
6717
+ return /* @__PURE__ */ jsx80(Fragment10, { children: size(bytes).toString() });
6032
6718
  };
6033
6719
 
6034
6720
  // src/components/utilities/QRCode/QRCode.tsx
6035
6721
  import { forwardRef as forwardRef2 } from "react";
6036
6722
  import QR from "react-qr-code";
6037
- import { jsx as jsx76 } from "react/jsx-runtime";
6038
- var QRCode = forwardRef2(({ size: size3 = 168, ...props }, ref) => /* @__PURE__ */ jsx76(QR, { ref, size: size3, ...props }));
6723
+ import { jsx as jsx81 } from "react/jsx-runtime";
6724
+ var QRCode = forwardRef2(({ size: size3 = 168, ...props }, ref) => /* @__PURE__ */ jsx81(QR, { ref, size: size3, ...props }));
6039
6725
  QRCode.displayName = "QRCode";
6040
6726
 
6041
6727
  // src/components/charts/ChartWidget/ChartWidget.tsx
6042
- import { Box as Box17, Stack as Stack4, Typography as Typography15, styled as styled37, useTheme as useTheme2 } from "@mui/material";
6728
+ import { Box as Box20, Stack as Stack4, Typography as Typography16, styled as styled41, useTheme as useTheme3 } from "@mui/material";
6043
6729
  import { LineChart } from "@mui/x-charts";
6044
6730
  import size2 from "byte-size";
6045
6731
  import { format } from "date-fns";
6046
- import { jsx as jsx77, jsxs as jsxs34 } from "react/jsx-runtime";
6047
- var Chart = styled37(Box17)(() => ({
6732
+ import { jsx as jsx82, jsxs as jsxs37 } from "react/jsx-runtime";
6733
+ var Chart = styled41(Box20)(() => ({
6048
6734
  height: 200
6049
6735
  }));
6050
6736
  var ChartWidget = ({
@@ -6053,11 +6739,11 @@ var ChartWidget = ({
6053
6739
  history,
6054
6740
  formatValue = (value2) => size2(value2 || 0).toString()
6055
6741
  }) => {
6056
- const theme2 = useTheme2();
6057
- return /* @__PURE__ */ jsxs34(Stack4, { spacing: 1, children: [
6058
- /* @__PURE__ */ jsx77(Typography15, { variant: "caption", color: "text.secondary", children: title }),
6059
- /* @__PURE__ */ jsx77(Typography15, { fontWeight: "bold", children: value }),
6060
- /* @__PURE__ */ jsx77(Chart, { children: /* @__PURE__ */ jsx77(
6742
+ const theme2 = useTheme3();
6743
+ return /* @__PURE__ */ jsxs37(Stack4, { spacing: 1, children: [
6744
+ /* @__PURE__ */ jsx82(Typography16, { variant: "caption", color: "text.secondary", children: title }),
6745
+ /* @__PURE__ */ jsx82(Typography16, { fontWeight: "bold", children: value }),
6746
+ /* @__PURE__ */ jsx82(Chart, { children: /* @__PURE__ */ jsx82(
6061
6747
  LineChart,
6062
6748
  {
6063
6749
  dataset: history || [],
@@ -6115,11 +6801,11 @@ var ChartWidget = ({
6115
6801
  import { format as format2, startOfDay, subHours, subWeeks, subMonths } from "date-fns";
6116
6802
  import { LineChart as LineChart2 } from "@mui/x-charts";
6117
6803
  import { useDrawingArea, useYScale } from "@mui/x-charts/hooks";
6118
- import { Box as Box18, Card as Card2, CardHeader as CardHeader2, CardMedia, Divider as Divider5, Stack as Stack5, styled as styled38, Typography as Typography16, useTheme as useTheme3 } from "@mui/material";
6804
+ import { Box as Box21, Card as Card2, CardHeader as CardHeader2, CardMedia, Divider as Divider5, Stack as Stack5, styled as styled42, Typography as Typography17, useTheme as useTheme4 } from "@mui/material";
6119
6805
 
6120
6806
  // src/components/charts/MetricsChart/PeriodSelect.tsx
6121
6807
  import { MenuItem as MenuItem2, TextField as TextField4 } from "@mui/material";
6122
- import { jsx as jsx78 } from "react/jsx-runtime";
6808
+ import { jsx as jsx83 } from "react/jsx-runtime";
6123
6809
  var options = [
6124
6810
  /**
6125
6811
  * TODO: Enable the options below when the backend supports them
@@ -6129,7 +6815,7 @@ var options = [
6129
6815
  { value: "week", label: "1 week" },
6130
6816
  { value: "month", label: "1 month" }
6131
6817
  ];
6132
- var PeriodSelect = ({ value, onChange }) => /* @__PURE__ */ jsx78(
6818
+ var PeriodSelect = ({ value, onChange }) => /* @__PURE__ */ jsx83(
6133
6819
  TextField4,
6134
6820
  {
6135
6821
  select: true,
@@ -6137,13 +6823,13 @@ var PeriodSelect = ({ value, onChange }) => /* @__PURE__ */ jsx78(
6137
6823
  value,
6138
6824
  defaultValue: options[0].value,
6139
6825
  onChange: (e) => onChange?.(e.target.value),
6140
- children: options.map(({ value: value2, label }) => /* @__PURE__ */ jsx78(MenuItem2, { value: value2, children: label }, value2))
6826
+ children: options.map(({ value: value2, label }) => /* @__PURE__ */ jsx83(MenuItem2, { value: value2, children: label }, value2))
6141
6827
  }
6142
6828
  );
6143
6829
 
6144
6830
  // src/components/charts/MetricsChart/MetricsChart.tsx
6145
- import { useMemo, useState as useState8 } from "react";
6146
- import { jsx as jsx79, jsxs as jsxs35 } from "react/jsx-runtime";
6831
+ import { useMemo, useState as useState9 } from "react";
6832
+ import { jsx as jsx84, jsxs as jsxs38 } from "react/jsx-runtime";
6147
6833
  var mapPeriodToFromDate = (period = "month") => {
6148
6834
  const date = /* @__PURE__ */ new Date();
6149
6835
  if (period === "hour") {
@@ -6157,14 +6843,14 @@ var mapPeriodToFromDate = (period = "month") => {
6157
6843
  }
6158
6844
  return startOfDay(subMonths(date, 1));
6159
6845
  };
6160
- var Chart2 = styled38(LineChart2)({
6846
+ var Chart2 = styled42(LineChart2)({
6161
6847
  height: 320,
6162
6848
  marginBottom: 16
6163
6849
  });
6164
- var NoDataRect = styled38("rect")({
6850
+ var NoDataRect = styled42("rect")({
6165
6851
  fill: "#F5F6FF"
6166
6852
  });
6167
- var LoadingText = styled38("text")(({ theme: theme2 }) => ({
6853
+ var LoadingText = styled42("text")(({ theme: theme2 }) => ({
6168
6854
  stroke: "none",
6169
6855
  fill: theme2.palette.text.primary,
6170
6856
  shapeRendering: "crispEdges",
@@ -6172,8 +6858,8 @@ var LoadingText = styled38("text")(({ theme: theme2 }) => ({
6172
6858
  dominantBaseline: "middle"
6173
6859
  }));
6174
6860
  var MetricsChart = ({ history = [] }) => {
6175
- const theme2 = useTheme3();
6176
- const [period, setPeriod] = useState8("week");
6861
+ const theme2 = useTheme4();
6862
+ const [period, setPeriod] = useState9("week");
6177
6863
  const periodFrom = useMemo(() => mapPeriodToFromDate(period), [period]);
6178
6864
  const periodHistory = useMemo(
6179
6865
  () => history.filter((record) => record.recordTime > periodFrom),
@@ -6203,15 +6889,15 @@ var MetricsChart = ({ history = [] }) => {
6203
6889
  const backgroundHeight = textHeight + padding.top + padding.bottom;
6204
6890
  const rectX = left + (width - backgroundWidth) / 2;
6205
6891
  const rectY = top + (height - backgroundHeight) / 2;
6206
- return /* @__PURE__ */ jsxs35("g", { children: [
6207
- /* @__PURE__ */ jsx79(NoDataRect, { x: rectX, y: rectY, width: backgroundWidth, height: backgroundHeight }),
6208
- /* @__PURE__ */ jsx79(LoadingText, { style: { ...theme2.typography.subtitle1 }, x: left + width / 2, y: top + height / 2, children: text })
6892
+ return /* @__PURE__ */ jsxs38("g", { children: [
6893
+ /* @__PURE__ */ jsx84(NoDataRect, { x: rectX, y: rectY, width: backgroundWidth, height: backgroundHeight }),
6894
+ /* @__PURE__ */ jsx84(LoadingText, { style: { ...theme2.typography.subtitle1 }, x: left + width / 2, y: top + height / 2, children: text })
6209
6895
  ] });
6210
6896
  };
6211
- return /* @__PURE__ */ jsxs35(Card2, { children: [
6212
- /* @__PURE__ */ jsx79(CardHeader2, { title: "GET / PUT Requests", action: /* @__PURE__ */ jsx79(PeriodSelect, { value: period, onChange: setPeriod }) }),
6213
- /* @__PURE__ */ jsxs35(CardMedia, { children: [
6214
- /* @__PURE__ */ jsx79(
6897
+ return /* @__PURE__ */ jsxs38(Card2, { children: [
6898
+ /* @__PURE__ */ jsx84(CardHeader2, { title: "GET / PUT Requests", action: /* @__PURE__ */ jsx84(PeriodSelect, { value: period, onChange: setPeriod }) }),
6899
+ /* @__PURE__ */ jsxs38(CardMedia, { children: [
6900
+ /* @__PURE__ */ jsx84(
6215
6901
  Chart2,
6216
6902
  {
6217
6903
  skipAnimation: true,
@@ -6272,35 +6958,35 @@ var MetricsChart = ({ history = [] }) => {
6272
6958
  ]
6273
6959
  }
6274
6960
  ),
6275
- periodHistory.length > 0 && /* @__PURE__ */ jsxs35(Stack5, { direction: "row", spacing: 2, marginY: 3, justifyContent: "center", children: [
6276
- /* @__PURE__ */ jsxs35(Stack5, { direction: "row", spacing: 1, alignItems: "center", children: [
6277
- /* @__PURE__ */ jsx79(Box18, { sx: { width: 14, height: 14, borderRadius: "4px", backgroundColor: theme2.palette.primary.main } }),
6278
- /* @__PURE__ */ jsx79(Typography16, { variant: "body2", children: "Get" })
6961
+ periodHistory.length > 0 && /* @__PURE__ */ jsxs38(Stack5, { direction: "row", spacing: 2, marginY: 3, justifyContent: "center", children: [
6962
+ /* @__PURE__ */ jsxs38(Stack5, { direction: "row", spacing: 1, alignItems: "center", children: [
6963
+ /* @__PURE__ */ jsx84(Box21, { sx: { width: 14, height: 14, borderRadius: "4px", backgroundColor: theme2.palette.primary.main } }),
6964
+ /* @__PURE__ */ jsx84(Typography17, { variant: "body2", children: "Get" })
6279
6965
  ] }),
6280
- /* @__PURE__ */ jsxs35(Stack5, { direction: "row", spacing: 1, alignItems: "center", children: [
6281
- /* @__PURE__ */ jsx79(Box18, { sx: { width: 14, height: 14, borderRadius: "4px", backgroundColor: theme2.palette.success.main } }),
6282
- /* @__PURE__ */ jsx79(Typography16, { variant: "body2", children: "Put" })
6966
+ /* @__PURE__ */ jsxs38(Stack5, { direction: "row", spacing: 1, alignItems: "center", children: [
6967
+ /* @__PURE__ */ jsx84(Box21, { sx: { width: 14, height: 14, borderRadius: "4px", backgroundColor: theme2.palette.success.main } }),
6968
+ /* @__PURE__ */ jsx84(Typography17, { variant: "body2", children: "Put" })
6283
6969
  ] })
6284
6970
  ] })
6285
6971
  ] }),
6286
- /* @__PURE__ */ jsxs35(CardMedia, { children: [
6287
- /* @__PURE__ */ jsx79(Divider5, { flexItem: true }),
6288
- /* @__PURE__ */ jsxs35(Stack5, { direction: "row", spacing: 2, padding: 2, children: [
6289
- /* @__PURE__ */ jsxs35(Stack5, { direction: "row", alignItems: "center", spacing: 1, children: [
6290
- /* @__PURE__ */ jsx79(Typography16, { variant: "body2", color: "secondary", children: "GET Requests per account" }),
6291
- /* @__PURE__ */ jsx79(Typography16, { variant: "h3", children: total.gets })
6972
+ /* @__PURE__ */ jsxs38(CardMedia, { children: [
6973
+ /* @__PURE__ */ jsx84(Divider5, { flexItem: true }),
6974
+ /* @__PURE__ */ jsxs38(Stack5, { direction: "row", spacing: 2, padding: 2, children: [
6975
+ /* @__PURE__ */ jsxs38(Stack5, { direction: "row", alignItems: "center", spacing: 1, children: [
6976
+ /* @__PURE__ */ jsx84(Typography17, { variant: "body2", color: "secondary", children: "GET Requests per account" }),
6977
+ /* @__PURE__ */ jsx84(Typography17, { variant: "h3", children: total.gets })
6292
6978
  ] }),
6293
- /* @__PURE__ */ jsxs35(Stack5, { direction: "row", alignItems: "center", spacing: 1, children: [
6294
- /* @__PURE__ */ jsx79(Typography16, { variant: "body2", color: "secondary", children: "PUT Requests per account" }),
6295
- /* @__PURE__ */ jsx79(Typography16, { variant: "h3", children: total.puts })
6979
+ /* @__PURE__ */ jsxs38(Stack5, { direction: "row", alignItems: "center", spacing: 1, children: [
6980
+ /* @__PURE__ */ jsx84(Typography17, { variant: "body2", color: "secondary", children: "PUT Requests per account" }),
6981
+ /* @__PURE__ */ jsx84(Typography17, { variant: "h3", children: total.puts })
6296
6982
  ] }),
6297
- /* @__PURE__ */ jsxs35(Stack5, { direction: "row", alignItems: "center", spacing: 1, children: [
6298
- /* @__PURE__ */ jsx79(Typography16, { variant: "body2", color: "secondary", children: "Total Consumed per account" }),
6299
- /* @__PURE__ */ jsx79(Typography16, { variant: "h3", children: /* @__PURE__ */ jsx79(BytesSize, { bytes: total.transferredBytes }) })
6983
+ /* @__PURE__ */ jsxs38(Stack5, { direction: "row", alignItems: "center", spacing: 1, children: [
6984
+ /* @__PURE__ */ jsx84(Typography17, { variant: "body2", color: "secondary", children: "Total Consumed per account" }),
6985
+ /* @__PURE__ */ jsx84(Typography17, { variant: "h3", children: /* @__PURE__ */ jsx84(BytesSize, { bytes: total.transferredBytes }) })
6300
6986
  ] }),
6301
- /* @__PURE__ */ jsxs35(Stack5, { direction: "row", alignItems: "center", spacing: 1, children: [
6302
- /* @__PURE__ */ jsx79(Typography16, { variant: "body2", color: "secondary", children: "Total Stored per account" }),
6303
- /* @__PURE__ */ jsx79(Typography16, { variant: "h3", children: /* @__PURE__ */ jsx79(BytesSize, { bytes: total.storedBytes }) })
6987
+ /* @__PURE__ */ jsxs38(Stack5, { direction: "row", alignItems: "center", spacing: 1, children: [
6988
+ /* @__PURE__ */ jsx84(Typography17, { variant: "body2", color: "secondary", children: "Total Stored per account" }),
6989
+ /* @__PURE__ */ jsx84(Typography17, { variant: "h3", children: /* @__PURE__ */ jsx84(BytesSize, { bytes: total.storedBytes }) })
6304
6990
  ] })
6305
6991
  ] })
6306
6992
  ] })
@@ -6317,10 +7003,10 @@ import ReactFlow, {
6317
7003
  BackgroundVariant,
6318
7004
  ConnectionLineType
6319
7005
  } from "reactflow";
6320
- import { Box as Box19 } from "@mui/material";
6321
- import { useTheme as useTheme4 } from "@mui/material/styles";
7006
+ import { Box as Box22 } from "@mui/material";
7007
+ import { useTheme as useTheme5 } from "@mui/material/styles";
6322
7008
  import { Background as Background2, Controls as Controls2, MiniMap as MiniMap2, Panel, BackgroundVariant as BackgroundVariant2, ConnectionLineType as ConnectionLineType2 } from "reactflow";
6323
- import { jsx as jsx80, jsxs as jsxs36 } from "react/jsx-runtime";
7009
+ import { jsx as jsx85, jsxs as jsxs39 } from "react/jsx-runtime";
6324
7010
  var FlowEditor = ({
6325
7011
  nodes,
6326
7012
  edges,
@@ -6337,7 +7023,7 @@ var FlowEditor = ({
6337
7023
  onInit,
6338
7024
  ...reactFlowProps
6339
7025
  }) => {
6340
- const theme2 = useTheme4();
7026
+ const theme2 = useTheme5();
6341
7027
  const handleInit = useCallback7(
6342
7028
  (instance) => {
6343
7029
  if (onInit) {
@@ -6346,8 +7032,8 @@ var FlowEditor = ({
6346
7032
  },
6347
7033
  [onInit]
6348
7034
  );
6349
- return /* @__PURE__ */ jsx80(ReactFlowProvider, { children: /* @__PURE__ */ jsx80(
6350
- Box19,
7035
+ return /* @__PURE__ */ jsx85(ReactFlowProvider, { children: /* @__PURE__ */ jsx85(
7036
+ Box22,
6351
7037
  {
6352
7038
  sx: {
6353
7039
  width: "100%",
@@ -6359,7 +7045,7 @@ var FlowEditor = ({
6359
7045
  ...containerProps?.sx
6360
7046
  },
6361
7047
  ...containerProps,
6362
- children: /* @__PURE__ */ jsxs36(
7048
+ children: /* @__PURE__ */ jsxs39(
6363
7049
  ReactFlow,
6364
7050
  {
6365
7051
  nodes,
@@ -6381,7 +7067,7 @@ var FlowEditor = ({
6381
7067
  },
6382
7068
  ...reactFlowProps,
6383
7069
  children: [
6384
- showBackground && /* @__PURE__ */ jsx80(
7070
+ showBackground && /* @__PURE__ */ jsx85(
6385
7071
  Background,
6386
7072
  {
6387
7073
  variant: backgroundVariant,
@@ -6390,8 +7076,8 @@ var FlowEditor = ({
6390
7076
  color: theme2.palette.divider
6391
7077
  }
6392
7078
  ),
6393
- showControls && /* @__PURE__ */ jsx80(Controls, {}),
6394
- showMinimap && /* @__PURE__ */ jsx80(
7079
+ showControls && /* @__PURE__ */ jsx85(Controls, {}),
7080
+ showMinimap && /* @__PURE__ */ jsx85(
6395
7081
  MiniMap,
6396
7082
  {
6397
7083
  nodeColor: (node) => {
@@ -6414,15 +7100,15 @@ var FlowEditor = ({
6414
7100
  };
6415
7101
 
6416
7102
  // src/components/third-party/CodeEditor.tsx
6417
- import { useCallback as useCallback8, useEffect as useEffect3, useState as useState9, useRef as useRef2 } from "react";
7103
+ import { useCallback as useCallback8, useEffect as useEffect3, useState as useState10, useRef as useRef2 } from "react";
6418
7104
  import Editor from "@monaco-editor/react";
6419
- import { Box as Box20, IconButton as IconButton8, Tooltip as Tooltip7 } from "@mui/material";
7105
+ import { Box as Box23, IconButton as IconButton9, Tooltip as Tooltip7 } from "@mui/material";
6420
7106
  import FullscreenIcon from "@mui/icons-material/Fullscreen";
6421
7107
  import FullscreenExitIcon from "@mui/icons-material/FullscreenExit";
6422
7108
  import ErrorOutlineIcon from "@mui/icons-material/ErrorOutline";
6423
- import ExpandMoreIcon2 from "@mui/icons-material/ExpandMore";
7109
+ import ExpandMoreIcon3 from "@mui/icons-material/ExpandMore";
6424
7110
  import ExpandLessIcon from "@mui/icons-material/ExpandLess";
6425
- import { jsx as jsx81, jsxs as jsxs37 } from "react/jsx-runtime";
7111
+ import { jsx as jsx86, jsxs as jsxs40 } from "react/jsx-runtime";
6426
7112
  var configureTypeScript = (monaco) => {
6427
7113
  monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
6428
7114
  target: monaco.languages.typescript.ScriptTarget.ES2020,
@@ -6466,15 +7152,15 @@ var CodeEditor = ({
6466
7152
  containerProps,
6467
7153
  typeDefinitions
6468
7154
  }) => {
6469
- const [isEditorReady, setIsEditorReady] = useState9(false);
6470
- const [validationErrors, setValidationErrors] = useState9([]);
6471
- const [isFullscreen, setIsFullscreen] = useState9(false);
6472
- const [tsCode, setTsCode] = useState9(value);
6473
- const [actualHeight, setActualHeight] = useState9(
7155
+ const [isEditorReady, setIsEditorReady] = useState10(false);
7156
+ const [validationErrors, setValidationErrors] = useState10([]);
7157
+ const [isFullscreen, setIsFullscreen] = useState10(false);
7158
+ const [tsCode, setTsCode] = useState10(value);
7159
+ const [actualHeight, setActualHeight] = useState10(
6474
7160
  typeof height === "number" ? `${height}px` : height
6475
7161
  );
6476
- const [showProblems, setShowProblems] = useState9(false);
6477
- const [hasUserToggledProblems, setHasUserToggledProblems] = useState9(false);
7162
+ const [showProblems, setShowProblems] = useState10(false);
7163
+ const [hasUserToggledProblems, setHasUserToggledProblems] = useState10(false);
6478
7164
  useEffect3(() => {
6479
7165
  if (hasUserToggledProblems) return;
6480
7166
  if (validationErrors.length > 0) {
@@ -6634,8 +7320,8 @@ var CodeEditor = ({
6634
7320
  theme: themeProp || "vs",
6635
7321
  ...options2
6636
7322
  };
6637
- return /* @__PURE__ */ jsx81(
6638
- Box20,
7323
+ return /* @__PURE__ */ jsx86(
7324
+ Box23,
6639
7325
  {
6640
7326
  sx: {
6641
7327
  display: "flex",
@@ -6655,8 +7341,8 @@ var CodeEditor = ({
6655
7341
  pb: isFullscreen ? 2 : 0,
6656
7342
  overflow: isFullscreen ? "hidden" : "visible"
6657
7343
  },
6658
- children: /* @__PURE__ */ jsxs37(
6659
- Box20,
7344
+ children: /* @__PURE__ */ jsxs40(
7345
+ Box23,
6660
7346
  {
6661
7347
  sx: {
6662
7348
  flex: 1,
@@ -6671,8 +7357,8 @@ var CodeEditor = ({
6671
7357
  },
6672
7358
  ...containerProps,
6673
7359
  children: [
6674
- /* @__PURE__ */ jsx81(Tooltip7, { title: isFullscreen ? "Exit Fullscreen" : "Fullscreen", children: /* @__PURE__ */ jsx81(
6675
- IconButton8,
7360
+ /* @__PURE__ */ jsx86(Tooltip7, { title: isFullscreen ? "Exit Fullscreen" : "Fullscreen", children: /* @__PURE__ */ jsx86(
7361
+ IconButton9,
6676
7362
  {
6677
7363
  onClick: toggleFullscreen,
6678
7364
  size: "small",
@@ -6689,11 +7375,11 @@ var CodeEditor = ({
6689
7375
  },
6690
7376
  boxShadow: 1
6691
7377
  },
6692
- children: isFullscreen ? /* @__PURE__ */ jsx81(FullscreenExitIcon, { fontSize: "small" }) : /* @__PURE__ */ jsx81(FullscreenIcon, { fontSize: "small" })
7378
+ children: isFullscreen ? /* @__PURE__ */ jsx86(FullscreenExitIcon, { fontSize: "small" }) : /* @__PURE__ */ jsx86(FullscreenIcon, { fontSize: "small" })
6693
7379
  }
6694
7380
  ) }),
6695
- /* @__PURE__ */ jsx81(
6696
- Box20,
7381
+ /* @__PURE__ */ jsx86(
7382
+ Box23,
6697
7383
  {
6698
7384
  sx: {
6699
7385
  flex: 1,
@@ -6704,7 +7390,7 @@ var CodeEditor = ({
6704
7390
  position: "relative",
6705
7391
  height: isFullscreen ? "100%" : actualHeight
6706
7392
  },
6707
- children: /* @__PURE__ */ jsx81(
7393
+ children: /* @__PURE__ */ jsx86(
6708
7394
  Editor,
6709
7395
  {
6710
7396
  height: "100%",
@@ -6715,7 +7401,7 @@ var CodeEditor = ({
6715
7401
  onMount: handleEditorDidMount,
6716
7402
  theme: themeProp || "vs",
6717
7403
  options: defaultOptions,
6718
- loading: /* @__PURE__ */ jsx81(Box20, { sx: { p: 2, textAlign: "center" }, children: "Loading Monaco Editor..." }),
7404
+ loading: /* @__PURE__ */ jsx86(Box23, { sx: { p: 2, textAlign: "center" }, children: "Loading Monaco Editor..." }),
6719
7405
  beforeMount: (monaco) => {
6720
7406
  console.log("CodeEditor: beforeMount called", { monaco: !!monaco });
6721
7407
  }
@@ -6723,8 +7409,8 @@ var CodeEditor = ({
6723
7409
  )
6724
7410
  }
6725
7411
  ),
6726
- validationErrors.length > 0 && /* @__PURE__ */ jsxs37(
6727
- Box20,
7412
+ validationErrors.length > 0 && /* @__PURE__ */ jsxs40(
7413
+ Box23,
6728
7414
  {
6729
7415
  sx: {
6730
7416
  borderTop: 1,
@@ -6737,8 +7423,8 @@ var CodeEditor = ({
6737
7423
  transition: "max-height 0.2s ease"
6738
7424
  },
6739
7425
  children: [
6740
- /* @__PURE__ */ jsxs37(
6741
- Box20,
7426
+ /* @__PURE__ */ jsxs40(
7427
+ Box23,
6742
7428
  {
6743
7429
  sx: {
6744
7430
  display: "flex",
@@ -6752,16 +7438,16 @@ var CodeEditor = ({
6752
7438
  color: "text.secondary"
6753
7439
  },
6754
7440
  children: [
6755
- /* @__PURE__ */ jsx81(ErrorOutlineIcon, { color: "error", fontSize: "small" }),
6756
- /* @__PURE__ */ jsx81(Box20, { sx: { fontWeight: 600, color: "text.primary" }, children: "Problems" }),
6757
- /* @__PURE__ */ jsxs37(Box20, { sx: { ml: 1 }, children: [
7441
+ /* @__PURE__ */ jsx86(ErrorOutlineIcon, { color: "error", fontSize: "small" }),
7442
+ /* @__PURE__ */ jsx86(Box23, { sx: { fontWeight: 600, color: "text.primary" }, children: "Problems" }),
7443
+ /* @__PURE__ */ jsxs40(Box23, { sx: { ml: 1 }, children: [
6758
7444
  validationErrors.length,
6759
7445
  " error",
6760
7446
  validationErrors.length > 1 ? "s" : ""
6761
7447
  ] }),
6762
- /* @__PURE__ */ jsx81(Box20, { sx: { flex: 1 } }),
6763
- /* @__PURE__ */ jsx81(
6764
- IconButton8,
7448
+ /* @__PURE__ */ jsx86(Box23, { sx: { flex: 1 } }),
7449
+ /* @__PURE__ */ jsx86(
7450
+ IconButton9,
6765
7451
  {
6766
7452
  size: "small",
6767
7453
  "aria-label": "Toggle problems panel",
@@ -6769,14 +7455,14 @@ var CodeEditor = ({
6769
7455
  setHasUserToggledProblems(true);
6770
7456
  setShowProblems((s) => !s);
6771
7457
  },
6772
- children: showProblems ? /* @__PURE__ */ jsx81(ExpandMoreIcon2, { fontSize: "small" }) : /* @__PURE__ */ jsx81(ExpandLessIcon, { fontSize: "small" })
7458
+ children: showProblems ? /* @__PURE__ */ jsx86(ExpandMoreIcon3, { fontSize: "small" }) : /* @__PURE__ */ jsx86(ExpandLessIcon, { fontSize: "small" })
6773
7459
  }
6774
7460
  )
6775
7461
  ]
6776
7462
  }
6777
7463
  ),
6778
- showProblems && /* @__PURE__ */ jsx81(Box20, { sx: { overflow: "auto" }, children: validationErrors.map((error, index) => /* @__PURE__ */ jsxs37(
6779
- Box20,
7464
+ showProblems && /* @__PURE__ */ jsx86(Box23, { sx: { overflow: "auto" }, children: validationErrors.map((error, index) => /* @__PURE__ */ jsxs40(
7465
+ Box23,
6780
7466
  {
6781
7467
  onClick: () => gotoMarker(error),
6782
7468
  sx: {
@@ -6792,12 +7478,12 @@ var CodeEditor = ({
6792
7478
  fontSize: "0.85rem"
6793
7479
  },
6794
7480
  children: [
6795
- /* @__PURE__ */ jsx81(ErrorOutlineIcon, { color: "error", sx: { fontSize: 18 } }),
6796
- /* @__PURE__ */ jsxs37(Box20, { sx: { color: "text.secondary", width: 64 }, children: [
7481
+ /* @__PURE__ */ jsx86(ErrorOutlineIcon, { color: "error", sx: { fontSize: 18 } }),
7482
+ /* @__PURE__ */ jsxs40(Box23, { sx: { color: "text.secondary", width: 64 }, children: [
6797
7483
  "Line ",
6798
7484
  error.startLineNumber
6799
7485
  ] }),
6800
- /* @__PURE__ */ jsx81(Box20, { sx: { color: "text.primary", flex: 1, minWidth: 0 }, children: error.message })
7486
+ /* @__PURE__ */ jsx86(Box23, { sx: { color: "text.primary", flex: 1, minWidth: 0 }, children: error.message })
6801
7487
  ]
6802
7488
  },
6803
7489
  `${error.startLineNumber}-${error.startColumn}-${index}`
@@ -6827,7 +7513,7 @@ export {
6827
7513
  BackgroundVariant2 as BackgroundVariant,
6828
7514
  Badge,
6829
7515
  BarTrackingIcon,
6830
- Box12 as Box,
7516
+ Box15 as Box,
6831
7517
  Breadcrumbs,
6832
7518
  Button,
6833
7519
  ButtonGroup,
@@ -6851,6 +7537,10 @@ export {
6851
7537
  Container2 as Container,
6852
7538
  Controls2 as Controls,
6853
7539
  DecentralizedServerIcon,
7540
+ DeploymentDashboardCard,
7541
+ DeploymentDashboardPanel,
7542
+ DeploymentDashboardTree,
7543
+ DeploymentEntityContextMenu,
6854
7544
  Dialog,
6855
7545
  DiscordIcon,
6856
7546
  Divider4 as Divider,
@@ -6893,7 +7583,7 @@ export {
6893
7583
  OnboardingProvider,
6894
7584
  Pagination,
6895
7585
  Panel2 as Panel,
6896
- Paper,
7586
+ Paper2 as Paper,
6897
7587
  PeriodSelect,
6898
7588
  Progress,
6899
7589
  QRCode,
@@ -6926,11 +7616,12 @@ export {
6926
7616
  Toolbar,
6927
7617
  Tooltip6 as Tooltip,
6928
7618
  Truncate,
6929
- Typography11 as Typography,
7619
+ Typography12 as Typography,
6930
7620
  UploadFileIcon,
6931
7621
  UploadFolderIcon,
6932
7622
  WorkspaceSelectorButton,
6933
7623
  colors,
7624
+ contextMenuItems,
6934
7625
  theme,
6935
7626
  useIsDesktop,
6936
7627
  useIsMobile,