@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
@@ -3,16 +3,19 @@ import { useAppNavigate as t } from "../contexts/NavigationContext.js";
3
3
  import "../contexts/index.js";
4
4
  import n from "../hooks/useParserOperations.js";
5
5
  import r from "../hooks/useExportParser.js";
6
- import { isNative as i, nativeConfirm as a, nativeImpact as ee, nativeNotify as o } from "../../utils/nativeBridge.js";
7
- import te from "../components/parser/ParserCard.js";
8
- import ne from "../components/parser/ImportParserDialog.js";
9
- import { memo as s, useCallback as c, useMemo as l, useState as u } from "react";
10
- import { useParams as d } from "react-router";
11
- import { AlertCircle as f, FileCode2 as p, Plus as m, Search as re, Upload as ie, X as ae } from "lucide-react";
12
- import { AuroraBackground as oe, Badge as h, Button as g, CTAOverflowMenu as _, Card as v, CardContent as y, GlassCard as b, GradientText as x, IllustratedEmptyState as S, Input as C, PagePurpose as se, Select as w, SelectContent as T, SelectItem as E, SelectTrigger as D, SelectValue as O, Spinner as ce } from "@burdenoff/fe-libs/ui";
13
- import { jsx as k, jsxs as A } from "react/jsx-runtime";
6
+ import { BIGCONSOLE_PERMISSIONS as i } from "../../constants/permissions.js";
7
+ import { isNative as a, nativeConfirm as ee, nativeImpact as te, nativeNotify as o } from "../../utils/nativeBridge.js";
8
+ import ne from "../components/parser/ParserCard.js";
9
+ import s from "../components/parser/ImportParserDialog.js";
10
+ import { memo as c, useCallback as l, useMemo as re, useState as u } from "react";
11
+ import { useParams as ie } from "react-router";
12
+ import { AccessDenied as ae, PermissionButton as oe } from "@burdenoff/fe-libs/shared/components";
13
+ import { usePermissions as se } from "@burdenoff/fe-libs/shared/providers/shell";
14
+ import { AlertCircle as ce, FileCode2 as le, Plus as d, Search as ue, Upload as de, X as f } from "lucide-react";
15
+ import { AuroraBackground as fe, Badge as pe, Button as p, CTAOverflowMenu as m, Card as me, CardContent as he, GlassCard as h, GradientText as ge, IllustratedEmptyState as g, Input as _, PagePurpose as v, Select as y, SelectContent as b, SelectItem as x, SelectTrigger as S, SelectValue as C, Spinner as _e } from "@burdenoff/fe-libs/ui";
16
+ import { jsx as w, jsxs as T } from "react/jsx-runtime";
14
17
  //#region src/bigconsole/pages/DataParsersPage.tsx
15
- var le = [
18
+ var ve = [
16
19
  {
17
20
  value: "all",
18
21
  label: "All Types"
@@ -25,7 +28,7 @@ var le = [
25
28
  value: "jsonata",
26
29
  label: "JSONata"
27
30
  }
28
- ], ue = [
31
+ ], ye = [
29
32
  {
30
33
  value: "all",
31
34
  label: "All Status"
@@ -38,75 +41,75 @@ var le = [
38
41
  value: "inactive",
39
42
  label: "Inactive"
40
43
  }
41
- ], de = "default", j = s(function() {
42
- let s = t(), { consoleId: j } = d(), M = j || de, N = e((e) => e.typeFilter), P = e((e) => e.statusFilter), F = e((e) => e.searchQuery), I = e((e) => e.setTypeFilter), L = e((e) => e.setStatusFilter), R = e((e) => e.setSearchQuery), [z, B] = u(!1), [V, H] = u(null), [fe, U] = u(!1), { loading: W, error: G, parsers: K, deleteParser: q, refetch: J } = n({
43
- consoleId: M,
44
+ ], E = "default", D = c(function() {
45
+ let c = t(), { consoleId: D } = ie(), { hasPermission: O, isLoading: k } = se(), A = O(i.PARSER_READ), j = O(i.PARSER_CREATE), M = O(i.PARSER_UPDATE), N = O(i.PARSER_DELETE), P = D || E, F = e((e) => e.typeFilter), I = e((e) => e.statusFilter), L = e((e) => e.searchQuery), R = e((e) => e.setTypeFilter), z = e((e) => e.setStatusFilter), B = e((e) => e.setSearchQuery), [be, V] = u(!1), [xe, H] = u(null), [Se, U] = u(!1), { loading: W, error: G, parsers: K, deleteParser: q, refetch: J } = n({
46
+ consoleId: P,
44
47
  skipFetch: !1
45
- }), { downloadParser: Y, loading: pe } = r(), X = l(() => K ? K.filter((e) => {
46
- if (N && e.type !== N || P && e.status !== P) return !1;
47
- if (F) {
48
- let t = F.toLowerCase(), n = e.name?.toLowerCase().includes(t), r = e.description?.toLowerCase().includes(t), i = e.inputSinkKey?.toLowerCase().includes(t), a = e.outputKey?.toLowerCase().includes(t);
48
+ }), { downloadParser: Y, loading: Ce } = r(), X = re(() => K ? K.filter((e) => {
49
+ if (F && e.type !== F || I && e.status !== I) return !1;
50
+ if (L) {
51
+ let t = L.toLowerCase(), n = e.name?.toLowerCase().includes(t), r = e.description?.toLowerCase().includes(t), i = e.inputSinkKey?.toLowerCase().includes(t), a = e.outputKey?.toLowerCase().includes(t);
49
52
  if (!n && !r && !i && !a) return !1;
50
53
  }
51
54
  return !0;
52
55
  }) : [], [
53
56
  K,
54
- N,
55
- P,
56
- F
57
- ]), me = c((e) => {
58
- I(e === "all" ? null : e);
59
- }, [I]), he = c((e) => {
60
- L(e === "all" ? null : e);
61
- }, [L]), ge = c((e) => {
62
- R(e.target.value);
63
- }, [R]), Z = c(() => {
64
- s(j ? `/dashboards/${j}/parsers/new` : "/parsers/new");
65
- }, [s, j]), _e = c((e) => {
66
- s(j ? `/dashboards/${j}/parsers/${e}` : `/parsers/${e}`);
67
- }, [s, j]), ve = c((e) => {
68
- s(j ? `/dashboards/${j}/parsers/${e}/edit` : `/parsers/${e}/edit`);
69
- }, [s, j]), ye = c(async (e) => {
70
- let t = await a({
57
+ F,
58
+ I,
59
+ L
60
+ ]), we = l((e) => {
61
+ R(e === "all" ? null : e);
62
+ }, [R]), Te = l((e) => {
63
+ z(e === "all" ? null : e);
64
+ }, [z]), Ee = l((e) => {
65
+ B(e.target.value);
66
+ }, [B]), Z = l(() => {
67
+ c(D ? `/dashboards/${D}/parsers/new` : "/parsers/new");
68
+ }, [c, D]), De = l((e) => {
69
+ c(D ? `/dashboards/${D}/parsers/${e}` : `/parsers/${e}`);
70
+ }, [c, D]), Oe = l((e) => {
71
+ c(D ? `/dashboards/${D}/parsers/${e}/edit` : `/parsers/${e}/edit`);
72
+ }, [c, D]), ke = l(async (e) => {
73
+ let t = await ee({
71
74
  title: "Delete parser?",
72
75
  message: "Are you sure you want to delete this parser?",
73
76
  okButtonTitle: "Delete",
74
77
  cancelButtonTitle: "Cancel"
75
78
  });
76
79
  if (t === null ? window.confirm("Are you sure you want to delete this parser?") : t) {
77
- ee("medium"), B(!0), H(e);
80
+ te("medium"), V(!0), H(e);
78
81
  try {
79
- await q(e), i() && o("success");
82
+ await q(e), a() && o("success");
80
83
  } catch {
81
- i() && o("error");
84
+ a() && o("error");
82
85
  } finally {
83
- B(!1), H(null);
86
+ V(!1), H(null);
84
87
  }
85
88
  }
86
- }, [q]), Q = c(() => {
87
- I(null), L(null), R("");
89
+ }, [q]), Q = l(() => {
90
+ R(null), z(null), B("");
88
91
  }, [
89
- I,
90
- L,
91
- R
92
- ]), be = c(async (e) => {
92
+ R,
93
+ z,
94
+ B
95
+ ]), Ae = l(async (e) => {
93
96
  let t = K.find((t) => t.id === e);
94
97
  t && await Y(e, t.name);
95
- }, [K, Y]), xe = c(() => {
98
+ }, [K, Y]), je = l(() => {
96
99
  U(!0);
97
- }, []), Se = c((e, t, n) => {
100
+ }, []), Me = l((e, t, n) => {
98
101
  J();
99
- }, [J]), $ = N !== null || P !== null || (F?.length ?? 0) > 0;
100
- return G ? /* @__PURE__ */ k("div", {
102
+ }, [J]), $ = F !== null || I !== null || (L?.length ?? 0) > 0;
103
+ return G ? /* @__PURE__ */ w("div", {
101
104
  style: { padding: "var(--space-pagePadding)" },
102
- children: /* @__PURE__ */ k(v, {
105
+ children: /* @__PURE__ */ w(me, {
103
106
  style: {
104
107
  borderColor: "var(--color-status-error-border)",
105
108
  backgroundColor: "var(--color-status-error-bgSubtle)"
106
109
  },
107
- children: /* @__PURE__ */ k(y, {
110
+ children: /* @__PURE__ */ w(he, {
108
111
  style: { padding: "var(--space-pagePadding)" },
109
- children: /* @__PURE__ */ A("div", {
112
+ children: /* @__PURE__ */ T("div", {
110
113
  style: {
111
114
  display: "flex",
112
115
  flexDirection: "column",
@@ -114,20 +117,20 @@ var le = [
114
117
  textAlign: "center"
115
118
  },
116
119
  children: [
117
- /* @__PURE__ */ k("div", {
120
+ /* @__PURE__ */ w("div", {
118
121
  style: {
119
122
  padding: "var(--space-controlGap)",
120
123
  borderRadius: "50%",
121
124
  backgroundColor: "var(--color-status-error-bgSubtle)",
122
125
  marginBottom: "var(--space-formGap)"
123
126
  },
124
- children: /* @__PURE__ */ k(f, { style: {
127
+ children: /* @__PURE__ */ w(ce, { style: {
125
128
  height: "var(--size-icon-xl)",
126
129
  width: "var(--size-icon-xl)",
127
130
  color: "var(--color-status-error-text)"
128
131
  } })
129
132
  }),
130
- /* @__PURE__ */ k("h3", {
133
+ /* @__PURE__ */ w("h3", {
131
134
  style: {
132
135
  fontSize: "var(--font-size-body-lg)",
133
136
  fontWeight: "var(--font-weight-medium)",
@@ -136,7 +139,7 @@ var le = [
136
139
  },
137
140
  children: "Failed to load Parsers"
138
141
  }),
139
- /* @__PURE__ */ k("p", {
142
+ /* @__PURE__ */ w("p", {
140
143
  style: {
141
144
  fontSize: "var(--font-size-body-sm)",
142
145
  color: "var(--color-text-secondary)",
@@ -144,7 +147,7 @@ var le = [
144
147
  },
145
148
  children: G.message
146
149
  }),
147
- /* @__PURE__ */ k(g, {
150
+ /* @__PURE__ */ w(p, {
148
151
  size: "sm",
149
152
  onClick: () => J(),
150
153
  children: "Try Again"
@@ -153,29 +156,32 @@ var le = [
153
156
  })
154
157
  })
155
158
  })
156
- }) : /* @__PURE__ */ A("div", {
159
+ }) : !k && !A ? /* @__PURE__ */ w(ae, {
160
+ title: "Access Denied",
161
+ description: "You don't have permission to view parsers."
162
+ }) : /* @__PURE__ */ T("div", {
157
163
  style: {
158
164
  minHeight: "100vh",
159
165
  backgroundColor: "var(--color-bg-canvas)"
160
166
  },
161
167
  children: [
162
- /* @__PURE__ */ A("div", {
168
+ /* @__PURE__ */ T("div", {
163
169
  className: "relative overflow-hidden border-b border-border-seam bg-gloss-card",
164
- children: [/* @__PURE__ */ k(oe, { intensity: "subtle" }), /* @__PURE__ */ k("div", {
170
+ children: [/* @__PURE__ */ w(fe, { intensity: "subtle" }), /* @__PURE__ */ w("div", {
165
171
  style: { padding: "var(--space-pagePadding)" },
166
- children: /* @__PURE__ */ A("div", {
172
+ children: /* @__PURE__ */ T("div", {
167
173
  style: {
168
174
  display: "flex",
169
175
  alignItems: "center",
170
176
  justifyContent: "space-between"
171
177
  },
172
- children: [/* @__PURE__ */ A("div", {
178
+ children: [/* @__PURE__ */ T("div", {
173
179
  style: {
174
180
  display: "flex",
175
181
  alignItems: "center",
176
182
  gap: "var(--space-formGap)"
177
183
  },
178
- children: [/* @__PURE__ */ k("div", {
184
+ children: [/* @__PURE__ */ w("div", {
179
185
  style: {
180
186
  display: "flex",
181
187
  height: "var(--size-controlHeight-lg)",
@@ -185,20 +191,20 @@ var le = [
185
191
  borderRadius: "var(--radius-card)",
186
192
  backgroundColor: "var(--color-action-primary-bg)"
187
193
  },
188
- children: /* @__PURE__ */ k(p, { style: {
194
+ children: /* @__PURE__ */ w(le, { style: {
189
195
  height: "var(--size-icon-lg)",
190
196
  width: "var(--size-icon-lg)",
191
197
  color: "var(--color-action-primary-text)"
192
198
  } })
193
- }), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("h1", {
199
+ }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("h1", {
194
200
  style: {
195
201
  fontSize: "var(--font-size-heading-h4)",
196
202
  fontWeight: "var(--font-weight-bold)",
197
203
  margin: 0,
198
204
  color: "var(--color-text-primary)"
199
205
  },
200
- children: /* @__PURE__ */ k(x, { children: "Data Parsers" })
201
- }), /* @__PURE__ */ k("p", {
206
+ children: /* @__PURE__ */ w(ge, { children: "Data Parsers" })
207
+ }), /* @__PURE__ */ w("p", {
202
208
  style: {
203
209
  fontSize: "var(--font-size-body-sm)",
204
210
  color: "var(--color-text-secondary)",
@@ -206,36 +212,36 @@ var le = [
206
212
  },
207
213
  children: "Transform and process data with JQ or JSONata expressions"
208
214
  })] })]
209
- }), /* @__PURE__ */ k(_, {
210
- primary: {
215
+ }), /* @__PURE__ */ w(m, {
216
+ primary: j ? {
211
217
  label: "Create Parser",
212
218
  onSelect: Z,
213
- icon: /* @__PURE__ */ k(m, { style: {
219
+ icon: /* @__PURE__ */ w(d, { style: {
214
220
  marginRight: "var(--space-iconGap)",
215
221
  height: "var(--size-icon-sm)",
216
222
  width: "var(--size-icon-sm)"
217
223
  } })
218
- },
219
- actions: [{
224
+ } : void 0,
225
+ actions: j ? [{
220
226
  label: "Import",
221
- onSelect: xe,
222
- icon: /* @__PURE__ */ k(ie, { style: {
227
+ onSelect: je,
228
+ icon: /* @__PURE__ */ w(de, { style: {
223
229
  height: "var(--size-icon-sm)",
224
230
  width: "var(--size-icon-sm)"
225
231
  } })
226
- }]
232
+ }] : []
227
233
  })]
228
234
  })
229
235
  })]
230
236
  }),
231
- /* @__PURE__ */ A("div", {
237
+ /* @__PURE__ */ T("div", {
232
238
  style: { padding: "var(--space-pagePadding)" },
233
239
  children: [
234
- /* @__PURE__ */ k(se, {
240
+ /* @__PURE__ */ w(v, {
235
241
  className: "mb-[var(--space-sectionGap)]",
236
242
  children: "Parsers define how raw input — log lines, CSVs, JSON, or arbitrary text — is read and mapped into structured fields. Build a parser once, test it against a sample, then reuse it across pipelines so every source lands in a consistent, queryable shape."
237
243
  }),
238
- /* @__PURE__ */ A("div", {
244
+ /* @__PURE__ */ T("div", {
239
245
  style: {
240
246
  display: "flex",
241
247
  alignItems: "center",
@@ -244,13 +250,13 @@ var le = [
244
250
  flexWrap: "wrap"
245
251
  },
246
252
  children: [
247
- /* @__PURE__ */ A("div", {
253
+ /* @__PURE__ */ T("div", {
248
254
  style: {
249
255
  position: "relative",
250
256
  maxWidth: "400px",
251
257
  flex: 1
252
258
  },
253
- children: [/* @__PURE__ */ k(re, { style: {
259
+ children: [/* @__PURE__ */ w(ue, { style: {
254
260
  position: "absolute",
255
261
  left: "var(--space-controlGap)",
256
262
  top: "50%",
@@ -258,50 +264,50 @@ var le = [
258
264
  height: "var(--size-icon-sm)",
259
265
  width: "var(--size-icon-sm)",
260
266
  color: "var(--color-text-muted)"
261
- } }), /* @__PURE__ */ k(C, {
267
+ } }), /* @__PURE__ */ w(_, {
262
268
  type: "text",
263
269
  placeholder: "Search parsers...",
264
- value: F || "",
265
- onChange: ge,
270
+ value: L || "",
271
+ onChange: Ee,
266
272
  style: {
267
273
  paddingLeft: "var(--size-controlHeight-md)",
268
274
  height: "var(--size-controlHeight-md)"
269
275
  }
270
276
  })]
271
277
  }),
272
- /* @__PURE__ */ A(w, {
273
- value: N || "all",
274
- onValueChange: me,
275
- children: [/* @__PURE__ */ k(D, {
278
+ /* @__PURE__ */ T(y, {
279
+ value: F || "all",
280
+ onValueChange: we,
281
+ children: [/* @__PURE__ */ w(S, {
276
282
  style: { width: "150px" },
277
- children: /* @__PURE__ */ k(O, { placeholder: "All Types" })
278
- }), /* @__PURE__ */ k(T, { children: le.map((e) => /* @__PURE__ */ k(E, {
283
+ children: /* @__PURE__ */ w(C, { placeholder: "All Types" })
284
+ }), /* @__PURE__ */ w(b, { children: ve.map((e) => /* @__PURE__ */ w(x, {
279
285
  value: e.value,
280
286
  children: e.label
281
287
  }, e.value)) })]
282
288
  }),
283
- /* @__PURE__ */ A(w, {
284
- value: P || "all",
285
- onValueChange: he,
286
- children: [/* @__PURE__ */ k(D, {
289
+ /* @__PURE__ */ T(y, {
290
+ value: I || "all",
291
+ onValueChange: Te,
292
+ children: [/* @__PURE__ */ w(S, {
287
293
  style: { width: "150px" },
288
- children: /* @__PURE__ */ k(O, { placeholder: "All Status" })
289
- }), /* @__PURE__ */ k(T, { children: ue.map((e) => /* @__PURE__ */ k(E, {
294
+ children: /* @__PURE__ */ w(C, { placeholder: "All Status" })
295
+ }), /* @__PURE__ */ w(b, { children: ye.map((e) => /* @__PURE__ */ w(x, {
290
296
  value: e.value,
291
297
  children: e.label
292
298
  }, e.value)) })]
293
299
  }),
294
- $ && /* @__PURE__ */ A(g, {
300
+ $ && /* @__PURE__ */ T(p, {
295
301
  variant: "ghost",
296
302
  size: "sm",
297
303
  onClick: Q,
298
- children: [/* @__PURE__ */ k(ae, { style: {
304
+ children: [/* @__PURE__ */ w(f, { style: {
299
305
  marginRight: "var(--space-iconGap)",
300
306
  height: "var(--size-icon-sm)",
301
307
  width: "var(--size-icon-sm)"
302
308
  } }), "Clear Filters"]
303
309
  }),
304
- /* @__PURE__ */ A(h, {
310
+ /* @__PURE__ */ T(pe, {
305
311
  variant: "secondary",
306
312
  style: { marginLeft: "auto" },
307
313
  children: [
@@ -312,20 +318,20 @@ var le = [
312
318
  })
313
319
  ]
314
320
  }),
315
- W && /* @__PURE__ */ k("div", {
321
+ W && /* @__PURE__ */ w("div", {
316
322
  style: {
317
323
  display: "flex",
318
324
  alignItems: "center",
319
325
  justifyContent: "center",
320
326
  padding: "80px 0"
321
327
  },
322
- children: /* @__PURE__ */ A("div", {
328
+ children: /* @__PURE__ */ T("div", {
323
329
  style: { textAlign: "center" },
324
- children: [/* @__PURE__ */ k(ce, { style: {
330
+ children: [/* @__PURE__ */ w(_e, { style: {
325
331
  height: "var(--size-icon-xl)",
326
332
  width: "var(--size-icon-xl)",
327
333
  margin: "0 auto var(--space-formGap)"
328
- } }), /* @__PURE__ */ k("p", {
334
+ } }), /* @__PURE__ */ w("p", {
329
335
  style: {
330
336
  fontSize: "var(--font-size-body-sm)",
331
337
  color: "var(--color-text-muted)"
@@ -334,31 +340,35 @@ var le = [
334
340
  })]
335
341
  })
336
342
  }),
337
- !W && X.length === 0 && !$ && /* @__PURE__ */ k(b, {
343
+ !W && X.length === 0 && !$ && /* @__PURE__ */ w(h, {
338
344
  treatment: "insight",
339
345
  className: "border-border-seam",
340
- children: /* @__PURE__ */ k(S, {
346
+ children: /* @__PURE__ */ w(g, {
341
347
  illustration: "empty-data",
342
348
  title: "No Parsers yet",
343
349
  description: "Create your first parser to start transforming data with JQ or JSONata.",
344
- action: /* @__PURE__ */ A(g, {
345
- onClick: Z,
346
- children: [/* @__PURE__ */ k(m, { style: {
347
- marginRight: "var(--space-iconGap)",
348
- height: "var(--size-icon-sm)",
349
- width: "var(--size-icon-sm)"
350
- } }), "Create Parser"]
350
+ action: /* @__PURE__ */ w(oe, {
351
+ permission: i.PARSER_CREATE,
352
+ deniedBehavior: "disable",
353
+ children: /* @__PURE__ */ T(p, {
354
+ onClick: Z,
355
+ children: [/* @__PURE__ */ w(d, { style: {
356
+ marginRight: "var(--space-iconGap)",
357
+ height: "var(--size-icon-sm)",
358
+ width: "var(--size-icon-sm)"
359
+ } }), "Create Parser"]
360
+ })
351
361
  })
352
362
  })
353
363
  }),
354
- !W && X.length === 0 && $ && /* @__PURE__ */ k(b, {
364
+ !W && X.length === 0 && $ && /* @__PURE__ */ w(h, {
355
365
  treatment: "insight",
356
366
  className: "border-border-seam",
357
- children: /* @__PURE__ */ k(S, {
367
+ children: /* @__PURE__ */ w(g, {
358
368
  illustration: "empty-search",
359
369
  title: "No matching parsers",
360
370
  description: "No parsers match your filters",
361
- action: /* @__PURE__ */ k(g, {
371
+ action: /* @__PURE__ */ w(p, {
362
372
  variant: "ghost",
363
373
  size: "sm",
364
374
  onClick: Q,
@@ -366,33 +376,33 @@ var le = [
366
376
  })
367
377
  })
368
378
  }),
369
- !W && X.length > 0 && /* @__PURE__ */ k("div", {
379
+ !W && X.length > 0 && /* @__PURE__ */ w("div", {
370
380
  style: {
371
381
  display: "grid",
372
382
  gridTemplateColumns: "repeat(auto-fill, minmax(320px, 1fr))",
373
383
  gap: "var(--space-formGap)"
374
384
  },
375
- children: X.map((e) => /* @__PURE__ */ k(te, {
385
+ children: X.map((e) => /* @__PURE__ */ w(ne, {
376
386
  parser: e,
377
- onView: _e,
378
- onEdit: ve,
379
- onExport: be,
380
- onDelete: ye,
381
- isDeleting: z && V === e.id
387
+ onView: De,
388
+ onEdit: M ? Oe : void 0,
389
+ onExport: Ae,
390
+ onDelete: N ? ke : void 0,
391
+ isDeleting: be && xe === e.id
382
392
  }, e.id))
383
393
  })
384
394
  ]
385
395
  }),
386
- /* @__PURE__ */ k(ne, {
387
- isOpen: fe,
396
+ /* @__PURE__ */ w(s, {
397
+ isOpen: Se,
388
398
  onClose: () => U(!1),
389
- consoleId: M,
390
- onSuccess: Se
399
+ consoleId: P,
400
+ onSuccess: Me
391
401
  })
392
402
  ]
393
403
  });
394
404
  });
395
405
  //#endregion
396
- export { j as DataParsersPage, j as default };
406
+ export { D as DataParsersPage, D as default };
397
407
 
398
408
  //# sourceMappingURL=DataParsersPage.js.map