@burdenoff/microfe-bigconsole 2026.1012.4 → 2026.1012.5

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 (129) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.js +149 -140
  2. package/dist/bigconsole/assistant/assistantProduct.js +4 -1
  3. package/dist/bigconsole/assistant/displayCopy.d.ts +32 -0
  4. package/dist/bigconsole/assistant/pageContext.d.ts +14 -0
  5. package/dist/bigconsole/assistant/pageContext.js +6 -1
  6. package/dist/bigconsole/assistant/pageControls.d.ts +81 -0
  7. package/dist/bigconsole/assistant/pageControls.js +169 -0
  8. package/dist/bigconsole/assistant/previewControl.d.ts +16 -0
  9. package/dist/bigconsole/assistant/previewControl.js +10 -0
  10. package/dist/bigconsole/assistant/recordAdapters.js +27 -26
  11. package/dist/bigconsole/assistant/usePreviewControl.d.ts +2 -0
  12. package/dist/bigconsole/assistant/usePreviewControl.js +20 -0
  13. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +9 -9
  14. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +31 -31
  15. package/dist/bigconsole/components/common/SortBySelect.d.ts +11 -0
  16. package/dist/bigconsole/components/common/SortBySelect.js +29 -0
  17. package/dist/bigconsole/components/common/index.d.ts +1 -0
  18. package/dist/bigconsole/components/common/index.js +1 -0
  19. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +44 -44
  20. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +36 -36
  21. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +59 -59
  22. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +15 -15
  23. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
  24. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +41 -41
  25. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
  26. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +34 -34
  27. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +153 -153
  28. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +21 -21
  29. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
  30. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +134 -134
  31. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -101
  32. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +31 -31
  33. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +15 -15
  34. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
  35. package/dist/bigconsole/components/dashboard/WidgetPalette.js +46 -46
  36. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +37 -37
  37. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +66 -66
  38. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
  39. package/dist/bigconsole/components/datasink/DataSinkCard.js +51 -50
  40. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
  41. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
  42. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +47 -47
  43. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +91 -91
  44. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
  45. package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
  46. package/dist/bigconsole/components/parser/ImportParserDialog.js +120 -120
  47. package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
  48. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +10 -10
  49. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +77 -76
  50. package/dist/bigconsole/components/preview/AiPreviewPanel.js +96 -95
  51. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +4 -4
  52. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +93 -93
  53. package/dist/bigconsole/components/widgets/PropertiesPanel.js +507 -499
  54. package/dist/bigconsole/components/widgets/advanced/AdvancedWidgetConfig.js +14 -14
  55. package/dist/bigconsole/components/widgets/advanced/AdvancedWidgets.js +68 -67
  56. package/dist/bigconsole/components/widgets/advanced/boxPlotDescription.d.ts +7 -0
  57. package/dist/bigconsole/components/widgets/advanced/boxPlotDescription.js +12 -0
  58. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +4 -4
  59. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
  60. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
  61. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
  62. package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
  63. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
  64. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
  65. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +4 -4
  66. package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
  67. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
  68. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
  69. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
  70. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
  71. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
  72. package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
  73. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
  74. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +15 -15
  75. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +15 -15
  76. package/dist/bigconsole/constants/backendErrors.js +94 -0
  77. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +10 -10
  78. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +67 -67
  79. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +14 -0
  80. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +32 -0
  81. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +23 -0
  82. package/dist/bigconsole/hooks/useDataSinkAlerts.js +138 -113
  83. package/dist/bigconsole/hooks/useDrilldown.js +3 -3
  84. package/dist/bigconsole/hooks/useGlobalFilters.js +3 -3
  85. package/dist/bigconsole/pages/AdminPage.js +130 -130
  86. package/dist/bigconsole/pages/DashboardBuilderPage.js +72 -60
  87. package/dist/bigconsole/pages/DashboardViewPage.js +244 -221
  88. package/dist/bigconsole/pages/DashboardsPage.js +269 -221
  89. package/dist/bigconsole/pages/DataParsersPage.js +180 -157
  90. package/dist/bigconsole/pages/DataSinkAlertsPage.js +62 -55
  91. package/dist/bigconsole/pages/DataSinkBuilderPage.js +252 -234
  92. package/dist/bigconsole/pages/DataSinkViewPage.js +1 -1
  93. package/dist/bigconsole/pages/DataSinksPage.js +335 -299
  94. package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
  95. package/dist/bigconsole/pages/InsightsPage.js +279 -265
  96. package/dist/bigconsole/pages/OverviewPage.js +47 -47
  97. package/dist/bigconsole/pages/ParserBuilderPage.js +229 -213
  98. package/dist/bigconsole/pages/ParserViewPage.js +97 -97
  99. package/dist/bigconsole/pages/PipelineBuilderPage.js +256 -214
  100. package/dist/bigconsole/pages/PipelineViewPage.js +146 -146
  101. package/dist/bigconsole/pages/PipelinesPage.js +107 -88
  102. package/dist/bigconsole/pages/SettingsPage.js +179 -173
  103. package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
  104. package/dist/bigconsole/pages/WorkflowViewPage.js +1 -1
  105. package/dist/bigconsole/pages/WorkflowsPage.js +141 -141
  106. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +12 -12
  107. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +34 -34
  108. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +69 -69
  109. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
  110. package/dist/bigconsole/store/widgetStore.d.ts +12 -0
  111. package/dist/bigconsole/store/widgetStore.js +3 -1
  112. package/dist/bigconsole/utils/backendError.d.ts +18 -0
  113. package/dist/bigconsole/utils/backendError.js +42 -0
  114. package/dist/bigconsole/utils/dashboardList.d.ts +28 -0
  115. package/dist/bigconsole/utils/dashboardList.js +15 -0
  116. package/dist/bigconsole/utils/dataSinkList.d.ts +15 -0
  117. package/dist/bigconsole/utils/dataSinkList.js +15 -0
  118. package/dist/bigconsole/utils/formDirty.d.ts +82 -0
  119. package/dist/bigconsole/utils/formDirty.js +21 -0
  120. package/dist/bigconsole/utils/insightsDraft.d.ts +29 -0
  121. package/dist/bigconsole/utils/insightsDraft.js +8 -0
  122. package/dist/bigconsole/utils/layoutBaseline.d.ts +130 -0
  123. package/dist/bigconsole/utils/layoutBaseline.js +96 -0
  124. package/dist/bigconsole/utils/listSort.d.ts +80 -0
  125. package/dist/bigconsole/utils/listSort.js +85 -0
  126. package/dist/bigconsole/utils/widgetFormDirty.d.ts +16 -0
  127. package/dist/bigconsole/utils/widgetFormDirty.js +13 -0
  128. package/dist/bigconsole/workflowOpen.js +15 -14
  129. package/package.json +3 -3
@@ -3,13 +3,12 @@ import "../common/index.js";
3
3
  import t from "./DataSinkStatusBadge.js";
4
4
  import { formatByteSize as n } from "../../utils/format.js";
5
5
  import { memo as r, useCallback as i } from "react";
6
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
- import { formatDistanceToNow as s } from "date-fns";
6
+ import { useI18n as a } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
+ import { formatDistanceToNow as c } from "date-fns";
8
9
  //#region src/bigconsole/components/datasink/DataSinkCard.tsx
9
- var c = `inline-flex min-h-[var(--size-controlHeight-md)] items-center justify-center rounded-button px-3 py-1.5 text-xs font-medium motion-safe:transition-colors ${e}`, l = r(function({ dataSink: e, setupState: r, onView: l, onEdit: u, onRefresh: d, onExport: f, onDelete: p, onContinueSetup: m, canEdit: h = !0, canRefresh: g = !0, canDelete: _ = !0 }) {
10
- let v = i((t) => {
11
- t.stopPropagation(), l?.(e.id);
12
- }, [e.id, l]), y = i((t) => {
10
+ var l = `inline-flex min-h-[var(--size-controlHeight-md)] items-center justify-center rounded-button px-3 py-1.5 text-xs font-medium motion-safe:transition-colors ${e}`, u = r(function({ dataSink: e, setupState: r, onView: u, onEdit: d, onRefresh: f, onExport: p, onDelete: m, onContinueSetup: h, canEdit: g = !0, canRefresh: _ = !0, canDelete: v = !0 }) {
11
+ let y = i((t) => {
13
12
  t.stopPropagation(), u?.(e.id);
14
13
  }, [e.id, u]), b = i((t) => {
15
14
  t.stopPropagation(), d?.(e.id);
@@ -19,58 +18,60 @@ var c = `inline-flex min-h-[var(--size-controlHeight-md)] items-center justify-c
19
18
  t.stopPropagation(), p?.(e.id);
20
19
  }, [e.id, p]), C = i((t) => {
21
20
  t.stopPropagation(), m?.(e.id);
22
- }, [e.id, m]), w = (r ?? e.setupState) === "completed", T = e.lastRefreshedAt ? s(new Date(e.lastRefreshedAt), { addSuffix: !0 }) : "Never";
23
- return /* @__PURE__ */ o("article", {
21
+ }, [e.id, m]), w = i((t) => {
22
+ t.stopPropagation(), h?.(e.id);
23
+ }, [e.id, h]), { t: T } = a(), E = (r ?? e.setupState) === "completed", D = e.lastRefreshedAt ? c(new Date(e.lastRefreshedAt), { addSuffix: !0 }) : T("bigconsole.dataSinks.view.never", "Never");
24
+ return /* @__PURE__ */ s("article", {
24
25
  className: "\n min-w-0\n cursor-pointer\n rounded-card\n border border-transparent\n bg-bg-sunken\n p-card-padding\n hover:border-[var(--color-action-primary-bg)]\n motion-safe:transition-colors\n ",
25
- onClick: v,
26
+ onClick: y,
26
27
  children: [
27
- /* @__PURE__ */ o("div", {
28
+ /* @__PURE__ */ s("div", {
28
29
  className: "mb-3 flex items-start justify-between gap-icon-gap",
29
- children: [/* @__PURE__ */ o("div", {
30
+ children: [/* @__PURE__ */ s("div", {
30
31
  className: "min-w-0 flex-1",
31
- children: [/* @__PURE__ */ a("h3", {
32
+ children: [/* @__PURE__ */ o("h3", {
32
33
  className: "truncate text-sm font-semibold text-text-primary",
33
34
  children: e.name || "Untitled data sink"
34
- }), /* @__PURE__ */ a("p", {
35
+ }), /* @__PURE__ */ o("p", {
35
36
  className: "mt-0.5 truncate font-mono text-xs text-text-secondary",
36
37
  children: e.key
37
38
  })]
38
- }), /* @__PURE__ */ a(t, {
39
+ }), /* @__PURE__ */ o(t, {
39
40
  status: e.status,
40
41
  size: "sm"
41
42
  })]
42
43
  }),
43
- e.description && /* @__PURE__ */ a("p", {
44
+ e.description && /* @__PURE__ */ o("p", {
44
45
  className: "mb-3 line-clamp-2 text-xs text-text-secondary",
45
46
  children: e.description
46
47
  }),
47
- /* @__PURE__ */ o("div", {
48
+ /* @__PURE__ */ s("div", {
48
49
  className: "mb-3 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-text-secondary",
49
50
  children: [
50
- /* @__PURE__ */ o("span", {
51
+ /* @__PURE__ */ s("span", {
51
52
  className: "flex items-center gap-1",
52
- children: [/* @__PURE__ */ a("svg", {
53
+ children: [/* @__PURE__ */ o("svg", {
53
54
  className: "w-3.5 h-3.5",
54
55
  fill: "none",
55
56
  stroke: "currentColor",
56
57
  viewBox: "0 0 24 24",
57
- children: /* @__PURE__ */ a("path", {
58
+ children: /* @__PURE__ */ o("path", {
58
59
  strokeLinecap: "round",
59
60
  strokeLinejoin: "round",
60
61
  strokeWidth: 2,
61
62
  d: "M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"
62
63
  })
63
- }), T]
64
+ }), D]
64
65
  }),
65
- /* @__PURE__ */ o("span", {
66
+ /* @__PURE__ */ s("span", {
66
67
  className: "flex items-center gap-1",
67
68
  title: "Stored payload size",
68
- children: [/* @__PURE__ */ a("svg", {
69
+ children: [/* @__PURE__ */ o("svg", {
69
70
  className: "w-3.5 h-3.5",
70
71
  fill: "none",
71
72
  stroke: "currentColor",
72
73
  viewBox: "0 0 24 24",
73
- children: /* @__PURE__ */ a("path", {
74
+ children: /* @__PURE__ */ o("path", {
74
75
  strokeLinecap: "round",
75
76
  strokeLinejoin: "round",
76
77
  strokeWidth: 2,
@@ -78,15 +79,15 @@ var c = `inline-flex min-h-[var(--size-controlHeight-md)] items-center justify-c
78
79
  })
79
80
  }), n(e.sizeBytes)]
80
81
  }),
81
- e.linkedWorkflowCount !== void 0 && e.linkedWorkflowCount > 0 && /* @__PURE__ */ o("span", {
82
+ e.linkedWorkflowCount !== void 0 && e.linkedWorkflowCount > 0 && /* @__PURE__ */ s("span", {
82
83
  className: "flex items-center gap-1",
83
84
  children: [
84
- /* @__PURE__ */ a("svg", {
85
+ /* @__PURE__ */ o("svg", {
85
86
  className: "w-3.5 h-3.5",
86
87
  fill: "none",
87
88
  stroke: "currentColor",
88
89
  viewBox: "0 0 24 24",
89
- children: /* @__PURE__ */ a("path", {
90
+ children: /* @__PURE__ */ o("path", {
90
91
  strokeLinecap: "round",
91
92
  strokeLinejoin: "round",
92
93
  strokeWidth: 2,
@@ -100,50 +101,50 @@ var c = `inline-flex min-h-[var(--size-controlHeight-md)] items-center justify-c
100
101
  })
101
102
  ]
102
103
  }),
103
- !w && /* @__PURE__ */ o("div", {
104
+ !E && /* @__PURE__ */ s("div", {
104
105
  className: "mb-3 flex items-center justify-between gap-icon-gap rounded-input border border-[var(--color-status-warning-border)] bg-[var(--color-status-warning-bgSubtle)] p-2",
105
- children: [/* @__PURE__ */ a("span", {
106
+ children: [/* @__PURE__ */ o("span", {
106
107
  className: "text-xs text-[var(--color-status-warning-text)]",
107
108
  children: "Setup incomplete"
108
- }), /* @__PURE__ */ a("button", {
109
+ }), /* @__PURE__ */ o("button", {
109
110
  type: "button",
110
- onClick: C,
111
+ onClick: w,
111
112
  className: "rounded-button px-1 text-xs font-medium text-text-link hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface",
112
113
  children: "Continue"
113
114
  })]
114
115
  }),
115
- /* @__PURE__ */ o("div", {
116
+ /* @__PURE__ */ s("div", {
116
117
  className: "flex flex-wrap items-center gap-2 border-t border-[var(--color-border-subtle)] pt-2",
117
118
  children: [
118
- /* @__PURE__ */ a("button", {
119
- type: "button",
120
- onClick: v,
121
- className: `${c} flex-1 bg-bg-surface text-text-primary hover:bg-bg-elevated`,
122
- children: "View"
123
- }),
124
- h && /* @__PURE__ */ a("button", {
119
+ /* @__PURE__ */ o("button", {
125
120
  type: "button",
126
121
  onClick: y,
127
- className: `${c} text-text-secondary hover:bg-bg-surface hover:text-text-primary`,
128
- children: "Edit"
122
+ className: `${l} flex-1 bg-bg-surface text-text-primary hover:bg-bg-elevated`,
123
+ children: T("bigconsole.dataSinks.actions.view", "View")
129
124
  }),
130
- g && /* @__PURE__ */ a("button", {
125
+ g && /* @__PURE__ */ o("button", {
131
126
  type: "button",
132
127
  onClick: b,
133
- className: `${c} text-text-secondary hover:bg-bg-surface hover:text-text-primary`,
134
- children: "Refresh"
128
+ className: `${l} text-text-secondary hover:bg-bg-surface hover:text-text-primary`,
129
+ children: T("bigconsole.dataSinks.actions.edit", "Edit")
135
130
  }),
136
- f && /* @__PURE__ */ a("button", {
131
+ _ && /* @__PURE__ */ o("button", {
137
132
  type: "button",
138
133
  onClick: x,
139
- className: `${c} text-text-secondary hover:bg-bg-surface hover:text-text-primary`,
140
- children: "Export"
134
+ className: `${l} text-text-secondary hover:bg-bg-surface hover:text-text-primary`,
135
+ children: T("bigconsole.dataSinks.actions.refresh", "Refresh")
141
136
  }),
142
- _ && /* @__PURE__ */ a("button", {
137
+ p && /* @__PURE__ */ o("button", {
143
138
  type: "button",
144
139
  onClick: S,
145
- className: `${c} text-status-error-text hover:bg-[var(--color-status-error-bgSubtle)]`,
146
- children: "Delete"
140
+ className: `${l} text-text-secondary hover:bg-bg-surface hover:text-text-primary`,
141
+ children: T("bigconsole.dataSinks.actions.export", "Export")
142
+ }),
143
+ v && /* @__PURE__ */ o("button", {
144
+ type: "button",
145
+ onClick: C,
146
+ className: `${l} text-status-error-text hover:bg-[var(--color-status-error-bgSubtle)]`,
147
+ children: T("bigconsole.dataSinks.actions.delete", "Delete")
147
148
  })
148
149
  ]
149
150
  })
@@ -151,4 +152,4 @@ var c = `inline-flex min-h-[var(--size-controlHeight-md)] items-center justify-c
151
152
  });
152
153
  });
153
154
  //#endregion
154
- export { l as default };
155
+ export { u as default };
@@ -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 { jsx as s, jsxs as c } from "react/jsx-runtime";
7
- import { useI18n as l } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
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";
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 } = l(), h = a(), g = a(), _ = o(null), v = o(null);
10
+ let { t: m } = s(), 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__ */ s("div", {
22
+ return r ? /* @__PURE__ */ c("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__ */ c("div", {
25
+ children: /* @__PURE__ */ l("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__ */ s("div", {
34
+ /* @__PURE__ */ c("div", {
35
35
  className: "border-b border-[var(--color-border-subtle)] p-form-gap sm:p-card-padding",
36
- children: /* @__PURE__ */ s("h2", {
36
+ children: /* @__PURE__ */ c("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__ */ c("div", {
42
+ /* @__PURE__ */ l("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__ */ s("p", {
45
+ /* @__PURE__ */ c("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__ */ c(t, {
50
+ /* @__PURE__ */ l(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__ */ s("p", {
56
+ children: [/* @__PURE__ */ c("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__ */ s("p", {
59
+ }), /* @__PURE__ */ c("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__ */ s(t, {
64
+ e.linkedWorkflowCount && e.linkedWorkflowCount > 0 ? /* @__PURE__ */ c(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__ */ s("p", {
70
+ children: /* @__PURE__ */ c("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__ */ s("p", {
75
+ /* @__PURE__ */ c("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__ */ c("div", {
81
+ /* @__PURE__ */ l("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__ */ s("button", {
83
+ children: [/* @__PURE__ */ c("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__ */ s("button", {
90
+ }), /* @__PURE__ */ c("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 { jsx as a, jsxs as o } from "react/jsx-runtime";
6
- import { useI18n as s } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
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";
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 } = s(), [m, h] = i(!1), g = r((e) => {
9
+ let { t: p } = a(), [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__ */ a("div", {
14
+ return l ? /* @__PURE__ */ o("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__ */ o("div", {
20
+ children: /* @__PURE__ */ s("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__ */ a("div", {
23
+ /* @__PURE__ */ o("div", {
24
24
  className: "border-b border-[var(--color-border-subtle)] p-form-gap sm:p-card-padding",
25
- children: /* @__PURE__ */ a("h2", {
25
+ children: /* @__PURE__ */ o("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__ */ o("div", {
31
+ /* @__PURE__ */ s("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__ */ o(t, {
33
+ children: [/* @__PURE__ */ s(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__ */ a("p", {
40
+ /* @__PURE__ */ o("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__ */ a("p", {
44
+ /* @__PURE__ */ o("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__ */ a("p", {
48
+ n.lastRefreshedAt && /* @__PURE__ */ o("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__ */ o(t, {
53
+ }), /* @__PURE__ */ s(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__ */ o("label", {
59
+ children: [/* @__PURE__ */ s("label", {
60
60
  className: "flex min-h-[var(--size-controlHeight-md)] cursor-pointer items-center gap-2",
61
- children: [/* @__PURE__ */ a("input", {
61
+ children: [/* @__PURE__ */ o("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__ */ a("span", {
66
+ }), /* @__PURE__ */ o("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__ */ a("p", {
70
+ }), /* @__PURE__ */ o("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__ */ o("div", {
76
+ /* @__PURE__ */ s("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__ */ a("button", {
78
+ children: [/* @__PURE__ */ o("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__ */ a("button", {
84
+ }), /* @__PURE__ */ o("button", {
85
85
  type: "button",
86
86
  onClick: v,
87
87
  disabled: f,
@@ -2,11 +2,11 @@ import { parseCsv as e } from "../../utils/csv.js";
2
2
  import { memo as t, useCallback as n, useEffect as r, useRef as i, useState as a } from "react";
3
3
  import { AlertTriangle as o, ArrowRight as s, FileUp as c, Loader2 as l, Upload as u, Workflow as d } from "lucide-react";
4
4
  import { Button as f, Dialog as p, DialogContent as m, DialogDescription as h, DialogFooter as g, DialogHeader as _, DialogTitle as v } from "@burdenoff/fe-libs/ui";
5
- import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
6
- import { useI18n as S } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
5
+ import { useI18n as y } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
+ import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
7
7
  //#region src/bigconsole/components/datasink/ImportDataGuideDialog.tsx
8
8
  var C = 6, w = 1e7, T = 5e4, E = t(function({ isOpen: t, dataSinkName: E, hasExistingData: D, onClose: O, onGoToWorkflows: k, onImportCsv: A }) {
9
- let { t: j } = S(), M = i(null), N = i(0), [P, F] = a(null), [I, L] = a(null), [R, z] = a(null), [B, V] = a(null), [H, U] = a(!1), W = n(() => {
9
+ let { t: j } = y(), M = i(null), N = i(0), [P, F] = a(null), [I, L] = a(null), [R, z] = a(null), [B, V] = a(null), [H, U] = a(!1), W = n(() => {
10
10
  N.current += 1, F(null), L(null), z(null), V(null), U(!1);
11
11
  }, []);
12
12
  r(() => {
@@ -53,71 +53,71 @@ var C = 6, w = 1e7, T = 5e4, E = t(function({ isOpen: t, dataSinkName: E, hasExi
53
53
  O,
54
54
  j
55
55
  ]), q = n(() => M.current?.click(), []), J = I?.columns.slice(0, C) ?? [], Y = I ? I.columns.length - J.length : 0;
56
- return /* @__PURE__ */ b(p, {
56
+ return /* @__PURE__ */ x(p, {
57
57
  open: t,
58
58
  onOpenChange: (e) => !e && !H && O(),
59
- children: /* @__PURE__ */ x(m, {
59
+ children: /* @__PURE__ */ S(m, {
60
60
  className: "sm:max-w-lg",
61
61
  children: [
62
- /* @__PURE__ */ x(_, { children: [/* @__PURE__ */ x("div", {
62
+ /* @__PURE__ */ S(_, { children: [/* @__PURE__ */ S("div", {
63
63
  className: "flex items-center gap-3",
64
- children: [/* @__PURE__ */ b("div", {
64
+ children: [/* @__PURE__ */ x("div", {
65
65
  className: "flex size-10 items-center justify-center rounded-lg bg-action-primary-bg/10",
66
- children: /* @__PURE__ */ b(u, { className: "size-5 text-action-primary-bg" })
67
- }), /* @__PURE__ */ b(v, { children: j("bigconsole.dataSinks.importGuide.title", "Import data") })]
68
- }), /* @__PURE__ */ b(h, { children: E ? j("bigconsole.dataSinks.importGuide.descriptionNamed", "Add data to “{{name}}”", { name: E }) : j("bigconsole.dataSinks.importGuide.description", "Add data to this data sink") })] }),
69
- /* @__PURE__ */ x("div", {
66
+ children: /* @__PURE__ */ x(u, { className: "size-5 text-action-primary-bg" })
67
+ }), /* @__PURE__ */ x(v, { children: j("bigconsole.dataSinks.importGuide.title", "Import data") })]
68
+ }), /* @__PURE__ */ x(h, { children: E ? j("bigconsole.dataSinks.importGuide.descriptionNamed", "Add data to “{{name}}”", { name: E }) : j("bigconsole.dataSinks.importGuide.description", "Add data to this data sink") })] }),
69
+ /* @__PURE__ */ S("div", {
70
70
  className: "py-2 space-y-5",
71
71
  children: [
72
- /* @__PURE__ */ x("section", {
72
+ /* @__PURE__ */ S("section", {
73
73
  className: "space-y-3",
74
- children: [/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("h3", {
74
+ children: [/* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h3", {
75
75
  className: "text-sm font-semibold text-text-primary",
76
76
  children: j("bigconsole.dataSinks.importGuide.buildWorkflowHeading", "Build a workflow")
77
- }), /* @__PURE__ */ b("p", {
77
+ }), /* @__PURE__ */ x("p", {
78
78
  className: "text-sm text-text-secondary leading-relaxed",
79
79
  children: j("bigconsole.dataSinks.importGuide.buildWorkflowBody", "The recommended way to keep this data sink up to date — build a repeatable, scheduled pipeline that fetches from your source (an API, database, or app) and writes into this data sink on every run.")
80
- })] }), /* @__PURE__ */ x(f, {
80
+ })] }), /* @__PURE__ */ S(f, {
81
81
  variant: "default",
82
82
  onClick: k,
83
83
  disabled: H,
84
84
  className: "w-full",
85
85
  children: [
86
- /* @__PURE__ */ b(d, { className: "size-4" }),
86
+ /* @__PURE__ */ x(d, { className: "size-4" }),
87
87
  j("bigconsole.dataSinks.importGuide.goToWorkflows", "Go to Workflows"),
88
- /* @__PURE__ */ b(s, { className: "size-4" })
88
+ /* @__PURE__ */ x(s, { className: "size-4" })
89
89
  ]
90
90
  })]
91
91
  }),
92
- A && /* @__PURE__ */ x("div", {
92
+ A && /* @__PURE__ */ S("div", {
93
93
  className: "flex items-center gap-3",
94
94
  children: [
95
- /* @__PURE__ */ b("span", { className: "h-px flex-1 bg-border-subtle" }),
96
- /* @__PURE__ */ b("span", {
95
+ /* @__PURE__ */ x("span", { className: "h-px flex-1 bg-border-subtle" }),
96
+ /* @__PURE__ */ x("span", {
97
97
  className: "text-xs font-medium uppercase tracking-wide text-text-tertiary",
98
98
  children: j("bigconsole.dataSinks.importGuide.or", "Or")
99
99
  }),
100
- /* @__PURE__ */ b("span", { className: "h-px flex-1 bg-border-subtle" })
100
+ /* @__PURE__ */ x("span", { className: "h-px flex-1 bg-border-subtle" })
101
101
  ]
102
102
  }),
103
- A && /* @__PURE__ */ x("section", {
103
+ A && /* @__PURE__ */ S("section", {
104
104
  className: "space-y-3",
105
105
  children: [
106
- /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("h3", {
106
+ /* @__PURE__ */ S("div", { children: [/* @__PURE__ */ x("h3", {
107
107
  className: "text-sm font-semibold text-text-primary",
108
108
  children: j("bigconsole.dataSinks.importGuide.uploadCsvHeading", "Upload a CSV file")
109
- }), /* @__PURE__ */ b("p", {
109
+ }), /* @__PURE__ */ x("p", {
110
110
  className: "text-sm text-text-secondary leading-relaxed",
111
111
  children: j("bigconsole.dataSinks.importGuide.uploadCsvBody", "For a quick, one-off import, upload a spreadsheet export and it becomes available to your dashboards right away.")
112
112
  })] }),
113
- D && /* @__PURE__ */ x("div", {
113
+ D && /* @__PURE__ */ S("div", {
114
114
  className: "flex items-start gap-2 rounded-lg border border-status-warning-border bg-status-warning-bg px-3 py-2",
115
- children: [/* @__PURE__ */ b(o, { className: "size-4 shrink-0 text-status-warning-text mt-0.5" }), /* @__PURE__ */ b("p", {
115
+ children: [/* @__PURE__ */ x(o, { className: "size-4 shrink-0 text-status-warning-text mt-0.5" }), /* @__PURE__ */ x("p", {
116
116
  className: "text-sm text-status-warning-text",
117
117
  children: j("bigconsole.dataSinks.importGuide.hasExistingDataWarning", "This data sink already has data — importing a CSV will replace it.")
118
118
  })]
119
119
  }),
120
- /* @__PURE__ */ b("input", {
120
+ /* @__PURE__ */ x("input", {
121
121
  ref: M,
122
122
  type: "file",
123
123
  accept: ".csv,text/csv",
@@ -125,39 +125,39 @@ var C = 6, w = 1e7, T = 5e4, E = t(function({ isOpen: t, dataSinkName: E, hasExi
125
125
  onChange: G,
126
126
  "aria-label": j("bigconsole.dataSinks.importGuide.fileInputAriaLabel", "Choose a CSV file to import")
127
127
  }),
128
- !I && /* @__PURE__ */ x("button", {
128
+ !I && /* @__PURE__ */ S("button", {
129
129
  type: "button",
130
130
  onClick: q,
131
131
  className: "flex w-full flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-border-default bg-bg-sunken px-4 py-6 text-center transition-colors hover:border-action-primary-bg hover:bg-action-primary-bg/5",
132
132
  children: [
133
- /* @__PURE__ */ b(c, { className: "size-6 text-text-tertiary" }),
134
- /* @__PURE__ */ b("span", {
133
+ /* @__PURE__ */ x(c, { className: "size-6 text-text-tertiary" }),
134
+ /* @__PURE__ */ x("span", {
135
135
  className: "text-sm font-medium text-text-primary",
136
136
  children: P ? j("bigconsole.dataSinks.importGuide.chooseDifferentCsv", "Choose a different CSV file") : j("bigconsole.dataSinks.importGuide.chooseCsv", "Choose a CSV file")
137
137
  }),
138
- /* @__PURE__ */ b("span", {
138
+ /* @__PURE__ */ x("span", {
139
139
  className: "text-xs text-text-tertiary",
140
140
  children: j("bigconsole.dataSinks.importGuide.firstRowHint", "The first row is used as column names.")
141
141
  })
142
142
  ]
143
143
  }),
144
- R && /* @__PURE__ */ b("div", {
144
+ R && /* @__PURE__ */ x("div", {
145
145
  className: "rounded-lg border border-status-error-border bg-status-error-bg px-3 py-2",
146
- children: /* @__PURE__ */ b("p", {
146
+ children: /* @__PURE__ */ x("p", {
147
147
  className: "text-sm text-status-error-text",
148
148
  children: R
149
149
  })
150
150
  }),
151
- I && /* @__PURE__ */ x("div", {
151
+ I && /* @__PURE__ */ S("div", {
152
152
  className: "space-y-3 rounded-lg border border-border-default bg-bg-sunken p-4",
153
153
  children: [
154
- /* @__PURE__ */ x("div", {
154
+ /* @__PURE__ */ S("div", {
155
155
  className: "flex items-center justify-between gap-3",
156
- children: [/* @__PURE__ */ b("span", {
156
+ children: [/* @__PURE__ */ x("span", {
157
157
  className: "truncate text-sm font-medium text-text-primary",
158
158
  title: P ?? void 0,
159
159
  children: P
160
- }), /* @__PURE__ */ b("button", {
160
+ }), /* @__PURE__ */ x("button", {
161
161
  type: "button",
162
162
  onClick: q,
163
163
  disabled: H,
@@ -165,12 +165,12 @@ var C = 6, w = 1e7, T = 5e4, E = t(function({ isOpen: t, dataSinkName: E, hasExi
165
165
  children: j("bigconsole.dataSinks.importGuide.changeFile", "Change file")
166
166
  })]
167
167
  }),
168
- /* @__PURE__ */ x("p", {
168
+ /* @__PURE__ */ S("p", {
169
169
  className: "text-sm text-text-secondary",
170
170
  children: [
171
171
  j("bigconsole.dataSinks.importGuide.readyToImportPrefix", "Ready to import"),
172
172
  " ",
173
- /* @__PURE__ */ b("strong", {
173
+ /* @__PURE__ */ x("strong", {
174
174
  className: "text-text-primary",
175
175
  children: I.rows.length
176
176
  }),
@@ -178,7 +178,7 @@ var C = 6, w = 1e7, T = 5e4, E = t(function({ isOpen: t, dataSinkName: E, hasExi
178
178
  I.rows.length === 1 ? j("bigconsole.dataSinks.importGuide.rowSingular", "row") : j("bigconsole.dataSinks.importGuide.rowPlural", "rows"),
179
179
  " ",
180
180
  "× ",
181
- /* @__PURE__ */ b("strong", {
181
+ /* @__PURE__ */ x("strong", {
182
182
  className: "text-text-primary",
183
183
  children: I.columns.length
184
184
  }),
@@ -187,25 +187,25 @@ var C = 6, w = 1e7, T = 5e4, E = t(function({ isOpen: t, dataSinkName: E, hasExi
187
187
  "."
188
188
  ]
189
189
  }),
190
- /* @__PURE__ */ x("div", {
190
+ /* @__PURE__ */ S("div", {
191
191
  className: "flex flex-wrap gap-1.5",
192
- children: [J.map((e) => /* @__PURE__ */ b("span", {
192
+ children: [J.map((e) => /* @__PURE__ */ x("span", {
193
193
  className: "rounded-full bg-bg-surface px-2 py-0.5 text-xs text-text-secondary border border-border-subtle",
194
194
  children: e
195
- }, e)), Y > 0 && /* @__PURE__ */ b("span", {
195
+ }, e)), Y > 0 && /* @__PURE__ */ x("span", {
196
196
  className: "rounded-full px-2 py-0.5 text-xs text-text-tertiary",
197
197
  children: j("bigconsole.dataSinks.importGuide.moreColumns", "+{{count}} more", { count: Y })
198
198
  })]
199
199
  }),
200
- B && /* @__PURE__ */ b("p", {
200
+ B && /* @__PURE__ */ x("p", {
201
201
  className: "text-sm text-status-error-text",
202
202
  children: B
203
203
  }),
204
- /* @__PURE__ */ b(f, {
204
+ /* @__PURE__ */ x(f, {
205
205
  onClick: K,
206
206
  disabled: H,
207
207
  className: "w-full",
208
- children: H ? /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(l, { className: "size-4 animate-spin" }), j("bigconsole.dataSinks.importGuide.importing", "Importing…")] }) : /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(u, { className: "size-4" }), I.rows.length === 1 ? j("bigconsole.dataSinks.importGuide.importRowSingular", "Import {{count}} row", { count: I.rows.length }) : j("bigconsole.dataSinks.importGuide.importRowPlural", "Import {{count}} rows", { count: I.rows.length })] })
208
+ children: H ? /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(l, { className: "size-4 animate-spin" }), j("bigconsole.dataSinks.importGuide.importing", "Importing…")] }) : /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(u, { className: "size-4" }), I.rows.length === 1 ? j("bigconsole.dataSinks.importGuide.importRowSingular", "Import {{count}} row", { count: I.rows.length }) : j("bigconsole.dataSinks.importGuide.importRowPlural", "Import {{count}} rows", { count: I.rows.length })] })
209
209
  })
210
210
  ]
211
211
  })
@@ -213,7 +213,7 @@ var C = 6, w = 1e7, T = 5e4, E = t(function({ isOpen: t, dataSinkName: E, hasExi
213
213
  })
214
214
  ]
215
215
  }),
216
- /* @__PURE__ */ b(g, { children: /* @__PURE__ */ b(f, {
216
+ /* @__PURE__ */ x(g, { children: /* @__PURE__ */ x(f, {
217
217
  variant: "outline",
218
218
  onClick: O,
219
219
  disabled: H,