@loopstack/loopstack-studio 0.25.2 → 0.26.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 (96) hide show
  1. package/dist/api/environments.js +4 -0
  2. package/dist/api/index.js +13 -9
  3. package/dist/app/EnvironmentEmbedRoot.js +29 -19
  4. package/dist/components/data-table/DataList.js +93 -91
  5. package/dist/components/data-table/DataTable.js +128 -126
  6. package/dist/components/feedback/Snackbar.js +1 -1
  7. package/dist/components/layout/StudioSidebar.js +124 -131
  8. package/dist/components/ui/sidebar.js +2 -2
  9. package/dist/components/ui/slider.js +37 -26
  10. package/dist/components/ui-widgets/widgets/SandboxRun.js +16 -14
  11. package/dist/features/code-explorer/components/CodeExplorerTree.js +1 -0
  12. package/dist/features/code-explorer/components/FileContentViewer.js +1 -1
  13. package/dist/features/dashboard/RunItem.js +39 -37
  14. package/dist/features/debug/lib/flow-utils.js +1 -1
  15. package/dist/features/documents/DocumentRenderer.js +59 -58
  16. package/dist/features/documents/renderers/useDocumentTransition.js +29 -24
  17. package/dist/features/feature-registry/FeatureRegistryProvider.js +17 -0
  18. package/dist/features/feature-registry/index.js +1 -0
  19. package/dist/features/file-explorer/api/files.js +7 -0
  20. package/dist/features/file-explorer/components/FileExplorerPanel.js +95 -0
  21. package/dist/features/{workbench/components/RemoteFileTabsBar.js → file-explorer/components/FileTabsBar.js} +4 -4
  22. package/dist/features/{workbench/components/RemoteFileTree.js → file-explorer/components/FileTree.js} +6 -6
  23. package/dist/features/file-explorer/file-explorer-feature.js +12 -0
  24. package/dist/features/file-explorer/hooks/useFileExplorer.js +44 -0
  25. package/dist/features/file-explorer/index.js +2 -0
  26. package/dist/features/file-explorer/providers/FileExplorerProvider.js +112 -0
  27. package/dist/features/oauth/OAuthPromptRenderer.js +162 -132
  28. package/dist/features/runs/Runs.js +1 -1
  29. package/dist/features/secrets/components/WorkbenchSecretsPanel.js +178 -0
  30. package/dist/features/secrets/index.js +1 -0
  31. package/dist/features/{documents → secrets}/renderers/SecretInputRenderer.js +17 -17
  32. package/dist/features/secrets/secrets-feature.js +14 -0
  33. package/dist/features/workbench/Workbench.js +32 -82
  34. package/dist/features/workbench/WorkflowList.js +109 -46
  35. package/dist/features/workbench/components/SidebarPanel.js +155 -0
  36. package/dist/features/workbench/components/WorkbenchEnvironmentPanel.js +82 -0
  37. package/dist/features/workbench/components/WorkbenchIconSidebar.js +128 -60
  38. package/dist/features/workbench/components/WorkbenchPreviewPanel.js +127 -114
  39. package/dist/features/workbench/components/WorkbenchRunsPanel.js +32 -0
  40. package/dist/features/workbench/components/WorkbenchSidebarShell.js +80 -0
  41. package/dist/features/workbench/hooks/useWorkflowData.js +3 -3
  42. package/dist/features/workbench/index.js +3 -2
  43. package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +60 -62
  44. package/dist/features/workspaces/Workspaces.js +1 -1
  45. package/dist/features/workspaces/components/EnvironmentSlotSelector.js +68 -51
  46. package/dist/features/workspaces/components/WorkflowRunForm.js +1 -1
  47. package/dist/features/workspaces/components/WorkspaceHomePage.js +1 -1
  48. package/dist/hooks/useEnvironmentPreviewUrl.js +13 -0
  49. package/dist/hooks/useEnvironments.js +8 -0
  50. package/dist/hooks/useWorkflows.js +28 -26
  51. package/dist/hooks/useWorkspaces.js +28 -26
  52. package/dist/index.d.ts +98 -7
  53. package/dist/index.js +8 -1
  54. package/dist/loopstack-studio.css +1 -1
  55. package/dist/node_modules/@shikijs/core/dist/index.js +105 -643
  56. package/dist/node_modules/@shikijs/engine-oniguruma/dist/index.js +135 -122
  57. package/dist/node_modules/@shikijs/langs/dist/bird2.js +1 -1
  58. package/dist/node_modules/@shikijs/langs/dist/cobol.js +1 -1
  59. package/dist/node_modules/@shikijs/langs/dist/css.js +1 -1
  60. package/dist/node_modules/@shikijs/langs/dist/dart.js +1 -1
  61. package/dist/node_modules/@shikijs/langs/dist/emacs-lisp.js +1 -1
  62. package/dist/node_modules/@shikijs/langs/dist/es-tag-sql.js +1 -1
  63. package/dist/node_modules/@shikijs/langs/dist/go.js +1 -1
  64. package/dist/node_modules/@shikijs/langs/dist/kusto.js +1 -1
  65. package/dist/node_modules/@shikijs/langs/dist/nextflow-groovy.js +1 -1
  66. package/dist/node_modules/@shikijs/langs/dist/php.js +1 -1
  67. package/dist/node_modules/@shikijs/langs/dist/ruby.js +1 -1
  68. package/dist/node_modules/@shikijs/langs/dist/typespec.js +1 -1
  69. package/dist/node_modules/@shikijs/primitive/dist/index.js +538 -0
  70. package/dist/node_modules/@shikijs/themes/dist/horizon-bright.js +1 -1
  71. package/dist/node_modules/@xyflow/react/dist/esm/index.js +1 -1
  72. package/dist/node_modules/shiki/dist/bundle-full.js +6 -5
  73. package/dist/node_modules/shiki/dist/chunk-CtajNgzt.js +15 -0
  74. package/dist/node_modules/shiki/dist/engine-oniguruma.js +5 -0
  75. package/dist/node_modules/shiki/dist/{langs.js → langs-bundle-full-DfKZStlK.js} +1 -1
  76. package/dist/node_modules/shiki/dist/themes.js +1 -1
  77. package/dist/pages/DashboardPage.js +54 -79
  78. package/dist/pages/DebugWorkflowDetailsPage.js +41 -55
  79. package/dist/pages/DebugWorkflowsPage.js +151 -112
  80. package/dist/pages/EmbedWorkbenchPage.js +2 -1
  81. package/dist/pages/PreviewWorkbenchPage.js +77 -59
  82. package/dist/pages/RunsListPage.js +27 -41
  83. package/dist/pages/RunsPage.js +21 -36
  84. package/dist/pages/WorkbenchPage.js +48 -70
  85. package/dist/pages/WorkflowDebugPage.js +65 -79
  86. package/dist/pages/WorkspacePage.js +59 -86
  87. package/dist/pages/WorkspaceRunsPage.js +59 -54
  88. package/dist/pages/WorkspacesPage.js +11 -27
  89. package/dist/providers/StudioPreferencesProvider.js +54 -0
  90. package/package.json +29 -29
  91. package/dist/features/workbench/components/WorkbenchFilesPanel.js +0 -67
  92. package/dist/features/workbench/components/WorkbenchFloatingPanel.js +0 -57
  93. package/dist/features/workbench/components/WorkbenchFlowPanel.js +0 -47
  94. package/dist/features/workbench/components/WorkbenchSecretsPanel.js +0 -182
  95. package/dist/features/workbench/providers/RemoteFileExplorerProvider.js +0 -160
  96. /package/dist/{node_modules → frontend/studio/node_modules}/@dagrejs/dagre/dist/dagre.esm.js +0 -0
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/api';
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,32 @@ declare function createApi(http: AxiosInstance): {
269
270
  documents: {
270
271
  getById: (params: {
271
272
  id: string;
272
- }) => Promise<DocumentItemInterface>;
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<DocumentItemInterface>>;
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>;
279
299
  };
280
300
  processor: {
281
301
  runWorkflow: (params: {
@@ -555,6 +575,14 @@ declare interface DiscordLogoProps {
555
575
  className?: string;
556
576
  }
557
577
 
578
+ declare interface DocumentRendererProps {
579
+ parentWorkflow: WorkflowFullInterface;
580
+ workflow: WorkflowFullInterface;
581
+ document: DocumentItemInterface;
582
+ isActive: boolean;
583
+ isLastItem: boolean;
584
+ }
585
+
558
586
  export declare function Drawer({ ...props }: React_2.ComponentProps<typeof Drawer_2.Root>): JSX.Element;
559
587
 
560
588
  export declare function DrawerClose({ ...props }: React_2.ComponentProps<typeof Drawer_2.Close>): JSX.Element;
@@ -683,6 +711,30 @@ declare class EventEmitter {
683
711
  emit(event: string, ...args: unknown[]): void;
684
712
  }
685
713
 
714
+ export declare function FeatureRegistryProvider({ features, children }: FeatureRegistryProviderProps): JSX.Element;
715
+
716
+ export declare interface FeatureRegistryProviderProps {
717
+ features?: StudioFeature[];
718
+ children: ReactNode;
719
+ }
720
+
721
+ declare interface FileContent {
722
+ path: string;
723
+ content: string;
724
+ }
725
+
726
+ export declare const fileExplorerFeature: StudioFeature;
727
+
728
+ declare interface FileExplorerNode {
729
+ id: string;
730
+ name: string;
731
+ path: string;
732
+ type: FileNodeType;
733
+ children?: FileExplorerNode[];
734
+ }
735
+
736
+ declare type FileNodeType = 'file' | 'folder';
737
+
686
738
  export declare type FilterOption = string | {
687
739
  label: string;
688
740
  value: string;
@@ -905,6 +957,10 @@ declare interface PageBreadcrumbsProps {
905
957
  breadcrumbData: BreadCrumbsData[];
906
958
  }
907
959
 
960
+ declare type PanelId = 'runs' | 'preview' | 'files' | 'environment' | (string & {});
961
+
962
+ declare type PanelSize = 'small' | 'medium' | 'large';
963
+
908
964
  export declare function Popover({ ...props }: React_2.ComponentProps<typeof PopoverPrimitive.Root>): JSX.Element;
909
965
 
910
966
  export declare function PopoverAnchor({ ...props }: React_2.ComponentProps<typeof PopoverPrimitive.Anchor>): JSX.Element;
@@ -955,6 +1011,8 @@ declare interface SecretItem {
955
1011
  hasValue: boolean;
956
1012
  }
957
1013
 
1014
+ export declare const secretsFeature: StudioFeature;
1015
+
958
1016
  export declare function Select({ ...props }: React_2.ComponentProps<typeof SelectPrimitive.Root>): JSX.Element;
959
1017
 
960
1018
  export declare function SelectContent({ className, children, position, align, ...props }: React_2.ComponentProps<typeof SelectPrimitive.Content>): JSX.Element;
@@ -1106,8 +1164,40 @@ declare interface StudioContext {
1106
1164
 
1107
1165
  declare const StudioContext: Context<StudioContext | null>;
1108
1166
 
1167
+ export declare interface StudioFeature {
1168
+ id: string;
1169
+ documentRenderers?: Record<string, ComponentType<DocumentRendererProps>>;
1170
+ sidebarPanel?: StudioFeatureSidebarPanel;
1171
+ }
1172
+
1173
+ export declare interface StudioFeatureSidebarPanel {
1174
+ id: string;
1175
+ label: string;
1176
+ icon: ComponentType<{
1177
+ className?: string;
1178
+ }>;
1179
+ component: ComponentType<{
1180
+ workspaceId?: string;
1181
+ }>;
1182
+ }
1183
+
1109
1184
  export declare function StudioLandingPage(): JSX.Element;
1110
1185
 
1186
+ declare interface StudioPreferences {
1187
+ leftSidebarOpen: boolean;
1188
+ activePanel: PanelId | null;
1189
+ panelSizes: Partial<Record<PanelId, PanelSize>>;
1190
+ }
1191
+
1192
+ declare interface StudioPreferencesContextType {
1193
+ preferences: StudioPreferences;
1194
+ setPreference: <K extends keyof StudioPreferences>(key: K, value: StudioPreferences[K]) => void;
1195
+ }
1196
+
1197
+ export declare function StudioPreferencesProvider({ children }: {
1198
+ children: ReactNode;
1199
+ }): JSX.Element;
1200
+
1111
1201
  export declare const StudioProvider: ({ children, router, environment, }: {
1112
1202
  children: ReactNode;
1113
1203
  router: StudioRouter;
@@ -1224,6 +1314,8 @@ export declare function useFilterWorkspaces(searchTerm: string | undefined, filt
1224
1314
 
1225
1315
  export declare function useIsMobile(): boolean;
1226
1316
 
1317
+ export declare function useOptionalStudioPreferences(): StudioPreferencesContextType | null;
1318
+
1227
1319
  export declare const useRouter: (envId: string, embedPrefix?: string) => StudioRouter;
1228
1320
 
1229
1321
  export declare function useSetFavouriteWorkspace(): UseMutationResult<void, Error, {
@@ -1237,6 +1329,8 @@ export declare const useStudio: () => StudioContext;
1237
1329
 
1238
1330
  export declare const useStudioOptional: () => StudioContext | null;
1239
1331
 
1332
+ export declare function useStudioPreferences(): StudioPreferencesContextType;
1333
+
1240
1334
  /**
1241
1335
  * Update an existing workflow.
1242
1336
  */
@@ -1276,10 +1370,7 @@ export declare function useWorkspace(id: string | undefined): UseQueryResult<Wor
1276
1370
 
1277
1371
  export declare function useWorkspaceConfig(): UseQueryResult<WorkspaceConfigInterface[], Error>;
1278
1372
 
1279
- export declare function WorkbenchPage({ previewPanelOpen, onPreviewPanelOpenChange, isDeveloperMode, getPreviewUrl, getEnvironmentPreviewUrl, environments, }?: {
1280
- previewPanelOpen?: boolean;
1281
- onPreviewPanelOpenChange?: (open: boolean) => void;
1282
- isDeveloperMode?: boolean;
1373
+ export declare function WorkbenchPage({ getPreviewUrl, getEnvironmentPreviewUrl, environments, }?: {
1283
1374
  getPreviewUrl?: (workflowId: string) => string;
1284
1375
  getEnvironmentPreviewUrl?: (env: WorkspaceEnvironmentInterface, workflowId?: string) => string;
1285
1376
  environments?: WorkspaceEnvironmentInterface[];
package/dist/index.js CHANGED
@@ -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, 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 };