@cere/cere-design-system 0.0.33 → 0.0.35

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
@@ -2449,7 +2449,11 @@ interface CodeEditorTab {
2449
2449
  label?: string;
2450
2450
  /** Whether the file has unsaved changes */
2451
2451
  isDirty?: boolean;
2452
+ /** Git sync status — distinct from isDirty (editor changes) */
2453
+ syncStatus?: 'new' | 'modified';
2452
2454
  }
2455
+ /** Git sync status for a file tree node. */
2456
+ type FileTreeNodeStatus = 'new' | 'modified' | 'deleted';
2453
2457
  /**
2454
2458
  * A node in the file tree.
2455
2459
  */
@@ -2464,6 +2468,8 @@ interface FileTreeNode {
2464
2468
  children?: FileTreeNode[];
2465
2469
  /** Optional custom icon */
2466
2470
  icon?: ReactNode;
2471
+ /** Git sync status indicator (new / modified / deleted) */
2472
+ status?: FileTreeNodeStatus;
2467
2473
  }
2468
2474
  /**
2469
2475
  * Git repository information passed into the workspace.
@@ -2721,6 +2727,32 @@ interface CodeEditorStatusBarProps {
2721
2727
  */
2722
2728
  declare const CodeEditorStatusBar: React__default.FC<CodeEditorStatusBarProps>;
2723
2729
 
2730
+ interface CodeEditorWelcomeScreenProps {
2731
+ /** Custom logo or icon displayed in the center. Defaults to the Cere logo. */
2732
+ logo?: React__default.ReactNode;
2733
+ /**
2734
+ * Content rendered below the logo. Accepts any ReactNode —
2735
+ * shortcut hints, action buttons, descriptive text, etc.
2736
+ */
2737
+ children?: React__default.ReactNode;
2738
+ /** Props forwarded to the outer container `Box`. */
2739
+ containerProps?: BoxProps;
2740
+ }
2741
+ /**
2742
+ * Default empty-state screen shown inside `CodeEditorWorkspace` when no file
2743
+ * is open. Renders a centered logo with an optional content slot underneath.
2744
+ *
2745
+ * @example
2746
+ * ```tsx
2747
+ * <CodeEditorWelcomeScreen>
2748
+ * <Typography variant="body2" color="text.secondary">
2749
+ * Open a file from the tree to start editing
2750
+ * </Typography>
2751
+ * </CodeEditorWelcomeScreen>
2752
+ * ```
2753
+ */
2754
+ declare const CodeEditorWelcomeScreen: React__default.FC<CodeEditorWelcomeScreenProps>;
2755
+
2724
2756
  interface CodeEditorWorkspaceProps extends Pick<UseCodeEditorWorkspaceOptions, 'files' | 'initialOpenPaths' | 'onFileChange' | 'onValidationChange'> {
2725
2757
  /** File tree data. When omitted the file tree panel is hidden. */
2726
2758
  fileTree?: FileTreeNode[];
@@ -2752,6 +2784,12 @@ interface CodeEditorWorkspaceProps extends Pick<UseCodeEditorWorkspaceOptions, '
2752
2784
  renderStatusBar?: (props: CodeEditorStatusBarProps & {
2753
2785
  workspace: UseCodeEditorWorkspaceReturn;
2754
2786
  }) => React__default.ReactNode;
2787
+ /** Replace the default welcome screen rendering (shown when no file is open) */
2788
+ renderWelcomeScreen?: (workspace: UseCodeEditorWorkspaceReturn) => React__default.ReactNode;
2789
+ /** Static ReactNode that replaces the default welcome screen entirely */
2790
+ welcomeScreen?: React__default.ReactNode;
2791
+ /** Props forwarded to the default `CodeEditorWelcomeScreen` (ignored when `welcomeScreen` or `renderWelcomeScreen` is provided) */
2792
+ welcomeScreenProps?: CodeEditorWelcomeScreenProps;
2755
2793
  /** Git repository information to display in the status bar */
2756
2794
  gitInfo?: GitInfo;
2757
2795
  /** Whether to show the status bar. @default true */
@@ -2786,4 +2824,4 @@ interface CodeEditorWorkspaceProps extends Pick<UseCodeEditorWorkspaceOptions, '
2786
2824
  */
2787
2825
  declare const CodeEditorWorkspace: React__default.FC<CodeEditorWorkspaceProps>;
2788
2826
 
2789
- 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 };
2827
+ 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, CodeEditorWelcomeScreen, type CodeEditorWelcomeScreenProps, 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 };
package/dist/index.d.ts CHANGED
@@ -2449,7 +2449,11 @@ interface CodeEditorTab {
2449
2449
  label?: string;
2450
2450
  /** Whether the file has unsaved changes */
2451
2451
  isDirty?: boolean;
2452
+ /** Git sync status — distinct from isDirty (editor changes) */
2453
+ syncStatus?: 'new' | 'modified';
2452
2454
  }
2455
+ /** Git sync status for a file tree node. */
2456
+ type FileTreeNodeStatus = 'new' | 'modified' | 'deleted';
2453
2457
  /**
2454
2458
  * A node in the file tree.
2455
2459
  */
@@ -2464,6 +2468,8 @@ interface FileTreeNode {
2464
2468
  children?: FileTreeNode[];
2465
2469
  /** Optional custom icon */
2466
2470
  icon?: ReactNode;
2471
+ /** Git sync status indicator (new / modified / deleted) */
2472
+ status?: FileTreeNodeStatus;
2467
2473
  }
2468
2474
  /**
2469
2475
  * Git repository information passed into the workspace.
@@ -2721,6 +2727,32 @@ interface CodeEditorStatusBarProps {
2721
2727
  */
2722
2728
  declare const CodeEditorStatusBar: React__default.FC<CodeEditorStatusBarProps>;
2723
2729
 
2730
+ interface CodeEditorWelcomeScreenProps {
2731
+ /** Custom logo or icon displayed in the center. Defaults to the Cere logo. */
2732
+ logo?: React__default.ReactNode;
2733
+ /**
2734
+ * Content rendered below the logo. Accepts any ReactNode —
2735
+ * shortcut hints, action buttons, descriptive text, etc.
2736
+ */
2737
+ children?: React__default.ReactNode;
2738
+ /** Props forwarded to the outer container `Box`. */
2739
+ containerProps?: BoxProps;
2740
+ }
2741
+ /**
2742
+ * Default empty-state screen shown inside `CodeEditorWorkspace` when no file
2743
+ * is open. Renders a centered logo with an optional content slot underneath.
2744
+ *
2745
+ * @example
2746
+ * ```tsx
2747
+ * <CodeEditorWelcomeScreen>
2748
+ * <Typography variant="body2" color="text.secondary">
2749
+ * Open a file from the tree to start editing
2750
+ * </Typography>
2751
+ * </CodeEditorWelcomeScreen>
2752
+ * ```
2753
+ */
2754
+ declare const CodeEditorWelcomeScreen: React__default.FC<CodeEditorWelcomeScreenProps>;
2755
+
2724
2756
  interface CodeEditorWorkspaceProps extends Pick<UseCodeEditorWorkspaceOptions, 'files' | 'initialOpenPaths' | 'onFileChange' | 'onValidationChange'> {
2725
2757
  /** File tree data. When omitted the file tree panel is hidden. */
2726
2758
  fileTree?: FileTreeNode[];
@@ -2752,6 +2784,12 @@ interface CodeEditorWorkspaceProps extends Pick<UseCodeEditorWorkspaceOptions, '
2752
2784
  renderStatusBar?: (props: CodeEditorStatusBarProps & {
2753
2785
  workspace: UseCodeEditorWorkspaceReturn;
2754
2786
  }) => React__default.ReactNode;
2787
+ /** Replace the default welcome screen rendering (shown when no file is open) */
2788
+ renderWelcomeScreen?: (workspace: UseCodeEditorWorkspaceReturn) => React__default.ReactNode;
2789
+ /** Static ReactNode that replaces the default welcome screen entirely */
2790
+ welcomeScreen?: React__default.ReactNode;
2791
+ /** Props forwarded to the default `CodeEditorWelcomeScreen` (ignored when `welcomeScreen` or `renderWelcomeScreen` is provided) */
2792
+ welcomeScreenProps?: CodeEditorWelcomeScreenProps;
2755
2793
  /** Git repository information to display in the status bar */
2756
2794
  gitInfo?: GitInfo;
2757
2795
  /** Whether to show the status bar. @default true */
@@ -2786,4 +2824,4 @@ interface CodeEditorWorkspaceProps extends Pick<UseCodeEditorWorkspaceOptions, '
2786
2824
  */
2787
2825
  declare const CodeEditorWorkspace: React__default.FC<CodeEditorWorkspaceProps>;
2788
2826
 
2789
- 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 };
2827
+ 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, CodeEditorWelcomeScreen, type CodeEditorWelcomeScreenProps, 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 };
package/dist/index.js CHANGED
@@ -63,6 +63,7 @@ __export(index_exports, {
63
63
  CodeEditorFileTree: () => CodeEditorFileTree,
64
64
  CodeEditorStatusBar: () => CodeEditorStatusBar,
65
65
  CodeEditorTabs: () => CodeEditorTabs,
66
+ CodeEditorWelcomeScreen: () => CodeEditorWelcomeScreen,
66
67
  CodeEditorWorkspace: () => CodeEditorWorkspace,
67
68
  Collapse: () => Collapse,
68
69
  ConnectionLineType: () => import_reactflow2.ConnectionLineType,
@@ -9490,6 +9491,20 @@ var CodeEditorTabs = ({
9490
9491
  }
9491
9492
  }
9492
9493
  ),
9494
+ tab.syncStatus && /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
9495
+ import_material74.Box,
9496
+ {
9497
+ component: "span",
9498
+ sx: {
9499
+ fontSize: "0.6rem",
9500
+ fontWeight: 700,
9501
+ lineHeight: 1,
9502
+ color: tab.syncStatus === "new" ? "success.main" : "warning.main",
9503
+ flexShrink: 0
9504
+ },
9505
+ children: tab.syncStatus === "new" ? "N" : "M"
9506
+ }
9507
+ ),
9493
9508
  /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(import_material74.Tooltip, { title: tab.path, enterDelay: 600, children: /* @__PURE__ */ (0, import_jsx_runtime98.jsx)(
9494
9509
  import_material74.Typography,
9495
9510
  {
@@ -9541,6 +9556,20 @@ var import_InsertDriveFileOutlined = __toESM(require("@mui/icons-material/Insert
9541
9556
  var import_ExpandMore4 = __toESM(require("@mui/icons-material/ExpandMore"));
9542
9557
  var import_ChevronRight4 = __toESM(require("@mui/icons-material/ChevronRight"));
9543
9558
  var import_jsx_runtime99 = require("react/jsx-runtime");
9559
+ var STATUS_CONFIG = {
9560
+ new: { label: "N", color: "success.main" },
9561
+ modified: { label: "M", color: "warning.main" },
9562
+ deleted: { label: "D", color: "error.main" }
9563
+ };
9564
+ function computeFolderStatus(node) {
9565
+ if (node.status) return node.status;
9566
+ if (node.type !== "folder" || !node.children) return void 0;
9567
+ const childStatuses = node.children.map((c) => c.type === "folder" ? computeFolderStatus(c) : c.status).filter((s) => !!s);
9568
+ if (childStatuses.length === 0) return void 0;
9569
+ if (childStatuses.includes("new")) return "new";
9570
+ if (childStatuses.includes("modified")) return "modified";
9571
+ return "deleted";
9572
+ }
9544
9573
  var CodeEditorFileTree = ({
9545
9574
  tree,
9546
9575
  selectedPath,
@@ -9633,7 +9662,28 @@ var CodeEditorFileTree = ({
9633
9662
  }
9634
9663
  }
9635
9664
  }
9636
- )
9665
+ ),
9666
+ (() => {
9667
+ const effectiveStatus = isFolder ? computeFolderStatus(node) : node.status;
9668
+ if (!effectiveStatus) return null;
9669
+ const cfg = STATUS_CONFIG[effectiveStatus];
9670
+ return /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
9671
+ import_material75.Box,
9672
+ {
9673
+ component: "span",
9674
+ sx: {
9675
+ ml: "auto",
9676
+ pl: 0.5,
9677
+ fontSize: "0.65rem",
9678
+ fontWeight: 700,
9679
+ lineHeight: 1,
9680
+ color: cfg.color,
9681
+ flexShrink: 0
9682
+ },
9683
+ children: cfg.label
9684
+ }
9685
+ );
9686
+ })()
9637
9687
  ]
9638
9688
  }
9639
9689
  ),
@@ -9852,10 +9902,61 @@ var StatusBarItemElement = ({ item }) => {
9852
9902
  return inner;
9853
9903
  };
9854
9904
 
9855
- // src/components/third-party/CodeEditorWorkspace/CodeEditorWorkspace.tsx
9856
- var import_react40 = __toESM(require("react"));
9905
+ // src/components/third-party/CodeEditorWorkspace/CodeEditorWelcomeScreen.tsx
9857
9906
  var import_material77 = require("@mui/material");
9858
9907
  var import_jsx_runtime101 = require("react/jsx-runtime");
9908
+ var CodeEditorWelcomeScreen = ({
9909
+ logo,
9910
+ children,
9911
+ containerProps
9912
+ }) => {
9913
+ const defaultLogo = /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
9914
+ CereIcon,
9915
+ {
9916
+ sx: {
9917
+ fontSize: 80,
9918
+ color: "text.disabled",
9919
+ opacity: 0.4
9920
+ }
9921
+ }
9922
+ );
9923
+ return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
9924
+ import_material77.Box,
9925
+ {
9926
+ sx: {
9927
+ flex: 1,
9928
+ display: "flex",
9929
+ flexDirection: "column",
9930
+ alignItems: "center",
9931
+ justifyContent: "center",
9932
+ gap: 3,
9933
+ p: 4,
9934
+ userSelect: "none"
9935
+ },
9936
+ ...containerProps,
9937
+ children: [
9938
+ logo !== void 0 ? logo : defaultLogo,
9939
+ children && /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
9940
+ import_material77.Box,
9941
+ {
9942
+ sx: {
9943
+ display: "flex",
9944
+ flexDirection: "column",
9945
+ alignItems: "center",
9946
+ gap: 1
9947
+ },
9948
+ children
9949
+ }
9950
+ )
9951
+ ]
9952
+ }
9953
+ );
9954
+ };
9955
+
9956
+ // src/components/third-party/CodeEditorWorkspace/CodeEditorWorkspace.tsx
9957
+ var import_react40 = __toESM(require("react"));
9958
+ var import_material78 = require("@mui/material");
9959
+ var import_jsx_runtime102 = require("react/jsx-runtime");
9859
9960
  var CodeEditorWorkspace = ({
9860
9961
  files,
9861
9962
  initialOpenPaths,
@@ -9873,6 +9974,9 @@ var CodeEditorWorkspace = ({
9873
9974
  renderFileTree,
9874
9975
  renderEditor,
9875
9976
  renderStatusBar,
9977
+ renderWelcomeScreen,
9978
+ welcomeScreen,
9979
+ welcomeScreenProps,
9876
9980
  gitInfo,
9877
9981
  showStatusBar = true,
9878
9982
  statusBarItems,
@@ -9917,7 +10021,7 @@ var CodeEditorWorkspace = ({
9917
10021
  onTabSelect: workspace.setActiveFile,
9918
10022
  onTabClose: workspace.closeFile
9919
10023
  };
9920
- const tabsElement = showTabs ? renderTabs ? renderTabs({ ...tabsProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(CodeEditorTabs, { ...tabsProps }) : null;
10024
+ const tabsElement = showTabs ? renderTabs ? renderTabs({ ...tabsProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(CodeEditorTabs, { ...tabsProps }) : null;
9921
10025
  const fileTreeProps = {
9922
10026
  tree: fileTree ?? [],
9923
10027
  selectedPath: workspace.activeFilePath,
@@ -9925,7 +10029,7 @@ var CodeEditorWorkspace = ({
9925
10029
  defaultExpandedPaths,
9926
10030
  width: fileTreeWidth
9927
10031
  };
9928
- const fileTreeElement = hasFileTree ? renderFileTree ? renderFileTree({ ...fileTreeProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(CodeEditorFileTree, { ...fileTreeProps }) : null;
10032
+ const fileTreeElement = hasFileTree ? renderFileTree ? renderFileTree({ ...fileTreeProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(CodeEditorFileTree, { ...fileTreeProps }) : null;
9929
10033
  const statusBarProps = {
9930
10034
  gitInfo,
9931
10035
  language: workspace.activeFile?.language,
@@ -9933,8 +10037,9 @@ var CodeEditorWorkspace = ({
9933
10037
  items: statusBarItems,
9934
10038
  onBranchClick
9935
10039
  };
9936
- const statusBarElement = showStatusBar ? renderStatusBar ? renderStatusBar({ ...statusBarProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(CodeEditorStatusBar, { ...statusBarProps }) : null;
9937
- const editorElement = renderEditor ? renderEditor(workspace) : workspace.activeFile ? /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
10040
+ const statusBarElement = showStatusBar ? renderStatusBar ? renderStatusBar({ ...statusBarProps, workspace }) : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(CodeEditorStatusBar, { ...statusBarProps }) : null;
10041
+ const welcomeElement = renderWelcomeScreen ? renderWelcomeScreen(workspace) : welcomeScreen !== void 0 ? welcomeScreen : /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(CodeEditorWelcomeScreen, { ...welcomeScreenProps });
10042
+ const editorElement = renderEditor ? renderEditor(workspace) : workspace.activeFile ? /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
9938
10043
  CodeEditor,
9939
10044
  {
9940
10045
  value: workspace.activeFile.value,
@@ -9952,22 +10057,9 @@ var CodeEditorWorkspace = ({
9952
10057
  height: "100%",
9953
10058
  ...editorProps
9954
10059
  }
9955
- ) : /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(
9956
- import_material77.Box,
9957
- {
9958
- sx: {
9959
- flex: 1,
9960
- display: "flex",
9961
- alignItems: "center",
9962
- justifyContent: "center",
9963
- color: "text.secondary",
9964
- fontSize: "0.875rem"
9965
- },
9966
- children: "Open a file to start editing"
9967
- }
9968
- );
9969
- return /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(
9970
- import_material77.Box,
10060
+ ) : welcomeElement;
10061
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(
10062
+ import_material78.Box,
9971
10063
  {
9972
10064
  sx: {
9973
10065
  display: "flex",
@@ -9981,9 +10073,9 @@ var CodeEditorWorkspace = ({
9981
10073
  ...containerProps,
9982
10074
  children: [
9983
10075
  fileTreeElement,
9984
- /* @__PURE__ */ (0, import_jsx_runtime101.jsxs)(import_material77.Box, { sx: { flex: 1, display: "flex", flexDirection: "column", minWidth: 0, overflow: "hidden" }, children: [
10076
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(import_material78.Box, { sx: { flex: 1, display: "flex", flexDirection: "column", minWidth: 0, overflow: "hidden" }, children: [
9985
10077
  tabsElement,
9986
- /* @__PURE__ */ (0, import_jsx_runtime101.jsx)(import_material77.Box, { sx: { flex: 1, overflow: "hidden" }, children: editorElement }),
10078
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_material78.Box, { sx: { flex: 1, overflow: "hidden" }, children: editorElement }),
9987
10079
  statusBarElement
9988
10080
  ] })
9989
10081
  ]
@@ -10025,6 +10117,7 @@ var CodeEditorWorkspace = ({
10025
10117
  CodeEditorFileTree,
10026
10118
  CodeEditorStatusBar,
10027
10119
  CodeEditorTabs,
10120
+ CodeEditorWelcomeScreen,
10028
10121
  CodeEditorWorkspace,
10029
10122
  Collapse,
10030
10123
  ConnectionLineType,