@cere/cere-design-system 0.0.42 → 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.d.mts CHANGED
@@ -21,6 +21,7 @@ import { TooltipProps as TooltipProps$1 } from '@mui/material/Tooltip';
21
21
  import { AlertProps as AlertProps$1 } from '@mui/material/Alert';
22
22
  import { SnackbarProps as SnackbarProps$1 } from '@mui/material/Snackbar';
23
23
  import { DrawerProps as DrawerProps$1 } from '@mui/material/Drawer';
24
+ import { EmblaOptionsType } from 'embla-carousel';
24
25
  import { CardProps as CardProps$1 } from '@mui/material/Card';
25
26
  import { CardContentProps } from '@mui/material/CardContent';
26
27
  import { CardHeaderProps } from '@mui/material/CardHeader';
@@ -463,7 +464,7 @@ interface SearchFieldProps extends Omit<TextFieldProps, 'InputProps' | 'variant'
463
464
  /** Visual treatment. `pill` renders a fully-rounded input. @default 'standard' */
464
465
  variant?: SearchFieldVariant;
465
466
  /**
466
- * Show a keyboard-shortcut hint adornment (⌘K on Mac, Ctrl+K elsewhere) at
467
+ * Show a keyboard-shortcut hint adornment (⌘ K on Mac, Ctrl + K elsewhere) at
467
468
  * the right edge. Pair with `useSearchHotkeys` to wire the key handler.
468
469
  */
469
470
  shortcutHint?: boolean;
@@ -1791,13 +1792,15 @@ interface CarouselProps<T> {
1791
1792
  dotColor?: string;
1792
1793
  /** Override the active dot color. Accepts any CSS color string. */
1793
1794
  dotActiveColor?: string;
1795
+ /** Escape hatch for advanced embla options. Most consumers don't need this. */
1796
+ emblaOptions?: EmblaOptionsType;
1794
1797
  }
1795
1798
  /**
1796
1799
  * Carousel — embla-carousel-based slide deck with autoplay, dots, counter,
1797
1800
  * prev/next arrows and pause-on-hover. Generic over slide payload type; the
1798
1801
  * caller decides the slide markup via `renderSlide`.
1799
1802
  */
1800
- declare function Carousel<T>({ slides, renderSlide, getKey, slidesPerView, autoplay, autoplayDelayMs, showDots, showCounter, showArrows, pauseOnHover, ariaLabel, onSelect, arrowSx, dotColor, dotActiveColor, }: CarouselProps<T>): react_jsx_runtime.JSX.Element | null;
1803
+ declare function Carousel<T>({ slides, renderSlide, getKey, slidesPerView, autoplay, autoplayDelayMs, showDots, showCounter, showArrows, pauseOnHover, ariaLabel, onSelect, arrowSx, dotColor, dotActiveColor, emblaOptions, }: CarouselProps<T>): react_jsx_runtime.JSX.Element | null;
1801
1804
 
1802
1805
  /** Number of distinct gradient palettes. Useful for sizing slide cycles deterministically. */
1803
1806
  declare const GRADIENT_PALETTE_COUNT: 6;
package/dist/index.d.ts CHANGED
@@ -21,6 +21,7 @@ import { TooltipProps as TooltipProps$1 } from '@mui/material/Tooltip';
21
21
  import { AlertProps as AlertProps$1 } from '@mui/material/Alert';
22
22
  import { SnackbarProps as SnackbarProps$1 } from '@mui/material/Snackbar';
23
23
  import { DrawerProps as DrawerProps$1 } from '@mui/material/Drawer';
24
+ import { EmblaOptionsType } from 'embla-carousel';
24
25
  import { CardProps as CardProps$1 } from '@mui/material/Card';
25
26
  import { CardContentProps } from '@mui/material/CardContent';
26
27
  import { CardHeaderProps } from '@mui/material/CardHeader';
@@ -463,7 +464,7 @@ interface SearchFieldProps extends Omit<TextFieldProps, 'InputProps' | 'variant'
463
464
  /** Visual treatment. `pill` renders a fully-rounded input. @default 'standard' */
464
465
  variant?: SearchFieldVariant;
465
466
  /**
466
- * Show a keyboard-shortcut hint adornment (⌘K on Mac, Ctrl+K elsewhere) at
467
+ * Show a keyboard-shortcut hint adornment (⌘ K on Mac, Ctrl + K elsewhere) at
467
468
  * the right edge. Pair with `useSearchHotkeys` to wire the key handler.
468
469
  */
469
470
  shortcutHint?: boolean;
@@ -1791,13 +1792,15 @@ interface CarouselProps<T> {
1791
1792
  dotColor?: string;
1792
1793
  /** Override the active dot color. Accepts any CSS color string. */
1793
1794
  dotActiveColor?: string;
1795
+ /** Escape hatch for advanced embla options. Most consumers don't need this. */
1796
+ emblaOptions?: EmblaOptionsType;
1794
1797
  }
1795
1798
  /**
1796
1799
  * Carousel — embla-carousel-based slide deck with autoplay, dots, counter,
1797
1800
  * prev/next arrows and pause-on-hover. Generic over slide payload type; the
1798
1801
  * caller decides the slide markup via `renderSlide`.
1799
1802
  */
1800
- declare function Carousel<T>({ slides, renderSlide, getKey, slidesPerView, autoplay, autoplayDelayMs, showDots, showCounter, showArrows, pauseOnHover, ariaLabel, onSelect, arrowSx, dotColor, dotActiveColor, }: CarouselProps<T>): react_jsx_runtime.JSX.Element | null;
1803
+ declare function Carousel<T>({ slides, renderSlide, getKey, slidesPerView, autoplay, autoplayDelayMs, showDots, showCounter, showArrows, pauseOnHover, ariaLabel, onSelect, arrowSx, dotColor, dotActiveColor, emblaOptions, }: CarouselProps<T>): react_jsx_runtime.JSX.Element | null;
1801
1804
 
1802
1805
  /** Number of distinct gradient palettes. Useful for sizing slide cycles deterministically. */
1803
1806
  declare const GRADIENT_PALETTE_COUNT: 6;
package/dist/index.js CHANGED
@@ -2371,7 +2371,7 @@ function useSearchHotkeys(inputRef, options2 = {}) {
2371
2371
  function onKeyDown(event) {
2372
2372
  if (enableK && event.key.toLowerCase() === "k") {
2373
2373
  const correctMod = mac ? event.metaKey && !event.ctrlKey : event.ctrlKey && !event.metaKey;
2374
- if (correctMod) {
2374
+ if (correctMod && !event.shiftKey && !event.altKey) {
2375
2375
  event.preventDefault();
2376
2376
  inputRef.current?.focus();
2377
2377
  return;
@@ -2399,8 +2399,9 @@ var ShortcutHint = () => {
2399
2399
  setMounted(true);
2400
2400
  }, []);
2401
2401
  if (!mounted) return null;
2402
- const modKey = isMacPlatform() ? "\u2318" : "Ctrl";
2403
- 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)(
2404
2405
  import_Box.default,
2405
2406
  {
2406
2407
  component: "span",
@@ -2417,10 +2418,7 @@ var ShortcutHint = () => {
2417
2418
  color: "text.secondary",
2418
2419
  lineHeight: 1
2419
2420
  },
2420
- children: [
2421
- modKey,
2422
- "K"
2423
- ]
2421
+ children: label
2424
2422
  }
2425
2423
  );
2426
2424
  };
@@ -2438,21 +2436,19 @@ var SearchField = ({
2438
2436
  onChange?.(e);
2439
2437
  onSearch?.(e.target.value);
2440
2438
  };
2441
- const pillSx = variant === "pill" ? {
2442
- "& .MuiOutlinedInput-root": {
2443
- borderRadius: "999px",
2444
- paddingRight: "6px"
2445
- }
2446
- } : void 0;
2439
+ const pillInputSx = variant === "pill" ? { borderRadius: "999px", paddingRight: "6px" } : void 0;
2447
2440
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
2448
2441
  TextField,
2449
2442
  {
2450
2443
  placeholder,
2451
2444
  onChange: handleChange,
2452
- sx: [pillSx, ...Array.isArray(sx) ? sx : [sx]],
2453
- InputProps: {
2454
- 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 } }) }),
2455
- 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
+ }
2456
2452
  },
2457
2453
  ...props
2458
2454
  }
@@ -6052,7 +6048,9 @@ var import_IconButton6 = __toESM(require("@mui/material/IconButton"));
6052
6048
  var import_Typography5 = __toESM(require("@mui/material/Typography"));
6053
6049
  var import_ChevronLeft3 = __toESM(require("@mui/icons-material/ChevronLeft"));
6054
6050
  var import_ChevronRight3 = __toESM(require("@mui/icons-material/ChevronRight"));
6051
+ var import_styles30 = require("@mui/material/styles");
6055
6052
  var import_embla_carousel_react = __toESM(require("embla-carousel-react"));
6053
+ var import_embla_carousel_autoplay = __toESM(require("embla-carousel-autoplay"));
6056
6054
  var import_jsx_runtime52 = require("react/jsx-runtime");
6057
6055
  var pad2 = (n) => String(n).padStart(2, "0");
6058
6056
  function Carousel({
@@ -6070,33 +6068,49 @@ function Carousel({
6070
6068
  onSelect,
6071
6069
  arrowSx,
6072
6070
  dotColor,
6073
- dotActiveColor
6071
+ dotActiveColor,
6072
+ emblaOptions
6074
6073
  }) {
6075
- 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
+ );
6076
6088
  const [selected, setSelected] = (0, import_react19.useState)(0);
6077
- const [paused, setPaused] = (0, import_react19.useState)(false);
6089
+ const [snapCount, setSnapCount] = (0, import_react19.useState)(0);
6078
6090
  const count = slides.length;
6079
6091
  (0, import_react19.useEffect)(() => {
6080
6092
  if (!emblaApi) return;
6093
+ const refreshSnaps = () => {
6094
+ setSnapCount(emblaApi.scrollSnapList().length);
6095
+ };
6081
6096
  const handleSelect = () => {
6082
6097
  const next = emblaApi.selectedScrollSnap();
6083
6098
  setSelected(next);
6084
6099
  onSelect?.(next);
6085
6100
  };
6086
6101
  emblaApi.on("select", handleSelect);
6102
+ emblaApi.on("reInit", refreshSnaps);
6103
+ refreshSnaps();
6087
6104
  handleSelect();
6088
6105
  return () => {
6089
6106
  emblaApi.off("select", handleSelect);
6107
+ emblaApi.off("reInit", refreshSnaps);
6090
6108
  };
6091
6109
  }, [emblaApi, onSelect]);
6092
- (0, import_react19.useEffect)(() => {
6093
- if (!emblaApi || !autoplay || paused || count <= 1) return;
6094
- const id = window.setInterval(() => emblaApi.scrollNext(), autoplayDelayMs);
6095
- return () => window.clearInterval(id);
6096
- }, [emblaApi, autoplay, paused, count, autoplayDelayMs]);
6097
6110
  if (count === 0) return null;
6098
6111
  const showControls = count > 1;
6099
6112
  const slideBasis = `${100 / Math.max(1, slidesPerView)}%`;
6113
+ const dotCount = snapCount > 0 ? snapCount : count;
6100
6114
  const arrowBaseSx = {
6101
6115
  position: "absolute",
6102
6116
  top: "50%",
@@ -6111,8 +6125,6 @@ function Carousel({
6111
6125
  role: "region",
6112
6126
  "aria-roledescription": "carousel",
6113
6127
  "aria-label": ariaLabel,
6114
- onPointerEnter: pauseOnHover ? () => setPaused(true) : void 0,
6115
- onPointerLeave: pauseOnHover ? () => setPaused(false) : void 0,
6116
6128
  sx: { position: "relative", width: "100%" },
6117
6129
  children: [
6118
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)(
@@ -6150,21 +6162,21 @@ function Carousel({
6150
6162
  import_Typography5.default,
6151
6163
  {
6152
6164
  variant: "caption",
6153
- sx: {
6165
+ sx: (theme2) => ({
6154
6166
  position: "absolute",
6155
6167
  top: 12,
6156
6168
  right: 16,
6157
6169
  px: 1,
6158
6170
  py: 0.25,
6159
6171
  borderRadius: 1,
6160
- bgcolor: "rgba(0,0,0,0.5)",
6172
+ bgcolor: (0, import_styles30.alpha)(theme2.palette.common.black, 0.5),
6161
6173
  color: "common.white",
6162
6174
  letterSpacing: 1
6163
- },
6175
+ }),
6164
6176
  children: [
6165
6177
  pad2(selected + 1),
6166
6178
  " / ",
6167
- pad2(count)
6179
+ pad2(dotCount)
6168
6180
  ]
6169
6181
  }
6170
6182
  ),
@@ -6182,7 +6194,7 @@ function Carousel({
6182
6194
  justifyContent: "center",
6183
6195
  gap: 1
6184
6196
  },
6185
- 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)(
6186
6198
  import_Box7.default,
6187
6199
  {
6188
6200
  component: "button",
@@ -6202,7 +6214,7 @@ function Carousel({
6202
6214
  transition: "width 0.2s ease, background 0.2s ease"
6203
6215
  })
6204
6216
  },
6205
- getKey ? getKey(item, i) : i
6217
+ i
6206
6218
  ))
6207
6219
  }
6208
6220
  )
@@ -6292,7 +6304,7 @@ function DefinitionRow({
6292
6304
  ...divider && {
6293
6305
  borderBottom: "1px solid",
6294
6306
  borderColor: "divider",
6295
- "&:last-of-type": { borderBottom: "none" }
6307
+ "&:last-child": { borderBottom: "none" }
6296
6308
  }
6297
6309
  },
6298
6310
  children: [
@@ -6367,14 +6379,20 @@ function PanelDialog({
6367
6379
  const paperBaseSx = {
6368
6380
  width: WIDTH_PX[width],
6369
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",
6370
6386
  ...isRight && {
6371
6387
  position: "absolute",
6372
6388
  right: 0,
6373
6389
  top: 0,
6374
6390
  bottom: 0,
6375
6391
  margin: 0,
6376
- maxHeight: "100vh",
6377
- 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",
6378
6396
  borderRadius: 0
6379
6397
  }
6380
6398
  };
@@ -6383,7 +6401,7 @@ function PanelDialog({
6383
6401
  {
6384
6402
  open,
6385
6403
  onClose,
6386
- TransitionComponent,
6404
+ slots: TransitionComponent ? { transition: TransitionComponent } : void 0,
6387
6405
  slotProps: {
6388
6406
  paper: {
6389
6407
  "aria-label": accessibleName,
@@ -6444,17 +6462,17 @@ var import_CardContent = __toESM(require("@mui/material/CardContent"));
6444
6462
  var import_CardHeader = __toESM(require("@mui/material/CardHeader"));
6445
6463
  var import_CardActions = __toESM(require("@mui/material/CardActions"));
6446
6464
  var import_CardMedia = __toESM(require("@mui/material/CardMedia"));
6447
- var import_styles30 = require("@mui/material/styles");
6465
+ var import_styles31 = require("@mui/material/styles");
6448
6466
  var import_jsx_runtime56 = require("react/jsx-runtime");
6449
6467
  var CardMedia = (props) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_CardMedia.default, { ...props });
6450
- var StyledCard = (0, import_styles30.styled)(import_Card.default, {
6468
+ var StyledCard = (0, import_styles31.styled)(import_Card.default, {
6451
6469
  shouldForwardProp: (prop) => prop !== "hoverable" && prop !== "clickable" && prop !== "dsVariant"
6452
6470
  })(
6453
6471
  ({ theme: theme2, hoverable, clickable, dsVariant }) => ({
6454
6472
  borderRadius: 8,
6455
6473
  transition: "all 0.2s ease-in-out",
6456
6474
  ...dsVariant === "standard" && {
6457
- boxShadow: "0px 1px 3px rgba(0, 0, 0, 0.12)",
6475
+ boxShadow: theme2.shadows[1],
6458
6476
  backgroundColor: theme2.palette.background.paper
6459
6477
  },
6460
6478
  ...dsVariant === "tinted" && {
@@ -6472,7 +6490,7 @@ var StyledCard = (0, import_styles30.styled)(import_Card.default, {
6472
6490
  },
6473
6491
  ...hoverable && {
6474
6492
  "&:hover": {
6475
- boxShadow: "0px 4px 12px rgba(0, 0, 0, 0.15)",
6493
+ boxShadow: theme2.shadows[4],
6476
6494
  transform: "translateY(-2px)"
6477
6495
  }
6478
6496
  }
@@ -6509,12 +6527,12 @@ var CardActions = (props) => {
6509
6527
 
6510
6528
  // src/components/layout/List.tsx
6511
6529
  var import_material30 = require("@mui/material");
6512
- var import_styles31 = require("@mui/material/styles");
6530
+ var import_styles32 = require("@mui/material/styles");
6513
6531
  var import_jsx_runtime57 = require("react/jsx-runtime");
6514
6532
  var List6 = (props) => {
6515
6533
  return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_material30.List, { ...props });
6516
6534
  };
6517
- var StyledListItem = (0, import_styles31.styled)(import_material30.ListItem, {
6535
+ var StyledListItem = (0, import_styles32.styled)(import_material30.ListItem, {
6518
6536
  shouldForwardProp: (prop) => prop !== "hoverable"
6519
6537
  })(({ hoverable = true, theme: theme2 }) => ({
6520
6538
  border: `1px solid ${theme2.palette.grey[200]}`,
@@ -6551,14 +6569,14 @@ var ListItem4 = ({
6551
6569
 
6552
6570
  // src/components/layout/Avatar.tsx
6553
6571
  var import_Avatar = __toESM(require("@mui/material/Avatar"));
6554
- var import_styles32 = require("@mui/material/styles");
6572
+ var import_styles33 = require("@mui/material/styles");
6555
6573
  var import_jsx_runtime58 = require("react/jsx-runtime");
6556
6574
  var sizeMap = {
6557
6575
  small: 32,
6558
6576
  medium: 40,
6559
6577
  large: 56
6560
6578
  };
6561
- var StyledAvatar = (0, import_styles32.styled)(import_Avatar.default, {
6579
+ var StyledAvatar = (0, import_styles33.styled)(import_Avatar.default, {
6562
6580
  shouldForwardProp: (prop) => prop !== "avatarSize"
6563
6581
  })(({ avatarSize = 40, theme: theme2 }) => ({
6564
6582
  width: avatarSize,
@@ -6574,13 +6592,13 @@ var Avatar5 = ({ size: size3 = "medium", ...props }) => {
6574
6592
 
6575
6593
  // src/components/layout/Table.tsx
6576
6594
  var import_material31 = require("@mui/material");
6577
- var import_styles33 = require("@mui/material/styles");
6595
+ var import_styles34 = require("@mui/material/styles");
6578
6596
  var import_jsx_runtime59 = require("react/jsx-runtime");
6579
- var StyledTableContainer = (0, import_styles33.styled)(import_material31.TableContainer)(({ theme: theme2 }) => ({
6597
+ var StyledTableContainer = (0, import_styles34.styled)(import_material31.TableContainer)(({ theme: theme2 }) => ({
6580
6598
  borderRadius: 8,
6581
6599
  border: `1px solid ${theme2.palette.grey[200]}`
6582
6600
  }));
6583
- var StyledTableHead = (0, import_styles33.styled)(import_material31.TableHead)(({ theme: theme2 }) => ({
6601
+ var StyledTableHead = (0, import_styles34.styled)(import_material31.TableHead)(({ theme: theme2 }) => ({
6584
6602
  backgroundColor: theme2.palette.grey[50],
6585
6603
  "& .MuiTableCell-head": {
6586
6604
  fontWeight: 600,
@@ -6614,9 +6632,9 @@ var import_material32 = require("@mui/material");
6614
6632
  var import_Breadcrumbs = __toESM(require("@mui/material/Breadcrumbs"));
6615
6633
  var import_Link3 = __toESM(require("@mui/material/Link"));
6616
6634
  var import_Typography8 = __toESM(require("@mui/material/Typography"));
6617
- var import_styles34 = require("@mui/material/styles");
6635
+ var import_styles35 = require("@mui/material/styles");
6618
6636
  var import_jsx_runtime60 = require("react/jsx-runtime");
6619
- var StyledBreadcrumbs = (0, import_styles34.styled)(import_Breadcrumbs.default)(({ theme: theme2 }) => ({
6637
+ var StyledBreadcrumbs = (0, import_styles35.styled)(import_Breadcrumbs.default)(({ theme: theme2 }) => ({
6620
6638
  "& .MuiBreadcrumbs-ol": {
6621
6639
  flexWrap: "nowrap"
6622
6640
  },
@@ -6624,7 +6642,7 @@ var StyledBreadcrumbs = (0, import_styles34.styled)(import_Breadcrumbs.default)(
6624
6642
  color: theme2.palette.text.secondary
6625
6643
  }
6626
6644
  }));
6627
- var StyledLink2 = (0, import_styles34.styled)(import_Link3.default)(({ theme: theme2 }) => ({
6645
+ var StyledLink2 = (0, import_styles35.styled)(import_Link3.default)(({ theme: theme2 }) => ({
6628
6646
  color: theme2.palette.primary.main,
6629
6647
  textDecoration: "none",
6630
6648
  "&:hover": {
@@ -6657,9 +6675,9 @@ var Breadcrumbs = ({ items, ...props }) => {
6657
6675
  // src/components/layout/Accordion.tsx
6658
6676
  var import_material33 = require("@mui/material");
6659
6677
  var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
6660
- var import_styles35 = require("@mui/material/styles");
6678
+ var import_styles36 = require("@mui/material/styles");
6661
6679
  var import_jsx_runtime61 = require("react/jsx-runtime");
6662
- var StyledAccordion = (0, import_styles35.styled)(import_material33.Accordion)(({ theme: theme2 }) => ({
6680
+ var StyledAccordion = (0, import_styles36.styled)(import_material33.Accordion)(({ theme: theme2 }) => ({
6663
6681
  borderRadius: 8,
6664
6682
  boxShadow: "none",
6665
6683
  border: `1px solid ${theme2.palette.grey[200]}`,
@@ -6670,7 +6688,7 @@ var StyledAccordion = (0, import_styles35.styled)(import_material33.Accordion)((
6670
6688
  margin: 0
6671
6689
  }
6672
6690
  }));
6673
- var StyledAccordionSummary = (0, import_styles35.styled)(import_material33.AccordionSummary)(({ theme: theme2 }) => ({
6691
+ var StyledAccordionSummary = (0, import_styles36.styled)(import_material33.AccordionSummary)(({ theme: theme2 }) => ({
6674
6692
  backgroundColor: theme2.palette.grey[50],
6675
6693
  borderRadius: "8px 8px 0 0",
6676
6694
  "&.Mui-expanded": {
@@ -6680,7 +6698,7 @@ var StyledAccordionSummary = (0, import_styles35.styled)(import_material33.Accor
6680
6698
  margin: "12px 0"
6681
6699
  }
6682
6700
  }));
6683
- var StyledAccordionDetails = (0, import_styles35.styled)(import_material33.AccordionDetails)({
6701
+ var StyledAccordionDetails = (0, import_styles36.styled)(import_material33.AccordionDetails)({
6684
6702
  padding: "16px"
6685
6703
  });
6686
6704
  var Accordion = ({
@@ -6697,9 +6715,9 @@ var Accordion = ({
6697
6715
 
6698
6716
  // src/components/layout/Paper.tsx
6699
6717
  var import_Paper = __toESM(require("@mui/material/Paper"));
6700
- var import_styles36 = require("@mui/material/styles");
6718
+ var import_styles37 = require("@mui/material/styles");
6701
6719
  var import_jsx_runtime62 = require("react/jsx-runtime");
6702
- var StyledPaper = (0, import_styles36.styled)(import_Paper.default)(({ theme: theme2 }) => ({
6720
+ var StyledPaper = (0, import_styles37.styled)(import_Paper.default)(({ theme: theme2 }) => ({
6703
6721
  borderRadius: 8,
6704
6722
  "&.MuiPaper-elevation": {
6705
6723
  boxShadow: "0px 2px 8px rgba(0, 0, 0, 0.08)"
@@ -6715,9 +6733,9 @@ var Paper = ({ variant = "elevation", ...props }) => {
6715
6733
 
6716
6734
  // src/components/layout/Divider.tsx
6717
6735
  var import_Divider = __toESM(require("@mui/material/Divider"));
6718
- var import_styles37 = require("@mui/material/styles");
6736
+ var import_styles38 = require("@mui/material/styles");
6719
6737
  var import_jsx_runtime63 = require("react/jsx-runtime");
6720
- var StyledDivider = (0, import_styles37.styled)(import_Divider.default)(({ theme: theme2 }) => ({
6738
+ var StyledDivider = (0, import_styles38.styled)(import_Divider.default)(({ theme: theme2 }) => ({
6721
6739
  borderColor: theme2.palette.grey[200]
6722
6740
  }));
6723
6741
  var Divider4 = ({ ...props }) => {
@@ -6738,9 +6756,9 @@ var import_material37 = require("@mui/material");
6738
6756
 
6739
6757
  // src/components/layout/AppBar.tsx
6740
6758
  var import_material38 = require("@mui/material");
6741
- var import_styles38 = require("@mui/material/styles");
6759
+ var import_styles39 = require("@mui/material/styles");
6742
6760
  var import_jsx_runtime64 = require("react/jsx-runtime");
6743
- var StyledAppBar = (0, import_styles38.styled)(import_material38.AppBar, {
6761
+ var StyledAppBar = (0, import_styles39.styled)(import_material38.AppBar, {
6744
6762
  shouldForwardProp: (prop) => prop !== "appBarHeight"
6745
6763
  })(({ appBarHeight = 64, theme: theme2 }) => ({
6746
6764
  backgroundColor: theme2.palette.background.paper,
@@ -6749,7 +6767,7 @@ var StyledAppBar = (0, import_styles38.styled)(import_material38.AppBar, {
6749
6767
  height: appBarHeight,
6750
6768
  zIndex: 1300
6751
6769
  }));
6752
- var StyledToolbar = (0, import_styles38.styled)(import_material38.Toolbar)(({ theme: theme2 }) => ({
6770
+ var StyledToolbar = (0, import_styles39.styled)(import_material38.Toolbar)(({ theme: theme2 }) => ({
6753
6771
  height: "100%",
6754
6772
  paddingLeft: theme2.spacing(2),
6755
6773
  paddingRight: theme2.spacing(2),
@@ -6935,7 +6953,7 @@ var import_Waves = __toESM(require("@mui/icons-material/Waves"));
6935
6953
  var import_RocketLaunchOutlined = __toESM(require("@mui/icons-material/RocketLaunchOutlined"));
6936
6954
  var import_InsertLink = __toESM(require("@mui/icons-material/InsertLink"));
6937
6955
  var import_SmartToyOutlined = __toESM(require("@mui/icons-material/SmartToyOutlined"));
6938
- var import_styles39 = require("@mui/material/styles");
6956
+ var import_styles40 = require("@mui/material/styles");
6939
6957
 
6940
6958
  // src/hooks/useControlledExpand.ts
6941
6959
  var import_react21 = require("react");
@@ -6983,7 +7001,7 @@ var ENTITY_CHIP_TYPOGRAPHY = {
6983
7001
  lineHeight: 1.33,
6984
7002
  letterSpacing: "0.07px"
6985
7003
  };
6986
- var StatusDot2 = (0, import_styles39.styled)(import_material40.Box, {
7004
+ var StatusDot2 = (0, import_styles40.styled)(import_material40.Box, {
6987
7005
  shouldForwardProp: (p) => p !== "status"
6988
7006
  })(({ status }) => ({
6989
7007
  width: 8,
@@ -7209,9 +7227,9 @@ var DeploymentDashboardCard = ({
7209
7227
 
7210
7228
  // src/components/layout/DeploymentEntityContextMenu/DeploymentEntityContextMenu.tsx
7211
7229
  var import_material41 = require("@mui/material");
7212
- var import_styles40 = require("@mui/material/styles");
7230
+ var import_styles41 = require("@mui/material/styles");
7213
7231
  var import_jsx_runtime68 = require("react/jsx-runtime");
7214
- var StyledMenu2 = (0, import_styles40.styled)(import_material41.Menu)({
7232
+ var StyledMenu2 = (0, import_styles41.styled)(import_material41.Menu)({
7215
7233
  "& .MuiPaper-root": {
7216
7234
  borderRadius: 4,
7217
7235
  boxShadow: deploymentSurfaceTokens.workspaceShadow,
@@ -7223,7 +7241,7 @@ var StyledMenu2 = (0, import_styles40.styled)(import_material41.Menu)({
7223
7241
  padding: 0
7224
7242
  }
7225
7243
  });
7226
- var StyledMenuItem = (0, import_styles40.styled)(import_material41.MenuItem)({
7244
+ var StyledMenuItem = (0, import_styles41.styled)(import_material41.MenuItem)({
7227
7245
  gap: 8,
7228
7246
  padding: "8px 0",
7229
7247
  borderRadius: 4,
@@ -7246,7 +7264,7 @@ var StyledMenuItem = (0, import_styles40.styled)(import_material41.MenuItem)({
7246
7264
  color: deploymentSurfaceTokens.textPrimary
7247
7265
  }
7248
7266
  });
7249
- var HighlightedMenuItem = (0, import_styles40.styled)(StyledMenuItem)({
7267
+ var HighlightedMenuItem = (0, import_styles41.styled)(StyledMenuItem)({
7250
7268
  backgroundColor: deploymentSurfaceTokens.highlightBg,
7251
7269
  border: `1px solid ${deploymentSurfaceTokens.highlightBorder}`,
7252
7270
  padding: 8,
@@ -7254,7 +7272,7 @@ var HighlightedMenuItem = (0, import_styles40.styled)(StyledMenuItem)({
7254
7272
  backgroundColor: deploymentSurfaceTokens.highlightBgHover
7255
7273
  }
7256
7274
  });
7257
- var ToggleMenuItem = (0, import_styles40.styled)(import_material41.MenuItem)({
7275
+ var ToggleMenuItem = (0, import_styles41.styled)(import_material41.MenuItem)({
7258
7276
  gap: 8,
7259
7277
  padding: "8px 0",
7260
7278
  cursor: "default",
@@ -7270,7 +7288,7 @@ var ToggleMenuItem = (0, import_styles40.styled)(import_material41.MenuItem)({
7270
7288
  color: deploymentSurfaceTokens.textPrimary
7271
7289
  }
7272
7290
  });
7273
- var EnableSwitch = (0, import_styles40.styled)(import_material41.Switch)(({ theme: theme2 }) => ({
7291
+ var EnableSwitch = (0, import_styles41.styled)(import_material41.Switch)(({ theme: theme2 }) => ({
7274
7292
  width: 32,
7275
7293
  height: 20,
7276
7294
  padding: 0,
@@ -7295,7 +7313,7 @@ var EnableSwitch = (0, import_styles40.styled)(import_material41.Switch)(({ them
7295
7313
  opacity: 1
7296
7314
  }
7297
7315
  }));
7298
- var StyledDivider2 = (0, import_styles40.styled)(import_material41.Divider)({
7316
+ var StyledDivider2 = (0, import_styles41.styled)(import_material41.Divider)({
7299
7317
  margin: "0 !important",
7300
7318
  borderColor: deploymentSurfaceTokens.strokeOutside
7301
7319
  });
@@ -7454,7 +7472,7 @@ var contextMenuItems = {
7454
7472
 
7455
7473
  // src/components/layout/DeploymentDashboardTree/DeploymentDashboardTree.tsx
7456
7474
  var import_material42 = require("@mui/material");
7457
- var import_styles41 = require("@mui/material/styles");
7475
+ var import_styles42 = require("@mui/material/styles");
7458
7476
  var import_jsx_runtime70 = require("react/jsx-runtime");
7459
7477
  var TREE_SP = {
7460
7478
  /** Vertical gap between sibling rows (Figma S / sp-8) */
@@ -7473,7 +7491,7 @@ var RAIL_OPACITY = {
7473
7491
  engagement: 0.4,
7474
7492
  agent: 0.4
7475
7493
  };
7476
- var Rail = (0, import_styles41.styled)(import_material42.Box, {
7494
+ var Rail = (0, import_styles42.styled)(import_material42.Box, {
7477
7495
  shouldForwardProp: (p) => p !== "railColor"
7478
7496
  })(({ railColor }) => ({
7479
7497
  width: TREE_SP.railWidth,
@@ -7491,7 +7509,7 @@ var TreeRow = ({ node, depth, onExpandToggle, onCopyId, renderCard }) => {
7491
7509
  );
7492
7510
  const entityColor = deploymentEntityColors[node.entityType] ?? deploymentEntityColors.workspace;
7493
7511
  const railOpacity = RAIL_OPACITY[node.entityType] ?? 0.5;
7494
- const railColor = (0, import_styles41.alpha)(entityColor, railOpacity);
7512
+ const railColor = (0, import_styles42.alpha)(entityColor, railOpacity);
7495
7513
  const renderedChildren = hasChildren && expanded ? /* @__PURE__ */ (0, import_jsx_runtime70.jsxs)(import_material42.Box, { sx: { display: "flex", gap: `${TREE_SP.railGap}px` }, children: [
7496
7514
  /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(Rail, { railColor, "aria-hidden": true, "data-rail": true }),
7497
7515
  /* @__PURE__ */ (0, import_jsx_runtime70.jsx)(
@@ -7572,11 +7590,11 @@ var DeploymentDashboardTree = ({
7572
7590
 
7573
7591
  // src/components/layout/DeploymentDashboardPanel/DeploymentDashboardPanel.tsx
7574
7592
  var import_material43 = require("@mui/material");
7575
- var import_styles42 = require("@mui/material/styles");
7593
+ var import_styles43 = require("@mui/material/styles");
7576
7594
  var import_jsx_runtime71 = require("react/jsx-runtime");
7577
7595
  var PANEL_RADIUS = 12;
7578
7596
  var PANEL_SHADOW = "0px 1px 3px rgba(0, 0, 0, 0.08)";
7579
- var StyledPanel = (0, import_styles42.styled)(import_material43.Box)({
7597
+ var StyledPanel = (0, import_styles43.styled)(import_material43.Box)({
7580
7598
  backgroundColor: deploymentSurfaceTokens.surfaceHigh,
7581
7599
  border: `1px solid ${deploymentSurfaceTokens.strokeOutside}`,
7582
7600
  borderRadius: PANEL_RADIUS,
@@ -7822,7 +7840,7 @@ var WorkflowNode = ({
7822
7840
  var import_material46 = require("@mui/material");
7823
7841
  var import_Close4 = __toESM(require("@mui/icons-material/Close"));
7824
7842
  var import_Cancel = __toESM(require("@mui/icons-material/Cancel"));
7825
- var import_styles43 = require("@mui/material/styles");
7843
+ var import_styles44 = require("@mui/material/styles");
7826
7844
  var import_jsx_runtime73 = require("react/jsx-runtime");
7827
7845
  var WorkflowTopBar = ({
7828
7846
  title = "Agent visualization flow chart",
@@ -7840,7 +7858,7 @@ var WorkflowTopBar = ({
7840
7858
  sx,
7841
7859
  ...boxProps
7842
7860
  }) => {
7843
- const chrome = (0, import_styles43.useTheme)().palette.workflow.chrome;
7861
+ const chrome = (0, import_styles44.useTheme)().palette.workflow.chrome;
7844
7862
  return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
7845
7863
  import_material46.Box,
7846
7864
  {
@@ -8164,7 +8182,7 @@ var import_Stop = __toESM(require("@mui/icons-material/Stop"));
8164
8182
  var import_ChevronLeft4 = __toESM(require("@mui/icons-material/ChevronLeft"));
8165
8183
  var import_ChevronRight5 = __toESM(require("@mui/icons-material/ChevronRight"));
8166
8184
  var import_Replay = __toESM(require("@mui/icons-material/Replay"));
8167
- var import_styles44 = require("@mui/material/styles");
8185
+ var import_styles45 = require("@mui/material/styles");
8168
8186
  var import_jsx_runtime75 = require("react/jsx-runtime");
8169
8187
  var SpeedButton = ({ value, selected, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
8170
8188
  Button,
@@ -8198,7 +8216,7 @@ var WorkflowTimeBar = ({
8198
8216
  sx,
8199
8217
  ...boxProps
8200
8218
  }) => {
8201
- const chrome = (0, import_styles44.useTheme)().palette.workflow.chrome;
8219
+ const chrome = (0, import_styles45.useTheme)().palette.workflow.chrome;
8202
8220
  const boundedProgress = Math.max(0, Math.min(100, progress));
8203
8221
  const atFirstStep = currentStep <= 1;
8204
8222
  const atLastStep = currentStep >= totalSteps;
@@ -9531,7 +9549,7 @@ var TimeSeriesGraph = ({
9531
9549
  var import_react40 = require("react");
9532
9550
  var import_reactflow = __toESM(require("reactflow"));
9533
9551
  var import_material73 = require("@mui/material");
9534
- var import_styles45 = require("@mui/material/styles");
9552
+ var import_styles46 = require("@mui/material/styles");
9535
9553
  var import_reactflow2 = require("reactflow");
9536
9554
  var import_jsx_runtime104 = require("react/jsx-runtime");
9537
9555
  var FlowEditor = ({
@@ -9554,7 +9572,7 @@ var FlowEditor = ({
9554
9572
  onInit,
9555
9573
  ...reactFlowProps
9556
9574
  }) => {
9557
- const theme2 = (0, import_styles45.useTheme)();
9575
+ const theme2 = (0, import_styles46.useTheme)();
9558
9576
  const handleInit = (0, import_react40.useCallback)(
9559
9577
  (instance) => {
9560
9578
  if (onInit) {