@cere/cere-design-system 0.0.28 → 0.0.30

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/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Theme } from '@mui/material/styles';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import { LottieComponentProps } from 'lottie-react';
4
- import * as React from 'react';
4
+ import * as React$1 from 'react';
5
5
  import React__default, { ReactNode, Ref, PropsWithChildren, ReactElement, AriaAttributes } from 'react';
6
6
  import { ButtonProps as ButtonProps$1 } from '@mui/material/Button';
7
7
  import { IconButtonProps as IconButtonProps$1 } from '@mui/material/IconButton';
@@ -368,7 +368,7 @@ type DropdownAnchorProps = {
368
368
  onOpen?: () => void;
369
369
  variant?: 'header' | 'button';
370
370
  };
371
- declare const DropdownAnchor: React.ForwardRefExoticComponent<DropdownAnchorProps & React.RefAttributes<HTMLButtonElement>>;
371
+ declare const DropdownAnchor: React$1.ForwardRefExoticComponent<DropdownAnchorProps & React$1.RefAttributes<HTMLButtonElement>>;
372
372
 
373
373
  type RenderAnchorOptions = {
374
374
  ref: Ref<any>;
@@ -1681,11 +1681,13 @@ declare const AppBar: React__default.FC<AppBarProps>;
1681
1681
  interface WorkflowTopBarProps extends Omit<BoxProps$1, 'title'> {
1682
1682
  /** Heading shown at the left side of the bar. */
1683
1683
  title?: string;
1684
- /** Execution identifier displayed in the CID field. */
1684
+ /** Job identifier displayed in the Job ID field. */
1685
1685
  executionId: string;
1686
- /** Called when the execution ID value changes. */
1686
+ /** Label shown above the job ID input. Defaults to "Job ID". */
1687
+ executionIdLabel?: string;
1688
+ /** Called when the job ID value changes. */
1687
1689
  onExecutionIdChange?: (value: string) => void;
1688
- /** Called when the execution ID clear action is pressed. */
1690
+ /** Called when the job ID clear action is pressed. */
1689
1691
  onClearExecutionId?: () => void;
1690
1692
  /** Submit button label. */
1691
1693
  submitLabel?: string;
@@ -1730,6 +1732,14 @@ interface WorkflowSideInspectorProps extends PaperProps$1 {
1730
1732
  timestamp?: string;
1731
1733
  /** Duration value shown in metadata section. */
1732
1734
  duration?: string;
1735
+ /** Whether to show the Input field in the details section. Defaults to true. */
1736
+ showInput?: boolean;
1737
+ /** Whether to show the Output field in the details section. Defaults to true. */
1738
+ showOutput?: boolean;
1739
+ /** Whether to show the Timestamp field in the metadata section. Defaults to true. */
1740
+ showTimestamp?: boolean;
1741
+ /** Whether to show the Duration field in the metadata section. Defaults to true. */
1742
+ showDuration?: boolean;
1733
1743
  /** Bottom CTA label. Set to `undefined` or `null` to hide the button. */
1734
1744
  actionLabel?: string | null;
1735
1745
  /** Called when close button is pressed. */
@@ -1902,7 +1912,7 @@ interface CircularProgressProps extends CircularProgressProps$1 {
1902
1912
  */
1903
1913
  declare const CircularProgress: React__default.FC<CircularProgressProps>;
1904
1914
 
1905
- declare const ActivityAppIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1915
+ declare const ActivityAppIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1906
1916
 
1907
1917
  declare const LeftArrowIcon: (props: SvgIconProps) => react_jsx_runtime.JSX.Element;
1908
1918
 
@@ -1910,33 +1920,33 @@ declare const RightArrowIcon: (props: SvgIconProps) => react_jsx_runtime.JSX.Ele
1910
1920
 
1911
1921
  declare const AvatarIcon: (props: SvgIconProps) => react_jsx_runtime.JSX.Element;
1912
1922
 
1913
- declare const BarTrackingIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1923
+ declare const BarTrackingIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1914
1924
 
1915
- declare const CereIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1925
+ declare const CereIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1916
1926
 
1917
- declare const ClockIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1927
+ declare const ClockIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1918
1928
 
1919
- declare const CloudFlashIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1929
+ declare const CloudFlashIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1920
1930
 
1921
- declare const DecentralizedServerIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1931
+ declare const DecentralizedServerIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1922
1932
 
1923
- declare const DiscordIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1933
+ declare const DiscordIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1924
1934
 
1925
- declare const DownloadIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1935
+ declare const DownloadIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1926
1936
 
1927
- declare const FilledFolderIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1937
+ declare const FilledFolderIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1928
1938
 
1929
- declare const FolderIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1939
+ declare const FolderIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1930
1940
 
1931
- declare const GithubLogoIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1941
+ declare const GithubLogoIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1932
1942
 
1933
- declare const ShareIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1943
+ declare const ShareIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1934
1944
 
1935
- declare const StorageAppIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1945
+ declare const StorageAppIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1936
1946
 
1937
- declare const UploadFileIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1947
+ declare const UploadFileIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1938
1948
 
1939
- declare const UploadFolderIcon: React.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1949
+ declare const UploadFolderIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
1940
1950
 
1941
1951
  type MarkdownProps = {
1942
1952
  children?: string;
@@ -1969,7 +1979,7 @@ type BytesSizeProps = {
1969
1979
  declare const BytesSize: ({ bytes }: BytesSizeProps) => react_jsx_runtime.JSX.Element;
1970
1980
 
1971
1981
  type QRCodeProps = Omit<QRCodeProps$1, 'ref'>;
1972
- declare const QRCode: React.ForwardRefExoticComponent<QRCodeProps & React.RefAttributes<SVGElement>>;
1982
+ declare const QRCode: React$1.ForwardRefExoticComponent<QRCodeProps & React$1.RefAttributes<SVGElement>>;
1973
1983
 
1974
1984
  type ChartWidgetHistoryRecord = {
1975
1985
  date: Date;
@@ -2355,6 +2365,14 @@ interface CodeEditorProps {
2355
2365
  * ```
2356
2366
  */
2357
2367
  typeDefinitions?: string | string[];
2368
+ /**
2369
+ * When true, the editor skips internal value syncing and lets an external
2370
+ * source (e.g. useCodeEditorWorkspace) manage Monaco models directly.
2371
+ * The `value` prop is still used as the initial/display value but won't
2372
+ * be force-synced to the editor.
2373
+ * @default false
2374
+ */
2375
+ externalModelManagement?: boolean;
2358
2376
  }
2359
2377
  /**
2360
2378
  * CodeEditor component - wrapper around Monaco Editor matching dynamic-indexer-client implementation
@@ -2399,4 +2417,356 @@ interface WorkflowNodeData {
2399
2417
  */
2400
2418
  declare const WorkflowNodeHandle: React__default.FC<NodeProps<WorkflowNodeData>>;
2401
2419
 
2402
- export { Accordion, type AccordionProps, AccountSection, type AccountSectionProps, ActivityAppIcon, Alert, type AlertProps, type AlertSeverity, AppBar, type AppBarProps, AppLoading, type AppLoadingProps, Avatar, AvatarIcon, type AvatarProps, Badge, type BadgeProps, BarTrackingIcon, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, BytesSize, type BytesSizeProps, Card, CardActions, CardContent, CardHeader, type CardProps, CereIcon, ChartWidget, type ChartWidgetProps, CheckMarkAnimation, Checkbox, type CheckboxProps, Chip, type ChipProps, CircularProgress, type CircularProgressProps, ClockIcon, CloudFlashIcon, CodeEditor, type CodeEditorLanguage, type CodeEditorProps, Collapse, type CollapseProps, ConnectionStatus, type ConnectionStatusProps, type ContextMenuItem, type DataPoint, type DataSeries, DateRangePicker, type DateRangePickerProps, DecentralizedServerIcon, type DeploymentCardAction, DeploymentDashboardCard, type DeploymentDashboardCardProps, DeploymentDashboardPanel, type DeploymentDashboardPanelProps, DeploymentDashboardTree, type DeploymentDashboardTreeProps, DeploymentEntityContextMenu, type DeploymentEntityContextMenuProps, type DeploymentEntityType, type DeploymentStatusIndicator, type DeploymentTreeNode, Dialog, type DialogProps, DiscordIcon, Divider, type DividerProps, DownloadIcon, Drawer, type DrawerProps, Dropdown, DropdownAnchor, type DropdownAnchorProps, type DropdownProps, EmptyState, type EmptyStateProps, EntityHeader, type EntityHeaderProps, FilledFolderIcon, FlowEditor, type FlowEditorProps, FolderIcon, GithubLogoIcon, IDBlock, type IDBlockProps, IconButton, type IconButtonProps, LeftArrowIcon, Link, type LinkProps, List, ListItem, type ListItemProps, type ListProps, Loading, LoadingAnimation, type LoadingAnimationProps, LoadingButton, type LoadingButtonProps, type LoadingProps, Logo, type LogoProps, Markdown, type MarkdownProps, Menu, MenuItem, type MenuItemProps, type MenuProps, MetricsChart, type MetricsChartProps, type MetricsPeriod, NavigationItem, type NavigationItemProps, NavigationList, type NavigationListProps, OnboardingProvider, Pagination, type PaginationProps, Paper, type PaperProps, PeriodSelect, type PrimaryAction, Progress, type ProgressProps, QRCode, type QRCodeProps, Radio, type RadioProps, RightArrowIcon, RoleBadge, type RoleBadgeColor, type RoleBadgeProps, type RoleBadgeSize, SearchField, type SearchFieldProps, Selector, type SelectorOption, type SelectorProps, type Service, ServiceSelectorButton, type ServiceSelectorButtonProps, ShareIcon, SideNav, SideNavHeader, type SideNavHeaderProps, type SideNavProps, Sidebar, SidebarItem, type SidebarItemProps, type SidebarProps, Snackbar, type SnackbarProps, Step, StepButton, type StepButtonProps, StepContent, type StepContentProps, StepLabel, type StepLabelProps, type StepProps, Stepper, type StepperProps, StorageAppIcon, type SummaryItem, SummaryStats, type SummaryStatsProps, Switch, type SwitchProps, Tab, type TabProps, Table, TableHeader, type TableHeaderProps, type TableProps, TextField, type TextFieldProps, type TimeRangeOption, TimeRangeSelect, type TimeRangeSelectProps, TimeSeriesGraph, type TimeSeriesGraphProps, ToggleButton, ToggleButtonGroup, type ToggleButtonGroupProps, type ToggleButtonProps, Tooltip, type TooltipProps, Truncate, type TruncateProps, UploadFileIcon, UploadFolderIcon, type UserInfo, WORKFLOW_NODE_LABELS, WORKFLOW_NODE_SHADOW, WorkflowNode, type WorkflowNodeData, WorkflowNodeHandle, type WorkflowNodeProps, type WorkflowNodeType, WorkflowSideInspector, type WorkflowSideInspectorProps, WorkflowTimeBar, type WorkflowTimeBarProps, WorkflowTopBar, type WorkflowTopBarProps, type Workspace, WorkspaceSelectorButton, type WorkspaceSelectorButtonProps, colors, contextMenuItems, robPaletteExtended, robPrimaryPalette, theme, useIsDesktop, useIsMobile, useIsTablet, useOnboarding, workflowConnectionColors, workflowNodeColors };
2420
+ /**
2421
+ * Represents a single file in the workspace.
2422
+ */
2423
+ interface CodeEditorFile {
2424
+ /** Unique file path, e.g. "src/index.ts" */
2425
+ path: string;
2426
+ /** Programming language (auto-detected from extension when omitted) */
2427
+ language?: CodeEditorLanguage;
2428
+ /** File content */
2429
+ value: string;
2430
+ }
2431
+ /**
2432
+ * Represents an open tab in the editor.
2433
+ */
2434
+ interface CodeEditorTab {
2435
+ /** File path this tab corresponds to */
2436
+ path: string;
2437
+ /** Display label (defaults to the filename portion of path) */
2438
+ label?: string;
2439
+ /** Whether the file has unsaved changes */
2440
+ isDirty?: boolean;
2441
+ }
2442
+ /**
2443
+ * A node in the file tree.
2444
+ */
2445
+ interface FileTreeNode {
2446
+ /** Display name */
2447
+ name: string;
2448
+ /** Full path (unique identifier) */
2449
+ path: string;
2450
+ /** Whether this is a file or folder */
2451
+ type: 'file' | 'folder';
2452
+ /** Children nodes (only for folders) */
2453
+ children?: FileTreeNode[];
2454
+ /** Optional custom icon */
2455
+ icon?: ReactNode;
2456
+ }
2457
+ /**
2458
+ * Git repository information passed into the workspace.
2459
+ * The consuming app is responsible for fetching this data.
2460
+ */
2461
+ interface GitInfo {
2462
+ /** Current branch name, e.g. "feat/advanced-code-editor" */
2463
+ branch: string;
2464
+ /** Whether the working tree has uncommitted changes */
2465
+ isDirty?: boolean;
2466
+ /** Short commit hash of HEAD */
2467
+ commitHash?: string;
2468
+ /** Remote name, e.g. "origin" */
2469
+ remote?: string;
2470
+ /** Number of commits ahead of remote */
2471
+ ahead?: number;
2472
+ /** Number of commits behind remote */
2473
+ behind?: number;
2474
+ }
2475
+ /**
2476
+ * A custom item to render in the status bar.
2477
+ */
2478
+ interface CodeEditorStatusBarItem {
2479
+ /** Unique key */
2480
+ id: string;
2481
+ /** Content to display (string or ReactNode) */
2482
+ content: ReactNode;
2483
+ /** Side of the status bar */
2484
+ align?: 'left' | 'right';
2485
+ /** Optional click handler */
2486
+ onClick?: () => void;
2487
+ /** Tooltip text */
2488
+ tooltip?: string;
2489
+ }
2490
+ /**
2491
+ * Map from file extension to CodeEditorLanguage.
2492
+ */
2493
+ declare const EXTENSION_LANGUAGE_MAP: Record<string, CodeEditorLanguage>;
2494
+ /**
2495
+ * Detect language from a file path extension.
2496
+ */
2497
+ declare function detectLanguage(path: string): CodeEditorLanguage;
2498
+ /**
2499
+ * Extract the filename from a path.
2500
+ */
2501
+ declare function getFileName(path: string): string;
2502
+
2503
+ interface UseCodeEditorWorkspaceOptions {
2504
+ /** All files available in the workspace */
2505
+ files: CodeEditorFile[];
2506
+ /** File paths to open as tabs initially */
2507
+ initialOpenPaths?: string[];
2508
+ /** Called when a file's content is modified in the editor */
2509
+ onFileChange?: (path: string, value: string) => void;
2510
+ /** Called when validation markers change across all open models */
2511
+ onValidationChange?: (markers: Record<string, editor.IMarker[]>) => void;
2512
+ }
2513
+ interface UseCodeEditorWorkspaceReturn {
2514
+ /** Currently open tabs */
2515
+ openTabs: CodeEditorTab[];
2516
+ /** Path of the active file (shown in editor) */
2517
+ activeFilePath: string | null;
2518
+ /** Open a file by path (creates tab if not already open, sets it active) */
2519
+ openFile: (path: string) => void;
2520
+ /** Close a tab by path */
2521
+ closeFile: (path: string) => void;
2522
+ /** Set a specific file as active */
2523
+ setActiveFile: (path: string) => void;
2524
+ /** Programmatically update file content */
2525
+ updateFileContent: (path: string, value: string) => void;
2526
+ /** Get the current content of a file */
2527
+ getFileContent: (path: string) => string | undefined;
2528
+ /** Get the active file data */
2529
+ activeFile: CodeEditorFile | undefined;
2530
+ /** Ref to hold the Monaco instance — pass to CodeEditor's monacoRef */
2531
+ monacoRef: React.MutableRefObject<Monaco | null>;
2532
+ /** Ref to hold the editor instance — pass to CodeEditor's editorRef */
2533
+ editorRef: React.MutableRefObject<editor.IStandaloneCodeEditor | null>;
2534
+ /** Handler to pass to CodeEditor's onMount */
2535
+ handleEditorMount: (editorInstance: editor.IStandaloneCodeEditor, monacoInstance: Monaco) => void;
2536
+ /** Handler to pass to CodeEditor's onChange */
2537
+ handleEditorChange: (value: string) => void;
2538
+ /** Aggregated validation markers keyed by file path */
2539
+ validationMarkers: Record<string, editor.IMarker[]>;
2540
+ /** Mark a file as saved (clears dirty flag) */
2541
+ markSaved: (path: string) => void;
2542
+ /** Mark all files as saved */
2543
+ markAllSaved: () => void;
2544
+ /** Current cursor position in the active editor */
2545
+ cursorPosition: {
2546
+ line: number;
2547
+ column: number;
2548
+ } | null;
2549
+ }
2550
+ /**
2551
+ * Headless hook for managing a multi-file Monaco editor workspace.
2552
+ *
2553
+ * Manages Monaco models, open tabs, active file, and dirty tracking.
2554
+ * Pass the returned refs/handlers to a `CodeEditor` component.
2555
+ *
2556
+ * @example
2557
+ * ```tsx
2558
+ * const workspace = useCodeEditorWorkspace({ files, onFileChange });
2559
+ *
2560
+ * <CodeEditorTabs
2561
+ * tabs={workspace.openTabs}
2562
+ * activeTab={workspace.activeFilePath}
2563
+ * onTabSelect={workspace.setActiveFile}
2564
+ * onTabClose={workspace.closeFile}
2565
+ * />
2566
+ * <CodeEditor
2567
+ * value={workspace.activeFile?.value ?? ''}
2568
+ * onChange={workspace.handleEditorChange}
2569
+ * language={workspace.activeFile?.language}
2570
+ * editorRef={workspace.editorRef}
2571
+ * monacoRef={workspace.monacoRef}
2572
+ * onMount={workspace.handleEditorMount}
2573
+ * />
2574
+ * ```
2575
+ */
2576
+ declare function useCodeEditorWorkspace({ files, initialOpenPaths, onFileChange, onValidationChange, }: UseCodeEditorWorkspaceOptions): UseCodeEditorWorkspaceReturn;
2577
+
2578
+ interface CodeEditorTabRenderProps {
2579
+ tab: CodeEditorTab;
2580
+ isActive: boolean;
2581
+ onSelect: () => void;
2582
+ onClose: () => void;
2583
+ }
2584
+ interface CodeEditorTabsProps {
2585
+ /** Open tabs to display */
2586
+ tabs: CodeEditorTab[];
2587
+ /** Path of the currently active tab */
2588
+ activeTab?: string | null;
2589
+ /** Called when a tab is selected */
2590
+ onTabSelect?: (path: string) => void;
2591
+ /** Called when a tab's close button is clicked */
2592
+ onTabClose?: (path: string) => void;
2593
+ /**
2594
+ * Render prop for full tab customisation.
2595
+ * When provided, default tab rendering is skipped entirely.
2596
+ */
2597
+ renderTab?: (props: CodeEditorTabRenderProps) => React__default.ReactNode;
2598
+ /** Props for the outer container */
2599
+ containerProps?: BoxProps;
2600
+ }
2601
+ /**
2602
+ * Tab bar for the CodeEditor workspace.
2603
+ *
2604
+ * Provides default MUI-based rendering, but consumers can fully replace it
2605
+ * via the `renderTab` render prop.
2606
+ *
2607
+ * @example
2608
+ * ```tsx
2609
+ * <CodeEditorTabs
2610
+ * tabs={workspace.openTabs}
2611
+ * activeTab={workspace.activeFilePath}
2612
+ * onTabSelect={workspace.setActiveFile}
2613
+ * onTabClose={workspace.closeFile}
2614
+ * />
2615
+ * ```
2616
+ */
2617
+ declare const CodeEditorTabs: React__default.FC<CodeEditorTabsProps>;
2618
+
2619
+ interface FileTreeNodeRenderProps {
2620
+ node: FileTreeNode;
2621
+ depth: number;
2622
+ isSelected: boolean;
2623
+ isExpanded: boolean;
2624
+ onSelect: () => void;
2625
+ onToggle: () => void;
2626
+ }
2627
+ interface CodeEditorFileTreeProps {
2628
+ /** Tree data to render */
2629
+ tree: FileTreeNode[];
2630
+ /** Currently selected file path */
2631
+ selectedPath?: string | null;
2632
+ /** Called when a file node is clicked */
2633
+ onFileSelect?: (path: string) => void;
2634
+ /** Called when a folder is expanded/collapsed */
2635
+ onFolderToggle?: (path: string, isExpanded: boolean) => void;
2636
+ /**
2637
+ * Render prop for full node customisation.
2638
+ * When provided, default rendering is skipped.
2639
+ */
2640
+ renderNode?: (props: FileTreeNodeRenderProps) => React__default.ReactNode;
2641
+ /** Paths of folders that should be expanded initially */
2642
+ defaultExpandedPaths?: string[];
2643
+ /** Width of the file tree panel */
2644
+ width?: string | number;
2645
+ /** Props for the outer container */
2646
+ containerProps?: BoxProps;
2647
+ }
2648
+ /**
2649
+ * File tree navigator for the CodeEditor workspace.
2650
+ *
2651
+ * Provides default MUI-based rendering with collapsible folders.
2652
+ * Consumers can fully replace rendering via `renderNode`.
2653
+ *
2654
+ * @example
2655
+ * ```tsx
2656
+ * <CodeEditorFileTree
2657
+ * tree={fileTree}
2658
+ * selectedPath={workspace.activeFilePath}
2659
+ * onFileSelect={workspace.openFile}
2660
+ * />
2661
+ * ```
2662
+ */
2663
+ declare const CodeEditorFileTree: React__default.FC<CodeEditorFileTreeProps>;
2664
+
2665
+ interface CodeEditorStatusBarRenderProps {
2666
+ gitInfo?: GitInfo;
2667
+ language?: CodeEditorLanguage;
2668
+ cursorPosition?: {
2669
+ line: number;
2670
+ column: number;
2671
+ };
2672
+ items?: CodeEditorStatusBarItem[];
2673
+ }
2674
+ interface CodeEditorStatusBarProps {
2675
+ /** Git repository information */
2676
+ gitInfo?: GitInfo;
2677
+ /** Language of the active file */
2678
+ language?: CodeEditorLanguage;
2679
+ /** Current cursor position */
2680
+ cursorPosition?: {
2681
+ line: number;
2682
+ column: number;
2683
+ };
2684
+ /** Additional custom items */
2685
+ items?: CodeEditorStatusBarItem[];
2686
+ /**
2687
+ * Render prop for full status bar customisation.
2688
+ * When provided, default rendering is skipped entirely.
2689
+ */
2690
+ renderStatusBar?: (props: CodeEditorStatusBarRenderProps) => React__default.ReactNode;
2691
+ /** Props for the outer container */
2692
+ containerProps?: BoxProps;
2693
+ }
2694
+ /**
2695
+ * Status bar for the CodeEditor workspace.
2696
+ *
2697
+ * Displays git branch info, cursor position, file language, and custom items.
2698
+ * Fully replaceable via `renderStatusBar` render prop.
2699
+ *
2700
+ * @example
2701
+ * ```tsx
2702
+ * <CodeEditorStatusBar
2703
+ * gitInfo={{ branch: 'main', isDirty: true, commitHash: 'a1b2c3d' }}
2704
+ * language="typescript"
2705
+ * cursorPosition={{ line: 10, column: 5 }}
2706
+ * />
2707
+ * ```
2708
+ */
2709
+ declare const CodeEditorStatusBar: React__default.FC<CodeEditorStatusBarProps>;
2710
+
2711
+ interface CodeEditorWorkspaceProps extends Pick<UseCodeEditorWorkspaceOptions, 'files' | 'initialOpenPaths' | 'onFileChange' | 'onValidationChange'> {
2712
+ /** File tree data. When omitted the file tree panel is hidden. */
2713
+ fileTree?: FileTreeNode[];
2714
+ /** Paths of folders expanded by default in the file tree */
2715
+ defaultExpandedPaths?: string[];
2716
+ /** Whether to show the tab bar. @default true */
2717
+ showTabs?: boolean;
2718
+ /** Whether to show the file tree panel. @default true (when fileTree is provided) */
2719
+ showFileTree?: boolean;
2720
+ /** Width of the file tree panel */
2721
+ fileTreeWidth?: string | number;
2722
+ /** Overall height of the workspace */
2723
+ height?: string | number;
2724
+ /** Props passed through to the inner CodeEditor */
2725
+ editorProps?: Partial<Omit<CodeEditorProps, 'value' | 'onChange' | 'language' | 'editorRef' | 'monacoRef' | 'onMount'>>;
2726
+ /** Props for the outer container */
2727
+ containerProps?: BoxProps;
2728
+ /** Replace the default tab bar rendering */
2729
+ renderTabs?: (props: CodeEditorTabsProps & {
2730
+ workspace: UseCodeEditorWorkspaceReturn;
2731
+ }) => React__default.ReactNode;
2732
+ /** Replace the default file tree rendering */
2733
+ renderFileTree?: (props: CodeEditorFileTreeProps & {
2734
+ workspace: UseCodeEditorWorkspaceReturn;
2735
+ }) => React__default.ReactNode;
2736
+ /** Replace the default editor rendering */
2737
+ renderEditor?: (workspace: UseCodeEditorWorkspaceReturn) => React__default.ReactNode;
2738
+ /** Replace the default status bar rendering */
2739
+ renderStatusBar?: (props: CodeEditorStatusBarProps & {
2740
+ workspace: UseCodeEditorWorkspaceReturn;
2741
+ }) => React__default.ReactNode;
2742
+ /** Git repository information to display in the status bar */
2743
+ gitInfo?: GitInfo;
2744
+ /** Whether to show the status bar. @default true */
2745
+ showStatusBar?: boolean;
2746
+ /** Additional custom items for the status bar */
2747
+ statusBarItems?: CodeEditorStatusBarItem[];
2748
+ /** Expose the workspace instance to the parent via ref-like callback */
2749
+ onWorkspaceReady?: (workspace: UseCodeEditorWorkspaceReturn) => void;
2750
+ }
2751
+ /**
2752
+ * Convenience composed workspace that combines `CodeEditorFileTree`,
2753
+ * `CodeEditorTabs`, and `CodeEditor` into a single layout.
2754
+ *
2755
+ * For full control, use `useCodeEditorWorkspace` directly and assemble
2756
+ * the pieces yourself.
2757
+ *
2758
+ * @example
2759
+ * ```tsx
2760
+ * <CodeEditorWorkspace
2761
+ * files={files}
2762
+ * fileTree={tree}
2763
+ * initialOpenPaths={['src/index.ts']}
2764
+ * height="600px"
2765
+ * gitInfo={{ branch: 'main', isDirty: true, commitHash: 'a1b2c3d' }}
2766
+ * onFileChange={(path, value) => console.log(path, value)}
2767
+ * />
2768
+ * ```
2769
+ */
2770
+ declare const CodeEditorWorkspace: React__default.FC<CodeEditorWorkspaceProps>;
2771
+
2772
+ export { Accordion, type AccordionProps, AccountSection, type AccountSectionProps, ActivityAppIcon, Alert, type AlertProps, type AlertSeverity, AppBar, type AppBarProps, AppLoading, type AppLoadingProps, Avatar, AvatarIcon, type AvatarProps, Badge, type BadgeProps, BarTrackingIcon, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, BytesSize, type BytesSizeProps, Card, CardActions, CardContent, CardHeader, type CardProps, CereIcon, ChartWidget, type ChartWidgetProps, CheckMarkAnimation, Checkbox, type CheckboxProps, Chip, type ChipProps, CircularProgress, type CircularProgressProps, ClockIcon, CloudFlashIcon, CodeEditor, type CodeEditorFile, CodeEditorFileTree, type CodeEditorFileTreeProps, type CodeEditorLanguage, type CodeEditorProps, CodeEditorStatusBar, type CodeEditorStatusBarItem, type CodeEditorStatusBarProps, type CodeEditorStatusBarRenderProps, type CodeEditorTab, type CodeEditorTabRenderProps, CodeEditorTabs, type CodeEditorTabsProps, CodeEditorWorkspace, type CodeEditorWorkspaceProps, Collapse, type CollapseProps, ConnectionStatus, type ConnectionStatusProps, type ContextMenuItem, type DataPoint, type DataSeries, DateRangePicker, type DateRangePickerProps, DecentralizedServerIcon, type DeploymentCardAction, DeploymentDashboardCard, type DeploymentDashboardCardProps, DeploymentDashboardPanel, type DeploymentDashboardPanelProps, DeploymentDashboardTree, type DeploymentDashboardTreeProps, DeploymentEntityContextMenu, type DeploymentEntityContextMenuProps, type DeploymentEntityType, type DeploymentStatusIndicator, type DeploymentTreeNode, Dialog, type DialogProps, DiscordIcon, Divider, type DividerProps, DownloadIcon, Drawer, type DrawerProps, Dropdown, DropdownAnchor, type DropdownAnchorProps, type DropdownProps, EXTENSION_LANGUAGE_MAP, EmptyState, type EmptyStateProps, EntityHeader, type EntityHeaderProps, type FileTreeNode, type FileTreeNodeRenderProps, FilledFolderIcon, FlowEditor, type FlowEditorProps, FolderIcon, type GitInfo, GithubLogoIcon, IDBlock, type IDBlockProps, IconButton, type IconButtonProps, LeftArrowIcon, Link, type LinkProps, List, ListItem, type ListItemProps, type ListProps, Loading, LoadingAnimation, type LoadingAnimationProps, LoadingButton, type LoadingButtonProps, type LoadingProps, Logo, type LogoProps, Markdown, type MarkdownProps, Menu, MenuItem, type MenuItemProps, type MenuProps, MetricsChart, type MetricsChartProps, type MetricsPeriod, NavigationItem, type NavigationItemProps, NavigationList, type NavigationListProps, OnboardingProvider, Pagination, type PaginationProps, Paper, type PaperProps, PeriodSelect, type PrimaryAction, Progress, type ProgressProps, QRCode, type QRCodeProps, Radio, type RadioProps, RightArrowIcon, RoleBadge, type RoleBadgeColor, type RoleBadgeProps, type RoleBadgeSize, SearchField, type SearchFieldProps, Selector, type SelectorOption, type SelectorProps, type Service, ServiceSelectorButton, type ServiceSelectorButtonProps, ShareIcon, SideNav, SideNavHeader, type SideNavHeaderProps, type SideNavProps, Sidebar, SidebarItem, type SidebarItemProps, type SidebarProps, Snackbar, type SnackbarProps, Step, StepButton, type StepButtonProps, StepContent, type StepContentProps, StepLabel, type StepLabelProps, type StepProps, Stepper, type StepperProps, StorageAppIcon, type SummaryItem, SummaryStats, type SummaryStatsProps, Switch, type SwitchProps, Tab, type TabProps, Table, TableHeader, type TableHeaderProps, type TableProps, TextField, type TextFieldProps, type TimeRangeOption, TimeRangeSelect, type TimeRangeSelectProps, TimeSeriesGraph, type TimeSeriesGraphProps, ToggleButton, ToggleButtonGroup, type ToggleButtonGroupProps, type ToggleButtonProps, Tooltip, type TooltipProps, Truncate, type TruncateProps, UploadFileIcon, UploadFolderIcon, type UseCodeEditorWorkspaceOptions, type UseCodeEditorWorkspaceReturn, type UserInfo, WORKFLOW_NODE_LABELS, WORKFLOW_NODE_SHADOW, WorkflowNode, type WorkflowNodeData, WorkflowNodeHandle, type WorkflowNodeProps, type WorkflowNodeType, WorkflowSideInspector, type WorkflowSideInspectorProps, WorkflowTimeBar, type WorkflowTimeBarProps, WorkflowTopBar, type WorkflowTopBarProps, type Workspace, WorkspaceSelectorButton, type WorkspaceSelectorButtonProps, colors, contextMenuItems, detectLanguage, getFileName, robPaletteExtended, robPrimaryPalette, theme, useCodeEditorWorkspace, useIsDesktop, useIsMobile, useIsTablet, useOnboarding, workflowConnectionColors, workflowNodeColors };