@burdenoff/microfe-bigconsole 2026.805.3 → 2026.812.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/bigconsole/components/DrilldownDashboardRenderer.js +118 -106
  2. package/dist/bigconsole/components/DrilldownDashboardRenderer.js.map +1 -1
  3. package/dist/bigconsole/components/DrilldownModal.js +54 -50
  4. package/dist/bigconsole/components/DrilldownModal.js.map +1 -1
  5. package/dist/bigconsole/components/builder/BuilderCanvas.js +2 -2
  6. package/dist/bigconsole/components/builder/BuilderCanvas.js.map +1 -1
  7. package/dist/bigconsole/components/builder/BuilderTopbar.js +3 -3
  8. package/dist/bigconsole/components/builder/BuilderTopbar.js.map +1 -1
  9. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js +24 -25
  10. package/dist/bigconsole/components/builder/inspector/AdvancedSection.js.map +1 -1
  11. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js +40 -29
  12. package/dist/bigconsole/components/builder/inspector/AppearanceSection.js.map +1 -1
  13. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +135 -97
  14. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js.map +1 -1
  15. package/dist/bigconsole/components/builder/inspector/GeneralSection.js +58 -44
  16. package/dist/bigconsole/components/builder/inspector/GeneralSection.js.map +1 -1
  17. package/dist/bigconsole/components/common/Section.js +70 -0
  18. package/dist/bigconsole/components/common/Section.js.map +1 -0
  19. package/dist/bigconsole/components/common/index.js +2 -0
  20. package/dist/bigconsole/components/common/sectionStyles.js +42 -0
  21. package/dist/bigconsole/components/common/sectionStyles.js.map +1 -0
  22. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +209 -193
  23. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js.map +1 -1
  24. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +213 -231
  25. package/dist/bigconsole/components/dashboard/DashboardCanvas.js.map +1 -1
  26. package/dist/bigconsole/components/dashboard/DashboardGrid.js +12 -18
  27. package/dist/bigconsole/components/dashboard/DashboardGrid.js.map +1 -1
  28. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +109 -102
  29. package/dist/bigconsole/components/dashboard/DashboardToolbar.js.map +1 -1
  30. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +81 -70
  31. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js.map +1 -1
  32. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js +125 -159
  33. package/dist/bigconsole/components/dashboard/ExportDashboardDialog.js.map +1 -1
  34. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +25 -23
  35. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js.map +1 -1
  36. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +3 -3
  37. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js.map +1 -1
  38. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +5 -3
  39. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js.map +1 -1
  40. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +170 -284
  41. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js.map +1 -1
  42. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +147 -151
  43. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js.map +1 -1
  44. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js +45 -53
  45. package/dist/bigconsole/components/dashboard/LiveBoardBanner.js.map +1 -1
  46. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js +157 -148
  47. package/dist/bigconsole/components/dashboard/PageTabsManager/PageTabsManager.js.map +1 -1
  48. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +17 -8
  49. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js.map +1 -1
  50. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -95
  51. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js.map +1 -1
  52. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js +20 -18
  53. package/dist/bigconsole/components/dashboard/StoreTemplatePicker.js.map +1 -1
  54. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js +26 -58
  55. package/dist/bigconsole/components/dashboard/TemplateSetupBanner.js.map +1 -1
  56. package/dist/bigconsole/components/dashboard/WidgetPalette.js +307 -231
  57. package/dist/bigconsole/components/dashboard/WidgetPalette.js.map +1 -1
  58. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +29 -29
  59. package/dist/bigconsole/components/datasink/CacheTTLSelector.js.map +1 -1
  60. package/dist/bigconsole/components/datasink/DataSinkCard.js +78 -79
  61. package/dist/bigconsole/components/datasink/DataSinkCard.js.map +1 -1
  62. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js +33 -34
  63. package/dist/bigconsole/components/datasink/DataSinkDataViewer.js.map +1 -1
  64. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +79 -56
  65. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js.map +1 -1
  66. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +75 -65
  67. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js.map +1 -1
  68. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js +1 -1
  69. package/dist/bigconsole/components/datasink/DataSinkStatusBadge.js.map +1 -1
  70. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js +20 -19
  71. package/dist/bigconsole/components/datasink/DataSinkTableViewer.js.map +1 -1
  72. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js +127 -171
  73. package/dist/bigconsole/components/datasink/ExportDataSinkDialog.js.map +1 -1
  74. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +263 -243
  75. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js.map +1 -1
  76. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js +65 -66
  77. package/dist/bigconsole/components/datasink/LinkedParsersPanel.js.map +1 -1
  78. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js +121 -127
  79. package/dist/bigconsole/components/datasink/LinkedWorkflowsPanel.js.map +1 -1
  80. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +33 -26
  81. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js.map +1 -1
  82. package/dist/bigconsole/components/datasink/SetupStateBadge.js +3 -3
  83. package/dist/bigconsole/components/datasink/SetupStateBadge.js.map +1 -1
  84. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js +95 -95
  85. package/dist/bigconsole/components/datasink/WorkflowStatusPanel.js.map +1 -1
  86. package/dist/bigconsole/components/parser/DataSinkSelector.js +154 -123
  87. package/dist/bigconsole/components/parser/DataSinkSelector.js.map +1 -1
  88. package/dist/bigconsole/components/parser/ExpressionEditor.js +3 -3
  89. package/dist/bigconsole/components/parser/ExpressionEditor.js.map +1 -1
  90. package/dist/bigconsole/components/parser/ImportParserDialog.js +235 -275
  91. package/dist/bigconsole/components/parser/ImportParserDialog.js.map +1 -1
  92. package/dist/bigconsole/components/parser/ParserCard.js +133 -114
  93. package/dist/bigconsole/components/parser/ParserCard.js.map +1 -1
  94. package/dist/bigconsole/components/parser/ParserSelector.js +191 -174
  95. package/dist/bigconsole/components/parser/ParserSelector.js.map +1 -1
  96. package/dist/bigconsole/components/parser/ParserStatusBadge.js +2 -2
  97. package/dist/bigconsole/components/parser/ParserStatusBadge.js.map +1 -1
  98. package/dist/bigconsole/components/parser/ParserTypeBadge.js +4 -4
  99. package/dist/bigconsole/components/parser/ParserTypeBadge.js.map +1 -1
  100. package/dist/bigconsole/components/pipeline/PipelineCard.js +134 -89
  101. package/dist/bigconsole/components/pipeline/PipelineCard.js.map +1 -1
  102. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js +77 -64
  103. package/dist/bigconsole/components/pipeline/PipelineDeleteDialog.js.map +1 -1
  104. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js +7 -10
  105. package/dist/bigconsole/components/pipeline/PipelineStatusBadge.js.map +1 -1
  106. package/dist/bigconsole/components/preview/AiPreviewContent.js +31 -32
  107. package/dist/bigconsole/components/preview/AiPreviewContent.js.map +1 -1
  108. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +152 -106
  109. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js.map +1 -1
  110. package/dist/bigconsole/components/preview/AiPreviewPanel.js +193 -152
  111. package/dist/bigconsole/components/preview/AiPreviewPanel.js.map +1 -1
  112. package/dist/bigconsole/components/preview/previewShared.js +41 -23
  113. package/dist/bigconsole/components/preview/previewShared.js.map +1 -1
  114. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +342 -308
  115. package/dist/bigconsole/components/widgets/ActionConfigDialog.js.map +1 -1
  116. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +262 -238
  117. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js.map +1 -1
  118. package/dist/bigconsole/components/widgets/PropertiesPanel.js +783 -867
  119. package/dist/bigconsole/components/widgets/PropertiesPanel.js.map +1 -1
  120. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js +7 -5
  121. package/dist/bigconsole/components/widgets/WidgetErrorBoundary.js.map +1 -1
  122. package/dist/bigconsole/components/widgets/WidgetHeader.js +7 -8
  123. package/dist/bigconsole/components/widgets/WidgetHeader.js.map +1 -1
  124. package/dist/bigconsole/components/widgets/WidgetRegistry.js +4 -4
  125. package/dist/bigconsole/components/widgets/WidgetRegistry.js.map +1 -1
  126. package/dist/bigconsole/components/widgets/WidgetWrapper.js +8 -7
  127. package/dist/bigconsole/components/widgets/WidgetWrapper.js.map +1 -1
  128. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js +1 -1
  129. package/dist/bigconsole/components/widgets/adaptive-card/AdaptiveCardWidget.js.map +1 -1
  130. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +2 -2
  131. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js.map +1 -1
  132. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +11 -5
  133. package/dist/bigconsole/components/widgets/chart/ChartConfig.js.map +1 -1
  134. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +19 -15
  135. package/dist/bigconsole/components/widgets/comments/WidgetComments.js.map +1 -1
  136. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +154 -102
  137. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js.map +1 -1
  138. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js +36 -32
  139. package/dist/bigconsole/components/widgets/gauge/CircularGauge.js.map +1 -1
  140. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +85 -60
  141. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js.map +1 -1
  142. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js +64 -35
  143. package/dist/bigconsole/components/widgets/gauge/GaugeWidget.js.map +1 -1
  144. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js +46 -45
  145. package/dist/bigconsole/components/widgets/gauge/LinearGauge.js.map +1 -1
  146. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +35 -24
  147. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js.map +1 -1
  148. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +2 -2
  149. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js.map +1 -1
  150. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +4 -4
  151. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js.map +1 -1
  152. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js +153 -90
  153. package/dist/bigconsole/components/widgets/kpi-comparison/KPIComparisonWidget.js.map +1 -1
  154. package/dist/bigconsole/components/widgets/list/ListConfig.js +8 -2
  155. package/dist/bigconsole/components/widgets/list/ListConfig.js.map +1 -1
  156. package/dist/bigconsole/components/widgets/list/ListItem.js +1 -1
  157. package/dist/bigconsole/components/widgets/list/ListItem.js.map +1 -1
  158. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js +1 -1
  159. package/dist/bigconsole/components/widgets/map-widget/MapWidget.js.map +1 -1
  160. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +14 -4
  161. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js.map +1 -1
  162. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js +112 -89
  163. package/dist/bigconsole/components/widgets/metric-card/MetricCardWidget.js.map +1 -1
  164. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +21 -13
  165. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js.map +1 -1
  166. package/dist/bigconsole/components/widgets/metric-card/index.js +4 -4
  167. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +3 -3
  168. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js.map +1 -1
  169. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +34 -25
  170. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js.map +1 -1
  171. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js +129 -114
  172. package/dist/bigconsole/components/widgets/progress/ProgressWidget.js.map +1 -1
  173. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js +3 -3
  174. package/dist/bigconsole/components/widgets/retention/RetentionWidget.js.map +1 -1
  175. package/dist/bigconsole/components/widgets/states/EmptyState.js +6 -4
  176. package/dist/bigconsole/components/widgets/states/EmptyState.js.map +1 -1
  177. package/dist/bigconsole/components/widgets/states/ErrorState.js +7 -5
  178. package/dist/bigconsole/components/widgets/states/ErrorState.js.map +1 -1
  179. package/dist/bigconsole/components/widgets/states/LoadingState.js +5 -4
  180. package/dist/bigconsole/components/widgets/states/LoadingState.js.map +1 -1
  181. package/dist/bigconsole/components/widgets/table/TableConfig.js +10 -4
  182. package/dist/bigconsole/components/widgets/table/TableConfig.js.map +1 -1
  183. package/dist/bigconsole/components/widgets/table/TableHeader.js +1 -1
  184. package/dist/bigconsole/components/widgets/table/TableHeader.js.map +1 -1
  185. package/dist/bigconsole/components/widgets/table/TableWidget.js +1 -1
  186. package/dist/bigconsole/components/widgets/table/TableWidget.js.map +1 -1
  187. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +1 -1
  188. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js.map +1 -1
  189. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js +3 -3
  190. package/dist/bigconsole/components/widgets/timeline/TimelineWidget.js.map +1 -1
  191. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js +2 -2
  192. package/dist/bigconsole/components/widgets/utils/conditionalFormat.js.map +1 -1
  193. package/dist/bigconsole/components/widgets/utils/targetProgress.js +13 -0
  194. package/dist/bigconsole/components/widgets/utils/targetProgress.js.map +1 -0
  195. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +112 -85
  196. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js.map +1 -1
  197. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js +28 -20
  198. package/dist/bigconsole/components/widgets/widget-actions/WidgetActions.js.map +1 -1
  199. package/dist/bigconsole/components/workflow/WorkflowCard.js +92 -77
  200. package/dist/bigconsole/components/workflow/WorkflowCard.js.map +1 -1
  201. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js +70 -51
  202. package/dist/bigconsole/components/workflow/WorkflowDeleteDialog.js.map +1 -1
  203. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js +16 -17
  204. package/dist/bigconsole/components/workflow/WorkflowStatusBadge.js.map +1 -1
  205. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +6 -4
  206. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js.map +1 -1
  207. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +360 -338
  208. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js.map +1 -1
  209. package/dist/bigconsole/hooks/useModalFocusTrap.js +53 -0
  210. package/dist/bigconsole/hooks/useModalFocusTrap.js.map +1 -0
  211. package/dist/bigconsole/pages/DashboardBuilderPage.js +209 -203
  212. package/dist/bigconsole/pages/DashboardBuilderPage.js.map +1 -1
  213. package/dist/bigconsole/pages/DashboardViewPage.js +126 -120
  214. package/dist/bigconsole/pages/DashboardViewPage.js.map +1 -1
  215. package/dist/bigconsole/pages/DashboardsPage.js +838 -800
  216. package/dist/bigconsole/pages/DashboardsPage.js.map +1 -1
  217. package/dist/bigconsole/pages/DataParsersPage.js +263 -315
  218. package/dist/bigconsole/pages/DataParsersPage.js.map +1 -1
  219. package/dist/bigconsole/pages/DataSinkBuilderPage.js +301 -341
  220. package/dist/bigconsole/pages/DataSinkBuilderPage.js.map +1 -1
  221. package/dist/bigconsole/pages/DataSinkViewPage.js +346 -339
  222. package/dist/bigconsole/pages/DataSinkViewPage.js.map +1 -1
  223. package/dist/bigconsole/pages/DataSinksPage.js +356 -458
  224. package/dist/bigconsole/pages/DataSinksPage.js.map +1 -1
  225. package/dist/bigconsole/pages/DataSourcesPage.js +7 -2
  226. package/dist/bigconsole/pages/DataSourcesPage.js.map +1 -1
  227. package/dist/bigconsole/pages/HomePage.js +186 -193
  228. package/dist/bigconsole/pages/HomePage.js.map +1 -1
  229. package/dist/bigconsole/pages/InsightsPage.js +887 -740
  230. package/dist/bigconsole/pages/InsightsPage.js.map +1 -1
  231. package/dist/bigconsole/pages/ParserBuilderPage.js +679 -637
  232. package/dist/bigconsole/pages/ParserBuilderPage.js.map +1 -1
  233. package/dist/bigconsole/pages/ParserViewPage.js +368 -342
  234. package/dist/bigconsole/pages/ParserViewPage.js.map +1 -1
  235. package/dist/bigconsole/pages/PipelineBuilderPage.js +537 -444
  236. package/dist/bigconsole/pages/PipelineBuilderPage.js.map +1 -1
  237. package/dist/bigconsole/pages/PipelineViewPage.js +412 -377
  238. package/dist/bigconsole/pages/PipelineViewPage.js.map +1 -1
  239. package/dist/bigconsole/pages/PipelinesPage.js +248 -298
  240. package/dist/bigconsole/pages/PipelinesPage.js.map +1 -1
  241. package/dist/bigconsole/pages/WidgetDemoPage.js +251 -153
  242. package/dist/bigconsole/pages/WidgetDemoPage.js.map +1 -1
  243. package/dist/bigconsole/pages/WorkflowViewPage.js +381 -371
  244. package/dist/bigconsole/pages/WorkflowViewPage.js.map +1 -1
  245. package/dist/bigconsole/pages/WorkflowsPage.js +171 -286
  246. package/dist/bigconsole/pages/WorkflowsPage.js.map +1 -1
  247. package/package.json +1 -1
@@ -1,132 +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 ee } from "../../utils/nativeBridge.js";
9
- import te from "../components/workflow/WorkflowStatusBadge.js";
10
- import c from "../components/workflow/WorkflowDeleteDialog.js";
11
- import { memo as l, useCallback as u, useEffect as d, useState as f } from "react";
12
- import { useParams as ne } from "react-router";
13
- import { AccessDenied as re, PermissionButton as p } from "@burdenoff/fe-libs/shared/components";
14
- import { usePermissions as m } from "@burdenoff/fe-libs/shared/providers/shell";
15
- import { useI18n as h } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
16
- import { GlassCard as ie, IllustratedEmptyState as g, NextSteps as ae, PagePurpose as oe } from "@burdenoff/fe-libs/ui";
17
- import { Fragment as _, jsx as v, jsxs as y } from "react/jsx-runtime";
18
- import { WorkflowBuilder as b } from "@burdenoff/fluidgrids-fe-sdk";
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";
19
22
  import { formatDistanceToNow as x } from "date-fns";
20
23
  //#region src/bigconsole/pages/WorkflowViewPage.tsx
21
- var S = ({ className: e }) => /* @__PURE__ */ v("svg", {
24
+ var fe = ({ className: e }) => /* @__PURE__ */ y("svg", {
22
25
  className: e,
23
26
  fill: "none",
24
27
  stroke: "currentColor",
25
28
  viewBox: "0 0 24 24",
26
- children: /* @__PURE__ */ v("path", {
29
+ children: /* @__PURE__ */ y("path", {
27
30
  strokeLinecap: "round",
28
31
  strokeLinejoin: "round",
29
32
  strokeWidth: 2,
30
33
  d: "M15 19l-7-7 7-7"
31
34
  })
32
- }), C = ({ className: e }) => /* @__PURE__ */ v("svg", {
35
+ }), pe = ({ className: e }) => /* @__PURE__ */ y("svg", {
33
36
  className: e,
34
37
  fill: "none",
35
38
  stroke: "currentColor",
36
39
  viewBox: "0 0 24 24",
37
- children: /* @__PURE__ */ v("path", {
40
+ children: /* @__PURE__ */ y("path", {
38
41
  strokeLinecap: "round",
39
42
  strokeLinejoin: "round",
40
43
  strokeWidth: 2,
41
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"
42
45
  })
43
- }), se = ({ className: e }) => /* @__PURE__ */ v("svg", {
46
+ }), me = ({ className: e }) => /* @__PURE__ */ y("svg", {
44
47
  className: e,
45
48
  fill: "none",
46
49
  stroke: "currentColor",
47
50
  viewBox: "0 0 24 24",
48
- children: /* @__PURE__ */ v("path", {
51
+ children: /* @__PURE__ */ y("path", {
49
52
  strokeLinecap: "round",
50
53
  strokeLinejoin: "round",
51
54
  strokeWidth: 2,
52
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"
53
56
  })
54
- }), ce = ({ className: e }) => /* @__PURE__ */ y("svg", {
57
+ }), he = ({ className: e }) => /* @__PURE__ */ b("svg", {
55
58
  className: e,
56
59
  fill: "none",
57
60
  stroke: "currentColor",
58
61
  viewBox: "0 0 24 24",
59
- children: [/* @__PURE__ */ v("path", {
62
+ children: [/* @__PURE__ */ y("path", {
60
63
  strokeLinecap: "round",
61
64
  strokeLinejoin: "round",
62
65
  strokeWidth: 2,
63
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"
64
- }), /* @__PURE__ */ v("path", {
67
+ }), /* @__PURE__ */ y("path", {
65
68
  strokeLinecap: "round",
66
69
  strokeLinejoin: "round",
67
70
  strokeWidth: 2,
68
71
  d: "M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
69
72
  })]
70
- }), le = ({ className: e }) => /* @__PURE__ */ v("svg", {
73
+ }), ge = ({ className: e }) => /* @__PURE__ */ y("svg", {
71
74
  className: e,
72
75
  fill: "none",
73
76
  stroke: "currentColor",
74
77
  viewBox: "0 0 24 24",
75
- children: /* @__PURE__ */ v("path", {
78
+ children: /* @__PURE__ */ y("path", {
76
79
  strokeLinecap: "round",
77
80
  strokeLinejoin: "round",
78
81
  strokeWidth: 2,
79
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"
80
83
  })
81
- }), ue = ({ className: e }) => /* @__PURE__ */ v("svg", {
84
+ }), _e = ({ className: e }) => /* @__PURE__ */ y("svg", {
82
85
  className: e,
83
86
  fill: "none",
84
87
  stroke: "currentColor",
85
88
  viewBox: "0 0 24 24",
86
- children: /* @__PURE__ */ v("path", {
89
+ children: /* @__PURE__ */ y("path", {
87
90
  strokeLinecap: "round",
88
91
  strokeLinejoin: "round",
89
92
  strokeWidth: 2,
90
93
  d: "M5 13l4 4L19 7"
91
94
  })
92
- }), de = ({ className: e }) => /* @__PURE__ */ v("svg", {
95
+ }), ve = ({ className: e }) => /* @__PURE__ */ y("svg", {
93
96
  className: e,
94
97
  fill: "none",
95
98
  stroke: "currentColor",
96
99
  viewBox: "0 0 24 24",
97
- children: /* @__PURE__ */ v("path", {
100
+ children: /* @__PURE__ */ y("path", {
98
101
  strokeLinecap: "round",
99
102
  strokeLinejoin: "round",
100
103
  strokeWidth: 2,
101
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"
102
105
  })
103
- }), fe = ({ className: e }) => /* @__PURE__ */ v("svg", {
106
+ }), ye = ({ className: e }) => /* @__PURE__ */ y("svg", {
104
107
  className: e,
105
108
  fill: "none",
106
109
  stroke: "currentColor",
107
110
  viewBox: "0 0 24 24",
108
- children: /* @__PURE__ */ v("path", {
111
+ children: /* @__PURE__ */ y("path", {
109
112
  strokeLinecap: "round",
110
113
  strokeLinejoin: "round",
111
114
  strokeWidth: 2,
112
115
  d: "M19 9l-7 7-7-7"
113
116
  })
114
- }), w = l(function() {
115
- let l = e(), { t: w } = h(), { workflowId: T } = ne(), { apiGatewayUrl: pe, authToken: me, workspaceId: he } = r(), { hasPermission: E, isLoading: D } = m(), O = E(i.WORKFLOW_READ), k = E(i.WORKFLOW_UPDATE);
116
- E(i.WORKFLOW_DELETE);
117
- let A = E(i.WORKFLOW_EXECUTE), [j, M] = f(null), [N, P] = f(!1), [, F] = f(!1), [I, L] = f(!1), [R, z] = f(!1), [B, V] = f(!1), [ge, H] = f(!1), [U, W] = f(null), { loading: _e, error: G, fetchWorkflow: K, deleteWorkflow: q, executeWorkflow: J, pollWorkflowExecution: Y } = t({ skipFetch: !0 });
118
- d(() => {
119
- if (!T) {
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) {
120
123
  H(!0);
121
124
  return;
122
125
  }
123
- let e = !1, t = async (r) => {
126
+ let e = !1, t = async (n) => {
124
127
  try {
125
- let i = await K(T);
128
+ let r = await K(C);
126
129
  if (e) return;
127
- i ? (M(i), H(!0)) : r === 0 ? setTimeout(() => {
130
+ r ? (N(r), H(!0)) : n === 0 ? setTimeout(() => {
128
131
  e || t(1);
129
- }, n) : H(!0);
132
+ }, te) : H(!0);
130
133
  } catch {
131
134
  e || H(!0);
132
135
  }
@@ -134,32 +137,32 @@ var S = ({ className: e }) => /* @__PURE__ */ v("svg", {
134
137
  return t(0), () => {
135
138
  e = !0;
136
139
  };
137
- }, [T, K]);
138
- let X = u(() => {
139
- l("/workflows");
140
- }, [l]), Z = u(() => {
141
- l(`/workflows/${T}/edit`);
142
- }, [l, T]), ve = u(async () => {
143
- if (T) {
144
- 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);
145
148
  try {
146
- await q(T) ? (a() && s("success"), l("/workflows")) : a() && s("error");
149
+ await q(C) ? (s() && l("success"), u("/workflows")) : s() && l("error");
147
150
  } catch {
148
- a() && s("error");
151
+ s() && l("error");
149
152
  } finally {
150
- F(!1), P(!1);
153
+ I(!1), F(!1);
151
154
  }
152
155
  }
153
156
  }, [
154
- T,
157
+ C,
155
158
  q,
156
- l
157
- ]), Q = u(async () => {
158
- if (!T) return;
159
- L(!0), W(null);
159
+ u
160
+ ]), Z = d(async () => {
161
+ if (!C) return;
162
+ R(!0), W(null);
160
163
  let e = Date.now();
161
164
  try {
162
- let t = await J(T);
165
+ let t = await J(C);
163
166
  if (t) {
164
167
  let n = Date.now() - e;
165
168
  t.externalWorkflowId ? (W({
@@ -167,22 +170,22 @@ var S = ({ className: e }) => /* @__PURE__ */ v("svg", {
167
170
  output: {
168
171
  externalWorkflowId: t.externalWorkflowId,
169
172
  executionCount: t.executionCount,
170
- status: w("bigconsole.workflows.view.executionTriggeredPolling", "Triggered — polling for completion...")
173
+ status: S("bigconsole.workflows.view.executionTriggeredPolling", "Triggered — polling for completion...")
171
174
  },
172
175
  error: null,
173
176
  executionTimeMs: n
174
- }), Y(T, {
177
+ }), Y(C, {
175
178
  intervalMs: 3e3,
176
179
  timeoutMs: 12e4,
177
180
  onProgress: (e) => {
178
- M(e);
181
+ N(e);
179
182
  }
180
183
  }).then((t) => {
181
- t && (M(t), W((n) => n && {
184
+ t && (N(t), W((n) => n && {
182
185
  ...n,
183
186
  output: {
184
187
  ...n.output || {},
185
- status: t.status === "error" ? w("bigconsole.workflows.view.executionStatusFailed", "Failed") : w("bigconsole.workflows.view.executionStatusCompleted", "Completed"),
188
+ status: t.status === "error" ? S("bigconsole.workflows.view.executionStatusFailed", "Failed") : S("bigconsole.workflows.view.executionStatusCompleted", "Completed"),
186
189
  executionCount: t.executionCount,
187
190
  lastExecutedAt: t.lastExecutedAt
188
191
  },
@@ -193,381 +196,388 @@ var S = ({ className: e }) => /* @__PURE__ */ v("svg", {
193
196
  output: {
194
197
  executionCount: t.executionCount,
195
198
  lastExecutedAt: t.lastExecutedAt,
196
- status: w("bigconsole.workflows.view.executionStatusCompleted", "Completed")
199
+ status: S("bigconsole.workflows.view.executionStatusCompleted", "Completed")
197
200
  },
198
201
  error: null,
199
202
  executionTimeMs: n
200
203
  });
201
- let r = await K(T);
202
- r && M(r);
204
+ let r = await K(C);
205
+ r && N(r);
203
206
  }
204
207
  } catch (t) {
205
208
  W({
206
209
  success: !1,
207
210
  output: null,
208
- error: t instanceof Error ? t.message : w("bigconsole.workflows.errors.executionFailed", "Execution failed"),
211
+ error: t instanceof Error ? t.message : S("bigconsole.workflows.errors.executionFailed", "Execution failed"),
209
212
  executionTimeMs: Date.now() - e
210
213
  });
211
214
  } finally {
212
- L(!1);
215
+ R(!1);
213
216
  }
214
217
  }, [
215
- T,
218
+ C,
216
219
  J,
217
220
  K,
218
221
  Y,
219
- w
220
- ]), ye = u(async () => {
221
- if (j?.webhookUrl) try {
222
- await o(j.webhookUrl), z(!0), a() && ee(w("bigconsole.workflows.view.webhookCopiedToast", "Webhook copied")), setTimeout(() => z(!1), 2e3);
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);
223
226
  } catch {}
224
- }, [j?.webhookUrl, w]), be = u((e) => {
225
- l(`/datasinks/${e}`);
226
- }, [l]);
227
- if (!ge || _e && !j || D) return /* @__PURE__ */ v("div", {
228
- className: "p-6 flex items-center justify-center min-h-[400px]",
229
- children: /* @__PURE__ */ y("svg", {
230
- className: "w-8 h-8 text-action-primary-bg animate-spin",
231
- fill: "none",
232
- viewBox: "0 0 24 24",
233
- children: [/* @__PURE__ */ v("circle", {
234
- className: "opacity-25",
235
- cx: "12",
236
- cy: "12",
237
- r: "10",
238
- stroke: "currentColor",
239
- strokeWidth: "4"
240
- }), /* @__PURE__ */ v("path", {
241
- className: "opacity-75",
242
- fill: "currentColor",
243
- 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"
244
- })]
245
- })
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")]
246
234
  });
247
- if (!O) return /* @__PURE__ */ v(re, {
248
- title: w("bigconsole.workflows.errors.accessDeniedTitle", "Access Denied"),
249
- description: w("bigconsole.workflows.errors.accessDeniedViewDescription", "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" })
250
238
  });
251
- if (G || !j) return /* @__PURE__ */ y("div", {
252
- className: "p-6",
253
- children: [/* @__PURE__ */ y("button", {
254
- type: "button",
255
- onClick: X,
256
- className: "inline-flex items-center gap-1 text-sm text-text-secondary hover:text-text-primary mb-4",
257
- children: [/* @__PURE__ */ v(S, { className: "w-4 h-4" }), w("bigconsole.workflows.view.backToWorkflows", "Back to Workflows")]
258
- }), /* @__PURE__ */ v(g, {
259
- illustration: "empty-data",
260
- title: w("bigconsole.workflows.view.notFoundTitle", "Workflow not found"),
261
- description: G?.message || w("bigconsole.workflows.view.notFoundDescription", "The workflow you are looking for does not exist.")
262
- })]
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.")
263
242
  });
264
- let $ = j.dataSinkLinks?.length || 0, xe = [
265
- ...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 ? [{
266
259
  id: "execute",
267
- label: w("bigconsole.workflows.view.nextStepExecuteLabel", "Run the workflow"),
268
- description: w("bigconsole.workflows.view.nextStepExecuteDescription", "Trigger an execution to pull fresh data now."),
269
- 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
270
263
  }] : [],
271
264
  {
272
265
  id: "design",
273
- label: w("bigconsole.workflows.view.nextStepDesignLabel", "Inspect the design"),
274
- description: w("bigconsole.workflows.view.nextStepDesignDescription", "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."),
275
268
  onClick: () => V(!0)
276
269
  },
277
- ...k ? [{
270
+ ...A ? [{
278
271
  id: "edit",
279
- label: w("bigconsole.workflows.view.nextStepEditLabel", "Edit in the builder"),
280
- description: w("bigconsole.workflows.view.nextStepEditDescription", "Open the FluidGrids visual builder to change the flow."),
281
- 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
282
275
  }] : [],
283
276
  {
284
277
  id: "sinks",
285
- label: w("bigconsole.workflows.view.nextStepSinksLabel", "Check the linked data sinks"),
286
- description: w("bigconsole.workflows.view.nextStepSinksDescription", "See where this workflow writes its output."),
287
- 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")
288
281
  }
289
282
  ];
290
- return /* @__PURE__ */ y("div", {
291
- className: "p-6 max-w-5xl mx-auto",
292
- children: [
293
- /* @__PURE__ */ y("div", {
294
- className: "mb-8",
295
- children: [/* @__PURE__ */ y("button", {
296
- type: "button",
297
- onClick: X,
298
- className: "inline-flex items-center gap-1 text-sm text-text-secondary hover:text-text-primary mb-4",
299
- children: [/* @__PURE__ */ v(S, { className: "w-4 h-4" }), w("bigconsole.workflows.view.backToWorkflows", "Back to Workflows")]
300
- }), /* @__PURE__ */ y("div", {
301
- className: "flex items-start justify-between",
302
- children: [/* @__PURE__ */ y("div", { children: [
303
- /* @__PURE__ */ y("div", {
304
- className: "flex items-center gap-3 mb-2",
305
- children: [/* @__PURE__ */ v("h1", {
306
- className: "text-2xl font-bold text-text-primary",
307
- children: j.name
308
- }), /* @__PURE__ */ v(te, { status: j.status })]
309
- }),
310
- /* @__PURE__ */ v("p", {
311
- className: "text-sm text-text-secondary font-mono",
312
- children: j.key
313
- }),
314
- j.externalWorkflowId && /* @__PURE__ */ y("p", {
315
- className: "text-xs text-text-tertiary mt-1",
316
- children: [
317
- w("bigconsole.workflows.view.fluidGridsIdLabel", "FluidGrids ID:"),
318
- " ",
319
- /* @__PURE__ */ v("span", {
320
- className: "font-mono",
321
- children: j.externalWorkflowId
322
- })
323
- ]
324
- })
325
- ] }), /* @__PURE__ */ y("div", {
326
- 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",
327
296
  children: [
328
- /* @__PURE__ */ v(p, {
329
- permission: i.WORKFLOW_EXECUTE,
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",
322
+ children: [
323
+ /* @__PURE__ */ y(h, {
324
+ permission: o.WORKFLOW_EXECUTE,
330
325
  deniedBehavior: "disable",
331
- children: /* @__PURE__ */ y("button", {
332
- type: "button",
333
- onClick: Q,
334
- disabled: I,
335
- 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",
336
- children: [/* @__PURE__ */ v(ce, { className: "w-4 h-4" }), I ? w("bigconsole.workflows.actions.executing", "Executing...") : w("bigconsole.workflows.actions.execute", "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")]
337
331
  })
338
332
  }),
339
- /* @__PURE__ */ v(p, {
340
- permission: i.WORKFLOW_UPDATE,
333
+ /* @__PURE__ */ y(h, {
334
+ permission: o.WORKFLOW_UPDATE,
341
335
  deniedBehavior: "disable",
342
- children: /* @__PURE__ */ y("button", {
343
- type: "button",
344
- onClick: Z,
345
- 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",
346
- children: [/* @__PURE__ */ v(C, { className: "w-4 h-4" }), w("bigconsole.workflows.actions.edit", "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")]
347
341
  })
348
342
  }),
349
- /* @__PURE__ */ v(p, {
350
- permission: i.WORKFLOW_DELETE,
343
+ /* @__PURE__ */ y(h, {
344
+ permission: o.WORKFLOW_DELETE,
351
345
  deniedBehavior: "hide",
352
- children: /* @__PURE__ */ y("button", {
353
- type: "button",
354
- onClick: () => P(!0),
355
- 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",
356
- children: [/* @__PURE__ */ v(se, { className: "w-4 h-4" }), w("bigconsole.workflows.actions.delete", "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")]
357
352
  })
358
353
  })
359
354
  ]
360
355
  })]
361
356
  })]
362
357
  }),
363
- /* @__PURE__ */ v(oe, {
364
- className: "mb-6",
365
- children: w("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.")
366
- }),
367
- /* @__PURE__ */ v(ae, {
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, {
368
360
  storageKey: "bigconsole-workflow-view",
369
- steps: xe
370
- }),
371
- U && /* @__PURE__ */ y("div", {
372
- 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"}`,
373
- children: [
374
- /* @__PURE__ */ y("div", {
375
- className: "flex items-center justify-between mb-2",
376
- children: [/* @__PURE__ */ v("h3", {
377
- className: "text-sm font-semibold text-text-primary",
378
- children: U.success ? w("bigconsole.workflows.view.executionResultTriggered", "Execution Triggered") : w("bigconsole.workflows.view.executionResultFailed", "Execution Failed")
379
- }), /* @__PURE__ */ y("span", {
380
- className: "text-xs text-text-secondary",
381
- children: [U.executionTimeMs, "ms"]
382
- })]
383
- }),
384
- U.error ? /* @__PURE__ */ v("p", {
385
- className: "text-sm text-status-error-text",
386
- children: U.error
387
- }) : /* @__PURE__ */ v("pre", {
388
- className: "text-xs text-text-secondary font-mono bg-bg-sunken p-2 rounded overflow-auto max-h-[200px]",
389
- children: JSON.stringify(U.output, null, 2)
390
- }),
391
- U.runId && /* @__PURE__ */ y("p", {
392
- className: "text-xs text-text-tertiary mt-2",
393
- children: [
394
- w("bigconsole.workflows.view.runIdLabel", "Run ID:"),
395
- " ",
396
- /* @__PURE__ */ v("span", {
397
- className: "font-mono",
398
- children: U.runId
399
- })
400
- ]
401
- })
402
- ]
361
+ steps: Oe
403
362
  }),
404
- /* @__PURE__ */ y("div", {
405
- className: "grid grid-cols-1 md:grid-cols-2 gap-6 mb-8",
406
- children: [/* @__PURE__ */ y("div", {
407
- className: "bg-bg-surface border border-border-default rounded-lg p-4",
408
- children: [/* @__PURE__ */ v("h3", {
409
- className: "text-sm font-medium text-text-secondary mb-2",
410
- children: w("bigconsole.workflows.view.descriptionLabel", "Description")
411
- }), /* @__PURE__ */ v("p", {
412
- className: "text-sm text-text-primary",
413
- children: j.description || w("bigconsole.workflows.view.noDescription", "No description")
414
- })]
415
- }), /* @__PURE__ */ y(ie, {
416
- treatment: "glass",
417
- glow: !0,
418
- className: "p-4",
419
- children: [/* @__PURE__ */ v("h3", {
420
- className: "text-sm font-medium text-text-secondary mb-2",
421
- children: w("bigconsole.workflows.view.executionStatsLabel", "Execution Stats")
422
- }), /* @__PURE__ */ y("div", {
423
- className: "grid grid-cols-2 gap-4",
424
- children: [/* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
425
- className: "text-2xl font-bold text-text-primary",
426
- children: j.executionCount
427
- }), /* @__PURE__ */ v("p", {
428
- className: "text-xs text-text-secondary",
429
- children: w("bigconsole.workflows.view.totalExecutionsLabel", "Total Executions")
430
- })] }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
431
- className: "text-sm font-medium text-text-primary",
432
- children: j.lastExecutedAt ? x(new Date(j.lastExecutedAt), { addSuffix: !0 }) : w("bigconsole.workflows.view.never", "Never")
433
- }), /* @__PURE__ */ v("p", {
434
- className: "text-xs text-text-secondary",
435
- children: w("bigconsole.workflows.view.lastExecutedLabel", "Last Executed")
436
- })] })]
437
- })]
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",
386
+ children: U.runId
387
+ })
388
+ ]
438
389
  })]
439
390
  }),
440
- j.webhookUrl && /* @__PURE__ */ y("div", {
441
- className: "bg-bg-surface border border-border-default rounded-lg p-4 mb-8",
442
- children: [/* @__PURE__ */ v("h3", {
443
- className: "text-sm font-medium text-text-secondary mb-2",
444
- children: w("bigconsole.workflows.view.webhookUrlLabel", "Webhook URL")
445
- }), /* @__PURE__ */ y("div", {
446
- className: "flex items-center gap-2",
447
- children: [/* @__PURE__ */ v("code", {
448
- className: "flex-1 text-sm text-text-primary font-mono bg-bg-sunken px-3 py-2 rounded overflow-auto",
449
- children: j.webhookUrl
450
- }), /* @__PURE__ */ v("button", {
451
- type: "button",
452
- onClick: ye,
453
- className: "flex items-center gap-1 px-3 py-2 text-sm text-text-secondary hover:text-text-primary transition-colors",
454
- children: R ? /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(ue, { className: "w-4 h-4 text-status-success-text" }), w("bigconsole.workflows.actions.copied", "Copied!")] }) : /* @__PURE__ */ y(_, { children: [/* @__PURE__ */ v(le, { className: "w-4 h-4" }), w("bigconsole.workflows.actions.copy", "Copy")] })
455
- })]
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
+ })
456
430
  })]
457
431
  }),
458
- j.externalWorkflowId && /* @__PURE__ */ y("div", {
459
- className: "bg-bg-surface border border-border-default rounded-lg mb-8 overflow-hidden",
460
- children: [/* @__PURE__ */ y("button", {
461
- 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",
462
442
  onClick: () => V((e) => !e),
463
- 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",
464
- children: [/* @__PURE__ */ v("span", { children: w("bigconsole.workflows.view.designPreviewTitle", "Workflow Design Preview") }), /* @__PURE__ */ v(fe, { className: `w-4 h-4 text-text-secondary transition-transform ${B ? "rotate-180" : ""}` })]
465
- }), B && /* @__PURE__ */ v("div", {
466
- className: "border-t border-border-default",
467
- style: { height: "450px" },
468
- children: /* @__PURE__ */ v(b, {
469
- apiGatewayUrl: pe,
470
- workspaceId: he || "default",
471
- authToken: me,
472
- 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,
473
454
  readonly: !0,
474
455
  hideHeader: !0,
475
456
  className: "h-full"
476
457
  })
477
- })]
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
+ })
463
+ }),
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
+ })
478
479
  }),
479
- /* @__PURE__ */ y("div", {
480
- className: "bg-bg-surface border border-border-default rounded-lg p-4 mb-8",
481
- children: [/* @__PURE__ */ v("h3", {
482
- className: "text-sm font-medium text-text-secondary mb-4",
483
- children: w("bigconsole.workflows.view.linkedDataSinksTitle", "Linked DataSinks ({{count}})", { count: $ })
484
- }), $ === 0 ? /* @__PURE__ */ v(g, {
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(_, {
485
486
  illustration: "empty-generic",
486
- title: w("bigconsole.workflows.view.noDataSinksTitle", "No data sinks linked"),
487
- description: w("bigconsole.workflows.view.noDataSinksDescription", "This workflow has no data sinks linked yet — its output isn't being stored.")
488
- }) : /* @__PURE__ */ v("div", {
489
- className: "space-y-2",
490
- children: j.dataSinkLinks?.map((e) => /* @__PURE__ */ y("div", {
491
- className: "flex items-center justify-between px-3 py-2 bg-bg-sunken rounded-md",
492
- children: [/* @__PURE__ */ y("div", {
493
- className: "flex items-center gap-3",
494
- children: [/* @__PURE__ */ v(de, { className: "w-4 h-4 text-text-secondary" }), /* @__PURE__ */ y("div", { children: [/* @__PURE__ */ v("p", {
495
- className: "text-sm font-medium text-text-primary",
496
- children: e.dataSink?.name || e.dataSink?.key || e.dataSinkId
497
- }), e.dataSink?.key && /* @__PURE__ */ v("p", {
498
- className: "text-xs text-text-secondary font-mono",
499
- children: e.dataSink.key
500
- })] })]
501
- }), /* @__PURE__ */ y("div", {
502
- className: "flex items-center gap-4",
503
- children: [/* @__PURE__ */ y("div", {
504
- className: "flex items-center gap-2",
505
- children: [e.isEnabled ? /* @__PURE__ */ v("span", {
506
- className: "text-xs text-status-success-text",
507
- children: w("bigconsole.workflows.view.dataSinkEnabled", "Enabled")
508
- }) : /* @__PURE__ */ v("span", {
509
- className: "text-xs text-text-secondary",
510
- children: w("bigconsole.workflows.view.dataSinkDisabled", "Disabled")
511
- }), /* @__PURE__ */ v("span", {
512
- className: "text-xs text-text-secondary",
513
- children: w("bigconsole.workflows.view.dataSinkPriority", "Priority: {{priority}}", { 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
514
503
  })]
515
- }), e.dataSink && /* @__PURE__ */ v("button", {
516
- type: "button",
517
- onClick: () => be(e.dataSinkId),
518
- className: "text-xs text-action-primary-bg hover:underline",
519
- children: w("bigconsole.workflows.actions.view", "View")
520
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
+ ]
521
526
  })]
522
527
  }, e.id))
523
- })]
524
- }),
525
- /* @__PURE__ */ y("div", {
526
- className: "grid grid-cols-1 md:grid-cols-2 gap-6",
527
- children: [/* @__PURE__ */ y("div", {
528
- className: "bg-bg-surface border border-border-default rounded-lg p-4",
529
- children: [
530
- /* @__PURE__ */ v("h3", {
531
- className: "text-sm font-medium text-text-secondary mb-2",
532
- children: w("bigconsole.workflows.view.createdLabel", "Created")
533
- }),
534
- /* @__PURE__ */ v("p", {
535
- className: "text-sm text-text-primary",
536
- children: x(new Date(j.createdAt), { addSuffix: !0 })
537
- }),
538
- /* @__PURE__ */ v("p", {
539
- className: "text-xs text-text-secondary",
540
- children: w("bigconsole.workflows.view.byAuthor", "by {{author}}", { author: j.createdBy })
541
- })
542
- ]
543
- }), /* @__PURE__ */ y("div", {
544
- className: "bg-bg-surface border border-border-default rounded-lg p-4",
545
- children: [
546
- /* @__PURE__ */ v("h3", {
547
- className: "text-sm font-medium text-text-secondary mb-2",
548
- children: w("bigconsole.workflows.view.lastUpdatedLabel", "Last Updated")
549
- }),
550
- /* @__PURE__ */ v("p", {
551
- className: "text-sm text-text-primary",
552
- children: x(new Date(j.updatedAt), { addSuffix: !0 })
553
- }),
554
- /* @__PURE__ */ v("p", {
555
- className: "text-xs text-text-secondary",
556
- children: w("bigconsole.workflows.view.byAuthor", "by {{author}}", { author: j.updatedBy || j.createdBy })
557
- })
558
- ]
559
- })]
528
+ })
560
529
  }),
561
- j && /* @__PURE__ */ v(c, {
562
- workflow: j,
563
- isOpen: N,
564
- onClose: () => P(!1),
565
- onConfirm: ve
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
+ })
566
571
  })
567
- ]
572
+ ] }), M && /* @__PURE__ */ y(ie, {
573
+ workflow: M,
574
+ isOpen: P,
575
+ onClose: () => F(!1),
576
+ onConfirm: we
577
+ })]
568
578
  });
569
579
  });
570
580
  //#endregion
571
- export { w as WorkflowViewPage };
581
+ export { S as WorkflowViewPage };
572
582
 
573
583
  //# sourceMappingURL=WorkflowViewPage.js.map