@burdenoff/microfe-bigconsole 2026.805.2 → 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 (134) hide show
  1. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +109 -113
  2. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
  3. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +115 -113
  4. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  5. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +71 -62
  6. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
  7. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +90 -89
  8. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
  9. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +56 -54
  10. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  11. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +126 -125
  12. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -1
  13. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +151 -150
  14. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
  15. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +77 -76
  16. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -1
  17. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +97 -96
  18. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  19. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +172 -191
  20. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  21. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +75 -83
  22. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +1 -1
  23. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +151 -154
  24. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -1
  25. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +181 -190
  26. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
  27. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -0
  28. package/dist/bigconsole/components/dashboard/WidgetPalette.js +110 -108
  29. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -1
  30. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +102 -103
  31. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
  32. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +36 -41
  33. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -1
  34. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +38 -37
  35. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -1
  36. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +113 -117
  37. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -1
  38. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +182 -197
  39. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  40. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +166 -168
  41. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -1
  42. package/dist/bigconsole/components/parser/DataSinkSelector.js +87 -86
  43. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -1
  44. package/dist/bigconsole/components/parser/ImportParserDialog.js +196 -211
  45. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  46. package/dist/bigconsole/components/parser/ParserSelector.js +130 -128
  47. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
  48. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +66 -63
  49. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
  50. package/dist/bigconsole/components/preview/AiPreviewPanel.js +95 -91
  51. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  52. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +222 -215
  53. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  54. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +149 -145
  55. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  56. package/dist/bigconsole/components/widgets/PropertiesPanel.js +504 -470
  57. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  58. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +44 -47
  59. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -1
  60. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +143 -142
  61. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -1
  62. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +101 -88
  63. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -1
  64. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +135 -134
  65. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -1
  66. package/dist/bigconsole/components/widgets/form/FormWidget.js +167 -159
  67. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +1 -1
  68. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +69 -68
  69. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -1
  70. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +64 -72
  71. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -1
  72. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +60 -59
  73. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -1
  74. package/dist/bigconsole/components/widgets/list/ListConfig.js +57 -56
  75. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -1
  76. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +70 -69
  77. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -1
  78. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +35 -34
  79. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -1
  80. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +20 -19
  81. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +1 -1
  82. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +178 -177
  83. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -1
  84. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +76 -75
  85. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -1
  86. package/dist/bigconsole/components/widgets/table/TableConfig.js +183 -168
  87. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -1
  88. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +187 -180
  89. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -1
  90. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +40 -38
  91. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -1
  92. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +150 -148
  93. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  94. package/dist/bigconsole/pages/DashboardBuilderPage.js +181 -176
  95. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  96. package/dist/bigconsole/pages/DashboardViewPage.js +196 -192
  97. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  98. package/dist/bigconsole/pages/DashboardsPage.js +223 -219
  99. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  100. package/dist/bigconsole/pages/DataParsersPage.js +167 -170
  101. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  102. package/dist/bigconsole/pages/DataSinkBuilderPage.js +204 -189
  103. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  104. package/dist/bigconsole/pages/DataSinkViewPage.js +175 -169
  105. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  106. package/dist/bigconsole/pages/DataSourcesPage.js +8 -7
  107. package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -1
  108. package/dist/bigconsole/pages/InsightsPage.js +238 -208
  109. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  110. package/dist/bigconsole/pages/ParserBuilderPage.js +464 -412
  111. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  112. package/dist/bigconsole/pages/ParserViewPage.js +92 -90
  113. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  114. package/dist/bigconsole/pages/PipelineBuilderPage.js +221 -194
  115. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  116. package/dist/bigconsole/pages/PipelineViewPage.js +181 -184
  117. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  118. package/dist/bigconsole/pages/PipelinesPage.js +128 -127
  119. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  120. package/dist/bigconsole/pages/SettingsPage.js +177 -172
  121. package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
  122. package/dist/bigconsole/pages/WidgetDemoPage.js +121 -83
  123. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  124. package/dist/bigconsole/pages/WorkflowViewPage.js +199 -193
  125. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  126. package/dist/bigconsole/pages/WorkflowsPage.js +129 -128
  127. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  128. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +111 -109
  129. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +1 -1
  130. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +127 -126
  131. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +1 -1
  132. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +103 -103
  133. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +1 -1
  134. package/package.json +2 -1
@@ -5,35 +5,36 @@ import { BIGCONSOLE_PERMISSIONS as n } from "../../constants/permissions.js";
5
5
  import { isNative as ee, nativeCopyText as te, nativeToast as ne } from "../../utils/nativeBridge.js";
6
6
  import r from "../components/datasink/CacheTTLSelector.js";
7
7
  import re from "../components/datasink/RefreshTypeSelector.js";
8
- import { memo as i, useCallback as a, useEffect as o, useMemo as ie, useState as s } from "react";
9
- import { useParams as c } from "react-router";
10
- import { AccessDenied as l, PermissionButton as u } from "@burdenoff/fe-libs/shared/components";
11
- import { usePermissions as ae } from "@burdenoff/fe-libs/shared/providers/shell";
12
- import { AlertCircle as d, ArrowLeft as oe, Check as se, Copy as ce, Database as f, Eye as p, Loader2 as m, Save as le, Settings as ue } from "lucide-react";
13
- import { Button as h, Card as g, CardContent as _, CardHeader as v, CardTitle as y, GlassCard as de, IllustratedEmptyState as fe, Input as b, Label as x, PagePurpose as pe, Textarea as S } from "@burdenoff/fe-libs/ui";
14
- import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
8
+ import { memo as i, useCallback as a, useEffect as o, useMemo as s, useState as c } from "react";
9
+ import { useParams as l } from "react-router";
10
+ import { AccessDenied as ie, PermissionButton as ae } from "@burdenoff/fe-libs/shared/components";
11
+ import { usePermissions as oe } from "@burdenoff/fe-libs/shared/providers/shell";
12
+ import { AlertCircle as u, ArrowLeft as se, Check as ce, Copy as le, Database as d, Eye as f, Loader2 as p, Save as ue, Settings as de } from "lucide-react";
13
+ import { useI18n as fe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
14
+ import { Button as m, Card as h, CardContent as g, CardHeader as _, CardTitle as v, GlassCard as pe, IllustratedEmptyState as me, Input as y, Label as b, PagePurpose as he, Textarea as x } from "@burdenoff/fe-libs/ui";
15
+ import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
15
16
  //#region src/bigconsole/pages/DataSinkBuilderPage.tsx
16
- function me(e) {
17
+ function ge(e) {
17
18
  return e.toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "").substring(0, 64);
18
19
  }
19
- function he(e) {
20
- let t = {};
21
- if (e.name.trim() ? e.name.length < 2 ? t.name = "Name must be at least 2 characters" : e.name.length > 100 && (t.name = "Name must be less than 100 characters") : t.name = "Name is required", e.key.trim() ? /^[a-z0-9_]+$/.test(e.key) ? e.key.length > 64 && (t.key = "Key must be less than 64 characters") : t.key = "Key can only contain lowercase letters, numbers, and underscores" : t.key = "Key is required", e.data && e.data.trim()) try {
20
+ function _e(e, t) {
21
+ let n = {};
22
+ if (e.name.trim() ? e.name.length < 2 ? n.name = t("bigconsole.dataSinks.builder.validation.nameMinLength", "Name must be at least 2 characters") : e.name.length > 100 && (n.name = t("bigconsole.dataSinks.builder.validation.nameMaxLength", "Name must be less than 100 characters")) : n.name = t("bigconsole.dataSinks.builder.validation.nameRequired", "Name is required"), e.key.trim() ? /^[a-z0-9_]+$/.test(e.key) ? e.key.length > 64 && (n.key = t("bigconsole.dataSinks.builder.validation.keyMaxLength", "Key must be less than 64 characters")) : n.key = t("bigconsole.dataSinks.builder.validation.keyFormat", "Key can only contain lowercase letters, numbers, and underscores") : n.key = t("bigconsole.dataSinks.builder.validation.keyRequired", "Key is required"), e.data && e.data.trim()) try {
22
23
  JSON.parse(e.data);
23
24
  } catch {
24
- t.data = "Invalid JSON format";
25
+ n.data = t("bigconsole.dataSinks.builder.validation.invalidJson", "Invalid JSON format");
25
26
  }
26
- return t;
27
+ return n;
27
28
  }
28
- var E = i(function() {
29
- let { dataSinkId: i } = c(), E = e(), D = i !== "new" && !!i, { hasPermission: ge, isLoading: _e } = ae(), ve = ge(n.DATASINK_READ), ye = D ? n.DATASINK_UPDATE : n.DATASINK_CREATE, [O, k] = s({
29
+ var T = i(function() {
30
+ let { dataSinkId: i } = l(), T = e(), { t: E } = fe(), D = i !== "new" && !!i, { hasPermission: ve, isLoading: ye } = oe(), be = ve(n.DATASINK_READ), xe = D ? n.DATASINK_UPDATE : n.DATASINK_CREATE, [O, k] = c({
30
31
  name: "",
31
32
  key: "",
32
33
  description: "",
33
34
  ttl: 300,
34
35
  refresh: { type: "manual" },
35
36
  data: "{}"
36
- }), [A, j] = s({}), [M, N] = s(!1), [P, F] = s(!1), [I, L] = s(null), [be, R] = s(!1), [z, B] = s(!1), [V, H] = s(null), [U, W] = s(null), { loading: xe, error: G, dataSinks: Se, fetchDataSink: K, createDataSink: q, updateDataSink: J, getDataSinkData: Y } = t({ skipFetch: !0 }), X = D ? Se.find((e) => e.id === i) : null;
37
+ }), [A, j] = c({}), [M, N] = c(!1), [P, F] = c(!1), [I, L] = c(null), [Se, R] = c(!1), [z, B] = c(!1), [V, H] = c(null), [U, W] = c(null), { loading: Ce, error: G, dataSinks: we, fetchDataSink: K, createDataSink: q, updateDataSink: J, getDataSinkData: Y } = t({ skipFetch: !0 }), X = D ? we.find((e) => e.id === i) : null;
37
38
  o(() => {
38
39
  D && i && !X && K(i);
39
40
  }, [
@@ -42,7 +43,7 @@ var E = i(function() {
42
43
  X,
43
44
  K
44
45
  ]);
45
- let [Z, Ce] = s(!1);
46
+ let [Z, Te] = c(!1);
46
47
  o(() => {
47
48
  if (X && !Z) {
48
49
  let e = "";
@@ -67,20 +68,20 @@ var E = i(function() {
67
68
  } : void 0
68
69
  } : { type: "manual" },
69
70
  data: e
70
- }), N(!0), Ce(!0), j({});
71
+ }), N(!0), Te(!0), j({});
71
72
  }
72
73
  }, [X, Z]);
73
- let we = a((e) => {
74
+ let Ee = a((e) => {
74
75
  let t = e.target.value;
75
76
  k((e) => ({
76
77
  ...e,
77
78
  name: t,
78
- key: M ? e.key : me(t)
79
+ key: M ? e.key : ge(t)
79
80
  })), j((e) => ({
80
81
  ...e,
81
82
  name: void 0
82
83
  }));
83
- }, [M]), Te = a((e) => {
84
+ }, [M]), De = a((e) => {
84
85
  let t = e.target.value.toLowerCase().replace(/[^a-z0-9_]/g, "");
85
86
  k((e) => ({
86
87
  ...e,
@@ -89,22 +90,22 @@ var E = i(function() {
89
90
  ...e,
90
91
  key: void 0
91
92
  }));
92
- }, []), Ee = a((e) => {
93
+ }, []), Oe = a((e) => {
93
94
  k((t) => ({
94
95
  ...t,
95
96
  description: e.target.value
96
97
  }));
97
- }, []), De = a((e) => {
98
+ }, []), Q = a((e) => {
98
99
  k((t) => ({
99
100
  ...t,
100
101
  ttl: e || 0
101
102
  }));
102
- }, []), Oe = a((e) => {
103
+ }, []), ke = a((e) => {
103
104
  k((t) => ({
104
105
  ...t,
105
106
  refresh: e
106
107
  }));
107
- }, []), Q = a((e) => {
108
+ }, []), Ae = a((e) => {
108
109
  k((t) => ({
109
110
  ...t,
110
111
  data: e.target.value
@@ -112,7 +113,7 @@ var E = i(function() {
112
113
  ...e,
113
114
  data: void 0
114
115
  }));
115
- }, []), ke = a(() => {
116
+ }, []), je = a(() => {
116
117
  try {
117
118
  let e = JSON.parse(O.data);
118
119
  k((t) => ({
@@ -125,21 +126,21 @@ var E = i(function() {
125
126
  } catch {
126
127
  j((e) => ({
127
128
  ...e,
128
- data: "Invalid JSON format"
129
+ data: E("bigconsole.dataSinks.builder.validation.invalidJson", "Invalid JSON format")
129
130
  }));
130
131
  }
131
- }, [O.data]), Ae = a(async () => {
132
- O.key && (await te(O.key), R(!0), ee() && ne("Key copied"), setTimeout(() => R(!1), 2e3));
133
- }, [O.key]), $ = a(() => {
134
- E("/datasinks");
135
- }, [E]), je = a(async () => {
132
+ }, [O.data, E]), Me = a(async () => {
133
+ O.key && (await te(O.key), R(!0), ee() && ne(E("bigconsole.dataSinks.builder.toolbar.keyCopied", "Key copied")), setTimeout(() => R(!1), 2e3));
134
+ }, [O.key, E]), $ = a(() => {
135
+ T("/datasinks");
136
+ }, [T]), Ne = a(async () => {
136
137
  if (!(!D || !X)) {
137
138
  B(!0), W(null);
138
139
  try {
139
140
  let e = await Y({ key: X.key });
140
141
  e?.raw ? H(Array.isArray(e.raw) ? e.raw.slice(0, 20) : [e.raw]) : H([]);
141
142
  } catch (e) {
142
- W(e instanceof Error ? e.message : "Failed to load data");
143
+ W(e instanceof Error ? e.message : E("bigconsole.dataSinks.builder.errors.loadDataFailed", "Failed to load data"));
143
144
  } finally {
144
145
  B(!1);
145
146
  }
@@ -147,10 +148,11 @@ var E = i(function() {
147
148
  }, [
148
149
  D,
149
150
  X,
150
- Y
151
- ]), Me = a(async (e) => {
151
+ Y,
152
+ E
153
+ ]), Pe = a(async (e) => {
152
154
  e.preventDefault(), L(null);
153
- let t = he(O);
155
+ let t = _e(O, E);
154
156
  if (Object.keys(t).length > 0) {
155
157
  j(t);
156
158
  return;
@@ -163,7 +165,7 @@ var E = i(function() {
163
165
  } catch {
164
166
  j((e) => ({
165
167
  ...e,
166
- data: "Invalid JSON format"
168
+ data: E("bigconsole.dataSinks.builder.validation.invalidJson", "Invalid JSON format")
167
169
  })), F(!1);
168
170
  return;
169
171
  }
@@ -179,7 +181,7 @@ var E = i(function() {
179
181
  schedule: O.refresh.schedule
180
182
  },
181
183
  data: e
182
- })) throw Error("Failed to update DataSink");
184
+ })) throw Error(E("bigconsole.dataSinks.builder.errors.updateFailed", "Failed to update DataSink"));
183
185
  } else if (!await q({
184
186
  key: O.key,
185
187
  name: O.name,
@@ -190,10 +192,10 @@ var E = i(function() {
190
192
  schedule: O.refresh.schedule
191
193
  },
192
194
  data: e
193
- })) throw Error("Failed to create DataSink");
194
- E("/datasinks");
195
+ })) throw Error(E("bigconsole.dataSinks.builder.errors.createFailed", "Failed to create DataSink"));
196
+ T("/datasinks");
195
197
  } catch (e) {
196
- L(e instanceof Error ? e.message : "Failed to save DataSink");
198
+ L(e instanceof Error ? e.message : E("bigconsole.dataSinks.builder.errors.saveFailed", "Failed to save DataSink"));
197
199
  } finally {
198
200
  F(!1);
199
201
  }
@@ -203,8 +205,9 @@ var E = i(function() {
203
205
  X,
204
206
  q,
205
207
  J,
208
+ T,
206
209
  E
207
- ]), Ne = ie(() => {
210
+ ]), Fe = s(() => {
208
211
  let e = O.name.trim().length >= 2, t = O.key.trim().length > 0, n = !0;
209
212
  if (O.data && O.data.trim()) try {
210
213
  JSON.parse(O.data);
@@ -217,165 +220,173 @@ var E = i(function() {
217
220
  O.key,
218
221
  O.data
219
222
  ]);
220
- return xe && D ? /* @__PURE__ */ w("div", {
223
+ return Ce && D ? /* @__PURE__ */ C("div", {
221
224
  className: "flex items-center justify-center min-h-[400px]",
222
- children: /* @__PURE__ */ w(m, { className: "w-8 h-8 text-text-secondary animate-spin" })
223
- }) : G ? /* @__PURE__ */ w("div", {
225
+ children: /* @__PURE__ */ C(p, { className: "w-8 h-8 text-text-secondary animate-spin" })
226
+ }) : G ? /* @__PURE__ */ C("div", {
224
227
  className: "flex items-center justify-center min-h-[400px] p-card-padding",
225
- children: /* @__PURE__ */ T("div", {
228
+ children: /* @__PURE__ */ w("div", {
226
229
  className: "text-center",
227
230
  children: [
228
- /* @__PURE__ */ w(d, { className: "w-12 h-12 text-status-error-text mx-auto mb-4" }),
229
- /* @__PURE__ */ w("p", {
231
+ /* @__PURE__ */ C(u, { className: "w-12 h-12 text-status-error-text mx-auto mb-4" }),
232
+ /* @__PURE__ */ C("p", {
230
233
  className: "text-status-error-text text-body-sm font-medium mb-2",
231
- children: "Failed to load DataSink"
234
+ children: E("bigconsole.dataSinks.builder.errors.loadFailed", "Failed to load DataSink")
232
235
  }),
233
- /* @__PURE__ */ w("p", {
236
+ /* @__PURE__ */ C("p", {
234
237
  className: "text-text-tertiary text-body-xs",
235
238
  children: G.message
236
239
  })
237
240
  ]
238
241
  })
239
- }) : D && !_e && !ve ? /* @__PURE__ */ w(l, {
240
- title: "Access Denied",
241
- description: "You don't have permission to view this data sink."
242
- }) : /* @__PURE__ */ w("div", {
242
+ }) : D && !ye && !be ? /* @__PURE__ */ C(ie, {
243
+ title: E("bigconsole.dataSinks.builder.accessDenied.title", "Access Denied"),
244
+ description: E("bigconsole.dataSinks.builder.accessDenied.description", "You don't have permission to view this data sink.")
245
+ }) : /* @__PURE__ */ C("div", {
243
246
  className: "min-h-screen bg-bg-canvas",
244
- children: /* @__PURE__ */ T("div", {
247
+ children: /* @__PURE__ */ w("div", {
245
248
  className: "max-w-3xl mx-auto p-card-padding",
246
249
  children: [
247
- /* @__PURE__ */ T("div", {
250
+ /* @__PURE__ */ w("div", {
248
251
  className: "mb-6",
249
252
  children: [
250
- /* @__PURE__ */ T(h, {
253
+ /* @__PURE__ */ w(m, {
251
254
  onClick: $,
252
255
  variant: "ghost",
253
256
  size: "sm",
254
257
  className: "mb-4",
255
- children: [/* @__PURE__ */ w(oe, { className: "w-4 h-4 mr-2" }), "Back to DataSinks"]
258
+ children: [/* @__PURE__ */ C(se, { className: "w-4 h-4 mr-2" }), E("bigconsole.dataSinks.builder.header.backToDataSinks", "Back to DataSinks")]
256
259
  }),
257
- /* @__PURE__ */ w("h1", {
260
+ /* @__PURE__ */ C("h1", {
258
261
  className: "text-heading-h1 font-bold text-text-primary",
259
- children: D ? "Edit DataSink" : "Create DataSink"
262
+ children: D ? E("bigconsole.dataSinks.builder.header.editTitle", "Edit DataSink") : E("bigconsole.dataSinks.builder.header.createTitle", "Create DataSink")
260
263
  }),
261
- /* @__PURE__ */ w("p", {
264
+ /* @__PURE__ */ C("p", {
262
265
  className: "text-body-sm text-text-secondary mt-1",
263
- children: D ? "Update the DataSink configuration." : "Create a new DataSink to store and cache data. Use the unique key to connect workflows."
266
+ children: D ? E("bigconsole.dataSinks.builder.header.editSubtitle", "Update the DataSink configuration.") : E("bigconsole.dataSinks.builder.header.createSubtitle", "Create a new DataSink to store and cache data. Use the unique key to connect workflows.")
264
267
  })
265
268
  ]
266
269
  }),
267
- I && /* @__PURE__ */ T("div", {
270
+ I && /* @__PURE__ */ w("div", {
268
271
  className: "mb-6 p-4 bg-status-error-bg/10 border border-status-error-border/30 rounded-lg flex items-start gap-3",
269
- children: [/* @__PURE__ */ w(d, { className: "w-5 h-5 text-status-error-text flex-shrink-0 mt-0.5" }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
272
+ children: [/* @__PURE__ */ C(u, { className: "w-5 h-5 text-status-error-text flex-shrink-0 mt-0.5" }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C("p", {
270
273
  className: "text-sm font-medium text-status-error-text",
271
- children: "Failed to save DataSink"
272
- }), /* @__PURE__ */ w("p", {
274
+ children: E("bigconsole.dataSinks.builder.errors.saveFailed", "Failed to save DataSink")
275
+ }), /* @__PURE__ */ C("p", {
273
276
  className: "text-xs text-status-error-text/80 mt-1",
274
277
  children: I
275
278
  })] })]
276
279
  }),
277
- /* @__PURE__ */ w(pe, {
280
+ /* @__PURE__ */ C(he, {
278
281
  className: "mb-6",
279
- children: "A data sink is the named, structured store your dashboards read from. Give it a unique key, configure how long data is cached and how it refreshes, then point a workflow at that key to push data in. Get the basics right here and everything downstream connects to it."
282
+ children: E("bigconsole.dataSinks.builder.header.purpose", "A data sink is the named, structured store your dashboards read from. Give it a unique key, configure how long data is cached and how it refreshes, then point a workflow at that key to push data in. Get the basics right here and everything downstream connects to it.")
280
283
  }),
281
- /* @__PURE__ */ T("form", {
282
- onSubmit: Me,
284
+ /* @__PURE__ */ w("form", {
285
+ onSubmit: Pe,
283
286
  className: "space-y-6",
284
287
  children: [
285
- /* @__PURE__ */ T(de, {
288
+ /* @__PURE__ */ w(pe, {
286
289
  treatment: "glass",
287
290
  glow: !0,
288
- children: [/* @__PURE__ */ w(v, {
291
+ children: [/* @__PURE__ */ C(_, {
289
292
  className: "pb-4",
290
- children: /* @__PURE__ */ T("div", {
293
+ children: /* @__PURE__ */ w("div", {
291
294
  className: "flex items-center gap-3",
292
- children: [/* @__PURE__ */ w("div", {
295
+ children: [/* @__PURE__ */ C("div", {
293
296
  className: "w-8 h-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center",
294
- children: /* @__PURE__ */ w(f, { className: "w-4 h-4 text-action-primary-bg" })
295
- }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w(y, {
297
+ children: /* @__PURE__ */ C(d, { className: "w-4 h-4 text-action-primary-bg" })
298
+ }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(v, {
296
299
  className: "text-base",
297
- children: "Basic Information"
298
- }), /* @__PURE__ */ w("p", {
300
+ children: E("bigconsole.dataSinks.builder.basicInfo.title", "Basic Information")
301
+ }), /* @__PURE__ */ C("p", {
299
302
  className: "text-xs text-text-secondary mt-0.5",
300
- children: "Essential details for your DataSink"
303
+ children: E("bigconsole.dataSinks.builder.basicInfo.subtitle", "Essential details for your DataSink")
301
304
  })] })]
302
305
  })
303
- }), /* @__PURE__ */ T(_, {
306
+ }), /* @__PURE__ */ w(g, {
304
307
  className: "space-y-5",
305
308
  children: [
306
- /* @__PURE__ */ T("div", {
309
+ /* @__PURE__ */ w("div", {
307
310
  className: "space-y-2",
308
311
  children: [
309
- /* @__PURE__ */ T(x, {
312
+ /* @__PURE__ */ w(b, {
310
313
  htmlFor: "name",
311
- children: ["Name ", /* @__PURE__ */ w("span", {
312
- className: "text-status-error-text",
313
- children: "*"
314
- })]
314
+ children: [
315
+ E("bigconsole.dataSinks.builder.basicInfo.nameLabel", "Name"),
316
+ " ",
317
+ /* @__PURE__ */ C("span", {
318
+ className: "text-status-error-text",
319
+ children: "*"
320
+ })
321
+ ]
315
322
  }),
316
- /* @__PURE__ */ w(b, {
323
+ /* @__PURE__ */ C(y, {
317
324
  id: "name",
318
325
  type: "text",
319
326
  value: O.name,
320
- onChange: we,
321
- placeholder: "e.g., Sales Metrics",
327
+ onChange: Ee,
328
+ placeholder: E("bigconsole.dataSinks.builder.basicInfo.namePlaceholder", "e.g., Sales Metrics"),
322
329
  className: A.name ? "border-status-error-border" : ""
323
330
  }),
324
- A.name && /* @__PURE__ */ w("p", {
331
+ A.name && /* @__PURE__ */ C("p", {
325
332
  className: "text-body-xs text-status-error-text",
326
333
  children: A.name
327
334
  })
328
335
  ]
329
336
  }),
330
- /* @__PURE__ */ T("div", {
337
+ /* @__PURE__ */ w("div", {
331
338
  className: "space-y-2",
332
339
  children: [
333
- /* @__PURE__ */ T(x, {
340
+ /* @__PURE__ */ w(b, {
334
341
  htmlFor: "key",
335
- children: ["Unique Key ", /* @__PURE__ */ w("span", {
336
- className: "text-status-error-text",
337
- children: "*"
338
- })]
342
+ children: [
343
+ E("bigconsole.dataSinks.builder.basicInfo.keyLabel", "Unique Key"),
344
+ " ",
345
+ /* @__PURE__ */ C("span", {
346
+ className: "text-status-error-text",
347
+ children: "*"
348
+ })
349
+ ]
339
350
  }),
340
- /* @__PURE__ */ T("div", {
351
+ /* @__PURE__ */ w("div", {
341
352
  className: "flex gap-2",
342
- children: [/* @__PURE__ */ w(b, {
353
+ children: [/* @__PURE__ */ C(y, {
343
354
  id: "key",
344
355
  type: "text",
345
356
  value: O.key,
346
- onChange: Te,
347
- placeholder: "sales_metrics",
357
+ onChange: De,
358
+ placeholder: E("bigconsole.dataSinks.builder.basicInfo.keyPlaceholder", "sales_metrics"),
348
359
  disabled: D,
349
360
  className: `font-mono flex-1 ${A.key ? "border-status-error-border" : ""}`
350
- }), O.key && /* @__PURE__ */ w(h, {
361
+ }), O.key && /* @__PURE__ */ C(m, {
351
362
  type: "button",
352
- onClick: Ae,
363
+ onClick: Me,
353
364
  variant: "outline",
354
365
  size: "sm",
355
366
  className: "px-3",
356
- children: be ? /* @__PURE__ */ w(se, { className: "w-4 h-4 text-status-success-text" }) : /* @__PURE__ */ w(ce, { className: "w-4 h-4" })
367
+ children: Se ? /* @__PURE__ */ C(ce, { className: "w-4 h-4 text-status-success-text" }) : /* @__PURE__ */ C(le, { className: "w-4 h-4" })
357
368
  })]
358
369
  }),
359
- A.key && /* @__PURE__ */ w("p", {
370
+ A.key && /* @__PURE__ */ C("p", {
360
371
  className: "text-body-xs text-status-error-text",
361
372
  children: A.key
362
373
  }),
363
- /* @__PURE__ */ w("p", {
374
+ /* @__PURE__ */ C("p", {
364
375
  className: "text-body-xs text-text-tertiary",
365
- children: D ? "Key cannot be changed. Use this key in your workflows to push data." : "Auto-generated from name. This key will be used by workflows to push data."
376
+ children: D ? E("bigconsole.dataSinks.builder.basicInfo.keyHelpEdit", "Key cannot be changed. Use this key in your workflows to push data.") : E("bigconsole.dataSinks.builder.basicInfo.keyHelpCreate", "Auto-generated from name. This key will be used by workflows to push data.")
366
377
  })
367
378
  ]
368
379
  }),
369
- /* @__PURE__ */ T("div", {
380
+ /* @__PURE__ */ w("div", {
370
381
  className: "space-y-2",
371
- children: [/* @__PURE__ */ w(x, {
382
+ children: [/* @__PURE__ */ C(b, {
372
383
  htmlFor: "description",
373
- children: "Description"
374
- }), /* @__PURE__ */ w(S, {
384
+ children: E("bigconsole.dataSinks.builder.basicInfo.descriptionLabel", "Description")
385
+ }), /* @__PURE__ */ C(x, {
375
386
  id: "description",
376
387
  value: O.description,
377
- onChange: Ee,
378
- placeholder: "Describe what data this sink stores...",
388
+ onChange: Oe,
389
+ placeholder: E("bigconsole.dataSinks.builder.basicInfo.descriptionPlaceholder", "Describe what data this sink stores..."),
379
390
  rows: 2,
380
391
  className: "resize-none"
381
392
  })]
@@ -383,163 +394,167 @@ var E = i(function() {
383
394
  ]
384
395
  })]
385
396
  }),
386
- /* @__PURE__ */ T(g, { children: [/* @__PURE__ */ w(v, {
397
+ /* @__PURE__ */ w(h, { children: [/* @__PURE__ */ C(_, {
387
398
  className: "pb-4",
388
- children: /* @__PURE__ */ T("div", {
399
+ children: /* @__PURE__ */ w("div", {
389
400
  className: "flex items-center gap-3",
390
- children: [/* @__PURE__ */ w("div", {
401
+ children: [/* @__PURE__ */ C("div", {
391
402
  className: "w-8 h-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center",
392
- children: /* @__PURE__ */ w(ue, { className: "w-4 h-4 text-action-primary-bg" })
393
- }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w(y, {
403
+ children: /* @__PURE__ */ C(de, { className: "w-4 h-4 text-action-primary-bg" })
404
+ }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(v, {
394
405
  className: "text-base",
395
- children: "Configuration"
396
- }), /* @__PURE__ */ w("p", {
406
+ children: E("bigconsole.dataSinks.builder.config.title", "Configuration")
407
+ }), /* @__PURE__ */ C("p", {
397
408
  className: "text-xs text-text-secondary mt-0.5",
398
- children: "Cache and refresh settings"
409
+ children: E("bigconsole.dataSinks.builder.config.subtitle", "Cache and refresh settings")
399
410
  })] })]
400
411
  })
401
- }), /* @__PURE__ */ T(_, {
412
+ }), /* @__PURE__ */ w(g, {
402
413
  className: "space-y-5",
403
- children: [/* @__PURE__ */ T("div", {
414
+ children: [/* @__PURE__ */ w("div", {
404
415
  className: "space-y-2",
405
416
  children: [
406
- /* @__PURE__ */ w(x, { children: "Cache Duration" }),
407
- /* @__PURE__ */ w(r, {
417
+ /* @__PURE__ */ C(b, { children: E("bigconsole.dataSinks.builder.config.cacheDurationLabel", "Cache Duration") }),
418
+ /* @__PURE__ */ C(r, {
408
419
  value: O.ttl,
409
- onChange: De
420
+ onChange: Q
410
421
  }),
411
- /* @__PURE__ */ w("p", {
422
+ /* @__PURE__ */ C("p", {
412
423
  className: "text-body-xs text-text-tertiary",
413
- children: "How long cached data remains valid before requiring refresh."
424
+ children: E("bigconsole.dataSinks.builder.config.cacheDurationHelp", "How long cached data remains valid before requiring refresh.")
414
425
  })
415
426
  ]
416
- }), /* @__PURE__ */ w(re, {
427
+ }), /* @__PURE__ */ C(re, {
417
428
  value: O.refresh,
418
- onChange: Oe
429
+ onChange: ke
419
430
  })]
420
431
  })] }),
421
- /* @__PURE__ */ T(g, { children: [/* @__PURE__ */ w(v, {
432
+ /* @__PURE__ */ w(h, { children: [/* @__PURE__ */ C(_, {
422
433
  className: "pb-4",
423
- children: /* @__PURE__ */ T("div", {
434
+ children: /* @__PURE__ */ w("div", {
424
435
  className: "flex items-center justify-between",
425
- children: [/* @__PURE__ */ T("div", {
436
+ children: [/* @__PURE__ */ w("div", {
426
437
  className: "flex items-center gap-3",
427
- children: [/* @__PURE__ */ w("div", {
438
+ children: [/* @__PURE__ */ C("div", {
428
439
  className: "w-8 h-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center",
429
- children: /* @__PURE__ */ w(f, { className: "w-4 h-4 text-action-primary-bg" })
430
- }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w(y, {
440
+ children: /* @__PURE__ */ C(d, { className: "w-4 h-4 text-action-primary-bg" })
441
+ }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(v, {
431
442
  className: "text-base",
432
- children: "Data Payload"
433
- }), /* @__PURE__ */ w("p", {
443
+ children: E("bigconsole.dataSinks.builder.dataPayload.title", "Data Payload")
444
+ }), /* @__PURE__ */ C("p", {
434
445
  className: "text-xs text-text-secondary mt-0.5",
435
- children: D ? "Edit the JSON data stored in this DataSink" : "Optional initial data (JSON format)"
446
+ children: D ? E("bigconsole.dataSinks.builder.dataPayload.subtitleEdit", "Edit the JSON data stored in this DataSink") : E("bigconsole.dataSinks.builder.dataPayload.subtitleCreate", "Optional initial data (JSON format)")
436
447
  })] })]
437
- }), /* @__PURE__ */ w(h, {
448
+ }), /* @__PURE__ */ C(m, {
438
449
  type: "button",
439
- onClick: ke,
450
+ onClick: je,
440
451
  variant: "outline",
441
452
  size: "sm",
442
- children: "Format JSON"
453
+ children: E("bigconsole.dataSinks.builder.dataPayload.formatJson", "Format JSON")
443
454
  })]
444
455
  })
445
- }), /* @__PURE__ */ w(_, { children: /* @__PURE__ */ T("div", {
456
+ }), /* @__PURE__ */ C(g, { children: /* @__PURE__ */ w("div", {
446
457
  className: "space-y-2",
447
458
  children: [
448
- /* @__PURE__ */ w(S, {
459
+ /* @__PURE__ */ C(x, {
449
460
  value: O.data,
450
- onChange: Q,
451
- placeholder: "{\"key\": \"value\"}",
461
+ onChange: Ae,
462
+ placeholder: E("bigconsole.dataSinks.builder.dataPayload.dataPlaceholder", "{\"key\": \"value\"}"),
452
463
  rows: 10,
453
464
  className: `font-mono text-xs resize-y ${A.data ? "border-status-error-border" : ""}`
454
465
  }),
455
- A.data && /* @__PURE__ */ w("p", {
466
+ A.data && /* @__PURE__ */ C("p", {
456
467
  className: "text-body-xs text-status-error-text",
457
468
  children: A.data
458
469
  }),
459
- /* @__PURE__ */ w("p", {
470
+ /* @__PURE__ */ C("p", {
460
471
  className: "text-body-xs text-text-tertiary",
461
- children: "Enter valid JSON data. This data will be stored and can be accessed by widgets via parsers."
472
+ children: E("bigconsole.dataSinks.builder.dataPayload.help", "Enter valid JSON data. This data will be stored and can be accessed by widgets via parsers.")
462
473
  })
463
474
  ]
464
475
  }) })] }),
465
- D && X && /* @__PURE__ */ T(g, { children: [/* @__PURE__ */ w(v, {
476
+ D && X && /* @__PURE__ */ w(h, { children: [/* @__PURE__ */ C(_, {
466
477
  className: "pb-4",
467
- children: /* @__PURE__ */ T("div", {
478
+ children: /* @__PURE__ */ w("div", {
468
479
  className: "flex items-center justify-between",
469
- children: [/* @__PURE__ */ T("div", {
480
+ children: [/* @__PURE__ */ w("div", {
470
481
  className: "flex items-center gap-3",
471
- children: [/* @__PURE__ */ w("div", {
482
+ children: [/* @__PURE__ */ C("div", {
472
483
  className: "w-8 h-8 rounded-full bg-action-primary-bg/10 flex items-center justify-center",
473
- children: /* @__PURE__ */ w(p, { className: "w-4 h-4 text-action-primary-bg" })
474
- }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w(y, {
484
+ children: /* @__PURE__ */ C(f, { className: "w-4 h-4 text-action-primary-bg" })
485
+ }), /* @__PURE__ */ w("div", { children: [/* @__PURE__ */ C(v, {
475
486
  className: "text-base",
476
- children: "Data Preview"
477
- }), /* @__PURE__ */ w("p", {
487
+ children: E("bigconsole.dataSinks.builder.preview.title", "Data Preview")
488
+ }), /* @__PURE__ */ C("p", {
478
489
  className: "text-xs text-text-secondary mt-0.5",
479
- children: "Preview the first 20 records"
490
+ children: E("bigconsole.dataSinks.builder.preview.subtitle", "Preview the first 20 records")
480
491
  })] })]
481
- }), /* @__PURE__ */ w(h, {
492
+ }), /* @__PURE__ */ C(m, {
482
493
  type: "button",
483
- onClick: je,
494
+ onClick: Ne,
484
495
  variant: "outline",
485
496
  size: "sm",
486
497
  disabled: z,
487
- children: z ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(m, { className: "w-4 h-4 mr-2 animate-spin" }), "Loading..."] }) : /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(p, { className: "w-4 h-4 mr-2" }), "Show Data"] })
498
+ children: z ? /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(p, { className: "w-4 h-4 mr-2 animate-spin" }), E("bigconsole.dataSinks.builder.preview.loading", "Loading...")] }) : /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(f, { className: "w-4 h-4 mr-2" }), E("bigconsole.dataSinks.builder.preview.showData", "Show Data")] })
488
499
  })]
489
500
  })
490
- }), (V || U) && /* @__PURE__ */ w(_, { children: U ? /* @__PURE__ */ w("div", {
501
+ }), (V || U) && /* @__PURE__ */ C(g, { children: U ? /* @__PURE__ */ C("div", {
491
502
  className: "p-4 bg-status-error-bg/10 border border-status-error-border/30 rounded-md",
492
- children: /* @__PURE__ */ w("p", {
503
+ children: /* @__PURE__ */ C("p", {
493
504
  className: "text-sm text-status-error-text",
494
505
  children: U
495
506
  })
496
- }) : V && V.length > 0 ? /* @__PURE__ */ w("pre", {
507
+ }) : V && V.length > 0 ? /* @__PURE__ */ C("pre", {
497
508
  className: "p-4 bg-bg-sunken rounded-md overflow-auto max-h-[300px] text-xs font-mono",
498
509
  children: JSON.stringify(V, null, 2)
499
- }) : /* @__PURE__ */ w(fe, {
510
+ }) : /* @__PURE__ */ C(me, {
500
511
  illustration: "empty-generic",
501
- title: "No data available yet",
502
- description: "Connect a workflow to this sink's key to start pushing data."
512
+ title: E("bigconsole.dataSinks.builder.preview.emptyTitle", "No data available yet"),
513
+ description: E("bigconsole.dataSinks.builder.preview.emptyDescription", "Connect a workflow to this sink's key to start pushing data.")
503
514
  }) })] }),
504
- /* @__PURE__ */ T("div", {
515
+ /* @__PURE__ */ w("div", {
505
516
  className: "flex items-center justify-end gap-4 pt-4",
506
- children: [/* @__PURE__ */ w(h, {
517
+ children: [/* @__PURE__ */ C(m, {
507
518
  type: "button",
508
519
  onClick: $,
509
520
  variant: "secondary",
510
- children: "Cancel"
511
- }), /* @__PURE__ */ w(u, {
512
- permission: ye,
521
+ children: E("bigconsole.dataSinks.builder.actions.cancel", "Cancel")
522
+ }), /* @__PURE__ */ C(ae, {
523
+ permission: xe,
513
524
  deniedBehavior: "disable",
514
- children: /* @__PURE__ */ w(h, {
525
+ children: /* @__PURE__ */ C(m, {
515
526
  type: "submit",
516
- disabled: !Ne || P,
527
+ disabled: !Fe || P,
517
528
  variant: "default",
518
- children: P ? /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(m, { className: "w-4 h-4 mr-2 animate-spin" }), "Saving..."] }) : /* @__PURE__ */ T(C, { children: [/* @__PURE__ */ w(le, { className: "w-4 h-4 mr-2" }), D ? "Save Changes" : "Create DataSink"] })
529
+ children: P ? /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(p, { className: "w-4 h-4 mr-2 animate-spin" }), E("bigconsole.dataSinks.builder.actions.saving", "Saving...")] }) : /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C(ue, { className: "w-4 h-4 mr-2" }), D ? E("bigconsole.dataSinks.builder.actions.saveChanges", "Save Changes") : E("bigconsole.dataSinks.builder.actions.create", "Create DataSink")] })
519
530
  })
520
531
  })]
521
532
  })
522
533
  ]
523
534
  }),
524
- !D && /* @__PURE__ */ T("div", {
535
+ !D && /* @__PURE__ */ w("div", {
525
536
  className: "mt-6 p-4 bg-bg-sunken rounded-lg border border-border-default",
526
- children: [/* @__PURE__ */ w("h3", {
537
+ children: [/* @__PURE__ */ C("h3", {
527
538
  className: "text-sm font-medium text-text-primary mb-2",
528
- children: "What's Next?"
529
- }), /* @__PURE__ */ T("ol", {
539
+ children: E("bigconsole.dataSinks.builder.whatsNext.title", "What's Next?")
540
+ }), /* @__PURE__ */ w("ol", {
530
541
  className: "list-decimal list-inside text-xs text-text-secondary space-y-1",
531
542
  children: [
532
- /* @__PURE__ */ w("li", { children: "Create this DataSink to get your unique key" }),
533
- /* @__PURE__ */ T("li", { children: [
534
- "Go to ",
535
- /* @__PURE__ */ w("strong", { children: "Workflows" }),
536
- " and create a FluidGrids workflow"
543
+ /* @__PURE__ */ C("li", { children: E("bigconsole.dataSinks.builder.whatsNext.step1", "Create this DataSink to get your unique key") }),
544
+ /* @__PURE__ */ w("li", { children: [
545
+ E("bigconsole.dataSinks.builder.whatsNext.step2Prefix", "Go to"),
546
+ " ",
547
+ /* @__PURE__ */ C("strong", { children: E("bigconsole.dataSinks.builder.whatsNext.workflows", "Workflows") }),
548
+ " ",
549
+ E("bigconsole.dataSinks.builder.whatsNext.step2Suffix", "and create a FluidGrids workflow")
537
550
  ] }),
538
- /* @__PURE__ */ w("li", { children: "Use the unique key in your workflow to push data to this DataSink" }),
539
- /* @__PURE__ */ T("li", { children: [
540
- "Create ",
541
- /* @__PURE__ */ w("strong", { children: "Parsers" }),
542
- " to transform the data using JQ or JSONata"
551
+ /* @__PURE__ */ C("li", { children: E("bigconsole.dataSinks.builder.whatsNext.step3", "Use the unique key in your workflow to push data to this DataSink") }),
552
+ /* @__PURE__ */ w("li", { children: [
553
+ E("bigconsole.dataSinks.builder.whatsNext.step4Prefix", "Create"),
554
+ " ",
555
+ /* @__PURE__ */ C("strong", { children: E("bigconsole.dataSinks.builder.whatsNext.parsers", "Parsers") }),
556
+ " ",
557
+ E("bigconsole.dataSinks.builder.whatsNext.step4Suffix", "to transform the data using JQ or JSONata")
543
558
  ] })
544
559
  ]
545
560
  })]
@@ -549,6 +564,6 @@ var E = i(function() {
549
564
  });
550
565
  });
551
566
  //#endregion
552
- export { E as DataSinkBuilderPage, E as default };
567
+ export { T as DataSinkBuilderPage, T as default };
553
568
 
554
569
  //# sourceMappingURL=DataSinkBuilderPage.js.map