@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
@@ -7,39 +7,39 @@ import r from "./ParserTypeBadge.js";
7
7
  import i from "./ParserStatusBadge.js";
8
8
  import { Fragment as a, memo as o, useCallback as s, useEffect as c, useMemo as l, useState as u } from "react";
9
9
  import { Plus as d } from "lucide-react";
10
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
11
- import { useI18n as m } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
10
+ import { useI18n as f } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
11
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
12
12
  //#region src/bigconsole/components/parser/ParserSelector.tsx
13
- var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y border-[var(--color-border-default)]", _ = "text-xs font-semibold uppercase tracking-wide text-text-secondary", v = ({ className: e }) => /* @__PURE__ */ f("svg", {
13
+ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y border-[var(--color-border-default)]", _ = "text-xs font-semibold uppercase tracking-wide text-text-secondary", v = ({ className: e }) => /* @__PURE__ */ p("svg", {
14
14
  className: e,
15
15
  fill: "none",
16
16
  stroke: "currentColor",
17
17
  viewBox: "0 0 24 24",
18
- children: /* @__PURE__ */ f("path", {
18
+ children: /* @__PURE__ */ p("path", {
19
19
  strokeLinecap: "round",
20
20
  strokeLinejoin: "round",
21
21
  strokeWidth: 2,
22
22
  d: "M19 9l-7 7-7-7"
23
23
  })
24
- }), y = ({ className: e }) => /* @__PURE__ */ p("svg", {
24
+ }), y = ({ className: e }) => /* @__PURE__ */ m("svg", {
25
25
  className: e,
26
26
  fill: "none",
27
27
  stroke: "currentColor",
28
28
  viewBox: "0 0 24 24",
29
29
  children: [
30
- /* @__PURE__ */ f("path", {
30
+ /* @__PURE__ */ p("path", {
31
31
  strokeLinecap: "round",
32
32
  strokeLinejoin: "round",
33
33
  strokeWidth: 2,
34
34
  d: "M12 21a9 9 0 100-18 9 9 0 000 18z"
35
35
  }),
36
- /* @__PURE__ */ f("path", {
36
+ /* @__PURE__ */ p("path", {
37
37
  strokeLinecap: "round",
38
38
  strokeLinejoin: "round",
39
39
  strokeWidth: 2,
40
40
  d: "M3.6 9h16.8M3.6 15h16.8"
41
41
  }),
42
- /* @__PURE__ */ f("path", {
42
+ /* @__PURE__ */ p("path", {
43
43
  strokeLinecap: "round",
44
44
  strokeLinejoin: "round",
45
45
  strokeWidth: 2,
@@ -47,8 +47,8 @@ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y bor
47
47
  })
48
48
  ]
49
49
  }), b = o(function({ parser: e, isSelected: n, onSelect: a, isGlobal: o = !1 }) {
50
- let { t: s } = m();
51
- return /* @__PURE__ */ f("button", {
50
+ let { t: s } = f();
51
+ return /* @__PURE__ */ p("button", {
52
52
  type: "button",
53
53
  onClick: () => a(e.id),
54
54
  className: `
@@ -60,35 +60,35 @@ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y bor
60
60
  ${t}
61
61
  ${n ? "bg-action-primary-bg/10" : ""}
62
62
  `,
63
- children: /* @__PURE__ */ p("div", {
63
+ children: /* @__PURE__ */ m("div", {
64
64
  className: "flex items-start justify-between gap-2",
65
- children: [/* @__PURE__ */ p("div", {
65
+ children: [/* @__PURE__ */ m("div", {
66
66
  className: "flex-1 min-w-0",
67
67
  children: [
68
- /* @__PURE__ */ p("div", {
68
+ /* @__PURE__ */ m("div", {
69
69
  className: "flex items-center gap-2 mb-1",
70
70
  children: [
71
- /* @__PURE__ */ f(r, {
71
+ /* @__PURE__ */ p(r, {
72
72
  type: e.type,
73
73
  size: "sm"
74
74
  }),
75
- /* @__PURE__ */ f("span", {
75
+ /* @__PURE__ */ p("span", {
76
76
  className: "text-sm font-medium text-text-primary truncate",
77
77
  children: e.name
78
78
  }),
79
- o && /* @__PURE__ */ p("span", {
79
+ o && /* @__PURE__ */ m("span", {
80
80
  className: "inline-flex items-center gap-1 px-1.5 py-0.5 text-xs bg-bg-sunken text-text-secondary rounded",
81
- children: [/* @__PURE__ */ f(y, { className: "w-3 h-3" }), s("bigconsole.parsers.selector.globalBadge", "Global")]
81
+ children: [/* @__PURE__ */ p(y, { className: "w-3 h-3" }), s("bigconsole.parsers.selector.globalBadge", "Global")]
82
82
  })
83
83
  ]
84
84
  }),
85
- e.description && /* @__PURE__ */ f("p", {
85
+ e.description && /* @__PURE__ */ p("p", {
86
86
  className: "text-xs text-text-secondary line-clamp-1 mb-1",
87
87
  children: e.description
88
88
  }),
89
- /* @__PURE__ */ f("div", {
89
+ /* @__PURE__ */ p("div", {
90
90
  className: "flex min-w-0 items-center gap-2 text-xs text-text-muted",
91
- children: /* @__PURE__ */ p("span", {
91
+ children: /* @__PURE__ */ m("span", {
92
92
  className: "truncate font-mono",
93
93
  children: [
94
94
  e.inputSinkKey,
@@ -98,9 +98,9 @@ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y bor
98
98
  })
99
99
  })
100
100
  ]
101
- }), /* @__PURE__ */ f("div", {
101
+ }), /* @__PURE__ */ p("div", {
102
102
  className: "shrink-0",
103
- children: /* @__PURE__ */ f(i, {
103
+ children: /* @__PURE__ */ p(i, {
104
104
  status: e.status,
105
105
  size: "sm",
106
106
  showIcon: !1
@@ -109,7 +109,7 @@ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y bor
109
109
  })
110
110
  });
111
111
  }), x = o(function({ consoleId: i, value: o, resolvedParser: y, onChange: x, filterType: S, filterStatus: C = "active", filterInputSinkKey: w, placeholder: T, disabled: E = !1, error: D = !1, errorMessage: O }) {
112
- let { t: k } = m(), [A, j] = u(!1), [M, N] = u(""), P = T ?? k("bigconsole.parsers.selector.placeholder", "Select a parser..."), F = e(), I = i === h, { parsers: L, loading: R, fetchParsers: z } = n({
112
+ let { t: k } = f(), [A, j] = u(!1), [M, N] = u(""), P = T ?? k("bigconsole.parsers.selector.placeholder", "Select a parser..."), F = e(), I = i === h, { parsers: L, loading: R, fetchParsers: z } = n({
113
113
  consoleId: i,
114
114
  skipFetch: I
115
115
  }), { parsers: B, loading: V, fetchParsers: H } = n({
@@ -188,10 +188,10 @@ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y bor
188
188
  i,
189
189
  I
190
190
  ]);
191
- return /* @__PURE__ */ p("div", {
191
+ return /* @__PURE__ */ m("div", {
192
192
  className: "relative",
193
193
  children: [
194
- /* @__PURE__ */ p("button", {
194
+ /* @__PURE__ */ m("button", {
195
195
  type: "button",
196
196
  onClick: X,
197
197
  disabled: E,
@@ -210,39 +210,39 @@ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y bor
210
210
  ${D ? "border-status-error-border" : "border-[var(--color-border-default)]"}
211
211
  ${A ? "border-action-primary-bg ring-2 ring-action-primary-bg/20" : ""}
212
212
  `,
213
- children: [/* @__PURE__ */ f("div", {
213
+ children: [/* @__PURE__ */ p("div", {
214
214
  className: "flex-1 min-w-0",
215
- children: J ? /* @__PURE__ */ p("div", {
215
+ children: J ? /* @__PURE__ */ m("div", {
216
216
  className: "flex min-w-0 items-center gap-2",
217
- children: [/* @__PURE__ */ f(r, {
217
+ children: [/* @__PURE__ */ p(r, {
218
218
  type: J.type,
219
219
  size: "sm"
220
- }), /* @__PURE__ */ f("span", {
220
+ }), /* @__PURE__ */ p("span", {
221
221
  className: "text-sm text-text-primary truncate",
222
222
  children: J.name
223
223
  })]
224
- }) : /* @__PURE__ */ f("span", {
224
+ }) : /* @__PURE__ */ p("span", {
225
225
  className: "text-sm text-text-muted",
226
226
  children: P
227
227
  })
228
- }), /* @__PURE__ */ f(v, {
228
+ }), /* @__PURE__ */ p(v, {
229
229
  "aria-hidden": "true",
230
230
  className: `w-4 h-4 shrink-0 text-text-secondary motion-safe:transition-transform ${A ? "transform rotate-180" : ""}`
231
231
  })]
232
232
  }),
233
- D && O && /* @__PURE__ */ f("p", {
233
+ D && O && /* @__PURE__ */ p("p", {
234
234
  className: "mt-1 text-xs text-status-error-text",
235
235
  children: O
236
236
  }),
237
- A && /* @__PURE__ */ p(a, { children: [/* @__PURE__ */ f("div", {
237
+ A && /* @__PURE__ */ m(a, { children: [/* @__PURE__ */ p("div", {
238
238
  className: "fixed inset-0 z-10",
239
239
  onClick: Z
240
- }), /* @__PURE__ */ p("div", {
240
+ }), /* @__PURE__ */ m("div", {
241
241
  className: "absolute left-0 right-0 top-full mt-1 z-20 bg-bg-surface border border-[var(--color-border-default)] rounded-md shadow-lg max-h-80 flex flex-col overflow-hidden",
242
242
  children: [
243
- /* @__PURE__ */ f("div", {
243
+ /* @__PURE__ */ p("div", {
244
244
  className: "p-2 border-b border-[var(--color-border-default)]",
245
- children: /* @__PURE__ */ f("input", {
245
+ children: /* @__PURE__ */ p("input", {
246
246
  type: "text",
247
247
  "aria-label": k("bigconsole.parsers.selector.searchPlaceholder", "Search parsers..."),
248
248
  placeholder: k("bigconsole.parsers.selector.searchPlaceholder", "Search parsers..."),
@@ -251,16 +251,16 @@ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y bor
251
251
  className: "\n w-full min-w-0 min-h-control-md px-3 py-2\n bg-bg-sunken\n border border-[var(--color-border-default)]\n rounded-md\n text-sm text-text-primary\n placeholder:text-text-muted\n focus:outline-none\n focus:border-action-primary-bg\n focus:ring-2\n focus:ring-action-primary-bg/20\n "
252
252
  })
253
253
  }),
254
- /* @__PURE__ */ f("div", {
254
+ /* @__PURE__ */ p("div", {
255
255
  className: "overflow-y-auto flex-1",
256
- children: W ? /* @__PURE__ */ f("div", {
256
+ children: W ? /* @__PURE__ */ p("div", {
257
257
  className: "p-4 text-center text-sm text-text-secondary",
258
258
  children: k("bigconsole.parsers.selector.loading", "Loading parsers...")
259
- }) : G.length === 0 ? /* @__PURE__ */ f("div", {
259
+ }) : G.length === 0 ? /* @__PURE__ */ p("div", {
260
260
  className: "p-4 text-center text-sm text-text-secondary",
261
261
  children: k("bigconsole.parsers.selector.empty", "No parsers found")
262
- }) : /* @__PURE__ */ p(a, { children: [
263
- /* @__PURE__ */ f("button", {
262
+ }) : /* @__PURE__ */ m(a, { children: [
263
+ /* @__PURE__ */ p("button", {
264
264
  type: "button",
265
265
  onClick: () => Y(null),
266
266
  className: `
@@ -271,29 +271,29 @@ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y bor
271
271
  focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface
272
272
  ${o === null ? "bg-action-primary-bg/10 text-action-primary-bg" : "text-text-secondary"}
273
273
  `,
274
- children: /* @__PURE__ */ f("span", {
274
+ children: /* @__PURE__ */ p("span", {
275
275
  className: "italic",
276
276
  children: k("bigconsole.parsers.selector.none", "None")
277
277
  })
278
278
  }),
279
- K.length > 0 && /* @__PURE__ */ p(a, { children: [/* @__PURE__ */ f("div", {
279
+ K.length > 0 && /* @__PURE__ */ m(a, { children: [/* @__PURE__ */ p("div", {
280
280
  className: g,
281
- children: /* @__PURE__ */ f("span", {
281
+ children: /* @__PURE__ */ p("span", {
282
282
  className: _,
283
283
  children: k("bigconsole.parsers.selector.dashboardParsers", "Dashboard Parsers")
284
284
  })
285
- }), K.map((e) => /* @__PURE__ */ f(b, {
285
+ }), K.map((e) => /* @__PURE__ */ p(b, {
286
286
  parser: e,
287
287
  isSelected: o === e.id,
288
288
  onSelect: Y
289
289
  }, e.id))] }),
290
- q.length > 0 && /* @__PURE__ */ p(a, { children: [/* @__PURE__ */ f("div", {
290
+ q.length > 0 && /* @__PURE__ */ m(a, { children: [/* @__PURE__ */ p("div", {
291
291
  className: g,
292
- children: /* @__PURE__ */ f("span", {
292
+ children: /* @__PURE__ */ p("span", {
293
293
  className: _,
294
294
  children: k("bigconsole.parsers.selector.globalParsers", "Global Parsers")
295
295
  })
296
- }), q.map((e) => /* @__PURE__ */ f(b, {
296
+ }), q.map((e) => /* @__PURE__ */ p(b, {
297
297
  parser: e,
298
298
  isSelected: o === e.id,
299
299
  onSelect: Y,
@@ -301,13 +301,13 @@ var h = "default", g = "sticky top-0 z-[1] bg-bg-sunken px-3 py-1.5 border-y bor
301
301
  }, e.id))] })
302
302
  ] })
303
303
  }),
304
- /* @__PURE__ */ f("div", {
304
+ /* @__PURE__ */ p("div", {
305
305
  className: "p-2 border-t border-border-default",
306
- children: /* @__PURE__ */ p("button", {
306
+ children: /* @__PURE__ */ m("button", {
307
307
  type: "button",
308
308
  onClick: Q,
309
309
  className: "\n w-full flex items-center gap-2\n px-3 py-2\n text-sm font-medium text-action-primary-bg\n rounded-md\n hover:bg-action-primary-bg/10\n transition-colors\n ",
310
- children: [/* @__PURE__ */ f(d, { className: "w-4 h-4" }), k("bigconsole.parsers.selector.createNew", "Create new parser")]
310
+ children: [/* @__PURE__ */ p(d, { className: "w-4 h-4" }), k("bigconsole.parsers.selector.createNew", "Create new parser")]
311
311
  })
312
312
  })
313
313
  ]
@@ -4,41 +4,41 @@ import t from "../../hooks/useDashboardOperations.js";
4
4
  import { BIGCONSOLE_PERMISSIONS as n } from "../../../constants/permissions.js";
5
5
  import { useId as r } from "react";
6
6
  import { usePermissions as i } from "@burdenoff/fe-libs/shared/providers/shell";
7
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
8
- import { useI18n as s } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
+ import { useI18n as a } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
8
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
9
9
  //#region src/bigconsole/components/pipeline/PipelineScopePicker.tsx
10
10
  function c({ value: c, onChange: l, disabled: u = !1 }) {
11
- let d = r(), { t: f } = s(), { hasPermission: p, isLoading: m } = i(), { dashboards: h, loading: g, error: _ } = t({ skipFetch: m || !p(n.DASHBOARD_READ) });
12
- return /* @__PURE__ */ o("div", {
11
+ let d = r(), { t: f } = a(), { hasPermission: p, isLoading: m } = i(), { dashboards: h, loading: g, error: _ } = t({ skipFetch: m || !p(n.DASHBOARD_READ) });
12
+ return /* @__PURE__ */ s("div", {
13
13
  className: "min-w-0",
14
14
  children: [
15
- /* @__PURE__ */ a("label", {
15
+ /* @__PURE__ */ o("label", {
16
16
  htmlFor: d,
17
17
  className: "mb-1 block text-sm font-medium text-text-primary",
18
18
  children: f("bigconsole.pipelines.scope.label", "Dashboard scope")
19
19
  }),
20
- /* @__PURE__ */ o("select", {
20
+ /* @__PURE__ */ s("select", {
21
21
  id: d,
22
22
  value: c,
23
23
  onChange: (e) => l(e.target.value),
24
24
  disabled: u || g,
25
25
  className: `w-full min-w-0 rounded-input border border-[var(--color-border-subtle)] bg-bg-canvas px-3 py-2 text-sm text-text-primary ${e}`,
26
26
  children: [
27
- /* @__PURE__ */ a("option", {
27
+ /* @__PURE__ */ o("option", {
28
28
  value: "default",
29
29
  children: f("bigconsole.pipelines.scope.workspace", "Workspace pipelines")
30
30
  }),
31
- c !== "default" && !h.some((e) => e.id === c) && /* @__PURE__ */ a("option", {
31
+ c !== "default" && !h.some((e) => e.id === c) && /* @__PURE__ */ o("option", {
32
32
  value: c,
33
33
  children: c
34
34
  }),
35
- h.map((e) => /* @__PURE__ */ a("option", {
35
+ h.map((e) => /* @__PURE__ */ o("option", {
36
36
  value: e.id,
37
37
  children: e.name
38
38
  }, e.id))
39
39
  ]
40
40
  }),
41
- _ && /* @__PURE__ */ a("p", {
41
+ _ && /* @__PURE__ */ o("p", {
42
42
  role: "alert",
43
43
  className: "mt-1 text-xs text-status-error-text",
44
44
  children: f("bigconsole.pipelines.scope.loadError", "Dashboard scopes could not be loaded.")
@@ -1,133 +1,134 @@
1
1
  import { PREVIEW_STEPS as e, useAssistantRunStore as t } from "../../assistant/assistantRunStore.js";
2
- import { useAssistantRunWorkspace as n } from "../../assistant/useAssistantRunWorkspace.js";
3
- import { Section as r } from "../common/Section.js";
2
+ import { useBigConsolePreviewControl as n } from "../../assistant/usePreviewControl.js";
3
+ import { useAssistantRunWorkspace as r } from "../../assistant/useAssistantRunWorkspace.js";
4
+ import { Section as i } from "../common/Section.js";
4
5
  import "../common/index.js";
5
- import { DOCK_CLEARANCE as i, PreviewMeta as a, STEP_LABEL as o, formatAgo as s, previewLabels as c } from "./previewShared.js";
6
- import { ArrowUpRight as l, Braces as u, Database as d, LayoutDashboard as f, Loader2 as p, Sparkles as m, X as h } from "lucide-react";
7
- import { Button as g } from "@burdenoff/fe-libs/ui";
8
- import { jsx as _, jsxs as v } from "react/jsx-runtime";
9
- import { useI18n as y } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
10
- import { AssistantEntityPreview as b } from "@burdenoff/fe-libs/shared/assistant";
6
+ import { DOCK_CLEARANCE as a, PreviewMeta as o, STEP_LABEL as s, formatAgo as c, previewLabels as l } from "./previewShared.js";
7
+ import { ArrowUpRight as u, Braces as d, Database as f, LayoutDashboard as p, Loader2 as m, Sparkles as h, X as g } from "lucide-react";
8
+ import { Button as _ } from "@burdenoff/fe-libs/ui";
9
+ import { useI18n as v } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
10
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
11
+ import { AssistantEntityPreview as x } from "@burdenoff/fe-libs/shared/assistant";
11
12
  //#region src/bigconsole/components/preview/AiPreviewMiniPanel.tsx
12
- function x({ onNavigate: x }) {
13
- let { t: S } = y();
14
- n();
15
- let C = t((e) => e.isRunning), w = t((e) => e.previewOpen), T = t((e) => e.hasRun), E = t((e) => e.richMounted), D = t((e) => e.steps), O = t((e) => e.entityIds), k = t((e) => e.caption), A = t((e) => e.error), j = t((e) => e.updatedAt), M = t((e) => e.openPreview), N = t((e) => e.closePreview), P = (e) => {
16
- x ? x(e) : typeof window < "u" && window.location.assign(e);
13
+ function S({ onNavigate: S }) {
14
+ let { t: C } = v();
15
+ r(), n();
16
+ let w = t((e) => e.isRunning), T = t((e) => e.previewOpen), E = t((e) => e.hasRun), D = t((e) => e.richMounted), O = t((e) => e.steps), k = t((e) => e.entityIds), A = t((e) => e.caption), j = t((e) => e.error), M = t((e) => e.updatedAt), N = t((e) => e.openPreview), P = t((e) => e.closePreview), F = (e) => {
17
+ S ? S(e) : typeof window < "u" && window.location.assign(e);
17
18
  };
18
- if (!T || E) return null;
19
- if (!w) return /* @__PURE__ */ v("div", {
19
+ if (!E || D) return null;
20
+ if (!T) return /* @__PURE__ */ b("div", {
20
21
  className: "flex flex-wrap items-center justify-end gap-control-gap px-4 pt-3 md:px-6",
21
- style: { marginRight: i },
22
- children: [/* @__PURE__ */ _("span", {
22
+ style: { marginRight: a },
23
+ children: [/* @__PURE__ */ y("span", {
23
24
  className: "text-xs text-text-muted",
24
- children: C ? S("bigconsole.widget.aiPreview.buildRunning", "AI build running") : S("bigconsole.widget.aiPreview.buildFinished", "AI build finished")
25
- }), /* @__PURE__ */ v(g, {
25
+ children: w ? C("bigconsole.widget.aiPreview.buildRunning", "AI build running") : C("bigconsole.widget.aiPreview.buildFinished", "AI build finished")
26
+ }), /* @__PURE__ */ b(_, {
26
27
  size: "sm",
27
28
  variant: "outline",
28
- onClick: M,
29
+ onClick: N,
29
30
  "data-testid": "ai-preview-open",
30
31
  children: [
31
- /* @__PURE__ */ _(m, { className: "mr-1.5 size-4" }),
32
- S("bigconsole.widget.aiPreviewMini.previewButton", "Preview"),
33
- C ? /* @__PURE__ */ _(p, { className: "ml-1.5 size-3.5 animate-spin" }) : null
32
+ /* @__PURE__ */ y(h, { className: "mr-1.5 size-4" }),
33
+ C("bigconsole.widget.aiPreviewMini.previewButton", "Preview"),
34
+ w ? /* @__PURE__ */ y(m, { className: "ml-1.5 size-3.5 animate-spin" }) : null
34
35
  ]
35
36
  })]
36
37
  });
37
- let F = [];
38
- O.datasink && F.push({
38
+ let I = [];
39
+ k.datasink && I.push({
39
40
  key: "datasink",
40
- label: S("bigconsole.widget.aiPreviewMini.link.dataSink", "Data Sink"),
41
- path: `/bigconsole/datasinks/${O.datasink}`,
42
- icon: /* @__PURE__ */ _(d, {
41
+ label: C("bigconsole.widget.aiPreviewMini.link.dataSink", "Data Sink"),
42
+ path: `/bigconsole/datasinks/${k.datasink}`,
43
+ icon: /* @__PURE__ */ y(f, {
43
44
  className: "size-4 shrink-0 text-text-muted",
44
45
  "aria-hidden": "true"
45
46
  })
46
- }), O.dashboard && F.push({
47
+ }), k.dashboard && I.push({
47
48
  key: "dashboard",
48
- label: S("bigconsole.widget.aiPreviewMini.link.dashboard", "Dashboard"),
49
- path: `/bigconsole/dashboards/${O.dashboard}`,
50
- icon: /* @__PURE__ */ _(f, {
49
+ label: C("bigconsole.widget.aiPreviewMini.link.dashboard", "Dashboard"),
50
+ path: `/bigconsole/dashboards/${k.dashboard}`,
51
+ icon: /* @__PURE__ */ y(p, {
51
52
  className: "size-4 shrink-0 text-text-muted",
52
53
  "aria-hidden": "true"
53
54
  })
54
- }), O.parser && F.push({
55
+ }), k.parser && I.push({
55
56
  key: "parser",
56
- label: S("bigconsole.widget.aiPreviewMini.link.parser", "Parser"),
57
- path: `/bigconsole/parsers/${O.parser}`,
58
- icon: /* @__PURE__ */ _(u, {
57
+ label: C("bigconsole.widget.aiPreviewMini.link.parser", "Parser"),
58
+ path: `/bigconsole/parsers/${k.parser}`,
59
+ icon: /* @__PURE__ */ y(d, {
59
60
  className: "size-4 shrink-0 text-text-muted",
60
61
  "aria-hidden": "true"
61
62
  })
62
63
  });
63
- let I = e.map((e) => ({
64
+ let L = e.map((e) => ({
64
65
  id: e,
65
- label: S(o[e].key, o[e].fallback),
66
- status: D[e]
66
+ label: C(s[e].key, s[e].fallback),
67
+ status: O[e]
67
68
  }));
68
- return /* @__PURE__ */ v("div", {
69
+ return /* @__PURE__ */ b("div", {
69
70
  "data-testid": "ai-preview-panel",
70
71
  "data-variant": "mini",
71
- style: { paddingRight: i },
72
+ style: { paddingRight: a },
72
73
  className: "mx-4 mb-3 mt-3 min-w-0 md:mx-6",
73
- children: [/* @__PURE__ */ _("h2", {
74
+ children: [/* @__PURE__ */ y("h2", {
74
75
  className: "sr-only",
75
- children: S("bigconsole.widget.aiPreviewMini.title", "AI Preview")
76
- }), /* @__PURE__ */ _(b, {
77
- title: S("bigconsole.widget.aiPreviewMini.title", "AI Preview"),
78
- steps: I,
79
- caption: C ? k || S("bigconsole.widget.aiPreviewMini.working", "Working…") : S("bigconsole.widget.aiPreviewMini.done", "Done"),
80
- error: A,
81
- meta: /* @__PURE__ */ _(a, {
82
- state: C ? "running" : A ? "stopped" : "idle",
83
- stateLabel: C ? S("bigconsole.widget.aiPreviewMini.live", "Live") : A ? S("bigconsole.widget.aiPreviewMini.stopped", "Stopped") : null,
84
- updatedLabel: S("bigconsole.widget.aiPreviewMini.updated", "updated"),
85
- updatedAt: j,
86
- ago: (e) => s(e, S)
76
+ children: C("bigconsole.widget.aiPreviewMini.title", "AI Preview")
77
+ }), /* @__PURE__ */ y(x, {
78
+ title: C("bigconsole.widget.aiPreviewMini.title", "AI Preview"),
79
+ steps: L,
80
+ caption: w ? A || C("bigconsole.widget.aiPreviewMini.working", "Working…") : C("bigconsole.widget.aiPreviewMini.done", "Done"),
81
+ error: j,
82
+ meta: /* @__PURE__ */ y(o, {
83
+ state: w ? "running" : j ? "stopped" : "idle",
84
+ stateLabel: w ? C("bigconsole.widget.aiPreviewMini.live", "Live") : j ? C("bigconsole.widget.aiPreviewMini.stopped", "Stopped") : null,
85
+ updatedLabel: C("bigconsole.widget.aiPreviewMini.updated", "updated"),
86
+ updatedAt: M,
87
+ ago: (e) => c(e, C)
87
88
  }),
88
- headerActions: /* @__PURE__ */ _(g, {
89
+ headerActions: /* @__PURE__ */ y(_, {
89
90
  size: "sm",
90
91
  variant: "ghost",
91
- onClick: N,
92
- "aria-label": S("bigconsole.widget.aiPreviewMini.closeAriaLabel", "Close preview"),
92
+ onClick: P,
93
+ "aria-label": C("bigconsole.widget.aiPreviewMini.closeAriaLabel", "Close preview"),
93
94
  "data-testid": "ai-preview-close",
94
- children: /* @__PURE__ */ _(h, { className: "size-4" })
95
+ children: /* @__PURE__ */ y(g, { className: "size-4" })
95
96
  }),
96
- labels: c(S),
97
- children: /* @__PURE__ */ _("div", {
97
+ labels: l(C),
98
+ children: /* @__PURE__ */ y("div", {
98
99
  className: "p-3",
99
- children: /* @__PURE__ */ v(r, {
100
+ children: /* @__PURE__ */ b(i, {
100
101
  emphasis: "standard",
101
102
  padding: "compact",
102
103
  headingLevel: 3,
103
- title: S("bigconsole.widget.aiPreviewMini.builtSoFar", "Built so far"),
104
- description: S("bigconsole.widget.aiPreviewMini.builtSoFarHint", "Open any piece to see the real thing."),
104
+ title: C("bigconsole.widget.aiPreviewMini.builtSoFar", "Built so far"),
105
+ description: C("bigconsole.widget.aiPreviewMini.builtSoFarHint", "Open any piece to see the real thing."),
105
106
  bodyClassName: "flex flex-col gap-list-gap",
106
- children: [F.length === 0 ? /* @__PURE__ */ _("p", {
107
+ children: [I.length === 0 ? /* @__PURE__ */ y("p", {
107
108
  className: "text-sm text-text-muted",
108
- children: C ? S("bigconsole.widget.aiPreviewMini.building", "Building… links appear here as each piece is created.") : S("bigconsole.widget.aiPreviewMini.nothingBuilt", "Nothing built yet.")
109
- }) : F.map((e) => /* @__PURE__ */ v("div", {
109
+ children: w ? C("bigconsole.widget.aiPreviewMini.building", "Building… links appear here as each piece is created.") : C("bigconsole.widget.aiPreviewMini.nothingBuilt", "Nothing built yet.")
110
+ }) : I.map((e) => /* @__PURE__ */ b("div", {
110
111
  "data-testid": "ai-preview-row",
111
112
  className: "flex min-w-0 items-center justify-between gap-control-gap rounded-card border border-[var(--color-border-subtle)] bg-bg-canvas px-3 py-2",
112
- children: [/* @__PURE__ */ v("p", {
113
+ children: [/* @__PURE__ */ b("p", {
113
114
  className: "flex min-w-0 items-center gap-icon-gap text-sm font-medium text-text-primary",
114
- children: [e.icon, /* @__PURE__ */ _("span", {
115
+ children: [e.icon, /* @__PURE__ */ y("span", {
115
116
  className: "truncate",
116
- children: S("bigconsole.widget.aiPreviewMini.linkReady", "{{label}} ready", { label: e.label })
117
+ children: C("bigconsole.widget.aiPreviewMini.linkReady", "{{label}} ready", { label: e.label })
117
118
  })]
118
- }), /* @__PURE__ */ v(g, {
119
+ }), /* @__PURE__ */ b(_, {
119
120
  size: "sm",
120
121
  variant: "ghost",
121
- onClick: () => P(e.path),
122
- children: [S("bigconsole.widget.aiPreviewMini.open", "Open"), /* @__PURE__ */ _(l, { className: "ml-1 size-3.5" })]
122
+ onClick: () => F(e.path),
123
+ children: [C("bigconsole.widget.aiPreviewMini.open", "Open"), /* @__PURE__ */ y(u, { className: "ml-1 size-3.5" })]
123
124
  })]
124
- }, e.key)), O.dashboard ? /* @__PURE__ */ v(g, {
125
+ }, e.key)), k.dashboard ? /* @__PURE__ */ b(_, {
125
126
  size: "sm",
126
127
  variant: "outline",
127
128
  className: "h-auto w-full whitespace-normal py-1.5 text-center",
128
129
  "data-testid": "ai-preview-open-in-bigconsole",
129
- onClick: () => P(`/bigconsole/dashboards/${O.dashboard ?? ""}`),
130
- children: [S("bigconsole.widget.aiPreviewMini.openInBigConsole", "Open in BigConsole for the live view"), /* @__PURE__ */ _(l, { className: "ml-1 size-3.5" })]
130
+ onClick: () => F(`/bigconsole/dashboards/${k.dashboard ?? ""}`),
131
+ children: [C("bigconsole.widget.aiPreviewMini.openInBigConsole", "Open in BigConsole for the live view"), /* @__PURE__ */ y(u, { className: "ml-1 size-3.5" })]
131
132
  }) : null]
132
133
  })
133
134
  })
@@ -135,4 +136,4 @@ function x({ onNavigate: x }) {
135
136
  });
136
137
  }
137
138
  //#endregion
138
- export { x as AiPreviewMiniPanel };
139
+ export { S as AiPreviewMiniPanel };