@loopstack/loopstack-studio 0.23.1 → 0.25.0

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 (147) hide show
  1. package/dist/api/config.js +3 -3
  2. package/dist/api/index.js +10 -12
  3. package/dist/api/processor.js +1 -1
  4. package/dist/api/secrets.js +16 -0
  5. package/dist/api/workflows.js +7 -1
  6. package/dist/components/dynamic-form/ArrayController.js +68 -64
  7. package/dist/components/dynamic-form/CodeContent.js +3 -3
  8. package/dist/components/dynamic-form/Form.js +46 -40
  9. package/dist/components/dynamic-form/FormElement.js +1 -1
  10. package/dist/components/dynamic-form/FormElementHeader.js +2 -2
  11. package/dist/components/dynamic-form/ObjectController.js +24 -21
  12. package/dist/components/dynamic-form/fields/BaseFieldWrapper.js +1 -1
  13. package/dist/components/dynamic-form/fields/CodeViewField.js +36 -36
  14. package/dist/components/dynamic-form/fields/InputField.js +20 -19
  15. package/dist/components/dynamic-form/fields/RadioField.js +18 -18
  16. package/dist/components/dynamic-form/fields/SelectField.js +19 -19
  17. package/dist/components/dynamic-form/fields/TextareaField.js +17 -17
  18. package/dist/components/feedback/LoadingCentered.js +1 -1
  19. package/dist/components/layout/MainLayout.js +18 -31
  20. package/dist/components/layout/StudioSidebar.js +169 -109
  21. package/dist/components/loopstack-elements/link.js +77 -76
  22. package/dist/components/loopstack-elements/tool.js +171 -0
  23. package/dist/components/page/PageBreadcrumbs.js +79 -32
  24. package/dist/components/ui-widgets/UiActions.js +10 -4
  25. package/dist/components/ui-widgets/widgets/ButtonFullWidth.js +8 -6
  26. package/dist/components/ui-widgets/widgets/SubmitButton.js +8 -6
  27. package/dist/features/code-explorer/components/FileContentViewer.js +92 -100
  28. package/dist/features/dashboard/RunItem.js +1 -1
  29. package/dist/features/debug/components/ConfigFlowViewer.js +2 -2
  30. package/dist/features/debug/components/{PipelineDebugHeader.js → WorkflowDebugHeader.js} +5 -5
  31. package/dist/features/debug/components/{PipelineDebugLegend.js → WorkflowDebugLegend.js} +2 -2
  32. package/dist/features/debug/components/{PipelineFlowViewer.js → WorkflowFlowViewer.js} +9 -9
  33. package/dist/features/debug/components/workflow-flow/WorkflowGraph.js +46 -0
  34. package/dist/features/debug/index.js +2 -2
  35. package/dist/features/debug/lib/flow-utils.js +142 -150
  36. package/dist/features/documents/DocumentRenderer.js +66 -30
  37. package/dist/features/documents/components/DocumentItem.js +2 -2
  38. package/dist/features/documents/components/DocumentList.js +18 -11
  39. package/dist/features/documents/document-details/DocumentDetails.js +4 -4
  40. package/dist/features/documents/renderers/AiMessage.js +12 -12
  41. package/dist/features/documents/renderers/ChoicesRenderer.js +92 -0
  42. package/dist/features/documents/renderers/ClaudeMessage.js +1 -1
  43. package/dist/features/documents/renderers/ConfirmPromptRenderer.js +56 -0
  44. package/dist/features/documents/renderers/DocumentFormRenderer.js +95 -65
  45. package/dist/features/documents/renderers/LinkMessageRenderer.js +8 -10
  46. package/dist/features/documents/renderers/SecretInputRenderer.js +87 -0
  47. package/dist/features/documents/renderers/TextPromptRenderer.js +57 -0
  48. package/dist/features/documents/renderers/useDocumentTransition.js +30 -0
  49. package/dist/features/oauth/OAuthPromptRenderer.js +20 -20
  50. package/dist/features/runs/Runs.js +8 -8
  51. package/dist/features/workbench/Workbench.js +35 -35
  52. package/dist/features/workbench/WorkflowItem.js +10 -9
  53. package/dist/features/workbench/WorkflowList.js +56 -73
  54. package/dist/features/workbench/components/NewRunDialog.js +18 -18
  55. package/dist/features/workbench/components/WorkbenchFilesPanel.js +33 -26
  56. package/dist/features/workbench/components/WorkbenchFloatingPanel.js +13 -44
  57. package/dist/features/workbench/components/WorkbenchFlowPanel.js +27 -29
  58. package/dist/features/workbench/components/WorkbenchIconSidebar.js +17 -17
  59. package/dist/features/workbench/components/WorkbenchPreviewPanel.js +2 -2
  60. package/dist/features/workbench/components/WorkbenchSecretsPanel.js +182 -0
  61. package/dist/features/workbench/components/WorkbenchSettingsModal.js +16 -41
  62. package/dist/features/workbench/components/WorkflowForms.js +14 -13
  63. package/dist/features/workbench/components/WorkflowHistoryItem.js +60 -81
  64. package/dist/features/workbench/components/{PipelineHistoryList.js → WorkflowHistoryList.js} +5 -5
  65. package/dist/features/workbench/components/buttons/WorkflowButtons.js +56 -54
  66. package/dist/features/workbench/hooks/useWorkflowData.js +10 -10
  67. package/dist/features/workbench/hooks/useWorkflowListState.js +8 -45
  68. package/dist/features/workbench/index.js +2 -3
  69. package/dist/features/workbench/providers/RemoteFileExplorerProvider.js +132 -117
  70. package/dist/features/workbench/providers/ScrollProvider.js +2 -2
  71. package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +4 -4
  72. package/dist/features/workspaces/Workspaces.js +1 -1
  73. package/dist/features/workspaces/components/CreateWorkspace.js +12 -12
  74. package/dist/features/workspaces/components/ExecutionTimeline.js +22 -21
  75. package/dist/features/workspaces/components/{NewPipelineRunDialog.js → NewWorkflowRunDialog.js} +6 -6
  76. package/dist/features/workspaces/components/{PipelineForm.js → WorkflowRunForm.js} +31 -31
  77. package/dist/features/workspaces/components/WorkspaceHomePage.js +11 -11
  78. package/dist/features/workspaces/components/{pipeline-form → workflow-form}/ArgumentsView.js +1 -1
  79. package/dist/features/workspaces/components/{pipeline-form → workflow-form}/SelectionView.js +16 -16
  80. package/dist/hooks/index.js +3 -3
  81. package/dist/hooks/query-keys.js +34 -68
  82. package/dist/hooks/useConfig.js +5 -5
  83. package/dist/hooks/useProcessor.js +5 -5
  84. package/dist/hooks/useSecrets.js +69 -0
  85. package/dist/hooks/useWorkflows.js +155 -68
  86. package/dist/index.d.ts +158 -116
  87. package/dist/index.js +5 -5
  88. package/dist/packages/contracts/dist/enums/index.js +11 -12
  89. package/dist/packages/contracts/dist/enums/workflow-state.enum.js +1 -1
  90. package/dist/pages/DashboardPage.js +87 -35
  91. package/dist/pages/DebugWorkflowDetailsPage.js +8 -8
  92. package/dist/pages/DebugWorkflowsPage.js +10 -10
  93. package/dist/pages/EmbedWorkbenchPage.js +39 -45
  94. package/dist/pages/PreviewWorkbenchPage.js +130 -255
  95. package/dist/pages/RunsListPage.js +1 -1
  96. package/dist/pages/StudioLandingPage.js +13 -13
  97. package/dist/pages/WorkbenchPage.js +6 -6
  98. package/dist/pages/WorkflowDebugPage.js +114 -0
  99. package/dist/pages/WorkspacePage.js +4 -2
  100. package/dist/providers/InvalidationEventsProvider.js +19 -19
  101. package/dist/providers/SseProvider.js +0 -1
  102. package/dist/routing/LocalRouter.js +14 -17
  103. package/dist/types/ai.types.js +13 -0
  104. package/package.json +2 -3
  105. package/dist/api/namespaces.js +0 -7
  106. package/dist/api/pipelines.js +0 -13
  107. package/dist/components/ai-elements/tool.js +0 -158
  108. package/dist/features/debug/components/pipeline-flow/WorkflowGraph.js +0 -41
  109. package/dist/features/workbench/NavigationItems.js +0 -52
  110. package/dist/features/workbench/WorkbenchNavigation.js +0 -38
  111. package/dist/features/workbench/components/NavigationItem.js +0 -68
  112. package/dist/features/workbench/hooks/useIntersectionObserver.js +0 -44
  113. package/dist/hooks/useNamespaceTree.js +0 -27
  114. package/dist/hooks/useNamespaces.js +0 -25
  115. package/dist/hooks/usePipelines.js +0 -161
  116. package/dist/node_modules/@ai-sdk/provider/dist/index.js +0 -65
  117. package/dist/node_modules/@ai-sdk/provider-utils/dist/index.js +0 -1008
  118. package/dist/node_modules/ai/dist/index.js +0 -1083
  119. package/dist/node_modules/zod/v3/ZodError.js +0 -79
  120. package/dist/node_modules/zod/v3/errors.js +0 -6
  121. package/dist/node_modules/zod/v3/helpers/errorUtil.js +0 -5
  122. package/dist/node_modules/zod/v3/helpers/parseUtil.js +0 -90
  123. package/dist/node_modules/zod/v3/helpers/util.js +0 -72
  124. package/dist/node_modules/zod/v3/locales/en.js +0 -58
  125. package/dist/node_modules/zod/v3/types.js +0 -2425
  126. package/dist/node_modules/zod/v4/classic/errors.js +0 -21
  127. package/dist/node_modules/zod/v4/classic/iso.js +0 -29
  128. package/dist/node_modules/zod/v4/classic/parse.js +0 -4
  129. package/dist/node_modules/zod/v4/classic/schemas.js +0 -392
  130. package/dist/node_modules/zod/v4/core/api.js +0 -532
  131. package/dist/node_modules/zod/v4/core/checks.js +0 -283
  132. package/dist/node_modules/zod/v4/core/core.js +0 -44
  133. package/dist/node_modules/zod/v4/core/doc.js +0 -21
  134. package/dist/node_modules/zod/v4/core/errors.js +0 -40
  135. package/dist/node_modules/zod/v4/core/json-schema-processors.js +0 -305
  136. package/dist/node_modules/zod/v4/core/parse.js +0 -66
  137. package/dist/node_modules/zod/v4/core/regexes.js +0 -28
  138. package/dist/node_modules/zod/v4/core/registries.js +0 -38
  139. package/dist/node_modules/zod/v4/core/schemas.js +0 -863
  140. package/dist/node_modules/zod/v4/core/to-json-schema.js +0 -220
  141. package/dist/node_modules/zod/v4/core/util.js +0 -267
  142. package/dist/node_modules/zod/v4/core/versions.js +0 -6
  143. package/dist/packages/contracts/dist/enums/pipeline-state.js +0 -10
  144. package/dist/pages/PipelineDebugPage.js +0 -115
  145. /package/dist/features/debug/components/{pipeline-flow → workflow-flow}/StateNode.js +0 -0
  146. /package/dist/features/debug/components/{pipeline-flow → workflow-flow}/WorkflowTransitionEdge.js +0 -0
  147. /package/dist/features/workspaces/components/{pipeline-form → workflow-form}/HeaderSection.js +0 -0
@@ -0,0 +1,171 @@
1
+ "use client";
2
+ import { cn } from "../../lib/utils.js";
3
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "../ui/collapsible.js";
4
+ import { Tooltip, TooltipContent, TooltipTrigger } from "../ui/tooltip.js";
5
+ import { CodeBlock } from "../ai-elements/code-block.js";
6
+ import { c } from "react/compiler-runtime";
7
+ import { isValidElement } from "react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { CheckCircleIcon, ChevronDownIcon, CircleIcon, ClockIcon, XCircleIcon } from "lucide-react";
10
+ const Tool = (a) => {
11
+ let o = c(8), s, l;
12
+ o[0] === a ? (s = o[1], l = o[2]) : ({className: s, ...l} = a, o[0] = a, o[1] = s, o[2] = l);
13
+ let u;
14
+ o[3] === s ? u = o[4] : (u = cn("not-prose mt-3 w-full", s), o[3] = s, o[4] = u);
15
+ let d;
16
+ return o[5] !== l || o[6] !== u ? (d = /* @__PURE__ */ jsx(Collapsible, {
17
+ className: u,
18
+ ...l
19
+ }), o[5] = l, o[6] = u, o[7] = d) : d = o[7], d;
20
+ };
21
+ var statusConfig = {
22
+ "input-streaming": {
23
+ label: "Pending",
24
+ icon: /* @__PURE__ */ jsx(CircleIcon, { className: "size-4" })
25
+ },
26
+ "input-available": {
27
+ label: "Running",
28
+ icon: /* @__PURE__ */ jsx(ClockIcon, { className: "size-4 animate-pulse" })
29
+ },
30
+ "approval-requested": {
31
+ label: "Awaiting Approval",
32
+ icon: /* @__PURE__ */ jsx(ClockIcon, { className: "size-4 text-yellow-600" })
33
+ },
34
+ "approval-responded": {
35
+ label: "Responded",
36
+ icon: /* @__PURE__ */ jsx(CheckCircleIcon, { className: "size-4 text-blue-600" })
37
+ },
38
+ "output-available": {
39
+ label: "Completed",
40
+ icon: /* @__PURE__ */ jsx(CheckCircleIcon, { className: "size-4 text-green-600" })
41
+ },
42
+ "output-error": {
43
+ label: "Error",
44
+ icon: /* @__PURE__ */ jsx(XCircleIcon, { className: "size-4 text-red-600" })
45
+ },
46
+ "output-denied": {
47
+ label: "Denied",
48
+ icon: /* @__PURE__ */ jsx(XCircleIcon, { className: "size-4 text-orange-600" })
49
+ }
50
+ };
51
+ const ToolHeader = (i) => {
52
+ let a = c(28), d, f, p, h, g;
53
+ a[0] === i ? (d = a[1], f = a[2], p = a[3], h = a[4], g = a[5]) : ({className: d, title: h, type: g, state: p, ...f} = i, a[0] = i, a[1] = d, a[2] = f, a[3] = p, a[4] = h, a[5] = g);
54
+ let _;
55
+ a[6] === d ? _ = a[7] : (_ = cn("flex w-full items-center justify-between gap-3 py-1", d), a[6] = d, a[7] = _);
56
+ let v = statusConfig[p], b;
57
+ a[8] === v.icon ? b = a[9] : (b = /* @__PURE__ */ jsx(TooltipTrigger, {
58
+ asChild: !0,
59
+ children: /* @__PURE__ */ jsx("span", {
60
+ className: "text-muted-foreground flex shrink-0 items-center",
61
+ children: v.icon
62
+ })
63
+ }), a[8] = v.icon, a[9] = b);
64
+ let x = statusConfig[p], S;
65
+ a[10] === x.label ? S = a[11] : (S = /* @__PURE__ */ jsx(TooltipContent, {
66
+ side: "top",
67
+ children: x.label
68
+ }), a[10] = x.label, a[11] = S);
69
+ let C;
70
+ a[12] !== b || a[13] !== S ? (C = /* @__PURE__ */ jsxs(Tooltip, { children: [b, S] }), a[12] = b, a[13] = S, a[14] = C) : C = a[14];
71
+ let w;
72
+ a[15] !== h || a[16] !== g ? (w = h ?? g.split("-").slice(1).join("-"), a[15] = h, a[16] = g, a[17] = w) : w = a[17];
73
+ let T;
74
+ a[18] === w ? T = a[19] : (T = /* @__PURE__ */ jsx("span", {
75
+ className: "text-muted-foreground text-sm",
76
+ children: w
77
+ }), a[18] = w, a[19] = T);
78
+ let E;
79
+ a[20] !== C || a[21] !== T ? (E = /* @__PURE__ */ jsxs("div", {
80
+ className: "flex items-center gap-1.5",
81
+ children: [C, T]
82
+ }), a[20] = C, a[21] = T, a[22] = E) : E = a[22];
83
+ let D;
84
+ a[23] === Symbol.for("react.memo_cache_sentinel") ? (D = /* @__PURE__ */ jsx(ChevronDownIcon, { className: "text-muted-foreground size-4 transition-transform group-data-[state=open]:rotate-180" }), a[23] = D) : D = a[23];
85
+ let O;
86
+ return a[24] !== f || a[25] !== _ || a[26] !== E ? (O = /* @__PURE__ */ jsxs(CollapsibleTrigger, {
87
+ className: _,
88
+ ...f,
89
+ children: [E, D]
90
+ }), a[24] = f, a[25] = _, a[26] = E, a[27] = O) : O = a[27], O;
91
+ }, ToolContent = (i) => {
92
+ let o = c(8), s, l;
93
+ o[0] === i ? (s = o[1], l = o[2]) : ({className: s, ...l} = i, o[0] = i, o[1] = s, o[2] = l);
94
+ let u;
95
+ o[3] === s ? u = o[4] : (u = cn("data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground data-[state=closed]:animate-out data-[state=open]:animate-in outline-none", s), o[3] = s, o[4] = u);
96
+ let d;
97
+ return o[5] !== l || o[6] !== u ? (d = /* @__PURE__ */ jsx(CollapsibleContent, {
98
+ className: u,
99
+ ...l
100
+ }), o[5] = l, o[6] = u, o[7] = d) : d = o[7], d;
101
+ }, ToolInput = (i) => {
102
+ let a = c(15), o, s, l;
103
+ a[0] === i ? (o = a[1], s = a[2], l = a[3]) : ({className: o, input: s, ...l} = i, a[0] = i, a[1] = o, a[2] = s, a[3] = l);
104
+ let u;
105
+ a[4] === o ? u = a[5] : (u = cn("space-y-2 overflow-hidden py-2", o), a[4] = o, a[5] = u);
106
+ let f;
107
+ a[6] === Symbol.for("react.memo_cache_sentinel") ? (f = /* @__PURE__ */ jsx("h4", {
108
+ className: "text-muted-foreground text-xs font-medium tracking-wide uppercase",
109
+ children: "Parameters"
110
+ }), a[6] = f) : f = a[6];
111
+ let p;
112
+ a[7] === s ? p = a[8] : (p = JSON.stringify(s, null, 2), a[7] = s, a[8] = p);
113
+ let m;
114
+ a[9] === p ? m = a[10] : (m = /* @__PURE__ */ jsx("div", {
115
+ className: "bg-muted/50 rounded-md",
116
+ children: /* @__PURE__ */ jsx(CodeBlock, {
117
+ code: p,
118
+ language: "json"
119
+ })
120
+ }), a[9] = p, a[10] = m);
121
+ let h;
122
+ return a[11] !== l || a[12] !== u || a[13] !== m ? (h = /* @__PURE__ */ jsxs("div", {
123
+ className: u,
124
+ ...l,
125
+ children: [f, m]
126
+ }), a[11] = l, a[12] = u, a[13] = m, a[14] = h) : h = a[14], h;
127
+ }, ToolOutput = (i) => {
128
+ let a = c(30), o, s, l, u;
129
+ if (a[0] === i ? (o = a[1], s = a[2], l = a[3], u = a[4]) : ({className: o, output: l, errorText: s, ...u} = i, a[0] = i, a[1] = o, a[2] = s, a[3] = l, a[4] = u), !(l || s)) return null;
130
+ let p = l, m;
131
+ a[5] === p ? m = a[6] : (m = /* @__PURE__ */ jsx("div", { children: p }), a[5] = p, a[6] = m);
132
+ let h = m;
133
+ if (typeof l == "object" && !isValidElement(l)) {
134
+ let e;
135
+ a[7] === l ? e = a[8] : (e = JSON.stringify(l, null, 2), a[7] = l, a[8] = e);
136
+ let i;
137
+ a[9] === e ? i = a[10] : (i = /* @__PURE__ */ jsx(CodeBlock, {
138
+ code: e,
139
+ language: "json"
140
+ }), a[9] = e, a[10] = i), h = i;
141
+ } else if (typeof l == "string") {
142
+ let e;
143
+ a[11] === l ? e = a[12] : (e = /* @__PURE__ */ jsx(CodeBlock, {
144
+ code: l,
145
+ language: "json"
146
+ }), a[11] = l, a[12] = e), h = e;
147
+ }
148
+ let g;
149
+ a[13] === o ? g = a[14] : (g = cn("space-y-2 py-2", o), a[13] = o, a[14] = g);
150
+ let _ = s ? "Error" : "Result", v;
151
+ a[15] === _ ? v = a[16] : (v = /* @__PURE__ */ jsx("h4", {
152
+ className: "text-muted-foreground text-xs font-medium tracking-wide uppercase",
153
+ children: _
154
+ }), a[15] = _, a[16] = v);
155
+ let y = s ? "bg-destructive/10 text-destructive" : "bg-muted/50 text-foreground", b;
156
+ a[17] === y ? b = a[18] : (b = cn("overflow-x-auto rounded-md text-xs [&_table]:w-full", y), a[17] = y, a[18] = b);
157
+ let x;
158
+ a[19] === s ? x = a[20] : (x = s && /* @__PURE__ */ jsx("div", { children: s }), a[19] = s, a[20] = x);
159
+ let S;
160
+ a[21] !== h || a[22] !== b || a[23] !== x ? (S = /* @__PURE__ */ jsxs("div", {
161
+ className: b,
162
+ children: [x, h]
163
+ }), a[21] = h, a[22] = b, a[23] = x, a[24] = S) : S = a[24];
164
+ let C;
165
+ return a[25] !== u || a[26] !== g || a[27] !== v || a[28] !== S ? (C = /* @__PURE__ */ jsxs("div", {
166
+ className: g,
167
+ ...u,
168
+ children: [v, S]
169
+ }), a[25] = u, a[26] = g, a[27] = v, a[28] = S, a[29] = C) : C = a[29], C;
170
+ };
171
+ export { Tool, ToolContent, ToolHeader, ToolInput, ToolOutput };
@@ -1,41 +1,88 @@
1
1
  import { cn } from "../../lib/utils.js";
2
- import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "../ui/breadcrumb.js";
2
+ import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "../ui/breadcrumb.js";
3
3
  import { c } from "react/compiler-runtime";
4
- import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
5
  import { useNavigate } from "react-router-dom";
6
6
  import { ChevronRight } from "lucide-react";
7
- var PageBreadcrumbs_default = (p) => {
8
- let m = c(15), { breadcrumbData: h, className: g } = p, _ = useNavigate(), v;
9
- m[0] === _ ? v = m[1] : (v = (e, d) => {
10
- e.preventDefault(), _(d);
11
- }, m[0] = _, m[1] = v);
12
- let y = v, b;
13
- m[2] === g ? b = m[3] : (b = cn("ml-3", g), m[2] = g, m[3] = b);
14
- let x;
15
- if (m[4] !== h || m[5] !== y) {
7
+ var PageBreadcrumbs_default = (g) => {
8
+ let _ = c(26), { breadcrumbData: v, className: y } = g, b = useNavigate(), x;
9
+ _[0] === b ? x = _[1] : (x = (e, m) => {
10
+ e.preventDefault(), b(m);
11
+ }, _[0] = b, _[1] = x);
12
+ let S = x, C = _temp, w = v.length > 2, T = v[0], E = v[v.length - 1], D;
13
+ _[2] === y ? D = _[3] : (D = cn("ml-3 min-w-0 max-w-full", y), _[2] = y, _[3] = D);
14
+ let O;
15
+ _[4] !== v.length || _[5] !== T || _[6] !== S || _[7] !== w || _[8] !== E ? (O = v.length <= 1 ? null : /* @__PURE__ */ jsxs(Fragment, { children: [
16
+ /* @__PURE__ */ jsx(BreadcrumbItem, {
17
+ className: "min-w-0",
18
+ children: T.current ? /* @__PURE__ */ jsx(BreadcrumbPage, {
19
+ className: "flex min-w-0 items-center gap-2",
20
+ children: C(T)
21
+ }) : /* @__PURE__ */ jsx(BreadcrumbLink, {
22
+ href: T.href,
23
+ onClick: (e) => T.href && S(e, T.href),
24
+ className: "flex min-w-0 items-center gap-2",
25
+ title: T.label,
26
+ children: C(T)
27
+ })
28
+ }),
29
+ w ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(BreadcrumbSeparator, { children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" }) }), /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbEllipsis, {}) })] }) : null,
30
+ /* @__PURE__ */ jsx(BreadcrumbSeparator, { children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" }) }),
31
+ /* @__PURE__ */ jsx(BreadcrumbItem, {
32
+ className: "min-w-0",
33
+ children: /* @__PURE__ */ jsx(BreadcrumbPage, {
34
+ className: "flex min-w-0 items-center gap-2",
35
+ title: E.label,
36
+ children: C(E)
37
+ })
38
+ })
39
+ ] }), _[4] = v.length, _[5] = T, _[6] = S, _[7] = w, _[8] = E, _[9] = O) : O = _[9];
40
+ let k;
41
+ _[10] === O ? k = _[11] : (k = /* @__PURE__ */ jsx(BreadcrumbList, {
42
+ className: "flex-nowrap overflow-hidden sm:hidden",
43
+ children: O
44
+ }), _[10] = O, _[11] = k);
45
+ let A;
46
+ if (_[12] !== v || _[13] !== S) {
16
47
  let e;
17
- m[7] !== h.length || m[8] !== y ? (e = (e, d) => {
18
- let f = d === h.length - 1;
48
+ _[15] !== v.length || _[16] !== S ? (e = (e, m) => {
49
+ let h = m === v.length - 1;
19
50
  return /* @__PURE__ */ jsxs("div", {
20
51
  className: "contents",
21
- children: [/* @__PURE__ */ jsx(BreadcrumbItem, { children: f || e.current ? /* @__PURE__ */ jsxs(BreadcrumbPage, {
22
- className: "flex items-center gap-2",
23
- children: [e.icon, e.label]
24
- }) : /* @__PURE__ */ jsxs(BreadcrumbLink, {
25
- href: e.href,
26
- onClick: (d) => e.href && y(d, e.href),
27
- className: "flex items-center gap-2",
28
- children: [e.icon, e.label]
29
- }) }), !f && /* @__PURE__ */ jsx(BreadcrumbSeparator, { children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" }) })]
30
- }, d);
31
- }, m[7] = h.length, m[8] = y, m[9] = e) : e = m[9], x = h.map(e), m[4] = h, m[5] = y, m[6] = x;
32
- } else x = m[6];
33
- let S;
34
- m[10] === x ? S = m[11] : (S = /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: x }) }), m[10] = x, m[11] = S);
35
- let C;
36
- return m[12] !== b || m[13] !== S ? (C = /* @__PURE__ */ jsx("div", {
37
- className: b,
38
- children: S
39
- }), m[12] = b, m[13] = S, m[14] = C) : C = m[14], C;
52
+ children: [/* @__PURE__ */ jsx(BreadcrumbItem, {
53
+ className: "min-w-0",
54
+ children: h || e.current ? /* @__PURE__ */ jsx(BreadcrumbPage, {
55
+ className: "flex min-w-0 items-center gap-2",
56
+ title: e.label,
57
+ children: C(e)
58
+ }) : /* @__PURE__ */ jsx(BreadcrumbLink, {
59
+ href: e.href,
60
+ onClick: (m) => e.href && S(m, e.href),
61
+ className: "flex min-w-0 items-center gap-2",
62
+ title: e.label,
63
+ children: C(e)
64
+ })
65
+ }), !h && /* @__PURE__ */ jsx(BreadcrumbSeparator, { children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" }) })]
66
+ }, m);
67
+ }, _[15] = v.length, _[16] = S, _[17] = e) : e = _[17], A = v.map(e), _[12] = v, _[13] = S, _[14] = A;
68
+ } else A = _[14];
69
+ let j;
70
+ _[18] === A ? j = _[19] : (j = /* @__PURE__ */ jsx(BreadcrumbList, {
71
+ className: "hidden flex-nowrap overflow-hidden sm:flex",
72
+ children: A
73
+ }), _[18] = A, _[19] = j);
74
+ let M;
75
+ _[20] !== k || _[21] !== j ? (M = /* @__PURE__ */ jsxs(Breadcrumb, { children: [k, j] }), _[20] = k, _[21] = j, _[22] = M) : M = _[22];
76
+ let N;
77
+ return _[23] !== D || _[24] !== M ? (N = /* @__PURE__ */ jsx("div", {
78
+ className: D,
79
+ children: M
80
+ }), _[23] = D, _[24] = M, _[25] = N) : N = _[25], N;
40
81
  };
82
+ function _temp(e) {
83
+ return /* @__PURE__ */ jsxs(Fragment, { children: [e.icon, /* @__PURE__ */ jsx("span", {
84
+ className: "min-w-0 truncate",
85
+ children: e.label
86
+ })] });
87
+ }
41
88
  export { PageBreadcrumbs_default as default };
@@ -7,17 +7,23 @@ var UiActions_default = (i) => {
7
7
  if (a[0] !== o || a[1] !== s || a[2] !== l || a[3] !== u || a[4] !== f || a[5] !== d) {
8
8
  let r;
9
9
  a[7] !== s || a[8] !== l || a[9] !== u || a[10] !== f || a[11] !== d ? (r = (r, i) => {
10
- let { enabledWhen: a } = r, o = r.options?.transition;
10
+ let { enabledWhen: a } = r, o = r.options?.transition, p = u || a !== void 0 && (!l || !a.includes(l)) || o !== void 0 && !s.includes(o);
11
11
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(UiWidget_default, {
12
12
  config: r,
13
13
  onSubmit: (e) => {
14
- if (!o) {
15
- console.error(`[UiActions] Widget "${r.widget ?? r.type}" has no transition configured.`);
14
+ if (console.log("[UiActions] handleSubmit called", {
15
+ transition: o,
16
+ data: e,
17
+ isDisabled: p,
18
+ currentPlace: l,
19
+ availableTransitions: s
20
+ }), !o) {
21
+ console.error(`[UiActions] Widget "${r.widget}" has no transition configured.`);
16
22
  return;
17
23
  }
18
24
  d(o, e);
19
25
  },
20
- disabled: u || a !== void 0 && (!l || !a.includes(l)) || o !== void 0 && !s.includes(o),
26
+ disabled: p,
21
27
  isLoading: f
22
28
  }) }, `ui-widget-${i}-${o ?? r.widget}`);
23
29
  }, a[7] = s, a[8] = l, a[9] = u, a[10] = f, a[11] = d, a[12] = r) : r = a[12], p = o.map(r), a[0] = o, a[1] = s, a[2] = l, a[3] = u, a[4] = f, a[5] = d, a[6] = p;
@@ -4,20 +4,22 @@ import React from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { Loader2 } from "lucide-react";
6
6
  const ButtonFullWidth = (a) => {
7
- let o = c(11), { ui: s, disabled: l, onClick: u, isLoading: d } = a, f = s?.label ?? "Submit", p;
7
+ let o = c(13), { ui: s, disabled: l, onClick: u, isLoading: d } = a, f = s?.label ?? "Submit", p;
8
8
  o[0] === s?.props ? p = o[1] : (p = s?.props ?? {}, o[0] = s?.props, o[1] = p);
9
9
  let m = p, h = s?.variant ?? "default", g = l || d, _;
10
- o[2] === d ? _ = o[3] : (_ = d && /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }), o[2] = d, o[3] = _);
10
+ o[2] === u ? _ = o[3] : (_ = () => u(), o[2] = u, o[3] = _);
11
11
  let v;
12
- return o[4] !== u || o[5] !== m || o[6] !== f || o[7] !== g || o[8] !== _ || o[9] !== h ? (v = /* @__PURE__ */ jsxs(Button, {
12
+ o[4] === d ? v = o[5] : (v = d && /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }), o[4] = d, o[5] = v);
13
+ let y;
14
+ return o[6] !== m || o[7] !== f || o[8] !== g || o[9] !== _ || o[10] !== v || o[11] !== h ? (y = /* @__PURE__ */ jsxs(Button, {
13
15
  type: "button",
14
16
  variant: h,
15
17
  ...m,
16
18
  disabled: g,
17
- onClick: u,
19
+ onClick: _,
18
20
  size: "lg",
19
21
  className: "w-full font-medium",
20
- children: [_, f]
21
- }), o[4] = u, o[5] = m, o[6] = f, o[7] = g, o[8] = _, o[9] = h, o[10] = v) : v = o[10], v;
22
+ children: [v, f]
23
+ }), o[6] = m, o[7] = f, o[8] = g, o[9] = _, o[10] = v, o[11] = h, o[12] = y) : y = o[12], y;
22
24
  };
23
25
  export { ButtonFullWidth };
@@ -4,20 +4,22 @@ import React from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { Loader2 } from "lucide-react";
6
6
  const SubmitButton = (a) => {
7
- let o = c(10), { ui: s, disabled: l, onClick: u, isLoading: d } = a, f = s?.label || "Submit", p;
7
+ let o = c(12), { ui: s, disabled: l, onClick: u, isLoading: d } = a, f = s?.label || "Submit", p;
8
8
  o[0] === s?.props ? p = o[1] : (p = s?.props || {}, o[0] = s?.props, o[1] = p);
9
9
  let m = p, h = l || d, g;
10
- o[2] === d ? g = o[3] : (g = d && /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }), o[2] = d, o[3] = g);
10
+ o[2] === u ? g = o[3] : (g = () => u(), o[2] = u, o[3] = g);
11
11
  let _;
12
- return o[4] !== u || o[5] !== m || o[6] !== f || o[7] !== h || o[8] !== g ? (_ = /* @__PURE__ */ jsxs(Button, {
12
+ o[4] === d ? _ = o[5] : (_ = d && /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }), o[4] = d, o[5] = _);
13
+ let v;
14
+ return o[6] !== m || o[7] !== f || o[8] !== h || o[9] !== g || o[10] !== _ ? (v = /* @__PURE__ */ jsxs(Button, {
13
15
  type: "button",
14
16
  variant: "default",
15
17
  ...m,
16
18
  disabled: h,
17
- onClick: u,
19
+ onClick: g,
18
20
  size: "default",
19
21
  className: "w-48",
20
- children: [g, f]
21
- }), o[4] = u, o[5] = m, o[6] = f, o[7] = h, o[8] = g, o[9] = _) : _ = o[9], _;
22
+ children: [_, f]
23
+ }), o[6] = m, o[7] = f, o[8] = h, o[9] = g, o[10] = _, o[11] = v) : v = o[11], v;
22
24
  };
23
25
  export { SubmitButton };
@@ -1,5 +1,5 @@
1
1
  import { cn } from "../../../lib/utils.js";
2
- import { ScrollArea } from "../../../components/ui/scroll-area.js";
2
+ import { ScrollArea, ScrollBar } from "../../../components/ui/scroll-area.js";
3
3
  import MarkdownContent_default from "../../../components/dynamic-form/MarkdownContent.js";
4
4
  import { ReactFlowProvider } from "../../../node_modules/@xyflow/react/dist/esm/index.js";
5
5
  import { Tabs, TabsContent, TabsList, TabsTrigger } from "../../../components/ui/tabs.js";
@@ -29,8 +29,8 @@ var BINARY_EXTENSIONS = new Set([
29
29
  ".dylib"
30
30
  ]);
31
31
  function isBinaryFileName(e) {
32
- let h = e.includes(".") ? e.slice(e.lastIndexOf(".")).toLowerCase() : "";
33
- return BINARY_EXTENSIONS.has(h);
32
+ let g = e.includes(".") ? e.slice(e.lastIndexOf(".")).toLowerCase() : "";
33
+ return BINARY_EXTENSIONS.has(g);
34
34
  }
35
35
  var EXTENSION_LANGUAGE = {
36
36
  ".ts": "typescript",
@@ -67,64 +67,101 @@ var EXTENSION_LANGUAGE = {
67
67
  function getLanguageForFileName(e) {
68
68
  return EXTENSION_LANGUAGE[e.includes(".") ? e.slice(e.lastIndexOf(".")).toLowerCase() : ""] ?? "plaintext";
69
69
  }
70
- function FileContentViewer(v) {
71
- let y = c(34), { selectedFile: b, content: x, workflowConfig: S, isLoading: C, className: w } = v, T = S === void 0 ? null : S, E = C === void 0 ? !1 : C;
72
- if (!b) {
73
- let h;
74
- y[0] === w ? h = y[1] : (h = cn("flex flex-1 items-center justify-center bg-background", w), y[0] = w, y[1] = h);
70
+ function FileContentViewer(y) {
71
+ let b = c(41), { selectedFile: x, content: S, workflowConfig: C, isLoading: w, className: T } = y, E = C === void 0 ? null : C, D = w === void 0 ? !1 : w;
72
+ if (!x) {
75
73
  let g;
76
- y[2] === Symbol.for("react.memo_cache_sentinel") ? (g = /* @__PURE__ */ jsx("p", {
74
+ b[0] === T ? g = b[1] : (g = cn("flex flex-1 items-center justify-center bg-background", T), b[0] = T, b[1] = g);
75
+ let _;
76
+ b[2] === Symbol.for("react.memo_cache_sentinel") ? (_ = /* @__PURE__ */ jsx("p", {
77
77
  className: "text-sm text-muted-foreground",
78
78
  children: "Select a tab to view its content"
79
- }), y[2] = g) : g = y[2];
80
- let _;
81
- return y[3] === h ? _ = y[4] : (_ = /* @__PURE__ */ jsx("div", {
82
- className: h,
83
- children: g
84
- }), y[3] = h, y[4] = _), _;
79
+ }), b[2] = _) : _ = b[2];
80
+ let v;
81
+ return b[3] === g ? v = b[4] : (v = /* @__PURE__ */ jsx("div", {
82
+ className: g,
83
+ children: _
84
+ }), b[3] = g, b[4] = v), v;
85
85
  }
86
- let D = isBinaryFileName(b.name), O = x ?? (D ? null : `// ${b.path ?? b.name}\n\n(No content available)`);
87
- if (D && x == null) {
88
- let h;
89
- y[5] === w ? h = y[6] : (h = cn("flex flex-1 flex-col rounded-lg border bg-background", w), y[5] = w, y[6] = h);
86
+ let O = isBinaryFileName(x.name), k = S != null, A = S ?? "";
87
+ if (O && !k) {
90
88
  let g;
91
- y[7] === Symbol.for("react.memo_cache_sentinel") ? (g = /* @__PURE__ */ jsx("div", {
89
+ b[5] === T ? g = b[6] : (g = cn("flex flex-1 flex-col rounded-lg border bg-background", T), b[5] = T, b[6] = g);
90
+ let _;
91
+ b[7] === Symbol.for("react.memo_cache_sentinel") ? (_ = /* @__PURE__ */ jsx("div", {
92
92
  className: "flex flex-1 items-center justify-center p-8",
93
93
  children: /* @__PURE__ */ jsx("p", {
94
94
  className: "text-sm text-muted-foreground",
95
95
  children: "Binary file — preview not available"
96
96
  })
97
- }), y[7] = g) : g = y[7];
97
+ }), b[7] = _) : _ = b[7];
98
+ let v;
99
+ return b[8] === g ? v = b[9] : (v = /* @__PURE__ */ jsx("div", {
100
+ className: g,
101
+ children: _
102
+ }), b[8] = g, b[9] = v), v;
103
+ }
104
+ if (!k && !D) {
105
+ let g;
106
+ b[10] === T ? g = b[11] : (g = cn("flex flex-1 flex-col rounded-lg border bg-background", T), b[10] = T, b[11] = g);
98
107
  let _;
99
- return y[8] === h ? _ = y[9] : (_ = /* @__PURE__ */ jsx("div", {
100
- className: h,
101
- children: g
102
- }), y[8] = h, y[9] = _), _;
108
+ b[12] === Symbol.for("react.memo_cache_sentinel") ? (_ = /* @__PURE__ */ jsx("div", {
109
+ className: "flex flex-1 items-center justify-center p-8",
110
+ children: /* @__PURE__ */ jsx("p", {
111
+ className: "text-sm text-destructive",
112
+ children: "Error loading file content"
113
+ })
114
+ }), b[12] = _) : _ = b[12];
115
+ let v;
116
+ return b[13] === g ? v = b[14] : (v = /* @__PURE__ */ jsx("div", {
117
+ className: g,
118
+ children: _
119
+ }), b[13] = g, b[14] = v), v;
103
120
  }
104
- if (E) {
105
- let h;
106
- y[10] === w ? h = y[11] : (h = cn("flex flex-1 flex-col rounded-lg border bg-background", w), y[10] = w, y[11] = h);
121
+ if (D) {
107
122
  let g;
108
- y[12] === Symbol.for("react.memo_cache_sentinel") ? (g = /* @__PURE__ */ jsx("div", {
123
+ b[15] === T ? g = b[16] : (g = cn("flex flex-1 flex-col rounded-lg border bg-background", T), b[15] = T, b[16] = g);
124
+ let _;
125
+ b[17] === Symbol.for("react.memo_cache_sentinel") ? (_ = /* @__PURE__ */ jsx("div", {
109
126
  className: "flex justify-center p-8",
110
127
  children: /* @__PURE__ */ jsx(Loader2, { className: "h-6 w-6 animate-spin text-muted-foreground" })
111
- }), y[12] = g) : g = y[12];
112
- let _;
113
- return y[13] === h ? _ = y[14] : (_ = /* @__PURE__ */ jsx("div", {
114
- className: h,
115
- children: g
116
- }), y[13] = h, y[14] = _), _;
128
+ }), b[17] = _) : _ = b[17];
129
+ let v;
130
+ return b[18] === g ? v = b[19] : (v = /* @__PURE__ */ jsx("div", {
131
+ className: g,
132
+ children: _
133
+ }), b[18] = g, b[19] = v), v;
117
134
  }
118
- let k;
119
- y[15] === b.name ? k = y[16] : (k = getLanguageForFileName(b.name), y[15] = b.name, y[16] = k);
120
- let A = k, j;
121
- y[17] !== A || y[18] !== b.name ? (j = A === "markdown" || b.name.endsWith(".md") || b.name.endsWith(".mdx"), y[17] = A, y[18] = b.name, y[19] = j) : j = y[19];
135
+ let j;
136
+ b[20] === x.name ? j = b[21] : (j = getLanguageForFileName(x.name), b[20] = x.name, b[21] = j);
122
137
  let M = j, N;
123
- y[20] !== A || y[21] !== b.name ? (N = A === "yaml" || b.name.endsWith(".yaml") || b.name.endsWith(".yml"), y[20] = A, y[21] = b.name, y[22] = N) : N = y[22];
124
- let P = N && T !== null, F;
125
- y[23] === w ? F = y[24] : (F = cn("flex h-full flex-col overflow-hidden rounded-lg border bg-background", w), y[23] = w, y[24] = F);
126
- let I;
127
- y[25] !== O || y[26] !== M || y[27] !== P || y[28] !== A || y[29] !== T ? (I = M && O ? /* @__PURE__ */ jsxs(Tabs, {
138
+ b[22] !== M || b[23] !== x.name ? (N = M === "markdown" || x.name.endsWith(".md") || x.name.endsWith(".mdx"), b[22] = M, b[23] = x.name, b[24] = N) : N = b[24];
139
+ let P = N, F;
140
+ b[25] !== M || b[26] !== x.name ? (F = M === "yaml" || x.name.endsWith(".yaml") || x.name.endsWith(".yml"), b[25] = M, b[26] = x.name, b[27] = F) : F = b[27];
141
+ let I = F && E !== null, L;
142
+ b[28] === M ? L = b[29] : (L = (e) => /* @__PURE__ */ jsxs(ScrollArea, {
143
+ className: "h-full w-full",
144
+ children: [/* @__PURE__ */ jsx(Prism, {
145
+ language: M,
146
+ style: vscDarkPlus,
147
+ customStyle: {
148
+ margin: 0,
149
+ padding: "1rem",
150
+ fontSize: "13px",
151
+ overflow: "visible",
152
+ minWidth: "max-content",
153
+ width: "100%"
154
+ },
155
+ showLineNumbers: !0,
156
+ PreTag: "div",
157
+ codeTagProps: { style: { fontFamily: "inherit" } },
158
+ children: e
159
+ }), /* @__PURE__ */ jsx(ScrollBar, { orientation: "horizontal" })]
160
+ }), b[28] = M, b[29] = L);
161
+ let R = L, z;
162
+ b[30] === T ? z = b[31] : (z = cn("flex h-full flex-col overflow-hidden rounded-lg border bg-background", T), b[30] = T, b[31] = z);
163
+ let B;
164
+ b[32] !== A || b[33] !== P || b[34] !== I || b[35] !== R || b[36] !== E ? (B = P && A ? /* @__PURE__ */ jsxs(Tabs, {
128
165
  defaultValue: "rendered",
129
166
  className: "flex h-full flex-col overflow-hidden",
130
167
  children: [
@@ -145,32 +182,17 @@ function FileContentViewer(v) {
145
182
  className: "h-full",
146
183
  children: /* @__PURE__ */ jsx("div", {
147
184
  className: "p-4",
148
- children: /* @__PURE__ */ jsx(MarkdownContent_default, { content: O })
185
+ children: /* @__PURE__ */ jsx(MarkdownContent_default, { content: A })
149
186
  })
150
187
  })
151
188
  }),
152
189
  /* @__PURE__ */ jsx(TabsContent, {
153
190
  value: "unrendered",
154
191
  className: "flex-1 min-h-0 overflow-hidden mt-0",
155
- children: /* @__PURE__ */ jsx(ScrollArea, {
156
- className: "flex-1 min-h-0",
157
- children: /* @__PURE__ */ jsx(Prism, {
158
- language: A,
159
- style: vscDarkPlus,
160
- customStyle: {
161
- margin: 0,
162
- padding: "1rem",
163
- fontSize: "13px"
164
- },
165
- showLineNumbers: !0,
166
- PreTag: "div",
167
- codeTagProps: { style: { fontFamily: "inherit" } },
168
- children: O ?? ""
169
- })
170
- })
192
+ children: R(A)
171
193
  })
172
194
  ]
173
- }) : P && T ? /* @__PURE__ */ jsxs(Tabs, {
195
+ }) : I && E ? /* @__PURE__ */ jsxs(Tabs, {
174
196
  defaultValue: "code",
175
197
  className: "flex h-full flex-col overflow-hidden",
176
198
  children: [
@@ -187,52 +209,22 @@ function FileContentViewer(v) {
187
209
  /* @__PURE__ */ jsx(TabsContent, {
188
210
  value: "code",
189
211
  className: "flex-1 min-h-0 overflow-hidden mt-0",
190
- children: /* @__PURE__ */ jsx(ScrollArea, {
191
- className: "flex-1 min-h-0",
192
- children: /* @__PURE__ */ jsx(Prism, {
193
- language: A,
194
- style: vscDarkPlus,
195
- customStyle: {
196
- margin: 0,
197
- padding: "1rem",
198
- fontSize: "13px"
199
- },
200
- showLineNumbers: !0,
201
- PreTag: "div",
202
- codeTagProps: { style: { fontFamily: "inherit" } },
203
- children: O ?? ""
204
- })
205
- })
212
+ children: R(A)
206
213
  }),
207
214
  /* @__PURE__ */ jsx(TabsContent, {
208
215
  value: "flow",
209
216
  className: "flex-1 min-h-0 overflow-hidden mt-0",
210
217
  children: /* @__PURE__ */ jsx("div", {
211
218
  className: "h-full w-full",
212
- children: /* @__PURE__ */ jsx(ReactFlowProvider, { children: /* @__PURE__ */ jsx(ConfigFlowViewer_default, { config: T }) })
219
+ children: /* @__PURE__ */ jsx(ReactFlowProvider, { children: /* @__PURE__ */ jsx(ConfigFlowViewer_default, { config: E }) })
213
220
  })
214
221
  })
215
222
  ]
216
- }) : /* @__PURE__ */ jsx(ScrollArea, {
217
- className: "flex-1 min-h-0",
218
- children: /* @__PURE__ */ jsx(Prism, {
219
- language: A,
220
- style: vscDarkPlus,
221
- customStyle: {
222
- margin: 0,
223
- padding: "1rem",
224
- fontSize: "13px"
225
- },
226
- showLineNumbers: !0,
227
- PreTag: "div",
228
- codeTagProps: { style: { fontFamily: "inherit" } },
229
- children: O ?? ""
230
- })
231
- }), y[25] = O, y[26] = M, y[27] = P, y[28] = A, y[29] = T, y[30] = I) : I = y[30];
232
- let L;
233
- return y[31] !== F || y[32] !== I ? (L = /* @__PURE__ */ jsx("div", {
234
- className: F,
235
- children: I
236
- }), y[31] = F, y[32] = I, y[33] = L) : L = y[33], L;
223
+ }) : R(A), b[32] = A, b[33] = P, b[34] = I, b[35] = R, b[36] = E, b[37] = B) : B = b[37];
224
+ let V;
225
+ return b[38] !== z || b[39] !== B ? (V = /* @__PURE__ */ jsx("div", {
226
+ className: z,
227
+ children: B
228
+ }), b[38] = z, b[39] = B, b[40] = V) : V = b[40], V;
237
229
  }
238
230
  export { FileContentViewer };