@burdenoff/microfe-bigconsole 2026.805.2 → 2026.812.1

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 (253) 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 +145 -111
  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 +269 -251
  23. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  24. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +214 -223
  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 +110 -102
  29. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
  30. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +81 -68
  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 +147 -144
  35. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -1
  36. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +154 -153
  37. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
  38. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +82 -79
  39. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -1
  40. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +171 -284
  41. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  42. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +250 -273
  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/PublishToStoreDialog.js +75 -83
  49. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js.map +1 -1
  50. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +167 -161
  51. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -1
  52. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +181 -190
  53. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js.map +1 -1
  54. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -95
  55. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +1 -1
  56. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +20 -18
  57. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +1 -1
  58. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -0
  59. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +26 -58
  60. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +1 -1
  61. package/dist/bigconsole/components/dashboard/WidgetPalette.js +307 -229
  62. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -1
  63. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +128 -129
  64. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
  65. package/dist/bigconsole/components/datasink/DataSinkCard.js +78 -79
  66. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -1
  67. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +33 -34
  68. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +1 -1
  69. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +79 -61
  70. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -1
  71. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +75 -64
  72. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -1
  73. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +1 -1
  74. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -1
  75. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +20 -19
  76. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +1 -1
  77. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +127 -171
  78. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +1 -1
  79. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +113 -117
  80. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js.map +1 -1
  81. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +312 -307
  82. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  83. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +65 -66
  84. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +1 -1
  85. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +121 -127
  86. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +1 -1
  87. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +194 -189
  88. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -1
  89. package/dist/bigconsole/components/datasink/SetupStateBadge.js +3 -3
  90. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +1 -1
  91. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +95 -95
  92. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +1 -1
  93. package/dist/bigconsole/components/parser/DataSinkSelector.js +163 -131
  94. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -1
  95. package/dist/bigconsole/components/parser/ExpressionEditor.js +3 -3
  96. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +1 -1
  97. package/dist/bigconsole/components/parser/ImportParserDialog.js +205 -260
  98. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  99. package/dist/bigconsole/components/parser/ParserCard.js +133 -114
  100. package/dist/bigconsole/components/parser/ParserCard.js.map +1 -1
  101. package/dist/bigconsole/components/parser/ParserSelector.js +193 -174
  102. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
  103. package/dist/bigconsole/components/parser/ParserStatusBadge.js +2 -2
  104. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +1 -1
  105. package/dist/bigconsole/components/parser/ParserTypeBadge.js +4 -4
  106. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +1 -1
  107. package/dist/bigconsole/components/pipeline/PipelineCard.js +134 -89
  108. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +1 -1
  109. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +77 -64
  110. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +1 -1
  111. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +7 -10
  112. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +1 -1
  113. package/dist/bigconsole/components/preview/AiPreviewContent.js +31 -32
  114. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +1 -1
  115. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +152 -103
  116. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
  117. package/dist/bigconsole/components/preview/AiPreviewPanel.js +193 -148
  118. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  119. package/dist/bigconsole/components/preview/previewShared.js +41 -23
  120. package/dist/bigconsole/components/preview/previewShared.js.map +1 -1
  121. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +405 -364
  122. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  123. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +265 -237
  124. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  125. package/dist/bigconsole/components/widgets/PropertiesPanel.js +764 -821
  126. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  127. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +7 -5
  128. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +1 -1
  129. package/dist/bigconsole/components/widgets/WidgetHeader.js +7 -8
  130. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +1 -1
  131. package/dist/bigconsole/components/widgets/WidgetWrapper.js +8 -7
  132. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -1
  133. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +1 -1
  134. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +1 -1
  135. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +46 -49
  136. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -1
  137. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +154 -147
  138. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -1
  139. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +118 -101
  140. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -1
  141. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +244 -191
  142. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -1
  143. package/dist/bigconsole/components/widgets/form/FormWidget.js +167 -159
  144. package/dist/bigconsole/components/widgets/form/FormWidget.js.map +1 -1
  145. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +92 -76
  146. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -1
  147. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +1 -1
  148. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +1 -1
  149. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +89 -86
  150. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -1
  151. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +2 -2
  152. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +1 -1
  153. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +64 -63
  154. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -1
  155. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +2 -2
  156. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +1 -1
  157. package/dist/bigconsole/components/widgets/list/ListConfig.js +65 -58
  158. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -1
  159. package/dist/bigconsole/components/widgets/list/ListItem.js +1 -1
  160. package/dist/bigconsole/components/widgets/list/ListItem.js.map +1 -1
  161. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +1 -1
  162. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +1 -1
  163. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +79 -72
  164. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -1
  165. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +35 -34
  166. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -1
  167. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +20 -19
  168. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js.map +1 -1
  169. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +181 -180
  170. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -1
  171. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +100 -90
  172. package/dist/bigconsole/components/widgets/progress/ProgressConfig.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 +193 -172
  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/webhook-config/WebhookConfigPanel.js +283 -249
  194. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -1
  195. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +28 -20
  196. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -1
  197. package/dist/bigconsole/components/workflow/WorkflowCard.js +92 -77
  198. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +1 -1
  199. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +70 -51
  200. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +1 -1
  201. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +16 -17
  202. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +1 -1
  203. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +46 -42
  204. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -1
  205. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +372 -348
  206. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  207. package/dist/bigconsole/hooks/useModalFocusTrap.js +53 -0
  208. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +1 -0
  209. package/dist/bigconsole/pages/DashboardBuilderPage.js +153 -142
  210. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  211. package/dist/bigconsole/pages/DashboardViewPage.js +230 -220
  212. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  213. package/dist/bigconsole/pages/DashboardsPage.js +832 -790
  214. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  215. package/dist/bigconsole/pages/DataParsersPage.js +249 -304
  216. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  217. package/dist/bigconsole/pages/DataSinkBuilderPage.js +324 -349
  218. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  219. package/dist/bigconsole/pages/DataSinkViewPage.js +336 -323
  220. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  221. package/dist/bigconsole/pages/DataSinksPage.js +356 -458
  222. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
  223. package/dist/bigconsole/pages/DataSourcesPage.js +14 -8
  224. package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -1
  225. package/dist/bigconsole/pages/HomePage.js +186 -193
  226. package/dist/bigconsole/pages/HomePage.js.map +1 -1
  227. package/dist/bigconsole/pages/InsightsPage.js +901 -724
  228. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  229. package/dist/bigconsole/pages/ParserBuilderPage.js +769 -675
  230. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  231. package/dist/bigconsole/pages/ParserViewPage.js +382 -354
  232. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  233. package/dist/bigconsole/pages/PipelineBuilderPage.js +540 -420
  234. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  235. package/dist/bigconsole/pages/PipelineViewPage.js +416 -384
  236. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  237. package/dist/bigconsole/pages/PipelinesPage.js +260 -309
  238. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  239. package/dist/bigconsole/pages/SettingsPage.js +177 -172
  240. package/dist/bigconsole/pages/SettingsPage.js.map +1 -1
  241. package/dist/bigconsole/pages/WidgetDemoPage.js +278 -142
  242. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  243. package/dist/bigconsole/pages/WorkflowViewPage.js +382 -366
  244. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  245. package/dist/bigconsole/pages/WorkflowsPage.js +202 -316
  246. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  247. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +111 -109
  248. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js.map +1 -1
  249. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +127 -126
  250. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js.map +1 -1
  251. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +103 -103
  252. package/dist/bigconsole/renderers/adapters/CustomRenderer.js.map +1 -1
  253. package/package.json +2 -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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"}