@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.
- package/dist/api/config.js +3 -3
- package/dist/api/index.js +10 -12
- package/dist/api/processor.js +1 -1
- package/dist/api/secrets.js +16 -0
- package/dist/api/workflows.js +7 -1
- package/dist/components/dynamic-form/ArrayController.js +68 -64
- package/dist/components/dynamic-form/CodeContent.js +3 -3
- package/dist/components/dynamic-form/Form.js +46 -40
- package/dist/components/dynamic-form/FormElement.js +1 -1
- package/dist/components/dynamic-form/FormElementHeader.js +2 -2
- package/dist/components/dynamic-form/ObjectController.js +24 -21
- package/dist/components/dynamic-form/fields/BaseFieldWrapper.js +1 -1
- package/dist/components/dynamic-form/fields/CodeViewField.js +36 -36
- package/dist/components/dynamic-form/fields/InputField.js +20 -19
- package/dist/components/dynamic-form/fields/RadioField.js +18 -18
- package/dist/components/dynamic-form/fields/SelectField.js +19 -19
- package/dist/components/dynamic-form/fields/TextareaField.js +17 -17
- package/dist/components/feedback/LoadingCentered.js +1 -1
- package/dist/components/layout/MainLayout.js +18 -31
- package/dist/components/layout/StudioSidebar.js +169 -109
- package/dist/components/loopstack-elements/link.js +77 -76
- package/dist/components/loopstack-elements/tool.js +171 -0
- package/dist/components/page/PageBreadcrumbs.js +79 -32
- package/dist/components/ui-widgets/UiActions.js +10 -4
- package/dist/components/ui-widgets/widgets/ButtonFullWidth.js +8 -6
- package/dist/components/ui-widgets/widgets/SubmitButton.js +8 -6
- package/dist/features/code-explorer/components/FileContentViewer.js +92 -100
- package/dist/features/dashboard/RunItem.js +1 -1
- package/dist/features/debug/components/ConfigFlowViewer.js +2 -2
- package/dist/features/debug/components/{PipelineDebugHeader.js → WorkflowDebugHeader.js} +5 -5
- package/dist/features/debug/components/{PipelineDebugLegend.js → WorkflowDebugLegend.js} +2 -2
- package/dist/features/debug/components/{PipelineFlowViewer.js → WorkflowFlowViewer.js} +9 -9
- package/dist/features/debug/components/workflow-flow/WorkflowGraph.js +46 -0
- package/dist/features/debug/index.js +2 -2
- package/dist/features/debug/lib/flow-utils.js +142 -150
- package/dist/features/documents/DocumentRenderer.js +66 -30
- package/dist/features/documents/components/DocumentItem.js +2 -2
- package/dist/features/documents/components/DocumentList.js +18 -11
- package/dist/features/documents/document-details/DocumentDetails.js +4 -4
- package/dist/features/documents/renderers/AiMessage.js +12 -12
- package/dist/features/documents/renderers/ChoicesRenderer.js +92 -0
- package/dist/features/documents/renderers/ClaudeMessage.js +1 -1
- package/dist/features/documents/renderers/ConfirmPromptRenderer.js +56 -0
- package/dist/features/documents/renderers/DocumentFormRenderer.js +95 -65
- package/dist/features/documents/renderers/LinkMessageRenderer.js +8 -10
- package/dist/features/documents/renderers/SecretInputRenderer.js +87 -0
- package/dist/features/documents/renderers/TextPromptRenderer.js +57 -0
- package/dist/features/documents/renderers/useDocumentTransition.js +30 -0
- package/dist/features/oauth/OAuthPromptRenderer.js +20 -20
- package/dist/features/runs/Runs.js +8 -8
- package/dist/features/workbench/Workbench.js +35 -35
- package/dist/features/workbench/WorkflowItem.js +10 -9
- package/dist/features/workbench/WorkflowList.js +56 -73
- package/dist/features/workbench/components/NewRunDialog.js +18 -18
- package/dist/features/workbench/components/WorkbenchFilesPanel.js +33 -26
- package/dist/features/workbench/components/WorkbenchFloatingPanel.js +13 -44
- package/dist/features/workbench/components/WorkbenchFlowPanel.js +27 -29
- package/dist/features/workbench/components/WorkbenchIconSidebar.js +17 -17
- package/dist/features/workbench/components/WorkbenchPreviewPanel.js +2 -2
- package/dist/features/workbench/components/WorkbenchSecretsPanel.js +182 -0
- package/dist/features/workbench/components/WorkbenchSettingsModal.js +16 -41
- package/dist/features/workbench/components/WorkflowForms.js +14 -13
- package/dist/features/workbench/components/WorkflowHistoryItem.js +60 -81
- package/dist/features/workbench/components/{PipelineHistoryList.js → WorkflowHistoryList.js} +5 -5
- package/dist/features/workbench/components/buttons/WorkflowButtons.js +56 -54
- package/dist/features/workbench/hooks/useWorkflowData.js +10 -10
- package/dist/features/workbench/hooks/useWorkflowListState.js +8 -45
- package/dist/features/workbench/index.js +2 -3
- package/dist/features/workbench/providers/RemoteFileExplorerProvider.js +132 -117
- package/dist/features/workbench/providers/ScrollProvider.js +2 -2
- package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +4 -4
- package/dist/features/workspaces/Workspaces.js +1 -1
- package/dist/features/workspaces/components/CreateWorkspace.js +12 -12
- package/dist/features/workspaces/components/ExecutionTimeline.js +22 -21
- package/dist/features/workspaces/components/{NewPipelineRunDialog.js → NewWorkflowRunDialog.js} +6 -6
- package/dist/features/workspaces/components/{PipelineForm.js → WorkflowRunForm.js} +31 -31
- package/dist/features/workspaces/components/WorkspaceHomePage.js +11 -11
- package/dist/features/workspaces/components/{pipeline-form → workflow-form}/ArgumentsView.js +1 -1
- package/dist/features/workspaces/components/{pipeline-form → workflow-form}/SelectionView.js +16 -16
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/query-keys.js +34 -68
- package/dist/hooks/useConfig.js +5 -5
- package/dist/hooks/useProcessor.js +5 -5
- package/dist/hooks/useSecrets.js +69 -0
- package/dist/hooks/useWorkflows.js +155 -68
- package/dist/index.d.ts +158 -116
- package/dist/index.js +5 -5
- package/dist/packages/contracts/dist/enums/index.js +11 -12
- package/dist/packages/contracts/dist/enums/workflow-state.enum.js +1 -1
- package/dist/pages/DashboardPage.js +87 -35
- package/dist/pages/DebugWorkflowDetailsPage.js +8 -8
- package/dist/pages/DebugWorkflowsPage.js +10 -10
- package/dist/pages/EmbedWorkbenchPage.js +39 -45
- package/dist/pages/PreviewWorkbenchPage.js +130 -255
- package/dist/pages/RunsListPage.js +1 -1
- package/dist/pages/StudioLandingPage.js +13 -13
- package/dist/pages/WorkbenchPage.js +6 -6
- package/dist/pages/WorkflowDebugPage.js +114 -0
- package/dist/pages/WorkspacePage.js +4 -2
- package/dist/providers/InvalidationEventsProvider.js +19 -19
- package/dist/providers/SseProvider.js +0 -1
- package/dist/routing/LocalRouter.js +14 -17
- package/dist/types/ai.types.js +13 -0
- package/package.json +2 -3
- package/dist/api/namespaces.js +0 -7
- package/dist/api/pipelines.js +0 -13
- package/dist/components/ai-elements/tool.js +0 -158
- package/dist/features/debug/components/pipeline-flow/WorkflowGraph.js +0 -41
- package/dist/features/workbench/NavigationItems.js +0 -52
- package/dist/features/workbench/WorkbenchNavigation.js +0 -38
- package/dist/features/workbench/components/NavigationItem.js +0 -68
- package/dist/features/workbench/hooks/useIntersectionObserver.js +0 -44
- package/dist/hooks/useNamespaceTree.js +0 -27
- package/dist/hooks/useNamespaces.js +0 -25
- package/dist/hooks/usePipelines.js +0 -161
- package/dist/node_modules/@ai-sdk/provider/dist/index.js +0 -65
- package/dist/node_modules/@ai-sdk/provider-utils/dist/index.js +0 -1008
- package/dist/node_modules/ai/dist/index.js +0 -1083
- package/dist/node_modules/zod/v3/ZodError.js +0 -79
- package/dist/node_modules/zod/v3/errors.js +0 -6
- package/dist/node_modules/zod/v3/helpers/errorUtil.js +0 -5
- package/dist/node_modules/zod/v3/helpers/parseUtil.js +0 -90
- package/dist/node_modules/zod/v3/helpers/util.js +0 -72
- package/dist/node_modules/zod/v3/locales/en.js +0 -58
- package/dist/node_modules/zod/v3/types.js +0 -2425
- package/dist/node_modules/zod/v4/classic/errors.js +0 -21
- package/dist/node_modules/zod/v4/classic/iso.js +0 -29
- package/dist/node_modules/zod/v4/classic/parse.js +0 -4
- package/dist/node_modules/zod/v4/classic/schemas.js +0 -392
- package/dist/node_modules/zod/v4/core/api.js +0 -532
- package/dist/node_modules/zod/v4/core/checks.js +0 -283
- package/dist/node_modules/zod/v4/core/core.js +0 -44
- package/dist/node_modules/zod/v4/core/doc.js +0 -21
- package/dist/node_modules/zod/v4/core/errors.js +0 -40
- package/dist/node_modules/zod/v4/core/json-schema-processors.js +0 -305
- package/dist/node_modules/zod/v4/core/parse.js +0 -66
- package/dist/node_modules/zod/v4/core/regexes.js +0 -28
- package/dist/node_modules/zod/v4/core/registries.js +0 -38
- package/dist/node_modules/zod/v4/core/schemas.js +0 -863
- package/dist/node_modules/zod/v4/core/to-json-schema.js +0 -220
- package/dist/node_modules/zod/v4/core/util.js +0 -267
- package/dist/node_modules/zod/v4/core/versions.js +0 -6
- package/dist/packages/contracts/dist/enums/pipeline-state.js +0 -10
- package/dist/pages/PipelineDebugPage.js +0 -115
- /package/dist/features/debug/components/{pipeline-flow → workflow-flow}/StateNode.js +0 -0
- /package/dist/features/debug/components/{pipeline-flow → workflow-flow}/WorkflowTransitionEdge.js +0 -0
- /package/dist/features/workspaces/components/{pipeline-form → workflow-form}/HeaderSection.js +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { Button } from "../../../components/ui/button.js";
|
|
2
|
+
import { Input } from "../../../components/ui/input.js";
|
|
3
|
+
import { Label } from "../../../components/ui/label.js";
|
|
4
|
+
import CompletionMessagePaper_default from "../../../components/messages/CompletionMessagePaper.js";
|
|
5
|
+
import { useRunWorkflow } from "../../../hooks/useProcessor.js";
|
|
6
|
+
import { useUpsertSecret } from "../../../hooks/useSecrets.js";
|
|
7
|
+
import { useWorkbenchLayout } from "../../workbench/providers/WorkbenchLayoutProvider.js";
|
|
8
|
+
import "../../workbench/index.js";
|
|
9
|
+
import React, { useState } from "react";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { Info, KeyRound, Loader2 } from "lucide-react";
|
|
12
|
+
var SecretInputRenderer_default = ({ parentWorkflow: p, workflow: m, document: h, isActive: g }) => {
|
|
13
|
+
let _ = h.content.variables ?? [], v = (h.ui?.widgets)?.[0]?.options, y = v?.transition, b = v?.label ?? "Save & Continue", { workflow: x } = useWorkbenchLayout(), S = x?.workspaceId, C = useRunWorkflow(), w = useUpsertSecret(), T = m.availableTransitions?.map((e) => e.id) ?? [], [E, D] = useState(() => {
|
|
14
|
+
let e = {};
|
|
15
|
+
for (let d of _) e[d.key] = d.value ?? "";
|
|
16
|
+
return e;
|
|
17
|
+
}), [O, k] = useState(!1), A = !!y && T.includes(y), j = !g || !A, M = async () => {
|
|
18
|
+
if (!(!S || !y)) {
|
|
19
|
+
k(!0);
|
|
20
|
+
try {
|
|
21
|
+
let e = [];
|
|
22
|
+
for (let d of _) {
|
|
23
|
+
let f = E[d.key]?.trim();
|
|
24
|
+
!d.key.trim() || !f || (await w.mutateAsync({
|
|
25
|
+
workspaceId: S,
|
|
26
|
+
key: d.key,
|
|
27
|
+
value: f
|
|
28
|
+
}), e.push(d.key));
|
|
29
|
+
}
|
|
30
|
+
C.mutate({
|
|
31
|
+
workflowId: p.id,
|
|
32
|
+
runWorkflowPayloadDto: { transition: {
|
|
33
|
+
id: y,
|
|
34
|
+
workflowId: m.id,
|
|
35
|
+
payload: { keys: e }
|
|
36
|
+
} }
|
|
37
|
+
});
|
|
38
|
+
} finally {
|
|
39
|
+
k(!1);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
return /* @__PURE__ */ jsx(CompletionMessagePaper_default, {
|
|
44
|
+
role: "document",
|
|
45
|
+
fullWidth: !0,
|
|
46
|
+
timestamp: new Date(h.createdAt),
|
|
47
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
48
|
+
className: "flex flex-col gap-4 p-1",
|
|
49
|
+
children: [
|
|
50
|
+
/* @__PURE__ */ jsx("div", {
|
|
51
|
+
className: "text-sm font-medium",
|
|
52
|
+
children: "Secrets"
|
|
53
|
+
}),
|
|
54
|
+
_.map((e) => /* @__PURE__ */ jsxs("div", {
|
|
55
|
+
className: "flex flex-col gap-1.5",
|
|
56
|
+
children: [/* @__PURE__ */ jsx(Label, {
|
|
57
|
+
className: "text-muted-foreground text-xs",
|
|
58
|
+
children: e.key
|
|
59
|
+
}), /* @__PURE__ */ jsx(Input, {
|
|
60
|
+
type: "password",
|
|
61
|
+
placeholder: "Enter value...",
|
|
62
|
+
value: E[e.key] ?? "",
|
|
63
|
+
onChange: (d) => D((f) => ({
|
|
64
|
+
...f,
|
|
65
|
+
[e.key]: d.target.value
|
|
66
|
+
})),
|
|
67
|
+
disabled: j
|
|
68
|
+
})]
|
|
69
|
+
}, e.key)),
|
|
70
|
+
/* @__PURE__ */ jsxs("div", {
|
|
71
|
+
className: "text-muted-foreground flex items-center gap-2 text-xs",
|
|
72
|
+
children: [/* @__PURE__ */ jsx(Info, { className: "h-3.5 w-3.5 shrink-0" }), /* @__PURE__ */ jsx("span", { children: "To add or remove other secrets, use the Secrets panel in the right sidebar." })]
|
|
73
|
+
}),
|
|
74
|
+
/* @__PURE__ */ jsx("div", {
|
|
75
|
+
className: "flex justify-end",
|
|
76
|
+
children: /* @__PURE__ */ jsxs(Button, {
|
|
77
|
+
onClick: () => void M(),
|
|
78
|
+
disabled: j || O,
|
|
79
|
+
className: "w-48",
|
|
80
|
+
children: [O ? /* @__PURE__ */ jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }) : /* @__PURE__ */ jsx(KeyRound, { className: "mr-2 h-4 w-4" }), b]
|
|
81
|
+
})
|
|
82
|
+
})
|
|
83
|
+
]
|
|
84
|
+
})
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
export { SecretInputRenderer_default as default };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Button } from "../../../components/ui/button.js";
|
|
2
|
+
import { Textarea } from "../../../components/ui/textarea.js";
|
|
3
|
+
import CompletionMessagePaper_default from "../../../components/messages/CompletionMessagePaper.js";
|
|
4
|
+
import MarkdownContent_default from "../../../components/dynamic-form/MarkdownContent.js";
|
|
5
|
+
import { useDocumentTransition } from "./useDocumentTransition.js";
|
|
6
|
+
import { c } from "react/compiler-runtime";
|
|
7
|
+
import React, { useState } from "react";
|
|
8
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { Loader2 } from "lucide-react";
|
|
10
|
+
var TextPromptRenderer_default = (f) => {
|
|
11
|
+
let p = c(20), { parentWorkflow: m, workflow: h, document: g, isActive: _ } = f, v = g.content, { submit: y, canSubmit: b, isLoading: x } = useDocumentTransition(m, h, g.ui), [S, C] = useState(""), w = !!v.answer, T = !_ || !b || w, E;
|
|
12
|
+
p[0] !== y || p[1] !== S ? (E = () => {
|
|
13
|
+
let e = S.trim();
|
|
14
|
+
e && y({ answer: e });
|
|
15
|
+
}, p[0] = y, p[1] = S, p[2] = E) : E = p[2];
|
|
16
|
+
let D = E, O;
|
|
17
|
+
p[3] === g.createdAt ? O = p[4] : (O = new Date(g.createdAt), p[3] = g.createdAt, p[4] = O);
|
|
18
|
+
let k;
|
|
19
|
+
p[5] === v.question ? k = p[6] : (k = /* @__PURE__ */ jsx(MarkdownContent_default, { content: v.question }), p[5] = v.question, p[6] = k);
|
|
20
|
+
let A;
|
|
21
|
+
p[7] !== v.answer || p[8] !== T || p[9] !== D || p[10] !== w || p[11] !== x || p[12] !== S ? (A = w ? /* @__PURE__ */ jsxs("div", {
|
|
22
|
+
className: "text-muted-foreground text-sm",
|
|
23
|
+
children: ["Answered: ", /* @__PURE__ */ jsx("span", {
|
|
24
|
+
className: "text-foreground font-medium",
|
|
25
|
+
children: v.answer
|
|
26
|
+
})]
|
|
27
|
+
}) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Textarea, {
|
|
28
|
+
placeholder: "Type your answer...",
|
|
29
|
+
value: S,
|
|
30
|
+
onChange: (e) => C(e.target.value),
|
|
31
|
+
disabled: T,
|
|
32
|
+
rows: 3
|
|
33
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
34
|
+
className: "flex justify-end",
|
|
35
|
+
children: /* @__PURE__ */ jsxs(Button, {
|
|
36
|
+
type: "button",
|
|
37
|
+
variant: "default",
|
|
38
|
+
disabled: T || x || !S.trim(),
|
|
39
|
+
onClick: D,
|
|
40
|
+
className: "w-48",
|
|
41
|
+
children: [x && /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }), "Submit"]
|
|
42
|
+
})
|
|
43
|
+
})] }), p[7] = v.answer, p[8] = T, p[9] = D, p[10] = w, p[11] = x, p[12] = S, p[13] = A) : A = p[13];
|
|
44
|
+
let j;
|
|
45
|
+
p[14] !== k || p[15] !== A ? (j = /* @__PURE__ */ jsxs("div", {
|
|
46
|
+
className: "flex flex-col gap-4 p-1",
|
|
47
|
+
children: [k, A]
|
|
48
|
+
}), p[14] = k, p[15] = A, p[16] = j) : j = p[16];
|
|
49
|
+
let M;
|
|
50
|
+
return p[17] !== O || p[18] !== j ? (M = /* @__PURE__ */ jsx(CompletionMessagePaper_default, {
|
|
51
|
+
role: "document",
|
|
52
|
+
fullWidth: !0,
|
|
53
|
+
timestamp: O,
|
|
54
|
+
children: j
|
|
55
|
+
}), p[17] = O, p[18] = j, p[19] = M) : M = p[19], M;
|
|
56
|
+
};
|
|
57
|
+
export { TextPromptRenderer_default as default };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useRunWorkflow } from "../../../hooks/useProcessor.js";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
function resolveTransition(e) {
|
|
4
|
+
let t = e, n = t?.widgets;
|
|
5
|
+
return n?.[0]?.options?.transition ? n[0].options.transition : (t?.actions)?.map((e) => e.options?.transition).find((e) => !!e);
|
|
6
|
+
}
|
|
7
|
+
function useDocumentTransition(r, i, a) {
|
|
8
|
+
let o = useRunWorkflow(), s = i.availableTransitions?.map((e) => e.id) ?? [], c = resolveTransition(a), l = !!c && s.includes(c);
|
|
9
|
+
return {
|
|
10
|
+
submit: useCallback((e) => {
|
|
11
|
+
!c || !l || o.mutate({
|
|
12
|
+
workflowId: r.id,
|
|
13
|
+
runWorkflowPayloadDto: { transition: {
|
|
14
|
+
id: c,
|
|
15
|
+
workflowId: i.id,
|
|
16
|
+
payload: e
|
|
17
|
+
} }
|
|
18
|
+
});
|
|
19
|
+
}, [
|
|
20
|
+
c,
|
|
21
|
+
l,
|
|
22
|
+
o,
|
|
23
|
+
r.id,
|
|
24
|
+
i.id
|
|
25
|
+
]),
|
|
26
|
+
canSubmit: l,
|
|
27
|
+
isLoading: o.isPending
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export { useDocumentTransition };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import CompletionMessagePaper_default from "../../components/messages/CompletionMessagePaper.js";
|
|
2
|
-
import {
|
|
2
|
+
import { useRunWorkflow } from "../../hooks/useProcessor.js";
|
|
3
3
|
import { useOAuthPopup } from "./useOAuthPopup.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
5
5
|
import React, { useCallback, useEffect, useRef } from "react";
|
|
6
6
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
var OAuthPromptRenderer = ({
|
|
8
|
-
let g = m.content, _ =
|
|
9
|
-
!
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
id:
|
|
7
|
+
var OAuthPromptRenderer = ({ parentWorkflow: l, workflow: u, document: m, isActive: h }) => {
|
|
8
|
+
let g = m.content, _ = m.ui, v = (_?.widgets)?.[0]?.options?.transition ?? (_?.actions)?.map((e) => e.options?.transition).find((e) => !!e), y = useRunWorkflow(), { result: b, open: x, reset: S } = useOAuthPopup(), C = useRef(!1), w = u.availableTransitions?.map((e) => e.id) ?? [], T = useCallback((e, o) => {
|
|
9
|
+
!v || !w.includes(v) || y.mutate({
|
|
10
|
+
workflowId: l.id,
|
|
11
|
+
runWorkflowPayloadDto: { transition: {
|
|
12
|
+
id: v,
|
|
13
13
|
workflowId: u.id,
|
|
14
14
|
payload: {
|
|
15
15
|
code: e,
|
|
@@ -18,22 +18,22 @@ var OAuthPromptRenderer = ({ pipeline: l, workflow: u, document: m, isActive: h
|
|
|
18
18
|
} }
|
|
19
19
|
});
|
|
20
20
|
}, [
|
|
21
|
-
_,
|
|
22
|
-
C,
|
|
23
21
|
v,
|
|
22
|
+
w,
|
|
23
|
+
y,
|
|
24
24
|
l.id,
|
|
25
25
|
u.id
|
|
26
26
|
]);
|
|
27
27
|
useEffect(() => {
|
|
28
|
-
|
|
29
|
-
}, [
|
|
30
|
-
let
|
|
31
|
-
|
|
28
|
+
b.status === "success" && !C.current && (C.current = !0, T(b.code, b.state));
|
|
29
|
+
}, [b, T]);
|
|
30
|
+
let E = () => {
|
|
31
|
+
C.current = !1, x({
|
|
32
32
|
authUrl: g.authUrl,
|
|
33
33
|
state: g.state
|
|
34
34
|
});
|
|
35
|
-
},
|
|
36
|
-
|
|
35
|
+
}, D = () => {
|
|
36
|
+
S(), C.current = !1, x({
|
|
37
37
|
authUrl: g.authUrl,
|
|
38
38
|
state: g.state
|
|
39
39
|
});
|
|
@@ -46,13 +46,13 @@ var OAuthPromptRenderer = ({ pipeline: l, workflow: u, document: m, isActive: h
|
|
|
46
46
|
status: "error",
|
|
47
47
|
provider: g.provider,
|
|
48
48
|
message: g.message
|
|
49
|
-
}), h && /* @__PURE__ */ jsx(RetryButton, { onClick:
|
|
50
|
-
result:
|
|
49
|
+
}), h && /* @__PURE__ */ jsx(RetryButton, { onClick: D })] }) : /* @__PURE__ */ jsx(CompletionMessagePaper_default, { children: /* @__PURE__ */ jsx(PopupResultView, {
|
|
50
|
+
result: b,
|
|
51
51
|
provider: g.provider,
|
|
52
52
|
isActive: h,
|
|
53
|
-
isSubmitting:
|
|
54
|
-
onSignIn:
|
|
55
|
-
onRetry:
|
|
53
|
+
isSubmitting: y.isPending,
|
|
54
|
+
onSignIn: E,
|
|
55
|
+
onRetry: D
|
|
56
56
|
}) });
|
|
57
57
|
}, ProviderLabel = (e) => {
|
|
58
58
|
let o = c(2), { provider: s } = e, u = s.charAt(0).toUpperCase() + s.slice(1), d;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useStudio } from "../../providers/StudioProvider.js";
|
|
2
|
-
import {
|
|
2
|
+
import { useBatchDeleteWorkflows, useDeleteWorkflow, useFilterWorkflows } from "../../hooks/useWorkflows.js";
|
|
3
3
|
import { useFilterWorkspaces } from "../../hooks/useWorkspaces.js";
|
|
4
4
|
import { Badge } from "../../components/ui/badge.js";
|
|
5
5
|
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "../../components/ui/tooltip.js";
|
|
@@ -23,9 +23,9 @@ var statusColors = {
|
|
|
23
23
|
...y,
|
|
24
24
|
parentId: null
|
|
25
25
|
}, r[2] = y, r[3] = x);
|
|
26
|
-
let S =
|
|
26
|
+
let S = useFilterWorkflows(me, x, p, h, l, d), C;
|
|
27
27
|
r[4] === Symbol.for("react.memo_cache_sentinel") ? (C = {}, r[4] = C) : C = r[4];
|
|
28
|
-
let w = useFilterWorkspaces(void 0, C, "title", "ASC", 0, 100), T =
|
|
28
|
+
let w = useFilterWorkspaces(void 0, C, "title", "ASC", 0, 100), T = useDeleteWorkflow(), E = useBatchDeleteWorkflows(), D;
|
|
29
29
|
if (r[5] !== w.data?.data) {
|
|
30
30
|
D = /* @__PURE__ */ new Map();
|
|
31
31
|
for (let e of w.data?.data ?? []) D.set(e.id, e.title);
|
|
@@ -38,7 +38,7 @@ var statusColors = {
|
|
|
38
38
|
let j = A, M;
|
|
39
39
|
if (r[11] !== S.data?.data) {
|
|
40
40
|
let e = /* @__PURE__ */ new Set();
|
|
41
|
-
for (let t of S.data?.data ?? []) t.
|
|
41
|
+
for (let t of S.data?.data ?? []) t.alias && e.add(t.alias);
|
|
42
42
|
M = Array.from(e).sort(), r[11] = S.data?.data, r[12] = M;
|
|
43
43
|
} else M = r[12];
|
|
44
44
|
let N = M, P;
|
|
@@ -51,7 +51,7 @@ var statusColors = {
|
|
|
51
51
|
}, r[15] = E, r[16] = I);
|
|
52
52
|
let L = I, R;
|
|
53
53
|
r[17] === s ? R = r[18] : (R = (e) => {
|
|
54
|
-
s.
|
|
54
|
+
s.navigateToWorkflow(e);
|
|
55
55
|
}, r[17] = s, r[18] = R);
|
|
56
56
|
let z = R, B = S.error ?? null, V;
|
|
57
57
|
r[19] === S.data?.data ? V = r[20] : (V = S.data?.data ?? [], r[19] = S.data?.data, r[20] = V);
|
|
@@ -84,7 +84,7 @@ var statusColors = {
|
|
|
84
84
|
}, r[22] = O, r[23] = W);
|
|
85
85
|
let G, K, q, J;
|
|
86
86
|
r[24] === Symbol.for("react.memo_cache_sentinel") ? (G = {
|
|
87
|
-
id: "
|
|
87
|
+
id: "alias",
|
|
88
88
|
label: "Type",
|
|
89
89
|
minWidth: 100,
|
|
90
90
|
format: (e) => {
|
|
@@ -95,7 +95,7 @@ var statusColors = {
|
|
|
95
95
|
onClick: (e) => {
|
|
96
96
|
e.stopPropagation(), b((e) => ({
|
|
97
97
|
...e,
|
|
98
|
-
|
|
98
|
+
alias: t
|
|
99
99
|
}));
|
|
100
100
|
},
|
|
101
101
|
children: t
|
|
@@ -139,7 +139,7 @@ var statusColors = {
|
|
|
139
139
|
r[31] !== N || r[32] !== j ? (Q = {
|
|
140
140
|
status: Z,
|
|
141
141
|
workspaceId: j,
|
|
142
|
-
|
|
142
|
+
alias: N
|
|
143
143
|
}, r[31] = N, r[32] = j, r[33] = Q) : Q = r[33];
|
|
144
144
|
let $;
|
|
145
145
|
return r[34] !== S.isPending || r[35] !== y || r[36] !== L || r[37] !== F || r[38] !== z || r[39] !== h || r[40] !== p || r[41] !== l || r[42] !== d || r[43] !== _ || r[44] !== B || r[45] !== V || r[46] !== H || r[47] !== X || r[48] !== Q ? ($ = /* @__PURE__ */ jsx(ListView_default, {
|
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
import { useWorkspace } from "../../hooks/useWorkspaces.js";
|
|
2
2
|
import PageBreadcrumbs_default from "../../components/page/PageBreadcrumbs.js";
|
|
3
|
-
import { WorkbenchLayoutProvider, useWorkbenchLayout } from "./providers/WorkbenchLayoutProvider.js";
|
|
4
3
|
import WorkflowList_default from "./WorkflowList.js";
|
|
5
4
|
import { RemoteFileExplorerProvider } from "./providers/RemoteFileExplorerProvider.js";
|
|
5
|
+
import { WorkbenchLayoutProvider, useWorkbenchLayout } from "./providers/WorkbenchLayoutProvider.js";
|
|
6
6
|
import { WorkbenchFilesPanel } from "./components/WorkbenchFilesPanel.js";
|
|
7
|
-
import { ScrollProvider } from "./providers/ScrollProvider.js";
|
|
8
7
|
import { WorkbenchFloatingPanel } from "./components/WorkbenchFloatingPanel.js";
|
|
9
8
|
import { WorkbenchFlowPanel } from "./components/WorkbenchFlowPanel.js";
|
|
10
9
|
import { WorkbenchIconSidebar } from "./components/WorkbenchIconSidebar.js";
|
|
11
10
|
import { WorkbenchPreviewPanel } from "./components/WorkbenchPreviewPanel.js";
|
|
11
|
+
import { ScrollProvider } from "./providers/ScrollProvider.js";
|
|
12
12
|
import { c } from "react/compiler-runtime";
|
|
13
13
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
14
|
function WorkbenchContent(t) {
|
|
15
|
-
let
|
|
16
|
-
|
|
15
|
+
let a = c(7), { workflow: o, breadcrumbData: s } = t, l;
|
|
16
|
+
a[0] === s ? l = a[1] : (l = /* @__PURE__ */ jsx("div", {
|
|
17
17
|
className: "border-b flex h-12 shrink-0 items-center",
|
|
18
18
|
children: s ? /* @__PURE__ */ jsx(PageBreadcrumbs_default, { breadcrumbData: s }) : /* @__PURE__ */ jsx("span", {
|
|
19
19
|
className: "px-3 text-sm font-medium",
|
|
20
20
|
children: "Workflows"
|
|
21
21
|
})
|
|
22
|
-
}),
|
|
23
|
-
let
|
|
24
|
-
|
|
22
|
+
}), a[0] = s, a[1] = l);
|
|
23
|
+
let u;
|
|
24
|
+
a[2] === o ? u = a[3] : (u = /* @__PURE__ */ jsx(ScrollProvider, { children: /* @__PURE__ */ jsx("div", {
|
|
25
25
|
className: "flex-1 overflow-auto",
|
|
26
|
-
children: /* @__PURE__ */ jsx(WorkflowList_default, {
|
|
27
|
-
}) }),
|
|
28
|
-
let
|
|
29
|
-
return
|
|
26
|
+
children: /* @__PURE__ */ jsx(WorkflowList_default, { workflow: o })
|
|
27
|
+
}) }), a[2] = o, a[3] = u);
|
|
28
|
+
let d;
|
|
29
|
+
return a[4] !== l || a[5] !== u ? (d = /* @__PURE__ */ jsx("div", {
|
|
30
30
|
className: "flex h-full flex-col",
|
|
31
31
|
children: /* @__PURE__ */ jsx("div", {
|
|
32
32
|
className: "flex flex-1 gap-4 overflow-hidden md:flex-row flex-col",
|
|
33
33
|
children: /* @__PURE__ */ jsxs("div", {
|
|
34
34
|
className: "flex flex-1 flex-col overflow-hidden",
|
|
35
|
-
children: [l,
|
|
35
|
+
children: [l, u]
|
|
36
36
|
})
|
|
37
37
|
})
|
|
38
|
-
}),
|
|
38
|
+
}), a[4] = l, a[5] = u, a[6] = d) : d = a[6], d;
|
|
39
39
|
}
|
|
40
40
|
function WorkbenchInner(t) {
|
|
41
|
-
let r = c(21), {
|
|
42
|
-
r[0] !==
|
|
43
|
-
|
|
44
|
-
breadcrumbData:
|
|
45
|
-
}), r[0] =
|
|
41
|
+
let r = c(21), { workflow: i, breadcrumbData: a } = t, { activeSidePanel: o } = useWorkbenchLayout(), m = o ? "w-1/2 overflow-hidden" : "w-full overflow-hidden", _;
|
|
42
|
+
r[0] !== a || r[1] !== i ? (_ = /* @__PURE__ */ jsx(WorkbenchContent, {
|
|
43
|
+
workflow: i,
|
|
44
|
+
breadcrumbData: a
|
|
45
|
+
}), r[0] = a, r[1] = i, r[2] = _) : _ = r[2];
|
|
46
46
|
let v;
|
|
47
|
-
r[3] !==
|
|
48
|
-
className:
|
|
47
|
+
r[3] !== m || r[4] !== _ ? (v = /* @__PURE__ */ jsx("div", {
|
|
48
|
+
className: m,
|
|
49
49
|
children: _
|
|
50
|
-
}), r[3] =
|
|
50
|
+
}), r[3] = m, r[4] = _, r[5] = v) : v = r[5];
|
|
51
51
|
let y;
|
|
52
|
-
r[6] ===
|
|
52
|
+
r[6] === o ? y = r[7] : (y = o === "preview" && /* @__PURE__ */ jsx(WorkbenchPreviewPanel, {}), r[6] = o, r[7] = y);
|
|
53
53
|
let b;
|
|
54
|
-
r[8] ===
|
|
54
|
+
r[8] === o ? b = r[9] : (b = o === "flow" && /* @__PURE__ */ jsx(WorkbenchFlowPanel, {}), r[8] = o, r[9] = b);
|
|
55
55
|
let x;
|
|
56
|
-
r[10] ===
|
|
56
|
+
r[10] === o ? x = r[11] : (x = o === "files" && /* @__PURE__ */ jsx(WorkbenchFilesPanel, {}), r[10] = o, r[11] = x);
|
|
57
57
|
let S;
|
|
58
58
|
r[12] === Symbol.for("react.memo_cache_sentinel") ? (S = /* @__PURE__ */ jsx(WorkbenchFloatingPanel, {}), r[12] = S) : S = r[12];
|
|
59
59
|
let C;
|
|
@@ -76,24 +76,24 @@ function WorkbenchInner(t) {
|
|
|
76
76
|
}), r[19] = C, r[20] = T), T;
|
|
77
77
|
}
|
|
78
78
|
function Workbench(r) {
|
|
79
|
-
let
|
|
80
|
-
|
|
79
|
+
let i = c(20), { workflow: s, breadcrumbData: l, previewPanelOpen: u, onPreviewPanelOpenChange: d, isDeveloperMode: f, getPreviewUrl: p, getEnvironmentPreviewUrl: m, environments: h } = r, g = s?.workspaceId, v = useWorkspace(g), y;
|
|
80
|
+
i[0] !== h?.[0]?.slotId || i[1] !== v.data?.features?.fileExplorer?.enabled || i[2] !== v.data?.features?.fileExplorer?.environments ? (y = v.data?.features?.fileExplorer?.enabled && v.data?.features?.fileExplorer?.environments?.includes(h?.[0]?.slotId ?? ""), i[0] = h?.[0]?.slotId, i[1] = v.data?.features?.fileExplorer?.enabled, i[2] = v.data?.features?.fileExplorer?.environments, i[3] = y) : y = i[3];
|
|
81
81
|
let b = y, x;
|
|
82
|
-
|
|
82
|
+
i[4] === v.data ? x = i[5] : (x = v.data ? {
|
|
83
83
|
volumes: v.data.volumes,
|
|
84
84
|
features: v.data.features
|
|
85
|
-
} : void 0,
|
|
85
|
+
} : void 0, i[4] = v.data, i[5] = x);
|
|
86
86
|
let S = x, C = h ?? v.data?.environments, w;
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
i[6] !== l || i[7] !== b || i[8] !== s ? (w = b ? /* @__PURE__ */ jsx(RemoteFileExplorerProvider, { children: /* @__PURE__ */ jsx(WorkbenchInner, {
|
|
88
|
+
workflow: s,
|
|
89
89
|
breadcrumbData: l
|
|
90
90
|
}) }) : /* @__PURE__ */ jsx(WorkbenchInner, {
|
|
91
|
-
|
|
91
|
+
workflow: s,
|
|
92
92
|
breadcrumbData: l
|
|
93
|
-
}),
|
|
93
|
+
}), i[6] = l, i[7] = b, i[8] = s, i[9] = w) : w = i[9];
|
|
94
94
|
let T;
|
|
95
|
-
return
|
|
96
|
-
|
|
95
|
+
return i[10] !== m || i[11] !== p || i[12] !== f || i[13] !== d || i[14] !== u || i[15] !== C || i[16] !== w || i[17] !== s || i[18] !== S ? (T = /* @__PURE__ */ jsx(WorkbenchLayoutProvider, {
|
|
96
|
+
workflow: s,
|
|
97
97
|
isDeveloperMode: f,
|
|
98
98
|
workspaceConfig: S,
|
|
99
99
|
getPreviewUrl: p,
|
|
@@ -102,6 +102,6 @@ function Workbench(r) {
|
|
|
102
102
|
previewPanelOpen: u,
|
|
103
103
|
onPreviewPanelOpenChange: d,
|
|
104
104
|
children: w
|
|
105
|
-
}),
|
|
105
|
+
}), i[10] = m, i[11] = p, i[12] = f, i[13] = d, i[14] = u, i[15] = C, i[16] = w, i[17] = s, i[18] = S, i[19] = T) : T = i[19], T;
|
|
106
106
|
}
|
|
107
107
|
export { Workbench as default };
|
|
@@ -11,7 +11,7 @@ import React, { useEffect } from "react";
|
|
|
11
11
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
12
|
import { useParams } from "react-router-dom";
|
|
13
13
|
var WorkflowItem_default = (p) => {
|
|
14
|
-
let m = c(
|
|
14
|
+
let m = c(46), { workflow: h, workflowId: g, scrollTo: _, settings: v, embed: y } = p, { workflowId: b, clickId: x } = useParams(), S;
|
|
15
15
|
m[0] !== v.showFullMessageHistory || m[1] !== g ? (S = {
|
|
16
16
|
workflowId: g,
|
|
17
17
|
showFullMessageHistory: v.showFullMessageHistory
|
|
@@ -38,26 +38,27 @@ var WorkflowItem_default = (p) => {
|
|
|
38
38
|
let B;
|
|
39
39
|
m[22] === E ? B = m[23] : (B = /* @__PURE__ */ jsx(ErrorAlert_default, { error: E }), m[22] = E, m[23] = B);
|
|
40
40
|
let V;
|
|
41
|
-
m[24] !==
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
m[24] !== C || m[25] !== D || m[26] !== j || m[27] !== _ || m[28] !== v || m[29] !== h || m[30] !== T ? (V = T && C && /* @__PURE__ */ jsx(DocumentList_default, {
|
|
42
|
+
workflow: h,
|
|
43
|
+
childWorkflow: C,
|
|
44
44
|
documents: D,
|
|
45
45
|
scrollTo: _,
|
|
46
46
|
settings: v,
|
|
47
47
|
isLoading: j
|
|
48
|
-
}), m[24] =
|
|
48
|
+
}), m[24] = C, m[25] = D, m[26] = j, m[27] = _, m[28] = v, m[29] = h, m[30] = T, m[31] = V) : V = m[31];
|
|
49
49
|
let H;
|
|
50
50
|
m[32] === j ? H = m[33] : (H = /* @__PURE__ */ jsx(LoadingCentered_default, { loading: j }), m[32] = j, m[33] = H);
|
|
51
51
|
let U;
|
|
52
|
-
m[34] !==
|
|
52
|
+
m[34] !== C || m[35] !== M || m[36] !== h ? (U = !!C && /* @__PURE__ */ jsx("div", {
|
|
53
53
|
className: "mt-6",
|
|
54
54
|
children: /* @__PURE__ */ jsx(WorkflowForms_default, {
|
|
55
55
|
workflow: C,
|
|
56
|
+
parentWorkflow: h,
|
|
56
57
|
onSubmit: M
|
|
57
58
|
})
|
|
58
|
-
}), m[34] =
|
|
59
|
+
}), m[34] = C, m[35] = M, m[36] = h, m[37] = U) : U = m[37];
|
|
59
60
|
let W;
|
|
60
|
-
return m[
|
|
61
|
+
return m[38] !== V || m[39] !== H || m[40] !== U || m[41] !== I || m[42] !== R || m[43] !== z || m[44] !== B ? (W = /* @__PURE__ */ jsxs("div", {
|
|
61
62
|
className: I,
|
|
62
63
|
children: [
|
|
63
64
|
R,
|
|
@@ -67,6 +68,6 @@ var WorkflowItem_default = (p) => {
|
|
|
67
68
|
H,
|
|
68
69
|
U
|
|
69
70
|
]
|
|
70
|
-
}), m[
|
|
71
|
+
}), m[38] = V, m[39] = H, m[40] = U, m[41] = I, m[42] = R, m[43] = z, m[44] = B, m[45] = W) : W = m[45], W;
|
|
71
72
|
};
|
|
72
73
|
export { WorkflowItem_default as default };
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useWorkflowConfigByName } from "../../hooks/useWorkflows.js";
|
|
2
2
|
import { Button } from "../../components/ui/button.js";
|
|
3
|
-
import LoadingCentered_default from "../../components/feedback/LoadingCentered.js";
|
|
4
|
-
import ErrorSnackbar_default from "../../components/feedback/ErrorSnackbar.js";
|
|
5
|
-
import { useFetchWorkflowsByPipeline } from "../../hooks/useWorkflows.js";
|
|
6
3
|
import WorkflowItem_default from "./WorkflowItem.js";
|
|
7
4
|
import WorkbenchSettingsModal_default from "./components/WorkbenchSettingsModal.js";
|
|
8
5
|
import WorkflowButtons_default from "./components/buttons/WorkflowButtons.js";
|
|
@@ -10,81 +7,67 @@ import { useWorkflowListState } from "./hooks/useWorkflowListState.js";
|
|
|
10
7
|
import { c } from "react/compiler-runtime";
|
|
11
8
|
import React, { useState } from "react";
|
|
12
9
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { ArrowDownIcon
|
|
14
|
-
var WorkflowList_default = (
|
|
15
|
-
let
|
|
16
|
-
|
|
10
|
+
import { ArrowDownIcon } from "lucide-react";
|
|
11
|
+
var WorkflowList_default = (f) => {
|
|
12
|
+
let p = c(26), { workflow: m } = f, [h, g] = useState(!1), _;
|
|
13
|
+
p[0] === Symbol.for("react.memo_cache_sentinel") ? (_ = {
|
|
17
14
|
enableDebugMode: !1,
|
|
18
15
|
showFullMessageHistory: !1
|
|
19
|
-
},
|
|
20
|
-
let [
|
|
21
|
-
|
|
16
|
+
}, p[0] = _) : _ = p[0];
|
|
17
|
+
let [v, y] = useState(_), { listRef: b, scrollTo: x, canScrollDown: S, scrollToBottom: C } = useWorkflowListState(), w = useWorkflowConfigByName(m.className ?? void 0), T;
|
|
18
|
+
p[1] !== S || p[2] !== C ? (T = S && /* @__PURE__ */ jsx(Button, {
|
|
22
19
|
variant: "outline",
|
|
23
20
|
size: "icon",
|
|
24
|
-
onClick:
|
|
21
|
+
onClick: C,
|
|
25
22
|
className: "bg-background/80 fixed right-[calc(var(--sidebar-width)+1.5rem)] bottom-6 z-50 rounded-full shadow-md backdrop-blur-sm",
|
|
26
23
|
children: /* @__PURE__ */ jsx(ArrowDownIcon, { className: "size-4" })
|
|
27
|
-
}),
|
|
28
|
-
let
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
24
|
+
}), p[1] = S, p[2] = C, p[3] = T) : T = p[3];
|
|
25
|
+
let E = w.data?.title ?? m.alias, D;
|
|
26
|
+
p[4] === E ? D = p[5] : (D = /* @__PURE__ */ jsx("span", {
|
|
27
|
+
className: "flex-1 truncate text-sm",
|
|
28
|
+
children: E
|
|
29
|
+
}), p[4] = E, p[5] = D);
|
|
30
|
+
let O;
|
|
31
|
+
p[6] === m ? O = p[7] : (O = /* @__PURE__ */ jsx(WorkflowButtons_default, {
|
|
32
|
+
workflow: m,
|
|
33
|
+
workflowId: m.id
|
|
34
|
+
}), p[6] = m, p[7] = O);
|
|
35
|
+
let k;
|
|
36
|
+
p[8] !== h || p[9] !== v ? (k = /* @__PURE__ */ jsx(WorkbenchSettingsModal_default, {
|
|
37
|
+
settings: v,
|
|
38
|
+
onSettingsChange: y,
|
|
39
|
+
open: h,
|
|
40
|
+
onOpenChange: g
|
|
41
|
+
}), p[8] = h, p[9] = v, p[10] = k) : k = p[10];
|
|
42
|
+
let A;
|
|
43
|
+
p[11] !== D || p[12] !== O || p[13] !== k ? (A = /* @__PURE__ */ jsx("div", {
|
|
44
|
+
className: "bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-10 backdrop-blur",
|
|
45
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
46
|
+
className: "flex w-full items-center gap-2 rounded-md p-2 px-3 text-left text-sm font-medium",
|
|
47
|
+
children: [
|
|
48
|
+
D,
|
|
49
|
+
O,
|
|
50
|
+
k
|
|
51
|
+
]
|
|
52
|
+
})
|
|
53
|
+
}), p[11] = D, p[12] = O, p[13] = k, p[14] = A) : A = p[14];
|
|
54
|
+
let j;
|
|
55
|
+
p[15] !== x || p[16] !== v || p[17] !== m ? (j = /* @__PURE__ */ jsx("div", {
|
|
56
|
+
className: "max-w-4xl py-1",
|
|
57
|
+
children: /* @__PURE__ */ jsx(WorkflowItem_default, {
|
|
58
|
+
workflow: m,
|
|
59
|
+
workflowId: m.id,
|
|
60
|
+
scrollTo: x,
|
|
61
|
+
settings: v
|
|
62
|
+
})
|
|
63
|
+
}), p[15] = x, p[16] = v, p[17] = m, p[18] = j) : j = p[18];
|
|
64
|
+
let M;
|
|
65
|
+
p[19] !== b || p[20] !== A || p[21] !== j ? (M = /* @__PURE__ */ jsxs("div", {
|
|
34
66
|
className: "mb-10",
|
|
35
|
-
ref:
|
|
36
|
-
children:
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"data-id": p,
|
|
41
|
-
children: [/* @__PURE__ */ jsx("div", {
|
|
42
|
-
className: "bg-background/95 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-10 backdrop-blur",
|
|
43
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
44
|
-
role: "button",
|
|
45
|
-
tabIndex: h ? void 0 : 0,
|
|
46
|
-
className: cn("flex w-full items-center gap-2 rounded-md p-2 px-3 text-left text-sm font-medium", !h && "hover:bg-accent hover:text-accent-foreground cursor-pointer", h && "cursor-default"),
|
|
47
|
-
onClick: h ? void 0 : () => N(p),
|
|
48
|
-
onKeyDown: h ? void 0 : (i) => {
|
|
49
|
-
(i.key === "Enter" || i.key === " ") && (i.preventDefault(), N(p));
|
|
50
|
-
},
|
|
51
|
-
children: [
|
|
52
|
-
/* @__PURE__ */ jsx(Play, { className: "text-primary h-3.5 w-3.5 fill-current" }),
|
|
53
|
-
/* @__PURE__ */ jsx("span", {
|
|
54
|
-
className: "flex-1 truncate text-sm",
|
|
55
|
-
children: f.title ?? f.blockName
|
|
56
|
-
}),
|
|
57
|
-
/* @__PURE__ */ jsx(WorkflowButtons_default, {
|
|
58
|
-
pipeline: y,
|
|
59
|
-
workflowId: f.id
|
|
60
|
-
}),
|
|
61
|
-
m && /* @__PURE__ */ jsx(WorkbenchSettingsModal_default, {
|
|
62
|
-
settings: w,
|
|
63
|
-
onSettingsChange: T,
|
|
64
|
-
open: x,
|
|
65
|
-
onOpenChange: S
|
|
66
|
-
}),
|
|
67
|
-
!h && /* @__PURE__ */ jsx(ChevronRightIcon, { className: cn("text-muted-foreground h-3.5 w-3.5 transition-transform", g && "rotate-90") })
|
|
68
|
-
]
|
|
69
|
-
})
|
|
70
|
-
}), g && /* @__PURE__ */ jsx("div", {
|
|
71
|
-
className: "max-w-4xl py-1",
|
|
72
|
-
children: /* @__PURE__ */ jsx(WorkflowItem_default, {
|
|
73
|
-
pipeline: y,
|
|
74
|
-
workflowId: f.id,
|
|
75
|
-
scrollTo: A,
|
|
76
|
-
settings: w
|
|
77
|
-
})
|
|
78
|
-
})]
|
|
79
|
-
}, f.id);
|
|
80
|
-
}) })
|
|
81
|
-
}) : null, v[8] = E, v[9] = D, v[10] = b.data, v[11] = k, v[12] = O, v[13] = x, v[14] = y, v[15] = A, v[16] = w, v[17] = N, v[18] = L) : L = v[18];
|
|
82
|
-
let R;
|
|
83
|
-
return v[19] !== P || v[20] !== F || v[21] !== I || v[22] !== L ? (R = /* @__PURE__ */ jsxs("div", { children: [
|
|
84
|
-
P,
|
|
85
|
-
F,
|
|
86
|
-
I,
|
|
87
|
-
L
|
|
88
|
-
] }), v[19] = P, v[20] = F, v[21] = I, v[22] = L, v[23] = R) : R = v[23], R;
|
|
67
|
+
ref: b,
|
|
68
|
+
children: [A, j]
|
|
69
|
+
}), p[19] = b, p[20] = A, p[21] = j, p[22] = M) : M = p[22];
|
|
70
|
+
let N;
|
|
71
|
+
return p[23] !== T || p[24] !== M ? (N = /* @__PURE__ */ jsxs("div", { children: [T, M] }), p[23] = T, p[24] = M, p[25] = N) : N = p[25], N;
|
|
89
72
|
};
|
|
90
73
|
export { WorkflowList_default as default };
|