@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
@@ -4,8 +4,9 @@ import "../contexts/index.js";
4
4
  import { newWorkflowPath as n } from "../BigConsoleRoutes.js";
5
5
  import ee from "../components/datasink/DataSinkTableViewer.js";
6
6
  import te from "../hooks/useDataSinkOperations.js";
7
- import r from "../components/datasink/DataSinkStatusBadge.js";
8
- import { isNative as i, nativeConfirm as ne, nativeImpact as re, nativeNotify as a } from "../../utils/nativeBridge.js";
7
+ import { BIGCONSOLE_PERMISSIONS as r } from "../../constants/permissions.js";
8
+ import i from "../components/datasink/DataSinkStatusBadge.js";
9
+ import { isNative as a, nativeConfirm as ne, nativeImpact as re, nativeNotify as o } from "../../utils/nativeBridge.js";
9
10
  import ie from "../hooks/useDataSinkSubscription.js";
10
11
  import ae from "../components/datasink/DataSinkDataViewer.js";
11
12
  import oe from "../components/datasink/LinkedWorkflowsPanel.js";
@@ -13,136 +14,143 @@ import se from "../components/datasink/LinkedParsersPanel.js";
13
14
  import ce from "../components/datasink/WorkflowStatusPanel.js";
14
15
  import le from "../components/datasink/ExportDataSinkDialog.js";
15
16
  import ue from "../components/datasink/ImportDataGuideDialog.js";
16
- import { memo as o, useCallback as s, useEffect as de, useState as c } from "react";
17
+ import { memo as s, useCallback as c, useEffect as de, useState as l } from "react";
17
18
  import { useParams as fe } from "react-router";
18
- import { AlertCircle as pe, ArrowLeft as l, Code as me, Database as u, Download as he, Edit as ge, Eye as _e, EyeOff as d, Grid3X3 as ve, Loader2 as f, RefreshCw as ye, Trash2 as be, Upload as p } from "lucide-react";
19
- import { Button as m, Card as h, CardContent as g, CardHeader as _, CardTitle as v, GlassCard as xe, IllustratedEmptyState as Se, NextSteps as Ce, PagePurpose as we } from "@burdenoff/fe-libs/ui";
19
+ import { AccessDenied as pe, PermissionButton as u } from "@burdenoff/fe-libs/shared/components";
20
+ import { usePermissions as me } from "@burdenoff/fe-libs/shared/providers/shell";
21
+ import { AlertCircle as he, ArrowLeft as d, Code as ge, Database as f, Download as _e, Edit as ve, Eye as ye, EyeOff as be, Grid3X3 as xe, Loader2 as p, RefreshCw as Se, Trash2 as Ce, Upload as m } from "lucide-react";
22
+ import { useI18n as we } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
23
+ import { Button as h, Card as Te, CardContent as g, CardHeader as _, CardTitle as v, GlassCard as Ee, IllustratedEmptyState as De, NextSteps as Oe, PagePurpose as ke } from "@burdenoff/fe-libs/ui";
20
24
  import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
21
25
  import { formatDistanceToNow as S } from "date-fns";
22
26
  //#region src/bigconsole/pages/DataSinkViewPage.tsx
23
- var C = o(function() {
24
- let { dataSinkId: o } = fe(), C = t(), [w, T] = c(!1), [E, D] = c(!1), [O, k] = c(!1), [Te, A] = c(!1), [Ee, j] = c(!1), [M, De] = c(null), [N, P] = c(!1), [F, I] = c("table"), [L, Oe] = c(100), [R, ke] = c(0), [z, Ae] = c(null), [je, Me] = c(!1), B = e((e) => o ? e.dataSinks.get(o) : void 0), { loading: Ne, error: V, fetchDataSink: H, getDataSinkData: U, refreshDataSink: W, updateDataSink: G, deleteDataSink: K } = te({ skipFetch: !0 });
27
+ var C = s(function() {
28
+ let { dataSinkId: s } = fe(), C = t(), { t: w } = we(), { hasPermission: Ae, isLoading: je } = me(), Me = Ae(r.DATASINK_READ), [T, E] = l(!1), [D, O] = l(!1), [k, A] = l(!1), [Ne, j] = l(!1), [Pe, M] = l(!1), [N, Fe] = l(null), [P, F] = l(!1), [I, L] = l("table"), [R, Ie] = l(100), [z, Le] = l(0), [B, Re] = l(null), [ze, Be] = l(!1), V = e((e) => s ? e.dataSinks.get(s) : void 0), { loading: Ve, error: H, fetchDataSink: U, getDataSinkData: W, refreshDataSink: G, updateDataSink: K, deleteDataSink: q } = te({ skipFetch: !0 });
25
29
  ie({
26
- dataSinkId: o,
27
- enabled: !!o
30
+ dataSinkId: s,
31
+ enabled: !!s
28
32
  }), de(() => {
29
- o && H(o);
30
- }, [o, H]);
31
- let q = s(() => {
33
+ s && U(s);
34
+ }, [s, U]);
35
+ let J = c(() => {
32
36
  C("/datasinks");
33
- }, [C]), Pe = s(() => {
34
- C(`/datasinks/${o}/edit`);
35
- }, [C, o]), J = s(async () => {
36
- if (o) {
37
- D(!0);
37
+ }, [C]), He = c(() => {
38
+ C(`/datasinks/${s}/edit`);
39
+ }, [C, s]), Y = c(async () => {
40
+ if (s) {
41
+ O(!0);
38
42
  try {
39
- await W({ id: o });
43
+ await G({ id: s });
40
44
  } catch {} finally {
41
- D(!1);
45
+ O(!1);
42
46
  }
43
47
  }
44
- }, [o, W]), Fe = s(async () => {
45
- if (!o) return;
48
+ }, [s, G]), Ue = c(async () => {
49
+ if (!s) return;
46
50
  let e = await ne({
47
- title: "Delete DataSink?",
48
- message: "Are you sure you want to delete this DataSink?",
49
- okButtonTitle: "Delete",
50
- cancelButtonTitle: "Cancel"
51
+ title: w("bigconsole.dataSinks.view.deleteConfirmTitle", "Delete DataSink?"),
52
+ message: w("bigconsole.dataSinks.view.deleteConfirmMessage", "Are you sure you want to delete this DataSink?"),
53
+ okButtonTitle: w("bigconsole.dataSinks.view.delete", "Delete"),
54
+ cancelButtonTitle: w("bigconsole.dataSinks.view.cancel", "Cancel")
51
55
  });
52
- if (e === null ? window.confirm("Are you sure you want to delete this DataSink?") : e) {
53
- re("medium"), k(!0);
56
+ if (e === null ? window.confirm(w("bigconsole.dataSinks.view.deleteConfirmMessage", "Are you sure you want to delete this DataSink?")) : e) {
57
+ re("medium"), A(!0);
54
58
  try {
55
- await K(o), i() && a("success"), C("/datasinks");
59
+ await q(s), a() && o("success"), C("/datasinks");
56
60
  } catch {
57
- i() && a("error");
61
+ a() && o("error");
58
62
  } finally {
59
- k(!1);
63
+ A(!1);
60
64
  }
61
65
  }
62
66
  }, [
63
- o,
64
- K,
65
- C
66
- ]), Y = s(async (e, t) => {
67
- if (o) {
68
- P(!0);
67
+ s,
68
+ q,
69
+ C,
70
+ w
71
+ ]), X = c(async (e, t) => {
72
+ if (s) {
73
+ F(!0);
69
74
  try {
70
- let n = await U({ id: o }, {
75
+ let n = await W({ id: s }, {
71
76
  limit: t,
72
77
  offset: e
73
78
  });
74
- n && (De(n.raw || {}), Ae(typeof n.totalCount == "number" ? n.totalCount : null), Me(!!n.hasMore), ke(e));
79
+ n && (Fe(n.raw || {}), Re(typeof n.totalCount == "number" ? n.totalCount : null), Be(!!n.hasMore), Le(e));
75
80
  } catch {} finally {
76
- P(!1);
81
+ F(!1);
77
82
  }
78
83
  }
79
- }, [o, U]), X = s(async () => {
80
- if (o) {
81
- if (w) {
82
- T(!1);
84
+ }, [s, W]), Z = c(async () => {
85
+ if (s) {
86
+ if (T) {
87
+ E(!1);
83
88
  return;
84
89
  }
85
- await Y(0, L), T(!0);
90
+ await X(0, R), E(!0);
86
91
  }
87
92
  }, [
88
- o,
89
- w,
90
- Y,
91
- L
92
- ]), Z = s((e) => {
93
- Oe(e), Y(0, e);
94
- }, [Y]), Q = s(() => {
95
- A(!0);
96
- }, []), Ie = s(() => {
97
- A(!1);
98
- }, []), $ = s(() => {
93
+ s,
94
+ T,
95
+ X,
96
+ R
97
+ ]), We = c((e) => {
98
+ Ie(e), X(0, e);
99
+ }, [X]), Q = c(() => {
99
100
  j(!0);
100
- }, []), Le = s(() => {
101
+ }, []), Ge = c(() => {
101
102
  j(!1);
102
- }, []), Re = s(() => {
103
- j(!1), C(n());
104
- }, [C]), ze = s(async (e) => {
105
- if (!B || !await G({
106
- id: B.id,
107
- version: B.version,
103
+ }, []), $ = c(() => {
104
+ M(!0);
105
+ }, []), Ke = c(() => {
106
+ M(!1);
107
+ }, []), qe = c(() => {
108
+ M(!1), C(n());
109
+ }, [C]), Je = c(async (e) => {
110
+ if (!V || !await K({
111
+ id: V.id,
112
+ version: V.version,
108
113
  data: e
109
114
  })) return !1;
110
115
  try {
111
- await Y(0, L), T(!0);
116
+ await X(0, R), E(!0);
112
117
  } catch {}
113
118
  return !0;
114
119
  }, [
115
- B,
116
- G,
117
- Y,
118
- L
120
+ V,
121
+ K,
122
+ X,
123
+ R
119
124
  ]);
120
- return Ne && !B ? /* @__PURE__ */ b("div", {
125
+ return Ve && !V ? /* @__PURE__ */ b("div", {
121
126
  className: "flex items-center justify-center min-h-[400px]",
122
- children: /* @__PURE__ */ b(f, { className: "w-8 h-8 text-text-secondary animate-spin" })
123
- }) : V && !B ? /* @__PURE__ */ b("div", {
127
+ children: /* @__PURE__ */ b(p, { className: "w-8 h-8 text-text-secondary animate-spin" })
128
+ }) : H && !V ? /* @__PURE__ */ b("div", {
124
129
  className: "flex items-center justify-center min-h-[400px] p-card-padding",
125
130
  children: /* @__PURE__ */ x("div", {
126
131
  className: "text-center",
127
132
  children: [
128
- /* @__PURE__ */ b(pe, { className: "w-12 h-12 text-status-error-text mx-auto mb-4" }),
133
+ /* @__PURE__ */ b(he, { className: "w-12 h-12 text-status-error-text mx-auto mb-4" }),
129
134
  /* @__PURE__ */ b("p", {
130
135
  className: "text-status-error-text text-body-sm font-medium mb-2",
131
- children: "Failed to load DataSink"
136
+ children: w("bigconsole.dataSinks.view.loadError", "Failed to load DataSink")
132
137
  }),
133
138
  /* @__PURE__ */ b("p", {
134
139
  className: "text-text-tertiary text-body-xs mb-6",
135
- children: V.message
140
+ children: H.message
136
141
  }),
137
- /* @__PURE__ */ x(m, {
138
- onClick: q,
142
+ /* @__PURE__ */ x(h, {
143
+ onClick: J,
139
144
  variant: "ghost",
140
145
  size: "sm",
141
- children: [/* @__PURE__ */ b(l, { className: "w-4 h-4 mr-2" }), "Go back"]
146
+ children: [/* @__PURE__ */ b(d, { className: "w-4 h-4 mr-2" }), w("bigconsole.dataSinks.view.goBack", "Go back")]
142
147
  })
143
148
  ]
144
149
  })
145
- }) : B ? /* @__PURE__ */ x("div", {
150
+ }) : !je && !Me ? /* @__PURE__ */ b(pe, {
151
+ title: w("bigconsole.dataSinks.view.accessDeniedTitle", "Access Denied"),
152
+ description: w("bigconsole.dataSinks.view.accessDeniedDescription", "You don't have permission to view this data sink.")
153
+ }) : V ? /* @__PURE__ */ x("div", {
146
154
  className: "p-card-padding space-y-6",
147
155
  children: [
148
156
  /* @__PURE__ */ x("div", {
@@ -150,93 +158,105 @@ var C = o(function() {
150
158
  children: [/* @__PURE__ */ x("div", {
151
159
  className: "flex-1",
152
160
  children: [
153
- /* @__PURE__ */ x(m, {
154
- onClick: q,
161
+ /* @__PURE__ */ x(h, {
162
+ onClick: J,
155
163
  variant: "ghost",
156
164
  size: "sm",
157
165
  className: "mb-4",
158
- children: [/* @__PURE__ */ b(l, { className: "w-4 h-4 mr-2" }), "Back to DataSinks"]
166
+ children: [/* @__PURE__ */ b(d, { className: "w-4 h-4 mr-2" }), w("bigconsole.dataSinks.view.backToDataSinks", "Back to DataSinks")]
159
167
  }),
160
168
  /* @__PURE__ */ x("div", {
161
169
  className: "flex items-center gap-2 flex-wrap",
162
170
  children: [/* @__PURE__ */ b("h1", {
163
171
  className: "text-heading-h1 font-bold text-text-primary",
164
- children: B.name || "Untitled"
165
- }), /* @__PURE__ */ b(r, { status: B.status })]
172
+ children: V.name || w("bigconsole.dataSinks.view.untitled", "Untitled")
173
+ }), /* @__PURE__ */ b(i, { status: V.status })]
166
174
  }),
167
175
  /* @__PURE__ */ b("p", {
168
176
  className: "text-body-sm text-text-tertiary font-mono mt-1",
169
- children: B.key
177
+ children: V.key
170
178
  }),
171
- B.description && /* @__PURE__ */ b("p", {
179
+ V.description && /* @__PURE__ */ b("p", {
172
180
  className: "text-body-sm text-text-secondary mt-2",
173
- children: B.description
181
+ children: V.description
174
182
  })
175
183
  ]
176
184
  }), /* @__PURE__ */ x("div", {
177
185
  className: "flex items-center gap-2 flex-wrap",
178
186
  children: [
179
- /* @__PURE__ */ x(m, {
180
- onClick: J,
181
- disabled: E,
182
- variant: "secondary",
183
- size: "default",
184
- children: [/* @__PURE__ */ b(ye, { className: `w-4 h-4 mr-2 ${E ? "animate-spin" : ""}` }), E ? "Refreshing..." : "Refresh"]
187
+ /* @__PURE__ */ b(u, {
188
+ permission: r.DATASINK_EXECUTE,
189
+ deniedBehavior: "disable",
190
+ children: /* @__PURE__ */ x(h, {
191
+ onClick: Y,
192
+ disabled: D,
193
+ variant: "secondary",
194
+ size: "default",
195
+ children: [/* @__PURE__ */ b(Se, { className: `w-4 h-4 mr-2 ${D ? "animate-spin" : ""}` }), D ? w("bigconsole.dataSinks.view.refreshing", "Refreshing...") : w("bigconsole.dataSinks.view.refresh", "Refresh")]
196
+ })
185
197
  }),
186
- /* @__PURE__ */ x(m, {
198
+ /* @__PURE__ */ x(h, {
187
199
  onClick: $,
188
200
  variant: "secondary",
189
201
  size: "default",
190
- children: [/* @__PURE__ */ b(p, { className: "w-4 h-4 mr-2" }), "Import Data"]
202
+ children: [/* @__PURE__ */ b(m, { className: "w-4 h-4 mr-2" }), w("bigconsole.dataSinks.view.importData", "Import Data")]
191
203
  }),
192
- /* @__PURE__ */ x(m, {
204
+ /* @__PURE__ */ x(h, {
193
205
  onClick: Q,
194
206
  variant: "secondary",
195
207
  size: "default",
196
- children: [/* @__PURE__ */ b(he, { className: "w-4 h-4 mr-2" }), "Export"]
208
+ children: [/* @__PURE__ */ b(_e, { className: "w-4 h-4 mr-2" }), w("bigconsole.dataSinks.view.export", "Export")]
197
209
  }),
198
- /* @__PURE__ */ x(m, {
199
- onClick: Pe,
200
- variant: "secondary",
201
- size: "default",
202
- children: [/* @__PURE__ */ b(ge, { className: "w-4 h-4 mr-2" }), "Edit"]
210
+ /* @__PURE__ */ b(u, {
211
+ permission: r.DATASINK_UPDATE,
212
+ deniedBehavior: "disable",
213
+ children: /* @__PURE__ */ x(h, {
214
+ onClick: He,
215
+ variant: "secondary",
216
+ size: "default",
217
+ children: [/* @__PURE__ */ b(ve, { className: "w-4 h-4 mr-2" }), w("bigconsole.dataSinks.view.edit", "Edit")]
218
+ })
203
219
  }),
204
- /* @__PURE__ */ x(m, {
205
- onClick: Fe,
206
- disabled: O,
207
- variant: "destructive",
208
- size: "default",
209
- children: [/* @__PURE__ */ b(be, { className: "w-4 h-4 mr-2" }), O ? "Deleting..." : "Delete"]
220
+ /* @__PURE__ */ b(u, {
221
+ permission: r.DATASINK_DELETE,
222
+ deniedBehavior: "hide",
223
+ children: /* @__PURE__ */ x(h, {
224
+ onClick: Ue,
225
+ disabled: k,
226
+ variant: "destructive",
227
+ size: "default",
228
+ children: [/* @__PURE__ */ b(Ce, { className: "w-4 h-4 mr-2" }), k ? w("bigconsole.dataSinks.view.deleting", "Deleting...") : w("bigconsole.dataSinks.view.delete", "Delete")]
229
+ })
210
230
  })
211
231
  ]
212
232
  })]
213
233
  }),
214
- /* @__PURE__ */ b(we, { children: "A data sink is a structured store that holds your processed data and serves it to dashboards. From here you can inspect its schema and stats, preview the cached rows, refresh it from its linked workflow, or export it." }),
215
- /* @__PURE__ */ b(Ce, {
234
+ /* @__PURE__ */ b(ke, { children: w("bigconsole.dataSinks.view.pagePurpose", "A data sink is a structured store that holds your processed data and serves it to dashboards. From here you can inspect its schema and stats, preview the cached rows, refresh it from its linked workflow, or export it.") }),
235
+ /* @__PURE__ */ b(Oe, {
216
236
  storageKey: "bigconsole-datasink-view",
217
237
  steps: [
218
238
  {
219
239
  id: "preview",
220
- label: "Preview the data",
221
- description: "Open the cached rows to confirm the sink holds what you expect.",
222
- onClick: X
240
+ label: w("bigconsole.dataSinks.view.nextSteps.previewLabel", "Preview the data"),
241
+ description: w("bigconsole.dataSinks.view.nextSteps.previewDescription", "Open the cached rows to confirm the sink holds what you expect."),
242
+ onClick: Z
223
243
  },
224
244
  {
225
245
  id: "refresh",
226
- label: "Refresh from source",
227
- description: "Re-run the linked workflow to pull the latest data.",
228
- onClick: J
246
+ label: w("bigconsole.dataSinks.view.nextSteps.refreshLabel", "Refresh from source"),
247
+ description: w("bigconsole.dataSinks.view.nextSteps.refreshDescription", "Re-run the linked workflow to pull the latest data."),
248
+ onClick: Y
229
249
  },
230
250
  {
231
251
  id: "build-dashboard",
232
- label: "Visualize it on a dashboard",
233
- description: "Add widgets that query this sink to see your data live.",
252
+ label: w("bigconsole.dataSinks.view.nextSteps.dashboardLabel", "Visualize it on a dashboard"),
253
+ description: w("bigconsole.dataSinks.view.nextSteps.dashboardDescription", "Add widgets that query this sink to see your data live."),
234
254
  onClick: () => C("/dashboards")
235
255
  },
236
256
  {
237
257
  id: "export",
238
- label: "Export the data",
239
- description: "Download the contents for use elsewhere.",
258
+ label: w("bigconsole.dataSinks.view.nextSteps.exportLabel", "Export the data"),
259
+ description: w("bigconsole.dataSinks.view.nextSteps.exportDescription", "Download the contents for use elsewhere."),
240
260
  onClick: Q
241
261
  }
242
262
  ]
@@ -244,140 +264,140 @@ var C = o(function() {
244
264
  /* @__PURE__ */ x("div", {
245
265
  className: "grid gap-6 md:grid-cols-2",
246
266
  children: [
247
- /* @__PURE__ */ x(xe, {
267
+ /* @__PURE__ */ x(Ee, {
248
268
  treatment: "glass",
249
269
  glow: !0,
250
- children: [/* @__PURE__ */ b(_, { children: /* @__PURE__ */ b(v, { children: "Details" }) }), /* @__PURE__ */ b(g, { children: /* @__PURE__ */ x("dl", {
270
+ children: [/* @__PURE__ */ b(_, { children: /* @__PURE__ */ b(v, { children: w("bigconsole.dataSinks.view.details", "Details") }) }), /* @__PURE__ */ b(g, { children: /* @__PURE__ */ x("dl", {
251
271
  className: "space-y-4 text-body-sm",
252
272
  children: [
253
273
  /* @__PURE__ */ x("div", {
254
274
  className: "flex justify-between items-center",
255
275
  children: [/* @__PURE__ */ b("dt", {
256
276
  className: "text-text-secondary",
257
- children: "Status"
258
- }), /* @__PURE__ */ b("dd", { children: /* @__PURE__ */ b(r, { status: B.status }) })]
277
+ children: w("bigconsole.dataSinks.view.status", "Status")
278
+ }), /* @__PURE__ */ b("dd", { children: /* @__PURE__ */ b(i, { status: V.status }) })]
259
279
  }),
260
280
  /* @__PURE__ */ x("div", {
261
281
  className: "flex justify-between items-center",
262
282
  children: [/* @__PURE__ */ b("dt", {
263
283
  className: "text-text-secondary",
264
- children: "Cache TTL"
284
+ children: w("bigconsole.dataSinks.view.cacheTtl", "Cache TTL")
265
285
  }), /* @__PURE__ */ b("dd", {
266
286
  className: "text-text-primary font-medium",
267
- children: B.ttl ? `${B.ttl}s` : "None"
287
+ children: V.ttl ? `${V.ttl}s` : w("bigconsole.dataSinks.view.none", "None")
268
288
  })]
269
289
  }),
270
290
  /* @__PURE__ */ x("div", {
271
291
  className: "flex justify-between items-center",
272
292
  children: [/* @__PURE__ */ b("dt", {
273
293
  className: "text-text-secondary",
274
- children: "Refresh Type"
294
+ children: w("bigconsole.dataSinks.view.refreshType", "Refresh Type")
275
295
  }), /* @__PURE__ */ b("dd", {
276
296
  className: "text-text-primary font-medium capitalize",
277
- children: B.refresh?.type || "Manual"
297
+ children: V.refresh?.type || w("bigconsole.dataSinks.view.manual", "Manual")
278
298
  })]
279
299
  }),
280
300
  /* @__PURE__ */ x("div", {
281
301
  className: "flex justify-between items-center",
282
302
  children: [/* @__PURE__ */ b("dt", {
283
303
  className: "text-text-secondary",
284
- children: "Size"
304
+ children: w("bigconsole.dataSinks.view.size", "Size")
285
305
  }), /* @__PURE__ */ b("dd", {
286
306
  className: "text-text-primary font-medium",
287
- children: B.sizeBytes ? `${(B.sizeBytes / 1024).toFixed(2)} KB` : "0 KB"
307
+ children: V.sizeBytes ? `${(V.sizeBytes / 1024).toFixed(2)} KB` : "0 KB"
288
308
  })]
289
309
  }),
290
310
  /* @__PURE__ */ x("div", {
291
311
  className: "flex justify-between items-center",
292
312
  children: [/* @__PURE__ */ b("dt", {
293
313
  className: "text-text-secondary",
294
- children: "Version"
314
+ children: w("bigconsole.dataSinks.view.version", "Version")
295
315
  }), /* @__PURE__ */ b("dd", {
296
316
  className: "text-text-primary font-medium",
297
- children: B.version || 1
317
+ children: V.version || 1
298
318
  })]
299
319
  }),
300
320
  /* @__PURE__ */ x("div", {
301
321
  className: "flex justify-between items-center",
302
322
  children: [/* @__PURE__ */ b("dt", {
303
323
  className: "text-text-secondary",
304
- children: "Last Refreshed"
324
+ children: w("bigconsole.dataSinks.view.lastRefreshed", "Last Refreshed")
305
325
  }), /* @__PURE__ */ b("dd", {
306
326
  className: "text-text-primary font-medium",
307
- children: B.lastRefreshedAt ? S(new Date(B.lastRefreshedAt), { addSuffix: !0 }) : "Never"
327
+ children: V.lastRefreshedAt ? S(new Date(V.lastRefreshedAt), { addSuffix: !0 }) : w("bigconsole.dataSinks.view.never", "Never")
308
328
  })]
309
329
  }),
310
330
  /* @__PURE__ */ x("div", {
311
331
  className: "flex justify-between items-center",
312
332
  children: [/* @__PURE__ */ b("dt", {
313
333
  className: "text-text-secondary",
314
- children: "Created"
334
+ children: w("bigconsole.dataSinks.view.created", "Created")
315
335
  }), /* @__PURE__ */ b("dd", {
316
336
  className: "text-text-primary font-medium",
317
- children: S(new Date(B.createdAt), { addSuffix: !0 })
337
+ children: S(new Date(V.createdAt), { addSuffix: !0 })
318
338
  })]
319
339
  })
320
340
  ]
321
341
  }) })]
322
342
  }),
323
- B.fluidGridsWorkflowId && /* @__PURE__ */ b(ce, {
324
- workflowId: B.fluidGridsWorkflowId,
325
- executionId: B.fluidGridsWorkflowExecutionId || void 0,
326
- lastRefreshedAt: B.lastRefreshedAt || void 0,
327
- setupState: B.setupState,
328
- status: B.status,
329
- onRerunWorkflow: J,
330
- disabled: E,
331
- isRerunning: E
343
+ V.fluidGridsWorkflowId && /* @__PURE__ */ b(ce, {
344
+ workflowId: V.fluidGridsWorkflowId,
345
+ executionId: V.fluidGridsWorkflowExecutionId || void 0,
346
+ lastRefreshedAt: V.lastRefreshedAt || void 0,
347
+ setupState: V.setupState,
348
+ status: V.status,
349
+ onRerunWorkflow: Y,
350
+ disabled: D,
351
+ isRerunning: D
332
352
  }),
333
- /* @__PURE__ */ b(oe, { workflowLinks: B.workflowLinks }),
334
- /* @__PURE__ */ b(se, { dataSinkKey: B.key })
353
+ /* @__PURE__ */ b(oe, { workflowLinks: V.workflowLinks }),
354
+ /* @__PURE__ */ b(se, { dataSinkKey: V.key })
335
355
  ]
336
356
  }),
337
- /* @__PURE__ */ x(h, { children: [
357
+ /* @__PURE__ */ x(Te, { children: [
338
358
  /* @__PURE__ */ x(_, {
339
359
  className: "flex flex-row items-center justify-between space-y-0",
340
360
  children: [/* @__PURE__ */ x(v, {
341
361
  className: "flex items-center gap-2",
342
- children: [/* @__PURE__ */ b(u, { className: "w-4 h-4 text-text-secondary" }), "Data Preview"]
362
+ children: [/* @__PURE__ */ b(f, { className: "w-4 h-4 text-text-secondary" }), w("bigconsole.dataSinks.view.dataPreview", "Data Preview")]
343
363
  }), /* @__PURE__ */ x("div", {
344
364
  className: "flex items-center gap-2",
345
- children: [w && /* @__PURE__ */ x("div", {
365
+ children: [T && /* @__PURE__ */ x("div", {
346
366
  className: "flex items-center border border-border-default rounded-md overflow-hidden",
347
367
  children: [/* @__PURE__ */ b("button", {
348
368
  type: "button",
349
- onClick: () => I("table"),
350
- className: `p-1.5 ${F === "table" ? "bg-bg-sunken text-text-primary" : "text-text-secondary hover:text-text-primary"}`,
351
- title: "Table view",
352
- children: /* @__PURE__ */ b(ve, { className: "w-4 h-4" })
369
+ onClick: () => L("table"),
370
+ className: `p-1.5 ${I === "table" ? "bg-bg-sunken text-text-primary" : "text-text-secondary hover:text-text-primary"}`,
371
+ title: w("bigconsole.dataSinks.view.tableView", "Table view"),
372
+ children: /* @__PURE__ */ b(xe, { className: "w-4 h-4" })
353
373
  }), /* @__PURE__ */ b("button", {
354
374
  type: "button",
355
- onClick: () => I("json"),
356
- className: `p-1.5 ${F === "json" ? "bg-bg-sunken text-text-primary" : "text-text-secondary hover:text-text-primary"}`,
357
- title: "JSON view",
358
- children: /* @__PURE__ */ b(me, { className: "w-4 h-4" })
375
+ onClick: () => L("json"),
376
+ className: `p-1.5 ${I === "json" ? "bg-bg-sunken text-text-primary" : "text-text-secondary hover:text-text-primary"}`,
377
+ title: w("bigconsole.dataSinks.view.jsonView", "JSON view"),
378
+ children: /* @__PURE__ */ b(ge, { className: "w-4 h-4" })
359
379
  })]
360
- }), /* @__PURE__ */ b(m, {
361
- onClick: X,
362
- disabled: N,
363
- variant: w ? "secondary" : "default",
380
+ }), /* @__PURE__ */ b(h, {
381
+ onClick: Z,
382
+ disabled: P,
383
+ variant: T ? "secondary" : "default",
364
384
  size: "sm",
365
- children: N ? /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(f, { className: "w-4 h-4 mr-2 animate-spin" }), "Loading..."] }) : w ? /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(d, { className: "w-4 h-4 mr-2" }), "Hide Data"] }) : /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(_e, { className: "w-4 h-4 mr-2" }), "Show Data"] })
385
+ children: P ? /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(p, { className: "w-4 h-4 mr-2 animate-spin" }), w("bigconsole.dataSinks.view.loading", "Loading...")] }) : T ? /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(be, { className: "w-4 h-4 mr-2" }), w("bigconsole.dataSinks.view.hideData", "Hide Data")] }) : /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(ye, { className: "w-4 h-4 mr-2" }), w("bigconsole.dataSinks.view.showData", "Show Data")] })
366
386
  })]
367
387
  })]
368
388
  }),
369
- w && M && /* @__PURE__ */ x(g, { children: [b(F === "table" ? ee : ae, {
370
- data: M,
389
+ T && N && /* @__PURE__ */ x(g, { children: [b(I === "table" ? ee : ae, {
390
+ data: N,
371
391
  maxHeight: "400px"
372
- }), z !== null && /* @__PURE__ */ x("div", {
392
+ }), B !== null && /* @__PURE__ */ x("div", {
373
393
  className: "flex items-center justify-between gap-4 mt-4 pt-4 border-t border-border-subtle",
374
394
  children: [/* @__PURE__ */ x("div", {
375
395
  className: "flex items-center gap-2 text-body-sm text-text-secondary",
376
- children: [/* @__PURE__ */ b("span", { children: "Rows per page" }), /* @__PURE__ */ b("select", {
377
- "aria-label": "Rows per page",
396
+ children: [/* @__PURE__ */ b("span", { children: w("bigconsole.dataSinks.view.rowsPerPage", "Rows per page") }), /* @__PURE__ */ b("select", {
397
+ "aria-label": w("bigconsole.dataSinks.view.rowsPerPage", "Rows per page"),
378
398
  className: "bg-bg-canvas border border-border-default rounded px-2 py-0.5 text-text-primary",
379
- value: L,
380
- onChange: (e) => Z(Number(e.target.value)),
399
+ value: R,
400
+ onChange: (e) => We(Number(e.target.value)),
381
401
  children: [
382
402
  100,
383
403
  500,
@@ -390,73 +410,77 @@ var C = o(function() {
390
410
  }), /* @__PURE__ */ x("div", {
391
411
  className: "flex items-center gap-4 text-body-sm text-text-secondary",
392
412
  children: [
393
- /* @__PURE__ */ b("span", { children: z === 0 ? "0 rows" : `${R + 1}–${Math.min(R + L, z)} of ${z}` }),
394
- /* @__PURE__ */ b(m, {
413
+ /* @__PURE__ */ b("span", { children: B === 0 ? w("bigconsole.dataSinks.view.zeroRows", "0 rows") : w("bigconsole.dataSinks.view.rowRange", "{{start}}–{{end}} of {{total}}", {
414
+ start: z + 1,
415
+ end: Math.min(z + R, B),
416
+ total: B
417
+ }) }),
418
+ /* @__PURE__ */ b(h, {
395
419
  variant: "secondary",
396
420
  size: "sm",
397
- disabled: R === 0 || N,
398
- onClick: () => void Y(Math.max(0, R - L), L),
399
- children: "Previous"
421
+ disabled: z === 0 || P,
422
+ onClick: () => void X(Math.max(0, z - R), R),
423
+ children: w("bigconsole.dataSinks.view.previous", "Previous")
400
424
  }),
401
- /* @__PURE__ */ b(m, {
425
+ /* @__PURE__ */ b(h, {
402
426
  variant: "secondary",
403
427
  size: "sm",
404
- disabled: !je || N,
405
- onClick: () => void Y(R + L, L),
406
- children: "Next"
428
+ disabled: !ze || P,
429
+ onClick: () => void X(z + R, R),
430
+ children: w("bigconsole.dataSinks.view.next", "Next")
407
431
  })
408
432
  ]
409
433
  })]
410
434
  })] }),
411
- !w && (B.data && Object.keys(B.data).length > 0 ? /* @__PURE__ */ x(g, {
435
+ !T && (V.data && Object.keys(V.data).length > 0 ? /* @__PURE__ */ x(g, {
412
436
  className: "text-center p-8",
413
- children: [/* @__PURE__ */ b(u, { className: "w-10 h-10 text-text-tertiary mx-auto mb-4" }), /* @__PURE__ */ b("p", {
437
+ children: [/* @__PURE__ */ b(f, { className: "w-10 h-10 text-text-tertiary mx-auto mb-4" }), /* @__PURE__ */ b("p", {
414
438
  className: "text-body-sm text-text-secondary",
415
- children: "Click \"Show Data\" to preview the cached data."
439
+ children: w("bigconsole.dataSinks.view.showDataHint", "Click \"Show Data\" to preview the cached data.")
416
440
  })]
417
441
  }) : /* @__PURE__ */ x(g, {
418
442
  className: "text-center p-8",
419
443
  children: [
420
- /* @__PURE__ */ b(u, { className: "w-10 h-10 text-text-tertiary mx-auto mb-4" }),
444
+ /* @__PURE__ */ b(f, { className: "w-10 h-10 text-text-tertiary mx-auto mb-4" }),
421
445
  /* @__PURE__ */ b("p", {
422
446
  className: "text-body-sm text-text-secondary mb-4",
423
- children: "This data sink has no data yet. Upload a CSV or build a workflow to import data."
447
+ children: w("bigconsole.dataSinks.view.noDataYet", "This data sink has no data yet. Upload a CSV or build a workflow to import data.")
424
448
  }),
425
- /* @__PURE__ */ x(m, {
449
+ /* @__PURE__ */ x(h, {
426
450
  onClick: $,
427
451
  variant: "default",
428
452
  size: "sm",
429
- children: [/* @__PURE__ */ b(p, { className: "w-4 h-4 mr-2" }), "Import Data"]
453
+ children: [/* @__PURE__ */ b(m, { className: "w-4 h-4 mr-2" }), w("bigconsole.dataSinks.view.importData", "Import Data")]
430
454
  })
431
455
  ]
432
456
  }))
433
457
  ] }),
434
458
  /* @__PURE__ */ b(le, {
435
- isOpen: Te,
436
- dataSinkId: o || null,
437
- dataSinkName: B.name || B.key,
438
- onClose: Ie
459
+ isOpen: Ne,
460
+ dataSinkId: s || null,
461
+ dataSinkName: V.name || V.key,
462
+ onClose: Ge
439
463
  }),
440
464
  /* @__PURE__ */ b(ue, {
441
- isOpen: Ee,
442
- dataSinkName: B.name || B.key,
443
- hasExistingData: !!(B.data && Object.keys(B.data).length > 0),
444
- onClose: Le,
445
- onGoToWorkflows: Re,
446
- onImportCsv: ze
465
+ isOpen: Pe,
466
+ dataSinkName: V.name || V.key,
467
+ hasExistingData: !!(V.data && Object.keys(V.data).length > 0),
468
+ onClose: Ke,
469
+ onGoToWorkflows: qe,
470
+ onImportCsv: Je
447
471
  })
448
472
  ]
449
473
  }) : /* @__PURE__ */ b("div", {
450
474
  className: "flex items-center justify-center min-h-[400px] p-card-padding",
451
- children: /* @__PURE__ */ b(Se, {
475
+ children: /* @__PURE__ */ b(De, {
452
476
  illustration: "empty-data",
453
- title: "DataSink not found",
454
- description: "The DataSink you're looking for doesn't exist or has been deleted.",
455
- action: /* @__PURE__ */ x(m, {
456
- onClick: q,
477
+ title: w("bigconsole.dataSinks.view.notFoundTitle", "DataSink not found"),
478
+ description: w("bigconsole.dataSinks.view.notFoundDescription", "The DataSink you're looking for doesn't exist or has been deleted."),
479
+ action: /* @__PURE__ */ x(h, {
480
+ onClick: J,
457
481
  variant: "default",
458
482
  size: "default",
459
- children: [/* @__PURE__ */ b(l, { className: "w-4 h-4 mr-2" }), "Go back to DataSinks"]
483
+ children: [/* @__PURE__ */ b(d, { className: "w-4 h-4 mr-2" }), w("bigconsole.dataSinks.view.goBackToDataSinks", "Go back to DataSinks")]
460
484
  })
461
485
  })
462
486
  });