@burdenoff/microfe-bigconsole 2026.805.1 → 2026.805.3

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