@burdenoff/microfe-bigconsole 2026.805.3 → 2026.812.2

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 (247) hide show
  1. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +118 -106
  2. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +1 -1
  3. package/dist/bigconsole/components/DrilldownModal.js +54 -50
  4. package/dist/bigconsole/components/DrilldownModal.js.map +1 -1
  5. package/dist/bigconsole/components/builder/BuilderCanvas.js +2 -2
  6. package/dist/bigconsole/components/builder/BuilderCanvas.js.map +1 -1
  7. package/dist/bigconsole/components/builder/BuilderTopbar.js +3 -3
  8. package/dist/bigconsole/components/builder/BuilderTopbar.js.map +1 -1
  9. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +24 -25
  10. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +1 -1
  11. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +40 -29
  12. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +1 -1
  13. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +135 -97
  14. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
  15. package/dist/bigconsole/components/builder/inspector/GeneralSection.js +58 -44
  16. package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +1 -1
  17. package/dist/bigconsole/components/common/Section.js +70 -0
  18. package/dist/bigconsole/components/common/Section.js.map +1 -0
  19. package/dist/bigconsole/components/common/index.js +2 -0
  20. package/dist/bigconsole/components/common/sectionStyles.js +42 -0
  21. package/dist/bigconsole/components/common/sectionStyles.js.map +1 -0
  22. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +209 -193
  23. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  24. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +213 -231
  25. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
  26. package/dist/bigconsole/components/dashboard/DashboardGrid.js +12 -18
  27. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +1 -1
  28. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +109 -102
  29. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
  30. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +81 -70
  31. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  32. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +125 -159
  33. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +1 -1
  34. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +25 -23
  35. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -1
  36. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +3 -3
  37. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
  38. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +5 -3
  39. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -1
  40. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +170 -284
  41. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  42. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +147 -151
  43. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  44. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +45 -53
  45. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +1 -1
  46. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +157 -148
  47. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +1 -1
  48. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +17 -8
  49. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -1
  50. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -95
  51. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +1 -1
  52. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +20 -18
  53. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +1 -1
  54. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +26 -58
  55. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +1 -1
  56. package/dist/bigconsole/components/dashboard/WidgetPalette.js +307 -231
  57. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -1
  58. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +29 -29
  59. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
  60. package/dist/bigconsole/components/datasink/DataSinkCard.js +78 -79
  61. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -1
  62. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +33 -34
  63. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +1 -1
  64. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +79 -56
  65. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -1
  66. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +75 -65
  67. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -1
  68. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +1 -1
  69. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -1
  70. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +20 -19
  71. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +1 -1
  72. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +127 -171
  73. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +1 -1
  74. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +263 -243
  75. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  76. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +65 -66
  77. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +1 -1
  78. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +121 -127
  79. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +1 -1
  80. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +33 -26
  81. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -1
  82. package/dist/bigconsole/components/datasink/SetupStateBadge.js +3 -3
  83. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +1 -1
  84. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +95 -95
  85. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +1 -1
  86. package/dist/bigconsole/components/parser/DataSinkSelector.js +154 -123
  87. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -1
  88. package/dist/bigconsole/components/parser/ExpressionEditor.js +3 -3
  89. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +1 -1
  90. package/dist/bigconsole/components/parser/ImportParserDialog.js +235 -275
  91. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  92. package/dist/bigconsole/components/parser/ParserCard.js +133 -114
  93. package/dist/bigconsole/components/parser/ParserCard.js.map +1 -1
  94. package/dist/bigconsole/components/parser/ParserSelector.js +191 -174
  95. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
  96. package/dist/bigconsole/components/parser/ParserStatusBadge.js +2 -2
  97. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +1 -1
  98. package/dist/bigconsole/components/parser/ParserTypeBadge.js +4 -4
  99. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +1 -1
  100. package/dist/bigconsole/components/pipeline/PipelineCard.js +134 -89
  101. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +1 -1
  102. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +77 -64
  103. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +1 -1
  104. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +7 -10
  105. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +1 -1
  106. package/dist/bigconsole/components/preview/AiPreviewContent.js +31 -32
  107. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +1 -1
  108. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +152 -106
  109. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
  110. package/dist/bigconsole/components/preview/AiPreviewPanel.js +193 -152
  111. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  112. package/dist/bigconsole/components/preview/previewShared.js +41 -23
  113. package/dist/bigconsole/components/preview/previewShared.js.map +1 -1
  114. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +342 -308
  115. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  116. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +262 -238
  117. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  118. package/dist/bigconsole/components/widgets/PropertiesPanel.js +783 -867
  119. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  120. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +7 -5
  121. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +1 -1
  122. package/dist/bigconsole/components/widgets/WidgetHeader.js +7 -8
  123. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +1 -1
  124. package/dist/bigconsole/components/widgets/WidgetRegistry.js +4 -4
  125. package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +1 -1
  126. package/dist/bigconsole/components/widgets/WidgetWrapper.js +8 -7
  127. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -1
  128. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +1 -1
  129. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +1 -1
  130. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +2 -2
  131. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -1
  132. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +11 -5
  133. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -1
  134. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +19 -15
  135. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -1
  136. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +154 -102
  137. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -1
  138. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +36 -32
  139. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +1 -1
  140. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +85 -60
  141. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -1
  142. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +64 -35
  143. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +1 -1
  144. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +46 -45
  145. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +1 -1
  146. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +35 -24
  147. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -1
  148. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +2 -2
  149. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +1 -1
  150. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +4 -4
  151. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -1
  152. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +153 -90
  153. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +1 -1
  154. package/dist/bigconsole/components/widgets/list/ListConfig.js +8 -2
  155. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -1
  156. package/dist/bigconsole/components/widgets/list/ListItem.js +1 -1
  157. package/dist/bigconsole/components/widgets/list/ListItem.js.map +1 -1
  158. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +1 -1
  159. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +1 -1
  160. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +14 -4
  161. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -1
  162. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +112 -89
  163. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +1 -1
  164. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +21 -13
  165. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -1
  166. package/dist/bigconsole/components/widgets/metric-card/index.js +4 -4
  167. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +3 -3
  168. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -1
  169. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +34 -25
  170. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -1
  171. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +129 -114
  172. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +1 -1
  173. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +3 -3
  174. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +1 -1
  175. package/dist/bigconsole/components/widgets/states/EmptyState.js +6 -4
  176. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +1 -1
  177. package/dist/bigconsole/components/widgets/states/ErrorState.js +7 -5
  178. package/dist/bigconsole/components/widgets/states/ErrorState.js.map +1 -1
  179. package/dist/bigconsole/components/widgets/states/LoadingState.js +5 -4
  180. package/dist/bigconsole/components/widgets/states/LoadingState.js.map +1 -1
  181. package/dist/bigconsole/components/widgets/table/TableConfig.js +10 -4
  182. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -1
  183. package/dist/bigconsole/components/widgets/table/TableHeader.js +1 -1
  184. package/dist/bigconsole/components/widgets/table/TableHeader.js.map +1 -1
  185. package/dist/bigconsole/components/widgets/table/TableWidget.js +1 -1
  186. package/dist/bigconsole/components/widgets/table/TableWidget.js.map +1 -1
  187. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +1 -1
  188. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +1 -1
  189. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +3 -3
  190. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +1 -1
  191. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +2 -2
  192. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +1 -1
  193. package/dist/bigconsole/components/widgets/utils/targetProgress.js +13 -0
  194. package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +1 -0
  195. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +112 -85
  196. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -1
  197. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +28 -20
  198. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -1
  199. package/dist/bigconsole/components/workflow/WorkflowCard.js +92 -77
  200. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +1 -1
  201. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +70 -51
  202. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +1 -1
  203. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +16 -17
  204. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +1 -1
  205. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +6 -4
  206. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -1
  207. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +360 -338
  208. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  209. package/dist/bigconsole/hooks/useModalFocusTrap.js +53 -0
  210. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +1 -0
  211. package/dist/bigconsole/pages/DashboardBuilderPage.js +209 -203
  212. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  213. package/dist/bigconsole/pages/DashboardViewPage.js +126 -120
  214. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  215. package/dist/bigconsole/pages/DashboardsPage.js +838 -800
  216. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  217. package/dist/bigconsole/pages/DataParsersPage.js +263 -315
  218. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  219. package/dist/bigconsole/pages/DataSinkBuilderPage.js +301 -341
  220. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  221. package/dist/bigconsole/pages/DataSinkViewPage.js +346 -339
  222. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  223. package/dist/bigconsole/pages/DataSinksPage.js +356 -458
  224. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
  225. package/dist/bigconsole/pages/DataSourcesPage.js +7 -2
  226. package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -1
  227. package/dist/bigconsole/pages/HomePage.js +186 -193
  228. package/dist/bigconsole/pages/HomePage.js.map +1 -1
  229. package/dist/bigconsole/pages/InsightsPage.js +887 -740
  230. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  231. package/dist/bigconsole/pages/ParserBuilderPage.js +679 -637
  232. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  233. package/dist/bigconsole/pages/ParserViewPage.js +368 -342
  234. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  235. package/dist/bigconsole/pages/PipelineBuilderPage.js +537 -444
  236. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  237. package/dist/bigconsole/pages/PipelineViewPage.js +412 -377
  238. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  239. package/dist/bigconsole/pages/PipelinesPage.js +248 -298
  240. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  241. package/dist/bigconsole/pages/WidgetDemoPage.js +251 -153
  242. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  243. package/dist/bigconsole/pages/WorkflowViewPage.js +381 -371
  244. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  245. package/dist/bigconsole/pages/WorkflowsPage.js +171 -286
  246. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  247. package/package.json +1 -1
@@ -1,11 +1,13 @@
1
- import e from "../../hooks/useExportDashboard.js";
1
+ import { Section as e, SectionStack as t } from "../common/Section.js";
2
+ import "../common/index.js";
3
+ import n from "../../hooks/useExportDashboard.js";
2
4
  import "../../hooks/index.js";
3
- import { memo as t, useCallback as n, useEffect as r, useState as i } from "react";
4
- import { Check as a, Download as o, FileJson as s } from "lucide-react";
5
- import { Dialog as c, DialogContent as l, DialogDescription as u, DialogTitle as d, Spinner as f } from "@burdenoff/fe-libs/ui";
6
- import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
5
+ import { memo as r, useCallback as i, useEffect as a, useState as o } from "react";
6
+ import { Check as s, Download as c, FileJson as l } from "lucide-react";
7
+ import { Dialog as u, DialogContent as d, DialogDescription as f, DialogTitle as p, Spinner as m } from "@burdenoff/fe-libs/ui";
8
+ import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
7
9
  //#region src/bigconsole/components/dashboard/ExportDashboardDialog.tsx
8
- var g = {
10
+ var v = {
9
11
  dialogContent: {
10
12
  maxWidth: "450px",
11
13
  width: "95vw",
@@ -18,7 +20,7 @@ var g = {
18
20
  alignItems: "center",
19
21
  gap: "12px",
20
22
  padding: "20px 24px",
21
- borderBottom: "1px solid var(--color-border)",
23
+ borderBottom: "1px solid var(--color-border-subtle)",
22
24
  backgroundColor: "var(--color-bg-sunken)"
23
25
  },
24
26
  iconWrapper: {
@@ -45,34 +47,6 @@ var g = {
45
47
  margin: "4px 0 0 0"
46
48
  },
47
49
  content: { padding: "20px 24px" },
48
- dashboardInfo: {
49
- padding: "12px 16px",
50
- backgroundColor: "var(--color-bg-muted)",
51
- borderRadius: "8px",
52
- marginBottom: "20px"
53
- },
54
- dashboardLabel: {
55
- fontSize: "12px",
56
- color: "var(--color-text-secondary)",
57
- margin: 0
58
- },
59
- dashboardName: {
60
- fontSize: "14px",
61
- fontWeight: 500,
62
- color: "var(--color-text-primary)",
63
- margin: "4px 0 0 0",
64
- overflow: "hidden",
65
- textOverflow: "ellipsis",
66
- whiteSpace: "nowrap"
67
- },
68
- optionsTitle: {
69
- fontSize: "13px",
70
- fontWeight: 600,
71
- color: "var(--color-text-secondary)",
72
- marginBottom: "16px",
73
- textTransform: "uppercase",
74
- letterSpacing: "0.05em"
75
- },
76
50
  optionItem: {
77
51
  display: "flex",
78
52
  alignItems: "flex-start",
@@ -81,7 +55,7 @@ var g = {
81
55
  borderRadius: "8px",
82
56
  marginBottom: "8px",
83
57
  backgroundColor: "var(--color-bg-sunken)",
84
- border: "1px solid var(--color-border)",
58
+ border: "1px solid var(--color-border-subtle)",
85
59
  cursor: "pointer",
86
60
  transition: "all 0.15s ease"
87
61
  },
@@ -93,7 +67,7 @@ var g = {
93
67
  width: "20px",
94
68
  height: "20px",
95
69
  borderRadius: "4px",
96
- border: "2px solid var(--color-border)",
70
+ border: "2px solid var(--color-border-subtle)",
97
71
  display: "flex",
98
72
  alignItems: "center",
99
73
  justifyContent: "center",
@@ -118,24 +92,12 @@ var g = {
118
92
  color: "var(--color-text-secondary)",
119
93
  margin: "4px 0 0 0"
120
94
  },
121
- error: {
122
- padding: "12px 16px",
123
- backgroundColor: "var(--color-status-error-bgSubtle)",
124
- border: "1px solid var(--color-status-error-border)",
125
- borderRadius: "8px",
126
- marginTop: "16px"
127
- },
128
- errorText: {
129
- fontSize: "13px",
130
- color: "var(--color-status-error-text)",
131
- margin: 0
132
- },
133
95
  footer: {
134
96
  display: "flex",
135
97
  justifyContent: "flex-end",
136
98
  gap: "12px",
137
99
  padding: "16px 24px",
138
- borderTop: "1px solid var(--color-border)",
100
+ borderTop: "1px solid var(--color-border-subtle)",
139
101
  backgroundColor: "var(--color-bg-sunken)"
140
102
  },
141
103
  cancelButton: {
@@ -143,7 +105,7 @@ var g = {
143
105
  fontSize: "14px",
144
106
  fontWeight: 500,
145
107
  borderRadius: "8px",
146
- border: "1px solid var(--color-border)",
108
+ border: "1px solid var(--color-border-subtle)",
147
109
  backgroundColor: "var(--color-bg-surface)",
148
110
  color: "var(--color-text-secondary)",
149
111
  cursor: "pointer",
@@ -168,141 +130,145 @@ var g = {
168
130
  opacity: .5,
169
131
  cursor: "not-allowed"
170
132
  }
171
- }, _ = t(function({ checked: e, onChange: t, disabled: n, label: r, description: i }) {
172
- return /* @__PURE__ */ h("div", {
133
+ }, y = r(function({ checked: e, onChange: t, disabled: n, label: r, description: i }) {
134
+ return /* @__PURE__ */ _("div", {
173
135
  style: {
174
- ...g.optionItem,
175
- ...e ? g.optionItemActive : {},
136
+ ...v.optionItem,
137
+ ...e ? v.optionItemActive : {},
176
138
  opacity: n ? .6 : 1,
177
139
  cursor: n ? "not-allowed" : "pointer"
178
140
  },
179
141
  onClick: () => !n && t(!e),
180
- children: [/* @__PURE__ */ m("div", {
142
+ children: [/* @__PURE__ */ g("div", {
181
143
  style: {
182
- ...g.checkbox,
183
- ...e ? g.checkboxChecked : {}
144
+ ...v.checkbox,
145
+ ...e ? v.checkboxChecked : {}
184
146
  },
185
- children: e && /* @__PURE__ */ m(a, { style: {
147
+ children: e && /* @__PURE__ */ g(s, { style: {
186
148
  width: "14px",
187
149
  height: "14px",
188
150
  color: "var(--color-action-primary-text)"
189
151
  } })
190
- }), /* @__PURE__ */ h("div", {
191
- style: g.optionText,
192
- children: [/* @__PURE__ */ m("p", {
193
- style: g.optionLabel,
152
+ }), /* @__PURE__ */ _("div", {
153
+ style: v.optionText,
154
+ children: [/* @__PURE__ */ g("p", {
155
+ style: v.optionLabel,
194
156
  children: r
195
- }), /* @__PURE__ */ m("p", {
196
- style: g.optionDescription,
157
+ }), /* @__PURE__ */ g("p", {
158
+ style: v.optionDescription,
197
159
  children: i
198
160
  })]
199
161
  })]
200
162
  });
201
- }), v = t(function({ isOpen: t, dashboardId: a, dashboardName: v, onClose: y, onSuccess: b }) {
202
- let [x, S] = i(!0), [C, w] = i(!1), [T, E] = i(!0), { loading: D, error: O, downloadDashboard: k, clearError: A } = e();
203
- r(() => {
204
- t && (S(!0), w(!1), E(!0), A());
205
- }, [t, A]);
206
- let j = n(async () => {
207
- a && await k(a, v, {
208
- includeDataSourceRefs: x,
209
- includeWebhookMappings: C,
210
- prettyPrint: T
211
- }) && (b?.(), y());
163
+ }), b = r(function({ isOpen: r, dashboardId: s, dashboardName: b, onClose: x, onSuccess: S }) {
164
+ let [C, w] = o(!0), [T, E] = o(!1), [D, O] = o(!0), { loading: k, error: A, downloadDashboard: j, clearError: M } = n();
165
+ a(() => {
166
+ r && (w(!0), E(!1), O(!0), M());
167
+ }, [r, M]);
168
+ let N = i(async () => {
169
+ s && await j(s, b, {
170
+ includeDataSourceRefs: C,
171
+ includeWebhookMappings: T,
172
+ prettyPrint: D
173
+ }) && (S?.(), x());
212
174
  }, [
213
- a,
214
- v,
215
- x,
175
+ s,
176
+ b,
216
177
  C,
217
178
  T,
218
- k,
219
- b,
220
- y
179
+ D,
180
+ j,
181
+ S,
182
+ x
221
183
  ]);
222
- return a ? /* @__PURE__ */ m(c, {
223
- open: t,
224
- onOpenChange: (e) => !e && !D && y(),
225
- children: /* @__PURE__ */ h(l, {
226
- style: g.dialogContent,
184
+ return s ? /* @__PURE__ */ g(u, {
185
+ open: r,
186
+ onOpenChange: (e) => !e && !k && x(),
187
+ children: /* @__PURE__ */ _(d, {
188
+ style: v.dialogContent,
227
189
  children: [
228
- /* @__PURE__ */ h("div", {
229
- style: g.header,
230
- children: [/* @__PURE__ */ m("div", {
231
- style: g.iconWrapper,
232
- children: /* @__PURE__ */ m(s, { style: {
190
+ /* @__PURE__ */ _("div", {
191
+ style: v.header,
192
+ children: [/* @__PURE__ */ g("div", {
193
+ style: v.iconWrapper,
194
+ children: /* @__PURE__ */ g(l, { style: {
233
195
  width: "22px",
234
196
  height: "22px"
235
197
  } })
236
- }), /* @__PURE__ */ h("div", {
237
- style: g.headerText,
238
- children: [/* @__PURE__ */ m(d, {
198
+ }), /* @__PURE__ */ _("div", {
199
+ style: v.headerText,
200
+ children: [/* @__PURE__ */ g(p, {
239
201
  asChild: !0,
240
- children: /* @__PURE__ */ m("h2", {
241
- style: g.title,
202
+ children: /* @__PURE__ */ g("h2", {
203
+ style: v.title,
242
204
  children: "Export Dashboard"
243
205
  })
244
- }), /* @__PURE__ */ m(u, {
206
+ }), /* @__PURE__ */ g(f, {
245
207
  asChild: !0,
246
- children: /* @__PURE__ */ m("p", {
247
- style: g.description,
208
+ children: /* @__PURE__ */ g("p", {
209
+ style: v.description,
248
210
  children: "Export your dashboard configuration to a JSON file."
249
211
  })
250
212
  })]
251
213
  })]
252
214
  }),
253
- /* @__PURE__ */ h("div", {
254
- style: g.content,
255
- children: [
256
- v && /* @__PURE__ */ h("div", {
257
- style: g.dashboardInfo,
258
- children: [/* @__PURE__ */ m("p", {
259
- style: g.dashboardLabel,
260
- children: "Exporting:"
261
- }), /* @__PURE__ */ m("p", {
262
- style: g.dashboardName,
263
- children: v
264
- })]
265
- }),
266
- /* @__PURE__ */ m("p", {
267
- style: g.optionsTitle,
268
- children: "Export Options"
215
+ /* @__PURE__ */ g("div", {
216
+ style: v.content,
217
+ children: /* @__PURE__ */ _(t, { children: [
218
+ b && /* @__PURE__ */ g(e, {
219
+ headingLevel: 3,
220
+ emphasis: "muted",
221
+ padding: "compact",
222
+ title: "Exporting",
223
+ description: b,
224
+ "data-testid": "export-target"
269
225
  }),
270
- /* @__PURE__ */ m(_, {
271
- checked: x,
272
- onChange: S,
273
- disabled: D,
274
- label: "Include Data Source References",
275
- description: "Store data source names for reference (IDs are not transferred)"
226
+ /* @__PURE__ */ _(e, {
227
+ headingLevel: 3,
228
+ title: "Export options",
229
+ description: "What to include in the JSON file.",
230
+ "data-testid": "export-options",
231
+ bodyClassName: "flex flex-col gap-form-gap",
232
+ children: [
233
+ /* @__PURE__ */ g(y, {
234
+ checked: C,
235
+ onChange: w,
236
+ disabled: k,
237
+ label: "Include Data Source References",
238
+ description: "Store data source names for reference (IDs are not transferred)"
239
+ }),
240
+ /* @__PURE__ */ g(y, {
241
+ checked: T,
242
+ onChange: E,
243
+ disabled: k,
244
+ label: "Include Webhook Mappings",
245
+ description: "Export webhook configurations (URLs will need to be reconfigured)"
246
+ }),
247
+ /* @__PURE__ */ g(y, {
248
+ checked: D,
249
+ onChange: O,
250
+ disabled: k,
251
+ label: "Format JSON (Pretty Print)",
252
+ description: "Makes the export file human-readable (larger file size)"
253
+ })
254
+ ]
276
255
  }),
277
- /* @__PURE__ */ m(_, {
278
- checked: C,
279
- onChange: w,
280
- disabled: D,
281
- label: "Include Webhook Mappings",
282
- description: "Export webhook configurations (URLs will need to be reconfigured)"
283
- }),
284
- /* @__PURE__ */ m(_, {
285
- checked: T,
286
- onChange: E,
287
- disabled: D,
288
- label: "Format JSON (Pretty Print)",
289
- description: "Makes the export file human-readable (larger file size)"
290
- }),
291
- O && /* @__PURE__ */ m("div", {
292
- style: g.error,
293
- children: /* @__PURE__ */ m("p", {
294
- style: g.errorText,
295
- children: O.message
296
- })
256
+ A && /* @__PURE__ */ g(e, {
257
+ headingLevel: 3,
258
+ tone: "danger",
259
+ padding: "compact",
260
+ title: "Export failed",
261
+ description: A.message,
262
+ "data-testid": "export-error"
297
263
  })
298
- ]
264
+ ] })
299
265
  }),
300
- /* @__PURE__ */ h("div", {
301
- style: g.footer,
302
- children: [/* @__PURE__ */ m("button", {
303
- style: g.cancelButton,
304
- onClick: y,
305
- disabled: D,
266
+ /* @__PURE__ */ _("div", {
267
+ style: v.footer,
268
+ children: [/* @__PURE__ */ g("button", {
269
+ style: v.cancelButton,
270
+ onClick: x,
271
+ disabled: k,
306
272
  onMouseEnter: (e) => {
307
273
  e.currentTarget.style.backgroundColor = "var(--color-bg-muted)";
308
274
  },
@@ -310,23 +276,23 @@ var g = {
310
276
  e.currentTarget.style.backgroundColor = "var(--color-bg-surface)";
311
277
  },
312
278
  children: "Cancel"
313
- }), /* @__PURE__ */ m("button", {
279
+ }), /* @__PURE__ */ g("button", {
314
280
  style: {
315
- ...g.exportButton,
316
- ...D ? g.exportButtonDisabled : {}
281
+ ...v.exportButton,
282
+ ...k ? v.exportButtonDisabled : {}
317
283
  },
318
- onClick: j,
319
- disabled: D,
284
+ onClick: N,
285
+ disabled: k,
320
286
  onMouseEnter: (e) => {
321
- D || (e.currentTarget.style.opacity = "0.9");
287
+ k || (e.currentTarget.style.opacity = "0.9");
322
288
  },
323
289
  onMouseLeave: (e) => {
324
- D || (e.currentTarget.style.opacity = "1");
290
+ k || (e.currentTarget.style.opacity = "1");
325
291
  },
326
- children: D ? /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(f, { style: {
292
+ children: k ? /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g(m, { style: {
327
293
  width: "16px",
328
294
  height: "16px"
329
- } }), "Exporting..."] }) : /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m(o, { style: {
295
+ } }), "Exporting..."] }) : /* @__PURE__ */ _(h, { children: [/* @__PURE__ */ g(c, { style: {
330
296
  width: "16px",
331
297
  height: "16px"
332
298
  } }), "Download Export"] })
@@ -337,6 +303,6 @@ var g = {
337
303
  }) : null;
338
304
  });
339
305
  //#endregion
340
- export { v as default };
306
+ export { b as default };
341
307
 
342
308
  //# sourceMappingURL=ExportDashboardDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExportDashboardDialog.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/ExportDashboardDialog.tsx"],"sourcesContent":["/**\n * ExportDashboardDialog Component\n *\n * Modal dialog for exporting a dashboard to JSON.\n * Uses inline styles for consistent styling across environments.\n */\n\nimport { type FC, memo, useState, useCallback, useEffect } from 'react';\nimport { Dialog, DialogContent, DialogTitle, DialogDescription } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { Download, FileJson, Check } from 'lucide-react';\nimport { useExportDashboard, type ExportDashboardOptions } from '../../hooks';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ExportDashboardDialogProps {\n /** Whether dialog is open */\n isOpen: boolean;\n /** Dashboard ID to export */\n dashboardId: string | null;\n /** Dashboard name for filename */\n dashboardName?: string;\n /** Callback when dialog is closed */\n onClose: () => void;\n /** Callback when export succeeds */\n onSuccess?: () => void;\n}\n\n// ============================================================================\n// Styles\n// ============================================================================\n\nconst styles = {\n dialogContent: {\n maxWidth: '450px',\n width: '95vw',\n padding: 0,\n borderRadius: '12px',\n overflow: 'hidden',\n } as React.CSSProperties,\n header: {\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '20px 24px',\n borderBottom: '1px solid var(--color-border)',\n backgroundColor: 'var(--color-bg-sunken)',\n } as React.CSSProperties,\n iconWrapper: {\n width: '44px',\n height: '44px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '10px',\n backgroundColor: 'var(--color-action-primary-bg)',\n color: 'var(--color-action-primary-text)',\n flexShrink: 0,\n } as React.CSSProperties,\n headerText: {\n flex: 1,\n } as React.CSSProperties,\n title: {\n fontSize: '16px',\n fontWeight: 600,\n color: 'var(--color-text-primary)',\n margin: 0,\n } as React.CSSProperties,\n description: {\n fontSize: '13px',\n color: 'var(--color-text-secondary)',\n margin: '4px 0 0 0',\n } as React.CSSProperties,\n content: {\n padding: '20px 24px',\n } as React.CSSProperties,\n dashboardInfo: {\n padding: '12px 16px',\n backgroundColor: 'var(--color-bg-muted)',\n borderRadius: '8px',\n marginBottom: '20px',\n } as React.CSSProperties,\n dashboardLabel: {\n fontSize: '12px',\n color: 'var(--color-text-secondary)',\n margin: 0,\n } as React.CSSProperties,\n dashboardName: {\n fontSize: '14px',\n fontWeight: 500,\n color: 'var(--color-text-primary)',\n margin: '4px 0 0 0',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n } as React.CSSProperties,\n optionsTitle: {\n fontSize: '13px',\n fontWeight: 600,\n color: 'var(--color-text-secondary)',\n marginBottom: '16px',\n textTransform: 'uppercase',\n letterSpacing: '0.05em',\n } as React.CSSProperties,\n optionItem: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n padding: '12px',\n borderRadius: '8px',\n marginBottom: '8px',\n backgroundColor: 'var(--color-bg-sunken)',\n border: '1px solid var(--color-border)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n optionItemActive: {\n backgroundColor: 'var(--color-action-primary-bg)',\n borderColor: 'var(--color-action-primary-bg)',\n } as React.CSSProperties,\n checkbox: {\n width: '20px',\n height: '20px',\n borderRadius: '4px',\n border: '2px solid var(--color-border)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n marginTop: '2px',\n transition: 'all 0.15s ease',\n cursor: 'pointer',\n } as React.CSSProperties,\n checkboxChecked: {\n backgroundColor: 'var(--color-action-primary-bg)',\n borderColor: 'var(--color-action-primary-bg)',\n } as React.CSSProperties,\n optionText: {\n flex: 1,\n } as React.CSSProperties,\n optionLabel: {\n fontSize: '14px',\n fontWeight: 500,\n color: 'var(--color-text-primary)',\n margin: 0,\n } as React.CSSProperties,\n optionDescription: {\n fontSize: '12px',\n color: 'var(--color-text-secondary)',\n margin: '4px 0 0 0',\n } as React.CSSProperties,\n error: {\n padding: '12px 16px',\n backgroundColor: 'var(--color-status-error-bgSubtle)',\n border: '1px solid var(--color-status-error-border)',\n borderRadius: '8px',\n marginTop: '16px',\n } as React.CSSProperties,\n errorText: {\n fontSize: '13px',\n color: 'var(--color-status-error-text)',\n margin: 0,\n } as React.CSSProperties,\n footer: {\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '12px',\n padding: '16px 24px',\n borderTop: '1px solid var(--color-border)',\n backgroundColor: 'var(--color-bg-sunken)',\n } as React.CSSProperties,\n cancelButton: {\n padding: '10px 20px',\n fontSize: '14px',\n fontWeight: 500,\n borderRadius: '8px',\n border: '1px solid var(--color-border)',\n backgroundColor: 'var(--color-bg-surface)',\n color: 'var(--color-text-secondary)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n exportButton: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n padding: '10px 20px',\n fontSize: '14px',\n fontWeight: 500,\n borderRadius: '8px',\n border: 'none',\n backgroundColor: 'var(--color-action-primary-bg)',\n color: 'var(--color-action-primary-text)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n exportButtonDisabled: {\n backgroundColor: 'var(--color-action-primary-bg)',\n opacity: 0.5,\n cursor: 'not-allowed',\n } as React.CSSProperties,\n};\n\n// ============================================================================\n// Custom Checkbox Component\n// ============================================================================\n\ninterface CustomCheckboxProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n disabled?: boolean;\n label: string;\n description: string;\n}\n\nconst CustomCheckbox: FC<CustomCheckboxProps> = memo(function CustomCheckbox({\n checked,\n onChange,\n disabled,\n label,\n description,\n}) {\n return (\n <div\n style={{\n ...styles.optionItem,\n ...(checked ? styles.optionItemActive : {}),\n opacity: disabled ? 0.6 : 1,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n onClick={() => !disabled && onChange(!checked)}\n >\n <div\n style={{\n ...styles.checkbox,\n ...(checked ? styles.checkboxChecked : {}),\n }}\n >\n {checked && <Check style={{ width: '14px', height: '14px', color: 'var(--color-action-primary-text)' }} />}\n </div>\n <div style={styles.optionText}>\n <p style={styles.optionLabel}>{label}</p>\n <p style={styles.optionDescription}>{description}</p>\n </div>\n </div>\n );\n});\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ExportDashboardDialog: FC<ExportDashboardDialogProps> = memo(function ExportDashboardDialog({\n isOpen,\n dashboardId,\n dashboardName,\n onClose,\n onSuccess,\n}) {\n const [includeDataSources, setIncludeDataSources] = useState(true);\n const [includeWebhooks, setIncludeWebhooks] = useState(false);\n const [prettyPrint, setPrettyPrint] = useState(true);\n\n const { loading, error, downloadDashboard, clearError } = useExportDashboard();\n\n // Reset state when dialog opens\n useEffect(() => {\n if (isOpen) {\n setIncludeDataSources(true);\n setIncludeWebhooks(false);\n setPrettyPrint(true);\n clearError();\n }\n }, [isOpen, clearError]);\n\n // Handle export\n const handleExport = useCallback(async () => {\n if (!dashboardId) return;\n\n const options: ExportDashboardOptions = {\n includeDataSourceRefs: includeDataSources,\n includeWebhookMappings: includeWebhooks,\n prettyPrint,\n };\n\n const success = await downloadDashboard(dashboardId, dashboardName, options);\n\n if (success) {\n onSuccess?.();\n onClose();\n }\n }, [\n dashboardId,\n dashboardName,\n includeDataSources,\n includeWebhooks,\n prettyPrint,\n downloadDashboard,\n onSuccess,\n onClose,\n ]);\n\n // Don't render if no dashboard\n if (!dashboardId) return null;\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && !loading && onClose()}>\n <DialogContent style={styles.dialogContent}>\n {/* Header */}\n <div style={styles.header}>\n <div style={styles.iconWrapper}>\n <FileJson style={{ width: '22px', height: '22px' }} />\n </div>\n <div style={styles.headerText}>\n <DialogTitle asChild>\n <h2 style={styles.title}>Export Dashboard</h2>\n </DialogTitle>\n <DialogDescription asChild>\n <p style={styles.description}>Export your dashboard configuration to a JSON file.</p>\n </DialogDescription>\n </div>\n </div>\n\n {/* Content */}\n <div style={styles.content}>\n {/* Dashboard Info */}\n {dashboardName && (\n <div style={styles.dashboardInfo}>\n <p style={styles.dashboardLabel}>Exporting:</p>\n <p style={styles.dashboardName}>{dashboardName}</p>\n </div>\n )}\n\n {/* Options */}\n <p style={styles.optionsTitle}>Export Options</p>\n\n <CustomCheckbox\n checked={includeDataSources}\n onChange={setIncludeDataSources}\n disabled={loading}\n label=\"Include Data Source References\"\n description=\"Store data source names for reference (IDs are not transferred)\"\n />\n\n <CustomCheckbox\n checked={includeWebhooks}\n onChange={setIncludeWebhooks}\n disabled={loading}\n label=\"Include Webhook Mappings\"\n description=\"Export webhook configurations (URLs will need to be reconfigured)\"\n />\n\n <CustomCheckbox\n checked={prettyPrint}\n onChange={setPrettyPrint}\n disabled={loading}\n label=\"Format JSON (Pretty Print)\"\n description=\"Makes the export file human-readable (larger file size)\"\n />\n\n {/* Error */}\n {error && (\n <div style={styles.error}>\n <p style={styles.errorText}>{error.message}</p>\n </div>\n )}\n </div>\n\n {/* Footer */}\n <div style={styles.footer}>\n <button\n style={styles.cancelButton}\n onClick={onClose}\n disabled={loading}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-bg-muted)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-bg-surface)';\n }}\n >\n Cancel\n </button>\n <button\n style={{\n ...styles.exportButton,\n ...(loading ? styles.exportButtonDisabled : {}),\n }}\n onClick={handleExport}\n disabled={loading}\n onMouseEnter={(e) => {\n if (!loading) e.currentTarget.style.opacity = '0.9';\n }}\n onMouseLeave={(e) => {\n if (!loading) e.currentTarget.style.opacity = '1';\n }}\n >\n {loading ? (\n <>\n <Spinner style={{ width: '16px', height: '16px' }} />\n Exporting...\n </>\n ) : (\n <>\n <Download style={{ width: '16px', height: '16px' }} />\n Download Export\n </>\n )}\n </button>\n </div>\n </DialogContent>\n </Dialog>\n );\n});\n\nexport default ExportDashboardDialog;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ExportDashboardDialog.js","names":[],"sources":["../../../../src/bigconsole/components/dashboard/ExportDashboardDialog.tsx"],"sourcesContent":["/**\n * ExportDashboardDialog Component\n *\n * Modal dialog for exporting a dashboard to JSON.\n * Uses inline styles for consistent styling across environments.\n */\n\nimport { type FC, memo, useState, useCallback, useEffect } from 'react';\nimport { Dialog, DialogContent, DialogTitle, DialogDescription } from '@burdenoff/fe-libs/ui';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { Download, FileJson, Check } from 'lucide-react';\nimport { Section, SectionStack } from '../common';\nimport { useExportDashboard, type ExportDashboardOptions } from '../../hooks';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface ExportDashboardDialogProps {\n /** Whether dialog is open */\n isOpen: boolean;\n /** Dashboard ID to export */\n dashboardId: string | null;\n /** Dashboard name for filename */\n dashboardName?: string;\n /** Callback when dialog is closed */\n onClose: () => void;\n /** Callback when export succeeds */\n onSuccess?: () => void;\n}\n\n// ============================================================================\n// Styles\n// ============================================================================\n\nconst styles = {\n dialogContent: {\n maxWidth: '450px',\n width: '95vw',\n padding: 0,\n borderRadius: '12px',\n overflow: 'hidden',\n } as React.CSSProperties,\n header: {\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '20px 24px',\n borderBottom: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n } as React.CSSProperties,\n iconWrapper: {\n width: '44px',\n height: '44px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '10px',\n backgroundColor: 'var(--color-action-primary-bg)',\n color: 'var(--color-action-primary-text)',\n flexShrink: 0,\n } as React.CSSProperties,\n headerText: {\n flex: 1,\n } as React.CSSProperties,\n title: {\n fontSize: '16px',\n fontWeight: 600,\n color: 'var(--color-text-primary)',\n margin: 0,\n } as React.CSSProperties,\n description: {\n fontSize: '13px',\n color: 'var(--color-text-secondary)',\n margin: '4px 0 0 0',\n } as React.CSSProperties,\n content: {\n padding: '20px 24px',\n } as React.CSSProperties,\n optionItem: {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n padding: '12px',\n borderRadius: '8px',\n marginBottom: '8px',\n backgroundColor: 'var(--color-bg-sunken)',\n border: '1px solid var(--color-border-subtle)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n optionItemActive: {\n backgroundColor: 'var(--color-action-primary-bg)',\n borderColor: 'var(--color-action-primary-bg)',\n } as React.CSSProperties,\n checkbox: {\n width: '20px',\n height: '20px',\n borderRadius: '4px',\n border: '2px solid var(--color-border-subtle)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n marginTop: '2px',\n transition: 'all 0.15s ease',\n cursor: 'pointer',\n } as React.CSSProperties,\n checkboxChecked: {\n backgroundColor: 'var(--color-action-primary-bg)',\n borderColor: 'var(--color-action-primary-bg)',\n } as React.CSSProperties,\n optionText: {\n flex: 1,\n } as React.CSSProperties,\n optionLabel: {\n fontSize: '14px',\n fontWeight: 500,\n color: 'var(--color-text-primary)',\n margin: 0,\n } as React.CSSProperties,\n optionDescription: {\n fontSize: '12px',\n color: 'var(--color-text-secondary)',\n margin: '4px 0 0 0',\n } as React.CSSProperties,\n footer: {\n display: 'flex',\n justifyContent: 'flex-end',\n gap: '12px',\n padding: '16px 24px',\n borderTop: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-sunken)',\n } as React.CSSProperties,\n cancelButton: {\n padding: '10px 20px',\n fontSize: '14px',\n fontWeight: 500,\n borderRadius: '8px',\n border: '1px solid var(--color-border-subtle)',\n backgroundColor: 'var(--color-bg-surface)',\n color: 'var(--color-text-secondary)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n exportButton: {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n padding: '10px 20px',\n fontSize: '14px',\n fontWeight: 500,\n borderRadius: '8px',\n border: 'none',\n backgroundColor: 'var(--color-action-primary-bg)',\n color: 'var(--color-action-primary-text)',\n cursor: 'pointer',\n transition: 'all 0.15s ease',\n } as React.CSSProperties,\n exportButtonDisabled: {\n backgroundColor: 'var(--color-action-primary-bg)',\n opacity: 0.5,\n cursor: 'not-allowed',\n } as React.CSSProperties,\n};\n\n// ============================================================================\n// Custom Checkbox Component\n// ============================================================================\n\ninterface CustomCheckboxProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n disabled?: boolean;\n label: string;\n description: string;\n}\n\nconst CustomCheckbox: FC<CustomCheckboxProps> = memo(function CustomCheckbox({\n checked,\n onChange,\n disabled,\n label,\n description,\n}) {\n return (\n <div\n style={{\n ...styles.optionItem,\n ...(checked ? styles.optionItemActive : {}),\n opacity: disabled ? 0.6 : 1,\n cursor: disabled ? 'not-allowed' : 'pointer',\n }}\n onClick={() => !disabled && onChange(!checked)}\n >\n <div\n style={{\n ...styles.checkbox,\n ...(checked ? styles.checkboxChecked : {}),\n }}\n >\n {checked && <Check style={{ width: '14px', height: '14px', color: 'var(--color-action-primary-text)' }} />}\n </div>\n <div style={styles.optionText}>\n <p style={styles.optionLabel}>{label}</p>\n <p style={styles.optionDescription}>{description}</p>\n </div>\n </div>\n );\n});\n\n// ============================================================================\n// Component\n// ============================================================================\n\nexport const ExportDashboardDialog: FC<ExportDashboardDialogProps> = memo(function ExportDashboardDialog({\n isOpen,\n dashboardId,\n dashboardName,\n onClose,\n onSuccess,\n}) {\n const [includeDataSources, setIncludeDataSources] = useState(true);\n const [includeWebhooks, setIncludeWebhooks] = useState(false);\n const [prettyPrint, setPrettyPrint] = useState(true);\n\n const { loading, error, downloadDashboard, clearError } = useExportDashboard();\n\n // Reset state when dialog opens\n useEffect(() => {\n if (isOpen) {\n setIncludeDataSources(true);\n setIncludeWebhooks(false);\n setPrettyPrint(true);\n clearError();\n }\n }, [isOpen, clearError]);\n\n // Handle export\n const handleExport = useCallback(async () => {\n if (!dashboardId) return;\n\n const options: ExportDashboardOptions = {\n includeDataSourceRefs: includeDataSources,\n includeWebhookMappings: includeWebhooks,\n prettyPrint,\n };\n\n const success = await downloadDashboard(dashboardId, dashboardName, options);\n\n if (success) {\n onSuccess?.();\n onClose();\n }\n }, [\n dashboardId,\n dashboardName,\n includeDataSources,\n includeWebhooks,\n prettyPrint,\n downloadDashboard,\n onSuccess,\n onClose,\n ]);\n\n // Don't render if no dashboard\n if (!dashboardId) return null;\n\n return (\n <Dialog open={isOpen} onOpenChange={(open) => !open && !loading && onClose()}>\n <DialogContent style={styles.dialogContent}>\n {/* Header */}\n <div style={styles.header}>\n <div style={styles.iconWrapper}>\n <FileJson style={{ width: '22px', height: '22px' }} />\n </div>\n <div style={styles.headerText}>\n <DialogTitle asChild>\n <h2 style={styles.title}>Export Dashboard</h2>\n </DialogTitle>\n <DialogDescription asChild>\n <p style={styles.description}>Export your dashboard configuration to a JSON file.</p>\n </DialogDescription>\n </div>\n </div>\n\n {/* Content */}\n <div style={styles.content}>\n <SectionStack>\n {/* What is being exported — supporting context, recessed. */}\n {dashboardName && (\n <Section\n headingLevel={3}\n emphasis=\"muted\"\n padding=\"compact\"\n title=\"Exporting\"\n description={dashboardName}\n data-testid=\"export-target\"\n />\n )}\n\n {/* The choices you actually make here — one bounded group instead of\n a floating label above three unbounded rows. */}\n <Section\n headingLevel={3}\n title=\"Export options\"\n description=\"What to include in the JSON file.\"\n data-testid=\"export-options\"\n bodyClassName=\"flex flex-col gap-form-gap\"\n >\n <CustomCheckbox\n checked={includeDataSources}\n onChange={setIncludeDataSources}\n disabled={loading}\n label=\"Include Data Source References\"\n description=\"Store data source names for reference (IDs are not transferred)\"\n />\n\n <CustomCheckbox\n checked={includeWebhooks}\n onChange={setIncludeWebhooks}\n disabled={loading}\n label=\"Include Webhook Mappings\"\n description=\"Export webhook configurations (URLs will need to be reconfigured)\"\n />\n\n <CustomCheckbox\n checked={prettyPrint}\n onChange={setPrettyPrint}\n disabled={loading}\n label=\"Format JSON (Pretty Print)\"\n description=\"Makes the export file human-readable (larger file size)\"\n />\n </Section>\n\n {/* Error */}\n {error && (\n <Section\n headingLevel={3}\n tone=\"danger\"\n padding=\"compact\"\n title=\"Export failed\"\n description={error.message}\n data-testid=\"export-error\"\n />\n )}\n </SectionStack>\n </div>\n\n {/* Footer */}\n <div style={styles.footer}>\n <button\n style={styles.cancelButton}\n onClick={onClose}\n disabled={loading}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-bg-muted)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-bg-surface)';\n }}\n >\n Cancel\n </button>\n <button\n style={{\n ...styles.exportButton,\n ...(loading ? styles.exportButtonDisabled : {}),\n }}\n onClick={handleExport}\n disabled={loading}\n onMouseEnter={(e) => {\n if (!loading) e.currentTarget.style.opacity = '0.9';\n }}\n onMouseLeave={(e) => {\n if (!loading) e.currentTarget.style.opacity = '1';\n }}\n >\n {loading ? (\n <>\n <Spinner style={{ width: '16px', height: '16px' }} />\n Exporting...\n </>\n ) : (\n <>\n <Download style={{ width: '16px', height: '16px' }} />\n Download Export\n </>\n )}\n </button>\n </div>\n </DialogContent>\n </Dialog>\n );\n});\n\nexport default ExportDashboardDialog;\n"],"mappings":"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"}
@@ -76,37 +76,37 @@ function d({ filter: u, value: d, onChange: p, onEdit: m, onDelete: h }) {
76
76
  position: "relative",
77
77
  display: "inline-flex",
78
78
  alignItems: "center",
79
- gap: "8px",
80
- padding: "8px 16px",
81
- backgroundColor: w ? C.actionPrimaryBgSubtle : C.bgPrimary,
82
- border: `2px solid ${w ? C.actionPrimaryBg : C.textTertiary}`,
83
- borderRadius: "24px",
84
- fontSize: "15px",
79
+ gap: "var(--space-iconGap)",
80
+ padding: "0 var(--space-controlGap)",
81
+ backgroundColor: w ? "var(--color-bg-accentSubtle)" : "var(--color-bg-surface)",
82
+ border: `1px solid ${w ? "var(--color-action-primary-border)" : "var(--color-border-subtle)"}`,
83
+ borderRadius: "var(--radius-pill)",
84
+ fontSize: "var(--font-size-body-sm)",
85
85
  cursor: "pointer",
86
86
  userSelect: "none",
87
- boxShadow: "0 2px 6px rgba(0,0,0,0.12)",
88
- transition: "all 0.2s ease",
89
- minHeight: "36px"
87
+ transition: "background-color 0.15s ease, border-color 0.15s ease",
88
+ minHeight: "var(--size-controlHeight-md)",
89
+ maxWidth: "100%"
90
90
  },
91
91
  children: [
92
92
  /* @__PURE__ */ o("span", {
93
93
  style: {
94
- fontWeight: 700,
95
- color: w ? C.actionPrimaryText : C.textPrimary,
96
- fontSize: "14px"
94
+ fontWeight: "var(--font-weight-semibold)",
95
+ color: "var(--color-text-primary)",
96
+ fontSize: "var(--font-size-body-sm)"
97
97
  },
98
98
  onClick: () => v(!_),
99
99
  children: [u.name, ":"]
100
100
  }),
101
101
  /* @__PURE__ */ a("span", {
102
102
  style: {
103
- color: w ? C.actionPrimaryBg : C.textSecondary,
104
- maxWidth: "200px",
103
+ color: w ? "var(--color-text-primary)" : "var(--color-text-secondary)",
104
+ maxWidth: "min(200px, 45vw)",
105
105
  overflow: "hidden",
106
106
  textOverflow: "ellipsis",
107
107
  whiteSpace: "nowrap",
108
- fontWeight: 600,
109
- fontSize: "14px"
108
+ fontWeight: "var(--font-weight-medium)",
109
+ fontSize: "var(--font-size-body-sm)"
110
110
  },
111
111
  onClick: () => v(!_),
112
112
  children: T
@@ -130,7 +130,7 @@ function d({ filter: u, value: d, onChange: p, onEdit: m, onDelete: h }) {
130
130
  fontSize: "14px",
131
131
  fontWeight: "bold",
132
132
  marginLeft: "4px",
133
- boxShadow: "0 1px 3px rgba(0,0,0,0.2)"
133
+ boxShadow: "var(--shadow-elevation-1)"
134
134
  },
135
135
  title: g("bigconsole.filters.chip.action.clear", "Clear filter"),
136
136
  children: "×"
@@ -154,7 +154,7 @@ function d({ filter: u, value: d, onChange: p, onEdit: m, onDelete: h }) {
154
154
  fontSize: "16px",
155
155
  fontWeight: "bold",
156
156
  marginLeft: "4px",
157
- boxShadow: "0 1px 3px rgba(0,0,0,0.2)"
157
+ boxShadow: "var(--shadow-elevation-1)"
158
158
  },
159
159
  title: g("bigconsole.filters.chip.action.options", "Filter options"),
160
160
  children: "⋮"
@@ -186,11 +186,12 @@ function d({ filter: u, value: d, onChange: p, onEdit: m, onDelete: h }) {
186
186
  top: "100%",
187
187
  right: 0,
188
188
  marginTop: "8px",
189
- minWidth: "150px",
189
+ minWidth: "min(150px, calc(100vw - 2rem))",
190
+ maxWidth: "calc(100vw - 2rem)",
190
191
  backgroundColor: C.bgPrimary,
191
192
  border: `1px solid ${C.borderDefault}`,
192
193
  borderRadius: "8px",
193
- boxShadow: "0 8px 24px rgba(0,0,0,0.2)",
194
+ boxShadow: "var(--shadow-elevation-3)",
194
195
  zIndex: 99999,
195
196
  overflow: "hidden"
196
197
  },
@@ -256,12 +257,13 @@ function f({ filter: e, value: t, onChange: l, onClose: u }) {
256
257
  top: "100%",
257
258
  left: 0,
258
259
  marginTop: "8px",
259
- minWidth: "280px",
260
+ minWidth: "min(280px, calc(100vw - 2rem))",
261
+ maxWidth: "calc(100vw - 2rem)",
260
262
  padding: "16px",
261
263
  backgroundColor: m.bgPrimary,
262
264
  border: `1px solid ${m.borderDefault}`,
263
265
  borderRadius: "12px",
264
- boxShadow: "0 8px 24px rgba(0,0,0,0.25)",
266
+ boxShadow: "var(--shadow-elevation-3)",
265
267
  zIndex: 99999
266
268
  },
267
269
  onClick: (e) => e.stopPropagation(),
@@ -436,7 +438,7 @@ function f({ filter: e, value: t, onChange: l, onClose: u }) {
436
438
  borderRadius: "6px",
437
439
  cursor: "pointer",
438
440
  fontWeight: 500,
439
- boxShadow: "0 2px 4px rgba(99, 102, 241, 0.3)"
441
+ boxShadow: "var(--shadow-elevation-1)"
440
442
  },
441
443
  children: d("bigconsole.filters.chip.editor.apply", "Apply")
442
444
  })]