@localstack/appinspector-ui 1.0.140 → 1.0.141

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.cjs CHANGED
@@ -2425,8 +2425,8 @@ __export(index_exports, {
2425
2425
  module.exports = __toCommonJS(index_exports);
2426
2426
 
2427
2427
  // src/pages/spans-list-page.tsx
2428
- var import_material24 = require("@mui/material");
2429
- var import_react64 = require("react");
2428
+ var import_material23 = require("@mui/material");
2429
+ var import_react63 = require("react");
2430
2430
 
2431
2431
  // src/api/errors.ts
2432
2432
  var AppInspectorDisabledError = class extends Error {
@@ -2587,11 +2587,11 @@ var EmulatorVersionBanner = ({
2587
2587
  };
2588
2588
 
2589
2589
  // src/components/spans-list/spans-list.tsx
2590
- var import_material8 = require("@mui/material");
2590
+ var import_material7 = require("@mui/material");
2591
2591
 
2592
2592
  // src/components/spans-list/spans-data-grid.tsx
2593
2593
  var import_icons_material3 = require("@mui/icons-material");
2594
- var import_material7 = require("@mui/material");
2594
+ var import_material6 = require("@mui/material");
2595
2595
 
2596
2596
  // node_modules/.pnpm/@tanstack+react-table@8.21.3_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/@tanstack/react-table/build/lib/index.mjs
2597
2597
  var React = __toESM(require("react"), 1);
@@ -13048,7 +13048,7 @@ var motion = /* @__PURE__ */ createMotionProxy(function(Component, config) {
13048
13048
  });
13049
13049
 
13050
13050
  // src/components/spans-list/spans-data-grid.tsx
13051
- var import_react38 = require("react");
13051
+ var import_react37 = require("react");
13052
13052
 
13053
13053
  // src/components/cells/responsive-timestamp-cell.tsx
13054
13054
  var import_react31 = require("react");
@@ -13059,8 +13059,8 @@ var ResponsiveTimestampCell = (0, import_react31.memo)(({ date }) => {
13059
13059
  });
13060
13060
 
13061
13061
  // src/components/cells/service-cell.tsx
13062
- var import_material4 = require("@mui/material");
13063
- var import_react36 = require("react");
13062
+ var import_material3 = require("@mui/material");
13063
+ var import_react35 = require("react");
13064
13064
 
13065
13065
  // src/utils/service-display-name.ts
13066
13066
  var SERVICE_DISPLAY_NAME = {
@@ -15120,125 +15120,54 @@ var AwsServiceIcon = (0, import_react34.memo)(({ hideTooltip, service, size = "m
15120
15120
  );
15121
15121
  });
15122
15122
 
15123
- // src/components/cells/pill-cell.tsx
15124
- var import_material3 = require("@mui/material");
15125
- var import_react35 = require("react");
15123
+ // src/components/cells/service-cell.tsx
15126
15124
  var import_jsx_runtime123 = require("react/jsx-runtime");
15127
- var PillCell = (0, import_react35.memo)(({
15128
- backgroundColor,
15129
- children,
15130
- height = "24px",
15131
- outlineColor,
15132
- outlineWidth = "1px",
15133
- paddingBottom,
15134
- paddingTop
15125
+ var ServiceCell = (0, import_react35.memo)(({
15126
+ resource,
15127
+ selected,
15128
+ service,
15129
+ showIcon = true
15135
15130
  }) => {
15136
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
15131
+ const theme = (0, import_material3.useTheme)();
15132
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_material3.Box, { sx: { ml: -1, width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
15137
15133
  import_material3.Box,
15138
15134
  {
15139
15135
  sx: {
15140
15136
  alignItems: "center",
15141
- backgroundColor: backgroundColor ?? ((theme) => theme.palette.background.paper),
15142
- borderRadius: "16px",
15137
+ borderRadius: 1,
15143
15138
  display: "inline-flex",
15144
- height: paddingTop || paddingBottom ? "auto" : height,
15139
+ gap: "8px",
15145
15140
  maxWidth: "100%",
15146
- outlineColor: outlineColor ?? ((theme) => theme.palette.divider),
15147
- outlineStyle: "solid",
15148
- outlineWidth,
15149
- ...paddingTop && { paddingTop },
15150
- ...paddingBottom && { paddingBottom },
15151
- overflow: "hidden"
15141
+ outline: selected ? `2px solid ${theme.palette.primary.main}` : "none",
15142
+ overflow: "hidden",
15143
+ px: "8px",
15144
+ py: "4px"
15152
15145
  },
15153
- children
15154
- }
15155
- );
15156
- });
15157
-
15158
- // src/components/cells/service-cell.tsx
15159
- var import_jsx_runtime124 = require("react/jsx-runtime");
15160
- var ServiceCell = (0, import_react36.memo)(({
15161
- height = "24px",
15162
- resource,
15163
- selected,
15164
- service,
15165
- showIcon = true,
15166
- width = "32px"
15167
- }) => {
15168
- const theme = (0, import_material4.useTheme)();
15169
- const outlineColor = selected ? theme.palette.primary.light : theme.palette.text.secondary;
15170
- const outlineWidth = selected ? "2px" : void 0;
15171
- return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Box, { sx: { width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(PillCell, { height, outlineColor, outlineWidth, children: [
15172
- showIcon ? /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
15173
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
15174
- import_material4.Box,
15175
- {
15176
- sx: {
15177
- alignItems: "center",
15178
- display: "flex",
15179
- flexShrink: 0,
15180
- height,
15181
- justifyContent: "center",
15182
- overflow: "hidden",
15183
- padding: 0,
15184
- width
15185
- },
15186
- children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(AwsServiceIcon, { hideTooltip: true, service, size: "large" })
15187
- }
15188
- ),
15189
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Divider, { orientation: "vertical" })
15190
- ] }) : void 0,
15191
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
15192
- import_material4.Typography,
15193
- {
15194
- sx: {
15195
- flexShrink: 1,
15196
- fontWeight: "bold",
15197
- minWidth: 0,
15198
- overflow: "hidden",
15199
- padding: "1px 8px",
15200
- textOverflow: "ellipsis",
15201
- whiteSpace: "nowrap",
15202
- ...showIcon ? {} : {
15203
- borderBottomLeftRadius: "15px",
15204
- borderTopLeftRadius: "15px",
15205
- ...!resource && {
15206
- borderBottomRightRadius: "15px",
15207
- borderTopRightRadius: "15px"
15146
+ children: [
15147
+ showIcon && /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_material3.Box, { sx: { borderRadius: "4px", flexShrink: 0, lineHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(AwsServiceIcon, { hideTooltip: true, service, size: "medium" }) }),
15148
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(import_material3.Stack, { sx: { minWidth: 0 }, children: [
15149
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_material3.Typography, { noWrap: true, sx: { fontWeight: 700, lineHeight: 1.25 }, variant: "body2", children: getServiceDisplayName(service) }),
15150
+ resource ? /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(
15151
+ import_material3.Typography,
15152
+ {
15153
+ color: "text.secondary",
15154
+ "data-testid": SERVICE_NODE_SERVICE_NAME_TEST_ID,
15155
+ noWrap: true,
15156
+ sx: { lineHeight: 1.2 },
15157
+ variant: "caption",
15158
+ children: resource
15208
15159
  }
15209
- }
15210
- },
15211
- variant: "body2",
15212
- children: getServiceDisplayName(service)
15213
- }
15214
- ),
15215
- resource ? /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
15216
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Box, { sx: { height: "100%", paddingY: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Divider, { orientation: "vertical" }) }),
15217
- /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
15218
- import_material4.Typography,
15219
- {
15220
- "data-testid": SERVICE_NODE_SERVICE_NAME_TEST_ID,
15221
- sx: {
15222
- borderBottomRightRadius: "15px",
15223
- borderTopRightRadius: "15px",
15224
- color: "text.secondary",
15225
- overflow: "hidden",
15226
- padding: "1px 8px",
15227
- textOverflow: "ellipsis",
15228
- whiteSpace: "nowrap"
15229
- },
15230
- variant: "caption",
15231
- children: resource
15232
- }
15233
- )
15234
- ] }) : void 0
15235
- ] }) });
15160
+ ) : void 0
15161
+ ] })
15162
+ ]
15163
+ }
15164
+ ) });
15236
15165
  });
15237
15166
  ServiceCell.displayName = "ServiceCell";
15238
15167
 
15239
15168
  // src/components/cells/status-cell.tsx
15240
15169
  var import_icons_material = require("@mui/icons-material");
15241
- var import_material5 = require("@mui/material");
15170
+ var import_material4 = require("@mui/material");
15242
15171
 
15243
15172
  // src/types/error-levels.ts
15244
15173
  var ErrorLevel = {
@@ -15343,20 +15272,20 @@ function parseIAMEvent(payloadString) {
15343
15272
  }
15344
15273
 
15345
15274
  // src/components/cells/status-cell.tsx
15346
- var import_jsx_runtime125 = require("react/jsx-runtime");
15275
+ var import_jsx_runtime124 = require("react/jsx-runtime");
15347
15276
  var StatusIcon = ({ errorLevel, spanStatusCode }) => {
15348
15277
  switch (errorLevel) {
15349
15278
  case ErrorLevel.ERROR: {
15350
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons_material.Cancel, { sx: { color: "red" } });
15279
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_icons_material.Cancel, { sx: { color: "red" } });
15351
15280
  }
15352
15281
  case ErrorLevel.IAM_PERMISSION: {
15353
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons_material.GppBad, { sx: { color: spanStatusCode === 2 ? "red" : "warning.main" } });
15282
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_icons_material.GppBad, { sx: { color: spanStatusCode === 2 ? "red" : "warning.main" } });
15354
15283
  }
15355
15284
  case ErrorLevel.WARNING: {
15356
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons_material.Error, { sx: { color: "orange" } });
15285
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_icons_material.Error, { sx: { color: "orange" } });
15357
15286
  }
15358
15287
  default: {
15359
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_jsx_runtime125.Fragment, {});
15288
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_jsx_runtime124.Fragment, {});
15360
15289
  }
15361
15290
  }
15362
15291
  };
@@ -15388,30 +15317,30 @@ var buildTooltipContent = (span) => {
15388
15317
  }
15389
15318
  const spanStatusLabel = SPAN_STATUS_LABELS[span.status_code] ?? `Unknown (${span.status_code.toString()})`;
15390
15319
  const iamDenials = span.events.filter((event) => event.event_type?.toLowerCase().includes("iam") && typeof event.attributes?.payload === "string").map((event) => parseIAMEvent(event.attributes.payload)).filter((parsed) => parsed?.permission === "explicitly_denied" || parsed?.permission === "implicitly_denied").filter(Boolean);
15391
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { children: [
15392
- /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Typography, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: [
15320
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_material4.Box, { children: [
15321
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_material4.Typography, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: [
15393
15322
  "Status: ",
15394
15323
  spanStatusLabel
15395
15324
  ] }),
15396
- messages.map((message, index) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "inherit", display: "block", variant: "caption", children: message }, index)),
15397
- iamDenials.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_jsx_runtime125.Fragment, { children: [
15398
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Divider, { sx: { borderColor: "rgba(255,255,255,0.2)", my: 0.5 } }),
15399
- /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: "Permissions" }),
15400
- iamDenials.map((denial, index) => denial !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "inherit", display: "block", variant: "caption", children: `${formatPermissionStatus(denial.permission)}: ${denial.service}.${denial.operation}` }, index))
15325
+ messages.map((message, index) => /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Typography, { color: "inherit", display: "block", variant: "caption", children: message }, index)),
15326
+ iamDenials.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(import_jsx_runtime124.Fragment, { children: [
15327
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Divider, { sx: { borderColor: "rgba(255,255,255,0.2)", my: 0.5 } }),
15328
+ /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Typography, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: "Permissions" }),
15329
+ iamDenials.map((denial, index) => denial !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Typography, { color: "inherit", display: "block", variant: "caption", children: `${formatPermissionStatus(denial.permission)}: ${denial.service}.${denial.operation}` }, index))
15401
15330
  ] })
15402
15331
  ] });
15403
15332
  };
15404
15333
  var StatusIconWithTooltip = ({ span }) => {
15405
15334
  const errorLevel = calculateHighestErrorLevel(span);
15406
- if (errorLevel !== ErrorLevel.ERROR && errorLevel !== ErrorLevel.IAM_PERMISSION) return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_jsx_runtime125.Fragment, {});
15407
- return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Tooltip, { title: buildTooltipContent(span), children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Box, { sx: { alignItems: "center", cursor: "default", display: "flex" }, children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(StatusIcon, { errorLevel, spanStatusCode: span.status_code }) }) });
15335
+ if (errorLevel !== ErrorLevel.ERROR && errorLevel !== ErrorLevel.IAM_PERMISSION) return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_jsx_runtime124.Fragment, {});
15336
+ return /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Tooltip, { title: buildTooltipContent(span), children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(import_material4.Box, { sx: { alignItems: "center", cursor: "default", display: "flex" }, children: /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(StatusIcon, { errorLevel, spanStatusCode: span.status_code }) }) });
15408
15337
  };
15409
15338
 
15410
15339
  // src/components/spans-list/span-count-badge.tsx
15411
15340
  var import_icons_material2 = require("@mui/icons-material");
15412
- var import_material6 = require("@mui/material");
15413
- var import_react37 = require("react");
15414
- var import_jsx_runtime126 = require("react/jsx-runtime");
15341
+ var import_material5 = require("@mui/material");
15342
+ var import_react36 = require("react");
15343
+ var import_jsx_runtime125 = require("react/jsx-runtime");
15415
15344
  var resolveBindingLimit = (systemLimit, licenseLimit) => {
15416
15345
  const numericLimits = [systemLimit, licenseLimit].filter((l2) => typeof l2 === "number");
15417
15346
  if (numericLimits.length > 0) return Math.min(...numericLimits);
@@ -15424,29 +15353,29 @@ var fmtLimit = (value) => {
15424
15353
  if (value === "unlimited") return "Unlimited";
15425
15354
  return fmt(value);
15426
15355
  };
15427
- var StatRow = ({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { alignItems: "baseline", display: "flex", justifyContent: "space-between", minWidth: 220 }, children: [
15428
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "text.secondary", sx: { mr: 4 }, variant: "caption", children: label }),
15429
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { fontWeight: 600, variant: "body2", children: fmtLimit(value) })
15356
+ var StatRow = ({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { alignItems: "baseline", display: "flex", justifyContent: "space-between", minWidth: 220 }, children: [
15357
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "text.secondary", sx: { mr: 4 }, variant: "caption", children: label }),
15358
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { fontWeight: 600, variant: "body2", children: fmtLimit(value) })
15430
15359
  ] });
15431
15360
  var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) => {
15432
- const [anchorElement, setAnchorElement] = (0, import_react37.useState)();
15361
+ const [anchorElement, setAnchorElement] = (0, import_react36.useState)();
15433
15362
  const bindingLimit = resolveBindingLimit(systemLimit, licenseLimit);
15434
15363
  if (totalCount === void 0 && bindingLimit === void 0) {
15435
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_jsx_runtime126.Fragment, {});
15364
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_jsx_runtime125.Fragment, {});
15436
15365
  }
15437
15366
  if (visibleCount !== void 0) totalCount = Math.max(totalCount ?? 0, visibleCount);
15438
15367
  const isLoading = totalCount === void 0;
15439
15368
  const isOpen = anchorElement !== void 0;
15440
15369
  const systemLimitReached = typeof systemLimit === "number" && totalCount !== void 0 && totalCount >= systemLimit;
15441
15370
  const licenseLimitReached = typeof licenseLimit === "number" && totalCount !== void 0 && totalCount >= licenseLimit;
15442
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { alignItems: "center", display: "flex", gap: 0.25 }, children: [
15443
- isLoading ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Skeleton, { sx: { minWidth: 120 } }) : /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { alignItems: "baseline", display: "flex", gap: 0.5 }, children: [
15444
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "text.secondary", variant: "caption", children: "Showing" }),
15445
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { variant: "body2", children: visibleCount === void 0 ? "\u2014" : fmt(visibleCount) }),
15446
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "text.secondary", variant: "caption", children: `of ${totalCount === void 0 ? "-" : fmt(totalCount)} operations` })
15371
+ return /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { alignItems: "center", display: "flex", gap: 0.25 }, children: [
15372
+ isLoading ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Skeleton, { sx: { minWidth: 120 } }) : /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { alignItems: "baseline", display: "flex", gap: 0.5 }, children: [
15373
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "text.secondary", variant: "caption", children: "Showing" }),
15374
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { variant: "body2", children: visibleCount === void 0 ? "\u2014" : fmt(visibleCount) }),
15375
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "text.secondary", variant: "caption", children: `of ${totalCount === void 0 ? "-" : fmt(totalCount)} operations` })
15447
15376
  ] }),
15448
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Tooltip, { title: "Operation count details", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15449
- import_material6.IconButton,
15377
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Tooltip, { title: "Operation count details", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
15378
+ import_material5.IconButton,
15450
15379
  {
15451
15380
  "aria-describedby": isOpen ? "operation-count-popover" : void 0,
15452
15381
  onClick: (event) => {
@@ -15454,11 +15383,11 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
15454
15383
  },
15455
15384
  size: "small",
15456
15385
  sx: { color: systemLimitReached || licenseLimitReached ? "warning.main" : "text.disabled" },
15457
- children: systemLimitReached || licenseLimitReached ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material2.WarningAmberOutlined, { sx: { fontSize: 14 } }) : /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material2.InfoOutlined, { sx: { fontSize: 14 } })
15386
+ children: systemLimitReached || licenseLimitReached ? /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons_material2.WarningAmberOutlined, { sx: { fontSize: 14 } }) : /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons_material2.InfoOutlined, { sx: { fontSize: 14 } })
15458
15387
  }
15459
15388
  ) }),
15460
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15461
- import_material6.Popover,
15389
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
15390
+ import_material5.Popover,
15462
15391
  {
15463
15392
  anchorEl: anchorElement,
15464
15393
  anchorOrigin: { horizontal: "right", vertical: "bottom" },
@@ -15468,55 +15397,55 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
15468
15397
  },
15469
15398
  open: isOpen,
15470
15399
  transformOrigin: { horizontal: "right", vertical: "top" },
15471
- children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { minWidth: 240, p: 2 }, children: [
15472
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { fontWeight: 700, variant: "body2", children: "Storage" }),
15473
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "text.secondary", sx: { mt: 0.25 }, variant: "caption", children: "How many operations are currently stored." }),
15474
- /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75, mt: 1.5 }, children: [
15475
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15400
+ children: /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { minWidth: 240, p: 2 }, children: [
15401
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { fontWeight: 700, variant: "body2", children: "Storage" }),
15402
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "text.secondary", sx: { mt: 0.25 }, variant: "caption", children: "How many operations are currently stored." }),
15403
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75, mt: 1.5 }, children: [
15404
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
15476
15405
  StatRow,
15477
15406
  {
15478
- label: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Tooltip, { placement: "left", title: "The number of operations currently loaded in the UI.", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Currently visible" }) }),
15407
+ label: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Tooltip, { placement: "left", title: "The number of operations currently loaded in the UI.", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Currently visible" }) }),
15479
15408
  value: visibleCount
15480
15409
  }
15481
15410
  ),
15482
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15411
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
15483
15412
  StatRow,
15484
15413
  {
15485
- label: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Tooltip, { placement: "left", title: "The total number of operations stored on the server.", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Total stored" }) }),
15414
+ label: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Tooltip, { placement: "left", title: "The total number of operations stored on the server.", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Total stored" }) }),
15486
15415
  value: totalCount
15487
15416
  }
15488
15417
  )
15489
15418
  ] }),
15490
- (systemLimitReached || licenseLimit !== void 0 && licenseLimit !== "unlimited") && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
15491
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Divider, { sx: { my: 1.5 } }),
15492
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "text.secondary", fontWeight: 600, variant: "caption", children: "Limits" }),
15493
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "text.secondary", sx: { display: "block", mb: 1.5, mt: 0.25 }, variant: "caption", children: "Limits restrict the total number of operations that can be stored." }),
15494
- /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75 }, children: [
15495
- licenseLimit !== void 0 && licenseLimit !== "unlimited" && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15419
+ (systemLimitReached || licenseLimit !== void 0 && licenseLimit !== "unlimited") && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_jsx_runtime125.Fragment, { children: [
15420
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Divider, { sx: { my: 1.5 } }),
15421
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "text.secondary", fontWeight: 600, variant: "caption", children: "Limits" }),
15422
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "text.secondary", sx: { display: "block", mb: 1.5, mt: 0.25 }, variant: "caption", children: "Limits restrict the total number of operations that can be stored." }),
15423
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75 }, children: [
15424
+ licenseLimit !== void 0 && licenseLimit !== "unlimited" && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
15496
15425
  StatRow,
15497
15426
  {
15498
- label: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Tooltip, { placement: "left", title: "The maximum number of operations allowed by your current license.", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "License limit" }) }),
15427
+ label: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Tooltip, { placement: "left", title: "The maximum number of operations allowed by your current license.", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "License limit" }) }),
15499
15428
  value: licenseLimit
15500
15429
  }
15501
15430
  ),
15502
- systemLimitReached && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15431
+ systemLimitReached && /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
15503
15432
  StatRow,
15504
15433
  {
15505
- label: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Tooltip, { placement: "left", title: "The maximum number of operations that can be stored in the system.", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "System limit" }) }),
15434
+ label: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Tooltip, { placement: "left", title: "The maximum number of operations that can be stored in the system.", children: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "System limit" }) }),
15506
15435
  value: systemLimit
15507
15436
  }
15508
15437
  )
15509
15438
  ] })
15510
15439
  ] }),
15511
- (systemLimitReached || licenseLimitReached) && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { display: "flex", flexDirection: "column", gap: 1, mt: 1.5 }, children: [
15512
- licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { backgroundColor: "warning.main", borderRadius: 1, p: 1.5 }, children: [
15513
- /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75, mb: 0.75 }, children: [
15514
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material2.WarningAmberOutlined, { sx: { color: "warning.contrastText", fontSize: 14, mt: "1px" } }),
15515
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "warning.contrastText", fontWeight: 600, variant: "caption", children: "License limit reached" })
15440
+ (systemLimitReached || licenseLimitReached) && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { display: "flex", flexDirection: "column", gap: 1, mt: 1.5 }, children: [
15441
+ licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { backgroundColor: "warning.main", borderRadius: 1, p: 1.5 }, children: [
15442
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75, mb: 0.75 }, children: [
15443
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons_material2.WarningAmberOutlined, { sx: { color: "warning.contrastText", fontSize: 14, mt: "1px" } }),
15444
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "warning.contrastText", fontWeight: 600, variant: "caption", children: "License limit reached" })
15516
15445
  ] }),
15517
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "warning.contrastText", sx: { display: "block", mb: 1 }, variant: "caption", children: "Newer operations are being dropped. Upgrade your license to increase the retention limit." }),
15518
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15519
- import_material6.Button,
15446
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "warning.contrastText", sx: { display: "block", mb: 1 }, variant: "caption", children: "Newer operations are being dropped. Upgrade your license to increase the retention limit." }),
15447
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
15448
+ import_material5.Button,
15520
15449
  {
15521
15450
  color: "inherit",
15522
15451
  href: "https://localstack.cloud/pricing",
@@ -15528,9 +15457,9 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
15528
15457
  }
15529
15458
  )
15530
15459
  ] }),
15531
- systemLimitReached && !licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75 }, children: [
15532
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material2.WarningAmberOutlined, { color: "warning", sx: { fontSize: 14, mt: "1px" } }),
15533
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "warning.main", variant: "caption", children: "System limit reached \u2014 newer operations are being dropped." })
15460
+ systemLimitReached && !licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime125.jsxs)(import_material5.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75 }, children: [
15461
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_icons_material2.WarningAmberOutlined, { color: "warning", sx: { fontSize: 14, mt: "1px" } }),
15462
+ /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(import_material5.Typography, { color: "warning.main", variant: "caption", children: "System limit reached \u2014 newer operations are being dropped." })
15534
15463
  ] })
15535
15464
  ] })
15536
15465
  ] })
@@ -15540,7 +15469,7 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
15540
15469
  };
15541
15470
 
15542
15471
  // src/components/spans-list/spans-data-grid.tsx
15543
- var import_jsx_runtime127 = require("react/jsx-runtime");
15472
+ var import_jsx_runtime126 = require("react/jsx-runtime");
15544
15473
  var columnHelper = createColumnHelper();
15545
15474
  var newSpanBackgroundColor = {
15546
15475
  dark: { from: "rgba(136, 123, 2, 1)", to: "rgba(136, 123, 2, 0)" },
@@ -15550,13 +15479,13 @@ var LABEL_BEGINNING_OF_STREAM = "This is the beginning of the stream";
15550
15479
  var LABEL_END_OF_STREAM = "This is the end of the stream";
15551
15480
  var LABEL_NO_SPANS = "There are no operations";
15552
15481
  var STICK_TO_EDGE_THRESHOLD_PX = 4;
15553
- var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableCell, { colSpan, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { children: label }) }) });
15554
- var LoadingRow = ({ colSpan }) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableCell, { colSpan, sx: { textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.CircularProgress, { size: 24, sx: { m: 2 } }) }) });
15555
- var SpansDataGridRow = (0, import_react38.memo)(
15482
+ var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableCell, { colSpan, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)("span", { children: label }) }) });
15483
+ var LoadingRow = ({ colSpan }) => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableCell, { colSpan, sx: { textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.CircularProgress, { size: 24, sx: { m: 2 } }) }) });
15484
+ var SpansDataGridRow = (0, import_react37.memo)(
15556
15485
  ({ isNew, onSpanClick, row }) => {
15557
- const theme = (0, import_material7.useTheme)();
15558
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15559
- import_material7.TableRow,
15486
+ const theme = (0, import_material6.useTheme)();
15487
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15488
+ import_material6.TableRow,
15560
15489
  {
15561
15490
  animate: {
15562
15491
  backgroundColor: theme.palette.mode === "light" ? newSpanBackgroundColor.light.to : newSpanBackgroundColor.dark.to
@@ -15574,16 +15503,16 @@ var SpansDataGridRow = (0, import_react38.memo)(
15574
15503
  transition: "background-color 1200ms ease-in"
15575
15504
  },
15576
15505
  children: row.getVisibleCells().map((cell) => {
15577
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15578
- import_material7.TableCell,
15506
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15507
+ import_material6.TableCell,
15579
15508
  {
15580
15509
  sx: {
15581
- height: 36,
15510
+ height: 48,
15582
15511
  maxWidth: `${cell.column.getSize().toString()}px`,
15583
15512
  minWidth: `${cell.column.getSize().toString()}px`
15584
15513
  },
15585
- children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15586
- import_material7.Box,
15514
+ children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15515
+ import_material6.Box,
15587
15516
  {
15588
15517
  sx: {
15589
15518
  "alignItems": "center",
@@ -15595,7 +15524,7 @@ var SpansDataGridRow = (0, import_react38.memo)(
15595
15524
  },
15596
15525
  "width": "100%"
15597
15526
  },
15598
- children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Box, { sx: { px: 1, width: "100%" }, children: flexRender(cell.column.columnDef.cell, cell.getContext()) })
15527
+ children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Box, { sx: { px: 1, width: "100%" }, children: flexRender(cell.column.columnDef.cell, cell.getContext()) })
15599
15528
  }
15600
15529
  )
15601
15530
  },
@@ -15626,11 +15555,11 @@ var SpansDataGrid = ({
15626
15555
  totalCount,
15627
15556
  warningCount
15628
15557
  }) => {
15629
- const columns = (0, import_react38.useMemo)(() => [
15558
+ const columns = (0, import_react37.useMemo)(() => [
15630
15559
  columnHelper.accessor("startTime", {
15631
- cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ResponsiveTimestampCell, { date: props.getValue() }),
15632
- header: () => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15633
- import_material7.TableSortLabel,
15560
+ cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(ResponsiveTimestampCell, { date: props.getValue() }),
15561
+ header: () => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15562
+ import_material6.TableSortLabel,
15634
15563
  {
15635
15564
  active: true,
15636
15565
  direction: order2 === "newest_first" ? "asc" : "desc",
@@ -15646,23 +15575,23 @@ var SpansDataGrid = ({
15646
15575
  columnHelper.display({
15647
15576
  cell: (props) => {
15648
15577
  if (!props.row.original.parent_service_name || !props.row.original.parent_resource_name) {
15649
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Typography, { sx: { fontStyle: "italic" }, variant: "body2", children: "External producer" });
15578
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { sx: { fontStyle: "italic" }, variant: "body2", children: "External producer" });
15650
15579
  }
15651
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ServiceCell, { resource: props.row.original.parent_resource_name, service: props.row.original.parent_service_name });
15580
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(ServiceCell, { resource: props.row.original.parent_resource_name, service: props.row.original.parent_service_name });
15652
15581
  },
15653
15582
  header: "Producer",
15654
15583
  id: "producer",
15655
15584
  size: 180
15656
15585
  }),
15657
15586
  columnHelper.accessor("operation_name", {
15658
- cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15659
- import_material7.Box,
15587
+ cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15588
+ import_material6.Box,
15660
15589
  {
15661
15590
  sx: {
15662
15591
  overflow: "hidden",
15663
15592
  textOverflow: "ellipsis"
15664
15593
  },
15665
- children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { title: props.getValue(), children: props.getValue() })
15594
+ children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)("span", { title: props.getValue(), children: props.getValue() })
15666
15595
  }
15667
15596
  ),
15668
15597
  header: "Action",
@@ -15671,7 +15600,7 @@ var SpansDataGrid = ({
15671
15600
  }),
15672
15601
  columnHelper.display({
15673
15602
  cell: (props) => {
15674
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ServiceCell, { resource: props.row.original.resource_name, service: props.row.original.service_name });
15603
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(ServiceCell, { resource: props.row.original.resource_name, service: props.row.original.service_name });
15675
15604
  },
15676
15605
  header: "Consumer",
15677
15606
  id: "consumer",
@@ -15679,10 +15608,10 @@ var SpansDataGrid = ({
15679
15608
  }),
15680
15609
  columnHelper.display({
15681
15610
  cell: (props) => {
15682
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material7.Box, { sx: { alignItems: "center", display: "flex", gap: 0.5, justifyContent: "flex-end" }, children: [
15683
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StatusIconWithTooltip, { span: props.row.original }),
15684
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15685
- import_material7.Button,
15611
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { alignItems: "center", display: "flex", gap: 0.5, justifyContent: "flex-end" }, children: [
15612
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StatusIconWithTooltip, { span: props.row.original }),
15613
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15614
+ import_material6.Button,
15686
15615
  {
15687
15616
  "data-testid": VIEW_SPAN_DETAILS_TEST_ID,
15688
15617
  onClick: (event) => {
@@ -15709,13 +15638,13 @@ var SpansDataGrid = ({
15709
15638
  const columnCount = table.getAllColumns().length;
15710
15639
  const rows = table.getRowModel().rows;
15711
15640
  const hasRows = rows.length > 0;
15712
- const displayRows = (0, import_react38.useMemo)(() => {
15641
+ const displayRows = (0, import_react37.useMemo)(() => {
15713
15642
  if (order2 === "newest_first") return rows.toReversed();
15714
15643
  return rows;
15715
15644
  }, [rows, order2]);
15716
- const containerRef = (0, import_react38.useRef)(null);
15717
- const isAtLiveEdgeRef = (0, import_react38.useRef)(true);
15718
- const handleScroll = (0, import_react38.useCallback)(() => {
15645
+ const containerRef = (0, import_react37.useRef)(null);
15646
+ const isAtLiveEdgeRef = (0, import_react37.useRef)(true);
15647
+ const handleScroll = (0, import_react37.useCallback)(() => {
15719
15648
  const element = containerRef.current;
15720
15649
  if (!element) return;
15721
15650
  if (order2 === "oldest_first") {
@@ -15736,68 +15665,68 @@ var SpansDataGrid = ({
15736
15665
  const totalVirtualSize = virtualizer.getTotalSize();
15737
15666
  const paddingTop = virtualItems.length > 0 ? virtualItems[0]?.start ?? 0 : 0;
15738
15667
  const paddingBottom = virtualItems.length > 0 ? totalVirtualSize - (virtualItems.at(-1)?.end ?? 0) : 0;
15739
- const seenSpanIdsRef = (0, import_react38.useRef)(void 0);
15668
+ const seenSpanIdsRef = (0, import_react37.useRef)(void 0);
15740
15669
  seenSpanIdsRef.current ??= new Set((spans ?? []).map((s) => s.span_id));
15741
- (0, import_react38.useLayoutEffect)(() => {
15670
+ (0, import_react37.useLayoutEffect)(() => {
15742
15671
  for (const virtualItem of virtualItems) {
15743
15672
  const row = displayRows[virtualItem.index];
15744
15673
  if (row) seenSpanIdsRef.current?.add(row.original.span_id);
15745
15674
  }
15746
15675
  });
15747
- (0, import_react38.useEffect)(() => {
15676
+ (0, import_react37.useEffect)(() => {
15748
15677
  if (spans?.length === 0) seenSpanIdsRef.current = void 0;
15749
15678
  }, [spans?.length]);
15750
15679
  const lastSpanId = spans?.at(-1)?.span_id;
15751
- (0, import_react38.useLayoutEffect)(() => {
15680
+ (0, import_react37.useLayoutEffect)(() => {
15752
15681
  handleScroll();
15753
15682
  }, [handleScroll]);
15754
- (0, import_react38.useLayoutEffect)(() => {
15683
+ (0, import_react37.useLayoutEffect)(() => {
15755
15684
  if (order2 !== "oldest_first") return;
15756
15685
  const element = containerRef.current;
15757
15686
  if (!element || !isAtLiveEdgeRef.current) return;
15758
15687
  element.scrollTop = element.scrollHeight;
15759
15688
  }, [order2, spans?.length, lastSpanId]);
15760
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15761
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Grid, { item: true, xs: 12, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material7.Box, { sx: { alignItems: "center", display: "flex", gap: "0.5rem" }, children: [
15762
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(SpanCountBadge, { licenseLimit, systemLimit, totalCount, visibleCount: spans?.length }),
15763
- errorCount !== void 0 && errorCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15764
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15765
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Tooltip, { title: "Number of errors detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
15766
- import_material7.Box,
15689
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
15690
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Grid, { item: true, xs: 12, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.Box, { sx: { alignItems: "center", display: "flex", gap: "0.5rem" }, children: [
15691
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SpanCountBadge, { licenseLimit, systemLimit, totalCount, visibleCount: spans?.length }),
15692
+ errorCount !== void 0 && errorCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
15693
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15694
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Tooltip, { title: "Number of errors detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
15695
+ import_material6.Box,
15767
15696
  {
15768
15697
  "data-testid": ERROR_COUNT_TEST_ID,
15769
15698
  sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "error.main", cursor: "help", display: "flex", gap: 0.5, mb: "-1px" },
15770
15699
  children: [
15771
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Typography, { color: "error", variant: "body2", children: errorCount.toLocaleString() }),
15772
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Typography, { color: "error", variant: "caption", children: errorCount === 1 ? "error" : "errors" })
15700
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "error", variant: "body2", children: errorCount.toLocaleString() }),
15701
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "error", variant: "caption", children: errorCount === 1 ? "error" : "errors" })
15773
15702
  ]
15774
15703
  }
15775
15704
  ) })
15776
15705
  ] }),
15777
- warningCount !== void 0 && warningCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15778
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15779
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Tooltip, { title: "Number of warnings detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
15780
- import_material7.Box,
15706
+ warningCount !== void 0 && warningCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
15707
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15708
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Tooltip, { title: "Number of warnings detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
15709
+ import_material6.Box,
15781
15710
  {
15782
15711
  "data-testid": WARNING_COUNT_TEST_ID,
15783
15712
  sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "warning.main", cursor: "help", display: "flex", gap: 0.5, mb: "-1px" },
15784
15713
  children: [
15785
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Typography, { color: "warning.main", variant: "body2", children: warningCount.toLocaleString() }),
15786
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Typography, { color: "warning.main", variant: "caption", children: warningCount === 1 ? "warning" : "warnings" })
15714
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "warning.main", variant: "body2", children: warningCount.toLocaleString() }),
15715
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Typography, { color: "warning.main", variant: "caption", children: warningCount === 1 ? "warning" : "warnings" })
15787
15716
  ]
15788
15717
  }
15789
15718
  ) })
15790
15719
  ] }),
15791
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Box, { sx: { flexGrow: 1 } }),
15792
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15793
- import_material7.FormControlLabel,
15720
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Box, { sx: { flexGrow: 1 } }),
15721
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15722
+ import_material6.FormControlLabel,
15794
15723
  {
15795
- control: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15796
- import_material7.Button,
15724
+ control: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15725
+ import_material6.Button,
15797
15726
  {
15798
15727
  "data-testid": CLEAR_SPANS_TEST_ID,
15799
15728
  onClick: onClearSpans,
15800
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material3.DeleteForeverOutlined, {}),
15729
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material3.DeleteForeverOutlined, {}),
15801
15730
  children: "Clear Operations"
15802
15731
  }
15803
15732
  ),
@@ -15807,8 +15736,8 @@ var SpansDataGrid = ({
15807
15736
  }
15808
15737
  )
15809
15738
  ] }) }),
15810
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Paper, { sx: { flexGrow: 1, overflow: "hidden", position: "relative", width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15811
- import_material7.TableContainer,
15739
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.Paper, { sx: { flexGrow: 1, overflow: "hidden", position: "relative", width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15740
+ import_material6.TableContainer,
15812
15741
  {
15813
15742
  onScroll: handleScroll,
15814
15743
  ref: containerRef,
@@ -15820,8 +15749,8 @@ var SpansDataGrid = ({
15820
15749
  right: 0,
15821
15750
  top: 0
15822
15751
  },
15823
- children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
15824
- import_material7.Table,
15752
+ children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(
15753
+ import_material6.Table,
15825
15754
  {
15826
15755
  stickyHeader: true,
15827
15756
  sx: {
@@ -15832,9 +15761,9 @@ var SpansDataGrid = ({
15832
15761
  "th+th": { pl: "8px !important" }
15833
15762
  },
15834
15763
  children: [
15835
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableHead, { children: table.getHeaderGroups().map((headerGroup) => {
15836
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15837
- import_material7.TableCell,
15764
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableHead, { children: table.getHeaderGroups().map((headerGroup) => {
15765
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15766
+ import_material6.TableCell,
15838
15767
  {
15839
15768
  colSpan: header.colSpan,
15840
15769
  sx: {
@@ -15848,34 +15777,34 @@ var SpansDataGrid = ({
15848
15777
  header.id
15849
15778
  )) }, headerGroup.id);
15850
15779
  }) }),
15851
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material7.TableBody, { children: [
15852
- (spans === void 0 || clearingSpans) && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableCell, { colSpan: columnCount, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.CircularProgress, { size: 48, sx: { m: 4 } }) }) }),
15853
- !clearingSpans && spans?.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_NO_SPANS }),
15854
- !clearingSpans && order2 === "newest_first" && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15855
- hasRows && hasMoreForward && fetchingForward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(LoadingRow, { colSpan: columnCount }),
15856
- hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM }),
15857
- hasRows && paddingTop > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableCell, { colSpan: columnCount, sx: { border: 0, height: paddingTop, p: 0 } }) }),
15780
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material6.TableBody, { children: [
15781
+ (spans === void 0 || clearingSpans) && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableCell, { colSpan: columnCount, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.CircularProgress, { size: 48, sx: { m: 4 } }) }) }),
15782
+ !clearingSpans && spans?.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_NO_SPANS }),
15783
+ !clearingSpans && order2 === "newest_first" && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
15784
+ hasRows && hasMoreForward && fetchingForward && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(LoadingRow, { colSpan: columnCount }),
15785
+ hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM }),
15786
+ hasRows && paddingTop > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableCell, { colSpan: columnCount, sx: { border: 0, height: paddingTop, p: 0 } }) }),
15858
15787
  hasRows && virtualItems.map((virtualItem) => {
15859
15788
  const row = displayRows[virtualItem.index];
15860
15789
  const isNew = !(seenSpanIdsRef.current?.has(row.original.span_id) ?? false);
15861
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(SpansDataGridRow, { isNew, onSpanClick, row }, row.original.span_id);
15790
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SpansDataGridRow, { isNew, onSpanClick, row }, row.original.span_id);
15862
15791
  }),
15863
- hasRows && paddingBottom > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableCell, { colSpan: columnCount, sx: { border: 0, height: paddingBottom, p: 0 } }) }),
15864
- hasRows && hasMoreBackward && fetchingBackward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(LoadingRow, { colSpan: columnCount }),
15865
- hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM })
15792
+ hasRows && paddingBottom > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableCell, { colSpan: columnCount, sx: { border: 0, height: paddingBottom, p: 0 } }) }),
15793
+ hasRows && hasMoreBackward && fetchingBackward && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(LoadingRow, { colSpan: columnCount }),
15794
+ hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM })
15866
15795
  ] }),
15867
- !clearingSpans && order2 === "oldest_first" && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15868
- hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM }),
15869
- hasRows && hasMoreBackward && fetchingBackward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(LoadingRow, { colSpan: columnCount }),
15870
- hasRows && paddingTop > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableCell, { colSpan: columnCount, sx: { border: 0, height: paddingTop, p: 0 } }) }),
15796
+ !clearingSpans && order2 === "oldest_first" && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
15797
+ hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM }),
15798
+ hasRows && hasMoreBackward && fetchingBackward && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(LoadingRow, { colSpan: columnCount }),
15799
+ hasRows && paddingTop > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableCell, { colSpan: columnCount, sx: { border: 0, height: paddingTop, p: 0 } }) }),
15871
15800
  hasRows && virtualItems.map((virtualItem) => {
15872
15801
  const row = displayRows[virtualItem.index];
15873
15802
  const isNew = !(seenSpanIdsRef.current?.has(row.original.span_id) ?? false);
15874
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(SpansDataGridRow, { isNew, onSpanClick, row }, row.original.span_id);
15803
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(SpansDataGridRow, { isNew, onSpanClick, row }, row.original.span_id);
15875
15804
  }),
15876
- hasRows && paddingBottom > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.TableCell, { colSpan: columnCount, sx: { border: 0, height: paddingBottom, p: 0 } }) }),
15877
- hasRows && hasMoreForward && fetchingForward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(LoadingRow, { colSpan: columnCount }),
15878
- hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM })
15805
+ hasRows && paddingBottom > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material6.TableCell, { colSpan: columnCount, sx: { border: 0, height: paddingBottom, p: 0 } }) }),
15806
+ hasRows && hasMoreForward && fetchingForward && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(LoadingRow, { colSpan: columnCount }),
15807
+ hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM })
15879
15808
  ] })
15880
15809
  ] })
15881
15810
  ]
@@ -15887,13 +15816,13 @@ var SpansDataGrid = ({
15887
15816
  };
15888
15817
 
15889
15818
  // src/components/spans-list/spans-list.tsx
15890
- var import_jsx_runtime128 = require("react/jsx-runtime");
15819
+ var import_jsx_runtime127 = require("react/jsx-runtime");
15891
15820
  var SpansList = (props) => {
15892
- return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material8.Box, { "data-testid": SPANS_DATA_GRID_TEST_ID, sx: { display: "flex", flexDirection: "column", flexGrow: 1, gap: 2, width: "100%" }, children: [
15893
- props.fetchError && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
15894
- import_material8.Alert,
15821
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material7.Box, { "data-testid": SPANS_DATA_GRID_TEST_ID, sx: { display: "flex", flexDirection: "column", flexGrow: 1, gap: 2, width: "100%" }, children: [
15822
+ props.fetchError && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
15823
+ import_material7.Alert,
15895
15824
  {
15896
- action: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Button, { onClick: props.onFetchForward, children: "Retry" }),
15825
+ action: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material7.Button, { onClick: props.onFetchForward, children: "Retry" }),
15897
15826
  severity: "error",
15898
15827
  children: [
15899
15828
  "Unexpected error:",
@@ -15902,7 +15831,7 @@ var SpansList = (props) => {
15902
15831
  ]
15903
15832
  }
15904
15833
  ),
15905
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15834
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15906
15835
  SpansDataGrid,
15907
15836
  {
15908
15837
  clearingSpans: props.clearingSpans,
@@ -15927,17 +15856,17 @@ var SpansList = (props) => {
15927
15856
 
15928
15857
  // src/components/status-message/status-message.tsx
15929
15858
  var import_icons_material4 = require("@mui/icons-material");
15930
- var import_material9 = require("@mui/material");
15931
- var import_react39 = require("react");
15932
- var import_jsx_runtime129 = require("react/jsx-runtime");
15859
+ var import_material8 = require("@mui/material");
15860
+ var import_react38 = require("react");
15861
+ var import_jsx_runtime128 = require("react/jsx-runtime");
15933
15862
  var StatusMessage = ({
15934
15863
  localstackVersion,
15935
15864
  onEnable,
15936
15865
  onRetry,
15937
15866
  phase
15938
15867
  }) => {
15939
- const [enabling, setEnabling] = (0, import_react39.useState)(false);
15940
- const [enableError, setEnableError] = (0, import_react39.useState)();
15868
+ const [enabling, setEnabling] = (0, import_react38.useState)(false);
15869
+ const [enableError, setEnableError] = (0, import_react38.useState)();
15941
15870
  const handleEnable = async () => {
15942
15871
  if (!onEnable) return;
15943
15872
  setEnabling(true);
@@ -15951,8 +15880,8 @@ var StatusMessage = ({
15951
15880
  }
15952
15881
  };
15953
15882
  if (phase === "CHECKING_STATUS" || phase === "CONNECTING_WS") {
15954
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15955
- import_material9.Box,
15883
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15884
+ import_material8.Box,
15956
15885
  {
15957
15886
  sx: {
15958
15887
  alignItems: "center",
@@ -15962,13 +15891,13 @@ var StatusMessage = ({
15962
15891
  justifyContent: "center",
15963
15892
  p: 4
15964
15893
  },
15965
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.CircularProgress, { size: 32 })
15894
+ children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.CircularProgress, { size: 32 })
15966
15895
  }
15967
15896
  );
15968
15897
  }
15969
15898
  if (phase === "INCOMPATIBLE") {
15970
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15971
- import_material9.Box,
15899
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15900
+ import_material8.Box,
15972
15901
  {
15973
15902
  sx: {
15974
15903
  alignItems: "center",
@@ -15978,18 +15907,18 @@ var StatusMessage = ({
15978
15907
  justifyContent: "center",
15979
15908
  p: 4
15980
15909
  },
15981
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
15982
- import_material9.Alert,
15910
+ children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
15911
+ import_material8.Alert,
15983
15912
  {
15984
- icon: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
15913
+ icon: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
15985
15914
  severity: "error",
15986
15915
  sx: { maxWidth: 600, width: "100%" },
15987
15916
  children: [
15988
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Not Available" }),
15989
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.Typography, { sx: { mb: 2 }, variant: "body2", children: localstackVersion === void 0 ? `App Inspector requires LocalStack ${MINIMUM_EMULATOR_VERSION} or later. Please update LocalStack.` : `App Inspector requires LocalStack ${MINIMUM_EMULATOR_VERSION} or later. You are running version ${localstackVersion}. Please update LocalStack.` }),
15990
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("strong", { children: "Update LocalStack:" }) }),
15991
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15992
- import_material9.Box,
15917
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Not Available" }),
15918
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Typography, { sx: { mb: 2 }, variant: "body2", children: localstackVersion === void 0 ? `App Inspector requires LocalStack ${MINIMUM_EMULATOR_VERSION} or later. Please update LocalStack.` : `App Inspector requires LocalStack ${MINIMUM_EMULATOR_VERSION} or later. You are running version ${localstackVersion}. Please update LocalStack.` }),
15919
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("strong", { children: "Update LocalStack:" }) }),
15920
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15921
+ import_material8.Box,
15993
15922
  {
15994
15923
  component: "pre",
15995
15924
  sx: {
@@ -16001,8 +15930,8 @@ var StatusMessage = ({
16001
15930
  children: "localstack update docker-images"
16002
15931
  }
16003
15932
  ),
16004
- onRetry && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.Box, { sx: { display: "flex", gap: 1, mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
16005
- import_material9.Button,
15933
+ onRetry && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Box, { sx: { display: "flex", gap: 1, mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15934
+ import_material8.Button,
16006
15935
  {
16007
15936
  "aria-label": "Check App Inspector status again",
16008
15937
  onClick: onRetry,
@@ -16017,8 +15946,8 @@ var StatusMessage = ({
16017
15946
  );
16018
15947
  }
16019
15948
  if (phase === "UNREACHABLE") {
16020
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
16021
- import_material9.Box,
15949
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15950
+ import_material8.Box,
16022
15951
  {
16023
15952
  sx: {
16024
15953
  alignItems: "center",
@@ -16028,18 +15957,18 @@ var StatusMessage = ({
16028
15957
  justifyContent: "center",
16029
15958
  p: 4
16030
15959
  },
16031
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
16032
- import_material9.Alert,
15960
+ children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
15961
+ import_material8.Alert,
16033
15962
  {
16034
- icon: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
15963
+ icon: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
16035
15964
  severity: "error",
16036
15965
  sx: { maxWidth: 600, width: "100%" },
16037
15966
  children: [
16038
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "Connection Error" }),
16039
- /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_material9.Typography, { sx: { mb: 2 }, variant: "body2", children: [
15967
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.AlertTitle, { sx: { fontWeight: "bold" }, children: "Connection Error" }),
15968
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material8.Typography, { sx: { mb: 2 }, variant: "body2", children: [
16040
15969
  "Failed to connect to LocalStack. Ensure ",
16041
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
16042
- import_material9.Link,
15970
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15971
+ import_material8.Link,
16043
15972
  {
16044
15973
  href: "https://docs.localstack.cloud/aws/getting-started/installation/",
16045
15974
  rel: "noopener noreferrer",
@@ -16049,9 +15978,9 @@ var StatusMessage = ({
16049
15978
  ),
16050
15979
  " is running and accessible."
16051
15980
  ] }),
16052
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("strong", { children: "Start LocalStack:" }) }),
16053
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
16054
- import_material9.Box,
15981
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("strong", { children: "Start LocalStack:" }) }),
15982
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15983
+ import_material8.Box,
16055
15984
  {
16056
15985
  component: "pre",
16057
15986
  sx: {
@@ -16063,8 +15992,8 @@ var StatusMessage = ({
16063
15992
  children: "localstack start"
16064
15993
  }
16065
15994
  ),
16066
- onRetry && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.Box, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
16067
- import_material9.Button,
15995
+ onRetry && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Box, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15996
+ import_material8.Button,
16068
15997
  {
16069
15998
  "aria-label": "Retry connection to LocalStack",
16070
15999
  onClick: onRetry,
@@ -16079,8 +16008,8 @@ var StatusMessage = ({
16079
16008
  );
16080
16009
  }
16081
16010
  if (phase === "DISABLED") {
16082
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
16083
- import_material9.Box,
16011
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
16012
+ import_material8.Box,
16084
16013
  {
16085
16014
  sx: {
16086
16015
  alignItems: "center",
@@ -16090,31 +16019,31 @@ var StatusMessage = ({
16090
16019
  justifyContent: "center",
16091
16020
  p: 4
16092
16021
  },
16093
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
16094
- import_material9.Alert,
16022
+ children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
16023
+ import_material8.Alert,
16095
16024
  {
16096
- icon: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_icons_material4.InfoOutlined, { fontSize: "large" }),
16025
+ icon: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_icons_material4.InfoOutlined, { fontSize: "large" }),
16097
16026
  severity: "warning",
16098
16027
  sx: { maxWidth: 600, width: "100%" },
16099
16028
  children: [
16100
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Is Not Enabled" }),
16101
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.Typography, { sx: { mb: 2 }, variant: "body2", children: "App Inspector is not currently enabled in LocalStack. You can enable it now, or at startup." }),
16102
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.Box, { sx: { display: "flex", gap: 1, mb: 2 }, children: onEnable && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
16103
- import_material9.Button,
16029
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Is Not Enabled" }),
16030
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Typography, { sx: { mb: 2 }, variant: "body2", children: "App Inspector is not currently enabled in LocalStack. You can enable it now, or at startup." }),
16031
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Box, { sx: { display: "flex", gap: 1, mb: 2 }, children: onEnable && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
16032
+ import_material8.Button,
16104
16033
  {
16105
16034
  "aria-label": "Enable App Inspector Now",
16106
16035
  disabled: enabling,
16107
16036
  onClick: () => {
16108
16037
  void handleEnable();
16109
16038
  },
16110
- startIcon: enabling ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.CircularProgress, { size: 16 }) : void 0,
16039
+ startIcon: enabling ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.CircularProgress, { size: 16 }) : void 0,
16111
16040
  variant: "contained",
16112
16041
  children: "Enable App Inspector Now"
16113
16042
  }
16114
16043
  ) }),
16115
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.Typography, { sx: { mb: 1 }, variant: "body2", children: "If you'd prefer to automatically enable App Inspector at start up, use:" }),
16116
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
16117
- import_material9.Box,
16044
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Typography, { sx: { mb: 1 }, variant: "body2", children: "If you'd prefer to automatically enable App Inspector at start up, use:" }),
16045
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
16046
+ import_material8.Box,
16118
16047
  {
16119
16048
  component: "pre",
16120
16049
  sx: {
@@ -16126,30 +16055,30 @@ var StatusMessage = ({
16126
16055
  children: "LOCALSTACK_APP_INSPECTOR=1 localstack start"
16127
16056
  }
16128
16057
  ),
16129
- Boolean(enableError) && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material9.Typography, { color: "error", sx: { mt: 1 }, variant: "body2", children: enableError })
16058
+ Boolean(enableError) && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material8.Typography, { color: "error", sx: { mt: 1 }, variant: "body2", children: enableError })
16130
16059
  ]
16131
16060
  }
16132
16061
  )
16133
16062
  }
16134
16063
  );
16135
16064
  }
16136
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_jsx_runtime129.Fragment, {});
16065
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_jsx_runtime128.Fragment, {});
16137
16066
  };
16138
16067
 
16139
16068
  // src/hooks/status-provider.tsx
16140
- var import_react41 = require("react");
16069
+ var import_react40 = require("react");
16141
16070
 
16142
16071
  // src/hooks/use-connection-state-machine.ts
16143
- var import_react40 = require("react");
16072
+ var import_react39 = require("react");
16144
16073
  var POLL_INTERVAL_MS = 5e3;
16145
16074
  function useConnectionStateMachine() {
16146
16075
  const api = useAppInspectorApi();
16147
- const [phase, setPhase] = (0, import_react40.useState)("CHECKING_STATUS");
16148
- const [checking, setChecking] = (0, import_react40.useState)(true);
16149
- const [status, setStatus] = (0, import_react40.useState)();
16150
- const [statusError, setStatusError] = (0, import_react40.useState)();
16151
- const abortControllerRef = (0, import_react40.useRef)(null);
16152
- const dispatchStatus = (0, import_react40.useCallback)((result, error) => {
16076
+ const [phase, setPhase] = (0, import_react39.useState)("CHECKING_STATUS");
16077
+ const [checking, setChecking] = (0, import_react39.useState)(true);
16078
+ const [status, setStatus] = (0, import_react39.useState)();
16079
+ const [statusError, setStatusError] = (0, import_react39.useState)();
16080
+ const abortControllerRef = (0, import_react39.useRef)(null);
16081
+ const dispatchStatus = (0, import_react39.useCallback)((result, error) => {
16153
16082
  if (result === void 0) {
16154
16083
  setStatus(void 0);
16155
16084
  setStatusError(error);
@@ -16164,7 +16093,7 @@ function useConnectionStateMachine() {
16164
16093
  }
16165
16094
  setPhase(result.status === "ENABLED" ? "CONNECTING_WS" : "DISABLED");
16166
16095
  }, []);
16167
- const runCheck = (0, import_react40.useCallback)(async () => {
16096
+ const runCheck = (0, import_react39.useCallback)(async () => {
16168
16097
  if (abortControllerRef.current !== null) {
16169
16098
  abortControllerRef.current.abort();
16170
16099
  }
@@ -16186,10 +16115,10 @@ function useConnectionStateMachine() {
16186
16115
  }
16187
16116
  }
16188
16117
  }, [api, dispatchStatus]);
16189
- (0, import_react40.useEffect)(() => {
16118
+ (0, import_react39.useEffect)(() => {
16190
16119
  void runCheck();
16191
16120
  }, [runCheck]);
16192
- (0, import_react40.useEffect)(() => {
16121
+ (0, import_react39.useEffect)(() => {
16193
16122
  if (phase !== "UNREACHABLE" && phase !== "DISABLED") return;
16194
16123
  const intervalId = globalThis.setInterval(() => {
16195
16124
  void runCheck();
@@ -16198,13 +16127,13 @@ function useConnectionStateMachine() {
16198
16127
  globalThis.clearInterval(intervalId);
16199
16128
  };
16200
16129
  }, [phase, runCheck]);
16201
- const checkStatus = (0, import_react40.useCallback)(() => {
16130
+ const checkStatus = (0, import_react39.useCallback)(() => {
16202
16131
  void runCheck();
16203
16132
  }, [runCheck]);
16204
- const onWsOpen = (0, import_react40.useCallback)(() => {
16133
+ const onWsOpen = (0, import_react39.useCallback)(() => {
16205
16134
  setPhase("LIVE");
16206
16135
  }, []);
16207
- const onWsClose = (0, import_react40.useCallback)(() => {
16136
+ const onWsClose = (0, import_react39.useCallback)(() => {
16208
16137
  setPhase("CHECKING_STATUS");
16209
16138
  void runCheck();
16210
16139
  }, [runCheck]);
@@ -16222,14 +16151,14 @@ function useConnectionStateMachine() {
16222
16151
  }
16223
16152
 
16224
16153
  // src/hooks/status-provider.tsx
16225
- var import_jsx_runtime130 = require("react/jsx-runtime");
16226
- var AppInspectorStatusContext = (0, import_react41.createContext)(void 0);
16154
+ var import_jsx_runtime129 = require("react/jsx-runtime");
16155
+ var AppInspectorStatusContext = (0, import_react40.createContext)(void 0);
16227
16156
  var StatusProvider = ({ children }) => {
16228
16157
  const value = useConnectionStateMachine();
16229
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(AppInspectorStatusContext.Provider, { value, children });
16158
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(AppInspectorStatusContext.Provider, { value, children });
16230
16159
  };
16231
16160
  var useAppInspectorStatus = () => {
16232
- const value = (0, import_react41.useContext)(AppInspectorStatusContext);
16161
+ const value = (0, import_react40.useContext)(AppInspectorStatusContext);
16233
16162
  if (!value) {
16234
16163
  throw new Error("@localstack-studio/ui: useAppInspectorStatus must be used within a <StatusProvider> (rendered internally by <AppInspectorContextProvider>)");
16235
16164
  }
@@ -16237,9 +16166,9 @@ var useAppInspectorStatus = () => {
16237
16166
  };
16238
16167
 
16239
16168
  // src/hooks/use-local-storage.tsx
16240
- var import_react42 = require("react");
16169
+ var import_react41 = require("react");
16241
16170
  function useLocalStorage(key, initialValue) {
16242
- const [storedValue, setStoredValue] = (0, import_react42.useState)(() => {
16171
+ const [storedValue, setStoredValue] = (0, import_react41.useState)(() => {
16243
16172
  try {
16244
16173
  const item = globalThis.localStorage.getItem(key);
16245
16174
  return item ? JSON.parse(item) : initialValue;
@@ -16248,7 +16177,7 @@ function useLocalStorage(key, initialValue) {
16248
16177
  return initialValue;
16249
16178
  }
16250
16179
  });
16251
- const setValue = (0, import_react42.useCallback)((value) => {
16180
+ const setValue = (0, import_react41.useCallback)((value) => {
16252
16181
  try {
16253
16182
  setStoredValue((previousState) => {
16254
16183
  const next = typeof value === "function" ? value(previousState) : value;
@@ -16263,7 +16192,7 @@ function useLocalStorage(key, initialValue) {
16263
16192
  console.error(`Error setting localStorage key "${key}":`, error);
16264
16193
  }
16265
16194
  }, [key]);
16266
- (0, import_react42.useEffect)(() => {
16195
+ (0, import_react41.useEffect)(() => {
16267
16196
  const handleStorageChange = (event) => {
16268
16197
  if (event.key === key && event.newValue !== null) {
16269
16198
  try {
@@ -16282,7 +16211,7 @@ function useLocalStorage(key, initialValue) {
16282
16211
  }
16283
16212
 
16284
16213
  // src/hooks/use-spans.ts
16285
- var import_react47 = require("react");
16214
+ var import_react46 = require("react");
16286
16215
 
16287
16216
  // src/utils/pagination-buffer.ts
16288
16217
  var insertSorted = (array, item, compareFunction, hint = "back") => {
@@ -16463,7 +16392,7 @@ var createPaginationBuffer = (options) => {
16463
16392
  };
16464
16393
 
16465
16394
  // src/hooks/use-spans-ws.tsx
16466
- var import_react46 = require("react");
16395
+ var import_react45 = require("react");
16467
16396
 
16468
16397
  // src/config.ts
16469
16398
  var APPINSPECTOR_API_PREFIX = "/_localstack/appinspector";
@@ -16492,8 +16421,8 @@ var getAppInspectorApiUrl = (localstackEndpoint, endpoint) => {
16492
16421
  var LOCALSTACK_INFO_PATH = "/_localstack/info";
16493
16422
 
16494
16423
  // src/context.tsx
16424
+ var import_react43 = require("react");
16495
16425
  var import_react44 = require("react");
16496
- var import_react45 = require("react");
16497
16426
 
16498
16427
  // src/api/client.ts
16499
16428
  var import_semver2 = __toESM(require_semver2(), 1);
@@ -16742,7 +16671,7 @@ var createApiClient = ({ localstackEndpoint }) => {
16742
16671
  };
16743
16672
 
16744
16673
  // src/hooks/use-appinspector-open-analytics.ts
16745
- var import_react43 = require("react");
16674
+ var import_react42 = require("react");
16746
16675
 
16747
16676
  // node_modules/.pnpm/ua-parser-js@2.0.9/node_modules/ua-parser-js/src/main/ua-parser.mjs
16748
16677
  var LIBVERSION = "2.0.9";
@@ -18624,8 +18553,8 @@ var useAppInspectorOpenAnalytics = () => {
18624
18553
  const api = useAppInspectorApi();
18625
18554
  const { deploymentContainer } = useAppInspector();
18626
18555
  const { status, statusError } = useAppInspectorStatus();
18627
- const firedRef = (0, import_react43.useRef)(false);
18628
- (0, import_react43.useEffect)(() => {
18556
+ const firedRef = (0, import_react42.useRef)(false);
18557
+ (0, import_react42.useEffect)(() => {
18629
18558
  if (firedRef.current) {
18630
18559
  return;
18631
18560
  }
@@ -18645,10 +18574,10 @@ var useAppInspectorOpenAnalytics = () => {
18645
18574
  };
18646
18575
 
18647
18576
  // src/context.tsx
18648
- var import_jsx_runtime131 = require("react/jsx-runtime");
18649
- var AppInspectorContext = (0, import_react44.createContext)(void 0);
18577
+ var import_jsx_runtime130 = require("react/jsx-runtime");
18578
+ var AppInspectorContext = (0, import_react43.createContext)(void 0);
18650
18579
  var useAppInspector = () => {
18651
- const context = (0, import_react44.useContext)(AppInspectorContext);
18580
+ const context = (0, import_react43.useContext)(AppInspectorContext);
18652
18581
  if (!context) {
18653
18582
  throw new Error("@localstack-studio/ui: components must be used within a <AppInspectorContextProvider>");
18654
18583
  }
@@ -18656,14 +18585,14 @@ var useAppInspector = () => {
18656
18585
  };
18657
18586
  var AppInspectorAnalyticsBoundary = ({ children }) => {
18658
18587
  useAppInspectorOpenAnalytics();
18659
- return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_jsx_runtime131.Fragment, { children });
18588
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_jsx_runtime130.Fragment, { children });
18660
18589
  };
18661
18590
  var AppInspectorContextProvider = (props) => {
18662
- const api = (0, import_react45.useMemo)(
18591
+ const api = (0, import_react44.useMemo)(
18663
18592
  () => createApiClient({ localstackEndpoint: props.localstackEndpoint }),
18664
18593
  [props.localstackEndpoint]
18665
18594
  );
18666
- const resolveLink = (0, import_react45.useCallback)(
18595
+ const resolveLink = (0, import_react44.useCallback)(
18667
18596
  (options) => {
18668
18597
  if (options.to === "settings") {
18669
18598
  return `${props.routePrefix}/settings`;
@@ -18675,11 +18604,11 @@ var AppInspectorContextProvider = (props) => {
18675
18604
  },
18676
18605
  [props.routePrefix]
18677
18606
  );
18678
- const deploymentContainer = (0, import_react45.useMemo)(
18607
+ const deploymentContainer = (0, import_react44.useMemo)(
18679
18608
  () => props.deploymentContainer ?? { source: "web" },
18680
18609
  [props.deploymentContainer]
18681
18610
  );
18682
- const contextValue = (0, import_react45.useMemo)(
18611
+ const contextValue = (0, import_react44.useMemo)(
18683
18612
  () => ({
18684
18613
  deploymentContainer,
18685
18614
  headerHeight: props.headerHeight ?? 0,
@@ -18689,28 +18618,28 @@ var AppInspectorContextProvider = (props) => {
18689
18618
  }),
18690
18619
  [deploymentContainer, props.headerHeight, props.linkComponent, props.localstackEndpoint, resolveLink]
18691
18620
  );
18692
- return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(ApiProvider, { api, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(StatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(AppInspectorContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(AppInspectorAnalyticsBoundary, { children: props.children }) }) }) });
18621
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(ApiProvider, { api, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(StatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(AppInspectorContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(AppInspectorAnalyticsBoundary, { children: props.children }) }) }) });
18693
18622
  };
18694
18623
 
18695
18624
  // src/hooks/use-spans-ws.tsx
18696
18625
  function useSpansWebSocket(options) {
18697
18626
  const { enabled, onClose, onMessage, onOpen } = options;
18698
- const onMessageRef = (0, import_react46.useRef)(onMessage);
18699
- const onOpenRef = (0, import_react46.useRef)(onOpen);
18700
- const onCloseRef = (0, import_react46.useRef)(onClose);
18701
- (0, import_react46.useEffect)(() => {
18627
+ const onMessageRef = (0, import_react45.useRef)(onMessage);
18628
+ const onOpenRef = (0, import_react45.useRef)(onOpen);
18629
+ const onCloseRef = (0, import_react45.useRef)(onClose);
18630
+ (0, import_react45.useEffect)(() => {
18702
18631
  onMessageRef.current = onMessage;
18703
18632
  }, [onMessage]);
18704
- (0, import_react46.useEffect)(() => {
18633
+ (0, import_react45.useEffect)(() => {
18705
18634
  onOpenRef.current = onOpen;
18706
18635
  }, [onOpen]);
18707
- (0, import_react46.useEffect)(() => {
18636
+ (0, import_react45.useEffect)(() => {
18708
18637
  onCloseRef.current = onClose;
18709
18638
  }, [onClose]);
18710
- const [connected, setConnected] = (0, import_react46.useState)(false);
18711
- const wsRef = (0, import_react46.useRef)(void 0);
18639
+ const [connected, setConnected] = (0, import_react45.useState)(false);
18640
+ const wsRef = (0, import_react45.useRef)(void 0);
18712
18641
  const { localstackEndpoint } = useAppInspector();
18713
- const connect = (0, import_react46.useCallback)(() => {
18642
+ const connect = (0, import_react45.useCallback)(() => {
18714
18643
  if (wsRef.current !== void 0) return;
18715
18644
  const url = new URL(getAppInspectorApiUrl(localstackEndpoint, API_ENDPOINTS.WEBSOCKET_SPANS));
18716
18645
  url.protocol = globalThis.location.protocol === "https:" ? "wss" : "ws";
@@ -18739,7 +18668,7 @@ function useSpansWebSocket(options) {
18739
18668
  }
18740
18669
  });
18741
18670
  }, [localstackEndpoint]);
18742
- (0, import_react46.useEffect)(() => {
18671
+ (0, import_react45.useEffect)(() => {
18743
18672
  if (!enabled) {
18744
18673
  if (wsRef.current !== void 0) {
18745
18674
  wsRef.current.close();
@@ -18768,11 +18697,11 @@ var PAGE_SIZE = 100;
18768
18697
  var useSpans = () => {
18769
18698
  const api = useAppInspectorApi();
18770
18699
  const { onWsClose, onWsOpen, wsEnabled } = useAppInspectorStatus();
18771
- const [spans, setSpans] = (0, import_react47.useState)();
18772
- const [fetchError, setFetchError] = (0, import_react47.useState)();
18773
- const [fetchingForward, setFetchingForward] = (0, import_react47.useState)(false);
18774
- const [fetchingBackward, setFetchingBackward] = (0, import_react47.useState)(false);
18775
- const paginationBufferRef = (0, import_react47.useRef)(createPaginationBuffer({
18700
+ const [spans, setSpans] = (0, import_react46.useState)();
18701
+ const [fetchError, setFetchError] = (0, import_react46.useState)();
18702
+ const [fetchingForward, setFetchingForward] = (0, import_react46.useState)(false);
18703
+ const [fetchingBackward, setFetchingBackward] = (0, import_react46.useState)(false);
18704
+ const paginationBufferRef = (0, import_react46.useRef)(createPaginationBuffer({
18776
18705
  async fetchPage(token) {
18777
18706
  const response = await api.getSpans({
18778
18707
  limit: PAGE_SIZE,
@@ -18811,24 +18740,24 @@ var useSpans = () => {
18811
18740
  return a3.start_time_unix_nano < b3.start_time_unix_nano ? -1 : 1;
18812
18741
  }
18813
18742
  }));
18814
- const [totalCount, setTotalCount] = (0, import_react47.useState)();
18815
- const [licenseLimit, setLicenseLimit] = (0, import_react47.useState)();
18816
- const [systemLimit, setSystemLimit] = (0, import_react47.useState)();
18817
- const [errorCount, setErrorCount] = (0, import_react47.useState)();
18818
- const [warningCount, setWarningCount] = (0, import_react47.useState)();
18819
- const [hasMoreBackward, setHasMoreBackward] = (0, import_react47.useState)();
18820
- const [hasMoreForward, setHasMoreForward] = (0, import_react47.useState)();
18821
- const fetchForward = (0, import_react47.useCallback)(() => {
18743
+ const [totalCount, setTotalCount] = (0, import_react46.useState)();
18744
+ const [licenseLimit, setLicenseLimit] = (0, import_react46.useState)();
18745
+ const [systemLimit, setSystemLimit] = (0, import_react46.useState)();
18746
+ const [errorCount, setErrorCount] = (0, import_react46.useState)();
18747
+ const [warningCount, setWarningCount] = (0, import_react46.useState)();
18748
+ const [hasMoreBackward, setHasMoreBackward] = (0, import_react46.useState)();
18749
+ const [hasMoreForward, setHasMoreForward] = (0, import_react46.useState)();
18750
+ const fetchForward = (0, import_react46.useCallback)(() => {
18822
18751
  void paginationBufferRef.current.fetchForward();
18823
18752
  }, []);
18824
- const fetchBackward = (0, import_react47.useCallback)(() => {
18753
+ const fetchBackward = (0, import_react46.useCallback)(() => {
18825
18754
  void paginationBufferRef.current.fetchBackward();
18826
18755
  }, []);
18827
- (0, import_react47.useEffect)(() => {
18756
+ (0, import_react46.useEffect)(() => {
18828
18757
  fetchForward();
18829
18758
  }, [fetchForward]);
18830
- const [clearingSpans, setClearingSpans] = (0, import_react47.useState)(false);
18831
- const clearSpans = (0, import_react47.useCallback)(async () => {
18759
+ const [clearingSpans, setClearingSpans] = (0, import_react46.useState)(false);
18760
+ const clearSpans = (0, import_react46.useCallback)(async () => {
18832
18761
  if (clearingSpans) {
18833
18762
  return;
18834
18763
  }
@@ -18845,12 +18774,12 @@ var useSpans = () => {
18845
18774
  setClearingSpans(false);
18846
18775
  }
18847
18776
  }, [clearingSpans, api]);
18848
- (0, import_react47.useEffect)(() => {
18777
+ (0, import_react46.useEffect)(() => {
18849
18778
  if (hasMoreForward === true && !fetchingForward) {
18850
18779
  void paginationBufferRef.current.fetchForward();
18851
18780
  }
18852
18781
  }, [hasMoreForward, fetchingForward]);
18853
- (0, import_react47.useEffect)(() => {
18782
+ (0, import_react46.useEffect)(() => {
18854
18783
  if (hasMoreBackward === true && !fetchingBackward && !fetchingForward) {
18855
18784
  void paginationBufferRef.current.fetchBackward();
18856
18785
  }
@@ -18871,7 +18800,7 @@ var useSpans = () => {
18871
18800
  fetchForward();
18872
18801
  }
18873
18802
  });
18874
- const clearFetchError = (0, import_react47.useCallback)(() => {
18803
+ const clearFetchError = (0, import_react46.useCallback)(() => {
18875
18804
  setFetchError(void 0);
18876
18805
  }, []);
18877
18806
  return {
@@ -18896,15 +18825,15 @@ var useSpans = () => {
18896
18825
 
18897
18826
  // src/pages/trace-graph-page.tsx
18898
18827
  var import_icons_material13 = require("@mui/icons-material");
18899
- var import_material23 = require("@mui/material");
18828
+ var import_material22 = require("@mui/material");
18900
18829
  var import_styles = require("@mui/material/styles");
18901
- var import_react62 = require("@xyflow/react");
18902
- var import_react63 = require("react");
18830
+ var import_react61 = require("@xyflow/react");
18831
+ var import_react62 = require("react");
18903
18832
 
18904
18833
  // src/components/event-details/event-details.tsx
18905
18834
  var import_icons_material10 = require("@mui/icons-material");
18906
- var import_material19 = require("@mui/material");
18907
- var import_react55 = require("react");
18835
+ var import_material18 = require("@mui/material");
18836
+ var import_react54 = require("react");
18908
18837
 
18909
18838
  // src/utils/event-utils.ts
18910
18839
  var iamEventParser = (eventName, attributes) => {
@@ -19016,12 +18945,12 @@ var getEventGroupsByType = (events) => {
19016
18945
 
19017
18946
  // src/components/event-details/copy-button.tsx
19018
18947
  var import_icons_material5 = require("@mui/icons-material");
19019
- var import_material10 = require("@mui/material");
19020
- var import_react48 = require("react");
19021
- var import_jsx_runtime132 = require("react/jsx-runtime");
18948
+ var import_material9 = require("@mui/material");
18949
+ var import_react47 = require("react");
18950
+ var import_jsx_runtime131 = require("react/jsx-runtime");
19022
18951
  var CopyButton = ({ value }) => {
19023
- const [copied, setCopied] = (0, import_react48.useState)(false);
19024
- const handleCopy = (0, import_react48.useCallback)(() => {
18952
+ const [copied, setCopied] = (0, import_react47.useState)(false);
18953
+ const handleCopy = (0, import_react47.useCallback)(() => {
19025
18954
  const text2 = typeof value === "string" ? value : JSON.stringify(value, void 0, 2);
19026
18955
  void navigator.clipboard.writeText(text2).then(() => {
19027
18956
  setCopied(true);
@@ -19030,83 +18959,83 @@ var CopyButton = ({ value }) => {
19030
18959
  }, 1500);
19031
18960
  });
19032
18961
  }, [value]);
19033
- return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_material10.Tooltip, { title: copied ? "Copied!" : "Copy", children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(
19034
- import_material10.IconButton,
18962
+ return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_material9.Tooltip, { title: copied ? "Copied!" : "Copy", children: /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
18963
+ import_material9.IconButton,
19035
18964
  {
19036
18965
  className: "copy-btn",
19037
18966
  onClick: handleCopy,
19038
18967
  size: "small",
19039
18968
  sx: { ml: 0.5, opacity: copied ? 1 : 0, p: 0.25, transition: "opacity 0.15s" },
19040
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material5.Check, { sx: { fontSize: 14 } }) : /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material5.ContentCopy, { sx: { fontSize: 14 } })
18969
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_icons_material5.Check, { sx: { fontSize: 14 } }) : /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_icons_material5.ContentCopy, { sx: { fontSize: 14 } })
19041
18970
  }
19042
18971
  ) });
19043
18972
  };
19044
18973
 
19045
18974
  // src/components/event-details/event-detail.tsx
19046
18975
  var import_icons_material8 = require("@mui/icons-material");
19047
- var import_material16 = require("@mui/material");
19048
- var import_react52 = require("react");
18976
+ var import_material15 = require("@mui/material");
18977
+ var import_react51 = require("react");
19049
18978
 
19050
18979
  // src/components/status-icon.tsx
19051
18980
  var import_icons_material6 = require("@mui/icons-material");
19052
- var import_material11 = require("@mui/material");
19053
- var import_jsx_runtime133 = require("react/jsx-runtime");
18981
+ var import_material10 = require("@mui/material");
18982
+ var import_jsx_runtime132 = require("react/jsx-runtime");
19054
18983
  var StatusIcon2 = ({ errorLevel }) => {
19055
18984
  switch (errorLevel) {
19056
18985
  case EventLevel.LevelError: {
19057
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material6.Cancel, { sx: { color: "red" } });
18986
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material6.Cancel, { sx: { color: "red" } });
19058
18987
  }
19059
18988
  case EventLevel.LevelInfo: {
19060
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material6.Info, { sx: { color: "gray" } });
18989
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material6.Info, { sx: { color: "gray" } });
19061
18990
  }
19062
18991
  case EventLevel.LevelPermission: {
19063
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material6.RemoveCircle, { sx: { color: "blue" } });
18992
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material6.RemoveCircle, { sx: { color: "blue" } });
19064
18993
  }
19065
18994
  case EventLevel.LevelWarning: {
19066
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material6.Error, { sx: { color: "orange" } });
18995
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material6.Error, { sx: { color: "orange" } });
19067
18996
  }
19068
18997
  default: {
19069
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material6.CheckCircle, { sx: { color: "lightgray" } });
18998
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material6.CheckCircle, { sx: { color: "lightgray" } });
19070
18999
  }
19071
19000
  }
19072
19001
  };
19073
19002
 
19074
19003
  // src/components/event-details/iam-event-detail.tsx
19075
19004
  var import_icons_material7 = require("@mui/icons-material");
19076
- var import_material12 = require("@mui/material");
19077
- var import_jsx_runtime134 = require("react/jsx-runtime");
19078
- var DetailRow = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
19079
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
19080
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { sx: { color: "text.primary", wordBreak: "break-word" }, variant: "caption", children: content }) : content })
19005
+ var import_material11 = require("@mui/material");
19006
+ var import_jsx_runtime133 = require("react/jsx-runtime");
19007
+ var DetailRow = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material11.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
19008
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
19009
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { sx: { color: "text.primary", wordBreak: "break-word" }, variant: "caption", children: content }) : content })
19081
19010
  ] });
19082
19011
  var PermissionIcon = ({ status }) => {
19083
19012
  switch (status) {
19084
19013
  case "explicitly_allowed":
19085
19014
  case "implicitly_allowed": {
19086
- return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material7.CheckCircle, { sx: { color: "success.main", fontSize: "1rem" } });
19015
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material7.CheckCircle, { sx: { color: "success.main", fontSize: "1rem" } });
19087
19016
  }
19088
19017
  case "explicitly_denied": {
19089
- return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material7.Error, { sx: { color: "error.main", fontSize: "1rem" } });
19018
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material7.Error, { sx: { color: "error.main", fontSize: "1rem" } });
19090
19019
  }
19091
19020
  case "implicitly_denied": {
19092
- return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material7.Warning, { sx: { color: "warning.main", fontSize: "1rem" } });
19021
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material7.Warning, { sx: { color: "warning.main", fontSize: "1rem" } });
19093
19022
  }
19094
19023
  }
19095
19024
  };
19096
19025
  var IAMEventDetail = ({ event }) => {
19097
19026
  const payloadString = event.attributes?.payload;
19098
19027
  if (!payloadString) {
19099
- return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "text.secondary", variant: "caption", children: "No IAM policy evaluation data available" });
19028
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "No IAM policy evaluation data available" });
19100
19029
  }
19101
19030
  const parsedIAM = parseIAMEvent(payloadString);
19102
19031
  if (!parsedIAM) {
19103
- return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "text.secondary", variant: "caption", children: "Failed to parse IAM event data" });
19032
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Failed to parse IAM event data" });
19104
19033
  }
19105
- return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { children: [
19106
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Box, { sx: { mb: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
19107
- import_material12.Chip,
19034
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material11.Box, { children: [
19035
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Box, { sx: { mb: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
19036
+ import_material11.Chip,
19108
19037
  {
19109
- icon: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(PermissionIcon, { status: parsedIAM.permission }),
19038
+ icon: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(PermissionIcon, { status: parsedIAM.permission }),
19110
19039
  label: formatPermissionStatus(parsedIAM.permission),
19111
19040
  size: "small",
19112
19041
  sx: {
@@ -19116,36 +19045,36 @@ var IAMEventDetail = ({ event }) => {
19116
19045
  variant: "outlined"
19117
19046
  }
19118
19047
  ) }),
19119
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DetailRow, { content: `${parsedIAM.service}:${parsedIAM.operation}`, label: "Operation" }),
19120
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DetailRow, { content: parsedIAM.principal, label: "Principal" }),
19121
- parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
19048
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(DetailRow, { content: `${parsedIAM.service}:${parsedIAM.operation}`, label: "Operation" }),
19049
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(DetailRow, { content: parsedIAM.principal, label: "Principal" }),
19050
+ parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
19122
19051
  DetailRow,
19123
19052
  {
19124
- content: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Box, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { sx: { color: "text.primary", display: "block" }, variant: "caption", children: action }, action)) }),
19053
+ content: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Box, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { sx: { color: "text.primary", display: "block" }, variant: "caption", children: action }, action)) }),
19125
19054
  label: "Actions"
19126
19055
  }
19127
19056
  ),
19128
- parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
19057
+ parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
19129
19058
  DetailRow,
19130
19059
  {
19131
- content: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Box, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { sx: { color: "text.primary", display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) }),
19060
+ content: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Box, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { sx: { color: "text.primary", display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) }),
19132
19061
  label: "Resources"
19133
19062
  }
19134
19063
  ),
19135
- (parsedIAM.details.explicitAllows !== void 0 || parsedIAM.details.explicitDenies !== void 0 || parsedIAM.details.implicitDenies !== void 0) && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { sx: { mt: 1.5 }, children: [
19136
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "text.secondary", sx: { display: "block", fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Policy Evaluation" }),
19137
- /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "repeat(3, 1fr)" }, children: [
19138
- parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { sx: { textAlign: "center" }, children: [
19139
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "success.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitAllows }),
19140
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Allows" })
19064
+ (parsedIAM.details.explicitAllows !== void 0 || parsedIAM.details.explicitDenies !== void 0 || parsedIAM.details.implicitDenies !== void 0) && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material11.Box, { sx: { mt: 1.5 }, children: [
19065
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "text.secondary", sx: { display: "block", fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Policy Evaluation" }),
19066
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material11.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "repeat(3, 1fr)" }, children: [
19067
+ parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material11.Box, { sx: { textAlign: "center" }, children: [
19068
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "success.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitAllows }),
19069
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Allows" })
19141
19070
  ] }),
19142
- parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { sx: { textAlign: "center" }, children: [
19143
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "error.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitDenies }),
19144
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Denies" })
19071
+ parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material11.Box, { sx: { textAlign: "center" }, children: [
19072
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "error.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitDenies }),
19073
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Denies" })
19145
19074
  ] }),
19146
- parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { sx: { textAlign: "center" }, children: [
19147
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "warning.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.implicitDenies }),
19148
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { color: "text.secondary", variant: "caption", children: "Implicit Denies" })
19075
+ parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material11.Box, { sx: { textAlign: "center" }, children: [
19076
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "warning.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.implicitDenies }),
19077
+ /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Implicit Denies" })
19149
19078
  ] })
19150
19079
  ] })
19151
19080
  ] })
@@ -19153,16 +19082,16 @@ var IAMEventDetail = ({ event }) => {
19153
19082
  };
19154
19083
 
19155
19084
  // src/components/event-details/iam-permission-detail.tsx
19156
- var import_material13 = require("@mui/material");
19157
- var import_react49 = require("react");
19158
- var import_jsx_runtime135 = require("react/jsx-runtime");
19085
+ var import_material12 = require("@mui/material");
19086
+ var import_react48 = require("react");
19087
+ var import_jsx_runtime134 = require("react/jsx-runtime");
19159
19088
  var getChipColor = (isAllowed, spanStatusCode) => {
19160
19089
  if (isAllowed) return "success.main";
19161
19090
  if (spanStatusCode === 2) return "error.main";
19162
19091
  return "warning.main";
19163
19092
  };
19164
19093
  var IAMPermissionItem = ({ event, spanStatusCode }) => {
19165
- const parsedData = (0, import_react49.useMemo)(() => {
19094
+ const parsedData = (0, import_react48.useMemo)(() => {
19166
19095
  const payloadString = event.attributes?.payload;
19167
19096
  if (!payloadString) return;
19168
19097
  const parsedIAM2 = parseIAMEvent(payloadString);
@@ -19175,42 +19104,42 @@ var IAMPermissionItem = ({ event, spanStatusCode }) => {
19175
19104
  const { parsedIAM } = parsedData;
19176
19105
  const isAllowed = parsedIAM.permission === "explicitly_allowed" || parsedIAM.permission === "implicitly_allowed";
19177
19106
  const chipColors = { backgroundColor: getChipColor(isAllowed, spanStatusCode), color: "white" };
19178
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Box, { sx: { mb: 0.5 }, children: [
19179
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, { sx: { alignItems: "center", display: "flex", gap: 1, mb: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Chip, { label: formatPermissionStatus(parsedIAM.permission), size: "small", sx: { ...chipColors, fontWeight: 500 } }) }),
19180
- /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Stack, { spacing: 1, children: [
19181
- /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Box, { "data-testid": EVENT_DETAILS_IAM_PRINCIPAL_TEST_ID, children: [
19182
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Typography, { sx: { display: "block", fontWeight: 600 }, variant: "caption", children: "Principal" }),
19183
- /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
19184
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Typography, { sx: { wordBreak: "break-all" }, variant: "body2", children: parsedIAM.principal }),
19185
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CopyButton, { value: parsedIAM.principal })
19107
+ return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { sx: { mb: 0.5 }, children: [
19108
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Box, { sx: { alignItems: "center", display: "flex", gap: 1, mb: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Chip, { label: formatPermissionStatus(parsedIAM.permission), size: "small", sx: { ...chipColors, fontWeight: 500 } }) }),
19109
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Stack, { spacing: 1, children: [
19110
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { "data-testid": EVENT_DETAILS_IAM_PRINCIPAL_TEST_ID, children: [
19111
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { sx: { display: "block", fontWeight: 600 }, variant: "caption", children: "Principal" }),
19112
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
19113
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { sx: { wordBreak: "break-all" }, variant: "body2", children: parsedIAM.principal }),
19114
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(CopyButton, { value: parsedIAM.principal })
19186
19115
  ] })
19187
19116
  ] }),
19188
- parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Box, { "data-testid": EVENT_DETAILS_IAM_ACTIONS_TEST_ID, children: [
19189
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Typography, { sx: { display: "block", fontWeight: 600 }, variant: "caption", children: "Actions" }),
19190
- parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
19191
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Typography, { sx: { display: "block" }, variant: "body2", children: action }),
19192
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CopyButton, { value: action })
19117
+ parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { "data-testid": EVENT_DETAILS_IAM_ACTIONS_TEST_ID, children: [
19118
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { sx: { display: "block", fontWeight: 600 }, variant: "caption", children: "Actions" }),
19119
+ parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
19120
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { sx: { display: "block" }, variant: "body2", children: action }),
19121
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(CopyButton, { value: action })
19193
19122
  ] }, action))
19194
19123
  ] }),
19195
- parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Box, { "data-testid": EVENT_DETAILS_IAM_RESOURCES_TEST_ID, children: [
19196
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Typography, { sx: { display: "block", fontWeight: 600 }, variant: "caption", children: "Resources" }),
19197
- parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
19198
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Typography, { sx: { display: "block", wordBreak: "break-all" }, variant: "body2", children: resource }),
19199
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CopyButton, { value: resource })
19124
+ parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Box, { "data-testid": EVENT_DETAILS_IAM_RESOURCES_TEST_ID, children: [
19125
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { sx: { display: "block", fontWeight: 600 }, variant: "caption", children: "Resources" }),
19126
+ parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material12.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
19127
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Typography, { sx: { display: "block", wordBreak: "break-all" }, variant: "body2", children: resource }),
19128
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(CopyButton, { value: resource })
19200
19129
  ] }, resource))
19201
19130
  ] })
19202
19131
  ] })
19203
19132
  ] });
19204
19133
  };
19205
- var IAMPermissionDetail = ({ events, spanStatusCode }) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IAMPermissionItem, { event, spanStatusCode }, `${event.span_id}-${event.event_id}`)) });
19134
+ var IAMPermissionDetail = ({ events, spanStatusCode }) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material12.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(IAMPermissionItem, { event, spanStatusCode }, `${event.span_id}-${event.event_id}`)) });
19206
19135
 
19207
19136
  // src/components/event-details/payload-viewer.tsx
19208
- var import_material15 = require("@mui/material");
19137
+ var import_material14 = require("@mui/material");
19209
19138
 
19210
19139
  // node_modules/.pnpm/@textea+json-viewer@3.5.0_@emotion+react@11.14.0_@types+react@17.0.91_react@17.0.2__@em_040507e953752247cb848fd3f764690c/node_modules/@textea/json-viewer/dist/index.mjs
19211
- var import_jsx_runtime136 = require("react/jsx-runtime");
19212
- var import_material14 = require("@mui/material");
19213
- var import_react50 = require("react");
19140
+ var import_jsx_runtime135 = require("react/jsx-runtime");
19141
+ var import_material13 = require("@mui/material");
19142
+ var import_react49 = require("react");
19214
19143
  var import_zustand = require("zustand");
19215
19144
  var import_copy_to_clipboard = __toESM(require_copy_to_clipboard(), 1);
19216
19145
  function r(e2) {
@@ -19327,10 +19256,10 @@ var createJsonViewerStore = (props) => {
19327
19256
  };
19328
19257
  });
19329
19258
  };
19330
- var JsonViewerStoreContext = (0, import_react50.createContext)(void 0);
19259
+ var JsonViewerStoreContext = (0, import_react49.createContext)(void 0);
19331
19260
  JsonViewerStoreContext.Provider;
19332
19261
  var useJsonViewerStore = (selector2, equalityFn) => {
19333
- const store = (0, import_react50.useContext)(JsonViewerStoreContext);
19262
+ const store = (0, import_react49.useContext)(JsonViewerStoreContext);
19334
19263
  return (0, import_zustand.useStore)(store, selector2, equalityFn);
19335
19264
  };
19336
19265
  var useTextColor = () => {
@@ -19455,9 +19384,9 @@ async function copyString(value) {
19455
19384
  }
19456
19385
  function useClipboard() {
19457
19386
  let { timeout = 2e3 } = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
19458
- const [copied, setCopied] = (0, import_react50.useState)(false);
19459
- const copyTimeout = (0, import_react50.useRef)(null);
19460
- const handleCopyResult = (0, import_react50.useCallback)((value) => {
19387
+ const [copied, setCopied] = (0, import_react49.useState)(false);
19388
+ const copyTimeout = (0, import_react49.useRef)(null);
19389
+ const handleCopyResult = (0, import_react49.useCallback)((value) => {
19461
19390
  const current = copyTimeout.current;
19462
19391
  if (current) {
19463
19392
  window.clearTimeout(current);
@@ -19468,7 +19397,7 @@ function useClipboard() {
19468
19397
  timeout
19469
19398
  ]);
19470
19399
  const onCopy = useJsonViewerStore((store) => store.onCopy);
19471
- const copy = (0, import_react50.useCallback)(async (path, value) => {
19400
+ const copy = (0, import_react49.useCallback)(async (path, value) => {
19472
19401
  if (typeof onCopy === "function") {
19473
19402
  try {
19474
19403
  await onCopy(path, value, copyString);
@@ -19489,7 +19418,7 @@ function useClipboard() {
19489
19418
  handleCopyResult,
19490
19419
  onCopy
19491
19420
  ]);
19492
- const reset = (0, import_react50.useCallback)(() => {
19421
+ const reset = (0, import_react49.useCallback)(() => {
19493
19422
  setCopied(false);
19494
19423
  if (copyTimeout.current) {
19495
19424
  clearTimeout(copyTimeout.current);
@@ -19503,7 +19432,7 @@ function useClipboard() {
19503
19432
  }
19504
19433
  function useIsCycleReference(path, value) {
19505
19434
  const rootValue = useJsonViewerStore((store) => store.value);
19506
- return (0, import_react50.useMemo)(() => isCycleReference(rootValue, path, value), [
19435
+ return (0, import_react49.useMemo)(() => isCycleReference(rootValue, path, value), [
19507
19436
  path,
19508
19437
  value,
19509
19438
  rootValue
@@ -19516,7 +19445,7 @@ function useInspect(path, value, nestedIndex) {
19516
19445
  const setInspectCache = useJsonViewerStore((store) => store.setInspectCache);
19517
19446
  const defaultInspectDepth = useJsonViewerStore((store) => store.defaultInspectDepth);
19518
19447
  const defaultInspectControl = useJsonViewerStore((store) => store.defaultInspectControl);
19519
- (0, import_react50.useEffect)(() => {
19448
+ (0, import_react49.useEffect)(() => {
19520
19449
  const inspect2 = getInspectCache(path, nestedIndex);
19521
19450
  if (inspect2 !== void 0) {
19522
19451
  return;
@@ -19538,7 +19467,7 @@ function useInspect(path, value, nestedIndex) {
19538
19467
  value,
19539
19468
  setInspectCache
19540
19469
  ]);
19541
- const [inspect, set] = (0, import_react50.useState)(() => {
19470
+ const [inspect, set] = (0, import_react49.useState)(() => {
19542
19471
  const shouldInspect = getInspectCache(path, nestedIndex);
19543
19472
  if (shouldInspect !== void 0) {
19544
19473
  return shouldInspect;
@@ -19548,7 +19477,7 @@ function useInspect(path, value, nestedIndex) {
19548
19477
  }
19549
19478
  return isTrap ? false : typeof defaultInspectControl === "function" ? defaultInspectControl(path, value) : depth < defaultInspectDepth;
19550
19479
  });
19551
- const setInspect = (0, import_react50.useCallback)((apply) => {
19480
+ const setInspect = (0, import_react49.useCallback)((apply) => {
19552
19481
  set((oldState) => {
19553
19482
  const newState = typeof apply === "boolean" ? apply : apply(oldState);
19554
19483
  setInspectCache(path, newState, nestedIndex);
@@ -19564,7 +19493,7 @@ function useInspect(path, value, nestedIndex) {
19564
19493
  setInspect
19565
19494
  ];
19566
19495
  }
19567
- var DataBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
19496
+ var DataBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
19568
19497
  component: "div",
19569
19498
  ...props,
19570
19499
  sx: {
@@ -19575,7 +19504,7 @@ var DataBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_m
19575
19504
  var DataTypeLabel = (param) => {
19576
19505
  let { dataType, enable = true } = param;
19577
19506
  if (!enable) return null;
19578
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
19507
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
19579
19508
  className: "data-type-label",
19580
19509
  sx: {
19581
19510
  mx: 0.5,
@@ -19588,23 +19517,23 @@ var DataTypeLabel = (param) => {
19588
19517
  };
19589
19518
  function defineEasyType(param) {
19590
19519
  let { is, serialize, deserialize, type, colorKey, displayTypeLabel = true, Renderer } = param;
19591
- const Render = /* @__PURE__ */ (0, import_react50.memo)(Renderer);
19520
+ const Render = /* @__PURE__ */ (0, import_react49.memo)(Renderer);
19592
19521
  const EasyType = (props) => {
19593
19522
  const storeDisplayDataTypes = useJsonViewerStore((store) => store.displayDataTypes);
19594
19523
  const color2 = useJsonViewerStore((store) => store.colorspace[colorKey]);
19595
19524
  const onSelect = useJsonViewerStore((store) => store.onSelect);
19596
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
19525
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(DataBox, {
19597
19526
  onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(props.path, props.value),
19598
19527
  sx: {
19599
19528
  color: color2
19600
19529
  },
19601
19530
  children: [
19602
- displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataTypeLabel, {
19531
+ displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataTypeLabel, {
19603
19532
  dataType: type
19604
19533
  }),
19605
- /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
19534
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
19606
19535
  className: "".concat(type, "-value"),
19607
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Render, {
19536
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Render, {
19608
19537
  path: props.path,
19609
19538
  inspect: props.inspect,
19610
19539
  setInspect: props.setInspect,
@@ -19625,7 +19554,7 @@ function defineEasyType(param) {
19625
19554
  const EasyTypeEditor = (param2) => {
19626
19555
  let { value, setValue, abortEditing, commitEditing } = param2;
19627
19556
  const color2 = useJsonViewerStore((store) => store.colorspace[colorKey]);
19628
- const handleKeyDown = (0, import_react50.useCallback)((event) => {
19557
+ const handleKeyDown = (0, import_react49.useCallback)((event) => {
19629
19558
  if (event.key === "Enter") {
19630
19559
  event.preventDefault();
19631
19560
  commitEditing(value);
@@ -19639,12 +19568,12 @@ function defineEasyType(param) {
19639
19568
  commitEditing,
19640
19569
  value
19641
19570
  ]);
19642
- const handleChange = (0, import_react50.useCallback)((event) => {
19571
+ const handleChange = (0, import_react49.useCallback)((event) => {
19643
19572
  setValue(event.target.value);
19644
19573
  }, [
19645
19574
  setValue
19646
19575
  ]);
19647
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.InputBase, {
19576
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.InputBase, {
19648
19577
  autoFocus: true,
19649
19578
  value,
19650
19579
  onChange: handleChange,
@@ -19684,7 +19613,7 @@ var booleanType = defineEasyType({
19684
19613
  },
19685
19614
  Renderer: (param) => {
19686
19615
  let { value } = param;
19687
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19616
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19688
19617
  children: value ? "true" : "false"
19689
19618
  });
19690
19619
  }
@@ -19703,7 +19632,7 @@ var dateType = defineEasyType({
19703
19632
  colorKey: "base0D",
19704
19633
  Renderer: (param) => {
19705
19634
  let { value } = param;
19706
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19635
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19707
19636
  children: value.toLocaleTimeString("en-us", displayOptions)
19708
19637
  });
19709
19638
  }
@@ -19732,12 +19661,12 @@ var functionName = (func) => {
19732
19661
  var lb = "{";
19733
19662
  var rb = "}";
19734
19663
  var PreFunctionType = (props) => {
19735
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material14.NoSsr, {
19664
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.NoSsr, {
19736
19665
  children: [
19737
- /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataTypeLabel, {
19666
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataTypeLabel, {
19738
19667
  dataType: "function"
19739
19668
  }),
19740
- /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material14.Box, {
19669
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Box, {
19741
19670
  component: "span",
19742
19671
  className: "data-function-start",
19743
19672
  sx: {
@@ -19753,8 +19682,8 @@ var PreFunctionType = (props) => {
19753
19682
  });
19754
19683
  };
19755
19684
  var PostFunctionType = () => {
19756
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.NoSsr, {
19757
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
19685
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.NoSsr, {
19686
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
19758
19687
  component: "span",
19759
19688
  className: "data-function-end",
19760
19689
  children: rb
@@ -19763,15 +19692,15 @@ var PostFunctionType = () => {
19763
19692
  };
19764
19693
  var FunctionType = (props) => {
19765
19694
  const functionColor = useJsonViewerStore((store) => store.colorspace.base05);
19766
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.NoSsr, {
19767
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
19695
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.NoSsr, {
19696
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
19768
19697
  className: "data-function",
19769
19698
  sx: {
19770
19699
  display: props.inspect ? "block" : "inline-block",
19771
19700
  pl: props.inspect ? 2 : 0,
19772
19701
  color: functionColor
19773
19702
  },
19774
- children: props.inspect ? functionBody(props.value) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
19703
+ children: props.inspect ? functionBody(props.value) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
19775
19704
  component: "span",
19776
19705
  className: "data-function-body",
19777
19706
  onClick: () => props.setInspect(true),
@@ -19799,7 +19728,7 @@ var nullType = defineEasyType({
19799
19728
  displayTypeLabel: false,
19800
19729
  Renderer: () => {
19801
19730
  const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
19802
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
19731
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
19803
19732
  sx: {
19804
19733
  fontSize: "0.8rem",
19805
19734
  backgroundColor,
@@ -19822,7 +19751,7 @@ var nanType = defineEasyType({
19822
19751
  deserialize: (value) => parseFloat(value),
19823
19752
  Renderer: () => {
19824
19753
  const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
19825
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
19754
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
19826
19755
  sx: {
19827
19756
  backgroundColor,
19828
19757
  fontSize: "0.8rem",
@@ -19842,7 +19771,7 @@ var floatType = defineEasyType({
19842
19771
  deserialize: (value) => parseFloat(value),
19843
19772
  Renderer: (param) => {
19844
19773
  let { value } = param;
19845
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19774
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19846
19775
  children: value
19847
19776
  });
19848
19777
  }
@@ -19856,7 +19785,7 @@ var intType = defineEasyType({
19856
19785
  deserialize: (value) => parseFloat(value),
19857
19786
  Renderer: (param) => {
19858
19787
  let { value } = param;
19859
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19788
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19860
19789
  children: value
19861
19790
  });
19862
19791
  }
@@ -19869,16 +19798,16 @@ var bigIntType = defineEasyType({
19869
19798
  deserialize: (value) => BigInt(value.replace(/\D/g, "")),
19870
19799
  Renderer: (param) => {
19871
19800
  let { value } = param;
19872
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19801
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19873
19802
  children: "".concat(value, "n")
19874
19803
  });
19875
19804
  }
19876
19805
  });
19877
19806
  var BaseIcon = (param) => {
19878
19807
  let { d: d2, ...props } = param;
19879
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.SvgIcon, {
19808
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.SvgIcon, {
19880
19809
  ...props,
19881
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)("path", {
19810
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)("path", {
19882
19811
  d: d2
19883
19812
  })
19884
19813
  });
@@ -19893,55 +19822,55 @@ var Edit = "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.3
19893
19822
  var ExpandMore = "M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z";
19894
19823
  var Delete = "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5l-1-1h-5l-1 1H5v2h14V4z";
19895
19824
  var AddBoxIcon = (props) => {
19896
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19825
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19897
19826
  d: AddBox,
19898
19827
  ...props
19899
19828
  });
19900
19829
  };
19901
19830
  var CheckIcon = (props) => {
19902
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19831
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19903
19832
  d: Check2,
19904
19833
  ...props
19905
19834
  });
19906
19835
  };
19907
19836
  var ChevronRightIcon = (props) => {
19908
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19837
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19909
19838
  d: ChevronRight,
19910
19839
  ...props
19911
19840
  });
19912
19841
  };
19913
19842
  var CircularArrowsIcon = (props) => {
19914
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19843
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19915
19844
  d: CircularArrows,
19916
19845
  ...props
19917
19846
  });
19918
19847
  };
19919
19848
  var CloseIcon = (props) => {
19920
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19849
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19921
19850
  d: Close,
19922
19851
  ...props
19923
19852
  });
19924
19853
  };
19925
19854
  var ContentCopyIcon = (props) => {
19926
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19855
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19927
19856
  d: ContentCopy2,
19928
19857
  ...props
19929
19858
  });
19930
19859
  };
19931
19860
  var EditIcon = (props) => {
19932
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19861
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19933
19862
  d: Edit,
19934
19863
  ...props
19935
19864
  });
19936
19865
  };
19937
19866
  var ExpandMoreIcon = (props) => {
19938
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19867
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19939
19868
  d: ExpandMore,
19940
19869
  ...props
19941
19870
  });
19942
19871
  };
19943
19872
  var DeleteIcon = (props) => {
19944
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19873
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19945
19874
  d: Delete,
19946
19875
  ...props
19947
19876
  });
@@ -19964,23 +19893,23 @@ function inspectMetadata(value) {
19964
19893
  var PreObjectType = (props) => {
19965
19894
  const metadataColor = useJsonViewerStore((store) => store.colorspace.base04);
19966
19895
  const textColor = useTextColor();
19967
- const isArrayLike = (0, import_react50.useMemo)(() => Array.isArray(props.value) || props.value instanceof Set, [
19896
+ const isArrayLike = (0, import_react49.useMemo)(() => Array.isArray(props.value) || props.value instanceof Set, [
19968
19897
  props.value
19969
19898
  ]);
19970
- const isEmptyValue = (0, import_react50.useMemo)(() => getValueSize(props.value) === 0, [
19899
+ const isEmptyValue = (0, import_react49.useMemo)(() => getValueSize(props.value) === 0, [
19971
19900
  props.value
19972
19901
  ]);
19973
- const sizeOfValue = (0, import_react50.useMemo)(() => inspectMetadata(props.value), [
19902
+ const sizeOfValue = (0, import_react49.useMemo)(() => inspectMetadata(props.value), [
19974
19903
  props.value
19975
19904
  ]);
19976
19905
  const displaySize = useJsonViewerStore((store) => store.displaySize);
19977
- const shouldDisplaySize = (0, import_react50.useMemo)(() => typeof displaySize === "function" ? displaySize(props.path, props.value) : displaySize, [
19906
+ const shouldDisplaySize = (0, import_react49.useMemo)(() => typeof displaySize === "function" ? displaySize(props.path, props.value) : displaySize, [
19978
19907
  displaySize,
19979
19908
  props.path,
19980
19909
  props.value
19981
19910
  ]);
19982
19911
  const isTrap = useIsCycleReference(props.path, props.value);
19983
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material14.Box, {
19912
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Box, {
19984
19913
  component: "span",
19985
19914
  className: "data-object-start",
19986
19915
  sx: {
@@ -19988,7 +19917,7 @@ var PreObjectType = (props) => {
19988
19917
  },
19989
19918
  children: [
19990
19919
  isArrayLike ? arrayLb : objectLb,
19991
- shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
19920
+ shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
19992
19921
  component: "span",
19993
19922
  sx: {
19994
19923
  pl: 0.5,
@@ -19998,16 +19927,16 @@ var PreObjectType = (props) => {
19998
19927
  },
19999
19928
  children: sizeOfValue
20000
19929
  }),
20001
- isTrap && !props.inspect && /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
19930
+ isTrap && !props.inspect && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
20002
19931
  children: [
20003
- /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CircularArrowsIcon, {
19932
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CircularArrowsIcon, {
20004
19933
  sx: {
20005
19934
  fontSize: 12,
20006
19935
  color: textColor,
20007
19936
  mx: 0.5
20008
19937
  }
20009
19938
  }),
20010
- /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
19939
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
20011
19940
  sx: {
20012
19941
  cursor: "pointer",
20013
19942
  userSelect: "none"
@@ -20022,22 +19951,22 @@ var PreObjectType = (props) => {
20022
19951
  var PostObjectType = (props) => {
20023
19952
  const metadataColor = useJsonViewerStore((store) => store.colorspace.base04);
20024
19953
  const textColor = useTextColor();
20025
- const isArrayLike = (0, import_react50.useMemo)(() => Array.isArray(props.value) || props.value instanceof Set, [
19954
+ const isArrayLike = (0, import_react49.useMemo)(() => Array.isArray(props.value) || props.value instanceof Set, [
20026
19955
  props.value
20027
19956
  ]);
20028
- const isEmptyValue = (0, import_react50.useMemo)(() => getValueSize(props.value) === 0, [
19957
+ const isEmptyValue = (0, import_react49.useMemo)(() => getValueSize(props.value) === 0, [
20029
19958
  props.value
20030
19959
  ]);
20031
- const sizeOfValue = (0, import_react50.useMemo)(() => inspectMetadata(props.value), [
19960
+ const sizeOfValue = (0, import_react49.useMemo)(() => inspectMetadata(props.value), [
20032
19961
  props.value
20033
19962
  ]);
20034
19963
  const displaySize = useJsonViewerStore((store) => store.displaySize);
20035
- const shouldDisplaySize = (0, import_react50.useMemo)(() => typeof displaySize === "function" ? displaySize(props.path, props.value) : displaySize, [
19964
+ const shouldDisplaySize = (0, import_react49.useMemo)(() => typeof displaySize === "function" ? displaySize(props.path, props.value) : displaySize, [
20036
19965
  displaySize,
20037
19966
  props.path,
20038
19967
  props.value
20039
19968
  ]);
20040
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material14.Box, {
19969
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Box, {
20041
19970
  component: "span",
20042
19971
  className: "data-object-end",
20043
19972
  sx: {
@@ -20048,7 +19977,7 @@ var PostObjectType = (props) => {
20048
19977
  },
20049
19978
  children: [
20050
19979
  isArrayLike ? arrayRb : objectRb,
20051
- shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
19980
+ shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
20052
19981
  component: "span",
20053
19982
  sx: {
20054
19983
  pl: 0.5,
@@ -20069,9 +19998,9 @@ var ObjectType = (props) => {
20069
19998
  const borderColor = useJsonViewerStore((store) => store.colorspace.base02);
20070
19999
  const groupArraysAfterLength = useJsonViewerStore((store) => store.groupArraysAfterLength);
20071
20000
  const isTrap = useIsCycleReference(props.path, props.value);
20072
- const [displayLength, setDisplayLength] = (0, import_react50.useState)(useJsonViewerStore((store) => store.maxDisplayLength));
20001
+ const [displayLength, setDisplayLength] = (0, import_react49.useState)(useJsonViewerStore((store) => store.maxDisplayLength));
20073
20002
  const objectSortKeys = useJsonViewerStore((store) => store.objectSortKeys);
20074
- const elements = (0, import_react50.useMemo)(() => {
20003
+ const elements = (0, import_react49.useMemo)(() => {
20075
20004
  if (!props.inspect) {
20076
20005
  return null;
20077
20006
  }
@@ -20088,7 +20017,7 @@ var ObjectType = (props) => {
20088
20017
  ...props.path,
20089
20018
  key
20090
20019
  ];
20091
- elements3.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
20020
+ elements3.push(/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
20092
20021
  path,
20093
20022
  value: value2,
20094
20023
  prevValue: props.prevValue instanceof Map ? props.prevValue.get(k2) : void 0,
@@ -20104,7 +20033,7 @@ var ObjectType = (props) => {
20104
20033
  while (true) {
20105
20034
  const nextResult = iterator2.next();
20106
20035
  var _nextResult_done;
20107
- elements3.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
20036
+ elements3.push(/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
20108
20037
  path: [
20109
20038
  ...props.path,
20110
20039
  "iterator:".concat(count2)
@@ -20132,7 +20061,7 @@ var ObjectType = (props) => {
20132
20061
  ...props.path,
20133
20062
  index
20134
20063
  ];
20135
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
20064
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
20136
20065
  path,
20137
20066
  value: value2,
20138
20067
  prevValue: Array.isArray(props.prevValue) ? props.prevValue[index] : void 0,
@@ -20141,7 +20070,7 @@ var ObjectType = (props) => {
20141
20070
  });
20142
20071
  if (value.length > displayLength) {
20143
20072
  const rest = value.length - displayLength;
20144
- elements4.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
20073
+ elements4.push(/* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(DataBox, {
20145
20074
  sx: {
20146
20075
  cursor: "pointer",
20147
20076
  lineHeight: 1.5,
@@ -20164,7 +20093,7 @@ var ObjectType = (props) => {
20164
20093
  const prevElements = Array.isArray(props.prevValue) ? segmentArray(props.prevValue, groupArraysAfterLength) : void 0;
20165
20094
  const elementsLastIndex = elements3.length - 1;
20166
20095
  return elements3.map((list, index) => {
20167
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
20096
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
20168
20097
  path: props.path,
20169
20098
  value: list,
20170
20099
  nestedIndex: index,
@@ -20191,7 +20120,7 @@ var ObjectType = (props) => {
20191
20120
  ...props.path,
20192
20121
  key
20193
20122
  ];
20194
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
20123
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
20195
20124
  path,
20196
20125
  value: value2,
20197
20126
  prevValue: (_props_prevValue = props.prevValue) === null || _props_prevValue === void 0 ? void 0 : _props_prevValue[key],
@@ -20200,7 +20129,7 @@ var ObjectType = (props) => {
20200
20129
  });
20201
20130
  if (entries.length > displayLength) {
20202
20131
  const rest = entries.length - displayLength;
20203
- elements2.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
20132
+ elements2.push(/* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(DataBox, {
20204
20133
  sx: {
20205
20134
  cursor: "pointer",
20206
20135
  lineHeight: 1.5,
@@ -20232,13 +20161,13 @@ var ObjectType = (props) => {
20232
20161
  const marginLeft = props.inspect ? 0.6 : 0;
20233
20162
  const width = useJsonViewerStore((store) => store.indentWidth);
20234
20163
  const indentWidth = props.inspect ? width - marginLeft : width;
20235
- const isEmptyValue = (0, import_react50.useMemo)(() => getValueSize(props.value) === 0, [
20164
+ const isEmptyValue = (0, import_react49.useMemo)(() => getValueSize(props.value) === 0, [
20236
20165
  props.value
20237
20166
  ]);
20238
20167
  if (isEmptyValue) {
20239
20168
  return null;
20240
20169
  }
20241
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
20170
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
20242
20171
  className: "data-object",
20243
20172
  sx: {
20244
20173
  display: props.inspect ? "block" : "inline-block",
@@ -20247,7 +20176,7 @@ var ObjectType = (props) => {
20247
20176
  color: keyColor,
20248
20177
  borderLeft: props.inspect ? "1px solid ".concat(borderColor) : "none"
20249
20178
  },
20250
- children: props.inspect ? elements : !isTrap && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
20179
+ children: props.inspect ? elements : !isTrap && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
20251
20180
  component: "span",
20252
20181
  className: "data-object-body",
20253
20182
  onClick: () => props.setInspect(true),
@@ -20275,11 +20204,11 @@ var stringType = defineEasyType({
20275
20204
  serialize: (value) => value,
20276
20205
  deserialize: (value) => value,
20277
20206
  Renderer: (props) => {
20278
- const [showRest, setShowRest] = (0, import_react50.useState)(false);
20207
+ const [showRest, setShowRest] = (0, import_react49.useState)(false);
20279
20208
  const collapseStringsAfterLength = useJsonViewerStore((store) => store.collapseStringsAfterLength);
20280
20209
  const value = showRest ? props.value : props.value.slice(0, collapseStringsAfterLength);
20281
20210
  const hasRest = props.value.length > collapseStringsAfterLength;
20282
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material14.Box, {
20211
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Box, {
20283
20212
  component: "span",
20284
20213
  sx: {
20285
20214
  overflowWrap: "anywhere",
@@ -20297,7 +20226,7 @@ var stringType = defineEasyType({
20297
20226
  children: [
20298
20227
  '"',
20299
20228
  value,
20300
- hasRest && !showRest && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
20229
+ hasRest && !showRest && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
20301
20230
  component: "span",
20302
20231
  sx: {
20303
20232
  padding: 0.5
@@ -20316,7 +20245,7 @@ var undefinedType = defineEasyType({
20316
20245
  displayTypeLabel: false,
20317
20246
  Renderer: () => {
20318
20247
  const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
20319
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
20248
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
20320
20249
  sx: {
20321
20250
  fontSize: "0.7rem",
20322
20251
  backgroundColor,
@@ -20332,17 +20261,17 @@ function memorizeDataType(dataType) {
20332
20261
  var _prevProps_path, _nextProps_path;
20333
20262
  return Object.is(prevProps.value, nextProps.value) && prevProps.inspect && nextProps.inspect && ((_prevProps_path = prevProps.path) === null || _prevProps_path === void 0 ? void 0 : _prevProps_path.join(".")) === ((_nextProps_path = nextProps.path) === null || _nextProps_path === void 0 ? void 0 : _nextProps_path.join("."));
20334
20263
  }
20335
- dataType.Component = /* @__PURE__ */ (0, import_react50.memo)(dataType.Component, compare);
20264
+ dataType.Component = /* @__PURE__ */ (0, import_react49.memo)(dataType.Component, compare);
20336
20265
  if (dataType.Editor) {
20337
- dataType.Editor = /* @__PURE__ */ (0, import_react50.memo)(dataType.Editor, function compare2(prevProps, nextProps) {
20266
+ dataType.Editor = /* @__PURE__ */ (0, import_react49.memo)(dataType.Editor, function compare2(prevProps, nextProps) {
20338
20267
  return Object.is(prevProps.value, nextProps.value);
20339
20268
  });
20340
20269
  }
20341
20270
  if (dataType.PreComponent) {
20342
- dataType.PreComponent = /* @__PURE__ */ (0, import_react50.memo)(dataType.PreComponent, compare);
20271
+ dataType.PreComponent = /* @__PURE__ */ (0, import_react49.memo)(dataType.PreComponent, compare);
20343
20272
  }
20344
20273
  if (dataType.PostComponent) {
20345
- dataType.PostComponent = /* @__PURE__ */ (0, import_react50.memo)(dataType.PostComponent, compare);
20274
+ dataType.PostComponent = /* @__PURE__ */ (0, import_react49.memo)(dataType.PostComponent, compare);
20346
20275
  }
20347
20276
  return dataType;
20348
20277
  }
@@ -20368,10 +20297,10 @@ var createTypeRegistryStore = () => {
20368
20297
  }
20369
20298
  }));
20370
20299
  };
20371
- var TypeRegistryStoreContext = /* @__PURE__ */ (0, import_react50.createContext)(void 0);
20300
+ var TypeRegistryStoreContext = /* @__PURE__ */ (0, import_react49.createContext)(void 0);
20372
20301
  TypeRegistryStoreContext.Provider;
20373
20302
  var useTypeRegistryStore = (selector2, equalityFn) => {
20374
- const store = (0, import_react50.useContext)(TypeRegistryStoreContext);
20303
+ const store = (0, import_react49.useContext)(TypeRegistryStoreContext);
20375
20304
  return (0, import_zustand.useStore)(store, selector2, equalityFn);
20376
20305
  };
20377
20306
  function matchTypeComponents(value, path, registry) {
@@ -20391,13 +20320,13 @@ function matchTypeComponents(value, path, registry) {
20391
20320
  }
20392
20321
  function useTypeComponents(value, path) {
20393
20322
  const registry = useTypeRegistryStore((store) => store.registry);
20394
- return (0, import_react50.useMemo)(() => matchTypeComponents(value, path, registry), [
20323
+ return (0, import_react49.useMemo)(() => matchTypeComponents(value, path, registry), [
20395
20324
  value,
20396
20325
  path,
20397
20326
  registry
20398
20327
  ]);
20399
20328
  }
20400
- var IconBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
20329
+ var IconBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
20401
20330
  component: "span",
20402
20331
  ...props,
20403
20332
  sx: {
@@ -20412,7 +20341,7 @@ var DataKeyPair = (props) => {
20412
20341
  var _props_editable;
20413
20342
  const propsEditable = (_props_editable = props.editable) !== null && _props_editable !== void 0 ? _props_editable : void 0;
20414
20343
  const storeEditable = useJsonViewerStore((store) => store.editable);
20415
- const editable = (0, import_react50.useMemo)(() => {
20344
+ const editable = (0, import_react49.useMemo)(() => {
20416
20345
  if (storeEditable === false) {
20417
20346
  return false;
20418
20347
  }
@@ -20429,11 +20358,11 @@ var DataKeyPair = (props) => {
20429
20358
  storeEditable,
20430
20359
  value
20431
20360
  ]);
20432
- const [tempValue, setTempValue] = (0, import_react50.useState)("");
20361
+ const [tempValue, setTempValue] = (0, import_react49.useState)("");
20433
20362
  const depth = path.length;
20434
20363
  const key = path[depth - 1];
20435
20364
  const hoverPath = useJsonViewerStore((store) => store.hoverPath);
20436
- const isHover = (0, import_react50.useMemo)(() => {
20365
+ const isHover = (0, import_react49.useMemo)(() => {
20437
20366
  return hoverPath && path.every((value2, index) => value2 === hoverPath.path[index] && nestedIndex === hoverPath.nestedIndex);
20438
20367
  }, [
20439
20368
  hoverPath,
@@ -20443,7 +20372,7 @@ var DataKeyPair = (props) => {
20443
20372
  const setHover = useJsonViewerStore((store) => store.setHover);
20444
20373
  const root2 = useJsonViewerStore((store) => store.value);
20445
20374
  const [inspect, setInspect] = useInspect(path, value, nestedIndex);
20446
- const [editing, setEditing] = (0, import_react50.useState)(false);
20375
+ const [editing, setEditing] = (0, import_react49.useState)(false);
20447
20376
  const onChange = useJsonViewerStore((store) => store.onChange);
20448
20377
  const keyColor = useTextColor();
20449
20378
  const numberKeyColor = useJsonViewerStore((store) => store.colorspace.base0C);
@@ -20455,7 +20384,7 @@ var DataKeyPair = (props) => {
20455
20384
  const isNumberKey = Number.isInteger(Number(key));
20456
20385
  const storeEnableAdd = useJsonViewerStore((store) => store.enableAdd);
20457
20386
  const onAdd = useJsonViewerStore((store) => store.onAdd);
20458
- const enableAdd = (0, import_react50.useMemo)(() => {
20387
+ const enableAdd = (0, import_react49.useMemo)(() => {
20459
20388
  if (!onAdd || nestedIndex !== void 0) return false;
20460
20389
  if (storeEnableAdd === false) {
20461
20390
  return false;
@@ -20480,7 +20409,7 @@ var DataKeyPair = (props) => {
20480
20409
  ]);
20481
20410
  const storeEnableDelete = useJsonViewerStore((store) => store.enableDelete);
20482
20411
  const onDelete = useJsonViewerStore((store) => store.onDelete);
20483
- const enableDelete = (0, import_react50.useMemo)(() => {
20412
+ const enableDelete = (0, import_react49.useMemo)(() => {
20484
20413
  if (!onDelete || nestedIndex !== void 0) return false;
20485
20414
  if (isRoot) {
20486
20415
  return false;
@@ -20507,7 +20436,7 @@ var DataKeyPair = (props) => {
20507
20436
  const enableClipboard = useJsonViewerStore((store) => store.enableClipboard);
20508
20437
  const { copy, copied } = useClipboard();
20509
20438
  const highlightUpdates = useJsonViewerStore((store) => store.highlightUpdates);
20510
- const isHighlight = (0, import_react50.useMemo)(() => {
20439
+ const isHighlight = (0, import_react49.useMemo)(() => {
20511
20440
  if (!highlightUpdates || prevValue === void 0) return false;
20512
20441
  if (typeof value !== typeof prevValue) {
20513
20442
  return true;
@@ -20531,8 +20460,8 @@ var DataKeyPair = (props) => {
20531
20460
  prevValue,
20532
20461
  value
20533
20462
  ]);
20534
- const highlightContainer = (0, import_react50.useRef)();
20535
- (0, import_react50.useEffect)(() => {
20463
+ const highlightContainer = (0, import_react49.useRef)();
20464
+ (0, import_react49.useEffect)(() => {
20536
20465
  if (highlightContainer.current && isHighlight && "animate" in highlightContainer.current) {
20537
20466
  highlightContainer.current.animate([
20538
20467
  {
@@ -20552,7 +20481,7 @@ var DataKeyPair = (props) => {
20552
20481
  prevValue,
20553
20482
  value
20554
20483
  ]);
20555
- const startEditing = (0, import_react50.useCallback)((event) => {
20484
+ const startEditing = (0, import_react49.useCallback)((event) => {
20556
20485
  event.preventDefault();
20557
20486
  if (serialize) setTempValue(serialize(value));
20558
20487
  setEditing(true);
@@ -20560,14 +20489,14 @@ var DataKeyPair = (props) => {
20560
20489
  serialize,
20561
20490
  value
20562
20491
  ]);
20563
- const abortEditing = (0, import_react50.useCallback)(() => {
20492
+ const abortEditing = (0, import_react49.useCallback)(() => {
20564
20493
  setEditing(false);
20565
20494
  setTempValue("");
20566
20495
  }, [
20567
20496
  setEditing,
20568
20497
  setTempValue
20569
20498
  ]);
20570
- const commitEditing = (0, import_react50.useCallback)((newValue) => {
20499
+ const commitEditing = (0, import_react49.useCallback)((newValue) => {
20571
20500
  setEditing(false);
20572
20501
  if (!deserialize) return;
20573
20502
  try {
@@ -20581,20 +20510,20 @@ var DataKeyPair = (props) => {
20581
20510
  path,
20582
20511
  value
20583
20512
  ]);
20584
- const actionIcons = (0, import_react50.useMemo)(() => {
20513
+ const actionIcons = (0, import_react49.useMemo)(() => {
20585
20514
  if (editing) {
20586
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
20515
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
20587
20516
  children: [
20588
- /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20589
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CloseIcon, {
20517
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20518
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CloseIcon, {
20590
20519
  sx: {
20591
20520
  fontSize: ".8rem"
20592
20521
  },
20593
20522
  onClick: abortEditing
20594
20523
  })
20595
20524
  }),
20596
- /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20597
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CheckIcon, {
20525
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20526
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CheckIcon, {
20598
20527
  sx: {
20599
20528
  fontSize: ".8rem"
20600
20529
  },
@@ -20604,9 +20533,9 @@ var DataKeyPair = (props) => {
20604
20533
  ]
20605
20534
  });
20606
20535
  }
20607
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
20536
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
20608
20537
  children: [
20609
- enableClipboard && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20538
+ enableClipboard && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20610
20539
  onClick: (event) => {
20611
20540
  event.preventDefault();
20612
20541
  try {
@@ -20615,41 +20544,41 @@ var DataKeyPair = (props) => {
20615
20544
  console.error(e2);
20616
20545
  }
20617
20546
  },
20618
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CheckIcon, {
20547
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CheckIcon, {
20619
20548
  sx: {
20620
20549
  fontSize: ".8rem"
20621
20550
  }
20622
- }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(ContentCopyIcon, {
20551
+ }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(ContentCopyIcon, {
20623
20552
  sx: {
20624
20553
  fontSize: ".8rem"
20625
20554
  }
20626
20555
  })
20627
20556
  }),
20628
- Editor && editable && serialize && deserialize && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20557
+ Editor && editable && serialize && deserialize && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20629
20558
  onClick: startEditing,
20630
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(EditIcon, {
20559
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(EditIcon, {
20631
20560
  sx: {
20632
20561
  fontSize: ".8rem"
20633
20562
  }
20634
20563
  })
20635
20564
  }),
20636
- enableAdd && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20565
+ enableAdd && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20637
20566
  onClick: (event) => {
20638
20567
  event.preventDefault();
20639
20568
  onAdd === null || onAdd === void 0 ? void 0 : onAdd(path);
20640
20569
  },
20641
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(AddBoxIcon, {
20570
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(AddBoxIcon, {
20642
20571
  sx: {
20643
20572
  fontSize: ".8rem"
20644
20573
  }
20645
20574
  })
20646
20575
  }),
20647
- enableDelete && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20576
+ enableDelete && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20648
20577
  onClick: (event) => {
20649
20578
  event.preventDefault();
20650
20579
  onDelete === null || onDelete === void 0 ? void 0 : onDelete(path, value);
20651
20580
  },
20652
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DeleteIcon, {
20581
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DeleteIcon, {
20653
20582
  sx: {
20654
20583
  fontSize: ".9rem"
20655
20584
  }
@@ -20677,12 +20606,12 @@ var DataKeyPair = (props) => {
20677
20606
  abortEditing,
20678
20607
  commitEditing
20679
20608
  ]);
20680
- const isEmptyValue = (0, import_react50.useMemo)(() => getValueSize(value) === 0, [
20609
+ const isEmptyValue = (0, import_react49.useMemo)(() => getValueSize(value) === 0, [
20681
20610
  value
20682
20611
  ]);
20683
20612
  const expandable = !isEmptyValue && !!(PreComponent && PostComponent);
20684
20613
  const KeyRenderer = useJsonViewerStore((store) => store.keyRenderer);
20685
- const downstreamProps = (0, import_react50.useMemo)(() => ({
20614
+ const downstreamProps = (0, import_react49.useMemo)(() => ({
20686
20615
  path,
20687
20616
  inspect,
20688
20617
  setInspect,
@@ -20697,19 +20626,19 @@ var DataKeyPair = (props) => {
20697
20626
  prevValue,
20698
20627
  nestedIndex
20699
20628
  ]);
20700
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material14.Box, {
20629
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material13.Box, {
20701
20630
  className: "data-key-pair",
20702
20631
  "data-testid": "data-key-pair" + path.join("."),
20703
20632
  sx: {
20704
20633
  userSelect: "text"
20705
20634
  },
20706
- onMouseEnter: (0, import_react50.useCallback)(() => setHover(path, nestedIndex), [
20635
+ onMouseEnter: (0, import_react49.useCallback)(() => setHover(path, nestedIndex), [
20707
20636
  setHover,
20708
20637
  path,
20709
20638
  nestedIndex
20710
20639
  ]),
20711
20640
  children: [
20712
- /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
20641
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(DataBox, {
20713
20642
  component: "span",
20714
20643
  className: "data-key",
20715
20644
  sx: {
@@ -20718,7 +20647,7 @@ var DataKeyPair = (props) => {
20718
20647
  letterSpacing: 0.5,
20719
20648
  opacity: 0.8
20720
20649
  },
20721
- onClick: (0, import_react50.useCallback)((event) => {
20650
+ onClick: (0, import_react49.useCallback)((event) => {
20722
20651
  if (event.isDefaultPrevented()) {
20723
20652
  return;
20724
20653
  }
@@ -20730,7 +20659,7 @@ var DataKeyPair = (props) => {
20730
20659
  setInspect
20731
20660
  ]),
20732
20661
  children: [
20733
- expandable ? inspect ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(ExpandMoreIcon, {
20662
+ expandable ? inspect ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(ExpandMoreIcon, {
20734
20663
  className: "data-key-toggle-expanded",
20735
20664
  sx: {
20736
20665
  fontSize: ".8rem",
@@ -20738,7 +20667,7 @@ var DataKeyPair = (props) => {
20738
20667
  cursor: "pointer"
20739
20668
  }
20740
20669
  }
20741
- }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(ChevronRightIcon, {
20670
+ }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(ChevronRightIcon, {
20742
20671
  className: "data-key-toggle-collapsed",
20743
20672
  sx: {
20744
20673
  fontSize: ".8rem",
@@ -20747,44 +20676,44 @@ var DataKeyPair = (props) => {
20747
20676
  }
20748
20677
  }
20749
20678
  }) : null,
20750
- /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
20679
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
20751
20680
  ref: highlightContainer,
20752
20681
  className: "data-key-key",
20753
20682
  component: "span",
20754
- children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
20683
+ children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
20755
20684
  children: [
20756
20685
  '"',
20757
20686
  rootName,
20758
20687
  '"'
20759
20688
  ]
20760
- }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
20689
+ }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
20761
20690
  children: rootName
20762
- }) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(KeyRenderer, {
20691
+ }) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(KeyRenderer, {
20763
20692
  ...downstreamProps
20764
- }) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
20693
+ }) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
20765
20694
  component: "span",
20766
20695
  style: {
20767
20696
  color: numberKeyColor,
20768
20697
  userSelect: isNumberKey ? "none" : "auto"
20769
20698
  },
20770
20699
  children: key
20771
- }) : quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
20700
+ }) : quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
20772
20701
  children: [
20773
20702
  '"',
20774
20703
  key,
20775
20704
  '"'
20776
20705
  ]
20777
- }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
20706
+ }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
20778
20707
  children: key
20779
20708
  }))
20780
20709
  }),
20781
- isRoot ? rootName !== false && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
20710
+ isRoot ? rootName !== false && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
20782
20711
  className: "data-key-colon",
20783
20712
  sx: {
20784
20713
  mr: 0.5
20785
20714
  },
20786
20715
  children: ":"
20787
- }) : nestedIndex === void 0 && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
20716
+ }) : nestedIndex === void 0 && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
20788
20717
  className: "data-key-colon",
20789
20718
  sx: {
20790
20719
  mr: 0.5,
@@ -20795,29 +20724,29 @@ var DataKeyPair = (props) => {
20795
20724
  },
20796
20725
  children: ":"
20797
20726
  }),
20798
- PreComponent && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(PreComponent, {
20727
+ PreComponent && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(PreComponent, {
20799
20728
  ...downstreamProps
20800
20729
  }),
20801
20730
  isHover && expandable && inspect && actionIcons
20802
20731
  ]
20803
20732
  }),
20804
- editing && editable ? Editor && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Editor, {
20733
+ editing && editable ? Editor && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Editor, {
20805
20734
  path,
20806
20735
  value: tempValue,
20807
20736
  setValue: setTempValue,
20808
20737
  abortEditing,
20809
20738
  commitEditing
20810
- }) : Component ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Component, {
20739
+ }) : Component ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Component, {
20811
20740
  ...downstreamProps
20812
- }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, {
20741
+ }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Box, {
20813
20742
  component: "span",
20814
20743
  className: "data-value-fallback",
20815
20744
  children: "fallback: ".concat(value)
20816
20745
  }),
20817
- PostComponent && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(PostComponent, {
20746
+ PostComponent && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(PostComponent, {
20818
20747
  ...downstreamProps
20819
20748
  }),
20820
- !last && displayComma && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
20749
+ !last && displayComma && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
20821
20750
  children: ","
20822
20751
  }),
20823
20752
  isHover && expandable && !inspect && actionIcons,
@@ -20828,8 +20757,8 @@ var DataKeyPair = (props) => {
20828
20757
  };
20829
20758
  var query = "(prefers-color-scheme: dark)";
20830
20759
  function useThemeDetector() {
20831
- const [isDark, setIsDark] = (0, import_react50.useState)(false);
20832
- (0, import_react50.useEffect)(() => {
20760
+ const [isDark, setIsDark] = (0, import_react49.useState)(false);
20761
+ (0, import_react49.useEffect)(() => {
20833
20762
  const listener = (e2) => setIsDark(e2.matches);
20834
20763
  setIsDark(window.matchMedia(query).matches);
20835
20764
  const queryMedia = window.matchMedia(query);
@@ -20839,8 +20768,8 @@ function useThemeDetector() {
20839
20768
  return isDark;
20840
20769
  }
20841
20770
  function useSetIfNotUndefinedEffect(key, value) {
20842
- const { setState } = (0, import_react50.useContext)(JsonViewerStoreContext);
20843
- (0, import_react50.useEffect)(() => {
20771
+ const { setState } = (0, import_react49.useContext)(JsonViewerStoreContext);
20772
+ (0, import_react49.useEffect)(() => {
20844
20773
  if (value !== void 0) {
20845
20774
  setState({
20846
20775
  [key]: value
@@ -20853,8 +20782,8 @@ function useSetIfNotUndefinedEffect(key, value) {
20853
20782
  ]);
20854
20783
  }
20855
20784
  var JsonViewerInner = (props) => {
20856
- const { setState } = (0, import_react50.useContext)(JsonViewerStoreContext);
20857
- (0, import_react50.useEffect)(() => {
20785
+ const { setState } = (0, import_react49.useContext)(JsonViewerStoreContext);
20786
+ (0, import_react49.useEffect)(() => {
20858
20787
  setState((state) => ({
20859
20788
  prevValue: state.value,
20860
20789
  value: props.value
@@ -20882,7 +20811,7 @@ var JsonViewerInner = (props) => {
20882
20811
  useSetIfNotUndefinedEffect("displaySize", props.displaySize);
20883
20812
  useSetIfNotUndefinedEffect("displayComma", props.displayComma);
20884
20813
  useSetIfNotUndefinedEffect("highlightUpdates", props.highlightUpdates);
20885
- (0, import_react50.useEffect)(() => {
20814
+ (0, import_react49.useEffect)(() => {
20886
20815
  if (props.theme === "light") {
20887
20816
  setState({
20888
20817
  colorspace: lightColorspace
@@ -20900,13 +20829,13 @@ var JsonViewerInner = (props) => {
20900
20829
  setState,
20901
20830
  props.theme
20902
20831
  ]);
20903
- const themeCls = (0, import_react50.useMemo)(() => {
20832
+ const themeCls = (0, import_react49.useMemo)(() => {
20904
20833
  if (typeof props.theme === "object") return "json-viewer-theme-custom";
20905
20834
  return props.theme === "dark" ? "json-viewer-theme-dark" : "json-viewer-theme-light";
20906
20835
  }, [
20907
20836
  props.theme
20908
20837
  ]);
20909
- const onceRef = (0, import_react50.useRef)(true);
20838
+ const onceRef = (0, import_react49.useRef)(true);
20910
20839
  const registerTypes = useTypeRegistryStore((store) => store.registerTypes);
20911
20840
  if (onceRef.current) {
20912
20841
  const allTypes = props.valueTypes ? [
@@ -20918,7 +20847,7 @@ var JsonViewerInner = (props) => {
20918
20847
  registerTypes(allTypes);
20919
20848
  onceRef.current = false;
20920
20849
  }
20921
- (0, import_react50.useEffect)(() => {
20850
+ (0, import_react49.useEffect)(() => {
20922
20851
  const allTypes = props.valueTypes ? [
20923
20852
  ...predefinedTypes,
20924
20853
  ...props.valueTypes
@@ -20932,12 +20861,12 @@ var JsonViewerInner = (props) => {
20932
20861
  ]);
20933
20862
  const value = useJsonViewerStore((store) => store.value);
20934
20863
  const prevValue = useJsonViewerStore((store) => store.prevValue);
20935
- const emptyPath = (0, import_react50.useMemo)(() => [], []);
20864
+ const emptyPath = (0, import_react49.useMemo)(() => [], []);
20936
20865
  const setHover = useJsonViewerStore((store) => store.setHover);
20937
- const onMouseLeave = (0, import_react50.useCallback)(() => setHover(null), [
20866
+ const onMouseLeave = (0, import_react49.useCallback)(() => setHover(null), [
20938
20867
  setHover
20939
20868
  ]);
20940
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Paper, {
20869
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.Paper, {
20941
20870
  elevation: 0,
20942
20871
  className: clsx(themeCls, props.className),
20943
20872
  style: props.style,
@@ -20948,7 +20877,7 @@ var JsonViewerInner = (props) => {
20948
20877
  ...props.sx
20949
20878
  },
20950
20879
  onMouseLeave,
20951
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
20880
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
20952
20881
  value,
20953
20882
  prevValue,
20954
20883
  path: emptyPath,
@@ -20963,17 +20892,17 @@ var JsonViewer = function JsonViewer2(props) {
20963
20892
  }
20964
20893
  }
20965
20894
  const isAutoDarkTheme = useThemeDetector();
20966
- const themeType = (0, import_react50.useMemo)(() => {
20895
+ const themeType = (0, import_react49.useMemo)(() => {
20967
20896
  var _props_theme;
20968
20897
  return props.theme === "auto" ? isAutoDarkTheme ? "dark" : "light" : (_props_theme = props.theme) !== null && _props_theme !== void 0 ? _props_theme : "light";
20969
20898
  }, [
20970
20899
  isAutoDarkTheme,
20971
20900
  props.theme
20972
20901
  ]);
20973
- const theme = (0, import_react50.useMemo)(() => {
20902
+ const theme = (0, import_react49.useMemo)(() => {
20974
20903
  const backgroundColor = typeof themeType === "object" ? themeType.base00 : themeType === "dark" ? darkColorspace.base00 : lightColorspace.base00;
20975
20904
  const foregroundColor = typeof themeType === "object" ? themeType.base07 : themeType === "dark" ? darkColorspace.base07 : lightColorspace.base07;
20976
- return (0, import_material14.createTheme)({
20905
+ return (0, import_material13.createTheme)({
20977
20906
  components: {
20978
20907
  MuiPaper: {
20979
20908
  styleOverrides: {
@@ -20998,15 +20927,15 @@ var JsonViewer = function JsonViewer2(props) {
20998
20927
  ...props,
20999
20928
  theme: themeType
21000
20929
  };
21001
- const jsonViewerStore = (0, import_react50.useMemo)(() => createJsonViewerStore(props), []);
21002
- const typeRegistryStore = (0, import_react50.useMemo)(() => createTypeRegistryStore(), []);
21003
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.ThemeProvider, {
20930
+ const jsonViewerStore = (0, import_react49.useMemo)(() => createJsonViewerStore(props), []);
20931
+ const typeRegistryStore = (0, import_react49.useMemo)(() => createTypeRegistryStore(), []);
20932
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material13.ThemeProvider, {
21004
20933
  theme,
21005
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(TypeRegistryStoreContext.Provider, {
20934
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(TypeRegistryStoreContext.Provider, {
21006
20935
  value: typeRegistryStore,
21007
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(JsonViewerStoreContext.Provider, {
20936
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(JsonViewerStoreContext.Provider, {
21008
20937
  value: jsonViewerStore,
21009
- children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(JsonViewerInner, {
20938
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(JsonViewerInner, {
21010
20939
  ...mixedProps
21011
20940
  })
21012
20941
  })
@@ -21015,8 +20944,8 @@ var JsonViewer = function JsonViewer2(props) {
21015
20944
  };
21016
20945
 
21017
20946
  // src/components/event-details/payload-viewer.tsx
21018
- var import_react51 = require("react");
21019
- var import_jsx_runtime137 = require("react/jsx-runtime");
20947
+ var import_react50 = require("react");
20948
+ var import_jsx_runtime136 = require("react/jsx-runtime");
21020
20949
  function tryParseJson(value) {
21021
20950
  if (typeof value !== "string") {
21022
20951
  return value;
@@ -21027,9 +20956,9 @@ function tryParseJson(value) {
21027
20956
  return value;
21028
20957
  }
21029
20958
  }
21030
- var PayloadViewer = (0, import_react51.memo)(({ sx, testId, value }) => {
21031
- const theme = (0, import_material15.useTheme)();
21032
- return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material15.Box, { "data-testid": testId, sx: { backgroundColor: "background.default", borderRadius: 1, fontSize: 12, overflow: "auto", p: 1, ...sx }, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
20959
+ var PayloadViewer = (0, import_react50.memo)(({ sx, testId, value }) => {
20960
+ const theme = (0, import_material14.useTheme)();
20961
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material14.Box, { "data-testid": testId, sx: { backgroundColor: "background.default", borderRadius: 1, fontSize: 12, overflow: "auto", p: 1, ...sx }, children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
21033
20962
  JsonViewer,
21034
20963
  {
21035
20964
  displayDataTypes: false,
@@ -21043,21 +20972,21 @@ var PayloadViewer = (0, import_react51.memo)(({ sx, testId, value }) => {
21043
20972
  });
21044
20973
 
21045
20974
  // src/components/event-details/event-detail.tsx
21046
- var import_jsx_runtime138 = require("react/jsx-runtime");
21047
- var DetailRow2 = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material16.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
21048
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
21049
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Typography, { sx: { color: "text.primary", whiteSpace: "pre-wrap" }, variant: "caption", children: content }) : content })
20975
+ var import_jsx_runtime137 = require("react/jsx-runtime");
20976
+ var DetailRow2 = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material15.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
20977
+ /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material15.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
20978
+ /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material15.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material15.Typography, { sx: { color: "text.primary", whiteSpace: "pre-wrap" }, variant: "caption", children: content }) : content })
21050
20979
  ] });
21051
20980
  var EventMessage = ({ event }) => {
21052
- const [isOpen, setIsOpen] = (0, import_react52.useState)(false);
21053
- const [isOverflowing, setIsOverflowing] = (0, import_react52.useState)(false);
21054
- const textReference = (0, import_react52.useRef)(null);
21055
- const parsedMessage = (0, import_react52.useMemo)(() => parseEventMessage(event), [event]);
21056
- const isIAMPolicyEvent = (0, import_react52.useMemo)(
20981
+ const [isOpen, setIsOpen] = (0, import_react51.useState)(false);
20982
+ const [isOverflowing, setIsOverflowing] = (0, import_react51.useState)(false);
20983
+ const textReference = (0, import_react51.useRef)(null);
20984
+ const parsedMessage = (0, import_react51.useMemo)(() => parseEventMessage(event), [event]);
20985
+ const isIAMPolicyEvent = (0, import_react51.useMemo)(
21057
20986
  () => event.event_type === "iam.policy_evaluation" && event.attributes?.payload && typeof event.attributes.payload === "string",
21058
20987
  [event]
21059
20988
  );
21060
- (0, import_react52.useEffect)(() => {
20989
+ (0, import_react51.useEffect)(() => {
21061
20990
  const checkOverflow = () => {
21062
20991
  const element = textReference.current;
21063
20992
  if (element) {
@@ -21070,29 +20999,29 @@ var EventMessage = ({ event }) => {
21070
20999
  window.removeEventListener("resize", checkOverflow);
21071
21000
  };
21072
21001
  }, [parsedMessage.headline]);
21073
- const hasAdditionalContent = (0, import_react52.useMemo)(
21002
+ const hasAdditionalContent = (0, import_react51.useMemo)(
21074
21003
  () => parsedMessage.message || parsedMessage.details || isIAMPolicyEvent,
21075
21004
  [parsedMessage.message, parsedMessage.details, isIAMPolicyEvent]
21076
21005
  );
21077
- const shouldShowToggle = (0, import_react52.useMemo)(
21006
+ const shouldShowToggle = (0, import_react51.useMemo)(
21078
21007
  () => isOverflowing || hasAdditionalContent,
21079
21008
  [isOverflowing, hasAdditionalContent]
21080
21009
  );
21081
- return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material16.Box, { sx: { display: "flex", flexDirection: "column" }, children: [
21082
- /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material16.Box, { sx: { alignItems: "center", display: "flex" }, children: [
21083
- Boolean(shouldShowToggle) && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
21084
- import_material16.IconButton,
21010
+ return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material15.Box, { sx: { display: "flex", flexDirection: "column" }, children: [
21011
+ /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material15.Box, { sx: { alignItems: "center", display: "flex" }, children: [
21012
+ Boolean(shouldShowToggle) && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
21013
+ import_material15.IconButton,
21085
21014
  {
21086
21015
  onClick: () => {
21087
21016
  setIsOpen(!isOpen);
21088
21017
  },
21089
21018
  size: "small",
21090
21019
  sx: { mr: 1, p: 0 },
21091
- children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_icons_material8.KeyboardArrowDown, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_icons_material8.KeyboardArrowRight, { sx: { fontSize: 16 } })
21020
+ children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_icons_material8.KeyboardArrowDown, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_icons_material8.KeyboardArrowRight, { sx: { fontSize: 16 } })
21092
21021
  }
21093
21022
  ),
21094
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
21095
- import_material16.Typography,
21023
+ /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
21024
+ import_material15.Typography,
21096
21025
  {
21097
21026
  ref: textReference,
21098
21027
  sx: {
@@ -21109,12 +21038,12 @@ var EventMessage = ({ event }) => {
21109
21038
  }
21110
21039
  )
21111
21040
  ] }),
21112
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Box, { sx: { borderColor: "divider", borderLeft: "2px solid", ml: 1, mt: 0.5, pl: 1.5, py: 0.5 }, children: isIAMPolicyEvent ? /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(IAMEventDetail, { event }) : /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_jsx_runtime138.Fragment, { children: [
21113
- Boolean(parsedMessage.message) && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(DetailRow2, { content: parsedMessage.message, label: "Message" }),
21114
- Boolean(parsedMessage.details) && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
21041
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material15.Box, { sx: { borderColor: "divider", borderLeft: "2px solid", ml: 1, mt: 0.5, pl: 1.5, py: 0.5 }, children: isIAMPolicyEvent ? /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(IAMEventDetail, { event }) : /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_jsx_runtime137.Fragment, { children: [
21042
+ Boolean(parsedMessage.message) && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(DetailRow2, { content: parsedMessage.message, label: "Message" }),
21043
+ Boolean(parsedMessage.details) && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
21115
21044
  DetailRow2,
21116
21045
  {
21117
- content: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(PayloadViewer, { sx: { px: 0 }, value: tryParseJson(parsedMessage.details) }),
21046
+ content: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(PayloadViewer, { sx: { px: 0 }, value: tryParseJson(parsedMessage.details) }),
21118
21047
  label: "Details"
21119
21048
  }
21120
21049
  )
@@ -21147,15 +21076,15 @@ var EventDetail = ({
21147
21076
  type
21148
21077
  }) => {
21149
21078
  if (type === "permission") {
21150
- return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(IAMPermissionDetail, { events, spanStatusCode });
21079
+ return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(IAMPermissionDetail, { events, spanStatusCode });
21151
21080
  }
21152
21081
  const eventLevel = getEventLevelFromGroup(type);
21153
- return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material16.Box, { children: [
21154
- /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material16.Box, { sx: { alignItems: "center", display: "flex", mb: 0.5 }, children: [
21155
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(StatusIcon2, { errorLevel: eventLevel }),
21156
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Typography, { color: "text.secondary", sx: { fontWeight: 600, ml: 0.5 }, variant: "caption", children: displayText })
21082
+ return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material15.Box, { children: [
21083
+ /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material15.Box, { sx: { alignItems: "center", display: "flex", mb: 0.5 }, children: [
21084
+ /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(StatusIcon2, { errorLevel: eventLevel }),
21085
+ /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material15.Typography, { color: "text.secondary", sx: { fontWeight: 600, ml: 0.5 }, variant: "caption", children: displayText })
21157
21086
  ] }),
21158
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Box, { sx: { maxWidth: "100%", mb: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(EventMessage, { event }) }, `${event.span_id}-${event.event_id}`)) })
21087
+ /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material15.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material15.Box, { sx: { maxWidth: "100%", mb: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(EventMessage, { event }) }, `${event.span_id}-${event.event_id}`)) })
21159
21088
  ] });
21160
21089
  };
21161
21090
 
@@ -31112,9 +31041,9 @@ var QueryStatus = {
31112
31041
  };
31113
31042
 
31114
31043
  // src/components/event-details/lambda-invoke-logs-section.tsx
31115
- var import_material17 = require("@mui/material");
31116
- var import_react53 = require("react");
31117
- var import_jsx_runtime139 = require("react/jsx-runtime");
31044
+ var import_material16 = require("@mui/material");
31045
+ var import_react52 = require("react");
31046
+ var import_jsx_runtime138 = require("react/jsx-runtime");
31118
31047
  var POLL_INTERVAL_MS2 = 1e3;
31119
31048
  async function pollQueryResults(client, queryId) {
31120
31049
  return client.send(new GetQueryResultsCommand({ queryId }));
@@ -31131,7 +31060,7 @@ async function startLambdaLogsQuery(client, functionName2, requestId, startTimeS
31131
31060
  }
31132
31061
  function useCloudWatchLogsClient(region) {
31133
31062
  const { localstackEndpoint } = useAppInspector();
31134
- const client = (0, import_react53.useMemo)(() => new CloudWatchLogsClient({
31063
+ const client = (0, import_react52.useMemo)(() => new CloudWatchLogsClient({
31135
31064
  credentials: {
31136
31065
  accessKeyId: "test",
31137
31066
  secretAccessKey: "test"
@@ -31142,12 +31071,12 @@ function useCloudWatchLogsClient(region) {
31142
31071
  return client;
31143
31072
  }
31144
31073
  function useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, endTimeNano) {
31145
- const [loading, setLoading] = (0, import_react53.useState)(true);
31146
- const [logs, setLogs] = (0, import_react53.useState)([]);
31147
- const [error, setError] = (0, import_react53.useState)();
31148
- const pollTimerRef = (0, import_react53.useRef)(null);
31074
+ const [loading, setLoading] = (0, import_react52.useState)(true);
31075
+ const [logs, setLogs] = (0, import_react52.useState)([]);
31076
+ const [error, setError] = (0, import_react52.useState)();
31077
+ const pollTimerRef = (0, import_react52.useRef)(null);
31149
31078
  const cloudWatchLogs = useCloudWatchLogsClient(region);
31150
- (0, import_react53.useEffect)(() => {
31079
+ (0, import_react52.useEffect)(() => {
31151
31080
  let cancelled = false;
31152
31081
  const startTimeSec = Math.floor(Number(BigInt(startTimeNano) / BigInt(1e9)));
31153
31082
  const endTimeSec = Math.ceil(Number(BigInt(endTimeNano) / BigInt(1e9)));
@@ -31204,30 +31133,30 @@ function useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, en
31204
31133
  var LambdaInvokeLogsSection = ({ endTimeNano, functionName: functionName2, region, requestId, startTimeNano }) => {
31205
31134
  const { error, loading, logs } = useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, endTimeNano);
31206
31135
  if (loading) {
31207
- return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(import_material17.Stack, { alignItems: "center", direction: "row", spacing: 1, children: [
31208
- /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material17.CircularProgress, { size: 14 }),
31209
- /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material17.Typography, { color: "text.secondary", variant: "body2", children: "Loading logs\u2026" })
31136
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material16.Stack, { alignItems: "center", direction: "row", spacing: 1, children: [
31137
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.CircularProgress, { size: 14 }),
31138
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Typography, { color: "text.secondary", variant: "body2", children: "Loading logs\u2026" })
31210
31139
  ] });
31211
31140
  }
31212
31141
  if (error !== void 0) {
31213
- return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material17.Typography, { color: "error", variant: "body2", children: error.message });
31142
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Typography, { color: "error", variant: "body2", children: error.message });
31214
31143
  }
31215
31144
  if (logs.length === 0) {
31216
- return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material17.Typography, { color: "text.secondary", variant: "body2", children: "No logs found for this invocation." });
31145
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Typography, { color: "text.secondary", variant: "body2", children: "No logs found for this invocation." });
31217
31146
  }
31218
- return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material17.Box, { sx: { backgroundColor: (theme) => theme.palette.background.default, borderRadius: 1, p: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("pre", { style: { margin: 0, overflow: "auto" }, children: logs.map((log) => /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material17.Typography, { variant: "body2", children: `[${log.timestamp}] ${log.message}` }, log.ptr)) }) });
31147
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Box, { sx: { backgroundColor: (theme) => theme.palette.background.default, borderRadius: 1, p: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)("pre", { style: { margin: 0, overflow: "auto" }, children: logs.map((log) => /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material16.Typography, { variant: "body2", children: `[${log.timestamp}] ${log.message}` }, log.ptr)) }) });
31219
31148
  };
31220
31149
 
31221
31150
  // src/components/event-details/toggle-section.tsx
31222
31151
  var import_icons_material9 = require("@mui/icons-material");
31223
- var import_material18 = require("@mui/material");
31224
- var import_react54 = require("react");
31225
- var import_jsx_runtime140 = require("react/jsx-runtime");
31152
+ var import_material17 = require("@mui/material");
31153
+ var import_react53 = require("react");
31154
+ var import_jsx_runtime139 = require("react/jsx-runtime");
31226
31155
  var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
31227
- const [isOpen, setIsOpen] = (0, import_react54.useState)(initialOpen);
31228
- return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { sx: { mt: 4 }, children: [
31229
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(
31230
- import_material18.Box,
31156
+ const [isOpen, setIsOpen] = (0, import_react53.useState)(initialOpen);
31157
+ return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(import_material17.Box, { sx: { mt: 4 }, children: [
31158
+ /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
31159
+ import_material17.Box,
31231
31160
  {
31232
31161
  onClick: () => {
31233
31162
  setIsOpen(!isOpen);
@@ -31240,8 +31169,8 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
31240
31169
  mb: 1
31241
31170
  },
31242
31171
  children: [
31243
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(
31244
- import_material18.Box,
31172
+ /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
31173
+ import_material17.Box,
31245
31174
  {
31246
31175
  role: "button",
31247
31176
  sx: {
@@ -31250,23 +31179,23 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
31250
31179
  gap: 1
31251
31180
  },
31252
31181
  children: [
31253
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "subtitle2", children: headline }),
31254
- isOpen ? /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_icons_material9.KeyboardArrowDown, { sx: { color: "text.secondary", height: 20, width: 20 } }) : /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_icons_material9.KeyboardArrowRight, { sx: { color: "text.secondary", height: 20, width: 20 } })
31182
+ /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "subtitle2", children: headline }),
31183
+ isOpen ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons_material9.KeyboardArrowDown, { sx: { color: "text.secondary", height: 20, width: 20 } }) : /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons_material9.KeyboardArrowRight, { sx: { color: "text.secondary", height: 20, width: 20 } })
31255
31184
  ]
31256
31185
  }
31257
31186
  ),
31258
- action !== false && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Box, { onClick: (event) => {
31187
+ action !== false && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material17.Box, { onClick: (event) => {
31259
31188
  event.stopPropagation();
31260
31189
  }, children: action })
31261
31190
  ]
31262
31191
  }
31263
31192
  ),
31264
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Box, { children })
31193
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material17.Box, { children })
31265
31194
  ] });
31266
31195
  };
31267
31196
 
31268
31197
  // src/components/event-details/event-details.tsx
31269
- var import_jsx_runtime141 = require("react/jsx-runtime");
31198
+ var import_jsx_runtime140 = require("react/jsx-runtime");
31270
31199
  var checkIsLambdaInvoke = (span) => {
31271
31200
  if (span.service_name !== "lambda") {
31272
31201
  return false;
@@ -31281,13 +31210,13 @@ var checkIsSqsSendMessage = (span) => {
31281
31210
  return span.operation_name.startsWith("SendMessage");
31282
31211
  };
31283
31212
  var EventDetails = ({ onClose, selectedEvent }) => {
31284
- const eventGroups = (0, import_react55.useMemo)(
31213
+ const eventGroups = (0, import_react54.useMemo)(
31285
31214
  () => getEventGroupsByType(selectedEvent?.events ?? []),
31286
31215
  [selectedEvent?.events]
31287
31216
  );
31288
- const [parseNestedJson, setParseNestedJson] = (0, import_react55.useState)(true);
31217
+ const [parseNestedJson, setParseNestedJson] = (0, import_react54.useState)(true);
31289
31218
  if (!selectedEvent) {
31290
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Box, { sx: { p: 3, textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { color: "text.secondary", variant: "body2", children: "Select an operation to view graph" }) });
31219
+ return /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Box, { sx: { p: 3, textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { color: "text.secondary", variant: "body2", children: "Select an operation to view graph" }) });
31291
31220
  }
31292
31221
  const isLambdaInvoke = checkIsLambdaInvoke(selectedEvent);
31293
31222
  const isSqsSendMessage = checkIsSqsSendMessage(selectedEvent);
@@ -31313,9 +31242,9 @@ var EventDetails = ({ onClose, selectedEvent }) => {
31313
31242
  const exceptionPayload = tryParseJson(selectedEvent.attributes?.["localstack.aws.service.exception"]);
31314
31243
  const hasPayloads = requestPayload !== void 0 || responsePayload !== void 0 || exceptionPayload !== void 0 || isResponseSuppressed;
31315
31244
  const duration = selectedEvent.end_time_unix_nano ? ((BigInt(selectedEvent.end_time_unix_nano) - BigInt(selectedEvent.start_time_unix_nano)) / BigInt("1000000")).toString() : void 0;
31316
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { "data-testid": EVENT_DETAILS_TEST_ID, sx: { display: "flex", flexDirection: "column", height: "100%" }, children: [
31317
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(
31318
- import_material19.Box,
31245
+ return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { "data-testid": EVENT_DETAILS_TEST_ID, sx: { display: "flex", flexDirection: "column", height: "100%" }, children: [
31246
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(
31247
+ import_material18.Box,
31319
31248
  {
31320
31249
  sx: {
31321
31250
  alignItems: "center",
@@ -31327,91 +31256,91 @@ var EventDetails = ({ onClose, selectedEvent }) => {
31327
31256
  py: 1
31328
31257
  },
31329
31258
  children: [
31330
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "h6", children: "Operation Details" }) }),
31331
- onClose && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.IconButton, { "data-testid": EVENT_DETAILS_CLOSE_BUTTON_TEST_ID, onClick: onClose, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_icons_material10.Close, {}) })
31259
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "h6", children: "Operation Details" }) }),
31260
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.IconButton, { "data-testid": EVENT_DETAILS_CLOSE_BUTTON_TEST_ID, onClick: onClose, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_icons_material10.Close, {}) })
31332
31261
  ]
31333
31262
  }
31334
31263
  ),
31335
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Box, { sx: { flexGrow: 1, overflow: "auto", p: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { spacing: 2, children: [
31336
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ToggleSection, { headline: "Basic Information", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { "data-testid": EVENT_DETAILS_SECTION_BASIC_INFORMATION_TEST_ID, spacing: 1, children: [
31337
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { sx: { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" }, children: [
31338
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31339
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Service" }),
31340
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31341
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { "data-testid": EVENT_DETAILS_SERVICE_NAME_TEST_ID, variant: "body2", children: getServiceDisplayName(selectedEvent.service_name) }),
31342
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: getServiceDisplayName(selectedEvent.service_name) })
31264
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Box, { sx: { flexGrow: 1, overflow: "auto", p: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { spacing: 2, children: [
31265
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(ToggleSection, { headline: "Basic Information", children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { "data-testid": EVENT_DETAILS_SECTION_BASIC_INFORMATION_TEST_ID, spacing: 1, children: [
31266
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { sx: { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" }, children: [
31267
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31268
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Service" }),
31269
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31270
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_SERVICE_NAME_TEST_ID, variant: "body2", children: getServiceDisplayName(selectedEvent.service_name) }),
31271
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: getServiceDisplayName(selectedEvent.service_name) })
31343
31272
  ] })
31344
31273
  ] }),
31345
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31346
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Action" }),
31347
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31348
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { "data-testid": EVENT_DETAILS_OPERATION_NAME_TEST_ID, variant: "body2", children: selectedEvent.operation_name }),
31349
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: selectedEvent.operation_name })
31274
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31275
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Action" }),
31276
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31277
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_OPERATION_NAME_TEST_ID, variant: "body2", children: selectedEvent.operation_name }),
31278
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: selectedEvent.operation_name })
31350
31279
  ] })
31351
31280
  ] })
31352
31281
  ] }),
31353
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { sx: cfnResourceType ? { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" } : void 0, children: [
31354
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31355
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource" }),
31356
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", "data-testid": EVENT_DETAILS_RESOURCE_NAME_TEST_ID, direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31357
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { variant: "body2", children: selectedEvent.resource_name }),
31358
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: selectedEvent.resource_name })
31282
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { sx: cfnResourceType ? { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" } : void 0, children: [
31283
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31284
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource" }),
31285
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", "data-testid": EVENT_DETAILS_RESOURCE_NAME_TEST_ID, direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31286
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { variant: "body2", children: selectedEvent.resource_name }),
31287
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: selectedEvent.resource_name })
31359
31288
  ] })
31360
31289
  ] }),
31361
- Boolean(cfnResourceType) && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31362
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource Type" }),
31363
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31364
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { "data-testid": EVENT_DETAILS_CFN_RESOURCE_TYPE_TEST_ID, variant: "body2", children: cfnResourceType }),
31365
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: cfnResourceType })
31290
+ Boolean(cfnResourceType) && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31291
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource Type" }),
31292
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31293
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_CFN_RESOURCE_TYPE_TEST_ID, variant: "body2", children: cfnResourceType }),
31294
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: cfnResourceType })
31366
31295
  ] })
31367
31296
  ] })
31368
31297
  ] }),
31369
- Boolean(resourceArn) && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31370
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource ARN" }),
31371
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", "data-testid": EVENT_DETAILS_RESOURCE_ARN_TEST_ID, direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31372
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { variant: "body2", children: resourceArn }),
31373
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: resourceArn })
31298
+ Boolean(resourceArn) && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31299
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource ARN" }),
31300
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", "data-testid": EVENT_DETAILS_RESOURCE_ARN_TEST_ID, direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31301
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { variant: "body2", children: resourceArn }),
31302
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: resourceArn })
31374
31303
  ] })
31375
31304
  ] }),
31376
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "1.3fr 1fr" }, children: [
31377
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31378
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Account" }),
31379
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31380
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { "data-testid": EVENT_DETAILS_ACCOUNT_TEST_ID, variant: "body2", children: selectedEvent.account_id }),
31381
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: selectedEvent.account_id })
31305
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "1.3fr 1fr" }, children: [
31306
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31307
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Account" }),
31308
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31309
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_ACCOUNT_TEST_ID, variant: "body2", children: selectedEvent.account_id }),
31310
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: selectedEvent.account_id })
31382
31311
  ] })
31383
31312
  ] }),
31384
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31385
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Region" }),
31386
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31387
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { "data-testid": EVENT_DETAILS_REGION_TEST_ID, variant: "body2", children: selectedEvent.region }),
31388
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: selectedEvent.region })
31313
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31314
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Region" }),
31315
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31316
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_REGION_TEST_ID, variant: "body2", children: selectedEvent.region }),
31317
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: selectedEvent.region })
31389
31318
  ] })
31390
31319
  ] })
31391
31320
  ] }),
31392
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: duration === void 0 ? "1fr" : "1.3fr 1fr" }, children: [
31393
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31394
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Start Time" }),
31395
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", "data-testid": EVENT_DETAILS_START_TIME_TEST_ID, direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31396
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ResponsiveTimestampCell, { date: unixNanoToDate(selectedEvent.start_time_unix_nano) }) }),
31397
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: unixNanoToDate(selectedEvent.start_time_unix_nano)?.toISOString() })
31321
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: duration === void 0 ? "1fr" : "1.3fr 1fr" }, children: [
31322
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31323
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Start Time" }),
31324
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", "data-testid": EVENT_DETAILS_START_TIME_TEST_ID, direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31325
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(ResponsiveTimestampCell, { date: unixNanoToDate(selectedEvent.start_time_unix_nano) }) }),
31326
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: unixNanoToDate(selectedEvent.start_time_unix_nano)?.toISOString() })
31398
31327
  ] })
31399
31328
  ] }),
31400
- duration !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31401
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Duration" }),
31402
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", "data-testid": EVENT_DETAILS_DURATION_TEST_ID, direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31403
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Typography, { variant: "body2", children: [
31329
+ duration !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31330
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Duration" }),
31331
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", "data-testid": EVENT_DETAILS_DURATION_TEST_ID, direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31332
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Typography, { variant: "body2", children: [
31404
31333
  duration,
31405
31334
  "ms"
31406
31335
  ] }),
31407
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: `${duration}ms` })
31336
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: `${duration}ms` })
31408
31337
  ] })
31409
31338
  ] })
31410
31339
  ] }),
31411
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31412
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Status" }),
31413
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Stack, { alignItems: "center", direction: "row", flexWrap: "wrap", gap: 1, sx: { mb: eventGroups.errors || eventGroups.warnings ? 1 : 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
31414
- import_material19.Chip,
31340
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31341
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Status" }),
31342
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Stack, { alignItems: "center", direction: "row", flexWrap: "wrap", gap: 1, sx: { mb: eventGroups.errors || eventGroups.warnings ? 1 : 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
31343
+ import_material18.Chip,
31415
31344
  {
31416
31345
  color: selectedEvent.status_code === 2 ? "error" : selectedEvent.status_code === 1 ? "success" : "default",
31417
31346
  "data-testid": EVENT_DETAILS_STATUS_TEST_ID,
@@ -31421,50 +31350,50 @@ var EventDetails = ({ onClose, selectedEvent }) => {
31421
31350
  ) })
31422
31351
  ] })
31423
31352
  ] }) }),
31424
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Divider, {}),
31425
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(ToggleSection, { headline: "Permissions", children: [
31426
- selectedEvent.iam_errors_suppressed && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Alert, { "data-testid": EVENT_DETAILS_IAM_ERRORS_SUPPRESSED_TEST_ID, severity: "warning", sx: { mb: 1 }, children: "IAM errors are suppressed \u2014 upgrade your license to view" }),
31427
- !selectedEvent.iam_errors_suppressed && !eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { color: "text.secondary", variant: "body2", children: "There is no permission information available." }),
31428
- eventGroups.permissions && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Permissions", events: eventGroups.permissions, spanStatusCode: selectedEvent.status_code, type: "permission" }),
31429
- eventGroups.errors && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Error", events: eventGroups.errors, type: "error" }),
31430
- eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Warning", events: eventGroups.warnings, type: "warning" })
31353
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Divider, {}),
31354
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(ToggleSection, { headline: "Permissions", children: [
31355
+ selectedEvent.iam_errors_suppressed && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Alert, { "data-testid": EVENT_DETAILS_IAM_ERRORS_SUPPRESSED_TEST_ID, severity: "warning", sx: { mb: 1 }, children: "IAM errors are suppressed \u2014 upgrade your license to view" }),
31356
+ !selectedEvent.iam_errors_suppressed && !eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { color: "text.secondary", variant: "body2", children: "There is no permission information available." }),
31357
+ eventGroups.permissions && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(EventDetail, { displayText: "Permissions", events: eventGroups.permissions, spanStatusCode: selectedEvent.status_code, type: "permission" }),
31358
+ eventGroups.errors && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(EventDetail, { displayText: "Error", events: eventGroups.errors, type: "error" }),
31359
+ eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(EventDetail, { displayText: "Warning", events: eventGroups.warnings, type: "warning" })
31431
31360
  ] }),
31432
- hasPayloads && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
31433
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Divider, {}),
31434
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
31361
+ hasPayloads && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_jsx_runtime140.Fragment, { children: [
31362
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Divider, {}),
31363
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
31435
31364
  ToggleSection,
31436
31365
  {
31437
- action: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
31438
- import_material19.FormControlLabel,
31366
+ action: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
31367
+ import_material18.FormControlLabel,
31439
31368
  {
31440
- control: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Switch, { checked: !parseNestedJson, onChange: (event) => {
31369
+ control: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Switch, { checked: !parseNestedJson, onChange: (event) => {
31441
31370
  setParseNestedJson(!event.target.checked);
31442
31371
  }, size: "small" }),
31443
- label: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { variant: "caption", children: "View raw data" }),
31372
+ label: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { variant: "caption", children: "View raw data" }),
31444
31373
  sx: { mr: 0 }
31445
31374
  }
31446
31375
  ),
31447
31376
  headline: "Payloads",
31448
- children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { spacing: 2, children: [
31449
- requestPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31450
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Request" }),
31451
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(PayloadViewer, { testId: EVENT_DETAILS_REQUEST_PAYLOAD, value: requestPayload })
31377
+ children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { spacing: 2, children: [
31378
+ requestPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31379
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Request" }),
31380
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(PayloadViewer, { testId: EVENT_DETAILS_REQUEST_PAYLOAD, value: requestPayload })
31452
31381
  ] }),
31453
- (responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31454
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Response" }),
31455
- isResponseSuppressed ? /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Box, { sx: { py: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Alert, { severity: "warning", sx: { mb: 1 }, children: "Response payload is available \u2014 upgrade your license to view" }) }) : /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(PayloadViewer, { testId: EVENT_DETAILS_RESPONSE_PAYLOAD_TEST_ID, value: responsePayload })
31382
+ (responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31383
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Response" }),
31384
+ isResponseSuppressed ? /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Box, { sx: { py: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Alert, { severity: "warning", sx: { mb: 1 }, children: "Response payload is available \u2014 upgrade your license to view" }) }) : /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(PayloadViewer, { testId: EVENT_DETAILS_RESPONSE_PAYLOAD_TEST_ID, value: responsePayload })
31456
31385
  ] }),
31457
- exceptionPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31458
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Exception" }),
31459
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(PayloadViewer, { testId: EVENT_DETAILS_EXCEPTION_PAYLOAD_TEST_ID, value: exceptionPayload })
31386
+ exceptionPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31387
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Exception" }),
31388
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(PayloadViewer, { testId: EVENT_DETAILS_EXCEPTION_PAYLOAD_TEST_ID, value: exceptionPayload })
31460
31389
  ] })
31461
31390
  ] })
31462
31391
  }
31463
31392
  )
31464
31393
  ] }),
31465
- isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
31466
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Divider, {}),
31467
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ToggleSection, { headline: "Lambda Logs", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
31394
+ isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_jsx_runtime140.Fragment, { children: [
31395
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Divider, {}),
31396
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(ToggleSection, { headline: "Lambda Logs", children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
31468
31397
  LambdaInvokeLogsSection,
31469
31398
  {
31470
31399
  endTimeNano: selectedEvent.end_time_unix_nano ?? selectedEvent.start_time_unix_nano,
@@ -31475,30 +31404,30 @@ var EventDetails = ({ onClose, selectedEvent }) => {
31475
31404
  }
31476
31405
  ) })
31477
31406
  ] }),
31478
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Divider, {}),
31479
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ToggleSection, { headline: "Advanced Information", initialOpen: false, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { spacing: 1, children: [
31480
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31481
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Span ID" }),
31482
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31483
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { "data-testid": EVENT_DETAILS_SPAN_ID_TEST_ID, variant: "body2", children: selectedEvent.span_id }),
31484
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: selectedEvent.span_id })
31407
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Divider, {}),
31408
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(ToggleSection, { headline: "Advanced Information", initialOpen: false, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { spacing: 1, children: [
31409
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31410
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Span ID" }),
31411
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31412
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_SPAN_ID_TEST_ID, variant: "body2", children: selectedEvent.span_id }),
31413
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: selectedEvent.span_id })
31485
31414
  ] })
31486
31415
  ] }),
31487
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31488
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Trace ID" }),
31489
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31490
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { "data-testid": EVENT_DETAILS_TRACE_ID_TEST_ID, variant: "body2", children: selectedEvent.trace_id }),
31491
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: selectedEvent.trace_id })
31416
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31417
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Trace ID" }),
31418
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31419
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_TRACE_ID_TEST_ID, variant: "body2", children: selectedEvent.trace_id }),
31420
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: selectedEvent.trace_id })
31492
31421
  ] })
31493
31422
  ] }),
31494
- requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Box, { children: [
31495
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Request ID" }),
31496
- /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31497
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Typography, { "data-testid": EVENT_DETAILS_REQUEST_ID_TEST_ID, variant: "body2", children: requestId }),
31498
- /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(CopyButton, { value: requestId })
31423
+ requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Box, { children: [
31424
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Request ID" }),
31425
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material18.Stack, { alignItems: "center", direction: "row", sx: { "&:hover .copy-btn": { opacity: 1 } }, children: [
31426
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_REQUEST_ID_TEST_ID, variant: "body2", children: requestId }),
31427
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(CopyButton, { value: requestId })
31499
31428
  ] })
31500
31429
  ] }),
31501
- eventGroups.info && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Info", events: eventGroups.info, type: "info" })
31430
+ eventGroups.info && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(EventDetail, { displayText: "Info", events: eventGroups.info, type: "info" })
31502
31431
  ] }) })
31503
31432
  ] }) })
31504
31433
  ] });
@@ -31506,39 +31435,39 @@ var EventDetails = ({ onClose, selectedEvent }) => {
31506
31435
 
31507
31436
  // src/components/trace-graph/trace-graph.tsx
31508
31437
  var import_base = require("@xyflow/react/dist/base.css");
31509
- var import_material22 = require("@mui/material");
31510
- var import_react60 = require("@xyflow/react");
31511
- var import_react61 = require("react");
31438
+ var import_material21 = require("@mui/material");
31439
+ var import_react59 = require("@xyflow/react");
31440
+ var import_react60 = require("react");
31512
31441
 
31513
31442
  // src/components/trace-graph/service-node.tsx
31514
31443
  var import_icons_material11 = require("@mui/icons-material");
31515
- var import_material20 = require("@mui/material");
31516
- var import_react56 = require("@xyflow/react");
31444
+ var import_material19 = require("@mui/material");
31445
+ var import_react55 = require("@xyflow/react");
31517
31446
  var import_style = require("@xyflow/react/dist/style.css");
31518
31447
  var React122 = require("react");
31519
- var import_react57 = require("react");
31520
- var import_jsx_runtime142 = require("react/jsx-runtime");
31448
+ var import_react56 = require("react");
31449
+ var import_jsx_runtime141 = require("react/jsx-runtime");
31521
31450
  var handleStyle = {
31522
31451
  backgroundColor: "white",
31523
31452
  borderColor: "lightgray",
31524
31453
  opacity: 0
31525
31454
  };
31526
31455
  var NodeContent = ({ event, expanded, hasPermissionEvents, isError, isWarning }) => {
31527
- const theme = (0, import_material20.useTheme)();
31528
- return /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(import_jsx_runtime142.Fragment, { children: [
31529
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_react56.Handle, { position: import_react56.Position.Left, style: handleStyle, type: "target" }),
31530
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_react56.Handle, { position: import_react56.Position.Right, style: handleStyle, type: "source" }),
31531
- /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
31532
- import_material20.Stack,
31456
+ const theme = (0, import_material19.useTheme)();
31457
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
31458
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_react55.Handle, { position: import_react55.Position.Left, style: handleStyle, type: "target" }),
31459
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_react55.Handle, { position: import_react55.Position.Right, style: handleStyle, type: "source" }),
31460
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(
31461
+ import_material19.Stack,
31533
31462
  {
31534
31463
  alignItems: "center",
31535
31464
  direction: "row",
31536
31465
  sx: { gap: "8px", pb: "2px", pt: "6px", px: "8px" },
31537
31466
  children: [
31538
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_material20.Box, { sx: { borderRadius: "4px", flexShrink: 0, lineHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(AwsServiceIcon, { hideTooltip: true, service: event.service_name, size: "medium" }) }),
31539
- /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(import_material20.Stack, { sx: expanded ? void 0 : { minWidth: 0 }, children: [
31540
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
31541
- import_material20.Typography,
31467
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Box, { sx: { borderRadius: "4px", flexShrink: 0, lineHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(AwsServiceIcon, { hideTooltip: true, service: event.service_name, size: "medium" }) }),
31468
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material19.Stack, { sx: expanded ? void 0 : { minWidth: 0 }, children: [
31469
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
31470
+ import_material19.Typography,
31542
31471
  {
31543
31472
  noWrap: !expanded,
31544
31473
  sx: { fontWeight: 700, lineHeight: 1.25, ...expanded && { whiteSpace: "nowrap" } },
@@ -31546,8 +31475,8 @@ var NodeContent = ({ event, expanded, hasPermissionEvents, isError, isWarning })
31546
31475
  children: getServiceDisplayName(event.service_name)
31547
31476
  }
31548
31477
  ),
31549
- event.resource_name != "" && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
31550
- import_material20.Typography,
31478
+ event.resource_name != "" && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
31479
+ import_material19.Typography,
31551
31480
  {
31552
31481
  color: "text.secondary",
31553
31482
  noWrap: !expanded,
@@ -31560,16 +31489,16 @@ var NodeContent = ({ event, expanded, hasPermissionEvents, isError, isWarning })
31560
31489
  ]
31561
31490
  }
31562
31491
  ),
31563
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_material20.Divider, { sx: { ml: "38px", mr: "8px", my: "5px" } }),
31564
- /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
31565
- import_material20.Stack,
31492
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Divider, { sx: { ml: "38px", mr: "8px", my: "5px" } }),
31493
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(
31494
+ import_material19.Stack,
31566
31495
  {
31567
31496
  alignItems: "center",
31568
31497
  direction: "row",
31569
31498
  sx: expanded ? { pb: "5px", pr: "8px", pt: "1px" } : { minWidth: 0, pb: "5px", pr: "8px", pt: "1px" },
31570
31499
  children: [
31571
- /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
31572
- import_material20.Box,
31500
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(
31501
+ import_material19.Box,
31573
31502
  {
31574
31503
  sx: {
31575
31504
  alignItems: "center",
@@ -31579,13 +31508,13 @@ var NodeContent = ({ event, expanded, hasPermissionEvents, isError, isWarning })
31579
31508
  width: "38px"
31580
31509
  },
31581
31510
  children: [
31582
- (isError || isWarning) && hasPermissionEvents && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_material20.Tooltip, { arrow: true, title: "Permission denied", children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material11.GppBad, { sx: { color: isError ? theme.palette.error.main : theme.palette.warning.main, fontSize: "16px" } }) }),
31583
- isError && !hasPermissionEvents && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_material20.Tooltip, { arrow: true, title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material11.Cancel, { sx: { color: theme.palette.error.main, fontSize: "16px" } }) })
31511
+ (isError || isWarning) && hasPermissionEvents && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Tooltip, { arrow: true, title: "Permission denied", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_icons_material11.GppBad, { sx: { color: isError ? theme.palette.error.main : theme.palette.warning.main, fontSize: "16px" } }) }),
31512
+ isError && !hasPermissionEvents && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material19.Tooltip, { arrow: true, title: "Error", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_icons_material11.Cancel, { sx: { color: theme.palette.error.main, fontSize: "16px" } }) })
31584
31513
  ]
31585
31514
  }
31586
31515
  ),
31587
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
31588
- import_material20.Typography,
31516
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
31517
+ import_material19.Typography,
31589
31518
  {
31590
31519
  "data-testid": SERVICE_NODE_OPERATION_NAME_TEST_ID,
31591
31520
  noWrap: !expanded,
@@ -31599,12 +31528,12 @@ var NodeContent = ({ event, expanded, hasPermissionEvents, isError, isWarning })
31599
31528
  )
31600
31529
  ] });
31601
31530
  };
31602
- var ServiceNode = (0, import_react57.memo)(({ data, selected }) => {
31603
- const theme = (0, import_material20.useTheme)();
31604
- const [isHovered, setIsHovered] = (0, import_react57.useState)(false);
31605
- const nodeRef = (0, import_react57.useRef)(null);
31531
+ var ServiceNode = (0, import_react56.memo)(({ data, selected }) => {
31532
+ const theme = (0, import_material19.useTheme)();
31533
+ const [isHovered, setIsHovered] = (0, import_react56.useState)(false);
31534
+ const nodeRef = (0, import_react56.useRef)(null);
31606
31535
  const isError = data.event.status_code === 2;
31607
- const hasPermissionEvents = (0, import_react57.useMemo)(
31536
+ const hasPermissionEvents = (0, import_react56.useMemo)(
31608
31537
  () => data.event.events.some(
31609
31538
  (event) => event.event_type === "iam.policy_evaluation" && event.name === "iam.policy.denied"
31610
31539
  ),
@@ -31633,8 +31562,8 @@ var ServiceNode = (0, import_react57.memo)(({ data, selected }) => {
31633
31562
  const xyNode = nodeRef.current?.closest(".react-flow__node");
31634
31563
  if (xyNode) xyNode.style.zIndex = "";
31635
31564
  };
31636
- return /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
31637
- import_material20.Box,
31565
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(
31566
+ import_material19.Box,
31638
31567
  {
31639
31568
  "data-testid": SERVICE_NODE_TEST_ID,
31640
31569
  onMouseEnter: handleMouseEnter,
@@ -31644,8 +31573,8 @@ var ServiceNode = (0, import_react57.memo)(({ data, selected }) => {
31644
31573
  sx: { display: "inline-block", position: "relative" },
31645
31574
  tabIndex: 0,
31646
31575
  children: [
31647
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
31648
- import_material20.Box,
31576
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
31577
+ import_material19.Box,
31649
31578
  {
31650
31579
  sx: {
31651
31580
  ...sharedBoxSx,
@@ -31653,11 +31582,11 @@ var ServiceNode = (0, import_react57.memo)(({ data, selected }) => {
31653
31582
  maxWidth: 220,
31654
31583
  overflow: "hidden"
31655
31584
  },
31656
- children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(NodeContent, { ...contentProps, expanded: false })
31585
+ children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(NodeContent, { ...contentProps, expanded: false })
31657
31586
  }
31658
31587
  ),
31659
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
31660
- import_material20.Box,
31588
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
31589
+ import_material19.Box,
31661
31590
  {
31662
31591
  onMouseLeave: handleMouseLeave,
31663
31592
  sx: {
@@ -31671,7 +31600,7 @@ var ServiceNode = (0, import_react57.memo)(({ data, selected }) => {
31671
31600
  width: "max-content",
31672
31601
  zIndex: 10
31673
31602
  },
31674
- children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(NodeContent, { ...contentProps, expanded: true })
31603
+ children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(NodeContent, { ...contentProps, expanded: true })
31675
31604
  }
31676
31605
  )
31677
31606
  ]
@@ -31766,19 +31695,19 @@ var getLayoutedNodesAndEdges = (inputNodes, inputEdges) => {
31766
31695
 
31767
31696
  // src/components/trace-graph/xyflow/controls.tsx
31768
31697
  var import_icons_material12 = require("@mui/icons-material");
31769
- var import_material21 = require("@mui/material");
31770
- var import_react58 = require("@xyflow/react");
31771
- var import_react59 = require("react");
31698
+ var import_material20 = require("@mui/material");
31699
+ var import_react57 = require("@xyflow/react");
31700
+ var import_react58 = require("react");
31772
31701
  var import_shallow = require("zustand/shallow");
31773
- var import_jsx_runtime143 = require("react/jsx-runtime");
31702
+ var import_jsx_runtime142 = require("react/jsx-runtime");
31774
31703
  var selector = (s) => ({
31775
31704
  isInteractive: s.nodesDraggable || s.nodesConnectable || s.elementsSelectable,
31776
31705
  maxZoomReached: s.transform[2] >= s.maxZoom,
31777
31706
  minZoomReached: s.transform[2] <= s.minZoom
31778
31707
  });
31779
- var Controls = (0, import_react59.memo)(() => {
31780
- const { maxZoomReached, minZoomReached } = (0, import_react58.useStore)(selector, import_shallow.shallow);
31781
- const { fitView, zoomIn, zoomOut } = (0, import_react58.useReactFlow)();
31708
+ var Controls = (0, import_react58.memo)(() => {
31709
+ const { maxZoomReached, minZoomReached } = (0, import_react57.useStore)(selector, import_shallow.shallow);
31710
+ const { fitView, zoomIn, zoomOut } = (0, import_react57.useReactFlow)();
31782
31711
  const onZoomInHandler = () => {
31783
31712
  void zoomIn();
31784
31713
  };
@@ -31788,8 +31717,8 @@ var Controls = (0, import_react59.memo)(() => {
31788
31717
  const onFitViewHandler = () => {
31789
31718
  void fitView();
31790
31719
  };
31791
- return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
31792
- import_material21.Box,
31720
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
31721
+ import_material20.Box,
31793
31722
  {
31794
31723
  sx: {
31795
31724
  bottom: 0,
@@ -31802,33 +31731,33 @@ var Controls = (0, import_react59.memo)(() => {
31802
31731
  zIndex: 5
31803
31732
  },
31804
31733
  children: [
31805
- /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31806
- import_material21.IconButton,
31734
+ /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
31735
+ import_material20.IconButton,
31807
31736
  {
31808
31737
  className: "react-flow__controls-zoomin",
31809
31738
  disabled: maxZoomReached,
31810
31739
  onClick: onZoomInHandler,
31811
31740
  size: "small",
31812
- children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_icons_material12.Add, {})
31741
+ children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material12.Add, {})
31813
31742
  }
31814
31743
  ),
31815
- /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31816
- import_material21.IconButton,
31744
+ /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
31745
+ import_material20.IconButton,
31817
31746
  {
31818
31747
  className: "react-flow__controls-zoomout",
31819
31748
  disabled: minZoomReached,
31820
31749
  onClick: onZoomOutHandler,
31821
31750
  size: "small",
31822
- children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_icons_material12.Remove, {})
31751
+ children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material12.Remove, {})
31823
31752
  }
31824
31753
  ),
31825
- /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31826
- import_material21.IconButton,
31754
+ /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
31755
+ import_material20.IconButton,
31827
31756
  {
31828
31757
  className: "react-flow__controls-fitview",
31829
31758
  onClick: onFitViewHandler,
31830
31759
  size: "small",
31831
- children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_icons_material12.FitScreen, {})
31760
+ children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material12.FitScreen, {})
31832
31761
  }
31833
31762
  )
31834
31763
  ]
@@ -31837,7 +31766,7 @@ var Controls = (0, import_react59.memo)(() => {
31837
31766
  });
31838
31767
 
31839
31768
  // src/components/trace-graph/trace-graph.tsx
31840
- var import_jsx_runtime144 = require("react/jsx-runtime");
31769
+ var import_jsx_runtime143 = require("react/jsx-runtime");
31841
31770
  var nodeTypes = {
31842
31771
  service: ServiceNode
31843
31772
  };
@@ -31847,9 +31776,9 @@ var TraceGraph = ({
31847
31776
  onRefresh,
31848
31777
  spans
31849
31778
  }) => {
31850
- const [nodes2, setNodes, onNodesChange] = (0, import_react60.useNodesState)([]);
31851
- const [edges, setEdges] = (0, import_react60.useEdgesState)([]);
31852
- (0, import_react61.useEffect)(() => {
31779
+ const [nodes2, setNodes, onNodesChange] = (0, import_react59.useNodesState)([]);
31780
+ const [edges, setEdges] = (0, import_react59.useEdgesState)([]);
31781
+ (0, import_react60.useEffect)(() => {
31853
31782
  const allNodes = [];
31854
31783
  const allEdges = [];
31855
31784
  for (const span of spans.data ?? []) {
@@ -31864,15 +31793,15 @@ var TraceGraph = ({
31864
31793
  },
31865
31794
  id: span.span_id,
31866
31795
  position: { x: 0, y: 0 },
31867
- sourcePosition: import_react60.Position.Right,
31868
- targetPosition: import_react60.Position.Left,
31796
+ sourcePosition: import_react59.Position.Right,
31797
+ targetPosition: import_react59.Position.Left,
31869
31798
  type: "service"
31870
31799
  });
31871
31800
  if (span.parent_span_id !== null) {
31872
31801
  allEdges.push({
31873
31802
  animated: false,
31874
31803
  id: `e-${span.parent_span_id}-${span.span_id}`,
31875
- markerEnd: { color: "lightgray", height: 16, type: import_react60.MarkerType.Arrow, width: 16 },
31804
+ markerEnd: { color: "lightgray", height: 16, type: import_react59.MarkerType.Arrow, width: 16 },
31876
31805
  source: span.parent_span_id,
31877
31806
  style: { stroke: "lightgray", strokeWidth: 1 },
31878
31807
  target: span.span_id
@@ -31881,7 +31810,7 @@ var TraceGraph = ({
31881
31810
  for (const outgoingLinkSpanId of span.outgoing_link_span_ids ?? []) {
31882
31811
  allEdges.push({
31883
31812
  id: `e-link-${outgoingLinkSpanId}-${span.span_id}`,
31884
- markerEnd: { color: "lightgray", height: 16, type: import_react60.MarkerType.Arrow, width: 16 },
31813
+ markerEnd: { color: "lightgray", height: 16, type: import_react59.MarkerType.Arrow, width: 16 },
31885
31814
  source: outgoingLinkSpanId,
31886
31815
  style: { stroke: "lightgray", strokeWidth: 1 },
31887
31816
  // animated: true,
@@ -31903,12 +31832,12 @@ var TraceGraph = ({
31903
31832
  setNodes(layoutedNodes);
31904
31833
  setEdges(layoutedEdges);
31905
31834
  }, [spans.data, initialFocusEventId, setNodes, setEdges]);
31906
- const theme = (0, import_material22.useTheme)();
31907
- return /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(import_jsx_runtime144.Fragment, { children: [
31908
- spans.error && /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
31909
- import_material22.Alert,
31835
+ const theme = (0, import_material21.useTheme)();
31836
+ return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_jsx_runtime143.Fragment, { children: [
31837
+ spans.error && /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
31838
+ import_material21.Alert,
31910
31839
  {
31911
- action: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_material22.Button, { onClick: () => {
31840
+ action: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_material21.Button, { onClick: () => {
31912
31841
  onRefresh();
31913
31842
  }, children: "Retry" }),
31914
31843
  severity: "error",
@@ -31919,8 +31848,8 @@ var TraceGraph = ({
31919
31848
  ]
31920
31849
  }
31921
31850
  ),
31922
- /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
31923
- import_react60.ReactFlow,
31851
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
31852
+ import_react59.ReactFlow,
31924
31853
  {
31925
31854
  "data-testid": TRACE_GRAPH_TEST_ID,
31926
31855
  edges,
@@ -31937,9 +31866,9 @@ var TraceGraph = ({
31937
31866
  onNodesChange,
31938
31867
  selectNodesOnDrag: false,
31939
31868
  children: [
31940
- /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(Controls, {}),
31941
- /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
31942
- import_react60.Background,
31869
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(Controls, {}),
31870
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31871
+ import_react59.Background,
31943
31872
  {
31944
31873
  bgColor: theme.palette.background.default,
31945
31874
  color: theme.palette.text.disabled
@@ -31952,7 +31881,7 @@ var TraceGraph = ({
31952
31881
  };
31953
31882
 
31954
31883
  // src/pages/trace-graph-page.tsx
31955
- var import_jsx_runtime145 = require("react/jsx-runtime");
31884
+ var import_jsx_runtime144 = require("react/jsx-runtime");
31956
31885
  var DRAWER_WIDTH = "35%";
31957
31886
  var Main = (0, import_styles.styled)("main", { shouldForwardProp: (property) => property !== "open" })(({ open, theme }) => ({
31958
31887
  flexGrow: 1,
@@ -31969,7 +31898,7 @@ var Main = (0, import_styles.styled)("main", { shouldForwardProp: (property) =>
31969
31898
  })
31970
31899
  }
31971
31900
  }));
31972
- var StyledDrawer = (0, import_styles.styled)(import_material23.Drawer)(({ headerHeight }) => ({
31901
+ var StyledDrawer = (0, import_styles.styled)(import_material22.Drawer)(({ headerHeight }) => ({
31973
31902
  "& .MuiDrawer-paper": {
31974
31903
  bottom: 0,
31975
31904
  boxSizing: "border-box",
@@ -31995,8 +31924,8 @@ var TraceGraphView = ({
31995
31924
  spanId,
31996
31925
  spans,
31997
31926
  traceId
31998
- }) => /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
31999
- import_material23.Box,
31927
+ }) => /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
31928
+ import_material22.Box,
32000
31929
  {
32001
31930
  "data-testid": TRACE_GRAPH_PAGE_TEST_ID,
32002
31931
  sx: {
@@ -32008,14 +31937,14 @@ var TraceGraphView = ({
32008
31937
  overflow: "hidden"
32009
31938
  },
32010
31939
  children: [
32011
- /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(import_material23.Box, { sx: { display: "flex", width: "100%" }, children: [
32012
- /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_material23.Button, { onClick: () => {
31940
+ /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(import_material22.Box, { sx: { display: "flex", width: "100%" }, children: [
31941
+ /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_material22.Button, { onClick: () => {
32013
31942
  navigateToSpansList();
32014
- }, startIcon: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_icons_material13.ArrowBack, {}), children: "Go back" }),
32015
- /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_material23.Box, { sx: { flexGrow: 1 } })
31943
+ }, startIcon: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_icons_material13.ArrowBack, {}), children: "Go back" }),
31944
+ /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_material22.Box, { sx: { flexGrow: 1 } })
32016
31945
  ] }),
32017
- /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
32018
- import_material23.Paper,
31946
+ /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
31947
+ import_material22.Paper,
32019
31948
  {
32020
31949
  sx: {
32021
31950
  display: "flex",
@@ -32025,14 +31954,14 @@ var TraceGraphView = ({
32025
31954
  width: "100%"
32026
31955
  },
32027
31956
  children: [
32028
- /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Main, { open, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
32029
- import_material23.Box,
31957
+ /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(Main, { open, children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
31958
+ import_material22.Box,
32030
31959
  {
32031
31960
  sx: {
32032
31961
  height: "100%",
32033
31962
  overflow: "auto"
32034
31963
  },
32035
- children: traceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_react62.ReactFlowProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
31964
+ children: traceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_react61.ReactFlowProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
32036
31965
  TraceGraph,
32037
31966
  {
32038
31967
  initialFocusEventId: spanId,
@@ -32049,7 +31978,7 @@ var TraceGraphView = ({
32049
31978
  ) })
32050
31979
  }
32051
31980
  ) }),
32052
- /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(StyledDrawer, { anchor: "right", headerHeight, open, variant: "persistent", children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(EventDetails, { onClose: handleClose, selectedEvent }) })
31981
+ /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(StyledDrawer, { anchor: "right", headerHeight, open, variant: "persistent", children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(EventDetails, { onClose: handleClose, selectedEvent }) })
32053
31982
  ]
32054
31983
  }
32055
31984
  )
@@ -32093,10 +32022,10 @@ async function fetchConnectedTraces(api, traceIds, allSpans = /* @__PURE__ */ ne
32093
32022
  var TraceGraphPage = ({ onClose, spanId, traceId }) => {
32094
32023
  const api = useAppInspectorApi();
32095
32024
  const { headerHeight } = useAppInspector();
32096
- const [spans, setSpans] = (0, import_react63.useState)();
32097
- const [loading, setLoading] = (0, import_react63.useState)(false);
32098
- const [fetchError, setFetchError] = (0, import_react63.useState)();
32099
- const fetchSpans = (0, import_react63.useCallback)(async () => {
32025
+ const [spans, setSpans] = (0, import_react62.useState)();
32026
+ const [loading, setLoading] = (0, import_react62.useState)(false);
32027
+ const [fetchError, setFetchError] = (0, import_react62.useState)();
32028
+ const fetchSpans = (0, import_react62.useCallback)(async () => {
32100
32029
  setLoading(true);
32101
32030
  try {
32102
32031
  const spans2 = await fetchConnectedTraces(api, [traceId]);
@@ -32109,27 +32038,27 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
32109
32038
  setLoading(false);
32110
32039
  }
32111
32040
  }, [api, traceId]);
32112
- (0, import_react63.useEffect)(() => {
32041
+ (0, import_react62.useEffect)(() => {
32113
32042
  void fetchSpans();
32114
32043
  }, [fetchSpans]);
32115
- const [open, setOpen] = (0, import_react63.useState)(true);
32116
- const [selectedEvent, setSelectedEvent] = (0, import_react63.useState)(() => spans?.find((span) => span.span_id === spanId));
32117
- const spansReference = (0, import_react63.useRef)();
32118
- (0, import_react63.useEffect)(() => {
32044
+ const [open, setOpen] = (0, import_react62.useState)(true);
32045
+ const [selectedEvent, setSelectedEvent] = (0, import_react62.useState)(() => spans?.find((span) => span.span_id === spanId));
32046
+ const spansReference = (0, import_react62.useRef)();
32047
+ (0, import_react62.useEffect)(() => {
32119
32048
  if (!spansReference.current && spans) {
32120
32049
  setSelectedEvent(spans.find((span) => span.span_id === spanId));
32121
32050
  spansReference.current = spans;
32122
32051
  }
32123
32052
  }, [spans, setSelectedEvent, spanId]);
32124
- const handleEventSelect = (0, import_react63.useCallback)((spanId2) => {
32053
+ const handleEventSelect = (0, import_react62.useCallback)((spanId2) => {
32125
32054
  const span = spans?.find((s) => s.span_id === spanId2);
32126
32055
  setSelectedEvent(span);
32127
32056
  setOpen(true);
32128
32057
  }, [spans]);
32129
- const navigateToSpansList = (0, import_react63.useCallback)(() => {
32058
+ const navigateToSpansList = (0, import_react62.useCallback)(() => {
32130
32059
  onClose?.();
32131
32060
  }, [onClose]);
32132
- return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
32061
+ return /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
32133
32062
  TraceGraphView,
32134
32063
  {
32135
32064
  fetchError,
@@ -32151,7 +32080,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
32151
32080
  };
32152
32081
 
32153
32082
  // src/pages/spans-list-page.tsx
32154
- var import_jsx_runtime146 = require("react/jsx-runtime");
32083
+ var import_jsx_runtime145 = require("react/jsx-runtime");
32155
32084
  var SpansListPage = () => {
32156
32085
  const api = useAppInspectorApi();
32157
32086
  const {
@@ -32172,32 +32101,32 @@ var SpansListPage = () => {
32172
32101
  warningCount
32173
32102
  } = useSpans();
32174
32103
  const { checkStatus, phase, status, statusError } = useAppInspectorStatus();
32175
- const clearSpansSync = (0, import_react64.useCallback)(() => {
32104
+ const clearSpansSync = (0, import_react63.useCallback)(() => {
32176
32105
  void clearSpans();
32177
32106
  }, [clearSpans]);
32178
32107
  const localstackVersion = status?.localstackVersion ?? (statusError instanceof AppInspectorNotFoundError ? statusError.localstackVersion : void 0);
32179
32108
  const versionCompatibility = checkEmulatorVersion(localstackVersion);
32180
- const [bannerDismissed, setBannerDismissed] = (0, import_react64.useState)(false);
32109
+ const [bannerDismissed, setBannerDismissed] = (0, import_react63.useState)(false);
32181
32110
  const [order2, setOrder] = useLocalStorage("spans-order", "oldest_first");
32182
- const [selectedTraceId, setSelectedTraceId] = (0, import_react64.useState)();
32183
- const [selectedSpanId, setSelectedSpanId] = (0, import_react64.useState)();
32184
- const navigateToSpan = (0, import_react64.useCallback)((span) => {
32111
+ const [selectedTraceId, setSelectedTraceId] = (0, import_react63.useState)();
32112
+ const [selectedSpanId, setSelectedSpanId] = (0, import_react63.useState)();
32113
+ const navigateToSpan = (0, import_react63.useCallback)((span) => {
32185
32114
  setSelectedTraceId(span.trace_id);
32186
32115
  setSelectedSpanId(span.span_id);
32187
32116
  }, []);
32188
- const handleRetry = (0, import_react64.useCallback)(() => {
32117
+ const handleRetry = (0, import_react63.useCallback)(() => {
32189
32118
  checkStatus();
32190
32119
  fetchForward();
32191
32120
  }, [checkStatus, fetchForward]);
32192
- const handleEnable = (0, import_react64.useCallback)(async () => {
32121
+ const handleEnable = (0, import_react63.useCallback)(async () => {
32193
32122
  await api.setStatus({ status: "ENABLED" });
32194
32123
  clearFetchError();
32195
32124
  checkStatus();
32196
32125
  }, [api, checkStatus, clearFetchError]);
32197
- const isDelayedRefetchRef = (0, import_react64.useRef)(false);
32198
- const delayedRefetchTimerRef = (0, import_react64.useRef)();
32199
- const prevFetchingForwardRef = (0, import_react64.useRef)(false);
32200
- (0, import_react64.useEffect)(() => {
32126
+ const isDelayedRefetchRef = (0, import_react63.useRef)(false);
32127
+ const delayedRefetchTimerRef = (0, import_react63.useRef)();
32128
+ const prevFetchingForwardRef = (0, import_react63.useRef)(false);
32129
+ (0, import_react63.useEffect)(() => {
32201
32130
  const wasFetching = prevFetchingForwardRef.current;
32202
32131
  prevFetchingForwardRef.current = fetchingForward;
32203
32132
  if (wasFetching && !fetchingForward) {
@@ -32218,10 +32147,10 @@ var SpansListPage = () => {
32218
32147
  switch (phase) {
32219
32148
  case "CHECKING_STATUS":
32220
32149
  case "CONNECTING_WS": {
32221
- return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(StatusMessage, { phase });
32150
+ return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(StatusMessage, { phase });
32222
32151
  }
32223
32152
  case "DISABLED": {
32224
- return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
32153
+ return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
32225
32154
  StatusMessage,
32226
32155
  {
32227
32156
  onEnable: handleEnable,
@@ -32230,7 +32159,7 @@ var SpansListPage = () => {
32230
32159
  );
32231
32160
  }
32232
32161
  case "INCOMPATIBLE": {
32233
- return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
32162
+ return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
32234
32163
  StatusMessage,
32235
32164
  {
32236
32165
  localstackVersion,
@@ -32243,7 +32172,7 @@ var SpansListPage = () => {
32243
32172
  break;
32244
32173
  }
32245
32174
  case "UNREACHABLE": {
32246
- return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
32175
+ return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
32247
32176
  StatusMessage,
32248
32177
  {
32249
32178
  onRetry: handleRetry,
@@ -32252,9 +32181,9 @@ var SpansListPage = () => {
32252
32181
  );
32253
32182
  }
32254
32183
  }
32255
- return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_jsx_runtime146.Fragment, { children: [
32256
- /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(
32257
- import_material24.Box,
32184
+ return /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(import_jsx_runtime145.Fragment, { children: [
32185
+ /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
32186
+ import_material23.Box,
32258
32187
  {
32259
32188
  "data-testid": SPANS_LIST_PAGE_TEST_ID,
32260
32189
  sx: {
@@ -32269,7 +32198,7 @@ var SpansListPage = () => {
32269
32198
  width: "100%"
32270
32199
  },
32271
32200
  children: [
32272
- /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
32201
+ /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
32273
32202
  EmulatorVersionBanner,
32274
32203
  {
32275
32204
  compatibility: bannerDismissed && versionCompatibility === "warning" ? "ok" : versionCompatibility,
@@ -32279,7 +32208,7 @@ var SpansListPage = () => {
32279
32208
  } : void 0
32280
32209
  }
32281
32210
  ),
32282
- /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
32211
+ /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
32283
32212
  SpansList,
32284
32213
  {
32285
32214
  clearingSpans,
@@ -32304,7 +32233,7 @@ var SpansListPage = () => {
32304
32233
  ]
32305
32234
  }
32306
32235
  ),
32307
- selectedTraceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(TraceGraphPage, { onClose: () => {
32236
+ selectedTraceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(TraceGraphPage, { onClose: () => {
32308
32237
  setSelectedTraceId(void 0);
32309
32238
  }, spanId: selectedSpanId, traceId: selectedTraceId })
32310
32239
  ] });