@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
@@ -2,12 +2,16 @@ import { usePipelineStore as e } from "../store/pipelineStore.js";
2
2
  import { useAppNavigate as t } from "../contexts/NavigationContext.js";
3
3
  import "../contexts/index.js";
4
4
  import n from "../hooks/usePipelineOperations.js";
5
- import { isNative as r, nativeNotify as i } from "../../utils/nativeBridge.js";
6
- import a from "../components/pipeline/PipelineStatusBadge.js";
7
- import o from "../components/pipeline/PipelineDeleteDialog.js";
5
+ import { BIGCONSOLE_PERMISSIONS as r } from "../../constants/permissions.js";
6
+ import { isNative as i, nativeNotify as a } from "../../utils/nativeBridge.js";
7
+ import o from "../components/pipeline/PipelineStatusBadge.js";
8
+ import ee from "../components/pipeline/PipelineDeleteDialog.js";
8
9
  import { memo as s, useCallback as c, useEffect as l, useState as u } from "react";
9
- import { useParams as d, useSearchParams as f } from "react-router";
10
- import { GlassCard as p, IllustratedEmptyState as m, NextSteps as h, PagePurpose as g } from "@burdenoff/fe-libs/ui";
10
+ import { useParams as te, useSearchParams as ne } from "react-router";
11
+ import { AccessDenied as d } from "@burdenoff/fe-libs/shared/components";
12
+ import { usePermissions as f } from "@burdenoff/fe-libs/shared/providers/shell";
13
+ import { useI18n as p } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
14
+ import { GlassCard as m, IllustratedEmptyState as h, NextSteps as g, PagePurpose as re } from "@burdenoff/fe-libs/ui";
11
15
  import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
12
16
  //#region src/bigconsole/pages/PipelineViewPage.tsx
13
17
  var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
@@ -93,63 +97,63 @@ var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
93
97
  d: "M14 5l7 7m0 0l-7 7m7-7H3"
94
98
  })
95
99
  }), D = ({ handling: e }) => {
96
- let t = {
100
+ let { t } = p(), n = {
97
101
  fail: {
98
- label: "Fail",
102
+ label: t("bigconsole.pipelines.view.errorHandlingFail", "Fail"),
99
103
  className: "bg-status-error-bg/10 text-status-error-text"
100
104
  },
101
105
  skip: {
102
- label: "Skip",
106
+ label: t("bigconsole.pipelines.view.errorHandlingSkip", "Skip"),
103
107
  className: "bg-status-warning-bg/10 text-status-warning-text"
104
108
  },
105
109
  fallback: {
106
- label: "Fallback",
110
+ label: t("bigconsole.pipelines.view.errorHandlingFallback", "Fallback"),
107
111
  className: "bg-action-primary-bg/10 text-action-primary-bg"
108
112
  }
109
- }, n = t[e] || t.fail;
113
+ }, r = n[e] || n.fail;
110
114
  return /* @__PURE__ */ v("span", {
111
- className: `px-1.5 py-0.5 text-xs font-medium rounded ${n.className}`,
112
- children: n.label
115
+ className: `px-1.5 py-0.5 text-xs font-medium rounded ${r.className}`,
116
+ children: r.label
113
117
  });
114
118
  }, O = s(function() {
115
- let { pipelineId: s } = d(), O = t(), k = "default", [A] = f(), [j, M] = u(null), [N, P] = u("{\n \"data\": \"sample\"\n}"), [F, I] = u(null), [L, R] = u(A.get("test") === "true"), z = e((e) => e.deleteDialogOpen), B = e((e) => e.openDeleteDialog), V = e((e) => e.closeDeleteDialog), { loading: H, error: U, fetchPipeline: W, deletePipeline: G, testPipeline: K } = n({
116
- consoleId: k,
119
+ let { pipelineId: s } = te(), O = t(), { t: k } = p(), A = "default", [ie] = ne(), { hasPermission: j, isLoading: ae } = f(), M = j(r.PIPELINE_READ), N = j(r.PIPELINE_UPDATE), P = j(r.PIPELINE_DELETE), F = j(r.PIPELINE_TEST), [I, L] = u(null), [R, z] = u("{\n \"data\": \"sample\"\n}"), [B, V] = u(null), [H, U] = u(ie.get("test") === "true"), W = e((e) => e.deleteDialogOpen), G = e((e) => e.openDeleteDialog), K = e((e) => e.closeDeleteDialog), { loading: q, error: J, fetchPipeline: Y, deletePipeline: X, testPipeline: Z } = n({
120
+ consoleId: A,
117
121
  skipFetch: !0
118
122
  });
119
123
  l(() => {
120
- s && W(s).then((e) => {
121
- e && M(e);
124
+ s && Y(s).then((e) => {
125
+ e && L(e);
122
126
  });
123
- }, [s, W]);
124
- let q = c(() => {
127
+ }, [s, Y]);
128
+ let Q = c(() => {
125
129
  O("/pipelines");
126
- }, [O]), J = c(() => {
130
+ }, [O]), $ = c(() => {
127
131
  O(`/pipelines/${s}/edit`);
128
- }, [O, s]), Y = c(() => {
129
- j && B(j);
130
- }, [j, B]), X = c(async () => {
131
- j && (await G(j.id) ? (r() && i("success"), V(), O("/pipelines")) : r() && i("error"));
132
+ }, [O, s]), oe = c(() => {
133
+ I && G(I);
134
+ }, [I, G]), se = c(async () => {
135
+ I && (await X(I.id) ? (i() && a("success"), K(), O("/pipelines")) : i() && a("error"));
132
136
  }, [
133
- j,
134
- G,
135
- V,
137
+ I,
138
+ X,
139
+ K,
136
140
  O
137
- ]), Z = c((e) => {
138
- O(`/dashboards/${k}/parsers/${e}`);
139
- }, [O, k]), Q = c(async () => {
140
- if (j) try {
141
- let e = await K({
142
- pipelineId: j.id,
143
- inputData: N
141
+ ]), ce = c((e) => {
142
+ O(`/dashboards/${A}/parsers/${e}`);
143
+ }, [O, A]), le = c(async () => {
144
+ if (I) try {
145
+ let e = await Z({
146
+ pipelineId: I.id,
147
+ inputData: R
144
148
  });
145
- e && I(e);
149
+ e && V(e);
146
150
  } catch {}
147
151
  }, [
148
- j,
149
- K,
150
- N
152
+ I,
153
+ Z,
154
+ R
151
155
  ]);
152
- return H && !j ? /* @__PURE__ */ v("div", {
156
+ return q && !I ? /* @__PURE__ */ v("div", {
153
157
  className: "p-6",
154
158
  children: /* @__PURE__ */ y("div", {
155
159
  className: "flex flex-col items-center justify-center py-16",
@@ -171,10 +175,13 @@ var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
171
175
  })]
172
176
  }), /* @__PURE__ */ v("p", {
173
177
  className: "text-sm text-text-secondary",
174
- children: "Loading Pipeline..."
178
+ children: k("bigconsole.pipelines.view.loading", "Loading Pipeline...")
175
179
  })]
176
180
  })
177
- }) : U ? /* @__PURE__ */ v("div", {
181
+ }) : !ae && !M ? /* @__PURE__ */ v(d, {
182
+ title: k("bigconsole.pipelines.errors.accessDeniedTitle", "Access Denied"),
183
+ description: k("bigconsole.pipelines.errors.accessDeniedViewDescription", "You don't have permission to view this pipeline.")
184
+ }) : J ? /* @__PURE__ */ v("div", {
178
185
  className: "p-6",
179
186
  children: /* @__PURE__ */ y("div", {
180
187
  className: "flex flex-col items-center justify-center py-16 text-center",
@@ -185,21 +192,21 @@ var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
185
192
  }),
186
193
  /* @__PURE__ */ v("h3", {
187
194
  className: "text-lg font-medium text-text-primary mb-2",
188
- children: "Failed to load Pipeline"
195
+ children: k("bigconsole.pipelines.view.loadError", "Failed to load Pipeline")
189
196
  }),
190
197
  /* @__PURE__ */ v("p", {
191
198
  className: "text-sm text-text-secondary mb-4",
192
- children: U.message
199
+ children: J.message
193
200
  }),
194
201
  /* @__PURE__ */ v("button", {
195
202
  type: "button",
196
- onClick: q,
203
+ onClick: Q,
197
204
  className: "px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors",
198
- children: "Back to Pipelines"
205
+ children: k("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")
199
206
  })
200
207
  ]
201
208
  })
202
- }) : j ? /* @__PURE__ */ y("div", {
209
+ }) : I ? /* @__PURE__ */ y("div", {
203
210
  className: "p-6",
204
211
  children: [
205
212
  /* @__PURE__ */ y("div", {
@@ -208,66 +215,68 @@ var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
208
215
  className: "flex items-center gap-4",
209
216
  children: [/* @__PURE__ */ v("button", {
210
217
  type: "button",
211
- onClick: q,
218
+ onClick: Q,
212
219
  className: "p-2 text-text-secondary hover:text-text-primary hover:bg-bg-sunken rounded-md transition-colors",
213
220
  children: /* @__PURE__ */ v(b, { className: "w-5 h-5" })
214
221
  }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ y("div", {
215
222
  className: "flex items-center gap-3",
216
223
  children: [/* @__PURE__ */ v("h1", {
217
224
  className: "text-2xl font-bold text-text-primary",
218
- children: j.name
219
- }), /* @__PURE__ */ v(a, { status: j.status })]
220
- }), j.description && /* @__PURE__ */ v("p", {
225
+ children: I.name
226
+ }), /* @__PURE__ */ v(o, { status: I.status })]
227
+ }), I.description && /* @__PURE__ */ v("p", {
221
228
  className: "text-sm text-text-secondary mt-1",
222
- children: j.description
229
+ children: I.description
223
230
  })] })]
224
231
  }), /* @__PURE__ */ y("div", {
225
232
  className: "flex items-center gap-2",
226
233
  children: [
227
234
  /* @__PURE__ */ y("button", {
228
235
  type: "button",
229
- onClick: () => R(!L),
230
- className: "inline-flex items-center gap-2 px-3 py-2 text-sm font-medium text-status-success-text bg-status-success-bg/10 hover:bg-status-success-bg/20 rounded-md transition-colors",
231
- children: [/* @__PURE__ */ v(C, { className: "w-4 h-4" }), "Test"]
236
+ onClick: () => U(!H),
237
+ disabled: !F,
238
+ className: "inline-flex items-center gap-2 px-3 py-2 text-sm font-medium text-status-success-text bg-status-success-bg/10 hover:bg-status-success-bg/20 rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
239
+ children: [/* @__PURE__ */ v(C, { className: "w-4 h-4" }), k("bigconsole.pipelines.actions.test", "Test")]
232
240
  }),
233
241
  /* @__PURE__ */ y("button", {
234
242
  type: "button",
235
- onClick: J,
236
- className: "inline-flex items-center gap-2 px-3 py-2 text-sm font-medium text-text-primary bg-bg-sunken hover:bg-border-default rounded-md transition-colors",
237
- children: [/* @__PURE__ */ v(x, { className: "w-4 h-4" }), "Edit"]
243
+ onClick: $,
244
+ disabled: !N,
245
+ className: "inline-flex items-center gap-2 px-3 py-2 text-sm font-medium text-text-primary bg-bg-sunken hover:bg-border-default rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
246
+ children: [/* @__PURE__ */ v(x, { className: "w-4 h-4" }), k("bigconsole.pipelines.actions.edit", "Edit")]
238
247
  }),
239
- /* @__PURE__ */ y("button", {
248
+ P && /* @__PURE__ */ y("button", {
240
249
  type: "button",
241
- onClick: Y,
250
+ onClick: oe,
242
251
  className: "inline-flex items-center gap-2 px-3 py-2 text-sm font-medium text-status-error-text bg-status-error-bg/10 hover:bg-status-error-bg/20 rounded-md transition-colors",
243
- children: [/* @__PURE__ */ v(S, { className: "w-4 h-4" }), "Delete"]
252
+ children: [/* @__PURE__ */ v(S, { className: "w-4 h-4" }), k("bigconsole.pipelines.actions.delete", "Delete")]
244
253
  })
245
254
  ]
246
255
  })]
247
256
  }),
248
- /* @__PURE__ */ v(g, {
257
+ /* @__PURE__ */ v(re, {
249
258
  className: "mb-6",
250
- children: "A pipeline chains parsers and a data sink into a repeatable flow. Review its stages here, test it with sample input to confirm the output, then edit the stages or run it to process real data into the connected sink."
259
+ children: k("bigconsole.pipelines.view.purpose", "A pipeline chains parsers and a data sink into a repeatable flow. Review its stages here, test it with sample input to confirm the output, then edit the stages or run it to process real data into the connected sink.")
251
260
  }),
252
- /* @__PURE__ */ v(h, {
261
+ /* @__PURE__ */ v(g, {
253
262
  storageKey: "bigconsole-pipeline-view",
254
263
  steps: [
255
- {
264
+ ...F ? [{
256
265
  id: "test",
257
- label: "Test with sample input",
258
- description: "Run the pipeline against a sample to verify each stage.",
259
- onClick: () => R(!0)
260
- },
261
- {
266
+ label: k("bigconsole.pipelines.view.nextStepTestLabel", "Test with sample input"),
267
+ description: k("bigconsole.pipelines.view.nextStepTestDescription", "Run the pipeline against a sample to verify each stage."),
268
+ onClick: () => U(!0)
269
+ }] : [],
270
+ ...N ? [{
262
271
  id: "edit",
263
- label: "Edit the stages",
264
- description: "Add, reorder, or configure the parsers in this pipeline.",
265
- onClick: J
266
- },
272
+ label: k("bigconsole.pipelines.view.nextStepEditLabel", "Edit the stages"),
273
+ description: k("bigconsole.pipelines.view.nextStepEditDescription", "Add, reorder, or configure the parsers in this pipeline."),
274
+ onClick: $
275
+ }] : [],
267
276
  {
268
277
  id: "sinks",
269
- label: "Review the target data sink",
270
- description: "See where the processed data lands.",
278
+ label: k("bigconsole.pipelines.view.nextStepSinksLabel", "Review the target data sink"),
279
+ description: k("bigconsole.pipelines.view.nextStepSinksDescription", "See where the processed data lands."),
271
280
  onClick: () => O("/datasinks")
272
281
  }
273
282
  ]
@@ -276,24 +285,20 @@ var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
276
285
  className: "grid grid-cols-1 lg:grid-cols-3 gap-6",
277
286
  children: [/* @__PURE__ */ y("div", {
278
287
  className: "lg:col-span-2 space-y-6",
279
- children: [/* @__PURE__ */ y(p, {
288
+ children: [/* @__PURE__ */ y(m, {
280
289
  treatment: "glass",
281
290
  glow: !0,
282
291
  className: "p-6",
283
- children: [/* @__PURE__ */ y("h2", {
292
+ children: [/* @__PURE__ */ v("h2", {
284
293
  className: "text-lg font-semibold text-text-primary mb-4",
285
- children: [
286
- "Pipeline Stages (",
287
- j.stages?.length || 0,
288
- ")"
289
- ]
290
- }), !j.stages || j.stages.length === 0 ? /* @__PURE__ */ v(m, {
294
+ children: k("bigconsole.pipelines.view.stagesHeading", "Pipeline Stages ({{count}})", { count: I.stages?.length || 0 })
295
+ }), !I.stages || I.stages.length === 0 ? /* @__PURE__ */ v(h, {
291
296
  illustration: "empty-generic",
292
- title: "No stages defined",
293
- description: "Edit the pipeline to add parser stages."
297
+ title: k("bigconsole.pipelines.view.noStagesTitle", "No stages defined"),
298
+ description: k("bigconsole.pipelines.view.noStagesDescription", "Edit the pipeline to add parser stages.")
294
299
  }) : /* @__PURE__ */ v("div", {
295
300
  className: "space-y-3",
296
- children: j.stages.map((e, t) => /* @__PURE__ */ y("div", {
301
+ children: I.stages.map((e, t) => /* @__PURE__ */ y("div", {
297
302
  className: "flex items-center gap-3",
298
303
  children: [/* @__PURE__ */ y("div", {
299
304
  className: `
@@ -312,7 +317,7 @@ var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
312
317
  }),
313
318
  /* @__PURE__ */ v("span", {
314
319
  className: "font-medium text-text-primary",
315
- children: e.parserName || `Stage ${t + 1}`
320
+ children: e.parserName || k("bigconsole.pipelines.view.stageFallbackName", "Stage {{number}}", { number: t + 1 })
316
321
  }),
317
322
  e.parserType && /* @__PURE__ */ v("span", {
318
323
  className: "px-1.5 py-0.5 text-xs font-medium bg-bg-sunken text-text-secondary rounded",
@@ -323,7 +328,7 @@ var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
323
328
  className: "flex items-center gap-2",
324
329
  children: [/* @__PURE__ */ v(D, { handling: e.onError }), !e.enabled && /* @__PURE__ */ v("span", {
325
330
  className: "px-1.5 py-0.5 text-xs font-medium bg-bg-sunken text-text-secondary rounded",
326
- children: "Disabled"
331
+ children: k("bigconsole.pipelines.view.stageDisabled", "Disabled")
327
332
  })]
328
333
  })]
329
334
  }),
@@ -347,73 +352,73 @@ var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
347
352
  }),
348
353
  e.parserId && /* @__PURE__ */ v("button", {
349
354
  type: "button",
350
- onClick: () => Z(e.parserId),
355
+ onClick: () => ce(e.parserId),
351
356
  className: "mt-2 text-xs text-action-primary-bg hover:underline",
352
- children: "View Parser"
357
+ children: k("bigconsole.pipelines.view.viewParser", "View Parser")
353
358
  })
354
359
  ]
355
- }), t < (j.stages?.length || 0) - 1 && /* @__PURE__ */ v(E, { className: "w-5 h-5 text-text-secondary flex-shrink-0 hidden md:block" })]
360
+ }), t < (I.stages?.length || 0) - 1 && /* @__PURE__ */ v(E, { className: "w-5 h-5 text-text-secondary flex-shrink-0 hidden md:block" })]
356
361
  }, e.id))
357
362
  })]
358
- }), L && /* @__PURE__ */ y("div", {
363
+ }), H && /* @__PURE__ */ y("div", {
359
364
  className: "bg-bg-surface border border-border-default rounded-lg p-6",
360
365
  children: [/* @__PURE__ */ v("h2", {
361
366
  className: "text-lg font-semibold text-text-primary mb-4",
362
- children: "Test Pipeline"
367
+ children: k("bigconsole.pipelines.view.testPanelHeading", "Test Pipeline")
363
368
  }), /* @__PURE__ */ y("div", {
364
369
  className: "space-y-4",
365
370
  children: [
366
371
  /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
367
372
  className: "block text-sm font-medium text-text-primary mb-2",
368
- children: "Input JSON"
373
+ children: k("bigconsole.pipelines.view.inputJsonLabel", "Input JSON")
369
374
  }), /* @__PURE__ */ v("textarea", {
370
- value: N,
371
- onChange: (e) => P(e.target.value),
375
+ value: R,
376
+ onChange: (e) => z(e.target.value),
372
377
  className: "w-full h-32 px-3 py-2 text-sm font-mono text-text-primary bg-bg-sunken border border-border-default rounded-md focus:outline-none focus:ring-2 focus:ring-action-primary-bg resize-none",
373
378
  placeholder: "{\"key\": \"value\"}"
374
379
  })] }),
375
380
  /* @__PURE__ */ y("button", {
376
381
  type: "button",
377
- onClick: Q,
378
- disabled: H,
379
- className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors disabled:opacity-50",
380
- children: [/* @__PURE__ */ v(C, { className: "w-4 h-4" }), H ? "Running..." : "Run Test"]
382
+ onClick: le,
383
+ disabled: q || !F,
384
+ className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors disabled:opacity-50 disabled:cursor-not-allowed",
385
+ children: [/* @__PURE__ */ v(C, { className: "w-4 h-4" }), q ? k("bigconsole.pipelines.view.testRunning", "Running...") : k("bigconsole.pipelines.view.runTest", "Run Test")]
381
386
  }),
382
- F && /* @__PURE__ */ y("div", {
387
+ B && /* @__PURE__ */ y("div", {
383
388
  className: "mt-4",
384
389
  children: [
385
390
  /* @__PURE__ */ y("div", {
386
391
  className: "flex items-center gap-2 mb-2",
387
- children: [F.status === "completed" ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(T, { className: "w-4 h-4 text-status-success-text" }), /* @__PURE__ */ v("span", {
392
+ children: [B.status === "completed" ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(T, { className: "w-4 h-4 text-status-success-text" }), /* @__PURE__ */ v("span", {
388
393
  className: "text-sm font-medium text-status-success-text",
389
- children: "Test Passed"
394
+ children: k("bigconsole.pipelines.view.testPassed", "Test Passed")
390
395
  })] }) : /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(w, { className: "w-4 h-4 text-status-error-text" }), /* @__PURE__ */ v("span", {
391
396
  className: "text-sm font-medium text-status-error-text",
392
- children: "Test Failed"
393
- })] }), F.totalExecutionTimeMs && /* @__PURE__ */ y("span", {
397
+ children: k("bigconsole.pipelines.view.testFailed", "Test Failed")
398
+ })] }), B.totalExecutionTimeMs && /* @__PURE__ */ y("span", {
394
399
  className: "text-xs text-text-secondary",
395
400
  children: [
396
401
  "(",
397
- F.totalExecutionTimeMs,
402
+ B.totalExecutionTimeMs,
398
403
  "ms)"
399
404
  ]
400
405
  })]
401
406
  }),
402
407
  /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("label", {
403
408
  className: "block text-sm font-medium text-text-primary mb-2",
404
- children: "Output"
409
+ children: k("bigconsole.pipelines.view.outputLabel", "Output")
405
410
  }), /* @__PURE__ */ v("pre", {
406
411
  className: "w-full p-3 text-xs font-mono text-text-primary bg-bg-sunken border border-border-default rounded-md overflow-auto max-h-48",
407
- children: JSON.stringify(F.outputData, null, 2) || "null"
412
+ children: JSON.stringify(B.outputData, null, 2) || "null"
408
413
  })] }),
409
- F.error && /* @__PURE__ */ y("div", {
414
+ B.error && /* @__PURE__ */ y("div", {
410
415
  className: "mt-2",
411
416
  children: [/* @__PURE__ */ v("label", {
412
417
  className: "block text-sm font-medium text-status-error-text mb-2",
413
- children: "Error"
418
+ children: k("bigconsole.pipelines.view.errorLabel", "Error")
414
419
  }), /* @__PURE__ */ v("pre", {
415
420
  className: "w-full p-3 text-xs font-mono text-status-error-text bg-status-error-bg/10 border border-status-error-border/20 rounded-md overflow-auto",
416
- children: F.error
421
+ children: B.error
417
422
  })]
418
423
  })
419
424
  ]
@@ -427,75 +432,75 @@ var b = ({ className: e }) => /* @__PURE__ */ v("svg", {
427
432
  className: "bg-bg-surface border border-border-default rounded-lg p-6",
428
433
  children: [/* @__PURE__ */ v("h2", {
429
434
  className: "text-lg font-semibold text-text-primary mb-4",
430
- children: "Details"
435
+ children: k("bigconsole.pipelines.view.detailsHeading", "Details")
431
436
  }), /* @__PURE__ */ y("dl", {
432
437
  className: "space-y-3",
433
438
  children: [
434
439
  /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
435
440
  className: "text-xs text-text-secondary",
436
- children: "Status"
441
+ children: k("bigconsole.pipelines.view.detailStatus", "Status")
437
442
  }), /* @__PURE__ */ v("dd", {
438
443
  className: "mt-1",
439
- children: /* @__PURE__ */ v(a, { status: j.status })
444
+ children: /* @__PURE__ */ v(o, { status: I.status })
440
445
  })] }),
441
446
  /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
442
447
  className: "text-xs text-text-secondary",
443
- children: "Stages"
448
+ children: k("bigconsole.pipelines.view.detailStages", "Stages")
444
449
  }), /* @__PURE__ */ v("dd", {
445
450
  className: "text-sm text-text-primary",
446
- children: j.stages?.length || 0
451
+ children: I.stages?.length || 0
447
452
  })] }),
448
453
  /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
449
454
  className: "text-xs text-text-secondary",
450
- children: "Last Executed"
455
+ children: k("bigconsole.pipelines.view.detailLastExecuted", "Last Executed")
451
456
  }), /* @__PURE__ */ v("dd", {
452
457
  className: "text-sm text-text-primary",
453
- children: j.lastExecutedAt ? new Date(j.lastExecutedAt).toLocaleString() : "Never"
458
+ children: I.lastExecutedAt ? new Date(I.lastExecutedAt).toLocaleString() : k("bigconsole.pipelines.view.detailNever", "Never")
454
459
  })] }),
455
460
  /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
456
461
  className: "text-xs text-text-secondary",
457
- children: "Version"
462
+ children: k("bigconsole.pipelines.view.detailVersion", "Version")
458
463
  }), /* @__PURE__ */ v("dd", {
459
464
  className: "text-sm text-text-primary",
460
- children: j.version
465
+ children: I.version
461
466
  })] }),
462
467
  /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
463
468
  className: "text-xs text-text-secondary",
464
- children: "Created"
469
+ children: k("bigconsole.pipelines.view.detailCreated", "Created")
465
470
  }), /* @__PURE__ */ v("dd", {
466
471
  className: "text-sm text-text-primary",
467
- children: new Date(j.createdAt).toLocaleString()
472
+ children: new Date(I.createdAt).toLocaleString()
468
473
  })] }),
469
474
  /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("dt", {
470
475
  className: "text-xs text-text-secondary",
471
- children: "Updated"
476
+ children: k("bigconsole.pipelines.view.detailUpdated", "Updated")
472
477
  }), /* @__PURE__ */ v("dd", {
473
478
  className: "text-sm text-text-primary",
474
- children: new Date(j.updatedAt).toLocaleString()
479
+ children: new Date(I.updatedAt).toLocaleString()
475
480
  })] })
476
481
  ]
477
482
  })]
478
483
  })
479
484
  })]
480
485
  }),
481
- j && /* @__PURE__ */ v(o, {
482
- pipeline: j,
483
- isOpen: z,
484
- onClose: V,
485
- onConfirm: X
486
+ I && /* @__PURE__ */ v(ee, {
487
+ pipeline: I,
488
+ isOpen: W,
489
+ onClose: K,
490
+ onConfirm: se
486
491
  })
487
492
  ]
488
493
  }) : /* @__PURE__ */ v("div", {
489
494
  className: "p-6",
490
- children: /* @__PURE__ */ v(m, {
495
+ children: /* @__PURE__ */ v(h, {
491
496
  illustration: "empty-data",
492
- title: "Pipeline not found",
493
- description: "The pipeline you're looking for doesn't exist or has been deleted.",
497
+ title: k("bigconsole.pipelines.view.notFoundTitle", "Pipeline not found"),
498
+ description: k("bigconsole.pipelines.view.notFoundDescription", "The pipeline you're looking for doesn't exist or has been deleted."),
494
499
  action: /* @__PURE__ */ v("button", {
495
500
  type: "button",
496
- onClick: q,
501
+ onClick: Q,
497
502
  className: "px-4 py-2 text-sm font-medium text-action-primary-fg bg-action-primary-bg hover:bg-action-primary-bgHover rounded-md transition-colors",
498
- children: "Back to Pipelines"
503
+ children: k("bigconsole.pipelines.actions.backToPipelines", "Back to Pipelines")
499
504
  })
500
505
  })
501
506
  });