@loopstack/loopstack-studio 0.21.3 → 0.23.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 (126) hide show
  1. package/dist/api/auth.js +10 -0
  2. package/dist/api/client.js +13 -0
  3. package/dist/api/config.js +10 -0
  4. package/dist/api/dashboard.js +4 -0
  5. package/dist/api/documents.js +7 -0
  6. package/dist/api/index.js +24 -0
  7. package/dist/api/namespaces.js +7 -0
  8. package/dist/api/pipelines.js +13 -0
  9. package/dist/api/processor.js +4 -0
  10. package/dist/api/workflows.js +8 -0
  11. package/dist/api/workspaces.js +12 -0
  12. package/dist/app/EnvironmentEmbedRoot.js +35 -0
  13. package/dist/components/data-table/DataTableFilters.js +74 -63
  14. package/dist/components/feedback/ErrorBoundary.js +43 -0
  15. package/dist/components/{LoadingCentered.js → feedback/LoadingCentered.js} +1 -1
  16. package/dist/components/feedback/index.js +5 -0
  17. package/dist/components/index.js +6 -3
  18. package/dist/components/layout/MainLayout.js +36 -17
  19. package/dist/components/layout/StudioSidebar.js +165 -0
  20. package/dist/components/page/PageBreadcrumbs.js +1 -1
  21. package/dist/components/ui/sidebar.js +359 -359
  22. package/dist/components/ui-widgets/UiActions.js +22 -15
  23. package/dist/components/ui-widgets/UiWidget.js +31 -26
  24. package/dist/components/ui-widgets/widgets/AiPromptInput.js +27 -27
  25. package/dist/components/ui-widgets/widgets/ButtonFullWidth.js +12 -12
  26. package/dist/components/ui-widgets/widgets/SandboxRun.js +33 -0
  27. package/dist/components/ui-widgets/widgets/SubmitButton.js +11 -11
  28. package/dist/features/code-explorer/CodeExplorer.js +4 -67
  29. package/dist/features/code-explorer/components/CodeExplorerTree.js +3 -41
  30. package/dist/features/code-explorer/components/CodeExplorerTreeNode.js +4 -80
  31. package/dist/features/code-explorer/components/FileContentViewer.js +1 -0
  32. package/dist/features/code-explorer/components/FileTabsBar.js +1 -1
  33. package/dist/features/code-explorer/index.js +4 -0
  34. package/dist/features/code-explorer/utils/fileIcons.js +4 -7
  35. package/dist/features/debug/components/ConfigFlowViewer.js +1 -1
  36. package/dist/features/debug/components/PipelineFlowViewer.js +1 -1
  37. package/dist/features/debug/index.js +3 -0
  38. package/dist/features/documents/DocumentRenderer.js +53 -0
  39. package/dist/features/{workbench → documents}/components/DocumentItem.js +1 -1
  40. package/dist/features/documents/components/DocumentList.js +40 -0
  41. package/dist/features/{workbench → documents}/components/DocumentMetadataPills.js +2 -2
  42. package/dist/features/{workbench/components → documents}/document-details/DocumentDetails.js +3 -3
  43. package/dist/features/{workbench/components → documents}/document-details/PromptDetails.js +3 -3
  44. package/dist/features/documents/index.js +4 -0
  45. package/dist/features/{workbench/components/document-renderer → documents/renderers}/AiMessage.js +5 -5
  46. package/dist/features/{workbench/components/document-renderer → documents/renderers}/DocumentDebugRenderer.js +1 -1
  47. package/dist/features/{workbench/components/document-renderer → documents/renderers}/DocumentFormRenderer.js +9 -8
  48. package/dist/features/{workbench/components/document-renderer → documents/renderers}/DocumentMessageRenderer.js +1 -1
  49. package/dist/features/{workbench/components/document-renderer → documents/renderers}/ErrorMessageRenderer.js +1 -1
  50. package/dist/features/{workbench/components/document-renderer → documents/renderers}/LinkMessageRenderer.js +1 -1
  51. package/dist/features/{workbench/components/document-renderer → documents/renderers}/MarkdownMessageRenderer.js +2 -2
  52. package/dist/features/{workbench/components/document-renderer → documents/renderers}/PlainMessageRenderer.js +1 -1
  53. package/dist/features/health/index.js +1 -0
  54. package/dist/features/oauth/OAuthPromptRenderer.js +1 -1
  55. package/dist/features/runs/Runs.js +197 -0
  56. package/dist/features/workbench/NavigationItems.js +29 -29
  57. package/dist/features/workbench/Workbench.js +100 -78
  58. package/dist/features/workbench/WorkflowItem.js +63 -58
  59. package/dist/features/workbench/WorkflowList.js +62 -82
  60. package/dist/features/workbench/components/NewRunDialog.js +329 -0
  61. package/dist/features/workbench/components/WorkbenchFloatingPanel.js +88 -0
  62. package/dist/features/workbench/components/WorkbenchFlowPanel.js +49 -0
  63. package/dist/features/workbench/components/WorkbenchIconSidebar.js +68 -0
  64. package/dist/features/workbench/components/WorkbenchPreviewPanel.js +128 -0
  65. package/dist/features/workbench/components/WorkflowForms.js +7 -6
  66. package/dist/features/workbench/components/WorkflowHistoryItem.js +74 -69
  67. package/dist/features/workbench/components/buttons/WorkflowButtons.js +78 -61
  68. package/dist/features/workbench/hooks/useWorkflowData.js +49 -0
  69. package/dist/features/workbench/hooks/useWorkflowListState.js +50 -0
  70. package/dist/features/workbench/index.js +8 -0
  71. package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +76 -0
  72. package/dist/features/workspaces/Workspaces.js +2 -2
  73. package/dist/features/workspaces/components/CreateWorkspace.js +165 -82
  74. package/dist/features/workspaces/components/EnvironmentSlotSelector.js +63 -0
  75. package/dist/features/workspaces/components/ExecutionTimeline.js +70 -69
  76. package/dist/features/workspaces/components/PipelineForm.js +4 -4
  77. package/dist/features/workspaces/index.js +3 -0
  78. package/dist/hooks/index.js +3 -0
  79. package/dist/hooks/query-keys.js +138 -0
  80. package/dist/hooks/useApi.js +9 -33
  81. package/dist/hooks/useAuth.js +37 -56
  82. package/dist/hooks/useConfig.js +27 -33
  83. package/dist/hooks/useDashboard.js +9 -16
  84. package/dist/hooks/useDebounce.js +8 -17
  85. package/dist/hooks/useDocuments.js +7 -16
  86. package/dist/hooks/useFiles.js +24 -42
  87. package/dist/hooks/useNamespaces.js +7 -16
  88. package/dist/hooks/usePipelines.js +141 -174
  89. package/dist/hooks/useProcessor.js +11 -17
  90. package/dist/hooks/useWorkflows.js +51 -89
  91. package/dist/hooks/useWorkspaces.js +97 -129
  92. package/dist/index.d.ts +364 -50
  93. package/dist/index.js +21 -6
  94. package/dist/packages/contracts/dist/enums/index.js +25 -0
  95. package/dist/packages/contracts/dist/enums/pipeline-state.js +10 -0
  96. package/dist/packages/contracts/dist/enums/registry.enum.js +20 -0
  97. package/dist/packages/contracts/dist/enums/sort-order.enum.js +10 -0
  98. package/dist/packages/contracts/dist/enums/user-type.enum.js +10 -0
  99. package/dist/packages/contracts/dist/enums/workflow-state.enum.js +10 -0
  100. package/dist/pages/DashboardPage.js +1 -1
  101. package/dist/pages/DebugPage.js +12 -14
  102. package/dist/pages/DebugWorkflowDetailsPage.js +2 -2
  103. package/dist/pages/DebugWorkflowsPage.js +3 -4
  104. package/dist/pages/EmbedWorkbenchPage.js +7 -5
  105. package/dist/pages/PipelineDebugPage.js +7 -6
  106. package/dist/pages/PreviewWorkbenchPage.js +419 -0
  107. package/dist/pages/RunsListPage.js +64 -0
  108. package/dist/pages/RunsPage.js +49 -0
  109. package/dist/pages/StudioLandingPage.js +146 -0
  110. package/dist/pages/WorkbenchPage.js +78 -53
  111. package/dist/pages/WorkspacePage.js +1 -1
  112. package/dist/providers/InvalidationEventsProvider.js +15 -17
  113. package/dist/providers/QueryProvider.js +21 -0
  114. package/dist/providers/StudioProvider.js +2 -2
  115. package/dist/routing/LocalRouter.js +20 -7
  116. package/dist/services/createApiClient.js +4 -10
  117. package/dist/services/index.js +1 -1
  118. package/package.json +2 -3
  119. package/dist/features/workbench/components/DocumentList.js +0 -40
  120. package/dist/features/workbench/components/DocumentRenderer.js +0 -54
  121. package/dist/features/workbench/components/WorkbenchSidebar.js +0 -109
  122. package/dist/features/workbench/providers/WorkbenchContextProvider.js +0 -3
  123. /package/dist/components/{content → feedback}/ErrorAlert.js +0 -0
  124. /package/dist/components/{snackbars → feedback}/ErrorSnackbar.js +0 -0
  125. /package/dist/components/{snackbars → feedback}/Snackbar.js +0 -0
  126. /package/dist/features/{workbench/components/document-renderer → documents/renderers}/AiMessageContent.js +0 -0
package/dist/index.d.ts CHANGED
@@ -1,35 +1,43 @@
1
1
  import * as AccordionPrimitive from '@radix-ui/react-accordion';
2
2
  import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
3
- import { ApiV1AuthApi } from '../../client/api-client';
4
- import { ApiV1ConfigApi } from '../../client/api-client';
5
- import { ApiV1DashboardApi } from '../../client/api-client';
6
- import { ApiV1DocumentsApi } from '../../client/api-client';
7
- import { ApiV1NamespacesApi } from '../../client/api-client';
8
- import { ApiV1PipelinesApi } from '../../client/api-client';
9
- import { ApiV1ProcessorApi } from '../../client/api-client';
10
- import { ApiV1WorkflowsApi } from '../../client/api-client';
11
- import { ApiV1WorkspacesApi } from '../../client/api-client';
12
- import { ApiV1WorkspacesApiWorkspaceControllerCreateWorkspaceRequest } from '../../client/api-client';
13
- import { ApiV1WorkspacesApiWorkspaceControllerUpdateWorkspaceRequest } from '../../client/api-client';
3
+ import { AvailableEnvironmentInterface } from '@loopstack/contracts/api';
14
4
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
15
- import { AxiosResponse } from 'axios';
5
+ import { AxiosInstance } from 'axios';
16
6
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
17
7
  import { ClassProp } from 'class-variance-authority/types';
18
8
  import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
9
+ import { Component } from 'react';
19
10
  import { ComponentType } from 'react';
20
11
  import { Context } from 'react';
12
+ import { DashboardStatsInterface } from '@loopstack/contracts/api';
21
13
  import { default as default_2 } from 'react';
22
14
  import * as DialogPrimitive from '@radix-ui/react-dialog';
15
+ import { DocumentItemInterface } from '@loopstack/contracts/api';
23
16
  import { Drawer as Drawer_2 } from 'vaul';
24
17
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
18
+ import { EnvironmentConfigInterface } from '@loopstack/contracts/api';
19
+ import { ErrorInfo } from 'react';
25
20
  import { ExternalToast } from 'sonner';
21
+ import { FileContentInterface } from '@loopstack/contracts/api';
22
+ import { FileExplorerNodeInterface } from '@loopstack/contracts/api';
23
+ import { HubLoginRequestInterface } from '@loopstack/contracts/api';
26
24
  import { JSX } from 'react/jsx-runtime';
27
25
  import * as LabelPrimitive from '@radix-ui/react-label';
26
+ import { NamespaceInterface } from '@loopstack/contracts/api';
27
+ import { NamespaceItemInterface } from '@loopstack/contracts/api';
28
+ import { PaginatedInterface } from '@loopstack/contracts/api';
29
+ import { PipelineConfigInterface } from '@loopstack/contracts/api';
30
+ import { PipelineCreateInterface } from '@loopstack/contracts/api';
31
+ import { PipelineInterface } from '@loopstack/contracts/api';
32
+ import { PipelineItemInterface } from '@loopstack/contracts/api';
33
+ import { PipelineSourceInterface } from '@loopstack/contracts/api';
34
+ import { PipelineUpdateInterface } from '@loopstack/contracts/api';
28
35
  import * as PopoverPrimitive from '@radix-ui/react-popover';
29
36
  import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
30
37
  import * as React_2 from 'react';
31
38
  import { ReactElement } from 'react';
32
39
  import { ReactNode } from 'react';
40
+ import { RunPipelinePayloadInterface } from '@loopstack/contracts/api';
33
41
  import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area';
34
42
  import * as SelectPrimitive from '@radix-ui/react-select';
35
43
  import * as SeparatorPrimitive from '@radix-ui/react-separator';
@@ -40,13 +48,16 @@ import { UseMutationResult } from '@tanstack/react-query';
40
48
  import { useNavigate } from 'react-router-dom';
41
49
  import { UseQueryResult } from '@tanstack/react-query';
42
50
  import { VariantProps } from 'class-variance-authority';
43
- import { WorkspaceConfigDto } from '../../../../client/api-client';
44
- import { WorkspaceConfigDto as WorkspaceConfigDto_2 } from '../../client/api-client';
45
- import { WorkspaceControllerBatchDeleteWorkspaces200Response } from '../../client/api-client';
46
- import { WorkspaceControllerGetWorkspaces200Response } from '../../client/api-client';
47
- import { WorkspaceDto } from '../../client/api-client';
48
- import { WorkspaceItemDto } from '../../../../client/api-client';
49
- import { WorkspaceItemDto as WorkspaceItemDto_2 } from '../../client/api-client';
51
+ import { WorkerInfoInterface } from '@loopstack/contracts/api';
52
+ import { WorkflowInterface } from '@loopstack/contracts/api';
53
+ import { WorkflowItemInterface } from '@loopstack/contracts/api';
54
+ import { WorkspaceConfigInterface } from '@loopstack/contracts/api';
55
+ import { WorkspaceCreateInterface } from '@loopstack/contracts/api';
56
+ import { WorkspaceEnvironmentInterface } from '@loopstack/contracts/api';
57
+ import { WorkspaceFavouriteInterface } from '@loopstack/contracts/api';
58
+ import { WorkspaceInterface } from '@loopstack/contracts/api';
59
+ import { WorkspaceItemInterface } from '@loopstack/contracts/api';
60
+ import { WorkspaceUpdateInterface } from '@loopstack/contracts/api';
50
61
 
51
62
  export declare function Accordion({ ...props }: React_2.ComponentProps<typeof AccordionPrimitive.Root>): JSX.Element;
52
63
 
@@ -88,6 +99,8 @@ declare const alertVariants: (props?: ({
88
99
  variant?: "default" | "destructive" | null | undefined;
89
100
  } & ClassProp) | undefined) => string;
90
101
 
102
+ declare type ApiClient = ReturnType<typeof createApi>;
103
+
91
104
  export declare function Avatar({ className, ...props }: React_2.ComponentProps<typeof AvatarPrimitive.Root>): JSX.Element;
92
105
 
93
106
  export declare function AvatarFallback({ className, ...props }: React_2.ComponentProps<typeof AvatarPrimitive.Fallback>): JSX.Element;
@@ -113,6 +126,10 @@ declare interface BaseSnackbarProps {
113
126
  onDismiss?: () => void;
114
127
  }
115
128
 
129
+ declare interface BasicErrorComponentProps {
130
+ error?: string | null;
131
+ }
132
+
116
133
  export declare interface BatchAction {
117
134
  id: string;
118
135
  label: string;
@@ -205,6 +222,8 @@ declare interface CompletionMessagePaperProps {
205
222
  export declare interface ComponentOverrides {
206
223
  CreateWorkspace?: ComponentType<CreateWorkspaceProps>;
207
224
  EditWorkspace?: ComponentType<EditWorkspaceProps>;
225
+ SidebarHeader?: ComponentType;
226
+ SidebarFooter?: ComponentType;
208
227
  }
209
228
 
210
229
  export declare const ComponentOverridesProvider: ({ children, overrides, }: {
@@ -225,13 +244,151 @@ declare interface ConfirmDialogProps {
225
244
  variant?: 'default' | 'destructive';
226
245
  }
227
246
 
247
+ declare function createApi(http: AxiosInstance): {
248
+ auth: {
249
+ me: () => Promise<unknown>;
250
+ getInfo: () => Promise<WorkerInfoInterface>;
251
+ hubLogin: (params: {
252
+ hubLoginRequestDto: HubLoginRequestInterface;
253
+ }) => Promise<unknown>;
254
+ refresh: () => Promise<unknown>;
255
+ logout: () => Promise<void>;
256
+ };
257
+ config: {
258
+ getWorkspaceTypes: () => Promise<WorkspaceConfigInterface[]>;
259
+ getPipelineTypesByWorkspace: (params: {
260
+ workspaceBlockName: string;
261
+ }) => Promise<PipelineConfigInterface[]>;
262
+ getPipelineConfigByName: (params: {
263
+ workspaceBlockName: string;
264
+ pipelineName: string;
265
+ }) => Promise<PipelineConfigInterface>;
266
+ getPipelineSourceByName: (params: {
267
+ workspaceBlockName: string;
268
+ pipelineName: string;
269
+ }) => Promise<PipelineSourceInterface>;
270
+ getAvailableEnvironments: () => Promise<AvailableEnvironmentInterface[]>;
271
+ };
272
+ dashboard: {
273
+ getStats: () => Promise<DashboardStatsInterface>;
274
+ };
275
+ documents: {
276
+ getById: (params: {
277
+ id: string;
278
+ }) => Promise<DocumentItemInterface>;
279
+ getAll: (params?: {
280
+ filter?: string;
281
+ sortBy?: string;
282
+ page?: number;
283
+ limit?: number;
284
+ }) => Promise<PaginatedInterface<DocumentItemInterface>>;
285
+ };
286
+ namespaces: {
287
+ getById: (params: {
288
+ id: string;
289
+ }) => Promise<NamespaceInterface>;
290
+ getAll: (params?: {
291
+ filter?: string;
292
+ sortBy?: string;
293
+ page?: number;
294
+ limit?: number;
295
+ }) => Promise<PaginatedInterface<NamespaceItemInterface>>;
296
+ };
297
+ pipelines: {
298
+ getById: (params: {
299
+ id: string;
300
+ }) => Promise<PipelineInterface>;
301
+ getAll: (params?: {
302
+ filter?: string;
303
+ sortBy?: string;
304
+ page?: number;
305
+ limit?: number;
306
+ search?: string;
307
+ searchColumns?: string;
308
+ }) => Promise<PaginatedInterface<PipelineItemInterface>>;
309
+ create: (params: {
310
+ pipelineCreateDto: PipelineCreateInterface;
311
+ }) => Promise<PipelineInterface>;
312
+ update: (params: {
313
+ id: string;
314
+ pipelineUpdateDto: PipelineUpdateInterface;
315
+ }) => Promise<PipelineInterface>;
316
+ delete: (params: {
317
+ id: string;
318
+ }) => Promise<void>;
319
+ batchDelete: (params: {
320
+ ids: string[];
321
+ }) => Promise<void>;
322
+ getFileTree: (params: {
323
+ pipelineId: string;
324
+ }) => Promise<FileExplorerNodeInterface[]>;
325
+ getFileContent: (params: {
326
+ pipelineId: string;
327
+ filePath: string;
328
+ }) => Promise<FileContentInterface>;
329
+ };
330
+ processor: {
331
+ runPipeline: (params: {
332
+ pipelineId: string;
333
+ runPipelinePayloadDto: RunPipelinePayloadInterface;
334
+ force?: boolean;
335
+ }) => Promise<void>;
336
+ };
337
+ workflows: {
338
+ getById: (params: {
339
+ id: string;
340
+ }) => Promise<WorkflowInterface>;
341
+ getAll: (params?: {
342
+ filter?: string;
343
+ sortBy?: string;
344
+ page?: number;
345
+ limit?: number;
346
+ }) => Promise<PaginatedInterface<WorkflowItemInterface>>;
347
+ delete: (params: {
348
+ id: string;
349
+ }) => Promise<void>;
350
+ };
351
+ workspaces: {
352
+ getById: (params: {
353
+ id: string;
354
+ }) => Promise<WorkspaceInterface>;
355
+ getAll: (params?: {
356
+ filter?: string;
357
+ sortBy?: string;
358
+ page?: number;
359
+ limit?: number;
360
+ search?: string;
361
+ searchColumns?: string;
362
+ }) => Promise<PaginatedInterface<WorkspaceItemInterface>>;
363
+ create: (params: {
364
+ workspaceCreateDto: WorkspaceCreateInterface;
365
+ }) => Promise<WorkspaceInterface>;
366
+ update: (params: {
367
+ id: string;
368
+ workspaceUpdateDto: WorkspaceUpdateInterface;
369
+ }) => Promise<WorkspaceInterface>;
370
+ delete: (params: {
371
+ id: string;
372
+ }) => Promise<void>;
373
+ batchDelete: (params: {
374
+ ids: string[];
375
+ }) => Promise<void>;
376
+ setFavourite: (params: {
377
+ id: string;
378
+ workspaceFavouriteDto: WorkspaceFavouriteInterface;
379
+ }) => Promise<void>;
380
+ };
381
+ };
382
+
228
383
  export declare function createApiClient(environment: Environment): {
229
- auth: ApiV1AuthApi;
384
+ auth: ApiClient['auth'];
230
385
  };
231
386
 
387
+ export declare const CreateWorkspace: ({ types, workspace, onSuccess }: CreateWorkspaceProps) => JSX.Element;
388
+
232
389
  export declare interface CreateWorkspaceProps {
233
- types: WorkspaceConfigDto[];
234
- workspace?: WorkspaceItemDto;
390
+ types: WorkspaceConfigInterface[];
391
+ workspace?: WorkspaceItemInterface;
235
392
  onSuccess: () => void;
236
393
  }
237
394
 
@@ -256,7 +413,7 @@ export declare interface DataListProps<T = any> {
256
413
  searchTerm?: string;
257
414
  onSearchChange?: (term: string) => void;
258
415
  filters?: Record<string, string>;
259
- filterConfig?: Record<string, string[]>;
416
+ filterConfig?: Record<string, FilterOption[]>;
260
417
  onFiltersChange?: (filters: Record<string, string>) => void;
261
418
  onRowClick?: (item: T) => void;
262
419
  onEdit?: (item: T) => void;
@@ -295,7 +452,7 @@ export declare const DataTableFilters: React.FC<DataTableFiltersProps>;
295
452
 
296
453
  declare interface DataTableFiltersProps {
297
454
  filters: Record<string, string>;
298
- filterConfig: Record<string, string[]>;
455
+ filterConfig: Record<string, FilterOption[]>;
299
456
  onFiltersChange?: (filters: Record<string, string>) => void;
300
457
  isOpen: boolean;
301
458
  }
@@ -327,7 +484,7 @@ export declare interface DataTableProps<T = any> {
327
484
  searchTerm?: string;
328
485
  onSearchChange: (term: string) => void;
329
486
  filters?: Record<string, string>;
330
- filterConfig?: Record<string, string[]>;
487
+ filterConfig?: Record<string, FilterOption[]>;
331
488
  onFiltersChange: (filters: Record<string, string>) => void;
332
489
  onRowClick?: (item: T) => void;
333
490
  onEdit?: (item: T) => void;
@@ -449,8 +606,8 @@ export declare function DropdownMenuSubTrigger({ className, inset, children, ...
449
606
  export declare function DropdownMenuTrigger({ ...props }: React_2.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): JSX.Element;
450
607
 
451
608
  export declare interface EditWorkspaceProps {
452
- types: WorkspaceConfigDto_2[];
453
- workspace: WorkspaceItemDto_2;
609
+ types: WorkspaceConfigInterface[];
610
+ workspace: WorkspaceItemInterface;
454
611
  onSuccess: () => void;
455
612
  }
456
613
 
@@ -463,6 +620,48 @@ export declare interface Environment {
463
620
  getIdToken?: () => Promise<string>;
464
621
  }
465
622
 
623
+ export declare function EnvironmentEmbedRoot(): JSX.Element;
624
+
625
+ export declare interface EnvironmentOption {
626
+ id: string;
627
+ type: string;
628
+ name: string;
629
+ local?: boolean;
630
+ }
631
+
632
+ export declare function EnvironmentSlotSelector({ slot, environments, selectedEnvironmentId, onSelect, onCreateEnvironment, isCreating, error, }: EnvironmentSlotSelectorProps): JSX.Element;
633
+
634
+ declare interface EnvironmentSlotSelectorProps {
635
+ slot: EnvironmentConfigInterface;
636
+ environments: EnvironmentOption[];
637
+ selectedEnvironmentId: string | undefined;
638
+ onSelect: (environmentId: string) => void;
639
+ onCreateEnvironment?: () => void;
640
+ isCreating?: boolean;
641
+ error?: string;
642
+ }
643
+
644
+ export declare const ErrorAlert: default_2.FC<BasicErrorComponentProps>;
645
+
646
+ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
647
+ state: ErrorBoundaryState;
648
+ static getDerivedStateFromError(error: Error): ErrorBoundaryState;
649
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
650
+ handleRetry: () => void;
651
+ render(): ReactNode;
652
+ }
653
+
654
+ declare interface ErrorBoundaryProps {
655
+ children: ReactNode;
656
+ fallback?: ReactNode;
657
+ onRetry?: () => void;
658
+ }
659
+
660
+ declare interface ErrorBoundaryState {
661
+ hasError: boolean;
662
+ error: Error | null;
663
+ }
664
+
466
665
  export declare const ErrorSnackbar: default_2.FC<ErrorSnackbarProps>;
467
666
 
468
667
  declare interface ErrorSnackbarProps {
@@ -477,6 +676,67 @@ declare class EventEmitter {
477
676
  emit(event: string, ...args: unknown[]): void;
478
677
  }
479
678
 
679
+ export declare type FilterOption = string | {
680
+ label: string;
681
+ value: string;
682
+ };
683
+
684
+ export declare function getAllWorkflowsCacheKey(envKey: string): string[];
685
+
686
+ export declare function getAvailableEnvironmentsCacheKey(envKey: string): string[];
687
+
688
+ export declare function getDashboardStatsCacheKey(envKey: string): string[];
689
+
690
+ export declare function getDocumentCacheKey(envKey: string, documentId: string): string[];
691
+
692
+ export declare function getDocumentsCacheKey(envKey: string, workflowId: string): string[];
693
+
694
+ export declare function getFileContentCacheKey(envKey: string, pipelineId: string, filePath: string): string[];
695
+
696
+ export declare function getFileTreeCacheKey(envKey: string, pipelineId: string): string[];
697
+
698
+ export declare function getHealthCacheKey(envKey: string): string[];
699
+
700
+ /**
701
+ * Centralized cache key builders for React Query.
702
+ *
703
+ * Conventions:
704
+ * - All keys start with a domain prefix, followed by envKey for environment scoping.
705
+ * - Singular keys (e.g. 'pipeline') are for single-entity queries.
706
+ * - Plural keys (e.g. 'pipelines') are for list/filter queries.
707
+ * - Mutations should invalidate the plural key to catch all list variations.
708
+ * - Use `select` (not `.then()` in queryFn) for response transformations.
709
+ */
710
+ export declare function getMeCacheKey(envKey: string): string[];
711
+
712
+ export declare function getNamespaceCacheKey(envKey: string, namespaceId: string): string[];
713
+
714
+ export declare function getNamespacesByPipelineCacheKey(envKey: string, pipelineId: string): string[];
715
+
716
+ export declare function getPipelineCacheKey(envKey: string, id: string): string[];
717
+
718
+ export declare function getPipelineConfigCacheKey(envKey: string, workspaceBlockName: string, pipelineBlockName: string): string[];
719
+
720
+ export declare function getPipelinesCacheKey(envKey: string): string[];
721
+
722
+ export declare function getPipelinesChildrenCacheKey(envKey: string, parentId: string): string[];
723
+
724
+ export declare function getPipelineSourceCacheKey(envKey: string, workspaceBlockName: string, pipelineBlockName: string): string[];
725
+
726
+ export declare function getPipelineTypesCacheKey(envKey: string, workspaceBlockName: string): string[];
727
+
728
+ export declare function getWorkflowCacheKey(envKey: string, workflowId: string): string[];
729
+
730
+ export declare function getWorkflowsByPipelineCacheKey(envKey: string, pipelineId: string): string[];
731
+
732
+ export declare function getWorkflowsCacheKey(envKey: string, namespaceId: string): string[];
733
+
734
+ export declare function getWorkspaceCacheKey(envKey: string, id: string): string[];
735
+
736
+ export declare function getWorkspacesCacheKey(envKey: string): string[];
737
+
738
+ export declare function getWorkspaceTypesCacheKey(envKey: string): string[];
739
+
480
740
  export declare const GoogleLogo: default_2.FC<GoogleLogoProps>;
481
741
 
482
742
  declare interface GoogleLogoProps {
@@ -505,10 +765,10 @@ declare interface ListViewProps<T extends Item = Item> {
505
765
  items: T[];
506
766
  totalItems: number;
507
767
  columns: Column[];
508
- filterConfig: Record<string, string[]>;
768
+ filterConfig: Record<string, FilterOption[]>;
509
769
  deleteItem?: (id: string) => void;
510
770
  onClick?: (id: string) => void;
511
- handleNew: () => void;
771
+ handleNew?: () => void;
512
772
  handleEdit?: (item: T) => void;
513
773
  setPage: (page: number) => void;
514
774
  setRowsPerPage: (rows: number) => void;
@@ -568,9 +828,13 @@ export declare const LocalHealthCheck: () => JSX.Element | null;
568
828
  export declare class LocalRouter implements StudioRouter {
569
829
  private navigate;
570
830
  private envId;
571
- constructor(navigate: ReturnType<typeof useNavigate>, envId: string);
831
+ private embedPrefix;
832
+ constructor(navigate: ReturnType<typeof useNavigate>, envId: string, embedPrefix?: string);
572
833
  navigateToHome(): Promise<void>;
834
+ getEnvironmentInfo(): string;
573
835
  navigateToEnvironmentInfo(): Promise<void>;
836
+ getRuns(): string;
837
+ getRunsActionRequired(): string;
574
838
  getDashboard(): string;
575
839
  navigateToDashboard(): Promise<void>;
576
840
  getWorkspaces(): string;
@@ -587,6 +851,7 @@ export declare class LocalRouter implements StudioRouter {
587
851
  navigateToWorkflow(pipelineId: string, workflowId: string, clickId: string | undefined): Promise<void>;
588
852
  navigateToPipelineNamespace(workspaceId: string, pipelineId: string, namespaceId: string): Promise<void>;
589
853
  getEmbedPipeline(pipelineId: string): string;
854
+ getPreviewPipeline(pipelineId: string): string;
590
855
  getCurrentEnvironmentId(): string;
591
856
  getTheme(): 'local' | 'cloud';
592
857
  }
@@ -652,6 +917,8 @@ export declare function PopoverContent({ className, align, sideOffset, ...props
652
917
 
653
918
  export declare function PopoverTrigger({ ...props }: React_2.ComponentProps<typeof PopoverPrimitive.Trigger>): JSX.Element;
654
919
 
920
+ export declare function PreviewWorkbenchPage(): JSX.Element;
921
+
655
922
  export declare function RadioGroup({ className, ...props }: React_2.ComponentProps<typeof RadioGroupPrimitive.Root>): JSX.Element;
656
923
 
657
924
  export declare function RadioGroupItem({ className, ...props }: React_2.ComponentProps<typeof RadioGroupPrimitive.Item>): JSX.Element;
@@ -678,6 +945,10 @@ declare interface RowAction_2<T = any> {
678
945
  className?: string;
679
946
  }
680
947
 
948
+ export declare function RunsListPage(): JSX.Element;
949
+
950
+ export declare function RunsPage(): JSX.Element;
951
+
681
952
  export declare function ScrollArea({ className, children, ...props }: React_2.ComponentProps<typeof ScrollAreaPrimitive.Root>): JSX.Element;
682
953
 
683
954
  export declare function ScrollBar({ className, orientation, ...props }: React_2.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): JSX.Element;
@@ -833,6 +1104,8 @@ declare interface StudioContext {
833
1104
 
834
1105
  declare const StudioContext: Context<StudioContext | null>;
835
1106
 
1107
+ export declare function StudioLandingPage(): JSX.Element;
1108
+
836
1109
  export declare const StudioProvider: ({ children, router, environment, }: {
837
1110
  children: ReactNode;
838
1111
  router: StudioRouter;
@@ -841,7 +1114,10 @@ export declare const StudioProvider: ({ children, router, environment, }: {
841
1114
 
842
1115
  export declare interface StudioRouter {
843
1116
  navigateToHome(): Promise<void>;
1117
+ getEnvironmentInfo(): string;
844
1118
  navigateToEnvironmentInfo(): Promise<void>;
1119
+ getRuns(): string;
1120
+ getRunsActionRequired(): string;
845
1121
  getDashboard(): string;
846
1122
  navigateToDashboard(): Promise<void>;
847
1123
  getWorkspaces(): string;
@@ -858,10 +1134,13 @@ export declare interface StudioRouter {
858
1134
  navigateToWorkflow(pipelineId: string, workflowId: string, clickId: string | undefined): Promise<void>;
859
1135
  navigateToPipelineNamespace(workspaceId: string, pipelineId: string, namespaceId: string): Promise<void>;
860
1136
  getEmbedPipeline(pipelineId: string): string;
1137
+ getPreviewPipeline(pipelineId: string): string;
861
1138
  getCurrentEnvironmentId(): string;
862
1139
  getTheme(): 'local' | 'cloud';
863
1140
  }
864
1141
 
1142
+ export declare const StudioSidebar: () => JSX.Element;
1143
+
865
1144
  export declare function Switch({ className, ...props }: React_2.ComponentProps<typeof SwitchPrimitive.Root>): JSX.Element;
866
1145
 
867
1146
  export declare function Table({ className, ...props }: React_2.ComponentProps<'table'>): JSX.Element;
@@ -894,34 +1173,50 @@ export declare function TooltipTrigger({ ...props }: React_2.ComponentProps<type
894
1173
 
895
1174
  export declare function useApiClient(): {
896
1175
  envKey: string;
897
- api: {
898
- ApiV1AuthApi: ApiV1AuthApi;
899
- ApiV1DashboardApi: ApiV1DashboardApi;
900
- ApiV1ConfigApi: ApiV1ConfigApi;
901
- ApiV1DocumentsApi: ApiV1DocumentsApi;
902
- ApiV1NamespacesApi: ApiV1NamespacesApi;
903
- ApiV1PipelinesApi: ApiV1PipelinesApi;
904
- ApiV1ProcessorApi: ApiV1ProcessorApi;
905
- ApiV1WorkflowsApi: ApiV1WorkflowsApi;
906
- ApiV1WorkspacesApi: ApiV1WorkspacesApi;
907
- };
1176
+ api: ApiClient;
908
1177
  };
909
1178
 
910
- export declare function useBatchDeleteWorkspaces(): UseMutationResult<AxiosResponse<WorkspaceControllerBatchDeleteWorkspaces200Response, any, {}>, Error, string[], unknown>;
1179
+ export declare function useAvailableEnvironments(options?: {
1180
+ enabled?: boolean;
1181
+ }): UseQueryResult<AvailableEnvironmentInterface[], Error>;
1182
+
1183
+ export declare function useBatchDeletePipeline(): UseMutationResult<void, Error, string[], unknown>;
1184
+
1185
+ export declare function useBatchDeleteWorkspaces(): UseMutationResult<void, Error, string[], unknown>;
1186
+
1187
+ export declare function useChildPipelines(parentId: string | undefined, enabled: boolean): UseQueryResult<PaginatedInterface<PipelineItemInterface>, Error>;
911
1188
 
912
1189
  export declare const useComponentOverrides: () => ComponentOverrides;
913
1190
 
914
- export declare function useCreateWorkspace(): UseMutationResult<AxiosResponse<WorkspaceDto, any, {}>, Error, ApiV1WorkspacesApiWorkspaceControllerCreateWorkspaceRequest, unknown>;
1191
+ export declare function useCreatePipeline(): UseMutationResult<PipelineInterface, Error, {
1192
+ pipelineCreateDto: PipelineCreateInterface;
1193
+ }, unknown>;
915
1194
 
916
- export declare function useDeleteWorkspace(): UseMutationResult<AxiosResponse<void, any, {}>, Error, string, unknown>;
1195
+ export declare function useCreateWorkspace(): UseMutationResult<WorkspaceInterface, Error, {
1196
+ workspaceCreateDto: WorkspaceCreateInterface;
1197
+ }, unknown>;
917
1198
 
918
- export declare function useFilterWorkspaces(searchTerm: string | undefined, filter: Record<string, string>, sortBy?: string, order?: string, page?: number, limit?: number): UseQueryResult<WorkspaceControllerGetWorkspaces200Response, Error>;
1199
+ export declare function useDeletePipeline(): UseMutationResult<void, Error, string, unknown>;
1200
+
1201
+ export declare function useDeleteWorkspace(): UseMutationResult<void, Error, string, unknown>;
1202
+
1203
+ export declare function useFilterPipelines(searchTerm: string | undefined, filter: Record<string, string | null>, sortBy?: string, order?: string, page?: number, limit?: number): UseQueryResult<PaginatedInterface<PipelineItemInterface>, Error>;
1204
+
1205
+ export declare function useFilterWorkspaces(searchTerm: string | undefined, filter: Record<string, string>, sortBy?: string, order?: string, page?: number, limit?: number): UseQueryResult<PaginatedInterface<WorkspaceItemInterface>, Error>;
919
1206
 
920
1207
  export declare function useIsMobile(): boolean;
921
1208
 
922
- export declare const useRouter: (envId: string) => StudioRouter;
1209
+ export declare function usePipeline(id: string | undefined): UseQueryResult<PipelineInterface, Error>;
1210
+
1211
+ export declare function usePipelineConfig(workspaceBlockName: string | undefined): UseQueryResult<PipelineConfigInterface[], Error>;
1212
+
1213
+ export declare function usePipelineConfigByName(workspaceBlockName: string | undefined, pipelineBlockName: string | undefined): UseQueryResult<PipelineConfigInterface, Error>;
923
1214
 
924
- export declare function useSetFavouriteWorkspace(): UseMutationResult<AxiosResponse<WorkspaceItemDto_2, any, {}>, Error, {
1215
+ export declare function usePipelineSource(workspaceBlockName: string | undefined, pipelineBlockName: string | undefined): UseQueryResult<PipelineSourceInterface, Error>;
1216
+
1217
+ export declare const useRouter: (envId: string, embedPrefix?: string) => StudioRouter;
1218
+
1219
+ export declare function useSetFavouriteWorkspace(): UseMutationResult<void, Error, {
925
1220
  id: string;
926
1221
  isFavourite: boolean;
927
1222
  }, unknown>;
@@ -930,11 +1225,30 @@ export declare function useSidebar(): SidebarContextProps;
930
1225
 
931
1226
  export declare const useStudio: () => StudioContext;
932
1227
 
933
- export declare function useUpdateWorkspace(): UseMutationResult<AxiosResponse<WorkspaceDto, any, {}>, Error, ApiV1WorkspacesApiWorkspaceControllerUpdateWorkspaceRequest, unknown>;
1228
+ export declare const useStudioOptional: () => StudioContext | null;
1229
+
1230
+ export declare function useUpdatePipeline(): UseMutationResult<PipelineInterface, Error, {
1231
+ id: string;
1232
+ pipelineUpdateDto: PipelineUpdateInterface;
1233
+ }, unknown>;
1234
+
1235
+ export declare function useUpdateWorkspace(): UseMutationResult<WorkspaceInterface, Error, {
1236
+ id: string;
1237
+ workspaceUpdateDto: WorkspaceUpdateInterface;
1238
+ }, unknown>;
934
1239
 
935
- export declare function useWorkspace(id: string | undefined): UseQueryResult<WorkspaceDto, Error>;
1240
+ export declare function useWorkspace(id: string | undefined): UseQueryResult<WorkspaceInterface, Error>;
936
1241
 
937
- export declare function WorkbenchPage(): JSX.Element;
1242
+ export declare function useWorkspaceConfig(): UseQueryResult<WorkspaceConfigInterface[], Error>;
1243
+
1244
+ export declare function WorkbenchPage({ previewPanelOpen, onPreviewPanelOpenChange, isDeveloperMode, getPreviewUrl, getEnvironmentPreviewUrl, environments, }?: {
1245
+ previewPanelOpen?: boolean;
1246
+ onPreviewPanelOpenChange?: (open: boolean) => void;
1247
+ isDeveloperMode?: boolean;
1248
+ getPreviewUrl?: (pipelineId: string) => string;
1249
+ getEnvironmentPreviewUrl?: (env: WorkspaceEnvironmentInterface, pipelineId?: string) => string;
1250
+ environments?: WorkspaceEnvironmentInterface[];
1251
+ }): JSX.Element;
938
1252
 
939
1253
  export declare const WorkspacePage: () => JSX.Element;
940
1254
 
package/dist/index.js CHANGED
@@ -1,9 +1,12 @@
1
- import { eventBus } from "./services/eventEmitter.js";
1
+ import { getAllWorkflowsCacheKey, getAvailableEnvironmentsCacheKey, getDashboardStatsCacheKey, getDocumentCacheKey, getDocumentsCacheKey, getFileContentCacheKey, getFileTreeCacheKey, getHealthCacheKey, getMeCacheKey, getNamespaceCacheKey, getNamespacesByPipelineCacheKey, getPipelineCacheKey, getPipelineConfigCacheKey, getPipelineSourceCacheKey, getPipelineTypesCacheKey, getPipelinesCacheKey, getPipelinesChildrenCacheKey, getWorkflowCacheKey, getWorkflowsByPipelineCacheKey, getWorkflowsCacheKey, getWorkspaceCacheKey, getWorkspaceTypesCacheKey, getWorkspacesCacheKey } from "./hooks/query-keys.js";
2
2
  import { createApiClient } from "./services/createApiClient.js";
3
+ import { eventBus } from "./services/eventEmitter.js";
3
4
  import "./services/index.js";
4
- import { StudioProvider, useStudio } from "./providers/StudioProvider.js";
5
+ import { StudioProvider, useStudio, useStudioOptional } from "./providers/StudioProvider.js";
5
6
  import { useApiClient } from "./hooks/useApi.js";
6
7
  import { useIsMobile } from "./hooks/use-mobile.js";
8
+ import { useAvailableEnvironments, usePipelineConfig, useWorkspaceConfig } from "./hooks/useConfig.js";
9
+ import { useBatchDeletePipeline, useChildPipelines, useCreatePipeline, useDeletePipeline, useFilterPipelines, usePipeline, usePipelineConfigByName, usePipelineSource, useUpdatePipeline } from "./hooks/usePipelines.js";
7
10
  import { useBatchDeleteWorkspaces, useCreateWorkspace, useDeleteWorkspace, useFilterWorkspaces, useSetFavouriteWorkspace, useUpdateWorkspace, useWorkspace } from "./hooks/useWorkspaces.js";
8
11
  import "./hooks/index.js";
9
12
  import { ComponentOverridesProvider, useComponentOverrides } from "./providers/ComponentOverridesProvider.js";
@@ -52,18 +55,30 @@ import { DataList } from "./components/data-table/DataList.js";
52
55
  import ListView_default from "./components/lists/ListView.js";
53
56
  import CustomListView_default from "./components/lists/CustomListView.js";
54
57
  import CompletionMessagePaper_default from "./components/messages/CompletionMessagePaper.js";
55
- import Snackbar_default from "./components/snackbars/Snackbar.js";
56
- import ErrorSnackbar_default from "./components/snackbars/ErrorSnackbar.js";
57
- import LoadingCentered_default from "./components/LoadingCentered.js";
58
+ import { ErrorBoundary } from "./components/feedback/ErrorBoundary.js";
59
+ import LoadingCentered_default from "./components/feedback/LoadingCentered.js";
60
+ import Snackbar_default from "./components/feedback/Snackbar.js";
61
+ import ErrorSnackbar_default from "./components/feedback/ErrorSnackbar.js";
62
+ import ErrorAlert_default from "./components/feedback/ErrorAlert.js";
58
63
  import "./components/index.js";
59
64
  import DebugPage_default from "./pages/DebugPage.js";
60
65
  import DashboardPage from "./pages/DashboardPage.js";
66
+ import { EnvironmentSlotSelector } from "./features/workspaces/components/EnvironmentSlotSelector.js";
67
+ import CreateWorkspace_default from "./features/workspaces/components/CreateWorkspace.js";
61
68
  import WorkspacesPage from "./pages/WorkspacesPage.js";
62
69
  import WorkspacePage_default from "./pages/WorkspacePage.js";
70
+ import "./features/workspaces/index.js";
63
71
  import WorkbenchPage from "./pages/WorkbenchPage.js";
64
72
  import PipelineDebugPage_default from "./pages/PipelineDebugPage.js";
65
73
  import DebugWorkflowsPage from "./pages/DebugWorkflowsPage.js";
66
74
  import DebugWorkflowDetailsPage from "./pages/DebugWorkflowDetailsPage.js";
67
75
  import EmbedWorkbenchPage from "./pages/EmbedWorkbenchPage.js";
76
+ import PreviewWorkbenchPage from "./pages/PreviewWorkbenchPage.js";
77
+ import RunsPage from "./pages/RunsPage.js";
78
+ import RunsListPage from "./pages/RunsListPage.js";
79
+ import StudioLandingPage from "./pages/StudioLandingPage.js";
68
80
  import LocalHealthCheck_default from "./features/health/LocalHealthCheck.js";
69
- 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, 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, 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, PipelineDebugPage_default as PipelineDebugPage, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, RadioGroup, RadioGroupItem, 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, StudioProvider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, WorkbenchPage, WorkspacePage_default as WorkspacePage, WorkspacesPage, badgeVariants, buttonVariants, createApiClient, eventBus, useApiClient, useBatchDeleteWorkspaces, useComponentOverrides, useCreateWorkspace, useDeleteWorkspace, useFilterWorkspaces, useIsMobile, useRouter, useSetFavouriteWorkspace, useSidebar, useStudio, useUpdateWorkspace, useWorkspace };
81
+ import EnvironmentEmbedRoot from "./app/EnvironmentEmbedRoot.js";
82
+ import { StudioSidebar } from "./components/layout/StudioSidebar.js";
83
+ import "./features/health/index.js";
84
+ 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, PipelineDebugPage_default as PipelineDebugPage, 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, WorkspacePage_default as WorkspacePage, WorkspacesPage, badgeVariants, buttonVariants, createApiClient, eventBus, getAllWorkflowsCacheKey, getAvailableEnvironmentsCacheKey, getDashboardStatsCacheKey, getDocumentCacheKey, getDocumentsCacheKey, getFileContentCacheKey, getFileTreeCacheKey, getHealthCacheKey, getMeCacheKey, getNamespaceCacheKey, getNamespacesByPipelineCacheKey, getPipelineCacheKey, getPipelineConfigCacheKey, getPipelineSourceCacheKey, getPipelineTypesCacheKey, getPipelinesCacheKey, getPipelinesChildrenCacheKey, getWorkflowCacheKey, getWorkflowsByPipelineCacheKey, getWorkflowsCacheKey, getWorkspaceCacheKey, getWorkspaceTypesCacheKey, getWorkspacesCacheKey, useApiClient, useAvailableEnvironments, useBatchDeletePipeline, useBatchDeleteWorkspaces, useChildPipelines, useComponentOverrides, useCreatePipeline, useCreateWorkspace, useDeletePipeline, useDeleteWorkspace, useFilterPipelines, useFilterWorkspaces, useIsMobile, usePipeline, usePipelineConfig, usePipelineConfigByName, usePipelineSource, useRouter, useSetFavouriteWorkspace, useSidebar, useStudio, useStudioOptional, useUpdatePipeline, useUpdateWorkspace, useWorkspace, useWorkspaceConfig };