@localstack/appinspector-ui 1.0.114 → 1.0.115

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
@@ -2417,7 +2417,7 @@ __export(index_exports, {
2417
2417
  module.exports = __toCommonJS(index_exports);
2418
2418
 
2419
2419
  // src/pages/spans-list-page.tsx
2420
- var import_material23 = require("@mui/material");
2420
+ var import_material24 = require("@mui/material");
2421
2421
  var import_react69 = require("react");
2422
2422
 
2423
2423
  // src/api/errors.ts
@@ -2576,11 +2576,11 @@ var EmulatorVersionBanner = ({
2576
2576
  };
2577
2577
 
2578
2578
  // src/components/spans-list/spans-list.tsx
2579
- var import_material7 = require("@mui/material");
2579
+ var import_material8 = require("@mui/material");
2580
2580
 
2581
2581
  // src/components/spans-list/spans-data-grid.tsx
2582
- var import_icons_material2 = require("@mui/icons-material");
2583
- var import_material6 = require("@mui/material");
2582
+ var import_icons_material3 = require("@mui/icons-material");
2583
+ var import_material7 = require("@mui/material");
2584
2584
 
2585
2585
  // node_modules/@tanstack/react-table/build/lib/index.mjs
2586
2586
  var React = __toESM(require("react"), 1);
@@ -14868,11 +14868,182 @@ var ServiceCell = (0, import_react40.memo)(({
14868
14868
  });
14869
14869
  ServiceCell.displayName = "ServiceCell";
14870
14870
 
14871
- // src/components/spans-list/span-count-badge.tsx
14871
+ // src/components/cells/status-cell.tsx
14872
14872
  var import_icons_material = require("@mui/icons-material");
14873
14873
  var import_material5 = require("@mui/material");
14874
- var import_react41 = require("react");
14874
+
14875
+ // src/types/error-levels.ts
14876
+ var ErrorLevel = {
14877
+ ERROR: 3,
14878
+ // General error
14879
+ IAM_PERMISSION: 5,
14880
+ // IAM permission issues
14881
+ OK: 2,
14882
+ // OK
14883
+ // Standard OTEL status codes
14884
+ UNSET: 1,
14885
+ // Unset
14886
+ // Extended custom levels
14887
+ WARNING: 4
14888
+ // Warning
14889
+ };
14890
+
14891
+ // src/utils/iam-utils.ts
14892
+ function determinePermissionStatus(payload) {
14893
+ if (payload.explicit_deny_count && payload.explicit_deny_count > 0) {
14894
+ return "explicitly_denied";
14895
+ }
14896
+ if (payload.is_allowed && payload.explicit_allow_count && payload.explicit_allow_count > 0) {
14897
+ return "explicitly_allowed";
14898
+ }
14899
+ if (payload.is_allowed) {
14900
+ return "implicitly_allowed";
14901
+ }
14902
+ return "implicitly_denied";
14903
+ }
14904
+ function formatPermissionStatus(status) {
14905
+ switch (status) {
14906
+ case "explicitly_allowed": {
14907
+ return "Explicitly Allowed";
14908
+ }
14909
+ case "explicitly_denied": {
14910
+ return "Explicitly Denied";
14911
+ }
14912
+ case "implicitly_allowed": {
14913
+ return "Implicitly Allowed";
14914
+ }
14915
+ case "implicitly_denied": {
14916
+ return "Implicitly Denied";
14917
+ }
14918
+ }
14919
+ }
14920
+ function getPermissionStatusColor(status) {
14921
+ switch (status) {
14922
+ case "explicitly_allowed":
14923
+ case "implicitly_allowed": {
14924
+ return "success.main";
14925
+ }
14926
+ case "explicitly_denied": {
14927
+ return "error.main";
14928
+ }
14929
+ case "implicitly_denied": {
14930
+ return "warning.main";
14931
+ }
14932
+ }
14933
+ }
14934
+ function parseIAMEvent(payloadString) {
14935
+ try {
14936
+ const payload = JSON.parse(payloadString);
14937
+ const permission = determinePermissionStatus(payload);
14938
+ const actions = [];
14939
+ const resources = [];
14940
+ if (payload.explicit_allows) {
14941
+ for (const allow of payload.explicit_allows) {
14942
+ if (!actions.includes(allow.action)) actions.push(allow.action);
14943
+ if (!resources.includes(allow.resource)) resources.push(allow.resource);
14944
+ }
14945
+ }
14946
+ if (payload.explicit_denies) {
14947
+ for (const deny of payload.explicit_denies) {
14948
+ if (!actions.includes(deny.action)) actions.push(deny.action);
14949
+ if (!resources.includes(deny.resource)) resources.push(deny.resource);
14950
+ }
14951
+ }
14952
+ if (payload.implicit_denies) {
14953
+ for (const deny of payload.implicit_denies) {
14954
+ if (!actions.includes(deny.action)) actions.push(deny.action);
14955
+ if (!resources.includes(deny.resource)) resources.push(deny.resource);
14956
+ }
14957
+ }
14958
+ return {
14959
+ details: {
14960
+ actions,
14961
+ explicitAllows: payload.explicit_allow_count,
14962
+ explicitDenies: payload.explicit_deny_count,
14963
+ implicitDenies: payload.implicit_deny_count,
14964
+ resources
14965
+ },
14966
+ operation: payload.operation,
14967
+ permission,
14968
+ principal: payload.principal_arn,
14969
+ service: payload.service
14970
+ };
14971
+ } catch (error) {
14972
+ console.error("Error parsing IAM event payload:", error);
14973
+ return void 0;
14974
+ }
14975
+ }
14976
+
14977
+ // src/components/cells/status-cell.tsx
14875
14978
  var import_jsx_runtime126 = require("react/jsx-runtime");
14979
+ var StatusIcon = ({ errorLevel, spanStatusCode }) => {
14980
+ switch (errorLevel) {
14981
+ case ErrorLevel.ERROR: {
14982
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.Cancel, { sx: { color: "red" } });
14983
+ }
14984
+ case ErrorLevel.IAM_PERMISSION: {
14985
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.GppBad, { sx: { color: spanStatusCode === 2 ? "red" : "warning.main" } });
14986
+ }
14987
+ case ErrorLevel.WARNING: {
14988
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.Error, { sx: { color: "orange" } });
14989
+ }
14990
+ default: {
14991
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_jsx_runtime126.Fragment, {});
14992
+ }
14993
+ }
14994
+ };
14995
+ var calculateHighestErrorLevel = (span) => {
14996
+ const hasIamDenial = span.events.some((event) => {
14997
+ if (!event.event_type?.toLowerCase().includes("iam")) return false;
14998
+ if (typeof event.attributes?.payload !== "string") return false;
14999
+ const parsed = parseIAMEvent(event.attributes.payload);
15000
+ return parsed?.permission === "explicitly_denied" || parsed?.permission === "implicitly_denied";
15001
+ });
15002
+ if (hasIamDenial) return ErrorLevel.IAM_PERMISSION;
15003
+ if (span.status_code === 2) return ErrorLevel.ERROR;
15004
+ const hasErrorInErrors = span.errors?.some((error) => error.level === "error");
15005
+ if (hasErrorInErrors) return ErrorLevel.ERROR;
15006
+ const hasWarning = span.errors?.some((error) => error.level === "warning");
15007
+ if (hasWarning) return ErrorLevel.WARNING;
15008
+ return span.status_code || ErrorLevel.UNSET;
15009
+ };
15010
+ var SPAN_STATUS_LABELS = {
15011
+ 0: "Unset",
15012
+ 1: "OK",
15013
+ 2: "Error"
15014
+ };
15015
+ var buildTooltipContent = (span) => {
15016
+ const messages = [];
15017
+ if (span.status_message) messages.push(span.status_message);
15018
+ for (const error of span.errors ?? []) {
15019
+ if (error.message) messages.push(error.message);
15020
+ }
15021
+ const spanStatusLabel = SPAN_STATUS_LABELS[span.status_code] ?? `Unknown (${span.status_code.toString()})`;
15022
+ 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);
15023
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { children: [
15024
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Typography, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: [
15025
+ "Status: ",
15026
+ spanStatusLabel
15027
+ ] }),
15028
+ messages.map((message, index) => /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "inherit", display: "block", variant: "caption", children: message }, index)),
15029
+ iamDenials.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
15030
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Divider, { sx: { borderColor: "rgba(255,255,255,0.2)", my: 0.5 } }),
15031
+ /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "inherit", display: "block", fontWeight: "bold", variant: "caption", children: "Permissions" }),
15032
+ iamDenials.map((denial, index) => denial !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "inherit", display: "block", variant: "caption", children: `${formatPermissionStatus(denial.permission)}: ${denial.service}.${denial.operation}` }, index))
15033
+ ] })
15034
+ ] });
15035
+ };
15036
+ var StatusIconWithTooltip = ({ span }) => {
15037
+ const errorLevel = calculateHighestErrorLevel(span);
15038
+ if (errorLevel !== ErrorLevel.ERROR && errorLevel !== ErrorLevel.IAM_PERMISSION) return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_jsx_runtime126.Fragment, {});
15039
+ return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Tooltip, { title: buildTooltipContent(span), children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Box, { sx: { alignItems: "center", cursor: "default", display: "flex" }, children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(StatusIcon, { errorLevel, spanStatusCode: span.status_code }) }) });
15040
+ };
15041
+
15042
+ // src/components/spans-list/span-count-badge.tsx
15043
+ var import_icons_material2 = require("@mui/icons-material");
15044
+ var import_material6 = require("@mui/material");
15045
+ var import_react41 = require("react");
15046
+ var import_jsx_runtime127 = require("react/jsx-runtime");
14876
15047
  var resolveBindingLimit = (systemLimit, licenseLimit) => {
14877
15048
  const numericLimits = [systemLimit, licenseLimit].filter((l2) => typeof l2 === "number");
14878
15049
  if (numericLimits.length > 0) return Math.min(...numericLimits);
@@ -14885,29 +15056,29 @@ var fmtLimit = (value) => {
14885
15056
  if (value === "unlimited") return "Unlimited";
14886
15057
  return fmt(value);
14887
15058
  };
14888
- var StatRow = ({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { alignItems: "baseline", display: "flex", justifyContent: "space-between", minWidth: 220 }, children: [
14889
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "text.secondary", sx: { mr: 4 }, variant: "caption", children: label }),
14890
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { fontWeight: 600, variant: "body2", children: fmtLimit(value) })
15059
+ var StatRow = ({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "baseline", display: "flex", justifyContent: "space-between", minWidth: 220 }, children: [
15060
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", sx: { mr: 4 }, variant: "caption", children: label }),
15061
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { fontWeight: 600, variant: "body2", children: fmtLimit(value) })
14891
15062
  ] });
14892
15063
  var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) => {
14893
15064
  const [anchorElement, setAnchorElement] = (0, import_react41.useState)();
14894
15065
  const bindingLimit = resolveBindingLimit(systemLimit, licenseLimit);
14895
15066
  if (totalCount === void 0 && bindingLimit === void 0) {
14896
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_jsx_runtime126.Fragment, {});
15067
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_jsx_runtime127.Fragment, {});
14897
15068
  }
14898
15069
  if (visibleCount !== void 0) totalCount = Math.max(totalCount ?? 0, visibleCount);
14899
15070
  const isLoading = totalCount === void 0;
14900
15071
  const isOpen = anchorElement !== void 0;
14901
15072
  const systemLimitReached = typeof systemLimit === "number" && totalCount !== void 0 && totalCount >= systemLimit;
14902
15073
  const licenseLimitReached = typeof licenseLimit === "number" && totalCount !== void 0 && totalCount >= licenseLimit;
14903
- return /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { alignItems: "center", display: "flex", gap: 0.25 }, children: [
14904
- isLoading ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Skeleton, { sx: { minWidth: 120 } }) : /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { alignItems: "baseline", display: "flex", gap: 0.5 }, children: [
14905
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "text.secondary", variant: "caption", children: "Showing" }),
14906
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { variant: "body2", children: visibleCount === void 0 ? "\u2014" : fmt(visibleCount) }),
14907
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "text.secondary", variant: "caption", children: `of ${totalCount === void 0 ? "-" : fmt(totalCount)} operations` })
15074
+ return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "center", display: "flex", gap: 0.25 }, children: [
15075
+ isLoading ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Skeleton, { sx: { minWidth: 120 } }) : /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "baseline", display: "flex", gap: 0.5 }, children: [
15076
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", variant: "caption", children: "Showing" }),
15077
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { variant: "body2", children: visibleCount === void 0 ? "\u2014" : fmt(visibleCount) }),
15078
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", variant: "caption", children: `of ${totalCount === void 0 ? "-" : fmt(totalCount)} operations` })
14908
15079
  ] }),
14909
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Tooltip, { title: "Operation count details", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
14910
- import_material5.IconButton,
15080
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { title: "Operation count details", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15081
+ import_material6.IconButton,
14911
15082
  {
14912
15083
  "aria-describedby": isOpen ? "operation-count-popover" : void 0,
14913
15084
  onClick: (event) => {
@@ -14915,11 +15086,11 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
14915
15086
  },
14916
15087
  size: "small",
14917
15088
  sx: { color: systemLimitReached || licenseLimitReached ? "warning.main" : "text.disabled" },
14918
- children: systemLimitReached || licenseLimitReached ? /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.WarningAmberOutlined, { sx: { fontSize: 14 } }) : /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.InfoOutlined, { sx: { fontSize: 14 } })
15089
+ children: systemLimitReached || licenseLimitReached ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.WarningAmberOutlined, { sx: { fontSize: 14 } }) : /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.InfoOutlined, { sx: { fontSize: 14 } })
14919
15090
  }
14920
15091
  ) }),
14921
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
14922
- import_material5.Popover,
15092
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15093
+ import_material6.Popover,
14923
15094
  {
14924
15095
  anchorEl: anchorElement,
14925
15096
  anchorOrigin: { horizontal: "right", vertical: "bottom" },
@@ -14929,55 +15100,55 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
14929
15100
  },
14930
15101
  open: isOpen,
14931
15102
  transformOrigin: { horizontal: "right", vertical: "top" },
14932
- children: /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { minWidth: 240, p: 2 }, children: [
14933
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { fontWeight: 700, variant: "body2", children: "Storage" }),
14934
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "text.secondary", sx: { mt: 0.25 }, variant: "caption", children: "How many operations are currently stored." }),
14935
- /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75, mt: 1.5 }, children: [
14936
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15103
+ children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { minWidth: 240, p: 2 }, children: [
15104
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { fontWeight: 700, variant: "body2", children: "Storage" }),
15105
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", sx: { mt: 0.25 }, variant: "caption", children: "How many operations are currently stored." }),
15106
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75, mt: 1.5 }, children: [
15107
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
14937
15108
  StatRow,
14938
15109
  {
14939
- label: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Tooltip, { placement: "left", title: "The number of operations currently loaded in the UI.", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Currently visible" }) }),
15110
+ label: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { placement: "left", title: "The number of operations currently loaded in the UI.", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Currently visible" }) }),
14940
15111
  value: visibleCount
14941
15112
  }
14942
15113
  ),
14943
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15114
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
14944
15115
  StatRow,
14945
15116
  {
14946
- label: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Tooltip, { placement: "left", title: "The total number of operations stored on the server.", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Total stored" }) }),
15117
+ label: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { placement: "left", title: "The total number of operations stored on the server.", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "Total stored" }) }),
14947
15118
  value: totalCount
14948
15119
  }
14949
15120
  )
14950
15121
  ] }),
14951
- (systemLimit !== void 0 || licenseLimit !== void 0) && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_jsx_runtime126.Fragment, { children: [
14952
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Divider, { sx: { my: 1.5 } }),
14953
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "text.secondary", fontWeight: 600, variant: "caption", children: "Limits" }),
14954
- /* @__PURE__ */ (0, import_jsx_runtime126.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." }),
14955
- /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75 }, children: [
14956
- licenseLimit !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15122
+ (systemLimit !== void 0 || licenseLimit !== void 0) && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15123
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Divider, { sx: { my: 1.5 } }),
15124
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.secondary", fontWeight: 600, variant: "caption", children: "Limits" }),
15125
+ /* @__PURE__ */ (0, import_jsx_runtime127.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." }),
15126
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { display: "flex", flexDirection: "column", gap: 0.75 }, children: [
15127
+ licenseLimit !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
14957
15128
  StatRow,
14958
15129
  {
14959
- label: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Tooltip, { placement: "left", title: "The maximum number of operations allowed by your current license.", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "License limit" }) }),
15130
+ label: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { placement: "left", title: "The maximum number of operations allowed by your current license.", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "License limit" }) }),
14960
15131
  value: licenseLimit
14961
15132
  }
14962
15133
  ),
14963
- systemLimit !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
15134
+ systemLimit !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
14964
15135
  StatRow,
14965
15136
  {
14966
- label: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Tooltip, { placement: "left", title: "The maximum number of operations that can be stored in the system.", children: /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "System limit" }) }),
15137
+ label: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { placement: "left", title: "The maximum number of operations that can be stored in the system.", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { component: "span", sx: { borderBottom: "1px dashed", borderColor: "text.secondary", cursor: "help" }, children: "System limit" }) }),
14967
15138
  value: systemLimit
14968
15139
  }
14969
15140
  )
14970
15141
  ] })
14971
15142
  ] }),
14972
- (systemLimitReached || licenseLimitReached) && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { display: "flex", flexDirection: "column", gap: 1, mt: 1.5 }, children: [
14973
- licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { backgroundColor: "warning.main", borderRadius: 1, p: 1.5 }, children: [
14974
- /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75, mb: 0.75 }, children: [
14975
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.WarningAmberOutlined, { sx: { color: "warning.contrastText", fontSize: 14, mt: "1px" } }),
14976
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "warning.contrastText", fontWeight: 600, variant: "caption", children: "License limit reached" })
15143
+ (systemLimitReached || licenseLimitReached) && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { display: "flex", flexDirection: "column", gap: 1, mt: 1.5 }, children: [
15144
+ licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { backgroundColor: "warning.main", borderRadius: 1, p: 1.5 }, children: [
15145
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75, mb: 0.75 }, children: [
15146
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.WarningAmberOutlined, { sx: { color: "warning.contrastText", fontSize: 14, mt: "1px" } }),
15147
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "warning.contrastText", fontWeight: 600, variant: "caption", children: "License limit reached" })
14977
15148
  ] }),
14978
- /* @__PURE__ */ (0, import_jsx_runtime126.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." }),
14979
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(
14980
- import_material5.Button,
15149
+ /* @__PURE__ */ (0, import_jsx_runtime127.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." }),
15150
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15151
+ import_material6.Button,
14981
15152
  {
14982
15153
  color: "inherit",
14983
15154
  href: "https://localstack.cloud/pricing",
@@ -14989,9 +15160,9 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
14989
15160
  }
14990
15161
  )
14991
15162
  ] }),
14992
- systemLimitReached && !licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime126.jsxs)(import_material5.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75 }, children: [
14993
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_icons_material.WarningAmberOutlined, { color: "warning", sx: { fontSize: 14, mt: "1px" } }),
14994
- /* @__PURE__ */ (0, import_jsx_runtime126.jsx)(import_material5.Typography, { color: "warning.main", variant: "caption", children: "System limit reached \u2014 newer operations are being dropped." })
15163
+ systemLimitReached && !licenseLimitReached && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "flex-start", display: "flex", gap: 0.75 }, children: [
15164
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.WarningAmberOutlined, { color: "warning", sx: { fontSize: 14, mt: "1px" } }),
15165
+ /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "warning.main", variant: "caption", children: "System limit reached \u2014 newer operations are being dropped." })
14995
15166
  ] })
14996
15167
  ] })
14997
15168
  ] })
@@ -15001,7 +15172,7 @@ var SpanCountBadge = ({ licenseLimit, systemLimit, totalCount, visibleCount }) =
15001
15172
  };
15002
15173
 
15003
15174
  // src/components/spans-list/spans-data-grid.tsx
15004
- var import_jsx_runtime127 = require("react/jsx-runtime");
15175
+ var import_jsx_runtime128 = require("react/jsx-runtime");
15005
15176
  var columnHelper = createColumnHelper();
15006
15177
  var newSpanBackgroundColor = {
15007
15178
  dark: { from: "rgba(136, 123, 2, 1)", to: "rgba(136, 123, 2, 0)" },
@@ -15013,16 +15184,16 @@ var LABEL_NO_SPANS = "There are no operations";
15013
15184
  var LABEL_LOAD_OLDER = "Load older operations";
15014
15185
  var LABEL_LOAD_NEWER = "Load newer operations";
15015
15186
  var STICK_TO_EDGE_THRESHOLD_PX = 4;
15016
- var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.TableCell, { colSpan, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { children: label }) }) });
15017
- var LoadSpansRow = ({ colSpan, fetching, label, onFetch }) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.TableCell, { colSpan, sx: { textAlign: "center" }, children: [
15018
- !fetching && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Button, { onClick: onFetch, sx: { my: 1 }, children: label }),
15019
- fetching && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.CircularProgress, { size: 24, sx: { m: 2 } })
15187
+ var StreamBoundaryRow = ({ colSpan, label }) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableCell, { colSpan, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { children: label }) }) });
15188
+ var LoadSpansRow = ({ colSpan, fetching, label, onFetch }) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material7.TableCell, { colSpan, sx: { textAlign: "center" }, children: [
15189
+ !fetching && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Button, { onClick: onFetch, sx: { my: 1 }, children: label }),
15190
+ fetching && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.CircularProgress, { size: 24, sx: { m: 2 } })
15020
15191
  ] }) });
15021
15192
  var SpansDataGridRow = (0, import_react42.memo)(
15022
15193
  ({ onSpanClick, row }) => {
15023
- const theme = (0, import_material6.useTheme)();
15024
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15025
- import_material6.TableRow,
15194
+ const theme = (0, import_material7.useTheme)();
15195
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15196
+ import_material7.TableRow,
15026
15197
  {
15027
15198
  animate: {
15028
15199
  backgroundColor: theme.palette.mode === "light" ? newSpanBackgroundColor.light.to : newSpanBackgroundColor.dark.to
@@ -15040,16 +15211,16 @@ var SpansDataGridRow = (0, import_react42.memo)(
15040
15211
  transition: "background-color 1200ms ease-in"
15041
15212
  },
15042
15213
  children: row.getVisibleCells().map((cell) => {
15043
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15044
- import_material6.TableCell,
15214
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15215
+ import_material7.TableCell,
15045
15216
  {
15046
15217
  sx: {
15047
15218
  height: 36,
15048
15219
  maxWidth: `${cell.column.getSize().toString()}px`,
15049
15220
  minWidth: `${cell.column.getSize().toString()}px`
15050
15221
  },
15051
- children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15052
- import_material6.Box,
15222
+ children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15223
+ import_material7.Box,
15053
15224
  {
15054
15225
  sx: {
15055
15226
  "alignItems": "center",
@@ -15061,7 +15232,7 @@ var SpansDataGridRow = (0, import_react42.memo)(
15061
15232
  },
15062
15233
  "width": "100%"
15063
15234
  },
15064
- children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { sx: { px: 1, width: "100%" }, children: flexRender(cell.column.columnDef.cell, cell.getContext()) })
15235
+ children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Box, { sx: { px: 1, width: "100%" }, children: flexRender(cell.column.columnDef.cell, cell.getContext()) })
15065
15236
  }
15066
15237
  )
15067
15238
  },
@@ -15098,9 +15269,9 @@ var SpansDataGrid = ({
15098
15269
  }) => {
15099
15270
  const columns = (0, import_react42.useMemo)(() => [
15100
15271
  columnHelper.accessor("startTime", {
15101
- cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ResponsiveTimestampCell, { date: props.getValue() }),
15102
- header: () => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15103
- import_material6.TableSortLabel,
15272
+ cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ResponsiveTimestampCell, { date: props.getValue() }),
15273
+ header: () => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15274
+ import_material7.TableSortLabel,
15104
15275
  {
15105
15276
  active: true,
15106
15277
  direction: order2 === "newest_first" ? "asc" : "desc",
@@ -15116,23 +15287,23 @@ var SpansDataGrid = ({
15116
15287
  columnHelper.display({
15117
15288
  cell: (props) => {
15118
15289
  if (!props.row.original.parent_service_name || !props.row.original.parent_resource_name) {
15119
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { sx: { fontStyle: "italic" }, variant: "body2", children: "External producer" });
15290
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { sx: { fontStyle: "italic" }, variant: "body2", children: "External producer" });
15120
15291
  }
15121
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ServiceCell, { resource: props.row.original.parent_resource_name, service: props.row.original.parent_service_name });
15292
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ServiceCell, { resource: props.row.original.parent_resource_name, service: props.row.original.parent_service_name });
15122
15293
  },
15123
15294
  header: "Producer",
15124
15295
  id: "producer",
15125
15296
  size: 180
15126
15297
  }),
15127
15298
  columnHelper.accessor("operation_name", {
15128
- cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15129
- import_material6.Box,
15299
+ cell: (props) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15300
+ import_material7.Box,
15130
15301
  {
15131
15302
  sx: {
15132
15303
  overflow: "hidden",
15133
15304
  textOverflow: "ellipsis"
15134
15305
  },
15135
- children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)("span", { title: props.getValue(), children: props.getValue() })
15306
+ children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)("span", { title: props.getValue(), children: props.getValue() })
15136
15307
  }
15137
15308
  ),
15138
15309
  header: "Action",
@@ -15141,7 +15312,7 @@ var SpansDataGrid = ({
15141
15312
  }),
15142
15313
  columnHelper.display({
15143
15314
  cell: (props) => {
15144
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(ServiceCell, { resource: props.row.original.resource_name, service: props.row.original.service_name });
15315
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(ServiceCell, { resource: props.row.original.resource_name, service: props.row.original.service_name });
15145
15316
  },
15146
15317
  header: "Consumer",
15147
15318
  id: "consumer",
@@ -15149,24 +15320,26 @@ var SpansDataGrid = ({
15149
15320
  }),
15150
15321
  columnHelper.display({
15151
15322
  cell: (props) => {
15152
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { sx: { display: "flex", justifyContent: "flex-end" }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15153
- import_material6.Button,
15154
- {
15155
- "data-testid": VIEW_SPAN_DETAILS_TEST_ID,
15156
- onClick: (event) => {
15157
- event.stopPropagation();
15158
- onSpanClick(props.row.original);
15159
- },
15160
- size: "small",
15161
- sx: { px: 1 },
15162
- variant: "text",
15163
- children: "View Details"
15164
- }
15165
- ) });
15323
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material7.Box, { sx: { alignItems: "center", display: "flex", gap: 0.5, justifyContent: "flex-end" }, children: [
15324
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StatusIconWithTooltip, { span: props.row.original }),
15325
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15326
+ import_material7.Button,
15327
+ {
15328
+ "data-testid": VIEW_SPAN_DETAILS_TEST_ID,
15329
+ onClick: (event) => {
15330
+ event.stopPropagation();
15331
+ onSpanClick(props.row.original);
15332
+ },
15333
+ size: "small",
15334
+ sx: { px: 1 },
15335
+ variant: "text",
15336
+ children: "View Details"
15337
+ }
15338
+ )
15339
+ ] });
15166
15340
  },
15167
15341
  id: "actions",
15168
- // The actions column doesn't need more space
15169
- size: 96
15342
+ size: 128
15170
15343
  })
15171
15344
  ], [onSpanClick, onOrderChange, order2]);
15172
15345
  const table = useReactTable({
@@ -15199,46 +15372,46 @@ var SpansDataGrid = ({
15199
15372
  if (!element || !isAtLiveEdgeRef.current) return;
15200
15373
  element.scrollTop = element.scrollHeight;
15201
15374
  }, [order2, spans?.length, lastSpanId]);
15202
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15203
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Grid, { item: true, xs: 12, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.Box, { sx: { alignItems: "center", display: "flex", gap: "0.5rem" }, children: [
15204
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(SpanCountBadge, { licenseLimit, systemLimit, totalCount, visibleCount: spans?.length }),
15205
- errorCount !== void 0 && errorCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15206
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15207
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { title: "Number of errors detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
15208
- import_material6.Box,
15375
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
15376
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Grid, { item: true, xs: 12, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material7.Box, { sx: { alignItems: "center", display: "flex", gap: "0.5rem" }, children: [
15377
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SpanCountBadge, { licenseLimit, systemLimit, totalCount, visibleCount: spans?.length }),
15378
+ errorCount !== void 0 && errorCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
15379
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15380
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Tooltip, { title: "Number of errors detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
15381
+ import_material7.Box,
15209
15382
  {
15210
15383
  "data-testid": ERROR_COUNT_TEST_ID,
15211
15384
  sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "error.main", cursor: "default", display: "flex", gap: 0.5, mb: "-1px" },
15212
15385
  children: [
15213
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "error", variant: "body2", children: errorCount.toLocaleString() }),
15214
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "error", variant: "caption", children: errorCount === 1 ? "error" : "errors" })
15386
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "error", variant: "body2", children: errorCount.toLocaleString() }),
15387
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "error", variant: "caption", children: errorCount === 1 ? "error" : "errors" })
15215
15388
  ]
15216
15389
  }
15217
15390
  ) })
15218
15391
  ] }),
15219
- warningCount !== void 0 && warningCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15220
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15221
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Tooltip, { title: "Number of warnings detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
15222
- import_material6.Box,
15392
+ warningCount !== void 0 && warningCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
15393
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "text.disabled", sx: { mr: 0.5 }, variant: "body2", children: "\u2014" }),
15394
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Tooltip, { title: "Number of warnings detected across all operations", children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
15395
+ import_material7.Box,
15223
15396
  {
15224
15397
  "data-testid": WARNING_COUNT_TEST_ID,
15225
15398
  sx: { alignItems: "center", borderBottom: "1px dotted", borderColor: "warning.main", cursor: "default", display: "flex", gap: 0.5, mb: "-1px" },
15226
15399
  children: [
15227
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "warning.main", variant: "body2", children: warningCount.toLocaleString() }),
15228
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Typography, { color: "warning.main", variant: "caption", children: warningCount === 1 ? "warning" : "warnings" })
15400
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "warning.main", variant: "body2", children: warningCount.toLocaleString() }),
15401
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Typography, { color: "warning.main", variant: "caption", children: warningCount === 1 ? "warning" : "warnings" })
15229
15402
  ]
15230
15403
  }
15231
15404
  ) })
15232
15405
  ] }),
15233
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Box, { sx: { flexGrow: 1 } }),
15234
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15235
- import_material6.FormControlLabel,
15406
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Box, { sx: { flexGrow: 1 } }),
15407
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15408
+ import_material7.FormControlLabel,
15236
15409
  {
15237
- control: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15238
- import_material6.Button,
15410
+ control: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15411
+ import_material7.Button,
15239
15412
  {
15240
15413
  onClick: onToggleStream,
15241
- startIcon: streamPaused ? /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.PlayArrowOutlined, {}) : /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.PauseOutlined, {}),
15414
+ startIcon: streamPaused ? /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_icons_material3.PlayArrowOutlined, {}) : /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_icons_material3.PauseOutlined, {}),
15242
15415
  variant: "text",
15243
15416
  children: streamPaused ? "Resume Stream" : "Pause Stream"
15244
15417
  }
@@ -15246,15 +15419,15 @@ var SpansDataGrid = ({
15246
15419
  label: ""
15247
15420
  }
15248
15421
  ),
15249
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15250
- import_material6.FormControlLabel,
15422
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15423
+ import_material7.FormControlLabel,
15251
15424
  {
15252
- control: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15253
- import_material6.Button,
15425
+ control: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15426
+ import_material7.Button,
15254
15427
  {
15255
15428
  "data-testid": CLEAR_SPANS_TEST_ID,
15256
15429
  onClick: onClearSpans,
15257
- startIcon: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_icons_material2.DeleteForeverOutlined, {}),
15430
+ startIcon: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_icons_material3.DeleteForeverOutlined, {}),
15258
15431
  children: "Clear Operations"
15259
15432
  }
15260
15433
  ),
@@ -15263,8 +15436,8 @@ var SpansDataGrid = ({
15263
15436
  }
15264
15437
  )
15265
15438
  ] }) }),
15266
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.Paper, { sx: { flexGrow: 1, overflow: "hidden", position: "relative", width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15267
- import_material6.TableContainer,
15439
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Paper, { sx: { flexGrow: 1, overflow: "hidden", position: "relative", width: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15440
+ import_material7.TableContainer,
15268
15441
  {
15269
15442
  onScroll: handleScroll,
15270
15443
  ref: containerRef,
@@ -15276,8 +15449,8 @@ var SpansDataGrid = ({
15276
15449
  right: 0,
15277
15450
  top: 0
15278
15451
  },
15279
- children: /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(
15280
- import_material6.Table,
15452
+ children: /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
15453
+ import_material7.Table,
15281
15454
  {
15282
15455
  stickyHeader: true,
15283
15456
  sx: {
@@ -15288,9 +15461,9 @@ var SpansDataGrid = ({
15288
15461
  "th+th": { pl: "8px !important" }
15289
15462
  },
15290
15463
  children: [
15291
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.TableHead, { children: table.getHeaderGroups().map((headerGroup) => {
15292
- return /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(
15293
- import_material6.TableCell,
15464
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableHead, { children: table.getHeaderGroups().map((headerGroup) => {
15465
+ return /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15466
+ import_material7.TableCell,
15294
15467
  {
15295
15468
  colSpan: header.colSpan,
15296
15469
  sx: {
@@ -15304,31 +15477,31 @@ var SpansDataGrid = ({
15304
15477
  header.id
15305
15478
  )) }, headerGroup.id);
15306
15479
  }) }),
15307
- /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_material6.TableBody, { children: [
15308
- (spans === void 0 || clearingSpans) && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.TableCell, { colSpan: columnCount, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(import_material6.CircularProgress, { size: 48, sx: { m: 4 } }) }) }),
15309
- !clearingSpans && spans?.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_NO_SPANS }),
15310
- !clearingSpans && order2 === "newest_first" && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15311
- hasRows && hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
15312
- hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM }),
15313
- hasRows && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(AnimatePresence, { initial: false, children: (() => {
15480
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material7.TableBody, { children: [
15481
+ (spans === void 0 || clearingSpans) && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.TableCell, { colSpan: columnCount, sx: { fontStyle: "italic", textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.CircularProgress, { size: 48, sx: { m: 4 } }) }) }),
15482
+ !clearingSpans && spans?.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_NO_SPANS }),
15483
+ !clearingSpans && order2 === "newest_first" && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
15484
+ hasRows && hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
15485
+ hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM }),
15486
+ hasRows && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(AnimatePresence, { initial: false, children: (() => {
15314
15487
  const reversed = [];
15315
15488
  for (let index = rows.length - 1; index >= 0; index--) {
15316
15489
  const row = rows.at(index);
15317
15490
  reversed.push(
15318
- /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)
15491
+ /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)
15319
15492
  );
15320
15493
  }
15321
15494
  return reversed;
15322
15495
  })() }),
15323
- hasRows && hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
15324
- hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM })
15496
+ hasRows && hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
15497
+ hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM })
15325
15498
  ] }),
15326
- !clearingSpans && order2 === "oldest_first" && /* @__PURE__ */ (0, import_jsx_runtime127.jsxs)(import_jsx_runtime127.Fragment, { children: [
15327
- hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM }),
15328
- hasRows && hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
15329
- hasRows && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(AnimatePresence, { initial: false, children: rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)) }),
15330
- hasRows && hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
15331
- hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime127.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM })
15499
+ !clearingSpans && order2 === "oldest_first" && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_jsx_runtime128.Fragment, { children: [
15500
+ hasRows && !hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_BEGINNING_OF_STREAM }),
15501
+ hasRows && hasMoreBackward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingBackward, label: LABEL_LOAD_OLDER, onFetch: onFetchBackward }),
15502
+ hasRows && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(AnimatePresence, { initial: false, children: rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(SpansDataGridRow, { onSpanClick, row }, row.original.span_id)) }),
15503
+ hasRows && hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(LoadSpansRow, { colSpan: columnCount, fetching: fetchingForward, label: LABEL_LOAD_NEWER, onFetch: onFetchForward }),
15504
+ hasRows && !hasMoreForward && /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(StreamBoundaryRow, { colSpan: columnCount, label: LABEL_END_OF_STREAM })
15332
15505
  ] })
15333
15506
  ] })
15334
15507
  ]
@@ -15340,13 +15513,13 @@ var SpansDataGrid = ({
15340
15513
  };
15341
15514
 
15342
15515
  // src/components/spans-list/spans-list.tsx
15343
- var import_jsx_runtime128 = require("react/jsx-runtime");
15516
+ var import_jsx_runtime129 = require("react/jsx-runtime");
15344
15517
  var SpansList = (props) => {
15345
- return /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(import_material7.Box, { "data-testid": SPANS_DATA_GRID_TEST_ID, sx: { display: "flex", flexDirection: "column", flexGrow: 1, gap: 2, width: "100%" }, children: [
15346
- props.fetchError && /* @__PURE__ */ (0, import_jsx_runtime128.jsxs)(
15347
- import_material7.Alert,
15518
+ return /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_material8.Box, { "data-testid": SPANS_DATA_GRID_TEST_ID, sx: { display: "flex", flexDirection: "column", flexGrow: 1, gap: 2, width: "100%" }, children: [
15519
+ props.fetchError && /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
15520
+ import_material8.Alert,
15348
15521
  {
15349
- action: /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(import_material7.Button, { onClick: props.onFetchForward, children: "Retry" }),
15522
+ action: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Button, { onClick: props.onFetchForward, children: "Retry" }),
15350
15523
  severity: "error",
15351
15524
  children: [
15352
15525
  "Unexpected error:",
@@ -15355,7 +15528,7 @@ var SpansList = (props) => {
15355
15528
  ]
15356
15529
  }
15357
15530
  ),
15358
- /* @__PURE__ */ (0, import_jsx_runtime128.jsx)(
15531
+ /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15359
15532
  SpansDataGrid,
15360
15533
  {
15361
15534
  clearingSpans: props.clearingSpans,
@@ -15383,10 +15556,10 @@ var SpansList = (props) => {
15383
15556
  };
15384
15557
 
15385
15558
  // src/components/status-message/status-message.tsx
15386
- var import_icons_material3 = require("@mui/icons-material");
15387
- var import_material8 = require("@mui/material");
15559
+ var import_icons_material4 = require("@mui/icons-material");
15560
+ var import_material9 = require("@mui/material");
15388
15561
  var import_react43 = require("react");
15389
- var import_jsx_runtime129 = require("react/jsx-runtime");
15562
+ var import_jsx_runtime130 = require("react/jsx-runtime");
15390
15563
  var StatusMessage = ({
15391
15564
  error,
15392
15565
  localstackVersion,
@@ -15410,8 +15583,8 @@ var StatusMessage = ({
15410
15583
  };
15411
15584
  if (error instanceof AppInspectorNotFoundError) {
15412
15585
  const isBelowMinimum = localstackVersion !== void 0 && checkEmulatorVersion(localstackVersion) === "below-minimum";
15413
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15414
- import_material8.Box,
15586
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15587
+ import_material9.Box,
15415
15588
  {
15416
15589
  sx: {
15417
15590
  alignItems: "center",
@@ -15421,18 +15594,18 @@ var StatusMessage = ({
15421
15594
  justifyContent: "center",
15422
15595
  p: 4
15423
15596
  },
15424
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
15425
- import_material8.Alert,
15597
+ children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
15598
+ import_material9.Alert,
15426
15599
  {
15427
- icon: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_icons_material3.ErrorOutline, { fontSize: "large" }),
15600
+ icon: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
15428
15601
  severity: "error",
15429
15602
  sx: { maxWidth: 600, width: "100%" },
15430
15603
  children: [
15431
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Not Available" }),
15432
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Typography, { sx: { mb: 2 }, variant: "body2", children: isBelowMinimum ? `App Inspector requires LocalStack ${MINIMUM_EMULATOR_VERSION} or later. You are running version ${localstackVersion}. Please update LocalStack.` : "App Inspector is not available in LocalStack. Ensure LocalStack is up-to-date." }),
15433
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("strong", { children: "Update LocalStack:" }) }),
15434
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15435
- import_material8.Box,
15604
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Not Available" }),
15605
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 2 }, variant: "body2", children: isBelowMinimum ? `App Inspector requires LocalStack ${MINIMUM_EMULATOR_VERSION} or later. You are running version ${localstackVersion}. Please update LocalStack.` : "App Inspector is not available in LocalStack. Ensure LocalStack is up-to-date." }),
15606
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)("strong", { children: "Update LocalStack:" }) }),
15607
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15608
+ import_material9.Box,
15436
15609
  {
15437
15610
  component: "pre",
15438
15611
  sx: {
@@ -15444,8 +15617,8 @@ var StatusMessage = ({
15444
15617
  children: "localstack update docker-images"
15445
15618
  }
15446
15619
  ),
15447
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Box, { sx: { display: "flex", gap: 1, mt: 2 }, children: onRetry && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15448
- import_material8.Button,
15620
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Box, { sx: { display: "flex", gap: 1, mt: 2 }, children: onRetry && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15621
+ import_material9.Button,
15449
15622
  {
15450
15623
  "aria-label": "Check App Inspector status again",
15451
15624
  disabled: enabling,
@@ -15461,8 +15634,8 @@ var StatusMessage = ({
15461
15634
  );
15462
15635
  }
15463
15636
  if (error instanceof ConnectionError) {
15464
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15465
- import_material8.Box,
15637
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15638
+ import_material9.Box,
15466
15639
  {
15467
15640
  sx: {
15468
15641
  alignItems: "center",
@@ -15472,18 +15645,18 @@ var StatusMessage = ({
15472
15645
  justifyContent: "center",
15473
15646
  p: 4
15474
15647
  },
15475
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
15476
- import_material8.Alert,
15648
+ children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
15649
+ import_material9.Alert,
15477
15650
  {
15478
- icon: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_icons_material3.ErrorOutline, { fontSize: "large" }),
15651
+ icon: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
15479
15652
  severity: "error",
15480
15653
  sx: { maxWidth: 600, width: "100%" },
15481
15654
  children: [
15482
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.AlertTitle, { sx: { fontWeight: "bold" }, children: "Connection Error" }),
15483
- /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_material8.Typography, { sx: { mb: 2 }, variant: "body2", children: [
15655
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "Connection Error" }),
15656
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_material9.Typography, { sx: { mb: 2 }, variant: "body2", children: [
15484
15657
  "Failed to connect to LocalStack. Ensure ",
15485
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15486
- import_material8.Link,
15658
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15659
+ import_material9.Link,
15487
15660
  {
15488
15661
  href: "https://docs.localstack.cloud/aws/getting-started/installation/",
15489
15662
  rel: "noopener noreferrer",
@@ -15493,9 +15666,9 @@ var StatusMessage = ({
15493
15666
  ),
15494
15667
  " is running and accessible."
15495
15668
  ] }),
15496
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)("strong", { children: "Start LocalStack:" }) }),
15497
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15498
- import_material8.Box,
15669
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 1 }, variant: "body2", children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)("strong", { children: "Start LocalStack:" }) }),
15670
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15671
+ import_material9.Box,
15499
15672
  {
15500
15673
  component: "pre",
15501
15674
  sx: {
@@ -15507,8 +15680,8 @@ var StatusMessage = ({
15507
15680
  children: "localstack start"
15508
15681
  }
15509
15682
  ),
15510
- onRetry && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Box, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15511
- import_material8.Button,
15683
+ onRetry && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Box, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15684
+ import_material9.Button,
15512
15685
  {
15513
15686
  "aria-label": "Retry connection to LocalStack",
15514
15687
  onClick: onRetry,
@@ -15523,8 +15696,8 @@ var StatusMessage = ({
15523
15696
  );
15524
15697
  }
15525
15698
  if (error instanceof AppInspectorDisabledError || status?.status === "DISABLED") {
15526
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15527
- import_material8.Box,
15699
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15700
+ import_material9.Box,
15528
15701
  {
15529
15702
  sx: {
15530
15703
  alignItems: "center",
@@ -15534,31 +15707,31 @@ var StatusMessage = ({
15534
15707
  justifyContent: "center",
15535
15708
  p: 4
15536
15709
  },
15537
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
15538
- import_material8.Alert,
15710
+ children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
15711
+ import_material9.Alert,
15539
15712
  {
15540
- icon: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_icons_material3.InfoOutlined, { fontSize: "large" }),
15713
+ icon: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons_material4.InfoOutlined, { fontSize: "large" }),
15541
15714
  severity: "warning",
15542
15715
  sx: { maxWidth: 600, width: "100%" },
15543
15716
  children: [
15544
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Is Not Enabled" }),
15545
- /* @__PURE__ */ (0, import_jsx_runtime129.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." }),
15546
- /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(import_material8.Box, { sx: { display: "flex", gap: 1, mb: 2 }, children: [
15547
- onEnable && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15548
- import_material8.Button,
15717
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "App Inspector Is Not Enabled" }),
15718
+ /* @__PURE__ */ (0, import_jsx_runtime130.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." }),
15719
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(import_material9.Box, { sx: { display: "flex", gap: 1, mb: 2 }, children: [
15720
+ onEnable && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15721
+ import_material9.Button,
15549
15722
  {
15550
15723
  "aria-label": "Enable App Inspector Now",
15551
15724
  disabled: enabling,
15552
15725
  onClick: () => {
15553
15726
  void handleEnable();
15554
15727
  },
15555
- startIcon: enabling ? /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.CircularProgress, { size: 16 }) : void 0,
15728
+ startIcon: enabling ? /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.CircularProgress, { size: 16 }) : void 0,
15556
15729
  variant: "contained",
15557
15730
  children: "Enable App Inspector Now"
15558
15731
  }
15559
15732
  ),
15560
- onRetry && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15561
- import_material8.Button,
15733
+ onRetry && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15734
+ import_material9.Button,
15562
15735
  {
15563
15736
  "aria-label": "Check if App Inspector is enabled",
15564
15737
  disabled: enabling,
@@ -15568,9 +15741,9 @@ var StatusMessage = ({
15568
15741
  }
15569
15742
  )
15570
15743
  ] }),
15571
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Typography, { sx: { mb: 1 }, variant: "body2", children: "If you'd prefer to automatically enable App Inspector at start up, use:" }),
15572
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15573
- import_material8.Box,
15744
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 1 }, variant: "body2", children: "If you'd prefer to automatically enable App Inspector at start up, use:" }),
15745
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15746
+ import_material9.Box,
15574
15747
  {
15575
15748
  component: "pre",
15576
15749
  sx: {
@@ -15582,7 +15755,7 @@ var StatusMessage = ({
15582
15755
  children: "LOCALSTACK_APP_INSPECTOR=1 localstack start"
15583
15756
  }
15584
15757
  ),
15585
- Boolean(enableError) && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Typography, { color: "error", sx: { mt: 1 }, variant: "body2", children: enableError })
15758
+ Boolean(enableError) && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { color: "error", sx: { mt: 1 }, variant: "body2", children: enableError })
15586
15759
  ]
15587
15760
  }
15588
15761
  )
@@ -15590,8 +15763,8 @@ var StatusMessage = ({
15590
15763
  );
15591
15764
  }
15592
15765
  if (error) {
15593
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15594
- import_material8.Box,
15766
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15767
+ import_material9.Box,
15595
15768
  {
15596
15769
  sx: {
15597
15770
  alignItems: "center",
@@ -15601,17 +15774,17 @@ var StatusMessage = ({
15601
15774
  justifyContent: "center",
15602
15775
  p: 4
15603
15776
  },
15604
- children: /* @__PURE__ */ (0, import_jsx_runtime129.jsxs)(
15605
- import_material8.Alert,
15777
+ children: /* @__PURE__ */ (0, import_jsx_runtime130.jsxs)(
15778
+ import_material9.Alert,
15606
15779
  {
15607
- icon: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_icons_material3.ErrorOutline, { fontSize: "large" }),
15780
+ icon: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_icons_material4.ErrorOutline, { fontSize: "large" }),
15608
15781
  severity: "error",
15609
15782
  sx: { maxWidth: 600, width: "100%" },
15610
15783
  children: [
15611
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.AlertTitle, { sx: { fontWeight: "bold" }, children: "Error" }),
15612
- /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Typography, { sx: { mb: 2 }, variant: "body2", children: error.message }),
15613
- onRetry && /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_material8.Box, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(
15614
- import_material8.Button,
15784
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.AlertTitle, { sx: { fontWeight: "bold" }, children: "Error" }),
15785
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Typography, { sx: { mb: 2 }, variant: "body2", children: error.message }),
15786
+ onRetry && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_material9.Box, { sx: { display: "flex", justifyContent: "flex-start", mt: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
15787
+ import_material9.Button,
15615
15788
  {
15616
15789
  "aria-label": "Retry operation",
15617
15790
  onClick: onRetry,
@@ -15625,7 +15798,7 @@ var StatusMessage = ({
15625
15798
  }
15626
15799
  );
15627
15800
  }
15628
- return /* @__PURE__ */ (0, import_jsx_runtime129.jsx)(import_jsx_runtime129.Fragment, {});
15801
+ return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_jsx_runtime130.Fragment, {});
15629
15802
  };
15630
15803
 
15631
15804
  // src/hooks/status-provider.tsx
@@ -15674,7 +15847,7 @@ var useStatus = () => {
15674
15847
  };
15675
15848
 
15676
15849
  // src/hooks/status-provider.tsx
15677
- var import_jsx_runtime130 = require("react/jsx-runtime");
15850
+ var import_jsx_runtime131 = require("react/jsx-runtime");
15678
15851
  var AppInspectorStatusContext = (0, import_react45.createContext)(void 0);
15679
15852
  var StatusProvider = ({ children }) => {
15680
15853
  const { checking, checkStatus, error, status } = useStatus();
@@ -15685,7 +15858,7 @@ var StatusProvider = ({ children }) => {
15685
15858
  () => ({ checking, checkStatus, reportDisabled, status, statusError: error }),
15686
15859
  [checking, checkStatus, reportDisabled, status, error]
15687
15860
  );
15688
- return /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(AppInspectorStatusContext.Provider, { value, children });
15861
+ return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(AppInspectorStatusContext.Provider, { value, children });
15689
15862
  };
15690
15863
  var useAppInspectorStatus = () => {
15691
15864
  const value = (0, import_react45.useContext)(AppInspectorStatusContext);
@@ -18104,7 +18277,7 @@ var useAppInspectorOpenAnalytics = () => {
18104
18277
  };
18105
18278
 
18106
18279
  // src/context.tsx
18107
- var import_jsx_runtime131 = require("react/jsx-runtime");
18280
+ var import_jsx_runtime132 = require("react/jsx-runtime");
18108
18281
  var AppInspectorContext = (0, import_react48.createContext)(void 0);
18109
18282
  var useAppInspector = () => {
18110
18283
  const context = (0, import_react48.useContext)(AppInspectorContext);
@@ -18115,7 +18288,7 @@ var useAppInspector = () => {
18115
18288
  };
18116
18289
  var AppInspectorAnalyticsBoundary = ({ children }) => {
18117
18290
  useAppInspectorOpenAnalytics();
18118
- return /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(import_jsx_runtime131.Fragment, { children });
18291
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_jsx_runtime132.Fragment, { children });
18119
18292
  };
18120
18293
  var AppInspectorContextProvider = (props) => {
18121
18294
  const api = (0, import_react49.useMemo)(
@@ -18147,7 +18320,7 @@ var AppInspectorContextProvider = (props) => {
18147
18320
  }),
18148
18321
  [deploymentContainer, props.linkComponent, props.localstackEndpoint, resolveLink]
18149
18322
  );
18150
- 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 }) }) }) });
18323
+ return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(ApiProvider, { api, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(StatusProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(AppInspectorContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(AppInspectorAnalyticsBoundary, { children: props.children }) }) }) });
18151
18324
  };
18152
18325
 
18153
18326
  // src/hooks/use-spans-ws.tsx
@@ -18433,103 +18606,17 @@ var useSpans = () => {
18433
18606
  };
18434
18607
 
18435
18608
  // src/pages/trace-graph-page.tsx
18436
- var import_icons_material12 = require("@mui/icons-material");
18437
- var import_material22 = require("@mui/material");
18609
+ var import_icons_material13 = require("@mui/icons-material");
18610
+ var import_material23 = require("@mui/material");
18438
18611
  var import_styles = require("@mui/material/styles");
18439
18612
  var import_react67 = require("@xyflow/react");
18440
18613
  var import_react68 = require("react");
18441
18614
 
18442
18615
  // src/components/event-details/event-details.tsx
18443
- var import_icons_material9 = require("@mui/icons-material");
18444
- var import_material17 = require("@mui/material");
18616
+ var import_icons_material10 = require("@mui/icons-material");
18617
+ var import_material18 = require("@mui/material");
18445
18618
  var import_react59 = require("react");
18446
18619
 
18447
- // src/utils/iam-utils.ts
18448
- function determinePermissionStatus(payload) {
18449
- if (payload.explicit_deny_count && payload.explicit_deny_count > 0) {
18450
- return "explicitly_denied";
18451
- }
18452
- if (payload.is_allowed && payload.explicit_allow_count && payload.explicit_allow_count > 0) {
18453
- return "explicitly_allowed";
18454
- }
18455
- if (payload.is_allowed) {
18456
- return "implicitly_allowed";
18457
- }
18458
- return "implicitly_denied";
18459
- }
18460
- function formatPermissionStatus(status) {
18461
- switch (status) {
18462
- case "explicitly_allowed": {
18463
- return "Explicitly Allowed";
18464
- }
18465
- case "explicitly_denied": {
18466
- return "Explicitly Denied";
18467
- }
18468
- case "implicitly_allowed": {
18469
- return "Implicitly Allowed";
18470
- }
18471
- case "implicitly_denied": {
18472
- return "Implicitly Denied";
18473
- }
18474
- }
18475
- }
18476
- function getPermissionStatusColor(status) {
18477
- switch (status) {
18478
- case "explicitly_allowed":
18479
- case "implicitly_allowed": {
18480
- return "success.main";
18481
- }
18482
- case "explicitly_denied": {
18483
- return "error.main";
18484
- }
18485
- case "implicitly_denied": {
18486
- return "warning.main";
18487
- }
18488
- }
18489
- }
18490
- function parseIAMEvent(payloadString) {
18491
- try {
18492
- const payload = JSON.parse(payloadString);
18493
- const permission = determinePermissionStatus(payload);
18494
- const actions = [];
18495
- const resources = [];
18496
- if (payload.explicit_allows) {
18497
- for (const allow of payload.explicit_allows) {
18498
- if (!actions.includes(allow.action)) actions.push(allow.action);
18499
- if (!resources.includes(allow.resource)) resources.push(allow.resource);
18500
- }
18501
- }
18502
- if (payload.explicit_denies) {
18503
- for (const deny of payload.explicit_denies) {
18504
- if (!actions.includes(deny.action)) actions.push(deny.action);
18505
- if (!resources.includes(deny.resource)) resources.push(deny.resource);
18506
- }
18507
- }
18508
- if (payload.implicit_denies) {
18509
- for (const deny of payload.implicit_denies) {
18510
- if (!actions.includes(deny.action)) actions.push(deny.action);
18511
- if (!resources.includes(deny.resource)) resources.push(deny.resource);
18512
- }
18513
- }
18514
- return {
18515
- details: {
18516
- actions,
18517
- explicitAllows: payload.explicit_allow_count,
18518
- explicitDenies: payload.explicit_deny_count,
18519
- implicitDenies: payload.implicit_deny_count,
18520
- resources
18521
- },
18522
- operation: payload.operation,
18523
- permission,
18524
- principal: payload.principal_arn,
18525
- service: payload.service
18526
- };
18527
- } catch (error) {
18528
- console.error("Error parsing IAM event payload:", error);
18529
- return void 0;
18530
- }
18531
- }
18532
-
18533
18620
  // src/utils/event-utils.ts
18534
18621
  var iamEventParser = (eventName, attributes) => {
18535
18622
  if (attributes?.payload && typeof attributes.payload === "string") {
@@ -18639,70 +18726,70 @@ var getEventGroupsByType = (events) => {
18639
18726
  };
18640
18727
 
18641
18728
  // src/components/event-details/event-detail.tsx
18642
- var import_icons_material7 = require("@mui/icons-material");
18643
- var import_material14 = require("@mui/material");
18729
+ var import_icons_material8 = require("@mui/icons-material");
18730
+ var import_material15 = require("@mui/material");
18644
18731
  var import_react56 = require("react");
18645
18732
 
18646
18733
  // src/components/status-icon.tsx
18647
- var import_icons_material4 = require("@mui/icons-material");
18648
- var import_material9 = require("@mui/material");
18649
- var import_jsx_runtime132 = require("react/jsx-runtime");
18650
- var StatusIcon = ({ errorLevel }) => {
18734
+ var import_icons_material5 = require("@mui/icons-material");
18735
+ var import_material10 = require("@mui/material");
18736
+ var import_jsx_runtime133 = require("react/jsx-runtime");
18737
+ var StatusIcon2 = ({ errorLevel }) => {
18651
18738
  switch (errorLevel) {
18652
18739
  case EventLevel.LevelError: {
18653
- return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material4.Cancel, { sx: { color: "red" } });
18740
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.Cancel, { sx: { color: "red" } });
18654
18741
  }
18655
18742
  case EventLevel.LevelInfo: {
18656
- return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material4.Info, { sx: { color: "gray" } });
18743
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.Info, { sx: { color: "gray" } });
18657
18744
  }
18658
18745
  case EventLevel.LevelPermission: {
18659
- return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material4.RemoveCircle, { sx: { color: "blue" } });
18746
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.RemoveCircle, { sx: { color: "blue" } });
18660
18747
  }
18661
18748
  case EventLevel.LevelWarning: {
18662
- return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material4.Error, { sx: { color: "orange" } });
18749
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.Error, { sx: { color: "orange" } });
18663
18750
  }
18664
18751
  default: {
18665
- return /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_icons_material4.CheckCircle, { sx: { color: "lightgray" } });
18752
+ return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.CheckCircle, { sx: { color: "lightgray" } });
18666
18753
  }
18667
18754
  }
18668
18755
  };
18669
18756
 
18670
18757
  // src/components/event-details/iam-event-detail.tsx
18671
- var import_icons_material5 = require("@mui/icons-material");
18672
- var import_material10 = require("@mui/material");
18673
- var import_jsx_runtime133 = require("react/jsx-runtime");
18674
- var DetailRow = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material10.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
18675
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
18676
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { sx: { color: "text.primary", wordBreak: "break-word" }, variant: "caption", children: content }) : content })
18758
+ var import_icons_material6 = require("@mui/icons-material");
18759
+ var import_material11 = require("@mui/material");
18760
+ var import_jsx_runtime134 = require("react/jsx-runtime");
18761
+ var DetailRow = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
18762
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
18763
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { sx: { color: "text.primary", wordBreak: "break-word" }, variant: "caption", children: content }) : content })
18677
18764
  ] });
18678
18765
  var PermissionIcon = ({ status }) => {
18679
18766
  switch (status) {
18680
18767
  case "explicitly_allowed":
18681
18768
  case "implicitly_allowed": {
18682
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.CheckCircle, { sx: { color: "success.main", fontSize: "1rem" } });
18769
+ return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material6.CheckCircle, { sx: { color: "success.main", fontSize: "1rem" } });
18683
18770
  }
18684
18771
  case "explicitly_denied": {
18685
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.Error, { sx: { color: "error.main", fontSize: "1rem" } });
18772
+ return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material6.Error, { sx: { color: "error.main", fontSize: "1rem" } });
18686
18773
  }
18687
18774
  case "implicitly_denied": {
18688
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_icons_material5.Warning, { sx: { color: "warning.main", fontSize: "1rem" } });
18775
+ return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material6.Warning, { sx: { color: "warning.main", fontSize: "1rem" } });
18689
18776
  }
18690
18777
  }
18691
18778
  };
18692
18779
  var IAMEventDetail = ({ event }) => {
18693
18780
  const payloadString = event.attributes?.payload;
18694
18781
  if (!payloadString) {
18695
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "text.secondary", variant: "caption", children: "No IAM policy evaluation data available" });
18782
+ return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "No IAM policy evaluation data available" });
18696
18783
  }
18697
18784
  const parsedIAM = parseIAMEvent(payloadString);
18698
18785
  if (!parsedIAM) {
18699
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "text.secondary", variant: "caption", children: "Failed to parse IAM event data" });
18786
+ return /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Failed to parse IAM event data" });
18700
18787
  }
18701
- return /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material10.Box, { children: [
18702
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Box, { sx: { mb: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
18703
- import_material10.Chip,
18788
+ return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { children: [
18789
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { sx: { mb: 1.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
18790
+ import_material11.Chip,
18704
18791
  {
18705
- icon: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(PermissionIcon, { status: parsedIAM.permission }),
18792
+ icon: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(PermissionIcon, { status: parsedIAM.permission }),
18706
18793
  label: formatPermissionStatus(parsedIAM.permission),
18707
18794
  size: "small",
18708
18795
  sx: {
@@ -18712,36 +18799,36 @@ var IAMEventDetail = ({ event }) => {
18712
18799
  variant: "outlined"
18713
18800
  }
18714
18801
  ) }),
18715
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(DetailRow, { content: `${parsedIAM.service}:${parsedIAM.operation}`, label: "Operation" }),
18716
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(DetailRow, { content: parsedIAM.principal, label: "Principal" }),
18717
- parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
18802
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DetailRow, { content: `${parsedIAM.service}:${parsedIAM.operation}`, label: "Operation" }),
18803
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(DetailRow, { content: parsedIAM.principal, label: "Principal" }),
18804
+ parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
18718
18805
  DetailRow,
18719
18806
  {
18720
- content: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Box, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { sx: { color: "text.primary", display: "block" }, variant: "caption", children: action }, action)) }),
18807
+ content: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { sx: { color: "text.primary", display: "block" }, variant: "caption", children: action }, action)) }),
18721
18808
  label: "Actions"
18722
18809
  }
18723
18810
  ),
18724
- parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(
18811
+ parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
18725
18812
  DetailRow,
18726
18813
  {
18727
- content: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Box, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { sx: { color: "text.primary", display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) }),
18814
+ content: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { sx: { color: "text.primary", display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) }),
18728
18815
  label: "Resources"
18729
18816
  }
18730
18817
  ),
18731
- (parsedIAM.details.explicitAllows !== void 0 || parsedIAM.details.explicitDenies !== void 0 || parsedIAM.details.implicitDenies !== void 0) && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material10.Box, { sx: { mt: 1.5 }, children: [
18732
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "text.secondary", sx: { display: "block", fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Policy Evaluation" }),
18733
- /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material10.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "repeat(3, 1fr)" }, children: [
18734
- parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material10.Box, { sx: { textAlign: "center" }, children: [
18735
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "success.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitAllows }),
18736
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Allows" })
18818
+ (parsedIAM.details.explicitAllows !== void 0 || parsedIAM.details.explicitDenies !== void 0 || parsedIAM.details.implicitDenies !== void 0) && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { mt: 1.5 }, children: [
18819
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", sx: { display: "block", fontWeight: 600, mb: 0.5 }, variant: "caption", children: "Policy Evaluation" }),
18820
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "repeat(3, 1fr)" }, children: [
18821
+ parsedIAM.details.explicitAllows !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { textAlign: "center" }, children: [
18822
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "success.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitAllows }),
18823
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Allows" })
18737
18824
  ] }),
18738
- parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material10.Box, { sx: { textAlign: "center" }, children: [
18739
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "error.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitDenies }),
18740
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Denies" })
18825
+ parsedIAM.details.explicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { textAlign: "center" }, children: [
18826
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "error.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.explicitDenies }),
18827
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Explicit Denies" })
18741
18828
  ] }),
18742
- parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_material10.Box, { sx: { textAlign: "center" }, children: [
18743
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "warning.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.implicitDenies }),
18744
- /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_material10.Typography, { color: "text.secondary", variant: "caption", children: "Implicit Denies" })
18829
+ parsedIAM.details.implicitDenies !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { textAlign: "center" }, children: [
18830
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "warning.main", sx: { display: "block", fontWeight: "bold" }, variant: "subtitle2", children: parsedIAM.details.implicitDenies }),
18831
+ /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", variant: "caption", children: "Implicit Denies" })
18745
18832
  ] })
18746
18833
  ] })
18747
18834
  ] })
@@ -18749,17 +18836,17 @@ var IAMEventDetail = ({ event }) => {
18749
18836
  };
18750
18837
 
18751
18838
  // src/components/event-details/iam-permission-detail.tsx
18752
- var import_icons_material6 = require("@mui/icons-material");
18753
- var import_material11 = require("@mui/material");
18839
+ var import_icons_material7 = require("@mui/icons-material");
18840
+ var import_material12 = require("@mui/material");
18754
18841
  var import_react53 = require("react");
18755
- var import_jsx_runtime134 = require("react/jsx-runtime");
18842
+ var import_jsx_runtime135 = require("react/jsx-runtime");
18756
18843
  var getChipColors = (status) => ({
18757
18844
  backgroundColor: getPermissionStatusColor(status),
18758
18845
  color: "white"
18759
18846
  });
18760
- var LabelValue = ({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
18761
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
18762
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { sx: { wordBreak: "break-all" }, variant: "caption", children: value })
18847
+ var LabelValue = ({ label, value }) => /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
18848
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
18849
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { sx: { wordBreak: "break-all" }, variant: "caption", children: value })
18763
18850
  ] });
18764
18851
  var IAMPermissionItem = ({ event }) => {
18765
18852
  const [isOpen, setIsOpen] = (0, import_react53.useState)(false);
@@ -18774,39 +18861,39 @@ var IAMPermissionItem = ({ event }) => {
18774
18861
  return null;
18775
18862
  }
18776
18863
  const { chipColors, parsedIAM } = parsedData;
18777
- return /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { mb: 0.5 }, children: [
18778
- /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { alignItems: "center", display: "flex", gap: 1 }, children: [
18779
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.IconButton, { onClick: () => {
18864
+ return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { mb: 0.5 }, children: [
18865
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { alignItems: "center", display: "flex", gap: 1 }, children: [
18866
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.IconButton, { onClick: () => {
18780
18867
  setIsOpen(!isOpen);
18781
- }, size: "small", sx: { p: 0 }, children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material6.KeyboardArrowDown, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_icons_material6.KeyboardArrowRight, { sx: { fontSize: 16 } }) }),
18782
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Chip, { label: formatPermissionStatus(parsedIAM.permission), size: "small", sx: { ...chipColors, fontWeight: 500 } }),
18783
- /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Typography, { color: "text.secondary", noWrap: true, sx: { flex: 1, overflow: "hidden", textOverflow: "ellipsis" }, variant: "caption", children: [
18868
+ }, size: "small", sx: { p: 0 }, children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_icons_material7.KeyboardArrowDown, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_icons_material7.KeyboardArrowRight, { sx: { fontSize: 16 } }) }),
18869
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Chip, { label: formatPermissionStatus(parsedIAM.permission), size: "small", sx: { ...chipColors, fontWeight: 500 } }),
18870
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Typography, { color: "text.secondary", noWrap: true, sx: { flex: 1, overflow: "hidden", textOverflow: "ellipsis" }, variant: "caption", children: [
18784
18871
  parsedIAM.service,
18785
18872
  ":",
18786
18873
  parsedIAM.operation
18787
18874
  ] })
18788
18875
  ] }),
18789
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { borderColor: "divider", borderLeft: "2px solid", ml: 1, mt: 0.5, pl: 1.5, py: 0.5 }, children: [
18790
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(LabelValue, { label: "Principal", value: parsedIAM.principal }),
18791
- parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
18792
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Actions" }),
18793
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { sx: { display: "block" }, variant: "caption", children: action }, action)) })
18876
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { borderColor: "divider", borderLeft: "2px solid", ml: 1, mt: 0.5, pl: 1.5, py: 0.5 }, children: [
18877
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(LabelValue, { label: "Principal", value: parsedIAM.principal }),
18878
+ parsedIAM.details.actions && parsedIAM.details.actions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
18879
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Actions" }),
18880
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, { children: parsedIAM.details.actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { sx: { display: "block" }, variant: "caption", children: action }, action)) })
18794
18881
  ] }),
18795
- parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime134.jsxs)(import_material11.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr" }, children: [
18796
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Resources" }),
18797
- /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Typography, { sx: { display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) })
18882
+ parsedIAM.details.resources && parsedIAM.details.resources.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr" }, children: [
18883
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: "Resources" }),
18884
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, { children: parsedIAM.details.resources.map((resource) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Typography, { sx: { display: "block", wordBreak: "break-all" }, variant: "caption", children: resource }, resource)) })
18798
18885
  ] })
18799
18886
  ] })
18800
18887
  ] });
18801
18888
  };
18802
- var IAMPermissionDetail = ({ events }) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_material11.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(IAMPermissionItem, { event }, `${event.span_id}-${event.event_id}`)) });
18889
+ var IAMPermissionDetail = ({ events }) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IAMPermissionItem, { event }, `${event.span_id}-${event.event_id}`)) });
18803
18890
 
18804
18891
  // src/components/event-details/payload-viewer.tsx
18805
- var import_material13 = require("@mui/material");
18892
+ var import_material14 = require("@mui/material");
18806
18893
 
18807
18894
  // node_modules/@textea/json-viewer/dist/index.mjs
18808
- var import_jsx_runtime135 = require("react/jsx-runtime");
18809
- var import_material12 = require("@mui/material");
18895
+ var import_jsx_runtime136 = require("react/jsx-runtime");
18896
+ var import_material13 = require("@mui/material");
18810
18897
  var import_react54 = require("react");
18811
18898
  var import_zustand = require("zustand");
18812
18899
  var import_copy_to_clipboard = __toESM(require_copy_to_clipboard(), 1);
@@ -19161,7 +19248,7 @@ function useInspect(path, value, nestedIndex) {
19161
19248
  setInspect
19162
19249
  ];
19163
19250
  }
19164
- var DataBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19251
+ var DataBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19165
19252
  component: "div",
19166
19253
  ...props,
19167
19254
  sx: {
@@ -19172,7 +19259,7 @@ var DataBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_m
19172
19259
  var DataTypeLabel = (param) => {
19173
19260
  let { dataType, enable = true } = param;
19174
19261
  if (!enable) return null;
19175
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
19262
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
19176
19263
  className: "data-type-label",
19177
19264
  sx: {
19178
19265
  mx: 0.5,
@@ -19190,18 +19277,18 @@ function defineEasyType(param) {
19190
19277
  const storeDisplayDataTypes = useJsonViewerStore((store) => store.displayDataTypes);
19191
19278
  const color2 = useJsonViewerStore((store) => store.colorspace[colorKey]);
19192
19279
  const onSelect = useJsonViewerStore((store) => store.onSelect);
19193
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(DataBox, {
19280
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
19194
19281
  onClick: () => onSelect === null || onSelect === void 0 ? void 0 : onSelect(props.path, props.value),
19195
19282
  sx: {
19196
19283
  color: color2
19197
19284
  },
19198
19285
  children: [
19199
- displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataTypeLabel, {
19286
+ displayTypeLabel && storeDisplayDataTypes && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataTypeLabel, {
19200
19287
  dataType: type
19201
19288
  }),
19202
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
19289
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
19203
19290
  className: "".concat(type, "-value"),
19204
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Render, {
19291
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Render, {
19205
19292
  path: props.path,
19206
19293
  inspect: props.inspect,
19207
19294
  setInspect: props.setInspect,
@@ -19241,7 +19328,7 @@ function defineEasyType(param) {
19241
19328
  }, [
19242
19329
  setValue
19243
19330
  ]);
19244
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.InputBase, {
19331
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.InputBase, {
19245
19332
  autoFocus: true,
19246
19333
  value,
19247
19334
  onChange: handleChange,
@@ -19281,7 +19368,7 @@ var booleanType = defineEasyType({
19281
19368
  },
19282
19369
  Renderer: (param) => {
19283
19370
  let { value } = param;
19284
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19371
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19285
19372
  children: value ? "true" : "false"
19286
19373
  });
19287
19374
  }
@@ -19300,7 +19387,7 @@ var dateType = defineEasyType({
19300
19387
  colorKey: "base0D",
19301
19388
  Renderer: (param) => {
19302
19389
  let { value } = param;
19303
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19390
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19304
19391
  children: value.toLocaleTimeString("en-us", displayOptions)
19305
19392
  });
19306
19393
  }
@@ -19329,12 +19416,12 @@ var functionName = (func) => {
19329
19416
  var lb = "{";
19330
19417
  var rb = "}";
19331
19418
  var PreFunctionType = (props) => {
19332
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.NoSsr, {
19419
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.NoSsr, {
19333
19420
  children: [
19334
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataTypeLabel, {
19421
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataTypeLabel, {
19335
19422
  dataType: "function"
19336
19423
  }),
19337
- /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, {
19424
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
19338
19425
  component: "span",
19339
19426
  className: "data-function-start",
19340
19427
  sx: {
@@ -19350,8 +19437,8 @@ var PreFunctionType = (props) => {
19350
19437
  });
19351
19438
  };
19352
19439
  var PostFunctionType = () => {
19353
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.NoSsr, {
19354
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19440
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.NoSsr, {
19441
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19355
19442
  component: "span",
19356
19443
  className: "data-function-end",
19357
19444
  children: rb
@@ -19360,15 +19447,15 @@ var PostFunctionType = () => {
19360
19447
  };
19361
19448
  var FunctionType = (props) => {
19362
19449
  const functionColor = useJsonViewerStore((store) => store.colorspace.base05);
19363
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.NoSsr, {
19364
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19450
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.NoSsr, {
19451
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19365
19452
  className: "data-function",
19366
19453
  sx: {
19367
19454
  display: props.inspect ? "block" : "inline-block",
19368
19455
  pl: props.inspect ? 2 : 0,
19369
19456
  color: functionColor
19370
19457
  },
19371
- children: props.inspect ? functionBody(props.value) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19458
+ children: props.inspect ? functionBody(props.value) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19372
19459
  component: "span",
19373
19460
  className: "data-function-body",
19374
19461
  onClick: () => props.setInspect(true),
@@ -19396,7 +19483,7 @@ var nullType = defineEasyType({
19396
19483
  displayTypeLabel: false,
19397
19484
  Renderer: () => {
19398
19485
  const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
19399
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19486
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19400
19487
  sx: {
19401
19488
  fontSize: "0.8rem",
19402
19489
  backgroundColor,
@@ -19419,7 +19506,7 @@ var nanType = defineEasyType({
19419
19506
  deserialize: (value) => parseFloat(value),
19420
19507
  Renderer: () => {
19421
19508
  const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
19422
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19509
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19423
19510
  sx: {
19424
19511
  backgroundColor,
19425
19512
  fontSize: "0.8rem",
@@ -19439,7 +19526,7 @@ var floatType = defineEasyType({
19439
19526
  deserialize: (value) => parseFloat(value),
19440
19527
  Renderer: (param) => {
19441
19528
  let { value } = param;
19442
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19529
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19443
19530
  children: value
19444
19531
  });
19445
19532
  }
@@ -19453,7 +19540,7 @@ var intType = defineEasyType({
19453
19540
  deserialize: (value) => parseFloat(value),
19454
19541
  Renderer: (param) => {
19455
19542
  let { value } = param;
19456
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19543
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19457
19544
  children: value
19458
19545
  });
19459
19546
  }
@@ -19466,16 +19553,16 @@ var bigIntType = defineEasyType({
19466
19553
  deserialize: (value) => BigInt(value.replace(/\D/g, "")),
19467
19554
  Renderer: (param) => {
19468
19555
  let { value } = param;
19469
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
19556
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
19470
19557
  children: "".concat(value, "n")
19471
19558
  });
19472
19559
  }
19473
19560
  });
19474
19561
  var BaseIcon = (param) => {
19475
19562
  let { d: d2, ...props } = param;
19476
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.SvgIcon, {
19563
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.SvgIcon, {
19477
19564
  ...props,
19478
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)("path", {
19565
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)("path", {
19479
19566
  d: d2
19480
19567
  })
19481
19568
  });
@@ -19490,55 +19577,55 @@ var Edit = "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.3
19490
19577
  var ExpandMore = "M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z";
19491
19578
  var Delete = "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6zM8 9h8v10H8zm7.5-5l-1-1h-5l-1 1H5v2h14V4z";
19492
19579
  var AddBoxIcon = (props) => {
19493
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19580
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19494
19581
  d: AddBox,
19495
19582
  ...props
19496
19583
  });
19497
19584
  };
19498
19585
  var CheckIcon = (props) => {
19499
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19586
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19500
19587
  d: Check,
19501
19588
  ...props
19502
19589
  });
19503
19590
  };
19504
19591
  var ChevronRightIcon = (props) => {
19505
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19592
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19506
19593
  d: ChevronRight,
19507
19594
  ...props
19508
19595
  });
19509
19596
  };
19510
19597
  var CircularArrowsIcon = (props) => {
19511
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19598
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19512
19599
  d: CircularArrows,
19513
19600
  ...props
19514
19601
  });
19515
19602
  };
19516
19603
  var CloseIcon = (props) => {
19517
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19604
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19518
19605
  d: Close,
19519
19606
  ...props
19520
19607
  });
19521
19608
  };
19522
19609
  var ContentCopyIcon = (props) => {
19523
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19610
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19524
19611
  d: ContentCopy,
19525
19612
  ...props
19526
19613
  });
19527
19614
  };
19528
19615
  var EditIcon = (props) => {
19529
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19616
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19530
19617
  d: Edit,
19531
19618
  ...props
19532
19619
  });
19533
19620
  };
19534
19621
  var ExpandMoreIcon = (props) => {
19535
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19622
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19536
19623
  d: ExpandMore,
19537
19624
  ...props
19538
19625
  });
19539
19626
  };
19540
19627
  var DeleteIcon = (props) => {
19541
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(BaseIcon, {
19628
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(BaseIcon, {
19542
19629
  d: Delete,
19543
19630
  ...props
19544
19631
  });
@@ -19577,7 +19664,7 @@ var PreObjectType = (props) => {
19577
19664
  props.value
19578
19665
  ]);
19579
19666
  const isTrap = useIsCycleReference(props.path, props.value);
19580
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, {
19667
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
19581
19668
  component: "span",
19582
19669
  className: "data-object-start",
19583
19670
  sx: {
@@ -19585,7 +19672,7 @@ var PreObjectType = (props) => {
19585
19672
  },
19586
19673
  children: [
19587
19674
  isArrayLike ? arrayLb : objectLb,
19588
- shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19675
+ shouldDisplaySize && props.inspect && !isEmptyValue && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19589
19676
  component: "span",
19590
19677
  sx: {
19591
19678
  pl: 0.5,
@@ -19595,16 +19682,16 @@ var PreObjectType = (props) => {
19595
19682
  },
19596
19683
  children: sizeOfValue
19597
19684
  }),
19598
- isTrap && !props.inspect && /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
19685
+ isTrap && !props.inspect && /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
19599
19686
  children: [
19600
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CircularArrowsIcon, {
19687
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CircularArrowsIcon, {
19601
19688
  sx: {
19602
19689
  fontSize: 12,
19603
19690
  color: textColor,
19604
19691
  mx: 0.5
19605
19692
  }
19606
19693
  }),
19607
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
19694
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
19608
19695
  sx: {
19609
19696
  cursor: "pointer",
19610
19697
  userSelect: "none"
@@ -19634,7 +19721,7 @@ var PostObjectType = (props) => {
19634
19721
  props.path,
19635
19722
  props.value
19636
19723
  ]);
19637
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, {
19724
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
19638
19725
  component: "span",
19639
19726
  className: "data-object-end",
19640
19727
  sx: {
@@ -19645,7 +19732,7 @@ var PostObjectType = (props) => {
19645
19732
  },
19646
19733
  children: [
19647
19734
  isArrayLike ? arrayRb : objectRb,
19648
- shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19735
+ shouldDisplaySize && (isEmptyValue || !props.inspect) ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19649
19736
  component: "span",
19650
19737
  sx: {
19651
19738
  pl: 0.5,
@@ -19685,7 +19772,7 @@ var ObjectType = (props) => {
19685
19772
  ...props.path,
19686
19773
  key
19687
19774
  ];
19688
- elements3.push(/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
19775
+ elements3.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
19689
19776
  path,
19690
19777
  value: value2,
19691
19778
  prevValue: props.prevValue instanceof Map ? props.prevValue.get(k2) : void 0,
@@ -19701,7 +19788,7 @@ var ObjectType = (props) => {
19701
19788
  while (true) {
19702
19789
  const nextResult = iterator2.next();
19703
19790
  var _nextResult_done;
19704
- elements3.push(/* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
19791
+ elements3.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
19705
19792
  path: [
19706
19793
  ...props.path,
19707
19794
  "iterator:".concat(count2)
@@ -19729,7 +19816,7 @@ var ObjectType = (props) => {
19729
19816
  ...props.path,
19730
19817
  index
19731
19818
  ];
19732
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
19819
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
19733
19820
  path,
19734
19821
  value: value2,
19735
19822
  prevValue: Array.isArray(props.prevValue) ? props.prevValue[index] : void 0,
@@ -19738,7 +19825,7 @@ var ObjectType = (props) => {
19738
19825
  });
19739
19826
  if (value.length > displayLength) {
19740
19827
  const rest = value.length - displayLength;
19741
- elements4.push(/* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(DataBox, {
19828
+ elements4.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
19742
19829
  sx: {
19743
19830
  cursor: "pointer",
19744
19831
  lineHeight: 1.5,
@@ -19761,7 +19848,7 @@ var ObjectType = (props) => {
19761
19848
  const prevElements = Array.isArray(props.prevValue) ? segmentArray(props.prevValue, groupArraysAfterLength) : void 0;
19762
19849
  const elementsLastIndex = elements3.length - 1;
19763
19850
  return elements3.map((list, index) => {
19764
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
19851
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
19765
19852
  path: props.path,
19766
19853
  value: list,
19767
19854
  nestedIndex: index,
@@ -19788,7 +19875,7 @@ var ObjectType = (props) => {
19788
19875
  ...props.path,
19789
19876
  key
19790
19877
  ];
19791
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
19878
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
19792
19879
  path,
19793
19880
  value: value2,
19794
19881
  prevValue: (_props_prevValue = props.prevValue) === null || _props_prevValue === void 0 ? void 0 : _props_prevValue[key],
@@ -19797,7 +19884,7 @@ var ObjectType = (props) => {
19797
19884
  });
19798
19885
  if (entries.length > displayLength) {
19799
19886
  const rest = entries.length - displayLength;
19800
- elements2.push(/* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(DataBox, {
19887
+ elements2.push(/* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
19801
19888
  sx: {
19802
19889
  cursor: "pointer",
19803
19890
  lineHeight: 1.5,
@@ -19835,7 +19922,7 @@ var ObjectType = (props) => {
19835
19922
  if (isEmptyValue) {
19836
19923
  return null;
19837
19924
  }
19838
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19925
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19839
19926
  className: "data-object",
19840
19927
  sx: {
19841
19928
  display: props.inspect ? "block" : "inline-block",
@@ -19844,7 +19931,7 @@ var ObjectType = (props) => {
19844
19931
  color: keyColor,
19845
19932
  borderLeft: props.inspect ? "1px solid ".concat(borderColor) : "none"
19846
19933
  },
19847
- children: props.inspect ? elements : !isTrap && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19934
+ children: props.inspect ? elements : !isTrap && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19848
19935
  component: "span",
19849
19936
  className: "data-object-body",
19850
19937
  onClick: () => props.setInspect(true),
@@ -19876,7 +19963,7 @@ var stringType = defineEasyType({
19876
19963
  const collapseStringsAfterLength = useJsonViewerStore((store) => store.collapseStringsAfterLength);
19877
19964
  const value = showRest ? props.value : props.value.slice(0, collapseStringsAfterLength);
19878
19965
  const hasRest = props.value.length > collapseStringsAfterLength;
19879
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, {
19966
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
19880
19967
  component: "span",
19881
19968
  sx: {
19882
19969
  overflowWrap: "anywhere",
@@ -19894,7 +19981,7 @@ var stringType = defineEasyType({
19894
19981
  children: [
19895
19982
  '"',
19896
19983
  value,
19897
- hasRest && !showRest && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
19984
+ hasRest && !showRest && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19898
19985
  component: "span",
19899
19986
  sx: {
19900
19987
  padding: 0.5
@@ -19913,7 +20000,7 @@ var undefinedType = defineEasyType({
19913
20000
  displayTypeLabel: false,
19914
20001
  Renderer: () => {
19915
20002
  const backgroundColor = useJsonViewerStore((store) => store.colorspace.base02);
19916
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
20003
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19917
20004
  sx: {
19918
20005
  fontSize: "0.7rem",
19919
20006
  backgroundColor,
@@ -19994,7 +20081,7 @@ function useTypeComponents(value, path) {
19994
20081
  registry
19995
20082
  ]);
19996
20083
  }
19997
- var IconBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
20084
+ var IconBox = (props) => /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
19998
20085
  component: "span",
19999
20086
  ...props,
20000
20087
  sx: {
@@ -20180,18 +20267,18 @@ var DataKeyPair = (props) => {
20180
20267
  ]);
20181
20268
  const actionIcons = (0, import_react54.useMemo)(() => {
20182
20269
  if (editing) {
20183
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
20270
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
20184
20271
  children: [
20185
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20186
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CloseIcon, {
20272
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20273
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CloseIcon, {
20187
20274
  sx: {
20188
20275
  fontSize: ".8rem"
20189
20276
  },
20190
20277
  onClick: abortEditing
20191
20278
  })
20192
20279
  }),
20193
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20194
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CheckIcon, {
20280
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20281
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CheckIcon, {
20195
20282
  sx: {
20196
20283
  fontSize: ".8rem"
20197
20284
  },
@@ -20201,9 +20288,9 @@ var DataKeyPair = (props) => {
20201
20288
  ]
20202
20289
  });
20203
20290
  }
20204
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
20291
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
20205
20292
  children: [
20206
- enableClipboard && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20293
+ enableClipboard && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20207
20294
  onClick: (event) => {
20208
20295
  event.preventDefault();
20209
20296
  try {
@@ -20212,41 +20299,41 @@ var DataKeyPair = (props) => {
20212
20299
  console.error(e2);
20213
20300
  }
20214
20301
  },
20215
- children: copied ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(CheckIcon, {
20302
+ children: copied ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(CheckIcon, {
20216
20303
  sx: {
20217
20304
  fontSize: ".8rem"
20218
20305
  }
20219
- }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(ContentCopyIcon, {
20306
+ }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(ContentCopyIcon, {
20220
20307
  sx: {
20221
20308
  fontSize: ".8rem"
20222
20309
  }
20223
20310
  })
20224
20311
  }),
20225
- Editor && editable && serialize && deserialize && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20312
+ Editor && editable && serialize && deserialize && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20226
20313
  onClick: startEditing,
20227
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(EditIcon, {
20314
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(EditIcon, {
20228
20315
  sx: {
20229
20316
  fontSize: ".8rem"
20230
20317
  }
20231
20318
  })
20232
20319
  }),
20233
- enableAdd && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20320
+ enableAdd && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20234
20321
  onClick: (event) => {
20235
20322
  event.preventDefault();
20236
20323
  onAdd === null || onAdd === void 0 ? void 0 : onAdd(path);
20237
20324
  },
20238
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(AddBoxIcon, {
20325
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(AddBoxIcon, {
20239
20326
  sx: {
20240
20327
  fontSize: ".8rem"
20241
20328
  }
20242
20329
  })
20243
20330
  }),
20244
- enableDelete && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(IconBox, {
20331
+ enableDelete && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(IconBox, {
20245
20332
  onClick: (event) => {
20246
20333
  event.preventDefault();
20247
20334
  onDelete === null || onDelete === void 0 ? void 0 : onDelete(path, value);
20248
20335
  },
20249
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DeleteIcon, {
20336
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DeleteIcon, {
20250
20337
  sx: {
20251
20338
  fontSize: ".9rem"
20252
20339
  }
@@ -20294,7 +20381,7 @@ var DataKeyPair = (props) => {
20294
20381
  prevValue,
20295
20382
  nestedIndex
20296
20383
  ]);
20297
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_material12.Box, {
20384
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_material13.Box, {
20298
20385
  className: "data-key-pair",
20299
20386
  "data-testid": "data-key-pair" + path.join("."),
20300
20387
  sx: {
@@ -20306,7 +20393,7 @@ var DataKeyPair = (props) => {
20306
20393
  nestedIndex
20307
20394
  ]),
20308
20395
  children: [
20309
- /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(DataBox, {
20396
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(DataBox, {
20310
20397
  component: "span",
20311
20398
  className: "data-key",
20312
20399
  sx: {
@@ -20327,7 +20414,7 @@ var DataKeyPair = (props) => {
20327
20414
  setInspect
20328
20415
  ]),
20329
20416
  children: [
20330
- expandable ? inspect ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(ExpandMoreIcon, {
20417
+ expandable ? inspect ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(ExpandMoreIcon, {
20331
20418
  className: "data-key-toggle-expanded",
20332
20419
  sx: {
20333
20420
  fontSize: ".8rem",
@@ -20335,7 +20422,7 @@ var DataKeyPair = (props) => {
20335
20422
  cursor: "pointer"
20336
20423
  }
20337
20424
  }
20338
- }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(ChevronRightIcon, {
20425
+ }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(ChevronRightIcon, {
20339
20426
  className: "data-key-toggle-collapsed",
20340
20427
  sx: {
20341
20428
  fontSize: ".8rem",
@@ -20344,44 +20431,44 @@ var DataKeyPair = (props) => {
20344
20431
  }
20345
20432
  }
20346
20433
  }) : null,
20347
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
20434
+ /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
20348
20435
  ref: highlightContainer,
20349
20436
  className: "data-key-key",
20350
20437
  component: "span",
20351
- children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
20438
+ children: isRoot && depth === 0 ? rootName !== false ? quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
20352
20439
  children: [
20353
20440
  '"',
20354
20441
  rootName,
20355
20442
  '"'
20356
20443
  ]
20357
- }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
20444
+ }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
20358
20445
  children: rootName
20359
- }) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(KeyRenderer, {
20446
+ }) : null : KeyRenderer.when(downstreamProps) ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(KeyRenderer, {
20360
20447
  ...downstreamProps
20361
- }) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
20448
+ }) : nestedIndex === void 0 && (isNumberKey ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
20362
20449
  component: "span",
20363
20450
  style: {
20364
20451
  color: numberKeyColor,
20365
20452
  userSelect: isNumberKey ? "none" : "auto"
20366
20453
  },
20367
20454
  children: key
20368
- }) : quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)(import_jsx_runtime135.Fragment, {
20455
+ }) : quotesOnKeys ? /* @__PURE__ */ (0, import_jsx_runtime136.jsxs)(import_jsx_runtime136.Fragment, {
20369
20456
  children: [
20370
20457
  '"',
20371
20458
  key,
20372
20459
  '"'
20373
20460
  ]
20374
- }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_jsx_runtime135.Fragment, {
20461
+ }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_jsx_runtime136.Fragment, {
20375
20462
  children: key
20376
20463
  }))
20377
20464
  }),
20378
- isRoot ? rootName !== false && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
20465
+ isRoot ? rootName !== false && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
20379
20466
  className: "data-key-colon",
20380
20467
  sx: {
20381
20468
  mr: 0.5
20382
20469
  },
20383
20470
  children: ":"
20384
- }) : nestedIndex === void 0 && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
20471
+ }) : nestedIndex === void 0 && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
20385
20472
  className: "data-key-colon",
20386
20473
  sx: {
20387
20474
  mr: 0.5,
@@ -20392,29 +20479,29 @@ var DataKeyPair = (props) => {
20392
20479
  },
20393
20480
  children: ":"
20394
20481
  }),
20395
- PreComponent && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(PreComponent, {
20482
+ PreComponent && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(PreComponent, {
20396
20483
  ...downstreamProps
20397
20484
  }),
20398
20485
  isHover && expandable && inspect && actionIcons
20399
20486
  ]
20400
20487
  }),
20401
- editing && editable ? Editor && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Editor, {
20488
+ editing && editable ? Editor && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Editor, {
20402
20489
  path,
20403
20490
  value: tempValue,
20404
20491
  setValue: setTempValue,
20405
20492
  abortEditing,
20406
20493
  commitEditing
20407
- }) : Component ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(Component, {
20494
+ }) : Component ? /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(Component, {
20408
20495
  ...downstreamProps
20409
- }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Box, {
20496
+ }) : /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, {
20410
20497
  component: "span",
20411
20498
  className: "data-value-fallback",
20412
20499
  children: "fallback: ".concat(value)
20413
20500
  }),
20414
- PostComponent && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(PostComponent, {
20501
+ PostComponent && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(PostComponent, {
20415
20502
  ...downstreamProps
20416
20503
  }),
20417
- !last && displayComma && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataBox, {
20504
+ !last && displayComma && /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataBox, {
20418
20505
  children: ","
20419
20506
  }),
20420
20507
  isHover && expandable && !inspect && actionIcons,
@@ -20534,7 +20621,7 @@ var JsonViewerInner = (props) => {
20534
20621
  const onMouseLeave = (0, import_react54.useCallback)(() => setHover(null), [
20535
20622
  setHover
20536
20623
  ]);
20537
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.Paper, {
20624
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Paper, {
20538
20625
  elevation: 0,
20539
20626
  className: clsx(themeCls, props.className),
20540
20627
  style: props.style,
@@ -20545,7 +20632,7 @@ var JsonViewerInner = (props) => {
20545
20632
  ...props.sx
20546
20633
  },
20547
20634
  onMouseLeave,
20548
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(DataKeyPair, {
20635
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(DataKeyPair, {
20549
20636
  value,
20550
20637
  prevValue,
20551
20638
  path: emptyPath,
@@ -20570,7 +20657,7 @@ var JsonViewer = function JsonViewer2(props) {
20570
20657
  const theme = (0, import_react54.useMemo)(() => {
20571
20658
  const backgroundColor = typeof themeType === "object" ? themeType.base00 : themeType === "dark" ? darkColorspace.base00 : lightColorspace.base00;
20572
20659
  const foregroundColor = typeof themeType === "object" ? themeType.base07 : themeType === "dark" ? darkColorspace.base07 : lightColorspace.base07;
20573
- return (0, import_material12.createTheme)({
20660
+ return (0, import_material13.createTheme)({
20574
20661
  components: {
20575
20662
  MuiPaper: {
20576
20663
  styleOverrides: {
@@ -20597,13 +20684,13 @@ var JsonViewer = function JsonViewer2(props) {
20597
20684
  };
20598
20685
  const jsonViewerStore = (0, import_react54.useMemo)(() => createJsonViewerStore(props), []);
20599
20686
  const typeRegistryStore = (0, import_react54.useMemo)(() => createTypeRegistryStore(), []);
20600
- return /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_material12.ThemeProvider, {
20687
+ return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.ThemeProvider, {
20601
20688
  theme,
20602
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(TypeRegistryStoreContext.Provider, {
20689
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(TypeRegistryStoreContext.Provider, {
20603
20690
  value: typeRegistryStore,
20604
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(JsonViewerStoreContext.Provider, {
20691
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(JsonViewerStoreContext.Provider, {
20605
20692
  value: jsonViewerStore,
20606
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(JsonViewerInner, {
20693
+ children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(JsonViewerInner, {
20607
20694
  ...mixedProps
20608
20695
  })
20609
20696
  })
@@ -20613,7 +20700,7 @@ var JsonViewer = function JsonViewer2(props) {
20613
20700
 
20614
20701
  // src/components/event-details/payload-viewer.tsx
20615
20702
  var import_react55 = require("react");
20616
- var import_jsx_runtime136 = require("react/jsx-runtime");
20703
+ var import_jsx_runtime137 = require("react/jsx-runtime");
20617
20704
  function tryParseJson(value) {
20618
20705
  if (typeof value !== "string") {
20619
20706
  return value;
@@ -20625,8 +20712,8 @@ function tryParseJson(value) {
20625
20712
  }
20626
20713
  }
20627
20714
  var PayloadViewer = (0, import_react55.memo)(({ sx, testId, value }) => {
20628
- const theme = (0, import_material13.useTheme)();
20629
- return /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(import_material13.Box, { "data-testid": testId, sx: { backgroundColor: "background.default", borderRadius: 1, fontSize: 12, overflow: "auto", p: 1, ...sx }, children: /* @__PURE__ */ (0, import_jsx_runtime136.jsx)(
20715
+ const theme = (0, import_material14.useTheme)();
20716
+ return /* @__PURE__ */ (0, import_jsx_runtime137.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_runtime137.jsx)(
20630
20717
  JsonViewer,
20631
20718
  {
20632
20719
  displayDataTypes: false,
@@ -20640,10 +20727,10 @@ var PayloadViewer = (0, import_react55.memo)(({ sx, testId, value }) => {
20640
20727
  });
20641
20728
 
20642
20729
  // src/components/event-details/event-detail.tsx
20643
- var import_jsx_runtime137 = require("react/jsx-runtime");
20644
- var DetailRow2 = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material14.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
20645
- /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material14.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
20646
- /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material14.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material14.Typography, { sx: { color: "text.primary", whiteSpace: "pre-wrap" }, variant: "caption", children: content }) : content })
20730
+ var import_jsx_runtime138 = require("react/jsx-runtime");
20731
+ var DetailRow2 = ({ content, label }) => /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "72px 1fr", mb: 0.5 }, children: [
20732
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Typography, { color: "text.secondary", sx: { fontWeight: 600 }, variant: "caption", children: label }),
20733
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Box, { children: typeof content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Typography, { sx: { color: "text.primary", whiteSpace: "pre-wrap" }, variant: "caption", children: content }) : content })
20647
20734
  ] });
20648
20735
  var EventMessage = ({ event }) => {
20649
20736
  const [isOpen, setIsOpen] = (0, import_react56.useState)(false);
@@ -20675,21 +20762,21 @@ var EventMessage = ({ event }) => {
20675
20762
  () => isOverflowing || hasAdditionalContent,
20676
20763
  [isOverflowing, hasAdditionalContent]
20677
20764
  );
20678
- return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material14.Box, { sx: { display: "flex", flexDirection: "column" }, children: [
20679
- /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material14.Box, { sx: { alignItems: "center", display: "flex" }, children: [
20680
- Boolean(shouldShowToggle) && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
20681
- import_material14.IconButton,
20765
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { sx: { display: "flex", flexDirection: "column" }, children: [
20766
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { sx: { alignItems: "center", display: "flex" }, children: [
20767
+ Boolean(shouldShowToggle) && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
20768
+ import_material15.IconButton,
20682
20769
  {
20683
20770
  onClick: () => {
20684
20771
  setIsOpen(!isOpen);
20685
20772
  },
20686
20773
  size: "small",
20687
20774
  sx: { mr: 1, p: 0 },
20688
- children: isOpen ? /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_icons_material7.KeyboardArrowDown, { sx: { fontSize: 16 } }) : /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_icons_material7.KeyboardArrowRight, { sx: { fontSize: 16 } })
20775
+ 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 } })
20689
20776
  }
20690
20777
  ),
20691
- /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
20692
- import_material14.Typography,
20778
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
20779
+ import_material15.Typography,
20693
20780
  {
20694
20781
  ref: textReference,
20695
20782
  sx: {
@@ -20706,12 +20793,12 @@ var EventMessage = ({ event }) => {
20706
20793
  }
20707
20794
  )
20708
20795
  ] }),
20709
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material14.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: [
20710
- Boolean(parsedMessage.message) && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(DetailRow2, { content: parsedMessage.message, label: "Message" }),
20711
- Boolean(parsedMessage.details) && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
20796
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime138.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_runtime138.jsx)(IAMEventDetail, { event }) : /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_jsx_runtime138.Fragment, { children: [
20797
+ Boolean(parsedMessage.message) && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(DetailRow2, { content: parsedMessage.message, label: "Message" }),
20798
+ Boolean(parsedMessage.details) && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
20712
20799
  DetailRow2,
20713
20800
  {
20714
- content: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(PayloadViewer, { sx: { px: 0 }, value: tryParseJson(parsedMessage.details) }),
20801
+ content: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(PayloadViewer, { sx: { px: 0 }, value: tryParseJson(parsedMessage.details) }),
20715
20802
  label: "Details"
20716
20803
  }
20717
20804
  )
@@ -20743,15 +20830,15 @@ var EventDetail = ({
20743
20830
  type
20744
20831
  }) => {
20745
20832
  if (type === "permission") {
20746
- return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(IAMPermissionDetail, { events });
20833
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(IAMPermissionDetail, { events });
20747
20834
  }
20748
20835
  const eventLevel = getEventLevelFromGroup(type);
20749
- return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material14.Box, { children: [
20750
- /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(import_material14.Box, { sx: { alignItems: "center", display: "flex", mb: 0.5 }, children: [
20751
- /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(StatusIcon, { errorLevel: eventLevel }),
20752
- /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material14.Typography, { color: "text.secondary", sx: { fontWeight: 600, ml: 0.5 }, variant: "caption", children: displayText })
20836
+ return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { children: [
20837
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Box, { sx: { alignItems: "center", display: "flex", mb: 0.5 }, children: [
20838
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(StatusIcon2, { errorLevel: eventLevel }),
20839
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Typography, { color: "text.secondary", sx: { fontWeight: 600, ml: 0.5 }, variant: "caption", children: displayText })
20753
20840
  ] }),
20754
- /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material14.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_material14.Box, { sx: { maxWidth: "100%", mb: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(EventMessage, { event }) }, `${event.span_id}-${event.event_id}`)) })
20841
+ /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Box, { children: events.map((event) => /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Box, { sx: { maxWidth: "100%", mb: 0.5 }, children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(EventMessage, { event }) }, `${event.span_id}-${event.event_id}`)) })
20755
20842
  ] });
20756
20843
  };
20757
20844
 
@@ -25133,16 +25220,16 @@ var ProtocolLib = class {
25133
25220
  if (output !== void 0 && queryErrorHeader != null) {
25134
25221
  const [Code, Type] = queryErrorHeader.split(";");
25135
25222
  const entries = Object.entries(output);
25136
- const Error3 = {
25223
+ const Error4 = {
25137
25224
  Code,
25138
25225
  Type
25139
25226
  };
25140
- Object.assign(output, Error3);
25227
+ Object.assign(output, Error4);
25141
25228
  for (const [k2, v2] of entries) {
25142
- Error3[k2 === "message" ? "Message" : k2] = v2;
25229
+ Error4[k2 === "message" ? "Message" : k2] = v2;
25143
25230
  }
25144
- delete Error3.__type;
25145
- output.Error = Error3;
25231
+ delete Error4.__type;
25232
+ output.Error = Error4;
25146
25233
  }
25147
25234
  }
25148
25235
  queryCompatOutput(queryCompatErrorData, errorData) {
@@ -30442,9 +30529,9 @@ var QueryStatus = {
30442
30529
  };
30443
30530
 
30444
30531
  // src/components/event-details/lambda-invoke-logs-section.tsx
30445
- var import_material15 = require("@mui/material");
30532
+ var import_material16 = require("@mui/material");
30446
30533
  var import_react57 = require("react");
30447
- var import_jsx_runtime138 = require("react/jsx-runtime");
30534
+ var import_jsx_runtime139 = require("react/jsx-runtime");
30448
30535
  var POLL_INTERVAL_MS = 1e3;
30449
30536
  async function pollQueryResults(client, queryId) {
30450
30537
  return client.send(new GetQueryResultsCommand({ queryId }));
@@ -30534,30 +30621,30 @@ function useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, en
30534
30621
  var LambdaInvokeLogsSection = ({ endTimeNano, functionName: functionName2, region, requestId, startTimeNano }) => {
30535
30622
  const { error, loading, logs } = useLambdaInvokeLogs(functionName2, requestId, region, startTimeNano, endTimeNano);
30536
30623
  if (loading) {
30537
- return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(import_material15.Stack, { alignItems: "center", direction: "row", spacing: 1, children: [
30538
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.CircularProgress, { size: 14 }),
30539
- /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Typography, { color: "text.secondary", variant: "body2", children: "Loading logs\u2026" })
30624
+ return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(import_material16.Stack, { alignItems: "center", direction: "row", spacing: 1, children: [
30625
+ /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.CircularProgress, { size: 14 }),
30626
+ /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Typography, { color: "text.secondary", variant: "body2", children: "Loading logs\u2026" })
30540
30627
  ] });
30541
30628
  }
30542
30629
  if (error !== void 0) {
30543
- return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Typography, { color: "error", variant: "body2", children: error.message });
30630
+ return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Typography, { color: "error", variant: "body2", children: error.message });
30544
30631
  }
30545
30632
  if (logs.length === 0) {
30546
- return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.Typography, { color: "text.secondary", variant: "body2", children: "No logs found for this invocation." });
30633
+ return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Typography, { color: "text.secondary", variant: "body2", children: "No logs found for this invocation." });
30547
30634
  }
30548
- return /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_material15.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_material15.Typography, { variant: "body2", children: `[${log.timestamp}] ${log.message}` }, log.ptr)) }) });
30635
+ return /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.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_material16.Typography, { variant: "body2", children: `[${log.timestamp}] ${log.message}` }, log.ptr)) }) });
30549
30636
  };
30550
30637
 
30551
30638
  // src/components/event-details/toggle-section.tsx
30552
- var import_icons_material8 = require("@mui/icons-material");
30553
- var import_material16 = require("@mui/material");
30639
+ var import_icons_material9 = require("@mui/icons-material");
30640
+ var import_material17 = require("@mui/material");
30554
30641
  var import_react58 = require("react");
30555
- var import_jsx_runtime139 = require("react/jsx-runtime");
30642
+ var import_jsx_runtime140 = require("react/jsx-runtime");
30556
30643
  var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
30557
30644
  const [isOpen, setIsOpen] = (0, import_react58.useState)(initialOpen);
30558
- return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(import_material16.Box, { sx: { mt: 4 }, children: [
30559
- /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
30560
- import_material16.Box,
30645
+ return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { sx: { mt: 4 }, children: [
30646
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(
30647
+ import_material17.Box,
30561
30648
  {
30562
30649
  onClick: () => {
30563
30650
  setIsOpen(!isOpen);
@@ -30570,8 +30657,8 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
30570
30657
  mb: 1
30571
30658
  },
30572
30659
  children: [
30573
- /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(
30574
- import_material16.Box,
30660
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(
30661
+ import_material17.Box,
30575
30662
  {
30576
30663
  role: "button",
30577
30664
  sx: {
@@ -30580,23 +30667,23 @@ var ToggleSection = ({ action, children, headline, initialOpen = true }) => {
30580
30667
  gap: 1
30581
30668
  },
30582
30669
  children: [
30583
- /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Typography, { sx: { fontWeight: 600 }, variant: "subtitle2", children: headline }),
30584
- isOpen ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons_material8.KeyboardArrowDown, { sx: { color: "text.secondary", height: 20, width: 20 } }) : /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_icons_material8.KeyboardArrowRight, { sx: { color: "text.secondary", height: 20, width: 20 } })
30670
+ /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "subtitle2", children: headline }),
30671
+ 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 } })
30585
30672
  ]
30586
30673
  }
30587
30674
  ),
30588
- action !== false && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Box, { onClick: (event) => {
30675
+ action !== false && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Box, { onClick: (event) => {
30589
30676
  event.stopPropagation();
30590
30677
  }, children: action })
30591
30678
  ]
30592
30679
  }
30593
30680
  ),
30594
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_material16.Box, { children })
30681
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Box, { children })
30595
30682
  ] });
30596
30683
  };
30597
30684
 
30598
30685
  // src/components/event-details/event-details.tsx
30599
- var import_jsx_runtime140 = require("react/jsx-runtime");
30686
+ var import_jsx_runtime141 = require("react/jsx-runtime");
30600
30687
  var checkIsLambdaInvoke = (span) => {
30601
30688
  if (span.service_name !== "lambda") {
30602
30689
  return false;
@@ -30617,7 +30704,7 @@ var EventDetails = ({ onClose, selectedEvent }) => {
30617
30704
  );
30618
30705
  const [parseNestedJson, setParseNestedJson] = (0, import_react59.useState)(true);
30619
30706
  if (!selectedEvent) {
30620
- return /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Box, { sx: { p: 3, textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { color: "text.secondary", variant: "body2", children: "Select an event to view details" }) });
30707
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Box, { sx: { p: 3, textAlign: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { color: "text.secondary", variant: "body2", children: "Select an event to view details" }) });
30621
30708
  }
30622
30709
  const isLambdaInvoke = checkIsLambdaInvoke(selectedEvent);
30623
30710
  const isSqsSendMessage = checkIsSqsSendMessage(selectedEvent);
@@ -30640,9 +30727,9 @@ var EventDetails = ({ onClose, selectedEvent }) => {
30640
30727
  const exceptionPayload = tryParseJson(selectedEvent.attributes?.["localstack.aws.service.exception"]);
30641
30728
  const hasPayloads = requestPayload !== void 0 || responsePayload !== void 0 || exceptionPayload !== void 0 || isResponseSuppressed;
30642
30729
  const duration = selectedEvent.end_time_unix_nano ? ((BigInt(selectedEvent.end_time_unix_nano) - BigInt(selectedEvent.start_time_unix_nano)) / BigInt("1000000")).toString() : void 0;
30643
- return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { "data-testid": EVENT_DETAILS_TEST_ID, sx: { display: "flex", flexDirection: "column", height: "100%" }, children: [
30644
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(
30645
- import_material17.Box,
30730
+ return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { "data-testid": EVENT_DETAILS_TEST_ID, sx: { display: "flex", flexDirection: "column", height: "100%" }, children: [
30731
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(
30732
+ import_material18.Box,
30646
30733
  {
30647
30734
  sx: {
30648
30735
  alignItems: "center",
@@ -30654,64 +30741,64 @@ var EventDetails = ({ onClose, selectedEvent }) => {
30654
30741
  py: 1
30655
30742
  },
30656
30743
  children: [
30657
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "h6", children: "Operation Details" }) }),
30658
- onClose && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.IconButton, { "data-testid": EVENT_DETAILS_CLOSE_BUTTON_TEST_ID, onClick: onClose, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_icons_material9.Close, {}) })
30744
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Box, { children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "h6", children: "Operation Details" }) }),
30745
+ onClose && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.IconButton, { "data-testid": EVENT_DETAILS_CLOSE_BUTTON_TEST_ID, onClick: onClose, size: "small", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_icons_material10.Close, {}) })
30659
30746
  ]
30660
30747
  }
30661
30748
  ),
30662
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Box, { sx: { flexGrow: 1, overflow: "auto", p: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Stack, { spacing: 2, children: [
30663
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(ToggleSection, { headline: "Basic Information", children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Stack, { "data-testid": EVENT_DETAILS_SECTION_BASIC_INFORMATION_TEST_ID, spacing: 1, children: [
30664
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { sx: { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" }, children: [
30665
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30666
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Service" }),
30667
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_SERVICE_NAME_TEST_ID, variant: "body2", children: getServiceDisplayName(selectedEvent.service_name) })
30749
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Box, { sx: { flexGrow: 1, overflow: "auto", p: 2 }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Stack, { spacing: 2, children: [
30750
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ToggleSection, { headline: "Basic Information", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Stack, { "data-testid": EVENT_DETAILS_SECTION_BASIC_INFORMATION_TEST_ID, spacing: 1, children: [
30751
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { sx: { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" }, children: [
30752
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30753
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Service" }),
30754
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_SERVICE_NAME_TEST_ID, variant: "body2", children: getServiceDisplayName(selectedEvent.service_name) })
30668
30755
  ] }),
30669
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30670
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Action" }),
30671
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_OPERATION_NAME_TEST_ID, variant: "body2", children: selectedEvent.operation_name })
30756
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30757
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Action" }),
30758
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_OPERATION_NAME_TEST_ID, variant: "body2", children: selectedEvent.operation_name })
30672
30759
  ] })
30673
30760
  ] }),
30674
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { sx: cfnResourceType ? { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" } : void 0, children: [
30675
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30676
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource" }),
30677
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_RESOURCE_NAME_TEST_ID, variant: "body2", children: selectedEvent.resource_name })
30761
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { sx: cfnResourceType ? { display: "grid", gap: 2, gridTemplateColumns: "1.3fr 1fr" } : void 0, children: [
30762
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30763
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource" }),
30764
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_RESOURCE_NAME_TEST_ID, variant: "body2", children: selectedEvent.resource_name })
30678
30765
  ] }),
30679
- Boolean(cfnResourceType) && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30680
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource Type" }),
30681
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_CFN_RESOURCE_TYPE_TEST_ID, variant: "body2", children: cfnResourceType })
30766
+ Boolean(cfnResourceType) && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30767
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource Type" }),
30768
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_CFN_RESOURCE_TYPE_TEST_ID, variant: "body2", children: cfnResourceType })
30682
30769
  ] })
30683
30770
  ] }),
30684
- Boolean(resourceArn) && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30685
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource ARN" }),
30686
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_RESOURCE_ARN_TEST_ID, variant: "body2", children: resourceArn })
30771
+ Boolean(resourceArn) && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30772
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Resource ARN" }),
30773
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_RESOURCE_ARN_TEST_ID, variant: "body2", children: resourceArn })
30687
30774
  ] }),
30688
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "1.3fr 1fr" }, children: [
30689
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30690
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Account" }),
30691
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_ACCOUNT_TEST_ID, variant: "body2", children: selectedEvent.account_id })
30775
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: "1.3fr 1fr" }, children: [
30776
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30777
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Account" }),
30778
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_ACCOUNT_TEST_ID, variant: "body2", children: selectedEvent.account_id })
30692
30779
  ] }),
30693
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30694
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Region" }),
30695
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_REGION_TEST_ID, variant: "body2", children: selectedEvent.region })
30780
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30781
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Region" }),
30782
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_REGION_TEST_ID, variant: "body2", children: selectedEvent.region })
30696
30783
  ] })
30697
30784
  ] }),
30698
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: duration === void 0 ? "1fr" : "1.3fr 1fr" }, children: [
30699
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30700
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Start Time" }),
30701
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_START_TIME_TEST_ID, variant: "body2", children: unixNanoToDate(selectedEvent.start_time_unix_nano)?.toISOString() })
30785
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { sx: { display: "grid", gap: 1, gridTemplateColumns: duration === void 0 ? "1fr" : "1.3fr 1fr" }, children: [
30786
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30787
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Start Time" }),
30788
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_START_TIME_TEST_ID, variant: "body2", children: unixNanoToDate(selectedEvent.start_time_unix_nano)?.toISOString() })
30702
30789
  ] }),
30703
- duration !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30704
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Duration" }),
30705
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Typography, { "data-testid": EVENT_DETAILS_DURATION_TEST_ID, variant: "body2", children: [
30790
+ duration !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30791
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Duration" }),
30792
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Typography, { "data-testid": EVENT_DETAILS_DURATION_TEST_ID, variant: "body2", children: [
30706
30793
  duration,
30707
30794
  "ms"
30708
30795
  ] })
30709
30796
  ] })
30710
30797
  ] }),
30711
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30712
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Status" }),
30713
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Stack, { alignItems: "center", direction: "row", flexWrap: "wrap", gap: 1, sx: { mb: eventGroups.errors || eventGroups.warnings ? 1 : 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
30714
- import_material17.Chip,
30798
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30799
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Status" }),
30800
+ /* @__PURE__ */ (0, import_jsx_runtime141.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_runtime141.jsx)(
30801
+ import_material18.Chip,
30715
30802
  {
30716
30803
  color: selectedEvent.status_code === 2 ? "error" : selectedEvent.status_code === 1 ? "success" : "default",
30717
30804
  "data-testid": EVENT_DETAILS_STATUS_TEST_ID,
@@ -30721,50 +30808,50 @@ var EventDetails = ({ onClose, selectedEvent }) => {
30721
30808
  ) })
30722
30809
  ] })
30723
30810
  ] }) }),
30724
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Divider, {}),
30725
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(ToggleSection, { headline: "Permissions", children: [
30726
- selectedEvent.iam_errors_suppressed && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.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" }),
30727
- !selectedEvent.iam_errors_suppressed && !eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { color: "text.secondary", variant: "body2", children: "There is no permission information available." }),
30728
- eventGroups.permissions && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(EventDetail, { displayText: "Permissions", events: eventGroups.permissions, type: "permission" }),
30729
- eventGroups.errors && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(EventDetail, { displayText: "Error", events: eventGroups.errors, type: "error" }),
30730
- eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(EventDetail, { displayText: "Warning", events: eventGroups.warnings, type: "warning" })
30811
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Divider, {}),
30812
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(ToggleSection, { headline: "Permissions", children: [
30813
+ selectedEvent.iam_errors_suppressed && /* @__PURE__ */ (0, import_jsx_runtime141.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" }),
30814
+ !selectedEvent.iam_errors_suppressed && !eventGroups.permissions && !eventGroups.errors && !eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { color: "text.secondary", variant: "body2", children: "There is no permission information available." }),
30815
+ eventGroups.permissions && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Permissions", events: eventGroups.permissions, type: "permission" }),
30816
+ eventGroups.errors && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Error", events: eventGroups.errors, type: "error" }),
30817
+ eventGroups.warnings && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Warning", events: eventGroups.warnings, type: "warning" })
30731
30818
  ] }),
30732
- hasPayloads && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_jsx_runtime140.Fragment, { children: [
30733
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Divider, {}),
30734
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
30819
+ hasPayloads && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
30820
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Divider, {}),
30821
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
30735
30822
  ToggleSection,
30736
30823
  {
30737
- action: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
30738
- import_material17.FormControlLabel,
30824
+ action: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
30825
+ import_material18.FormControlLabel,
30739
30826
  {
30740
- control: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Switch, { checked: !parseNestedJson, onChange: (event) => {
30827
+ control: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Switch, { checked: !parseNestedJson, onChange: (event) => {
30741
30828
  setParseNestedJson(!event.target.checked);
30742
30829
  }, size: "small" }),
30743
- label: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { variant: "caption", children: "View raw data" }),
30830
+ label: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { variant: "caption", children: "View raw data" }),
30744
30831
  sx: { mr: 0 }
30745
30832
  }
30746
30833
  ),
30747
30834
  headline: "Payloads",
30748
- children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Stack, { spacing: 2, children: [
30749
- requestPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30750
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Request" }),
30751
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(PayloadViewer, { testId: EVENT_DETAILS_REQUEST_PAYLOAD, value: requestPayload })
30835
+ children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Stack, { spacing: 2, children: [
30836
+ requestPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30837
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Request" }),
30838
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(PayloadViewer, { testId: EVENT_DETAILS_REQUEST_PAYLOAD, value: requestPayload })
30752
30839
  ] }),
30753
- (responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30754
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Response" }),
30755
- isResponseSuppressed ? /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Box, { sx: { py: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.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 })
30840
+ (responsePayload !== void 0 || isResponseSuppressed) && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30841
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Response" }),
30842
+ isResponseSuppressed ? /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Box, { sx: { py: 1 }, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.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 })
30756
30843
  ] }),
30757
- exceptionPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30758
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Exception" }),
30759
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(PayloadViewer, { testId: EVENT_DETAILS_EXCEPTION_PAYLOAD_TEST_ID, value: exceptionPayload })
30844
+ exceptionPayload !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30845
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Exception" }),
30846
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(PayloadViewer, { testId: EVENT_DETAILS_EXCEPTION_PAYLOAD_TEST_ID, value: exceptionPayload })
30760
30847
  ] })
30761
30848
  ] })
30762
30849
  }
30763
30850
  )
30764
30851
  ] }),
30765
- isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_jsx_runtime140.Fragment, { children: [
30766
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Divider, {}),
30767
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(ToggleSection, { headline: "Lambda Logs", children: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(
30852
+ isLambdaInvoke && requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_jsx_runtime141.Fragment, { children: [
30853
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Divider, {}),
30854
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ToggleSection, { headline: "Lambda Logs", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
30768
30855
  LambdaInvokeLogsSection,
30769
30856
  {
30770
30857
  endTimeNano: selectedEvent.end_time_unix_nano ?? selectedEvent.start_time_unix_nano,
@@ -30775,21 +30862,21 @@ var EventDetails = ({ onClose, selectedEvent }) => {
30775
30862
  }
30776
30863
  ) })
30777
30864
  ] }),
30778
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Divider, {}),
30779
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(ToggleSection, { headline: "Advanced Information", initialOpen: false, children: /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Stack, { spacing: 1, children: [
30780
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30781
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Span ID" }),
30782
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_SPAN_ID_TEST_ID, variant: "body2", children: selectedEvent.span_id })
30865
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Divider, {}),
30866
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(ToggleSection, { headline: "Advanced Information", initialOpen: false, children: /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Stack, { spacing: 1, children: [
30867
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30868
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Span ID" }),
30869
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_SPAN_ID_TEST_ID, variant: "body2", children: selectedEvent.span_id })
30783
30870
  ] }),
30784
- /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30785
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Trace ID" }),
30786
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_TRACE_ID_TEST_ID, variant: "body2", children: selectedEvent.trace_id })
30871
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30872
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Trace ID" }),
30873
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_TRACE_ID_TEST_ID, variant: "body2", children: selectedEvent.trace_id })
30787
30874
  ] }),
30788
- requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)(import_material17.Box, { children: [
30789
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Request ID" }),
30790
- /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(import_material17.Typography, { "data-testid": EVENT_DETAILS_REQUEST_ID_TEST_ID, variant: "body2", children: requestId })
30875
+ requestId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)(import_material18.Box, { children: [
30876
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { sx: { fontWeight: 600 }, variant: "caption", children: "Request ID" }),
30877
+ /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Typography, { "data-testid": EVENT_DETAILS_REQUEST_ID_TEST_ID, variant: "body2", children: requestId })
30791
30878
  ] }),
30792
- eventGroups.info && /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(EventDetail, { displayText: "Info", events: eventGroups.info, type: "info" })
30879
+ eventGroups.info && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(EventDetail, { displayText: "Info", events: eventGroups.info, type: "info" })
30793
30880
  ] }) })
30794
30881
  ] }) })
30795
30882
  ] });
@@ -30797,32 +30884,32 @@ var EventDetails = ({ onClose, selectedEvent }) => {
30797
30884
 
30798
30885
  // src/components/trace-graph/trace-graph.tsx
30799
30886
  var import_base = require("@xyflow/react/dist/base.css");
30800
- var import_material21 = require("@mui/material");
30887
+ var import_material22 = require("@mui/material");
30801
30888
  var import_react65 = require("@xyflow/react");
30802
30889
  var import_react66 = require("react");
30803
30890
 
30804
30891
  // src/components/trace-graph/service-node.tsx
30805
- var import_material19 = require("@mui/material");
30892
+ var import_material20 = require("@mui/material");
30806
30893
  var import_style = require("@xyflow/react/dist/style.css");
30807
30894
  var import_react61 = require("@xyflow/react");
30808
30895
  var import_react62 = require("react");
30809
30896
 
30810
30897
  // src/components/trace-graph/problem-indicator.tsx
30811
- var import_icons_material10 = require("@mui/icons-material");
30812
- var import_material18 = require("@mui/material");
30898
+ var import_icons_material11 = require("@mui/icons-material");
30899
+ var import_material19 = require("@mui/material");
30813
30900
  var import_react60 = require("react");
30814
- var import_jsx_runtime141 = require("react/jsx-runtime");
30901
+ var import_jsx_runtime142 = require("react/jsx-runtime");
30815
30902
  var ProblemIndicator = ({ error }) => {
30816
30903
  const icon = (0, import_react60.useMemo)(() => {
30817
30904
  switch (error.level) {
30818
30905
  case "error": {
30819
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_icons_material10.Error, { sx: { color: "#d32f2f", fontSize: "14px" } });
30906
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material11.Error, { sx: { color: "#d32f2f", fontSize: "14px" } });
30820
30907
  }
30821
30908
  case "warning": {
30822
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_icons_material10.Warning, { sx: { color: "#ff9800", fontSize: "14px" } });
30909
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material11.Warning, { sx: { color: "#ff9800", fontSize: "14px" } });
30823
30910
  }
30824
30911
  default: {
30825
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_icons_material10.Info, { sx: { color: "#2196f3", fontSize: "14px" } });
30912
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_icons_material11.Info, { sx: { color: "#2196f3", fontSize: "14px" } });
30826
30913
  }
30827
30914
  }
30828
30915
  }, [error.level]);
@@ -30839,8 +30926,8 @@ var ProblemIndicator = ({ error }) => {
30839
30926
  }
30840
30927
  }
30841
30928
  }, [error.level]);
30842
- return /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(import_material18.Tooltip, { arrow: true, title: error.message ?? "Issue detected", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
30843
- import_material18.Box,
30929
+ return /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_material19.Tooltip, { arrow: true, title: error.message ?? "Issue detected", children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
30930
+ import_material19.Box,
30844
30931
  {
30845
30932
  sx: {
30846
30933
  alignItems: "center",
@@ -30859,17 +30946,17 @@ var ProblemIndicator = ({ error }) => {
30859
30946
  };
30860
30947
 
30861
30948
  // src/components/trace-graph/service-node.tsx
30862
- var import_jsx_runtime142 = require("react/jsx-runtime");
30949
+ var import_jsx_runtime143 = require("react/jsx-runtime");
30863
30950
  var handleStyle = {
30864
30951
  backgroundColor: "white",
30865
30952
  borderColor: "lightgray",
30866
30953
  opacity: 0
30867
30954
  };
30868
30955
  var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
30869
- const theme = (0, import_material19.useTheme)();
30956
+ const theme = (0, import_material20.useTheme)();
30870
30957
  const hasErrors = (data.event.errors && data.event.errors.length > 0) ?? false;
30871
- return /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
30872
- import_material19.Box,
30958
+ return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
30959
+ import_material20.Box,
30873
30960
  {
30874
30961
  "data-testid": SERVICE_NODE_TEST_ID,
30875
30962
  role: "button",
@@ -30891,19 +30978,19 @@ var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
30891
30978
  },
30892
30979
  tabIndex: 0,
30893
30980
  children: [
30894
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_react61.Handle, { position: import_react61.Position.Left, style: handleStyle, type: "target" }),
30895
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_react61.Handle, { position: import_react61.Position.Right, style: handleStyle, type: "source" }),
30896
- /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
30897
- import_material19.Stack,
30981
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_react61.Handle, { position: import_react61.Position.Left, style: handleStyle, type: "target" }),
30982
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_react61.Handle, { position: import_react61.Position.Right, style: handleStyle, type: "source" }),
30983
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
30984
+ import_material20.Stack,
30898
30985
  {
30899
30986
  alignItems: "center",
30900
30987
  direction: "row",
30901
30988
  sx: { gap: "8px", pb: "2px", pt: "6px", px: "8px" },
30902
30989
  children: [
30903
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_material19.Box, { sx: { borderRadius: "4px", flexShrink: 0, lineHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(AwsServiceIcon, { hideTooltip: true, service: data.event.service_name, size: "medium" }) }),
30904
- /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(import_material19.Stack, { sx: { minWidth: 0 }, children: [
30905
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
30906
- import_material19.Typography,
30990
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_material20.Box, { sx: { borderRadius: "4px", flexShrink: 0, lineHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(AwsServiceIcon, { hideTooltip: true, service: data.event.service_name, size: "medium" }) }),
30991
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(import_material20.Stack, { sx: { minWidth: 0 }, children: [
30992
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
30993
+ import_material20.Typography,
30907
30994
  {
30908
30995
  noWrap: true,
30909
30996
  sx: { fontWeight: 700, lineHeight: 1.25 },
@@ -30911,8 +30998,8 @@ var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
30911
30998
  children: getServiceDisplayName(data.event.service_name)
30912
30999
  }
30913
31000
  ),
30914
- data.event.resource_name != "" && /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
30915
- import_material19.Typography,
31001
+ data.event.resource_name != "" && /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31002
+ import_material20.Typography,
30916
31003
  {
30917
31004
  color: "text.secondary",
30918
31005
  noWrap: true,
@@ -30925,16 +31012,16 @@ var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
30925
31012
  ]
30926
31013
  }
30927
31014
  ),
30928
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(import_material19.Divider, { sx: { ml: "38px", mr: "8px", my: "5px" } }),
30929
- /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)(
30930
- import_material19.Stack,
31015
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_material20.Divider, { sx: { ml: "38px", mr: "8px", my: "5px" } }),
31016
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
31017
+ import_material20.Stack,
30931
31018
  {
30932
31019
  alignItems: "center",
30933
31020
  direction: "row",
30934
31021
  sx: { minWidth: 0, pb: "5px", pr: "8px", pt: "1px" },
30935
31022
  children: [
30936
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
30937
- import_material19.Box,
31023
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31024
+ import_material20.Box,
30938
31025
  {
30939
31026
  sx: {
30940
31027
  alignItems: "center",
@@ -30943,11 +31030,11 @@ var ServiceNode = (0, import_react62.memo)(({ data, selected }) => {
30943
31030
  justifyContent: "center",
30944
31031
  width: "38px"
30945
31032
  },
30946
- children: hasErrors && data.event.errors?.map((error) => /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(ProblemIndicator, { error }, error.span_id))
31033
+ children: hasErrors && data.event.errors?.map((error) => /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ProblemIndicator, { error }, error.span_id))
30947
31034
  }
30948
31035
  ),
30949
- /* @__PURE__ */ (0, import_jsx_runtime142.jsx)(
30950
- import_material19.Typography,
31036
+ /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31037
+ import_material20.Typography,
30951
31038
  {
30952
31039
  "data-testid": SERVICE_NODE_OPERATION_NAME_TEST_ID,
30953
31040
  noWrap: true,
@@ -31019,12 +31106,12 @@ var getLayoutedNodesAndEdges = (inputNodes, inputEdges) => {
31019
31106
  };
31020
31107
 
31021
31108
  // src/components/trace-graph/xyflow/controls.tsx
31022
- var import_icons_material11 = require("@mui/icons-material");
31023
- var import_material20 = require("@mui/material");
31109
+ var import_icons_material12 = require("@mui/icons-material");
31110
+ var import_material21 = require("@mui/material");
31024
31111
  var import_react63 = require("@xyflow/react");
31025
31112
  var import_react64 = require("react");
31026
31113
  var import_shallow = require("zustand/shallow");
31027
- var import_jsx_runtime143 = require("react/jsx-runtime");
31114
+ var import_jsx_runtime144 = require("react/jsx-runtime");
31028
31115
  var selector = (s2) => ({
31029
31116
  isInteractive: s2.nodesDraggable || s2.nodesConnectable || s2.elementsSelectable,
31030
31117
  maxZoomReached: s2.transform[2] >= s2.maxZoom,
@@ -31042,8 +31129,8 @@ var Controls = (0, import_react64.memo)(() => {
31042
31129
  const onFitViewHandler = () => {
31043
31130
  void fitView();
31044
31131
  };
31045
- return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
31046
- import_material20.Box,
31132
+ return /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
31133
+ import_material21.Box,
31047
31134
  {
31048
31135
  sx: {
31049
31136
  bottom: 0,
@@ -31056,33 +31143,33 @@ var Controls = (0, import_react64.memo)(() => {
31056
31143
  zIndex: 5
31057
31144
  },
31058
31145
  children: [
31059
- /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31060
- import_material20.IconButton,
31146
+ /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
31147
+ import_material21.IconButton,
31061
31148
  {
31062
31149
  className: "react-flow__controls-zoomin",
31063
31150
  disabled: maxZoomReached,
31064
31151
  onClick: onZoomInHandler,
31065
31152
  size: "small",
31066
- children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_icons_material11.Add, {})
31153
+ children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_icons_material12.Add, {})
31067
31154
  }
31068
31155
  ),
31069
- /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31070
- import_material20.IconButton,
31156
+ /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
31157
+ import_material21.IconButton,
31071
31158
  {
31072
31159
  className: "react-flow__controls-zoomout",
31073
31160
  disabled: minZoomReached,
31074
31161
  onClick: onZoomOutHandler,
31075
31162
  size: "small",
31076
- children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_icons_material11.Remove, {})
31163
+ children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_icons_material12.Remove, {})
31077
31164
  }
31078
31165
  ),
31079
- /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(
31080
- import_material20.IconButton,
31166
+ /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
31167
+ import_material21.IconButton,
31081
31168
  {
31082
31169
  className: "react-flow__controls-fitview",
31083
31170
  onClick: onFitViewHandler,
31084
31171
  size: "small",
31085
- children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_icons_material11.FitScreen, {})
31172
+ children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_icons_material12.FitScreen, {})
31086
31173
  }
31087
31174
  )
31088
31175
  ]
@@ -31091,7 +31178,7 @@ var Controls = (0, import_react64.memo)(() => {
31091
31178
  });
31092
31179
 
31093
31180
  // src/components/trace-graph/trace-graph.tsx
31094
- var import_jsx_runtime144 = require("react/jsx-runtime");
31181
+ var import_jsx_runtime145 = require("react/jsx-runtime");
31095
31182
  var nodeTypes = {
31096
31183
  service: ServiceNode
31097
31184
  };
@@ -31153,12 +31240,12 @@ var TraceGraph = ({
31153
31240
  setNodes(layoutedNodes);
31154
31241
  setEdges(layoutedEdges);
31155
31242
  }, [spans.data, initialFocusEventId, setNodes, setEdges]);
31156
- const theme = (0, import_material21.useTheme)();
31157
- return /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(import_jsx_runtime144.Fragment, { children: [
31158
- spans.error && /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
31159
- import_material21.Alert,
31243
+ const theme = (0, import_material22.useTheme)();
31244
+ return /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(import_jsx_runtime145.Fragment, { children: [
31245
+ spans.error && /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
31246
+ import_material22.Alert,
31160
31247
  {
31161
- action: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_material21.Button, { onClick: () => {
31248
+ action: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_material22.Button, { onClick: () => {
31162
31249
  onRefresh();
31163
31250
  }, children: "Retry" }),
31164
31251
  severity: "error",
@@ -31169,7 +31256,7 @@ var TraceGraph = ({
31169
31256
  ]
31170
31257
  }
31171
31258
  ),
31172
- /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
31259
+ /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
31173
31260
  import_react65.ReactFlow,
31174
31261
  {
31175
31262
  "data-testid": TRACE_GRAPH_TEST_ID,
@@ -31187,8 +31274,8 @@ var TraceGraph = ({
31187
31274
  onNodesChange,
31188
31275
  selectNodesOnDrag: false,
31189
31276
  children: [
31190
- /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(Controls, {}),
31191
- /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
31277
+ /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Controls, {}),
31278
+ /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
31192
31279
  import_react65.Background,
31193
31280
  {
31194
31281
  bgColor: theme.palette.background.default,
@@ -31202,7 +31289,7 @@ var TraceGraph = ({
31202
31289
  };
31203
31290
 
31204
31291
  // src/pages/trace-graph-page.tsx
31205
- var import_jsx_runtime145 = require("react/jsx-runtime");
31292
+ var import_jsx_runtime146 = require("react/jsx-runtime");
31206
31293
  var HEADER_HEIGHT = 56;
31207
31294
  var DRAWER_WIDTH = "35%";
31208
31295
  var Main = (0, import_styles.styled)("main", { shouldForwardProp: (property) => property !== "open" })(({ open, theme }) => ({
@@ -31220,7 +31307,7 @@ var Main = (0, import_styles.styled)("main", { shouldForwardProp: (property) =>
31220
31307
  })
31221
31308
  }
31222
31309
  }));
31223
- var StyledDrawer = (0, import_styles.styled)(import_material22.Drawer)(() => ({
31310
+ var StyledDrawer = (0, import_styles.styled)(import_material23.Drawer)(() => ({
31224
31311
  "& .MuiDrawer-paper": {
31225
31312
  bottom: 0,
31226
31313
  boxSizing: "border-box",
@@ -31251,8 +31338,8 @@ var TraceGraphView = ({
31251
31338
  traceId
31252
31339
  }) => {
31253
31340
  const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
31254
- return /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
31255
- import_material22.Box,
31341
+ return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(
31342
+ import_material23.Box,
31256
31343
  {
31257
31344
  "data-testid": TRACE_GRAPH_PAGE_TEST_ID,
31258
31345
  sx: {
@@ -31264,14 +31351,14 @@ var TraceGraphView = ({
31264
31351
  overflow: "hidden"
31265
31352
  },
31266
31353
  children: [
31267
- /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(import_material22.Box, { sx: { display: "flex", width: "100%" }, children: [
31268
- /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_material22.Button, { onClick: () => {
31354
+ /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_material23.Box, { sx: { display: "flex", width: "100%" }, children: [
31355
+ /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_material23.Button, { onClick: () => {
31269
31356
  navigateToSpansList();
31270
- }, startIcon: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_icons_material12.ArrowBack, {}), children: "Go back" }),
31271
- /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_material22.Box, { sx: { flexGrow: 1 } })
31357
+ }, startIcon: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_icons_material13.ArrowBack, {}), children: "Go back" }),
31358
+ /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_material23.Box, { sx: { flexGrow: 1 } })
31272
31359
  ] }),
31273
- /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
31274
- import_material22.Paper,
31360
+ /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
31361
+ import_material23.Paper,
31275
31362
  {
31276
31363
  sx: {
31277
31364
  display: "flex",
@@ -31280,7 +31367,7 @@ var TraceGraphView = ({
31280
31367
  position: "relative",
31281
31368
  width: "100%"
31282
31369
  },
31283
- children: shouldShowStatusMessage ? /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
31370
+ children: shouldShowStatusMessage ? /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
31284
31371
  StatusMessage,
31285
31372
  {
31286
31373
  error: statusError,
@@ -31288,15 +31375,15 @@ var TraceGraphView = ({
31288
31375
  onRetry: handleRetry,
31289
31376
  status
31290
31377
  }
31291
- ) : /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(import_jsx_runtime145.Fragment, { children: [
31292
- /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(Main, { open, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
31293
- import_material22.Box,
31378
+ ) : /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_jsx_runtime146.Fragment, { children: [
31379
+ /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(Main, { open, children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
31380
+ import_material23.Box,
31294
31381
  {
31295
31382
  sx: {
31296
31383
  height: "100%",
31297
31384
  overflow: "auto"
31298
31385
  },
31299
- children: traceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_react67.ReactFlowProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
31386
+ children: traceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(import_react67.ReactFlowProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
31300
31387
  TraceGraph,
31301
31388
  {
31302
31389
  initialFocusEventId: spanId,
@@ -31313,7 +31400,7 @@ var TraceGraphView = ({
31313
31400
  ) })
31314
31401
  }
31315
31402
  ) }),
31316
- /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(StyledDrawer, { anchor: "right", open, variant: "persistent", children: /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(EventDetails, { onClose: handleClose, selectedEvent }) })
31403
+ /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(StyledDrawer, { anchor: "right", open, variant: "persistent", children: /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(EventDetails, { onClose: handleClose, selectedEvent }) })
31317
31404
  ] })
31318
31405
  }
31319
31406
  )
@@ -31406,7 +31493,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
31406
31493
  const navigateToSpansList = (0, import_react68.useCallback)(() => {
31407
31494
  onClose?.();
31408
31495
  }, [onClose]);
31409
- return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
31496
+ return /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
31410
31497
  TraceGraphView,
31411
31498
  {
31412
31499
  fetchError,
@@ -31431,7 +31518,7 @@ var TraceGraphPage = ({ onClose, spanId, traceId }) => {
31431
31518
  };
31432
31519
 
31433
31520
  // src/pages/spans-list-page.tsx
31434
- var import_jsx_runtime146 = require("react/jsx-runtime");
31521
+ var import_jsx_runtime147 = require("react/jsx-runtime");
31435
31522
  var SpansListPage = () => {
31436
31523
  const api = useAppInspectorApi();
31437
31524
  const {
@@ -31478,9 +31565,9 @@ var SpansListPage = () => {
31478
31565
  void checkStatus();
31479
31566
  }, [api, checkStatus, clearFetchError]);
31480
31567
  const shouldShowStatusMessage = Boolean(statusError) || status?.status === "DISABLED";
31481
- return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(import_jsx_runtime146.Fragment, { children: [
31482
- /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(
31483
- import_material23.Box,
31568
+ return /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(import_jsx_runtime147.Fragment, { children: [
31569
+ /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
31570
+ import_material24.Box,
31484
31571
  {
31485
31572
  "data-testid": SPANS_LIST_PAGE_TEST_ID,
31486
31573
  sx: {
@@ -31495,7 +31582,7 @@ var SpansListPage = () => {
31495
31582
  width: "100%"
31496
31583
  },
31497
31584
  children: [
31498
- !checking && !shouldShowStatusMessage && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
31585
+ !checking && !shouldShowStatusMessage && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
31499
31586
  EmulatorVersionBanner,
31500
31587
  {
31501
31588
  compatibility: bannerDismissed && versionCompatibility === "warning" ? "ok" : versionCompatibility,
@@ -31505,7 +31592,7 @@ var SpansListPage = () => {
31505
31592
  } : void 0
31506
31593
  }
31507
31594
  ),
31508
- shouldShowStatusMessage ? /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
31595
+ shouldShowStatusMessage ? /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
31509
31596
  StatusMessage,
31510
31597
  {
31511
31598
  error: statusError,
@@ -31514,7 +31601,7 @@ var SpansListPage = () => {
31514
31601
  onRetry: handleRetry,
31515
31602
  status
31516
31603
  }
31517
- ) : /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
31604
+ ) : /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
31518
31605
  SpansList,
31519
31606
  {
31520
31607
  clearingSpans,
@@ -31542,7 +31629,7 @@ var SpansListPage = () => {
31542
31629
  ]
31543
31630
  }
31544
31631
  ),
31545
- selectedTraceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(TraceGraphPage, { onClose: () => {
31632
+ selectedTraceId !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(TraceGraphPage, { onClose: () => {
31546
31633
  setSelectedTraceId(void 0);
31547
31634
  }, spanId: selectedSpanId, traceId: selectedTraceId })
31548
31635
  ] });