@burdenoff/microfe-cosmicintersection 2026.704.1 → 2026.704.3
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/cosmicintersection/CosmicIntersectionRoutes.js +45 -25
- package/dist/cosmicintersection/CosmicIntersectionRoutes.js.map +1 -1
- package/dist/cosmicintersection/api/cosmicApi.js +137 -66
- package/dist/cosmicintersection/api/cosmicApi.js.map +1 -1
- package/dist/cosmicintersection/components/ActivityFeedPanel.js +68 -0
- package/dist/cosmicintersection/components/ActivityFeedPanel.js.map +1 -0
- package/dist/cosmicintersection/components/DiscussionPanel.js +57 -0
- package/dist/cosmicintersection/components/DiscussionPanel.js.map +1 -0
- package/dist/cosmicintersection/components/FacetPanel.js +66 -0
- package/dist/cosmicintersection/components/FacetPanel.js.map +1 -0
- package/dist/cosmicintersection/components/LineageGraph.js +388 -0
- package/dist/cosmicintersection/components/LineageGraph.js.map +1 -0
- package/dist/cosmicintersection/components/ResultsChart.js +329 -0
- package/dist/cosmicintersection/components/ResultsChart.js.map +1 -0
- package/dist/cosmicintersection/components/StepDAG.js +104 -0
- package/dist/cosmicintersection/components/StepDAG.js.map +1 -0
- package/dist/cosmicintersection/components/index.js +5 -3
- package/dist/cosmicintersection/pages/access/AccessPage.js +220 -161
- package/dist/cosmicintersection/pages/access/AccessPage.js.map +1 -1
- package/dist/cosmicintersection/pages/analyses/AnalysesPage.js +332 -172
- package/dist/cosmicintersection/pages/analyses/AnalysesPage.js.map +1 -1
- package/dist/cosmicintersection/pages/collections/CollectionDetailPage.js +167 -109
- package/dist/cosmicintersection/pages/collections/CollectionDetailPage.js.map +1 -1
- package/dist/cosmicintersection/pages/collections/CollectionFormPage.js +87 -61
- package/dist/cosmicintersection/pages/collections/CollectionFormPage.js.map +1 -1
- package/dist/cosmicintersection/pages/collections/CollectionsPage.js +51 -42
- package/dist/cosmicintersection/pages/collections/CollectionsPage.js.map +1 -1
- package/dist/cosmicintersection/pages/dashboard/DashboardPage.js +31 -18
- package/dist/cosmicintersection/pages/dashboard/DashboardPage.js.map +1 -1
- package/dist/cosmicintersection/pages/datasets/DatasetDetailPage.js +330 -184
- package/dist/cosmicintersection/pages/datasets/DatasetDetailPage.js.map +1 -1
- package/dist/cosmicintersection/pages/datasets/DatasetFormPage.js +7 -7
- package/dist/cosmicintersection/pages/datasets/DatasetsPage.js +321 -163
- package/dist/cosmicintersection/pages/datasets/DatasetsPage.js.map +1 -1
- package/dist/cosmicintersection/pages/discovery/DiscoveryPage.js +358 -0
- package/dist/cosmicintersection/pages/discovery/DiscoveryPage.js.map +1 -0
- package/dist/cosmicintersection/pages/lineage/LineagePage.js +171 -0
- package/dist/cosmicintersection/pages/lineage/LineagePage.js.map +1 -0
- package/dist/cosmicintersection/pages/notebooks/NotebookDetailPage.js +339 -260
- package/dist/cosmicintersection/pages/notebooks/NotebookDetailPage.js.map +1 -1
- package/dist/cosmicintersection/pages/notebooks/NotebooksPage.js +143 -82
- package/dist/cosmicintersection/pages/notebooks/NotebooksPage.js.map +1 -1
- package/dist/cosmicintersection/pages/pipelines/PipelineDetailPage.js +286 -142
- package/dist/cosmicintersection/pages/pipelines/PipelineDetailPage.js.map +1 -1
- package/dist/cosmicintersection/pages/pipelines/PipelineFormPage.js +305 -103
- package/dist/cosmicintersection/pages/pipelines/PipelineFormPage.js.map +1 -1
- package/dist/cosmicintersection/pages/pipelines/PipelinesPage.js +183 -79
- package/dist/cosmicintersection/pages/pipelines/PipelinesPage.js.map +1 -1
- package/dist/cosmicintersection/pages/releases/ReleasesPage.js +346 -204
- package/dist/cosmicintersection/pages/releases/ReleasesPage.js.map +1 -1
- package/dist/cosmicintersection/pages/runs/RunDetailPage.js +184 -136
- package/dist/cosmicintersection/pages/runs/RunDetailPage.js.map +1 -1
- package/dist/cosmicintersection/pages/runs/RunsPage.js +182 -120
- package/dist/cosmicintersection/pages/runs/RunsPage.js.map +1 -1
- package/dist/cosmicintersection/pages/sources/SourceDetailPage.js +234 -0
- package/dist/cosmicintersection/pages/sources/SourceDetailPage.js.map +1 -0
- package/dist/cosmicintersection/pages/sources/SourcesPage.js +250 -133
- package/dist/cosmicintersection/pages/sources/SourcesPage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,28 +1,29 @@
|
|
|
1
1
|
import { useCosmicIntersection as e } from "../../context/CosmicIntersectionContext.js";
|
|
2
2
|
import { notify as t } from "../../lib/toast.js";
|
|
3
|
-
import { useCosAddRunStepMutation as n, useCosRunQuery as r, useCosRunStepsQuery as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
3
|
+
import { useCosAddRunStepMutation as n, useCosRunQuery as r, useCosRunStepsQuery as i, useCosTransitionRunMutation as ee } from "../../api/cosmicApi.js";
|
|
4
|
+
import a from "../../components/EmptyState.js";
|
|
5
|
+
import o from "../../components/ErrorState.js";
|
|
6
|
+
import s from "../../components/LoadingState.js";
|
|
7
|
+
import te from "../../components/ActivityFeedPanel.js";
|
|
8
8
|
import ne from "../../components/SafeLink.js";
|
|
9
|
-
import c
|
|
9
|
+
import c from "../../components/PageLayout.js";
|
|
10
|
+
import l, { formatEnumLabel as u } from "../../components/StatusBadge.js";
|
|
10
11
|
import "../../components/index.js";
|
|
11
|
-
import { describeError as
|
|
12
|
-
import { useMemo as
|
|
13
|
-
import { jsx as
|
|
14
|
-
import { useParams as
|
|
15
|
-
import { ListTree as
|
|
16
|
-
import { Button as
|
|
12
|
+
import { describeError as d, mutationSucceeded as f } from "../../lib/mutationResult.js";
|
|
13
|
+
import { useMemo as re, useState as p } from "react";
|
|
14
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
15
|
+
import { useParams as g } from "react-router-dom";
|
|
16
|
+
import { Check as _, Circle as v, ListTree as ie, Loader2 as y, Plus as b, X as x } from "lucide-react";
|
|
17
|
+
import { Button as S, Card as C, CardContent as w, CardHeader as T, CardTitle as E, Dialog as ae, DialogContent as D, DialogDescription as O, DialogFooter as oe, DialogHeader as se, DialogTitle as ce, Input as k, Label as A, Select as le, SelectContent as ue, SelectItem as de, SelectTrigger as fe, SelectValue as pe, Textarea as me } from "@burdenoff/fe-libs/ui";
|
|
17
18
|
//#region src/cosmicintersection/pages/runs/RunDetailPage.tsx
|
|
18
|
-
var
|
|
19
|
+
var he = [
|
|
19
20
|
"INGEST",
|
|
20
21
|
"CALIBRATE",
|
|
21
22
|
"TRANSFORM",
|
|
22
23
|
"ANALYZE",
|
|
23
24
|
"EXPORT",
|
|
24
25
|
"NOTIFY"
|
|
25
|
-
],
|
|
26
|
+
], ge = {
|
|
26
27
|
QUEUED: ["RUNNING", "CANCELLED"],
|
|
27
28
|
RUNNING: [
|
|
28
29
|
"SUCCEEDED",
|
|
@@ -32,50 +33,76 @@ var pe = [
|
|
|
32
33
|
SUCCEEDED: [],
|
|
33
34
|
FAILED: [],
|
|
34
35
|
CANCELLED: []
|
|
36
|
+
}, j = {
|
|
37
|
+
SUCCEEDED: {
|
|
38
|
+
icon: _,
|
|
39
|
+
spin: !1,
|
|
40
|
+
wrap: "border-status-success-border bg-status-success-bg-subtle text-status-success-text"
|
|
41
|
+
},
|
|
42
|
+
RUNNING: {
|
|
43
|
+
icon: y,
|
|
44
|
+
spin: !0,
|
|
45
|
+
wrap: "border-status-warning-border bg-status-warning-bg-subtle text-status-warning-text"
|
|
46
|
+
},
|
|
47
|
+
FAILED: {
|
|
48
|
+
icon: x,
|
|
49
|
+
spin: !1,
|
|
50
|
+
wrap: "border-status-error-border bg-status-error-bg-subtle text-status-error-text"
|
|
51
|
+
},
|
|
52
|
+
QUEUED: {
|
|
53
|
+
icon: v,
|
|
54
|
+
spin: !1,
|
|
55
|
+
wrap: "border-status-info-border bg-status-info-bg-subtle text-status-info-text"
|
|
56
|
+
},
|
|
57
|
+
CANCELLED: {
|
|
58
|
+
icon: x,
|
|
59
|
+
spin: !1,
|
|
60
|
+
wrap: "border-border-default bg-bg-sunken text-text-secondary"
|
|
61
|
+
}
|
|
35
62
|
};
|
|
36
|
-
function
|
|
63
|
+
function M(e) {
|
|
37
64
|
if (!e) return "—";
|
|
38
65
|
let t = new Date(e);
|
|
39
66
|
return Number.isNaN(t.getTime()) ? "—" : t.toLocaleString();
|
|
40
67
|
}
|
|
41
|
-
function
|
|
68
|
+
function N(e) {
|
|
42
69
|
if (e == null) return "—";
|
|
43
70
|
if (e < 1e3) return `${e} ms`;
|
|
44
71
|
let t = e / 1e3;
|
|
45
72
|
return t < 60 ? `${t.toFixed(1)} s` : `${Math.floor(t / 60)}m ${Math.round(t % 60)}s`;
|
|
46
73
|
}
|
|
47
|
-
function
|
|
48
|
-
return /* @__PURE__ */
|
|
74
|
+
function P({ label: e, children: t }) {
|
|
75
|
+
return /* @__PURE__ */ h("div", {
|
|
49
76
|
className: "flex flex-col gap-1 border-b border-border-seam py-3 last:border-0 sm:flex-row sm:items-start sm:gap-4",
|
|
50
|
-
children: [/* @__PURE__ */
|
|
77
|
+
children: [/* @__PURE__ */ m("span", {
|
|
51
78
|
className: "w-40 shrink-0 text-sm font-medium text-text-secondary",
|
|
52
79
|
children: e
|
|
53
|
-
}), /* @__PURE__ */
|
|
80
|
+
}), /* @__PURE__ */ m("span", {
|
|
54
81
|
className: "min-w-0 text-sm text-text-primary",
|
|
55
82
|
children: t
|
|
56
83
|
})]
|
|
57
84
|
});
|
|
58
85
|
}
|
|
59
|
-
function
|
|
60
|
-
return !e || Object.keys(e).length === 0 ? /* @__PURE__ */
|
|
86
|
+
function F({ value: e }) {
|
|
87
|
+
return !e || Object.keys(e).length === 0 ? /* @__PURE__ */ m("span", {
|
|
61
88
|
className: "text-sm text-text-secondary",
|
|
62
89
|
children: "—"
|
|
63
|
-
}) : /* @__PURE__ */
|
|
90
|
+
}) : /* @__PURE__ */ m("pre", {
|
|
64
91
|
className: "overflow-x-auto rounded-card border border-border-default bg-bg-sunken p-3 font-mono text-xs text-text-primary",
|
|
65
92
|
children: JSON.stringify(e, null, 2)
|
|
66
93
|
});
|
|
67
94
|
}
|
|
68
|
-
function
|
|
69
|
-
let { id:
|
|
95
|
+
function I() {
|
|
96
|
+
let { id: _ = "" } = g(), { navigate: v } = e(), { data: y, loading: x, error: I, refetch: L } = r(_), { data: R, loading: _e, error: ve, refetch: z } = i(_), [ye, { loading: be }] = ee(), [xe, { loading: B }] = n(), [Se, V] = p(!1), [H, U] = p(""), [W, G] = p("INGEST"), [K, q] = p(""), [J, Y] = p(""), X = y?.cosRun, Z = re(() => [...R?.cosListRunSteps ?? []].sort((e, t) => e.position - t.position), [R]), Ce = async (e) => {
|
|
70
97
|
if (!X) return;
|
|
71
|
-
let n = await
|
|
98
|
+
let n = await ye({ variables: {
|
|
72
99
|
id: X.id,
|
|
73
100
|
status: e
|
|
74
101
|
} });
|
|
75
|
-
|
|
102
|
+
f(n, n.data?.cosTransitionRun?.id, "Could not update the run") && (t.success("Run updated", `Run #${X.runNumber} moved to ${u(e)}.`), await Promise.all([L(), z()]));
|
|
76
103
|
}, Q = () => {
|
|
77
104
|
U(""), G("INGEST"), q(""), Y("");
|
|
78
|
-
},
|
|
105
|
+
}, we = async () => {
|
|
79
106
|
if (!X) return;
|
|
80
107
|
if (!H.trim()) {
|
|
81
108
|
t.error("Step name is required", "Give the step a name before adding it.");
|
|
@@ -87,7 +114,7 @@ function M() {
|
|
|
87
114
|
if (typeof t != "object" || !t || Array.isArray(t)) throw Error("Inputs must be a JSON object.");
|
|
88
115
|
e = t;
|
|
89
116
|
} catch (e) {
|
|
90
|
-
t.error("Invalid inputs JSON",
|
|
117
|
+
t.error("Invalid inputs JSON", d(e) ?? "Please provide valid JSON.");
|
|
91
118
|
return;
|
|
92
119
|
}
|
|
93
120
|
let n = K.trim() ? Number(K.trim()) : void 0;
|
|
@@ -95,229 +122,250 @@ function M() {
|
|
|
95
122
|
t.error("Invalid position", "Position must be a non-negative number.");
|
|
96
123
|
return;
|
|
97
124
|
}
|
|
98
|
-
let r = await
|
|
125
|
+
let r = await xe({ variables: { input: {
|
|
99
126
|
runId: X.id,
|
|
100
127
|
name: H.trim(),
|
|
101
128
|
kind: W,
|
|
102
129
|
inputs: e,
|
|
103
130
|
position: n
|
|
104
131
|
} } });
|
|
105
|
-
|
|
132
|
+
f(r, r.data?.cosAddRunStep?.id, "Could not add the step") && (t.success("Step added", `“${H.trim()}” was added to the run.`), V(!1), Q(), await z());
|
|
106
133
|
};
|
|
107
|
-
if (
|
|
134
|
+
if (x) return /* @__PURE__ */ m(c, {
|
|
108
135
|
title: "Run",
|
|
109
136
|
backPath: "runs",
|
|
110
|
-
children: /* @__PURE__ */
|
|
137
|
+
children: /* @__PURE__ */ m(s, { label: "Loading run…" })
|
|
111
138
|
});
|
|
112
|
-
if (I) return /* @__PURE__ */
|
|
139
|
+
if (I) return /* @__PURE__ */ m(c, {
|
|
113
140
|
title: "Run",
|
|
114
141
|
backPath: "runs",
|
|
115
|
-
children: /* @__PURE__ */
|
|
142
|
+
children: /* @__PURE__ */ m(o, { onRetry: () => void L() })
|
|
116
143
|
});
|
|
117
|
-
if (!X) return /* @__PURE__ */
|
|
144
|
+
if (!X) return /* @__PURE__ */ m(c, {
|
|
118
145
|
title: "Run",
|
|
119
146
|
backPath: "runs",
|
|
120
|
-
children: /* @__PURE__ */
|
|
147
|
+
children: /* @__PURE__ */ m(a, {
|
|
121
148
|
title: "Run not found",
|
|
122
149
|
description: "This run may have been removed or you may not have access to it.",
|
|
123
|
-
action: /* @__PURE__ */
|
|
150
|
+
action: /* @__PURE__ */ m(S, {
|
|
124
151
|
type: "button",
|
|
125
152
|
variant: "outline",
|
|
126
|
-
onClick: () =>
|
|
153
|
+
onClick: () => v("runs"),
|
|
127
154
|
children: "Back to runs"
|
|
128
155
|
})
|
|
129
156
|
})
|
|
130
157
|
});
|
|
131
|
-
let $ =
|
|
132
|
-
return /* @__PURE__ */
|
|
158
|
+
let $ = ge[X.status] ?? [];
|
|
159
|
+
return /* @__PURE__ */ h(c, {
|
|
133
160
|
title: `Run #${X.runNumber}`,
|
|
134
161
|
description: X.pipeline ? `Pipeline: ${X.pipeline.name}` : void 0,
|
|
135
162
|
backPath: "runs",
|
|
136
|
-
actions: /* @__PURE__ */
|
|
163
|
+
actions: /* @__PURE__ */ h("div", {
|
|
137
164
|
className: "flex flex-wrap items-center gap-2",
|
|
138
|
-
children: [$.map((e) => /* @__PURE__ */
|
|
165
|
+
children: [$.map((e) => /* @__PURE__ */ m(S, {
|
|
139
166
|
type: "button",
|
|
140
167
|
variant: e === "CANCELLED" || e === "FAILED" ? "outline" : "default",
|
|
141
|
-
onClick: () => void
|
|
142
|
-
disabled:
|
|
143
|
-
children: `Mark ${
|
|
144
|
-
}, e)), /* @__PURE__ */
|
|
168
|
+
onClick: () => void Ce(e),
|
|
169
|
+
disabled: be,
|
|
170
|
+
children: `Mark ${u(e)}`
|
|
171
|
+
}, e)), /* @__PURE__ */ h(S, {
|
|
145
172
|
type: "button",
|
|
146
173
|
variant: "outline",
|
|
147
174
|
onClick: () => V(!0),
|
|
148
|
-
children: [/* @__PURE__ */
|
|
175
|
+
children: [/* @__PURE__ */ m(b, { className: "size-4" }), "Add step"]
|
|
149
176
|
})]
|
|
150
177
|
}),
|
|
151
|
-
children: [/* @__PURE__ */
|
|
178
|
+
children: [/* @__PURE__ */ h("div", {
|
|
152
179
|
className: "space-y-6",
|
|
153
180
|
children: [
|
|
154
|
-
/* @__PURE__ */
|
|
155
|
-
/* @__PURE__ */
|
|
181
|
+
/* @__PURE__ */ h(C, { children: [/* @__PURE__ */ m(T, { children: /* @__PURE__ */ m(E, { children: "Overview" }) }), /* @__PURE__ */ h(w, { children: [
|
|
182
|
+
/* @__PURE__ */ m(P, {
|
|
156
183
|
label: "Status",
|
|
157
|
-
children: /* @__PURE__ */
|
|
184
|
+
children: /* @__PURE__ */ m(l, { status: X.status })
|
|
158
185
|
}),
|
|
159
|
-
/* @__PURE__ */
|
|
186
|
+
/* @__PURE__ */ m(P, {
|
|
160
187
|
label: "Pipeline",
|
|
161
|
-
children: X.pipeline ? /* @__PURE__ */
|
|
188
|
+
children: X.pipeline ? /* @__PURE__ */ m("button", {
|
|
162
189
|
type: "button",
|
|
163
190
|
className: "text-text-primary underline-offset-2 hover:underline",
|
|
164
|
-
onClick: () =>
|
|
191
|
+
onClick: () => v(`pipelines/${X.pipelineId}`),
|
|
165
192
|
children: X.pipeline.name
|
|
166
|
-
}) : /* @__PURE__ */
|
|
193
|
+
}) : /* @__PURE__ */ m("span", {
|
|
167
194
|
className: "font-mono text-xs",
|
|
168
195
|
children: X.pipelineId
|
|
169
196
|
})
|
|
170
197
|
}),
|
|
171
|
-
/* @__PURE__ */
|
|
198
|
+
/* @__PURE__ */ m(P, {
|
|
172
199
|
label: "Dataset",
|
|
173
|
-
children: X.datasetId ? /* @__PURE__ */
|
|
200
|
+
children: X.datasetId ? /* @__PURE__ */ m("button", {
|
|
174
201
|
type: "button",
|
|
175
202
|
className: "text-text-primary underline-offset-2 hover:underline",
|
|
176
|
-
onClick: () =>
|
|
177
|
-
children: /* @__PURE__ */
|
|
203
|
+
onClick: () => v(`datasets/${X.datasetId}`),
|
|
204
|
+
children: /* @__PURE__ */ m("span", {
|
|
178
205
|
className: "font-mono text-xs",
|
|
179
206
|
children: X.datasetId
|
|
180
207
|
})
|
|
181
208
|
}) : "—"
|
|
182
209
|
}),
|
|
183
|
-
/* @__PURE__ */
|
|
210
|
+
/* @__PURE__ */ m(P, {
|
|
184
211
|
label: "Triggered by",
|
|
185
212
|
children: X.triggeredBy || "—"
|
|
186
213
|
}),
|
|
187
|
-
/* @__PURE__ */
|
|
214
|
+
/* @__PURE__ */ m(P, {
|
|
188
215
|
label: "Started",
|
|
189
|
-
children:
|
|
216
|
+
children: M(X.startedAt)
|
|
190
217
|
}),
|
|
191
|
-
/* @__PURE__ */
|
|
218
|
+
/* @__PURE__ */ m(P, {
|
|
192
219
|
label: "Finished",
|
|
193
|
-
children:
|
|
220
|
+
children: M(X.finishedAt)
|
|
194
221
|
}),
|
|
195
|
-
/* @__PURE__ */
|
|
222
|
+
/* @__PURE__ */ m(P, {
|
|
196
223
|
label: "Duration",
|
|
197
|
-
children:
|
|
224
|
+
children: N(X.durationMs)
|
|
198
225
|
}),
|
|
199
|
-
X.errorMessage ? /* @__PURE__ */
|
|
226
|
+
X.errorMessage ? /* @__PURE__ */ m(P, {
|
|
200
227
|
label: "Error",
|
|
201
|
-
children: /* @__PURE__ */
|
|
228
|
+
children: /* @__PURE__ */ m("span", {
|
|
202
229
|
className: "text-status-error-text",
|
|
203
230
|
children: X.errorMessage
|
|
204
231
|
})
|
|
205
232
|
}) : null,
|
|
206
|
-
$.length === 0 ? /* @__PURE__ */
|
|
233
|
+
$.length === 0 ? /* @__PURE__ */ m(P, {
|
|
207
234
|
label: "Discuss",
|
|
208
|
-
children: /* @__PURE__ */
|
|
235
|
+
children: /* @__PURE__ */ m(ne, {
|
|
209
236
|
href: "/conversations",
|
|
210
237
|
className: "text-text-primary underline-offset-2 hover:underline",
|
|
211
238
|
children: "Open discussions"
|
|
212
239
|
})
|
|
213
240
|
}) : null
|
|
214
241
|
] })] }),
|
|
215
|
-
/* @__PURE__ */
|
|
242
|
+
/* @__PURE__ */ h("div", {
|
|
216
243
|
className: "grid grid-cols-1 gap-6 lg:grid-cols-2",
|
|
217
|
-
children: [/* @__PURE__ */
|
|
244
|
+
children: [/* @__PURE__ */ h(C, { children: [/* @__PURE__ */ m(T, { children: /* @__PURE__ */ m(E, { children: "Parameters" }) }), /* @__PURE__ */ m(w, { children: /* @__PURE__ */ m(F, { value: X.params }) })] }), /* @__PURE__ */ h(C, { children: [/* @__PURE__ */ m(T, { children: /* @__PURE__ */ m(E, { children: "Metrics" }) }), /* @__PURE__ */ m(w, { children: /* @__PURE__ */ m(F, { value: X.metrics }) })] })]
|
|
218
245
|
}),
|
|
219
|
-
/* @__PURE__ */
|
|
246
|
+
/* @__PURE__ */ h(C, { children: [/* @__PURE__ */ m(T, { children: /* @__PURE__ */ m(E, { children: "Steps" }) }), /* @__PURE__ */ m(w, { children: _e ? /* @__PURE__ */ m(s, {
|
|
220
247
|
variant: "rows",
|
|
221
248
|
rows: 4,
|
|
222
249
|
label: "Loading steps…"
|
|
223
|
-
}) :
|
|
250
|
+
}) : ve ? /* @__PURE__ */ m(o, {
|
|
224
251
|
message: "Could not load steps.",
|
|
225
252
|
onRetry: () => void z()
|
|
226
|
-
}) : Z.length === 0 ? /* @__PURE__ */
|
|
227
|
-
icon:
|
|
253
|
+
}) : Z.length === 0 ? /* @__PURE__ */ m(a, {
|
|
254
|
+
icon: ie,
|
|
228
255
|
title: "No steps yet",
|
|
229
256
|
description: "Add steps to record the ingest, calibration, transform, analyze or export stages of this run.",
|
|
230
|
-
action: /* @__PURE__ */
|
|
257
|
+
action: /* @__PURE__ */ h(S, {
|
|
231
258
|
type: "button",
|
|
232
259
|
onClick: () => V(!0),
|
|
233
|
-
children: [/* @__PURE__ */
|
|
260
|
+
children: [/* @__PURE__ */ m(b, { className: "size-4" }), "Add step"]
|
|
234
261
|
})
|
|
235
|
-
}) : /* @__PURE__ */
|
|
236
|
-
className: "
|
|
237
|
-
children: Z.map((e) =>
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
className: "flex
|
|
241
|
-
children: [/* @__PURE__ */
|
|
242
|
-
className: "
|
|
243
|
-
children:
|
|
244
|
-
|
|
245
|
-
|
|
262
|
+
}) : /* @__PURE__ */ m("ol", {
|
|
263
|
+
className: "flex flex-col",
|
|
264
|
+
children: Z.map((e, t) => {
|
|
265
|
+
let n = j[e.status] ?? j.QUEUED, r = n.icon, i = t === Z.length - 1;
|
|
266
|
+
return /* @__PURE__ */ h("li", {
|
|
267
|
+
className: "flex gap-4",
|
|
268
|
+
children: [/* @__PURE__ */ h("div", {
|
|
269
|
+
className: "flex flex-col items-center",
|
|
270
|
+
children: [/* @__PURE__ */ m("span", {
|
|
271
|
+
className: `flex size-8 shrink-0 items-center justify-center rounded-full border ${n.wrap}`,
|
|
272
|
+
children: /* @__PURE__ */ m(r, {
|
|
273
|
+
className: `size-4 ${n.spin ? "animate-spin" : ""}`,
|
|
274
|
+
"aria-hidden": "true"
|
|
275
|
+
})
|
|
276
|
+
}), i ? null : /* @__PURE__ */ m("span", {
|
|
277
|
+
className: "w-px flex-1 bg-border-default",
|
|
278
|
+
"aria-hidden": "true"
|
|
279
|
+
})]
|
|
280
|
+
}), /* @__PURE__ */ h("div", {
|
|
281
|
+
className: `min-w-0 flex-1 rounded-card border border-border-default bg-bg-elevated p-4 ${i ? "" : "mb-4"}`,
|
|
246
282
|
children: [
|
|
247
|
-
/* @__PURE__ */
|
|
283
|
+
/* @__PURE__ */ h("div", {
|
|
248
284
|
className: "flex flex-wrap items-center gap-2",
|
|
249
|
-
children: [
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
285
|
+
children: [
|
|
286
|
+
/* @__PURE__ */ h("span", {
|
|
287
|
+
className: "text-xs font-semibold tabular-nums text-text-secondary",
|
|
288
|
+
children: [t + 1, "."]
|
|
289
|
+
}),
|
|
290
|
+
/* @__PURE__ */ m("span", {
|
|
291
|
+
className: "min-w-0 truncate font-medium text-text-primary",
|
|
292
|
+
children: e.name
|
|
293
|
+
}),
|
|
294
|
+
/* @__PURE__ */ m(l, {
|
|
295
|
+
status: e.kind,
|
|
296
|
+
tone: "neutral"
|
|
297
|
+
}),
|
|
298
|
+
/* @__PURE__ */ m(l, {
|
|
299
|
+
status: e.status,
|
|
300
|
+
className: "ml-auto"
|
|
301
|
+
})
|
|
302
|
+
]
|
|
256
303
|
}),
|
|
257
|
-
e.errorMessage ? /* @__PURE__ */
|
|
258
|
-
className: "mt-1 text-xs text-status-error-text",
|
|
304
|
+
e.errorMessage ? /* @__PURE__ */ m("p", {
|
|
305
|
+
className: "mt-1.5 text-xs text-status-error-text",
|
|
259
306
|
children: e.errorMessage
|
|
260
307
|
}) : null,
|
|
261
|
-
/* @__PURE__ */
|
|
262
|
-
className: "mt-1 text-xs text-text-secondary",
|
|
263
|
-
children: ["Duration: ",
|
|
308
|
+
/* @__PURE__ */ h("p", {
|
|
309
|
+
className: "mt-1.5 text-xs text-text-secondary",
|
|
310
|
+
children: ["Duration: ", N(e.durationMs)]
|
|
264
311
|
})
|
|
265
312
|
]
|
|
266
313
|
})]
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
314
|
+
}, e.id);
|
|
315
|
+
})
|
|
316
|
+
}) })] }),
|
|
317
|
+
/* @__PURE__ */ h(C, { children: [/* @__PURE__ */ m(T, { children: /* @__PURE__ */ m(E, { children: "Activity" }) }), /* @__PURE__ */ m(w, { children: /* @__PURE__ */ m(te, {
|
|
318
|
+
resourceId: X.id,
|
|
319
|
+
resourceType: "cosmicintersection-run"
|
|
272
320
|
}) })] })
|
|
273
321
|
]
|
|
274
|
-
}), /* @__PURE__ */
|
|
275
|
-
open:
|
|
322
|
+
}), /* @__PURE__ */ m(ae, {
|
|
323
|
+
open: Se,
|
|
276
324
|
onOpenChange: (e) => {
|
|
277
325
|
B || (V(e), e || Q());
|
|
278
326
|
},
|
|
279
|
-
children: /* @__PURE__ */
|
|
280
|
-
/* @__PURE__ */
|
|
281
|
-
/* @__PURE__ */
|
|
327
|
+
children: /* @__PURE__ */ h(D, { children: [
|
|
328
|
+
/* @__PURE__ */ h(se, { children: [/* @__PURE__ */ m(ce, { children: "Add step" }), /* @__PURE__ */ m(O, { children: "Record a stage of this run — its kind, order and optional inputs." })] }),
|
|
329
|
+
/* @__PURE__ */ h("div", {
|
|
282
330
|
className: "space-y-4",
|
|
283
331
|
children: [
|
|
284
|
-
/* @__PURE__ */
|
|
332
|
+
/* @__PURE__ */ h("div", {
|
|
285
333
|
className: "space-y-1",
|
|
286
|
-
children: [/* @__PURE__ */
|
|
334
|
+
children: [/* @__PURE__ */ m(A, {
|
|
287
335
|
htmlFor: "step-name",
|
|
288
336
|
children: "Name"
|
|
289
|
-
}), /* @__PURE__ */
|
|
337
|
+
}), /* @__PURE__ */ m(k, {
|
|
290
338
|
id: "step-name",
|
|
291
339
|
value: H,
|
|
292
340
|
onChange: (e) => U(e.target.value),
|
|
293
341
|
placeholder: "e.g. Calibrate flat fields"
|
|
294
342
|
})]
|
|
295
343
|
}),
|
|
296
|
-
/* @__PURE__ */
|
|
344
|
+
/* @__PURE__ */ h("div", {
|
|
297
345
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2",
|
|
298
|
-
children: [/* @__PURE__ */
|
|
346
|
+
children: [/* @__PURE__ */ h("div", {
|
|
299
347
|
className: "space-y-1",
|
|
300
|
-
children: [/* @__PURE__ */
|
|
348
|
+
children: [/* @__PURE__ */ m(A, {
|
|
301
349
|
htmlFor: "step-kind",
|
|
302
350
|
children: "Kind"
|
|
303
|
-
}), /* @__PURE__ */
|
|
351
|
+
}), /* @__PURE__ */ h(le, {
|
|
304
352
|
value: W,
|
|
305
353
|
onValueChange: (e) => G(e),
|
|
306
|
-
children: [/* @__PURE__ */
|
|
354
|
+
children: [/* @__PURE__ */ m(fe, {
|
|
307
355
|
id: "step-kind",
|
|
308
356
|
"aria-label": "Step kind",
|
|
309
|
-
children: /* @__PURE__ */
|
|
310
|
-
}), /* @__PURE__ */
|
|
357
|
+
children: /* @__PURE__ */ m(pe, {})
|
|
358
|
+
}), /* @__PURE__ */ m(ue, { children: he.map((e) => /* @__PURE__ */ m(de, {
|
|
311
359
|
value: e,
|
|
312
|
-
children:
|
|
360
|
+
children: u(e)
|
|
313
361
|
}, e)) })]
|
|
314
362
|
})]
|
|
315
|
-
}), /* @__PURE__ */
|
|
363
|
+
}), /* @__PURE__ */ h("div", {
|
|
316
364
|
className: "space-y-1",
|
|
317
|
-
children: [/* @__PURE__ */
|
|
365
|
+
children: [/* @__PURE__ */ m(A, {
|
|
318
366
|
htmlFor: "step-position",
|
|
319
367
|
children: "Position"
|
|
320
|
-
}), /* @__PURE__ */
|
|
368
|
+
}), /* @__PURE__ */ m(k, {
|
|
321
369
|
id: "step-position",
|
|
322
370
|
type: "number",
|
|
323
371
|
min: "0",
|
|
@@ -327,14 +375,14 @@ function M() {
|
|
|
327
375
|
})]
|
|
328
376
|
})]
|
|
329
377
|
}),
|
|
330
|
-
/* @__PURE__ */
|
|
378
|
+
/* @__PURE__ */ h("div", {
|
|
331
379
|
className: "space-y-1",
|
|
332
380
|
children: [
|
|
333
|
-
/* @__PURE__ */
|
|
381
|
+
/* @__PURE__ */ m(A, {
|
|
334
382
|
htmlFor: "step-inputs",
|
|
335
383
|
children: "Inputs (JSON)"
|
|
336
384
|
}),
|
|
337
|
-
/* @__PURE__ */
|
|
385
|
+
/* @__PURE__ */ m(me, {
|
|
338
386
|
id: "step-inputs",
|
|
339
387
|
value: J,
|
|
340
388
|
onChange: (e) => Y(e.target.value),
|
|
@@ -343,7 +391,7 @@ function M() {
|
|
|
343
391
|
className: "font-mono text-xs",
|
|
344
392
|
placeholder: "{\n \"source\": \"raw-frames\"\n}"
|
|
345
393
|
}),
|
|
346
|
-
/* @__PURE__ */
|
|
394
|
+
/* @__PURE__ */ m("p", {
|
|
347
395
|
className: "text-xs text-text-secondary",
|
|
348
396
|
children: "Optional. A JSON object of step inputs."
|
|
349
397
|
})
|
|
@@ -351,7 +399,7 @@ function M() {
|
|
|
351
399
|
})
|
|
352
400
|
]
|
|
353
401
|
}),
|
|
354
|
-
/* @__PURE__ */
|
|
402
|
+
/* @__PURE__ */ h(oe, { children: [/* @__PURE__ */ m(S, {
|
|
355
403
|
type: "button",
|
|
356
404
|
variant: "outline",
|
|
357
405
|
onClick: () => {
|
|
@@ -359,17 +407,17 @@ function M() {
|
|
|
359
407
|
},
|
|
360
408
|
disabled: B,
|
|
361
409
|
children: "Cancel"
|
|
362
|
-
}), /* @__PURE__ */
|
|
410
|
+
}), /* @__PURE__ */ h(S, {
|
|
363
411
|
type: "button",
|
|
364
|
-
onClick: () => void
|
|
412
|
+
onClick: () => void we(),
|
|
365
413
|
disabled: B,
|
|
366
|
-
children: [/* @__PURE__ */
|
|
414
|
+
children: [/* @__PURE__ */ m(b, { className: "size-4" }), B ? "Adding…" : "Add step"]
|
|
367
415
|
})] })
|
|
368
416
|
] })
|
|
369
417
|
})]
|
|
370
418
|
});
|
|
371
419
|
}
|
|
372
420
|
//#endregion
|
|
373
|
-
export {
|
|
421
|
+
export { I as default };
|
|
374
422
|
|
|
375
423
|
//# sourceMappingURL=RunDetailPage.js.map
|