@cere/cere-design-system 0.0.40 → 0.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -204,6 +204,18 @@ var import_styles = require("@mui/material/styles");
204
204
 
205
205
  // src/theme/primitives.ts
206
206
  var primitives = {
207
+ /**
208
+ * Cere brand violet — the company's primary action color across web
209
+ * surfaces. Use via `semantic.action.primary` rather than reaching for
210
+ * raw hex.
211
+ */
212
+ violet: {
213
+ 100: "#f0e0fb",
214
+ 300: "#d0bcff",
215
+ 500: "#aa44f2",
216
+ 600: "#7c59ac"
217
+ },
218
+ /** Legacy MUI blue. Retained for code paths that still reach for blue tokens by name (e.g. ROB highlights). Not the brand primary. */
207
219
  blue: {
208
220
  500: "#1976d2",
209
221
  600: "#1565c0"
@@ -345,8 +357,8 @@ var workflowConnectionColors = {
345
357
  // src/theme/semantic.ts
346
358
  var semantic = {
347
359
  action: {
348
- primary: primitives.blue[500],
349
- primaryHover: primitives.blue[600],
360
+ primary: primitives.violet[500],
361
+ primaryHover: primitives.violet[600],
350
362
  disabled: primitives.grey[400]
351
363
  },
352
364
  surface: {
@@ -2359,7 +2371,7 @@ function useSearchHotkeys(inputRef, options2 = {}) {
2359
2371
  function onKeyDown(event) {
2360
2372
  if (enableK && event.key.toLowerCase() === "k") {
2361
2373
  const correctMod = mac ? event.metaKey && !event.ctrlKey : event.ctrlKey && !event.metaKey;
2362
- if (correctMod) {
2374
+ if (correctMod && !event.shiftKey && !event.altKey) {
2363
2375
  event.preventDefault();
2364
2376
  inputRef.current?.focus();
2365
2377
  return;
@@ -2387,8 +2399,9 @@ var ShortcutHint = () => {
2387
2399
  setMounted(true);
2388
2400
  }, []);
2389
2401
  if (!mounted) return null;
2390
- const modKey = isMacPlatform() ? "\u2318" : "Ctrl";
2391
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
2402
+ const isMac = isMacPlatform();
2403
+ const label = isMac ? "\u2318\u2009K" : "Ctrl + K";
2404
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2392
2405
  import_Box.default,
2393
2406
  {
2394
2407
  component: "span",
@@ -2405,10 +2418,7 @@ var ShortcutHint = () => {
2405
2418
  color: "text.secondary",
2406
2419
  lineHeight: 1
2407
2420
  },
2408
- children: [
2409
- modKey,
2410
- "K"
2411
- ]
2421
+ children: label
2412
2422
  }
2413
2423
  );
2414
2424
  };
@@ -2426,21 +2436,19 @@ var SearchField = ({
2426
2436
  onChange?.(e);
2427
2437
  onSearch?.(e.target.value);
2428
2438
  };
2429
- const pillSx = variant === "pill" ? {
2430
- "& .MuiOutlinedInput-root": {
2431
- borderRadius: "999px",
2432
- paddingRight: "6px"
2433
- }
2434
- } : void 0;
2439
+ const pillInputSx = variant === "pill" ? { borderRadius: "999px", paddingRight: "6px" } : void 0;
2435
2440
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2436
2441
  TextField,
2437
2442
  {
2438
2443
  placeholder,
2439
2444
  onChange: handleChange,
2440
- sx: [pillSx, ...Array.isArray(sx) ? sx : [sx]],
2441
- InputProps: {
2442
- startAdornment: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_InputAdornment.default, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Search.default, { style: { fontSize: 18, color: theme2.palette.text.disabled } }) }),
2443
- endAdornment: shortcutHint ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_InputAdornment.default, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ShortcutHint, {}) }) : void 0
2445
+ sx,
2446
+ slotProps: {
2447
+ input: {
2448
+ ...pillInputSx ? { sx: pillInputSx } : {},
2449
+ startAdornment: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_InputAdornment.default, { position: "start", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Search.default, { style: { fontSize: 18, color: theme2.palette.text.disabled } }) }),
2450
+ endAdornment: shortcutHint ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_InputAdornment.default, { position: "end", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ShortcutHint, {}) }) : void 0
2451
+ }
2444
2452
  },
2445
2453
  ...props
2446
2454
  }
@@ -6040,7 +6048,9 @@ var import_IconButton6 = __toESM(require("@mui/material/IconButton"));
6040
6048
  var import_Typography5 = __toESM(require("@mui/material/Typography"));
6041
6049
  var import_ChevronLeft3 = __toESM(require("@mui/icons-material/ChevronLeft"));
6042
6050
  var import_ChevronRight3 = __toESM(require("@mui/icons-material/ChevronRight"));
6051
+ var import_styles30 = require("@mui/material/styles");
6043
6052
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"));
6053
+ var import_embla_carousel_autoplay = __toESM(require("embla-carousel-autoplay"));
6044
6054
  var import_jsx_runtime52 = require("react/jsx-runtime");
6045
6055
  var pad2 = (n) => String(n).padStart(2, "0");
6046
6056
  function Carousel({
@@ -6058,33 +6068,49 @@ function Carousel({
6058
6068
  onSelect,
6059
6069
  arrowSx,
6060
6070
  dotColor,
6061
- dotActiveColor
6071
+ dotActiveColor,
6072
+ emblaOptions
6062
6073
  }) {
6063
- const [emblaRef, emblaApi] = (0, import_embla_carousel_react.default)({ loop: true, align: "start" });
6074
+ const plugins = (0, import_react19.useMemo)(
6075
+ () => autoplay ? [
6076
+ (0, import_embla_carousel_autoplay.default)({
6077
+ delay: autoplayDelayMs,
6078
+ stopOnInteraction: true,
6079
+ stopOnMouseEnter: pauseOnHover
6080
+ })
6081
+ ] : [],
6082
+ [autoplay, autoplayDelayMs, pauseOnHover]
6083
+ );
6084
+ const [emblaRef, emblaApi] = (0, import_embla_carousel_react.default)(
6085
+ { loop: true, align: "start", ...emblaOptions },
6086
+ plugins
6087
+ );
6064
6088
  const [selected, setSelected] = (0, import_react19.useState)(0);
6065
- const [paused, setPaused] = (0, import_react19.useState)(false);
6089
+ const [snapCount, setSnapCount] = (0, import_react19.useState)(0);
6066
6090
  const count = slides.length;
6067
6091
  (0, import_react19.useEffect)(() => {
6068
6092
  if (!emblaApi) return;
6093
+ const refreshSnaps = () => {
6094
+ setSnapCount(emblaApi.scrollSnapList().length);
6095
+ };
6069
6096
  const handleSelect = () => {
6070
6097
  const next = emblaApi.selectedScrollSnap();
6071
6098
  setSelected(next);
6072
6099
  onSelect?.(next);
6073
6100
  };
6074
6101
  emblaApi.on("select", handleSelect);
6102
+ emblaApi.on("reInit", refreshSnaps);
6103
+ refreshSnaps();
6075
6104
  handleSelect();
6076
6105
  return () => {
6077
6106
  emblaApi.off("select", handleSelect);
6107
+ emblaApi.off("reInit", refreshSnaps);
6078
6108
  };
6079
6109
  }, [emblaApi, onSelect]);
6080
- (0, import_react19.useEffect)(() => {
6081
- if (!emblaApi || !autoplay || paused || count <= 1) return;
6082
- const id = window.setInterval(() => emblaApi.scrollNext(), autoplayDelayMs);
6083
- return () => window.clearInterval(id);
6084
- }, [emblaApi, autoplay, paused, count, autoplayDelayMs]);
6085
6110
  if (count === 0) return null;
6086
6111
  const showControls = count > 1;
6087
6112
  const slideBasis = `${100 / Math.max(1, slidesPerView)}%`;
6113
+ const dotCount = snapCount > 0 ? snapCount : count;
6088
6114
  const arrowBaseSx = {
6089
6115
  position: "absolute",
6090
6116
  top: "50%",
@@ -6099,8 +6125,6 @@ function Carousel({
6099
6125
  role: "region",
6100
6126
  "aria-roledescription": "carousel",
6101
6127
  "aria-label": ariaLabel,
6102
- onPointerEnter: pauseOnHover ? () => setPaused(true) : void 0,
6103
- onPointerLeave: pauseOnHover ? () => setPaused(false) : void 0,
6104
6128
  sx: { position: "relative", width: "100%" },
6105
6129
  children: [
6106
6130
  /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_Box7.default, { ref: emblaRef, sx: { overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_Box7.default, { sx: { display: "flex" }, children: slides.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
@@ -6138,21 +6162,21 @@ function Carousel({
6138
6162
  import_Typography5.default,
6139
6163
  {
6140
6164
  variant: "caption",
6141
- sx: {
6165
+ sx: (theme2) => ({
6142
6166
  position: "absolute",
6143
6167
  top: 12,
6144
6168
  right: 16,
6145
6169
  px: 1,
6146
6170
  py: 0.25,
6147
6171
  borderRadius: 1,
6148
- bgcolor: "rgba(0,0,0,0.5)",
6172
+ bgcolor: (0, import_styles30.alpha)(theme2.palette.common.black, 0.5),
6149
6173
  color: "common.white",
6150
6174
  letterSpacing: 1
6151
- },
6175
+ }),
6152
6176
  children: [
6153
6177
  pad2(selected + 1),
6154
6178
  " / ",
6155
- pad2(count)
6179
+ pad2(dotCount)
6156
6180
  ]
6157
6181
  }
6158
6182
  ),
@@ -6170,7 +6194,7 @@ function Carousel({
6170
6194
  justifyContent: "center",
6171
6195
  gap: 1
6172
6196
  },
6173
- children: slides.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
6197
+ children: Array.from({ length: dotCount }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
6174
6198
  import_Box7.default,
6175
6199
  {
6176
6200
  component: "button",
@@ -6190,7 +6214,7 @@ function Carousel({
6190
6214
  transition: "width 0.2s ease, background 0.2s ease"
6191
6215
  })
6192
6216
  },
6193
- getKey ? getKey(item, i) : i
6217
+ i
6194
6218
  ))
6195
6219
  }
6196
6220
  )
@@ -6280,7 +6304,7 @@ function DefinitionRow({
6280
6304
  ...divider && {
6281
6305
  borderBottom: "1px solid",
6282
6306
  borderColor: "divider",
6283
- "&:last-of-type": { borderBottom: "none" }
6307
+ "&:last-child": { borderBottom: "none" }
6284
6308
  }
6285
6309
  },
6286
6310
  children: [
@@ -6355,14 +6379,20 @@ function PanelDialog({
6355
6379
  const paperBaseSx = {
6356
6380
  width: WIDTH_PX[width],
6357
6381
  maxWidth: "100%",
6382
+ // Lay paper children out as a flex column so the body can `flex: 1` and
6383
+ // own its own scroll region.
6384
+ display: "flex",
6385
+ flexDirection: "column",
6358
6386
  ...isRight && {
6359
6387
  position: "absolute",
6360
6388
  right: 0,
6361
6389
  top: 0,
6362
6390
  bottom: 0,
6363
6391
  margin: 0,
6364
- maxHeight: "100vh",
6365
- height: "100vh",
6392
+ // Use dynamic viewport units so mobile browsers (esp. iOS Safari) don't
6393
+ // pop the layout when the URL bar shows/hides.
6394
+ maxHeight: "100dvh",
6395
+ height: "100dvh",
6366
6396
  borderRadius: 0
6367
6397
  }
6368
6398
  };
@@ -6371,7 +6401,7 @@ function PanelDialog({
6371
6401
  {
6372
6402
  open,
6373
6403
  onClose,
6374
- TransitionComponent,
6404
+ slots: TransitionComponent ? { transition: TransitionComponent } : void 0,
6375
6405
  slotProps: {
6376
6406
  paper: {
6377
6407
  "aria-label": accessibleName,
@@ -6432,17 +6462,17 @@ var import_CardContent = __toESM(require("@mui/material/CardContent"));
6432
6462
  var import_CardHeader = __toESM(require("@mui/material/CardHeader"));
6433
6463
  var import_CardActions = __toESM(require("@mui/material/CardActions"));
6434
6464
  var import_CardMedia = __toESM(require("@mui/material/CardMedia"));
6435
- var import_styles30 = require("@mui/material/styles");
6465
+ var import_styles31 = require("@mui/material/styles");
6436
6466
  var import_jsx_runtime56 = require("react/jsx-runtime");
6437
6467
  var CardMedia = (props) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_CardMedia.default, { ...props });
6438
- var StyledCard = (0, import_styles30.styled)(import_Card.default, {
6468
+ var StyledCard = (0, import_styles31.styled)(import_Card.default, {
6439
6469
  shouldForwardProp: (prop) => prop !== "hoverable" && prop !== "clickable" && prop !== "dsVariant"
6440
6470
  })(
6441
6471
  ({ theme: theme2, hoverable, clickable, dsVariant }) => ({
6442
6472
  borderRadius: 8,
6443
6473
  transition: "all 0.2s ease-in-out",
6444
6474
  ...dsVariant === "standard" && {
6445
- boxShadow: "0px 1px 3px rgba(0, 0, 0, 0.12)",
6475
+ boxShadow: theme2.shadows[1],
6446
6476
  backgroundColor: theme2.palette.background.paper
6447
6477
  },
6448
6478
  ...dsVariant === "tinted" && {
@@ -6460,7 +6490,7 @@ var StyledCard = (0, import_styles30.styled)(import_Card.default, {
6460
6490
  },
6461
6491
  ...hoverable && {
6462
6492
  "&:hover": {
6463
- boxShadow: "0px 4px 12px rgba(0, 0, 0, 0.15)",
6493
+ boxShadow: theme2.shadows[4],
6464
6494
  transform: "translateY(-2px)"
6465
6495
  }
6466
6496
  }
@@ -6497,12 +6527,12 @@ var CardActions = (props) => {
6497
6527
 
6498
6528
  // src/components/layout/List.tsx
6499
6529
  var import_material30 = require("@mui/material");
6500
- var import_styles31 = require("@mui/material/styles");
6530
+ var import_styles32 = require("@mui/material/styles");
6501
6531
  var import_jsx_runtime57 = require("react/jsx-runtime");
6502
6532
  var List6 = (props) => {
6503
6533
  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_material30.List, { ...props });
6504
6534
  };
6505
- var StyledListItem = (0, import_styles31.styled)(import_material30.ListItem, {
6535
+ var StyledListItem = (0, import_styles32.styled)(import_material30.ListItem, {
6506
6536
  shouldForwardProp: (prop) => prop !== "hoverable"
6507
6537
  })(({ hoverable = true, theme: theme2 }) => ({
6508
6538
  border: `1px solid ${theme2.palette.grey[200]}`,
@@ -6539,14 +6569,14 @@ var ListItem4 = ({
6539
6569
 
6540
6570
  // src/components/layout/Avatar.tsx
6541
6571
  var import_Avatar = __toESM(require("@mui/material/Avatar"));
6542
- var import_styles32 = require("@mui/material/styles");
6572
+ var import_styles33 = require("@mui/material/styles");
6543
6573
  var import_jsx_runtime58 = require("react/jsx-runtime");
6544
6574
  var sizeMap = {
6545
6575
  small: 32,
6546
6576
  medium: 40,
6547
6577
  large: 56
6548
6578
  };
6549
- var StyledAvatar = (0, import_styles32.styled)(import_Avatar.default, {
6579
+ var StyledAvatar = (0, import_styles33.styled)(import_Avatar.default, {
6550
6580
  shouldForwardProp: (prop) => prop !== "avatarSize"
6551
6581
  })(({ avatarSize = 40, theme: theme2 }) => ({
6552
6582
  width: avatarSize,
@@ -6562,13 +6592,13 @@ var Avatar5 = ({ size: size3 = "medium", ...props }) => {
6562
6592
 
6563
6593
  // src/components/layout/Table.tsx
6564
6594
  var import_material31 = require("@mui/material");
6565
- var import_styles33 = require("@mui/material/styles");
6595
+ var import_styles34 = require("@mui/material/styles");
6566
6596
  var import_jsx_runtime59 = require("react/jsx-runtime");
6567
- var StyledTableContainer = (0, import_styles33.styled)(import_material31.TableContainer)(({ theme: theme2 }) => ({
6597
+ var StyledTableContainer = (0, import_styles34.styled)(import_material31.TableContainer)(({ theme: theme2 }) => ({
6568
6598
  borderRadius: 8,
6569
6599
  border: `1px solid ${theme2.palette.grey[200]}`
6570
6600
  }));
6571
- var StyledTableHead = (0, import_styles33.styled)(import_material31.TableHead)(({ theme: theme2 }) => ({
6601
+ var StyledTableHead = (0, import_styles34.styled)(import_material31.TableHead)(({ theme: theme2 }) => ({
6572
6602
  backgroundColor: theme2.palette.grey[50],
6573
6603
  "& .MuiTableCell-head": {
6574
6604
  fontWeight: 600,
@@ -6602,9 +6632,9 @@ var import_material32 = require("@mui/material");
6602
6632
  var import_Breadcrumbs = __toESM(require("@mui/material/Breadcrumbs"));
6603
6633
  var import_Link3 = __toESM(require("@mui/material/Link"));
6604
6634
  var import_Typography8 = __toESM(require("@mui/material/Typography"));
6605
- var import_styles34 = require("@mui/material/styles");
6635
+ var import_styles35 = require("@mui/material/styles");
6606
6636
  var import_jsx_runtime60 = require("react/jsx-runtime");
6607
- var StyledBreadcrumbs = (0, import_styles34.styled)(import_Breadcrumbs.default)(({ theme: theme2 }) => ({
6637
+ var StyledBreadcrumbs = (0, import_styles35.styled)(import_Breadcrumbs.default)(({ theme: theme2 }) => ({
6608
6638
  "& .MuiBreadcrumbs-ol": {
6609
6639
  flexWrap: "nowrap"
6610
6640
  },
@@ -6612,7 +6642,7 @@ var StyledBreadcrumbs = (0, import_styles34.styled)(import_Breadcrumbs.default)(
6612
6642
  color: theme2.palette.text.secondary
6613
6643
  }
6614
6644
  }));
6615
- var StyledLink2 = (0, import_styles34.styled)(import_Link3.default)(({ theme: theme2 }) => ({
6645
+ var StyledLink2 = (0, import_styles35.styled)(import_Link3.default)(({ theme: theme2 }) => ({
6616
6646
  color: theme2.palette.primary.main,
6617
6647
  textDecoration: "none",
6618
6648
  "&:hover": {
@@ -6645,9 +6675,9 @@ var Breadcrumbs = ({ items, ...props }) => {
6645
6675
  // src/components/layout/Accordion.tsx
6646
6676
  var import_material33 = require("@mui/material");
6647
6677
  var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
6648
- var import_styles35 = require("@mui/material/styles");
6678
+ var import_styles36 = require("@mui/material/styles");
6649
6679
  var import_jsx_runtime61 = require("react/jsx-runtime");
6650
- var StyledAccordion = (0, import_styles35.styled)(import_material33.Accordion)(({ theme: theme2 }) => ({
6680
+ var StyledAccordion = (0, import_styles36.styled)(import_material33.Accordion)(({ theme: theme2 }) => ({
6651
6681
  borderRadius: 8,
6652
6682
  boxShadow: "none",
6653
6683
  border: `1px solid ${theme2.palette.grey[200]}`,
@@ -6658,7 +6688,7 @@ var StyledAccordion = (0, import_styles35.styled)(import_material33.Accordion)((
6658
6688
  margin: 0
6659
6689
  }
6660
6690
  }));
6661
- var StyledAccordionSummary = (0, import_styles35.styled)(import_material33.AccordionSummary)(({ theme: theme2 }) => ({
6691
+ var StyledAccordionSummary = (0, import_styles36.styled)(import_material33.AccordionSummary)(({ theme: theme2 }) => ({
6662
6692
  backgroundColor: theme2.palette.grey[50],
6663
6693
  borderRadius: "8px 8px 0 0",
6664
6694
  "&.Mui-expanded": {
@@ -6668,7 +6698,7 @@ var StyledAccordionSummary = (0, import_styles35.styled)(import_material33.Accor
6668
6698
  margin: "12px 0"
6669
6699
  }
6670
6700
  }));
6671
- var StyledAccordionDetails = (0, import_styles35.styled)(import_material33.AccordionDetails)({
6701
+ var StyledAccordionDetails = (0, import_styles36.styled)(import_material33.AccordionDetails)({
6672
6702
  padding: "16px"
6673
6703
  });
6674
6704
  var Accordion = ({
@@ -6685,9 +6715,9 @@ var Accordion = ({
6685
6715
 
6686
6716
  // src/components/layout/Paper.tsx
6687
6717
  var import_Paper = __toESM(require("@mui/material/Paper"));
6688
- var import_styles36 = require("@mui/material/styles");
6718
+ var import_styles37 = require("@mui/material/styles");
6689
6719
  var import_jsx_runtime62 = require("react/jsx-runtime");
6690
- var StyledPaper = (0, import_styles36.styled)(import_Paper.default)(({ theme: theme2 }) => ({
6720
+ var StyledPaper = (0, import_styles37.styled)(import_Paper.default)(({ theme: theme2 }) => ({
6691
6721
  borderRadius: 8,
6692
6722
  "&.MuiPaper-elevation": {
6693
6723
  boxShadow: "0px 2px 8px rgba(0, 0, 0, 0.08)"
@@ -6703,9 +6733,9 @@ var Paper = ({ variant = "elevation", ...props }) => {
6703
6733
 
6704
6734
  // src/components/layout/Divider.tsx
6705
6735
  var import_Divider = __toESM(require("@mui/material/Divider"));
6706
- var import_styles37 = require("@mui/material/styles");
6736
+ var import_styles38 = require("@mui/material/styles");
6707
6737
  var import_jsx_runtime63 = require("react/jsx-runtime");
6708
- var StyledDivider = (0, import_styles37.styled)(import_Divider.default)(({ theme: theme2 }) => ({
6738
+ var StyledDivider = (0, import_styles38.styled)(import_Divider.default)(({ theme: theme2 }) => ({
6709
6739
  borderColor: theme2.palette.grey[200]
6710
6740
  }));
6711
6741
  var Divider4 = ({ ...props }) => {
@@ -6726,9 +6756,9 @@ var import_material37 = require("@mui/material");
6726
6756
 
6727
6757
  // src/components/layout/AppBar.tsx
6728
6758
  var import_material38 = require("@mui/material");
6729
- var import_styles38 = require("@mui/material/styles");
6759
+ var import_styles39 = require("@mui/material/styles");
6730
6760
  var import_jsx_runtime64 = require("react/jsx-runtime");
6731
- var StyledAppBar = (0, import_styles38.styled)(import_material38.AppBar, {
6761
+ var StyledAppBar = (0, import_styles39.styled)(import_material38.AppBar, {
6732
6762
  shouldForwardProp: (prop) => prop !== "appBarHeight"
6733
6763
  })(({ appBarHeight = 64, theme: theme2 }) => ({
6734
6764
  backgroundColor: theme2.palette.background.paper,
@@ -6737,7 +6767,7 @@ var StyledAppBar = (0, import_styles38.styled)(import_material38.AppBar, {
6737
6767
  height: appBarHeight,
6738
6768
  zIndex: 1300
6739
6769
  }));
6740
- var StyledToolbar = (0, import_styles38.styled)(import_material38.Toolbar)(({ theme: theme2 }) => ({
6770
+ var StyledToolbar = (0, import_styles39.styled)(import_material38.Toolbar)(({ theme: theme2 }) => ({
6741
6771
  height: "100%",
6742
6772
  paddingLeft: theme2.spacing(2),
6743
6773
  paddingRight: theme2.spacing(2),
@@ -6923,7 +6953,7 @@ var import_Waves = __toESM(require("@mui/icons-material/Waves"));
6923
6953
  var import_RocketLaunchOutlined = __toESM(require("@mui/icons-material/RocketLaunchOutlined"));
6924
6954
  var import_InsertLink = __toESM(require("@mui/icons-material/InsertLink"));
6925
6955
  var import_SmartToyOutlined = __toESM(require("@mui/icons-material/SmartToyOutlined"));
6926
- var import_styles39 = require("@mui/material/styles");
6956
+ var import_styles40 = require("@mui/material/styles");
6927
6957
 
6928
6958
  // src/hooks/useControlledExpand.ts
6929
6959
  var import_react21 = require("react");
@@ -6971,7 +7001,7 @@ var ENTITY_CHIP_TYPOGRAPHY = {
6971
7001
  lineHeight: 1.33,
6972
7002
  letterSpacing: "0.07px"
6973
7003
  };
6974
- var StatusDot2 = (0, import_styles39.styled)(import_material40.Box, {
7004
+ var StatusDot2 = (0, import_styles40.styled)(import_material40.Box, {
6975
7005
  shouldForwardProp: (p) => p !== "status"
6976
7006
  })(({ status }) => ({
6977
7007
  width: 8,
@@ -7197,9 +7227,9 @@ var DeploymentDashboardCard = ({
7197
7227
 
7198
7228
  // src/components/layout/DeploymentEntityContextMenu/DeploymentEntityContextMenu.tsx
7199
7229
  var import_material41 = require("@mui/material");
7200
- var import_styles40 = require("@mui/material/styles");
7230
+ var import_styles41 = require("@mui/material/styles");
7201
7231
  var import_jsx_runtime68 = require("react/jsx-runtime");
7202
- var StyledMenu2 = (0, import_styles40.styled)(import_material41.Menu)({
7232
+ var StyledMenu2 = (0, import_styles41.styled)(import_material41.Menu)({
7203
7233
  "& .MuiPaper-root": {
7204
7234
  borderRadius: 4,
7205
7235
  boxShadow: deploymentSurfaceTokens.workspaceShadow,
@@ -7211,7 +7241,7 @@ var StyledMenu2 = (0, import_styles40.styled)(import_material41.Menu)({
7211
7241
  padding: 0
7212
7242
  }
7213
7243
  });
7214
- var StyledMenuItem = (0, import_styles40.styled)(import_material41.MenuItem)({
7244
+ var StyledMenuItem = (0, import_styles41.styled)(import_material41.MenuItem)({
7215
7245
  gap: 8,
7216
7246
  padding: "8px 0",
7217
7247
  borderRadius: 4,
@@ -7234,7 +7264,7 @@ var StyledMenuItem = (0, import_styles40.styled)(import_material41.MenuItem)({
7234
7264
  color: deploymentSurfaceTokens.textPrimary
7235
7265
  }
7236
7266
  });
7237
- var HighlightedMenuItem = (0, import_styles40.styled)(StyledMenuItem)({
7267
+ var HighlightedMenuItem = (0, import_styles41.styled)(StyledMenuItem)({
7238
7268
  backgroundColor: deploymentSurfaceTokens.highlightBg,
7239
7269
  border: `1px solid ${deploymentSurfaceTokens.highlightBorder}`,
7240
7270
  padding: 8,
@@ -7242,7 +7272,7 @@ var HighlightedMenuItem = (0, import_styles40.styled)(StyledMenuItem)({
7242
7272
  backgroundColor: deploymentSurfaceTokens.highlightBgHover
7243
7273
  }
7244
7274
  });
7245
- var ToggleMenuItem = (0, import_styles40.styled)(import_material41.MenuItem)({
7275
+ var ToggleMenuItem = (0, import_styles41.styled)(import_material41.MenuItem)({
7246
7276
  gap: 8,
7247
7277
  padding: "8px 0",
7248
7278
  cursor: "default",
@@ -7258,7 +7288,7 @@ var ToggleMenuItem = (0, import_styles40.styled)(import_material41.MenuItem)({
7258
7288
  color: deploymentSurfaceTokens.textPrimary
7259
7289
  }
7260
7290
  });
7261
- var EnableSwitch = (0, import_styles40.styled)(import_material41.Switch)(({ theme: theme2 }) => ({
7291
+ var EnableSwitch = (0, import_styles41.styled)(import_material41.Switch)(({ theme: theme2 }) => ({
7262
7292
  width: 32,
7263
7293
  height: 20,
7264
7294
  padding: 0,
@@ -7283,7 +7313,7 @@ var EnableSwitch = (0, import_styles40.styled)(import_material41.Switch)(({ them
7283
7313
  opacity: 1
7284
7314
  }
7285
7315
  }));
7286
- var StyledDivider2 = (0, import_styles40.styled)(import_material41.Divider)({
7316
+ var StyledDivider2 = (0, import_styles41.styled)(import_material41.Divider)({
7287
7317
  margin: "0 !important",
7288
7318
  borderColor: deploymentSurfaceTokens.strokeOutside
7289
7319
  });
@@ -7442,7 +7472,7 @@ var contextMenuItems = {
7442
7472
 
7443
7473
  // src/components/layout/DeploymentDashboardTree/DeploymentDashboardTree.tsx
7444
7474
  var import_material42 = require("@mui/material");
7445
- var import_styles41 = require("@mui/material/styles");
7475
+ var import_styles42 = require("@mui/material/styles");
7446
7476
  var import_jsx_runtime70 = require("react/jsx-runtime");
7447
7477
  var TREE_SP = {
7448
7478
  /** Vertical gap between sibling rows (Figma S / sp-8) */
@@ -7461,7 +7491,7 @@ var RAIL_OPACITY = {
7461
7491
  engagement: 0.4,
7462
7492
  agent: 0.4
7463
7493
  };
7464
- var Rail = (0, import_styles41.styled)(import_material42.Box, {
7494
+ var Rail = (0, import_styles42.styled)(import_material42.Box, {
7465
7495
  shouldForwardProp: (p) => p !== "railColor"
7466
7496
  })(({ railColor }) => ({
7467
7497
  width: TREE_SP.railWidth,
@@ -7479,7 +7509,7 @@ var TreeRow = ({ node, depth, onExpandToggle, onCopyId, renderCard }) => {
7479
7509
  );
7480
7510
  const entityColor = deploymentEntityColors[node.entityType] ?? deploymentEntityColors.workspace;
7481
7511
  const railOpacity = RAIL_OPACITY[node.entityType] ?? 0.5;
7482
- const railColor = (0, import_styles41.alpha)(entityColor, railOpacity);
7512
+ const railColor = (0, import_styles42.alpha)(entityColor, railOpacity);
7483
7513
  const renderedChildren = hasChildren && expanded ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_material42.Box, { sx: { display: "flex", gap: `${TREE_SP.railGap}px` }, children: [
7484
7514
  /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Rail, { railColor, "aria-hidden": true, "data-rail": true }),
7485
7515
  /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
@@ -7560,11 +7590,11 @@ var DeploymentDashboardTree = ({
7560
7590
 
7561
7591
  // src/components/layout/DeploymentDashboardPanel/DeploymentDashboardPanel.tsx
7562
7592
  var import_material43 = require("@mui/material");
7563
- var import_styles42 = require("@mui/material/styles");
7593
+ var import_styles43 = require("@mui/material/styles");
7564
7594
  var import_jsx_runtime71 = require("react/jsx-runtime");
7565
7595
  var PANEL_RADIUS = 12;
7566
7596
  var PANEL_SHADOW = "0px 1px 3px rgba(0, 0, 0, 0.08)";
7567
- var StyledPanel = (0, import_styles42.styled)(import_material43.Box)({
7597
+ var StyledPanel = (0, import_styles43.styled)(import_material43.Box)({
7568
7598
  backgroundColor: deploymentSurfaceTokens.surfaceHigh,
7569
7599
  border: `1px solid ${deploymentSurfaceTokens.strokeOutside}`,
7570
7600
  borderRadius: PANEL_RADIUS,
@@ -7810,7 +7840,7 @@ var WorkflowNode = ({
7810
7840
  var import_material46 = require("@mui/material");
7811
7841
  var import_Close4 = __toESM(require("@mui/icons-material/Close"));
7812
7842
  var import_Cancel = __toESM(require("@mui/icons-material/Cancel"));
7813
- var import_styles43 = require("@mui/material/styles");
7843
+ var import_styles44 = require("@mui/material/styles");
7814
7844
  var import_jsx_runtime73 = require("react/jsx-runtime");
7815
7845
  var WorkflowTopBar = ({
7816
7846
  title = "Agent visualization flow chart",
@@ -7828,7 +7858,7 @@ var WorkflowTopBar = ({
7828
7858
  sx,
7829
7859
  ...boxProps
7830
7860
  }) => {
7831
- const chrome = (0, import_styles43.useTheme)().palette.workflow.chrome;
7861
+ const chrome = (0, import_styles44.useTheme)().palette.workflow.chrome;
7832
7862
  return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7833
7863
  import_material46.Box,
7834
7864
  {
@@ -8152,7 +8182,7 @@ var import_Stop = __toESM(require("@mui/icons-material/Stop"));
8152
8182
  var import_ChevronLeft4 = __toESM(require("@mui/icons-material/ChevronLeft"));
8153
8183
  var import_ChevronRight5 = __toESM(require("@mui/icons-material/ChevronRight"));
8154
8184
  var import_Replay = __toESM(require("@mui/icons-material/Replay"));
8155
- var import_styles44 = require("@mui/material/styles");
8185
+ var import_styles45 = require("@mui/material/styles");
8156
8186
  var import_jsx_runtime75 = require("react/jsx-runtime");
8157
8187
  var SpeedButton = ({ value, selected, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
8158
8188
  Button,
@@ -8186,7 +8216,7 @@ var WorkflowTimeBar = ({
8186
8216
  sx,
8187
8217
  ...boxProps
8188
8218
  }) => {
8189
- const chrome = (0, import_styles44.useTheme)().palette.workflow.chrome;
8219
+ const chrome = (0, import_styles45.useTheme)().palette.workflow.chrome;
8190
8220
  const boundedProgress = Math.max(0, Math.min(100, progress));
8191
8221
  const atFirstStep = currentStep <= 1;
8192
8222
  const atLastStep = currentStep >= totalSteps;
@@ -9519,7 +9549,7 @@ var TimeSeriesGraph = ({
9519
9549
  var import_react40 = require("react");
9520
9550
  var import_reactflow = __toESM(require("reactflow"));
9521
9551
  var import_material73 = require("@mui/material");
9522
- var import_styles45 = require("@mui/material/styles");
9552
+ var import_styles46 = require("@mui/material/styles");
9523
9553
  var import_reactflow2 = require("reactflow");
9524
9554
  var import_jsx_runtime104 = require("react/jsx-runtime");
9525
9555
  var FlowEditor = ({
@@ -9542,7 +9572,7 @@ var FlowEditor = ({
9542
9572
  onInit,
9543
9573
  ...reactFlowProps
9544
9574
  }) => {
9545
- const theme2 = (0, import_styles45.useTheme)();
9575
+ const theme2 = (0, import_styles46.useTheme)();
9546
9576
  const handleInit = (0, import_react40.useCallback)(
9547
9577
  (instance) => {
9548
9578
  if (onInit) {