@burdenoff/microfe-bigconsole 2026.924.2 → 2026.924.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 (124) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.js +137 -138
  2. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
  3. package/dist/bigconsole/assistant/previewController.js +10 -10
  4. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +17 -17
  5. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +32 -32
  6. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +52 -52
  7. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  8. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +7 -7
  9. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +53 -0
  10. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +1 -0
  11. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +60 -60
  12. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +21 -21
  13. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
  14. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +36 -36
  15. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
  16. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +38 -38
  17. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  18. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +121 -121
  19. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  20. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +22 -22
  21. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
  22. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +53 -53
  23. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
  24. package/dist/bigconsole/components/dashboard/WidgetPalette.js +47 -47
  25. package/dist/bigconsole/components/dashboard/index.js +1 -0
  26. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
  27. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
  28. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
  29. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +30 -29
  30. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -1
  31. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +48 -48
  32. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +103 -103
  33. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  34. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
  35. package/dist/bigconsole/components/overview/DashboardGuide.js +214 -0
  36. package/dist/bigconsole/components/overview/DashboardGuide.js.map +1 -0
  37. package/dist/bigconsole/components/overview/DataHealthCard.js +97 -0
  38. package/dist/bigconsole/components/overview/DataHealthCard.js.map +1 -0
  39. package/dist/bigconsole/components/overview/OverviewQuickActions.js +32 -0
  40. package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +1 -0
  41. package/dist/bigconsole/components/overview/OverviewStatCard.js +57 -0
  42. package/dist/bigconsole/components/overview/OverviewStatCard.js.map +1 -0
  43. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +107 -0
  44. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +1 -0
  45. package/dist/bigconsole/components/overview/dashboardGuideSteps.js +119 -0
  46. package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +1 -0
  47. package/dist/bigconsole/components/overview/index.js +8 -0
  48. package/dist/bigconsole/components/overview/overviewModel.js +119 -0
  49. package/dist/bigconsole/components/overview/overviewModel.js.map +1 -0
  50. package/dist/bigconsole/components/overview/useOverviewData.js +48 -0
  51. package/dist/bigconsole/components/overview/useOverviewData.js.map +1 -0
  52. package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
  53. package/dist/bigconsole/components/parser/ImportParserDialog.js +127 -127
  54. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  55. package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
  56. package/dist/bigconsole/components/preview/AiPreviewContent.js +5 -5
  57. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +33 -33
  58. package/dist/bigconsole/components/preview/AiPreviewPanel.js +38 -38
  59. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +13 -13
  60. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +70 -70
  61. package/dist/bigconsole/components/widgets/PropertiesPanel.js +28 -28
  62. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +25 -25
  63. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
  64. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
  65. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
  66. package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
  67. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
  68. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
  69. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +21 -21
  70. package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
  71. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
  72. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
  73. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
  74. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
  75. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
  76. package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
  77. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
  78. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +10 -10
  79. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +68 -68
  80. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  81. package/dist/bigconsole/pages/AdminPage.js +136 -136
  82. package/dist/bigconsole/pages/DashboardBuilderPage.js +10 -10
  83. package/dist/bigconsole/pages/DashboardViewPage.js +61 -61
  84. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  85. package/dist/bigconsole/pages/DashboardsPage.js +327 -348
  86. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  87. package/dist/bigconsole/pages/DataParsersPage.js +5 -5
  88. package/dist/bigconsole/pages/DataSinkBuilderPage.js +10 -10
  89. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  90. package/dist/bigconsole/pages/DataSinkViewPage.js +83 -83
  91. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  92. package/dist/bigconsole/pages/DataSinksPage.js +11 -11
  93. package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
  94. package/dist/bigconsole/pages/InsightsPage.js +315 -315
  95. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  96. package/dist/bigconsole/pages/OverviewPage.js +244 -0
  97. package/dist/bigconsole/pages/OverviewPage.js.map +1 -0
  98. package/dist/bigconsole/pages/ParserBuilderPage.js +5 -5
  99. package/dist/bigconsole/pages/ParserViewPage.js +98 -98
  100. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  101. package/dist/bigconsole/pages/PipelineBuilderPage.js +8 -8
  102. package/dist/bigconsole/pages/PipelineViewPage.js +46 -46
  103. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  104. package/dist/bigconsole/pages/PipelinesPage.js +80 -80
  105. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  106. package/dist/bigconsole/pages/SettingsPage.js +70 -70
  107. package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
  108. package/dist/bigconsole/pages/WorkflowViewPage.js +200 -200
  109. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  110. package/dist/bigconsole/pages/WorkflowsPage.js +78 -78
  111. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  112. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +34 -34
  113. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +79 -79
  114. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
  115. package/dist/bigconsole/utils/createDialogParam.js +14 -0
  116. package/dist/bigconsole/utils/createDialogParam.js.map +1 -0
  117. package/dist/generated/global-operations.js +1 -1
  118. package/dist/generated/wspace-operations.js +285 -222
  119. package/dist/generated/wspace-operations.js.map +1 -1
  120. package/dist/shared/hooks/useTr.js +10 -7
  121. package/dist/shared/hooks/useTr.js.map +1 -1
  122. package/package.json +1 -1
  123. package/dist/bigconsole/pages/HomePage.js +0 -318
  124. package/dist/bigconsole/pages/HomePage.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { memo as e, useCallback as t, useEffect as n, useMemo as r, useRef as i, useState as a } from "react";
2
- import { useI18n as o } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
- import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
2
+ import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
3
+ import { useI18n as l } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
4
4
  //#region src/bigconsole/components/datasink/CacheTTLSelector.tsx
5
5
  var u = [
6
6
  300,
@@ -12,7 +12,7 @@ function d(e) {
12
12
  return e === null ? !1 : u.includes(e);
13
13
  }
14
14
  var f = e(function({ value: e, onChange: u, disabled: f = !1, error: p, hideLabel: m = !1 }) {
15
- let { t: h } = o(), g = r(() => [
15
+ let { t: h } = l(), g = r(() => [
16
16
  {
17
17
  value: 300,
18
18
  label: h("bigconsole.dataSinks.cacheTtl.preset5MinutesLabel", "5 minutes"),
@@ -72,21 +72,21 @@ var f = e(function({ value: e, onChange: u, disabled: f = !1, error: p, hideLabe
72
72
  }
73
73
  C(null), u(n);
74
74
  }, [u, h]);
75
- return /* @__PURE__ */ l("div", {
75
+ return /* @__PURE__ */ c("div", {
76
76
  className: "space-y-form-gap",
77
77
  children: [
78
- !m && /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("label", {
78
+ !m && /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("label", {
79
79
  className: "block text-sm font-medium text-text-primary mb-1",
80
80
  children: h("bigconsole.dataSinks.cacheTtl.heading", "Cache Duration")
81
- }), /* @__PURE__ */ c("p", {
81
+ }), /* @__PURE__ */ s("p", {
82
82
  className: "text-xs text-text-secondary",
83
83
  children: h("bigconsole.dataSinks.cacheTtl.headingDescription", "How long should data be cached before refreshing?")
84
84
  })] }),
85
- /* @__PURE__ */ l("div", {
85
+ /* @__PURE__ */ c("div", {
86
86
  role: "group",
87
87
  "aria-label": h("bigconsole.dataSinks.cacheTtl.heading", "Cache Duration"),
88
88
  className: "space-y-list-gap",
89
- children: [g.map((t) => /* @__PURE__ */ l("label", {
89
+ children: [g.map((t) => /* @__PURE__ */ c("label", {
90
90
  className: `
91
91
  flex cursor-pointer items-start gap-3
92
92
  rounded-input
@@ -95,30 +95,30 @@ var f = e(function({ value: e, onChange: u, disabled: f = !1, error: p, hideLabe
95
95
  ${f ? "cursor-not-allowed opacity-50" : ""}
96
96
  ${!v && e === t.value ? "border-[var(--color-action-primary-bg)] bg-bg-accentSubtle" : "border-[var(--color-border-subtle)] hover:border-[var(--color-border-strong)]"}
97
97
  `,
98
- children: [/* @__PURE__ */ c("input", {
98
+ children: [/* @__PURE__ */ s("input", {
99
99
  type: "radio",
100
100
  name: "cache-ttl",
101
101
  checked: !v && e === t.value,
102
102
  onChange: () => T(t.value),
103
103
  disabled: f,
104
104
  className: "\n mt-0.5\n h-4 w-4\n border-[var(--color-border-default)]\n text-action-primary-bg\n focus-visible:ring-2\n focus-visible:ring-ring\n "
105
- }), /* @__PURE__ */ l("div", {
105
+ }), /* @__PURE__ */ c("div", {
106
106
  className: "flex-1",
107
- children: [/* @__PURE__ */ l("div", {
107
+ children: [/* @__PURE__ */ c("div", {
108
108
  className: "flex items-center gap-2",
109
- children: [/* @__PURE__ */ c("span", {
109
+ children: [/* @__PURE__ */ s("span", {
110
110
  className: "text-sm font-medium text-text-primary",
111
111
  children: t.label
112
- }), t.recommended && /* @__PURE__ */ c("span", {
112
+ }), t.recommended && /* @__PURE__ */ s("span", {
113
113
  className: "px-1.5 py-0.5 text-xs font-medium bg-action-primary-bg/10 text-action-primary-bg rounded",
114
114
  children: h("bigconsole.dataSinks.cacheTtl.recommendedBadge", "Recommended")
115
115
  })]
116
- }), /* @__PURE__ */ c("p", {
116
+ }), /* @__PURE__ */ s("p", {
117
117
  className: "text-xs text-text-secondary mt-0.5",
118
118
  children: t.description
119
119
  })]
120
120
  })]
121
- }, t.value)), /* @__PURE__ */ l("label", {
121
+ }, t.value)), /* @__PURE__ */ c("label", {
122
122
  className: `
123
123
  flex cursor-pointer items-start gap-3
124
124
  rounded-input
@@ -127,28 +127,28 @@ var f = e(function({ value: e, onChange: u, disabled: f = !1, error: p, hideLabe
127
127
  ${f ? "cursor-not-allowed opacity-50" : ""}
128
128
  ${v ? "border-[var(--color-action-primary-bg)] bg-bg-accentSubtle" : "border-[var(--color-border-subtle)] hover:border-[var(--color-border-strong)]"}
129
129
  `,
130
- children: [/* @__PURE__ */ c("input", {
130
+ children: [/* @__PURE__ */ s("input", {
131
131
  type: "radio",
132
132
  name: "cache-ttl",
133
133
  checked: v,
134
134
  onChange: E,
135
135
  disabled: f,
136
136
  className: "\n mt-0.5\n h-4 w-4\n border-[var(--color-border-default)]\n text-action-primary-bg\n focus-visible:ring-2\n focus-visible:ring-ring\n "
137
- }), /* @__PURE__ */ l("div", {
137
+ }), /* @__PURE__ */ c("div", {
138
138
  className: "flex-1",
139
139
  children: [
140
- /* @__PURE__ */ c("span", {
140
+ /* @__PURE__ */ s("span", {
141
141
  className: "text-sm font-medium text-text-primary",
142
142
  children: h("bigconsole.dataSinks.cacheTtl.customLabel", "Custom")
143
143
  }),
144
- /* @__PURE__ */ c("p", {
144
+ /* @__PURE__ */ s("p", {
145
145
  className: "text-xs text-text-secondary mt-0.5",
146
146
  children: h("bigconsole.dataSinks.cacheTtl.customDescription", "Enter a custom cache duration (30 - 86400 seconds)")
147
147
  }),
148
- v && /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ l("div", {
148
+ v && /* @__PURE__ */ c(o, { children: [/* @__PURE__ */ c("div", {
149
149
  className: "mt-3 flex flex-wrap items-center gap-2",
150
150
  children: [
151
- /* @__PURE__ */ c("input", {
151
+ /* @__PURE__ */ s("input", {
152
152
  type: "number",
153
153
  "aria-label": "Custom cache duration in seconds",
154
154
  value: b,
@@ -169,11 +169,11 @@ var f = e(function({ value: e, onChange: u, disabled: f = !1, error: p, hideLabe
169
169
  ${p || S ? "border-[var(--color-status-error-border)]" : "border-[var(--color-border-default)]"}
170
170
  `
171
171
  }),
172
- /* @__PURE__ */ c("span", {
172
+ /* @__PURE__ */ s("span", {
173
173
  className: "text-sm text-text-secondary",
174
174
  children: h("bigconsole.dataSinks.cacheTtl.secondsUnit", "seconds")
175
175
  }),
176
- b && !isNaN(parseInt(b)) && !S && /* @__PURE__ */ l("span", {
176
+ b && !isNaN(parseInt(b)) && !S && /* @__PURE__ */ c("span", {
177
177
  className: "text-xs text-text-muted",
178
178
  children: [
179
179
  "(",
@@ -182,20 +182,20 @@ var f = e(function({ value: e, onChange: u, disabled: f = !1, error: p, hideLabe
182
182
  ]
183
183
  })
184
184
  ]
185
- }), S && /* @__PURE__ */ l("div", {
185
+ }), S && /* @__PURE__ */ c("div", {
186
186
  className: "flex items-center gap-1 mt-1",
187
- children: [/* @__PURE__ */ c("svg", {
187
+ children: [/* @__PURE__ */ s("svg", {
188
188
  className: "w-3.5 h-3.5 text-status-error-text flex-shrink-0",
189
189
  fill: "none",
190
190
  stroke: "currentColor",
191
191
  viewBox: "0 0 24 24",
192
- children: /* @__PURE__ */ c("path", {
192
+ children: /* @__PURE__ */ s("path", {
193
193
  strokeLinecap: "round",
194
194
  strokeLinejoin: "round",
195
195
  strokeWidth: 2,
196
196
  d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
197
197
  })
198
- }), /* @__PURE__ */ c("span", {
198
+ }), /* @__PURE__ */ s("span", {
199
199
  className: "text-xs text-status-error-text",
200
200
  children: S
201
201
  })]
@@ -204,38 +204,38 @@ var f = e(function({ value: e, onChange: u, disabled: f = !1, error: p, hideLabe
204
204
  })]
205
205
  })]
206
206
  }),
207
- p && /* @__PURE__ */ l("div", {
207
+ p && /* @__PURE__ */ c("div", {
208
208
  className: "flex items-start gap-2",
209
- children: [/* @__PURE__ */ c("svg", {
209
+ children: [/* @__PURE__ */ s("svg", {
210
210
  className: "w-4 h-4 text-status-error-text flex-shrink-0 mt-0.5",
211
211
  fill: "none",
212
212
  stroke: "currentColor",
213
213
  viewBox: "0 0 24 24",
214
- children: /* @__PURE__ */ c("path", {
214
+ children: /* @__PURE__ */ s("path", {
215
215
  strokeLinecap: "round",
216
216
  strokeLinejoin: "round",
217
217
  strokeWidth: 2,
218
218
  d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
219
219
  })
220
- }), /* @__PURE__ */ c("p", {
220
+ }), /* @__PURE__ */ s("p", {
221
221
  className: "text-xs text-status-error-text",
222
222
  children: p
223
223
  })]
224
224
  }),
225
- e !== null && !p && /* @__PURE__ */ l("div", {
225
+ e !== null && !p && /* @__PURE__ */ c("div", {
226
226
  className: "flex items-center gap-2 text-xs text-text-secondary",
227
- children: [/* @__PURE__ */ c("svg", {
227
+ children: [/* @__PURE__ */ s("svg", {
228
228
  className: "w-4 h-4",
229
229
  fill: "none",
230
230
  stroke: "currentColor",
231
231
  viewBox: "0 0 24 24",
232
- children: /* @__PURE__ */ c("path", {
232
+ children: /* @__PURE__ */ s("path", {
233
233
  strokeLinecap: "round",
234
234
  strokeLinejoin: "round",
235
235
  strokeWidth: 2,
236
236
  d: "M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
237
237
  })
238
- }), /* @__PURE__ */ c("span", { children: h("bigconsole.dataSinks.cacheTtl.infoCachedFor", "Data will be cached for {{duration}} before being refreshed", { duration: _(e) }) })]
238
+ }), /* @__PURE__ */ s("span", { children: h("bigconsole.dataSinks.cacheTtl.infoCachedFor", "Data will be cached for {{duration}} before being refreshed", { duration: _(e) }) })]
239
239
  })
240
240
  ]
241
241
  });
@@ -3,11 +3,11 @@ import { Section as t } from "../common/Section.js";
3
3
  import "../common/index.js";
4
4
  import { useModalFocusTrap as n } from "../../hooks/useModalFocusTrap.js";
5
5
  import { memo as r, useCallback as i, useId as a, useRef as o } from "react";
6
- import { useI18n as s } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
6
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
7
+ import { useI18n as l } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
8
8
  //#region src/bigconsole/components/datasink/DataSinkDeleteDialog.tsx
9
9
  var u = `min-h-[var(--size-controlHeight-md)] rounded-button px-4 py-2 text-sm font-medium disabled:cursor-not-allowed disabled:opacity-50 motion-safe:transition-colors ${e}`, d = r(function({ dataSink: e, isOpen: r, onClose: d, onConfirm: f, isDeleting: p = !1 }) {
10
- let { t: m } = s(), h = a(), g = a(), _ = o(null), v = o(null);
10
+ let { t: m } = l(), h = a(), g = a(), _ = o(null), v = o(null);
11
11
  n({
12
12
  isOpen: r,
13
13
  panelRef: _,
@@ -19,10 +19,10 @@ var u = `min-h-[var(--size-controlHeight-md)] rounded-button px-4 py-2 text-sm f
19
19
  let y = i((e) => {
20
20
  e.target === e.currentTarget && !p && d();
21
21
  }, [p, d]);
22
- return r ? /* @__PURE__ */ c("div", {
22
+ return r ? /* @__PURE__ */ s("div", {
23
23
  className: "fixed inset-0 z-50 flex items-center justify-center bg-[var(--color-bg-overlay)] p-4",
24
24
  onClick: y,
25
- children: /* @__PURE__ */ l("div", {
25
+ children: /* @__PURE__ */ c("div", {
26
26
  ref: _,
27
27
  role: "dialog",
28
28
  "aria-modal": "true",
@@ -31,63 +31,63 @@ var u = `min-h-[var(--size-controlHeight-md)] rounded-button px-4 py-2 text-sm f
31
31
  tabIndex: -1,
32
32
  className: "flex max-h-[90vh] w-full max-w-md flex-col rounded-card border border-[var(--color-border-subtle)] bg-bg-surface shadow-[var(--shadow-elevation-3)] focus:outline-none",
33
33
  children: [
34
- /* @__PURE__ */ c("div", {
34
+ /* @__PURE__ */ s("div", {
35
35
  className: "border-b border-[var(--color-border-subtle)] p-form-gap sm:p-card-padding",
36
- children: /* @__PURE__ */ c("h2", {
36
+ children: /* @__PURE__ */ s("h2", {
37
37
  id: h,
38
38
  className: "text-lg font-semibold text-text-primary",
39
39
  children: m("bigconsole.dataSinks.deleteDialog.title", "Delete DataSink")
40
40
  })
41
41
  }),
42
- /* @__PURE__ */ l("div", {
42
+ /* @__PURE__ */ c("div", {
43
43
  className: "min-w-0 flex-1 space-y-form-gap overflow-y-auto p-form-gap sm:p-card-padding",
44
44
  children: [
45
- /* @__PURE__ */ c("p", {
45
+ /* @__PURE__ */ s("p", {
46
46
  id: g,
47
47
  className: "text-sm text-text-primary",
48
48
  children: m("bigconsole.dataSinks.deleteDialog.confirmMessage", "Are you sure you want to delete this DataSink?")
49
49
  }),
50
- /* @__PURE__ */ l(t, {
50
+ /* @__PURE__ */ c(t, {
51
51
  emphasis: "muted",
52
52
  padding: "compact",
53
53
  headingLevel: 3,
54
54
  title: "Data sink",
55
55
  headerClassName: "mb-control-gap",
56
- children: [/* @__PURE__ */ c("p", {
56
+ children: [/* @__PURE__ */ s("p", {
57
57
  className: "text-sm font-medium text-text-primary",
58
58
  children: e.name || m("bigconsole.dataSinks.deleteDialog.untitledName", "Untitled DataSink")
59
- }), /* @__PURE__ */ c("p", {
59
+ }), /* @__PURE__ */ s("p", {
60
60
  className: "mt-1 break-all font-mono text-xs text-text-secondary",
61
61
  children: e.key
62
62
  })]
63
63
  }),
64
- e.linkedWorkflowCount && e.linkedWorkflowCount > 0 ? /* @__PURE__ */ c(t, {
64
+ e.linkedWorkflowCount && e.linkedWorkflowCount > 0 ? /* @__PURE__ */ s(t, {
65
65
  tone: "warning",
66
66
  padding: "compact",
67
67
  headingLevel: 3,
68
68
  title: "Workflow links will be removed",
69
69
  headerClassName: "mb-control-gap",
70
- children: /* @__PURE__ */ c("p", {
70
+ children: /* @__PURE__ */ s("p", {
71
71
  className: "text-sm text-[var(--color-status-warning-text)]",
72
72
  children: e.linkedWorkflowCount === 1 ? m("bigconsole.dataSinks.deleteDialog.linkedWorkflowWarningSingular", "This DataSink is linked to {{count}} workflow. Deleting it will remove these links.", { count: e.linkedWorkflowCount }) : m("bigconsole.dataSinks.deleteDialog.linkedWorkflowWarningPlural", "This DataSink is linked to {{count}} workflows. Deleting it will remove these links.", { count: e.linkedWorkflowCount })
73
73
  })
74
74
  }) : null,
75
- /* @__PURE__ */ c("p", {
75
+ /* @__PURE__ */ s("p", {
76
76
  className: "text-sm text-status-error-text",
77
77
  children: m("bigconsole.dataSinks.deleteDialog.cannotBeUndone", "This action cannot be undone.")
78
78
  })
79
79
  ]
80
80
  }),
81
- /* @__PURE__ */ l("div", {
81
+ /* @__PURE__ */ c("div", {
82
82
  className: "flex flex-wrap items-center justify-end gap-control-gap border-t border-[var(--color-border-subtle)] p-form-gap sm:p-card-padding",
83
- children: [/* @__PURE__ */ c("button", {
83
+ children: [/* @__PURE__ */ s("button", {
84
84
  ref: v,
85
85
  type: "button",
86
86
  onClick: d,
87
87
  disabled: p,
88
88
  className: `${u} bg-bg-sunken text-text-primary hover:bg-bg-elevated`,
89
89
  children: m("bigconsole.dataSinks.deleteDialog.cancelButton", "Cancel")
90
- }), /* @__PURE__ */ c("button", {
90
+ }), /* @__PURE__ */ s("button", {
91
91
  type: "button",
92
92
  onClick: f,
93
93
  disabled: p,
@@ -2,86 +2,86 @@ import { SECTION_FOCUS_RING as e } from "../common/sectionStyles.js";
2
2
  import { Section as t } from "../common/Section.js";
3
3
  import "../common/index.js";
4
4
  import { memo as n, useCallback as r, useState as i } from "react";
5
- import { useI18n as a } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
6
+ import { useI18n as s } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
7
  //#region src/bigconsole/components/datasink/DataSinkRefreshDialog.tsx
8
8
  var c = `min-h-[var(--size-controlHeight-md)] rounded-button px-4 py-2 text-sm font-medium disabled:cursor-not-allowed disabled:opacity-50 motion-safe:transition-colors ${e}`, l = n(function({ dataSink: n, isOpen: l, onClose: u, onConfirm: d, isRefreshing: f = !1 }) {
9
- let { t: p } = a(), [m, h] = i(!1), g = r((e) => {
9
+ let { t: p } = s(), [m, h] = i(!1), g = r((e) => {
10
10
  e.target === e.currentTarget && !f && u();
11
11
  }, [f, u]), _ = (e) => new Date(e).toLocaleString(), v = r(() => {
12
12
  d(m);
13
13
  }, [d, m]);
14
- return l ? /* @__PURE__ */ o("div", {
14
+ return l ? /* @__PURE__ */ a("div", {
15
15
  className: "fixed inset-0 z-50 flex items-center justify-center bg-[var(--color-bg-overlay)] p-4",
16
16
  onClick: g,
17
17
  role: "dialog",
18
18
  "aria-modal": "true",
19
19
  "aria-labelledby": "refresh-dialog-title",
20
- children: /* @__PURE__ */ s("div", {
20
+ children: /* @__PURE__ */ o("div", {
21
21
  className: "flex max-h-[90vh] w-full max-w-md flex-col rounded-card border border-[var(--color-border-subtle)] bg-bg-surface shadow-[var(--shadow-elevation-3)]",
22
22
  children: [
23
- /* @__PURE__ */ o("div", {
23
+ /* @__PURE__ */ a("div", {
24
24
  className: "border-b border-[var(--color-border-subtle)] p-form-gap sm:p-card-padding",
25
- children: /* @__PURE__ */ o("h2", {
25
+ children: /* @__PURE__ */ a("h2", {
26
26
  id: "refresh-dialog-title",
27
27
  className: "text-lg font-semibold text-text-primary",
28
28
  children: p("bigconsole.dataSinks.refreshDialog.title", "Refresh DataSink")
29
29
  })
30
30
  }),
31
- /* @__PURE__ */ s("div", {
31
+ /* @__PURE__ */ o("div", {
32
32
  className: "min-w-0 flex-1 space-y-form-gap overflow-y-auto p-form-gap sm:p-card-padding",
33
- children: [/* @__PURE__ */ s(t, {
33
+ children: [/* @__PURE__ */ o(t, {
34
34
  emphasis: "muted",
35
35
  padding: "compact",
36
36
  headingLevel: 3,
37
37
  title: "Data sink",
38
38
  headerClassName: "mb-control-gap",
39
39
  children: [
40
- /* @__PURE__ */ o("p", {
40
+ /* @__PURE__ */ a("p", {
41
41
  className: "text-sm font-medium text-text-primary",
42
42
  children: n.name || p("bigconsole.dataSinks.refreshDialog.untitledName", "Untitled DataSink")
43
43
  }),
44
- /* @__PURE__ */ o("p", {
44
+ /* @__PURE__ */ a("p", {
45
45
  className: "mt-1 break-all font-mono text-xs text-text-secondary",
46
46
  children: n.key
47
47
  }),
48
- n.lastRefreshedAt && /* @__PURE__ */ o("p", {
48
+ n.lastRefreshedAt && /* @__PURE__ */ a("p", {
49
49
  className: "mt-2 text-xs text-text-secondary",
50
50
  children: p("bigconsole.dataSinks.refreshDialog.lastRefreshed", "Last refreshed: {{date}}", { date: _(n.lastRefreshedAt) })
51
51
  })
52
52
  ]
53
- }), /* @__PURE__ */ s(t, {
53
+ }), /* @__PURE__ */ o(t, {
54
54
  emphasis: "bare",
55
55
  padding: "none",
56
56
  headingLevel: 3,
57
57
  title: "Options",
58
58
  headerClassName: "mb-control-gap",
59
- children: [/* @__PURE__ */ s("label", {
59
+ children: [/* @__PURE__ */ o("label", {
60
60
  className: "flex min-h-[var(--size-controlHeight-md)] cursor-pointer items-center gap-2",
61
- children: [/* @__PURE__ */ o("input", {
61
+ children: [/* @__PURE__ */ a("input", {
62
62
  type: "checkbox",
63
63
  checked: m,
64
64
  onChange: (e) => h(e.target.checked),
65
65
  className: `h-4 w-4 rounded ${e}`
66
- }), /* @__PURE__ */ o("span", {
66
+ }), /* @__PURE__ */ a("span", {
67
67
  className: "text-sm text-text-primary",
68
68
  children: p("bigconsole.dataSinks.refreshDialog.forceRefreshLabel", "Force refresh (bypass cache)")
69
69
  })]
70
- }), /* @__PURE__ */ o("p", {
70
+ }), /* @__PURE__ */ a("p", {
71
71
  className: "mt-1 text-xs text-text-secondary",
72
72
  children: p("bigconsole.dataSinks.refreshDialog.forceRefreshDescription", "Force refresh will re-fetch all data from the source, ignoring any cached values.")
73
73
  })]
74
74
  })]
75
75
  }),
76
- /* @__PURE__ */ s("div", {
76
+ /* @__PURE__ */ o("div", {
77
77
  className: "flex flex-wrap items-center justify-end gap-control-gap border-t border-[var(--color-border-subtle)] p-form-gap sm:p-card-padding",
78
- children: [/* @__PURE__ */ o("button", {
78
+ children: [/* @__PURE__ */ a("button", {
79
79
  type: "button",
80
80
  onClick: u,
81
81
  disabled: f,
82
82
  className: `${c} bg-bg-sunken text-text-primary hover:bg-bg-elevated`,
83
83
  children: p("bigconsole.dataSinks.refreshDialog.cancelButton", "Cancel")
84
- }), /* @__PURE__ */ o("button", {
84
+ }), /* @__PURE__ */ a("button", {
85
85
  type: "button",
86
86
  onClick: v,
87
87
  disabled: f,
@@ -1,98 +1,99 @@
1
- import { memo as e } from "react";
2
- import { jsx as t, jsxs as n } from "react/jsx-runtime";
1
+ import { useTr as e } from "../../../shared/hooks/useTr.js";
2
+ import { memo as t } from "react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
3
4
  //#region src/bigconsole/components/datasink/DataSinkStatusBadge.tsx
4
- var r = e(function({ status: e, size: r = "md", showIcon: i = !0 }) {
5
- let a = {
5
+ var i = t(function({ status: t, size: i = "md", showIcon: a = !0 }) {
6
+ let o = e(), s = {
6
7
  sm: "px-2 py-0.5 text-xs",
7
8
  md: "px-2.5 py-1 text-sm",
8
9
  lg: "px-3 py-1.5 text-base"
9
- }, o = {
10
+ }, c = {
10
11
  sm: "w-3 h-3",
11
12
  md: "w-4 h-4",
12
13
  lg: "w-5 h-5"
13
- }, s = {
14
+ }, l = {
14
15
  ready: {
15
16
  bg: "bg-status-success-bg/10",
16
17
  text: "text-status-success-text",
17
- icon: /* @__PURE__ */ t("svg", {
18
- className: o[r],
18
+ icon: /* @__PURE__ */ n("svg", {
19
+ className: c[i],
19
20
  fill: "none",
20
21
  stroke: "currentColor",
21
22
  viewBox: "0 0 24 24",
22
- children: /* @__PURE__ */ t("path", {
23
+ children: /* @__PURE__ */ n("path", {
23
24
  strokeLinecap: "round",
24
25
  strokeLinejoin: "round",
25
26
  strokeWidth: 2,
26
27
  d: "M5 13l4 4L19 7"
27
28
  })
28
29
  }),
29
- label: "Ready"
30
+ label: o("bigconsole.dataSinks.status.ready", "Ready")
30
31
  },
31
32
  error: {
32
33
  bg: "bg-status-error-bg/10",
33
34
  text: "text-status-error-text",
34
- icon: /* @__PURE__ */ t("svg", {
35
- className: o[r],
35
+ icon: /* @__PURE__ */ n("svg", {
36
+ className: c[i],
36
37
  fill: "none",
37
38
  stroke: "currentColor",
38
39
  viewBox: "0 0 24 24",
39
- children: /* @__PURE__ */ t("path", {
40
+ children: /* @__PURE__ */ n("path", {
40
41
  strokeLinecap: "round",
41
42
  strokeLinejoin: "round",
42
43
  strokeWidth: 2,
43
44
  d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
44
45
  })
45
46
  }),
46
- label: "Error"
47
+ label: o("bigconsole.dataSinks.status.error", "Error")
47
48
  },
48
49
  stale: {
49
50
  bg: "bg-status-warning-bg/10",
50
51
  text: "text-[var(--color-status-warning-text)]",
51
- icon: /* @__PURE__ */ t("svg", {
52
- className: o[r],
52
+ icon: /* @__PURE__ */ n("svg", {
53
+ className: c[i],
53
54
  fill: "none",
54
55
  stroke: "currentColor",
55
56
  viewBox: "0 0 24 24",
56
- children: /* @__PURE__ */ t("path", {
57
+ children: /* @__PURE__ */ n("path", {
57
58
  strokeLinecap: "round",
58
59
  strokeLinejoin: "round",
59
60
  strokeWidth: 2,
60
61
  d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"
61
62
  })
62
63
  }),
63
- label: "Stale"
64
+ label: o("bigconsole.dataSinks.status.stale", "Stale")
64
65
  },
65
66
  refreshing: {
66
67
  bg: "bg-action-primary-bg/10",
67
68
  text: "text-action-primary-bg",
68
- icon: /* @__PURE__ */ t("svg", {
69
- className: `${o[r]} animate-spin`,
69
+ icon: /* @__PURE__ */ n("svg", {
70
+ className: `${c[i]} animate-spin`,
70
71
  fill: "none",
71
72
  stroke: "currentColor",
72
73
  viewBox: "0 0 24 24",
73
- children: /* @__PURE__ */ t("path", {
74
+ children: /* @__PURE__ */ n("path", {
74
75
  strokeLinecap: "round",
75
76
  strokeLinejoin: "round",
76
77
  strokeWidth: 2,
77
78
  d: "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"
78
79
  })
79
80
  }),
80
- label: "Refreshing"
81
+ label: o("bigconsole.dataSinks.status.refreshing", "Refreshing")
81
82
  }
82
- }[e];
83
- return s ? /* @__PURE__ */ n("span", {
83
+ }[t];
84
+ return l ? /* @__PURE__ */ r("span", {
84
85
  className: `
85
86
  inline-flex items-center gap-1.5
86
- ${a[r]}
87
- ${s.bg}
88
- ${s.text}
87
+ ${s[i]}
88
+ ${l.bg}
89
+ ${l.text}
89
90
  rounded-full
90
91
  font-medium
91
92
  `,
92
- children: [i && s.icon, /* @__PURE__ */ t("span", { children: s.label })]
93
+ children: [a && l.icon, /* @__PURE__ */ n("span", { children: l.label })]
93
94
  }) : null;
94
95
  });
95
96
  //#endregion
96
- export { r as default };
97
+ export { i as default };
97
98
 
98
99
  //# sourceMappingURL=DataSinkStatusBadge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataSinkStatusBadge.js","names":[],"sources":["../../../../src/bigconsole/components/datasink/DataSinkStatusBadge.tsx"],"sourcesContent":["/**\n * DataSink Status Badge\n *\n * Display badge showing DataSink status with icon and color coding.\n */\n\nimport { memo, type ReactNode } from 'react';\nimport type { DataSinkStatus } from '../../types';\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\ninterface DataSinkStatusBadgeProps {\n /** DataSink status */\n status: DataSinkStatus;\n /** Badge size */\n size?: 'sm' | 'md' | 'lg';\n /** Whether to show icon */\n showIcon?: boolean;\n}\n\ninterface StatusConfig {\n bg: string;\n text: string;\n icon: ReactNode;\n label: string;\n}\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport const DataSinkStatusBadge = memo(function DataSinkStatusBadge({\n status,\n size = 'md',\n showIcon = true,\n}: DataSinkStatusBadgeProps) {\n const sizeClasses: Record<string, string> = {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n };\n\n const iconSizes: Record<string, string> = {\n sm: 'w-3 h-3',\n md: 'w-4 h-4',\n lg: 'w-5 h-5',\n };\n\n const statusConfigs: Record<DataSinkStatus, StatusConfig> = {\n ready: {\n bg: 'bg-status-success-bg/10',\n text: 'text-status-success-text',\n icon: (\n <svg className={iconSizes[size]} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\n </svg>\n ),\n label: 'Ready',\n },\n error: {\n bg: 'bg-status-error-bg/10',\n text: 'text-status-error-text',\n icon: (\n <svg className={iconSizes[size]} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n label: 'Error',\n },\n stale: {\n bg: 'bg-status-warning-bg/10',\n text: 'text-[var(--color-status-warning-text)]',\n icon: (\n <svg className={iconSizes[size]} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n label: 'Stale',\n },\n refreshing: {\n bg: 'bg-action-primary-bg/10',\n text: 'text-action-primary-bg',\n icon: (\n <svg className={`${iconSizes[size]} animate-spin`} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"\n />\n </svg>\n ),\n label: 'Refreshing',\n },\n };\n\n const config = statusConfigs[status];\n\n if (!config) {\n return null;\n }\n\n return (\n <span\n className={`\n inline-flex items-center gap-1.5\n ${sizeClasses[size]}\n ${config.bg}\n ${config.text}\n rounded-full\n font-medium\n `}\n >\n {showIcon && config.icon}\n <span>{config.label}</span>\n </span>\n );\n});\n\nexport default DataSinkStatusBadge;\n"],"mappings":";;;AAiCA,IAAa,IAAsB,EAAK,SAA6B,EACnE,WACA,UAAO,MACP,cAAW,MACgB;CAC3B,IAAM,IAAsC;EAC1C,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EAEK,IAAoC;EACxC,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EA4DK,IA1DsD;EAC1D,OAAO;GACL,IAAI;GACJ,MAAM;GACN,MACE,kBAAC,OAAD;IAAK,WAAW,EAAU;IAAO,MAAK;IAAO,QAAO;IAAe,SAAQ;cACzE,kBAAC,QAAD;KAAM,eAAc;KAAQ,gBAAe;KAAQ,aAAa;KAAG,GAAE;KAAmB,CAAA;IACpF,CAAA;GAER,OAAO;GACR;EACD,OAAO;GACL,IAAI;GACJ,MAAM;GACN,MACE,kBAAC,OAAD;IAAK,WAAW,EAAU;IAAO,MAAK;IAAO,QAAO;IAAe,SAAQ;cACzE,kBAAC,QAAD;KACE,eAAc;KACd,gBAAe;KACf,aAAa;KACb,GAAE;KACF,CAAA;IACE,CAAA;GAER,OAAO;GACR;EACD,OAAO;GACL,IAAI;GACJ,MAAM;GACN,MACE,kBAAC,OAAD;IAAK,WAAW,EAAU;IAAO,MAAK;IAAO,QAAO;IAAe,SAAQ;cACzE,kBAAC,QAAD;KACE,eAAc;KACd,gBAAe;KACf,aAAa;KACb,GAAE;KACF,CAAA;IACE,CAAA;GAER,OAAO;GACR;EACD,YAAY;GACV,IAAI;GACJ,MAAM;GACN,MACE,kBAAC,OAAD;IAAK,WAAW,GAAG,EAAU,GAAM;IAAgB,MAAK;IAAO,QAAO;IAAe,SAAQ;cAC3F,kBAAC,QAAD;KACE,eAAc;KACd,gBAAe;KACf,aAAa;KACb,GAAE;KACF,CAAA;IACE,CAAA;GAER,OAAO;GACR;EACF,CAE4B;AAM7B,QAJK,IAKH,kBAAC,QAAD;EACE,WAAW;;UAEP,EAAY,GAAM;UAClB,EAAO,GAAG;UACV,EAAO,KAAK;;;;YALlB,CAUG,KAAY,EAAO,MACpB,kBAAC,QAAD,EAAA,UAAO,EAAO,OAAa,CAAA,CACtB;MAhBA;EAkBT"}
1
+ {"version":3,"file":"DataSinkStatusBadge.js","names":[],"sources":["../../../../src/bigconsole/components/datasink/DataSinkStatusBadge.tsx"],"sourcesContent":["/**\n * DataSink Status Badge\n *\n * Display badge showing DataSink status with icon and color coding.\n */\n\nimport { memo, type ReactNode } from 'react';\nimport { useTr } from '../../../shared/hooks/useTr';\nimport type { DataSinkStatus } from '../../types';\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\ninterface DataSinkStatusBadgeProps {\n /** DataSink status */\n status: DataSinkStatus;\n /** Badge size */\n size?: 'sm' | 'md' | 'lg';\n /** Whether to show icon */\n showIcon?: boolean;\n}\n\ninterface StatusConfig {\n bg: string;\n text: string;\n icon: ReactNode;\n label: string;\n}\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport const DataSinkStatusBadge = memo(function DataSinkStatusBadge({\n status,\n size = 'md',\n showIcon = true,\n}: DataSinkStatusBadgeProps) {\n const tr = useTr();\n const sizeClasses: Record<string, string> = {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n };\n\n const iconSizes: Record<string, string> = {\n sm: 'w-3 h-3',\n md: 'w-4 h-4',\n lg: 'w-5 h-5',\n };\n\n const statusConfigs: Record<DataSinkStatus, StatusConfig> = {\n ready: {\n bg: 'bg-status-success-bg/10',\n text: 'text-status-success-text',\n icon: (\n <svg className={iconSizes[size]} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" />\n </svg>\n ),\n label: tr('bigconsole.dataSinks.status.ready', 'Ready'),\n },\n error: {\n bg: 'bg-status-error-bg/10',\n text: 'text-status-error-text',\n icon: (\n <svg className={iconSizes[size]} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n label: tr('bigconsole.dataSinks.status.error', 'Error'),\n },\n stale: {\n bg: 'bg-status-warning-bg/10',\n text: 'text-[var(--color-status-warning-text)]',\n icon: (\n <svg className={iconSizes[size]} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\"\n />\n </svg>\n ),\n label: tr('bigconsole.dataSinks.status.stale', 'Stale'),\n },\n refreshing: {\n bg: 'bg-action-primary-bg/10',\n text: 'text-action-primary-bg',\n icon: (\n <svg className={`${iconSizes[size]} animate-spin`} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"\n />\n </svg>\n ),\n label: tr('bigconsole.dataSinks.status.refreshing', 'Refreshing'),\n },\n };\n\n const config = statusConfigs[status];\n\n if (!config) {\n return null;\n }\n\n return (\n <span\n className={`\n inline-flex items-center gap-1.5\n ${sizeClasses[size]}\n ${config.bg}\n ${config.text}\n rounded-full\n font-medium\n `}\n >\n {showIcon && config.icon}\n <span>{config.label}</span>\n </span>\n );\n});\n\nexport default DataSinkStatusBadge;\n"],"mappings":";;;;AAkCA,IAAa,IAAsB,EAAK,SAA6B,EACnE,WACA,UAAO,MACP,cAAW,MACgB;CAC3B,IAAM,IAAK,GAAO,EACZ,IAAsC;EAC1C,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EAEK,IAAoC;EACxC,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EA4DK,IA1DsD;EAC1D,OAAO;GACL,IAAI;GACJ,MAAM;GACN,MACE,kBAAC,OAAD;IAAK,WAAW,EAAU;IAAO,MAAK;IAAO,QAAO;IAAe,SAAQ;cACzE,kBAAC,QAAD;KAAM,eAAc;KAAQ,gBAAe;KAAQ,aAAa;KAAG,GAAE;KAAmB,CAAA;IACpF,CAAA;GAER,OAAO,EAAG,qCAAqC,QAAQ;GACxD;EACD,OAAO;GACL,IAAI;GACJ,MAAM;GACN,MACE,kBAAC,OAAD;IAAK,WAAW,EAAU;IAAO,MAAK;IAAO,QAAO;IAAe,SAAQ;cACzE,kBAAC,QAAD;KACE,eAAc;KACd,gBAAe;KACf,aAAa;KACb,GAAE;KACF,CAAA;IACE,CAAA;GAER,OAAO,EAAG,qCAAqC,QAAQ;GACxD;EACD,OAAO;GACL,IAAI;GACJ,MAAM;GACN,MACE,kBAAC,OAAD;IAAK,WAAW,EAAU;IAAO,MAAK;IAAO,QAAO;IAAe,SAAQ;cACzE,kBAAC,QAAD;KACE,eAAc;KACd,gBAAe;KACf,aAAa;KACb,GAAE;KACF,CAAA;IACE,CAAA;GAER,OAAO,EAAG,qCAAqC,QAAQ;GACxD;EACD,YAAY;GACV,IAAI;GACJ,MAAM;GACN,MACE,kBAAC,OAAD;IAAK,WAAW,GAAG,EAAU,GAAM;IAAgB,MAAK;IAAO,QAAO;IAAe,SAAQ;cAC3F,kBAAC,QAAD;KACE,eAAc;KACd,gBAAe;KACf,aAAa;KACb,GAAE;KACF,CAAA;IACE,CAAA;GAER,OAAO,EAAG,0CAA0C,aAAa;GAClE;EACF,CAE4B;AAM7B,QAJK,IAKH,kBAAC,QAAD;EACE,WAAW;;UAEP,EAAY,GAAM;UAClB,EAAO,GAAG;UACV,EAAO,KAAK;;;;YALlB,CAUG,KAAY,EAAO,MACpB,kBAAC,QAAD,EAAA,UAAO,EAAO,OAAa,CAAA,CACtB;MAhBA;EAkBT"}