@burdenoff/microfe-bigconsole 2026.1101.1 → 2026.1102.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.
@@ -1,106 +1,109 @@
1
1
  import { usePipelineStore as e } from "../store/pipelineStore.js";
2
2
  import { useAppNavigate as t } from "../contexts/NavigationContext.js";
3
3
  import "../contexts/index.js";
4
- import { SECTION_FOCUS_RING as n } from "../components/common/sectionStyles.js";
5
- import { Section as r, SectionStack as i } from "../components/common/Section.js";
4
+ import { useOptionalBigConsole as n } from "../context/BigConsoleContext.js";
5
+ import { SECTION_FOCUS_RING as r } from "../components/common/sectionStyles.js";
6
+ import { Section as i, SectionStack as a } from "../components/common/Section.js";
6
7
  import "../components/common/index.js";
7
8
  import ee from "../hooks/usePipelineOperations.js";
8
- import { BIGCONSOLE_PERMISSIONS as a } from "../../constants/permissions.js";
9
- import { isNative as o, nativeNotify as s } from "../../utils/nativeBridge.js";
10
- import { PipelineStatusBadge as c } from "../components/pipeline/PipelineStatusBadge.js";
9
+ import { BIGCONSOLE_PERMISSIONS as o } from "../../constants/permissions.js";
10
+ import { isNative as s, nativeNotify as c } from "../../utils/nativeBridge.js";
11
+ import { PipelineStatusBadge as l } from "../components/pipeline/PipelineStatusBadge.js";
11
12
  import { PipelineDeleteDialog as te } from "../components/pipeline/PipelineDeleteDialog.js";
12
- import { memo as l, useCallback as u, useEffect as d, useId as ne, useState as f } from "react";
13
- import { useParams as re, useSearchParams as ie } from "react-router";
14
- import { AccessDenied as ae } from "@burdenoff/fe-libs/shared/components";
15
- import { usePermissions as oe } from "@burdenoff/fe-libs/shared/providers/shell";
16
- import { Button as p, IllustratedEmptyState as se, NextSteps as ce, PagePurpose as m, Spinner as le } from "@burdenoff/fe-libs/ui";
17
- import { useI18n as h } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
18
- import { jsx as g, jsxs as _ } from "react/jsx-runtime";
13
+ import { orderExecutionsForPipeline as u, pickSelectedExecution as ne } from "../utils/pipelineExecutionTimeline.js";
14
+ import { PipelineRunHistoryList as re, PipelineStageTimeline as ie } from "../components/pipeline/PipelineRunHistory.js";
15
+ import { memo as d, useCallback as f, useEffect as p, useId as ae, useMemo as oe, useState as m } from "react";
16
+ import { useParams as se, useSearchParams as ce } from "react-router";
17
+ import { AccessDenied as le } from "@burdenoff/fe-libs/shared/components";
18
+ import { usePermissions as ue } from "@burdenoff/fe-libs/shared/providers/shell";
19
+ import { Button as h, IllustratedEmptyState as de, NextSteps as fe, PagePurpose as pe, Spinner as me } from "@burdenoff/fe-libs/ui";
20
+ import { useI18n as g } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
21
+ import { jsx as _, jsxs as v } from "react/jsx-runtime";
19
22
  //#region src/bigconsole/pages/PipelineViewPage.tsx
20
- var v = "min-h-[var(--size-controlHeight-md)]", ue = "rounded-pill bg-bg-sunken px-2 py-0.5 text-xs font-medium text-text-secondary", y = "rounded-button bg-bg-surface px-1.5 py-0.5 font-mono break-all text-text-primary", de = ({ className: e }) => /* @__PURE__ */ g("svg", {
23
+ var y = "min-h-[var(--size-controlHeight-md)]", he = "rounded-pill bg-bg-sunken px-2 py-0.5 text-xs font-medium text-text-secondary", ge = "rounded-button bg-bg-surface px-1.5 py-0.5 font-mono break-all text-text-primary", _e = ({ className: e }) => /* @__PURE__ */ _("svg", {
21
24
  className: e,
22
25
  fill: "none",
23
26
  stroke: "currentColor",
24
27
  viewBox: "0 0 24 24",
25
- children: /* @__PURE__ */ g("path", {
28
+ children: /* @__PURE__ */ _("path", {
26
29
  strokeLinecap: "round",
27
30
  strokeLinejoin: "round",
28
31
  strokeWidth: 2,
29
32
  d: "M10 19l-7-7m0 0l7-7m-7 7h18"
30
33
  })
31
- }), b = ({ className: e }) => /* @__PURE__ */ g("svg", {
34
+ }), b = ({ className: e }) => /* @__PURE__ */ _("svg", {
32
35
  className: e,
33
36
  fill: "none",
34
37
  stroke: "currentColor",
35
38
  viewBox: "0 0 24 24",
36
- children: /* @__PURE__ */ g("path", {
39
+ children: /* @__PURE__ */ _("path", {
37
40
  strokeLinecap: "round",
38
41
  strokeLinejoin: "round",
39
42
  strokeWidth: 2,
40
43
  d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
41
44
  })
42
- }), fe = ({ className: e }) => /* @__PURE__ */ g("svg", {
45
+ }), ve = ({ className: e }) => /* @__PURE__ */ _("svg", {
43
46
  className: e,
44
47
  fill: "none",
45
48
  stroke: "currentColor",
46
49
  viewBox: "0 0 24 24",
47
- children: /* @__PURE__ */ g("path", {
50
+ children: /* @__PURE__ */ _("path", {
48
51
  strokeLinecap: "round",
49
52
  strokeLinejoin: "round",
50
53
  strokeWidth: 2,
51
54
  d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
52
55
  })
53
- }), x = ({ className: e }) => /* @__PURE__ */ _("svg", {
56
+ }), x = ({ className: e }) => /* @__PURE__ */ v("svg", {
54
57
  className: e,
55
58
  fill: "none",
56
59
  stroke: "currentColor",
57
60
  viewBox: "0 0 24 24",
58
- children: [/* @__PURE__ */ g("path", {
61
+ children: [/* @__PURE__ */ _("path", {
59
62
  strokeLinecap: "round",
60
63
  strokeLinejoin: "round",
61
64
  strokeWidth: 2,
62
65
  d: "M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"
63
- }), /* @__PURE__ */ g("path", {
66
+ }), /* @__PURE__ */ _("path", {
64
67
  strokeLinecap: "round",
65
68
  strokeLinejoin: "round",
66
69
  strokeWidth: 2,
67
70
  d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
68
71
  })]
69
- }), S = ({ className: e }) => /* @__PURE__ */ g("svg", {
72
+ }), S = ({ className: e }) => /* @__PURE__ */ _("svg", {
70
73
  className: e,
71
74
  fill: "none",
72
75
  stroke: "currentColor",
73
76
  viewBox: "0 0 24 24",
74
- children: /* @__PURE__ */ g("path", {
77
+ children: /* @__PURE__ */ _("path", {
75
78
  strokeLinecap: "round",
76
79
  strokeLinejoin: "round",
77
80
  strokeWidth: 2,
78
81
  d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
79
82
  })
80
- }), pe = ({ className: e }) => /* @__PURE__ */ g("svg", {
83
+ }), ye = ({ className: e }) => /* @__PURE__ */ _("svg", {
81
84
  className: e,
82
85
  fill: "none",
83
86
  stroke: "currentColor",
84
87
  viewBox: "0 0 24 24",
85
- children: /* @__PURE__ */ g("path", {
88
+ children: /* @__PURE__ */ _("path", {
86
89
  strokeLinecap: "round",
87
90
  strokeLinejoin: "round",
88
91
  strokeWidth: 2,
89
92
  d: "M5 13l4 4L19 7"
90
93
  })
91
- }), C = ({ className: e }) => /* @__PURE__ */ g("svg", {
94
+ }), C = ({ className: e }) => /* @__PURE__ */ _("svg", {
92
95
  className: e,
93
96
  fill: "none",
94
97
  stroke: "currentColor",
95
98
  viewBox: "0 0 24 24",
96
- children: /* @__PURE__ */ g("path", {
99
+ children: /* @__PURE__ */ _("path", {
97
100
  strokeLinecap: "round",
98
101
  strokeLinejoin: "round",
99
102
  strokeWidth: 2,
100
103
  d: "M14 5l7 7m0 0l-7 7m7-7H3"
101
104
  })
102
- }), me = ({ handling: e }) => {
103
- let { t } = h(), n = {
105
+ }), be = ({ handling: e }) => {
106
+ let { t } = g(), n = {
104
107
  fail: {
105
108
  label: t("bigconsole.pipelines.view.errorHandlingFail", "Fail"),
106
109
  className: "bg-[var(--color-status-error-bgSubtle)] text-status-error-text border-[var(--color-status-error-border)]"
@@ -114,273 +117,273 @@ var v = "min-h-[var(--size-controlHeight-md)]", ue = "rounded-pill bg-bg-sunken
114
117
  className: "bg-[var(--color-status-info-bgSubtle)] text-[var(--color-status-info-text)] border-[var(--color-status-info-border)]"
115
118
  }
116
119
  }, r = n[e] || n.fail;
117
- return /* @__PURE__ */ _("span", {
120
+ return /* @__PURE__ */ v("span", {
118
121
  className: `inline-flex items-center gap-1 whitespace-nowrap rounded-pill border px-2 py-0.5 text-xs font-medium ${r.className}`,
119
- children: [/* @__PURE__ */ g("span", {
122
+ children: [/* @__PURE__ */ _("span", {
120
123
  className: "font-normal opacity-80",
121
124
  children: "On error"
122
125
  }), r.label]
123
126
  });
124
- }, w = l(function() {
125
- let { pipelineId: l } = re(), w = t(), { t: T } = h(), [he] = ie(), E = ne(), { hasPermission: D, isLoading: O } = oe(), k = D(a.PIPELINE_READ), A = D(a.PIPELINE_UPDATE), ge = D(a.PIPELINE_DELETE), j = D(a.PIPELINE_TEST), [M, N] = f(null), [P, _e] = f("{\n \"data\": \"sample\"\n}"), [F, ve] = f(null), [I, L] = f([]), [R, z] = f(null), [B, V] = f(he.get("test") === "true"), ye = e((e) => e.deleteDialogOpen), H = e((e) => e.openDeleteDialog), U = e((e) => e.closeDeleteDialog), { loading: W, error: G, fetchPipeline: K, deletePipeline: q, testPipeline: J, listExecutions: Y } = ee({
127
+ }, w = d(function() {
128
+ let { pipelineId: d } = se(), w = t(), { t: T } = g(), [xe] = ce(), E = ae(), D = n()?.currentUser?.id ?? null, { hasPermission: O, isLoading: k } = ue(), A = O(o.PIPELINE_READ), j = O(o.PIPELINE_UPDATE), Se = O(o.PIPELINE_DELETE), M = O(o.PIPELINE_TEST), [N, Ce] = m(null), [P, we] = m("{\n \"data\": \"sample\"\n}"), [F, Te] = m(null), [I, L] = m([]), [R, z] = m(null), [B, V] = m(xe.get("test") === "true"), Ee = e((e) => e.deleteDialogOpen), H = e((e) => e.openDeleteDialog), U = e((e) => e.closeDeleteDialog), { loading: W, error: G, fetchPipeline: K, deletePipeline: q, testPipeline: J, listExecutions: Y } = ee({
126
129
  consoleId: "default",
127
130
  skipFetch: !0
128
131
  });
129
- d(() => {
130
- l && K(l).then((e) => {
131
- e && N(e);
132
+ p(() => {
133
+ d && K(d).then((e) => {
134
+ e && Ce(e);
132
135
  });
133
- }, [l, K]), d(() => {
136
+ }, [d, K]), p(() => {
134
137
  let e = !0;
135
- if (!(!l || O || !k)) return Y(l).then((t) => {
138
+ if (!(!d || k || !A)) return Y(d).then((t) => {
136
139
  if (!e) return;
137
- let n = [...t].sort((e, t) => new Date(t.startedAt).getTime() - new Date(e.startedAt).getTime());
138
- L(n), z(n[0] ?? null);
140
+ let n = u(t, d);
141
+ L(n), z(ne(n, null));
139
142
  }), () => {
140
143
  e = !1;
141
144
  };
142
145
  }, [
143
- l,
144
- O,
146
+ d,
145
147
  k,
148
+ A,
146
149
  Y
147
150
  ]);
148
- let X = u(() => {
149
- w(`/pipelines?consoleId=${encodeURIComponent(M?.consoleId ?? "default")}`);
150
- }, [w, M?.consoleId]), Z = u(() => {
151
- w(`/pipelines/${l}/edit`);
152
- }, [w, l]), be = u(() => {
153
- M && H(M);
154
- }, [M, H]), xe = u(async () => {
155
- M && (await q(M.id) ? (o() && s("success"), U(), w(`/pipelines?consoleId=${encodeURIComponent(M?.consoleId ?? "default")}`)) : o() && s("error"));
151
+ let X = f(() => {
152
+ w(`/pipelines?consoleId=${encodeURIComponent(N?.consoleId ?? "default")}`);
153
+ }, [w, N?.consoleId]), Z = f(() => {
154
+ w(`/pipelines/${d}/edit`);
155
+ }, [w, d]), De = f(() => {
156
+ N && H(N);
157
+ }, [N, H]), Oe = f(async () => {
158
+ N && (await q(N.id) ? (s() && c("success"), U(), w(`/pipelines?consoleId=${encodeURIComponent(N?.consoleId ?? "default")}`)) : s() && c("error"));
156
159
  }, [
157
- M,
160
+ N,
158
161
  q,
159
162
  U,
160
163
  w
161
- ]), Se = u((e) => {
164
+ ]), ke = f((e) => {
162
165
  w(`/parsers/${e}`);
163
- }, [w]), Ce = u(async () => {
164
- if (M) try {
166
+ }, [w]), Ae = f(async () => {
167
+ if (N) try {
165
168
  let e = await J({
166
- pipelineId: M.id,
169
+ pipelineId: N.id,
167
170
  inputData: P
168
171
  });
169
172
  if (e) {
170
- ve(e), z(e);
171
- let t = await Y(M.id);
172
- L(t);
173
+ Te(e), z(e);
174
+ let t = u(await Y(N.id), N.id);
175
+ L(t.some((t) => t.id === e.id) ? t : [e, ...t]);
173
176
  }
174
177
  } catch {}
175
178
  }, [
176
- M,
179
+ N,
177
180
  J,
178
181
  P,
179
182
  Y
180
- ]);
181
- if (W && !M) return /* @__PURE__ */ g("div", {
183
+ ]), je = oe(() => u(I, d), [I, d]);
184
+ if (W && !N) return /* @__PURE__ */ _("div", {
182
185
  className: "p-card-padding",
183
- children: /* @__PURE__ */ _("div", {
186
+ children: /* @__PURE__ */ v("div", {
184
187
  className: "flex flex-col items-center justify-center py-16",
185
188
  role: "status",
186
- children: [/* @__PURE__ */ g(le, { style: {
189
+ children: [/* @__PURE__ */ _(me, { style: {
187
190
  height: "var(--size-icon-xl)",
188
191
  width: "var(--size-icon-xl)"
189
- } }), /* @__PURE__ */ g("p", {
192
+ } }), /* @__PURE__ */ _("p", {
190
193
  className: "mt-form-gap text-sm text-text-secondary",
191
194
  children: T("bigconsole.pipelines.view.loading", "Loading Pipeline...")
192
195
  })]
193
196
  })
194
197
  });
195
- if (!O && !k) return /* @__PURE__ */ g(ae, {
198
+ if (!k && !A) return /* @__PURE__ */ _(le, {
196
199
  title: T("bigconsole.pipelines.errors.accessDeniedTitle", "Access Denied"),
197
200
  description: T("bigconsole.pipelines.errors.accessDeniedViewDescription", "You don't have permission to view this pipeline.")
198
201
  });
199
- if (G) return /* @__PURE__ */ g("div", {
202
+ if (G) return /* @__PURE__ */ _("div", {
200
203
  className: "p-card-padding",
201
- children: /* @__PURE__ */ g(r, {
204
+ children: /* @__PURE__ */ _(i, {
202
205
  tone: "danger",
203
206
  headingLevel: 2,
204
207
  title: T("bigconsole.pipelines.view.loadError", "Failed to load Pipeline"),
205
208
  description: G.message,
206
- icon: /* @__PURE__ */ g(S, { className: "h-icon-sm w-icon-sm" }),
207
- actions: /* @__PURE__ */ g(p, {
209
+ icon: /* @__PURE__ */ _(S, { className: "h-icon-sm w-icon-sm" }),
210
+ actions: /* @__PURE__ */ _(h, {
208
211
  onClick: X,
209
- className: v,
212
+ className: y,
210
213
  children: T("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")
211
214
  }),
212
215
  "data-testid": "pipeline-view-error",
213
- children: /* @__PURE__ */ g("p", {
216
+ children: /* @__PURE__ */ _("p", {
214
217
  className: "text-sm text-text-secondary",
215
218
  children: "The pipeline could not be read from the console service. Nothing was changed."
216
219
  })
217
220
  })
218
221
  });
219
- if (!M) return /* @__PURE__ */ g("div", {
222
+ if (!N) return /* @__PURE__ */ _("div", {
220
223
  className: "p-card-padding",
221
- children: /* @__PURE__ */ g(r, {
224
+ children: /* @__PURE__ */ _(i, {
222
225
  tone: "warning",
223
226
  headingLevel: 2,
224
227
  title: T("bigconsole.pipelines.view.notFoundTitle", "Pipeline not found"),
225
228
  description: T("bigconsole.pipelines.view.notFoundDescription", "The pipeline you're looking for doesn't exist or has been deleted."),
226
- icon: /* @__PURE__ */ g(S, { className: "h-icon-sm w-icon-sm" }),
227
- actions: /* @__PURE__ */ g(p, {
229
+ icon: /* @__PURE__ */ _(S, { className: "h-icon-sm w-icon-sm" }),
230
+ actions: /* @__PURE__ */ _(h, {
228
231
  onClick: X,
229
- className: v,
232
+ className: y,
230
233
  children: T("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")
231
234
  }),
232
235
  "data-testid": "pipeline-not-found"
233
236
  })
234
237
  });
235
- let Q = M.stages?.length ?? 0, $ = F?.status === "completed", we = /* @__PURE__ */ g(r, {
238
+ let Q = N.stages?.length ?? 0, $ = F?.status === "completed", Me = /* @__PURE__ */ _(i, {
236
239
  emphasis: B ? "standard" : "primary",
237
240
  headingLevel: 2,
238
241
  title: T("bigconsole.pipelines.view.stagesHeading", "Pipeline Stages ({{count}})", { count: Q }),
239
242
  description: "Data flows top to bottom — each stage reads its input key and writes an output key for the next one.",
240
243
  "data-testid": "pipeline-stages",
241
- children: Q === 0 ? /* @__PURE__ */ g(se, {
244
+ children: Q === 0 ? /* @__PURE__ */ _(de, {
242
245
  illustration: "empty-generic",
243
246
  title: T("bigconsole.pipelines.view.noStagesTitle", "No stages defined"),
244
247
  description: T("bigconsole.pipelines.view.noStagesDescription", "Edit the pipeline to add parser stages."),
245
- action: /* @__PURE__ */ _(p, {
248
+ action: /* @__PURE__ */ v(h, {
246
249
  variant: "secondary",
247
250
  onClick: Z,
248
- disabled: !A,
249
- className: v,
250
- children: [/* @__PURE__ */ g(b, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.edit", "Edit")]
251
+ disabled: !j,
252
+ className: y,
253
+ children: [/* @__PURE__ */ _(b, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.edit", "Edit")]
251
254
  })
252
- }) : /* @__PURE__ */ g("ol", {
255
+ }) : /* @__PURE__ */ _("ol", {
253
256
  className: "flex flex-col",
254
- children: (M.stages ?? []).map((e, t) => /* @__PURE__ */ _("li", {
257
+ children: (N.stages ?? []).map((e, t) => /* @__PURE__ */ v("li", {
255
258
  className: "flex min-w-0 flex-col",
256
- children: [/* @__PURE__ */ _("div", {
259
+ children: [/* @__PURE__ */ v("div", {
257
260
  "data-testid": "pipeline-stage",
258
261
  "data-enabled": e.enabled,
259
262
  className: `min-w-0 rounded-card border bg-bg-sunken p-4 ${e.enabled ? "border-[var(--color-border-subtle)]" : "border-dashed border-[var(--color-border-strong)]"}`,
260
263
  children: [
261
- /* @__PURE__ */ _("div", {
264
+ /* @__PURE__ */ v("div", {
262
265
  className: "flex flex-wrap items-center justify-between gap-control-gap",
263
- children: [/* @__PURE__ */ _("div", {
266
+ children: [/* @__PURE__ */ v("div", {
264
267
  className: "flex min-w-0 flex-wrap items-center gap-icon-gap",
265
268
  children: [
266
- /* @__PURE__ */ g("span", {
269
+ /* @__PURE__ */ _("span", {
267
270
  "aria-hidden": "true",
268
271
  className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-pill bg-bg-surface text-xs font-semibold text-text-secondary",
269
272
  children: t + 1
270
273
  }),
271
- /* @__PURE__ */ g("h3", {
274
+ /* @__PURE__ */ _("h3", {
272
275
  className: "min-w-0 truncate text-sm font-semibold text-text-primary",
273
276
  children: e.parserName || T("bigconsole.pipelines.view.stageFallbackName", "Stage {{number}}", { number: t + 1 })
274
277
  }),
275
- e.parserType && /* @__PURE__ */ g("span", {
278
+ e.parserType && /* @__PURE__ */ _("span", {
276
279
  className: "rounded-pill bg-bg-surface px-2 py-0.5 text-xs font-medium text-text-secondary",
277
280
  children: e.parserType.toUpperCase()
278
281
  })
279
282
  ]
280
- }), /* @__PURE__ */ _("div", {
283
+ }), /* @__PURE__ */ v("div", {
281
284
  className: "flex flex-wrap items-center gap-icon-gap",
282
- children: [/* @__PURE__ */ g(me, { handling: e.onError }), !e.enabled && /* @__PURE__ */ g("span", {
285
+ children: [/* @__PURE__ */ _(be, { handling: e.onError }), !e.enabled && /* @__PURE__ */ _("span", {
283
286
  className: "rounded-pill border border-[var(--color-border-strong)] px-2 py-0.5 text-xs font-medium text-text-secondary",
284
287
  children: T("bigconsole.pipelines.view.stageDisabled", "Disabled")
285
288
  })]
286
289
  })]
287
290
  }),
288
- /* @__PURE__ */ _("div", {
291
+ /* @__PURE__ */ v("div", {
289
292
  className: "mt-2 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-text-secondary",
290
293
  children: [
291
- /* @__PURE__ */ g("span", {
294
+ /* @__PURE__ */ _("span", {
292
295
  className: "text-text-muted",
293
296
  children: "Reads"
294
297
  }),
295
- /* @__PURE__ */ g("code", {
296
- className: y,
298
+ /* @__PURE__ */ _("code", {
299
+ className: ge,
297
300
  children: e.inputKey
298
301
  }),
299
- /* @__PURE__ */ g(C, { className: "h-3 w-3 shrink-0" }),
300
- /* @__PURE__ */ g("span", {
302
+ /* @__PURE__ */ _(C, { className: "h-3 w-3 shrink-0" }),
303
+ /* @__PURE__ */ _("span", {
301
304
  className: "text-text-muted",
302
305
  children: "writes"
303
306
  }),
304
- /* @__PURE__ */ g("code", {
305
- className: y,
307
+ /* @__PURE__ */ _("code", {
308
+ className: ge,
306
309
  children: e.outputKey
307
310
  })
308
311
  ]
309
312
  }),
310
- e.description && /* @__PURE__ */ g("p", {
313
+ e.description && /* @__PURE__ */ _("p", {
311
314
  className: "mt-2 text-xs text-text-secondary",
312
315
  children: e.description
313
316
  }),
314
- e.parserId && /* @__PURE__ */ g("button", {
317
+ e.parserId && /* @__PURE__ */ _("button", {
315
318
  type: "button",
316
- onClick: () => Se(e.parserId),
319
+ onClick: () => ke(e.parserId),
317
320
  className: "mt-2 rounded-button text-xs text-text-link hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface",
318
321
  children: T("bigconsole.pipelines.view.viewParser", "View Parser")
319
322
  })
320
323
  ]
321
- }), t < Q - 1 && /* @__PURE__ */ g("span", {
324
+ }), t < Q - 1 && /* @__PURE__ */ _("span", {
322
325
  "aria-hidden": "true",
323
326
  className: "flex justify-center py-1",
324
- children: /* @__PURE__ */ g(C, { className: "h-icon-sm w-icon-sm rotate-90 text-text-muted" })
327
+ children: /* @__PURE__ */ _(C, { className: "h-icon-sm w-icon-sm rotate-90 text-text-muted" })
325
328
  })]
326
329
  }, e.id))
327
330
  })
328
- }), Te = B ? /* @__PURE__ */ g(r, {
331
+ }), Ne = B ? /* @__PURE__ */ _(i, {
329
332
  id: "pipeline-test-panel",
330
333
  emphasis: "primary",
331
334
  headingLevel: 2,
332
335
  title: T("bigconsole.pipelines.view.testPanelHeading", "Test Pipeline"),
333
336
  description: "Run sample input through every enabled stage. Nothing is written to the connected sink.",
334
- actions: /* @__PURE__ */ _(p, {
335
- onClick: Ce,
336
- disabled: W || !j,
337
- className: v,
338
- children: [/* @__PURE__ */ g(x, { className: "h-icon-sm w-icon-sm" }), W ? T("bigconsole.pipelines.view.testRunning", "Running...") : T("bigconsole.pipelines.view.runTest", "Run Test")]
337
+ actions: /* @__PURE__ */ v(h, {
338
+ onClick: Ae,
339
+ disabled: W || !M,
340
+ className: y,
341
+ children: [/* @__PURE__ */ _(x, { className: "h-icon-sm w-icon-sm" }), W ? T("bigconsole.pipelines.view.testRunning", "Running...") : T("bigconsole.pipelines.view.runTest", "Run Test")]
339
342
  }),
340
343
  "data-testid": "pipeline-test-panel",
341
- children: /* @__PURE__ */ _("div", {
344
+ children: /* @__PURE__ */ v("div", {
342
345
  className: "flex flex-col gap-form-gap",
343
- children: [/* @__PURE__ */ _("div", {
346
+ children: [/* @__PURE__ */ v("div", {
344
347
  className: "min-w-0",
345
- children: [/* @__PURE__ */ g("label", {
348
+ children: [/* @__PURE__ */ _("label", {
346
349
  htmlFor: E,
347
350
  className: "mb-1 block text-sm font-medium text-text-primary",
348
351
  children: T("bigconsole.pipelines.view.inputJsonLabel", "Input JSON")
349
- }), /* @__PURE__ */ g("textarea", {
352
+ }), /* @__PURE__ */ _("textarea", {
350
353
  id: E,
351
354
  value: P,
352
- onChange: (e) => _e(e.target.value),
355
+ onChange: (e) => we(e.target.value),
353
356
  spellCheck: !1,
354
- className: `min-h-32 w-full resize-y rounded-input border border-[var(--color-border-subtle)] bg-bg-canvas px-3 py-2 font-mono text-sm text-text-primary ${n}`,
357
+ className: `min-h-32 w-full resize-y rounded-input border border-[var(--color-border-subtle)] bg-bg-canvas px-3 py-2 font-mono text-sm text-text-primary ${r}`,
355
358
  placeholder: "{\"key\": \"value\"}"
356
359
  })]
357
- }), F && /* @__PURE__ */ g(r, {
360
+ }), F && /* @__PURE__ */ _(i, {
358
361
  tone: $ ? "success" : "danger",
359
362
  headingLevel: 3,
360
363
  title: $ ? T("bigconsole.pipelines.view.testPassed", "Test Passed") : T("bigconsole.pipelines.view.testFailed", "Test Failed"),
361
- icon: g($ ? pe : S, { className: "h-icon-sm w-icon-sm" }),
362
- meta: F.totalExecutionTimeMs ? /* @__PURE__ */ _("span", {
363
- className: ue,
364
+ icon: _($ ? ye : S, { className: "h-icon-sm w-icon-sm" }),
365
+ meta: F.totalExecutionTimeMs ? /* @__PURE__ */ v("span", {
366
+ className: he,
364
367
  children: [F.totalExecutionTimeMs, "ms"]
365
368
  }) : null,
366
369
  "data-testid": "pipeline-test-result",
367
- children: /* @__PURE__ */ _("div", {
370
+ children: /* @__PURE__ */ v("div", {
368
371
  className: "flex flex-col gap-form-gap",
369
- children: [/* @__PURE__ */ _("div", {
372
+ children: [/* @__PURE__ */ v("div", {
370
373
  className: "min-w-0",
371
- children: [/* @__PURE__ */ g("h4", {
374
+ children: [/* @__PURE__ */ _("h4", {
372
375
  className: "mb-1 text-sm font-medium text-text-primary",
373
376
  children: T("bigconsole.pipelines.view.outputLabel", "Output")
374
- }), /* @__PURE__ */ g("pre", {
377
+ }), /* @__PURE__ */ _("pre", {
375
378
  className: "max-h-64 w-full overflow-auto rounded-input border border-[var(--color-border-subtle)] bg-bg-canvas p-3 font-mono text-xs text-text-primary",
376
379
  children: JSON.stringify(F.outputData, null, 2) || "null"
377
380
  })]
378
- }), F.error && /* @__PURE__ */ _("div", {
381
+ }), F.error && /* @__PURE__ */ v("div", {
379
382
  className: "min-w-0",
380
- children: [/* @__PURE__ */ g("h4", {
383
+ children: [/* @__PURE__ */ _("h4", {
381
384
  className: "mb-1 text-sm font-medium text-status-error-text",
382
385
  children: T("bigconsole.pipelines.view.errorLabel", "Error")
383
- }), /* @__PURE__ */ g("pre", {
386
+ }), /* @__PURE__ */ _("pre", {
384
387
  className: "max-h-64 w-full overflow-auto rounded-input border border-[var(--color-status-error-border)] bg-[var(--color-status-error-bgSubtle)] p-3 font-mono text-xs text-status-error-text",
385
388
  children: F.error
386
389
  })]
@@ -389,74 +392,74 @@ var v = "min-h-[var(--size-controlHeight-md)]", ue = "rounded-pill bg-bg-sunken
389
392
  })]
390
393
  })
391
394
  }) : null;
392
- return /* @__PURE__ */ _("div", {
395
+ return /* @__PURE__ */ v("div", {
393
396
  className: "p-card-padding",
394
- children: [/* @__PURE__ */ _(i, { children: [
395
- /* @__PURE__ */ _("header", {
397
+ children: [/* @__PURE__ */ v(a, { children: [
398
+ /* @__PURE__ */ v("header", {
396
399
  className: "flex flex-col gap-form-gap sm:flex-row sm:items-start sm:justify-between",
397
- children: [/* @__PURE__ */ _("div", {
400
+ children: [/* @__PURE__ */ v("div", {
398
401
  className: "flex min-w-0 flex-col gap-control-gap",
399
402
  children: [
400
- /* @__PURE__ */ _(p, {
403
+ /* @__PURE__ */ v(h, {
401
404
  variant: "ghost",
402
405
  size: "sm",
403
406
  onClick: X,
404
407
  className: "w-fit",
405
- children: [/* @__PURE__ */ g(de, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")]
408
+ children: [/* @__PURE__ */ _(_e, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")]
406
409
  }),
407
- /* @__PURE__ */ _("div", {
410
+ /* @__PURE__ */ v("div", {
408
411
  className: "flex flex-wrap items-center gap-icon-gap",
409
- children: [/* @__PURE__ */ g("h1", {
412
+ children: [/* @__PURE__ */ _("h1", {
410
413
  className: "min-w-0 break-words text-2xl font-bold leading-tight text-text-primary",
411
- children: M.name
412
- }), /* @__PURE__ */ g(c, { status: M.status })]
414
+ children: N.name
415
+ }), /* @__PURE__ */ _(l, { status: N.status })]
413
416
  }),
414
- M.description && /* @__PURE__ */ g("p", {
417
+ N.description && /* @__PURE__ */ _("p", {
415
418
  className: "text-sm text-text-secondary",
416
- children: M.description
419
+ children: N.description
417
420
  })
418
421
  ]
419
- }), /* @__PURE__ */ _("div", {
422
+ }), /* @__PURE__ */ v("div", {
420
423
  className: "flex flex-wrap items-center gap-control-gap",
421
424
  children: [
422
- /* @__PURE__ */ _(p, {
425
+ /* @__PURE__ */ v(h, {
423
426
  onClick: () => V(!B),
424
- disabled: !j,
427
+ disabled: !M,
425
428
  "aria-expanded": B,
426
429
  "aria-controls": "pipeline-test-panel",
427
- className: v,
428
- children: [/* @__PURE__ */ g(x, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.test", "Test")]
430
+ className: y,
431
+ children: [/* @__PURE__ */ _(x, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.test", "Test")]
429
432
  }),
430
- /* @__PURE__ */ _(p, {
433
+ /* @__PURE__ */ v(h, {
431
434
  variant: "secondary",
432
435
  onClick: Z,
433
- disabled: !A,
434
- className: v,
435
- children: [/* @__PURE__ */ g(b, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.edit", "Edit")]
436
+ disabled: !j,
437
+ className: y,
438
+ children: [/* @__PURE__ */ _(b, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.edit", "Edit")]
436
439
  }),
437
- ge && /* @__PURE__ */ _(p, {
440
+ Se && /* @__PURE__ */ v(h, {
438
441
  variant: "destructive",
439
- onClick: be,
440
- className: v,
441
- children: [/* @__PURE__ */ g(fe, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.delete", "Delete")]
442
+ onClick: De,
443
+ className: y,
444
+ children: [/* @__PURE__ */ _(ve, { className: "h-icon-sm w-icon-sm" }), T("bigconsole.pipelines.actions.delete", "Delete")]
442
445
  })
443
446
  ]
444
447
  })]
445
448
  }),
446
- /* @__PURE__ */ g(m, {
449
+ /* @__PURE__ */ _(pe, {
447
450
  className: "max-w-[75ch]",
448
451
  children: T("bigconsole.pipelines.view.purpose", "A pipeline chains parsers and a data sink into a repeatable flow. Review its stages here, test it with sample input to confirm the output, then edit the stages or run it to process real data into the connected sink.")
449
452
  }),
450
- /* @__PURE__ */ g(ce, {
453
+ /* @__PURE__ */ _(fe, {
451
454
  storageKey: "bigconsole-pipeline-view",
452
455
  steps: [
453
- ...j ? [{
456
+ ...M ? [{
454
457
  id: "test",
455
458
  label: T("bigconsole.pipelines.view.nextStepTestLabel", "Test with sample input"),
456
459
  description: T("bigconsole.pipelines.view.nextStepTestDescription", "Run the pipeline against a sample to verify each stage."),
457
460
  onClick: () => V(!0)
458
461
  }] : [],
459
- ...A ? [{
462
+ ...j ? [{
460
463
  id: "edit",
461
464
  label: T("bigconsole.pipelines.view.nextStepEditLabel", "Edit the stages"),
462
465
  description: T("bigconsole.pipelines.view.nextStepEditDescription", "Add, reorder, or configure the parsers in this pipeline."),
@@ -470,202 +473,90 @@ var v = "min-h-[var(--size-controlHeight-md)]", ue = "rounded-pill bg-bg-sunken
470
473
  }
471
474
  ]
472
475
  }),
473
- /* @__PURE__ */ _("div", {
476
+ /* @__PURE__ */ v("div", {
474
477
  className: "grid grid-cols-1 gap-section-gap lg:grid-cols-3",
475
- children: [/* @__PURE__ */ g("div", {
478
+ children: [/* @__PURE__ */ _("div", {
476
479
  className: "min-w-0 lg:col-span-2",
477
- children: /* @__PURE__ */ _(i, { children: [
478
- Te,
479
- R && R.pipelineId === l && /* @__PURE__ */ g(r, {
480
- emphasis: "primary",
481
- headingLevel: 2,
482
- title: T("bigconsole.pipelines.execution.timelineHeading", "Stage timeline"),
483
- "data-testid": "pipeline-stage-timeline",
484
- children: /* @__PURE__ */ _("div", {
485
- className: "flex flex-col gap-form-gap",
486
- children: [
487
- /* @__PURE__ */ _("dl", {
488
- className: "grid grid-cols-1 gap-form-gap sm:grid-cols-2",
489
- children: [
490
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
491
- className: "text-xs text-text-muted",
492
- children: T("bigconsole.pipelines.execution.runStatus", "Run status")
493
- }), /* @__PURE__ */ g("dd", {
494
- className: "font-medium text-text-primary",
495
- children: R.status
496
- })] }),
497
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
498
- className: "text-xs text-text-muted",
499
- children: T("bigconsole.pipelines.execution.totalDuration", "Total duration")
500
- }), /* @__PURE__ */ g("dd", {
501
- className: "text-text-primary",
502
- children: R.totalExecutionTimeMs == null ? "—" : `${R.totalExecutionTimeMs} ms`
503
- })] }),
504
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
505
- className: "text-xs text-text-muted",
506
- children: T("bigconsole.pipelines.execution.started", "Started")
507
- }), /* @__PURE__ */ g("dd", {
508
- className: "break-words text-text-primary",
509
- children: new Date(R.startedAt).toLocaleString()
510
- })] }),
511
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
512
- className: "text-xs text-text-muted",
513
- children: T("bigconsole.pipelines.execution.finished", "Finished")
514
- }), /* @__PURE__ */ g("dd", {
515
- className: "break-words text-text-primary",
516
- children: R.completedAt ? new Date(R.completedAt).toLocaleString() : "—"
517
- })] })
518
- ]
519
- }),
520
- /* @__PURE__ */ g("ol", {
521
- className: "flex flex-col gap-control-gap",
522
- children: R.stageResults.map((e, t) => /* @__PURE__ */ _("li", {
523
- className: "min-w-0 rounded-card border border-[var(--color-border-subtle)] bg-bg-sunken p-3",
524
- children: [
525
- /* @__PURE__ */ _("div", {
526
- className: "flex flex-wrap items-center justify-between gap-control-gap",
527
- children: [/* @__PURE__ */ _("h3", {
528
- className: "min-w-0 break-words font-medium text-text-primary",
529
- children: [
530
- t + 1,
531
- ".",
532
- " ",
533
- e.stageName ?? M.stages.find((t) => t.id === e.stageId)?.parserName ?? e.stageId
534
- ]
535
- }), /* @__PURE__ */ _("span", {
536
- className: "text-sm text-text-secondary",
537
- children: [
538
- e.status,
539
- " · ",
540
- e.executionTimeMs,
541
- " ms"
542
- ]
543
- })]
544
- }),
545
- e.error && /* @__PURE__ */ g("p", {
546
- className: "mt-2 break-words text-sm text-status-error-text",
547
- children: e.error
548
- }),
549
- e.output != null && /* @__PURE__ */ _("details", {
550
- className: "mt-2",
551
- children: [/* @__PURE__ */ g("summary", {
552
- className: "cursor-pointer text-sm text-text-secondary",
553
- children: T("bigconsole.pipelines.execution.stageOutput", "Stage output")
554
- }), /* @__PURE__ */ g("pre", {
555
- className: "mt-2 max-h-48 overflow-auto rounded-input bg-bg-canvas p-3 text-xs",
556
- children: JSON.stringify(e.output, null, 2)
557
- })]
558
- })
559
- ]
560
- }, e.id))
561
- }),
562
- R.error && /* @__PURE__ */ g("p", {
563
- role: "alert",
564
- className: "break-words text-sm text-status-error-text",
565
- children: R.error
566
- })
567
- ]
568
- })
480
+ children: /* @__PURE__ */ v(a, { children: [
481
+ Ne,
482
+ R && R.pipelineId === d && /* @__PURE__ */ _(ie, {
483
+ execution: R,
484
+ stages: N.stages,
485
+ currentActorId: D
569
486
  }),
570
- we
487
+ Me
571
488
  ] })
572
- }), /* @__PURE__ */ g("div", {
489
+ }), /* @__PURE__ */ _("div", {
573
490
  className: "min-w-0",
574
- children: /* @__PURE__ */ _(i, { children: [/* @__PURE__ */ g(r, {
575
- headingLevel: 2,
576
- title: T("bigconsole.pipelines.execution.historyHeading", "Previous runs"),
577
- "data-testid": "pipeline-execution-history",
578
- children: I.filter((e) => e.pipelineId === l).length === 0 ? /* @__PURE__ */ g("p", {
579
- className: "text-sm text-text-secondary",
580
- children: T("bigconsole.pipelines.execution.noHistory", "No execution history yet. Test this pipeline with sample input to inspect its stages.")
581
- }) : /* @__PURE__ */ g("ol", {
582
- className: "flex flex-col gap-control-gap",
583
- children: I.filter((e) => e.pipelineId === l).map((e) => /* @__PURE__ */ g("li", { children: /* @__PURE__ */ _("button", {
584
- type: "button",
585
- "aria-pressed": R?.id === e.id,
586
- onClick: () => z(e),
587
- className: `flex w-full min-w-0 flex-col gap-1 rounded-button border border-[var(--color-border-subtle)] p-3 text-left ${n} ${R?.id === e.id ? "bg-bg-sunken" : "bg-bg-surface"}`,
588
- children: [
589
- /* @__PURE__ */ _("span", {
590
- className: "flex flex-wrap justify-between gap-2 text-sm font-medium text-text-primary",
591
- children: [/* @__PURE__ */ g("span", { children: e.status }), /* @__PURE__ */ g("span", { children: e.totalExecutionTimeMs == null ? "—" : `${e.totalExecutionTimeMs} ms` })]
592
- }),
593
- /* @__PURE__ */ g("span", {
594
- className: "break-words text-xs text-text-secondary",
595
- children: new Date(e.startedAt).toLocaleString()
596
- }),
597
- /* @__PURE__ */ g("span", {
598
- className: "truncate font-mono text-xs text-text-muted",
599
- title: e.id,
600
- children: e.id
601
- })
602
- ]
603
- }) }, e.id))
604
- })
605
- }), /* @__PURE__ */ g(r, {
491
+ children: /* @__PURE__ */ v(a, { children: [/* @__PURE__ */ _(re, {
492
+ executions: je,
493
+ selectedId: R?.id ?? null,
494
+ onSelect: z,
495
+ currentActorId: D
496
+ }), /* @__PURE__ */ _(i, {
606
497
  emphasis: "muted",
607
498
  headingLevel: 2,
608
499
  title: T("bigconsole.pipelines.view.detailsHeading", "Details"),
609
500
  "data-testid": "pipeline-details",
610
- children: /* @__PURE__ */ _("dl", {
501
+ children: /* @__PURE__ */ v("dl", {
611
502
  className: "flex flex-col gap-form-gap text-sm",
612
- children: [/* @__PURE__ */ _("div", {
503
+ children: [/* @__PURE__ */ v("div", {
613
504
  className: "flex flex-col gap-3",
614
505
  children: [
615
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
506
+ /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
616
507
  className: "text-xs text-text-muted",
617
508
  children: T("bigconsole.pipelines.view.detailStatus", "Status")
618
- }), /* @__PURE__ */ g("dd", {
509
+ }), /* @__PURE__ */ _("dd", {
619
510
  className: "mt-1",
620
- children: /* @__PURE__ */ g(c, {
621
- status: M.status,
511
+ children: /* @__PURE__ */ _(l, {
512
+ status: N.status,
622
513
  size: "sm"
623
514
  })
624
515
  })] }),
625
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
516
+ /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
626
517
  className: "text-xs text-text-muted",
627
518
  children: T("bigconsole.pipelines.view.detailStages", "Stages")
628
- }), /* @__PURE__ */ g("dd", {
519
+ }), /* @__PURE__ */ _("dd", {
629
520
  className: "text-text-primary",
630
521
  children: Q
631
522
  })] }),
632
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
523
+ /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
633
524
  className: "text-xs text-text-muted",
634
525
  children: T("bigconsole.pipelines.view.detailLastExecuted", "Last Executed")
635
- }), /* @__PURE__ */ g("dd", {
526
+ }), /* @__PURE__ */ _("dd", {
636
527
  className: "break-words text-text-primary",
637
- children: M.lastExecutedAt ? new Date(M.lastExecutedAt).toLocaleString(void 0, {
528
+ children: N.lastExecutedAt ? new Date(N.lastExecutedAt).toLocaleString(void 0, {
638
529
  dateStyle: "medium",
639
530
  timeStyle: "short"
640
531
  }) : T("bigconsole.pipelines.view.detailNever", "Never")
641
532
  })] })
642
533
  ]
643
- }), /* @__PURE__ */ _("div", {
534
+ }), /* @__PURE__ */ v("div", {
644
535
  className: "flex flex-col gap-3 border-t border-[var(--color-border-subtle)] pt-form-gap",
645
536
  children: [
646
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
537
+ /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
647
538
  className: "text-xs text-text-muted",
648
539
  children: T("bigconsole.pipelines.view.detailVersion", "Version")
649
- }), /* @__PURE__ */ g("dd", {
540
+ }), /* @__PURE__ */ _("dd", {
650
541
  className: "text-text-primary",
651
- children: M.version
542
+ children: N.version
652
543
  })] }),
653
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
544
+ /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
654
545
  className: "text-xs text-text-muted",
655
546
  children: T("bigconsole.pipelines.view.detailCreated", "Created")
656
- }), /* @__PURE__ */ g("dd", {
547
+ }), /* @__PURE__ */ _("dd", {
657
548
  className: "break-words text-text-primary",
658
- children: new Date(M.createdAt).toLocaleString(void 0, {
549
+ children: new Date(N.createdAt).toLocaleString(void 0, {
659
550
  dateStyle: "medium",
660
551
  timeStyle: "short"
661
552
  })
662
553
  })] }),
663
- /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("dt", {
554
+ /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("dt", {
664
555
  className: "text-xs text-text-muted",
665
556
  children: T("bigconsole.pipelines.view.detailUpdated", "Updated")
666
- }), /* @__PURE__ */ g("dd", {
557
+ }), /* @__PURE__ */ _("dd", {
667
558
  className: "break-words text-text-primary",
668
- children: new Date(M.updatedAt).toLocaleString(void 0, {
559
+ children: new Date(N.updatedAt).toLocaleString(void 0, {
669
560
  dateStyle: "medium",
670
561
  timeStyle: "short"
671
562
  })
@@ -676,11 +567,11 @@ var v = "min-h-[var(--size-controlHeight-md)]", ue = "rounded-pill bg-bg-sunken
676
567
  })] })
677
568
  })]
678
569
  })
679
- ] }), M && /* @__PURE__ */ g(te, {
680
- pipeline: M,
681
- isOpen: ye,
570
+ ] }), N && /* @__PURE__ */ _(te, {
571
+ pipeline: N,
572
+ isOpen: Ee,
682
573
  onClose: U,
683
- onConfirm: xe
574
+ onConfirm: Oe
684
575
  })]
685
576
  });
686
577
  });