@burdenoff/microfe-bigconsole 2026.624.2 → 2026.625.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.
Files changed (71) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.js +93 -93
  2. package/dist/bigconsole/assistant/assistantApi.js +215 -0
  3. package/dist/bigconsole/assistant/assistantApi.js.map +1 -0
  4. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js +119 -0
  5. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js.map +1 -0
  6. package/dist/bigconsole/assistant/index.js +2 -0
  7. package/dist/bigconsole/assistant/pageContext.js +51 -0
  8. package/dist/bigconsole/assistant/pageContext.js.map +1 -0
  9. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +48 -48
  10. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +52 -52
  11. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  12. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +33 -33
  13. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +179 -179
  14. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  15. package/dist/bigconsole/components/dashboard/WidgetPalette.js +38 -38
  16. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +32 -32
  17. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +31 -31
  18. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +98 -98
  19. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  20. package/dist/bigconsole/components/parser/ExportParserDialog.js +31 -31
  21. package/dist/bigconsole/components/parser/ImportParserDialog.js +162 -162
  22. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  23. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +79 -79
  24. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  25. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  26. package/dist/bigconsole/components/widgets/PropertiesPanel.js +307 -307
  27. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  28. package/dist/bigconsole/components/widgets/WidgetConfigDialog.js +222 -222
  29. package/dist/bigconsole/components/widgets/WidgetConfigDialog.js.map +1 -1
  30. package/dist/bigconsole/components/widgets/WidgetTypeSelector.js +23 -23
  31. package/dist/bigconsole/index.js +3 -0
  32. package/dist/bigconsole/pages/DashboardBuilderPage.js +74 -74
  33. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  34. package/dist/bigconsole/pages/DashboardViewPage.js +168 -189
  35. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  36. package/dist/bigconsole/pages/DashboardsPage.js +266 -310
  37. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  38. package/dist/bigconsole/pages/DataParsersPage.js +148 -194
  39. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  40. package/dist/bigconsole/pages/DataSinkBuilderPage.js +252 -246
  41. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  42. package/dist/bigconsole/pages/DataSinkViewPage.js +256 -231
  43. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  44. package/dist/bigconsole/pages/DataSinksPage.js +173 -219
  45. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
  46. package/dist/bigconsole/pages/HomePage.js +125 -141
  47. package/dist/bigconsole/pages/HomePage.js.map +1 -1
  48. package/dist/bigconsole/pages/InsightsPage.js +159 -184
  49. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  50. package/dist/bigconsole/pages/ParserBuilderPage.js +401 -393
  51. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  52. package/dist/bigconsole/pages/ParserViewPage.js +220 -201
  53. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  54. package/dist/bigconsole/pages/PipelineBuilderPage.js +212 -206
  55. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  56. package/dist/bigconsole/pages/PipelineViewPage.js +204 -181
  57. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  58. package/dist/bigconsole/pages/PipelinesPage.js +107 -150
  59. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  60. package/dist/bigconsole/pages/SettingsPage.js +184 -171
  61. package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
  62. package/dist/bigconsole/pages/WidgetDemoPage.js +69 -81
  63. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  64. package/dist/bigconsole/pages/WorkflowViewPage.js +230 -216
  65. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  66. package/dist/bigconsole/pages/WorkflowsPage.js +106 -149
  67. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  68. package/dist/generated/wspace-operations.js +87 -36
  69. package/dist/generated/wspace-operations.js.map +1 -1
  70. package/dist/index.js +3 -1
  71. package/package.json +6 -2
@@ -5,75 +5,76 @@ import n from "../hooks/usePipelineOperations.js";
5
5
  import r from "../components/pipeline/PipelineStatusBadge.js";
6
6
  import { memo as i, useCallback as a, useEffect as o, useMemo as s, useState as c } from "react";
7
7
  import { useParams as l } from "react-router-dom";
8
- import { jsx as u, jsxs as d } from "react/jsx-runtime";
8
+ import { GlassCard as u, IllustratedEmptyState as d, PagePurpose as f } from "@burdenoff/fe-libs/ui";
9
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
9
10
  //#region src/bigconsole/pages/PipelineBuilderPage.tsx
10
- var f = ({ className: e }) => /* @__PURE__ */ u("svg", {
11
+ var h = ({ className: e }) => /* @__PURE__ */ p("svg", {
11
12
  className: e,
12
13
  fill: "none",
13
14
  stroke: "currentColor",
14
15
  viewBox: "0 0 24 24",
15
- children: /* @__PURE__ */ u("path", {
16
+ children: /* @__PURE__ */ p("path", {
16
17
  strokeLinecap: "round",
17
18
  strokeLinejoin: "round",
18
19
  strokeWidth: 2,
19
20
  d: "M10 19l-7-7m0 0l7-7m-7 7h18"
20
21
  })
21
- }), p = ({ className: e }) => /* @__PURE__ */ u("svg", {
22
+ }), g = ({ className: e }) => /* @__PURE__ */ p("svg", {
22
23
  className: e,
23
24
  fill: "none",
24
25
  stroke: "currentColor",
25
26
  viewBox: "0 0 24 24",
26
- children: /* @__PURE__ */ u("path", {
27
+ children: /* @__PURE__ */ p("path", {
27
28
  strokeLinecap: "round",
28
29
  strokeLinejoin: "round",
29
30
  strokeWidth: 2,
30
31
  d: "M12 4v16m8-8H4"
31
32
  })
32
- }), m = ({ className: e }) => /* @__PURE__ */ u("svg", {
33
+ }), _ = ({ className: e }) => /* @__PURE__ */ p("svg", {
33
34
  className: e,
34
35
  fill: "none",
35
36
  stroke: "currentColor",
36
37
  viewBox: "0 0 24 24",
37
- children: /* @__PURE__ */ u("path", {
38
+ children: /* @__PURE__ */ p("path", {
38
39
  strokeLinecap: "round",
39
40
  strokeLinejoin: "round",
40
41
  strokeWidth: 2,
41
42
  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"
42
43
  })
43
- }), h = ({ className: e }) => /* @__PURE__ */ u("svg", {
44
+ }), v = ({ className: e }) => /* @__PURE__ */ p("svg", {
44
45
  className: e,
45
46
  fill: "none",
46
47
  stroke: "currentColor",
47
48
  viewBox: "0 0 24 24",
48
- children: /* @__PURE__ */ u("path", {
49
+ children: /* @__PURE__ */ p("path", {
49
50
  strokeLinecap: "round",
50
51
  strokeLinejoin: "round",
51
52
  strokeWidth: 2,
52
53
  d: "M5 15l7-7 7 7"
53
54
  })
54
- }), g = ({ className: e }) => /* @__PURE__ */ u("svg", {
55
+ }), y = ({ className: e }) => /* @__PURE__ */ p("svg", {
55
56
  className: e,
56
57
  fill: "none",
57
58
  stroke: "currentColor",
58
59
  viewBox: "0 0 24 24",
59
- children: /* @__PURE__ */ u("path", {
60
+ children: /* @__PURE__ */ p("path", {
60
61
  strokeLinecap: "round",
61
62
  strokeLinejoin: "round",
62
63
  strokeWidth: 2,
63
64
  d: "M19 9l-7 7-7-7"
64
65
  })
65
- }), _ = ({ className: e }) => /* @__PURE__ */ u("svg", {
66
+ }), b = ({ className: e }) => /* @__PURE__ */ p("svg", {
66
67
  className: e,
67
68
  fill: "none",
68
69
  stroke: "currentColor",
69
70
  viewBox: "0 0 24 24",
70
- children: /* @__PURE__ */ u("path", {
71
+ children: /* @__PURE__ */ p("path", {
71
72
  strokeLinecap: "round",
72
73
  strokeLinejoin: "round",
73
74
  strokeWidth: 2,
74
75
  d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
75
76
  })
76
- }), v = [
77
+ }), x = [
77
78
  {
78
79
  value: "draft",
79
80
  label: "Draft"
@@ -86,7 +87,7 @@ var f = ({ className: e }) => /* @__PURE__ */ u("svg", {
86
87
  value: "inactive",
87
88
  label: "Inactive"
88
89
  }
89
- ], y = [
90
+ ], S = [
90
91
  {
91
92
  value: "fail",
92
93
  label: "Fail",
@@ -102,7 +103,7 @@ var f = ({ className: e }) => /* @__PURE__ */ u("svg", {
102
103
  label: "Fallback",
103
104
  description: "Use fallback value on error"
104
105
  }
105
- ], b = {
106
+ ], C = {
106
107
  parserId: "",
107
108
  parserName: "",
108
109
  parserType: null,
@@ -112,14 +113,14 @@ var f = ({ className: e }) => /* @__PURE__ */ u("svg", {
112
113
  onError: "fail",
113
114
  fallbackValue: "",
114
115
  description: ""
115
- }, x = i(function() {
116
- let { pipelineId: i } = l(), x = e(), S = !!i && i !== "new", C = "default", [w, T] = c(""), [E, D] = c(""), [O, k] = c("draft"), [A, j] = c([]), [M, N] = c(1), [P, F] = c(!1), [I, L] = c(null), { loading: R, error: z, fetchPipeline: B, createPipeline: V, updatePipeline: H } = n({
117
- consoleId: C,
116
+ }, w = i(function() {
117
+ let { pipelineId: i } = l(), w = e(), T = !!i && i !== "new", E = "default", [D, O] = c(""), [k, A] = c(""), [j, M] = c("draft"), [N, P] = c([]), [F, I] = c(1), [L, R] = c(!1), [z, B] = c(null), { loading: V, error: H, fetchPipeline: U, createPipeline: W, updatePipeline: G } = n({
118
+ consoleId: E,
118
119
  skipFetch: !0
119
- }), { parsers: U } = t({ consoleId: C });
120
+ }), { parsers: K } = t({ consoleId: E });
120
121
  o(() => {
121
- S && i && B(i).then((e) => {
122
- e && (T(e.name), D(e.description || ""), k(e.status), N(e.version), j((e.stages || []).map((e) => ({
122
+ T && i && U(i).then((e) => {
123
+ e && (O(e.name), A(e.description || ""), M(e.status), I(e.version), P((e.stages || []).map((e) => ({
123
124
  id: e.id,
124
125
  parserId: e.parserId,
125
126
  parserName: e.parserName || "",
@@ -133,38 +134,38 @@ var f = ({ className: e }) => /* @__PURE__ */ u("svg", {
133
134
  }))));
134
135
  });
135
136
  }, [
136
- S,
137
+ T,
137
138
  i,
138
- B
139
+ U
139
140
  ]);
140
- let W = s(() => !w.trim() || A.length === 0 ? !1 : A.every((e) => e.parserId && e.inputKey && e.outputKey), [w, A]), G = a(() => {
141
- x("/pipelines");
142
- }, [x]), K = a(() => {
143
- j((e) => [...e, { ...b }]);
144
- }, []), q = a((e) => {
145
- j((t) => t.filter((t, n) => n !== e));
146
- }, []), J = a((e, t) => {
147
- j((n) => {
141
+ let q = s(() => !D.trim() || N.length === 0 ? !1 : N.every((e) => e.parserId && e.inputKey && e.outputKey), [D, N]), J = a(() => {
142
+ w("/pipelines");
143
+ }, [w]), Y = a(() => {
144
+ P((e) => [...e, { ...C }]);
145
+ }, []), X = a((e) => {
146
+ P((t) => t.filter((t, n) => n !== e));
147
+ }, []), Z = a((e, t) => {
148
+ P((n) => {
148
149
  let r = [...n], i = t === "up" ? e - 1 : e + 1;
149
150
  return i < 0 || i >= r.length ? n : ([r[e], r[i]] = [r[i], r[e]], r);
150
151
  });
151
- }, []), Y = a((e, t) => {
152
- j((n) => n.map((n, r) => r === e ? {
152
+ }, []), Q = a((e, t) => {
153
+ P((n) => n.map((n, r) => r === e ? {
153
154
  ...n,
154
155
  ...t
155
156
  } : n));
156
- }, []), X = a((e, t) => {
157
- let n = U.find((e) => e.id === t);
158
- n && Y(e, {
157
+ }, []), $ = a((e, t) => {
158
+ let n = K.find((e) => e.id === t);
159
+ n && Q(e, {
159
160
  parserId: n.id,
160
161
  parserName: n.name,
161
162
  parserType: n.type
162
163
  });
163
- }, [U, Y]), Z = a(async () => {
164
- if (W) {
165
- F(!0), L(null);
164
+ }, [K, Q]), ee = a(async () => {
165
+ if (q) {
166
+ R(!0), B(null);
166
167
  try {
167
- let e = A.map((e) => ({
168
+ let e = N.map((e) => ({
168
169
  parserId: e.parserId,
169
170
  parserName: e.parserName,
170
171
  parserType: e.parserType || void 0,
@@ -175,269 +176,274 @@ var f = ({ className: e }) => /* @__PURE__ */ u("svg", {
175
176
  fallbackValue: e.fallbackValue ? JSON.parse(e.fallbackValue) : void 0,
176
177
  description: e.description || void 0
177
178
  }));
178
- if (S && i) await H(i, {
179
- name: w,
180
- description: E || void 0,
181
- status: O
182
- }, M) && x(`/pipelines/${i}`);
179
+ if (T && i) await G(i, {
180
+ name: D,
181
+ description: k || void 0,
182
+ status: j
183
+ }, F) && w(`/pipelines/${i}`);
183
184
  else {
184
- let t = await V({
185
- consoleId: C,
186
- name: w,
187
- description: E || void 0,
188
- status: O,
185
+ let t = await W({
186
+ consoleId: E,
187
+ name: D,
188
+ description: k || void 0,
189
+ status: j,
189
190
  stages: e
190
191
  });
191
- t && x(`/pipelines/${t.id}`);
192
+ t && w(`/pipelines/${t.id}`);
192
193
  }
193
194
  } catch (e) {
194
- L(e instanceof Error ? e.message : "Failed to save pipeline");
195
+ B(e instanceof Error ? e.message : "Failed to save pipeline");
195
196
  } finally {
196
- F(!1);
197
+ R(!1);
197
198
  }
198
199
  }
199
200
  }, [
200
- W,
201
- C,
202
- S,
203
- i,
204
- w,
201
+ q,
205
202
  E,
206
- O,
207
- A,
208
- M,
209
- V,
210
- H,
211
- x
203
+ T,
204
+ i,
205
+ D,
206
+ k,
207
+ j,
208
+ N,
209
+ F,
210
+ W,
211
+ G,
212
+ w
212
213
  ]);
213
- return R && S ? /* @__PURE__ */ u("div", {
214
+ return V && T ? /* @__PURE__ */ p("div", {
214
215
  className: "p-6",
215
- children: /* @__PURE__ */ d("div", {
216
+ children: /* @__PURE__ */ m("div", {
216
217
  className: "flex flex-col items-center justify-center py-16",
217
- children: [/* @__PURE__ */ d("svg", {
218
+ children: [/* @__PURE__ */ m("svg", {
218
219
  className: "w-8 h-8 text-action-primary-bg animate-spin mb-4",
219
220
  fill: "none",
220
221
  viewBox: "0 0 24 24",
221
- children: [/* @__PURE__ */ u("circle", {
222
+ children: [/* @__PURE__ */ p("circle", {
222
223
  className: "opacity-25",
223
224
  cx: "12",
224
225
  cy: "12",
225
226
  r: "10",
226
227
  stroke: "currentColor",
227
228
  strokeWidth: "4"
228
- }), /* @__PURE__ */ u("path", {
229
+ }), /* @__PURE__ */ p("path", {
229
230
  className: "opacity-75",
230
231
  fill: "currentColor",
231
232
  d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
232
233
  })]
233
- }), /* @__PURE__ */ u("p", {
234
+ }), /* @__PURE__ */ p("p", {
234
235
  className: "text-sm text-text-secondary",
235
236
  children: "Loading Pipeline..."
236
237
  })]
237
238
  })
238
- }) : z ? /* @__PURE__ */ u("div", {
239
+ }) : H ? /* @__PURE__ */ p("div", {
239
240
  className: "p-6",
240
- children: /* @__PURE__ */ d("div", {
241
+ children: /* @__PURE__ */ m("div", {
241
242
  className: "flex flex-col items-center justify-center py-16 text-center",
242
243
  children: [
243
- /* @__PURE__ */ u("div", {
244
+ /* @__PURE__ */ p("div", {
244
245
  className: "p-3 rounded-full bg-state-error/10 mb-4",
245
- children: /* @__PURE__ */ u(_, { className: "w-8 h-8 text-state-error" })
246
+ children: /* @__PURE__ */ p(b, { className: "w-8 h-8 text-state-error" })
246
247
  }),
247
- /* @__PURE__ */ u("h3", {
248
+ /* @__PURE__ */ p("h3", {
248
249
  className: "text-lg font-medium text-text-primary mb-2",
249
250
  children: "Failed to load Pipeline"
250
251
  }),
251
- /* @__PURE__ */ u("p", {
252
+ /* @__PURE__ */ p("p", {
252
253
  className: "text-sm text-text-secondary mb-4",
253
- children: z.message
254
+ children: H.message
254
255
  }),
255
- /* @__PURE__ */ u("button", {
256
+ /* @__PURE__ */ p("button", {
256
257
  type: "button",
257
- onClick: G,
258
+ onClick: J,
258
259
  className: "px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors",
259
260
  children: "Back to Pipelines"
260
261
  })
261
262
  ]
262
263
  })
263
- }) : /* @__PURE__ */ d("div", {
264
+ }) : /* @__PURE__ */ m("div", {
264
265
  className: "p-6",
265
266
  children: [
266
- /* @__PURE__ */ d("div", {
267
+ /* @__PURE__ */ m("div", {
267
268
  className: "flex items-center justify-between mb-6",
268
- children: [/* @__PURE__ */ d("div", {
269
+ children: [/* @__PURE__ */ m("div", {
269
270
  className: "flex items-center gap-4",
270
- children: [/* @__PURE__ */ u("button", {
271
+ children: [/* @__PURE__ */ p("button", {
271
272
  type: "button",
272
- onClick: G,
273
+ onClick: J,
273
274
  className: "p-2 text-text-secondary hover:text-text-primary hover:bg-bg-sunken rounded-md transition-colors",
274
- children: /* @__PURE__ */ u(f, { className: "w-5 h-5" })
275
- }), /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("h1", {
275
+ children: /* @__PURE__ */ p(h, { className: "w-5 h-5" })
276
+ }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h1", {
276
277
  className: "text-2xl font-bold text-text-primary",
277
- children: S ? "Edit Pipeline" : "Create Pipeline"
278
- }), /* @__PURE__ */ u("p", {
278
+ children: T ? "Edit Pipeline" : "Create Pipeline"
279
+ }), /* @__PURE__ */ p("p", {
279
280
  className: "text-sm text-text-secondary mt-1",
280
- children: S ? "Update pipeline settings and stages" : "Create a new data transformation pipeline"
281
+ children: T ? "Update pipeline settings and stages" : "Create a new data transformation pipeline"
281
282
  })] })]
282
- }), /* @__PURE__ */ d("div", {
283
+ }), /* @__PURE__ */ m("div", {
283
284
  className: "flex items-center gap-2",
284
- children: [/* @__PURE__ */ u("button", {
285
+ children: [/* @__PURE__ */ p("button", {
285
286
  type: "button",
286
- onClick: G,
287
+ onClick: J,
287
288
  className: "px-4 py-2 text-sm font-medium text-text-primary bg-bg-sunken hover:bg-border-default rounded-md transition-colors",
288
289
  children: "Cancel"
289
- }), /* @__PURE__ */ u("button", {
290
+ }), /* @__PURE__ */ p("button", {
290
291
  type: "button",
291
- onClick: Z,
292
- disabled: !W || P,
292
+ onClick: ee,
293
+ disabled: !q || L,
293
294
  className: "px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors disabled:opacity-50",
294
- children: P ? "Saving..." : S ? "Save Changes" : "Create Pipeline"
295
+ children: L ? "Saving..." : T ? "Save Changes" : "Create Pipeline"
295
296
  })]
296
297
  })]
297
298
  }),
298
- I && /* @__PURE__ */ u("div", {
299
+ /* @__PURE__ */ p(f, {
300
+ className: "mb-6",
301
+ children: "Build a pipeline by chaining parser stages — each stage reads an input key, runs a parser, and writes a structured output key that the next stage (or a data sink) can use. Name it, add your stages in order, then test it before saving so your data flows end to end."
302
+ }),
303
+ z && /* @__PURE__ */ p("div", {
299
304
  className: "mb-6 p-4 bg-state-error/10 border border-state-error/20 rounded-md",
300
- children: /* @__PURE__ */ u("p", {
305
+ children: /* @__PURE__ */ p("p", {
301
306
  className: "text-sm text-state-error",
302
- children: I
307
+ children: z
303
308
  })
304
309
  }),
305
- /* @__PURE__ */ d("div", {
310
+ /* @__PURE__ */ m("div", {
306
311
  className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
307
- children: [/* @__PURE__ */ d("div", {
312
+ children: [/* @__PURE__ */ m("div", {
308
313
  className: "lg:col-span-2 space-y-6",
309
- children: [/* @__PURE__ */ d("div", {
314
+ children: [/* @__PURE__ */ m("div", {
310
315
  className: "bg-bg-surface border border-border-default rounded-lg p-6",
311
- children: [/* @__PURE__ */ u("h2", {
316
+ children: [/* @__PURE__ */ p("h2", {
312
317
  className: "text-lg font-semibold text-text-primary mb-4",
313
318
  children: "Basic Information"
314
- }), /* @__PURE__ */ d("div", {
319
+ }), /* @__PURE__ */ m("div", {
315
320
  className: "space-y-4",
316
321
  children: [
317
- /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ d("label", {
322
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ m("label", {
318
323
  className: "block text-sm font-medium text-text-primary mb-2",
319
- children: ["Name ", /* @__PURE__ */ u("span", {
324
+ children: ["Name ", /* @__PURE__ */ p("span", {
320
325
  className: "text-state-error",
321
326
  children: "*"
322
327
  })]
323
- }), /* @__PURE__ */ u("input", {
328
+ }), /* @__PURE__ */ p("input", {
324
329
  type: "text",
325
- value: w,
326
- onChange: (e) => T(e.target.value),
330
+ value: D,
331
+ onChange: (e) => O(e.target.value),
327
332
  placeholder: "My Pipeline",
328
333
  className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
329
334
  })] }),
330
- /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("label", {
335
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("label", {
331
336
  className: "block text-sm font-medium text-text-primary mb-2",
332
337
  children: "Description"
333
- }), /* @__PURE__ */ u("textarea", {
334
- value: E,
335
- onChange: (e) => D(e.target.value),
338
+ }), /* @__PURE__ */ p("textarea", {
339
+ value: k,
340
+ onChange: (e) => A(e.target.value),
336
341
  placeholder: "What does this pipeline do?",
337
342
  rows: 3,
338
343
  className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg resize-none"
339
344
  })] }),
340
- /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("label", {
345
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("label", {
341
346
  className: "block text-sm font-medium text-text-primary mb-2",
342
347
  children: "Status"
343
- }), /* @__PURE__ */ u("select", {
344
- value: O,
345
- onChange: (e) => k(e.target.value),
348
+ }), /* @__PURE__ */ p("select", {
349
+ value: j,
350
+ onChange: (e) => M(e.target.value),
346
351
  className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg",
347
- children: v.map((e) => /* @__PURE__ */ u("option", {
352
+ children: x.map((e) => /* @__PURE__ */ p("option", {
348
353
  value: e.value,
349
354
  children: e.label
350
355
  }, e.value))
351
356
  })] })
352
357
  ]
353
358
  })]
354
- }), /* @__PURE__ */ d("div", {
355
- className: "bg-bg-surface border border-border-default rounded-lg p-6",
356
- children: [/* @__PURE__ */ d("div", {
359
+ }), /* @__PURE__ */ m(u, {
360
+ treatment: "glass",
361
+ glow: !0,
362
+ className: "p-6",
363
+ children: [/* @__PURE__ */ m("div", {
357
364
  className: "flex items-center justify-between mb-4",
358
- children: [/* @__PURE__ */ d("h2", {
365
+ children: [/* @__PURE__ */ m("h2", {
359
366
  className: "text-lg font-semibold text-text-primary",
360
367
  children: [
361
368
  "Stages (",
362
- A.length,
369
+ N.length,
363
370
  ")"
364
371
  ]
365
- }), /* @__PURE__ */ d("button", {
372
+ }), /* @__PURE__ */ m("button", {
366
373
  type: "button",
367
- onClick: K,
374
+ onClick: Y,
368
375
  className: "inline-flex items-center gap-2 px-3 py-1.5 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors",
369
- children: [/* @__PURE__ */ u(p, { className: "w-4 h-4" }), "Add Stage"]
376
+ children: [/* @__PURE__ */ p(g, { className: "w-4 h-4" }), "Add Stage"]
370
377
  })]
371
- }), A.length === 0 ? /* @__PURE__ */ d("div", {
372
- className: "py-8 text-center",
373
- children: [/* @__PURE__ */ u("p", {
374
- className: "text-sm text-text-secondary mb-4",
375
- children: "No stages yet. Add a stage to start building your pipeline."
376
- }), /* @__PURE__ */ d("button", {
378
+ }), N.length === 0 ? /* @__PURE__ */ p(d, {
379
+ illustration: "empty-generic",
380
+ title: "No stages yet",
381
+ description: "Add a stage to start building your pipeline.",
382
+ action: /* @__PURE__ */ m("button", {
377
383
  type: "button",
378
- onClick: K,
384
+ onClick: Y,
379
385
  className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors",
380
- children: [/* @__PURE__ */ u(p, { className: "w-4 h-4" }), "Add First Stage"]
381
- })]
382
- }) : /* @__PURE__ */ u("div", {
386
+ children: [/* @__PURE__ */ p(g, { className: "w-4 h-4" }), "Add First Stage"]
387
+ })
388
+ }) : /* @__PURE__ */ p("div", {
383
389
  className: "space-y-4",
384
- children: A.map((e, t) => /* @__PURE__ */ d("div", {
390
+ children: N.map((e, t) => /* @__PURE__ */ m("div", {
385
391
  className: "p-4 bg-bg-sunken border border-border-default rounded-lg",
386
- children: [/* @__PURE__ */ d("div", {
392
+ children: [/* @__PURE__ */ m("div", {
387
393
  className: "flex items-center justify-between mb-4",
388
- children: [/* @__PURE__ */ d("div", {
394
+ children: [/* @__PURE__ */ m("div", {
389
395
  className: "flex items-center gap-2",
390
- children: [/* @__PURE__ */ u("span", {
396
+ children: [/* @__PURE__ */ p("span", {
391
397
  className: "w-6 h-6 flex items-center justify-center text-xs font-medium bg-action-primary-bg/10 text-action-primary-bg rounded-full",
392
398
  children: t + 1
393
- }), /* @__PURE__ */ u("span", {
399
+ }), /* @__PURE__ */ p("span", {
394
400
  className: "font-medium text-text-primary",
395
401
  children: e.parserName || `Stage ${t + 1}`
396
402
  })]
397
- }), /* @__PURE__ */ d("div", {
403
+ }), /* @__PURE__ */ m("div", {
398
404
  className: "flex items-center gap-1",
399
405
  children: [
400
- /* @__PURE__ */ u("button", {
406
+ /* @__PURE__ */ p("button", {
401
407
  type: "button",
402
- onClick: () => J(t, "up"),
408
+ onClick: () => Z(t, "up"),
403
409
  disabled: t === 0,
404
410
  className: "p-1 text-text-secondary hover:text-text-primary hover:bg-bg-surface rounded disabled:opacity-30",
405
- children: /* @__PURE__ */ u(h, { className: "w-4 h-4" })
411
+ children: /* @__PURE__ */ p(v, { className: "w-4 h-4" })
406
412
  }),
407
- /* @__PURE__ */ u("button", {
413
+ /* @__PURE__ */ p("button", {
408
414
  type: "button",
409
- onClick: () => J(t, "down"),
410
- disabled: t === A.length - 1,
415
+ onClick: () => Z(t, "down"),
416
+ disabled: t === N.length - 1,
411
417
  className: "p-1 text-text-secondary hover:text-text-primary hover:bg-bg-surface rounded disabled:opacity-30",
412
- children: /* @__PURE__ */ u(g, { className: "w-4 h-4" })
418
+ children: /* @__PURE__ */ p(y, { className: "w-4 h-4" })
413
419
  }),
414
- /* @__PURE__ */ u("button", {
420
+ /* @__PURE__ */ p("button", {
415
421
  type: "button",
416
- onClick: () => q(t),
422
+ onClick: () => X(t),
417
423
  className: "p-1 text-text-secondary hover:text-state-error hover:bg-state-error/10 rounded",
418
- children: /* @__PURE__ */ u(m, { className: "w-4 h-4" })
424
+ children: /* @__PURE__ */ p(_, { className: "w-4 h-4" })
419
425
  })
420
426
  ]
421
427
  })]
422
- }), /* @__PURE__ */ d("div", {
428
+ }), /* @__PURE__ */ m("div", {
423
429
  className: "grid grid-cols-2 gap-4",
424
430
  children: [
425
- /* @__PURE__ */ d("div", {
431
+ /* @__PURE__ */ m("div", {
426
432
  className: "col-span-2",
427
- children: [/* @__PURE__ */ d("label", {
433
+ children: [/* @__PURE__ */ m("label", {
428
434
  className: "block text-xs font-medium text-text-secondary mb-1",
429
- children: ["Parser ", /* @__PURE__ */ u("span", {
435
+ children: ["Parser ", /* @__PURE__ */ p("span", {
430
436
  className: "text-state-error",
431
437
  children: "*"
432
438
  })]
433
- }), /* @__PURE__ */ d("select", {
439
+ }), /* @__PURE__ */ m("select", {
434
440
  value: e.parserId,
435
- onChange: (e) => X(t, e.target.value),
441
+ onChange: (e) => $(t, e.target.value),
436
442
  className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg",
437
- children: [/* @__PURE__ */ u("option", {
443
+ children: [/* @__PURE__ */ p("option", {
438
444
  value: "",
439
445
  children: "Select a parser..."
440
- }), U.map((e) => /* @__PURE__ */ d("option", {
446
+ }), K.map((e) => /* @__PURE__ */ m("option", {
441
447
  value: e.id,
442
448
  children: [
443
449
  e.name,
@@ -448,68 +454,68 @@ var f = ({ className: e }) => /* @__PURE__ */ u("svg", {
448
454
  }, e.id))]
449
455
  })]
450
456
  }),
451
- /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ d("label", {
457
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ m("label", {
452
458
  className: "block text-xs font-medium text-text-secondary mb-1",
453
- children: ["Input Key ", /* @__PURE__ */ u("span", {
459
+ children: ["Input Key ", /* @__PURE__ */ p("span", {
454
460
  className: "text-state-error",
455
461
  children: "*"
456
462
  })]
457
- }), /* @__PURE__ */ u("input", {
463
+ }), /* @__PURE__ */ p("input", {
458
464
  type: "text",
459
465
  value: e.inputKey,
460
- onChange: (e) => Y(t, { inputKey: e.target.value }),
466
+ onChange: (e) => Q(t, { inputKey: e.target.value }),
461
467
  placeholder: "data",
462
468
  className: "w-full px-3 py-2 text-sm font-mono text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
463
469
  })] }),
464
- /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ d("label", {
470
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ m("label", {
465
471
  className: "block text-xs font-medium text-text-secondary mb-1",
466
- children: ["Output Key ", /* @__PURE__ */ u("span", {
472
+ children: ["Output Key ", /* @__PURE__ */ p("span", {
467
473
  className: "text-state-error",
468
474
  children: "*"
469
475
  })]
470
- }), /* @__PURE__ */ u("input", {
476
+ }), /* @__PURE__ */ p("input", {
471
477
  type: "text",
472
478
  value: e.outputKey,
473
- onChange: (e) => Y(t, { outputKey: e.target.value }),
479
+ onChange: (e) => Q(t, { outputKey: e.target.value }),
474
480
  placeholder: "result",
475
481
  className: "w-full px-3 py-2 text-sm font-mono text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
476
482
  })] }),
477
- /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("label", {
483
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("label", {
478
484
  className: "block text-xs font-medium text-text-secondary mb-1",
479
485
  children: "On Error"
480
- }), /* @__PURE__ */ u("select", {
486
+ }), /* @__PURE__ */ p("select", {
481
487
  value: e.onError,
482
- onChange: (e) => Y(t, { onError: e.target.value }),
488
+ onChange: (e) => Q(t, { onError: e.target.value }),
483
489
  className: "w-full px-3 py-2 text-sm text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg",
484
- children: y.map((e) => /* @__PURE__ */ u("option", {
490
+ children: S.map((e) => /* @__PURE__ */ p("option", {
485
491
  value: e.value,
486
492
  children: e.label
487
493
  }, e.value))
488
494
  })] }),
489
- /* @__PURE__ */ u("div", {
495
+ /* @__PURE__ */ p("div", {
490
496
  className: "flex items-center",
491
- children: /* @__PURE__ */ d("label", {
497
+ children: /* @__PURE__ */ m("label", {
492
498
  className: "flex items-center gap-2 cursor-pointer",
493
- children: [/* @__PURE__ */ u("input", {
499
+ children: [/* @__PURE__ */ p("input", {
494
500
  type: "checkbox",
495
501
  checked: e.enabled,
496
- onChange: (e) => Y(t, { enabled: e.target.checked }),
502
+ onChange: (e) => Q(t, { enabled: e.target.checked }),
497
503
  className: "w-4 h-4 rounded border-border-default text-action-primary-bg focus:ring-action-primary-bg"
498
- }), /* @__PURE__ */ u("span", {
504
+ }), /* @__PURE__ */ p("span", {
499
505
  className: "text-sm text-text-primary",
500
506
  children: "Enabled"
501
507
  })]
502
508
  })
503
509
  }),
504
- e.onError === "fallback" && /* @__PURE__ */ d("div", {
510
+ e.onError === "fallback" && /* @__PURE__ */ m("div", {
505
511
  className: "col-span-2",
506
- children: [/* @__PURE__ */ u("label", {
512
+ children: [/* @__PURE__ */ p("label", {
507
513
  className: "block text-xs font-medium text-text-secondary mb-1",
508
514
  children: "Fallback Value (JSON)"
509
- }), /* @__PURE__ */ u("input", {
515
+ }), /* @__PURE__ */ p("input", {
510
516
  type: "text",
511
517
  value: e.fallbackValue,
512
- onChange: (e) => Y(t, { fallbackValue: e.target.value }),
518
+ onChange: (e) => Q(t, { fallbackValue: e.target.value }),
513
519
  placeholder: "{\"default\": true}",
514
520
  className: "w-full px-3 py-2 text-sm font-mono text-text-primary bg-bg-surface border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg"
515
521
  })]
@@ -519,58 +525,58 @@ var f = ({ className: e }) => /* @__PURE__ */ u("svg", {
519
525
  }, t))
520
526
  })]
521
527
  })]
522
- }), /* @__PURE__ */ d("div", {
528
+ }), /* @__PURE__ */ m("div", {
523
529
  className: "space-y-6",
524
- children: [/* @__PURE__ */ d("div", {
530
+ children: [/* @__PURE__ */ m("div", {
525
531
  className: "bg-bg-surface border border-border-default rounded-lg p-6",
526
- children: [/* @__PURE__ */ u("h2", {
532
+ children: [/* @__PURE__ */ p("h2", {
527
533
  className: "text-lg font-semibold text-text-primary mb-4",
528
534
  children: "Preview"
529
- }), /* @__PURE__ */ d("div", {
535
+ }), /* @__PURE__ */ m("div", {
530
536
  className: "space-y-3",
531
537
  children: [
532
- /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("span", {
538
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("span", {
533
539
  className: "text-xs text-text-secondary",
534
540
  children: "Name"
535
- }), /* @__PURE__ */ u("p", {
541
+ }), /* @__PURE__ */ p("p", {
536
542
  className: "text-sm text-text-primary",
537
- children: w || "Untitled"
543
+ children: D || "Untitled"
538
544
  })] }),
539
- /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("span", {
545
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("span", {
540
546
  className: "text-xs text-text-secondary",
541
547
  children: "Status"
542
- }), /* @__PURE__ */ u("div", {
548
+ }), /* @__PURE__ */ p("div", {
543
549
  className: "mt-1",
544
- children: /* @__PURE__ */ u(r, { status: O })
550
+ children: /* @__PURE__ */ p(r, { status: j })
545
551
  })] }),
546
- /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("span", {
552
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("span", {
547
553
  className: "text-xs text-text-secondary",
548
554
  children: "Stages"
549
- }), /* @__PURE__ */ u("p", {
555
+ }), /* @__PURE__ */ p("p", {
550
556
  className: "text-sm text-text-primary",
551
- children: A.length
557
+ children: N.length
552
558
  })] }),
553
- A.length > 0 && /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ u("span", {
559
+ N.length > 0 && /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("span", {
554
560
  className: "text-xs text-text-secondary",
555
561
  children: "Data Flow"
556
- }), /* @__PURE__ */ d("div", {
562
+ }), /* @__PURE__ */ m("div", {
557
563
  className: "mt-1 text-xs font-mono text-text-secondary",
558
- children: [A.map((e, t) => /* @__PURE__ */ d("span", { children: [e.inputKey, t < A.length - 1 && " → "] }, t)), A.length > 0 && ` → ${A[A.length - 1].outputKey}`]
564
+ children: [N.map((e, t) => /* @__PURE__ */ m("span", { children: [e.inputKey, t < N.length - 1 && " → "] }, t)), N.length > 0 && ` → ${N[N.length - 1].outputKey}`]
559
565
  })] })
560
566
  ]
561
567
  })]
562
- }), /* @__PURE__ */ d("div", {
568
+ }), /* @__PURE__ */ m("div", {
563
569
  className: "bg-bg-sunken border border-border-default rounded-lg p-6",
564
- children: [/* @__PURE__ */ u("h3", {
570
+ children: [/* @__PURE__ */ p("h3", {
565
571
  className: "text-sm font-semibold text-text-primary mb-2",
566
572
  children: "Tips"
567
- }), /* @__PURE__ */ d("ul", {
573
+ }), /* @__PURE__ */ m("ul", {
568
574
  className: "text-xs text-text-secondary space-y-2",
569
575
  children: [
570
- /* @__PURE__ */ u("li", { children: "• Each stage processes the output of the previous stage" }),
571
- /* @__PURE__ */ u("li", { children: "• Use consistent input/output keys to chain data" }),
572
- /* @__PURE__ */ u("li", { children: "• Set error handling per stage for robustness" }),
573
- /* @__PURE__ */ u("li", { children: "• Disable stages to skip them during execution" })
576
+ /* @__PURE__ */ p("li", { children: "• Each stage processes the output of the previous stage" }),
577
+ /* @__PURE__ */ p("li", { children: "• Use consistent input/output keys to chain data" }),
578
+ /* @__PURE__ */ p("li", { children: "• Set error handling per stage for robustness" }),
579
+ /* @__PURE__ */ p("li", { children: "• Disable stages to skip them during execution" })
574
580
  ]
575
581
  })]
576
582
  })]
@@ -580,6 +586,6 @@ var f = ({ className: e }) => /* @__PURE__ */ u("svg", {
580
586
  });
581
587
  });
582
588
  //#endregion
583
- export { x as PipelineBuilderPage, x as default };
589
+ export { w as PipelineBuilderPage, w as default };
584
590
 
585
591
  //# sourceMappingURL=PipelineBuilderPage.js.map