@burdenoff/microfe-bigconsole 2026.1011.10 → 2026.1012.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 (161) hide show
  1. package/README.md +19 -0
  2. package/dist/bigconsole/BigConsoleRoot.js +88 -82
  3. package/dist/bigconsole/BigConsoleRoutes.js +163 -136
  4. package/dist/bigconsole/assistant/assistantProduct.js +1 -4
  5. package/dist/bigconsole/assistant/pageContext.d.ts +0 -14
  6. package/dist/bigconsole/assistant/pageContext.js +1 -6
  7. package/dist/bigconsole/assistant/recordAdapters.js +26 -27
  8. package/dist/bigconsole/components/builder/inspector/DataBindingSection.js +31 -31
  9. package/dist/bigconsole/components/common/index.d.ts +0 -1
  10. package/dist/bigconsole/components/common/index.js +0 -1
  11. package/dist/bigconsole/components/dashboard/CreateDashboardDialog.js +44 -44
  12. package/dist/bigconsole/components/dashboard/DashboardCanvas.js +36 -36
  13. package/dist/bigconsole/components/dashboard/DashboardToolbar.js +59 -59
  14. package/dist/bigconsole/components/dashboard/DrilldownBreadcrumb.js +58 -57
  15. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterChip.js +30 -30
  16. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterEditor.js +41 -41
  17. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/FilterPresetSelector.js +34 -34
  18. package/dist/bigconsole/components/dashboard/GlobalFiltersBar/GlobalFiltersBar.js +34 -34
  19. package/dist/bigconsole/components/dashboard/ImportDashboardDialog.js +110 -110
  20. package/dist/bigconsole/components/dashboard/PublishToStoreDialog.js +21 -21
  21. package/dist/bigconsole/components/dashboard/SavedViewsDropdown/SavedViewsDropdown.js +46 -46
  22. package/dist/bigconsole/components/dashboard/ShareDialog/EmbedTab.js +164 -173
  23. package/dist/bigconsole/components/dashboard/ShareDialog/ShareDialog.js +101 -101
  24. package/dist/bigconsole/components/dashboard/TemplateInstallOptions.js +31 -31
  25. package/dist/bigconsole/components/dashboard/TemplateLayoutPreview.js +15 -15
  26. package/dist/bigconsole/components/dashboard/TemplatePicker/TemplatePicker.js +1 -1
  27. package/dist/bigconsole/components/dashboard/WidgetPalette.js +165 -163
  28. package/dist/bigconsole/components/datasink/AlertExecutionHistory.js +37 -37
  29. package/dist/bigconsole/components/datasink/AlertRuleEditor.js +66 -66
  30. package/dist/bigconsole/components/datasink/CacheTTLSelector.js +35 -35
  31. package/dist/bigconsole/components/datasink/DataSinkCard.js +50 -51
  32. package/dist/bigconsole/components/datasink/DataSinkDeleteDialog.js +18 -18
  33. package/dist/bigconsole/components/datasink/DataSinkRefreshDialog.js +20 -20
  34. package/dist/bigconsole/components/datasink/ImportDataGuideDialog.js +47 -47
  35. package/dist/bigconsole/components/datasink/ImportDataSinkDialog.js +91 -91
  36. package/dist/bigconsole/components/datasink/RefreshTypeSelector.js +35 -35
  37. package/dist/bigconsole/components/parser/DataSinkSelector.js +40 -40
  38. package/dist/bigconsole/components/parser/ImportParserDialog.js +120 -120
  39. package/dist/bigconsole/components/parser/ParserSelector.js +51 -51
  40. package/dist/bigconsole/components/pipeline/PipelineScopePicker.js +10 -10
  41. package/dist/bigconsole/components/preview/AiPreviewMiniPanel.js +76 -77
  42. package/dist/bigconsole/components/preview/AiPreviewPanel.js +95 -96
  43. package/dist/bigconsole/components/widgets/ActionConfigDialog.js +4 -4
  44. package/dist/bigconsole/components/widgets/DrilldownConfigPanel.js +93 -93
  45. package/dist/bigconsole/components/widgets/PropertiesPanel.js +499 -507
  46. package/dist/bigconsole/components/widgets/WidgetRegistry.js +0 -1
  47. package/dist/bigconsole/components/widgets/calendar/CalendarWidget.js +4 -4
  48. package/dist/bigconsole/components/widgets/chart/ChartConfig.js +48 -48
  49. package/dist/bigconsole/components/widgets/comments/WidgetComments.js +46 -46
  50. package/dist/bigconsole/components/widgets/custom/CustomWidget.js +73 -131
  51. package/dist/bigconsole/components/widgets/event-logs/EventLogViewer.js +61 -61
  52. package/dist/bigconsole/components/widgets/form/FormWidget.js +36 -36
  53. package/dist/bigconsole/components/widgets/gauge/GaugeConfig.js +42 -42
  54. package/dist/bigconsole/components/widgets/heatmap/HeatmapConfig.js +25 -25
  55. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.d.ts +28 -9
  56. package/dist/bigconsole/components/widgets/iframe-widget/IframeWidget.js +115 -42
  57. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.d.ts +20 -0
  58. package/dist/bigconsole/components/widgets/iframe-widget/framePolicy.js +10 -0
  59. package/dist/bigconsole/components/widgets/iframe-widget/index.d.ts +2 -1
  60. package/dist/bigconsole/components/widgets/iframe-widget/index.js +3 -2
  61. package/dist/bigconsole/components/widgets/kanban/KanbanWidget.js +4 -4
  62. package/dist/bigconsole/components/widgets/list/ListConfig.js +30 -30
  63. package/dist/bigconsole/components/widgets/metric-card/MetricCardConfig.js +38 -38
  64. package/dist/bigconsole/components/widgets/metric-card/SparklineChart.js +9 -9
  65. package/dist/bigconsole/components/widgets/metric-card/TrendIndicator.js +9 -9
  66. package/dist/bigconsole/components/widgets/pivot-table/PivotTableWidget.js +49 -49
  67. package/dist/bigconsole/components/widgets/progress/ProgressConfig.js +39 -39
  68. package/dist/bigconsole/components/widgets/table/TableConfig.js +73 -73
  69. package/dist/bigconsole/components/widgets/text-widget/TextWidget.js +110 -27
  70. package/dist/bigconsole/components/widgets/text-widget/textData.d.ts +6 -0
  71. package/dist/bigconsole/components/widgets/text-widget/textData.js +17 -14
  72. package/dist/bigconsole/components/widgets/webhook-config/WebhookConfigPanel.js +64 -64
  73. package/dist/bigconsole/components/workflow/WorkflowOpenGuard.js +15 -15
  74. package/dist/bigconsole/components/workflow/WorkflowSinkLinkForm.js +15 -15
  75. package/dist/bigconsole/context/BigConsoleContext.d.ts +10 -0
  76. package/dist/bigconsole/context/BigConsoleContext.js +47 -30
  77. package/dist/bigconsole/context/index.d.ts +1 -1
  78. package/dist/bigconsole/customWidget/CustomWidgetBuilderSheet.js +58 -49
  79. package/dist/bigconsole/customWidget/CustomWidgetProposalPanel.js +74 -72
  80. package/dist/bigconsole/customWidget/proposalPreview.d.ts +5 -0
  81. package/dist/bigconsole/customWidget/proposalPreview.js +31 -0
  82. package/dist/bigconsole/hooks/useDataSinkAlerts.d.ts +0 -23
  83. package/dist/bigconsole/hooks/useDataSinkAlerts.js +113 -138
  84. package/dist/bigconsole/hooks/useDataSinkOperations.d.ts +7 -0
  85. package/dist/bigconsole/hooks/useDataSinkOperations.js +109 -98
  86. package/dist/bigconsole/hooks/useDataSinkSubscription.js +0 -1
  87. package/dist/bigconsole/hooks/useDrilldown.js +68 -67
  88. package/dist/bigconsole/hooks/useExportDataSink.js +1 -1
  89. package/dist/bigconsole/hooks/useGlobalFilters.js +3 -3
  90. package/dist/bigconsole/hooks/useImportDataSink.js +102 -90
  91. package/dist/bigconsole/pages/AdminPage.js +130 -130
  92. package/dist/bigconsole/pages/DashboardBuilderPage.js +60 -72
  93. package/dist/bigconsole/pages/DashboardViewPage.js +235 -258
  94. package/dist/bigconsole/pages/DashboardsPage.js +221 -269
  95. package/dist/bigconsole/pages/DataParsersPage.js +157 -180
  96. package/dist/bigconsole/pages/DataSinkAlertsPage.js +55 -62
  97. package/dist/bigconsole/pages/DataSinkBuilderPage.js +318 -295
  98. package/dist/bigconsole/pages/DataSinkViewPage.js +256 -255
  99. package/dist/bigconsole/pages/DataSinksPage.js +216 -251
  100. package/dist/bigconsole/pages/DataSourcesPage.js +5 -5
  101. package/dist/bigconsole/pages/InsightsPage.js +265 -279
  102. package/dist/bigconsole/pages/OverviewPage.js +47 -47
  103. package/dist/bigconsole/pages/ParserBuilderPage.js +213 -229
  104. package/dist/bigconsole/pages/ParserViewPage.js +97 -97
  105. package/dist/bigconsole/pages/PipelineBuilderPage.js +214 -256
  106. package/dist/bigconsole/pages/PipelineViewPage.js +146 -146
  107. package/dist/bigconsole/pages/PipelinesPage.js +88 -107
  108. package/dist/bigconsole/pages/SettingsPage.js +173 -179
  109. package/dist/bigconsole/pages/WidgetDemoPage.js +42 -42
  110. package/dist/bigconsole/pages/WorkflowViewPage.js +1 -1
  111. package/dist/bigconsole/pages/WorkflowsPage.js +141 -141
  112. package/dist/bigconsole/providers/BigConsoleQuotaProvider.js +12 -12
  113. package/dist/bigconsole/renderers/adapters/AdaptiveCardRenderer.js +235 -122
  114. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.d.ts +6 -1
  115. package/dist/bigconsole/renderers/adapters/BlockKitRenderer.js +151 -151
  116. package/dist/bigconsole/renderers/adapters/CustomRenderer.js +46 -46
  117. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.d.ts +29 -0
  118. package/dist/bigconsole/renderers/adapters/adaptiveCardContent.js +51 -0
  119. package/dist/bigconsole/store/widgetStore.d.ts +0 -12
  120. package/dist/bigconsole/store/widgetStore.js +1 -3
  121. package/dist/bigconsole/types/index.d.ts +17 -2
  122. package/dist/bigconsole/utils/backendError.d.ts +0 -18
  123. package/dist/bigconsole/utils/dataSinkPayload.d.ts +48 -0
  124. package/dist/bigconsole/utils/dataSinkPayload.js +38 -0
  125. package/dist/bigconsole/utils/index.d.ts +2 -0
  126. package/dist/bigconsole/utils/safeUrl.d.ts +79 -0
  127. package/dist/bigconsole/utils/safeUrl.js +93 -0
  128. package/dist/bigconsole/utils/sanitizeHtml.d.ts +16 -0
  129. package/dist/bigconsole/utils/sanitizeHtml.js +67 -0
  130. package/dist/bigconsole/workflowOpen.js +14 -15
  131. package/dist/generated/wspace-operations.d.ts +138 -8
  132. package/dist/generated/wspace-operations.js +281 -240
  133. package/dist/node_modules/dompurify/dist/purify.es.js +800 -0
  134. package/package.json +9 -5
  135. package/dist/bigconsole/assistant/displayCopy.d.ts +0 -32
  136. package/dist/bigconsole/assistant/pageControls.d.ts +0 -81
  137. package/dist/bigconsole/assistant/pageControls.js +0 -169
  138. package/dist/bigconsole/assistant/previewControl.d.ts +0 -16
  139. package/dist/bigconsole/assistant/previewControl.js +0 -10
  140. package/dist/bigconsole/assistant/usePreviewControl.d.ts +0 -2
  141. package/dist/bigconsole/assistant/usePreviewControl.js +0 -20
  142. package/dist/bigconsole/components/common/SortBySelect.d.ts +0 -11
  143. package/dist/bigconsole/components/common/SortBySelect.js +0 -29
  144. package/dist/bigconsole/constants/backendErrors.js +0 -94
  145. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.d.ts +0 -14
  146. package/dist/bigconsole/hooks/useDashboardLayoutBaseline.js +0 -32
  147. package/dist/bigconsole/utils/backendError.js +0 -42
  148. package/dist/bigconsole/utils/dashboardList.d.ts +0 -28
  149. package/dist/bigconsole/utils/dashboardList.js +0 -15
  150. package/dist/bigconsole/utils/dataSinkList.d.ts +0 -15
  151. package/dist/bigconsole/utils/dataSinkList.js +0 -15
  152. package/dist/bigconsole/utils/formDirty.d.ts +0 -82
  153. package/dist/bigconsole/utils/formDirty.js +0 -21
  154. package/dist/bigconsole/utils/insightsDraft.d.ts +0 -29
  155. package/dist/bigconsole/utils/insightsDraft.js +0 -8
  156. package/dist/bigconsole/utils/layoutBaseline.d.ts +0 -130
  157. package/dist/bigconsole/utils/layoutBaseline.js +0 -96
  158. package/dist/bigconsole/utils/listSort.d.ts +0 -80
  159. package/dist/bigconsole/utils/listSort.js +0 -85
  160. package/dist/bigconsole/utils/widgetFormDirty.d.ts +0 -16
  161. package/dist/bigconsole/utils/widgetFormDirty.js +0 -13
@@ -3,285 +3,285 @@ import { useAppNavigate as t } from "../contexts/NavigationContext.js";
3
3
  import "../contexts/index.js";
4
4
  import n from "../hooks/useWorkflowOperations.js";
5
5
  import { NEW_WORKFLOW_NAV as r } from "../workflowOpen.js";
6
- import { newWorkflowPath as i } from "../BigConsoleRoutes.js";
7
- import { SECTION_FOCUS_RING as a } from "../components/common/sectionStyles.js";
8
- import { Section as o, SectionStack as s } from "../components/common/Section.js";
6
+ import { newWorkflowPath as ee } from "../BigConsoleRoutes.js";
7
+ import { SECTION_FOCUS_RING as i } from "../components/common/sectionStyles.js";
8
+ import { Section as a, SectionStack as o } from "../components/common/Section.js";
9
9
  import "../components/common/index.js";
10
- import { BIGCONSOLE_PERMISSIONS as c } from "../../constants/permissions.js";
11
- import { isNative as l, nativeNotify as u } from "../../utils/nativeBridge.js";
12
- import d from "../components/workflow/WorkflowDeleteDialog.js";
13
- import f from "../components/workflow/WorkflowCard.js";
14
- import { memo as p, useCallback as m, useMemo as h, useState as g } from "react";
15
- import { AccessDenied as _, PermissionButton as v } from "@burdenoff/fe-libs/shared/components";
16
- import { usePermissions as y } from "@burdenoff/fe-libs/shared/providers/shell";
17
- import { AlertCircle as b, Plus as x, Search as S, Workflow as ee } from "lucide-react";
18
- import { AuroraBackground as C, Button as w, GradientText as T, IllustratedEmptyState as E, Input as D, PagePurpose as te, Spinner as ne } from "@burdenoff/fe-libs/ui";
19
- import { useI18n as re } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
20
- import { Fragment as ie, jsx as O, jsxs as k } from "react/jsx-runtime";
10
+ import { BIGCONSOLE_PERMISSIONS as s } from "../../constants/permissions.js";
11
+ import { isNative as c, nativeNotify as l } from "../../utils/nativeBridge.js";
12
+ import u from "../components/workflow/WorkflowDeleteDialog.js";
13
+ import d from "../components/workflow/WorkflowCard.js";
14
+ import { memo as f, useCallback as p, useMemo as m, useState as h } from "react";
15
+ import { AccessDenied as g, PermissionButton as _ } from "@burdenoff/fe-libs/shared/components";
16
+ import { usePermissions as v } from "@burdenoff/fe-libs/shared/providers/shell";
17
+ import { AlertCircle as y, Plus as b, Search as te, Workflow as x } from "lucide-react";
18
+ import { AuroraBackground as S, Button as C, GradientText as w, IllustratedEmptyState as T, Input as ne, PagePurpose as re, Spinner as ie } from "@burdenoff/fe-libs/ui";
19
+ import { Fragment as ae, jsx as E, jsxs as D } from "react/jsx-runtime";
20
+ import { useI18n as O } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
21
21
  //#region src/bigconsole/pages/WorkflowsPage.tsx
22
- var A = p(function() {
23
- let p = t(), { t: A } = re(), { hasPermission: j, isLoading: M } = y(), N = j(c.WORKFLOW_READ), P = j(c.WORKFLOW_UPDATE), F = j(c.WORKFLOW_DELETE), I = j(c.WORKFLOW_EXECUTE), [L, R] = g("all"), [z, B] = g(null), V = e((e) => e.searchQuery), H = e((e) => e.setSearchQuery), U = e((e) => e.deleteDialogOpen), W = e((e) => e.currentWorkflow), G = e((e) => e.openDeleteDialog), K = e((e) => e.closeDeleteDialog), { loading: q, error: J, workflows: Y, deleteWorkflow: X, refetch: ae } = n(), { executeWorkflow: Z } = n({ skipFetch: !0 }), oe = e((e) => e.workflowUIStates), Q = h(() => {
24
- let e = [...Y];
25
- if (L !== "all" && (e = e.filter((e) => e.status === L)), V.trim()) {
26
- let t = V.toLowerCase();
22
+ var k = f(function() {
23
+ let f = t(), { t: k } = O(), { hasPermission: A, isLoading: j } = v(), M = A(s.WORKFLOW_READ), N = A(s.WORKFLOW_UPDATE), P = A(s.WORKFLOW_DELETE), F = A(s.WORKFLOW_EXECUTE), [I, L] = h("all"), [R, z] = h(null), B = e((e) => e.searchQuery), V = e((e) => e.setSearchQuery), H = e((e) => e.deleteDialogOpen), U = e((e) => e.currentWorkflow), W = e((e) => e.openDeleteDialog), G = e((e) => e.closeDeleteDialog), { loading: K, error: q, workflows: J, deleteWorkflow: Y, refetch: oe } = n(), { executeWorkflow: X } = n({ skipFetch: !0 }), se = e((e) => e.workflowUIStates), Z = m(() => {
24
+ let e = [...J];
25
+ if (I !== "all" && (e = e.filter((e) => e.status === I)), B.trim()) {
26
+ let t = B.toLowerCase();
27
27
  e = e.filter((e) => e.name.toLowerCase().includes(t) || e.key.toLowerCase().includes(t) || e.description?.toLowerCase().includes(t));
28
28
  }
29
29
  return e.sort((e, t) => new Date(t.updatedAt).getTime() - new Date(e.updatedAt).getTime());
30
30
  }, [
31
- Y,
32
- L,
33
- V
34
- ]), $ = m(() => {
35
- p(i(), r);
36
- }, [p]), se = m((e) => {
37
- p(`/workflows/details/${e}`);
38
- }, [p]), ce = m((e) => {
39
- let t = Y.find((t) => t.id === e);
40
- t?.key && p(`/workflows/workflow/${encodeURIComponent(t.key)}/v1`);
41
- }, [p, Y]), le = m((e) => {
42
- let t = Y.find((t) => t.id === e);
43
- t && G(t);
44
- }, [Y, G]), ue = m(async (e) => {
45
- let t = Y.find((t) => t.id === e);
31
+ J,
32
+ I,
33
+ B
34
+ ]), Q = p(() => {
35
+ f(ee(), r);
36
+ }, [f]), ce = p((e) => {
37
+ f(`/workflows/details/${e}`);
38
+ }, [f]), le = p((e) => {
39
+ let t = J.find((t) => t.id === e);
40
+ t?.key && f(`/workflows/workflow/${encodeURIComponent(t.key)}/v1`);
41
+ }, [f, J]), $ = p((e) => {
42
+ let t = J.find((t) => t.id === e);
43
+ t && W(t);
44
+ }, [J, W]), ue = p(async (e) => {
45
+ let t = J.find((t) => t.id === e);
46
46
  if (t) {
47
- if (B(null), await Z(e)) {
48
- l() && u("success"), B({
47
+ if (z(null), await X(e)) {
48
+ c() && l("success"), z({
49
49
  workflowName: t.name,
50
50
  ok: !0,
51
- message: A("bigconsole.workflows.run.triggered", "Run triggered. The execution count and last-run time update as the run progresses.")
51
+ message: k("bigconsole.workflows.run.triggered", "Run triggered. The execution count and last-run time update as the run progresses.")
52
52
  });
53
53
  return;
54
54
  }
55
- l() && u("error"), B({
55
+ c() && l("error"), z({
56
56
  workflowName: t.name,
57
57
  ok: !1,
58
- message: A("bigconsole.workflows.run.failed", "The workflow could not be started. Nothing has been changed.")
58
+ message: k("bigconsole.workflows.run.failed", "The workflow could not be started. Nothing has been changed.")
59
59
  });
60
60
  }
61
61
  }, [
62
- Y,
63
- Z,
64
- A
65
- ]), de = m(async () => {
66
- if (W) {
62
+ J,
63
+ X,
64
+ k
65
+ ]), de = p(async () => {
66
+ if (U) {
67
67
  try {
68
- await X(W.id), l() && u("success");
68
+ await Y(U.id), c() && l("success");
69
69
  } catch (e) {
70
- throw l() && u("error"), e;
70
+ throw c() && l("error"), e;
71
71
  }
72
- K();
72
+ G();
73
73
  }
74
74
  }, [
75
- W,
76
- X,
77
- K
75
+ U,
76
+ Y,
77
+ G
78
78
  ]), fe = [
79
79
  {
80
80
  value: "all",
81
- label: A("bigconsole.workflows.filters.all", "All")
81
+ label: k("bigconsole.workflows.filters.all", "All")
82
82
  },
83
83
  {
84
84
  value: "draft",
85
- label: A("bigconsole.workflows.status.draft", "Draft")
85
+ label: k("bigconsole.workflows.status.draft", "Draft")
86
86
  },
87
87
  {
88
88
  value: "active",
89
- label: A("bigconsole.workflows.status.active", "Active")
89
+ label: k("bigconsole.workflows.status.active", "Active")
90
90
  },
91
91
  {
92
92
  value: "paused",
93
- label: A("bigconsole.workflows.status.paused", "Paused")
93
+ label: k("bigconsole.workflows.status.paused", "Paused")
94
94
  },
95
95
  {
96
96
  value: "error",
97
- label: A("bigconsole.workflows.status.error", "Error")
97
+ label: k("bigconsole.workflows.status.error", "Error")
98
98
  },
99
99
  {
100
100
  value: "archived",
101
- label: A("bigconsole.workflows.status.archived", "Archived")
101
+ label: k("bigconsole.workflows.status.archived", "Archived")
102
102
  }
103
103
  ];
104
- if (!M && !N) return /* @__PURE__ */ O(_, {
105
- title: A("bigconsole.workflows.errors.accessDeniedTitle", "Access Denied"),
106
- description: A("bigconsole.workflows.errors.accessDeniedListDescription", "You don't have permission to view workflows.")
104
+ if (!j && !M) return /* @__PURE__ */ E(g, {
105
+ title: k("bigconsole.workflows.errors.accessDeniedTitle", "Access Denied"),
106
+ description: k("bigconsole.workflows.errors.accessDeniedListDescription", "You don't have permission to view workflows.")
107
107
  });
108
- let pe = !q && Y.length === 0, me = !q && Q.length === 0 && Y.length > 0;
109
- return /* @__PURE__ */ k("div", {
108
+ let pe = !K && J.length === 0, me = !K && Z.length === 0 && J.length > 0;
109
+ return /* @__PURE__ */ D("div", {
110
110
  "data-tour": "bigconsole-workflows-list",
111
111
  className: "min-h-dvh bg-bg-canvas",
112
112
  children: [
113
- /* @__PURE__ */ k("header", {
113
+ /* @__PURE__ */ D("header", {
114
114
  "data-section-emphasis": "bare",
115
115
  className: "relative min-w-0 overflow-hidden border-b border-[var(--color-border-seam)] bg-[image:var(--gradient-gloss-card)]",
116
- children: [/* @__PURE__ */ O(C, { intensity: "subtle" }), /* @__PURE__ */ k("div", {
116
+ children: [/* @__PURE__ */ E(S, { intensity: "subtle" }), /* @__PURE__ */ D("div", {
117
117
  className: "relative flex flex-col gap-form-gap p-[var(--space-pagePadding)] sm:flex-row sm:items-center sm:justify-between",
118
- children: [/* @__PURE__ */ k("div", {
118
+ children: [/* @__PURE__ */ D("div", {
119
119
  className: "flex min-w-0 items-center gap-form-gap",
120
- children: [/* @__PURE__ */ O("span", {
120
+ children: [/* @__PURE__ */ E("span", {
121
121
  "aria-hidden": "true",
122
122
  className: "flex h-control-lg w-[var(--size-controlHeight-lg)] shrink-0 items-center justify-center rounded-card bg-action-primary-bg",
123
- children: /* @__PURE__ */ O(ee, { className: "h-icon-lg w-icon-lg text-action-primary-text" })
124
- }), /* @__PURE__ */ k("div", {
123
+ children: /* @__PURE__ */ E(x, { className: "h-icon-lg w-icon-lg text-action-primary-text" })
124
+ }), /* @__PURE__ */ D("div", {
125
125
  className: "min-w-0",
126
- children: [/* @__PURE__ */ O("h1", {
126
+ children: [/* @__PURE__ */ E("h1", {
127
127
  className: "text-2xl font-bold text-text-primary",
128
- children: /* @__PURE__ */ O(T, { children: A("bigconsole.workflows.list.title", "Workflows") })
129
- }), /* @__PURE__ */ O("p", {
128
+ children: /* @__PURE__ */ E(w, { children: k("bigconsole.workflows.list.title", "Workflows") })
129
+ }), /* @__PURE__ */ E("p", {
130
130
  className: "text-sm text-text-secondary",
131
- children: A("bigconsole.workflows.list.subtitle", "Design ETL workflows with FluidGrids and link them to DataSinks")
131
+ children: k("bigconsole.workflows.list.subtitle", "Design ETL workflows with FluidGrids and link them to DataSinks")
132
132
  })]
133
133
  })]
134
- }), /* @__PURE__ */ O("div", {
134
+ }), /* @__PURE__ */ E("div", {
135
135
  className: "flex flex-wrap items-center gap-control-gap",
136
- children: /* @__PURE__ */ O(v, {
137
- permission: c.WORKFLOW_CREATE,
136
+ children: /* @__PURE__ */ E(_, {
137
+ permission: s.WORKFLOW_CREATE,
138
138
  deniedBehavior: "disable",
139
- children: /* @__PURE__ */ k(w, {
140
- onClick: $,
141
- children: [/* @__PURE__ */ O(x, { className: "h-icon-sm w-icon-sm" }), A("bigconsole.workflows.actions.designWorkflow", "Design Workflow")]
139
+ children: /* @__PURE__ */ D(C, {
140
+ onClick: Q,
141
+ children: [/* @__PURE__ */ E(b, { className: "h-icon-sm w-icon-sm" }), k("bigconsole.workflows.actions.designWorkflow", "Design Workflow")]
142
142
  })
143
143
  })
144
144
  })]
145
145
  })]
146
146
  }),
147
- /* @__PURE__ */ O("div", {
147
+ /* @__PURE__ */ E("div", {
148
148
  className: "p-[var(--space-pagePadding)]",
149
- children: /* @__PURE__ */ k(s, { children: [/* @__PURE__ */ O(te, { children: A("bigconsole.workflows.list.purpose", "Workflows are visual ETL jobs built with the FluidGrids builder — they fetch data from external systems, transform it, and load it into your BigConsole DataSinks on a schedule or on demand. Use them to keep dashboards fed with fresh, shaped data without writing glue code.") }), J ? /* @__PURE__ */ O(o, {
149
+ children: /* @__PURE__ */ D(o, { children: [/* @__PURE__ */ E(re, { children: k("bigconsole.workflows.list.purpose", "Workflows are visual ETL jobs built with the FluidGrids builder — they fetch data from external systems, transform it, and load it into your BigConsole DataSinks on a schedule or on demand. Use them to keep dashboards fed with fresh, shaped data without writing glue code.") }), q ? /* @__PURE__ */ E(a, {
150
150
  headingLevel: 2,
151
151
  tone: "danger",
152
- title: A("bigconsole.workflows.errors.loadFailedTitle", "Failed to load Workflows"),
152
+ title: k("bigconsole.workflows.errors.loadFailedTitle", "Failed to load Workflows"),
153
153
  description: "The workflow service did not respond. Nothing has been changed — retry when you are ready.",
154
- icon: /* @__PURE__ */ O(b, { className: "h-icon-md w-icon-md" }),
155
- actions: /* @__PURE__ */ O(w, {
154
+ icon: /* @__PURE__ */ E(y, { className: "h-icon-md w-icon-md" }),
155
+ actions: /* @__PURE__ */ E(C, {
156
156
  size: "sm",
157
- onClick: () => ae(),
158
- children: A("bigconsole.workflows.actions.tryAgain", "Try Again")
157
+ onClick: () => oe(),
158
+ children: k("bigconsole.workflows.actions.tryAgain", "Try Again")
159
159
  }),
160
160
  "data-testid": "workflows-error",
161
- children: /* @__PURE__ */ O("p", {
161
+ children: /* @__PURE__ */ E("p", {
162
162
  className: "break-words text-sm text-[var(--color-status-error-text)]",
163
- children: J.message
163
+ children: q.message
164
164
  })
165
- }) : /* @__PURE__ */ k(ie, { children: [/* @__PURE__ */ O(o, {
165
+ }) : /* @__PURE__ */ D(ae, { children: [/* @__PURE__ */ E(a, {
166
166
  headingLevel: 2,
167
167
  title: "Filters",
168
168
  description: "Narrow the list by status, or search by name, key or description.",
169
169
  padding: "compact",
170
170
  "data-testid": "workflows-filters",
171
- children: /* @__PURE__ */ k("div", {
171
+ children: /* @__PURE__ */ D("div", {
172
172
  className: "flex flex-col gap-form-gap lg:flex-row lg:items-center lg:justify-between",
173
- children: [/* @__PURE__ */ O("div", {
173
+ children: [/* @__PURE__ */ E("div", {
174
174
  role: "group",
175
175
  "aria-label": "Filter workflows by status",
176
176
  className: "flex flex-wrap items-center gap-1 rounded-card bg-bg-sunken p-1",
177
- children: fe.map((e) => /* @__PURE__ */ O("button", {
177
+ children: fe.map((e) => /* @__PURE__ */ E("button", {
178
178
  type: "button",
179
- "aria-pressed": L === e.value,
180
- onClick: () => R(e.value),
181
- className: `min-h-[var(--size-controlHeight-md)] rounded-button px-3 text-sm font-medium motion-safe:transition-colors ${a} ${L === e.value ? "bg-bg-surface text-text-primary shadow-[var(--shadow-elevation-1)]" : "text-text-secondary hover:text-text-primary"}`,
179
+ "aria-pressed": I === e.value,
180
+ onClick: () => L(e.value),
181
+ className: `min-h-[var(--size-controlHeight-md)] rounded-button px-3 text-sm font-medium motion-safe:transition-colors ${i} ${I === e.value ? "bg-bg-surface text-text-primary shadow-[var(--shadow-elevation-1)]" : "text-text-secondary hover:text-text-primary"}`,
182
182
  children: e.label
183
183
  }, e.value))
184
- }), /* @__PURE__ */ k("div", {
184
+ }), /* @__PURE__ */ D("div", {
185
185
  className: "relative w-full lg:max-w-[360px]",
186
- children: [/* @__PURE__ */ O(S, {
186
+ children: [/* @__PURE__ */ E(te, {
187
187
  "aria-hidden": "true",
188
188
  className: "pointer-events-none absolute left-3 top-1/2 h-icon-sm w-icon-sm -translate-y-1/2 text-text-muted"
189
- }), /* @__PURE__ */ O(D, {
189
+ }), /* @__PURE__ */ E(ne, {
190
190
  type: "text",
191
- "aria-label": A("bigconsole.workflows.filters.searchPlaceholder", "Search workflows..."),
192
- placeholder: A("bigconsole.workflows.filters.searchPlaceholder", "Search workflows..."),
193
- value: V,
194
- onChange: (e) => H(e.target.value),
191
+ "aria-label": k("bigconsole.workflows.filters.searchPlaceholder", "Search workflows..."),
192
+ placeholder: k("bigconsole.workflows.filters.searchPlaceholder", "Search workflows..."),
193
+ value: B,
194
+ onChange: (e) => V(e.target.value),
195
195
  className: "h-control-md pl-10"
196
196
  })]
197
197
  })]
198
198
  })
199
- }), /* @__PURE__ */ k(o, {
199
+ }), /* @__PURE__ */ D(a, {
200
200
  headingLevel: 2,
201
201
  emphasis: "primary",
202
- title: A("bigconsole.workflows.list.title", "Workflows"),
202
+ title: k("bigconsole.workflows.list.title", "Workflows"),
203
203
  description: "Every workflow in this workspace, most recently updated first.",
204
- meta: /* @__PURE__ */ k("span", {
204
+ meta: /* @__PURE__ */ D("span", {
205
205
  className: "rounded-pill bg-bg-sunken px-2 py-0.5 text-xs font-medium text-text-secondary",
206
- children: [Q.length, Q.length === Y.length ? "" : ` of ${Y.length}`]
206
+ children: [Z.length, Z.length === J.length ? "" : ` of ${J.length}`]
207
207
  }),
208
208
  "data-testid": "workflows-results",
209
209
  children: [
210
- q && Y.length === 0 && /* @__PURE__ */ O("div", {
210
+ K && J.length === 0 && /* @__PURE__ */ E("div", {
211
211
  className: "flex min-h-[240px] items-center justify-center",
212
- children: /* @__PURE__ */ k("div", {
212
+ children: /* @__PURE__ */ D("div", {
213
213
  className: "text-center",
214
- children: [/* @__PURE__ */ O(ne, {
214
+ children: [/* @__PURE__ */ E(ie, {
215
215
  size: "lg",
216
216
  className: "mb-form-gap"
217
- }), /* @__PURE__ */ O("p", {
217
+ }), /* @__PURE__ */ E("p", {
218
218
  className: "text-sm text-text-muted",
219
- children: A("bigconsole.workflows.list.loading", "Loading workflows...")
219
+ children: k("bigconsole.workflows.list.loading", "Loading workflows...")
220
220
  })]
221
221
  })
222
222
  }),
223
- pe && /* @__PURE__ */ O(E, {
223
+ pe && /* @__PURE__ */ E(T, {
224
224
  illustration: "empty-data",
225
- title: A("bigconsole.workflows.list.emptyTitle", "No Workflows yet"),
226
- description: A("bigconsole.workflows.list.emptyDescription", "Design ETL workflows with the FluidGrids visual builder to fetch, transform, and deliver data into BigConsole DataSinks."),
227
- action: /* @__PURE__ */ O(v, {
228
- permission: c.WORKFLOW_CREATE,
225
+ title: k("bigconsole.workflows.list.emptyTitle", "No Workflows yet"),
226
+ description: k("bigconsole.workflows.list.emptyDescription", "Design ETL workflows with the FluidGrids visual builder to fetch, transform, and deliver data into BigConsole DataSinks."),
227
+ action: /* @__PURE__ */ E(_, {
228
+ permission: s.WORKFLOW_CREATE,
229
229
  deniedBehavior: "disable",
230
- children: /* @__PURE__ */ k(w, {
231
- onClick: $,
232
- children: [/* @__PURE__ */ O(x, { className: "h-icon-sm w-icon-sm" }), A("bigconsole.workflows.actions.designWorkflow", "Design Workflow")]
230
+ children: /* @__PURE__ */ D(C, {
231
+ onClick: Q,
232
+ children: [/* @__PURE__ */ E(b, { className: "h-icon-sm w-icon-sm" }), k("bigconsole.workflows.actions.designWorkflow", "Design Workflow")]
233
233
  })
234
234
  })
235
235
  }),
236
- me && /* @__PURE__ */ O(E, {
236
+ me && /* @__PURE__ */ E(T, {
237
237
  illustration: "empty-search",
238
- title: A("bigconsole.workflows.list.noResultsTitle", "No matching workflows"),
239
- description: A("bigconsole.workflows.list.noResultsDescription", "No workflows match your filters")
238
+ title: k("bigconsole.workflows.list.noResultsTitle", "No matching workflows"),
239
+ description: k("bigconsole.workflows.list.noResultsDescription", "No workflows match your filters")
240
240
  }),
241
- z && /* @__PURE__ */ k("div", {
241
+ R && /* @__PURE__ */ D("div", {
242
242
  role: "status",
243
243
  "aria-live": "polite",
244
- className: `mb-form-gap flex flex-wrap items-center justify-between gap-icon-gap rounded-input border p-3 text-sm ${z.ok ? "border-[var(--color-status-success-border)] bg-[var(--color-status-success-bgSubtle)] text-[var(--color-status-success-text)]" : "border-[var(--color-status-error-border)] bg-[var(--color-status-error-bgSubtle)] text-[var(--color-status-error-text)]"}`,
244
+ className: `mb-form-gap flex flex-wrap items-center justify-between gap-icon-gap rounded-input border p-3 text-sm ${R.ok ? "border-[var(--color-status-success-border)] bg-[var(--color-status-success-bgSubtle)] text-[var(--color-status-success-text)]" : "border-[var(--color-status-error-border)] bg-[var(--color-status-error-bgSubtle)] text-[var(--color-status-error-text)]"}`,
245
245
  "data-testid": "workflows-run-outcome",
246
- children: [/* @__PURE__ */ k("span", {
246
+ children: [/* @__PURE__ */ D("span", {
247
247
  className: "min-w-0",
248
248
  children: [
249
- /* @__PURE__ */ O("strong", {
249
+ /* @__PURE__ */ E("strong", {
250
250
  className: "font-semibold",
251
- children: z.workflowName
251
+ children: R.workflowName
252
252
  }),
253
253
  " — ",
254
- z.message
254
+ R.message
255
255
  ]
256
- }), /* @__PURE__ */ O("button", {
256
+ }), /* @__PURE__ */ E("button", {
257
257
  type: "button",
258
- onClick: () => B(null),
258
+ onClick: () => z(null),
259
259
  className: "rounded-button px-2 py-1 text-xs font-medium underline-offset-2 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-bg-surface",
260
- children: A("bigconsole.workflows.run.dismiss", "Dismiss")
260
+ children: k("bigconsole.workflows.run.dismiss", "Dismiss")
261
261
  })]
262
262
  }),
263
- Q.length > 0 && /* @__PURE__ */ O("div", {
263
+ Z.length > 0 && /* @__PURE__ */ E("div", {
264
264
  className: "grid grid-cols-1 gap-form-gap sm:grid-cols-2 xl:grid-cols-3",
265
- children: Q.map((e) => /* @__PURE__ */ O(f, {
265
+ children: Z.map((e) => /* @__PURE__ */ E(d, {
266
266
  workflow: e,
267
- onView: se,
268
- onEdit: P ? ce : void 0,
269
- onDelete: F ? le : void 0,
270
- onRun: I ? ue : void 0,
271
- isRunning: oe.get(e.id)?.isExecuting ?? !1
267
+ onView: ce,
268
+ onEdit: N ? le : void 0,
269
+ onDelete: P ? $ : void 0,
270
+ onRun: F ? ue : void 0,
271
+ isRunning: se.get(e.id)?.isExecuting ?? !1
272
272
  }, e.id))
273
273
  })
274
274
  ]
275
275
  })] })] })
276
276
  }),
277
- W && /* @__PURE__ */ O(d, {
278
- workflow: W,
279
- isOpen: U,
280
- onClose: K,
277
+ U && /* @__PURE__ */ E(u, {
278
+ workflow: U,
279
+ isOpen: H,
280
+ onClose: G,
281
281
  onConfirm: de
282
282
  })
283
283
  ]
284
284
  });
285
285
  });
286
286
  //#endregion
287
- export { A as WorkflowsPage };
287
+ export { k as WorkflowsPage };
@@ -2,15 +2,15 @@ import { BIGCONSOLE_BILLING_PATHS as e, BIGCONSOLE_QUOTA_EXHAUSTED_EVENT as t, g
2
2
  import { useCallback as r, useEffect as i, useState as a } from "react";
3
3
  import { AlertTriangle as o } from "lucide-react";
4
4
  import { Button as s, ResponsiveDialog as c, ResponsiveDialogContent as l, ResponsiveDialogDescription as u, ResponsiveDialogFooter as d, ResponsiveDialogHeader as f, ResponsiveDialogTitle as p } from "@burdenoff/fe-libs/ui";
5
- import { useI18n as m } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
6
- import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
5
+ import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
6
+ import { useI18n as _ } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
7
  //#region src/bigconsole/providers/BigConsoleQuotaProvider.tsx
8
8
  var v = {
9
9
  open: !1,
10
10
  kind: "generic"
11
11
  };
12
12
  function y({ children: y, onViewBilling: b }) {
13
- let { t: x } = m(), [S, C] = a(v);
13
+ let { t: x } = _(), [S, C] = a(v);
14
14
  i(() => {
15
15
  let e = (e) => {
16
16
  let t = e.detail;
@@ -34,30 +34,30 @@ function y({ children: y, onViewBilling: b }) {
34
34
  open: !1
35
35
  })), b(T ? e.billingSetup : e.billing);
36
36
  }, [b, T]), D = n(S.kind), O = x(`bigconsole.quota.${S.kind}.title`, D.title), k = x(`bigconsole.quota.${S.kind}.message`, D.message);
37
- return /* @__PURE__ */ _(h, { children: [y, /* @__PURE__ */ g(c, {
37
+ return /* @__PURE__ */ g(m, { children: [y, /* @__PURE__ */ h(c, {
38
38
  open: S.open,
39
39
  onOpenChange: (e) => !e && w(),
40
- children: /* @__PURE__ */ _(l, {
40
+ children: /* @__PURE__ */ g(l, {
41
41
  className: "sm:max-w-md",
42
42
  showCloseButton: !1,
43
- children: [/* @__PURE__ */ _("div", {
43
+ children: [/* @__PURE__ */ g("div", {
44
44
  className: "flex items-start gap-3",
45
- children: [/* @__PURE__ */ g("div", {
45
+ children: [/* @__PURE__ */ h("div", {
46
46
  className: "flex size-10 shrink-0 items-center justify-center rounded-full bg-status-warning-bg-subtle text-status-warning-text",
47
- children: /* @__PURE__ */ g(o, {
47
+ children: /* @__PURE__ */ h(o, {
48
48
  className: "size-5",
49
49
  "aria-hidden": "true"
50
50
  })
51
- }), /* @__PURE__ */ _(f, {
51
+ }), /* @__PURE__ */ g(f, {
52
52
  className: "text-left",
53
- children: [/* @__PURE__ */ g(p, { children: O }), /* @__PURE__ */ g(u, { children: k })]
53
+ children: [/* @__PURE__ */ h(p, { children: O }), /* @__PURE__ */ h(u, { children: k })]
54
54
  })]
55
- }), /* @__PURE__ */ _(d, { children: [/* @__PURE__ */ g(s, {
55
+ }), /* @__PURE__ */ g(d, { children: [/* @__PURE__ */ h(s, {
56
56
  type: "button",
57
57
  variant: "outline",
58
58
  onClick: w,
59
59
  children: x("bigconsole.quota.dismiss", "Dismiss")
60
- }), /* @__PURE__ */ g(s, {
60
+ }), /* @__PURE__ */ h(s, {
61
61
  type: "button",
62
62
  onClick: E,
63
63
  children: T ? x("bigconsole.quota.setUpBilling", "Set up billing") : x("bigconsole.quota.viewBilling", "View Billing")