@burdenoff/microfe-bigconsole 2026.924.1 → 2026.924.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/bigconsole/BigConsoleRoutes.js +137 -138
  2. package/dist/bigconsole/BigConsoleRoutes.js.map +1 -1
  3. package/dist/bigconsole/assistant/previewController.js +10 -10
  4. package/dist/bigconsole/assistant/useAssistantPanelShowsPreview.js +25 -0
  5. package/dist/bigconsole/assistant/useAssistantPanelShowsPreview.js.map +1 -0
  6. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +17 -17
  7. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +32 -32
  8. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +52 -52
  9. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  10. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +7 -7
  11. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js +53 -0
  12. package/dist/bigconsole/components/dashboard/DashboardStatusPill.js.map +1 -0
  13. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +60 -60
  14. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +21 -21
  15. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
  16. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +36 -36
  17. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
  18. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +38 -38
  19. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  20. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +121 -121
  21. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  22. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +22 -22
  23. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
  24. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +53 -53
  25. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
  26. package/dist/bigconsole/components/dashboard/WidgetPalette.js +47 -47
  27. package/dist/bigconsole/components/dashboard/index.js +1 -0
  28. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
  29. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
  30. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
  31. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +30 -29
  32. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -1
  33. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +48 -48
  34. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +103 -103
  35. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  36. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
  37. package/dist/bigconsole/components/overview/DashboardGuide.js +214 -0
  38. package/dist/bigconsole/components/overview/DashboardGuide.js.map +1 -0
  39. package/dist/bigconsole/components/overview/DataHealthCard.js +97 -0
  40. package/dist/bigconsole/components/overview/DataHealthCard.js.map +1 -0
  41. package/dist/bigconsole/components/overview/OverviewQuickActions.js +32 -0
  42. package/dist/bigconsole/components/overview/OverviewQuickActions.js.map +1 -0
  43. package/dist/bigconsole/components/overview/OverviewStatCard.js +57 -0
  44. package/dist/bigconsole/components/overview/OverviewStatCard.js.map +1 -0
  45. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js +107 -0
  46. package/dist/bigconsole/components/overview/RecentDashboardsPanel.js.map +1 -0
  47. package/dist/bigconsole/components/overview/dashboardGuideSteps.js +119 -0
  48. package/dist/bigconsole/components/overview/dashboardGuideSteps.js.map +1 -0
  49. package/dist/bigconsole/components/overview/index.js +8 -0
  50. package/dist/bigconsole/components/overview/overviewModel.js +119 -0
  51. package/dist/bigconsole/components/overview/overviewModel.js.map +1 -0
  52. package/dist/bigconsole/components/overview/useOverviewData.js +48 -0
  53. package/dist/bigconsole/components/overview/useOverviewData.js.map +1 -0
  54. package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
  55. package/dist/bigconsole/components/parser/ImportParserDialog.js +127 -127
  56. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  57. package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
  58. package/dist/bigconsole/components/preview/AiPreviewContent.js +5 -5
  59. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +62 -61
  60. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
  61. package/dist/bigconsole/components/preview/AiPreviewPanel.js +82 -81
  62. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  63. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +13 -13
  64. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +70 -70
  65. package/dist/bigconsole/components/widgets/PropertiesPanel.js +28 -28
  66. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +25 -25
  67. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
  68. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
  69. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
  70. package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
  71. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
  72. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
  73. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +21 -21
  74. package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
  75. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
  76. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
  77. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
  78. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
  79. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
  80. package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
  81. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
  82. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +10 -10
  83. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +68 -68
  84. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  85. package/dist/bigconsole/pages/AdminPage.js +136 -136
  86. package/dist/bigconsole/pages/DashboardBuilderPage.js +10 -10
  87. package/dist/bigconsole/pages/DashboardViewPage.js +61 -61
  88. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  89. package/dist/bigconsole/pages/DashboardsPage.js +327 -348
  90. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  91. package/dist/bigconsole/pages/DataParsersPage.js +5 -5
  92. package/dist/bigconsole/pages/DataSinkBuilderPage.js +10 -10
  93. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  94. package/dist/bigconsole/pages/DataSinkViewPage.js +83 -83
  95. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  96. package/dist/bigconsole/pages/DataSinksPage.js +11 -11
  97. package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
  98. package/dist/bigconsole/pages/InsightsPage.js +315 -315
  99. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  100. package/dist/bigconsole/pages/OverviewPage.js +244 -0
  101. package/dist/bigconsole/pages/OverviewPage.js.map +1 -0
  102. package/dist/bigconsole/pages/ParserBuilderPage.js +5 -5
  103. package/dist/bigconsole/pages/ParserViewPage.js +98 -98
  104. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  105. package/dist/bigconsole/pages/PipelineBuilderPage.js +8 -8
  106. package/dist/bigconsole/pages/PipelineViewPage.js +46 -46
  107. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  108. package/dist/bigconsole/pages/PipelinesPage.js +80 -80
  109. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  110. package/dist/bigconsole/pages/SettingsPage.js +70 -70
  111. package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
  112. package/dist/bigconsole/pages/WorkflowViewPage.js +200 -200
  113. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  114. package/dist/bigconsole/pages/WorkflowsPage.js +78 -78
  115. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  116. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +34 -34
  117. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +79 -79
  118. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
  119. package/dist/bigconsole/utils/createDialogParam.js +14 -0
  120. package/dist/bigconsole/utils/createDialogParam.js.map +1 -0
  121. package/dist/generated/global-operations.js +1 -1
  122. package/dist/generated/wspace-operations.js +285 -222
  123. package/dist/generated/wspace-operations.js.map +1 -1
  124. package/dist/shared/hooks/useTr.js +10 -7
  125. package/dist/shared/hooks/useTr.js.map +1 -1
  126. package/package.json +1 -1
  127. package/dist/bigconsole/pages/HomePage.js +0 -318
  128. package/dist/bigconsole/pages/HomePage.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { useEffect as e, useState as t } from "react";
2
+ //#region src/bigconsole/assistant/useAssistantPanelShowsPreview.ts
3
+ var n = "[data-assistant-panel]", r = "data-assistant-overlay", i = "preview";
4
+ function a(e = document) {
5
+ return e.querySelector(n)?.getAttribute(r) === i;
6
+ }
7
+ function o() {
8
+ let [n, i] = t(() => typeof document > "u" ? !1 : a());
9
+ return e(() => {
10
+ if (typeof document > "u") return;
11
+ let e = () => i(a());
12
+ e();
13
+ let t = new MutationObserver(e);
14
+ return t.observe(document.body, {
15
+ subtree: !0,
16
+ childList: !0,
17
+ attributes: !0,
18
+ attributeFilter: [r]
19
+ }), () => t.disconnect();
20
+ }, []), n;
21
+ }
22
+ //#endregion
23
+ export { o as useAssistantPanelShowsPreview };
24
+
25
+ //# sourceMappingURL=useAssistantPanelShowsPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAssistantPanelShowsPreview.js","names":[],"sources":["../../../src/bigconsole/assistant/useAssistantPanelShowsPreview.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * Is the shared assistant panel currently showing the preview ITSELF?\n *\n * ★★★ WHY THIS EXISTS. The preview has three surfaces — the rich page panel,\n * the mini page panel, and fe-libs' in-chat overlay — and only one may show per\n * run. BigConsole already arbitrates its own two (`richMounted`), but nothing\n * arbitrated against the third: fe-libs renders the SAME controller via\n * `controller.render()` inside its overlay, driven by its own local state, so\n * opening the overlay left the page surface up as well.\n *\n * Measured on app.bigconsole.com 2026-09-24, one Build run, one click of the\n * panel's \"Build preview\" toggle:\n * before -> page surface [283,145,1109,270], no overlay\n * after -> page surface STILL [283,145,1109,270]\n * plus the same preview again at [897,166,518,160] inside the\n * overlay, inside the assistant panel\n * Two live surfaces for one run, side by side, showing the same build.\n *\n * ★★ IT READS THE ATTRIBUTE fe-libs ALREADY PUBLISHES, rather than adding a\n * contract. `AIAssistantPanel` writes `data-assistant-overlay=\"preview\"` on its\n * root for exactly this kind of cross-package coordination — the same mechanism\n * `assistantPanelOwnsEscape` reads to decide who owns the Escape key. Verified\n * live before building on it: the attribute is absent before the toggle and\n * `\"preview\"` after.\n *\n * ★ A MutationObserver, not a poll or a render-time read. The attribute changes\n * from inside fe-libs' own state, on a node this package does not own and does\n * not re-render with, so there is no React signal to hang it on.\n */\nconst PANEL_SELECTOR = '[data-assistant-panel]';\nconst OVERLAY_ATTR = 'data-assistant-overlay';\nconst PREVIEW = 'preview';\n\n/** Reads the current answer from the DOM. Safe to call before any panel mounts. */\nexport function panelShowsPreviewNow(doc: Pick<Document, 'querySelector'> = document): boolean {\n return doc.querySelector(PANEL_SELECTOR)?.getAttribute(OVERLAY_ATTR) === PREVIEW;\n}\n\nexport function useAssistantPanelShowsPreview(): boolean {\n const [showing, setShowing] = useState(() => (typeof document === 'undefined' ? false : panelShowsPreviewNow()));\n\n useEffect(() => {\n if (typeof document === 'undefined') return;\n const read = () => setShowing(panelShowsPreviewNow());\n read();\n // ★ `subtree` is required: the panel mounts and unmounts below <body>, so an\n // observer bound to attributes alone would never see a panel that appears\n // after this hook runs — which is the common case, since the page surface\n // exists before the user opens the assistant.\n const observer = new MutationObserver(read);\n observer.observe(document.body, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: [OVERLAY_ATTR],\n });\n return () => observer.disconnect();\n }, []);\n\n return showing;\n}\n"],"mappings":";;AA+BA,IAAM,IAAiB,0BACjB,IAAe,0BACf,IAAU;AAGhB,SAAgB,EAAqB,IAAuC,UAAmB;AAC7F,QAAO,EAAI,cAAc,EAAe,EAAE,aAAa,EAAa,KAAK;;AAG3E,SAAgB,IAAyC;CACvD,IAAM,CAAC,GAAS,KAAc,QAAgB,OAAO,WAAa,MAAc,KAAQ,GAAsB,CAAE;AAoBhH,QAlBA,QAAgB;AACd,MAAI,OAAO,WAAa,IAAa;EACrC,IAAM,UAAa,EAAW,GAAsB,CAAC;AACrD,KAAM;EAKN,IAAM,IAAW,IAAI,iBAAiB,EAAK;AAO3C,SANA,EAAS,QAAQ,SAAS,MAAM;GAC9B,SAAS;GACT,WAAW;GACX,YAAY;GACZ,iBAAiB,CAAC,EAAa;GAChC,CAAC,QACW,EAAS,YAAY;IACjC,EAAE,CAAC,EAEC"}
@@ -1,6 +1,6 @@
1
- import { Section as e, SectionStack as t } from "./common/Section.js";
1
+ import { GetDashboardDocument as e, ListWidgetsByDashboardDocument as t } from "../../generated/wspace-operations.js";
2
+ import { Section as n, SectionStack as r } from "./common/Section.js";
2
3
  import "./common/index.js";
3
- import { GetDashboardDocument as n, ListWidgetsByDashboardDocument as r } from "../../generated/wspace-operations.js";
4
4
  import { mapFromFederationWidgetType as i } from "../utils/widgetTypeMapping.js";
5
5
  import a from "./widgets/WidgetWrapper.js";
6
6
  import { memo as o, useEffect as s, useState as c } from "react";
@@ -54,29 +54,29 @@ var p = o(function({ dashboardId: i, params: a }) {
54
54
  h(!1);
55
55
  return;
56
56
  }
57
- async function e() {
57
+ async function n() {
58
58
  h(!0), _(null);
59
59
  try {
60
- let e = (await o.query({
61
- query: n,
60
+ let n = (await o.query({
61
+ query: e,
62
62
  variables: { id: i },
63
63
  fetchPolicy: "network-only"
64
64
  })).data?.getDashboard;
65
- if (!e) {
65
+ if (!n) {
66
66
  _("Dashboard not found"), h(!1);
67
67
  return;
68
68
  }
69
- let t = e.pages?.edges?.map((e) => ({
69
+ let r = n.pages?.edges?.map((e) => ({
70
70
  id: e.node.id,
71
71
  name: e.node.name || "Page 1"
72
72
  })) || [];
73
73
  y({
74
- id: e.id,
75
- name: e.name,
76
- description: e.description,
77
- pages: t
74
+ id: n.id,
75
+ name: n.name,
76
+ description: n.description,
77
+ pages: r
78
78
  }), x(((await o.query({
79
- query: r,
79
+ query: t,
80
80
  variables: { dashboardId: i },
81
81
  fetchPolicy: "network-only"
82
82
  })).data?.listWidgetsByDashboard || []).map((e, t) => f(e, t)));
@@ -86,7 +86,7 @@ var p = o(function({ dashboardId: i, params: a }) {
86
86
  h(!1);
87
87
  }
88
88
  }
89
- e();
89
+ n();
90
90
  }, [i, o]), p) return /* @__PURE__ */ u("div", {
91
91
  className: "flex items-center justify-center h-full",
92
92
  children: /* @__PURE__ */ d("div", {
@@ -100,7 +100,7 @@ var p = o(function({ dashboardId: i, params: a }) {
100
100
  if (g) return /* @__PURE__ */ u("div", {
101
101
  className: "flex h-full items-center justify-center",
102
102
  role: "alert",
103
- children: /* @__PURE__ */ u(e, {
103
+ children: /* @__PURE__ */ u(n, {
104
104
  headingLevel: 3,
105
105
  tone: "danger",
106
106
  className: "w-full max-w-md",
@@ -143,10 +143,10 @@ var p = o(function({ dashboardId: i, params: a }) {
143
143
  })
144
144
  });
145
145
  let S = Object.entries(a).filter(([e]) => !e.startsWith("__"));
146
- return /* @__PURE__ */ d(t, {
146
+ return /* @__PURE__ */ d(r, {
147
147
  className: "w-full",
148
148
  children: [
149
- /* @__PURE__ */ u(e, {
149
+ /* @__PURE__ */ u(n, {
150
150
  emphasis: "bare",
151
151
  padding: "none",
152
152
  headingLevel: 3,
@@ -154,7 +154,7 @@ var p = o(function({ dashboardId: i, params: a }) {
154
154
  description: v.description,
155
155
  "data-testid": "drilldown-dashboard-header"
156
156
  }),
157
- S.length > 0 && /* @__PURE__ */ u(e, {
157
+ S.length > 0 && /* @__PURE__ */ u(n, {
158
158
  emphasis: "muted",
159
159
  padding: "compact",
160
160
  headingLevel: 3,
@@ -2,9 +2,9 @@ import { Section as e, SectionStack as t } from "../../common/Section.js";
2
2
  import "../../common/index.js";
3
3
  import n from "../../parser/DataSinkSelector.js";
4
4
  import r from "../../parser/ParserSelector.js";
5
- import { useI18n as i } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
- import { Input as a, Label as o, Spinner as s } from "@burdenoff/fe-libs/ui";
7
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
5
+ import { Input as i, Label as a, Spinner as o } from "@burdenoff/fe-libs/ui";
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/builder/inspector/DataBindingSection.tsx
9
9
  var u = {
10
10
  unbound: "info",
@@ -14,7 +14,7 @@ var u = {
14
14
  parser_error: "danger",
15
15
  field_mismatch: "warning"
16
16
  }, d = ({ consoleId: d, binding: f, dataSinkKey: p, dataPath: m, status: h, missingFields: g = [], preview: _, error: v, onDataSinkChange: y, onParserChange: b, onDataPathChange: x }) => {
17
- let { t: S } = i(), C = {
17
+ let { t: S } = l(), C = {
18
18
  unbound: S("bigconsole.builder.dataBinding.status.unbound", "Select a DataSink to begin"),
19
19
  loading: S("bigconsole.builder.dataBinding.status.loading", "Testing parser and detecting fields…"),
20
20
  bound: S("bigconsole.builder.dataBinding.status.bound", "Binding ready"),
@@ -22,33 +22,33 @@ var u = {
22
22
  parser_error: S("bigconsole.builder.dataBinding.status.parserError", "Parser test failed"),
23
23
  field_mismatch: S("bigconsole.builder.dataBinding.status.fieldMismatch", "Some mapped fields were not found")
24
24
  };
25
- return /* @__PURE__ */ l(t, { children: [
26
- /* @__PURE__ */ c(e, {
25
+ return /* @__PURE__ */ c(t, { children: [
26
+ /* @__PURE__ */ s(e, {
27
27
  title: "Data source",
28
28
  description: S("bigconsole.builder.dataBinding.intro", "Connect this widget to a DataSink and Parser to display transformed data."),
29
29
  "data-testid": "widget-inspector-data-source",
30
- children: /* @__PURE__ */ l("div", {
30
+ children: /* @__PURE__ */ c("div", {
31
31
  className: "flex flex-col gap-form-gap",
32
- children: [/* @__PURE__ */ l("div", {
32
+ children: [/* @__PURE__ */ c("div", {
33
33
  className: "space-y-2",
34
34
  children: [
35
- /* @__PURE__ */ c(o, { children: S("bigconsole.builder.dataBinding.dataSinkLabel", "DataSink") }),
36
- /* @__PURE__ */ c(n, {
35
+ /* @__PURE__ */ s(a, { children: S("bigconsole.builder.dataBinding.dataSinkLabel", "DataSink") }),
36
+ /* @__PURE__ */ s(n, {
37
37
  value: p,
38
38
  onChange: y,
39
39
  placeholder: S("bigconsole.builder.dataBinding.dataSinkPlaceholder", "Select a DataSink...")
40
40
  }),
41
- p && /* @__PURE__ */ l("p", {
41
+ p && /* @__PURE__ */ c("p", {
42
42
  className: "text-xs text-text-secondary",
43
- children: [S("bigconsole.builder.dataBinding.keyLabel", "Key: {{key}}", { key: p }), f.source.ref && /* @__PURE__ */ c("span", {
43
+ children: [S("bigconsole.builder.dataBinding.keyLabel", "Key: {{key}}", { key: p }), f.source.ref && /* @__PURE__ */ s("span", {
44
44
  className: "ml-2 text-text-muted",
45
45
  children: S("bigconsole.builder.dataBinding.idLabel", "ID: {{id}}...", { id: f.source.ref.slice(0, 8) })
46
46
  })]
47
47
  })
48
48
  ]
49
- }), /* @__PURE__ */ l("div", {
49
+ }), /* @__PURE__ */ c("div", {
50
50
  className: "space-y-2",
51
- children: [/* @__PURE__ */ c(o, { children: S("bigconsole.builder.dataBinding.parserLabel", "Parser") }), /* @__PURE__ */ c(r, {
51
+ children: [/* @__PURE__ */ s(a, { children: S("bigconsole.builder.dataBinding.parserLabel", "Parser") }), /* @__PURE__ */ s(r, {
52
52
  consoleId: d,
53
53
  value: f.parserId ?? null,
54
54
  onChange: b,
@@ -60,53 +60,53 @@ var u = {
60
60
  })]
61
61
  })
62
62
  }),
63
- /* @__PURE__ */ c(e, {
63
+ /* @__PURE__ */ s(e, {
64
64
  title: C[h],
65
65
  tone: u[h],
66
66
  padding: "compact",
67
67
  headingLevel: 3,
68
- icon: h === "loading" ? /* @__PURE__ */ c(s, { style: {
68
+ icon: h === "loading" ? /* @__PURE__ */ s(o, { style: {
69
69
  width: "14px",
70
70
  height: "14px"
71
71
  } }) : void 0,
72
72
  "data-testid": "widget-inspector-binding-status",
73
- children: /* @__PURE__ */ l("div", {
73
+ children: /* @__PURE__ */ c("div", {
74
74
  role: "status",
75
75
  "aria-live": "polite",
76
76
  className: "min-w-0 space-y-1",
77
77
  children: [
78
- /* @__PURE__ */ c("p", {
78
+ /* @__PURE__ */ s("p", {
79
79
  className: "sr-only",
80
80
  children: C[h]
81
81
  }),
82
- v && /* @__PURE__ */ c("p", {
82
+ v && /* @__PURE__ */ s("p", {
83
83
  className: "break-words text-xs text-[var(--color-status-error-text)]",
84
84
  children: v
85
85
  }),
86
- g.length > 0 && /* @__PURE__ */ c("p", {
86
+ g.length > 0 && /* @__PURE__ */ s("p", {
87
87
  className: "break-words text-xs text-[var(--color-status-warning-text)]",
88
88
  children: S("bigconsole.builder.dataBinding.missingFields", "Missing: {{fields}}", { fields: g.join(", ") })
89
89
  }),
90
- !v && g.length === 0 && h === "bound" && /* @__PURE__ */ c("p", {
90
+ !v && g.length === 0 && h === "bound" && /* @__PURE__ */ s("p", {
91
91
  className: "text-xs text-text-secondary",
92
92
  children: "The parser ran and its output matches the fields this widget expects."
93
93
  })
94
94
  ]
95
95
  })
96
96
  }),
97
- f.parserId && Object.keys(f.fields).length > 0 && /* @__PURE__ */ c(e, {
97
+ f.parserId && Object.keys(f.fields).length > 0 && /* @__PURE__ */ s(e, {
98
98
  emphasis: "muted",
99
99
  padding: "compact",
100
100
  title: S("bigconsole.builder.dataBinding.fieldMappingsConfigured", "Field mappings configured"),
101
101
  headingLevel: 3,
102
- children: /* @__PURE__ */ c("div", {
102
+ children: /* @__PURE__ */ s("div", {
103
103
  className: "min-w-0 space-y-1 text-xs text-text-secondary",
104
- children: Object.entries(f.fields).map(([e, t]) => /* @__PURE__ */ l("p", {
104
+ children: Object.entries(f.fields).map(([e, t]) => /* @__PURE__ */ c("p", {
105
105
  className: "break-words",
106
106
  children: [
107
107
  e,
108
108
  ": ",
109
- /* @__PURE__ */ c("code", {
109
+ /* @__PURE__ */ s("code", {
110
110
  className: "rounded bg-bg-surface px-1 font-mono",
111
111
  children: t
112
112
  })
@@ -114,36 +114,36 @@ var u = {
114
114
  }, e))
115
115
  })
116
116
  }),
117
- _ !== void 0 && /* @__PURE__ */ c(e, {
117
+ _ !== void 0 && /* @__PURE__ */ s(e, {
118
118
  emphasis: "muted",
119
119
  padding: "compact",
120
120
  title: S("bigconsole.builder.dataBinding.livePreviewLabel", "Live Preview"),
121
121
  description: "Raw parser output, exactly as the widget receives it.",
122
122
  headingLevel: 3,
123
- children: /* @__PURE__ */ c("pre", {
123
+ children: /* @__PURE__ */ s("pre", {
124
124
  className: "max-h-40 min-w-0 overflow-auto rounded-input border border-[var(--color-border-subtle)] bg-bg-surface p-3 text-xs text-text-secondary",
125
125
  children: JSON.stringify(_, null, 2)
126
126
  })
127
127
  }),
128
- /* @__PURE__ */ c(e, {
128
+ /* @__PURE__ */ s(e, {
129
129
  emphasis: "muted",
130
130
  padding: "compact",
131
131
  title: "Data path",
132
132
  headingLevel: 3,
133
- children: /* @__PURE__ */ l("div", {
133
+ children: /* @__PURE__ */ c("div", {
134
134
  className: "space-y-2",
135
135
  children: [
136
- /* @__PURE__ */ c(o, {
136
+ /* @__PURE__ */ s(a, {
137
137
  htmlFor: "widget-inspector-data-path",
138
138
  children: S("bigconsole.builder.dataBinding.dataPathLabel", "Data Path (Optional)")
139
139
  }),
140
- /* @__PURE__ */ c(a, {
140
+ /* @__PURE__ */ s(i, {
141
141
  id: "widget-inspector-data-path",
142
142
  value: m ?? "",
143
143
  onChange: (e) => x(e.target.value || void 0),
144
144
  placeholder: S("bigconsole.builder.dataBinding.dataPathPlaceholder", "e.g., summary.totalRevenue")
145
145
  }),
146
- /* @__PURE__ */ c("p", {
146
+ /* @__PURE__ */ s("p", {
147
147
  className: "text-xs text-text-secondary",
148
148
  children: S("bigconsole.builder.dataBinding.dataPathHelp", "Path to extract specific data from the parser output (dot notation)")
149
149
  })