@burdenoff/microfe-bigconsole 2026.624.2 → 2026.626.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 (72) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.js +175 -118
  2. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
  3. package/dist/bigconsole/assistant/assistantApi.js +215 -0
  4. package/dist/bigconsole/assistant/assistantApi.js.map +1 -0
  5. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js +119 -0
  6. package/dist/bigconsole/assistant/createSandboxAssistantTransport.js.map +1 -0
  7. package/dist/bigconsole/assistant/index.js +2 -0
  8. package/dist/bigconsole/assistant/pageContext.js +51 -0
  9. package/dist/bigconsole/assistant/pageContext.js.map +1 -0
  10. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +48 -48
  11. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +52 -52
  12. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  13. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +33 -33
  14. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +179 -179
  15. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  16. package/dist/bigconsole/components/dashboard/WidgetPalette.js +38 -38
  17. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +32 -32
  18. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +31 -31
  19. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +98 -98
  20. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  21. package/dist/bigconsole/components/parser/ExportParserDialog.js +31 -31
  22. package/dist/bigconsole/components/parser/ImportParserDialog.js +162 -162
  23. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  24. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +79 -79
  25. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  26. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  27. package/dist/bigconsole/components/widgets/PropertiesPanel.js +307 -307
  28. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  29. package/dist/bigconsole/components/widgets/WidgetConfigDialog.js +222 -222
  30. package/dist/bigconsole/components/widgets/WidgetConfigDialog.js.map +1 -1
  31. package/dist/bigconsole/components/widgets/WidgetTypeSelector.js +23 -23
  32. package/dist/bigconsole/index.js +3 -0
  33. package/dist/bigconsole/pages/DashboardBuilderPage.js +74 -74
  34. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  35. package/dist/bigconsole/pages/DashboardViewPage.js +168 -189
  36. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  37. package/dist/bigconsole/pages/DashboardsPage.js +266 -310
  38. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  39. package/dist/bigconsole/pages/DataParsersPage.js +148 -194
  40. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  41. package/dist/bigconsole/pages/DataSinkBuilderPage.js +252 -246
  42. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  43. package/dist/bigconsole/pages/DataSinkViewPage.js +256 -231
  44. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  45. package/dist/bigconsole/pages/DataSinksPage.js +173 -219
  46. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
  47. package/dist/bigconsole/pages/HomePage.js +125 -141
  48. package/dist/bigconsole/pages/HomePage.js.map +1 -1
  49. package/dist/bigconsole/pages/InsightsPage.js +159 -184
  50. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  51. package/dist/bigconsole/pages/ParserBuilderPage.js +401 -393
  52. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  53. package/dist/bigconsole/pages/ParserViewPage.js +220 -201
  54. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  55. package/dist/bigconsole/pages/PipelineBuilderPage.js +212 -206
  56. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  57. package/dist/bigconsole/pages/PipelineViewPage.js +204 -181
  58. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  59. package/dist/bigconsole/pages/PipelinesPage.js +107 -150
  60. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  61. package/dist/bigconsole/pages/SettingsPage.js +184 -171
  62. package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
  63. package/dist/bigconsole/pages/WidgetDemoPage.js +69 -81
  64. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  65. package/dist/bigconsole/pages/WorkflowViewPage.js +230 -216
  66. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  67. package/dist/bigconsole/pages/WorkflowsPage.js +106 -149
  68. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  69. package/dist/generated/wspace-operations.js +87 -36
  70. package/dist/generated/wspace-operations.js.map +1 -1
  71. package/dist/index.js +3 -1
  72. package/package.json +6 -2
@@ -4,169 +4,159 @@ import t from "../hooks/useWorkflowOperations.js";
4
4
  import { BOOTSTRAP_RETRY_DELAY_MS as n } from "../constants.js";
5
5
  import { useBigConsole as r } from "../context/BigConsoleContext.js";
6
6
  import "../context/index.js";
7
- import { isNative as i, nativeCopyText as a, nativeNotify as o, nativeToast as s } from "../../utils/nativeBridge.js";
8
- import ee from "../components/workflow/WorkflowStatusBadge.js";
9
- import c from "../components/workflow/WorkflowDeleteDialog.js";
10
- import { memo as l, useCallback as u, useEffect as d, useState as f } from "react";
11
- import { useParams as te } from "react-router-dom";
12
- import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
13
- import { WorkflowBuilder as g } from "@burdenoff/fluidgrids-fe-sdk";
14
- import { formatDistanceToNow as _ } from "date-fns";
7
+ import { isNative as i, nativeCopyText as a, nativeNotify as o, nativeToast as ee } from "../../utils/nativeBridge.js";
8
+ import te from "../components/workflow/WorkflowStatusBadge.js";
9
+ import s from "../components/workflow/WorkflowDeleteDialog.js";
10
+ import { memo as c, useCallback as l, useEffect as u, useState as d } from "react";
11
+ import { useParams as f } from "react-router-dom";
12
+ import { GlassCard as ne, IllustratedEmptyState as p, NextSteps as m, PagePurpose as h } from "@burdenoff/fe-libs/ui";
13
+ import { Fragment as g, jsx as _, jsxs as v } from "react/jsx-runtime";
14
+ import { WorkflowBuilder as y } from "@burdenoff/fluidgrids-fe-sdk";
15
+ import { formatDistanceToNow as b } from "date-fns";
15
16
  //#region src/bigconsole/pages/WorkflowViewPage.tsx
16
- var v = ({ className: e }) => /* @__PURE__ */ m("svg", {
17
+ var x = ({ className: e }) => /* @__PURE__ */ _("svg", {
17
18
  className: e,
18
19
  fill: "none",
19
20
  stroke: "currentColor",
20
21
  viewBox: "0 0 24 24",
21
- children: /* @__PURE__ */ m("path", {
22
+ children: /* @__PURE__ */ _("path", {
22
23
  strokeLinecap: "round",
23
24
  strokeLinejoin: "round",
24
25
  strokeWidth: 2,
25
26
  d: "M15 19l-7-7 7-7"
26
27
  })
27
- }), ne = ({ className: e }) => /* @__PURE__ */ m("svg", {
28
+ }), S = ({ className: e }) => /* @__PURE__ */ _("svg", {
28
29
  className: e,
29
30
  fill: "none",
30
31
  stroke: "currentColor",
31
32
  viewBox: "0 0 24 24",
32
- children: /* @__PURE__ */ m("path", {
33
+ children: /* @__PURE__ */ _("path", {
33
34
  strokeLinecap: "round",
34
35
  strokeLinejoin: "round",
35
36
  strokeWidth: 2,
36
37
  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"
37
38
  })
38
- }), y = ({ className: e }) => /* @__PURE__ */ m("svg", {
39
+ }), C = ({ className: e }) => /* @__PURE__ */ _("svg", {
39
40
  className: e,
40
41
  fill: "none",
41
42
  stroke: "currentColor",
42
43
  viewBox: "0 0 24 24",
43
- children: /* @__PURE__ */ m("path", {
44
+ children: /* @__PURE__ */ _("path", {
44
45
  strokeLinecap: "round",
45
46
  strokeLinejoin: "round",
46
47
  strokeWidth: 2,
47
48
  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"
48
49
  })
49
- }), b = ({ className: e }) => /* @__PURE__ */ h("svg", {
50
+ }), w = ({ className: e }) => /* @__PURE__ */ v("svg", {
50
51
  className: e,
51
52
  fill: "none",
52
53
  stroke: "currentColor",
53
54
  viewBox: "0 0 24 24",
54
- children: [/* @__PURE__ */ m("path", {
55
+ children: [/* @__PURE__ */ _("path", {
55
56
  strokeLinecap: "round",
56
57
  strokeLinejoin: "round",
57
58
  strokeWidth: 2,
58
59
  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"
59
- }), /* @__PURE__ */ m("path", {
60
+ }), /* @__PURE__ */ _("path", {
60
61
  strokeLinecap: "round",
61
62
  strokeLinejoin: "round",
62
63
  strokeWidth: 2,
63
64
  d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
64
65
  })]
65
- }), x = ({ className: e }) => /* @__PURE__ */ m("svg", {
66
+ }), T = ({ className: e }) => /* @__PURE__ */ _("svg", {
66
67
  className: e,
67
68
  fill: "none",
68
69
  stroke: "currentColor",
69
70
  viewBox: "0 0 24 24",
70
- children: /* @__PURE__ */ m("path", {
71
+ children: /* @__PURE__ */ _("path", {
71
72
  strokeLinecap: "round",
72
73
  strokeLinejoin: "round",
73
74
  strokeWidth: 2,
74
75
  d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
75
76
  })
76
- }), S = ({ className: e }) => /* @__PURE__ */ m("svg", {
77
+ }), E = ({ className: e }) => /* @__PURE__ */ _("svg", {
77
78
  className: e,
78
79
  fill: "none",
79
80
  stroke: "currentColor",
80
81
  viewBox: "0 0 24 24",
81
- children: /* @__PURE__ */ m("path", {
82
+ children: /* @__PURE__ */ _("path", {
82
83
  strokeLinecap: "round",
83
84
  strokeLinejoin: "round",
84
85
  strokeWidth: 2,
85
86
  d: "M5 13l4 4L19 7"
86
87
  })
87
- }), C = ({ className: e }) => /* @__PURE__ */ m("svg", {
88
+ }), D = ({ className: e }) => /* @__PURE__ */ _("svg", {
88
89
  className: e,
89
90
  fill: "none",
90
91
  stroke: "currentColor",
91
92
  viewBox: "0 0 24 24",
92
- children: /* @__PURE__ */ m("path", {
93
+ children: /* @__PURE__ */ _("path", {
93
94
  strokeLinecap: "round",
94
95
  strokeLinejoin: "round",
95
96
  strokeWidth: 2,
96
97
  d: "M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4"
97
98
  })
98
- }), w = ({ className: e }) => /* @__PURE__ */ m("svg", {
99
+ }), re = ({ className: e }) => /* @__PURE__ */ _("svg", {
99
100
  className: e,
100
101
  fill: "none",
101
102
  stroke: "currentColor",
102
103
  viewBox: "0 0 24 24",
103
- children: /* @__PURE__ */ m("path", {
104
- strokeLinecap: "round",
105
- strokeLinejoin: "round",
106
- strokeWidth: 2,
107
- d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
108
- })
109
- }), T = ({ className: e }) => /* @__PURE__ */ m("svg", {
110
- className: e,
111
- fill: "none",
112
- stroke: "currentColor",
113
- viewBox: "0 0 24 24",
114
- children: /* @__PURE__ */ m("path", {
104
+ children: /* @__PURE__ */ _("path", {
115
105
  strokeLinecap: "round",
116
106
  strokeLinejoin: "round",
117
107
  strokeWidth: 2,
118
108
  d: "M19 9l-7 7-7-7"
119
109
  })
120
- }), E = l(function() {
121
- let l = e(), { workflowId: E } = te(), { apiGatewayUrl: D, authToken: O, workspaceId: k } = r(), [A, j] = f(null), [M, N] = f(!1), [, P] = f(!1), [F, I] = f(!1), [L, R] = f(!1), [z, B] = f(!1), [V, H] = f(!1), [U, W] = f(null), { loading: G, error: K, fetchWorkflow: q, deleteWorkflow: J, executeWorkflow: Y, pollWorkflowExecution: X } = t({ skipFetch: !0 });
122
- d(() => {
123
- if (!E) {
124
- H(!0);
110
+ }), O = c(function() {
111
+ let c = e(), { workflowId: O } = f(), { apiGatewayUrl: ie, authToken: ae, workspaceId: oe } = r(), [k, A] = d(null), [j, M] = d(!1), [, N] = d(!1), [P, F] = d(!1), [I, L] = d(!1), [R, z] = d(!1), [B, V] = d(!1), [H, U] = d(null), { loading: W, error: G, fetchWorkflow: K, deleteWorkflow: q, executeWorkflow: J, pollWorkflowExecution: Y } = t({ skipFetch: !0 });
112
+ u(() => {
113
+ if (!O) {
114
+ V(!0);
125
115
  return;
126
116
  }
127
117
  let e = !1, t = async (r) => {
128
118
  try {
129
- let i = await q(E);
119
+ let i = await K(O);
130
120
  if (e) return;
131
- i ? (j(i), H(!0)) : r === 0 ? setTimeout(() => {
121
+ i ? (A(i), V(!0)) : r === 0 ? setTimeout(() => {
132
122
  e || t(1);
133
- }, n) : H(!0);
123
+ }, n) : V(!0);
134
124
  } catch {
135
- e || H(!0);
125
+ e || V(!0);
136
126
  }
137
127
  };
138
128
  return t(0), () => {
139
129
  e = !0;
140
130
  };
141
- }, [E, q]);
142
- let Z = u(() => {
143
- l("/workflows");
144
- }, [l]), re = u(() => {
145
- l(`/workflows/${E}/edit`);
146
- }, [l, E]), Q = u(async () => {
147
- if (E) {
148
- P(!0);
131
+ }, [O, K]);
132
+ let X = l(() => {
133
+ c("/workflows");
134
+ }, [c]), Z = l(() => {
135
+ c(`/workflows/${O}/edit`);
136
+ }, [c, O]), se = l(async () => {
137
+ if (O) {
138
+ N(!0);
149
139
  try {
150
- await J(E) ? (i() && o("success"), l("/workflows")) : i() && o("error");
140
+ await q(O) ? (i() && o("success"), c("/workflows")) : i() && o("error");
151
141
  } catch {
152
142
  i() && o("error");
153
143
  } finally {
154
- P(!1), N(!1);
144
+ N(!1), M(!1);
155
145
  }
156
146
  }
157
147
  }, [
158
- E,
159
- J,
160
- l
161
- ]), ie = u(async () => {
162
- if (!E) return;
163
- I(!0), W(null);
148
+ O,
149
+ q,
150
+ c
151
+ ]), Q = l(async () => {
152
+ if (!O) return;
153
+ F(!0), U(null);
164
154
  let e = Date.now();
165
155
  try {
166
- let t = await Y(E);
156
+ let t = await J(O);
167
157
  if (t) {
168
158
  let n = Date.now() - e;
169
- t.externalWorkflowId ? (W({
159
+ t.externalWorkflowId ? (U({
170
160
  success: !0,
171
161
  output: {
172
162
  externalWorkflowId: t.externalWorkflowId,
@@ -175,14 +165,14 @@ var v = ({ className: e }) => /* @__PURE__ */ m("svg", {
175
165
  },
176
166
  error: null,
177
167
  executionTimeMs: n
178
- }), X(E, {
168
+ }), Y(O, {
179
169
  intervalMs: 3e3,
180
170
  timeoutMs: 12e4,
181
171
  onProgress: (e) => {
182
- j(e);
172
+ A(e);
183
173
  }
184
174
  }).then((t) => {
185
- t && (j(t), W((n) => n && {
175
+ t && (A(t), U((n) => n && {
186
176
  ...n,
187
177
  output: {
188
178
  ...n.output || {},
@@ -192,7 +182,7 @@ var v = ({ className: e }) => /* @__PURE__ */ m("svg", {
192
182
  },
193
183
  executionTimeMs: Date.now() - e
194
184
  }));
195
- })) : W({
185
+ })) : U({
196
186
  success: !0,
197
187
  output: {
198
188
  executionCount: t.executionCount,
@@ -202,278 +192,302 @@ var v = ({ className: e }) => /* @__PURE__ */ m("svg", {
202
192
  error: null,
203
193
  executionTimeMs: n
204
194
  });
205
- let r = await q(E);
206
- r && j(r);
195
+ let r = await K(O);
196
+ r && A(r);
207
197
  }
208
198
  } catch (t) {
209
- W({
199
+ U({
210
200
  success: !1,
211
201
  output: null,
212
202
  error: t instanceof Error ? t.message : "Execution failed",
213
203
  executionTimeMs: Date.now() - e
214
204
  });
215
205
  } finally {
216
- I(!1);
206
+ F(!1);
217
207
  }
218
208
  }, [
219
- E,
220
- Y,
221
- q,
222
- X
223
- ]), ae = u(async () => {
224
- if (A?.webhookUrl) try {
225
- await a(A.webhookUrl), R(!0), i() && s("Webhook copied"), setTimeout(() => R(!1), 2e3);
209
+ O,
210
+ J,
211
+ K,
212
+ Y
213
+ ]), ce = l(async () => {
214
+ if (k?.webhookUrl) try {
215
+ await a(k.webhookUrl), L(!0), i() && ee("Webhook copied"), setTimeout(() => L(!1), 2e3);
226
216
  } catch {}
227
- }, [A?.webhookUrl]), oe = u((e) => {
228
- l(`/datasinks/${e}`);
229
- }, [l]);
230
- if (!V || G && !A) return /* @__PURE__ */ m("div", {
217
+ }, [k?.webhookUrl]), le = l((e) => {
218
+ c(`/datasinks/${e}`);
219
+ }, [c]);
220
+ if (!B || W && !k) return /* @__PURE__ */ _("div", {
231
221
  className: "p-6 flex items-center justify-center min-h-[400px]",
232
- children: /* @__PURE__ */ h("svg", {
222
+ children: /* @__PURE__ */ v("svg", {
233
223
  className: "w-8 h-8 text-action-primary-bg animate-spin",
234
224
  fill: "none",
235
225
  viewBox: "0 0 24 24",
236
- children: [/* @__PURE__ */ m("circle", {
226
+ children: [/* @__PURE__ */ _("circle", {
237
227
  className: "opacity-25",
238
228
  cx: "12",
239
229
  cy: "12",
240
230
  r: "10",
241
231
  stroke: "currentColor",
242
232
  strokeWidth: "4"
243
- }), /* @__PURE__ */ m("path", {
233
+ }), /* @__PURE__ */ _("path", {
244
234
  className: "opacity-75",
245
235
  fill: "currentColor",
246
236
  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"
247
237
  })]
248
238
  })
249
239
  });
250
- if (K || !A) return /* @__PURE__ */ h("div", {
240
+ if (G || !k) return /* @__PURE__ */ v("div", {
251
241
  className: "p-6",
252
- children: [/* @__PURE__ */ h("button", {
242
+ children: [/* @__PURE__ */ v("button", {
253
243
  type: "button",
254
- onClick: Z,
244
+ onClick: X,
255
245
  className: "inline-flex items-center gap-1 text-sm text-text-secondary hover:text-text-primary mb-4",
256
- children: [/* @__PURE__ */ m(v, { className: "w-4 h-4" }), "Back to Workflows"]
257
- }), /* @__PURE__ */ h("div", {
258
- className: "flex flex-col items-center justify-center py-16 text-center",
259
- children: [
260
- /* @__PURE__ */ m("div", {
261
- className: "p-3 rounded-full bg-state-error/10 mb-4",
262
- children: /* @__PURE__ */ m(w, { className: "w-8 h-8 text-state-error" })
263
- }),
264
- /* @__PURE__ */ m("h3", {
265
- className: "text-lg font-medium text-text-primary mb-2",
266
- children: "Workflow not found"
267
- }),
268
- /* @__PURE__ */ m("p", {
269
- className: "text-sm text-text-secondary",
270
- children: K?.message || "The workflow you are looking for does not exist."
271
- })
272
- ]
246
+ children: [/* @__PURE__ */ _(x, { className: "w-4 h-4" }), "Back to Workflows"]
247
+ }), /* @__PURE__ */ _(p, {
248
+ illustration: "empty-data",
249
+ title: "Workflow not found",
250
+ description: G?.message || "The workflow you are looking for does not exist."
273
251
  })]
274
252
  });
275
- let $ = A.dataSinkLinks?.length || 0;
276
- return /* @__PURE__ */ h("div", {
253
+ let $ = k.dataSinkLinks?.length || 0;
254
+ return /* @__PURE__ */ v("div", {
277
255
  className: "p-6 max-w-5xl mx-auto",
278
256
  children: [
279
- /* @__PURE__ */ h("div", {
257
+ /* @__PURE__ */ v("div", {
280
258
  className: "mb-8",
281
- children: [/* @__PURE__ */ h("button", {
259
+ children: [/* @__PURE__ */ v("button", {
282
260
  type: "button",
283
- onClick: Z,
261
+ onClick: X,
284
262
  className: "inline-flex items-center gap-1 text-sm text-text-secondary hover:text-text-primary mb-4",
285
- children: [/* @__PURE__ */ m(v, { className: "w-4 h-4" }), "Back to Workflows"]
286
- }), /* @__PURE__ */ h("div", {
263
+ children: [/* @__PURE__ */ _(x, { className: "w-4 h-4" }), "Back to Workflows"]
264
+ }), /* @__PURE__ */ v("div", {
287
265
  className: "flex items-start justify-between",
288
- children: [/* @__PURE__ */ h("div", { children: [
289
- /* @__PURE__ */ h("div", {
266
+ children: [/* @__PURE__ */ v("div", { children: [
267
+ /* @__PURE__ */ v("div", {
290
268
  className: "flex items-center gap-3 mb-2",
291
- children: [/* @__PURE__ */ m("h1", {
269
+ children: [/* @__PURE__ */ _("h1", {
292
270
  className: "text-2xl font-bold text-text-primary",
293
- children: A.name
294
- }), /* @__PURE__ */ m(ee, { status: A.status })]
271
+ children: k.name
272
+ }), /* @__PURE__ */ _(te, { status: k.status })]
295
273
  }),
296
- /* @__PURE__ */ m("p", {
274
+ /* @__PURE__ */ _("p", {
297
275
  className: "text-sm text-text-secondary font-mono",
298
- children: A.key
276
+ children: k.key
299
277
  }),
300
- A.externalWorkflowId && /* @__PURE__ */ h("p", {
278
+ k.externalWorkflowId && /* @__PURE__ */ v("p", {
301
279
  className: "text-xs text-text-tertiary mt-1",
302
- children: ["FluidGrids ID: ", /* @__PURE__ */ m("span", {
280
+ children: ["FluidGrids ID: ", /* @__PURE__ */ _("span", {
303
281
  className: "font-mono",
304
- children: A.externalWorkflowId
282
+ children: k.externalWorkflowId
305
283
  })]
306
284
  })
307
- ] }), /* @__PURE__ */ h("div", {
285
+ ] }), /* @__PURE__ */ v("div", {
308
286
  className: "flex items-center gap-2",
309
287
  children: [
310
- /* @__PURE__ */ h("button", {
288
+ /* @__PURE__ */ v("button", {
311
289
  type: "button",
312
- onClick: ie,
313
- disabled: F,
290
+ onClick: Q,
291
+ disabled: P,
314
292
  className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-state-success hover:bg-state-success/90 rounded-md transition-colors disabled:opacity-50",
315
- children: [/* @__PURE__ */ m(b, { className: "w-4 h-4" }), F ? "Executing..." : "Execute"]
293
+ children: [/* @__PURE__ */ _(w, { className: "w-4 h-4" }), P ? "Executing..." : "Execute"]
316
294
  }),
317
- /* @__PURE__ */ h("button", {
295
+ /* @__PURE__ */ v("button", {
318
296
  type: "button",
319
- onClick: re,
297
+ onClick: Z,
320
298
  className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-text-primary bg-bg-sunken hover:bg-border-default rounded-md transition-colors",
321
- children: [/* @__PURE__ */ m(ne, { className: "w-4 h-4" }), "Edit"]
299
+ children: [/* @__PURE__ */ _(S, { className: "w-4 h-4" }), "Edit"]
322
300
  }),
323
- /* @__PURE__ */ h("button", {
301
+ /* @__PURE__ */ v("button", {
324
302
  type: "button",
325
- onClick: () => N(!0),
303
+ onClick: () => M(!0),
326
304
  className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-state-error bg-state-error/10 hover:bg-state-error/20 rounded-md transition-colors",
327
- children: [/* @__PURE__ */ m(y, { className: "w-4 h-4" }), "Delete"]
305
+ children: [/* @__PURE__ */ _(C, { className: "w-4 h-4" }), "Delete"]
328
306
  })
329
307
  ]
330
308
  })]
331
309
  })]
332
310
  }),
333
- U && /* @__PURE__ */ h("div", {
334
- className: `mb-6 p-4 rounded-lg border ${U.success ? "bg-state-success/10 border-state-success/20" : "bg-state-error/10 border-state-error/20"}`,
311
+ /* @__PURE__ */ _(h, {
312
+ className: "mb-6",
313
+ children: "A workflow is the visual ETL job that feeds this BigConsole — it fetches, transforms, and delivers data into linked data sinks. From here you can run it on demand, inspect its design and execution history, copy its webhook trigger, and edit it in the visual builder."
314
+ }),
315
+ /* @__PURE__ */ _(m, {
316
+ storageKey: "bigconsole-workflow-view",
317
+ steps: [
318
+ {
319
+ id: "execute",
320
+ label: "Run the workflow",
321
+ description: "Trigger an execution to pull fresh data now.",
322
+ onClick: Q
323
+ },
324
+ {
325
+ id: "design",
326
+ label: "Inspect the design",
327
+ description: "Expand the read-only preview to see each step.",
328
+ onClick: () => z(!0)
329
+ },
330
+ {
331
+ id: "edit",
332
+ label: "Edit in the builder",
333
+ description: "Open the FluidGrids visual builder to change the flow.",
334
+ onClick: Z
335
+ },
336
+ {
337
+ id: "sinks",
338
+ label: "Check the linked data sinks",
339
+ description: "See where this workflow writes its output.",
340
+ onClick: () => c("/datasinks")
341
+ }
342
+ ]
343
+ }),
344
+ H && /* @__PURE__ */ v("div", {
345
+ className: `mb-6 p-4 rounded-lg border ${H.success ? "bg-state-success/10 border-state-success/20" : "bg-state-error/10 border-state-error/20"}`,
335
346
  children: [
336
- /* @__PURE__ */ h("div", {
347
+ /* @__PURE__ */ v("div", {
337
348
  className: "flex items-center justify-between mb-2",
338
- children: [/* @__PURE__ */ m("h3", {
349
+ children: [/* @__PURE__ */ _("h3", {
339
350
  className: "text-sm font-semibold text-text-primary",
340
- children: U.success ? "Execution Triggered" : "Execution Failed"
341
- }), /* @__PURE__ */ h("span", {
351
+ children: H.success ? "Execution Triggered" : "Execution Failed"
352
+ }), /* @__PURE__ */ v("span", {
342
353
  className: "text-xs text-text-secondary",
343
- children: [U.executionTimeMs, "ms"]
354
+ children: [H.executionTimeMs, "ms"]
344
355
  })]
345
356
  }),
346
- U.error ? /* @__PURE__ */ m("p", {
357
+ H.error ? /* @__PURE__ */ _("p", {
347
358
  className: "text-sm text-state-error",
348
- children: U.error
349
- }) : /* @__PURE__ */ m("pre", {
359
+ children: H.error
360
+ }) : /* @__PURE__ */ _("pre", {
350
361
  className: "text-xs text-text-secondary font-mono bg-bg-sunken p-2 rounded overflow-auto max-h-[200px]",
351
- children: JSON.stringify(U.output, null, 2)
362
+ children: JSON.stringify(H.output, null, 2)
352
363
  }),
353
- U.runId && /* @__PURE__ */ h("p", {
364
+ H.runId && /* @__PURE__ */ v("p", {
354
365
  className: "text-xs text-text-tertiary mt-2",
355
- children: ["Run ID: ", /* @__PURE__ */ m("span", {
366
+ children: ["Run ID: ", /* @__PURE__ */ _("span", {
356
367
  className: "font-mono",
357
- children: U.runId
368
+ children: H.runId
358
369
  })]
359
370
  })
360
371
  ]
361
372
  }),
362
- /* @__PURE__ */ h("div", {
373
+ /* @__PURE__ */ v("div", {
363
374
  className: "grid grid-cols-1 md:grid-cols-2 gap-6 mb-8",
364
- children: [/* @__PURE__ */ h("div", {
375
+ children: [/* @__PURE__ */ v("div", {
365
376
  className: "bg-bg-surface border border-border-default rounded-lg p-4",
366
- children: [/* @__PURE__ */ m("h3", {
377
+ children: [/* @__PURE__ */ _("h3", {
367
378
  className: "text-sm font-medium text-text-secondary mb-2",
368
379
  children: "Description"
369
- }), /* @__PURE__ */ m("p", {
380
+ }), /* @__PURE__ */ _("p", {
370
381
  className: "text-sm text-text-primary",
371
- children: A.description || "No description"
382
+ children: k.description || "No description"
372
383
  })]
373
- }), /* @__PURE__ */ h("div", {
374
- className: "bg-bg-surface border border-border-default rounded-lg p-4",
375
- children: [/* @__PURE__ */ m("h3", {
384
+ }), /* @__PURE__ */ v(ne, {
385
+ treatment: "glass",
386
+ glow: !0,
387
+ className: "p-4",
388
+ children: [/* @__PURE__ */ _("h3", {
376
389
  className: "text-sm font-medium text-text-secondary mb-2",
377
390
  children: "Execution Stats"
378
- }), /* @__PURE__ */ h("div", {
391
+ }), /* @__PURE__ */ v("div", {
379
392
  className: "grid grid-cols-2 gap-4",
380
- children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
393
+ children: [/* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
381
394
  className: "text-2xl font-bold text-text-primary",
382
- children: A.executionCount
383
- }), /* @__PURE__ */ m("p", {
395
+ children: k.executionCount
396
+ }), /* @__PURE__ */ _("p", {
384
397
  className: "text-xs text-text-secondary",
385
398
  children: "Total Executions"
386
- })] }), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
399
+ })] }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
387
400
  className: "text-sm font-medium text-text-primary",
388
- children: A.lastExecutedAt ? _(new Date(A.lastExecutedAt), { addSuffix: !0 }) : "Never"
389
- }), /* @__PURE__ */ m("p", {
401
+ children: k.lastExecutedAt ? b(new Date(k.lastExecutedAt), { addSuffix: !0 }) : "Never"
402
+ }), /* @__PURE__ */ _("p", {
390
403
  className: "text-xs text-text-secondary",
391
404
  children: "Last Executed"
392
405
  })] })]
393
406
  })]
394
407
  })]
395
408
  }),
396
- A.webhookUrl && /* @__PURE__ */ h("div", {
409
+ k.webhookUrl && /* @__PURE__ */ v("div", {
397
410
  className: "bg-bg-surface border border-border-default rounded-lg p-4 mb-8",
398
- children: [/* @__PURE__ */ m("h3", {
411
+ children: [/* @__PURE__ */ _("h3", {
399
412
  className: "text-sm font-medium text-text-secondary mb-2",
400
413
  children: "Webhook URL"
401
- }), /* @__PURE__ */ h("div", {
414
+ }), /* @__PURE__ */ v("div", {
402
415
  className: "flex items-center gap-2",
403
- children: [/* @__PURE__ */ m("code", {
416
+ children: [/* @__PURE__ */ _("code", {
404
417
  className: "flex-1 text-sm text-text-primary font-mono bg-bg-sunken px-3 py-2 rounded overflow-auto",
405
- children: A.webhookUrl
406
- }), /* @__PURE__ */ m("button", {
418
+ children: k.webhookUrl
419
+ }), /* @__PURE__ */ _("button", {
407
420
  type: "button",
408
- onClick: ae,
421
+ onClick: ce,
409
422
  className: "flex items-center gap-1 px-3 py-2 text-sm text-text-secondary hover:text-text-primary transition-colors",
410
- children: L ? /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(S, { className: "w-4 h-4 text-state-success" }), "Copied!"] }) : /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(x, { className: "w-4 h-4" }), "Copy"] })
423
+ children: I ? /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _(E, { className: "w-4 h-4 text-state-success" }), "Copied!"] }) : /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _(T, { className: "w-4 h-4" }), "Copy"] })
411
424
  })]
412
425
  })]
413
426
  }),
414
- A.externalWorkflowId && /* @__PURE__ */ h("div", {
427
+ k.externalWorkflowId && /* @__PURE__ */ v("div", {
415
428
  className: "bg-bg-surface border border-border-default rounded-lg mb-8 overflow-hidden",
416
- children: [/* @__PURE__ */ h("button", {
429
+ children: [/* @__PURE__ */ v("button", {
417
430
  type: "button",
418
- onClick: () => B((e) => !e),
431
+ onClick: () => z((e) => !e),
419
432
  className: "w-full flex items-center justify-between px-4 py-3 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors",
420
- children: [/* @__PURE__ */ m("span", { children: "Workflow Design Preview" }), /* @__PURE__ */ m(T, { className: `w-4 h-4 text-text-secondary transition-transform ${z ? "rotate-180" : ""}` })]
421
- }), z && /* @__PURE__ */ m("div", {
433
+ children: [/* @__PURE__ */ _("span", { children: "Workflow Design Preview" }), /* @__PURE__ */ _(re, { className: `w-4 h-4 text-text-secondary transition-transform ${R ? "rotate-180" : ""}` })]
434
+ }), R && /* @__PURE__ */ _("div", {
422
435
  className: "border-t border-border-default",
423
436
  style: { height: "450px" },
424
- children: /* @__PURE__ */ m(g, {
425
- apiGatewayUrl: D,
426
- workspaceId: k || "default",
427
- authToken: O,
428
- workflowId: A.externalWorkflowId,
437
+ children: /* @__PURE__ */ _(y, {
438
+ apiGatewayUrl: ie,
439
+ workspaceId: oe || "default",
440
+ authToken: ae,
441
+ workflowId: k.externalWorkflowId,
429
442
  readonly: !0,
430
443
  hideHeader: !0,
431
444
  className: "h-full"
432
445
  })
433
446
  })]
434
447
  }),
435
- /* @__PURE__ */ h("div", {
448
+ /* @__PURE__ */ v("div", {
436
449
  className: "bg-bg-surface border border-border-default rounded-lg p-4 mb-8",
437
- children: [/* @__PURE__ */ h("h3", {
450
+ children: [/* @__PURE__ */ v("h3", {
438
451
  className: "text-sm font-medium text-text-secondary mb-4",
439
452
  children: [
440
453
  "Linked DataSinks (",
441
454
  $,
442
455
  ")"
443
456
  ]
444
- }), $ === 0 ? /* @__PURE__ */ m("p", {
445
- className: "text-sm text-text-secondary",
446
- children: "No DataSinks linked to this workflow."
447
- }) : /* @__PURE__ */ m("div", {
457
+ }), $ === 0 ? /* @__PURE__ */ _(p, {
458
+ illustration: "empty-generic",
459
+ title: "No data sinks linked",
460
+ description: "This workflow has no data sinks linked yet — its output isn't being stored."
461
+ }) : /* @__PURE__ */ _("div", {
448
462
  className: "space-y-2",
449
- children: A.dataSinkLinks?.map((e) => /* @__PURE__ */ h("div", {
463
+ children: k.dataSinkLinks?.map((e) => /* @__PURE__ */ v("div", {
450
464
  className: "flex items-center justify-between px-3 py-2 bg-bg-sunken rounded-md",
451
- children: [/* @__PURE__ */ h("div", {
465
+ children: [/* @__PURE__ */ v("div", {
452
466
  className: "flex items-center gap-3",
453
- children: [/* @__PURE__ */ m(C, { className: "w-4 h-4 text-text-secondary" }), /* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("p", {
467
+ children: [/* @__PURE__ */ _(D, { className: "w-4 h-4 text-text-secondary" }), /* @__PURE__ */ v("div", { children: [/* @__PURE__ */ _("p", {
454
468
  className: "text-sm font-medium text-text-primary",
455
469
  children: e.dataSink?.name || e.dataSink?.key || e.dataSinkId
456
- }), e.dataSink?.key && /* @__PURE__ */ m("p", {
470
+ }), e.dataSink?.key && /* @__PURE__ */ _("p", {
457
471
  className: "text-xs text-text-secondary font-mono",
458
472
  children: e.dataSink.key
459
473
  })] })]
460
- }), /* @__PURE__ */ h("div", {
474
+ }), /* @__PURE__ */ v("div", {
461
475
  className: "flex items-center gap-4",
462
- children: [/* @__PURE__ */ h("div", {
476
+ children: [/* @__PURE__ */ v("div", {
463
477
  className: "flex items-center gap-2",
464
- children: [e.isEnabled ? /* @__PURE__ */ m("span", {
478
+ children: [e.isEnabled ? /* @__PURE__ */ _("span", {
465
479
  className: "text-xs text-state-success",
466
480
  children: "Enabled"
467
- }) : /* @__PURE__ */ m("span", {
481
+ }) : /* @__PURE__ */ _("span", {
468
482
  className: "text-xs text-text-secondary",
469
483
  children: "Disabled"
470
- }), /* @__PURE__ */ h("span", {
484
+ }), /* @__PURE__ */ v("span", {
471
485
  className: "text-xs text-text-secondary",
472
486
  children: ["Priority: ", e.priority]
473
487
  })]
474
- }), e.dataSink && /* @__PURE__ */ m("button", {
488
+ }), e.dataSink && /* @__PURE__ */ _("button", {
475
489
  type: "button",
476
- onClick: () => oe(e.dataSinkId),
490
+ onClick: () => le(e.dataSinkId),
477
491
  className: "text-xs text-action-primary-bg hover:underline",
478
492
  children: "View"
479
493
  })]
@@ -481,52 +495,52 @@ var v = ({ className: e }) => /* @__PURE__ */ m("svg", {
481
495
  }, e.id))
482
496
  })]
483
497
  }),
484
- /* @__PURE__ */ h("div", {
498
+ /* @__PURE__ */ v("div", {
485
499
  className: "grid grid-cols-1 md:grid-cols-2 gap-6",
486
- children: [/* @__PURE__ */ h("div", {
500
+ children: [/* @__PURE__ */ v("div", {
487
501
  className: "bg-bg-surface border border-border-default rounded-lg p-4",
488
502
  children: [
489
- /* @__PURE__ */ m("h3", {
503
+ /* @__PURE__ */ _("h3", {
490
504
  className: "text-sm font-medium text-text-secondary mb-2",
491
505
  children: "Created"
492
506
  }),
493
- /* @__PURE__ */ m("p", {
507
+ /* @__PURE__ */ _("p", {
494
508
  className: "text-sm text-text-primary",
495
- children: _(new Date(A.createdAt), { addSuffix: !0 })
509
+ children: b(new Date(k.createdAt), { addSuffix: !0 })
496
510
  }),
497
- /* @__PURE__ */ h("p", {
511
+ /* @__PURE__ */ v("p", {
498
512
  className: "text-xs text-text-secondary",
499
- children: ["by ", A.createdBy]
513
+ children: ["by ", k.createdBy]
500
514
  })
501
515
  ]
502
- }), /* @__PURE__ */ h("div", {
516
+ }), /* @__PURE__ */ v("div", {
503
517
  className: "bg-bg-surface border border-border-default rounded-lg p-4",
504
518
  children: [
505
- /* @__PURE__ */ m("h3", {
519
+ /* @__PURE__ */ _("h3", {
506
520
  className: "text-sm font-medium text-text-secondary mb-2",
507
521
  children: "Last Updated"
508
522
  }),
509
- /* @__PURE__ */ m("p", {
523
+ /* @__PURE__ */ _("p", {
510
524
  className: "text-sm text-text-primary",
511
- children: _(new Date(A.updatedAt), { addSuffix: !0 })
525
+ children: b(new Date(k.updatedAt), { addSuffix: !0 })
512
526
  }),
513
- /* @__PURE__ */ h("p", {
527
+ /* @__PURE__ */ v("p", {
514
528
  className: "text-xs text-text-secondary",
515
- children: ["by ", A.updatedBy || A.createdBy]
529
+ children: ["by ", k.updatedBy || k.createdBy]
516
530
  })
517
531
  ]
518
532
  })]
519
533
  }),
520
- A && /* @__PURE__ */ m(c, {
521
- workflow: A,
522
- isOpen: M,
523
- onClose: () => N(!1),
524
- onConfirm: Q
534
+ k && /* @__PURE__ */ _(s, {
535
+ workflow: k,
536
+ isOpen: j,
537
+ onClose: () => M(!1),
538
+ onConfirm: se
525
539
  })
526
540
  ]
527
541
  });
528
542
  });
529
543
  //#endregion
530
- export { E as WorkflowViewPage };
544
+ export { O as WorkflowViewPage };
531
545
 
532
546
  //# sourceMappingURL=WorkflowViewPage.js.map