@industry-theme/principal-view-panels 0.12.65 → 0.12.67

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.
@@ -95151,18 +95151,29 @@ const CanvasEditorPanel = ({
95151
95151
  isSearchOpen: false,
95152
95152
  searchQuery: ""
95153
95153
  });
95154
- useEffect(() => {
95155
- const container = canvasContainerRef.current;
95156
- if (!container) return;
95157
- const observer = new ResizeObserver(([entry]) => {
95154
+ const observerRef = useRef(null);
95155
+ const containerRefCallback = useCallback((node2) => {
95156
+ if (observerRef.current) {
95157
+ observerRef.current.disconnect();
95158
+ observerRef.current = null;
95159
+ }
95160
+ canvasContainerRef.current = node2;
95161
+ if (!node2) return;
95162
+ observerRef.current = new ResizeObserver(([entry]) => {
95158
95163
  const { width, height } = entry.contentRect;
95159
95164
  if (width > 0 && height > 0) {
95160
95165
  setContainerDimensions({ width, height });
95161
95166
  }
95162
95167
  });
95163
- observer.observe(container);
95164
- return () => observer.disconnect();
95165
- }, [state.loading]);
95168
+ observerRef.current.observe(node2);
95169
+ }, []);
95170
+ useEffect(() => {
95171
+ return () => {
95172
+ if (observerRef.current) {
95173
+ observerRef.current.disconnect();
95174
+ }
95175
+ };
95176
+ }, []);
95166
95177
  const [shouldFitToNodes, setShouldFitToNodes] = useState(false);
95167
95178
  const [fitCounter, setFitCounter] = useState(0);
95168
95179
  const [isCarouselExpanded, setIsCarouselExpanded] = useState(false);
@@ -95797,25 +95808,18 @@ const CanvasEditorPanel = ({
95797
95808
  events.off("custom", handleCustomEvent);
95798
95809
  };
95799
95810
  }, [events, workflowTemplate, state.selectedScenario, handleScenarioClick, handleScenarioDoubleClick, handleNarrativeEventClick]);
95800
- if (state.loading) {
95801
- return /* @__PURE__ */ jsxs("div", { style: {
95802
- display: "flex",
95803
- alignItems: "center",
95804
- justifyContent: "center",
95805
- height: "100%",
95806
- color: theme2.colors.textMuted,
95807
- fontFamily: theme2.fonts.body
95808
- }, children: [
95809
- /* @__PURE__ */ jsx(Loader, { size: 24, style: { animation: "spin 1s linear infinite" } }),
95810
- /* @__PURE__ */ jsx("span", { style: { marginLeft: theme2.space[2] }, children: "Loading configuration..." })
95811
- ] });
95812
- }
95813
- if (state.error) {
95814
- return /* @__PURE__ */ jsx(ErrorStateContent, { theme: theme2, error: state.error, onRetry: () => loadConfiguration() });
95815
- }
95816
- if (!state.canvas) {
95817
- return /* @__PURE__ */ jsx(EmptyStateContent, { theme: theme2 });
95818
- }
95811
+ const canvasContent = state.loading ? /* @__PURE__ */ jsxs("div", { style: {
95812
+ display: "flex",
95813
+ alignItems: "center",
95814
+ justifyContent: "center",
95815
+ height: "100%",
95816
+ width: "100%",
95817
+ color: theme2.colors.textMuted,
95818
+ fontFamily: theme2.fonts.body
95819
+ }, children: [
95820
+ /* @__PURE__ */ jsx(Loader, { size: 24, style: { animation: "spin 1s linear infinite" } }),
95821
+ /* @__PURE__ */ jsx("span", { style: { marginLeft: theme2.space[2] }, children: "Loading configuration..." })
95822
+ ] }) : state.error ? /* @__PURE__ */ jsx(ErrorStateContent, { theme: theme2, error: state.error, onRetry: () => loadConfiguration() }) : !state.canvas ? /* @__PURE__ */ jsx(EmptyStateContent, { theme: theme2 }) : null;
95819
95823
  return /* @__PURE__ */ jsxs("div", { style: {
95820
95824
  height: "100%",
95821
95825
  width: "100%",
@@ -95825,9 +95829,9 @@ const CanvasEditorPanel = ({
95825
95829
  }, children: [
95826
95830
  /* @__PURE__ */ jsxs("div", { style: {
95827
95831
  height: 39,
95832
+ flexShrink: 0,
95828
95833
  borderBottom: `1px solid ${theme2.colors.border}`,
95829
95834
  backgroundColor: theme2.colors.background,
95830
- flexShrink: 0,
95831
95835
  display: "flex",
95832
95836
  alignItems: "center",
95833
95837
  boxSizing: "content-box"
@@ -95992,7 +95996,7 @@ const CanvasEditorPanel = ({
95992
95996
  }
95993
95997
  )
95994
95998
  ] }),
95995
- /* @__PURE__ */ jsx("div", { style: { flex: 1, overflow: "hidden" }, children: /* @__PURE__ */ jsx(
95999
+ /* @__PURE__ */ jsx("div", { style: { flex: "1 1 0%", minHeight: 0, overflow: "hidden" }, children: /* @__PURE__ */ jsx(
95996
96000
  AnimatedResizableLayout,
95997
96001
  {
95998
96002
  theme: theme2,
@@ -96009,347 +96013,345 @@ const CanvasEditorPanel = ({
96009
96013
  traceMatchInfo
96010
96014
  }
96011
96015
  ) }) : /* @__PURE__ */ jsx("div", {}),
96012
- rightPanel: /* @__PURE__ */ jsxs("div", { style: { height: "100%", display: "flex", flexDirection: "column", background: theme2.colors.background, position: "relative" }, children: [
96013
- /* @__PURE__ */ jsxs("div", { ref: canvasContainerRef, style: { flex: 1, position: "relative", minHeight: 0, width: "100%", height: "100%" }, children: [
96014
- /* @__PURE__ */ jsx(
96015
- GraphRenderer,
96016
+ rightPanel: /* @__PURE__ */ jsxs("div", { ref: containerRefCallback, style: { height: "100%", width: "100%", background: theme2.colors.background, position: "relative" }, children: [
96017
+ canvasContent ? /* @__PURE__ */ jsx("div", { style: { position: "absolute", inset: 0, display: "flex", alignItems: "center", justifyContent: "center" }, children: canvasContent }) : state.canvas ? /* @__PURE__ */ jsx(
96018
+ GraphRenderer,
96019
+ {
96020
+ ref: graphRef,
96021
+ canvas: state.canvas,
96022
+ library: state.library ?? void 0,
96023
+ spansCanvas: state.spansCanvas ?? void 0,
96024
+ workflowSpanPattern: workflowSpanPattern ?? void 0,
96025
+ width: "100%",
96026
+ height: "100%",
96027
+ editable: state.isEditMode,
96028
+ onPendingChangesChange: (hasChanges) => {
96029
+ setState((prev) => ({ ...prev, hasUnsavedChanges: hasChanges }));
96030
+ },
96031
+ onCopy: handleCopyNodes,
96032
+ showBackground: state.showGridLines,
96033
+ backgroundVariant: "lines",
96034
+ showControls: true,
96035
+ highlightedNodeId: state.highlightedNodeId,
96036
+ activeNodeIds,
96037
+ fitViewToNodeIds,
96038
+ fitViewPadding: 0.15,
96039
+ containerWidth: containerDimensions == null ? void 0 : containerDimensions.width,
96040
+ containerHeight: containerDimensions == null ? void 0 : containerDimensions.height
96041
+ }
96042
+ ) : null,
96043
+ state.isEditMode && state.hasUnsavedChanges && /* @__PURE__ */ jsxs("div", { style: {
96044
+ position: "absolute",
96045
+ top: 0,
96046
+ right: 0,
96047
+ height: 40,
96048
+ display: "flex",
96049
+ alignItems: "stretch",
96050
+ backgroundColor: theme2.colors.background,
96051
+ border: `1px solid ${theme2.colors.border}`,
96052
+ borderRadius: 0,
96053
+ boxShadow: "0 4px 6px rgba(0, 0, 0, 0.1)",
96054
+ zIndex: 40
96055
+ }, children: [
96056
+ /* @__PURE__ */ jsx("div", { style: {
96057
+ display: "flex",
96058
+ alignItems: "center",
96059
+ padding: theme2.space[3],
96060
+ fontSize: theme2.fontSizes[1],
96061
+ color: theme2.colors.warning || "#f59e0b",
96062
+ fontStyle: "italic",
96063
+ fontWeight: theme2.fontWeights.medium
96064
+ }, children: "Unsaved changes" }),
96065
+ /* @__PURE__ */ jsxs(
96066
+ "button",
96016
96067
  {
96017
- ref: graphRef,
96018
- canvas: state.canvas,
96019
- library: state.library ?? void 0,
96020
- spansCanvas: state.spansCanvas ?? void 0,
96021
- workflowSpanPattern: workflowSpanPattern ?? void 0,
96022
- width: "100%",
96023
- height: "100%",
96024
- editable: state.isEditMode,
96025
- onPendingChangesChange: (hasChanges) => {
96026
- setState((prev) => ({ ...prev, hasUnsavedChanges: hasChanges }));
96068
+ onClick: saveAllChanges,
96069
+ disabled: state.isSaving,
96070
+ style: {
96071
+ display: "flex",
96072
+ alignItems: "center",
96073
+ justifyContent: "center",
96074
+ gap: theme2.space[1],
96075
+ padding: `0 ${theme2.space[3]}`,
96076
+ fontSize: theme2.fontSizes[1],
96077
+ fontFamily: theme2.fonts.body,
96078
+ color: "white",
96079
+ backgroundColor: theme2.colors.primary,
96080
+ border: "none",
96081
+ borderRadius: 0,
96082
+ cursor: state.isSaving ? "wait" : "pointer",
96083
+ opacity: state.isSaving ? 0.7 : 1,
96084
+ transition: "all 0.2s",
96085
+ minWidth: 80
96027
96086
  },
96028
- onCopy: handleCopyNodes,
96029
- showBackground: state.showGridLines,
96030
- backgroundVariant: "lines",
96031
- showControls: true,
96032
- highlightedNodeId: state.highlightedNodeId,
96033
- activeNodeIds,
96034
- fitViewToNodeIds,
96035
- fitViewPadding: 0.15,
96036
- containerWidth: containerDimensions == null ? void 0 : containerDimensions.width,
96037
- containerHeight: containerDimensions == null ? void 0 : containerDimensions.height
96087
+ children: [
96088
+ state.isSaving ? /* @__PURE__ */ jsx(Loader, { size: 14, style: { animation: "spin 1s linear infinite" } }) : /* @__PURE__ */ jsx(Save, { size: 14 }),
96089
+ /* @__PURE__ */ jsx("span", { children: "Save" })
96090
+ ]
96038
96091
  }
96039
96092
  ),
96040
- state.isEditMode && state.hasUnsavedChanges && /* @__PURE__ */ jsxs("div", { style: {
96041
- position: "absolute",
96042
- top: 0,
96043
- right: 0,
96044
- height: 40,
96045
- display: "flex",
96046
- alignItems: "stretch",
96047
- backgroundColor: theme2.colors.background,
96048
- border: `1px solid ${theme2.colors.border}`,
96049
- borderRadius: 0,
96050
- boxShadow: "0 4px 6px rgba(0, 0, 0, 0.1)",
96051
- zIndex: 40
96052
- }, children: [
96053
- /* @__PURE__ */ jsx("div", { style: {
96054
- display: "flex",
96055
- alignItems: "center",
96056
- padding: theme2.space[3],
96057
- fontSize: theme2.fontSizes[1],
96058
- color: theme2.colors.warning || "#f59e0b",
96059
- fontStyle: "italic",
96060
- fontWeight: theme2.fontWeights.medium
96061
- }, children: "Unsaved changes" }),
96062
- /* @__PURE__ */ jsxs(
96063
- "button",
96064
- {
96065
- onClick: saveAllChanges,
96066
- disabled: state.isSaving,
96067
- style: {
96068
- display: "flex",
96069
- alignItems: "center",
96070
- justifyContent: "center",
96071
- gap: theme2.space[1],
96072
- padding: `0 ${theme2.space[3]}`,
96073
- fontSize: theme2.fontSizes[1],
96074
- fontFamily: theme2.fonts.body,
96075
- color: "white",
96076
- backgroundColor: theme2.colors.primary,
96077
- border: "none",
96078
- borderRadius: 0,
96079
- cursor: state.isSaving ? "wait" : "pointer",
96080
- opacity: state.isSaving ? 0.7 : 1,
96081
- transition: "all 0.2s",
96082
- minWidth: 80
96083
- },
96084
- children: [
96085
- state.isSaving ? /* @__PURE__ */ jsx(Loader, { size: 14, style: { animation: "spin 1s linear infinite" } }) : /* @__PURE__ */ jsx(Save, { size: 14 }),
96086
- /* @__PURE__ */ jsx("span", { children: "Save" })
96087
- ]
96088
- }
96089
- ),
96090
- /* @__PURE__ */ jsxs(
96091
- "button",
96092
- {
96093
- onClick: discardChanges,
96094
- disabled: state.isSaving,
96095
- style: {
96096
- display: "flex",
96097
- alignItems: "center",
96098
- justifyContent: "center",
96099
- gap: theme2.space[1],
96100
- padding: `0 ${theme2.space[3]}`,
96093
+ /* @__PURE__ */ jsxs(
96094
+ "button",
96095
+ {
96096
+ onClick: discardChanges,
96097
+ disabled: state.isSaving,
96098
+ style: {
96099
+ display: "flex",
96100
+ alignItems: "center",
96101
+ justifyContent: "center",
96102
+ gap: theme2.space[1],
96103
+ padding: `0 ${theme2.space[3]}`,
96104
+ fontSize: theme2.fontSizes[1],
96105
+ fontFamily: theme2.fonts.body,
96106
+ color: theme2.colors.text,
96107
+ backgroundColor: theme2.colors.backgroundSecondary,
96108
+ border: "none",
96109
+ borderLeft: `1px solid ${theme2.colors.border}`,
96110
+ borderRadius: 0,
96111
+ cursor: state.isSaving ? "wait" : "pointer",
96112
+ opacity: state.isSaving ? 0.7 : 1,
96113
+ transition: "all 0.2s",
96114
+ minWidth: 80
96115
+ },
96116
+ children: [
96117
+ /* @__PURE__ */ jsx(X, { size: 14 }),
96118
+ /* @__PURE__ */ jsx("span", { children: "Discard" })
96119
+ ]
96120
+ }
96121
+ )
96122
+ ] }),
96123
+ state.showLegend && /* @__PURE__ */ jsxs("div", { style: {
96124
+ position: "absolute",
96125
+ top: 0,
96126
+ left: 0,
96127
+ right: 0,
96128
+ height: 40,
96129
+ backgroundColor: theme2.colors.background,
96130
+ borderBottom: `1px solid ${theme2.colors.border}`,
96131
+ padding: `0 ${theme2.space[3]}`,
96132
+ display: "flex",
96133
+ alignItems: "center",
96134
+ gap: theme2.space[4],
96135
+ overflowX: "auto",
96136
+ zIndex: 50,
96137
+ boxSizing: "border-box"
96138
+ }, children: [
96139
+ /* @__PURE__ */ jsx("span", { style: {
96140
+ fontSize: theme2.fontSizes[1],
96141
+ fontWeight: theme2.fontWeights.medium,
96142
+ color: theme2.colors.textMuted,
96143
+ flexShrink: 0
96144
+ }, children: "Edges:" }),
96145
+ ((_d = (_c = state.canvas) == null ? void 0 : _c.pv) == null ? void 0 : _d.edgeTypes) && Object.keys(state.canvas.pv.edgeTypes).length > 0 ? /* @__PURE__ */ jsx("div", { style: { display: "flex", alignItems: "center", gap: theme2.space[4], flexWrap: "wrap" }, children: Object.entries(state.canvas.pv.edgeTypes).map(([typeName, edgeType]) => /* @__PURE__ */ jsxs(
96146
+ "div",
96147
+ {
96148
+ style: {
96149
+ display: "flex",
96150
+ alignItems: "center",
96151
+ gap: theme2.space[2]
96152
+ },
96153
+ children: [
96154
+ /* @__PURE__ */ jsxs("svg", { width: "40", height: "12", style: { flexShrink: 0 }, children: [
96155
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
96156
+ "marker",
96157
+ {
96158
+ id: `legend-arrow-${typeName}`,
96159
+ markerWidth: "8",
96160
+ markerHeight: "6",
96161
+ refX: "7",
96162
+ refY: "3",
96163
+ orient: "auto",
96164
+ children: /* @__PURE__ */ jsx(
96165
+ "polygon",
96166
+ {
96167
+ points: "0 0, 8 3, 0 6",
96168
+ fill: edgeType.color || "#64748b"
96169
+ }
96170
+ )
96171
+ }
96172
+ ) }),
96173
+ /* @__PURE__ */ jsx(
96174
+ "line",
96175
+ {
96176
+ x1: "2",
96177
+ y1: "6",
96178
+ x2: "32",
96179
+ y2: "6",
96180
+ stroke: edgeType.color || "#64748b",
96181
+ strokeWidth: Math.min(edgeType.width || 2, 3),
96182
+ strokeDasharray: edgeType.style === "dashed" ? "4,2" : edgeType.style === "dotted" ? "2,2" : void 0,
96183
+ markerEnd: edgeType.directed ? `url(#legend-arrow-${typeName})` : void 0
96184
+ }
96185
+ )
96186
+ ] }),
96187
+ /* @__PURE__ */ jsx("span", { style: {
96101
96188
  fontSize: theme2.fontSizes[1],
96102
- fontFamily: theme2.fonts.body,
96103
96189
  color: theme2.colors.text,
96104
- backgroundColor: theme2.colors.backgroundSecondary,
96105
- border: "none",
96106
- borderLeft: `1px solid ${theme2.colors.border}`,
96107
- borderRadius: 0,
96108
- cursor: state.isSaving ? "wait" : "pointer",
96109
- opacity: state.isSaving ? 0.7 : 1,
96110
- transition: "all 0.2s",
96111
- minWidth: 80
96112
- },
96113
- children: [
96114
- /* @__PURE__ */ jsx(X, { size: 14 }),
96115
- /* @__PURE__ */ jsx("span", { children: "Discard" })
96116
- ]
96190
+ textTransform: "capitalize",
96191
+ whiteSpace: "nowrap"
96192
+ }, children: typeName.replace(/-/g, " ") })
96193
+ ]
96194
+ },
96195
+ typeName
96196
+ )) }) : /* @__PURE__ */ jsx("span", { style: {
96197
+ fontSize: theme2.fontSizes[1],
96198
+ color: theme2.colors.textMuted,
96199
+ fontStyle: "italic"
96200
+ }, children: "No edge types defined" })
96201
+ ] }),
96202
+ state.isSearchOpen && /* @__PURE__ */ jsxs("div", { style: {
96203
+ position: "absolute",
96204
+ top: 12,
96205
+ left: "50%",
96206
+ transform: "translateX(-50%)",
96207
+ display: "flex",
96208
+ alignItems: "center",
96209
+ gap: theme2.space[2],
96210
+ padding: `${theme2.space[2]} ${theme2.space[3]}`,
96211
+ backgroundColor: theme2.colors.background,
96212
+ border: `1px solid ${theme2.colors.border}`,
96213
+ borderRadius: theme2.radii[2],
96214
+ boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
96215
+ zIndex: 60
96216
+ }, children: [
96217
+ /* @__PURE__ */ jsx(Search, { size: 16, style: { color: theme2.colors.textMuted, flexShrink: 0 } }),
96218
+ /* @__PURE__ */ jsx(
96219
+ "input",
96220
+ {
96221
+ ref: searchInputRef,
96222
+ type: "text",
96223
+ value: state.searchQuery,
96224
+ onChange: (e) => handleSearchChange(e.target.value),
96225
+ placeholder: "Search nodes...",
96226
+ style: {
96227
+ width: 200,
96228
+ padding: `${theme2.space[1]} ${theme2.space[2]}`,
96229
+ fontSize: theme2.fontSizes[1],
96230
+ fontFamily: theme2.fonts.body,
96231
+ color: theme2.colors.text,
96232
+ backgroundColor: theme2.colors.backgroundSecondary,
96233
+ border: `1px solid ${theme2.colors.border}`,
96234
+ borderRadius: theme2.radii[1],
96235
+ outline: "none"
96236
+ },
96237
+ onFocus: (e) => {
96238
+ e.target.style.borderColor = theme2.colors.primary;
96239
+ },
96240
+ onBlur: (e) => {
96241
+ e.target.style.borderColor = theme2.colors.border;
96117
96242
  }
96118
- )
96119
- ] }),
96120
- state.showLegend && /* @__PURE__ */ jsxs("div", { style: {
96121
- position: "absolute",
96122
- top: 0,
96123
- left: 0,
96124
- right: 0,
96125
- height: 40,
96126
- backgroundColor: theme2.colors.background,
96127
- borderBottom: `1px solid ${theme2.colors.border}`,
96128
- padding: `0 ${theme2.space[3]}`,
96243
+ }
96244
+ ),
96245
+ state.searchQuery.trim() && /* @__PURE__ */ jsxs("div", { style: {
96129
96246
  display: "flex",
96130
96247
  alignItems: "center",
96131
- gap: theme2.space[4],
96132
- overflowX: "auto",
96133
- zIndex: 50,
96134
- boxSizing: "border-box"
96248
+ gap: theme2.space[1]
96135
96249
  }, children: [
96136
96250
  /* @__PURE__ */ jsx("span", { style: {
96137
- fontSize: theme2.fontSizes[1],
96138
- fontWeight: theme2.fontWeights.medium,
96139
- color: theme2.colors.textMuted,
96140
- flexShrink: 0
96141
- }, children: "Edges:" }),
96142
- ((_d = (_c = state.canvas) == null ? void 0 : _c.pv) == null ? void 0 : _d.edgeTypes) && Object.keys(state.canvas.pv.edgeTypes).length > 0 ? /* @__PURE__ */ jsx("div", { style: { display: "flex", alignItems: "center", gap: theme2.space[4], flexWrap: "wrap" }, children: Object.entries(state.canvas.pv.edgeTypes).map(([typeName, edgeType]) => /* @__PURE__ */ jsxs(
96143
- "div",
96144
- {
96145
- style: {
96146
- display: "flex",
96147
- alignItems: "center",
96148
- gap: theme2.space[2]
96149
- },
96150
- children: [
96151
- /* @__PURE__ */ jsxs("svg", { width: "40", height: "12", style: { flexShrink: 0 }, children: [
96152
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
96153
- "marker",
96154
- {
96155
- id: `legend-arrow-${typeName}`,
96156
- markerWidth: "8",
96157
- markerHeight: "6",
96158
- refX: "7",
96159
- refY: "3",
96160
- orient: "auto",
96161
- children: /* @__PURE__ */ jsx(
96162
- "polygon",
96163
- {
96164
- points: "0 0, 8 3, 0 6",
96165
- fill: edgeType.color || "#64748b"
96166
- }
96167
- )
96168
- }
96169
- ) }),
96170
- /* @__PURE__ */ jsx(
96171
- "line",
96172
- {
96173
- x1: "2",
96174
- y1: "6",
96175
- x2: "32",
96176
- y2: "6",
96177
- stroke: edgeType.color || "#64748b",
96178
- strokeWidth: Math.min(edgeType.width || 2, 3),
96179
- strokeDasharray: edgeType.style === "dashed" ? "4,2" : edgeType.style === "dotted" ? "2,2" : void 0,
96180
- markerEnd: edgeType.directed ? `url(#legend-arrow-${typeName})` : void 0
96181
- }
96182
- )
96183
- ] }),
96184
- /* @__PURE__ */ jsx("span", { style: {
96185
- fontSize: theme2.fontSizes[1],
96186
- color: theme2.colors.text,
96187
- textTransform: "capitalize",
96188
- whiteSpace: "nowrap"
96189
- }, children: typeName.replace(/-/g, " ") })
96190
- ]
96191
- },
96192
- typeName
96193
- )) }) : /* @__PURE__ */ jsx("span", { style: {
96194
- fontSize: theme2.fontSizes[1],
96195
- color: theme2.colors.textMuted,
96196
- fontStyle: "italic"
96197
- }, children: "No edge types defined" })
96198
- ] }),
96199
- state.isSearchOpen && /* @__PURE__ */ jsxs("div", { style: {
96200
- position: "absolute",
96201
- top: 12,
96202
- left: "50%",
96203
- transform: "translateX(-50%)",
96204
- display: "flex",
96205
- alignItems: "center",
96206
- gap: theme2.space[2],
96207
- padding: `${theme2.space[2]} ${theme2.space[3]}`,
96208
- backgroundColor: theme2.colors.background,
96209
- border: `1px solid ${theme2.colors.border}`,
96210
- borderRadius: theme2.radii[2],
96211
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
96212
- zIndex: 60
96213
- }, children: [
96214
- /* @__PURE__ */ jsx(Search, { size: 16, style: { color: theme2.colors.textMuted, flexShrink: 0 } }),
96215
- /* @__PURE__ */ jsx(
96216
- "input",
96217
- {
96218
- ref: searchInputRef,
96219
- type: "text",
96220
- value: state.searchQuery,
96221
- onChange: (e) => handleSearchChange(e.target.value),
96222
- placeholder: "Search nodes...",
96223
- style: {
96224
- width: 200,
96225
- padding: `${theme2.space[1]} ${theme2.space[2]}`,
96226
- fontSize: theme2.fontSizes[1],
96227
- fontFamily: theme2.fonts.body,
96228
- color: theme2.colors.text,
96229
- backgroundColor: theme2.colors.backgroundSecondary,
96230
- border: `1px solid ${theme2.colors.border}`,
96231
- borderRadius: theme2.radii[1],
96232
- outline: "none"
96233
- },
96234
- onFocus: (e) => {
96235
- e.target.style.borderColor = theme2.colors.primary;
96236
- },
96237
- onBlur: (e) => {
96238
- e.target.style.borderColor = theme2.colors.border;
96251
+ fontSize: theme2.fontSizes[0],
96252
+ color: searchMatchedNodeIds.length > 0 ? theme2.colors.textMuted : theme2.colors.error || "#ef4444",
96253
+ whiteSpace: "nowrap",
96254
+ minWidth: 50,
96255
+ textAlign: "center"
96256
+ }, children: searchMatchedNodeIds.length > 0 ? `${currentSearchIndex + 1}/${searchMatchedNodeIds.length}` : "No results" }),
96257
+ searchMatchedNodeIds.length > 1 && /* @__PURE__ */ jsxs(Fragment, { children: [
96258
+ /* @__PURE__ */ jsx(
96259
+ "button",
96260
+ {
96261
+ onClick: goToPrevSearchResult,
96262
+ title: "Previous result (Shift+Enter)",
96263
+ style: {
96264
+ display: "flex",
96265
+ alignItems: "center",
96266
+ justifyContent: "center",
96267
+ width: 24,
96268
+ height: 24,
96269
+ padding: 0,
96270
+ backgroundColor: "transparent",
96271
+ color: theme2.colors.textMuted,
96272
+ border: "none",
96273
+ borderRadius: theme2.radii[0],
96274
+ cursor: "pointer"
96275
+ },
96276
+ children: /* @__PURE__ */ jsx(ChevronUp, { size: 16 })
96239
96277
  }
96240
- }
96241
- ),
96242
- state.searchQuery.trim() && /* @__PURE__ */ jsxs("div", { style: {
96243
- display: "flex",
96244
- alignItems: "center",
96245
- gap: theme2.space[1]
96246
- }, children: [
96247
- /* @__PURE__ */ jsx("span", { style: {
96248
- fontSize: theme2.fontSizes[0],
96249
- color: searchMatchedNodeIds.length > 0 ? theme2.colors.textMuted : theme2.colors.error || "#ef4444",
96250
- whiteSpace: "nowrap",
96251
- minWidth: 50,
96252
- textAlign: "center"
96253
- }, children: searchMatchedNodeIds.length > 0 ? `${currentSearchIndex + 1}/${searchMatchedNodeIds.length}` : "No results" }),
96254
- searchMatchedNodeIds.length > 1 && /* @__PURE__ */ jsxs(Fragment, { children: [
96255
- /* @__PURE__ */ jsx(
96256
- "button",
96257
- {
96258
- onClick: goToPrevSearchResult,
96259
- title: "Previous result (Shift+Enter)",
96260
- style: {
96261
- display: "flex",
96262
- alignItems: "center",
96263
- justifyContent: "center",
96264
- width: 24,
96265
- height: 24,
96266
- padding: 0,
96267
- backgroundColor: "transparent",
96268
- color: theme2.colors.textMuted,
96269
- border: "none",
96270
- borderRadius: theme2.radii[0],
96271
- cursor: "pointer"
96272
- },
96273
- children: /* @__PURE__ */ jsx(ChevronUp, { size: 16 })
96274
- }
96275
- ),
96276
- /* @__PURE__ */ jsx(
96277
- "button",
96278
- {
96279
- onClick: goToNextSearchResult,
96280
- title: "Next result (Enter)",
96281
- style: {
96282
- display: "flex",
96283
- alignItems: "center",
96284
- justifyContent: "center",
96285
- width: 24,
96286
- height: 24,
96287
- padding: 0,
96288
- backgroundColor: "transparent",
96289
- color: theme2.colors.textMuted,
96290
- border: "none",
96291
- borderRadius: theme2.radii[0],
96292
- cursor: "pointer"
96293
- },
96294
- children: /* @__PURE__ */ jsx(ChevronDown, { size: 16 })
96295
- }
96296
- )
96297
- ] })
96298
- ] }),
96299
- /* @__PURE__ */ jsx(
96300
- "button",
96301
- {
96302
- onClick: closeSearch,
96303
- title: "Close search (Escape)",
96304
- style: {
96305
- display: "flex",
96306
- alignItems: "center",
96307
- justifyContent: "center",
96308
- width: 24,
96309
- height: 24,
96310
- padding: 0,
96311
- backgroundColor: "transparent",
96312
- color: theme2.colors.textMuted,
96313
- border: "none",
96314
- borderRadius: theme2.radii[0],
96315
- cursor: "pointer",
96316
- marginLeft: theme2.space[1]
96317
- },
96318
- children: /* @__PURE__ */ jsx(X, { size: 16 })
96319
- }
96320
- )
96278
+ ),
96279
+ /* @__PURE__ */ jsx(
96280
+ "button",
96281
+ {
96282
+ onClick: goToNextSearchResult,
96283
+ title: "Next result (Enter)",
96284
+ style: {
96285
+ display: "flex",
96286
+ alignItems: "center",
96287
+ justifyContent: "center",
96288
+ width: 24,
96289
+ height: 24,
96290
+ padding: 0,
96291
+ backgroundColor: "transparent",
96292
+ color: theme2.colors.textMuted,
96293
+ border: "none",
96294
+ borderRadius: theme2.radii[0],
96295
+ cursor: "pointer"
96296
+ },
96297
+ children: /* @__PURE__ */ jsx(ChevronDown, { size: 16 })
96298
+ }
96299
+ )
96300
+ ] })
96321
96301
  ] }),
96322
- copiedNodesCount !== null && /* @__PURE__ */ jsxs("div", { style: {
96323
- position: "absolute",
96324
- bottom: 16,
96325
- left: "50%",
96326
- transform: "translateX(-50%)",
96327
- display: "flex",
96328
- alignItems: "center",
96329
- gap: theme2.space[2],
96330
- padding: `${theme2.space[2]} ${theme2.space[3]}`,
96331
- backgroundColor: theme2.colors.backgroundSecondary,
96332
- border: `1px solid ${theme2.colors.border}`,
96333
- borderRadius: theme2.radii[1],
96334
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
96335
- zIndex: 50,
96336
- animation: "fadeIn 0.15s ease-out"
96302
+ /* @__PURE__ */ jsx(
96303
+ "button",
96304
+ {
96305
+ onClick: closeSearch,
96306
+ title: "Close search (Escape)",
96307
+ style: {
96308
+ display: "flex",
96309
+ alignItems: "center",
96310
+ justifyContent: "center",
96311
+ width: 24,
96312
+ height: 24,
96313
+ padding: 0,
96314
+ backgroundColor: "transparent",
96315
+ color: theme2.colors.textMuted,
96316
+ border: "none",
96317
+ borderRadius: theme2.radii[0],
96318
+ cursor: "pointer",
96319
+ marginLeft: theme2.space[1]
96320
+ },
96321
+ children: /* @__PURE__ */ jsx(X, { size: 16 })
96322
+ }
96323
+ )
96324
+ ] }),
96325
+ copiedNodesCount !== null && /* @__PURE__ */ jsxs("div", { style: {
96326
+ position: "absolute",
96327
+ bottom: 16,
96328
+ left: "50%",
96329
+ transform: "translateX(-50%)",
96330
+ display: "flex",
96331
+ alignItems: "center",
96332
+ gap: theme2.space[2],
96333
+ padding: `${theme2.space[2]} ${theme2.space[3]}`,
96334
+ backgroundColor: theme2.colors.backgroundSecondary,
96335
+ border: `1px solid ${theme2.colors.border}`,
96336
+ borderRadius: theme2.radii[1],
96337
+ boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
96338
+ zIndex: 50,
96339
+ animation: "fadeIn 0.15s ease-out"
96340
+ }, children: [
96341
+ /* @__PURE__ */ jsx(Check, { size: 14, style: { color: theme2.colors.success || "#22c55e" } }),
96342
+ /* @__PURE__ */ jsxs("span", { style: {
96343
+ fontSize: theme2.fontSizes[1],
96344
+ color: theme2.colors.text,
96345
+ whiteSpace: "nowrap"
96337
96346
  }, children: [
96338
- /* @__PURE__ */ jsx(Check, { size: 14, style: { color: theme2.colors.success || "#22c55e" } }),
96339
- /* @__PURE__ */ jsxs("span", { style: {
96340
- fontSize: theme2.fontSizes[1],
96341
- color: theme2.colors.text,
96342
- whiteSpace: "nowrap"
96343
- }, children: [
96344
- "Copied ",
96345
- copiedNodesCount,
96346
- " node",
96347
- copiedNodesCount !== 1 ? "s" : "",
96348
- " to clipboard"
96349
- ] })
96347
+ "Copied ",
96348
+ copiedNodesCount,
96349
+ " node",
96350
+ copiedNodesCount !== 1 ? "s" : "",
96351
+ " to clipboard"
96350
96352
  ] })
96351
96353
  ] }),
96352
- state.selectedScenario && /* @__PURE__ */ jsx(
96354
+ state.selectedScenario && /* @__PURE__ */ jsx("div", { style: { position: "absolute", bottom: 0, left: 0, right: 0, zIndex: 30 }, children: /* @__PURE__ */ jsx(
96353
96355
  EventCarousel,
96354
96356
  {
96355
96357
  scenario: state.selectedScenario,
@@ -96401,7 +96403,7 @@ const CanvasEditorPanel = ({
96401
96403
  },
96402
96404
  traceEvents
96403
96405
  }
96404
- )
96406
+ ) })
96405
96407
  ] })
96406
96408
  }
96407
96409
  ) })
@@ -98213,7 +98215,7 @@ const StoryboardListPanel = ({
98213
98215
  fontSize: theme2.fontSizes[1],
98214
98216
  fontFamily: theme2.fonts.body,
98215
98217
  fontWeight: effectiveCanvasTypeFilter === "regular" ? 600 : 400,
98216
- color: effectiveCanvasTypeFilter === "regular" ? "white" : theme2.colors.text,
98218
+ color: effectiveCanvasTypeFilter === "regular" ? theme2.colors.textOnPrimary : theme2.colors.text,
98217
98219
  transition: "all 0.2s ease"
98218
98220
  },
98219
98221
  title: "Static architecture .canvas files",
@@ -98237,7 +98239,7 @@ const StoryboardListPanel = ({
98237
98239
  fontSize: theme2.fontSizes[1],
98238
98240
  fontFamily: theme2.fonts.body,
98239
98241
  fontWeight: effectiveCanvasTypeFilter === "otel" ? 600 : 400,
98240
- color: effectiveCanvasTypeFilter === "otel" ? "white" : theme2.colors.text,
98242
+ color: effectiveCanvasTypeFilter === "otel" ? theme2.colors.textOnPrimary : theme2.colors.text,
98241
98243
  transition: "all 0.2s ease"
98242
98244
  },
98243
98245
  title: "Runtime validated .otel.canvas files",