@lumea-labs/orchestrator 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/orchestrator-document.d.ts +2 -2
- package/dist/orchestrator-document.js +2 -1
- package/dist/plan-detail.d.ts +6 -6
- package/dist/plan-detail.js +214 -156
- package/dist/plan-graph.d.ts +2 -2
- package/dist/plan-graph.js +178 -119
- package/dist/plan-node-detail.d.ts +4 -4
- package/dist/plan-node-detail.js +177 -125
- package/dist/plan-task-detail.d.ts +2 -2
- package/dist/plan-task-detail.js +282 -172
- package/dist/run-kanban-filter-menu.d.ts +3 -2
- package/dist/run-kanban-filter-menu.js +96 -77
- package/dist/run-kanban.d.ts +3 -3
- package/dist/run-kanban.js +93 -79
- package/dist/swarm-agent-badge.d.ts +2 -2
- package/dist/swarm-agent-badge.js +21 -18
- package/dist/swarm-run-activity.d.ts +2 -2
- package/dist/swarm-run-activity.js +150 -95
- package/dist/swarm-run-card.d.ts +2 -2
- package/dist/swarm-run-card.js +76 -55
- package/dist/swarm-run-detail.d.ts +2 -2
- package/dist/swarm-run-detail.js +415 -310
- package/dist/swarm-run-list.d.ts +2 -2
- package/dist/swarm-run-list.js +37 -27
- package/dist/swarm-run-row.d.ts +2 -2
- package/dist/swarm-run-row.js +82 -72
- package/dist/swarm-skeletons.d.ts +3 -3
- package/dist/swarm-skeletons.js +65 -16
- package/dist/swarm-status-bar.d.ts +2 -2
- package/dist/swarm-status-bar.js +62 -44
- package/dist/swarm-status-pill.d.ts +2 -2
- package/dist/swarm-status-pill.js +14 -11
- package/dist/swarm-timeline.d.ts +2 -2
- package/dist/swarm-timeline.js +284 -225
- package/dist/task-workspace-sidebar.d.ts +2 -2
- package/dist/task-workspace-sidebar.js +145 -113
- package/package.json +1 -1
package/dist/plan-graph.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
3
|
import "@xyflow/react/dist/style.css";
|
|
3
4
|
import { useEffect, useMemo } from "react";
|
|
4
5
|
import {
|
|
@@ -59,21 +60,24 @@ function joinClasses(...parts) {
|
|
|
59
60
|
return parts.filter(Boolean).join(" ");
|
|
60
61
|
}
|
|
61
62
|
function HandlesTB() {
|
|
62
|
-
return /* @__PURE__ */
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
63
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
64
|
+
/* @__PURE__ */ jsx(
|
|
65
|
+
Handle,
|
|
66
|
+
{
|
|
67
|
+
type: "target",
|
|
68
|
+
position: Position.Top,
|
|
69
|
+
className: "!h-2 !w-2 !border-p-line !bg-p-surface"
|
|
70
|
+
}
|
|
71
|
+
),
|
|
72
|
+
/* @__PURE__ */ jsx(
|
|
73
|
+
Handle,
|
|
74
|
+
{
|
|
75
|
+
type: "source",
|
|
76
|
+
position: Position.Bottom,
|
|
77
|
+
className: "!h-2 !w-2 !border-p-line !bg-p-surface"
|
|
78
|
+
}
|
|
79
|
+
)
|
|
80
|
+
] });
|
|
77
81
|
}
|
|
78
82
|
function TaskNode({ data, selected }) {
|
|
79
83
|
const { plan, runtime, agent, labels, onOpen } = data;
|
|
@@ -82,7 +86,7 @@ function TaskNode({ data, selected }) {
|
|
|
82
86
|
const Icon = STATUS_ICON[status];
|
|
83
87
|
const assigneeName = agent?.displayName ?? plan.assignTo ?? runtime?.agentName ?? "\u2014";
|
|
84
88
|
const canOpen = !!onOpen;
|
|
85
|
-
return /* @__PURE__ */
|
|
89
|
+
return /* @__PURE__ */ jsxs(
|
|
86
90
|
"div",
|
|
87
91
|
{
|
|
88
92
|
onClick: () => {
|
|
@@ -105,36 +109,58 @@ function TaskNode({ data, selected }) {
|
|
|
105
109
|
boxShadow: selected ? `0 0 0 3px ${color}, 0 0 0 8px ${color}40, 0 22px 48px -18px rgba(15,15,15,0.38)` : "none",
|
|
106
110
|
transform: selected ? "scale(1.02)" : "scale(1)",
|
|
107
111
|
backgroundColor: selected ? `color-mix(in srgb, ${color} 5%, var(--surface))` : "var(--surface)"
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
/* @__PURE__ */ React.createElement(HandlesTB, null),
|
|
111
|
-
/* @__PURE__ */ React.createElement("div", { className: "absolute -top-2 left-3 bg-p-surface px-1 font-mono text-[9px] font-bold uppercase tracking-[0.16em] text-p-ink-3" }, labels.task),
|
|
112
|
-
/* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-1.5 px-4 py-3" }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React.createElement(Icon, { className: "size-3 shrink-0", style: { color } }), /* @__PURE__ */ React.createElement(
|
|
113
|
-
"span",
|
|
114
|
-
{
|
|
115
|
-
className: "font-mono text-[9px] font-bold uppercase tracking-[0.18em]",
|
|
116
|
-
style: { color }
|
|
117
|
-
},
|
|
118
|
-
labels.status[status]
|
|
119
|
-
), runtime?.phase && runtime.phase !== "execution" && /* @__PURE__ */ React.createElement("span", { className: "ml-auto font-mono text-[9px] uppercase tracking-[0.14em] text-p-ink-3" }, "\xB7 ", runtime.phase)), /* @__PURE__ */ React.createElement(
|
|
120
|
-
"div",
|
|
121
|
-
{
|
|
122
|
-
className: "font-display text-[14.5px] font-bold leading-[1.15] tracking-[-0.01em] text-p-ink",
|
|
123
|
-
style: {
|
|
124
|
-
display: "-webkit-box",
|
|
125
|
-
WebkitLineClamp: 2,
|
|
126
|
-
WebkitBoxOrient: "vertical",
|
|
127
|
-
overflow: "hidden"
|
|
128
|
-
}
|
|
129
112
|
},
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
113
|
+
children: [
|
|
114
|
+
/* @__PURE__ */ jsx(HandlesTB, {}),
|
|
115
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -top-2 left-3 bg-p-surface px-1 font-mono text-[9px] font-bold uppercase tracking-[0.16em] text-p-ink-3", children: labels.task }),
|
|
116
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5 px-4 py-3", children: [
|
|
117
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
118
|
+
/* @__PURE__ */ jsx(Icon, { className: "size-3 shrink-0", style: { color } }),
|
|
119
|
+
/* @__PURE__ */ jsx(
|
|
120
|
+
"span",
|
|
121
|
+
{
|
|
122
|
+
className: "font-mono text-[9px] font-bold uppercase tracking-[0.18em]",
|
|
123
|
+
style: { color },
|
|
124
|
+
children: labels.status[status]
|
|
125
|
+
}
|
|
126
|
+
),
|
|
127
|
+
runtime?.phase && runtime.phase !== "execution" && /* @__PURE__ */ jsxs("span", { className: "ml-auto font-mono text-[9px] uppercase tracking-[0.14em] text-p-ink-3", children: [
|
|
128
|
+
"\xB7 ",
|
|
129
|
+
runtime.phase
|
|
130
|
+
] })
|
|
131
|
+
] }),
|
|
132
|
+
/* @__PURE__ */ jsx(
|
|
133
|
+
"div",
|
|
134
|
+
{
|
|
135
|
+
className: "font-display text-[14.5px] font-bold leading-[1.15] tracking-[-0.01em] text-p-ink",
|
|
136
|
+
style: {
|
|
137
|
+
display: "-webkit-box",
|
|
138
|
+
WebkitLineClamp: 2,
|
|
139
|
+
WebkitBoxOrient: "vertical",
|
|
140
|
+
overflow: "hidden"
|
|
141
|
+
},
|
|
142
|
+
children: plan.title
|
|
143
|
+
}
|
|
144
|
+
),
|
|
145
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-0.5 flex items-center justify-between gap-2 font-mono text-[10px] uppercase tracking-[0.14em] text-p-ink-3", children: [
|
|
146
|
+
/* @__PURE__ */ jsx("span", { className: "truncate", children: assigneeName }),
|
|
147
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 shrink-0", children: [
|
|
148
|
+
runtime?.sideEffects && /* @__PURE__ */ jsx(
|
|
149
|
+
"span",
|
|
150
|
+
{
|
|
151
|
+
title: "side effects",
|
|
152
|
+
className: "inline-flex size-1.5 rounded-full bg-[#E63946]"
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
typeof runtime?.priority === "number" && runtime.priority !== 1 && /* @__PURE__ */ jsxs("span", { className: "text-p-ink-2", children: [
|
|
156
|
+
runtime.priority,
|
|
157
|
+
"\xD7"
|
|
158
|
+
] })
|
|
159
|
+
] })
|
|
160
|
+
] })
|
|
161
|
+
] })
|
|
162
|
+
]
|
|
163
|
+
}
|
|
138
164
|
);
|
|
139
165
|
}
|
|
140
166
|
function CheckpointNode({
|
|
@@ -143,7 +169,7 @@ function CheckpointNode({
|
|
|
143
169
|
}) {
|
|
144
170
|
const { cp, labels, onOpen } = data;
|
|
145
171
|
const canOpen = !!onOpen;
|
|
146
|
-
return /* @__PURE__ */
|
|
172
|
+
return /* @__PURE__ */ jsxs(
|
|
147
173
|
"div",
|
|
148
174
|
{
|
|
149
175
|
onClick: canOpen ? () => onOpen(cp.name) : void 0,
|
|
@@ -157,30 +183,35 @@ function CheckpointNode({
|
|
|
157
183
|
style: {
|
|
158
184
|
boxShadow: selected ? "0 0 0 3px #D4A017, 0 0 0 8px #D4A01740, 0 22px 48px -18px rgba(15,15,15,0.38)" : "none",
|
|
159
185
|
transform: selected ? "scale(1.02)" : "scale(1)"
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
/* @__PURE__ */ React.createElement(HandlesTB, null),
|
|
163
|
-
/* @__PURE__ */ React.createElement("div", { className: "absolute -top-2 left-3 bg-[#FDF8E8] px-1 font-mono text-[9px] font-bold uppercase tracking-[0.16em] text-[#8A6B0B]" }, labels.checkpoint),
|
|
164
|
-
/* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-1.5" }, /* @__PURE__ */ React.createElement(Hourglass, { className: "size-3 shrink-0 text-[#8A6B0B]" }), /* @__PURE__ */ React.createElement("span", { className: "truncate font-display text-[13.5px] font-bold leading-tight text-p-ink" }, cp.name)),
|
|
165
|
-
cp.message && /* @__PURE__ */ React.createElement(
|
|
166
|
-
"p",
|
|
167
|
-
{
|
|
168
|
-
className: "mt-1.5 text-[11.5px] leading-snug text-[#8A6B0B]",
|
|
169
|
-
style: {
|
|
170
|
-
display: "-webkit-box",
|
|
171
|
-
WebkitLineClamp: 2,
|
|
172
|
-
WebkitBoxOrient: "vertical",
|
|
173
|
-
overflow: "hidden"
|
|
174
|
-
}
|
|
175
186
|
},
|
|
176
|
-
|
|
177
|
-
|
|
187
|
+
children: [
|
|
188
|
+
/* @__PURE__ */ jsx(HandlesTB, {}),
|
|
189
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -top-2 left-3 bg-[#FDF8E8] px-1 font-mono text-[9px] font-bold uppercase tracking-[0.16em] text-[#8A6B0B]", children: labels.checkpoint }),
|
|
190
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
191
|
+
/* @__PURE__ */ jsx(Hourglass, { className: "size-3 shrink-0 text-[#8A6B0B]" }),
|
|
192
|
+
/* @__PURE__ */ jsx("span", { className: "truncate font-display text-[13.5px] font-bold leading-tight text-p-ink", children: cp.name })
|
|
193
|
+
] }),
|
|
194
|
+
cp.message && /* @__PURE__ */ jsx(
|
|
195
|
+
"p",
|
|
196
|
+
{
|
|
197
|
+
className: "mt-1.5 text-[11.5px] leading-snug text-[#8A6B0B]",
|
|
198
|
+
style: {
|
|
199
|
+
display: "-webkit-box",
|
|
200
|
+
WebkitLineClamp: 2,
|
|
201
|
+
WebkitBoxOrient: "vertical",
|
|
202
|
+
overflow: "hidden"
|
|
203
|
+
},
|
|
204
|
+
children: cp.message
|
|
205
|
+
}
|
|
206
|
+
)
|
|
207
|
+
]
|
|
208
|
+
}
|
|
178
209
|
);
|
|
179
210
|
}
|
|
180
211
|
function GateNode({ data, selected }) {
|
|
181
212
|
const { gate, labels, onOpen } = data;
|
|
182
213
|
const canOpen = !!onOpen;
|
|
183
|
-
return /* @__PURE__ */
|
|
214
|
+
return /* @__PURE__ */ jsxs(
|
|
184
215
|
"div",
|
|
185
216
|
{
|
|
186
217
|
onClick: canOpen ? () => onOpen(gate.name) : void 0,
|
|
@@ -194,18 +225,33 @@ function GateNode({ data, selected }) {
|
|
|
194
225
|
style: {
|
|
195
226
|
boxShadow: selected ? "0 0 0 3px var(--p-accent), 0 0 0 8px color-mix(in srgb, var(--p-accent) 28%, transparent), 0 22px 48px -18px rgba(15,15,15,0.38)" : "none",
|
|
196
227
|
transform: selected ? "scale(1.02)" : "scale(1)"
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
228
|
+
},
|
|
229
|
+
children: [
|
|
230
|
+
/* @__PURE__ */ jsx(HandlesTB, {}),
|
|
231
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -top-2 left-3 bg-p-accent-light px-1 font-mono text-[9px] font-bold uppercase tracking-[0.16em] text-p-accent", children: labels.qualityGate }),
|
|
232
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
233
|
+
/* @__PURE__ */ jsx(ShieldCheck, { className: "size-3 shrink-0 text-p-accent" }),
|
|
234
|
+
/* @__PURE__ */ jsx("span", { className: "truncate font-display text-[13.5px] font-bold leading-tight text-p-ink", children: gate.name })
|
|
235
|
+
] }),
|
|
236
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-1.5 flex flex-wrap gap-1 font-mono text-[10px] uppercase tracking-[0.14em] text-p-accent", children: [
|
|
237
|
+
typeof gate.minScore === "number" && /* @__PURE__ */ jsxs("span", { children: [
|
|
238
|
+
labels.qualityMinScore,
|
|
239
|
+
" ",
|
|
240
|
+
gate.minScore
|
|
241
|
+
] }),
|
|
242
|
+
gate.requireAllPassed && /* @__PURE__ */ jsxs("span", { children: [
|
|
243
|
+
"\xB7 ",
|
|
244
|
+
labels.qualityRequireAll
|
|
245
|
+
] })
|
|
246
|
+
] })
|
|
247
|
+
]
|
|
248
|
+
}
|
|
203
249
|
);
|
|
204
250
|
}
|
|
205
251
|
function DelayNode({ data, selected }) {
|
|
206
252
|
const { delay, labels, onOpen } = data;
|
|
207
253
|
const canOpen = !!onOpen;
|
|
208
|
-
return /* @__PURE__ */
|
|
254
|
+
return /* @__PURE__ */ jsxs(
|
|
209
255
|
"div",
|
|
210
256
|
{
|
|
211
257
|
onClick: canOpen ? () => onOpen(delay.name) : void 0,
|
|
@@ -219,33 +265,42 @@ function DelayNode({ data, selected }) {
|
|
|
219
265
|
style: {
|
|
220
266
|
boxShadow: selected ? "0 0 0 3px #7B3FE4, 0 0 0 8px #7B3FE440, 0 22px 48px -18px rgba(15,15,15,0.38)" : "none",
|
|
221
267
|
transform: selected ? "scale(1.02)" : "scale(1)"
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
268
|
+
},
|
|
269
|
+
children: [
|
|
270
|
+
/* @__PURE__ */ jsx(HandlesTB, {}),
|
|
271
|
+
/* @__PURE__ */ jsx("div", { className: "absolute -top-2 left-3 bg-[#F3EEFF] px-1 font-mono text-[9px] font-bold uppercase tracking-[0.16em] text-[#7B3FE4]", children: labels.delay }),
|
|
272
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
273
|
+
/* @__PURE__ */ jsx(Clock, { className: "size-3 shrink-0 text-[#7B3FE4]" }),
|
|
274
|
+
/* @__PURE__ */ jsx("span", { className: "truncate font-display text-[13.5px] font-bold leading-tight text-p-ink", children: delay.name })
|
|
275
|
+
] }),
|
|
276
|
+
/* @__PURE__ */ jsx("div", { className: "mt-1.5 font-mono text-[11px] font-bold uppercase tracking-[0.14em] text-[#7B3FE4]", children: parseDuration(delay.duration) })
|
|
277
|
+
]
|
|
278
|
+
}
|
|
228
279
|
);
|
|
229
280
|
}
|
|
230
281
|
function SentinelNode({ data }) {
|
|
231
282
|
const { role, label } = data;
|
|
232
283
|
const isStart = role === "start";
|
|
233
284
|
const Icon = isStart ? FlagTriangleRight : Flag;
|
|
234
|
-
return /* @__PURE__ */
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
285
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative inline-flex items-center gap-1.5 rounded-full border-2 border-p-ink bg-p-surface px-3 py-1.5", children: [
|
|
286
|
+
isStart ? /* @__PURE__ */ jsx(
|
|
287
|
+
Handle,
|
|
288
|
+
{
|
|
289
|
+
type: "source",
|
|
290
|
+
position: Position.Bottom,
|
|
291
|
+
className: "!h-2 !w-2 !border-p-ink !bg-p-ink"
|
|
292
|
+
}
|
|
293
|
+
) : /* @__PURE__ */ jsx(
|
|
294
|
+
Handle,
|
|
295
|
+
{
|
|
296
|
+
type: "target",
|
|
297
|
+
position: Position.Top,
|
|
298
|
+
className: "!h-2 !w-2 !border-p-ink !bg-p-ink"
|
|
299
|
+
}
|
|
300
|
+
),
|
|
301
|
+
/* @__PURE__ */ jsx(Icon, { className: "size-3 text-p-ink", "aria-hidden": true }),
|
|
302
|
+
/* @__PURE__ */ jsx("span", { className: "font-mono text-[10px] font-bold uppercase tracking-[0.22em] text-p-ink", children: label })
|
|
303
|
+
] });
|
|
249
304
|
}
|
|
250
305
|
const nodeTypes = {
|
|
251
306
|
taskNode: TaskNode,
|
|
@@ -368,7 +423,7 @@ function useZoomToNode(targetId, enabled) {
|
|
|
368
423
|
}, [targetId, enabled, rf]);
|
|
369
424
|
}
|
|
370
425
|
function PlanGraph(props) {
|
|
371
|
-
return /* @__PURE__ */
|
|
426
|
+
return /* @__PURE__ */ jsx(ReactFlowProvider, { children: /* @__PURE__ */ jsx(PlanGraphInner, { ...props }) });
|
|
372
427
|
}
|
|
373
428
|
function PlanGraphInner({
|
|
374
429
|
tasks,
|
|
@@ -547,20 +602,22 @@ function PlanGraphInner({
|
|
|
547
602
|
}, [flowNodes, selectedNodeId]);
|
|
548
603
|
useZoomToNode(selectedNodeId ?? null, zoomToSelected);
|
|
549
604
|
if (flowNodes.length === 0) {
|
|
550
|
-
return /* @__PURE__ */
|
|
605
|
+
return /* @__PURE__ */ jsxs(
|
|
551
606
|
"div",
|
|
552
607
|
{
|
|
553
608
|
className: joinClasses(
|
|
554
609
|
"flex flex-col items-center justify-center gap-4 border border-p-line bg-p-bg px-8 py-20 text-center",
|
|
555
610
|
className
|
|
556
|
-
)
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
611
|
+
),
|
|
612
|
+
children: [
|
|
613
|
+
/* @__PURE__ */ jsx("span", { className: "inline-flex size-12 items-center justify-center rounded-full border border-p-line bg-p-surface text-p-ink-3", children: /* @__PURE__ */ jsx(Flag, { className: "size-5" }) }),
|
|
614
|
+
/* @__PURE__ */ jsx("h3", { className: "max-w-[36ch] font-display text-[22px] italic leading-[1.15] tracking-tight text-p-ink", children: L.emptyTitle }),
|
|
615
|
+
/* @__PURE__ */ jsx("p", { className: "max-w-[48ch] text-[13.5px] leading-relaxed text-p-ink-2", children: L.emptyBody })
|
|
616
|
+
]
|
|
617
|
+
}
|
|
561
618
|
);
|
|
562
619
|
}
|
|
563
|
-
return /* @__PURE__ */
|
|
620
|
+
return /* @__PURE__ */ jsx("div", { className: joinClasses("plan-graph relative bg-p-bg", className), children: /* @__PURE__ */ jsxs(
|
|
564
621
|
ReactFlow,
|
|
565
622
|
{
|
|
566
623
|
nodes: renderedNodes,
|
|
@@ -572,25 +629,27 @@ function PlanGraphInner({
|
|
|
572
629
|
nodesDraggable: false,
|
|
573
630
|
nodesConnectable: false,
|
|
574
631
|
elementsSelectable: true,
|
|
575
|
-
style: { width: "100%", height: "100%" }
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
632
|
+
style: { width: "100%", height: "100%" },
|
|
633
|
+
children: [
|
|
634
|
+
/* @__PURE__ */ jsx(
|
|
635
|
+
Background,
|
|
636
|
+
{
|
|
637
|
+
variant: BackgroundVariant.Dots,
|
|
638
|
+
gap: 28,
|
|
639
|
+
size: 1,
|
|
640
|
+
color: "var(--line)"
|
|
641
|
+
}
|
|
642
|
+
),
|
|
643
|
+
/* @__PURE__ */ jsx(
|
|
644
|
+
Controls,
|
|
645
|
+
{
|
|
646
|
+
showInteractive: false,
|
|
647
|
+
className: "!bg-p-surface !border !border-p-line !rounded-[4px] !shadow-none [&_button]:!bg-p-surface [&_button]:!border-p-line [&_button]:!text-p-ink-2 [&_button:hover]:!bg-p-warm [&_button:hover]:!text-p-ink"
|
|
648
|
+
}
|
|
649
|
+
)
|
|
650
|
+
]
|
|
651
|
+
}
|
|
652
|
+
) });
|
|
594
653
|
}
|
|
595
654
|
export {
|
|
596
655
|
PlanGraph
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { PlanTaskRuntime, Plan, PlanGraphLabels, PlanCheckpoint, PlanDelay, PlanQualityGate } from './plan-types.js';
|
|
4
4
|
|
|
@@ -22,8 +22,8 @@ interface PlanQualityGateDetailProps extends CommonProps {
|
|
|
22
22
|
interface PlanDelayDetailProps extends CommonProps {
|
|
23
23
|
delay: PlanDelay;
|
|
24
24
|
}
|
|
25
|
-
declare function PlanCheckpointDetail({ checkpoint, runtimeByTitle, plan, headerTrailing, actionsSlot, onOpenRelated, labels, className, }: PlanCheckpointDetailProps):
|
|
26
|
-
declare function PlanQualityGateDetail({ gate, runtimeByTitle, plan, headerTrailing, actionsSlot, onOpenRelated, labels, className, }: PlanQualityGateDetailProps):
|
|
27
|
-
declare function PlanDelayDetail({ delay, runtimeByTitle, plan, headerTrailing, actionsSlot, onOpenRelated, labels, className, }: PlanDelayDetailProps):
|
|
25
|
+
declare function PlanCheckpointDetail({ checkpoint, runtimeByTitle, plan, headerTrailing, actionsSlot, onOpenRelated, labels, className, }: PlanCheckpointDetailProps): react_jsx_runtime.JSX.Element;
|
|
26
|
+
declare function PlanQualityGateDetail({ gate, runtimeByTitle, plan, headerTrailing, actionsSlot, onOpenRelated, labels, className, }: PlanQualityGateDetailProps): react_jsx_runtime.JSX.Element;
|
|
27
|
+
declare function PlanDelayDetail({ delay, runtimeByTitle, plan, headerTrailing, actionsSlot, onOpenRelated, labels, className, }: PlanDelayDetailProps): react_jsx_runtime.JSX.Element;
|
|
28
28
|
|
|
29
29
|
export { PlanCheckpointDetail, type PlanCheckpointDetailProps, PlanDelayDetail, type PlanDelayDetailProps, PlanQualityGateDetail, type PlanQualityGateDetailProps };
|