@burdenoff/microfe-bigconsole 2026.804.2 → 2026.805.2

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 (53) hide show
  1. package/dist/bigconsole/AdminRoot.js +21 -16
  2. package/dist/bigconsole/AdminRoot.js.map +1 -1
  3. package/dist/bigconsole/BigConsoleRoot.js +44 -39
  4. package/dist/bigconsole/BigConsoleRoot.js.map +1 -1
  5. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +115 -100
  6. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
  7. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +100 -98
  8. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +1 -1
  9. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +164 -161
  10. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
  11. package/dist/bigconsole/components/datasink/DataSinkCard.js +20 -20
  12. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -1
  13. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +216 -49
  14. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -1
  15. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +96 -90
  16. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  17. package/dist/bigconsole/components/widgets/WidgetMenu.js +87 -76
  18. package/dist/bigconsole/components/widgets/WidgetMenu.js.map +1 -1
  19. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +120 -118
  20. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -1
  21. package/dist/bigconsole/pages/DashboardBuilderPage.js +113 -104
  22. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  23. package/dist/bigconsole/pages/DashboardViewPage.js +208 -199
  24. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  25. package/dist/bigconsole/pages/DashboardsPage.js +376 -325
  26. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  27. package/dist/bigconsole/pages/DataParsersPage.js +135 -125
  28. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  29. package/dist/bigconsole/pages/DataSinkBuilderPage.js +182 -172
  30. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  31. package/dist/bigconsole/pages/DataSinkViewPage.js +233 -198
  32. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  33. package/dist/bigconsole/pages/DataSinksPage.js +281 -268
  34. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
  35. package/dist/bigconsole/pages/ParserBuilderPage.js +238 -223
  36. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  37. package/dist/bigconsole/pages/ParserViewPage.js +162 -144
  38. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  39. package/dist/bigconsole/pages/PipelineBuilderPage.js +212 -204
  40. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  41. package/dist/bigconsole/pages/PipelineViewPage.js +191 -183
  42. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  43. package/dist/bigconsole/pages/PipelinesPage.js +128 -103
  44. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  45. package/dist/bigconsole/pages/WorkflowViewPage.js +238 -217
  46. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  47. package/dist/bigconsole/pages/WorkflowsPage.js +116 -102
  48. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  49. package/dist/bigconsole/utils/csv.js +91 -0
  50. package/dist/bigconsole/utils/csv.js.map +1 -0
  51. package/dist/constants/permissions.js +83 -0
  52. package/dist/constants/permissions.js.map +1 -0
  53. package/package.json +2 -2
@@ -1,31 +1,34 @@
1
1
  import { useParserStore as e } from "../store/parserStore.js";
2
- import { useAppNavigate as t } from "../contexts/NavigationContext.js";
2
+ import { useAppNavigate as ee } from "../contexts/NavigationContext.js";
3
3
  import "../contexts/index.js";
4
- import ee from "../hooks/useDataSinkOperations.js";
5
- import te from "../hooks/useParserOperations.js";
6
- import n from "../components/parser/ParserTypeBadge.js";
7
- import r from "../components/parser/ParserStatusBadge.js";
8
- import { isNative as i, nativeCopyText as a, nativeImpact as ne, nativeNotify as o, nativeToast as re } from "../../utils/nativeBridge.js";
9
- import ie from "../components/parser/ExpressionEditor.js";
10
- import ae from "../components/parser/ExportParserDialog.js";
4
+ import te from "../hooks/useDataSinkOperations.js";
5
+ import t from "../hooks/useParserOperations.js";
6
+ import { BIGCONSOLE_PERMISSIONS as n } from "../../constants/permissions.js";
7
+ import r from "../components/parser/ParserTypeBadge.js";
8
+ import i from "../components/parser/ParserStatusBadge.js";
9
+ import { isNative as a, nativeCopyText as ne, nativeImpact as re, nativeNotify as o, nativeToast as ie } from "../../utils/nativeBridge.js";
10
+ import ae from "../components/parser/ExpressionEditor.js";
11
+ import oe from "../components/parser/ExportParserDialog.js";
11
12
  import { memo as s, useCallback as c, useEffect as l, useState as u } from "react";
12
- import { useParams as d } from "react-router";
13
- import { AlertCircle as f, AlertTriangle as oe, ArrowDown as se, ArrowLeft as p, Check as ce, Copy as le, Database as ue, Download as de, Edit as fe, FileCode2 as pe, Loader2 as m, Play as h, Trash2 as g } from "lucide-react";
14
- import { Badge as _, Button as v, Card as y, CardContent as b, CardHeader as x, CardTitle as S, Dialog as me, DialogContent as he, DialogDescription as ge, DialogFooter as _e, DialogHeader as ve, DialogTitle as ye, GlassCard as C, IllustratedEmptyState as w, NextSteps as T, PagePurpose as E } from "@burdenoff/fe-libs/ui";
15
- import { Fragment as D, jsx as O, jsxs as k } from "react/jsx-runtime";
16
- import { formatDistanceToNow as A } from "date-fns";
13
+ import { useParams as se } from "react-router";
14
+ import { AccessDenied as ce, PermissionButton as d } from "@burdenoff/fe-libs/shared/components";
15
+ import { usePermissions as le } from "@burdenoff/fe-libs/shared/providers/shell";
16
+ import { AlertCircle as ue, AlertTriangle as de, ArrowDown as fe, ArrowLeft as f, Check as pe, Copy as me, Database as he, Download as ge, Edit as _e, FileCode2 as p, Loader2 as m, Play as h, Trash2 as ve } from "lucide-react";
17
+ import { Badge as g, Button as _, Card as v, CardContent as y, CardHeader as b, CardTitle as x, Dialog as ye, DialogContent as be, DialogDescription as xe, DialogFooter as Se, DialogHeader as S, DialogTitle as C, GlassCard as w, IllustratedEmptyState as T, NextSteps as E, PagePurpose as D } from "@burdenoff/fe-libs/ui";
18
+ import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
19
+ import { formatDistanceToNow as j } from "date-fns";
17
20
  //#region src/bigconsole/pages/ParserViewPage.tsx
18
- var j = "default", M = s(function() {
19
- let { parserId: s, consoleId: M } = d(), N = t(), P = M || j, [F, I] = u(!1), [be, L] = u(!1), [xe, R] = u(!1), [z, B] = u(!1), [Se, V] = u(!1), [H, U] = u(null), W = e((e) => s ? e.parsers.get(s) : void 0), { loading: Ce, error: G, fetchParser: K, deleteParser: q, executeParser: J } = te({
20
- consoleId: P,
21
+ var Ce = "default", M = s(function() {
22
+ let { parserId: s, consoleId: M } = se(), N = ee(), we = M || Ce, { hasPermission: Te, isLoading: Ee } = le(), De = Te(n.PARSER_READ), [P, F] = u(!1), [Oe, I] = u(!1), [L, R] = u(!1), [z, B] = u(!1), [ke, V] = u(!1), [H, U] = u(null), W = e((e) => s ? e.parsers.get(s) : void 0), { loading: Ae, error: G, fetchParser: K, deleteParser: q, executeParser: J } = t({
23
+ consoleId: we,
21
24
  skipFetch: !0
22
- }), { dataSinks: we, fetchDataSinks: Y } = ee({ skipFetch: !0 });
25
+ }), { dataSinks: je, fetchDataSinks: Y } = te({ skipFetch: !0 });
23
26
  l(() => {
24
27
  s && K(s);
25
28
  }, [s, K]), l(() => {
26
29
  Y();
27
30
  }, [Y]);
28
- let X = W?.inputSinkKey ? we.find((e) => e.key === W.inputSinkKey) : null, Z = c(() => {
31
+ let X = W?.inputSinkKey ? je.find((e) => e.key === W.inputSinkKey) : null, Z = c(() => {
29
32
  N(M ? `/dashboards/${M}/parsers` : "/parsers");
30
33
  }, [N, M]), Q = c(() => {
31
34
  N(M ? `/dashboards/${M}/parsers/${s}/edit` : `/parsers/${s}/edit`);
@@ -33,15 +36,15 @@ var j = "default", M = s(function() {
33
36
  N,
34
37
  s,
35
38
  M
36
- ]), Te = c(async () => {
39
+ ]), Me = c(async () => {
37
40
  if (s) {
38
- I(!0);
41
+ F(!0);
39
42
  try {
40
- await q(s) ? (i() && o("success"), N(M ? `/dashboards/${M}/parsers` : "/parsers")) : i() && o("error");
43
+ await q(s) ? (a() && o("success"), N(M ? `/dashboards/${M}/parsers` : "/parsers")) : a() && o("error");
41
44
  } catch {
42
- i() && o("error");
45
+ a() && o("error");
43
46
  } finally {
44
- I(!1), L(!1);
47
+ F(!1), I(!1);
45
48
  }
46
49
  }
47
50
  }, [
@@ -49,9 +52,9 @@ var j = "default", M = s(function() {
49
52
  q,
50
53
  N,
51
54
  M
52
- ]), Ee = c(async () => {
55
+ ]), Ne = c(async () => {
53
56
  if (W?.expression) try {
54
- await a(W.expression), R(!0), i() && re("Expression copied"), setTimeout(() => R(!1), 2e3);
57
+ await ne(W.expression), R(!0), a() && ie("Expression copied"), setTimeout(() => R(!1), 2e3);
55
58
  } catch {}
56
59
  }, [W?.expression]), $ = c(async () => {
57
60
  if (s) {
@@ -75,103 +78,115 @@ var j = "default", M = s(function() {
75
78
  B(!1);
76
79
  }
77
80
  }
78
- }, [s, J]), De = c(() => {
81
+ }, [s, J]), Pe = c(() => {
79
82
  X && N(`/datasinks/${X.id}`);
80
- }, [N, X]), Oe = c(() => {
83
+ }, [N, X]), Fe = c(() => {
81
84
  V(!0);
82
- }, []), ke = c(() => {
85
+ }, []), Ie = c(() => {
83
86
  V(!1);
84
87
  }, []);
85
- return Ce && !W ? /* @__PURE__ */ O("div", {
88
+ return Ae && !W || Ee ? /* @__PURE__ */ k("div", {
86
89
  className: "flex items-center justify-center min-h-[400px]",
87
- children: /* @__PURE__ */ O(m, { className: "w-8 h-8 text-text-secondary animate-spin" })
88
- }) : G ? /* @__PURE__ */ O("div", {
90
+ children: /* @__PURE__ */ k(m, { className: "w-8 h-8 text-text-secondary animate-spin" })
91
+ }) : De ? G ? /* @__PURE__ */ k("div", {
89
92
  className: "flex items-center justify-center min-h-[400px] p-card-padding",
90
- children: /* @__PURE__ */ k("div", {
93
+ children: /* @__PURE__ */ A("div", {
91
94
  className: "text-center",
92
95
  children: [
93
- /* @__PURE__ */ O(f, { className: "w-12 h-12 text-status-error-text mx-auto mb-4" }),
94
- /* @__PURE__ */ O("p", {
96
+ /* @__PURE__ */ k(ue, { className: "w-12 h-12 text-status-error-text mx-auto mb-4" }),
97
+ /* @__PURE__ */ k("p", {
95
98
  className: "text-status-error-text text-body-sm font-medium mb-2",
96
99
  children: "Failed to load Parser"
97
100
  }),
98
- /* @__PURE__ */ O("p", {
101
+ /* @__PURE__ */ k("p", {
99
102
  className: "text-text-tertiary text-body-xs mb-6",
100
103
  children: G.message
101
104
  }),
102
- /* @__PURE__ */ k(v, {
105
+ /* @__PURE__ */ A(_, {
103
106
  onClick: Z,
104
107
  variant: "ghost",
105
108
  size: "sm",
106
- children: [/* @__PURE__ */ O(p, { className: "w-4 h-4 mr-2" }), "Go back"]
109
+ children: [/* @__PURE__ */ k(f, { className: "w-4 h-4 mr-2" }), "Go back"]
107
110
  })
108
111
  ]
109
112
  })
110
- }) : W ? /* @__PURE__ */ k("div", {
113
+ }) : W ? /* @__PURE__ */ A("div", {
111
114
  className: "p-card-padding space-y-6",
112
115
  children: [
113
- /* @__PURE__ */ k("div", {
116
+ /* @__PURE__ */ A("div", {
114
117
  className: "flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",
115
- children: [/* @__PURE__ */ k("div", {
118
+ children: [/* @__PURE__ */ A("div", {
116
119
  className: "flex-1",
117
120
  children: [
118
- /* @__PURE__ */ k(v, {
121
+ /* @__PURE__ */ A(_, {
119
122
  onClick: Z,
120
123
  variant: "ghost",
121
124
  size: "sm",
122
125
  className: "mb-4",
123
- children: [/* @__PURE__ */ O(p, { className: "w-4 h-4 mr-2" }), "Back to Parsers"]
126
+ children: [/* @__PURE__ */ k(f, { className: "w-4 h-4 mr-2" }), "Back to Parsers"]
124
127
  }),
125
- /* @__PURE__ */ k("div", {
128
+ /* @__PURE__ */ A("div", {
126
129
  className: "flex items-center gap-2 flex-wrap",
127
130
  children: [
128
- /* @__PURE__ */ O("h1", {
131
+ /* @__PURE__ */ k("h1", {
129
132
  className: "text-heading-h1 font-bold text-text-primary",
130
133
  children: W.name || "Untitled"
131
134
  }),
132
- /* @__PURE__ */ O(n, { type: W.type }),
133
- /* @__PURE__ */ O(r, { status: W.status })
135
+ /* @__PURE__ */ k(r, { type: W.type }),
136
+ /* @__PURE__ */ k(i, { status: W.status })
134
137
  ]
135
138
  }),
136
- W.description && /* @__PURE__ */ O("p", {
139
+ W.description && /* @__PURE__ */ k("p", {
137
140
  className: "text-body-sm text-text-secondary mt-2",
138
141
  children: W.description
139
142
  })
140
143
  ]
141
- }), /* @__PURE__ */ k("div", {
144
+ }), /* @__PURE__ */ A("div", {
142
145
  className: "flex items-center gap-2 flex-wrap",
143
146
  children: [
144
- /* @__PURE__ */ k(v, {
145
- onClick: $,
146
- disabled: z,
147
- variant: "secondary",
148
- size: "default",
149
- children: [/* @__PURE__ */ O(h, { className: "w-4 h-4 mr-2" }), z ? "Running..." : "Execute"]
147
+ /* @__PURE__ */ k(d, {
148
+ permission: n.PARSER_EXECUTE,
149
+ deniedBehavior: "disable",
150
+ children: /* @__PURE__ */ A(_, {
151
+ onClick: $,
152
+ disabled: z,
153
+ variant: "secondary",
154
+ size: "default",
155
+ children: [/* @__PURE__ */ k(h, { className: "w-4 h-4 mr-2" }), z ? "Running..." : "Execute"]
156
+ })
150
157
  }),
151
- /* @__PURE__ */ k(v, {
152
- onClick: Oe,
158
+ /* @__PURE__ */ A(_, {
159
+ onClick: Fe,
153
160
  variant: "secondary",
154
161
  size: "default",
155
- children: [/* @__PURE__ */ O(de, { className: "w-4 h-4 mr-2" }), "Export"]
162
+ children: [/* @__PURE__ */ k(ge, { className: "w-4 h-4 mr-2" }), "Export"]
156
163
  }),
157
- /* @__PURE__ */ k(v, {
158
- onClick: Q,
159
- variant: "secondary",
160
- size: "default",
161
- children: [/* @__PURE__ */ O(fe, { className: "w-4 h-4 mr-2" }), "Edit"]
164
+ /* @__PURE__ */ k(d, {
165
+ permission: n.PARSER_UPDATE,
166
+ deniedBehavior: "disable",
167
+ children: /* @__PURE__ */ A(_, {
168
+ onClick: Q,
169
+ variant: "secondary",
170
+ size: "default",
171
+ children: [/* @__PURE__ */ k(_e, { className: "w-4 h-4 mr-2" }), "Edit"]
172
+ })
162
173
  }),
163
- /* @__PURE__ */ k(v, {
164
- onClick: () => L(!0),
165
- disabled: F,
166
- variant: "destructive",
167
- size: "default",
168
- children: [/* @__PURE__ */ O(g, { className: "w-4 h-4 mr-2" }), "Delete"]
174
+ /* @__PURE__ */ k(d, {
175
+ permission: n.PARSER_DELETE,
176
+ deniedBehavior: "hide",
177
+ children: /* @__PURE__ */ A(_, {
178
+ onClick: () => I(!0),
179
+ disabled: P,
180
+ variant: "destructive",
181
+ size: "default",
182
+ children: [/* @__PURE__ */ k(ve, { className: "w-4 h-4 mr-2" }), "Delete"]
183
+ })
169
184
  })
170
185
  ]
171
186
  })]
172
187
  }),
173
- /* @__PURE__ */ O(E, { children: "A parser turns raw input into structured fields using its expression. Review or copy the expression, run it against a sample to see the output, then edit it or use it inside a pipeline to shape incoming data." }),
174
- /* @__PURE__ */ O(T, {
188
+ /* @__PURE__ */ k(D, { children: "A parser turns raw input into structured fields using its expression. Review or copy the expression, run it against a sample to see the output, then edit it or use it inside a pipeline to shape incoming data." }),
189
+ /* @__PURE__ */ k(E, {
175
190
  storageKey: "bigconsole-parser-view",
176
191
  steps: [
177
192
  {
@@ -194,217 +209,220 @@ var j = "default", M = s(function() {
194
209
  }
195
210
  ]
196
211
  }),
197
- /* @__PURE__ */ k("div", {
212
+ /* @__PURE__ */ A("div", {
198
213
  className: "grid gap-6 lg:grid-cols-3",
199
- children: [/* @__PURE__ */ k("div", {
214
+ children: [/* @__PURE__ */ A("div", {
200
215
  className: "lg:col-span-2 space-y-6",
201
- children: [/* @__PURE__ */ k(C, {
216
+ children: [/* @__PURE__ */ A(w, {
202
217
  treatment: "glass",
203
218
  glow: !0,
204
- children: [/* @__PURE__ */ k(x, {
219
+ children: [/* @__PURE__ */ A(b, {
205
220
  className: "flex flex-row items-center justify-between space-y-0",
206
- children: [/* @__PURE__ */ k(S, {
221
+ children: [/* @__PURE__ */ A(x, {
207
222
  className: "flex items-center gap-2",
208
223
  children: [
209
- /* @__PURE__ */ O(pe, { className: "w-4 h-4 text-text-secondary" }),
224
+ /* @__PURE__ */ k(p, { className: "w-4 h-4 text-text-secondary" }),
210
225
  "Expression",
211
- /* @__PURE__ */ O(_, {
226
+ /* @__PURE__ */ k(g, {
212
227
  variant: "secondary",
213
228
  className: "text-xs uppercase",
214
229
  children: W.type
215
230
  })
216
231
  ]
217
- }), /* @__PURE__ */ O(v, {
218
- onClick: Ee,
232
+ }), /* @__PURE__ */ k(_, {
233
+ onClick: Ne,
219
234
  variant: "ghost",
220
235
  size: "sm",
221
- children: xe ? /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(ce, { className: "w-3.5 h-3.5 text-status-success-text mr-2" }), "Copied!"] }) : /* @__PURE__ */ k(D, { children: [/* @__PURE__ */ O(le, { className: "w-3.5 h-3.5 mr-2" }), "Copy"] })
236
+ children: L ? /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(pe, { className: "w-3.5 h-3.5 text-status-success-text mr-2" }), "Copied!"] }) : /* @__PURE__ */ A(O, { children: [/* @__PURE__ */ k(me, { className: "w-3.5 h-3.5 mr-2" }), "Copy"] })
222
237
  })]
223
- }), /* @__PURE__ */ O(b, { children: /* @__PURE__ */ O(ie, {
238
+ }), /* @__PURE__ */ k(y, { children: /* @__PURE__ */ k(ae, {
224
239
  value: W.expression,
225
240
  type: W.type,
226
241
  readOnly: !0,
227
242
  height: "300px"
228
243
  }) })]
229
- }), H && /* @__PURE__ */ k(y, { children: [/* @__PURE__ */ k(x, {
244
+ }), H && /* @__PURE__ */ A(v, { children: [/* @__PURE__ */ A(b, {
230
245
  className: "flex flex-row items-center justify-between space-y-0",
231
- children: [/* @__PURE__ */ k(S, {
246
+ children: [/* @__PURE__ */ A(x, {
232
247
  className: "flex items-center gap-2",
233
- children: ["Execution Result", /* @__PURE__ */ O(_, {
248
+ children: ["Execution Result", /* @__PURE__ */ k(g, {
234
249
  variant: H.success ? "default" : "destructive",
235
250
  children: H.success ? "Success" : "Failed"
236
251
  })]
237
- }), /* @__PURE__ */ k(_, {
252
+ }), /* @__PURE__ */ A(g, {
238
253
  variant: "secondary",
239
254
  className: "text-xs",
240
255
  children: [H.executionTimeMs, "ms"]
241
256
  })]
242
- }), /* @__PURE__ */ O(b, { children: H.error ? /* @__PURE__ */ O("div", {
257
+ }), /* @__PURE__ */ k(y, { children: H.error ? /* @__PURE__ */ k("div", {
243
258
  className: "bg-status-error-bg/5 border border-status-error-border/20 rounded-md p-4",
244
- children: /* @__PURE__ */ O("p", {
259
+ children: /* @__PURE__ */ k("p", {
245
260
  className: "text-body-sm text-status-error-text font-mono",
246
261
  children: H.error
247
262
  })
248
- }) : /* @__PURE__ */ O("pre", {
263
+ }) : /* @__PURE__ */ k("pre", {
249
264
  className: "text-body-sm text-text-primary font-mono bg-bg-sunken rounded-md p-4 overflow-auto max-h-[300px]",
250
265
  children: JSON.stringify(H.output, null, 2)
251
266
  }) })] })]
252
- }), /* @__PURE__ */ k("div", {
267
+ }), /* @__PURE__ */ A("div", {
253
268
  className: "space-y-6",
254
269
  children: [
255
- /* @__PURE__ */ k(y, { children: [/* @__PURE__ */ O(x, { children: /* @__PURE__ */ O(S, { children: "Data Flow" }) }), /* @__PURE__ */ O(b, { children: /* @__PURE__ */ k("div", {
270
+ /* @__PURE__ */ A(v, { children: [/* @__PURE__ */ k(b, { children: /* @__PURE__ */ k(x, { children: "Data Flow" }) }), /* @__PURE__ */ k(y, { children: /* @__PURE__ */ A("div", {
256
271
  className: "space-y-3",
257
272
  children: [
258
- /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("label", {
273
+ /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
259
274
  className: "text-xs font-medium text-text-secondary",
260
275
  children: "Source DataSink"
261
- }), W.inputSinkKey ? /* @__PURE__ */ k("div", {
276
+ }), W.inputSinkKey ? /* @__PURE__ */ A("div", {
262
277
  className: "mt-1",
263
- children: [/* @__PURE__ */ O("p", {
278
+ children: [/* @__PURE__ */ k("p", {
264
279
  className: "text-body-sm text-text-primary font-mono",
265
280
  children: W.inputSinkKey
266
- }), X && /* @__PURE__ */ k(v, {
267
- onClick: De,
281
+ }), X && /* @__PURE__ */ A(_, {
282
+ onClick: Pe,
268
283
  variant: "link",
269
284
  size: "sm",
270
285
  className: "mt-1 p-0 h-auto",
271
286
  children: [
272
- /* @__PURE__ */ O(ue, { className: "w-3 h-3 mr-1" }),
287
+ /* @__PURE__ */ k(he, { className: "w-3 h-3 mr-1" }),
273
288
  "View ",
274
289
  X.name || "DataSink"
275
290
  ]
276
291
  })]
277
- }) : /* @__PURE__ */ O("p", {
292
+ }) : /* @__PURE__ */ k("p", {
278
293
  className: "text-body-sm text-text-tertiary mt-1",
279
294
  children: "None configured"
280
295
  })] }),
281
- /* @__PURE__ */ O("div", {
296
+ /* @__PURE__ */ k("div", {
282
297
  className: "flex items-center justify-center py-1",
283
- children: /* @__PURE__ */ O(se, { className: "w-4 h-4 text-text-tertiary" })
298
+ children: /* @__PURE__ */ k(fe, { className: "w-4 h-4 text-text-tertiary" })
284
299
  }),
285
- /* @__PURE__ */ k("div", { children: [/* @__PURE__ */ O("label", {
300
+ /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("label", {
286
301
  className: "text-xs font-medium text-text-secondary",
287
302
  children: "Output Key"
288
- }), /* @__PURE__ */ O("p", {
303
+ }), /* @__PURE__ */ k("p", {
289
304
  className: "text-body-sm text-text-primary font-mono mt-1",
290
305
  children: W.outputKey || "Not configured"
291
306
  })] })
292
307
  ]
293
308
  }) })] }),
294
- /* @__PURE__ */ k(y, { children: [/* @__PURE__ */ O(x, { children: /* @__PURE__ */ O(S, { children: "Configuration" }) }), /* @__PURE__ */ O(b, { children: /* @__PURE__ */ k("dl", {
309
+ /* @__PURE__ */ A(v, { children: [/* @__PURE__ */ k(b, { children: /* @__PURE__ */ k(x, { children: "Configuration" }) }), /* @__PURE__ */ k(y, { children: /* @__PURE__ */ A("dl", {
295
310
  className: "space-y-4 text-body-sm",
296
311
  children: [
297
- /* @__PURE__ */ k("div", {
312
+ /* @__PURE__ */ A("div", {
298
313
  className: "flex justify-between items-center",
299
- children: [/* @__PURE__ */ O("dt", {
314
+ children: [/* @__PURE__ */ k("dt", {
300
315
  className: "text-text-secondary",
301
316
  children: "Status"
302
- }), /* @__PURE__ */ O("dd", { children: /* @__PURE__ */ O(r, { status: W.status }) })]
317
+ }), /* @__PURE__ */ k("dd", { children: /* @__PURE__ */ k(i, { status: W.status }) })]
303
318
  }),
304
- /* @__PURE__ */ k("div", {
319
+ /* @__PURE__ */ A("div", {
305
320
  className: "flex justify-between items-center",
306
- children: [/* @__PURE__ */ O("dt", {
321
+ children: [/* @__PURE__ */ k("dt", {
307
322
  className: "text-text-secondary",
308
323
  children: "Type"
309
- }), /* @__PURE__ */ O("dd", { children: /* @__PURE__ */ O(n, { type: W.type }) })]
324
+ }), /* @__PURE__ */ k("dd", { children: /* @__PURE__ */ k(r, { type: W.type }) })]
310
325
  }),
311
- /* @__PURE__ */ k("div", {
326
+ /* @__PURE__ */ A("div", {
312
327
  className: "flex justify-between items-center",
313
- children: [/* @__PURE__ */ O("dt", {
328
+ children: [/* @__PURE__ */ k("dt", {
314
329
  className: "text-text-secondary",
315
330
  children: "Cache TTL"
316
- }), /* @__PURE__ */ O("dd", {
331
+ }), /* @__PURE__ */ k("dd", {
317
332
  className: "text-text-primary font-medium",
318
333
  children: W.ttl ? `${W.ttl}s` : "No caching"
319
334
  })]
320
335
  }),
321
- /* @__PURE__ */ k("div", {
336
+ /* @__PURE__ */ A("div", {
322
337
  className: "flex justify-between items-center",
323
- children: [/* @__PURE__ */ O("dt", {
338
+ children: [/* @__PURE__ */ k("dt", {
324
339
  className: "text-text-secondary",
325
340
  children: "Version"
326
- }), /* @__PURE__ */ O("dd", {
341
+ }), /* @__PURE__ */ k("dd", {
327
342
  className: "text-text-primary font-medium",
328
343
  children: W.version || 1
329
344
  })]
330
345
  })
331
346
  ]
332
347
  }) })] }),
333
- /* @__PURE__ */ k(y, { children: [/* @__PURE__ */ O(x, { children: /* @__PURE__ */ O(S, { children: "Timestamps" }) }), /* @__PURE__ */ O(b, { children: /* @__PURE__ */ k("dl", {
348
+ /* @__PURE__ */ A(v, { children: [/* @__PURE__ */ k(b, { children: /* @__PURE__ */ k(x, { children: "Timestamps" }) }), /* @__PURE__ */ k(y, { children: /* @__PURE__ */ A("dl", {
334
349
  className: "space-y-4 text-body-sm",
335
- children: [/* @__PURE__ */ k("div", {
350
+ children: [/* @__PURE__ */ A("div", {
336
351
  className: "flex justify-between items-center",
337
- children: [/* @__PURE__ */ O("dt", {
352
+ children: [/* @__PURE__ */ k("dt", {
338
353
  className: "text-text-secondary",
339
354
  children: "Created"
340
- }), /* @__PURE__ */ O("dd", {
355
+ }), /* @__PURE__ */ k("dd", {
341
356
  className: "text-text-primary font-medium",
342
- children: W.createdAt ? A(new Date(W.createdAt), { addSuffix: !0 }) : "Unknown"
357
+ children: W.createdAt ? j(new Date(W.createdAt), { addSuffix: !0 }) : "Unknown"
343
358
  })]
344
- }), /* @__PURE__ */ k("div", {
359
+ }), /* @__PURE__ */ A("div", {
345
360
  className: "flex justify-between items-center",
346
- children: [/* @__PURE__ */ O("dt", {
361
+ children: [/* @__PURE__ */ k("dt", {
347
362
  className: "text-text-secondary",
348
363
  children: "Updated"
349
- }), /* @__PURE__ */ O("dd", {
364
+ }), /* @__PURE__ */ k("dd", {
350
365
  className: "text-text-primary font-medium",
351
- children: W.updatedAt ? A(new Date(W.updatedAt), { addSuffix: !0 }) : "Unknown"
366
+ children: W.updatedAt ? j(new Date(W.updatedAt), { addSuffix: !0 }) : "Unknown"
352
367
  })]
353
368
  })]
354
369
  }) })] })
355
370
  ]
356
371
  })]
357
372
  }),
358
- /* @__PURE__ */ O(me, {
359
- open: be,
360
- onOpenChange: L,
361
- children: /* @__PURE__ */ k(he, { children: [
362
- /* @__PURE__ */ k(ve, { children: [/* @__PURE__ */ O(ye, { children: "Delete Parser" }), /* @__PURE__ */ k(ge, { children: [
373
+ /* @__PURE__ */ k(ye, {
374
+ open: Oe,
375
+ onOpenChange: I,
376
+ children: /* @__PURE__ */ A(be, { children: [
377
+ /* @__PURE__ */ A(S, { children: [/* @__PURE__ */ k(C, { children: "Delete Parser" }), /* @__PURE__ */ A(xe, { children: [
363
378
  "Are you sure you want to delete ",
364
- /* @__PURE__ */ O("strong", { children: W.name }),
379
+ /* @__PURE__ */ k("strong", { children: W.name }),
365
380
  "? This action cannot be undone."
366
381
  ] })] }),
367
- /* @__PURE__ */ k("div", {
382
+ /* @__PURE__ */ A("div", {
368
383
  className: "bg-status-warning-bg/10 border border-status-warning-border/20 rounded-md p-4 flex items-start gap-2",
369
- children: [/* @__PURE__ */ O(oe, { className: "w-4 h-4 text-status-warning-text flex-shrink-0 mt-0.5" }), /* @__PURE__ */ O("p", {
384
+ children: [/* @__PURE__ */ k(de, { className: "w-4 h-4 text-status-warning-text flex-shrink-0 mt-0.5" }), /* @__PURE__ */ k("p", {
370
385
  className: "text-body-xs text-status-warning-text",
371
386
  children: "Widgets and pipelines using this parser may stop working correctly after deletion."
372
387
  })]
373
388
  }),
374
- /* @__PURE__ */ k(_e, { children: [/* @__PURE__ */ O(v, {
375
- onClick: () => L(!1),
389
+ /* @__PURE__ */ A(Se, { children: [/* @__PURE__ */ k(_, {
390
+ onClick: () => I(!1),
376
391
  variant: "secondary",
377
392
  children: "Cancel"
378
- }), /* @__PURE__ */ O(v, {
393
+ }), /* @__PURE__ */ k(_, {
379
394
  onClick: () => {
380
- ne("medium"), Te();
395
+ re("medium"), Me();
381
396
  },
382
- disabled: F,
397
+ disabled: P,
383
398
  variant: "destructive",
384
- children: F ? "Deleting..." : "Delete Parser"
399
+ children: P ? "Deleting..." : "Delete Parser"
385
400
  })] })
386
401
  ] })
387
402
  }),
388
- /* @__PURE__ */ O(ae, {
389
- isOpen: Se,
403
+ /* @__PURE__ */ k(oe, {
404
+ isOpen: ke,
390
405
  parserId: s || null,
391
406
  parserName: W.name,
392
- onClose: ke
407
+ onClose: Ie
393
408
  })
394
409
  ]
395
- }) : /* @__PURE__ */ O("div", {
410
+ }) : /* @__PURE__ */ k("div", {
396
411
  className: "flex items-center justify-center min-h-[400px] p-card-padding",
397
- children: /* @__PURE__ */ O(w, {
412
+ children: /* @__PURE__ */ k(T, {
398
413
  illustration: "empty-data",
399
414
  title: "Parser not found",
400
415
  description: "The Parser you're looking for doesn't exist or has been deleted.",
401
- action: /* @__PURE__ */ k(v, {
416
+ action: /* @__PURE__ */ A(_, {
402
417
  onClick: Z,
403
418
  variant: "default",
404
419
  size: "default",
405
- children: [/* @__PURE__ */ O(p, { className: "w-4 h-4 mr-2" }), "Go back to Parsers"]
420
+ children: [/* @__PURE__ */ k(f, { className: "w-4 h-4 mr-2" }), "Go back to Parsers"]
406
421
  })
407
422
  })
423
+ }) : /* @__PURE__ */ k(ce, {
424
+ title: "Access Denied",
425
+ description: "You don't have permission to view this parser."
408
426
  });
409
427
  });
410
428
  //#endregion