@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.
- package/dist/bigconsole/BigConsoleRoutes.js +137 -138
- package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
- package/dist/bigconsole/assistant/previewController.js +10 -10
- package/dist/bigconsole/components/DrilldownDashboardRenderer.js +17 -17
- package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +32 -32
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +52 -52
- package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
- package/dist/bigconsole/components/dashboard/DashboardCanvas.js +7 -7
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +53 -0
- package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +1 -0
- package/dist/bigconsole/components/dashboard/DashboardToolbar.js +60 -60
- package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +21 -21
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +36 -36
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +38 -38
- package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +121 -121
- package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
- package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +22 -22
- package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
- package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +53 -53
- package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
- package/dist/bigconsole/components/dashboard/WidgetPalette.js +47 -47
- package/dist/bigconsole/components/dashboard/index.js +1 -0
- package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
- package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
- package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +30 -29
- package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -1
- package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +48 -48
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +103 -103
- package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
- package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
- package/dist/bigconsole/components/overview/DashboardGuide.js +214 -0
- package/dist/bigconsole/components/overview/DashboardGuide.js.map +1 -0
- package/dist/bigconsole/components/overview/DataHealthCard.js +97 -0
- package/dist/bigconsole/components/overview/DataHealthCard.js.map +1 -0
- package/dist/bigconsole/components/overview/OverviewQuickActions.js +32 -0
- package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +1 -0
- package/dist/bigconsole/components/overview/OverviewStatCard.js +57 -0
- package/dist/bigconsole/components/overview/OverviewStatCard.js.map +1 -0
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +107 -0
- package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +1 -0
- package/dist/bigconsole/components/overview/dashboardGuideSteps.js +119 -0
- package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +1 -0
- package/dist/bigconsole/components/overview/index.js +8 -0
- package/dist/bigconsole/components/overview/overviewModel.js +119 -0
- package/dist/bigconsole/components/overview/overviewModel.js.map +1 -0
- package/dist/bigconsole/components/overview/useOverviewData.js +48 -0
- package/dist/bigconsole/components/overview/useOverviewData.js.map +1 -0
- package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
- package/dist/bigconsole/components/parser/ImportParserDialog.js +127 -127
- package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
- package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
- package/dist/bigconsole/components/preview/AiPreviewContent.js +5 -5
- package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +33 -33
- package/dist/bigconsole/components/preview/AiPreviewPanel.js +38 -38
- package/dist/bigconsole/components/widgets/ActionConfigDialog.js +13 -13
- package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +70 -70
- package/dist/bigconsole/components/widgets/PropertiesPanel.js +28 -28
- package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +25 -25
- package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
- package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
- package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
- package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
- package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
- package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
- package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +21 -21
- package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
- package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
- package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
- package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
- package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
- package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
- package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
- package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
- package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +10 -10
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +68 -68
- package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
- package/dist/bigconsole/pages/AdminPage.js +136 -136
- package/dist/bigconsole/pages/DashboardBuilderPage.js +10 -10
- package/dist/bigconsole/pages/DashboardViewPage.js +61 -61
- package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
- package/dist/bigconsole/pages/DashboardsPage.js +327 -348
- package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
- package/dist/bigconsole/pages/DataParsersPage.js +5 -5
- package/dist/bigconsole/pages/DataSinkBuilderPage.js +10 -10
- package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSinkViewPage.js +83 -83
- package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
- package/dist/bigconsole/pages/DataSinksPage.js +11 -11
- package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
- package/dist/bigconsole/pages/InsightsPage.js +315 -315
- package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
- package/dist/bigconsole/pages/OverviewPage.js +244 -0
- package/dist/bigconsole/pages/OverviewPage.js.map +1 -0
- package/dist/bigconsole/pages/ParserBuilderPage.js +5 -5
- package/dist/bigconsole/pages/ParserViewPage.js +98 -98
- package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelineBuilderPage.js +8 -8
- package/dist/bigconsole/pages/PipelineViewPage.js +46 -46
- package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
- package/dist/bigconsole/pages/PipelinesPage.js +80 -80
- package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
- package/dist/bigconsole/pages/SettingsPage.js +70 -70
- package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
- package/dist/bigconsole/pages/WorkflowViewPage.js +200 -200
- package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
- package/dist/bigconsole/pages/WorkflowsPage.js +78 -78
- package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
- package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +34 -34
- package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +79 -79
- package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
- package/dist/bigconsole/utils/createDialogParam.js +14 -0
- package/dist/bigconsole/utils/createDialogParam.js.map +1 -0
- package/dist/generated/global-operations.js +1 -1
- package/dist/generated/wspace-operations.js +285 -222
- package/dist/generated/wspace-operations.js.map +1 -1
- package/dist/shared/hooks/useTr.js +10 -7
- package/dist/shared/hooks/useTr.js.map +1 -1
- package/package.json +1 -1
- package/dist/bigconsole/pages/HomePage.js +0 -318
- 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 {
|
|
3
|
-
import {
|
|
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 } =
|
|
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__ */
|
|
75
|
+
return /* @__PURE__ */ c("div", {
|
|
76
76
|
className: "space-y-form-gap",
|
|
77
77
|
children: [
|
|
78
|
-
!m && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
105
|
+
}), /* @__PURE__ */ c("div", {
|
|
106
106
|
className: "flex-1",
|
|
107
|
-
children: [/* @__PURE__ */
|
|
107
|
+
children: [/* @__PURE__ */ c("div", {
|
|
108
108
|
className: "flex items-center gap-2",
|
|
109
|
-
children: [/* @__PURE__ */
|
|
109
|
+
children: [/* @__PURE__ */ s("span", {
|
|
110
110
|
className: "text-sm font-medium text-text-primary",
|
|
111
111
|
children: t.label
|
|
112
|
-
}), t.recommended && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
137
|
+
}), /* @__PURE__ */ c("div", {
|
|
138
138
|
className: "flex-1",
|
|
139
139
|
children: [
|
|
140
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
185
|
+
}), S && /* @__PURE__ */ c("div", {
|
|
186
186
|
className: "flex items-center gap-1 mt-1",
|
|
187
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
207
|
+
p && /* @__PURE__ */ c("div", {
|
|
208
208
|
className: "flex items-start gap-2",
|
|
209
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
225
|
+
e !== null && !p && /* @__PURE__ */ c("div", {
|
|
226
226
|
className: "flex items-center gap-2 text-xs text-text-secondary",
|
|
227
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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 {
|
|
7
|
-
import {
|
|
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 } =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
34
|
+
/* @__PURE__ */ s("div", {
|
|
35
35
|
className: "border-b border-[var(--color-border-subtle)] p-form-gap sm:p-card-padding",
|
|
36
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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 {
|
|
6
|
-
import {
|
|
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 } =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
23
|
+
/* @__PURE__ */ a("div", {
|
|
24
24
|
className: "border-b border-[var(--color-border-subtle)] p-form-gap sm:p-card-padding",
|
|
25
|
-
children: /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
59
|
+
children: [/* @__PURE__ */ o("label", {
|
|
60
60
|
className: "flex min-h-[var(--size-controlHeight-md)] cursor-pointer items-center gap-2",
|
|
61
|
-
children: [/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
84
|
+
}), /* @__PURE__ */ a("button", {
|
|
85
85
|
type: "button",
|
|
86
86
|
onClick: v,
|
|
87
87
|
disabled: f,
|
|
@@ -1,98 +1,99 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
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
|
|
5
|
-
let
|
|
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
|
-
},
|
|
10
|
+
}, c = {
|
|
10
11
|
sm: "w-3 h-3",
|
|
11
12
|
md: "w-4 h-4",
|
|
12
13
|
lg: "w-5 h-5"
|
|
13
|
-
},
|
|
14
|
+
}, l = {
|
|
14
15
|
ready: {
|
|
15
16
|
bg: "bg-status-success-bg/10",
|
|
16
17
|
text: "text-status-success-text",
|
|
17
|
-
icon: /* @__PURE__ */
|
|
18
|
-
className:
|
|
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__ */
|
|
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__ */
|
|
35
|
-
className:
|
|
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__ */
|
|
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__ */
|
|
52
|
-
className:
|
|
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__ */
|
|
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__ */
|
|
69
|
-
className: `${
|
|
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__ */
|
|
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
|
-
}[
|
|
83
|
-
return
|
|
83
|
+
}[t];
|
|
84
|
+
return l ? /* @__PURE__ */ r("span", {
|
|
84
85
|
className: `
|
|
85
86
|
inline-flex items-center gap-1.5
|
|
86
|
-
${
|
|
87
|
-
${
|
|
88
|
-
${
|
|
87
|
+
${s[i]}
|
|
88
|
+
${l.bg}
|
|
89
|
+
${l.text}
|
|
89
90
|
rounded-full
|
|
90
91
|
font-medium
|
|
91
92
|
`,
|
|
92
|
-
children: [
|
|
93
|
+
children: [a && l.icon, /* @__PURE__ */ n("span", { children: l.label })]
|
|
93
94
|
}) : null;
|
|
94
95
|
});
|
|
95
96
|
//#endregion
|
|
96
|
-
export {
|
|
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":"
|
|
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"}
|