@burdenoff/microfe-bigconsole 2026.1010.12 → 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
@@ -6,85 +6,83 @@ import "../components/common/index.js";
6
6
  import i from "../hooks/useParserOperations.js";
7
7
  import ee from "../hooks/usePipelineOperations.js";
8
8
  import { BIGCONSOLE_PERMISSIONS as a } from "../../constants/permissions.js";
9
- import { isDirty as te } from "../utils/formDirty.js";
10
- import { PipelineScopePicker as ne } from "../components/pipeline/PipelineScopePicker.js";
11
- import re from "../components/pipeline/PipelineStatusBadge.js";
12
- import { memo as o, useCallback as s, useEffect as ie, useId as ae, useMemo as oe, useState as c } from "react";
13
- import { useParams as se, useSearchParams as ce } from "react-router";
14
- import { AccessDenied as le } from "@burdenoff/fe-libs/shared/components";
15
- import { usePermissions as ue } from "@burdenoff/fe-libs/shared/providers/shell";
16
- import { Button as l, IllustratedEmptyState as de, PagePurpose as fe, Spinner as pe } from "@burdenoff/fe-libs/ui";
17
- import { useUnsavedChanges as me } from "@burdenoff/fe-libs/shared/hooks";
18
- import { useI18n as he } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
19
- import { Fragment as ge, jsx as u, jsxs as d } from "react/jsx-runtime";
9
+ import { PipelineScopePicker as te } from "../components/pipeline/PipelineScopePicker.js";
10
+ import ne from "../components/pipeline/PipelineStatusBadge.js";
11
+ import { memo as o, useCallback as s, useEffect as re, useId as ie, useMemo as c, useState as l } from "react";
12
+ import { useParams as ae, useSearchParams as oe } from "react-router";
13
+ import { AccessDenied as se } from "@burdenoff/fe-libs/shared/components";
14
+ import { usePermissions as ce } from "@burdenoff/fe-libs/shared/providers/shell";
15
+ import { Button as u, IllustratedEmptyState as le, PagePurpose as ue, Spinner as de } from "@burdenoff/fe-libs/ui";
16
+ import { Fragment as fe, jsx as d, jsxs as f } from "react/jsx-runtime";
17
+ import { useI18n as pe } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
20
18
  //#region src/bigconsole/pages/PipelineBuilderPage.tsx
21
- var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-medium text-text-primary", m = "mt-1 text-xs text-text-secondary", h = "mb-1 text-xs font-semibold uppercase tracking-wide text-text-muted", g = `w-full min-w-0 rounded-input border border-[var(--color-border-subtle)] bg-bg-canvas px-3 py-2 text-sm text-text-primary ${t}`, _ = `${g} font-mono`, v = `inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-button text-text-secondary motion-safe:transition-colors disabled:opacity-30 ${t}`, y = `${v} hover:bg-bg-surface hover:text-text-primary`, _e = `${v} hover:bg-[var(--color-status-error-bgSubtle)] hover:text-status-error-text`, ve = ({ className: e }) => /* @__PURE__ */ u("svg", {
19
+ var p = "min-h-[var(--size-controlHeight-md)]", m = "mb-1 block text-sm font-medium text-text-primary", h = "mt-1 text-xs text-text-secondary", me = "mb-1 text-xs font-semibold uppercase tracking-wide text-text-muted", g = `w-full min-w-0 rounded-input border border-[var(--color-border-subtle)] bg-bg-canvas px-3 py-2 text-sm text-text-primary ${t}`, _ = `${g} font-mono`, v = `inline-flex h-10 w-10 shrink-0 items-center justify-center rounded-button text-text-secondary motion-safe:transition-colors disabled:opacity-30 ${t}`, y = `${v} hover:bg-bg-surface hover:text-text-primary`, he = `${v} hover:bg-[var(--color-status-error-bgSubtle)] hover:text-status-error-text`, ge = ({ className: e }) => /* @__PURE__ */ d("svg", {
22
20
  className: e,
23
21
  fill: "none",
24
22
  stroke: "currentColor",
25
23
  viewBox: "0 0 24 24",
26
- children: /* @__PURE__ */ u("path", {
24
+ children: /* @__PURE__ */ d("path", {
27
25
  strokeLinecap: "round",
28
26
  strokeLinejoin: "round",
29
27
  strokeWidth: 2,
30
28
  d: "M10 19l-7-7m0 0l7-7m-7 7h18"
31
29
  })
32
- }), b = ({ className: e }) => /* @__PURE__ */ u("svg", {
30
+ }), b = ({ className: e }) => /* @__PURE__ */ d("svg", {
33
31
  className: e,
34
32
  fill: "none",
35
33
  stroke: "currentColor",
36
34
  viewBox: "0 0 24 24",
37
- children: /* @__PURE__ */ u("path", {
35
+ children: /* @__PURE__ */ d("path", {
38
36
  strokeLinecap: "round",
39
37
  strokeLinejoin: "round",
40
38
  strokeWidth: 2,
41
39
  d: "M12 4v16m8-8H4"
42
40
  })
43
- }), ye = ({ className: e }) => /* @__PURE__ */ u("svg", {
41
+ }), _e = ({ className: e }) => /* @__PURE__ */ d("svg", {
44
42
  className: e,
45
43
  fill: "none",
46
44
  stroke: "currentColor",
47
45
  viewBox: "0 0 24 24",
48
- children: /* @__PURE__ */ u("path", {
46
+ children: /* @__PURE__ */ d("path", {
49
47
  strokeLinecap: "round",
50
48
  strokeLinejoin: "round",
51
49
  strokeWidth: 2,
52
50
  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
51
  })
54
- }), be = ({ className: e }) => /* @__PURE__ */ u("svg", {
52
+ }), ve = ({ className: e }) => /* @__PURE__ */ d("svg", {
55
53
  className: e,
56
54
  fill: "none",
57
55
  stroke: "currentColor",
58
56
  viewBox: "0 0 24 24",
59
- children: /* @__PURE__ */ u("path", {
57
+ children: /* @__PURE__ */ d("path", {
60
58
  strokeLinecap: "round",
61
59
  strokeLinejoin: "round",
62
60
  strokeWidth: 2,
63
61
  d: "M5 15l7-7 7 7"
64
62
  })
65
- }), xe = ({ className: e }) => /* @__PURE__ */ u("svg", {
63
+ }), ye = ({ className: e }) => /* @__PURE__ */ d("svg", {
66
64
  className: e,
67
65
  fill: "none",
68
66
  stroke: "currentColor",
69
67
  viewBox: "0 0 24 24",
70
- children: /* @__PURE__ */ u("path", {
68
+ children: /* @__PURE__ */ d("path", {
71
69
  strokeLinecap: "round",
72
70
  strokeLinejoin: "round",
73
71
  strokeWidth: 2,
74
72
  d: "M19 9l-7 7-7-7"
75
73
  })
76
- }), x = ({ className: e }) => /* @__PURE__ */ u("svg", {
74
+ }), x = ({ className: e }) => /* @__PURE__ */ d("svg", {
77
75
  className: e,
78
76
  fill: "none",
79
77
  stroke: "currentColor",
80
78
  viewBox: "0 0 24 24",
81
- children: /* @__PURE__ */ u("path", {
79
+ children: /* @__PURE__ */ d("path", {
82
80
  strokeLinecap: "round",
83
81
  strokeLinejoin: "round",
84
82
  strokeWidth: 2,
85
83
  d: "M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
86
84
  })
87
- }), Se = [
85
+ }), be = [
88
86
  {
89
87
  value: "draft",
90
88
  label: "Draft"
@@ -113,7 +111,7 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
113
111
  label: "Fallback",
114
112
  description: "Use fallback value on error"
115
113
  }
116
- ], Ce = {
114
+ ], xe = {
117
115
  parserId: "",
118
116
  parserName: "",
119
117
  parserType: null,
@@ -124,77 +122,49 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
124
122
  fallbackValue: "",
125
123
  description: ""
126
124
  }, C = o(function() {
127
- let { t: o } = he(), { pipelineId: v } = se(), C = e(), w = !!v && v !== "new", [T, we] = ce(), [E, Te] = c(null), D = w ? E ?? "default" : T.get("consoleId") || "default", O = ae(), { hasPermission: k, isLoading: Ee } = ue(), De = k(a.PIPELINE_READ), Oe = k(a.PIPELINE_CREATE), ke = k(a.PIPELINE_UPDATE), A = w ? ke : Oe, [j, M] = c(""), [N, P] = c(""), [F, I] = c("draft"), [L, R] = c([]), [z, Ae] = c(1), [B, V] = c(!1), [H, U] = c(null), [je, W] = c(w ? null : [
128
- "",
129
- "",
130
- "draft",
131
- [],
132
- 1
133
- ]);
134
- me({
135
- id: "pipeline-editor",
136
- label: o("bigconsole.assistant.unsaved.pipelineEditor", "the pipeline editor"),
137
- dirty: te([
138
- j,
139
- N,
140
- F,
141
- L,
142
- z
143
- ], je)
144
- });
145
- let { loading: Me, error: G, fetchPipeline: K, createPipeline: q, updatePipeline: J } = ee({
125
+ let { t: o } = pe(), { pipelineId: v } = ae(), C = e(), w = !!v && v !== "new", [T, Se] = oe(), [E, Ce] = l(null), D = w ? E ?? "default" : T.get("consoleId") || "default", O = ie(), { hasPermission: k, isLoading: we } = ce(), Te = k(a.PIPELINE_READ), Ee = k(a.PIPELINE_CREATE), De = k(a.PIPELINE_UPDATE), A = w ? De : Ee, [j, M] = l(""), [N, P] = l(""), [F, I] = l("draft"), [L, R] = l([]), [z, Oe] = l(1), [B, V] = l(!1), [H, U] = l(null), { loading: ke, error: W, fetchPipeline: G, createPipeline: K, updatePipeline: q } = ee({
146
126
  consoleId: D,
147
127
  skipFetch: !0
148
- }), { parsers: Y } = i({
128
+ }), { parsers: J } = i({
149
129
  consoleId: D,
150
130
  skipFetch: w && !E
151
131
  });
152
- ie(() => {
153
- w && v && K(v).then((e) => {
154
- if (e) {
155
- Te(e.consoleId), M(e.name), P(e.description || ""), I(e.status), Ae(e.version);
156
- let t = (e.stages || []).map((e) => ({
157
- id: e.id,
158
- parserId: e.parserId,
159
- parserName: e.parserName || "",
160
- parserType: e.parserType,
161
- inputKey: e.inputKey,
162
- outputKey: e.outputKey,
163
- enabled: e.enabled,
164
- onError: e.onError,
165
- fallbackValue: e.fallbackValue ? JSON.stringify(e.fallbackValue) : "",
166
- description: e.description || ""
167
- }));
168
- R(t), W([
169
- e.name,
170
- e.description || "",
171
- e.status,
172
- t,
173
- e.version
174
- ]);
175
- }
132
+ re(() => {
133
+ w && v && G(v).then((e) => {
134
+ e && (Ce(e.consoleId), M(e.name), P(e.description || ""), I(e.status), Oe(e.version), R((e.stages || []).map((e) => ({
135
+ id: e.id,
136
+ parserId: e.parserId,
137
+ parserName: e.parserName || "",
138
+ parserType: e.parserType,
139
+ inputKey: e.inputKey,
140
+ outputKey: e.outputKey,
141
+ enabled: e.enabled,
142
+ onError: e.onError,
143
+ fallbackValue: e.fallbackValue ? JSON.stringify(e.fallbackValue) : "",
144
+ description: e.description || ""
145
+ }))));
176
146
  });
177
147
  }, [
178
148
  w,
179
149
  v,
180
- K
150
+ G
181
151
  ]);
182
- let Ne = {
152
+ let Ae = {
183
153
  draft: o("bigconsole.pipelines.builder.status.draft", "Draft"),
184
154
  active: o("bigconsole.pipelines.builder.status.active", "Active"),
185
155
  inactive: o("bigconsole.pipelines.builder.status.inactive", "Inactive"),
186
156
  error: o("bigconsole.pipelines.builder.status.error", "Error")
187
- }, Pe = {
157
+ }, je = {
188
158
  fail: o("bigconsole.pipelines.builder.onError.fail", "Fail"),
189
159
  skip: o("bigconsole.pipelines.builder.onError.skip", "Skip"),
190
160
  fallback: o("bigconsole.pipelines.builder.onError.fallback", "Fallback")
191
- }, X = oe(() => !j.trim() || L.length === 0 ? !1 : L.every((e) => e.parserId && e.inputKey && e.outputKey), [j, L]), Z = oe(() => j.trim() ? L.length === 0 ? "Add at least one stage to save this pipeline." : L.every((e) => e.parserId && e.inputKey && e.outputKey) ? null : "Every stage needs a parser, an input key and an output key." : "Give the pipeline a name to save it.", [j, L]), Q = s(() => {
161
+ }, Y = c(() => !j.trim() || L.length === 0 ? !1 : L.every((e) => e.parserId && e.inputKey && e.outputKey), [j, L]), X = c(() => j.trim() ? L.length === 0 ? "Add at least one stage to save this pipeline." : L.every((e) => e.parserId && e.inputKey && e.outputKey) ? null : "Every stage needs a parser, an input key and an output key." : "Give the pipeline a name to save it.", [j, L]), Z = s(() => {
192
162
  C(`/pipelines?consoleId=${encodeURIComponent(D)}`);
193
- }, [C, D]), Fe = s(() => {
194
- R((e) => [...e, { ...Ce }]);
195
- }, []), Ie = s((e) => {
163
+ }, [C, D]), Q = s(() => {
164
+ R((e) => [...e, { ...xe }]);
165
+ }, []), Me = s((e) => {
196
166
  R((t) => t.filter((t, n) => n !== e));
197
- }, []), Le = s((e, t) => {
167
+ }, []), Ne = s((e, t) => {
198
168
  R((n) => {
199
169
  let r = [...n], i = t === "up" ? e - 1 : e + 1;
200
170
  return i < 0 || i >= r.length ? n : ([r[e], r[i]] = [r[i], r[e]], r);
@@ -204,15 +174,15 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
204
174
  ...n,
205
175
  ...t
206
176
  } : n));
207
- }, []), Re = s((e, t) => {
208
- let n = Y.find((e) => e.id === t);
177
+ }, []), Pe = s((e, t) => {
178
+ let n = J.find((e) => e.id === t);
209
179
  n && $(e, {
210
180
  parserId: n.id,
211
181
  parserName: n.name,
212
182
  parserType: n.type
213
183
  });
214
- }, [Y, $]), ze = s(async () => {
215
- if (!(!X || !D || !A)) {
184
+ }, [J, $]), Fe = s(async () => {
185
+ if (!(!Y || !D || !A)) {
216
186
  V(!0), U(null);
217
187
  try {
218
188
  let e = L.map((e) => ({
@@ -226,32 +196,20 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
226
196
  fallbackValue: e.fallbackValue ? JSON.parse(e.fallbackValue) : void 0,
227
197
  description: e.description || void 0
228
198
  }));
229
- if (w && v) await J(v, {
199
+ if (w && v) await q(v, {
230
200
  name: j,
231
201
  description: N || void 0,
232
202
  status: F
233
- }, z) && (W([
234
- j,
235
- N,
236
- F,
237
- L,
238
- z
239
- ]), C(`/pipelines/${v}`));
203
+ }, z) && C(`/pipelines/${v}`);
240
204
  else {
241
- let t = await q({
205
+ let t = await K({
242
206
  consoleId: D,
243
207
  name: j,
244
208
  description: N || void 0,
245
209
  status: F,
246
210
  stages: e
247
211
  });
248
- t && (W([
249
- j,
250
- N,
251
- F,
252
- L,
253
- z
254
- ]), C(`/pipelines/${t.id}`));
212
+ t && C(`/pipelines/${t.id}`);
255
213
  }
256
214
  } catch (e) {
257
215
  U(e instanceof Error ? e.message : o("bigconsole.pipelines.builder.errors.saveFailed", "Failed to save pipeline"));
@@ -260,7 +218,7 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
260
218
  }
261
219
  }
262
220
  }, [
263
- X,
221
+ Y,
264
222
  D,
265
223
  A,
266
224
  w,
@@ -270,138 +228,138 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
270
228
  F,
271
229
  L,
272
230
  z,
231
+ K,
273
232
  q,
274
- J,
275
233
  C,
276
234
  o
277
235
  ]);
278
- return Me && w ? /* @__PURE__ */ u("div", {
236
+ return ke && w ? /* @__PURE__ */ d("div", {
279
237
  className: "p-card-padding",
280
- children: /* @__PURE__ */ d("div", {
238
+ children: /* @__PURE__ */ f("div", {
281
239
  className: "flex flex-col items-center justify-center py-16",
282
240
  role: "status",
283
- children: [/* @__PURE__ */ u(pe, { style: {
241
+ children: [/* @__PURE__ */ d(de, { style: {
284
242
  height: "var(--size-icon-xl)",
285
243
  width: "var(--size-icon-xl)"
286
- } }), /* @__PURE__ */ u("p", {
244
+ } }), /* @__PURE__ */ d("p", {
287
245
  className: "mt-form-gap text-sm text-text-secondary",
288
246
  children: o("bigconsole.pipelines.builder.loading", "Loading Pipeline...")
289
247
  })]
290
248
  })
291
- }) : w && !Ee && !De ? /* @__PURE__ */ u(le, {
249
+ }) : w && !we && !Te ? /* @__PURE__ */ d(se, {
292
250
  title: o("bigconsole.pipelines.builder.accessDenied.title", "Access Denied"),
293
251
  description: o("bigconsole.pipelines.builder.accessDenied.description", "You don't have permission to view this pipeline.")
294
- }) : G ? /* @__PURE__ */ u("div", {
252
+ }) : W ? /* @__PURE__ */ d("div", {
295
253
  className: "p-card-padding",
296
- children: /* @__PURE__ */ u(n, {
254
+ children: /* @__PURE__ */ d(n, {
297
255
  tone: "danger",
298
256
  headingLevel: 2,
299
257
  title: o("bigconsole.pipelines.builder.errors.loadFailed", "Failed to load Pipeline"),
300
- description: G.message,
301
- icon: /* @__PURE__ */ u(x, { className: "h-icon-sm w-icon-sm" }),
302
- actions: /* @__PURE__ */ u(l, {
303
- onClick: Q,
304
- className: f,
258
+ description: W.message,
259
+ icon: /* @__PURE__ */ d(x, { className: "h-icon-sm w-icon-sm" }),
260
+ actions: /* @__PURE__ */ d(u, {
261
+ onClick: Z,
262
+ className: p,
305
263
  children: o("bigconsole.pipelines.builder.actions.backToPipelines", "Back to Pipelines")
306
264
  }),
307
265
  "data-testid": "pipeline-builder-error",
308
- children: /* @__PURE__ */ u("p", {
266
+ children: /* @__PURE__ */ d("p", {
309
267
  className: "text-sm text-text-secondary",
310
268
  children: "The pipeline could not be read from the console service. Nothing was changed."
311
269
  })
312
270
  })
313
- }) : /* @__PURE__ */ u("div", {
271
+ }) : /* @__PURE__ */ d("div", {
314
272
  className: "p-card-padding",
315
- children: /* @__PURE__ */ d(r, { children: [
316
- /* @__PURE__ */ d("header", {
273
+ children: /* @__PURE__ */ f(r, { children: [
274
+ /* @__PURE__ */ f("header", {
317
275
  className: "flex flex-col gap-form-gap sm:flex-row sm:items-start sm:justify-between",
318
- children: [/* @__PURE__ */ d("div", {
276
+ children: [/* @__PURE__ */ f("div", {
319
277
  className: "flex min-w-0 flex-col gap-control-gap",
320
- children: [/* @__PURE__ */ d(l, {
278
+ children: [/* @__PURE__ */ f(u, {
321
279
  variant: "ghost",
322
280
  size: "sm",
323
- onClick: Q,
281
+ onClick: Z,
324
282
  className: "w-fit",
325
- children: [/* @__PURE__ */ u(ve, { className: "h-icon-sm w-icon-sm" }), o("bigconsole.pipelines.builder.actions.backToPipelines", "Back to Pipelines")]
326
- }), /* @__PURE__ */ d("div", {
283
+ children: [/* @__PURE__ */ d(ge, { className: "h-icon-sm w-icon-sm" }), o("bigconsole.pipelines.builder.actions.backToPipelines", "Back to Pipelines")]
284
+ }), /* @__PURE__ */ f("div", {
327
285
  className: "min-w-0",
328
- children: [/* @__PURE__ */ u("h1", {
286
+ children: [/* @__PURE__ */ d("h1", {
329
287
  className: "text-2xl font-bold leading-tight text-text-primary",
330
288
  children: w ? o("bigconsole.pipelines.builder.header.editTitle", "Edit Pipeline") : o("bigconsole.pipelines.builder.header.createTitle", "Create Pipeline")
331
- }), /* @__PURE__ */ u("p", {
289
+ }), /* @__PURE__ */ d("p", {
332
290
  className: "mt-1 text-sm text-text-secondary",
333
291
  children: w ? o("bigconsole.pipelines.builder.header.editSubtitle", "Update pipeline settings and stages") : o("bigconsole.pipelines.builder.header.createSubtitle", "Create a new data transformation pipeline")
334
292
  })]
335
293
  })]
336
- }), /* @__PURE__ */ d("div", {
294
+ }), /* @__PURE__ */ f("div", {
337
295
  className: "flex flex-col gap-1 sm:items-end",
338
- children: [/* @__PURE__ */ d("div", {
296
+ children: [/* @__PURE__ */ f("div", {
339
297
  className: "flex flex-wrap items-center gap-control-gap",
340
- children: [/* @__PURE__ */ u(l, {
298
+ children: [/* @__PURE__ */ d(u, {
341
299
  variant: "secondary",
342
- onClick: Q,
343
- className: f,
300
+ onClick: Z,
301
+ className: p,
344
302
  children: o("bigconsole.pipelines.builder.actions.cancel", "Cancel")
345
- }), /* @__PURE__ */ u(l, {
346
- onClick: ze,
347
- disabled: !X || B || !A,
303
+ }), /* @__PURE__ */ d(u, {
304
+ onClick: Fe,
305
+ disabled: !Y || B || !A,
348
306
  title: A ? void 0 : w ? o("bigconsole.pipelines.builder.actions.noUpdatePermission", "You don't have permission to update pipelines.") : o("bigconsole.pipelines.builder.actions.noCreatePermission", "You don't have permission to create pipelines."),
349
- className: f,
307
+ className: p,
350
308
  children: B ? o("bigconsole.pipelines.builder.actions.saving", "Saving...") : w ? o("bigconsole.pipelines.builder.actions.saveChanges", "Save Changes") : o("bigconsole.pipelines.builder.actions.createPipeline", "Create Pipeline")
351
309
  })]
352
- }), Z && /* @__PURE__ */ u("p", {
310
+ }), X && /* @__PURE__ */ d("p", {
353
311
  className: "text-xs text-text-secondary sm:text-right",
354
312
  "data-testid": "pipeline-save-blocked-reason",
355
- children: Z
313
+ children: X
356
314
  })]
357
315
  })]
358
316
  }),
359
- /* @__PURE__ */ u(fe, {
317
+ /* @__PURE__ */ d(ue, {
360
318
  className: "max-w-[75ch]",
361
319
  children: o("bigconsole.pipelines.builder.header.purpose", "Build a pipeline by chaining parser stages — each stage reads an input key, runs a parser, and writes a structured output key that the next stage (or a data sink) can use. Name it, add your stages in order, then test it before saving so your data flows end to end.")
362
320
  }),
363
- H && /* @__PURE__ */ u(n, {
321
+ H && /* @__PURE__ */ d(n, {
364
322
  tone: "danger",
365
323
  headingLevel: 2,
366
324
  title: o("bigconsole.pipelines.builder.errors.saveFailed", "Failed to save pipeline"),
367
325
  description: H,
368
- icon: /* @__PURE__ */ u(x, { className: "h-icon-sm w-icon-sm" }),
326
+ icon: /* @__PURE__ */ d(x, { className: "h-icon-sm w-icon-sm" }),
369
327
  "data-testid": "pipeline-save-error"
370
328
  }),
371
- /* @__PURE__ */ d("div", {
329
+ /* @__PURE__ */ f("div", {
372
330
  className: "grid grid-cols-1 gap-section-gap lg:grid-cols-3",
373
- children: [/* @__PURE__ */ u("div", {
331
+ children: [/* @__PURE__ */ d("div", {
374
332
  className: "min-w-0 lg:col-span-2",
375
- children: /* @__PURE__ */ d(r, { children: [/* @__PURE__ */ u(n, {
333
+ children: /* @__PURE__ */ f(r, { children: [/* @__PURE__ */ d(n, {
376
334
  headingLevel: 2,
377
335
  title: o("bigconsole.pipelines.builder.basicInfo.heading", "Basic Information"),
378
336
  description: "How this pipeline is identified, and whether it runs.",
379
337
  "data-testid": "pipeline-basic-info",
380
- children: /* @__PURE__ */ d("div", {
338
+ children: /* @__PURE__ */ f("div", {
381
339
  className: "flex flex-col gap-form-gap",
382
340
  children: [
383
- /* @__PURE__ */ u(ne, {
341
+ /* @__PURE__ */ d(te, {
384
342
  value: D,
385
343
  disabled: w,
386
344
  onChange: (e) => {
387
345
  let t = new URLSearchParams(T);
388
- t.set("consoleId", e), we(t), R([]);
346
+ t.set("consoleId", e), Se(t), R([]);
389
347
  }
390
348
  }),
391
- /* @__PURE__ */ d("div", {
349
+ /* @__PURE__ */ f("div", {
392
350
  className: "min-w-0",
393
- children: [/* @__PURE__ */ d("label", {
351
+ children: [/* @__PURE__ */ f("label", {
394
352
  htmlFor: `${O}-name`,
395
- className: p,
353
+ className: m,
396
354
  children: [
397
355
  o("bigconsole.pipelines.builder.basicInfo.nameLabel", "Name"),
398
356
  " ",
399
- /* @__PURE__ */ u("span", {
357
+ /* @__PURE__ */ d("span", {
400
358
  className: "text-status-error-text",
401
359
  children: "*"
402
360
  })
403
361
  ]
404
- }), /* @__PURE__ */ u("input", {
362
+ }), /* @__PURE__ */ d("input", {
405
363
  id: `${O}-name`,
406
364
  type: "text",
407
365
  value: j,
@@ -410,13 +368,13 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
410
368
  className: g
411
369
  })]
412
370
  }),
413
- /* @__PURE__ */ d("div", {
371
+ /* @__PURE__ */ f("div", {
414
372
  className: "min-w-0",
415
- children: [/* @__PURE__ */ u("label", {
373
+ children: [/* @__PURE__ */ d("label", {
416
374
  htmlFor: `${O}-description`,
417
- className: p,
375
+ className: m,
418
376
  children: o("bigconsole.pipelines.builder.basicInfo.descriptionLabel", "Description")
419
- }), /* @__PURE__ */ u("textarea", {
377
+ }), /* @__PURE__ */ d("textarea", {
420
378
  id: `${O}-description`,
421
379
  value: N,
422
380
  onChange: (e) => P(e.target.value),
@@ -425,123 +383,123 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
425
383
  className: `${g} resize-y`
426
384
  })]
427
385
  }),
428
- /* @__PURE__ */ d("div", {
386
+ /* @__PURE__ */ f("div", {
429
387
  className: "min-w-0 border-t border-[var(--color-border-subtle)] pt-form-gap",
430
388
  children: [
431
- /* @__PURE__ */ u("label", {
389
+ /* @__PURE__ */ d("label", {
432
390
  htmlFor: `${O}-status`,
433
- className: p,
391
+ className: m,
434
392
  children: o("bigconsole.pipelines.builder.basicInfo.statusLabel", "Status")
435
393
  }),
436
- /* @__PURE__ */ u("select", {
394
+ /* @__PURE__ */ d("select", {
437
395
  id: `${O}-status`,
438
396
  value: F,
439
397
  onChange: (e) => I(e.target.value),
440
398
  className: g,
441
- children: Se.map((e) => /* @__PURE__ */ u("option", {
399
+ children: be.map((e) => /* @__PURE__ */ d("option", {
442
400
  value: e.value,
443
- children: Ne[e.value]
401
+ children: Ae[e.value]
444
402
  }, e.value))
445
403
  }),
446
- /* @__PURE__ */ u("p", {
447
- className: m,
404
+ /* @__PURE__ */ d("p", {
405
+ className: h,
448
406
  children: "Only active pipelines process incoming data."
449
407
  })
450
408
  ]
451
409
  })
452
410
  ]
453
411
  })
454
- }), /* @__PURE__ */ u(n, {
412
+ }), /* @__PURE__ */ d(n, {
455
413
  emphasis: "primary",
456
414
  headingLevel: 2,
457
415
  title: o("bigconsole.pipelines.builder.stages.heading", "Stages ({{count}})", { count: L.length }),
458
416
  description: "Each stage reads an input key, runs a parser, and writes an output key for the next stage.",
459
- actions: /* @__PURE__ */ d(l, {
417
+ actions: /* @__PURE__ */ f(u, {
460
418
  size: "sm",
461
- onClick: Fe,
462
- className: f,
463
- children: [/* @__PURE__ */ u(b, { className: "h-icon-sm w-icon-sm" }), o("bigconsole.pipelines.builder.stages.addStage", "Add Stage")]
419
+ onClick: Q,
420
+ className: p,
421
+ children: [/* @__PURE__ */ d(b, { className: "h-icon-sm w-icon-sm" }), o("bigconsole.pipelines.builder.stages.addStage", "Add Stage")]
464
422
  }),
465
423
  "data-testid": "pipeline-stages-editor",
466
- children: L.length === 0 ? /* @__PURE__ */ u(de, {
424
+ children: L.length === 0 ? /* @__PURE__ */ d(le, {
467
425
  illustration: "empty-generic",
468
426
  title: o("bigconsole.pipelines.builder.stages.emptyTitle", "No stages yet"),
469
427
  description: o("bigconsole.pipelines.builder.stages.emptyDescription", "Add a stage to start building your pipeline."),
470
- action: /* @__PURE__ */ d(l, {
471
- onClick: Fe,
472
- className: f,
473
- children: [/* @__PURE__ */ u(b, { className: "h-icon-sm w-icon-sm" }), o("bigconsole.pipelines.builder.stages.addFirstStage", "Add First Stage")]
428
+ action: /* @__PURE__ */ f(u, {
429
+ onClick: Q,
430
+ className: p,
431
+ children: [/* @__PURE__ */ d(b, { className: "h-icon-sm w-icon-sm" }), o("bigconsole.pipelines.builder.stages.addFirstStage", "Add First Stage")]
474
432
  })
475
- }) : /* @__PURE__ */ u("ol", {
433
+ }) : /* @__PURE__ */ d("ol", {
476
434
  className: "flex flex-col gap-form-gap",
477
- children: L.map((e, r) => /* @__PURE__ */ u("li", {
435
+ children: L.map((e, r) => /* @__PURE__ */ d("li", {
478
436
  className: "min-w-0",
479
- children: /* @__PURE__ */ u(n, {
437
+ children: /* @__PURE__ */ d(n, {
480
438
  emphasis: "muted",
481
439
  padding: "compact",
482
440
  headingLevel: 3,
483
- title: /* @__PURE__ */ d("span", {
441
+ title: /* @__PURE__ */ f("span", {
484
442
  className: "flex min-w-0 items-center gap-icon-gap",
485
- children: [/* @__PURE__ */ u("span", {
443
+ children: [/* @__PURE__ */ d("span", {
486
444
  "aria-hidden": "true",
487
445
  className: "flex h-6 w-6 shrink-0 items-center justify-center rounded-pill bg-bg-surface text-xs font-semibold text-text-secondary",
488
446
  children: r + 1
489
- }), /* @__PURE__ */ u("span", {
447
+ }), /* @__PURE__ */ d("span", {
490
448
  className: "min-w-0 truncate",
491
449
  children: e.parserName || o("bigconsole.pipelines.builder.stages.defaultStageName", "Stage {{number}}", { number: r + 1 })
492
450
  })]
493
451
  }),
494
- actions: /* @__PURE__ */ d(ge, { children: [
495
- /* @__PURE__ */ u("button", {
452
+ actions: /* @__PURE__ */ f(fe, { children: [
453
+ /* @__PURE__ */ d("button", {
496
454
  type: "button",
497
- onClick: () => Le(r, "up"),
455
+ onClick: () => Ne(r, "up"),
498
456
  disabled: r === 0,
499
457
  className: y,
500
458
  "aria-label": `Move stage ${r + 1} up`,
501
- children: /* @__PURE__ */ u(be, { className: "h-icon-sm w-icon-sm" })
459
+ children: /* @__PURE__ */ d(ve, { className: "h-icon-sm w-icon-sm" })
502
460
  }),
503
- /* @__PURE__ */ u("button", {
461
+ /* @__PURE__ */ d("button", {
504
462
  type: "button",
505
- onClick: () => Le(r, "down"),
463
+ onClick: () => Ne(r, "down"),
506
464
  disabled: r === L.length - 1,
507
465
  className: y,
508
466
  "aria-label": `Move stage ${r + 1} down`,
509
- children: /* @__PURE__ */ u(xe, { className: "h-icon-sm w-icon-sm" })
467
+ children: /* @__PURE__ */ d(ye, { className: "h-icon-sm w-icon-sm" })
510
468
  }),
511
- /* @__PURE__ */ u("button", {
469
+ /* @__PURE__ */ d("button", {
512
470
  type: "button",
513
- onClick: () => Ie(r),
514
- className: _e,
471
+ onClick: () => Me(r),
472
+ className: he,
515
473
  "aria-label": `Remove stage ${r + 1}`,
516
- children: /* @__PURE__ */ u(ye, { className: "h-icon-sm w-icon-sm" })
474
+ children: /* @__PURE__ */ d(_e, { className: "h-icon-sm w-icon-sm" })
517
475
  })
518
476
  ] }),
519
477
  "data-testid": "pipeline-stage-editor",
520
- children: /* @__PURE__ */ d("div", {
478
+ children: /* @__PURE__ */ f("div", {
521
479
  className: "flex flex-col gap-form-gap",
522
480
  children: [
523
- /* @__PURE__ */ d("div", {
481
+ /* @__PURE__ */ f("div", {
524
482
  className: "min-w-0",
525
- children: [/* @__PURE__ */ d("label", {
483
+ children: [/* @__PURE__ */ f("label", {
526
484
  htmlFor: `${O}-parser-${r}`,
527
- className: p,
485
+ className: m,
528
486
  children: [
529
487
  o("bigconsole.pipelines.builder.stages.parserLabel", "Parser"),
530
488
  " ",
531
- /* @__PURE__ */ u("span", {
489
+ /* @__PURE__ */ d("span", {
532
490
  className: "text-status-error-text",
533
491
  children: "*"
534
492
  })
535
493
  ]
536
- }), /* @__PURE__ */ d("select", {
494
+ }), /* @__PURE__ */ f("select", {
537
495
  id: `${O}-parser-${r}`,
538
496
  value: e.parserId,
539
- onChange: (e) => Re(r, e.target.value),
497
+ onChange: (e) => Pe(r, e.target.value),
540
498
  className: g,
541
- children: [/* @__PURE__ */ u("option", {
499
+ children: [/* @__PURE__ */ d("option", {
542
500
  value: "",
543
501
  children: o("bigconsole.pipelines.builder.stages.parserPlaceholder", "Select a parser...")
544
- }), Y.map((e) => /* @__PURE__ */ d("option", {
502
+ }), J.map((e) => /* @__PURE__ */ f("option", {
545
503
  value: e.id,
546
504
  children: [
547
505
  e.name,
@@ -552,27 +510,27 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
552
510
  }, e.id))]
553
511
  })]
554
512
  }),
555
- /* @__PURE__ */ d("fieldset", {
513
+ /* @__PURE__ */ f("fieldset", {
556
514
  className: "min-w-0",
557
- children: [/* @__PURE__ */ u("legend", {
558
- className: h,
515
+ children: [/* @__PURE__ */ d("legend", {
516
+ className: me,
559
517
  children: "Data contract"
560
- }), /* @__PURE__ */ d("div", {
518
+ }), /* @__PURE__ */ f("div", {
561
519
  className: "grid grid-cols-1 gap-form-gap sm:grid-cols-2",
562
- children: [/* @__PURE__ */ d("div", {
520
+ children: [/* @__PURE__ */ f("div", {
563
521
  className: "min-w-0",
564
- children: [/* @__PURE__ */ d("label", {
522
+ children: [/* @__PURE__ */ f("label", {
565
523
  htmlFor: `${O}-input-${r}`,
566
- className: p,
524
+ className: m,
567
525
  children: [
568
526
  o("bigconsole.pipelines.builder.stages.inputKeyLabel", "Input Key"),
569
527
  " ",
570
- /* @__PURE__ */ u("span", {
528
+ /* @__PURE__ */ d("span", {
571
529
  className: "text-status-error-text",
572
530
  children: "*"
573
531
  })
574
532
  ]
575
- }), /* @__PURE__ */ u("input", {
533
+ }), /* @__PURE__ */ d("input", {
576
534
  id: `${O}-input-${r}`,
577
535
  type: "text",
578
536
  value: e.inputKey,
@@ -580,20 +538,20 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
580
538
  placeholder: o("bigconsole.pipelines.builder.stages.inputKeyPlaceholder", "data"),
581
539
  className: _
582
540
  })]
583
- }), /* @__PURE__ */ d("div", {
541
+ }), /* @__PURE__ */ f("div", {
584
542
  className: "min-w-0",
585
- children: [/* @__PURE__ */ d("label", {
543
+ children: [/* @__PURE__ */ f("label", {
586
544
  htmlFor: `${O}-output-${r}`,
587
- className: p,
545
+ className: m,
588
546
  children: [
589
547
  o("bigconsole.pipelines.builder.stages.outputKeyLabel", "Output Key"),
590
548
  " ",
591
- /* @__PURE__ */ u("span", {
549
+ /* @__PURE__ */ d("span", {
592
550
  className: "text-status-error-text",
593
551
  children: "*"
594
552
  })
595
553
  ]
596
- }), /* @__PURE__ */ u("input", {
554
+ }), /* @__PURE__ */ d("input", {
597
555
  id: `${O}-output-${r}`,
598
556
  type: "text",
599
557
  value: e.outputKey,
@@ -604,62 +562,62 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
604
562
  })]
605
563
  })]
606
564
  }),
607
- /* @__PURE__ */ d("fieldset", {
565
+ /* @__PURE__ */ f("fieldset", {
608
566
  className: "min-w-0",
609
- children: [/* @__PURE__ */ u("legend", {
610
- className: h,
567
+ children: [/* @__PURE__ */ d("legend", {
568
+ className: me,
611
569
  children: "Failure policy"
612
- }), /* @__PURE__ */ d("div", {
570
+ }), /* @__PURE__ */ f("div", {
613
571
  className: "grid grid-cols-1 gap-form-gap sm:grid-cols-2",
614
572
  children: [
615
- /* @__PURE__ */ d("div", {
573
+ /* @__PURE__ */ f("div", {
616
574
  className: "min-w-0",
617
575
  children: [
618
- /* @__PURE__ */ u("label", {
576
+ /* @__PURE__ */ d("label", {
619
577
  htmlFor: `${O}-onerror-${r}`,
620
- className: p,
578
+ className: m,
621
579
  children: o("bigconsole.pipelines.builder.stages.onErrorLabel", "On Error")
622
580
  }),
623
- /* @__PURE__ */ u("select", {
581
+ /* @__PURE__ */ d("select", {
624
582
  id: `${O}-onerror-${r}`,
625
583
  value: e.onError,
626
584
  onChange: (e) => $(r, { onError: e.target.value }),
627
585
  className: g,
628
- children: S.map((e) => /* @__PURE__ */ u("option", {
586
+ children: S.map((e) => /* @__PURE__ */ d("option", {
629
587
  value: e.value,
630
- children: Pe[e.value]
588
+ children: je[e.value]
631
589
  }, e.value))
632
590
  }),
633
- /* @__PURE__ */ u("p", {
634
- className: m,
591
+ /* @__PURE__ */ d("p", {
592
+ className: h,
635
593
  children: S.find((t) => t.value === e.onError)?.description
636
594
  })
637
595
  ]
638
596
  }),
639
- /* @__PURE__ */ u("div", {
597
+ /* @__PURE__ */ d("div", {
640
598
  className: "flex min-w-0 items-start",
641
- children: /* @__PURE__ */ d("label", {
599
+ children: /* @__PURE__ */ f("label", {
642
600
  htmlFor: `${O}-enabled-${r}`,
643
- className: `flex cursor-pointer items-center gap-2 ${f}`,
644
- children: [/* @__PURE__ */ u("input", {
601
+ className: `flex cursor-pointer items-center gap-2 ${p}`,
602
+ children: [/* @__PURE__ */ d("input", {
645
603
  id: `${O}-enabled-${r}`,
646
604
  type: "checkbox",
647
605
  checked: e.enabled,
648
606
  onChange: (e) => $(r, { enabled: e.target.checked }),
649
607
  className: `h-4 w-4 rounded border-[var(--color-border-subtle)] text-action-primary-bg ${t}`
650
- }), /* @__PURE__ */ u("span", {
608
+ }), /* @__PURE__ */ d("span", {
651
609
  className: "text-sm text-text-primary",
652
610
  children: o("bigconsole.pipelines.builder.stages.enabledLabel", "Enabled")
653
611
  })]
654
612
  })
655
613
  }),
656
- e.onError === "fallback" && /* @__PURE__ */ d("div", {
614
+ e.onError === "fallback" && /* @__PURE__ */ f("div", {
657
615
  className: "min-w-0 sm:col-span-2",
658
- children: [/* @__PURE__ */ u("label", {
616
+ children: [/* @__PURE__ */ d("label", {
659
617
  htmlFor: `${O}-fallback-${r}`,
660
- className: p,
618
+ className: m,
661
619
  children: o("bigconsole.pipelines.builder.stages.fallbackValueLabel", "Fallback Value (JSON)")
662
- }), /* @__PURE__ */ u("input", {
620
+ }), /* @__PURE__ */ d("input", {
663
621
  id: `${O}-fallback-${r}`,
664
622
  type: "text",
665
623
  value: e.fallbackValue,
@@ -677,68 +635,68 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
677
635
  }, r))
678
636
  })
679
637
  })] })
680
- }), /* @__PURE__ */ u("div", {
638
+ }), /* @__PURE__ */ d("div", {
681
639
  className: "min-w-0",
682
- children: /* @__PURE__ */ d(r, { children: [/* @__PURE__ */ u(n, {
640
+ children: /* @__PURE__ */ f(r, { children: [/* @__PURE__ */ d(n, {
683
641
  emphasis: "muted",
684
642
  headingLevel: 2,
685
643
  title: o("bigconsole.pipelines.builder.preview.heading", "Preview"),
686
644
  description: "What will be saved.",
687
645
  "data-testid": "pipeline-preview",
688
- children: /* @__PURE__ */ d("dl", {
646
+ children: /* @__PURE__ */ f("dl", {
689
647
  className: "flex flex-col gap-3 text-sm",
690
648
  children: [
691
- /* @__PURE__ */ d("div", {
649
+ /* @__PURE__ */ f("div", {
692
650
  className: "min-w-0",
693
- children: [/* @__PURE__ */ u("dt", {
651
+ children: [/* @__PURE__ */ d("dt", {
694
652
  className: "text-xs text-text-muted",
695
653
  children: o("bigconsole.pipelines.builder.preview.nameLabel", "Name")
696
- }), /* @__PURE__ */ u("dd", {
654
+ }), /* @__PURE__ */ d("dd", {
697
655
  className: "break-words text-text-primary",
698
656
  children: j || o("bigconsole.pipelines.builder.preview.untitled", "Untitled")
699
657
  })]
700
658
  }),
701
- /* @__PURE__ */ d("div", {
659
+ /* @__PURE__ */ f("div", {
702
660
  className: "min-w-0",
703
- children: [/* @__PURE__ */ u("dt", {
661
+ children: [/* @__PURE__ */ d("dt", {
704
662
  className: "text-xs text-text-muted",
705
663
  children: o("bigconsole.pipelines.builder.preview.statusLabel", "Status")
706
- }), /* @__PURE__ */ u("dd", {
664
+ }), /* @__PURE__ */ d("dd", {
707
665
  className: "mt-1",
708
- children: /* @__PURE__ */ u(re, {
666
+ children: /* @__PURE__ */ d(ne, {
709
667
  status: F,
710
668
  size: "sm"
711
669
  })
712
670
  })]
713
671
  }),
714
- /* @__PURE__ */ d("div", {
672
+ /* @__PURE__ */ f("div", {
715
673
  className: "min-w-0",
716
- children: [/* @__PURE__ */ u("dt", {
674
+ children: [/* @__PURE__ */ d("dt", {
717
675
  className: "text-xs text-text-muted",
718
676
  children: o("bigconsole.pipelines.builder.preview.stagesLabel", "Stages")
719
- }), /* @__PURE__ */ u("dd", {
677
+ }), /* @__PURE__ */ d("dd", {
720
678
  className: "text-text-primary",
721
679
  children: L.length
722
680
  })]
723
681
  }),
724
- L.length > 0 && /* @__PURE__ */ d("div", {
682
+ L.length > 0 && /* @__PURE__ */ f("div", {
725
683
  className: "min-w-0 border-t border-[var(--color-border-subtle)] pt-3",
726
- children: [/* @__PURE__ */ u("dt", {
684
+ children: [/* @__PURE__ */ d("dt", {
727
685
  className: "text-xs text-text-muted",
728
686
  children: o("bigconsole.pipelines.builder.preview.dataFlowLabel", "Data Flow")
729
- }), /* @__PURE__ */ d("dd", {
687
+ }), /* @__PURE__ */ f("dd", {
730
688
  className: "mt-1 flex flex-wrap items-center gap-1 text-xs",
731
- children: [L.map((e, t) => /* @__PURE__ */ d("span", {
689
+ children: [L.map((e, t) => /* @__PURE__ */ f("span", {
732
690
  className: "flex items-center gap-1",
733
- children: [/* @__PURE__ */ u("code", {
691
+ children: [/* @__PURE__ */ d("code", {
734
692
  className: "rounded-button bg-bg-surface px-1.5 py-0.5 font-mono break-all text-text-primary",
735
693
  children: e.inputKey
736
- }), /* @__PURE__ */ u("span", {
694
+ }), /* @__PURE__ */ d("span", {
737
695
  "aria-hidden": "true",
738
696
  className: "text-text-muted",
739
697
  children: "→"
740
698
  })]
741
- }, t)), /* @__PURE__ */ u("code", {
699
+ }, t)), /* @__PURE__ */ d("code", {
742
700
  className: "rounded-button bg-bg-surface px-1.5 py-0.5 font-mono break-all text-text-primary",
743
701
  children: L[L.length - 1].outputKey
744
702
  })]
@@ -746,19 +704,19 @@ var f = "min-h-[var(--size-controlHeight-md)]", p = "mb-1 block text-sm font-med
746
704
  })
747
705
  ]
748
706
  })
749
- }), /* @__PURE__ */ u(n, {
707
+ }), /* @__PURE__ */ d(n, {
750
708
  emphasis: "muted",
751
709
  padding: "compact",
752
710
  headingLevel: 2,
753
711
  title: o("bigconsole.pipelines.builder.tips.heading", "Tips"),
754
712
  "data-testid": "pipeline-builder-tips",
755
- children: /* @__PURE__ */ d("ul", {
713
+ children: /* @__PURE__ */ f("ul", {
756
714
  className: "list-disc space-y-1 pl-4 text-sm text-text-secondary",
757
715
  children: [
758
- /* @__PURE__ */ u("li", { children: o("bigconsole.pipelines.builder.tips.item1", "Each stage processes the output of the previous stage") }),
759
- /* @__PURE__ */ u("li", { children: o("bigconsole.pipelines.builder.tips.item2", "Use consistent input/output keys to chain data") }),
760
- /* @__PURE__ */ u("li", { children: o("bigconsole.pipelines.builder.tips.item3", "Set error handling per stage for robustness") }),
761
- /* @__PURE__ */ u("li", { children: o("bigconsole.pipelines.builder.tips.item4", "Disable stages to skip them during execution") })
716
+ /* @__PURE__ */ d("li", { children: o("bigconsole.pipelines.builder.tips.item1", "Each stage processes the output of the previous stage") }),
717
+ /* @__PURE__ */ d("li", { children: o("bigconsole.pipelines.builder.tips.item2", "Use consistent input/output keys to chain data") }),
718
+ /* @__PURE__ */ d("li", { children: o("bigconsole.pipelines.builder.tips.item3", "Set error handling per stage for robustness") }),
719
+ /* @__PURE__ */ d("li", { children: o("bigconsole.pipelines.builder.tips.item4", "Disable stages to skip them during execution") })
762
720
  ]
763
721
  })
764
722
  })] })