@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,10 +1,13 @@
1
1
  import { AppLink as e } from "../../contexts/NavigationContext.js";
2
2
  import "../../contexts/index.js";
3
- import { memo as t } from "react";
4
- import { Fragment as n, jsx as r, jsxs as i } from "react/jsx-runtime";
5
- import { formatDistanceToNow as a } from "date-fns";
3
+ import { SECTION_FOCUS_RING as t } from "../common/sectionStyles.js";
4
+ import { Section as n } from "../common/Section.js";
5
+ import "../common/index.js";
6
+ import { memo as r } from "react";
7
+ import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
8
+ import { formatDistanceToNow as s } from "date-fns";
6
9
  //#region src/bigconsole/components/datasink/LinkedWorkflowsPanel.tsx
7
- function o(e) {
10
+ function c(e) {
8
11
  switch (e) {
9
12
  case "active": return {
10
13
  label: "Active",
@@ -15,7 +18,7 @@ function o(e) {
15
18
  case "paused": return {
16
19
  label: "Paused",
17
20
  bgColor: "bg-status-warning-bg/10",
18
- textColor: "text-status-warning-text",
21
+ textColor: "text-[var(--color-status-warning-text)]",
19
22
  dotColor: "bg-status-warning-bg"
20
23
  };
21
24
  case "error": return {
@@ -26,9 +29,9 @@ function o(e) {
26
29
  };
27
30
  case "archived": return {
28
31
  label: "Archived",
29
- bgColor: "bg-text-tertiary/10",
30
- textColor: "text-text-tertiary",
31
- dotColor: "bg-text-tertiary"
32
+ bgColor: "bg-bg-sunken",
33
+ textColor: "text-text-muted",
34
+ dotColor: "bg-[var(--color-text-muted)]"
32
35
  };
33
36
  default: return {
34
37
  label: "Draft",
@@ -38,167 +41,158 @@ function o(e) {
38
41
  };
39
42
  }
40
43
  }
41
- var s = ({ className: e }) => /* @__PURE__ */ r("svg", {
44
+ var l = ({ className: e }) => /* @__PURE__ */ a("svg", {
42
45
  className: e,
43
46
  fill: "none",
44
47
  stroke: "currentColor",
45
48
  viewBox: "0 0 24 24",
46
- children: /* @__PURE__ */ r("path", {
49
+ children: /* @__PURE__ */ a("path", {
47
50
  strokeLinecap: "round",
48
51
  strokeLinejoin: "round",
49
52
  strokeWidth: 1.5,
50
53
  d: "M13 10V3L4 14h7v7l9-11h-7z"
51
54
  })
52
- }), c = ({ className: e }) => /* @__PURE__ */ r("svg", {
55
+ }), u = ({ className: e }) => /* @__PURE__ */ a("svg", {
53
56
  className: e,
54
57
  fill: "none",
55
58
  stroke: "currentColor",
56
59
  viewBox: "0 0 24 24",
57
- children: /* @__PURE__ */ r("path", {
60
+ children: /* @__PURE__ */ a("path", {
58
61
  strokeLinecap: "round",
59
62
  strokeLinejoin: "round",
60
63
  strokeWidth: 2,
61
64
  d: "M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"
62
65
  })
63
- }), l = ({ className: e }) => /* @__PURE__ */ r("svg", {
66
+ }), d = ({ className: e }) => /* @__PURE__ */ a("svg", {
64
67
  className: e,
65
68
  fill: "none",
66
69
  stroke: "currentColor",
67
70
  viewBox: "0 0 24 24",
68
- children: /* @__PURE__ */ r("path", {
71
+ children: /* @__PURE__ */ a("path", {
69
72
  strokeLinecap: "round",
70
73
  strokeLinejoin: "round",
71
74
  strokeWidth: 2,
72
75
  d: "M9 5l7 7-7 7"
73
76
  })
74
- }), u = t(function({ workflowLinks: t = [], isLoading: u = !1 }) {
75
- let d = t.filter((e) => e.isEnabled), f = t.filter((e) => !e.isEnabled);
76
- return /* @__PURE__ */ i("div", {
77
- className: "border border-border-default rounded-lg bg-bg-surface overflow-hidden",
78
- children: [/* @__PURE__ */ i("div", {
79
- className: "px-4 py-3 border-b border-border-default bg-bg-sunken flex items-center justify-between",
80
- children: [/* @__PURE__ */ i("div", {
81
- className: "flex items-center gap-2",
82
- children: [/* @__PURE__ */ r(c, { className: "w-4 h-4 text-text-secondary" }), /* @__PURE__ */ r("h3", {
83
- className: "text-sm font-semibold text-text-primary",
84
- children: "Linked Workflows"
77
+ }), f = r(function({ workflowLinks: r = [], isLoading: f = !1 }) {
78
+ let p = r.filter((e) => e.isEnabled), m = r.filter((e) => !e.isEnabled);
79
+ return /* @__PURE__ */ a(n, {
80
+ headingLevel: 2,
81
+ title: "Linked workflows",
82
+ description: "FluidGrids workflows that push data into this sink.",
83
+ icon: /* @__PURE__ */ a(u, { className: "h-icon-sm w-icon-sm" }),
84
+ meta: /* @__PURE__ */ o("span", {
85
+ className: "text-xs text-text-muted",
86
+ children: [
87
+ r.length,
88
+ " workflow",
89
+ r.length === 1 ? "" : "s"
90
+ ]
91
+ }),
92
+ children: /* @__PURE__ */ a(i, { children: f ? /* @__PURE__ */ a("div", {
93
+ className: "flex items-center justify-center py-8",
94
+ children: /* @__PURE__ */ o("svg", {
95
+ className: "w-6 h-6 text-text-secondary animate-spin",
96
+ fill: "none",
97
+ viewBox: "0 0 24 24",
98
+ children: [/* @__PURE__ */ a("circle", {
99
+ className: "opacity-25",
100
+ cx: "12",
101
+ cy: "12",
102
+ r: "10",
103
+ stroke: "currentColor",
104
+ strokeWidth: "4"
105
+ }), /* @__PURE__ */ a("path", {
106
+ className: "opacity-75",
107
+ fill: "currentColor",
108
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
85
109
  })]
86
- }), /* @__PURE__ */ i("span", {
87
- className: "text-xs text-text-secondary",
88
- children: [
89
- t.length,
90
- " workflow",
91
- t.length === 1 ? "" : "s"
92
- ]
93
- })]
94
- }), /* @__PURE__ */ r("div", {
95
- className: "p-4",
96
- children: u ? /* @__PURE__ */ r("div", {
97
- className: "flex items-center justify-center py-8",
98
- children: /* @__PURE__ */ i("svg", {
99
- className: "w-6 h-6 text-text-secondary animate-spin",
100
- fill: "none",
101
- viewBox: "0 0 24 24",
102
- children: [/* @__PURE__ */ r("circle", {
103
- className: "opacity-25",
104
- cx: "12",
105
- cy: "12",
106
- r: "10",
107
- stroke: "currentColor",
108
- strokeWidth: "4"
109
- }), /* @__PURE__ */ r("path", {
110
- className: "opacity-75",
111
- fill: "currentColor",
112
- d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
113
- })]
110
+ })
111
+ }) : r.length === 0 ? /* @__PURE__ */ o("div", {
112
+ className: "py-8 text-center",
113
+ children: [
114
+ /* @__PURE__ */ a(l, { className: "mx-auto mb-3 h-icon-lg w-icon-lg text-text-muted" }),
115
+ /* @__PURE__ */ a("p", {
116
+ className: "mb-2 text-sm text-text-secondary",
117
+ children: "No workflows linked"
118
+ }),
119
+ /* @__PURE__ */ a("p", {
120
+ className: "text-xs text-text-muted",
121
+ children: "Link workflows from the Workflows page to push data to this data sink."
122
+ }),
123
+ /* @__PURE__ */ o(e, {
124
+ to: "/workflows",
125
+ className: `mt-4 inline-flex min-h-[var(--size-controlHeight-md)] items-center gap-1 text-xs font-medium text-text-link hover:underline ${t}`,
126
+ children: ["Go to Workflows", /* @__PURE__ */ a(d, { className: "w-3 h-3" })]
114
127
  })
115
- }) : t.length === 0 ? /* @__PURE__ */ i("div", {
116
- className: "text-center py-8",
117
- children: [
118
- /* @__PURE__ */ r(s, { className: "w-10 h-10 text-text-tertiary mx-auto mb-3" }),
119
- /* @__PURE__ */ r("p", {
120
- className: "text-sm text-text-secondary mb-2",
121
- children: "No workflows linked"
122
- }),
123
- /* @__PURE__ */ r("p", {
124
- className: "text-xs text-text-tertiary",
125
- children: "Link workflows from the Workflows page to push data to this DataSink"
126
- }),
127
- /* @__PURE__ */ i(e, {
128
- to: "/workflows",
129
- className: "\n inline-flex items-center gap-1\n mt-4\n text-xs font-medium\n text-action-primary-bg\n hover:underline\n ",
130
- children: ["Go to Workflows", /* @__PURE__ */ r(l, { className: "w-3 h-3" })]
131
- })
132
- ]
133
- }) : /* @__PURE__ */ i("div", {
134
- className: "space-y-3",
135
- children: [d.map((t) => {
136
- if (!t.workflow) return null;
137
- let n = o(t.workflow.status);
138
- return /* @__PURE__ */ i(e, {
139
- to: `/workflows/${t.workflow.id}`,
140
- className: "\n flex items-center justify-between\n p-3\n bg-bg-sunken\n rounded-md\n hover:bg-border-default\n transition-colors\n group\n ",
141
- children: [/* @__PURE__ */ i("div", {
142
- className: "flex items-center gap-3 min-w-0",
143
- children: [/* @__PURE__ */ r(s, { className: "w-5 h-5 text-text-secondary flex-shrink-0" }), /* @__PURE__ */ i("div", {
144
- className: "min-w-0",
145
- children: [/* @__PURE__ */ r("p", {
146
- className: "text-sm font-medium text-text-primary truncate group-hover:text-action-primary-bg",
147
- children: t.workflow.name
148
- }), /* @__PURE__ */ r("p", {
149
- className: "text-xs text-text-secondary font-mono truncate",
150
- children: t.workflow.key
151
- })]
128
+ ]
129
+ }) : /* @__PURE__ */ o("div", {
130
+ className: "space-y-list-gap",
131
+ children: [p.map((n) => {
132
+ if (!n.workflow) return null;
133
+ let r = c(n.workflow.status);
134
+ return /* @__PURE__ */ o(e, {
135
+ to: `/workflows/${n.workflow.id}`,
136
+ className: `group flex min-h-[var(--size-controlHeight-md)] items-center justify-between gap-icon-gap rounded-input bg-bg-sunken p-3 motion-safe:transition-colors hover:bg-bg-elevated ${t}`,
137
+ children: [/* @__PURE__ */ o("div", {
138
+ className: "flex min-w-0 items-center gap-icon-gap",
139
+ children: [/* @__PURE__ */ a(l, { className: "h-icon-md w-icon-md shrink-0 text-text-secondary" }), /* @__PURE__ */ o("div", {
140
+ className: "min-w-0",
141
+ children: [/* @__PURE__ */ a("p", {
142
+ className: "truncate text-sm font-medium text-text-primary group-hover:text-text-link",
143
+ children: n.workflow.name
144
+ }), /* @__PURE__ */ a("p", {
145
+ className: "truncate font-mono text-xs text-text-secondary",
146
+ children: n.workflow.key
152
147
  })]
153
- }), /* @__PURE__ */ i("div", {
154
- className: "flex items-center gap-3 flex-shrink-0",
155
- children: [t.workflow.lastExecutedAt && /* @__PURE__ */ r("span", {
156
- className: "text-xs text-text-secondary hidden sm:inline",
157
- children: a(new Date(t.workflow.lastExecutedAt), { addSuffix: !0 })
158
- }), /* @__PURE__ */ i("div", {
159
- className: `flex items-center gap-1.5 px-2 py-0.5 rounded-full ${n.bgColor}`,
160
- children: [/* @__PURE__ */ r("span", { className: `w-1.5 h-1.5 rounded-full ${n.dotColor}` }), /* @__PURE__ */ r("span", {
161
- className: `text-xs font-medium ${n.textColor}`,
162
- children: n.label
163
- })]
148
+ })]
149
+ }), /* @__PURE__ */ o("div", {
150
+ className: "flex shrink-0 items-center gap-icon-gap",
151
+ children: [n.workflow.lastExecutedAt && /* @__PURE__ */ a("span", {
152
+ className: "hidden text-xs text-text-secondary sm:inline",
153
+ children: s(new Date(n.workflow.lastExecutedAt), { addSuffix: !0 })
154
+ }), /* @__PURE__ */ o("div", {
155
+ className: `flex items-center gap-1.5 rounded-pill px-2 py-0.5 ${r.bgColor}`,
156
+ children: [/* @__PURE__ */ a("span", { className: `h-1.5 w-1.5 rounded-pill ${r.dotColor}` }), /* @__PURE__ */ a("span", {
157
+ className: `text-xs font-medium ${r.textColor}`,
158
+ children: r.label
164
159
  })]
165
160
  })]
166
- }, t.id);
167
- }), f.length > 0 && /* @__PURE__ */ i(n, { children: [/* @__PURE__ */ r("div", {
168
- className: "pt-2 mt-2 border-t border-border-muted",
169
- children: /* @__PURE__ */ i("p", {
170
- className: "text-xs text-text-tertiary mb-2",
171
- children: [
172
- "Disabled (",
173
- f.length,
174
- ")"
175
- ]
176
- })
177
- }), f.map((t) => t.workflow ? /* @__PURE__ */ i(e, {
161
+ })]
162
+ }, n.id);
163
+ }), m.length > 0 && /* @__PURE__ */ a(n, {
164
+ emphasis: "bare",
165
+ padding: "none",
166
+ headingLevel: 3,
167
+ title: `Disabled (${m.length})`,
168
+ className: "mt-form-gap border-t border-[var(--color-border-subtle)] pt-form-gap",
169
+ headerClassName: "mb-list-gap",
170
+ bodyClassName: "space-y-list-gap",
171
+ children: m.map((t) => t.workflow ? /* @__PURE__ */ o(e, {
178
172
  to: `/workflows/${t.workflow.id}`,
179
- className: "\n flex items-center justify-between\n p-3\n bg-bg-sunken/50\n rounded-md\n hover:bg-bg-sunken\n transition-colors\n opacity-60\n group\n ",
180
- children: [/* @__PURE__ */ i("div", {
181
- className: "flex items-center gap-3 min-w-0",
182
- children: [/* @__PURE__ */ r(s, { className: "w-5 h-5 text-text-tertiary flex-shrink-0" }), /* @__PURE__ */ i("div", {
173
+ className: "group flex min-h-[var(--size-controlHeight-md)] items-center justify-between gap-icon-gap rounded-input bg-bg-sunken p-3 opacity-60 motion-safe:transition-colors hover:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface",
174
+ children: [/* @__PURE__ */ o("div", {
175
+ className: "flex min-w-0 items-center gap-icon-gap",
176
+ children: [/* @__PURE__ */ a(l, { className: "h-icon-md w-icon-md shrink-0 text-text-muted" }), /* @__PURE__ */ o("div", {
183
177
  className: "min-w-0",
184
- children: [/* @__PURE__ */ r("p", {
185
- className: "text-sm font-medium text-text-secondary truncate group-hover:text-text-primary",
178
+ children: [/* @__PURE__ */ a("p", {
179
+ className: "truncate text-sm font-medium text-text-secondary group-hover:text-text-primary",
186
180
  children: t.workflow.name
187
- }), /* @__PURE__ */ r("p", {
188
- className: "text-xs text-text-tertiary font-mono truncate",
181
+ }), /* @__PURE__ */ a("p", {
182
+ className: "truncate font-mono text-xs text-text-muted",
189
183
  children: t.workflow.key
190
184
  })]
191
185
  })]
192
- }), /* @__PURE__ */ r("span", {
193
- className: "text-xs text-text-tertiary flex-shrink-0",
186
+ }), /* @__PURE__ */ a("span", {
187
+ className: "shrink-0 text-xs text-text-muted",
194
188
  children: "Disabled"
195
189
  })]
196
- }, t.id) : null)] })]
197
- })
198
- })]
190
+ }, t.id) : null)
191
+ })]
192
+ }) })
199
193
  });
200
194
  });
201
195
  //#endregion
202
- export { u as default };
196
+ export { f as default };
203
197
 
204
198
  //# sourceMappingURL=LinkedWorkflowsPanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkedWorkflowsPanel.js","names":[],"sources":["../../../../src/bigconsole/components/datasink/LinkedWorkflowsPanel.tsx"],"sourcesContent":["/**\n * Linked Workflows Panel\n *\n * Panel displaying workflows linked to a DataSink.\n */\n\nimport { memo } from 'react';\nimport { formatDistanceToNow } from 'date-fns';\nimport { AppLink } from '../../contexts';\nimport type { DataSinkWorkflowLink, FluidGridsWorkflowStatus } from '../../types';\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\ninterface LinkedWorkflowsPanelProps {\n /** Workflow links */\n workflowLinks?: DataSinkWorkflowLink[];\n /** Whether loading */\n isLoading?: boolean;\n}\n\ninterface StatusConfig {\n label: string;\n bgColor: string;\n textColor: string;\n dotColor: string;\n}\n\n// ============================================================================\n// HELPERS\n// ============================================================================\n\n/**\n * Get status display configuration\n */\nfunction getStatusConfig(status: FluidGridsWorkflowStatus): StatusConfig {\n switch (status) {\n case 'active':\n return {\n label: 'Active',\n bgColor: 'bg-status-success-bg/10',\n textColor: 'text-status-success-text',\n dotColor: 'bg-status-success-bg',\n };\n case 'paused':\n return {\n label: 'Paused',\n bgColor: 'bg-status-warning-bg/10',\n textColor: 'text-status-warning-text',\n dotColor: 'bg-status-warning-bg',\n };\n case 'error':\n return {\n label: 'Error',\n bgColor: 'bg-status-error-bg/10',\n textColor: 'text-status-error-text',\n dotColor: 'bg-status-error-bg',\n };\n case 'archived':\n return {\n label: 'Archived',\n bgColor: 'bg-text-tertiary/10',\n textColor: 'text-text-tertiary',\n dotColor: 'bg-text-tertiary',\n };\n default:\n return {\n label: 'Draft',\n bgColor: 'bg-action-primary-bg/10',\n textColor: 'text-action-primary-bg',\n dotColor: 'bg-action-primary-bg',\n };\n }\n}\n\n// ============================================================================\n// ICONS\n// ============================================================================\n\nconst WorkflowIcon = ({ className }: { className?: string }) => (\n <svg className={className} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1.5} d=\"M13 10V3L4 14h7v7l9-11h-7z\" />\n </svg>\n);\n\nconst LinkIcon = ({ className }: { className?: string }) => (\n <svg className={className} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1\"\n />\n </svg>\n);\n\nconst ChevronRightIcon = ({ className }: { className?: string }) => (\n <svg className={className} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n);\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport const LinkedWorkflowsPanel = memo(function LinkedWorkflowsPanel({\n workflowLinks = [],\n isLoading = false,\n}: LinkedWorkflowsPanelProps) {\n const enabledLinks = workflowLinks.filter((link) => link.isEnabled);\n const disabledLinks = workflowLinks.filter((link) => !link.isEnabled);\n\n return (\n <div className=\"border border-border-default rounded-lg bg-bg-surface overflow-hidden\">\n {/* Header */}\n <div className=\"px-4 py-3 border-b border-border-default bg-bg-sunken flex items-center justify-between\">\n <div className=\"flex items-center gap-2\">\n <LinkIcon className=\"w-4 h-4 text-text-secondary\" />\n <h3 className=\"text-sm font-semibold text-text-primary\">Linked Workflows</h3>\n </div>\n <span className=\"text-xs text-text-secondary\">\n {workflowLinks.length} workflow{workflowLinks.length !== 1 ? 's' : ''}\n </span>\n </div>\n\n {/* Content */}\n <div className=\"p-4\">\n {/* Loading state */}\n {isLoading ? (\n <div className=\"flex items-center justify-center py-8\">\n <svg className=\"w-6 h-6 text-text-secondary animate-spin\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n </div>\n ) : workflowLinks.length === 0 ? (\n /* Empty state */\n <div className=\"text-center py-8\">\n <WorkflowIcon className=\"w-10 h-10 text-text-tertiary mx-auto mb-3\" />\n <p className=\"text-sm text-text-secondary mb-2\">No workflows linked</p>\n <p className=\"text-xs text-text-tertiary\">\n Link workflows from the Workflows page to push data to this DataSink\n </p>\n <AppLink\n to=\"/workflows\"\n className={`\n inline-flex items-center gap-1\n mt-4\n text-xs font-medium\n text-action-primary-bg\n hover:underline\n `}\n >\n Go to Workflows\n <ChevronRightIcon className=\"w-3 h-3\" />\n </AppLink>\n </div>\n ) : (\n /* Workflow list */\n <div className=\"space-y-3\">\n {/* Enabled workflows */}\n {enabledLinks.map((link) => {\n if (!link.workflow) return null;\n const statusConfig = getStatusConfig(link.workflow.status);\n return (\n <AppLink\n key={link.id}\n to={`/workflows/${link.workflow.id}`}\n className={`\n flex items-center justify-between\n p-3\n bg-bg-sunken\n rounded-md\n hover:bg-border-default\n transition-colors\n group\n `}\n >\n <div className=\"flex items-center gap-3 min-w-0\">\n <WorkflowIcon className=\"w-5 h-5 text-text-secondary flex-shrink-0\" />\n <div className=\"min-w-0\">\n <p className=\"text-sm font-medium text-text-primary truncate group-hover:text-action-primary-bg\">\n {link.workflow.name}\n </p>\n <p className=\"text-xs text-text-secondary font-mono truncate\">{link.workflow.key}</p>\n </div>\n </div>\n <div className=\"flex items-center gap-3 flex-shrink-0\">\n {link.workflow.lastExecutedAt && (\n <span className=\"text-xs text-text-secondary hidden sm:inline\">\n {formatDistanceToNow(new Date(link.workflow.lastExecutedAt), {\n addSuffix: true,\n })}\n </span>\n )}\n <div className={`flex items-center gap-1.5 px-2 py-0.5 rounded-full ${statusConfig.bgColor}`}>\n <span className={`w-1.5 h-1.5 rounded-full ${statusConfig.dotColor}`} />\n <span className={`text-xs font-medium ${statusConfig.textColor}`}>{statusConfig.label}</span>\n </div>\n </div>\n </AppLink>\n );\n })}\n\n {/* Disabled workflows */}\n {disabledLinks.length > 0 && (\n <>\n <div className=\"pt-2 mt-2 border-t border-border-muted\">\n <p className=\"text-xs text-text-tertiary mb-2\">Disabled ({disabledLinks.length})</p>\n </div>\n {disabledLinks.map((link) => {\n if (!link.workflow) return null;\n return (\n <AppLink\n key={link.id}\n to={`/workflows/${link.workflow.id}`}\n className={`\n flex items-center justify-between\n p-3\n bg-bg-sunken/50\n rounded-md\n hover:bg-bg-sunken\n transition-colors\n opacity-60\n group\n `}\n >\n <div className=\"flex items-center gap-3 min-w-0\">\n <WorkflowIcon className=\"w-5 h-5 text-text-tertiary flex-shrink-0\" />\n <div className=\"min-w-0\">\n <p className=\"text-sm font-medium text-text-secondary truncate group-hover:text-text-primary\">\n {link.workflow.name}\n </p>\n <p className=\"text-xs text-text-tertiary font-mono truncate\">{link.workflow.key}</p>\n </div>\n </div>\n <span className=\"text-xs text-text-tertiary flex-shrink-0\">Disabled</span>\n </AppLink>\n );\n })}\n </>\n )}\n </div>\n )}\n </div>\n </div>\n );\n});\n\nexport default LinkedWorkflowsPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"LinkedWorkflowsPanel.js","names":[],"sources":["../../../../src/bigconsole/components/datasink/LinkedWorkflowsPanel.tsx"],"sourcesContent":["/**\n * Linked Workflows Panel\n *\n * Panel displaying workflows linked to a DataSink.\n */\n\nimport { memo } from 'react';\nimport { formatDistanceToNow } from 'date-fns';\nimport { AppLink } from '../../contexts';\nimport { Section, SECTION_FOCUS_RING } from '../common';\nimport type { DataSinkWorkflowLink, FluidGridsWorkflowStatus } from '../../types';\n\n// ============================================================================\n// TYPES\n// ============================================================================\n\ninterface LinkedWorkflowsPanelProps {\n /** Workflow links */\n workflowLinks?: DataSinkWorkflowLink[];\n /** Whether loading */\n isLoading?: boolean;\n}\n\ninterface StatusConfig {\n label: string;\n bgColor: string;\n textColor: string;\n dotColor: string;\n}\n\n// ============================================================================\n// HELPERS\n// ============================================================================\n\n/**\n * Get status display configuration\n */\nfunction getStatusConfig(status: FluidGridsWorkflowStatus): StatusConfig {\n switch (status) {\n case 'active':\n return {\n label: 'Active',\n bgColor: 'bg-status-success-bg/10',\n textColor: 'text-status-success-text',\n dotColor: 'bg-status-success-bg',\n };\n case 'paused':\n return {\n label: 'Paused',\n bgColor: 'bg-status-warning-bg/10',\n textColor: 'text-[var(--color-status-warning-text)]',\n dotColor: 'bg-status-warning-bg',\n };\n case 'error':\n return {\n label: 'Error',\n bgColor: 'bg-status-error-bg/10',\n textColor: 'text-status-error-text',\n dotColor: 'bg-status-error-bg',\n };\n case 'archived':\n return {\n label: 'Archived',\n bgColor: 'bg-bg-sunken',\n textColor: 'text-text-muted',\n dotColor: 'bg-[var(--color-text-muted)]',\n };\n default:\n return {\n label: 'Draft',\n bgColor: 'bg-action-primary-bg/10',\n textColor: 'text-action-primary-bg',\n dotColor: 'bg-action-primary-bg',\n };\n }\n}\n\n// ============================================================================\n// ICONS\n// ============================================================================\n\nconst WorkflowIcon = ({ className }: { className?: string }) => (\n <svg className={className} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={1.5} d=\"M13 10V3L4 14h7v7l9-11h-7z\" />\n </svg>\n);\n\nconst LinkIcon = ({ className }: { className?: string }) => (\n <svg className={className} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1\"\n />\n </svg>\n);\n\nconst ChevronRightIcon = ({ className }: { className?: string }) => (\n <svg className={className} fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 5l7 7-7 7\" />\n </svg>\n);\n\n// ============================================================================\n// COMPONENT\n// ============================================================================\n\nexport const LinkedWorkflowsPanel = memo(function LinkedWorkflowsPanel({\n workflowLinks = [],\n isLoading = false,\n}: LinkedWorkflowsPanelProps) {\n const enabledLinks = workflowLinks.filter((link) => link.isEnabled);\n const disabledLinks = workflowLinks.filter((link) => !link.isEnabled);\n\n return (\n <Section\n // Level-2 peer of the detail page's other panels. `standard` (not `muted`)\n // because the rows inside are `bg-bg-sunken` — a sunken container would\n // erase them.\n headingLevel={2}\n title=\"Linked workflows\"\n description=\"FluidGrids workflows that push data into this sink.\"\n icon={<LinkIcon className=\"h-icon-sm w-icon-sm\" />}\n meta={\n <span className=\"text-xs text-text-muted\">\n {workflowLinks.length} workflow{workflowLinks.length !== 1 ? 's' : ''}\n </span>\n }\n >\n <>\n {/* Loading state */}\n {isLoading ? (\n <div className=\"flex items-center justify-center py-8\">\n <svg className=\"w-6 h-6 text-text-secondary animate-spin\" fill=\"none\" viewBox=\"0 0 24 24\">\n <circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n </div>\n ) : workflowLinks.length === 0 ? (\n /* Empty state */\n <div className=\"py-8 text-center\">\n <WorkflowIcon className=\"mx-auto mb-3 h-icon-lg w-icon-lg text-text-muted\" />\n <p className=\"mb-2 text-sm text-text-secondary\">No workflows linked</p>\n <p className=\"text-xs text-text-muted\">\n Link workflows from the Workflows page to push data to this data sink.\n </p>\n <AppLink\n to=\"/workflows\"\n className={`mt-4 inline-flex min-h-[var(--size-controlHeight-md)] items-center gap-1 text-xs font-medium text-text-link hover:underline ${SECTION_FOCUS_RING}`}\n >\n Go to Workflows\n <ChevronRightIcon className=\"w-3 h-3\" />\n </AppLink>\n </div>\n ) : (\n /* Workflow list */\n <div className=\"space-y-list-gap\">\n {/* Enabled workflows */}\n {enabledLinks.map((link) => {\n if (!link.workflow) return null;\n const statusConfig = getStatusConfig(link.workflow.status);\n return (\n <AppLink\n key={link.id}\n to={`/workflows/${link.workflow.id}`}\n className={`group flex min-h-[var(--size-controlHeight-md)] items-center justify-between gap-icon-gap rounded-input bg-bg-sunken p-3 motion-safe:transition-colors hover:bg-bg-elevated ${SECTION_FOCUS_RING}`}\n >\n <div className=\"flex min-w-0 items-center gap-icon-gap\">\n <WorkflowIcon className=\"h-icon-md w-icon-md shrink-0 text-text-secondary\" />\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-text-primary group-hover:text-text-link\">\n {link.workflow.name}\n </p>\n <p className=\"truncate font-mono text-xs text-text-secondary\">{link.workflow.key}</p>\n </div>\n </div>\n <div className=\"flex shrink-0 items-center gap-icon-gap\">\n {link.workflow.lastExecutedAt && (\n <span className=\"hidden text-xs text-text-secondary sm:inline\">\n {formatDistanceToNow(new Date(link.workflow.lastExecutedAt), {\n addSuffix: true,\n })}\n </span>\n )}\n <div className={`flex items-center gap-1.5 rounded-pill px-2 py-0.5 ${statusConfig.bgColor}`}>\n <span className={`h-1.5 w-1.5 rounded-pill ${statusConfig.dotColor}`} />\n <span className={`text-xs font-medium ${statusConfig.textColor}`}>{statusConfig.label}</span>\n </div>\n </div>\n </AppLink>\n );\n })}\n\n {/* Disabled workflows — a labelled sub-group, not a bare hairline. */}\n {disabledLinks.length > 0 && (\n <Section\n emphasis=\"bare\"\n padding=\"none\"\n headingLevel={3}\n title={`Disabled (${disabledLinks.length})`}\n className=\"mt-form-gap border-t border-[var(--color-border-subtle)] pt-form-gap\"\n headerClassName=\"mb-list-gap\"\n bodyClassName=\"space-y-list-gap\"\n >\n {disabledLinks.map((link) => {\n if (!link.workflow) return null;\n return (\n <AppLink\n key={link.id}\n to={`/workflows/${link.workflow.id}`}\n className={`group flex min-h-[var(--size-controlHeight-md)] items-center justify-between gap-icon-gap rounded-input bg-bg-sunken p-3 opacity-60 motion-safe:transition-colors hover:opacity-100 ${SECTION_FOCUS_RING}`}\n >\n <div className=\"flex min-w-0 items-center gap-icon-gap\">\n <WorkflowIcon className=\"h-icon-md w-icon-md shrink-0 text-text-muted\" />\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-text-secondary group-hover:text-text-primary\">\n {link.workflow.name}\n </p>\n <p className=\"truncate font-mono text-xs text-text-muted\">{link.workflow.key}</p>\n </div>\n </div>\n <span className=\"shrink-0 text-xs text-text-muted\">Disabled</span>\n </AppLink>\n );\n })}\n </Section>\n )}\n </div>\n )}\n </>\n </Section>\n );\n});\n\nexport default LinkedWorkflowsPanel;\n"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import "../common/sectionStyles.js";
2
+ import "../common/index.js";
1
3
  import { memo as e, useCallback as t, useEffect as n, useMemo as r, useRef as i, useState as a } from "react";
2
4
  import { useI18n as o } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
3
5
  import { jsx as s, jsxs as c } from "react/jsx-runtime";
@@ -144,16 +146,15 @@ var l = e(function({ value: e, onChange: l, disabled: u = !1, error: d }) {
144
146
  children: f("bigconsole.dataSinks.refreshType.headingDescription", "When should this data be updated?")
145
147
  })] }),
146
148
  /* @__PURE__ */ c("div", {
147
- className: "space-y-3",
149
+ className: "space-y-list-gap",
148
150
  children: [/* @__PURE__ */ c("label", {
149
151
  className: `
150
- flex items-start gap-3
151
- p-4
152
- border rounded-lg
153
- cursor-pointer
154
- transition-all
155
- ${u ? "opacity-50 cursor-not-allowed" : ""}
156
- ${g === "manual" ? "border-action-primary-bg bg-action-primary-bg/5" : "border-border-default hover:border-border-hover"}
152
+ flex cursor-pointer items-start gap-3
153
+ rounded-input
154
+ border p-4
155
+ motion-safe:transition-colors
156
+ ${u ? "cursor-not-allowed opacity-50" : ""}
157
+ ${g === "manual" ? "border-[var(--color-action-primary-bg)] bg-bg-accentSubtle" : "border-[var(--color-border-subtle)] hover:border-[var(--color-border-strong)]"}
157
158
  `,
158
159
  children: [/* @__PURE__ */ s("input", {
159
160
  type: "radio",
@@ -161,7 +162,7 @@ var l = e(function({ value: e, onChange: l, disabled: u = !1, error: d }) {
161
162
  checked: g === "manual",
162
163
  onChange: () => D("manual"),
163
164
  disabled: u,
164
- className: "\n mt-0.5\n w-4 h-4\n text-action-primary-bg\n border-border-default\n focus:ring-action-primary-bg\n focus:ring-offset-0\n "
165
+ className: "\n mt-0.5\n h-4 w-4\n border-[var(--color-border-default)]\n text-action-primary-bg\n focus-visible:ring-2\n focus-visible:ring-ring\n "
165
166
  }), /* @__PURE__ */ c("div", {
166
167
  className: "flex-1",
167
168
  children: [/* @__PURE__ */ s("span", {
@@ -174,10 +175,10 @@ var l = e(function({ value: e, onChange: l, disabled: u = !1, error: d }) {
174
175
  })]
175
176
  }), /* @__PURE__ */ c("div", {
176
177
  className: `
177
- border rounded-lg
178
- transition-all
178
+ rounded-input border
179
+ motion-safe:transition-colors
179
180
  ${u ? "opacity-50" : ""}
180
- ${g === "scheduled" ? "border-action-primary-bg bg-action-primary-bg/5" : "border-border-default"}
181
+ ${g === "scheduled" ? "border-[var(--color-action-primary-bg)] bg-bg-accentSubtle" : "border-[var(--color-border-subtle)]"}
181
182
  `,
182
183
  children: [/* @__PURE__ */ c("label", {
183
184
  className: `
@@ -192,7 +193,7 @@ var l = e(function({ value: e, onChange: l, disabled: u = !1, error: d }) {
192
193
  checked: g === "scheduled",
193
194
  onChange: () => D("scheduled"),
194
195
  disabled: u,
195
- className: "\n mt-0.5\n w-4 h-4\n text-action-primary-bg\n border-border-default\n focus:ring-action-primary-bg\n focus:ring-offset-0\n "
196
+ className: "\n mt-0.5\n h-4 w-4\n border-[var(--color-border-default)]\n text-action-primary-bg\n focus-visible:ring-2\n focus-visible:ring-ring\n "
196
197
  }), /* @__PURE__ */ c("div", {
197
198
  className: "flex-1",
198
199
  children: [/* @__PURE__ */ s("span", {
@@ -204,26 +205,28 @@ var l = e(function({ value: e, onChange: l, disabled: u = !1, error: d }) {
204
205
  })]
205
206
  })]
206
207
  }), g === "scheduled" && /* @__PURE__ */ c("div", {
207
- className: "px-4 pb-4 space-y-4",
208
+ className: "space-y-form-gap px-4 pb-4",
208
209
  children: [
209
210
  /* @__PURE__ */ c("div", {
210
- className: "border-t border-border-default pt-4",
211
+ className: "border-t border-[var(--color-border-subtle)] pt-4",
211
212
  children: [/* @__PURE__ */ s("label", {
212
- className: "block text-xs font-medium text-text-secondary mb-2",
213
+ className: "mb-2 block text-xs font-medium text-text-secondary",
213
214
  children: f("bigconsole.dataSinks.refreshType.scheduleLabel", "Schedule")
214
215
  }), /* @__PURE__ */ s("div", {
215
- className: "grid grid-cols-2 gap-2",
216
+ className: "grid grid-cols-1 gap-2 sm:grid-cols-2",
216
217
  children: p.map((e) => /* @__PURE__ */ s("button", {
217
218
  type: "button",
218
219
  onClick: () => O(e),
219
220
  disabled: u,
220
221
  className: `
222
+ min-h-[var(--size-controlHeight-md)] rounded-input
223
+ border
221
224
  px-3 py-2
222
225
  text-left
223
- border rounded-md
224
- transition-colors
226
+ motion-safe:transition-colors
227
+ focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface
225
228
  ${u ? "cursor-not-allowed" : "cursor-pointer"}
226
- ${!b && v?.cron === e.cron ? "border-action-primary-bg bg-action-primary-bg/10 text-action-primary-bg" : "border-border-default hover:border-border-hover"}
229
+ ${!b && v?.cron === e.cron ? "border-[var(--color-action-primary-bg)] bg-bg-accentSubtle text-text-link" : "border-[var(--color-border-subtle)] hover:border-[var(--color-border-strong)]"}
227
230
  `,
228
231
  children: /* @__PURE__ */ s("span", {
229
232
  className: "text-sm font-medium",
@@ -237,32 +240,36 @@ var l = e(function({ value: e, onChange: l, disabled: u = !1, error: d }) {
237
240
  onClick: k,
238
241
  disabled: u,
239
242
  className: `
240
- text-xs
241
- ${b ? "text-action-primary-bg" : "text-text-secondary hover:text-text-primary"}
243
+ min-h-[var(--size-controlHeight-md)] rounded-button text-xs
244
+ focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface
245
+ ${b ? "text-text-link" : "text-text-secondary hover:text-text-primary"}
242
246
  `,
243
247
  children: b ? f("bigconsole.dataSinks.refreshType.usingCustomSchedule", "Using custom schedule") : f("bigconsole.dataSinks.refreshType.useCustomSchedule", "Use custom schedule...")
244
248
  }), b && /* @__PURE__ */ c("div", {
245
249
  className: "mt-2",
246
250
  children: [/* @__PURE__ */ s("input", {
247
251
  type: "text",
252
+ "aria-label": "Custom cron expression",
248
253
  value: S,
249
254
  onChange: A,
250
255
  disabled: u,
251
256
  placeholder: "*/15 * * * *",
252
- className: "\n w-full px-3 py-2\n bg-bg-sunken\n border rounded-md\n text-sm text-text-primary\n placeholder-text-tertiary\n font-mono\n focus:outline-none\n focus:border-action-primary-bg\n focus:ring-2\n focus:ring-action-primary-bg/20\n border-border-default\n "
257
+ className: "\n h-control-md w-full min-w-0\n rounded-input\n border border-[var(--color-border-default)]\n bg-bg-sunken\n px-3\n font-mono\n text-sm text-text-primary\n focus-visible:outline-none\n focus-visible:ring-2\n focus-visible:ring-ring\n "
253
258
  }), /* @__PURE__ */ s("p", {
254
- className: "mt-1 text-xs text-text-tertiary",
259
+ className: "mt-1 text-xs text-text-muted",
255
260
  children: f("bigconsole.dataSinks.refreshType.customCronHelp", "Enter a cron expression (e.g., */15 * * * * for every 15 minutes)")
256
261
  })]
257
262
  })] }),
258
263
  /* @__PURE__ */ c("div", { children: [/* @__PURE__ */ s("label", {
259
- className: "block text-xs font-medium text-text-secondary mb-2",
264
+ htmlFor: "refresh-timezone",
265
+ className: "mb-2 block text-xs font-medium text-text-secondary",
260
266
  children: f("bigconsole.dataSinks.refreshType.timezoneLabel", "Timezone")
261
267
  }), /* @__PURE__ */ s("select", {
268
+ id: "refresh-timezone",
262
269
  value: w,
263
270
  onChange: j,
264
271
  disabled: u,
265
- className: "\n w-full px-3 py-2\n bg-bg-sunken\n border border-border-default rounded-md\n text-sm text-text-primary\n focus:outline-none\n focus:border-action-primary-bg\n focus:ring-2\n focus:ring-action-primary-bg/20\n ",
272
+ className: "\n h-control-md w-full min-w-0\n rounded-input\n border border-[var(--color-border-default)]\n bg-bg-sunken\n px-3\n text-sm text-text-primary\n focus-visible:outline-none\n focus-visible:ring-2\n focus-visible:ring-ring\n ",
266
273
  children: m.map((e) => /* @__PURE__ */ s("option", {
267
274
  value: e.value,
268
275
  children: e.label