@loopstack/loopstack-studio 0.25.2 → 0.26.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.
- package/dist/api/environments.js +4 -0
- package/dist/api/index.js +15 -9
- package/dist/app/EnvironmentEmbedRoot.js +29 -19
- package/dist/components/data-table/DataList.js +93 -91
- package/dist/components/data-table/DataTable.js +128 -126
- package/dist/components/feedback/Snackbar.js +1 -1
- package/dist/components/layout/StudioSidebar.js +124 -131
- package/dist/components/ui/sidebar.js +2 -2
- package/dist/components/ui/slider.js +37 -26
- package/dist/components/ui-widgets/widgets/SandboxRun.js +16 -14
- package/dist/features/code-explorer/components/CodeExplorerTree.js +1 -0
- package/dist/features/code-explorer/components/FileContentViewer.js +1 -1
- package/dist/features/dashboard/RunItem.js +39 -37
- package/dist/features/debug/lib/flow-utils.js +1 -1
- package/dist/features/documents/DocumentRenderer.js +59 -58
- package/dist/features/documents/renderers/useDocumentTransition.js +29 -24
- package/dist/features/feature-registry/FeatureRegistryProvider.js +17 -0
- package/dist/features/feature-registry/index.js +1 -0
- package/dist/features/file-explorer/api/files.js +7 -0
- package/dist/features/file-explorer/components/FileExplorerPanel.js +95 -0
- package/dist/features/{workbench/components/RemoteFileTabsBar.js → file-explorer/components/FileTabsBar.js} +4 -4
- package/dist/features/{workbench/components/RemoteFileTree.js → file-explorer/components/FileTree.js} +6 -6
- package/dist/features/file-explorer/file-explorer-feature.js +12 -0
- package/dist/features/file-explorer/hooks/useFileExplorer.js +44 -0
- package/dist/features/file-explorer/index.js +2 -0
- package/dist/features/file-explorer/providers/FileExplorerProvider.js +112 -0
- package/dist/features/git/api/git.js +9 -0
- package/dist/features/oauth/OAuthPromptRenderer.js +162 -132
- package/dist/features/runs/Runs.js +1 -1
- package/dist/features/secrets/components/WorkbenchSecretsPanel.js +178 -0
- package/dist/features/secrets/index.js +1 -0
- package/dist/features/{documents → secrets}/renderers/SecretInputRenderer.js +17 -17
- package/dist/features/secrets/secrets-feature.js +14 -0
- package/dist/features/workbench/Workbench.js +32 -82
- package/dist/features/workbench/WorkflowList.js +109 -46
- package/dist/features/workbench/components/SidebarPanel.js +155 -0
- package/dist/features/workbench/components/WorkbenchEnvironmentPanel.js +82 -0
- package/dist/features/workbench/components/WorkbenchIconSidebar.js +128 -60
- package/dist/features/workbench/components/WorkbenchPreviewPanel.js +127 -114
- package/dist/features/workbench/components/WorkbenchRunsPanel.js +32 -0
- package/dist/features/workbench/components/WorkbenchSidebarShell.js +80 -0
- package/dist/features/workbench/hooks/useWorkflowData.js +3 -3
- package/dist/features/workbench/index.js +3 -2
- package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +60 -62
- package/dist/features/workspaces/Workspaces.js +1 -1
- package/dist/features/workspaces/components/EnvironmentSlotSelector.js +68 -51
- package/dist/features/workspaces/components/WorkflowRunForm.js +1 -1
- package/dist/features/workspaces/components/WorkspaceHomePage.js +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/query-keys.js +45 -24
- package/dist/hooks/useEnvironmentPreviewUrl.js +13 -0
- package/dist/hooks/useEnvironments.js +8 -0
- package/dist/hooks/useWorkflows.js +28 -26
- package/dist/hooks/useWorkspaces.js +28 -26
- package/dist/index.d.ts +146 -7
- package/dist/index.js +9 -2
- package/dist/loopstack-studio.css +1 -1
- package/dist/node_modules/@shikijs/core/dist/index.js +105 -643
- package/dist/node_modules/@shikijs/engine-oniguruma/dist/index.js +135 -122
- package/dist/node_modules/@shikijs/langs/dist/bird2.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/cobol.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/css.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/dart.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/emacs-lisp.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/es-tag-sql.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/go.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/kusto.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/nextflow-groovy.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/php.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/ruby.js +1 -1
- package/dist/node_modules/@shikijs/langs/dist/typespec.js +1 -1
- package/dist/node_modules/@shikijs/primitive/dist/index.js +538 -0
- package/dist/node_modules/@shikijs/themes/dist/horizon-bright.js +1 -1
- package/dist/node_modules/@xyflow/react/dist/esm/index.js +1 -1
- package/dist/node_modules/shiki/dist/bundle-full.js +6 -5
- package/dist/node_modules/shiki/dist/chunk-CtajNgzt.js +15 -0
- package/dist/node_modules/shiki/dist/engine-oniguruma.js +5 -0
- package/dist/node_modules/shiki/dist/{langs.js → langs-bundle-full-DfKZStlK.js} +1 -1
- package/dist/node_modules/shiki/dist/themes.js +1 -1
- package/dist/pages/DashboardPage.js +54 -79
- package/dist/pages/DebugWorkflowDetailsPage.js +41 -55
- package/dist/pages/DebugWorkflowsPage.js +151 -112
- package/dist/pages/EmbedWorkbenchPage.js +2 -1
- package/dist/pages/PreviewWorkbenchPage.js +77 -59
- package/dist/pages/RunsListPage.js +27 -41
- package/dist/pages/RunsPage.js +21 -36
- package/dist/pages/WorkbenchPage.js +48 -70
- package/dist/pages/WorkflowDebugPage.js +65 -79
- package/dist/pages/WorkspacePage.js +56 -85
- package/dist/pages/WorkspaceRunsPage.js +59 -54
- package/dist/pages/WorkspacesPage.js +11 -27
- package/dist/providers/SseProvider.js +14 -20
- package/dist/providers/StudioPreferencesProvider.js +54 -0
- package/package.json +30 -30
- package/dist/features/workbench/components/WorkbenchFilesPanel.js +0 -67
- package/dist/features/workbench/components/WorkbenchFloatingPanel.js +0 -57
- package/dist/features/workbench/components/WorkbenchFlowPanel.js +0 -47
- package/dist/features/workbench/components/WorkbenchSecretsPanel.js +0 -182
- package/dist/features/workbench/providers/RemoteFileExplorerProvider.js +0 -160
- /package/dist/{node_modules → frontend/studio/node_modules}/@dagrejs/dagre/dist/dagre.esm.js +0 -0
|
@@ -15,46 +15,48 @@ function useWorkflow(e) {
|
|
|
15
15
|
}, i[6] = s, i[7] = u, i[8] = d, i[9] = f) : f = i[9], useQuery(f);
|
|
16
16
|
}
|
|
17
17
|
function useFilterWorkflows(e, r, i, a, s, u) {
|
|
18
|
-
let d = c(
|
|
19
|
-
d[0]
|
|
20
|
-
let
|
|
21
|
-
d[
|
|
22
|
-
let S;
|
|
23
|
-
d[5]
|
|
18
|
+
let d = c(32), f = i === void 0 ? "id" : i, p = a === void 0 ? "DESC" : a, m = s === void 0 ? 0 : s, h = u === void 0 ? 10 : u, { envKey: g, api: _ } = useApiClient(), v;
|
|
19
|
+
d[0] === r ? v = d[1] : (v = Object.keys(r), d[0] = r, d[1] = v);
|
|
20
|
+
let y = v.length > 0, b;
|
|
21
|
+
d[2] !== r || d[3] !== y ? (b = y ? JSON.stringify(r) : void 0, d[2] = r, d[3] = y, d[4] = b) : b = d[4];
|
|
22
|
+
let x = b, S;
|
|
23
|
+
d[5] === x ? S = d[6] : (S = x && { filter: x }, d[5] = x, d[6] = S);
|
|
24
|
+
let C;
|
|
25
|
+
d[7] !== p || d[8] !== f ? (C = JSON.stringify([{
|
|
24
26
|
field: f,
|
|
25
27
|
order: p
|
|
26
|
-
}]), d[
|
|
27
|
-
let
|
|
28
|
-
d[
|
|
28
|
+
}]), d[7] = p, d[8] = f, d[9] = C) : C = d[9];
|
|
29
|
+
let w;
|
|
30
|
+
d[10] === e ? w = d[11] : (w = e && {
|
|
29
31
|
search: e,
|
|
30
32
|
searchColumns: JSON.stringify(["title", "model"])
|
|
31
|
-
}, d[
|
|
32
|
-
let
|
|
33
|
-
d[
|
|
34
|
-
...
|
|
35
|
-
sortBy:
|
|
33
|
+
}, d[10] = e, d[11] = w);
|
|
34
|
+
let T;
|
|
35
|
+
d[12] !== h || d[13] !== m || d[14] !== S || d[15] !== C || d[16] !== w ? (T = {
|
|
36
|
+
...S,
|
|
37
|
+
sortBy: C,
|
|
36
38
|
page: m,
|
|
37
39
|
limit: h,
|
|
38
|
-
...
|
|
39
|
-
}, d[
|
|
40
|
-
let
|
|
41
|
-
d[
|
|
40
|
+
...w
|
|
41
|
+
}, d[12] = h, d[13] = m, d[14] = S, d[15] = C, d[16] = w, d[17] = T) : T = d[17];
|
|
42
|
+
let E = T, D;
|
|
43
|
+
d[18] !== g || d[19] !== x || d[20] !== h || d[21] !== p || d[22] !== m || d[23] !== e || d[24] !== f ? (D = [
|
|
42
44
|
...getWorkflowsCacheKey(g),
|
|
43
45
|
"list",
|
|
44
46
|
e ?? "",
|
|
45
|
-
|
|
47
|
+
x ?? "",
|
|
46
48
|
f,
|
|
47
49
|
p,
|
|
48
50
|
m,
|
|
49
51
|
h
|
|
50
|
-
], d[
|
|
51
|
-
let D;
|
|
52
|
-
d[24] !== _ || d[25] !== T ? (D = () => _.workflows.getAll(T), d[24] = _, d[25] = T, d[26] = D) : D = d[26];
|
|
52
|
+
], d[18] = g, d[19] = x, d[20] = h, d[21] = p, d[22] = m, d[23] = e, d[24] = f, d[25] = D) : D = d[25];
|
|
53
53
|
let O;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
d[26] !== _ || d[27] !== E ? (O = () => _.workflows.getAll(E), d[26] = _, d[27] = E, d[28] = O) : O = d[28];
|
|
55
|
+
let k;
|
|
56
|
+
return d[29] !== D || d[30] !== O ? (k = {
|
|
57
|
+
queryKey: D,
|
|
58
|
+
queryFn: O
|
|
59
|
+
}, d[29] = D, d[30] = O, d[31] = k) : k = d[31], useQuery(k);
|
|
58
60
|
}
|
|
59
61
|
function useCreateWorkflow() {
|
|
60
62
|
let e = c(8), { envKey: r, api: i } = useApiClient(), a = useQueryClient(), l;
|
|
@@ -15,46 +15,48 @@ function useWorkspace(t) {
|
|
|
15
15
|
}, i[6] = l, i[7] = u, i[8] = d, i[9] = f) : f = i[9], useQuery(f);
|
|
16
16
|
}
|
|
17
17
|
function useFilterWorkspaces(e, i, o, s, l, u) {
|
|
18
|
-
let d = c(
|
|
19
|
-
d[0]
|
|
20
|
-
let
|
|
21
|
-
d[
|
|
22
|
-
let S;
|
|
23
|
-
d[5]
|
|
18
|
+
let d = c(32), f = o === void 0 ? "id" : o, p = s === void 0 ? "DESC" : s, m = l === void 0 ? 0 : l, h = u === void 0 ? 10 : u, { envKey: g, api: _ } = useApiClient(), v;
|
|
19
|
+
d[0] === i ? v = d[1] : (v = Object.keys(i), d[0] = i, d[1] = v);
|
|
20
|
+
let y = v.length > 0, b;
|
|
21
|
+
d[2] !== i || d[3] !== y ? (b = y ? JSON.stringify(i) : void 0, d[2] = i, d[3] = y, d[4] = b) : b = d[4];
|
|
22
|
+
let x = b, S;
|
|
23
|
+
d[5] === x ? S = d[6] : (S = x && { filter: x }, d[5] = x, d[6] = S);
|
|
24
|
+
let C;
|
|
25
|
+
d[7] !== p || d[8] !== f ? (C = JSON.stringify([{
|
|
24
26
|
field: f,
|
|
25
27
|
order: p
|
|
26
|
-
}]), d[
|
|
27
|
-
let
|
|
28
|
-
d[
|
|
28
|
+
}]), d[7] = p, d[8] = f, d[9] = C) : C = d[9];
|
|
29
|
+
let w;
|
|
30
|
+
d[10] === e ? w = d[11] : (w = e && {
|
|
29
31
|
search: e,
|
|
30
32
|
searchColumns: JSON.stringify(["title"])
|
|
31
|
-
}, d[
|
|
32
|
-
let
|
|
33
|
-
d[
|
|
34
|
-
...
|
|
35
|
-
sortBy:
|
|
33
|
+
}, d[10] = e, d[11] = w);
|
|
34
|
+
let T;
|
|
35
|
+
d[12] !== h || d[13] !== m || d[14] !== S || d[15] !== C || d[16] !== w ? (T = {
|
|
36
|
+
...S,
|
|
37
|
+
sortBy: C,
|
|
36
38
|
page: m,
|
|
37
39
|
limit: h,
|
|
38
|
-
...
|
|
39
|
-
}, d[
|
|
40
|
-
let
|
|
41
|
-
d[
|
|
40
|
+
...w
|
|
41
|
+
}, d[12] = h, d[13] = m, d[14] = S, d[15] = C, d[16] = w, d[17] = T) : T = d[17];
|
|
42
|
+
let E = T, D;
|
|
43
|
+
d[18] !== g || d[19] !== x || d[20] !== h || d[21] !== p || d[22] !== m || d[23] !== e || d[24] !== f ? (D = [
|
|
42
44
|
...getWorkspacesCacheKey(g),
|
|
43
45
|
"list",
|
|
44
46
|
e ?? "",
|
|
45
|
-
|
|
47
|
+
x ?? "",
|
|
46
48
|
f,
|
|
47
49
|
p,
|
|
48
50
|
m,
|
|
49
51
|
h
|
|
50
|
-
], d[
|
|
51
|
-
let D;
|
|
52
|
-
d[24] !== _ || d[25] !== T ? (D = () => _.workspaces.getAll(T), d[24] = _, d[25] = T, d[26] = D) : D = d[26];
|
|
52
|
+
], d[18] = g, d[19] = x, d[20] = h, d[21] = p, d[22] = m, d[23] = e, d[24] = f, d[25] = D) : D = d[25];
|
|
53
53
|
let O;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
d[26] !== _ || d[27] !== E ? (O = () => _.workspaces.getAll(E), d[26] = _, d[27] = E, d[28] = O) : O = d[28];
|
|
55
|
+
let k;
|
|
56
|
+
return d[29] !== D || d[30] !== O ? (k = {
|
|
57
|
+
queryKey: D,
|
|
58
|
+
queryFn: O
|
|
59
|
+
}, d[29] = D, d[30] = O, d[31] = k) : k = d[31], useQuery(k);
|
|
58
60
|
}
|
|
59
61
|
function useCreateWorkspace() {
|
|
60
62
|
let e = c(8), { envKey: a, api: s } = useApiClient(), l = useQueryClient(), u;
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,8 @@ import { Context } from 'react';
|
|
|
12
12
|
import { DashboardStatsInterface } from '@loopstack/contracts/api';
|
|
13
13
|
import { default as default_2 } from 'react';
|
|
14
14
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
15
|
-
import { DocumentItemInterface } from '@loopstack/contracts/
|
|
15
|
+
import { DocumentItemInterface } from '@loopstack/contracts/types';
|
|
16
|
+
import { DocumentItemInterface as DocumentItemInterface_2 } from '@loopstack/contracts/api';
|
|
16
17
|
import { Drawer as Drawer_2 } from 'vaul';
|
|
17
18
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
18
19
|
import { EnvironmentConfigInterface } from '@loopstack/contracts/api';
|
|
@@ -269,13 +270,49 @@ declare function createApi(http: AxiosInstance): {
|
|
|
269
270
|
documents: {
|
|
270
271
|
getById: (params: {
|
|
271
272
|
id: string;
|
|
272
|
-
}) => Promise<
|
|
273
|
+
}) => Promise<DocumentItemInterface_2>;
|
|
273
274
|
getAll: (params?: {
|
|
274
275
|
filter?: string;
|
|
275
276
|
sortBy?: string;
|
|
276
277
|
page?: number;
|
|
277
278
|
limit?: number;
|
|
278
|
-
}) => Promise<PaginatedInterface<
|
|
279
|
+
}) => Promise<PaginatedInterface<DocumentItemInterface_2>>;
|
|
280
|
+
};
|
|
281
|
+
environments: {
|
|
282
|
+
resetEnvironment: (params: {
|
|
283
|
+
workspaceId: string;
|
|
284
|
+
slotId: string;
|
|
285
|
+
}) => Promise<{
|
|
286
|
+
success: boolean;
|
|
287
|
+
message: string;
|
|
288
|
+
}>;
|
|
289
|
+
};
|
|
290
|
+
files: {
|
|
291
|
+
getTree: (params: {
|
|
292
|
+
workspaceId: string;
|
|
293
|
+
path?: string;
|
|
294
|
+
}) => Promise<FileExplorerNode[]>;
|
|
295
|
+
readFile: (params: {
|
|
296
|
+
workspaceId: string;
|
|
297
|
+
path: string;
|
|
298
|
+
}) => Promise<FileContent>;
|
|
299
|
+
};
|
|
300
|
+
git: {
|
|
301
|
+
getStatus: (params: {
|
|
302
|
+
workspaceId: string;
|
|
303
|
+
}) => Promise<GitStatusResponse>;
|
|
304
|
+
getLog: (params: {
|
|
305
|
+
workspaceId: string;
|
|
306
|
+
limit?: number;
|
|
307
|
+
}) => Promise<GitLogResponse>;
|
|
308
|
+
getRemote: (params: {
|
|
309
|
+
workspaceId: string;
|
|
310
|
+
}) => Promise<GitRemoteResponse | null>;
|
|
311
|
+
removeRemote: (params: {
|
|
312
|
+
workspaceId: string;
|
|
313
|
+
}) => Promise<{
|
|
314
|
+
success: boolean;
|
|
315
|
+
}>;
|
|
279
316
|
};
|
|
280
317
|
processor: {
|
|
281
318
|
runWorkflow: (params: {
|
|
@@ -555,6 +592,14 @@ declare interface DiscordLogoProps {
|
|
|
555
592
|
className?: string;
|
|
556
593
|
}
|
|
557
594
|
|
|
595
|
+
declare interface DocumentRendererProps {
|
|
596
|
+
parentWorkflow: WorkflowFullInterface;
|
|
597
|
+
workflow: WorkflowFullInterface;
|
|
598
|
+
document: DocumentItemInterface;
|
|
599
|
+
isActive: boolean;
|
|
600
|
+
isLastItem: boolean;
|
|
601
|
+
}
|
|
602
|
+
|
|
558
603
|
export declare function Drawer({ ...props }: React_2.ComponentProps<typeof Drawer_2.Root>): JSX.Element;
|
|
559
604
|
|
|
560
605
|
export declare function DrawerClose({ ...props }: React_2.ComponentProps<typeof Drawer_2.Close>): JSX.Element;
|
|
@@ -683,6 +728,30 @@ declare class EventEmitter {
|
|
|
683
728
|
emit(event: string, ...args: unknown[]): void;
|
|
684
729
|
}
|
|
685
730
|
|
|
731
|
+
export declare function FeatureRegistryProvider({ features, children }: FeatureRegistryProviderProps): JSX.Element;
|
|
732
|
+
|
|
733
|
+
export declare interface FeatureRegistryProviderProps {
|
|
734
|
+
features?: StudioFeature[];
|
|
735
|
+
children: ReactNode;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
declare interface FileContent {
|
|
739
|
+
path: string;
|
|
740
|
+
content: string;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
export declare const fileExplorerFeature: StudioFeature;
|
|
744
|
+
|
|
745
|
+
declare interface FileExplorerNode {
|
|
746
|
+
id: string;
|
|
747
|
+
name: string;
|
|
748
|
+
path: string;
|
|
749
|
+
type: FileNodeType;
|
|
750
|
+
children?: FileExplorerNode[];
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
declare type FileNodeType = 'file' | 'folder';
|
|
754
|
+
|
|
686
755
|
export declare type FilterOption = string | {
|
|
687
756
|
label: string;
|
|
688
757
|
value: string;
|
|
@@ -702,6 +771,12 @@ export declare function getFileContentCacheKey(envKey: string, workflowId: strin
|
|
|
702
771
|
|
|
703
772
|
export declare function getFileTreeCacheKey(envKey: string, workflowId: string): string[];
|
|
704
773
|
|
|
774
|
+
export declare function getGitLogCacheKey(envKey: string, workspaceId: string): string[];
|
|
775
|
+
|
|
776
|
+
export declare function getGitRemoteCacheKey(envKey: string, workspaceId: string): string[];
|
|
777
|
+
|
|
778
|
+
export declare function getGitStatusCacheKey(envKey: string, workspaceId: string): string[];
|
|
779
|
+
|
|
705
780
|
export declare function getHealthCacheKey(envKey: string): string[];
|
|
706
781
|
|
|
707
782
|
/**
|
|
@@ -734,6 +809,31 @@ export declare function getWorkspacesCacheKey(envKey: string): string[];
|
|
|
734
809
|
|
|
735
810
|
export declare function getWorkspaceTypesCacheKey(envKey: string): string[];
|
|
736
811
|
|
|
812
|
+
declare interface GitCommit {
|
|
813
|
+
hash: string;
|
|
814
|
+
shortHash: string;
|
|
815
|
+
message: string;
|
|
816
|
+
author: string;
|
|
817
|
+
date: string;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
declare interface GitLogResponse {
|
|
821
|
+
commits: GitCommit[];
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
declare interface GitRemoteResponse {
|
|
825
|
+
name: string;
|
|
826
|
+
url: string;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
declare interface GitStatusResponse {
|
|
830
|
+
branch: string;
|
|
831
|
+
staged: string[];
|
|
832
|
+
modified: string[];
|
|
833
|
+
untracked: string[];
|
|
834
|
+
deleted: string[];
|
|
835
|
+
}
|
|
836
|
+
|
|
737
837
|
export declare const GoogleLogo: default_2.FC<GoogleLogoProps>;
|
|
738
838
|
|
|
739
839
|
declare interface GoogleLogoProps {
|
|
@@ -905,6 +1005,10 @@ declare interface PageBreadcrumbsProps {
|
|
|
905
1005
|
breadcrumbData: BreadCrumbsData[];
|
|
906
1006
|
}
|
|
907
1007
|
|
|
1008
|
+
declare type PanelId = 'runs' | 'preview' | 'files' | 'environment' | (string & {});
|
|
1009
|
+
|
|
1010
|
+
declare type PanelSize = 'small' | 'medium' | 'large';
|
|
1011
|
+
|
|
908
1012
|
export declare function Popover({ ...props }: React_2.ComponentProps<typeof PopoverPrimitive.Root>): JSX.Element;
|
|
909
1013
|
|
|
910
1014
|
export declare function PopoverAnchor({ ...props }: React_2.ComponentProps<typeof PopoverPrimitive.Anchor>): JSX.Element;
|
|
@@ -955,6 +1059,8 @@ declare interface SecretItem {
|
|
|
955
1059
|
hasValue: boolean;
|
|
956
1060
|
}
|
|
957
1061
|
|
|
1062
|
+
export declare const secretsFeature: StudioFeature;
|
|
1063
|
+
|
|
958
1064
|
export declare function Select({ ...props }: React_2.ComponentProps<typeof SelectPrimitive.Root>): JSX.Element;
|
|
959
1065
|
|
|
960
1066
|
export declare function SelectContent({ className, children, position, align, ...props }: React_2.ComponentProps<typeof SelectPrimitive.Content>): JSX.Element;
|
|
@@ -1106,8 +1212,40 @@ declare interface StudioContext {
|
|
|
1106
1212
|
|
|
1107
1213
|
declare const StudioContext: Context<StudioContext | null>;
|
|
1108
1214
|
|
|
1215
|
+
export declare interface StudioFeature {
|
|
1216
|
+
id: string;
|
|
1217
|
+
documentRenderers?: Record<string, ComponentType<DocumentRendererProps>>;
|
|
1218
|
+
sidebarPanel?: StudioFeatureSidebarPanel;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1221
|
+
export declare interface StudioFeatureSidebarPanel {
|
|
1222
|
+
id: string;
|
|
1223
|
+
label: string;
|
|
1224
|
+
icon: ComponentType<{
|
|
1225
|
+
className?: string;
|
|
1226
|
+
}>;
|
|
1227
|
+
component: ComponentType<{
|
|
1228
|
+
workspaceId?: string;
|
|
1229
|
+
}>;
|
|
1230
|
+
}
|
|
1231
|
+
|
|
1109
1232
|
export declare function StudioLandingPage(): JSX.Element;
|
|
1110
1233
|
|
|
1234
|
+
declare interface StudioPreferences {
|
|
1235
|
+
leftSidebarOpen: boolean;
|
|
1236
|
+
activePanel: PanelId | null;
|
|
1237
|
+
panelSizes: Partial<Record<PanelId, PanelSize>>;
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1240
|
+
declare interface StudioPreferencesContextType {
|
|
1241
|
+
preferences: StudioPreferences;
|
|
1242
|
+
setPreference: <K extends keyof StudioPreferences>(key: K, value: StudioPreferences[K]) => void;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
export declare function StudioPreferencesProvider({ children }: {
|
|
1246
|
+
children: ReactNode;
|
|
1247
|
+
}): JSX.Element;
|
|
1248
|
+
|
|
1111
1249
|
export declare const StudioProvider: ({ children, router, environment, }: {
|
|
1112
1250
|
children: ReactNode;
|
|
1113
1251
|
router: StudioRouter;
|
|
@@ -1224,6 +1362,8 @@ export declare function useFilterWorkspaces(searchTerm: string | undefined, filt
|
|
|
1224
1362
|
|
|
1225
1363
|
export declare function useIsMobile(): boolean;
|
|
1226
1364
|
|
|
1365
|
+
export declare function useOptionalStudioPreferences(): StudioPreferencesContextType | null;
|
|
1366
|
+
|
|
1227
1367
|
export declare const useRouter: (envId: string, embedPrefix?: string) => StudioRouter;
|
|
1228
1368
|
|
|
1229
1369
|
export declare function useSetFavouriteWorkspace(): UseMutationResult<void, Error, {
|
|
@@ -1237,6 +1377,8 @@ export declare const useStudio: () => StudioContext;
|
|
|
1237
1377
|
|
|
1238
1378
|
export declare const useStudioOptional: () => StudioContext | null;
|
|
1239
1379
|
|
|
1380
|
+
export declare function useStudioPreferences(): StudioPreferencesContextType;
|
|
1381
|
+
|
|
1240
1382
|
/**
|
|
1241
1383
|
* Update an existing workflow.
|
|
1242
1384
|
*/
|
|
@@ -1276,10 +1418,7 @@ export declare function useWorkspace(id: string | undefined): UseQueryResult<Wor
|
|
|
1276
1418
|
|
|
1277
1419
|
export declare function useWorkspaceConfig(): UseQueryResult<WorkspaceConfigInterface[], Error>;
|
|
1278
1420
|
|
|
1279
|
-
export declare function WorkbenchPage({
|
|
1280
|
-
previewPanelOpen?: boolean;
|
|
1281
|
-
onPreviewPanelOpenChange?: (open: boolean) => void;
|
|
1282
|
-
isDeveloperMode?: boolean;
|
|
1421
|
+
export declare function WorkbenchPage({ getPreviewUrl, getEnvironmentPreviewUrl, environments, }?: {
|
|
1283
1422
|
getPreviewUrl?: (workflowId: string) => string;
|
|
1284
1423
|
getEnvironmentPreviewUrl?: (env: WorkspaceEnvironmentInterface, workflowId?: string) => string;
|
|
1285
1424
|
environments?: WorkspaceEnvironmentInterface[];
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAvailableEnvironmentsCacheKey, getChildWorkflowsCacheKey, getDashboardStatsCacheKey, getDocumentCacheKey, getDocumentsCacheKey, getFileContentCacheKey, getFileTreeCacheKey, getHealthCacheKey, getMeCacheKey, getSecretsCacheKey, getWorkflowCacheKey, getWorkflowConfigCacheKey, getWorkflowSourceCacheKey, getWorkflowTypesCacheKey, getWorkflowsCacheKey, getWorkspaceCacheKey, getWorkspaceTypesCacheKey, getWorkspacesCacheKey } from "./hooks/query-keys.js";
|
|
1
|
+
import { getAvailableEnvironmentsCacheKey, getChildWorkflowsCacheKey, getDashboardStatsCacheKey, getDocumentCacheKey, getDocumentsCacheKey, getFileContentCacheKey, getFileTreeCacheKey, getGitLogCacheKey, getGitRemoteCacheKey, getGitStatusCacheKey, getHealthCacheKey, getMeCacheKey, getSecretsCacheKey, getWorkflowCacheKey, getWorkflowConfigCacheKey, getWorkflowSourceCacheKey, getWorkflowTypesCacheKey, getWorkflowsCacheKey, getWorkspaceCacheKey, getWorkspaceTypesCacheKey, getWorkspacesCacheKey } from "./hooks/query-keys.js";
|
|
2
2
|
import { createApiClient } from "./services/createApiClient.js";
|
|
3
3
|
import { eventBus } from "./services/eventEmitter.js";
|
|
4
4
|
import "./services/index.js";
|
|
@@ -9,6 +9,7 @@ import { useAvailableEnvironments, useWorkflowConfig, useWorkspaceConfig } from
|
|
|
9
9
|
import { useBatchDeleteWorkflows, useChildWorkflows, useCreateWorkflow, useDeleteWorkflow, useFilterWorkflows, useUpdateWorkflow, useWorkflow, useWorkflowCheckpoints, useWorkflowConfigByName, useWorkflowSource } from "./hooks/useWorkflows.js";
|
|
10
10
|
import { useBatchDeleteWorkspaces, useCreateWorkspace, useDeleteWorkspace, useFilterWorkspaces, useSetFavouriteWorkspace, useUpdateWorkspace, useWorkspace } from "./hooks/useWorkspaces.js";
|
|
11
11
|
import "./hooks/index.js";
|
|
12
|
+
import { StudioPreferencesProvider, useOptionalStudioPreferences, useStudioPreferences } from "./providers/StudioPreferencesProvider.js";
|
|
12
13
|
import { ComponentOverridesProvider, useComponentOverrides } from "./providers/ComponentOverridesProvider.js";
|
|
13
14
|
import { SseProvider } from "./providers/SseProvider.js";
|
|
14
15
|
import { InvalidationEventsProvider } from "./providers/InvalidationEventsProvider.js";
|
|
@@ -66,6 +67,8 @@ import DashboardPage from "./pages/DashboardPage.js";
|
|
|
66
67
|
import { EnvironmentSlotSelector } from "./features/workspaces/components/EnvironmentSlotSelector.js";
|
|
67
68
|
import CreateWorkspace_default from "./features/workspaces/components/CreateWorkspace.js";
|
|
68
69
|
import WorkspacesPage from "./pages/WorkspacesPage.js";
|
|
70
|
+
import { FeatureRegistryProvider } from "./features/feature-registry/FeatureRegistryProvider.js";
|
|
71
|
+
import "./features/feature-registry/index.js";
|
|
69
72
|
import WorkspacePage_default from "./pages/WorkspacePage.js";
|
|
70
73
|
import WorkspaceRunsPage_default from "./pages/WorkspaceRunsPage.js";
|
|
71
74
|
import "./features/workspaces/index.js";
|
|
@@ -78,8 +81,12 @@ import PreviewWorkbenchPage from "./pages/PreviewWorkbenchPage.js";
|
|
|
78
81
|
import RunsPage from "./pages/RunsPage.js";
|
|
79
82
|
import RunsListPage from "./pages/RunsListPage.js";
|
|
80
83
|
import StudioLandingPage from "./pages/StudioLandingPage.js";
|
|
84
|
+
import { fileExplorerFeature } from "./features/file-explorer/file-explorer-feature.js";
|
|
85
|
+
import "./features/file-explorer/index.js";
|
|
81
86
|
import LocalHealthCheck_default from "./features/health/LocalHealthCheck.js";
|
|
87
|
+
import { secretsFeature } from "./features/secrets/secrets-feature.js";
|
|
88
|
+
import "./features/secrets/index.js";
|
|
82
89
|
import EnvironmentEmbedRoot from "./app/EnvironmentEmbedRoot.js";
|
|
83
90
|
import { StudioSidebar } from "./components/layout/StudioSidebar.js";
|
|
84
91
|
import "./features/health/index.js";
|
|
85
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, CompletionMessagePaper_default as CompletionMessagePaper, ComponentOverridesProvider, ConfirmDialog_default as ConfirmDialog, CreateWorkspace_default as CreateWorkspace, CustomListView_default as CustomItemListView, DashboardPage, DataList, DataTable, DataTableBatchAction_default as DataTableBatchActions, DataTableFilters_default as DataTableFilters, DataTablePagination_default as DataTablePagination, DataTableToolbar_default as DataTableToolbar, DebugPage_default as DebugPage, DebugWorkflowDetailsPage, DebugWorkflowsPage, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiscordLogo, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmbedWorkbenchPage, EnvironmentEmbedRoot, EnvironmentSlotSelector, ErrorAlert_default as ErrorAlert, ErrorBoundary, ErrorSnackbar_default as ErrorSnackbar, GoogleLogo, Input, InvalidationEventsProvider, ListView_default as ItemListView, Label, LoadingCentered_default as LoadingCentered, LocalHealthCheck_default as LocalHealthCheck, LocalRouter, MainLayout_default as MainLayout, PageBreadcrumbs_default as PageBreadcrumbs, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PreviewWorkbenchPage, RadioGroup, RadioGroupItem, RunsListPage, RunsPage, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarInsetDiv, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuDiv, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Snackbar_default as Snackbar, SseProvider, StudioLandingPage, StudioProvider, StudioSidebar, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WorkbenchPage, WorkflowDebugPage_default as WorkflowDebugPage, WorkspacePage_default as WorkspacePage, WorkspaceRunsPage_default as WorkspaceRunsPage, WorkspacesPage, badgeVariants, buttonVariants, createApiClient, eventBus, getAvailableEnvironmentsCacheKey, getChildWorkflowsCacheKey, getDashboardStatsCacheKey, getDocumentCacheKey, getDocumentsCacheKey, getFileContentCacheKey, getFileTreeCacheKey, getHealthCacheKey, getMeCacheKey, getSecretsCacheKey, getWorkflowCacheKey, getWorkflowConfigCacheKey, getWorkflowSourceCacheKey, getWorkflowTypesCacheKey, getWorkflowsCacheKey, getWorkspaceCacheKey, getWorkspaceTypesCacheKey, getWorkspacesCacheKey, useApiClient, useAvailableEnvironments, useBatchDeleteWorkflows, useBatchDeleteWorkspaces, useChildWorkflows, useComponentOverrides, useCreateWorkflow, useCreateWorkspace, useDeleteWorkflow, useDeleteWorkspace, useFilterWorkflows, useFilterWorkspaces, useIsMobile, useRouter, useSetFavouriteWorkspace, useSidebar, useStudio, useStudioOptional, useUpdateWorkflow, useUpdateWorkspace, useWorkflow, useWorkflowCheckpoints, useWorkflowConfig, useWorkflowConfigByName, useWorkflowSource, useWorkspace, useWorkspaceConfig };
|
|
92
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, CompletionMessagePaper_default as CompletionMessagePaper, ComponentOverridesProvider, ConfirmDialog_default as ConfirmDialog, CreateWorkspace_default as CreateWorkspace, CustomListView_default as CustomItemListView, DashboardPage, DataList, DataTable, DataTableBatchAction_default as DataTableBatchActions, DataTableFilters_default as DataTableFilters, DataTablePagination_default as DataTablePagination, DataTableToolbar_default as DataTableToolbar, DebugPage_default as DebugPage, DebugWorkflowDetailsPage, DebugWorkflowsPage, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DiscordLogo, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EmbedWorkbenchPage, EnvironmentEmbedRoot, EnvironmentSlotSelector, ErrorAlert_default as ErrorAlert, ErrorBoundary, ErrorSnackbar_default as ErrorSnackbar, FeatureRegistryProvider, GoogleLogo, Input, InvalidationEventsProvider, ListView_default as ItemListView, Label, LoadingCentered_default as LoadingCentered, LocalHealthCheck_default as LocalHealthCheck, LocalRouter, MainLayout_default as MainLayout, PageBreadcrumbs_default as PageBreadcrumbs, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PreviewWorkbenchPage, RadioGroup, RadioGroupItem, RunsListPage, RunsPage, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarInsetDiv, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuDiv, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Snackbar_default as Snackbar, SseProvider, StudioLandingPage, StudioPreferencesProvider, StudioProvider, StudioSidebar, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WorkbenchPage, WorkflowDebugPage_default as WorkflowDebugPage, WorkspacePage_default as WorkspacePage, WorkspaceRunsPage_default as WorkspaceRunsPage, WorkspacesPage, badgeVariants, buttonVariants, createApiClient, eventBus, fileExplorerFeature, getAvailableEnvironmentsCacheKey, getChildWorkflowsCacheKey, getDashboardStatsCacheKey, getDocumentCacheKey, getDocumentsCacheKey, getFileContentCacheKey, getFileTreeCacheKey, getGitLogCacheKey, getGitRemoteCacheKey, getGitStatusCacheKey, getHealthCacheKey, getMeCacheKey, getSecretsCacheKey, getWorkflowCacheKey, getWorkflowConfigCacheKey, getWorkflowSourceCacheKey, getWorkflowTypesCacheKey, getWorkflowsCacheKey, getWorkspaceCacheKey, getWorkspaceTypesCacheKey, getWorkspacesCacheKey, secretsFeature, useApiClient, useAvailableEnvironments, useBatchDeleteWorkflows, useBatchDeleteWorkspaces, useChildWorkflows, useComponentOverrides, useCreateWorkflow, useCreateWorkspace, useDeleteWorkflow, useDeleteWorkspace, useFilterWorkflows, useFilterWorkspaces, useIsMobile, useOptionalStudioPreferences, useRouter, useSetFavouriteWorkspace, useSidebar, useStudio, useStudioOptional, useStudioPreferences, useUpdateWorkflow, useUpdateWorkspace, useWorkflow, useWorkflowCheckpoints, useWorkflowConfig, useWorkflowConfigByName, useWorkflowSource, useWorkspace, useWorkspaceConfig };
|