@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,131 +1,135 @@
1
1
  import { useAppNavigate as e } from "../contexts/NavigationContext.js";
2
2
  import "../contexts/index.js";
3
- import t from "../hooks/useWorkflowOperations.js";
4
- import { BOOTSTRAP_RETRY_DELAY_MS as n } from "../constants.js";
5
- import { useBigConsole as r } from "../context/BigConsoleContext.js";
3
+ import { SECTION_FOCUS_RING as t, sectionSurfaceClasses as n } from "../components/common/sectionStyles.js";
4
+ import { Section as r, SectionStack as i } from "../components/common/Section.js";
5
+ import "../components/common/index.js";
6
+ import ee from "../hooks/useWorkflowOperations.js";
7
+ import { BOOTSTRAP_RETRY_DELAY_MS as te } from "../constants.js";
8
+ import { useBigConsole as a } from "../context/BigConsoleContext.js";
6
9
  import "../context/index.js";
7
- import { BIGCONSOLE_PERMISSIONS as i } from "../../constants/permissions.js";
8
- import { isNative as a, nativeCopyText as o, nativeNotify as s, nativeToast as c } from "../../utils/nativeBridge.js";
9
- import ee from "../components/workflow/WorkflowStatusBadge.js";
10
- import te from "../components/workflow/WorkflowDeleteDialog.js";
11
- import { memo as l, useCallback as u, useEffect as ne, useState as d } from "react";
12
- import { useParams as re } from "react-router";
13
- import { AccessDenied as f, PermissionButton as p } from "@burdenoff/fe-libs/shared/components";
14
- import { usePermissions as m } from "@burdenoff/fe-libs/shared/providers/shell";
15
- import { GlassCard as h, IllustratedEmptyState as g, NextSteps as _, PagePurpose as v } from "@burdenoff/fe-libs/ui";
16
- import { Fragment as y, jsx as b, jsxs as x } from "react/jsx-runtime";
17
- import { WorkflowBuilder as S } from "@burdenoff/fluidgrids-fe-sdk";
18
- import { formatDistanceToNow as C } from "date-fns";
10
+ import { BIGCONSOLE_PERMISSIONS as o } from "../../constants/permissions.js";
11
+ import { isNative as s, nativeCopyText as c, nativeNotify as l, nativeToast as ne } from "../../utils/nativeBridge.js";
12
+ import re from "../components/workflow/WorkflowStatusBadge.js";
13
+ import ie from "../components/workflow/WorkflowDeleteDialog.js";
14
+ import { memo as u, useCallback as d, useEffect as ae, useState as f } from "react";
15
+ import { useParams as p } from "react-router";
16
+ import { AccessDenied as m, PermissionButton as h } from "@burdenoff/fe-libs/shared/components";
17
+ import { usePermissions as oe } from "@burdenoff/fe-libs/shared/providers/shell";
18
+ import { useI18n as se } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
+ import { Button as g, IllustratedEmptyState as _, NextSteps as ce, PagePurpose as le, Spinner as ue } from "@burdenoff/fe-libs/ui";
20
+ import { Fragment as v, jsx as y, jsxs as b } from "react/jsx-runtime";
21
+ import { WorkflowBuilder as de } from "@burdenoff/fluidgrids-fe-sdk";
22
+ import { formatDistanceToNow as x } from "date-fns";
19
23
  //#region src/bigconsole/pages/WorkflowViewPage.tsx
20
- var w = ({ className: e }) => /* @__PURE__ */ b("svg", {
24
+ var fe = ({ className: e }) => /* @__PURE__ */ y("svg", {
21
25
  className: e,
22
26
  fill: "none",
23
27
  stroke: "currentColor",
24
28
  viewBox: "0 0 24 24",
25
- children: /* @__PURE__ */ b("path", {
29
+ children: /* @__PURE__ */ y("path", {
26
30
  strokeLinecap: "round",
27
31
  strokeLinejoin: "round",
28
32
  strokeWidth: 2,
29
33
  d: "M15 19l-7-7 7-7"
30
34
  })
31
- }), T = ({ className: e }) => /* @__PURE__ */ b("svg", {
35
+ }), pe = ({ className: e }) => /* @__PURE__ */ y("svg", {
32
36
  className: e,
33
37
  fill: "none",
34
38
  stroke: "currentColor",
35
39
  viewBox: "0 0 24 24",
36
- children: /* @__PURE__ */ b("path", {
40
+ children: /* @__PURE__ */ y("path", {
37
41
  strokeLinecap: "round",
38
42
  strokeLinejoin: "round",
39
43
  strokeWidth: 2,
40
44
  d: "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"
41
45
  })
42
- }), ie = ({ className: e }) => /* @__PURE__ */ b("svg", {
46
+ }), me = ({ className: e }) => /* @__PURE__ */ y("svg", {
43
47
  className: e,
44
48
  fill: "none",
45
49
  stroke: "currentColor",
46
50
  viewBox: "0 0 24 24",
47
- children: /* @__PURE__ */ b("path", {
51
+ children: /* @__PURE__ */ y("path", {
48
52
  strokeLinecap: "round",
49
53
  strokeLinejoin: "round",
50
54
  strokeWidth: 2,
51
55
  d: "M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"
52
56
  })
53
- }), ae = ({ className: e }) => /* @__PURE__ */ x("svg", {
57
+ }), he = ({ className: e }) => /* @__PURE__ */ b("svg", {
54
58
  className: e,
55
59
  fill: "none",
56
60
  stroke: "currentColor",
57
61
  viewBox: "0 0 24 24",
58
- children: [/* @__PURE__ */ b("path", {
62
+ children: [/* @__PURE__ */ y("path", {
59
63
  strokeLinecap: "round",
60
64
  strokeLinejoin: "round",
61
65
  strokeWidth: 2,
62
66
  d: "M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"
63
- }), /* @__PURE__ */ b("path", {
67
+ }), /* @__PURE__ */ y("path", {
64
68
  strokeLinecap: "round",
65
69
  strokeLinejoin: "round",
66
70
  strokeWidth: 2,
67
71
  d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
68
72
  })]
69
- }), oe = ({ className: e }) => /* @__PURE__ */ b("svg", {
73
+ }), ge = ({ className: e }) => /* @__PURE__ */ y("svg", {
70
74
  className: e,
71
75
  fill: "none",
72
76
  stroke: "currentColor",
73
77
  viewBox: "0 0 24 24",
74
- children: /* @__PURE__ */ b("path", {
78
+ children: /* @__PURE__ */ y("path", {
75
79
  strokeLinecap: "round",
76
80
  strokeLinejoin: "round",
77
81
  strokeWidth: 2,
78
82
  d: "M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"
79
83
  })
80
- }), se = ({ className: e }) => /* @__PURE__ */ b("svg", {
84
+ }), _e = ({ className: e }) => /* @__PURE__ */ y("svg", {
81
85
  className: e,
82
86
  fill: "none",
83
87
  stroke: "currentColor",
84
88
  viewBox: "0 0 24 24",
85
- children: /* @__PURE__ */ b("path", {
89
+ children: /* @__PURE__ */ y("path", {
86
90
  strokeLinecap: "round",
87
91
  strokeLinejoin: "round",
88
92
  strokeWidth: 2,
89
93
  d: "M5 13l4 4L19 7"
90
94
  })
91
- }), ce = ({ className: e }) => /* @__PURE__ */ b("svg", {
95
+ }), ve = ({ className: e }) => /* @__PURE__ */ y("svg", {
92
96
  className: e,
93
97
  fill: "none",
94
98
  stroke: "currentColor",
95
99
  viewBox: "0 0 24 24",
96
- children: /* @__PURE__ */ b("path", {
100
+ children: /* @__PURE__ */ y("path", {
97
101
  strokeLinecap: "round",
98
102
  strokeLinejoin: "round",
99
103
  strokeWidth: 2,
100
104
  d: "M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4"
101
105
  })
102
- }), le = ({ className: e }) => /* @__PURE__ */ b("svg", {
106
+ }), ye = ({ className: e }) => /* @__PURE__ */ y("svg", {
103
107
  className: e,
104
108
  fill: "none",
105
109
  stroke: "currentColor",
106
110
  viewBox: "0 0 24 24",
107
- children: /* @__PURE__ */ b("path", {
111
+ children: /* @__PURE__ */ y("path", {
108
112
  strokeLinecap: "round",
109
113
  strokeLinejoin: "round",
110
114
  strokeWidth: 2,
111
115
  d: "M19 9l-7 7-7-7"
112
116
  })
113
- }), E = l(function() {
114
- let l = e(), { workflowId: E } = re(), { apiGatewayUrl: ue, authToken: de, workspaceId: fe } = r(), { hasPermission: D, isLoading: pe } = m(), O = D(i.WORKFLOW_READ), k = D(i.WORKFLOW_UPDATE);
115
- D(i.WORKFLOW_DELETE);
116
- let A = D(i.WORKFLOW_EXECUTE), [j, M] = d(null), [N, P] = d(!1), [, F] = d(!1), [I, L] = d(!1), [R, z] = d(!1), [B, V] = d(!1), [me, H] = d(!1), [U, W] = d(null), { loading: he, error: G, fetchWorkflow: K, deleteWorkflow: q, executeWorkflow: J, pollWorkflowExecution: Y } = t({ skipFetch: !0 });
117
- ne(() => {
118
- if (!E) {
117
+ }), S = u(function() {
118
+ let u = e(), { t: S } = se(), { workflowId: C } = p(), { apiGatewayUrl: w, authToken: T, workspaceId: E } = a(), { hasPermission: D, isLoading: O } = oe(), k = D(o.WORKFLOW_READ), A = D(o.WORKFLOW_UPDATE);
119
+ D(o.WORKFLOW_DELETE);
120
+ let j = D(o.WORKFLOW_EXECUTE), [M, N] = f(null), [P, F] = f(!1), [, I] = f(!1), [L, R] = f(!1), [be, z] = f(!1), [B, V] = f(!1), [xe, H] = f(!1), [U, W] = f(null), { loading: Se, error: G, fetchWorkflow: K, deleteWorkflow: q, executeWorkflow: J, pollWorkflowExecution: Y } = ee({ skipFetch: !0 });
121
+ ae(() => {
122
+ if (!C) {
119
123
  H(!0);
120
124
  return;
121
125
  }
122
- let e = !1, t = async (r) => {
126
+ let e = !1, t = async (n) => {
123
127
  try {
124
- let i = await K(E);
128
+ let r = await K(C);
125
129
  if (e) return;
126
- i ? (M(i), H(!0)) : r === 0 ? setTimeout(() => {
130
+ r ? (N(r), H(!0)) : n === 0 ? setTimeout(() => {
127
131
  e || t(1);
128
- }, n) : H(!0);
132
+ }, te) : H(!0);
129
133
  } catch {
130
134
  e || H(!0);
131
135
  }
@@ -133,32 +137,32 @@ var w = ({ className: e }) => /* @__PURE__ */ b("svg", {
133
137
  return t(0), () => {
134
138
  e = !0;
135
139
  };
136
- }, [E, K]);
137
- let X = u(() => {
138
- l("/workflows");
139
- }, [l]), Z = u(() => {
140
- l(`/workflows/${E}/edit`);
141
- }, [l, E]), ge = u(async () => {
142
- if (E) {
143
- F(!0);
140
+ }, [C, K]);
141
+ let Ce = d(() => {
142
+ u("/workflows");
143
+ }, [u]), X = d(() => {
144
+ u(`/workflows/${C}/edit`);
145
+ }, [u, C]), we = d(async () => {
146
+ if (C) {
147
+ I(!0);
144
148
  try {
145
- await q(E) ? (a() && s("success"), l("/workflows")) : a() && s("error");
149
+ await q(C) ? (s() && l("success"), u("/workflows")) : s() && l("error");
146
150
  } catch {
147
- a() && s("error");
151
+ s() && l("error");
148
152
  } finally {
149
- F(!1), P(!1);
153
+ I(!1), F(!1);
150
154
  }
151
155
  }
152
156
  }, [
153
- E,
157
+ C,
154
158
  q,
155
- l
156
- ]), Q = u(async () => {
157
- if (!E) return;
158
- L(!0), W(null);
159
+ u
160
+ ]), Z = d(async () => {
161
+ if (!C) return;
162
+ R(!0), W(null);
159
163
  let e = Date.now();
160
164
  try {
161
- let t = await J(E);
165
+ let t = await J(C);
162
166
  if (t) {
163
167
  let n = Date.now() - e;
164
168
  t.externalWorkflowId ? (W({
@@ -166,22 +170,22 @@ var w = ({ className: e }) => /* @__PURE__ */ b("svg", {
166
170
  output: {
167
171
  externalWorkflowId: t.externalWorkflowId,
168
172
  executionCount: t.executionCount,
169
- status: "Triggered — polling for completion..."
173
+ status: S("bigconsole.workflows.view.executionTriggeredPolling", "Triggered — polling for completion...")
170
174
  },
171
175
  error: null,
172
176
  executionTimeMs: n
173
- }), Y(E, {
177
+ }), Y(C, {
174
178
  intervalMs: 3e3,
175
179
  timeoutMs: 12e4,
176
180
  onProgress: (e) => {
177
- M(e);
181
+ N(e);
178
182
  }
179
183
  }).then((t) => {
180
- t && (M(t), W((n) => n && {
184
+ t && (N(t), W((n) => n && {
181
185
  ...n,
182
186
  output: {
183
187
  ...n.output || {},
184
- status: t.status === "error" ? "Failed" : "Completed",
188
+ status: t.status === "error" ? S("bigconsole.workflows.view.executionStatusFailed", "Failed") : S("bigconsole.workflows.view.executionStatusCompleted", "Completed"),
185
189
  executionCount: t.executionCount,
186
190
  lastExecutedAt: t.lastExecutedAt
187
191
  },
@@ -192,376 +196,388 @@ var w = ({ className: e }) => /* @__PURE__ */ b("svg", {
192
196
  output: {
193
197
  executionCount: t.executionCount,
194
198
  lastExecutedAt: t.lastExecutedAt,
195
- status: "Completed"
199
+ status: S("bigconsole.workflows.view.executionStatusCompleted", "Completed")
196
200
  },
197
201
  error: null,
198
202
  executionTimeMs: n
199
203
  });
200
- let r = await K(E);
201
- r && M(r);
204
+ let r = await K(C);
205
+ r && N(r);
202
206
  }
203
207
  } catch (t) {
204
208
  W({
205
209
  success: !1,
206
210
  output: null,
207
- error: t instanceof Error ? t.message : "Execution failed",
211
+ error: t instanceof Error ? t.message : S("bigconsole.workflows.errors.executionFailed", "Execution failed"),
208
212
  executionTimeMs: Date.now() - e
209
213
  });
210
214
  } finally {
211
- L(!1);
215
+ R(!1);
212
216
  }
213
217
  }, [
214
- E,
218
+ C,
215
219
  J,
216
220
  K,
217
- Y
218
- ]), _e = u(async () => {
219
- if (j?.webhookUrl) try {
220
- await o(j.webhookUrl), z(!0), a() && c("Webhook copied"), setTimeout(() => z(!1), 2e3);
221
+ Y,
222
+ S
223
+ ]), Te = d(async () => {
224
+ if (M?.webhookUrl) try {
225
+ await c(M.webhookUrl), z(!0), s() && ne(S("bigconsole.workflows.view.webhookCopiedToast", "Webhook copied")), setTimeout(() => z(!1), 2e3);
221
226
  } catch {}
222
- }, [j?.webhookUrl]), ve = u((e) => {
223
- l(`/datasinks/${e}`);
224
- }, [l]);
225
- if (!me || he && !j || pe) return /* @__PURE__ */ b("div", {
226
- className: "p-6 flex items-center justify-center min-h-[400px]",
227
- children: /* @__PURE__ */ x("svg", {
228
- className: "w-8 h-8 text-action-primary-bg animate-spin",
229
- fill: "none",
230
- viewBox: "0 0 24 24",
231
- children: [/* @__PURE__ */ b("circle", {
232
- className: "opacity-25",
233
- cx: "12",
234
- cy: "12",
235
- r: "10",
236
- stroke: "currentColor",
237
- strokeWidth: "4"
238
- }), /* @__PURE__ */ b("path", {
239
- className: "opacity-75",
240
- fill: "currentColor",
241
- 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"
242
- })]
243
- })
227
+ }, [M?.webhookUrl, S]), Ee = d((e) => {
228
+ u(`/datasinks/${e}`);
229
+ }, [u]), Q = /* @__PURE__ */ b("button", {
230
+ type: "button",
231
+ onClick: Ce,
232
+ className: `inline-flex min-h-[var(--size-controlHeight-md)] items-center gap-1 rounded-button text-sm text-text-secondary motion-safe:transition-colors hover:text-text-primary ${t}`,
233
+ children: [/* @__PURE__ */ y(fe, { className: "w-4 h-4" }), S("bigconsole.workflows.view.backToWorkflows", "Back to Workflows")]
244
234
  });
245
- if (!O) return /* @__PURE__ */ b(f, {
246
- title: "Access Denied",
247
- description: "You don't have permission to view this workflow."
235
+ if (!xe || Se && !M || O) return /* @__PURE__ */ y("div", {
236
+ className: "mx-auto flex min-h-[400px] max-w-5xl items-center justify-center p-4 sm:p-[var(--space-pagePadding)]",
237
+ children: /* @__PURE__ */ y(ue, { size: "lg" })
248
238
  });
249
- if (G || !j) return /* @__PURE__ */ x("div", {
250
- className: "p-6",
251
- children: [/* @__PURE__ */ x("button", {
252
- type: "button",
253
- onClick: X,
254
- className: "inline-flex items-center gap-1 text-sm text-text-secondary hover:text-text-primary mb-4",
255
- children: [/* @__PURE__ */ b(w, { className: "w-4 h-4" }), "Back to Workflows"]
256
- }), /* @__PURE__ */ b(g, {
257
- illustration: "empty-data",
258
- title: "Workflow not found",
259
- description: G?.message || "The workflow you are looking for does not exist."
260
- })]
239
+ if (!k) return /* @__PURE__ */ y(m, {
240
+ title: S("bigconsole.workflows.errors.accessDeniedTitle", "Access Denied"),
241
+ description: S("bigconsole.workflows.errors.accessDeniedViewDescription", "You don't have permission to view this workflow.")
261
242
  });
262
- let $ = j.dataSinkLinks?.length || 0, ye = [
263
- ...A ? [{
243
+ if (G || !M) return /* @__PURE__ */ y("div", {
244
+ className: "mx-auto max-w-5xl p-4 sm:p-[var(--space-pagePadding)]",
245
+ children: /* @__PURE__ */ b(i, { children: [/* @__PURE__ */ y("div", { children: Q }), /* @__PURE__ */ y("section", {
246
+ "aria-label": "Workflow not found",
247
+ "data-section-emphasis": "standard",
248
+ "data-testid": "workflow-not-found",
249
+ className: n("standard"),
250
+ children: /* @__PURE__ */ y(_, {
251
+ illustration: "empty-data",
252
+ title: S("bigconsole.workflows.view.notFoundTitle", "Workflow not found"),
253
+ description: G?.message || S("bigconsole.workflows.view.notFoundDescription", "The workflow you are looking for does not exist.")
254
+ })
255
+ })] })
256
+ });
257
+ let $ = M.dataSinkLinks?.length || 0, De = !!M.externalWorkflowId, Oe = [
258
+ ...j ? [{
264
259
  id: "execute",
265
- label: "Run the workflow",
266
- description: "Trigger an execution to pull fresh data now.",
267
- onClick: Q
260
+ label: S("bigconsole.workflows.view.nextStepExecuteLabel", "Run the workflow"),
261
+ description: S("bigconsole.workflows.view.nextStepExecuteDescription", "Trigger an execution to pull fresh data now."),
262
+ onClick: Z
268
263
  }] : [],
269
264
  {
270
265
  id: "design",
271
- label: "Inspect the design",
272
- description: "Expand the read-only preview to see each step.",
266
+ label: S("bigconsole.workflows.view.nextStepDesignLabel", "Inspect the design"),
267
+ description: S("bigconsole.workflows.view.nextStepDesignDescription", "Expand the read-only preview to see each step."),
273
268
  onClick: () => V(!0)
274
269
  },
275
- ...k ? [{
270
+ ...A ? [{
276
271
  id: "edit",
277
- label: "Edit in the builder",
278
- description: "Open the FluidGrids visual builder to change the flow.",
279
- onClick: Z
272
+ label: S("bigconsole.workflows.view.nextStepEditLabel", "Edit in the builder"),
273
+ description: S("bigconsole.workflows.view.nextStepEditDescription", "Open the FluidGrids visual builder to change the flow."),
274
+ onClick: X
280
275
  }] : [],
281
276
  {
282
277
  id: "sinks",
283
- label: "Check the linked data sinks",
284
- description: "See where this workflow writes its output.",
285
- onClick: () => l("/datasinks")
278
+ label: S("bigconsole.workflows.view.nextStepSinksLabel", "Check the linked data sinks"),
279
+ description: S("bigconsole.workflows.view.nextStepSinksDescription", "See where this workflow writes its output."),
280
+ onClick: () => u("/datasinks")
286
281
  }
287
282
  ];
288
- return /* @__PURE__ */ x("div", {
289
- className: "p-6 max-w-5xl mx-auto",
290
- children: [
291
- /* @__PURE__ */ x("div", {
292
- className: "mb-8",
293
- children: [/* @__PURE__ */ x("button", {
294
- type: "button",
295
- onClick: X,
296
- className: "inline-flex items-center gap-1 text-sm text-text-secondary hover:text-text-primary mb-4",
297
- children: [/* @__PURE__ */ b(w, { className: "w-4 h-4" }), "Back to Workflows"]
298
- }), /* @__PURE__ */ x("div", {
299
- className: "flex items-start justify-between",
300
- children: [/* @__PURE__ */ x("div", { children: [
301
- /* @__PURE__ */ x("div", {
302
- className: "flex items-center gap-3 mb-2",
303
- children: [/* @__PURE__ */ b("h1", {
304
- className: "text-2xl font-bold text-text-primary",
305
- children: j.name
306
- }), /* @__PURE__ */ b(ee, { status: j.status })]
307
- }),
308
- /* @__PURE__ */ b("p", {
309
- className: "text-sm text-text-secondary font-mono",
310
- children: j.key
311
- }),
312
- j.externalWorkflowId && /* @__PURE__ */ x("p", {
313
- className: "text-xs text-text-tertiary mt-1",
314
- children: ["FluidGrids ID: ", /* @__PURE__ */ b("span", {
315
- className: "font-mono",
316
- children: j.externalWorkflowId
317
- })]
318
- })
319
- ] }), /* @__PURE__ */ x("div", {
320
- className: "flex items-center gap-2",
283
+ return /* @__PURE__ */ b("div", {
284
+ className: "mx-auto max-w-5xl p-4 sm:p-[var(--space-pagePadding)]",
285
+ children: [/* @__PURE__ */ b(i, { children: [
286
+ /* @__PURE__ */ b("header", {
287
+ "data-section-emphasis": "bare",
288
+ className: "min-w-0",
289
+ children: [/* @__PURE__ */ y("div", {
290
+ className: "mb-form-gap",
291
+ children: Q
292
+ }), /* @__PURE__ */ b("div", {
293
+ className: "flex flex-col gap-form-gap md:flex-row md:items-start md:justify-between",
294
+ children: [/* @__PURE__ */ b("div", {
295
+ className: "min-w-0",
296
+ children: [
297
+ /* @__PURE__ */ b("div", {
298
+ className: "flex flex-wrap items-center gap-icon-gap",
299
+ children: [/* @__PURE__ */ y("h1", {
300
+ className: "break-words text-2xl font-bold text-text-primary",
301
+ children: M.name
302
+ }), /* @__PURE__ */ y(re, { status: M.status })]
303
+ }),
304
+ /* @__PURE__ */ y("p", {
305
+ className: "mt-1 break-all font-mono text-sm text-text-secondary",
306
+ children: M.key
307
+ }),
308
+ M.externalWorkflowId && /* @__PURE__ */ b("p", {
309
+ className: "mt-1 text-xs text-text-muted",
310
+ children: [
311
+ S("bigconsole.workflows.view.fluidGridsIdLabel", "FluidGrids ID:"),
312
+ " ",
313
+ /* @__PURE__ */ y("span", {
314
+ className: "break-all font-mono",
315
+ children: M.externalWorkflowId
316
+ })
317
+ ]
318
+ })
319
+ ]
320
+ }), /* @__PURE__ */ b("div", {
321
+ className: "flex flex-wrap items-center gap-control-gap",
321
322
  children: [
322
- /* @__PURE__ */ b(p, {
323
- permission: i.WORKFLOW_EXECUTE,
323
+ /* @__PURE__ */ y(h, {
324
+ permission: o.WORKFLOW_EXECUTE,
324
325
  deniedBehavior: "disable",
325
- children: /* @__PURE__ */ x("button", {
326
- type: "button",
327
- onClick: Q,
328
- disabled: I,
329
- className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-white bg-status-success-bg hover:bg-status-success-bg/90 rounded-md transition-colors disabled:opacity-50",
330
- children: [/* @__PURE__ */ b(ae, { className: "w-4 h-4" }), I ? "Executing..." : "Execute"]
326
+ children: /* @__PURE__ */ b(g, {
327
+ size: "lg",
328
+ onClick: Z,
329
+ disabled: L,
330
+ children: [/* @__PURE__ */ y(he, { className: "w-4 h-4" }), L ? S("bigconsole.workflows.actions.executing", "Executing...") : S("bigconsole.workflows.actions.execute", "Execute")]
331
331
  })
332
332
  }),
333
- /* @__PURE__ */ b(p, {
334
- permission: i.WORKFLOW_UPDATE,
333
+ /* @__PURE__ */ y(h, {
334
+ permission: o.WORKFLOW_UPDATE,
335
335
  deniedBehavior: "disable",
336
- children: /* @__PURE__ */ x("button", {
337
- type: "button",
338
- onClick: Z,
339
- className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-text-primary bg-bg-sunken hover:bg-border-default rounded-md transition-colors",
340
- children: [/* @__PURE__ */ b(T, { className: "w-4 h-4" }), "Edit"]
336
+ children: /* @__PURE__ */ b(g, {
337
+ size: "lg",
338
+ variant: "outline",
339
+ onClick: X,
340
+ children: [/* @__PURE__ */ y(pe, { className: "w-4 h-4" }), S("bigconsole.workflows.actions.edit", "Edit")]
341
341
  })
342
342
  }),
343
- /* @__PURE__ */ b(p, {
344
- permission: i.WORKFLOW_DELETE,
343
+ /* @__PURE__ */ y(h, {
344
+ permission: o.WORKFLOW_DELETE,
345
345
  deniedBehavior: "hide",
346
- children: /* @__PURE__ */ x("button", {
347
- type: "button",
348
- onClick: () => P(!0),
349
- className: "inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-status-error-text bg-status-error-bg/10 hover:bg-status-error-bg/20 rounded-md transition-colors",
350
- children: [/* @__PURE__ */ b(ie, { className: "w-4 h-4" }), "Delete"]
346
+ children: /* @__PURE__ */ b(g, {
347
+ size: "lg",
348
+ variant: "ghost",
349
+ onClick: () => F(!0),
350
+ className: "text-[var(--color-status-error-text)] hover:bg-status-error-bg/10 hover:text-[var(--color-status-error-text)]",
351
+ children: [/* @__PURE__ */ y(me, { className: "w-4 h-4" }), S("bigconsole.workflows.actions.delete", "Delete")]
351
352
  })
352
353
  })
353
354
  ]
354
355
  })]
355
356
  })]
356
357
  }),
357
- /* @__PURE__ */ b(v, {
358
- className: "mb-6",
359
- children: "A workflow is the visual ETL job that feeds this BigConsole — it fetches, transforms, and delivers data into linked data sinks. From here you can run it on demand, inspect its design and execution history, copy its webhook trigger, and edit it in the visual builder."
360
- }),
361
- /* @__PURE__ */ b(_, {
358
+ /* @__PURE__ */ y(le, { children: S("bigconsole.workflows.view.purpose", "A workflow is the visual ETL job that feeds this BigConsole — it fetches, transforms, and delivers data into linked data sinks. From here you can run it on demand, inspect its design and execution history, copy its webhook trigger, and edit it in the visual builder.") }),
359
+ /* @__PURE__ */ y(ce, {
362
360
  storageKey: "bigconsole-workflow-view",
363
- steps: ye
361
+ steps: Oe
364
362
  }),
365
- U && /* @__PURE__ */ x("div", {
366
- className: `mb-6 p-4 rounded-lg border ${U.success ? "bg-status-success-bg/10 border-status-success-border/20" : "bg-status-error-bg/10 border-status-error-border/20"}`,
367
- children: [
368
- /* @__PURE__ */ x("div", {
369
- className: "flex items-center justify-between mb-2",
370
- children: [/* @__PURE__ */ b("h3", {
371
- className: "text-sm font-semibold text-text-primary",
372
- children: U.success ? "Execution Triggered" : "Execution Failed"
373
- }), /* @__PURE__ */ x("span", {
374
- className: "text-xs text-text-secondary",
375
- children: [U.executionTimeMs, "ms"]
376
- })]
377
- }),
378
- U.error ? /* @__PURE__ */ b("p", {
379
- className: "text-sm text-status-error-text",
380
- children: U.error
381
- }) : /* @__PURE__ */ b("pre", {
382
- className: "text-xs text-text-secondary font-mono bg-bg-sunken p-2 rounded overflow-auto max-h-[200px]",
383
- children: JSON.stringify(U.output, null, 2)
384
- }),
385
- U.runId && /* @__PURE__ */ x("p", {
386
- className: "text-xs text-text-tertiary mt-2",
387
- children: ["Run ID: ", /* @__PURE__ */ b("span", {
388
- className: "font-mono",
363
+ U && /* @__PURE__ */ b(r, {
364
+ headingLevel: 2,
365
+ tone: U.success ? "success" : "danger",
366
+ title: U.success ? S("bigconsole.workflows.view.executionResultTriggered", "Execution Triggered") : S("bigconsole.workflows.view.executionResultFailed", "Execution Failed"),
367
+ description: U.success ? "The run was accepted. Results refresh below as the run progresses." : "The run could not be started. The detail below comes straight from the workflow service.",
368
+ meta: /* @__PURE__ */ b("span", {
369
+ className: "rounded-pill bg-bg-sunken px-2 py-0.5 text-xs font-medium text-text-secondary",
370
+ children: [U.executionTimeMs, "ms"]
371
+ }),
372
+ "data-testid": "workflow-execution-result",
373
+ children: [U.error ? /* @__PURE__ */ y("p", {
374
+ className: "break-words text-sm text-[var(--color-status-error-text)]",
375
+ children: U.error
376
+ }) : /* @__PURE__ */ y("pre", {
377
+ className: "max-h-[200px] min-w-0 overflow-auto rounded-card bg-bg-sunken p-2 font-mono text-xs text-text-secondary",
378
+ children: JSON.stringify(U.output, null, 2)
379
+ }), U.runId && /* @__PURE__ */ b("p", {
380
+ className: "mt-2 text-xs text-text-muted",
381
+ children: [
382
+ S("bigconsole.workflows.view.runIdLabel", "Run ID:"),
383
+ " ",
384
+ /* @__PURE__ */ y("span", {
385
+ className: "break-all font-mono",
389
386
  children: U.runId
390
- })]
391
- })
392
- ]
393
- }),
394
- /* @__PURE__ */ x("div", {
395
- className: "grid grid-cols-1 md:grid-cols-2 gap-6 mb-8",
396
- children: [/* @__PURE__ */ x("div", {
397
- className: "bg-bg-surface border border-border-default rounded-lg p-4",
398
- children: [/* @__PURE__ */ b("h3", {
399
- className: "text-sm font-medium text-text-secondary mb-2",
400
- children: "Description"
401
- }), /* @__PURE__ */ b("p", {
402
- className: "text-sm text-text-primary",
403
- children: j.description || "No description"
404
- })]
405
- }), /* @__PURE__ */ x(h, {
406
- treatment: "glass",
407
- glow: !0,
408
- className: "p-4",
409
- children: [/* @__PURE__ */ b("h3", {
410
- className: "text-sm font-medium text-text-secondary mb-2",
411
- children: "Execution Stats"
412
- }), /* @__PURE__ */ x("div", {
413
- className: "grid grid-cols-2 gap-4",
414
- children: [/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
415
- className: "text-2xl font-bold text-text-primary",
416
- children: j.executionCount
417
- }), /* @__PURE__ */ b("p", {
418
- className: "text-xs text-text-secondary",
419
- children: "Total Executions"
420
- })] }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
421
- className: "text-sm font-medium text-text-primary",
422
- children: j.lastExecutedAt ? C(new Date(j.lastExecutedAt), { addSuffix: !0 }) : "Never"
423
- }), /* @__PURE__ */ b("p", {
424
- className: "text-xs text-text-secondary",
425
- children: "Last Executed"
426
- })] })]
427
- })]
387
+ })
388
+ ]
428
389
  })]
429
390
  }),
430
- j.webhookUrl && /* @__PURE__ */ x("div", {
431
- className: "bg-bg-surface border border-border-default rounded-lg p-4 mb-8",
432
- children: [/* @__PURE__ */ b("h3", {
433
- className: "text-sm font-medium text-text-secondary mb-2",
434
- children: "Webhook URL"
435
- }), /* @__PURE__ */ x("div", {
436
- className: "flex items-center gap-2",
437
- children: [/* @__PURE__ */ b("code", {
438
- className: "flex-1 text-sm text-text-primary font-mono bg-bg-sunken px-3 py-2 rounded overflow-auto",
439
- children: j.webhookUrl
440
- }), /* @__PURE__ */ b("button", {
441
- type: "button",
442
- onClick: _e,
443
- className: "flex items-center gap-1 px-3 py-2 text-sm text-text-secondary hover:text-text-primary transition-colors",
444
- children: R ? /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(se, { className: "w-4 h-4 text-status-success-text" }), "Copied!"] }) : /* @__PURE__ */ x(y, { children: [/* @__PURE__ */ b(oe, { className: "w-4 h-4" }), "Copy"] })
445
- })]
391
+ /* @__PURE__ */ b("div", {
392
+ className: "grid grid-cols-1 gap-section-gap md:grid-cols-2",
393
+ children: [/* @__PURE__ */ y(r, {
394
+ headingLevel: 2,
395
+ emphasis: "muted",
396
+ title: S("bigconsole.workflows.view.descriptionLabel", "Description"),
397
+ description: "What this workflow is for, as entered by its author.",
398
+ children: /* @__PURE__ */ y("p", {
399
+ className: "break-words text-sm text-text-primary",
400
+ children: M.description || S("bigconsole.workflows.view.noDescription", "No description")
401
+ })
402
+ }), /* @__PURE__ */ y(r, {
403
+ headingLevel: 2,
404
+ emphasis: De ? "standard" : "primary",
405
+ title: S("bigconsole.workflows.view.executionStatsLabel", "Execution Stats"),
406
+ description: "How often this workflow has run, and when it last did.",
407
+ "data-testid": "workflow-execution-stats",
408
+ children: /* @__PURE__ */ b("div", {
409
+ className: "grid grid-cols-1 gap-form-gap sm:grid-cols-2",
410
+ children: [/* @__PURE__ */ b("div", {
411
+ className: "min-w-0",
412
+ children: [/* @__PURE__ */ y("p", {
413
+ className: "text-2xl font-bold text-text-primary",
414
+ children: M.executionCount
415
+ }), /* @__PURE__ */ y("p", {
416
+ className: "text-xs text-text-secondary",
417
+ children: S("bigconsole.workflows.view.totalExecutionsLabel", "Total Executions")
418
+ })]
419
+ }), /* @__PURE__ */ b("div", {
420
+ className: "min-w-0",
421
+ children: [/* @__PURE__ */ y("p", {
422
+ className: "text-sm font-medium text-text-primary",
423
+ children: M.lastExecutedAt ? x(new Date(M.lastExecutedAt), { addSuffix: !0 }) : S("bigconsole.workflows.view.never", "Never")
424
+ }), /* @__PURE__ */ y("p", {
425
+ className: "text-xs text-text-secondary",
426
+ children: S("bigconsole.workflows.view.lastExecutedLabel", "Last Executed")
427
+ })]
428
+ })]
429
+ })
446
430
  })]
447
431
  }),
448
- j.externalWorkflowId && /* @__PURE__ */ x("div", {
449
- className: "bg-bg-surface border border-border-default rounded-lg mb-8 overflow-hidden",
450
- children: [/* @__PURE__ */ x("button", {
451
- type: "button",
432
+ M.externalWorkflowId && /* @__PURE__ */ y(r, {
433
+ headingLevel: 2,
434
+ emphasis: "primary",
435
+ title: S("bigconsole.workflows.view.designPreviewTitle", "Workflow Design Preview"),
436
+ description: "The steps this workflow runs, read-only. Open the builder to change them.",
437
+ actions: /* @__PURE__ */ b(g, {
438
+ variant: "outline",
439
+ size: "sm",
440
+ "aria-expanded": B,
441
+ "aria-controls": "workflow-design-canvas",
452
442
  onClick: () => V((e) => !e),
453
- className: "w-full flex items-center justify-between px-4 py-3 text-sm font-medium text-text-primary hover:bg-bg-sunken transition-colors",
454
- children: [/* @__PURE__ */ b("span", { children: "Workflow Design Preview" }), /* @__PURE__ */ b(le, { className: `w-4 h-4 text-text-secondary transition-transform ${B ? "rotate-180" : ""}` })]
455
- }), B && /* @__PURE__ */ b("div", {
456
- className: "border-t border-border-default",
457
- style: { height: "450px" },
458
- children: /* @__PURE__ */ b(S, {
459
- apiGatewayUrl: ue,
460
- workspaceId: fe || "default",
461
- authToken: de,
462
- workflowId: j.externalWorkflowId,
443
+ children: [B ? "Hide design" : "Show design", /* @__PURE__ */ y(ye, { className: `w-4 h-4 motion-safe:transition-transform ${B ? "rotate-180" : ""}` })]
444
+ }),
445
+ "data-testid": "workflow-design-preview",
446
+ children: B ? /* @__PURE__ */ y("div", {
447
+ id: "workflow-design-canvas",
448
+ className: "h-[320px] min-w-0 overflow-hidden rounded-card border border-[var(--color-border-subtle)] sm:h-[420px] lg:h-[450px]",
449
+ children: /* @__PURE__ */ y(de, {
450
+ apiGatewayUrl: w,
451
+ workspaceId: E || "default",
452
+ authToken: T,
453
+ workflowId: M.externalWorkflowId,
463
454
  readonly: !0,
464
455
  hideHeader: !0,
465
456
  className: "h-full"
466
457
  })
467
- })]
458
+ }) : /* @__PURE__ */ y("p", {
459
+ id: "workflow-design-canvas",
460
+ className: "text-sm text-text-secondary",
461
+ children: "The canvas is collapsed. Show the design to see every step, its order and its connections."
462
+ })
468
463
  }),
469
- /* @__PURE__ */ x("div", {
470
- className: "bg-bg-surface border border-border-default rounded-lg p-4 mb-8",
471
- children: [/* @__PURE__ */ x("h3", {
472
- className: "text-sm font-medium text-text-secondary mb-4",
473
- children: [
474
- "Linked DataSinks (",
475
- $,
476
- ")"
477
- ]
478
- }), $ === 0 ? /* @__PURE__ */ b(g, {
464
+ M.webhookUrl && /* @__PURE__ */ y(r, {
465
+ headingLevel: 2,
466
+ emphasis: "muted",
467
+ title: S("bigconsole.workflows.view.webhookUrlLabel", "Webhook URL"),
468
+ description: "POST to this URL to run the workflow from an external system.",
469
+ actions: /* @__PURE__ */ y(g, {
470
+ variant: "ghost",
471
+ size: "sm",
472
+ onClick: Te,
473
+ children: be ? /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(_e, { className: "w-4 h-4 text-status-success-text" }), S("bigconsole.workflows.actions.copied", "Copied!")] }) : /* @__PURE__ */ b(v, { children: [/* @__PURE__ */ y(ge, { className: "w-4 h-4" }), S("bigconsole.workflows.actions.copy", "Copy")] })
474
+ }),
475
+ children: /* @__PURE__ */ y("code", {
476
+ className: "block min-w-0 overflow-x-auto break-all rounded-card bg-bg-sunken px-3 py-2 font-mono text-sm text-text-primary",
477
+ children: M.webhookUrl
478
+ })
479
+ }),
480
+ /* @__PURE__ */ y(r, {
481
+ headingLevel: 2,
482
+ title: S("bigconsole.workflows.view.linkedDataSinksTitle", "Linked DataSinks ({{count}})", { count: $ }),
483
+ description: "Where this workflow writes the data it produces.",
484
+ "data-testid": "workflow-linked-datasinks",
485
+ children: $ === 0 ? /* @__PURE__ */ y(_, {
479
486
  illustration: "empty-generic",
480
- title: "No data sinks linked",
481
- description: "This workflow has no data sinks linked yet — its output isn't being stored."
482
- }) : /* @__PURE__ */ b("div", {
483
- className: "space-y-2",
484
- children: j.dataSinkLinks?.map((e) => /* @__PURE__ */ x("div", {
485
- className: "flex items-center justify-between px-3 py-2 bg-bg-sunken rounded-md",
486
- children: [/* @__PURE__ */ x("div", {
487
- className: "flex items-center gap-3",
488
- children: [/* @__PURE__ */ b(ce, { className: "w-4 h-4 text-text-secondary" }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
489
- className: "text-sm font-medium text-text-primary",
490
- children: e.dataSink?.name || e.dataSink?.key || e.dataSinkId
491
- }), e.dataSink?.key && /* @__PURE__ */ b("p", {
492
- className: "text-xs text-text-secondary font-mono",
493
- children: e.dataSink.key
494
- })] })]
495
- }), /* @__PURE__ */ x("div", {
496
- className: "flex items-center gap-4",
497
- children: [/* @__PURE__ */ x("div", {
498
- className: "flex items-center gap-2",
499
- children: [e.isEnabled ? /* @__PURE__ */ b("span", {
500
- className: "text-xs text-status-success-text",
501
- children: "Enabled"
502
- }) : /* @__PURE__ */ b("span", {
503
- className: "text-xs text-text-secondary",
504
- children: "Disabled"
505
- }), /* @__PURE__ */ x("span", {
506
- className: "text-xs text-text-secondary",
507
- children: ["Priority: ", e.priority]
487
+ title: S("bigconsole.workflows.view.noDataSinksTitle", "No data sinks linked"),
488
+ description: S("bigconsole.workflows.view.noDataSinksDescription", "This workflow has no data sinks linked yet — its output isn't being stored.")
489
+ }) : /* @__PURE__ */ y("ul", {
490
+ className: "flex flex-col gap-list-gap",
491
+ children: M.dataSinkLinks?.map((e) => /* @__PURE__ */ b("li", {
492
+ className: "flex flex-col gap-control-gap rounded-card bg-bg-sunken px-3 py-2 sm:flex-row sm:items-center sm:justify-between",
493
+ children: [/* @__PURE__ */ b("div", {
494
+ className: "flex min-w-0 items-center gap-icon-gap",
495
+ children: [/* @__PURE__ */ y(ve, { className: "w-4 h-4 shrink-0 text-text-secondary" }), /* @__PURE__ */ b("div", {
496
+ className: "min-w-0",
497
+ children: [/* @__PURE__ */ y("p", {
498
+ className: "truncate text-sm font-medium text-text-primary",
499
+ children: e.dataSink?.name || e.dataSink?.key || e.dataSinkId
500
+ }), e.dataSink?.key && /* @__PURE__ */ y("p", {
501
+ className: "truncate font-mono text-xs text-text-secondary",
502
+ children: e.dataSink.key
508
503
  })]
509
- }), e.dataSink && /* @__PURE__ */ b("button", {
510
- type: "button",
511
- onClick: () => ve(e.dataSinkId),
512
- className: "text-xs text-action-primary-bg hover:underline",
513
- children: "View"
514
504
  })]
505
+ }), /* @__PURE__ */ b("div", {
506
+ className: "flex flex-wrap items-center gap-control-gap",
507
+ children: [
508
+ e.isEnabled ? /* @__PURE__ */ y("span", {
509
+ className: "rounded-pill bg-[var(--color-status-success-bgSubtle)] px-2 py-0.5 text-xs font-medium text-status-success-text",
510
+ children: S("bigconsole.workflows.view.dataSinkEnabled", "Enabled")
511
+ }) : /* @__PURE__ */ y("span", {
512
+ className: "rounded-pill bg-bg-surface px-2 py-0.5 text-xs font-medium text-text-secondary",
513
+ children: S("bigconsole.workflows.view.dataSinkDisabled", "Disabled")
514
+ }),
515
+ /* @__PURE__ */ y("span", {
516
+ className: "text-xs text-text-muted",
517
+ children: S("bigconsole.workflows.view.dataSinkPriority", "Priority: {{priority}}", { priority: e.priority })
518
+ }),
519
+ e.dataSink && /* @__PURE__ */ y("button", {
520
+ type: "button",
521
+ onClick: () => Ee(e.dataSinkId),
522
+ className: "inline-flex min-h-[var(--size-controlHeight-md)] items-center rounded-button px-2 text-xs font-medium text-text-link hover:underline sm:min-h-[var(--size-controlHeight-sm)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface",
523
+ children: S("bigconsole.workflows.actions.view", "View")
524
+ })
525
+ ]
515
526
  })]
516
527
  }, e.id))
517
- })]
528
+ })
518
529
  }),
519
- /* @__PURE__ */ x("div", {
520
- className: "grid grid-cols-1 md:grid-cols-2 gap-6",
521
- children: [/* @__PURE__ */ x("div", {
522
- className: "bg-bg-surface border border-border-default rounded-lg p-4",
523
- children: [
524
- /* @__PURE__ */ b("h3", {
525
- className: "text-sm font-medium text-text-secondary mb-2",
526
- children: "Created"
527
- }),
528
- /* @__PURE__ */ b("p", {
529
- className: "text-sm text-text-primary",
530
- children: C(new Date(j.createdAt), { addSuffix: !0 })
531
- }),
532
- /* @__PURE__ */ x("p", {
533
- className: "text-xs text-text-secondary",
534
- children: ["by ", j.createdBy]
535
- })
536
- ]
537
- }), /* @__PURE__ */ x("div", {
538
- className: "bg-bg-surface border border-border-default rounded-lg p-4",
539
- children: [
540
- /* @__PURE__ */ b("h3", {
541
- className: "text-sm font-medium text-text-secondary mb-2",
542
- children: "Last Updated"
543
- }),
544
- /* @__PURE__ */ b("p", {
545
- className: "text-sm text-text-primary",
546
- children: C(new Date(j.updatedAt), { addSuffix: !0 })
547
- }),
548
- /* @__PURE__ */ x("p", {
549
- className: "text-xs text-text-secondary",
550
- children: ["by ", j.updatedBy || j.createdBy]
551
- })
552
- ]
553
- })]
554
- }),
555
- j && /* @__PURE__ */ b(te, {
556
- workflow: j,
557
- isOpen: N,
558
- onClose: () => P(!1),
559
- onConfirm: ge
530
+ /* @__PURE__ */ y(r, {
531
+ headingLevel: 2,
532
+ emphasis: "muted",
533
+ title: "Record history",
534
+ padding: "compact",
535
+ children: /* @__PURE__ */ b("dl", {
536
+ className: "grid grid-cols-1 gap-form-gap sm:grid-cols-2",
537
+ children: [/* @__PURE__ */ b("div", {
538
+ className: "min-w-0",
539
+ children: [
540
+ /* @__PURE__ */ y("dt", {
541
+ className: "text-xs text-text-secondary",
542
+ children: S("bigconsole.workflows.view.createdLabel", "Created")
543
+ }),
544
+ /* @__PURE__ */ y("dd", {
545
+ className: "text-sm text-text-primary",
546
+ children: x(new Date(M.createdAt), { addSuffix: !0 })
547
+ }),
548
+ /* @__PURE__ */ y("dd", {
549
+ className: "truncate text-xs text-text-muted",
550
+ children: S("bigconsole.workflows.view.byAuthor", "by {{author}}", { author: M.createdBy })
551
+ })
552
+ ]
553
+ }), /* @__PURE__ */ b("div", {
554
+ className: "min-w-0",
555
+ children: [
556
+ /* @__PURE__ */ y("dt", {
557
+ className: "text-xs text-text-secondary",
558
+ children: S("bigconsole.workflows.view.lastUpdatedLabel", "Last Updated")
559
+ }),
560
+ /* @__PURE__ */ y("dd", {
561
+ className: "text-sm text-text-primary",
562
+ children: x(new Date(M.updatedAt), { addSuffix: !0 })
563
+ }),
564
+ /* @__PURE__ */ y("dd", {
565
+ className: "truncate text-xs text-text-muted",
566
+ children: S("bigconsole.workflows.view.byAuthor", "by {{author}}", { author: M.updatedBy || M.createdBy })
567
+ })
568
+ ]
569
+ })]
570
+ })
560
571
  })
561
- ]
572
+ ] }), M && /* @__PURE__ */ y(ie, {
573
+ workflow: M,
574
+ isOpen: P,
575
+ onClose: () => F(!1),
576
+ onConfirm: we
577
+ })]
562
578
  });
563
579
  });
564
580
  //#endregion
565
- export { E as WorkflowViewPage };
581
+ export { S as WorkflowViewPage };
566
582
 
567
583
  //# sourceMappingURL=WorkflowViewPage.js.map