@pipelex/mthds-ui 0.27.0 → 0.29.0
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/README.md +19 -5
- package/dist/{chunk-VCO4GZDZ.js → chunk-3I3ZPYMW.js} +13 -1
- package/dist/chunk-3I3ZPYMW.js.map +1 -0
- package/dist/{chunk-XBHDA3PQ.js → chunk-Y46574OW.js} +2 -2
- package/dist/{chunk-K3BWHQVX.js → chunk-ZTXSDTVF.js} +81 -34
- package/dist/chunk-ZTXSDTVF.js.map +1 -0
- package/dist/form/react/RunPanel.css +1 -3
- package/dist/form/react/index.d.ts +5 -5
- package/dist/form/react/index.js +2 -2
- package/dist/form/react/index.js.map +1 -1
- package/dist/graph/index.d.ts +24 -9
- package/dist/graph/index.js +11 -3
- package/dist/graph/react/graph-core.css +12 -0
- package/dist/graph/react/index.d.ts +113 -45
- package/dist/graph/react/index.js +333 -283
- package/dist/graph/react/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -3
- package/dist/standalone/graph-standalone.html +420 -114
- package/dist/standalone/graph-viewer.css +13 -1
- package/dist/standalone/graph-viewer.js +406 -112
- package/dist/static-graph/index.d.ts +32 -9
- package/dist/static-graph/index.js +709 -88
- package/dist/static-graph/index.js.map +1 -1
- package/dist/{types-DgqW3Jg4.d.ts → types-BaFWy56P.d.ts} +106 -13
- package/package.json +2 -2
- package/dist/chunk-K3BWHQVX.js.map +0 -1
- package/dist/chunk-VCO4GZDZ.js.map +0 -1
- /package/dist/{chunk-XBHDA3PQ.js.map → chunk-Y46574OW.js.map} +0 -0
|
@@ -14,15 +14,16 @@ import {
|
|
|
14
14
|
resolveConceptRef,
|
|
15
15
|
resolveIssueTargetNodeId,
|
|
16
16
|
validateGraphSpec
|
|
17
|
-
} from "../../chunk-
|
|
17
|
+
} from "../../chunk-ZTXSDTVF.js";
|
|
18
18
|
import {
|
|
19
19
|
parsePipeRef
|
|
20
20
|
} from "../../chunk-2N65P32H.js";
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_GRAPH_CONFIG,
|
|
23
23
|
getPaletteForTheme
|
|
24
|
-
} from "../../chunk-
|
|
24
|
+
} from "../../chunk-Y46574OW.js";
|
|
25
25
|
import {
|
|
26
|
+
BINDING_STEP_TYPE,
|
|
26
27
|
EDGE_TYPE,
|
|
27
28
|
FOLD_MODE,
|
|
28
29
|
GRAPH_DIRECTION,
|
|
@@ -32,6 +33,8 @@ import {
|
|
|
32
33
|
TOOLBAR_POSITION,
|
|
33
34
|
VALIDATION_STATE,
|
|
34
35
|
graphSpecMode,
|
|
36
|
+
isBindingNode,
|
|
37
|
+
isBindingStepSpec,
|
|
35
38
|
isDryGraphSpec,
|
|
36
39
|
isPluralMultiplicity,
|
|
37
40
|
isStaticGraphSpec,
|
|
@@ -39,7 +42,7 @@ import {
|
|
|
39
42
|
stuffDigestFromId,
|
|
40
43
|
toolbarOrientation,
|
|
41
44
|
toolbarSide
|
|
42
|
-
} from "../../chunk-
|
|
45
|
+
} from "../../chunk-3I3ZPYMW.js";
|
|
43
46
|
import {
|
|
44
47
|
__spreadProps,
|
|
45
48
|
__spreadValues
|
|
@@ -121,7 +124,7 @@ import {
|
|
|
121
124
|
} from "@pipelex/mthds-form/react";
|
|
122
125
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
123
126
|
function StuffResultPanel({
|
|
124
|
-
|
|
127
|
+
pipeIoContracts,
|
|
125
128
|
outputForm,
|
|
126
129
|
inputForm,
|
|
127
130
|
stuff,
|
|
@@ -135,9 +138,9 @@ function StuffResultPanel({
|
|
|
135
138
|
const field = React2.useMemo(
|
|
136
139
|
() => {
|
|
137
140
|
var _a;
|
|
138
|
-
return (_a = fromProducer(
|
|
141
|
+
return (_a = fromProducer(pipeIoContracts, outputForm, producerPipeRef)) != null ? _a : fromConsumer(pipeIoContracts, inputForm, consumer);
|
|
139
142
|
},
|
|
140
|
-
[
|
|
143
|
+
[pipeIoContracts, outputForm, inputForm, producerPipeRef, consumer]
|
|
141
144
|
);
|
|
142
145
|
if (field) {
|
|
143
146
|
const panel = /* @__PURE__ */ jsx(StuffViewer, { field, value: stuff.data, name: stuff.name });
|
|
@@ -186,6 +189,25 @@ function fromConsumer(contracts, inputForm, consumer) {
|
|
|
186
189
|
return buildResultField({ field: node }, slot.json_schema);
|
|
187
190
|
}
|
|
188
191
|
|
|
192
|
+
// src/graph/react/viewer/graphArtifacts.ts
|
|
193
|
+
function graphArtifactsFrom(source) {
|
|
194
|
+
var _a, _b, _c;
|
|
195
|
+
if (source.graph_spec === void 0 || source.graph_spec === null) return null;
|
|
196
|
+
return {
|
|
197
|
+
graphSpec: source.graph_spec,
|
|
198
|
+
pipeIoContracts: (_a = source.pipe_io_contracts) != null ? _a : null,
|
|
199
|
+
outputForm: (_b = source.output_form) != null ? _b : null,
|
|
200
|
+
inputForm: (_c = source.input_form) != null ? _c : null
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
function resultDescriptors(graph) {
|
|
204
|
+
const pipeIoContracts = graph == null ? void 0 : graph.pipeIoContracts;
|
|
205
|
+
const outputForm = graph == null ? void 0 : graph.outputForm;
|
|
206
|
+
if (!pipeIoContracts || !outputForm) return null;
|
|
207
|
+
const inputForm = graph == null ? void 0 : graph.inputForm;
|
|
208
|
+
return inputForm ? { pipeIoContracts, outputForm, inputForm } : { pipeIoContracts, outputForm };
|
|
209
|
+
}
|
|
210
|
+
|
|
189
211
|
// src/graph/react/detail/DetailPanel.tsx
|
|
190
212
|
import React3 from "react";
|
|
191
213
|
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
@@ -993,7 +1015,13 @@ function PipeSequenceSection({
|
|
|
993
1015
|
/* @__PURE__ */ jsx12("div", { className: "detail-section-label", children: "Steps" }),
|
|
994
1016
|
/* @__PURE__ */ jsx12("div", { className: "detail-steps-list", children: blueprint.sequential_sub_pipes.map((step, idx) => /* @__PURE__ */ jsxs12("div", { className: "detail-step-item", children: [
|
|
995
1017
|
/* @__PURE__ */ jsx12("span", { className: "detail-step-index", children: idx + 1 }),
|
|
996
|
-
|
|
1018
|
+
isBindingStepSpec(step) ? (
|
|
1019
|
+
// A binding step runs no pipe: it names the path it binds.
|
|
1020
|
+
/* @__PURE__ */ jsxs12("span", { className: "detail-step-code", title: "Binding step", children: [
|
|
1021
|
+
"from ",
|
|
1022
|
+
step.from_path
|
|
1023
|
+
] })
|
|
1024
|
+
) : /* @__PURE__ */ jsx12("span", { className: "detail-step-code", children: step.pipe_code }),
|
|
997
1025
|
step.output_name && /* @__PURE__ */ jsxs12("span", { className: "detail-io-concept", children: [
|
|
998
1026
|
"-> ",
|
|
999
1027
|
step.output_name
|
|
@@ -1038,6 +1066,20 @@ function PipeBatchSection({
|
|
|
1038
1066
|
] });
|
|
1039
1067
|
}
|
|
1040
1068
|
|
|
1069
|
+
// src/graph/react/detail/sections/BindingStepDetail.tsx
|
|
1070
|
+
import { jsx as jsx15, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1071
|
+
function BindingStepSection({ node }) {
|
|
1072
|
+
var _a, _b;
|
|
1073
|
+
const executionData = (_a = node.execution_data) != null ? _a : {};
|
|
1074
|
+
const fromPath = typeof executionData.from === "string" ? executionData.from : node.pipe_code;
|
|
1075
|
+
const result = typeof executionData.result === "string" ? executionData.result : (_b = node.io.outputs[0]) == null ? void 0 : _b.name;
|
|
1076
|
+
return /* @__PURE__ */ jsxs15("div", { children: [
|
|
1077
|
+
/* @__PURE__ */ jsx15("div", { className: "detail-section-label", children: "Binding" }),
|
|
1078
|
+
/* @__PURE__ */ jsx15(KV, { label: "From", value: fromPath }),
|
|
1079
|
+
/* @__PURE__ */ jsx15(KV, { label: "Result", value: result })
|
|
1080
|
+
] });
|
|
1081
|
+
}
|
|
1082
|
+
|
|
1041
1083
|
// src/graph/react/detail/sections/executionData.ts
|
|
1042
1084
|
var MERGED_EXECUTION_DATA_TYPES = /* @__PURE__ */ new Set([
|
|
1043
1085
|
"PipeLLM",
|
|
@@ -1057,7 +1099,7 @@ function shouldDumpExecutionData(pipeType, hasBlueprint) {
|
|
|
1057
1099
|
}
|
|
1058
1100
|
|
|
1059
1101
|
// src/graph/react/detail/PipeDetailPanel.tsx
|
|
1060
|
-
import { Fragment as Fragment10, jsx as
|
|
1102
|
+
import { Fragment as Fragment10, jsx as jsx16, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1061
1103
|
var PIPE_TYPE_BADGES = {
|
|
1062
1104
|
PipeLLM: "LLM",
|
|
1063
1105
|
PipeExtract: "Extract",
|
|
@@ -1066,11 +1108,14 @@ var PIPE_TYPE_BADGES = {
|
|
|
1066
1108
|
PipeSearch: "Search",
|
|
1067
1109
|
PipeFunc: "Func",
|
|
1068
1110
|
PipeStructure: "Structure",
|
|
1111
|
+
PipeJudge: "Judge",
|
|
1112
|
+
PipeDocGen: "DocGen",
|
|
1069
1113
|
PipeSignature: "Signature",
|
|
1070
1114
|
PipeSequence: "Seq",
|
|
1071
1115
|
PipeParallel: "Par",
|
|
1072
1116
|
PipeCondition: "Cond",
|
|
1073
|
-
PipeBatch: "Batch"
|
|
1117
|
+
PipeBatch: "Batch",
|
|
1118
|
+
BindingStep: "Binding"
|
|
1074
1119
|
};
|
|
1075
1120
|
var CONTROLLER_TYPES = /* @__PURE__ */ new Set([
|
|
1076
1121
|
"PipeSequence",
|
|
@@ -1090,6 +1135,7 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1090
1135
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1091
1136
|
const pipeType = node.pipe_type;
|
|
1092
1137
|
const isController = CONTROLLER_TYPES.has(pipeType);
|
|
1138
|
+
const isBinding = isBindingNode(node);
|
|
1093
1139
|
const isStatic = isStaticGraphSpec(spec);
|
|
1094
1140
|
const showsGeneratedData = !isStatic && !isDryGraphSpec(spec);
|
|
1095
1141
|
const badge = PIPE_TYPE_BADGES[pipeType];
|
|
@@ -1097,7 +1143,7 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1097
1143
|
const statusColor = (_a = STATUS_COLORS[status]) != null ? _a : "#6272a4";
|
|
1098
1144
|
const blueprint = React6.useMemo(() => {
|
|
1099
1145
|
var _a2, _b2;
|
|
1100
|
-
if (!node.pipe_code || !spec.pipe_registry) return void 0;
|
|
1146
|
+
if (isBinding || !node.pipe_code || !spec.pipe_registry) return void 0;
|
|
1101
1147
|
const directKey = `${(_b2 = (_a2 = spec.pipeline_ref) == null ? void 0 : _a2.domain) != null ? _b2 : ""}.${node.pipe_code}`;
|
|
1102
1148
|
const direct = getPipeBlueprint(spec, directKey);
|
|
1103
1149
|
if (direct) return direct;
|
|
@@ -1105,22 +1151,22 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1105
1151
|
if (ref.endsWith(`.${node.pipe_code}`)) return pipe;
|
|
1106
1152
|
}
|
|
1107
1153
|
return void 0;
|
|
1108
|
-
}, [node.pipe_code, spec]);
|
|
1154
|
+
}, [isBinding, node.pipe_code, spec]);
|
|
1109
1155
|
const [usageExpanded, setUsageExpanded] = React6.useState(false);
|
|
1110
1156
|
const inputs = (_c = (_b = node.io) == null ? void 0 : _b.inputs) != null ? _c : [];
|
|
1111
1157
|
const outputs = (_e = (_d = node.io) == null ? void 0 : _d.outputs) != null ? _e : [];
|
|
1112
1158
|
const description = (_f = blueprint == null ? void 0 : blueprint.description) != null ? _f : node.description;
|
|
1113
|
-
return /* @__PURE__ */
|
|
1114
|
-
/* @__PURE__ */
|
|
1115
|
-
/* @__PURE__ */
|
|
1116
|
-
/* @__PURE__ */
|
|
1159
|
+
return /* @__PURE__ */ jsxs16(Fragment10, { children: [
|
|
1160
|
+
/* @__PURE__ */ jsxs16("div", { className: "detail-sticky-header", children: [
|
|
1161
|
+
/* @__PURE__ */ jsxs16("div", { className: "detail-header", children: [
|
|
1162
|
+
/* @__PURE__ */ jsx16(
|
|
1117
1163
|
"span",
|
|
1118
1164
|
{
|
|
1119
1165
|
className: `detail-badge ${isController ? "detail-badge--controller" : "detail-badge--operator"}`,
|
|
1120
1166
|
children: badge
|
|
1121
1167
|
}
|
|
1122
1168
|
),
|
|
1123
|
-
/* @__PURE__ */
|
|
1169
|
+
/* @__PURE__ */ jsx16(
|
|
1124
1170
|
"span",
|
|
1125
1171
|
{
|
|
1126
1172
|
className: `detail-pipe-code ${isController ? "detail-pipe-code--controller" : ""}`,
|
|
@@ -1128,11 +1174,11 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1128
1174
|
}
|
|
1129
1175
|
)
|
|
1130
1176
|
] }),
|
|
1131
|
-
!isStatic && /* @__PURE__ */
|
|
1132
|
-
/* @__PURE__ */
|
|
1133
|
-
/* @__PURE__ */
|
|
1134
|
-
((_g = node.timing) == null ? void 0 : _g.duration) != null && /* @__PURE__ */
|
|
1135
|
-
showsGeneratedData && node.usage && /* @__PURE__ */
|
|
1177
|
+
!isStatic && /* @__PURE__ */ jsxs16("div", { className: "detail-status", children: [
|
|
1178
|
+
/* @__PURE__ */ jsx16("span", { className: "detail-status-dot", style: { background: statusColor } }),
|
|
1179
|
+
/* @__PURE__ */ jsx16("span", { className: "detail-status-label", style: { color: statusColor }, children: status }),
|
|
1180
|
+
((_g = node.timing) == null ? void 0 : _g.duration) != null && /* @__PURE__ */ jsx16("span", { className: "detail-duration", children: formatDuration(node.timing.duration) }),
|
|
1181
|
+
showsGeneratedData && node.usage && /* @__PURE__ */ jsx16(
|
|
1136
1182
|
UsageCostInline,
|
|
1137
1183
|
{
|
|
1138
1184
|
usage: node.usage,
|
|
@@ -1142,43 +1188,44 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1142
1188
|
}
|
|
1143
1189
|
)
|
|
1144
1190
|
] }),
|
|
1145
|
-
showsGeneratedData && node.usage && usageExpanded && /* @__PURE__ */
|
|
1146
|
-
description && /* @__PURE__ */
|
|
1147
|
-
inputs.length > 0 && /* @__PURE__ */
|
|
1148
|
-
/* @__PURE__ */
|
|
1149
|
-
/* @__PURE__ */
|
|
1191
|
+
showsGeneratedData && node.usage && usageExpanded && /* @__PURE__ */ jsx16(UsageDetails, { usage: node.usage, isController }),
|
|
1192
|
+
description && /* @__PURE__ */ jsx16("div", { className: "detail-description", children: description }),
|
|
1193
|
+
inputs.length > 0 && /* @__PURE__ */ jsxs16("div", { children: [
|
|
1194
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-section-label", children: "Inputs" }),
|
|
1195
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-io-list", children: inputs.map((input, idx) => /* @__PURE__ */ jsxs16(
|
|
1150
1196
|
"div",
|
|
1151
1197
|
{
|
|
1152
1198
|
className: "detail-io-pill",
|
|
1153
1199
|
style: { cursor: input.concept && onConceptClick ? "pointer" : void 0 },
|
|
1154
1200
|
onClick: () => input.concept && (onConceptClick == null ? void 0 : onConceptClick(input.concept)),
|
|
1155
1201
|
children: [
|
|
1156
|
-
/* @__PURE__ */
|
|
1157
|
-
input.concept && /* @__PURE__ */
|
|
1202
|
+
/* @__PURE__ */ jsx16("span", { className: "detail-io-name", children: input.name }),
|
|
1203
|
+
input.concept && /* @__PURE__ */ jsx16("span", { className: "detail-io-concept", children: input.concept + multiplicitySuffix(input.multiplicity) })
|
|
1158
1204
|
]
|
|
1159
1205
|
},
|
|
1160
1206
|
idx
|
|
1161
1207
|
)) })
|
|
1162
1208
|
] }),
|
|
1163
|
-
outputs.length > 0 && /* @__PURE__ */
|
|
1164
|
-
/* @__PURE__ */
|
|
1165
|
-
/* @__PURE__ */
|
|
1209
|
+
outputs.length > 0 && /* @__PURE__ */ jsxs16("div", { children: [
|
|
1210
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-section-label", children: "Output" }),
|
|
1211
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-io-list", children: outputs.map((output, idx) => /* @__PURE__ */ jsxs16(
|
|
1166
1212
|
"div",
|
|
1167
1213
|
{
|
|
1168
1214
|
className: "detail-io-pill",
|
|
1169
1215
|
style: { cursor: output.concept && onConceptClick ? "pointer" : void 0 },
|
|
1170
1216
|
onClick: () => output.concept && (onConceptClick == null ? void 0 : onConceptClick(output.concept)),
|
|
1171
1217
|
children: [
|
|
1172
|
-
/* @__PURE__ */
|
|
1173
|
-
output.concept && /* @__PURE__ */
|
|
1218
|
+
/* @__PURE__ */ jsx16("span", { className: "detail-io-name", children: output.name }),
|
|
1219
|
+
output.concept && /* @__PURE__ */ jsx16("span", { className: "detail-io-concept", children: output.concept + multiplicitySuffix(output.multiplicity) })
|
|
1174
1220
|
]
|
|
1175
1221
|
},
|
|
1176
1222
|
idx
|
|
1177
1223
|
)) })
|
|
1178
1224
|
] }),
|
|
1179
|
-
(inputs.length > 0 || outputs.length > 0) && /* @__PURE__ */
|
|
1225
|
+
(inputs.length > 0 || outputs.length > 0) && /* @__PURE__ */ jsx16("div", { style: { borderTop: "1px solid rgba(255,255,255,0.06)", margin: "4px 0" } })
|
|
1180
1226
|
] }),
|
|
1181
|
-
|
|
1227
|
+
isBinding && /* @__PURE__ */ jsx16(BindingStepSection, { node }),
|
|
1228
|
+
blueprint && /* @__PURE__ */ jsx16(
|
|
1182
1229
|
BlueprintSection,
|
|
1183
1230
|
{
|
|
1184
1231
|
blueprint,
|
|
@@ -1187,7 +1234,7 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1187
1234
|
modelHandles: node.execution_data
|
|
1188
1235
|
}
|
|
1189
1236
|
),
|
|
1190
|
-
showsGeneratedData && node.execution_data && Object.keys(node.execution_data).length > 0 && /* @__PURE__ */
|
|
1237
|
+
showsGeneratedData && !isBinding && node.execution_data && Object.keys(node.execution_data).length > 0 && /* @__PURE__ */ jsx16(
|
|
1191
1238
|
ExecutionDataSection,
|
|
1192
1239
|
{
|
|
1193
1240
|
executionData: node.execution_data,
|
|
@@ -1195,14 +1242,14 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1195
1242
|
hasBlueprint: !!blueprint
|
|
1196
1243
|
}
|
|
1197
1244
|
),
|
|
1198
|
-
node.error && /* @__PURE__ */
|
|
1199
|
-
/* @__PURE__ */
|
|
1200
|
-
/* @__PURE__ */
|
|
1201
|
-
node.error.stack && /* @__PURE__ */
|
|
1245
|
+
node.error && /* @__PURE__ */ jsxs16("div", { className: "detail-error", children: [
|
|
1246
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-error-type", children: node.error.error_type }),
|
|
1247
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-error-message", children: node.error.message }),
|
|
1248
|
+
node.error.stack && /* @__PURE__ */ jsx16("div", { className: "detail-error-stack", children: node.error.stack })
|
|
1202
1249
|
] }),
|
|
1203
|
-
showsGeneratedData && node.metrics && Object.keys(node.metrics).length > 0 && /* @__PURE__ */
|
|
1204
|
-
/* @__PURE__ */
|
|
1205
|
-
Object.entries(node.metrics).map(([key, value]) => /* @__PURE__ */
|
|
1250
|
+
showsGeneratedData && node.metrics && Object.keys(node.metrics).length > 0 && /* @__PURE__ */ jsxs16("div", { children: [
|
|
1251
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-section-label", children: "Metrics" }),
|
|
1252
|
+
Object.entries(node.metrics).map(([key, value]) => /* @__PURE__ */ jsx16(
|
|
1206
1253
|
KV,
|
|
1207
1254
|
{
|
|
1208
1255
|
label: key,
|
|
@@ -1211,17 +1258,17 @@ function PipeDetailPanel({ node, spec, onConceptClick }) {
|
|
|
1211
1258
|
key
|
|
1212
1259
|
))
|
|
1213
1260
|
] }),
|
|
1214
|
-
node.tags && Object.keys(node.tags).length > 0 && /* @__PURE__ */
|
|
1215
|
-
/* @__PURE__ */
|
|
1216
|
-
/* @__PURE__ */
|
|
1217
|
-
/* @__PURE__ */
|
|
1261
|
+
node.tags && Object.keys(node.tags).length > 0 && /* @__PURE__ */ jsxs16("div", { children: [
|
|
1262
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-section-label", children: "Tags" }),
|
|
1263
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-tags", children: Object.entries(node.tags).map(([key, value]) => /* @__PURE__ */ jsxs16("span", { className: "detail-tag", children: [
|
|
1264
|
+
/* @__PURE__ */ jsxs16("span", { className: "detail-tag-key", children: [
|
|
1218
1265
|
key,
|
|
1219
1266
|
": "
|
|
1220
1267
|
] }),
|
|
1221
|
-
/* @__PURE__ */
|
|
1268
|
+
/* @__PURE__ */ jsx16("span", { className: "detail-tag-value", children: value })
|
|
1222
1269
|
] }, key)) })
|
|
1223
1270
|
] }),
|
|
1224
|
-
!blueprint && /* @__PURE__ */
|
|
1271
|
+
!blueprint && !isBinding && /* @__PURE__ */ jsx16("div", { className: "detail-not-available", children: "Blueprint not available" })
|
|
1225
1272
|
] });
|
|
1226
1273
|
}
|
|
1227
1274
|
function BlueprintSection({
|
|
@@ -1232,7 +1279,7 @@ function BlueprintSection({
|
|
|
1232
1279
|
}) {
|
|
1233
1280
|
switch (blueprint.type) {
|
|
1234
1281
|
case "PipeLLM":
|
|
1235
|
-
return /* @__PURE__ */
|
|
1282
|
+
return /* @__PURE__ */ jsx16(
|
|
1236
1283
|
PipeLLMSection,
|
|
1237
1284
|
{
|
|
1238
1285
|
blueprint,
|
|
@@ -1242,7 +1289,7 @@ function BlueprintSection({
|
|
|
1242
1289
|
}
|
|
1243
1290
|
);
|
|
1244
1291
|
case "PipeImgGen":
|
|
1245
|
-
return /* @__PURE__ */
|
|
1292
|
+
return /* @__PURE__ */ jsx16(
|
|
1246
1293
|
PipeImgGenSection,
|
|
1247
1294
|
{
|
|
1248
1295
|
blueprint,
|
|
@@ -1252,9 +1299,9 @@ function BlueprintSection({
|
|
|
1252
1299
|
}
|
|
1253
1300
|
);
|
|
1254
1301
|
case "PipeCompose":
|
|
1255
|
-
return /* @__PURE__ */
|
|
1302
|
+
return /* @__PURE__ */ jsx16(PipeComposeSection, { blueprint, executionData });
|
|
1256
1303
|
case "PipeExtract":
|
|
1257
|
-
return /* @__PURE__ */
|
|
1304
|
+
return /* @__PURE__ */ jsx16(
|
|
1258
1305
|
PipeExtractSection,
|
|
1259
1306
|
{
|
|
1260
1307
|
blueprint,
|
|
@@ -1263,7 +1310,7 @@ function BlueprintSection({
|
|
|
1263
1310
|
}
|
|
1264
1311
|
);
|
|
1265
1312
|
case "PipeSearch":
|
|
1266
|
-
return /* @__PURE__ */
|
|
1313
|
+
return /* @__PURE__ */ jsx16(
|
|
1267
1314
|
PipeSearchSection,
|
|
1268
1315
|
{
|
|
1269
1316
|
blueprint,
|
|
@@ -1273,7 +1320,7 @@ function BlueprintSection({
|
|
|
1273
1320
|
}
|
|
1274
1321
|
);
|
|
1275
1322
|
case "PipeStructure":
|
|
1276
|
-
return /* @__PURE__ */
|
|
1323
|
+
return /* @__PURE__ */ jsx16(
|
|
1277
1324
|
PipeStructureSection,
|
|
1278
1325
|
{
|
|
1279
1326
|
blueprint,
|
|
@@ -1283,17 +1330,17 @@ function BlueprintSection({
|
|
|
1283
1330
|
}
|
|
1284
1331
|
);
|
|
1285
1332
|
case "PipeSequence":
|
|
1286
|
-
return /* @__PURE__ */
|
|
1333
|
+
return /* @__PURE__ */ jsx16(PipeSequenceSection, { blueprint, executionData });
|
|
1287
1334
|
case "PipeParallel":
|
|
1288
|
-
return /* @__PURE__ */
|
|
1335
|
+
return /* @__PURE__ */ jsx16(PipeParallelSection, { blueprint, executionData });
|
|
1289
1336
|
case "PipeCondition":
|
|
1290
|
-
return /* @__PURE__ */
|
|
1337
|
+
return /* @__PURE__ */ jsx16(PipeConditionSection, { blueprint, executionData });
|
|
1291
1338
|
case "PipeBatch":
|
|
1292
|
-
return /* @__PURE__ */
|
|
1339
|
+
return /* @__PURE__ */ jsx16(PipeBatchSection, { blueprint, executionData });
|
|
1293
1340
|
case "PipeFunc":
|
|
1294
1341
|
return null;
|
|
1295
1342
|
case "PipeSignature":
|
|
1296
|
-
return /* @__PURE__ */
|
|
1343
|
+
return /* @__PURE__ */ jsx16("div", { className: "detail-not-available", children: "Signature stub \u2014 declared but not yet implemented." });
|
|
1297
1344
|
default:
|
|
1298
1345
|
return null;
|
|
1299
1346
|
}
|
|
@@ -1304,20 +1351,20 @@ function ExecutionDataSection({
|
|
|
1304
1351
|
hasBlueprint
|
|
1305
1352
|
}) {
|
|
1306
1353
|
if (!shouldDumpExecutionData(pipeType, hasBlueprint)) return null;
|
|
1307
|
-
return /* @__PURE__ */
|
|
1354
|
+
return /* @__PURE__ */ jsx16(GenericExecutionData, { data: executionData });
|
|
1308
1355
|
}
|
|
1309
1356
|
function GenericExecutionData({ data }) {
|
|
1310
1357
|
const entries = Object.entries(data);
|
|
1311
1358
|
if (entries.length === 0) return null;
|
|
1312
|
-
return /* @__PURE__ */
|
|
1313
|
-
/* @__PURE__ */
|
|
1314
|
-
entries.map(([key, value]) => /* @__PURE__ */
|
|
1359
|
+
return /* @__PURE__ */ jsxs16(Fragment10, { children: [
|
|
1360
|
+
/* @__PURE__ */ jsx16("div", { className: "detail-section-label", children: "Execution" }),
|
|
1361
|
+
entries.map(([key, value]) => /* @__PURE__ */ jsx16(KV, { label: key, value: String(value) }, key))
|
|
1315
1362
|
] });
|
|
1316
1363
|
}
|
|
1317
1364
|
|
|
1318
1365
|
// src/graph/react/detail/ConceptDetailPanel.tsx
|
|
1319
1366
|
import React7 from "react";
|
|
1320
|
-
import { Fragment as Fragment11, jsx as
|
|
1367
|
+
import { Fragment as Fragment11, jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1321
1368
|
function ConceptDetailPanel({
|
|
1322
1369
|
concept,
|
|
1323
1370
|
ioData,
|
|
@@ -1327,18 +1374,18 @@ function ConceptDetailPanel({
|
|
|
1327
1374
|
}) {
|
|
1328
1375
|
var _a;
|
|
1329
1376
|
const multiplicity = ioData == null ? void 0 : ioData.multiplicity;
|
|
1330
|
-
return /* @__PURE__ */
|
|
1331
|
-
/* @__PURE__ */
|
|
1332
|
-
/* @__PURE__ */
|
|
1333
|
-
/* @__PURE__ */
|
|
1377
|
+
return /* @__PURE__ */ jsxs17(Fragment11, { children: [
|
|
1378
|
+
/* @__PURE__ */ jsxs17("div", { className: "detail-header", children: [
|
|
1379
|
+
/* @__PURE__ */ jsx17("span", { className: "detail-concept-code", children: concept.code + multiplicitySuffix(multiplicity) }),
|
|
1380
|
+
/* @__PURE__ */ jsx17("span", { className: "detail-concept-domain", children: concept.domain_code })
|
|
1334
1381
|
] }),
|
|
1335
|
-
isPluralMultiplicity(multiplicity) && /* @__PURE__ */
|
|
1336
|
-
concept.description && /* @__PURE__ */
|
|
1337
|
-
concept.refines && /* @__PURE__ */
|
|
1382
|
+
isPluralMultiplicity(multiplicity) && /* @__PURE__ */ jsx17("div", { className: "detail-multiplicity", children: multiplicity === true ? `A variable-length list of ${concept.code} items` : `A fixed-length list of exactly ${multiplicity} ${concept.code} items` }),
|
|
1383
|
+
concept.description && /* @__PURE__ */ jsx17("div", { className: "detail-description", children: concept.description }),
|
|
1384
|
+
concept.refines && /* @__PURE__ */ jsxs17("div", { className: "detail-refines", children: [
|
|
1338
1385
|
"refines ",
|
|
1339
|
-
/* @__PURE__ */
|
|
1386
|
+
/* @__PURE__ */ jsx17("span", { className: "detail-refines-code", children: concept.refines })
|
|
1340
1387
|
] }),
|
|
1341
|
-
/* @__PURE__ */
|
|
1388
|
+
/* @__PURE__ */ jsx17(
|
|
1342
1389
|
ConceptBody,
|
|
1343
1390
|
{
|
|
1344
1391
|
concept,
|
|
@@ -1357,10 +1404,10 @@ function ConceptBody({ concept, ioData, isDryRun, renderData }) {
|
|
|
1357
1404
|
const baseId = React7.useId();
|
|
1358
1405
|
const tabId = (tab) => `${baseId}-tab-${tab}`;
|
|
1359
1406
|
const panelId = (tab) => `${baseId}-tabpanel-${tab}`;
|
|
1360
|
-
const structure = concept.json_schema ? /* @__PURE__ */
|
|
1361
|
-
/* @__PURE__ */
|
|
1362
|
-
/* @__PURE__ */
|
|
1363
|
-
] }) : /* @__PURE__ */
|
|
1407
|
+
const structure = concept.json_schema ? /* @__PURE__ */ jsxs17("div", { children: [
|
|
1408
|
+
/* @__PURE__ */ jsx17("div", { className: "detail-section-label", children: "Structure" }),
|
|
1409
|
+
/* @__PURE__ */ jsx17(SchemaTable, { schema: concept.json_schema })
|
|
1410
|
+
] }) : /* @__PURE__ */ jsx17("div", { className: "detail-not-available", children: "Schema not available" });
|
|
1364
1411
|
if (!hasData) return structure;
|
|
1365
1412
|
const onTabKeyDown = (event) => {
|
|
1366
1413
|
var _a;
|
|
@@ -1383,7 +1430,7 @@ function ConceptBody({ concept, ioData, isDryRun, renderData }) {
|
|
|
1383
1430
|
setActiveTab(next);
|
|
1384
1431
|
(_a = document.getElementById(tabId(next))) == null ? void 0 : _a.focus();
|
|
1385
1432
|
};
|
|
1386
|
-
const renderTab = (tab, label) => /* @__PURE__ */
|
|
1433
|
+
const renderTab = (tab, label) => /* @__PURE__ */ jsx17(
|
|
1387
1434
|
"button",
|
|
1388
1435
|
{
|
|
1389
1436
|
type: "button",
|
|
@@ -1398,12 +1445,12 @@ function ConceptBody({ concept, ioData, isDryRun, renderData }) {
|
|
|
1398
1445
|
children: label
|
|
1399
1446
|
}
|
|
1400
1447
|
);
|
|
1401
|
-
return /* @__PURE__ */
|
|
1402
|
-
/* @__PURE__ */
|
|
1448
|
+
return /* @__PURE__ */ jsxs17(Fragment11, { children: [
|
|
1449
|
+
/* @__PURE__ */ jsxs17("div", { className: "detail-tabs", role: "tablist", "aria-label": "Concept views", children: [
|
|
1403
1450
|
renderTab("data", "Data"),
|
|
1404
1451
|
renderTab("structure", "Structure")
|
|
1405
1452
|
] }),
|
|
1406
|
-
/* @__PURE__ */
|
|
1453
|
+
/* @__PURE__ */ jsx17("div", { role: "tabpanel", id: panelId(activeTab), "aria-labelledby": tabId(activeTab), children: activeTab === "data" ? dataView : structure })
|
|
1407
1454
|
] });
|
|
1408
1455
|
}
|
|
1409
1456
|
function SchemaTable({ schema }) {
|
|
@@ -1411,23 +1458,23 @@ function SchemaTable({ schema }) {
|
|
|
1411
1458
|
const properties = schema.properties;
|
|
1412
1459
|
const required = new Set((_a = schema.required) != null ? _a : []);
|
|
1413
1460
|
if (!properties || Object.keys(properties).length === 0) {
|
|
1414
|
-
return /* @__PURE__ */
|
|
1461
|
+
return /* @__PURE__ */ jsx17("div", { className: "detail-not-available", children: "No fields defined" });
|
|
1415
1462
|
}
|
|
1416
1463
|
const fields = Object.entries(properties);
|
|
1417
|
-
return /* @__PURE__ */
|
|
1418
|
-
/* @__PURE__ */
|
|
1419
|
-
/* @__PURE__ */
|
|
1420
|
-
/* @__PURE__ */
|
|
1421
|
-
/* @__PURE__ */
|
|
1422
|
-
/* @__PURE__ */
|
|
1464
|
+
return /* @__PURE__ */ jsxs17("table", { className: "detail-schema-table", children: [
|
|
1465
|
+
/* @__PURE__ */ jsx17("thead", { children: /* @__PURE__ */ jsxs17("tr", { children: [
|
|
1466
|
+
/* @__PURE__ */ jsx17("th", { children: "Field" }),
|
|
1467
|
+
/* @__PURE__ */ jsx17("th", { children: "Type" }),
|
|
1468
|
+
/* @__PURE__ */ jsx17("th", {}),
|
|
1469
|
+
/* @__PURE__ */ jsx17("th", { children: "Description" })
|
|
1423
1470
|
] }) }),
|
|
1424
|
-
/* @__PURE__ */
|
|
1471
|
+
/* @__PURE__ */ jsx17("tbody", { children: fields.map(([fieldName, fieldSchema]) => {
|
|
1425
1472
|
var _a2;
|
|
1426
|
-
return /* @__PURE__ */
|
|
1427
|
-
/* @__PURE__ */
|
|
1428
|
-
/* @__PURE__ */
|
|
1429
|
-
/* @__PURE__ */
|
|
1430
|
-
/* @__PURE__ */
|
|
1473
|
+
return /* @__PURE__ */ jsxs17("tr", { children: [
|
|
1474
|
+
/* @__PURE__ */ jsx17("td", { className: "detail-schema-field", children: fieldName }),
|
|
1475
|
+
/* @__PURE__ */ jsx17("td", { className: "detail-schema-type", children: extractType(fieldSchema) }),
|
|
1476
|
+
/* @__PURE__ */ jsx17("td", { children: required.has(fieldName) && /* @__PURE__ */ jsx17("span", { className: "detail-schema-required", children: "req" }) }),
|
|
1477
|
+
/* @__PURE__ */ jsx17("td", { children: (_a2 = fieldSchema.description) != null ? _a2 : "" })
|
|
1431
1478
|
] }, fieldName);
|
|
1432
1479
|
}) })
|
|
1433
1480
|
] });
|
|
@@ -1478,10 +1525,10 @@ function toAppEdges(edges) {
|
|
|
1478
1525
|
}
|
|
1479
1526
|
|
|
1480
1527
|
// src/graph/react/viewer/renderLabel.tsx
|
|
1481
|
-
import { jsx as
|
|
1528
|
+
import { jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
1482
1529
|
function renderLabel(desc) {
|
|
1483
1530
|
if (desc.kind === "pipe") {
|
|
1484
|
-
return /* @__PURE__ */
|
|
1531
|
+
return /* @__PURE__ */ jsx18(
|
|
1485
1532
|
"div",
|
|
1486
1533
|
{
|
|
1487
1534
|
style: {
|
|
@@ -1495,7 +1542,7 @@ function renderLabel(desc) {
|
|
|
1495
1542
|
minWidth: 0
|
|
1496
1543
|
},
|
|
1497
1544
|
title: desc.label,
|
|
1498
|
-
children: /* @__PURE__ */
|
|
1545
|
+
children: /* @__PURE__ */ jsx18(
|
|
1499
1546
|
"span",
|
|
1500
1547
|
{
|
|
1501
1548
|
style: {
|
|
@@ -1514,7 +1561,7 @@ function renderLabel(desc) {
|
|
|
1514
1561
|
}
|
|
1515
1562
|
);
|
|
1516
1563
|
}
|
|
1517
|
-
return /* @__PURE__ */
|
|
1564
|
+
return /* @__PURE__ */ jsxs18(
|
|
1518
1565
|
"div",
|
|
1519
1566
|
{
|
|
1520
1567
|
style: {
|
|
@@ -1530,7 +1577,7 @@ function renderLabel(desc) {
|
|
|
1530
1577
|
},
|
|
1531
1578
|
title: desc.concept ? `${desc.label}: ${desc.concept}` : desc.label,
|
|
1532
1579
|
children: [
|
|
1533
|
-
/* @__PURE__ */
|
|
1580
|
+
/* @__PURE__ */ jsx18(
|
|
1534
1581
|
"span",
|
|
1535
1582
|
{
|
|
1536
1583
|
style: {
|
|
@@ -1546,7 +1593,7 @@ function renderLabel(desc) {
|
|
|
1546
1593
|
children: desc.label
|
|
1547
1594
|
}
|
|
1548
1595
|
),
|
|
1549
|
-
desc.concept && /* @__PURE__ */
|
|
1596
|
+
desc.concept && /* @__PURE__ */ jsx18(
|
|
1550
1597
|
"span",
|
|
1551
1598
|
{
|
|
1552
1599
|
style: {
|
|
@@ -1580,7 +1627,7 @@ import React8 from "react";
|
|
|
1580
1627
|
import { Panel } from "@xyflow/react";
|
|
1581
1628
|
|
|
1582
1629
|
// src/graph/react/viewer/ValidationPanel.tsx
|
|
1583
|
-
import { jsx as
|
|
1630
|
+
import { jsx as jsx19, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1584
1631
|
function validationLabel(state, issueCount) {
|
|
1585
1632
|
const issues = issueCount === 1 ? "1 issue" : `${issueCount} issues`;
|
|
1586
1633
|
switch (state) {
|
|
@@ -1647,7 +1694,7 @@ function ValidationPanel({
|
|
|
1647
1694
|
placement,
|
|
1648
1695
|
id
|
|
1649
1696
|
}) {
|
|
1650
|
-
return /* @__PURE__ */
|
|
1697
|
+
return /* @__PURE__ */ jsxs19(
|
|
1651
1698
|
"div",
|
|
1652
1699
|
{
|
|
1653
1700
|
id,
|
|
@@ -1655,18 +1702,18 @@ function ValidationPanel({
|
|
|
1655
1702
|
role: "region",
|
|
1656
1703
|
"aria-label": "Validation issues",
|
|
1657
1704
|
children: [
|
|
1658
|
-
/* @__PURE__ */
|
|
1659
|
-
issues.length === 0 ? /* @__PURE__ */
|
|
1705
|
+
/* @__PURE__ */ jsx19("div", { className: "graph-validation-panel-header", children: validationLabel(state, issues.length) }),
|
|
1706
|
+
issues.length === 0 ? /* @__PURE__ */ jsx19("div", { className: "graph-validation-empty", children: validationEmptyText(state) }) : /* @__PURE__ */ jsx19("ul", { className: "graph-validation-issues", role: "list", children: issues.map((issue, index) => {
|
|
1660
1707
|
const clickable = onIssueClick !== void 0;
|
|
1661
|
-
const meta = (issue.context || issue.file) && /* @__PURE__ */
|
|
1662
|
-
issue.context && /* @__PURE__ */
|
|
1663
|
-
issue.file && /* @__PURE__ */
|
|
1708
|
+
const meta = (issue.context || issue.file) && /* @__PURE__ */ jsxs19("div", { className: "graph-validation-issue-meta", children: [
|
|
1709
|
+
issue.context && /* @__PURE__ */ jsx19("span", { className: "graph-validation-issue-context", children: issue.context }),
|
|
1710
|
+
issue.file && /* @__PURE__ */ jsx19("span", { className: "graph-validation-issue-file", children: issue.file })
|
|
1664
1711
|
] });
|
|
1665
|
-
return /* @__PURE__ */
|
|
1712
|
+
return /* @__PURE__ */ jsx19(
|
|
1666
1713
|
"li",
|
|
1667
1714
|
{
|
|
1668
1715
|
className: `graph-validation-issue graph-validation-issue--${issue.severity}` + (clickable ? " graph-validation-issue--clickable" : ""),
|
|
1669
|
-
children: /* @__PURE__ */
|
|
1716
|
+
children: /* @__PURE__ */ jsxs19(
|
|
1670
1717
|
"div",
|
|
1671
1718
|
{
|
|
1672
1719
|
className: "graph-validation-issue-body",
|
|
@@ -1681,8 +1728,8 @@ function ValidationPanel({
|
|
|
1681
1728
|
} : void 0,
|
|
1682
1729
|
children: [
|
|
1683
1730
|
meta,
|
|
1684
|
-
/* @__PURE__ */
|
|
1685
|
-
issue.suggestedFix && /* @__PURE__ */
|
|
1731
|
+
/* @__PURE__ */ jsx19("div", { className: "graph-validation-issue-message", children: issue.message }),
|
|
1732
|
+
issue.suggestedFix && /* @__PURE__ */ jsx19("div", { className: "graph-validation-issue-fix", children: issue.suggestedFix })
|
|
1686
1733
|
]
|
|
1687
1734
|
}
|
|
1688
1735
|
)
|
|
@@ -1696,9 +1743,9 @@ function ValidationPanel({
|
|
|
1696
1743
|
}
|
|
1697
1744
|
|
|
1698
1745
|
// src/graph/react/viewer/GraphToolbar.tsx
|
|
1699
|
-
import { Fragment as Fragment12, jsx as
|
|
1746
|
+
import { Fragment as Fragment12, jsx as jsx20, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1700
1747
|
var REACTFLOW_PANEL_MARGIN = 15;
|
|
1701
|
-
var ARROW_RIGHT_ICON = /* @__PURE__ */
|
|
1748
|
+
var ARROW_RIGHT_ICON = /* @__PURE__ */ jsxs20(
|
|
1702
1749
|
"svg",
|
|
1703
1750
|
{
|
|
1704
1751
|
viewBox: "0 0 24 24",
|
|
@@ -1710,12 +1757,12 @@ var ARROW_RIGHT_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1710
1757
|
strokeLinecap: "round",
|
|
1711
1758
|
strokeLinejoin: "round",
|
|
1712
1759
|
children: [
|
|
1713
|
-
/* @__PURE__ */
|
|
1714
|
-
/* @__PURE__ */
|
|
1760
|
+
/* @__PURE__ */ jsx20("line", { x1: "5", y1: "12", x2: "19", y2: "12" }),
|
|
1761
|
+
/* @__PURE__ */ jsx20("polyline", { points: "12 5 19 12 12 19" })
|
|
1715
1762
|
]
|
|
1716
1763
|
}
|
|
1717
1764
|
);
|
|
1718
|
-
var ARROW_DOWN_ICON = /* @__PURE__ */
|
|
1765
|
+
var ARROW_DOWN_ICON = /* @__PURE__ */ jsxs20(
|
|
1719
1766
|
"svg",
|
|
1720
1767
|
{
|
|
1721
1768
|
viewBox: "0 0 24 24",
|
|
@@ -1727,12 +1774,12 @@ var ARROW_DOWN_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1727
1774
|
strokeLinecap: "round",
|
|
1728
1775
|
strokeLinejoin: "round",
|
|
1729
1776
|
children: [
|
|
1730
|
-
/* @__PURE__ */
|
|
1731
|
-
/* @__PURE__ */
|
|
1777
|
+
/* @__PURE__ */ jsx20("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
1778
|
+
/* @__PURE__ */ jsx20("polyline", { points: "19 12 12 19 5 12" })
|
|
1732
1779
|
]
|
|
1733
1780
|
}
|
|
1734
1781
|
);
|
|
1735
|
-
var MINUS_ICON = /* @__PURE__ */
|
|
1782
|
+
var MINUS_ICON = /* @__PURE__ */ jsx20(
|
|
1736
1783
|
"svg",
|
|
1737
1784
|
{
|
|
1738
1785
|
viewBox: "0 0 24 24",
|
|
@@ -1743,10 +1790,10 @@ var MINUS_ICON = /* @__PURE__ */ jsx19(
|
|
|
1743
1790
|
strokeWidth: "2",
|
|
1744
1791
|
strokeLinecap: "round",
|
|
1745
1792
|
strokeLinejoin: "round",
|
|
1746
|
-
children: /* @__PURE__ */
|
|
1793
|
+
children: /* @__PURE__ */ jsx20("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
|
|
1747
1794
|
}
|
|
1748
1795
|
);
|
|
1749
|
-
var PLUS_ICON = /* @__PURE__ */
|
|
1796
|
+
var PLUS_ICON = /* @__PURE__ */ jsxs20(
|
|
1750
1797
|
"svg",
|
|
1751
1798
|
{
|
|
1752
1799
|
viewBox: "0 0 24 24",
|
|
@@ -1758,12 +1805,12 @@ var PLUS_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1758
1805
|
strokeLinecap: "round",
|
|
1759
1806
|
strokeLinejoin: "round",
|
|
1760
1807
|
children: [
|
|
1761
|
-
/* @__PURE__ */
|
|
1762
|
-
/* @__PURE__ */
|
|
1808
|
+
/* @__PURE__ */ jsx20("line", { x1: "12", y1: "5", x2: "12", y2: "19" }),
|
|
1809
|
+
/* @__PURE__ */ jsx20("line", { x1: "5", y1: "12", x2: "19", y2: "12" })
|
|
1763
1810
|
]
|
|
1764
1811
|
}
|
|
1765
1812
|
);
|
|
1766
|
-
var FIT_VIEW_ICON = /* @__PURE__ */
|
|
1813
|
+
var FIT_VIEW_ICON = /* @__PURE__ */ jsxs20(
|
|
1767
1814
|
"svg",
|
|
1768
1815
|
{
|
|
1769
1816
|
viewBox: "0 0 24 24",
|
|
@@ -1775,14 +1822,14 @@ var FIT_VIEW_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1775
1822
|
strokeLinecap: "round",
|
|
1776
1823
|
strokeLinejoin: "round",
|
|
1777
1824
|
children: [
|
|
1778
|
-
/* @__PURE__ */
|
|
1779
|
-
/* @__PURE__ */
|
|
1780
|
-
/* @__PURE__ */
|
|
1781
|
-
/* @__PURE__ */
|
|
1825
|
+
/* @__PURE__ */ jsx20("polyline", { points: "15 3 21 3 21 9" }),
|
|
1826
|
+
/* @__PURE__ */ jsx20("polyline", { points: "9 21 3 21 3 15" }),
|
|
1827
|
+
/* @__PURE__ */ jsx20("line", { x1: "21", y1: "3", x2: "14", y2: "10" }),
|
|
1828
|
+
/* @__PURE__ */ jsx20("line", { x1: "3", y1: "21", x2: "10", y2: "14" })
|
|
1782
1829
|
]
|
|
1783
1830
|
}
|
|
1784
1831
|
);
|
|
1785
|
-
var BOXES_ICON = /* @__PURE__ */
|
|
1832
|
+
var BOXES_ICON = /* @__PURE__ */ jsxs20(
|
|
1786
1833
|
"svg",
|
|
1787
1834
|
{
|
|
1788
1835
|
viewBox: "0 0 24 24",
|
|
@@ -1794,22 +1841,22 @@ var BOXES_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1794
1841
|
strokeLinecap: "round",
|
|
1795
1842
|
strokeLinejoin: "round",
|
|
1796
1843
|
children: [
|
|
1797
|
-
/* @__PURE__ */
|
|
1798
|
-
/* @__PURE__ */
|
|
1799
|
-
/* @__PURE__ */
|
|
1800
|
-
/* @__PURE__ */
|
|
1801
|
-
/* @__PURE__ */
|
|
1802
|
-
/* @__PURE__ */
|
|
1803
|
-
/* @__PURE__ */
|
|
1804
|
-
/* @__PURE__ */
|
|
1805
|
-
/* @__PURE__ */
|
|
1806
|
-
/* @__PURE__ */
|
|
1807
|
-
/* @__PURE__ */
|
|
1808
|
-
/* @__PURE__ */
|
|
1844
|
+
/* @__PURE__ */ jsx20("path", { d: "M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" }),
|
|
1845
|
+
/* @__PURE__ */ jsx20("path", { d: "m7 16.5-4.74-2.85" }),
|
|
1846
|
+
/* @__PURE__ */ jsx20("path", { d: "m7 16.5 5-3" }),
|
|
1847
|
+
/* @__PURE__ */ jsx20("path", { d: "M7 16.5v5.17" }),
|
|
1848
|
+
/* @__PURE__ */ jsx20("path", { d: "M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" }),
|
|
1849
|
+
/* @__PURE__ */ jsx20("path", { d: "m17 16.5-5-3" }),
|
|
1850
|
+
/* @__PURE__ */ jsx20("path", { d: "m17 16.5 4.74-2.85" }),
|
|
1851
|
+
/* @__PURE__ */ jsx20("path", { d: "M17 16.5v5.17" }),
|
|
1852
|
+
/* @__PURE__ */ jsx20("path", { d: "M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z" }),
|
|
1853
|
+
/* @__PURE__ */ jsx20("path", { d: "M12 8 7.26 5.15" }),
|
|
1854
|
+
/* @__PURE__ */ jsx20("path", { d: "m12 8 4.74-2.85" }),
|
|
1855
|
+
/* @__PURE__ */ jsx20("path", { d: "M12 13.5V8" })
|
|
1809
1856
|
]
|
|
1810
1857
|
}
|
|
1811
1858
|
);
|
|
1812
|
-
var FOLD_ALL_ICON = /* @__PURE__ */
|
|
1859
|
+
var FOLD_ALL_ICON = /* @__PURE__ */ jsxs20(
|
|
1813
1860
|
"svg",
|
|
1814
1861
|
{
|
|
1815
1862
|
viewBox: "0 0 24 24",
|
|
@@ -1821,15 +1868,15 @@ var FOLD_ALL_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1821
1868
|
strokeLinecap: "round",
|
|
1822
1869
|
strokeLinejoin: "round",
|
|
1823
1870
|
children: [
|
|
1824
|
-
/* @__PURE__ */
|
|
1825
|
-
/* @__PURE__ */
|
|
1826
|
-
/* @__PURE__ */
|
|
1827
|
-
/* @__PURE__ */
|
|
1828
|
-
/* @__PURE__ */
|
|
1871
|
+
/* @__PURE__ */ jsx20("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2" }),
|
|
1872
|
+
/* @__PURE__ */ jsx20("polyline", { points: "2 2 6 6 2 6" }),
|
|
1873
|
+
/* @__PURE__ */ jsx20("polyline", { points: "22 2 18 6 22 6" }),
|
|
1874
|
+
/* @__PURE__ */ jsx20("polyline", { points: "2 22 6 18 2 18" }),
|
|
1875
|
+
/* @__PURE__ */ jsx20("polyline", { points: "22 22 18 18 22 18" })
|
|
1829
1876
|
]
|
|
1830
1877
|
}
|
|
1831
1878
|
);
|
|
1832
|
-
var EXPAND_ALL_ICON = /* @__PURE__ */
|
|
1879
|
+
var EXPAND_ALL_ICON = /* @__PURE__ */ jsxs20(
|
|
1833
1880
|
"svg",
|
|
1834
1881
|
{
|
|
1835
1882
|
viewBox: "0 0 24 24",
|
|
@@ -1841,15 +1888,15 @@ var EXPAND_ALL_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1841
1888
|
strokeLinecap: "round",
|
|
1842
1889
|
strokeLinejoin: "round",
|
|
1843
1890
|
children: [
|
|
1844
|
-
/* @__PURE__ */
|
|
1845
|
-
/* @__PURE__ */
|
|
1846
|
-
/* @__PURE__ */
|
|
1847
|
-
/* @__PURE__ */
|
|
1848
|
-
/* @__PURE__ */
|
|
1891
|
+
/* @__PURE__ */ jsx20("rect", { x: "9", y: "9", width: "6", height: "6", rx: "1" }),
|
|
1892
|
+
/* @__PURE__ */ jsx20("polyline", { points: "3 3 7 7 3 7" }),
|
|
1893
|
+
/* @__PURE__ */ jsx20("polyline", { points: "21 3 17 7 21 7" }),
|
|
1894
|
+
/* @__PURE__ */ jsx20("polyline", { points: "3 21 7 17 3 17" }),
|
|
1895
|
+
/* @__PURE__ */ jsx20("polyline", { points: "21 21 17 17 21 17" })
|
|
1849
1896
|
]
|
|
1850
1897
|
}
|
|
1851
1898
|
);
|
|
1852
|
-
var SUN_ICON = /* @__PURE__ */
|
|
1899
|
+
var SUN_ICON = /* @__PURE__ */ jsxs20(
|
|
1853
1900
|
"svg",
|
|
1854
1901
|
{
|
|
1855
1902
|
viewBox: "0 0 24 24",
|
|
@@ -1861,19 +1908,19 @@ var SUN_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1861
1908
|
strokeLinecap: "round",
|
|
1862
1909
|
strokeLinejoin: "round",
|
|
1863
1910
|
children: [
|
|
1864
|
-
/* @__PURE__ */
|
|
1865
|
-
/* @__PURE__ */
|
|
1866
|
-
/* @__PURE__ */
|
|
1867
|
-
/* @__PURE__ */
|
|
1868
|
-
/* @__PURE__ */
|
|
1869
|
-
/* @__PURE__ */
|
|
1870
|
-
/* @__PURE__ */
|
|
1871
|
-
/* @__PURE__ */
|
|
1872
|
-
/* @__PURE__ */
|
|
1911
|
+
/* @__PURE__ */ jsx20("circle", { cx: "12", cy: "12", r: "4" }),
|
|
1912
|
+
/* @__PURE__ */ jsx20("line", { x1: "12", y1: "2", x2: "12", y2: "4" }),
|
|
1913
|
+
/* @__PURE__ */ jsx20("line", { x1: "12", y1: "20", x2: "12", y2: "22" }),
|
|
1914
|
+
/* @__PURE__ */ jsx20("line", { x1: "4.93", y1: "4.93", x2: "6.34", y2: "6.34" }),
|
|
1915
|
+
/* @__PURE__ */ jsx20("line", { x1: "17.66", y1: "17.66", x2: "19.07", y2: "19.07" }),
|
|
1916
|
+
/* @__PURE__ */ jsx20("line", { x1: "2", y1: "12", x2: "4", y2: "12" }),
|
|
1917
|
+
/* @__PURE__ */ jsx20("line", { x1: "20", y1: "12", x2: "22", y2: "12" }),
|
|
1918
|
+
/* @__PURE__ */ jsx20("line", { x1: "4.93", y1: "19.07", x2: "6.34", y2: "17.66" }),
|
|
1919
|
+
/* @__PURE__ */ jsx20("line", { x1: "17.66", y1: "6.34", x2: "19.07", y2: "4.93" })
|
|
1873
1920
|
]
|
|
1874
1921
|
}
|
|
1875
1922
|
);
|
|
1876
|
-
var MOON_ICON = /* @__PURE__ */
|
|
1923
|
+
var MOON_ICON = /* @__PURE__ */ jsx20(
|
|
1877
1924
|
"svg",
|
|
1878
1925
|
{
|
|
1879
1926
|
viewBox: "0 0 24 24",
|
|
@@ -1884,10 +1931,10 @@ var MOON_ICON = /* @__PURE__ */ jsx19(
|
|
|
1884
1931
|
strokeWidth: "2",
|
|
1885
1932
|
strokeLinecap: "round",
|
|
1886
1933
|
strokeLinejoin: "round",
|
|
1887
|
-
children: /* @__PURE__ */
|
|
1934
|
+
children: /* @__PURE__ */ jsx20("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })
|
|
1888
1935
|
}
|
|
1889
1936
|
);
|
|
1890
|
-
var MONITOR_ICON = /* @__PURE__ */
|
|
1937
|
+
var MONITOR_ICON = /* @__PURE__ */ jsxs20(
|
|
1891
1938
|
"svg",
|
|
1892
1939
|
{
|
|
1893
1940
|
viewBox: "0 0 24 24",
|
|
@@ -1899,13 +1946,13 @@ var MONITOR_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1899
1946
|
strokeLinecap: "round",
|
|
1900
1947
|
strokeLinejoin: "round",
|
|
1901
1948
|
children: [
|
|
1902
|
-
/* @__PURE__ */
|
|
1903
|
-
/* @__PURE__ */
|
|
1904
|
-
/* @__PURE__ */
|
|
1949
|
+
/* @__PURE__ */ jsx20("rect", { x: "2", y: "3", width: "20", height: "14", rx: "2" }),
|
|
1950
|
+
/* @__PURE__ */ jsx20("line", { x1: "8", y1: "21", x2: "16", y2: "21" }),
|
|
1951
|
+
/* @__PURE__ */ jsx20("line", { x1: "12", y1: "17", x2: "12", y2: "21" })
|
|
1905
1952
|
]
|
|
1906
1953
|
}
|
|
1907
1954
|
);
|
|
1908
|
-
var SPINNER_ICON = /* @__PURE__ */
|
|
1955
|
+
var SPINNER_ICON = /* @__PURE__ */ jsx20(
|
|
1909
1956
|
"svg",
|
|
1910
1957
|
{
|
|
1911
1958
|
className: "graph-toolbar-validation-spin",
|
|
@@ -1917,10 +1964,10 @@ var SPINNER_ICON = /* @__PURE__ */ jsx19(
|
|
|
1917
1964
|
strokeWidth: "2",
|
|
1918
1965
|
strokeLinecap: "round",
|
|
1919
1966
|
strokeLinejoin: "round",
|
|
1920
|
-
children: /* @__PURE__ */
|
|
1967
|
+
children: /* @__PURE__ */ jsx20("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" })
|
|
1921
1968
|
}
|
|
1922
1969
|
);
|
|
1923
|
-
var CHECK_ICON2 = /* @__PURE__ */
|
|
1970
|
+
var CHECK_ICON2 = /* @__PURE__ */ jsx20(
|
|
1924
1971
|
"svg",
|
|
1925
1972
|
{
|
|
1926
1973
|
viewBox: "0 0 24 24",
|
|
@@ -1931,10 +1978,10 @@ var CHECK_ICON2 = /* @__PURE__ */ jsx19(
|
|
|
1931
1978
|
strokeWidth: "2",
|
|
1932
1979
|
strokeLinecap: "round",
|
|
1933
1980
|
strokeLinejoin: "round",
|
|
1934
|
-
children: /* @__PURE__ */
|
|
1981
|
+
children: /* @__PURE__ */ jsx20("polyline", { points: "20 6 9 17 4 12" })
|
|
1935
1982
|
}
|
|
1936
1983
|
);
|
|
1937
|
-
var X_CIRCLE_ICON = /* @__PURE__ */
|
|
1984
|
+
var X_CIRCLE_ICON = /* @__PURE__ */ jsxs20(
|
|
1938
1985
|
"svg",
|
|
1939
1986
|
{
|
|
1940
1987
|
viewBox: "0 0 24 24",
|
|
@@ -1946,13 +1993,13 @@ var X_CIRCLE_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1946
1993
|
strokeLinecap: "round",
|
|
1947
1994
|
strokeLinejoin: "round",
|
|
1948
1995
|
children: [
|
|
1949
|
-
/* @__PURE__ */
|
|
1950
|
-
/* @__PURE__ */
|
|
1951
|
-
/* @__PURE__ */
|
|
1996
|
+
/* @__PURE__ */ jsx20("circle", { cx: "12", cy: "12", r: "10" }),
|
|
1997
|
+
/* @__PURE__ */ jsx20("line", { x1: "15", y1: "9", x2: "9", y2: "15" }),
|
|
1998
|
+
/* @__PURE__ */ jsx20("line", { x1: "9", y1: "9", x2: "15", y2: "15" })
|
|
1952
1999
|
]
|
|
1953
2000
|
}
|
|
1954
2001
|
);
|
|
1955
|
-
var ALERT_TRIANGLE_ICON = /* @__PURE__ */
|
|
2002
|
+
var ALERT_TRIANGLE_ICON = /* @__PURE__ */ jsxs20(
|
|
1956
2003
|
"svg",
|
|
1957
2004
|
{
|
|
1958
2005
|
viewBox: "0 0 24 24",
|
|
@@ -1964,13 +2011,13 @@ var ALERT_TRIANGLE_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1964
2011
|
strokeLinecap: "round",
|
|
1965
2012
|
strokeLinejoin: "round",
|
|
1966
2013
|
children: [
|
|
1967
|
-
/* @__PURE__ */
|
|
1968
|
-
/* @__PURE__ */
|
|
1969
|
-
/* @__PURE__ */
|
|
2014
|
+
/* @__PURE__ */ jsx20("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z" }),
|
|
2015
|
+
/* @__PURE__ */ jsx20("line", { x1: "12", y1: "9", x2: "12", y2: "13" }),
|
|
2016
|
+
/* @__PURE__ */ jsx20("line", { x1: "12", y1: "17", x2: "12.01", y2: "17" })
|
|
1970
2017
|
]
|
|
1971
2018
|
}
|
|
1972
2019
|
);
|
|
1973
|
-
var INFO_CIRCLE_ICON = /* @__PURE__ */
|
|
2020
|
+
var INFO_CIRCLE_ICON = /* @__PURE__ */ jsxs20(
|
|
1974
2021
|
"svg",
|
|
1975
2022
|
{
|
|
1976
2023
|
viewBox: "0 0 24 24",
|
|
@@ -1982,9 +2029,9 @@ var INFO_CIRCLE_ICON = /* @__PURE__ */ jsxs19(
|
|
|
1982
2029
|
strokeLinecap: "round",
|
|
1983
2030
|
strokeLinejoin: "round",
|
|
1984
2031
|
children: [
|
|
1985
|
-
/* @__PURE__ */
|
|
1986
|
-
/* @__PURE__ */
|
|
1987
|
-
/* @__PURE__ */
|
|
2032
|
+
/* @__PURE__ */ jsx20("circle", { cx: "12", cy: "12", r: "10" }),
|
|
2033
|
+
/* @__PURE__ */ jsx20("line", { x1: "12", y1: "16", x2: "12", y2: "12" }),
|
|
2034
|
+
/* @__PURE__ */ jsx20("line", { x1: "12", y1: "8", x2: "12.01", y2: "8" })
|
|
1988
2035
|
]
|
|
1989
2036
|
}
|
|
1990
2037
|
);
|
|
@@ -2088,10 +2135,10 @@ function GraphToolbar({
|
|
|
2088
2135
|
const foldAllSection = onFoldAll || onExpandAll;
|
|
2089
2136
|
const foldAllTitle = foldAllDisabled ? "Fold all controllers (nothing to fold)" : "Fold all controllers";
|
|
2090
2137
|
const expandAllTitle = expandAllDisabled ? "Expand all controllers (nothing to expand)" : "Expand all controllers";
|
|
2091
|
-
return /* @__PURE__ */
|
|
2092
|
-
validationState !== void 0 && /* @__PURE__ */
|
|
2093
|
-
/* @__PURE__ */
|
|
2094
|
-
/* @__PURE__ */
|
|
2138
|
+
return /* @__PURE__ */ jsx20(Panel, { position, className: "graph-toolbar-panel", style: panelStyle, children: /* @__PURE__ */ jsxs20("div", { className: `graph-toolbar graph-toolbar--${orientation}`, children: [
|
|
2139
|
+
validationState !== void 0 && /* @__PURE__ */ jsxs20(Fragment12, { children: [
|
|
2140
|
+
/* @__PURE__ */ jsxs20("div", { className: "graph-toolbar-validation", ref: validationRef, children: [
|
|
2141
|
+
/* @__PURE__ */ jsxs20(
|
|
2095
2142
|
"button",
|
|
2096
2143
|
{
|
|
2097
2144
|
type: "button",
|
|
@@ -2104,11 +2151,11 @@ function GraphToolbar({
|
|
|
2104
2151
|
"aria-controls": validationPanelId,
|
|
2105
2152
|
children: [
|
|
2106
2153
|
validationIcon(validationState),
|
|
2107
|
-
validationIssues.length > 0 && /* @__PURE__ */
|
|
2154
|
+
validationIssues.length > 0 && /* @__PURE__ */ jsx20("span", { className: "graph-toolbar-validation-badge", children: validationIssues.length > 99 ? "99+" : validationIssues.length })
|
|
2108
2155
|
]
|
|
2109
2156
|
}
|
|
2110
2157
|
),
|
|
2111
|
-
validationOpen && /* @__PURE__ */
|
|
2158
|
+
validationOpen && /* @__PURE__ */ jsx20(
|
|
2112
2159
|
ValidationPanel,
|
|
2113
2160
|
{
|
|
2114
2161
|
id: validationPanelId,
|
|
@@ -2119,9 +2166,9 @@ function GraphToolbar({
|
|
|
2119
2166
|
}
|
|
2120
2167
|
)
|
|
2121
2168
|
] }),
|
|
2122
|
-
/* @__PURE__ */
|
|
2169
|
+
/* @__PURE__ */ jsx20("div", { className: "graph-toolbar-separator" })
|
|
2123
2170
|
] }),
|
|
2124
|
-
onFoldAll && /* @__PURE__ */
|
|
2171
|
+
onFoldAll && /* @__PURE__ */ jsx20(
|
|
2125
2172
|
"button",
|
|
2126
2173
|
{
|
|
2127
2174
|
type: "button",
|
|
@@ -2133,7 +2180,7 @@ function GraphToolbar({
|
|
|
2133
2180
|
children: FOLD_ALL_ICON
|
|
2134
2181
|
}
|
|
2135
2182
|
),
|
|
2136
|
-
onExpandAll && /* @__PURE__ */
|
|
2183
|
+
onExpandAll && /* @__PURE__ */ jsx20(
|
|
2137
2184
|
"button",
|
|
2138
2185
|
{
|
|
2139
2186
|
type: "button",
|
|
@@ -2145,8 +2192,8 @@ function GraphToolbar({
|
|
|
2145
2192
|
children: EXPAND_ALL_ICON
|
|
2146
2193
|
}
|
|
2147
2194
|
),
|
|
2148
|
-
foldAllSection && /* @__PURE__ */
|
|
2149
|
-
/* @__PURE__ */
|
|
2195
|
+
foldAllSection && /* @__PURE__ */ jsx20("div", { className: "graph-toolbar-separator" }),
|
|
2196
|
+
/* @__PURE__ */ jsx20(
|
|
2150
2197
|
"button",
|
|
2151
2198
|
{
|
|
2152
2199
|
type: "button",
|
|
@@ -2157,7 +2204,7 @@ function GraphToolbar({
|
|
|
2157
2204
|
children: BOXES_ICON
|
|
2158
2205
|
}
|
|
2159
2206
|
),
|
|
2160
|
-
/* @__PURE__ */
|
|
2207
|
+
/* @__PURE__ */ jsx20(
|
|
2161
2208
|
"button",
|
|
2162
2209
|
{
|
|
2163
2210
|
type: "button",
|
|
@@ -2168,8 +2215,8 @@ function GraphToolbar({
|
|
|
2168
2215
|
children: isVertical ? ARROW_RIGHT_ICON : ARROW_DOWN_ICON
|
|
2169
2216
|
}
|
|
2170
2217
|
),
|
|
2171
|
-
(onZoomOut || onZoomIn || onFitView) && /* @__PURE__ */
|
|
2172
|
-
onZoomOut && /* @__PURE__ */
|
|
2218
|
+
(onZoomOut || onZoomIn || onFitView) && /* @__PURE__ */ jsx20("div", { className: "graph-toolbar-separator" }),
|
|
2219
|
+
onZoomOut && /* @__PURE__ */ jsx20(
|
|
2173
2220
|
"button",
|
|
2174
2221
|
{
|
|
2175
2222
|
type: "button",
|
|
@@ -2180,7 +2227,7 @@ function GraphToolbar({
|
|
|
2180
2227
|
children: MINUS_ICON
|
|
2181
2228
|
}
|
|
2182
2229
|
),
|
|
2183
|
-
onZoomIn && /* @__PURE__ */
|
|
2230
|
+
onZoomIn && /* @__PURE__ */ jsx20(
|
|
2184
2231
|
"button",
|
|
2185
2232
|
{
|
|
2186
2233
|
type: "button",
|
|
@@ -2191,7 +2238,7 @@ function GraphToolbar({
|
|
|
2191
2238
|
children: PLUS_ICON
|
|
2192
2239
|
}
|
|
2193
2240
|
),
|
|
2194
|
-
onFitView && /* @__PURE__ */
|
|
2241
|
+
onFitView && /* @__PURE__ */ jsx20(
|
|
2195
2242
|
"button",
|
|
2196
2243
|
{
|
|
2197
2244
|
type: "button",
|
|
@@ -2202,9 +2249,9 @@ function GraphToolbar({
|
|
|
2202
2249
|
children: FIT_VIEW_ICON
|
|
2203
2250
|
}
|
|
2204
2251
|
),
|
|
2205
|
-
themeToggleEnabled && /* @__PURE__ */
|
|
2206
|
-
/* @__PURE__ */
|
|
2207
|
-
/* @__PURE__ */
|
|
2252
|
+
themeToggleEnabled && /* @__PURE__ */ jsxs20(Fragment12, { children: [
|
|
2253
|
+
/* @__PURE__ */ jsx20("div", { className: "graph-toolbar-separator" }),
|
|
2254
|
+
/* @__PURE__ */ jsx20(
|
|
2208
2255
|
"button",
|
|
2209
2256
|
{
|
|
2210
2257
|
type: "button",
|
|
@@ -2220,7 +2267,7 @@ function GraphToolbar({
|
|
|
2220
2267
|
}
|
|
2221
2268
|
|
|
2222
2269
|
// src/graph/react/nodes/NodeValidationBadge.tsx
|
|
2223
|
-
import { jsx as
|
|
2270
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
2224
2271
|
function NodeValidationBadge({
|
|
2225
2272
|
validation,
|
|
2226
2273
|
onClick
|
|
@@ -2230,9 +2277,9 @@ function NodeValidationBadge({
|
|
|
2230
2277
|
const className = `node-validation-badge node-validation-badge--${validation.severity}`;
|
|
2231
2278
|
const text = validation.count > 99 ? "99+" : String(validation.count);
|
|
2232
2279
|
if (!onClick) {
|
|
2233
|
-
return /* @__PURE__ */
|
|
2280
|
+
return /* @__PURE__ */ jsx21("span", { className, title: tooltip, "aria-label": label, children: text });
|
|
2234
2281
|
}
|
|
2235
|
-
return /* @__PURE__ */
|
|
2282
|
+
return /* @__PURE__ */ jsx21(
|
|
2236
2283
|
"button",
|
|
2237
2284
|
{
|
|
2238
2285
|
type: "button",
|
|
@@ -2252,7 +2299,7 @@ function validationRingClass(validation) {
|
|
|
2252
2299
|
}
|
|
2253
2300
|
|
|
2254
2301
|
// src/graph/react/nodes/controller/ControllerGroupNode.tsx
|
|
2255
|
-
import { jsx as
|
|
2302
|
+
import { jsx as jsx22, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
2256
2303
|
var CONTROLLER_CONFIG = {
|
|
2257
2304
|
PipeSequence: { badge: "Sequence", icon: "\u2192" },
|
|
2258
2305
|
PipeParallel: { badge: "Parallel", icon: "//" },
|
|
@@ -2274,12 +2321,12 @@ function ControllerGroupNode({ data }) {
|
|
|
2274
2321
|
const modifier = getControllerModifier(data.pipeType);
|
|
2275
2322
|
const isCollapsible = (data.pipeType === "PipeParallel" || data.pipeType === "PipeBatch") && ((_a = data.childCount) != null ? _a : 0) > MAX_VISIBLE_CONTROLLER_CHILDREN;
|
|
2276
2323
|
const hiddenCount = isCollapsible ? ((_b = data.childCount) != null ? _b : 0) - MAX_VISIBLE_CONTROLLER_CHILDREN : 0;
|
|
2277
|
-
return /* @__PURE__ */
|
|
2278
|
-
/* @__PURE__ */
|
|
2279
|
-
/* @__PURE__ */
|
|
2280
|
-
/* @__PURE__ */
|
|
2281
|
-
data.label && /* @__PURE__ */
|
|
2282
|
-
data.onToggleFold && /* @__PURE__ */
|
|
2324
|
+
return /* @__PURE__ */ jsxs21("div", { className: `controller-group-node ${modifier}${validationRingClass(data.validation)}`, children: [
|
|
2325
|
+
/* @__PURE__ */ jsxs21("div", { className: "controller-group-header", children: [
|
|
2326
|
+
/* @__PURE__ */ jsx22("span", { className: "controller-group-icon", children: config.icon }),
|
|
2327
|
+
/* @__PURE__ */ jsx22("span", { className: "controller-group-badge", children: config.badge }),
|
|
2328
|
+
data.label && /* @__PURE__ */ jsx22("span", { className: "controller-group-label", children: data.label }),
|
|
2329
|
+
data.onToggleFold && /* @__PURE__ */ jsx22(
|
|
2283
2330
|
"button",
|
|
2284
2331
|
{
|
|
2285
2332
|
type: "button",
|
|
@@ -2294,9 +2341,9 @@ function ControllerGroupNode({ data }) {
|
|
|
2294
2341
|
children: "\u2921"
|
|
2295
2342
|
}
|
|
2296
2343
|
),
|
|
2297
|
-
data.validation && /* @__PURE__ */
|
|
2344
|
+
data.validation && /* @__PURE__ */ jsx22(NodeValidationBadge, { validation: data.validation, onClick: data.onValidationBadgeClick })
|
|
2298
2345
|
] }),
|
|
2299
|
-
isCollapsible && /* @__PURE__ */
|
|
2346
|
+
isCollapsible && /* @__PURE__ */ jsx22(
|
|
2300
2347
|
"button",
|
|
2301
2348
|
{
|
|
2302
2349
|
className: "controller-group-collapse",
|
|
@@ -2317,7 +2364,7 @@ import { Handle, Position } from "@xyflow/react";
|
|
|
2317
2364
|
|
|
2318
2365
|
// src/graph/react/nodes/pipe/PipeCardBase.tsx
|
|
2319
2366
|
import { useState as useState2 } from "react";
|
|
2320
|
-
import { jsx as
|
|
2367
|
+
import { jsx as jsx23, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2321
2368
|
var PIPE_TYPE_BADGES2 = {
|
|
2322
2369
|
PipeLLM: "LLM",
|
|
2323
2370
|
PipeExtract: "Extract",
|
|
@@ -2326,11 +2373,14 @@ var PIPE_TYPE_BADGES2 = {
|
|
|
2326
2373
|
PipeSearch: "Search",
|
|
2327
2374
|
PipeFunc: "Func",
|
|
2328
2375
|
PipeStructure: "Structure",
|
|
2376
|
+
PipeJudge: "Judge",
|
|
2377
|
+
PipeDocGen: "DocGen",
|
|
2329
2378
|
PipeSignature: "Signature",
|
|
2330
2379
|
PipeSequence: "Sequence",
|
|
2331
2380
|
PipeParallel: "Parallel",
|
|
2332
2381
|
PipeCondition: "Condition",
|
|
2333
|
-
PipeBatch: "Batch"
|
|
2382
|
+
PipeBatch: "Batch",
|
|
2383
|
+
BindingStep: "Binding"
|
|
2334
2384
|
};
|
|
2335
2385
|
var CONTROLLER_TYPE_TABLE = {
|
|
2336
2386
|
PipeSequence: true,
|
|
@@ -2360,6 +2410,7 @@ function PipeCardBase({ data, children }) {
|
|
|
2360
2410
|
const isRunning = data.status === "running";
|
|
2361
2411
|
const isController = isControllerType(data.pipeType);
|
|
2362
2412
|
const isSignature = data.pipeType === "PipeSignature";
|
|
2413
|
+
const isBinding = data.pipeType === BINDING_STEP_TYPE;
|
|
2363
2414
|
const isStatic = data.graphMode === "static";
|
|
2364
2415
|
const outcome = isStatic ? (_a = data.tags) == null ? void 0 : _a.outcome : void 0;
|
|
2365
2416
|
const batchMultiplicity = isStatic ? (_b = data.tags) == null ? void 0 : _b.batch_multiplicity : void 0;
|
|
@@ -2370,24 +2421,25 @@ function PipeCardBase({ data, children }) {
|
|
|
2370
2421
|
const dirClass = data.direction === "TB" ? "pipe-card--tb" : "pipe-card--lr";
|
|
2371
2422
|
const controllerClass = isController ? " pipe-card--controller" : "";
|
|
2372
2423
|
const signatureClass = isSignature ? " pipe-card--signature" : "";
|
|
2424
|
+
const bindingClass = isBinding ? " pipe-card--binding" : "";
|
|
2373
2425
|
const staticClass = isStatic ? " pipe-card--static" : "";
|
|
2374
|
-
const badgeClass = isController ? "pipe-card-badge pipe-card-badge--controller" : isSignature ? "pipe-card-badge pipe-card-badge--signature" : "pipe-card-badge";
|
|
2426
|
+
const badgeClass = isController ? "pipe-card-badge pipe-card-badge--controller" : isSignature ? "pipe-card-badge pipe-card-badge--signature" : isBinding ? "pipe-card-badge pipe-card-badge--binding" : "pipe-card-badge";
|
|
2375
2427
|
const ringClass = validationRingClass(data.validation);
|
|
2376
|
-
return /* @__PURE__ */
|
|
2428
|
+
return /* @__PURE__ */ jsxs22(
|
|
2377
2429
|
"div",
|
|
2378
2430
|
{
|
|
2379
|
-
className: `pipe-card ${dirClass}${controllerClass}${signatureClass}${staticClass}${ringClass}`,
|
|
2431
|
+
className: `pipe-card ${dirClass}${controllerClass}${signatureClass}${bindingClass}${staticClass}${ringClass}`,
|
|
2380
2432
|
children: [
|
|
2381
|
-
/* @__PURE__ */
|
|
2382
|
-
/* @__PURE__ */
|
|
2383
|
-
/* @__PURE__ */
|
|
2384
|
-
!isStatic && /* @__PURE__ */
|
|
2433
|
+
/* @__PURE__ */ jsxs22("div", { className: "pipe-card-header", children: [
|
|
2434
|
+
/* @__PURE__ */ jsx23("span", { className: badgeClass, children: badge }),
|
|
2435
|
+
/* @__PURE__ */ jsx23("span", { className: "pipe-card-code", title: data.pipeCode, children: data.pipeCode }),
|
|
2436
|
+
!isStatic && /* @__PURE__ */ jsx23(
|
|
2385
2437
|
"span",
|
|
2386
2438
|
{
|
|
2387
2439
|
className: "pipe-card-status",
|
|
2388
2440
|
style: { color: statusConfig.color },
|
|
2389
2441
|
title: statusConfig.label,
|
|
2390
|
-
children: /* @__PURE__ */
|
|
2442
|
+
children: /* @__PURE__ */ jsx23(
|
|
2391
2443
|
"span",
|
|
2392
2444
|
{
|
|
2393
2445
|
className: `pipe-card-status-dot ${isRunning ? "pipe-card-status-dot--pulse" : ""}`,
|
|
@@ -2396,7 +2448,7 @@ function PipeCardBase({ data, children }) {
|
|
|
2396
2448
|
)
|
|
2397
2449
|
}
|
|
2398
2450
|
),
|
|
2399
|
-
data.onExpand && /* @__PURE__ */
|
|
2451
|
+
data.onExpand && /* @__PURE__ */ jsx23(
|
|
2400
2452
|
"button",
|
|
2401
2453
|
{
|
|
2402
2454
|
type: "button",
|
|
@@ -2411,32 +2463,32 @@ function PipeCardBase({ data, children }) {
|
|
|
2411
2463
|
children: "\u2922"
|
|
2412
2464
|
}
|
|
2413
2465
|
),
|
|
2414
|
-
data.validation && /* @__PURE__ */
|
|
2466
|
+
data.validation && /* @__PURE__ */ jsx23(NodeValidationBadge, { validation: data.validation, onClick: data.onValidationBadgeClick })
|
|
2415
2467
|
] }),
|
|
2416
|
-
(outcome || batchMultiplicity) && /* @__PURE__ */
|
|
2417
|
-
outcome && /* @__PURE__ */
|
|
2468
|
+
(outcome || batchMultiplicity) && /* @__PURE__ */ jsxs22("div", { className: "pipe-card-annotations", children: [
|
|
2469
|
+
outcome && /* @__PURE__ */ jsxs22("span", { className: "pipe-card-annotation pipe-card-annotation--outcome", children: [
|
|
2418
2470
|
"outcome: ",
|
|
2419
2471
|
outcome
|
|
2420
2472
|
] }),
|
|
2421
|
-
batchMultiplicity && /* @__PURE__ */
|
|
2473
|
+
batchMultiplicity && /* @__PURE__ */ jsx23("span", { className: "pipe-card-annotation pipe-card-annotation--batch", children: batchMultiplicity })
|
|
2422
2474
|
] }),
|
|
2423
|
-
data.description && /* @__PURE__ */
|
|
2424
|
-
data.inputs.length > 0 && /* @__PURE__ */
|
|
2425
|
-
/* @__PURE__ */
|
|
2426
|
-
/* @__PURE__ */
|
|
2427
|
-
visibleInputs.map((input) => /* @__PURE__ */
|
|
2475
|
+
data.description && /* @__PURE__ */ jsx23("span", { className: "pipe-card-description", title: data.description, children: data.description }),
|
|
2476
|
+
data.inputs.length > 0 && /* @__PURE__ */ jsxs22("div", { className: "pipe-card-io", children: [
|
|
2477
|
+
/* @__PURE__ */ jsx23("span", { className: "pipe-card-io-label", children: "INPUTS" }),
|
|
2478
|
+
/* @__PURE__ */ jsxs22("div", { className: "pipe-card-io-pills", children: [
|
|
2479
|
+
visibleInputs.map((input) => /* @__PURE__ */ jsxs22(
|
|
2428
2480
|
"span",
|
|
2429
2481
|
{
|
|
2430
2482
|
className: "pipe-card-io-pill",
|
|
2431
2483
|
title: `${input.name}: ${input.concept}`,
|
|
2432
2484
|
children: [
|
|
2433
|
-
/* @__PURE__ */
|
|
2434
|
-
/* @__PURE__ */
|
|
2485
|
+
/* @__PURE__ */ jsx23("span", { className: "pipe-card-io-pill-name", children: input.name }),
|
|
2486
|
+
/* @__PURE__ */ jsx23("span", { className: "pipe-card-io-pill-concept", children: input.concept })
|
|
2435
2487
|
]
|
|
2436
2488
|
},
|
|
2437
2489
|
input.name
|
|
2438
2490
|
)),
|
|
2439
|
-
hasMany && /* @__PURE__ */
|
|
2491
|
+
hasMany && /* @__PURE__ */ jsx23(
|
|
2440
2492
|
"button",
|
|
2441
2493
|
{
|
|
2442
2494
|
className: "pipe-card-io-more",
|
|
@@ -2449,16 +2501,16 @@ function PipeCardBase({ data, children }) {
|
|
|
2449
2501
|
)
|
|
2450
2502
|
] })
|
|
2451
2503
|
] }),
|
|
2452
|
-
data.outputs.length > 0 && /* @__PURE__ */
|
|
2453
|
-
/* @__PURE__ */
|
|
2454
|
-
/* @__PURE__ */
|
|
2504
|
+
data.outputs.length > 0 && /* @__PURE__ */ jsxs22("div", { className: "pipe-card-io", children: [
|
|
2505
|
+
/* @__PURE__ */ jsx23("span", { className: "pipe-card-io-label", children: "OUTPUT" }),
|
|
2506
|
+
/* @__PURE__ */ jsx23("div", { className: "pipe-card-io-pills", children: data.outputs.map((output) => /* @__PURE__ */ jsxs22(
|
|
2455
2507
|
"span",
|
|
2456
2508
|
{
|
|
2457
2509
|
className: "pipe-card-io-pill",
|
|
2458
2510
|
title: `${output.name}: ${output.concept}`,
|
|
2459
2511
|
children: [
|
|
2460
|
-
/* @__PURE__ */
|
|
2461
|
-
/* @__PURE__ */
|
|
2512
|
+
/* @__PURE__ */ jsx23("span", { className: "pipe-card-io-pill-name", children: output.name }),
|
|
2513
|
+
/* @__PURE__ */ jsx23("span", { className: "pipe-card-io-pill-concept", children: output.concept })
|
|
2462
2514
|
]
|
|
2463
2515
|
},
|
|
2464
2516
|
output.name
|
|
@@ -2479,22 +2531,25 @@ var PIPE_CARD_REGISTRY = {
|
|
|
2479
2531
|
PipeSearch: PipeCardBase,
|
|
2480
2532
|
PipeFunc: PipeCardBase,
|
|
2481
2533
|
PipeStructure: PipeCardBase,
|
|
2534
|
+
PipeJudge: PipeCardBase,
|
|
2535
|
+
PipeDocGen: PipeCardBase,
|
|
2482
2536
|
PipeSignature: PipeCardBase,
|
|
2483
2537
|
PipeSequence: PipeCardBase,
|
|
2484
2538
|
PipeParallel: PipeCardBase,
|
|
2485
2539
|
PipeCondition: PipeCardBase,
|
|
2486
|
-
PipeBatch: PipeCardBase
|
|
2540
|
+
PipeBatch: PipeCardBase,
|
|
2541
|
+
BindingStep: PipeCardBase
|
|
2487
2542
|
};
|
|
2488
2543
|
function getPipeCardComponent(pipeType) {
|
|
2489
2544
|
return PIPE_CARD_REGISTRY[pipeType];
|
|
2490
2545
|
}
|
|
2491
2546
|
|
|
2492
2547
|
// src/graph/react/nodes/pipe/PipeCardNode.tsx
|
|
2493
|
-
import { Fragment as Fragment13, jsx as
|
|
2548
|
+
import { Fragment as Fragment13, jsx as jsx24, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
2494
2549
|
function PipeCardNode({ data }) {
|
|
2495
2550
|
var _a;
|
|
2496
2551
|
const Card = (_a = getPipeCardComponent(data.pipeType)) != null ? _a : PipeCardBase;
|
|
2497
|
-
return /* @__PURE__ */
|
|
2552
|
+
return /* @__PURE__ */ jsx24(Card, { data });
|
|
2498
2553
|
}
|
|
2499
2554
|
function PipeCardRFNode({
|
|
2500
2555
|
data,
|
|
@@ -2503,15 +2558,15 @@ function PipeCardRFNode({
|
|
|
2503
2558
|
}) {
|
|
2504
2559
|
const payload = data.pipeCardData;
|
|
2505
2560
|
if (!payload) return null;
|
|
2506
|
-
return /* @__PURE__ */
|
|
2507
|
-
/* @__PURE__ */
|
|
2508
|
-
/* @__PURE__ */
|
|
2509
|
-
/* @__PURE__ */
|
|
2561
|
+
return /* @__PURE__ */ jsxs23(Fragment13, { children: [
|
|
2562
|
+
/* @__PURE__ */ jsx24(Handle, { type: "target", position: targetPosition }),
|
|
2563
|
+
/* @__PURE__ */ jsx24(PipeCardNode, { data: payload }),
|
|
2564
|
+
/* @__PURE__ */ jsx24(Handle, { type: "source", position: sourcePosition })
|
|
2510
2565
|
] });
|
|
2511
2566
|
}
|
|
2512
2567
|
|
|
2513
2568
|
// src/graph/react/viewer/GraphViewer.tsx
|
|
2514
|
-
import { Fragment as Fragment14, jsx as
|
|
2569
|
+
import { Fragment as Fragment14, jsx as jsx25, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
2515
2570
|
var nodeTypes = __spreadProps(__spreadValues({}, controllerNodeTypes), {
|
|
2516
2571
|
pipeCard: PipeCardRFNode
|
|
2517
2572
|
});
|
|
@@ -2521,10 +2576,8 @@ function StuffNodeDetail({
|
|
|
2521
2576
|
producerPipeRef,
|
|
2522
2577
|
consumer,
|
|
2523
2578
|
graphspec,
|
|
2579
|
+
artifacts,
|
|
2524
2580
|
theme,
|
|
2525
|
-
contracts,
|
|
2526
|
-
outputForm,
|
|
2527
|
-
inputForm,
|
|
2528
2581
|
resolveUrl,
|
|
2529
2582
|
resolveShareUrl,
|
|
2530
2583
|
saveFiles,
|
|
@@ -2533,19 +2586,17 @@ function StuffNodeDetail({
|
|
|
2533
2586
|
var _a;
|
|
2534
2587
|
const conceptInfo = stuffData.concept && graphspec ? resolveConceptRef(graphspec, stuffData.concept) : void 0;
|
|
2535
2588
|
const isDryRun = graphSpecMode(graphspec) === GRAPH_SPEC_MODE.DRY;
|
|
2536
|
-
const
|
|
2589
|
+
const descriptors = resultDescriptors(artifacts);
|
|
2590
|
+
const renderData = descriptors ? () => /* @__PURE__ */ jsx25(
|
|
2537
2591
|
StuffResultPanel,
|
|
2538
|
-
__spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadProps(__spreadValues({
|
|
2539
|
-
contracts,
|
|
2540
|
-
outputForm
|
|
2541
|
-
}, inputForm ? { inputForm } : {}), {
|
|
2592
|
+
__spreadProps(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadProps(__spreadValues({}, descriptors), {
|
|
2542
2593
|
stuff: stuffData
|
|
2543
2594
|
}), conceptInfo ? { concept: conceptInfo } : {}), producerPipeRef ? { producerPipeRef } : {}), consumer ? { consumer } : {}), resolveUrl ? { resolveUrl } : {}), resolveShareUrl ? { resolveShareUrl } : {}), saveFiles ? { saveFiles } : {}), downloads ? { downloads } : {}), {
|
|
2544
2595
|
theme
|
|
2545
2596
|
})
|
|
2546
2597
|
) : void 0;
|
|
2547
2598
|
if (conceptInfo) {
|
|
2548
|
-
return /* @__PURE__ */
|
|
2599
|
+
return /* @__PURE__ */ jsx25(
|
|
2549
2600
|
ConceptDetailPanel,
|
|
2550
2601
|
{
|
|
2551
2602
|
concept: conceptInfo,
|
|
@@ -2556,8 +2607,8 @@ function StuffNodeDetail({
|
|
|
2556
2607
|
}
|
|
2557
2608
|
);
|
|
2558
2609
|
}
|
|
2559
|
-
if (isDryRun) return /* @__PURE__ */
|
|
2560
|
-
return /* @__PURE__ */
|
|
2610
|
+
if (isDryRun) return /* @__PURE__ */ jsx25("div", { className: "detail-not-available", children: "Dry run data hidden" });
|
|
2611
|
+
return /* @__PURE__ */ jsx25(Fragment14, { children: (_a = renderData == null ? void 0 : renderData()) != null ? _a : /* @__PURE__ */ jsx25("div", { className: "detail-not-available", children: "No data" }) });
|
|
2561
2612
|
}
|
|
2562
2613
|
function seedFoldedControllers(mode, controllerIds) {
|
|
2563
2614
|
if (mode === FOLD_MODE.FOLDED) return new Set(controllerIds);
|
|
@@ -2591,6 +2642,7 @@ function applyStatusOverrides(nodes, statusMap) {
|
|
|
2591
2642
|
if (node.data.graphMode === "static" || ((_a = node.data.pipeCardData) == null ? void 0 : _a.graphMode) === "static") {
|
|
2592
2643
|
return node;
|
|
2593
2644
|
}
|
|
2645
|
+
if (node.data.pipeType === BINDING_STEP_TYPE) return node;
|
|
2594
2646
|
const pipeCode = node.data.pipeCode;
|
|
2595
2647
|
if (!pipeCode || !Object.hasOwn(statusMap, pipeCode)) return node;
|
|
2596
2648
|
const newStatus = statusMap[pipeCode];
|
|
@@ -2604,9 +2656,9 @@ function applyStatusOverrides(nodes, statusMap) {
|
|
|
2604
2656
|
});
|
|
2605
2657
|
}
|
|
2606
2658
|
function GraphViewer(props) {
|
|
2607
|
-
var _a, _b, _c;
|
|
2659
|
+
var _a, _b, _c, _d;
|
|
2608
2660
|
const {
|
|
2609
|
-
|
|
2661
|
+
graph,
|
|
2610
2662
|
config = DEFAULT_GRAPH_CONFIG,
|
|
2611
2663
|
initialDirection,
|
|
2612
2664
|
initialShowControllers,
|
|
@@ -2624,9 +2676,6 @@ function GraphViewer(props) {
|
|
|
2624
2676
|
onNodeSelect,
|
|
2625
2677
|
onPaneClick,
|
|
2626
2678
|
renderDetailExtra,
|
|
2627
|
-
contracts,
|
|
2628
|
-
outputForm,
|
|
2629
|
-
inputForm,
|
|
2630
2679
|
resolveUrl,
|
|
2631
2680
|
resolveShareUrl,
|
|
2632
2681
|
saveFiles,
|
|
@@ -2635,6 +2684,7 @@ function GraphViewer(props) {
|
|
|
2635
2684
|
validationIssues,
|
|
2636
2685
|
onValidationIssueClick
|
|
2637
2686
|
} = props;
|
|
2687
|
+
const graphspecProp = (_a = graph == null ? void 0 : graph.graphSpec) != null ? _a : null;
|
|
2638
2688
|
const graphspec = React10.useMemo(
|
|
2639
2689
|
() => graphspecProp === null ? null : validateGraphSpec(graphspecProp),
|
|
2640
2690
|
[graphspecProp]
|
|
@@ -2670,7 +2720,7 @@ function GraphViewer(props) {
|
|
|
2670
2720
|
(_a2 = onThemeChangeRef.current) == null ? void 0 : _a2.call(onThemeChangeRef, mode, resolvedTheme);
|
|
2671
2721
|
}
|
|
2672
2722
|
}, [mode, resolvedTheme]);
|
|
2673
|
-
const effectiveFoldMode = (
|
|
2723
|
+
const effectiveFoldMode = (_c = (_b = initialFoldMode != null ? initialFoldMode : config.foldMode) != null ? _b : DEFAULT_GRAPH_CONFIG.foldMode) != null ? _c : FOLD_MODE.EXPANDED;
|
|
2674
2724
|
const [showControllers, setShowControllers] = React10.useState(() => {
|
|
2675
2725
|
var _a2, _b2;
|
|
2676
2726
|
if (effectiveFoldMode === FOLD_MODE.FOLDED) return true;
|
|
@@ -3125,7 +3175,7 @@ function GraphViewer(props) {
|
|
|
3125
3175
|
var _a2;
|
|
3126
3176
|
const nodeData = node.data;
|
|
3127
3177
|
onNodeSelect == null ? void 0 : onNodeSelect(node.id, nodeData, event);
|
|
3128
|
-
if (nodeData.isController || nodeData.isPipe) {
|
|
3178
|
+
if ((nodeData.isController || nodeData.isPipe) && nodeData.pipeType !== BINDING_STEP_TYPE) {
|
|
3129
3179
|
const code = nodeData.pipeCode || nodeData.labelText;
|
|
3130
3180
|
if (code && onNavigateToPipe) {
|
|
3131
3181
|
onNavigateToPipe(code, (_a2 = nodeData.pipeCardData) == null ? void 0 : _a2.status);
|
|
@@ -3184,13 +3234,13 @@ function GraphViewer(props) {
|
|
|
3184
3234
|
},
|
|
3185
3235
|
[graphspec]
|
|
3186
3236
|
);
|
|
3187
|
-
const selectedSpecNode = (detailSelection == null ? void 0 : detailSelection.kind) === "pipe" && graphspec ? graphspec.nodes.find((n) => n.
|
|
3237
|
+
const selectedSpecNode = (detailSelection == null ? void 0 : detailSelection.kind) === "pipe" && graphspec ? graphspec.nodes.find((n) => n.id === detailSelection.nodeId) : void 0;
|
|
3188
3238
|
const detailOpen = detailSelection !== null || conceptOverride !== null;
|
|
3189
3239
|
const effectiveToolbarPosition = resolveToolbarPosition(
|
|
3190
3240
|
toolbarPositionProp,
|
|
3191
3241
|
config.toolbarPosition
|
|
3192
3242
|
);
|
|
3193
|
-
const rawAnalysis = (
|
|
3243
|
+
const rawAnalysis = (_d = rawGraphDataRef.current) == null ? void 0 : _d.analysis;
|
|
3194
3244
|
const allControllerIds = rawAnalysis == null ? void 0 : rawAnalysis.controllerNodeIds;
|
|
3195
3245
|
const foldAllProps = React10.useMemo(() => {
|
|
3196
3246
|
if (!showControllers || !allControllerIds || allControllerIds.size === 0) {
|
|
@@ -3208,13 +3258,13 @@ function GraphViewer(props) {
|
|
|
3208
3258
|
expandAllDisabled: foldedControllers.size === 0
|
|
3209
3259
|
};
|
|
3210
3260
|
}, [showControllers, allControllerIds, foldedControllers]);
|
|
3211
|
-
return /* @__PURE__ */
|
|
3261
|
+
return /* @__PURE__ */ jsxs24(
|
|
3212
3262
|
"div",
|
|
3213
3263
|
{
|
|
3214
3264
|
ref: containerRef,
|
|
3215
3265
|
className: `react-flow-container react-flow-container--theme-${resolvedTheme} react-flow-container--mode-${mode}`,
|
|
3216
3266
|
children: [
|
|
3217
|
-
/* @__PURE__ */
|
|
3267
|
+
/* @__PURE__ */ jsxs24(
|
|
3218
3268
|
ReactFlow,
|
|
3219
3269
|
{
|
|
3220
3270
|
nodes,
|
|
@@ -3233,7 +3283,7 @@ function GraphViewer(props) {
|
|
|
3233
3283
|
proOptions: { hideAttribution: true },
|
|
3234
3284
|
panActivationKeyCode: null,
|
|
3235
3285
|
children: [
|
|
3236
|
-
/* @__PURE__ */
|
|
3286
|
+
/* @__PURE__ */ jsx25(
|
|
3237
3287
|
Background,
|
|
3238
3288
|
{
|
|
3239
3289
|
variant: BackgroundVariant.Dots,
|
|
@@ -3242,7 +3292,7 @@ function GraphViewer(props) {
|
|
|
3242
3292
|
color: "var(--color-bg-dots)"
|
|
3243
3293
|
}
|
|
3244
3294
|
),
|
|
3245
|
-
!hideToolbar && /* @__PURE__ */
|
|
3295
|
+
!hideToolbar && /* @__PURE__ */ jsx25(
|
|
3246
3296
|
GraphToolbar,
|
|
3247
3297
|
{
|
|
3248
3298
|
direction,
|
|
@@ -3279,7 +3329,7 @@ function GraphViewer(props) {
|
|
|
3279
3329
|
]
|
|
3280
3330
|
}
|
|
3281
3331
|
),
|
|
3282
|
-
/* @__PURE__ */
|
|
3332
|
+
/* @__PURE__ */ jsxs24(
|
|
3283
3333
|
DetailPanel,
|
|
3284
3334
|
{
|
|
3285
3335
|
isOpen: detailOpen,
|
|
@@ -3288,14 +3338,14 @@ function GraphViewer(props) {
|
|
|
3288
3338
|
isDragging: isPanelDragging,
|
|
3289
3339
|
onResizeHandleMouseDown: onResizeMouseDown,
|
|
3290
3340
|
children: [
|
|
3291
|
-
conceptOverride ? /* @__PURE__ */
|
|
3341
|
+
conceptOverride ? /* @__PURE__ */ jsx25(ConceptDetailPanel, { concept: conceptOverride }) : selectedSpecNode && graphspec ? /* @__PURE__ */ jsx25(
|
|
3292
3342
|
PipeDetailPanel,
|
|
3293
3343
|
{
|
|
3294
3344
|
node: selectedSpecNode,
|
|
3295
3345
|
spec: graphspec,
|
|
3296
3346
|
onConceptClick: handleConceptClick
|
|
3297
3347
|
}
|
|
3298
|
-
) : (detailSelection == null ? void 0 : detailSelection.stuffData) ? /* @__PURE__ */
|
|
3348
|
+
) : (detailSelection == null ? void 0 : detailSelection.stuffData) ? /* @__PURE__ */ jsx25(
|
|
3299
3349
|
StuffNodeDetail,
|
|
3300
3350
|
{
|
|
3301
3351
|
nodeId: detailSelection.nodeId,
|
|
@@ -3304,9 +3354,7 @@ function GraphViewer(props) {
|
|
|
3304
3354
|
consumer: detailSelection.consumer,
|
|
3305
3355
|
graphspec,
|
|
3306
3356
|
theme: resolvedTheme,
|
|
3307
|
-
|
|
3308
|
-
outputForm,
|
|
3309
|
-
inputForm,
|
|
3357
|
+
artifacts: graph,
|
|
3310
3358
|
resolveUrl,
|
|
3311
3359
|
resolveShareUrl,
|
|
3312
3360
|
saveFiles,
|
|
@@ -3334,8 +3382,10 @@ export {
|
|
|
3334
3382
|
applyStatusOverrides,
|
|
3335
3383
|
controllerNodeTypes,
|
|
3336
3384
|
detectSystemTheme,
|
|
3385
|
+
graphArtifactsFrom,
|
|
3337
3386
|
hydrateLabels,
|
|
3338
3387
|
renderLabel,
|
|
3388
|
+
resultDescriptors,
|
|
3339
3389
|
toAppEdges,
|
|
3340
3390
|
toAppNodes,
|
|
3341
3391
|
useResizable,
|