@cere/cere-design-system 0.0.45 → 0.1.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.
- package/dist/WorkflowNode-BnxXO6t_.d.mts +46 -0
- package/dist/WorkflowNode-BnxXO6t_.d.ts +46 -0
- package/dist/buttons.d.mts +114 -0
- package/dist/buttons.d.ts +114 -0
- package/dist/buttons.js +19 -0
- package/dist/buttons.js.map +1 -0
- package/dist/buttons.mjs +19 -0
- package/dist/buttons.mjs.map +1 -0
- package/dist/carousel.d.mts +51 -0
- package/dist/carousel.d.ts +51 -0
- package/dist/carousel.js +185 -0
- package/dist/carousel.js.map +1 -0
- package/dist/carousel.mjs +185 -0
- package/dist/carousel.mjs.map +1 -0
- package/dist/charts.d.mts +209 -0
- package/dist/charts.d.ts +209 -0
- package/dist/charts.js +20 -0
- package/dist/charts.js.map +1 -0
- package/dist/charts.mjs +20 -0
- package/dist/charts.mjs.map +1 -0
- package/dist/chunk-27JEWSWA.mjs +233 -0
- package/dist/chunk-27JEWSWA.mjs.map +1 -0
- package/dist/chunk-2EBCST6X.js +25 -0
- package/dist/chunk-2EBCST6X.js.map +1 -0
- package/dist/chunk-3WCMINE5.mjs +490 -0
- package/dist/chunk-3WCMINE5.mjs.map +1 -0
- package/dist/chunk-463SRKKD.js +111 -0
- package/dist/chunk-463SRKKD.js.map +1 -0
- package/dist/chunk-5ASG6G6U.mjs +40 -0
- package/dist/chunk-5ASG6G6U.mjs.map +1 -0
- package/dist/chunk-6EUAU67C.mjs +374 -0
- package/dist/chunk-6EUAU67C.mjs.map +1 -0
- package/dist/chunk-AIY6222Q.js +11 -0
- package/dist/chunk-AIY6222Q.js.map +1 -0
- package/dist/chunk-AJBM7IE6.mjs +2366 -0
- package/dist/chunk-AJBM7IE6.mjs.map +1 -0
- package/dist/chunk-ATIFLPH6.mjs +278 -0
- package/dist/chunk-ATIFLPH6.mjs.map +1 -0
- package/dist/chunk-BIZK6FUD.js +37 -0
- package/dist/chunk-BIZK6FUD.js.map +1 -0
- package/dist/chunk-CCN6M4LI.js +103 -0
- package/dist/chunk-CCN6M4LI.js.map +1 -0
- package/dist/chunk-CUCKULYC.mjs +2658 -0
- package/dist/chunk-CUCKULYC.mjs.map +1 -0
- package/dist/chunk-CWJ4OU6W.mjs +45 -0
- package/dist/chunk-CWJ4OU6W.mjs.map +1 -0
- package/dist/chunk-EOF3QNPF.js +2366 -0
- package/dist/chunk-EOF3QNPF.js.map +1 -0
- package/dist/chunk-FFZ5S7PQ.mjs +146 -0
- package/dist/chunk-FFZ5S7PQ.mjs.map +1 -0
- package/dist/chunk-FN5YL4BK.js +278 -0
- package/dist/chunk-FN5YL4BK.js.map +1 -0
- package/dist/chunk-HLH2VWXL.js +2658 -0
- package/dist/chunk-HLH2VWXL.js.map +1 -0
- package/dist/chunk-IE6GCHDI.mjs +530 -0
- package/dist/chunk-IE6GCHDI.mjs.map +1 -0
- package/dist/chunk-JBHRAAN3.js +31 -0
- package/dist/chunk-JBHRAAN3.js.map +1 -0
- package/dist/chunk-JS4IB5IU.mjs +162 -0
- package/dist/chunk-JS4IB5IU.mjs.map +1 -0
- package/dist/chunk-KF2Y7HO3.js +595 -0
- package/dist/chunk-KF2Y7HO3.js.map +1 -0
- package/dist/chunk-KPDYKK3V.js +162 -0
- package/dist/chunk-KPDYKK3V.js.map +1 -0
- package/dist/chunk-KVBMZNWT.mjs +103 -0
- package/dist/chunk-KVBMZNWT.mjs.map +1 -0
- package/dist/chunk-L2TIGA7I.js +530 -0
- package/dist/chunk-L2TIGA7I.js.map +1 -0
- package/dist/chunk-MNM6HE72.js +146 -0
- package/dist/chunk-MNM6HE72.js.map +1 -0
- package/dist/chunk-NXTVJ6PY.js +374 -0
- package/dist/chunk-NXTVJ6PY.js.map +1 -0
- package/dist/chunk-OWWDNDF4.js +40 -0
- package/dist/chunk-OWWDNDF4.js.map +1 -0
- package/dist/chunk-PHMNZK2R.mjs +18 -0
- package/dist/chunk-PHMNZK2R.mjs.map +1 -0
- package/dist/chunk-PWF2NJDB.mjs +377 -0
- package/dist/chunk-PWF2NJDB.mjs.map +1 -0
- package/dist/chunk-QBCRH7YF.mjs +37 -0
- package/dist/chunk-QBCRH7YF.mjs.map +1 -0
- package/dist/chunk-QD6RLAO2.mjs +11 -0
- package/dist/chunk-QD6RLAO2.mjs.map +1 -0
- package/dist/chunk-QY65OUAC.mjs +111 -0
- package/dist/chunk-QY65OUAC.mjs.map +1 -0
- package/dist/chunk-QYYQYZHV.js +45 -0
- package/dist/chunk-QYYQYZHV.js.map +1 -0
- package/dist/chunk-T7LPABOL.mjs +595 -0
- package/dist/chunk-T7LPABOL.mjs.map +1 -0
- package/dist/chunk-THQKYTQE.js +490 -0
- package/dist/chunk-THQKYTQE.js.map +1 -0
- package/dist/chunk-U2QHFISG.js +18 -0
- package/dist/chunk-U2QHFISG.js.map +1 -0
- package/dist/chunk-UPGFBPFX.mjs +25 -0
- package/dist/chunk-UPGFBPFX.mjs.map +1 -0
- package/dist/chunk-X7E6GMFL.js +233 -0
- package/dist/chunk-X7E6GMFL.js.map +1 -0
- package/dist/chunk-XF66WQZE.mjs +1535 -0
- package/dist/chunk-XF66WQZE.mjs.map +1 -0
- package/dist/chunk-YQOZPLTY.js +1535 -0
- package/dist/chunk-YQOZPLTY.js.map +1 -0
- package/dist/chunk-ZGCN5WCG.js +377 -0
- package/dist/chunk-ZGCN5WCG.js.map +1 -0
- package/dist/chunk-ZP26PGMS.mjs +31 -0
- package/dist/chunk-ZP26PGMS.mjs.map +1 -0
- package/dist/feedback.d.mts +356 -0
- package/dist/feedback.d.ts +356 -0
- package/dist/feedback.js +43 -0
- package/dist/feedback.js.map +1 -0
- package/dist/feedback.mjs +43 -0
- package/dist/feedback.mjs.map +1 -0
- package/dist/icons.d.mts +22 -0
- package/dist/icons.d.ts +22 -0
- package/dist/icons.js +23 -0
- package/dist/icons.js.map +1 -0
- package/dist/icons.mjs +23 -0
- package/dist/icons.mjs.map +1 -0
- package/dist/index.d.mts +165 -3080
- package/dist/index.d.ts +165 -3080
- package/dist/index.js +320 -10082
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +262 -9983
- package/dist/index.mjs.map +1 -1
- package/dist/inputs.d.mts +109 -0
- package/dist/inputs.d.ts +109 -0
- package/dist/inputs.js +43 -0
- package/dist/inputs.js.map +1 -0
- package/dist/inputs.mjs +43 -0
- package/dist/inputs.mjs.map +1 -0
- package/dist/layout.d.mts +927 -0
- package/dist/layout.d.ts +927 -0
- package/dist/layout.js +122 -0
- package/dist/layout.js.map +1 -0
- package/dist/layout.mjs +122 -0
- package/dist/layout.mjs.map +1 -0
- package/dist/navigation.d.mts +716 -0
- package/dist/navigation.d.ts +716 -0
- package/dist/navigation.js +58 -0
- package/dist/navigation.js.map +1 -0
- package/dist/navigation.mjs +58 -0
- package/dist/navigation.mjs.map +1 -0
- package/dist/third-party.d.mts +637 -0
- package/dist/third-party.d.ts +637 -0
- package/dist/third-party.js +45 -0
- package/dist/third-party.js.map +1 -0
- package/dist/third-party.mjs +45 -0
- package/dist/third-party.mjs.map +1 -0
- package/dist/utilities.d.mts +39 -0
- package/dist/utilities.d.ts +39 -0
- package/dist/utilities.js +19 -0
- package/dist/utilities.js.map +1 -0
- package/dist/utilities.mjs +19 -0
- package/dist/utilities.mjs.map +1 -0
- package/package.json +55 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,44 +1,51 @@
|
|
|
1
|
-
import { Theme
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
import { ButtonProps as ButtonProps$1 } from '@mui/material/Button';
|
|
7
|
-
import { IconButtonProps as IconButtonProps$1 } from '@mui/material/IconButton';
|
|
8
|
-
import { LoadingButtonProps as LoadingButtonProps$1 } from '@mui/lab';
|
|
9
|
-
import { ButtonGroupProps as ButtonGroupProps$1, ToggleButtonProps as ToggleButtonProps$1, ToggleButtonGroupProps as ToggleButtonGroupProps$1, PopoverProps, StepProps as StepProps$1, StepButtonProps as StepButtonProps$1, StepContentProps as StepContentProps$1, StepLabelProps as StepLabelProps$1, StepperProps as StepperProps$1, MenuProps as MenuProps$1, CircularProgressProps as CircularProgressProps$1, DialogProps as DialogProps$1, BoxProps, ListProps as ListProps$1, ListItemProps as ListItemProps$1, TableProps as TableProps$1, AccordionProps as AccordionProps$1, AppBarProps as AppBarProps$1, CollapseProps as CollapseProps$1, SvgIconProps } from '@mui/material';
|
|
4
|
+
export { Button, ButtonGroup, ButtonGroupProps, ButtonProps, ButtonTone, ButtonVariant, IconButton, IconButtonProps, LoadingButton, LoadingButtonProps } from './buttons.mjs';
|
|
5
|
+
export { Checkbox, CheckboxProps, CopyableField, CopyableFieldProps, DateRangePicker, DateRangePickerProps, Radio, RadioProps, SearchField, SearchFieldProps, SearchFieldVariant, Switch, SwitchProps, TextField, TextFieldProps, ToggleButton, ToggleButtonGroup, ToggleButtonGroupProps, ToggleButtonProps, useSearchHotkeys } from './inputs.mjs';
|
|
10
6
|
export { Box, BoxProps, Container, ContainerProps, FormControl, FormControlLabel, FormControlLabelProps, FormControlProps, FormHelperText, FormHelperTextProps, FormLabel, FormLabelProps, Grid2 as Grid, Grid2Props as GridProps, InputAdornment, InputAdornmentProps, InputLabel, InputLabelProps, ListItemIcon, ListItemSecondaryAction, ListItemText, Stack, StackProps, Toolbar, ToolbarProps, Typography, TypographyProps } from '@mui/material';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
import { ChipProps as ChipProps$1 } from '@mui/material/Chip';
|
|
20
|
-
import { TooltipProps as TooltipProps$1 } from '@mui/material/Tooltip';
|
|
21
|
-
import { AlertProps as AlertProps$1 } from '@mui/material/Alert';
|
|
22
|
-
import { SnackbarProps as SnackbarProps$1 } from '@mui/material/Snackbar';
|
|
23
|
-
import { DrawerProps as DrawerProps$1 } from '@mui/material/Drawer';
|
|
24
|
-
import { EmblaOptionsType } from 'embla-carousel';
|
|
25
|
-
import { CardProps as CardProps$1 } from '@mui/material/Card';
|
|
26
|
-
import { CardContentProps } from '@mui/material/CardContent';
|
|
27
|
-
import { CardHeaderProps } from '@mui/material/CardHeader';
|
|
28
|
-
import { CardActionsProps } from '@mui/material/CardActions';
|
|
29
|
-
import { CardMediaProps as CardMediaProps$1 } from '@mui/material/CardMedia';
|
|
30
|
-
import { AvatarProps as AvatarProps$1 } from '@mui/material/Avatar';
|
|
31
|
-
import { BreadcrumbsProps as BreadcrumbsProps$1 } from '@mui/material/Breadcrumbs';
|
|
32
|
-
import { PaperProps as PaperProps$1 } from '@mui/material/Paper';
|
|
33
|
-
import { DividerProps as DividerProps$1 } from '@mui/material/Divider';
|
|
34
|
-
import { LinkProps as LinkProps$1 } from '@mui/material/Link';
|
|
35
|
-
import { BoxProps as BoxProps$1 } from '@mui/material/Box';
|
|
36
|
-
import { QRCodeProps as QRCodeProps$1 } from 'react-qr-code';
|
|
37
|
-
import { ReactFlowProps, Node, Edge, OnNodesChange, OnEdgesChange, NodeTypes, EdgeTypes, BackgroundVariant, MiniMapProps, ReactFlowInstance, NodeProps } from 'reactflow';
|
|
7
|
+
export { AccountSection, AccountSectionProps, ConnectionStatus, ConnectionStatusProps, Dropdown, DropdownAnchor, DropdownAnchorProps, DropdownProps, Menu, MenuItem, MenuItemProps, MenuProps, NavigationItem, NavigationItemProps, NavigationList, NavigationListProps, NumberedStepper, NumberedStepperProps, NumberedStepperStep, Pagination, PaginationProps, Selector, SelectorOption, SelectorProps, Service, ServiceSelectorButton, ServiceSelectorButtonProps, SideNav, SideNavHeader, SideNavHeaderProps, SideNavProps, Sidebar, SidebarItem, SidebarItemProps, SidebarProps, Step, StepButton, StepButtonProps, StepContent, StepContentProps, StepLabel, StepLabelProps, StepProps, Stepper, StepperProps, Tab, TabProps, UserInfo, Workspace, WorkspaceSelectorButton, WorkspaceSelectorButtonProps } from './navigation.mjs';
|
|
8
|
+
export { Alert, AlertProps, AlertSeverity, AppLoading, AppLoadingProps, Badge, BadgeProps, Chip, ChipProps, ChipTone, ChipVariant, ChipVariantStyles, CircularProgress, CircularProgressProps, CopyChip, CopyChipProps, EmptyState, EmptyStateProps, IDBlock, IDBlockProps, Loading, LoadingProps, Progress, ProgressProps, RoleBadge, RoleBadgeColor, RoleBadgeProps, RoleBadgeSize, Snackbar, SnackbarProps, StatusDot, StatusDotProps, StatusDotStatus, StatusLabel, StatusLabelProps, StatusLabelSize, Tooltip, TooltipProps, getChipVariantStyles } from './feedback.mjs';
|
|
9
|
+
export { Accordion, AccordionProps, AgentAvatar, AgentAvatarProps, AppBar, AppBarProps, Avatar, AvatarProps, BreadcrumbItem, Breadcrumbs, BreadcrumbsProps, Card, CardActions, CardContent, CardHeader, CardMedia, CardMediaProps, CardProps, CardVariant, Collapse, CollapseProps, ContextMenuItem, DefinitionRow, DefinitionRowProps, DeploymentCardAction, DeploymentDashboardCard, DeploymentDashboardCardProps, DeploymentDashboardPanel, DeploymentDashboardPanelProps, DeploymentDashboardTree, DeploymentDashboardTreeProps, DeploymentEntityContextMenu, DeploymentEntityContextMenuProps, DeploymentEntityType, DeploymentStatusIndicator, DeploymentTreeNode, Dialog, DialogProps, Divider, DividerProps, Drawer, DrawerProps, DrawerWidth, DrawerWidthValue, EntityHeader, EntityHeaderProps, GRADIENT_PALETTE_COUNT, GradientSurface, GradientSurfaceProps, KpiCard, KpiCardProps, KpiTone, Link, LinkProps, List, ListItem, ListItemProps, ListProps, Logo, LogoProps, MetaField, MetaFieldProps, NumberedList, NumberedListItem, NumberedListProps, NumberedListTone, PanelDialog, PanelDialogProps, PanelDialogSide, PanelDialogWidth, Paper, PaperProps, PrimaryAction, ResponsiveDrawerWidth, ScrollableRow, ScrollableRowProps, SectionRow, SectionRowProps, SplitDialogContent, SplitDialogContentProps, Table, TableHeader, TableHeaderProps, TableProps, WorkflowSideInspector, WorkflowSideInspectorProps, WorkflowTimeBar, WorkflowTimeBarProps, WorkflowTopBar, WorkflowTopBarProps, contextMenuItems, resolveDrawerWidth } from './layout.mjs';
|
|
10
|
+
export { W as WORKFLOW_NODE_LABELS, a as WORKFLOW_NODE_SHADOW, b as WorkflowNode, c as WorkflowNodeProps, d as WorkflowNodeType } from './WorkflowNode-BnxXO6t_.mjs';
|
|
11
|
+
export { ActivityAppIcon, BarTrackingIcon, CereIcon, CloudFlashIcon, DecentralizedServerIcon, DiscordIcon, GithubLogoIcon, StorageAppIcon } from './icons.mjs';
|
|
12
|
+
export { BytesSize, BytesSizeProps, Markdown, MarkdownProps, OnboardingProvider, QRCode, QRCodeProps, Truncate, TruncateProps, useOnboarding } from './utilities.mjs';
|
|
13
|
+
export { ChartWidget, ChartWidgetProps, DataPoint, DataSeries, MetricsChart, MetricsChartProps, MetricsPeriod, PeriodSelect, SummaryItem, SummaryStats, SummaryStatsProps, TimeRangeOption, TimeRangeSelect, TimeRangeSelectProps, TimeSeriesGraph, TimeSeriesGraphProps } from './charts.mjs';
|
|
14
|
+
export { CodeEditor, CodeEditorFile, CodeEditorFileTree, CodeEditorFileTreeProps, CodeEditorLanguage, CodeEditorProps, CodeEditorStatusBar, CodeEditorStatusBarItem, CodeEditorStatusBarProps, CodeEditorStatusBarRenderProps, CodeEditorTab, CodeEditorTabRenderProps, CodeEditorTabs, CodeEditorTabsProps, CodeEditorWelcomeScreen, CodeEditorWelcomeScreenProps, CodeEditorWorkspace, CodeEditorWorkspaceProps, EXTENSION_LANGUAGE_MAP, FileTreeNode, FileTreeNodeRenderProps, FlowEditor, FlowEditorProps, GitInfo, UseCodeEditorWorkspaceOptions, UseCodeEditorWorkspaceReturn, WorkflowNodeData, WorkflowNodeHandle, detectLanguage, getFileName, useCodeEditorWorkspace } from './third-party.mjs';
|
|
38
15
|
export { Background, BackgroundVariant, ConnectionLineType, Controls, Edge, EdgeTypes, MiniMap, Node, NodeTypes, OnEdgesChange, OnNodesChange, Panel, ReactFlowInstance } from 'reactflow';
|
|
39
|
-
import { Monaco } from '@monaco-editor/react';
|
|
40
|
-
import { editor } from 'monaco-editor';
|
|
41
16
|
export { default as RadioGroup } from '@mui/material/RadioGroup';
|
|
17
|
+
import 'react';
|
|
18
|
+
import '@mui/material/Button';
|
|
19
|
+
import '@mui/material/IconButton';
|
|
20
|
+
import '@mui/lab';
|
|
21
|
+
import '@mui/material/TextField';
|
|
22
|
+
import '@mui/material/Switch';
|
|
23
|
+
import '@mui/material/Checkbox';
|
|
24
|
+
import '@mui/material/Radio';
|
|
25
|
+
import '@mui/material/ListItemButton';
|
|
26
|
+
import '@mui/material/Tab';
|
|
27
|
+
import '@mui/material/Pagination';
|
|
28
|
+
import '@mui/material/Badge';
|
|
29
|
+
import '@mui/material/Chip';
|
|
30
|
+
import '@mui/material/Tooltip';
|
|
31
|
+
import '@mui/material/Alert';
|
|
32
|
+
import '@mui/material/Snackbar';
|
|
33
|
+
import '@mui/material/Drawer';
|
|
34
|
+
import '@mui/material/Card';
|
|
35
|
+
import '@mui/material/CardContent';
|
|
36
|
+
import '@mui/material/CardHeader';
|
|
37
|
+
import '@mui/material/CardActions';
|
|
38
|
+
import '@mui/material/CardMedia';
|
|
39
|
+
import '@mui/material/Avatar';
|
|
40
|
+
import '@mui/material/Breadcrumbs';
|
|
41
|
+
import '@mui/material/Paper';
|
|
42
|
+
import '@mui/material/Divider';
|
|
43
|
+
import '@mui/material/Link';
|
|
44
|
+
import '@mui/material/Box';
|
|
45
|
+
import '@mui/material/SvgIcon';
|
|
46
|
+
import 'react-qr-code';
|
|
47
|
+
import '@monaco-editor/react';
|
|
48
|
+
import 'monaco-editor';
|
|
42
49
|
|
|
43
50
|
/**
|
|
44
51
|
* Module augmentation for the custom typography variants defined in
|
|
@@ -381,6 +388,114 @@ declare const webSurfaceTokens: {
|
|
|
381
388
|
};
|
|
382
389
|
type WebSurfaceTokenKey = keyof typeof webSurfaceTokens;
|
|
383
390
|
|
|
391
|
+
/**
|
|
392
|
+
* Surface variant: web-light.
|
|
393
|
+
*
|
|
394
|
+
* The marketplace + vault product palette. Both apps render on a light
|
|
395
|
+
* surface; the older audit synthesis (which assumed marketplace was dark)
|
|
396
|
+
* was wrong. There is no shipping dark variant today; that lands as part
|
|
397
|
+
* of the dark-mode work (blocker `B5` in `DESIGN_SYSTEM_TODO.md`).
|
|
398
|
+
*
|
|
399
|
+
* This variant currently mirrors `webSurfaceTokens` verbatim. Future
|
|
400
|
+
* work may diverge (e.g. a vault-specific accent override), at which
|
|
401
|
+
* point a new named variant should be added rather than forking values
|
|
402
|
+
* in app land.
|
|
403
|
+
*
|
|
404
|
+
* See `company-memory-bank/00-foundations/design-system.md` §4.
|
|
405
|
+
*/
|
|
406
|
+
declare const webLight: {
|
|
407
|
+
readonly cViolet: "#aa44f2";
|
|
408
|
+
readonly cVioletTint: "#a54aff";
|
|
409
|
+
readonly cVioletLight: "#f0e0fb";
|
|
410
|
+
readonly cVioletDark: "#7c59ac";
|
|
411
|
+
readonly cPink: "#f941e6";
|
|
412
|
+
readonly cPinkLight: "#fcdff9";
|
|
413
|
+
readonly cRed: "#ff4f59";
|
|
414
|
+
readonly cGreen: "#49bf63";
|
|
415
|
+
readonly cBlueLight: "#e7f4fe";
|
|
416
|
+
readonly cBlueDark: "#598ab8";
|
|
417
|
+
readonly robFandango: "#BD32A7";
|
|
418
|
+
readonly robElectricViolet: "#8B00EC";
|
|
419
|
+
readonly robUltraViolet: "#6750A4";
|
|
420
|
+
readonly robPeriwinkle: "#D0BCFF";
|
|
421
|
+
readonly robBright1: "#5311e3";
|
|
422
|
+
readonly robNearBlack2: "#0d0627";
|
|
423
|
+
readonly robNearBlack4: "#23194b";
|
|
424
|
+
readonly surfaceLow: "#f5f1f7";
|
|
425
|
+
readonly surfaceMid: "#f5f1f7";
|
|
426
|
+
readonly surfaceHigh: "#fefcff";
|
|
427
|
+
readonly surfaceContrast: "#ffffff";
|
|
428
|
+
readonly bgDefault: "#f5f5f5";
|
|
429
|
+
readonly bgDim: "#e6e0e9";
|
|
430
|
+
readonly bgSuccess: "#eef5f0";
|
|
431
|
+
readonly bgWarning: "#fef8e8";
|
|
432
|
+
readonly bgDanger: "#f9dedc";
|
|
433
|
+
readonly textOnDanger: "#8c1d18";
|
|
434
|
+
readonly textPrimary: "#1d1b20";
|
|
435
|
+
readonly textSecondary: "#5f5c64";
|
|
436
|
+
readonly textMuted: "#938f99";
|
|
437
|
+
readonly textLink: "#aa44f2";
|
|
438
|
+
readonly strokeOnLow: "#e6e0e9";
|
|
439
|
+
readonly strokeOnMed: "#dad1e0";
|
|
440
|
+
readonly shadowSm: "0px 2px 8px rgba(0,0,0,0.04)";
|
|
441
|
+
readonly shadowMd: "0px 4px 20px rgba(0,0,0,0.05)";
|
|
442
|
+
readonly shadowFocus: "0 0 0 4px rgba(170,68,242,0.25)";
|
|
443
|
+
};
|
|
444
|
+
type WebLightVariant = typeof webLight;
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* Named surface variants. Consumers pick one variant per product surface
|
|
448
|
+
* by importing the matching CSS layer (`@cere/cere-design-system/surfaces/<name>.css`)
|
|
449
|
+
* AND optionally referencing the typed token bag here at the TS layer.
|
|
450
|
+
*
|
|
451
|
+
* Today there is only `webLight` (the shipped marketplace + vault
|
|
452
|
+
* palette). A future `webDark` lands with the dark-mode work
|
|
453
|
+
* (`DESIGN_SYSTEM_TODO.md` blocker `B5`).
|
|
454
|
+
*
|
|
455
|
+
* See `company-memory-bank/00-foundations/design-system.md` §4.
|
|
456
|
+
*/
|
|
457
|
+
declare const surfaceVariants: {
|
|
458
|
+
readonly webLight: {
|
|
459
|
+
readonly cViolet: "#aa44f2";
|
|
460
|
+
readonly cVioletTint: "#a54aff";
|
|
461
|
+
readonly cVioletLight: "#f0e0fb";
|
|
462
|
+
readonly cVioletDark: "#7c59ac";
|
|
463
|
+
readonly cPink: "#f941e6";
|
|
464
|
+
readonly cPinkLight: "#fcdff9";
|
|
465
|
+
readonly cRed: "#ff4f59";
|
|
466
|
+
readonly cGreen: "#49bf63";
|
|
467
|
+
readonly cBlueLight: "#e7f4fe";
|
|
468
|
+
readonly cBlueDark: "#598ab8";
|
|
469
|
+
readonly robFandango: "#BD32A7";
|
|
470
|
+
readonly robElectricViolet: "#8B00EC";
|
|
471
|
+
readonly robUltraViolet: "#6750A4";
|
|
472
|
+
readonly robPeriwinkle: "#D0BCFF";
|
|
473
|
+
readonly robBright1: "#5311e3";
|
|
474
|
+
readonly robNearBlack2: "#0d0627";
|
|
475
|
+
readonly robNearBlack4: "#23194b";
|
|
476
|
+
readonly surfaceLow: "#f5f1f7";
|
|
477
|
+
readonly surfaceMid: "#f5f1f7";
|
|
478
|
+
readonly surfaceHigh: "#fefcff";
|
|
479
|
+
readonly surfaceContrast: "#ffffff";
|
|
480
|
+
readonly bgDefault: "#f5f5f5";
|
|
481
|
+
readonly bgDim: "#e6e0e9";
|
|
482
|
+
readonly bgSuccess: "#eef5f0";
|
|
483
|
+
readonly bgWarning: "#fef8e8";
|
|
484
|
+
readonly bgDanger: "#f9dedc";
|
|
485
|
+
readonly textOnDanger: "#8c1d18";
|
|
486
|
+
readonly textPrimary: "#1d1b20";
|
|
487
|
+
readonly textSecondary: "#5f5c64";
|
|
488
|
+
readonly textMuted: "#938f99";
|
|
489
|
+
readonly textLink: "#aa44f2";
|
|
490
|
+
readonly strokeOnLow: "#e6e0e9";
|
|
491
|
+
readonly strokeOnMed: "#dad1e0";
|
|
492
|
+
readonly shadowSm: "0px 2px 8px rgba(0,0,0,0.04)";
|
|
493
|
+
readonly shadowMd: "0px 4px 20px rgba(0,0,0,0.05)";
|
|
494
|
+
readonly shadowFocus: "0 0 0 4px rgba(170,68,242,0.25)";
|
|
495
|
+
};
|
|
496
|
+
};
|
|
497
|
+
type SurfaceVariant = keyof typeof surfaceVariants;
|
|
498
|
+
|
|
384
499
|
/**
|
|
385
500
|
* Design system theme barrel.
|
|
386
501
|
*
|
|
@@ -492,3055 +607,25 @@ declare const useIsDesktop: () => boolean;
|
|
|
492
607
|
declare const useIsTablet: () => boolean;
|
|
493
608
|
declare const useIsMobile: () => boolean;
|
|
494
609
|
|
|
495
|
-
type ButtonVariant = 'primary' | 'secondary' | 'tertiary';
|
|
496
|
-
type ButtonTone = 'default' | 'onGradient';
|
|
497
|
-
interface ButtonProps extends Omit<ButtonProps$1, 'variant' | 'color'> {
|
|
498
|
-
/**
|
|
499
|
-
* The visual style variant of the button
|
|
500
|
-
* - primary: Filled button with primary color background
|
|
501
|
-
* - secondary: Outlined button with transparent background and border
|
|
502
|
-
* - tertiary: Text button with no background or border
|
|
503
|
-
*/
|
|
504
|
-
variant?: ButtonVariant;
|
|
505
|
-
/**
|
|
506
|
-
* Tone overlay. When set, **replaces** the per-variant styling — `variant`
|
|
507
|
-
* is ignored. Today the only non-default tone is `onGradient`, which paints
|
|
508
|
-
* the button as a white pill on a dark gradient surface (banner CTA
|
|
509
|
-
* pattern). Use the default tone if you want `variant` to drive the look.
|
|
510
|
-
* @default 'default'
|
|
511
|
-
*/
|
|
512
|
-
tone?: ButtonTone;
|
|
513
|
-
/**
|
|
514
|
-
* The size of the button
|
|
515
|
-
*/
|
|
516
|
-
size?: 'small' | 'medium' | 'large';
|
|
517
|
-
/**
|
|
518
|
-
* Icon element to display before the button text
|
|
519
|
-
*/
|
|
520
|
-
startIcon?: React__default.ReactNode;
|
|
521
|
-
/**
|
|
522
|
-
* Icon element to display after the button text
|
|
523
|
-
*/
|
|
524
|
-
endIcon?: React__default.ReactNode;
|
|
525
|
-
}
|
|
526
|
-
declare const Button: React__default.FC<ButtonProps>;
|
|
527
|
-
|
|
528
|
-
interface IconButtonProps extends IconButtonProps$1 {
|
|
529
|
-
variant?: 'default' | 'primary' | 'secondary';
|
|
530
|
-
}
|
|
531
|
-
declare const IconButton: React__default.FC<IconButtonProps>;
|
|
532
|
-
|
|
533
|
-
interface LoadingButtonProps extends LoadingButtonProps$1 {
|
|
534
|
-
/**
|
|
535
|
-
* If `true`, the button will show a loading indicator
|
|
536
|
-
*/
|
|
537
|
-
loading?: boolean;
|
|
538
|
-
/**
|
|
539
|
-
* The loading indicator can be positioned inside the button or in the center
|
|
540
|
-
*/
|
|
541
|
-
loadingPosition?: 'start' | 'end' | 'center';
|
|
542
|
-
}
|
|
543
|
-
/**
|
|
544
|
-
* LoadingButton component - Button with loading state from MUI Lab
|
|
545
|
-
*
|
|
546
|
-
* @example
|
|
547
|
-
* ```tsx
|
|
548
|
-
* <LoadingButton
|
|
549
|
-
* variant="contained"
|
|
550
|
-
* loading={isLoading}
|
|
551
|
-
* onClick={handleSubmit}
|
|
552
|
-
* >
|
|
553
|
-
* Submit
|
|
554
|
-
* </LoadingButton>
|
|
555
|
-
* ```
|
|
556
|
-
*/
|
|
557
|
-
declare const LoadingButton: React__default.FC<LoadingButtonProps>;
|
|
558
|
-
|
|
559
|
-
interface ButtonGroupProps extends ButtonGroupProps$1 {
|
|
560
|
-
/**
|
|
561
|
-
* The content of the button group
|
|
562
|
-
*/
|
|
563
|
-
children?: React__default.ReactNode;
|
|
564
|
-
/**
|
|
565
|
-
* If `true`, the buttons will be disabled
|
|
566
|
-
*/
|
|
567
|
-
disabled?: boolean;
|
|
568
|
-
/**
|
|
569
|
-
* If `true`, the button group will take full width
|
|
570
|
-
*/
|
|
571
|
-
fullWidth?: boolean;
|
|
572
|
-
/**
|
|
573
|
-
* The orientation of the button group
|
|
574
|
-
* @default 'horizontal'
|
|
575
|
-
*/
|
|
576
|
-
orientation?: 'horizontal' | 'vertical';
|
|
577
|
-
/**
|
|
578
|
-
* The size of the buttons
|
|
579
|
-
* @default 'medium'
|
|
580
|
-
*/
|
|
581
|
-
size?: 'small' | 'medium' | 'large';
|
|
582
|
-
/**
|
|
583
|
-
* The variant to use
|
|
584
|
-
* @default 'outlined'
|
|
585
|
-
*/
|
|
586
|
-
variant?: 'text' | 'outlined' | 'contained';
|
|
587
|
-
}
|
|
588
|
-
/**
|
|
589
|
-
* ButtonGroup component - groups related buttons together
|
|
590
|
-
*
|
|
591
|
-
* @example
|
|
592
|
-
* ```tsx
|
|
593
|
-
* <ButtonGroup variant="contained">
|
|
594
|
-
* <Button>One</Button>
|
|
595
|
-
* <Button>Two</Button>
|
|
596
|
-
* <Button>Three</Button>
|
|
597
|
-
* </ButtonGroup>
|
|
598
|
-
* ```
|
|
599
|
-
*/
|
|
600
|
-
declare const ButtonGroup: React__default.FC<ButtonGroupProps>;
|
|
601
|
-
|
|
602
|
-
type TextFieldSize = 'small' | 'medium';
|
|
603
|
-
interface TextFieldProps extends Omit<TextFieldProps$1, 'size'> {
|
|
604
|
-
size?: TextFieldSize;
|
|
605
|
-
}
|
|
606
|
-
declare const TextField: React__default.FC<TextFieldProps>;
|
|
607
|
-
|
|
608
|
-
interface CopyableFieldProps {
|
|
609
|
-
/** The string copied to the clipboard. Also rendered as the button label. */
|
|
610
|
-
value: string;
|
|
611
|
-
/** Small label rendered above the value (overline-styled). */
|
|
612
|
-
label?: React__default.ReactNode;
|
|
613
|
-
/** Custom aria-label; defaults to "Copy {value}". */
|
|
614
|
-
ariaLabel?: string;
|
|
615
|
-
/** How long the "Copied" flash stays visible, in ms. @default 1400 */
|
|
616
|
-
flashDurationMs?: number;
|
|
617
|
-
/** Text shown during the flash. @default "Copied" */
|
|
618
|
-
flashLabel?: string;
|
|
619
|
-
/** Optional callback invoked after a successful copy. */
|
|
620
|
-
onCopy?: (value: string) => void;
|
|
621
|
-
}
|
|
622
|
-
/**
|
|
623
|
-
* Tinted card with a label row and a monospace, click-to-copy value button.
|
|
624
|
-
* Replaces ad-hoc `.share-card / .url / .share-card__flash` markup.
|
|
625
|
-
*/
|
|
626
|
-
declare const CopyableField: React__default.FC<CopyableFieldProps>;
|
|
627
|
-
|
|
628
|
-
type SearchFieldVariant = 'standard' | 'pill';
|
|
629
|
-
interface SearchFieldProps extends Omit<TextFieldProps, 'InputProps' | 'variant'> {
|
|
630
|
-
placeholder?: string;
|
|
631
|
-
/** Fires with the next input value on every change. */
|
|
632
|
-
onSearch?: (value: string) => void;
|
|
633
|
-
/** Visual treatment. `pill` renders a fully-rounded input. @default 'standard' */
|
|
634
|
-
variant?: SearchFieldVariant;
|
|
635
|
-
/**
|
|
636
|
-
* Show a keyboard-shortcut hint adornment (⌘ K on Mac, Ctrl + K elsewhere) at
|
|
637
|
-
* the right edge. Pair with `useSearchHotkeys` to wire the key handler.
|
|
638
|
-
*/
|
|
639
|
-
shortcutHint?: boolean;
|
|
640
|
-
}
|
|
641
|
-
declare const SearchField: React__default.FC<SearchFieldProps>;
|
|
642
|
-
|
|
643
|
-
interface UseSearchHotkeysOptions {
|
|
644
|
-
/** Cmd/Ctrl + K focuses the ref. @default true */
|
|
645
|
-
k?: boolean;
|
|
646
|
-
/** `/` (when not already typing in another field) focuses the ref. @default true */
|
|
647
|
-
slash?: boolean;
|
|
648
|
-
}
|
|
649
|
-
/**
|
|
650
|
-
* Wire global Cmd+K (Mac) / Ctrl+K (everywhere else) and `/` hotkeys to focus
|
|
651
|
-
* the input pointed to by `inputRef`. The `/` hotkey is suppressed while the
|
|
652
|
-
* user is typing in another input, textarea or contentEditable element so it
|
|
653
|
-
* doesn't hijack normal typing. Either hotkey can be disabled via options.
|
|
654
|
-
*/
|
|
655
|
-
declare function useSearchHotkeys(inputRef: RefObject<HTMLInputElement | null>, options?: UseSearchHotkeysOptions): void;
|
|
656
|
-
|
|
657
|
-
type ToggleButtonProps = ToggleButtonProps$1;
|
|
658
|
-
declare const ToggleButton: React__default.FC<ToggleButtonProps>;
|
|
659
|
-
type ToggleButtonGroupProps = ToggleButtonGroupProps$1;
|
|
660
|
-
declare const ToggleButtonGroup: React__default.FC<ToggleButtonGroupProps>;
|
|
661
|
-
|
|
662
|
-
interface SwitchProps extends SwitchProps$1 {
|
|
663
|
-
label?: string;
|
|
664
|
-
labelPosition?: 'left' | 'right';
|
|
665
|
-
}
|
|
666
|
-
declare const Switch: React__default.FC<SwitchProps>;
|
|
667
|
-
|
|
668
|
-
interface CheckboxProps extends Omit<CheckboxProps$1, 'color'> {
|
|
669
|
-
label?: string;
|
|
670
|
-
labelPosition?: 'left' | 'right';
|
|
671
|
-
}
|
|
672
|
-
declare const Checkbox: React__default.FC<CheckboxProps>;
|
|
673
|
-
|
|
674
|
-
interface RadioProps extends Omit<RadioProps$1, 'color'> {
|
|
675
|
-
label?: string;
|
|
676
|
-
labelPosition?: 'left' | 'right';
|
|
677
|
-
}
|
|
678
|
-
declare const Radio: React__default.FC<RadioProps>;
|
|
679
|
-
|
|
680
|
-
/** Props for the DateRangePicker component. */
|
|
681
|
-
interface DateRangePickerProps {
|
|
682
|
-
/** The selected start date, or null if unset. */
|
|
683
|
-
startDate: Date | null;
|
|
684
|
-
/** The selected end date, or null if unset. */
|
|
685
|
-
endDate: Date | null;
|
|
686
|
-
/** Callback fired when the start date changes. */
|
|
687
|
-
onStartDateChange: (date: Date | null) => void;
|
|
688
|
-
/** Callback fired when the end date changes. */
|
|
689
|
-
onEndDateChange: (date: Date | null) => void;
|
|
690
|
-
/** Earliest selectable date for both pickers. */
|
|
691
|
-
minDate?: Date;
|
|
692
|
-
/** Latest selectable date for both pickers. */
|
|
693
|
-
maxDate?: Date;
|
|
694
|
-
/** If true, both date pickers are disabled. @default false */
|
|
695
|
-
disabled?: boolean;
|
|
696
|
-
/** Size of the text field inputs. @default 'small' */
|
|
697
|
-
size?: 'small' | 'medium';
|
|
698
|
-
}
|
|
699
|
-
declare const DateRangePicker: React__default.FC<DateRangePickerProps>;
|
|
700
|
-
|
|
701
|
-
type DropdownAnchorProps = {
|
|
702
|
-
open?: boolean;
|
|
703
|
-
label?: ReactNode;
|
|
704
|
-
leftElement?: ReactNode;
|
|
705
|
-
onOpen?: () => void;
|
|
706
|
-
variant?: 'header' | 'button';
|
|
707
|
-
};
|
|
708
|
-
declare const DropdownAnchor: React$1.ForwardRefExoticComponent<DropdownAnchorProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
709
|
-
|
|
710
|
-
type RenderAnchorOptions = {
|
|
711
|
-
ref: Ref<any>;
|
|
712
|
-
open: boolean;
|
|
713
|
-
onOpen: () => void;
|
|
714
|
-
};
|
|
715
|
-
type DropdownProps = Pick<PopoverProps, 'open' | 'children'> & Omit<DropdownAnchorProps, 'open'> & {
|
|
716
|
-
direction?: 'right' | 'left';
|
|
717
|
-
dense?: boolean;
|
|
718
|
-
disableGutters?: boolean;
|
|
719
|
-
disablePaddings?: boolean;
|
|
720
|
-
onToggle?: (open: boolean) => void;
|
|
721
|
-
renderAnchor?: (options: RenderAnchorOptions) => ReactNode;
|
|
722
|
-
variant: 'header' | 'button';
|
|
723
|
-
};
|
|
724
|
-
declare const Dropdown: ({ open, label, leftElement, direction, children, onToggle, dense, disableGutters, disablePaddings, variant, renderAnchor, }: DropdownProps) => react_jsx_runtime.JSX.Element;
|
|
725
|
-
|
|
726
|
-
interface SidebarItemProps {
|
|
727
|
-
label: string;
|
|
728
|
-
icon?: React__default.ReactNode;
|
|
729
|
-
selected?: boolean;
|
|
730
|
-
onClick?: () => void;
|
|
731
|
-
size?: 'small' | 'medium' | 'large';
|
|
732
|
-
endIcon?: React__default.ReactNode;
|
|
733
|
-
children?: React__default.ReactNode;
|
|
734
|
-
}
|
|
735
|
-
declare const SidebarItem: React__default.FC<SidebarItemProps>;
|
|
736
|
-
|
|
737
|
-
interface SidebarProps {
|
|
738
|
-
open?: boolean;
|
|
739
|
-
width?: number;
|
|
740
|
-
items: SidebarItemProps[];
|
|
741
|
-
onClose?: () => void;
|
|
742
|
-
variant?: 'permanent' | 'persistent' | 'temporary';
|
|
743
|
-
}
|
|
744
|
-
declare const Sidebar: React__default.FC<SidebarProps>;
|
|
745
|
-
|
|
746
|
-
interface Service {
|
|
747
|
-
id: string;
|
|
748
|
-
name: string;
|
|
749
|
-
description?: string;
|
|
750
|
-
type?: string;
|
|
751
|
-
lastAccessed?: string;
|
|
752
|
-
memberCount?: number;
|
|
753
|
-
favorited?: boolean;
|
|
754
|
-
isPersonal?: boolean;
|
|
755
|
-
avatar?: string;
|
|
756
|
-
archived?: boolean;
|
|
757
|
-
}
|
|
758
|
-
interface ServiceSelectorButtonProps {
|
|
759
|
-
/**
|
|
760
|
-
* List of services to display
|
|
761
|
-
*/
|
|
762
|
-
services: Service[];
|
|
763
|
-
/**
|
|
764
|
-
* Currently selected service ID
|
|
765
|
-
*/
|
|
766
|
-
selectedServiceId: string | null;
|
|
767
|
-
/**
|
|
768
|
-
* Loading state
|
|
769
|
-
*/
|
|
770
|
-
loading?: boolean;
|
|
771
|
-
/**
|
|
772
|
-
* Compact mode for mobile or mini-sidebar
|
|
773
|
-
*/
|
|
774
|
-
compact?: boolean;
|
|
775
|
-
/**
|
|
776
|
-
* Callback when service is selected
|
|
777
|
-
*/
|
|
778
|
-
onSelectService?: (serviceId: string) => void;
|
|
779
|
-
/**
|
|
780
|
-
* Callback when service name is clicked (for navigation)
|
|
781
|
-
*/
|
|
782
|
-
onServiceClick?: (serviceId: string) => void;
|
|
783
|
-
/**
|
|
784
|
-
* Callback when "Create Service" is clicked
|
|
785
|
-
*/
|
|
786
|
-
onCreateService?: () => void;
|
|
787
|
-
/**
|
|
788
|
-
* Callback after service is created
|
|
789
|
-
*/
|
|
790
|
-
onServiceCreated?: () => void;
|
|
791
|
-
/**
|
|
792
|
-
* Whether user is a manager for the selected service
|
|
793
|
-
*/
|
|
794
|
-
isManager?: boolean;
|
|
795
|
-
/**
|
|
796
|
-
* Custom styles
|
|
797
|
-
*/
|
|
798
|
-
sx?: never;
|
|
799
|
-
/**
|
|
800
|
-
* Panel width
|
|
801
|
-
* @default 350
|
|
802
|
-
*/
|
|
803
|
-
panelWidth?: number;
|
|
804
|
-
/**
|
|
805
|
-
* Callback when Settings button is clicked
|
|
806
|
-
*/
|
|
807
|
-
onOpenSettings?: (serviceId: string) => void;
|
|
808
|
-
/**
|
|
809
|
-
* Callback when Add Member button is clicked
|
|
810
|
-
*/
|
|
811
|
-
onOpenAddMember?: (serviceId: string) => void;
|
|
812
|
-
}
|
|
813
|
-
declare const ServiceSelectorButton: React__default.FC<ServiceSelectorButtonProps>;
|
|
814
|
-
|
|
815
|
-
interface Workspace {
|
|
816
|
-
id: string;
|
|
817
|
-
name: string;
|
|
818
|
-
description?: string;
|
|
819
|
-
}
|
|
820
|
-
interface WorkspaceSelectorButtonProps {
|
|
821
|
-
/**
|
|
822
|
-
* List of workspaces to display
|
|
823
|
-
*/
|
|
824
|
-
workspaces: Workspace[];
|
|
825
|
-
/**
|
|
826
|
-
* Currently selected workspace ID
|
|
827
|
-
*/
|
|
828
|
-
selectedWorkspaceId: string | null;
|
|
829
|
-
/**
|
|
830
|
-
* Loading state
|
|
831
|
-
*/
|
|
832
|
-
loading?: boolean;
|
|
833
|
-
/**
|
|
834
|
-
* Callback when workspace is selected
|
|
835
|
-
*/
|
|
836
|
-
onSelectWorkspace?: (workspaceId: string) => void;
|
|
837
|
-
/**
|
|
838
|
-
* Callback when workspace name is clicked (for navigation)
|
|
839
|
-
*/
|
|
840
|
-
onWorkspaceClick?: (workspaceId: string) => void;
|
|
841
|
-
/**
|
|
842
|
-
* Callback when "Create Workspace" is clicked
|
|
843
|
-
*/
|
|
844
|
-
onCreateWorkspace?: () => void;
|
|
845
|
-
/**
|
|
846
|
-
* Custom styles
|
|
847
|
-
*/
|
|
848
|
-
sx?: any;
|
|
849
|
-
/**
|
|
850
|
-
* Panel width
|
|
851
|
-
* @default 350
|
|
852
|
-
*/
|
|
853
|
-
panelWidth?: number;
|
|
854
|
-
}
|
|
855
|
-
declare const WorkspaceSelectorButton: React__default.FC<WorkspaceSelectorButtonProps>;
|
|
856
|
-
|
|
857
|
-
type StepperProps = StepperProps$1;
|
|
858
610
|
/**
|
|
859
|
-
*
|
|
611
|
+
* Time formatters shared across CEF surfaces. Kept intentionally tiny and
|
|
612
|
+
* dependency-free so consumers (vault, marketplace, ROB) can render
|
|
613
|
+
* timestamps the same way without each shipping their own copy.
|
|
860
614
|
*
|
|
861
|
-
*
|
|
862
|
-
*
|
|
863
|
-
*
|
|
864
|
-
* <Step>
|
|
865
|
-
* <StepLabel>Step 1</StepLabel>
|
|
866
|
-
* </Step>
|
|
867
|
-
* <Step>
|
|
868
|
-
* <StepLabel>Step 2</StepLabel>
|
|
869
|
-
* </Step>
|
|
870
|
-
* </Stepper>
|
|
871
|
-
* ```
|
|
872
|
-
*/
|
|
873
|
-
declare const Stepper: React__default.FC<StepperProps>;
|
|
874
|
-
type StepProps = StepProps$1;
|
|
875
|
-
/**
|
|
876
|
-
* Step component - represents a single step in a Stepper
|
|
877
|
-
*/
|
|
878
|
-
declare const Step: React__default.FC<StepProps>;
|
|
879
|
-
type StepLabelProps = StepLabelProps$1;
|
|
880
|
-
/**
|
|
881
|
-
* StepLabel component - label for a Step
|
|
882
|
-
*/
|
|
883
|
-
declare const StepLabel: React__default.FC<StepLabelProps>;
|
|
884
|
-
type StepContentProps = StepContentProps$1;
|
|
885
|
-
/**
|
|
886
|
-
* StepContent component - optional content that appears below a StepLabel
|
|
887
|
-
*/
|
|
888
|
-
declare const StepContent: React__default.FC<StepContentProps>;
|
|
889
|
-
type StepButtonProps = StepButtonProps$1;
|
|
890
|
-
/**
|
|
891
|
-
* StepButton component - makes a Step clickable
|
|
892
|
-
*/
|
|
893
|
-
declare const StepButton: React__default.FC<StepButtonProps>;
|
|
894
|
-
|
|
895
|
-
interface NumberedStepperStep {
|
|
896
|
-
key: string;
|
|
897
|
-
label: string;
|
|
898
|
-
}
|
|
899
|
-
interface NumberedStepperProps {
|
|
900
|
-
steps: NumberedStepperStep[];
|
|
901
|
-
/** Index of the active step. -1 = none active. */
|
|
902
|
-
current: number;
|
|
903
|
-
className?: string;
|
|
904
|
-
}
|
|
905
|
-
/**
|
|
906
|
-
* Vertical numbered stepper used by Try-this-out and similar guided flows.
|
|
907
|
-
* Brand-styled: active rows take the violet palette; completed rows show ✓.
|
|
908
|
-
*/
|
|
909
|
-
declare const NumberedStepper: React__default.FC<NumberedStepperProps>;
|
|
910
|
-
|
|
911
|
-
/**
|
|
912
|
-
* Type definitions for SideNav components
|
|
913
|
-
* Side Navigation Bar Component - V1 (Expanded State) & V2 (Collapsed State)
|
|
914
|
-
*/
|
|
915
|
-
|
|
916
|
-
/**
|
|
917
|
-
* Navigation Item Properties
|
|
918
|
-
* Individual navigation menu item with icon, label, and interactive states
|
|
919
|
-
*/
|
|
920
|
-
interface NavigationItemProps extends Omit<ListItemButtonProps, 'selected' | 'onClick'> {
|
|
921
|
-
/**
|
|
922
|
-
* Unique identifier for the navigation item
|
|
923
|
-
* Used for selection tracking and key prop
|
|
924
|
-
*/
|
|
925
|
-
id: string;
|
|
926
|
-
/**
|
|
927
|
-
* Display text for the navigation item
|
|
928
|
-
*/
|
|
929
|
-
label: string;
|
|
930
|
-
/**
|
|
931
|
-
* Icon element to display (typically a Material UI icon component)
|
|
932
|
-
*/
|
|
933
|
-
icon?: ReactNode;
|
|
934
|
-
/**
|
|
935
|
-
* Position of the icon relative to the label
|
|
936
|
-
* @default 'left'
|
|
937
|
-
*/
|
|
938
|
-
iconPosition?: 'left' | 'right';
|
|
939
|
-
/**
|
|
940
|
-
* Whether this item is currently selected/active
|
|
941
|
-
* @default false
|
|
942
|
-
*/
|
|
943
|
-
selected?: boolean;
|
|
944
|
-
/**
|
|
945
|
-
* Whether this item is disabled
|
|
946
|
-
* @default false
|
|
947
|
-
*/
|
|
948
|
-
disabled?: boolean;
|
|
949
|
-
/**
|
|
950
|
-
* Click handler for the navigation item
|
|
951
|
-
* @param id - The id of the clicked item
|
|
952
|
-
*/
|
|
953
|
-
onClick?: (id: string) => void;
|
|
954
|
-
/**
|
|
955
|
-
* Additional content to display on the right side
|
|
956
|
-
* Can be a button, dropdown, badge, etc.
|
|
957
|
-
*/
|
|
958
|
-
endContent?: ReactNode;
|
|
959
|
-
/**
|
|
960
|
-
* Optional URL for link-based navigation
|
|
961
|
-
* If provided, component renders as a link
|
|
962
|
-
*/
|
|
963
|
-
href?: string;
|
|
964
|
-
/**
|
|
965
|
-
* Accessibility label for screen readers
|
|
966
|
-
* @default Uses 'label' prop value
|
|
967
|
-
*/
|
|
968
|
-
ariaLabel?: string;
|
|
969
|
-
/**
|
|
970
|
-
* Size variant for the navigation item
|
|
971
|
-
* @default 'medium'
|
|
972
|
-
*/
|
|
973
|
-
size?: 'small' | 'medium' | 'large';
|
|
974
|
-
/**
|
|
975
|
-
* Whether sidebar is collapsed (icon-only mode) - V2
|
|
976
|
-
* When true:
|
|
977
|
-
* - Label is hidden
|
|
978
|
-
* - Tooltip shows on hover/focus
|
|
979
|
-
* - EndContent is hidden
|
|
980
|
-
* - Icon is centered
|
|
981
|
-
* @default false
|
|
982
|
-
*/
|
|
983
|
-
collapsed?: boolean;
|
|
984
|
-
/**
|
|
985
|
-
* Whether to show tooltip in collapsed mode - V2
|
|
986
|
-
* @default true
|
|
987
|
-
*/
|
|
988
|
-
showTooltip?: boolean;
|
|
989
|
-
/**
|
|
990
|
-
* Tooltip placement - V2
|
|
991
|
-
* @default 'right'
|
|
992
|
-
*/
|
|
993
|
-
tooltipPlacement?: 'left' | 'right' | 'top' | 'bottom';
|
|
994
|
-
}
|
|
995
|
-
/**
|
|
996
|
-
* Navigation List Properties
|
|
997
|
-
* Container for multiple navigation items with scroll support
|
|
998
|
-
*/
|
|
999
|
-
interface NavigationListProps {
|
|
1000
|
-
/**
|
|
1001
|
-
* Array of navigation items to display
|
|
1002
|
-
*/
|
|
1003
|
-
items: NavigationItemProps[];
|
|
1004
|
-
/**
|
|
1005
|
-
* ID of currently selected item (controlled mode)
|
|
1006
|
-
*/
|
|
1007
|
-
selectedId?: string;
|
|
1008
|
-
/**
|
|
1009
|
-
* Callback when selection changes
|
|
1010
|
-
* @param id - The id of the newly selected item
|
|
1011
|
-
*/
|
|
1012
|
-
onSelectionChange?: (id: string) => void;
|
|
1013
|
-
/**
|
|
1014
|
-
* Maximum height before scrolling kicks in
|
|
1015
|
-
* @default 'auto'
|
|
1016
|
-
*/
|
|
1017
|
-
maxHeight?: string | number;
|
|
1018
|
-
/**
|
|
1019
|
-
* Accessibility label for the list
|
|
1020
|
-
* @default 'Navigation menu'
|
|
1021
|
-
*/
|
|
1022
|
-
ariaLabel?: string;
|
|
1023
|
-
/**
|
|
1024
|
-
* Whether sidebar is collapsed - V2
|
|
1025
|
-
* Passed down to all NavigationItem children
|
|
1026
|
-
* @default false
|
|
1027
|
-
*/
|
|
1028
|
-
collapsed?: boolean;
|
|
1029
|
-
/**
|
|
1030
|
-
* Whether to show tooltips on items when collapsed - V2
|
|
1031
|
-
* Passed down to each NavigationItem's showTooltip prop
|
|
1032
|
-
* @default true
|
|
1033
|
-
*/
|
|
1034
|
-
showTooltips?: boolean;
|
|
1035
|
-
}
|
|
1036
|
-
/**
|
|
1037
|
-
* User Information
|
|
1038
|
-
* Used in AccountSection component
|
|
615
|
+
* Both helpers return the em-dash placeholder `'—'` for missing or
|
|
616
|
+
* unparseable input so call sites can drop the value directly into JSX
|
|
617
|
+
* without a guard.
|
|
1039
618
|
*/
|
|
1040
|
-
interface UserInfo {
|
|
1041
|
-
/**
|
|
1042
|
-
* User's display name
|
|
1043
|
-
*/
|
|
1044
|
-
name: string;
|
|
1045
|
-
/**
|
|
1046
|
-
* User's email address (optional)
|
|
1047
|
-
*/
|
|
1048
|
-
email?: string;
|
|
1049
|
-
/**
|
|
1050
|
-
* User's initials for avatar fallback
|
|
1051
|
-
* If not provided, will be derived from name
|
|
1052
|
-
*/
|
|
1053
|
-
initials?: string;
|
|
1054
|
-
/**
|
|
1055
|
-
* URL for user avatar image
|
|
1056
|
-
*/
|
|
1057
|
-
avatarUrl?: string;
|
|
1058
|
-
}
|
|
1059
619
|
/**
|
|
1060
|
-
*
|
|
1061
|
-
*
|
|
620
|
+
* Render an ISO-8601 timestamp as a coarse relative string ("12s ago",
|
|
621
|
+
* "7m ago", "3h ago"). For gaps of a day or more, falls back to the
|
|
622
|
+
* browser's locale string so the absolute date is still legible.
|
|
1062
623
|
*/
|
|
1063
|
-
|
|
1064
|
-
/**
|
|
1065
|
-
* Status text to display (e.g., "Connected to Dragon 1")
|
|
1066
|
-
*/
|
|
1067
|
-
status: string;
|
|
1068
|
-
/**
|
|
1069
|
-
* Visual variant of the status
|
|
1070
|
-
* @default 'info'
|
|
1071
|
-
*/
|
|
1072
|
-
variant?: 'success' | 'warning' | 'error' | 'info';
|
|
1073
|
-
/**
|
|
1074
|
-
* Optional custom icon to replace the default power icon
|
|
1075
|
-
*/
|
|
1076
|
-
icon?: ReactNode;
|
|
1077
|
-
/**
|
|
1078
|
-
* Optional click handler (makes status interactive)
|
|
1079
|
-
*/
|
|
1080
|
-
onClick?: () => void;
|
|
1081
|
-
/**
|
|
1082
|
-
* Compact mode for collapsed sidebar - V2
|
|
1083
|
-
* When true:
|
|
1084
|
-
* - Shows pill with icon + compactText (or falls back to icon-only)
|
|
1085
|
-
* - Tooltip shows full status text on hover/focus
|
|
1086
|
-
* @default false
|
|
1087
|
-
*/
|
|
1088
|
-
compact?: boolean;
|
|
1089
|
-
/**
|
|
1090
|
-
* Short label to display in compact mode (e.g. "D1") - V2
|
|
1091
|
-
* If not provided, compact mode shows icon-only
|
|
1092
|
-
*/
|
|
1093
|
-
compactText?: string;
|
|
1094
|
-
}
|
|
624
|
+
declare function formatRelativeTime(iso: string | undefined | null): string;
|
|
1095
625
|
/**
|
|
1096
|
-
*
|
|
1097
|
-
*
|
|
1098
|
-
*/
|
|
1099
|
-
interface AccountSectionProps {
|
|
1100
|
-
/**
|
|
1101
|
-
* User information object
|
|
1102
|
-
*/
|
|
1103
|
-
user: UserInfo;
|
|
1104
|
-
/**
|
|
1105
|
-
* Logout button click handler
|
|
1106
|
-
*/
|
|
1107
|
-
onLogout: () => void;
|
|
1108
|
-
/**
|
|
1109
|
-
* Whether to show email below name
|
|
1110
|
-
* @default false
|
|
1111
|
-
*/
|
|
1112
|
-
showEmail?: boolean;
|
|
1113
|
-
/**
|
|
1114
|
-
* Layout variant
|
|
1115
|
-
* @default 'horizontal'
|
|
1116
|
-
*/
|
|
1117
|
-
layout?: 'horizontal' | 'vertical';
|
|
1118
|
-
/**
|
|
1119
|
-
* Compact mode (avatar-only for collapsed sidebar) - V2
|
|
1120
|
-
* When true:
|
|
1121
|
-
* - Name and email are hidden
|
|
1122
|
-
* - Only avatar is shown (40px)
|
|
1123
|
-
* - Tooltip shows name + email on hover/focus
|
|
1124
|
-
* - Logout button becomes icon-only
|
|
1125
|
-
* @default false
|
|
1126
|
-
*/
|
|
1127
|
-
compact?: boolean;
|
|
1128
|
-
}
|
|
1129
|
-
/**
|
|
1130
|
-
* SideNav Properties
|
|
1131
|
-
* Main container component that composes all navigation sections
|
|
1132
|
-
*/
|
|
1133
|
-
interface SideNavProps {
|
|
1134
|
-
/**
|
|
1135
|
-
* Width of the sidebar when expanded (pixels) - V1
|
|
1136
|
-
* @default 280
|
|
1137
|
-
*/
|
|
1138
|
-
width?: number;
|
|
1139
|
-
/**
|
|
1140
|
-
* Width of the sidebar when collapsed (pixels) - V2
|
|
1141
|
-
* @default 68
|
|
1142
|
-
*/
|
|
1143
|
-
collapsedWidth?: number;
|
|
1144
|
-
/**
|
|
1145
|
-
* Whether the sidebar is collapsed (controlled mode) - V2
|
|
1146
|
-
* When provided: Component is controlled (parent manages state)
|
|
1147
|
-
* When undefined: Component is uncontrolled (internal state)
|
|
1148
|
-
* @default undefined
|
|
1149
|
-
*/
|
|
1150
|
-
collapsed?: boolean;
|
|
1151
|
-
/**
|
|
1152
|
-
* Default collapsed state (uncontrolled mode only) - V2
|
|
1153
|
-
* Ignored if `collapsed` prop is provided
|
|
1154
|
-
* @default false
|
|
1155
|
-
*/
|
|
1156
|
-
defaultCollapsed?: boolean;
|
|
1157
|
-
/**
|
|
1158
|
-
* Callback fired when collapsed state changes - V2
|
|
1159
|
-
* Called after toggle button click or programmatic state change
|
|
1160
|
-
* @param collapsed - New collapsed state value
|
|
1161
|
-
*/
|
|
1162
|
-
onCollapseChange?: (collapsed: boolean) => void;
|
|
1163
|
-
/**
|
|
1164
|
-
* Duration of the collapse/expand width transition in ms - V2
|
|
1165
|
-
* @default 300
|
|
1166
|
-
*/
|
|
1167
|
-
transitionDuration?: number;
|
|
1168
|
-
/**
|
|
1169
|
-
* Whether to show tooltips on child items when collapsed - V2
|
|
1170
|
-
* Passed down via context to NavigationList and NavigationItem
|
|
1171
|
-
* @default true
|
|
1172
|
-
*/
|
|
1173
|
-
showTooltips?: boolean;
|
|
1174
|
-
/**
|
|
1175
|
-
* Position of the sidebar
|
|
1176
|
-
* @default 'left'
|
|
1177
|
-
*/
|
|
1178
|
-
position?: 'left' | 'right';
|
|
1179
|
-
/**
|
|
1180
|
-
* Whether to show border on the edge
|
|
1181
|
-
* @default true
|
|
1182
|
-
*/
|
|
1183
|
-
showBorder?: boolean;
|
|
1184
|
-
/**
|
|
1185
|
-
* Custom background color
|
|
1186
|
-
* @default theme.palette.background.paper
|
|
1187
|
-
*/
|
|
1188
|
-
backgroundColor?: string;
|
|
1189
|
-
/**
|
|
1190
|
-
* Child components (NavigationList, ConnectionStatus, AccountSection)
|
|
1191
|
-
*/
|
|
1192
|
-
children: ReactNode;
|
|
1193
|
-
/**
|
|
1194
|
-
* Additional CSS class name
|
|
1195
|
-
*/
|
|
1196
|
-
className?: string;
|
|
1197
|
-
/**
|
|
1198
|
-
* Accessibility label for the navigation
|
|
1199
|
-
* @default 'Main navigation'
|
|
1200
|
-
*/
|
|
1201
|
-
ariaLabel?: string;
|
|
1202
|
-
}
|
|
1203
|
-
/**
|
|
1204
|
-
* SideNav Header Properties
|
|
1205
|
-
* Displays app branding (logo + title) and an optional collapse toggle button
|
|
1206
|
-
*/
|
|
1207
|
-
interface SideNavHeaderProps {
|
|
1208
|
-
/**
|
|
1209
|
-
* App logo or icon element (e.g. an <img>, SVG, or MUI Icon)
|
|
1210
|
-
*/
|
|
1211
|
-
logo?: ReactNode;
|
|
1212
|
-
/**
|
|
1213
|
-
* App or brand title text displayed next to the logo
|
|
1214
|
-
*/
|
|
1215
|
-
title: string;
|
|
1216
|
-
/**
|
|
1217
|
-
* Whether to show the collapse toggle button
|
|
1218
|
-
* @default true
|
|
1219
|
-
*/
|
|
1220
|
-
showCollapseButton?: boolean;
|
|
1221
|
-
/**
|
|
1222
|
-
* Callback fired when the collapse button is clicked.
|
|
1223
|
-
* Wire this up to toggle sidebar expanded/collapsed state (V2).
|
|
1224
|
-
*/
|
|
1225
|
-
onCollapse?: () => void;
|
|
1226
|
-
/**
|
|
1227
|
-
* Callback fired when the logo/title branding area is clicked.
|
|
1228
|
-
* Use this for "go to home" navigation. Only the logo + title region
|
|
1229
|
-
* is clickable — the collapse button and surrounding padding are excluded.
|
|
1230
|
-
*/
|
|
1231
|
-
onLogoClick?: () => void;
|
|
1232
|
-
/**
|
|
1233
|
-
* Accessibility label for the header region
|
|
1234
|
-
* @default '{title} navigation header'
|
|
1235
|
-
*/
|
|
1236
|
-
ariaLabel?: string;
|
|
1237
|
-
/**
|
|
1238
|
-
* Whether sidebar is collapsed - V2
|
|
1239
|
-
* When true:
|
|
1240
|
-
* - Title text is hidden
|
|
1241
|
-
* - Logo remains visible (compact)
|
|
1242
|
-
* - Toggle button shows expand icon (→)
|
|
1243
|
-
* @default false
|
|
1244
|
-
*/
|
|
1245
|
-
collapsed?: boolean;
|
|
1246
|
-
}
|
|
1247
|
-
/**
|
|
1248
|
-
* Compound component slots for SideNav
|
|
1249
|
-
*/
|
|
1250
|
-
interface SideNavHeaderSlotProps {
|
|
1251
|
-
children: ReactNode;
|
|
1252
|
-
className?: string;
|
|
1253
|
-
}
|
|
1254
|
-
interface SideNavNavigationProps {
|
|
1255
|
-
children: ReactNode;
|
|
1256
|
-
className?: string;
|
|
1257
|
-
}
|
|
1258
|
-
interface SideNavFooterProps {
|
|
1259
|
-
children: ReactNode;
|
|
1260
|
-
className?: string;
|
|
1261
|
-
}
|
|
1262
|
-
|
|
1263
|
-
/**
|
|
1264
|
-
* SideNav Component
|
|
1265
|
-
* Main container for side navigation with compound components
|
|
1266
|
-
* V2: Added collapsed state support with animated transitions
|
|
1267
|
-
*/
|
|
1268
|
-
|
|
1269
|
-
/**
|
|
1270
|
-
* SideNav.Header compound component
|
|
1271
|
-
* Passes collapsed state and toggle handler to children
|
|
1272
|
-
*/
|
|
1273
|
-
declare const Header: React__default.NamedExoticComponent<SideNavHeaderSlotProps>;
|
|
1274
|
-
/**
|
|
1275
|
-
* SideNav.Navigation compound component
|
|
1276
|
-
* Passes collapsed state to children
|
|
1277
|
-
*/
|
|
1278
|
-
declare const Navigation: React__default.NamedExoticComponent<SideNavNavigationProps>;
|
|
1279
|
-
/**
|
|
1280
|
-
* SideNav.Footer compound component
|
|
1281
|
-
* Passes collapsed state to children
|
|
1282
|
-
*/
|
|
1283
|
-
declare const Footer: React__default.NamedExoticComponent<SideNavFooterProps>;
|
|
1284
|
-
/**
|
|
1285
|
-
* Main SideNav component with compound components
|
|
1286
|
-
* V2: Supports controlled/uncontrolled collapsed state
|
|
1287
|
-
*/
|
|
1288
|
-
interface SideNavComponent extends React__default.FC<SideNavProps> {
|
|
1289
|
-
Header: typeof Header;
|
|
1290
|
-
Navigation: typeof Navigation;
|
|
1291
|
-
Footer: typeof Footer;
|
|
1292
|
-
}
|
|
1293
|
-
declare const SideNav: SideNavComponent;
|
|
1294
|
-
|
|
1295
|
-
/**
|
|
1296
|
-
* SideNavHeader Component
|
|
1297
|
-
* Displays app branding (logo + title) and an optional collapse toggle button
|
|
1298
|
-
* V2: Supports collapsed state with compact logo-only view
|
|
1299
|
-
*/
|
|
1300
|
-
|
|
1301
|
-
/**
|
|
1302
|
-
* SideNavHeader Component
|
|
1303
|
-
*
|
|
1304
|
-
* Renders the app branding area at the top of the side navigation.
|
|
1305
|
-
* Includes an optional logo, a title, and an optional collapse toggle button.
|
|
1306
|
-
* V2: In collapsed state, shows logo stacked vertically above toggle button.
|
|
1307
|
-
*
|
|
1308
|
-
* If `onLogoClick` is provided, only the logo+title area is clickable
|
|
1309
|
-
* (e.g. to navigate back to the home page). The rest of the header
|
|
1310
|
-
* (collapse button, surrounding padding) does NOT trigger that callback.
|
|
1311
|
-
*/
|
|
1312
|
-
declare const SideNavHeader: React__default.NamedExoticComponent<SideNavHeaderProps>;
|
|
1313
|
-
|
|
1314
|
-
/**
|
|
1315
|
-
* NavigationList Component
|
|
1316
|
-
* Container for multiple navigation items with scroll support
|
|
1317
|
-
* V2: Passes collapsed state to navigation items
|
|
1318
|
-
*/
|
|
1319
|
-
|
|
1320
|
-
/**
|
|
1321
|
-
* NavigationList Component
|
|
1322
|
-
*/
|
|
1323
|
-
declare const NavigationList: React__default.NamedExoticComponent<NavigationListProps>;
|
|
1324
|
-
|
|
1325
|
-
/**
|
|
1326
|
-
* NavigationItem Component
|
|
1327
|
-
* Individual navigation menu item with icon, label, and interactive states
|
|
1328
|
-
* V2: Added collapsed state support with tooltips
|
|
1329
|
-
*/
|
|
1330
|
-
|
|
1331
|
-
/**
|
|
1332
|
-
* NavigationItem Component
|
|
1333
|
-
* V2: Supports collapsed state with tooltip
|
|
1334
|
-
*/
|
|
1335
|
-
declare const NavigationItem: React__default.NamedExoticComponent<NavigationItemProps>;
|
|
1336
|
-
|
|
1337
|
-
/**
|
|
1338
|
-
* ConnectionStatus Component
|
|
1339
|
-
* Displays connection status with pill-style indicator
|
|
1340
|
-
* V2: Supports compact mode for collapsed sidebar
|
|
1341
|
-
*/
|
|
1342
|
-
|
|
1343
|
-
/**
|
|
1344
|
-
* ConnectionStatus Component
|
|
1345
|
-
* V2: Supports compact mode
|
|
1346
|
-
*/
|
|
1347
|
-
declare const ConnectionStatus: React__default.NamedExoticComponent<ConnectionStatusProps>;
|
|
1348
|
-
|
|
1349
|
-
/**
|
|
1350
|
-
* AccountSection Component
|
|
1351
|
-
* Displays user account information with avatar, name, and logout
|
|
1352
|
-
* V2: Supports compact mode for collapsed sidebar
|
|
1353
|
-
*/
|
|
1354
|
-
|
|
1355
|
-
/**
|
|
1356
|
-
* AccountSection Component
|
|
1357
|
-
* V2: Supports compact mode
|
|
1358
|
-
*/
|
|
1359
|
-
declare const AccountSection: React__default.NamedExoticComponent<AccountSectionProps>;
|
|
1360
|
-
|
|
1361
|
-
interface TabProps extends Omit<TabProps$1, 'icon'> {
|
|
1362
|
-
badge?: number | string;
|
|
1363
|
-
badgeVariant?: 'default' | 'primary' | 'success' | 'error';
|
|
1364
|
-
}
|
|
1365
|
-
declare const Tab: React__default.FC<TabProps>;
|
|
1366
|
-
|
|
1367
|
-
interface MenuProps extends Omit<MenuProps$1, 'open'> {
|
|
1368
|
-
anchorEl?: HTMLElement | null;
|
|
1369
|
-
onClose: () => void;
|
|
1370
|
-
}
|
|
1371
|
-
declare const Menu: React__default.FC<MenuProps>;
|
|
1372
|
-
interface MenuItemProps {
|
|
1373
|
-
icon?: React__default.ReactNode;
|
|
1374
|
-
label: string;
|
|
1375
|
-
onClick?: () => void;
|
|
1376
|
-
disabled?: boolean;
|
|
1377
|
-
divider?: boolean;
|
|
1378
|
-
}
|
|
1379
|
-
declare const MenuItem: React__default.FC<MenuItemProps>;
|
|
1380
|
-
|
|
1381
|
-
interface PaginationProps extends Omit<PaginationProps$1, 'color'> {
|
|
1382
|
-
color?: 'primary' | 'secondary' | 'standard';
|
|
1383
|
-
}
|
|
1384
|
-
declare const Pagination: React__default.FC<PaginationProps>;
|
|
1385
|
-
|
|
1386
|
-
interface SelectorOption {
|
|
1387
|
-
id: string;
|
|
1388
|
-
name: string;
|
|
1389
|
-
description?: string;
|
|
1390
|
-
avatar?: string;
|
|
1391
|
-
icon?: React__default.ReactNode;
|
|
1392
|
-
disabled?: boolean;
|
|
1393
|
-
}
|
|
1394
|
-
interface SelectorProps {
|
|
1395
|
-
options: SelectorOption[];
|
|
1396
|
-
selectedId: string | null;
|
|
1397
|
-
onSelect: (id: string) => void;
|
|
1398
|
-
onCreate?: () => void;
|
|
1399
|
-
loading?: boolean;
|
|
1400
|
-
placeholder?: string;
|
|
1401
|
-
emptyMessage?: string;
|
|
1402
|
-
compact?: boolean;
|
|
1403
|
-
renderSelected?: (option: SelectorOption) => React__default.ReactNode;
|
|
1404
|
-
width?: number;
|
|
1405
|
-
}
|
|
1406
|
-
declare const Selector: React__default.FC<SelectorProps>;
|
|
1407
|
-
|
|
1408
|
-
type BadgeVariant = 'default' | 'primary' | 'success' | 'error';
|
|
1409
|
-
interface BadgeProps extends Omit<BadgeProps$1, 'color' | 'variant'> {
|
|
1410
|
-
variant?: BadgeVariant;
|
|
1411
|
-
children?: React__default.ReactNode;
|
|
1412
|
-
}
|
|
1413
|
-
declare const Badge: React__default.FC<BadgeProps>;
|
|
1414
|
-
|
|
1415
|
-
type ChipVariant = 'default' | 'active' | 'success' | 'error' | 'warning' | 'info';
|
|
1416
|
-
interface ChipVariantStyles {
|
|
1417
|
-
backgroundColor: string;
|
|
1418
|
-
color: string;
|
|
1419
|
-
hoverBackgroundColor: string;
|
|
1420
|
-
}
|
|
1421
|
-
/**
|
|
1422
|
-
* Resolve a Chip variant to its themed background/foreground/hover colors.
|
|
1423
|
-
*
|
|
1424
|
-
* Status variants (success/error/warning/info) use the `main` surface with
|
|
1425
|
-
* `contrastText` (typically white) so chips read as loud solid pills.
|
|
1426
|
-
* `default` is neutral grey; `active` uses the brand-selected background.
|
|
1427
|
-
*/
|
|
1428
|
-
declare function getChipVariantStyles(variant: ChipVariant, theme: Theme): ChipVariantStyles;
|
|
1429
|
-
|
|
1430
|
-
type ChipTone = 'default' | 'onGradient';
|
|
1431
|
-
interface ChipProps extends Omit<ChipProps$1, 'color' | 'variant'> {
|
|
1432
|
-
variant?: ChipVariant;
|
|
1433
|
-
/**
|
|
1434
|
-
* Visual tone overlay. `onGradient` styles the chip to read on a dark
|
|
1435
|
-
* gradient surface (white text, mono caps, translucent border + bg).
|
|
1436
|
-
* Positioning is the consumer's job.
|
|
1437
|
-
* @default 'default'
|
|
1438
|
-
*/
|
|
1439
|
-
tone?: ChipTone;
|
|
1440
|
-
}
|
|
1441
|
-
declare const Chip: React__default.FC<ChipProps>;
|
|
1442
|
-
|
|
1443
|
-
type StatusDotStatus = 'success' | 'error' | 'warning' | 'info' | 'primary' | 'neutral';
|
|
1444
|
-
interface StatusDotProps extends Omit<React__default.HTMLAttributes<HTMLSpanElement>, 'role'> {
|
|
1445
|
-
/** Which themed color to render. `neutral` uses a grey for idle/queued states. */
|
|
1446
|
-
status: StatusDotStatus;
|
|
1447
|
-
/** Diameter in pixels. @default 8 */
|
|
1448
|
-
size?: number;
|
|
1449
|
-
/**
|
|
1450
|
-
* Pulse animation for in-progress states (e.g., a running run). Respects
|
|
1451
|
-
* `prefers-reduced-motion` and falls back to a static dot.
|
|
1452
|
-
*/
|
|
1453
|
-
pulse?: boolean;
|
|
1454
|
-
/**
|
|
1455
|
-
* When provided, the dot becomes an accessible image with this label. When
|
|
1456
|
-
* omitted, the dot is marked `aria-hidden` — assume an adjacent element
|
|
1457
|
-
* carries the status semantics.
|
|
1458
|
-
*/
|
|
1459
|
-
'aria-label'?: string;
|
|
1460
|
-
}
|
|
1461
|
-
/**
|
|
1462
|
-
* StatusDot — a small colored circle indicating entity status.
|
|
1463
|
-
*
|
|
1464
|
-
* Use alongside a text label for a labeled status; use with `aria-label` to
|
|
1465
|
-
* make the dot itself a standalone accessible indicator.
|
|
1466
|
-
*
|
|
1467
|
-
* @example
|
|
1468
|
-
* ```tsx
|
|
1469
|
-
* // Labeled context — the dot is decorative
|
|
1470
|
-
* <>
|
|
1471
|
-
* <StatusDot status="success" />
|
|
1472
|
-
* <span>Succeeded</span>
|
|
1473
|
-
* </>
|
|
1474
|
-
*
|
|
1475
|
-
* // Standalone — dot carries the status meaning
|
|
1476
|
-
* <StatusDot status="info" pulse aria-label="Running" />
|
|
1477
|
-
* ```
|
|
1478
|
-
*/
|
|
1479
|
-
declare const StatusDot: React__default.FC<StatusDotProps>;
|
|
1480
|
-
|
|
1481
|
-
interface CopyChipProps {
|
|
1482
|
-
/** The text to display and copy to the clipboard. */
|
|
1483
|
-
text: string;
|
|
1484
|
-
/** Max width in pixels for the (ellipsized) text label. @default 260 */
|
|
1485
|
-
maxWidth?: number;
|
|
1486
|
-
/**
|
|
1487
|
-
* Accessible label for the button. Defaults to `Copy <text>`. Override when
|
|
1488
|
-
* the raw text would be unclear to a screen-reader user (e.g., long hex IDs).
|
|
1489
|
-
*/
|
|
1490
|
-
'aria-label'?: string;
|
|
1491
|
-
/** Tooltip copy shown before clicking. @default 'Copy' */
|
|
1492
|
-
tooltipLabel?: string;
|
|
1493
|
-
/** Tooltip copy shown after a successful copy. @default 'Copied' */
|
|
1494
|
-
tooltipCopiedLabel?: string;
|
|
1495
|
-
/** Fires after the clipboard write succeeds. */
|
|
1496
|
-
onCopy?: () => void;
|
|
1497
|
-
}
|
|
1498
|
-
/**
|
|
1499
|
-
* CopyChip — compact inline copy-to-clipboard control.
|
|
1500
|
-
*
|
|
1501
|
-
* Shows a monospace text label with an adjacent copy icon that toggles to a
|
|
1502
|
-
* check mark for a moment after a successful copy. Use in dense metadata
|
|
1503
|
-
* rows where an `IDBlock` would be visually too heavy; use `IDBlock` when
|
|
1504
|
-
* the identifier is the primary affordance on the surface and deserves a
|
|
1505
|
-
* full boxed treatment with snackbar feedback.
|
|
1506
|
-
*
|
|
1507
|
-
* @example
|
|
1508
|
-
* ```tsx
|
|
1509
|
-
* <CopyChip text="run_abc123" />
|
|
1510
|
-
* <CopyChip text={longHexId} aria-label="Copy workspace ID" onCopy={track} />
|
|
1511
|
-
* ```
|
|
1512
|
-
*/
|
|
1513
|
-
declare const CopyChip: React__default.FC<CopyChipProps>;
|
|
1514
|
-
|
|
1515
|
-
/**
|
|
1516
|
-
* Color variants for the RoleBadge component
|
|
1517
|
-
*/
|
|
1518
|
-
type RoleBadgeColor = 'primary' | 'secondary' | 'success' | 'error' | 'warning';
|
|
1519
|
-
/**
|
|
1520
|
-
* Size variants for the RoleBadge component
|
|
1521
|
-
*/
|
|
1522
|
-
type RoleBadgeSize = 'small' | 'medium';
|
|
1523
|
-
/**
|
|
1524
|
-
* RoleBadge component props
|
|
1525
|
-
*/
|
|
1526
|
-
interface RoleBadgeProps extends Omit<ChipProps$1, 'label' | 'variant' | 'color' | 'size'> {
|
|
1527
|
-
/**
|
|
1528
|
-
* The text content to display in the badge
|
|
1529
|
-
*/
|
|
1530
|
-
label: string;
|
|
1531
|
-
/**
|
|
1532
|
-
* The color theme of the badge
|
|
1533
|
-
* @default 'primary'
|
|
1534
|
-
*/
|
|
1535
|
-
color?: RoleBadgeColor;
|
|
1536
|
-
/**
|
|
1537
|
-
* The size of the badge
|
|
1538
|
-
* @default 'small'
|
|
1539
|
-
*/
|
|
1540
|
-
size?: RoleBadgeSize;
|
|
1541
|
-
}
|
|
1542
|
-
/**
|
|
1543
|
-
* RoleBadge - Pill-shaped badge component for displaying roles or status labels
|
|
1544
|
-
*
|
|
1545
|
-
* A reusable badge component that extends MUI Chip with a pill-shaped outline style.
|
|
1546
|
-
* Designed for displaying user roles, status indicators, or categorization labels.
|
|
1547
|
-
*
|
|
1548
|
-
* @example
|
|
1549
|
-
* ```tsx
|
|
1550
|
-
* // Basic usage
|
|
1551
|
-
* <RoleBadge label="Manager" />
|
|
1552
|
-
*
|
|
1553
|
-
* // With color variants
|
|
1554
|
-
* <RoleBadge label="Admin" color="error" />
|
|
1555
|
-
* <RoleBadge label="Active" color="success" />
|
|
1556
|
-
*
|
|
1557
|
-
* // With size variants
|
|
1558
|
-
* <RoleBadge label="Owner" size="medium" />
|
|
1559
|
-
* ```
|
|
1560
|
-
*
|
|
1561
|
-
* @see Figma node 17-3595 for design specifications
|
|
1562
|
-
*/
|
|
1563
|
-
declare const RoleBadge: React__default.FC<RoleBadgeProps>;
|
|
1564
|
-
|
|
1565
|
-
/**
|
|
1566
|
-
* IDBlock component props
|
|
1567
|
-
*/
|
|
1568
|
-
interface IDBlockProps {
|
|
1569
|
-
/**
|
|
1570
|
-
* The identifier value to display and copy
|
|
1571
|
-
*/
|
|
1572
|
-
id: string;
|
|
1573
|
-
/**
|
|
1574
|
-
* Label prefix text
|
|
1575
|
-
* @default 'ID'
|
|
1576
|
-
*/
|
|
1577
|
-
label?: string;
|
|
1578
|
-
/**
|
|
1579
|
-
* Entity type for accessibility (used in aria-label)
|
|
1580
|
-
* @default 'entity'
|
|
1581
|
-
*/
|
|
1582
|
-
entityType?: string;
|
|
1583
|
-
/**
|
|
1584
|
-
* Additional callback to execute after successful copy
|
|
1585
|
-
*/
|
|
1586
|
-
onCopy?: () => void;
|
|
1587
|
-
}
|
|
1588
|
-
/**
|
|
1589
|
-
* IDBlock - Read-only identifier display with integrated copy-to-clipboard button
|
|
1590
|
-
*
|
|
1591
|
-
* A component that displays an identifier (ID, account number, etc.) with a copy button.
|
|
1592
|
-
* Provides user feedback via an inline Snackbar when copy succeeds or fails.
|
|
1593
|
-
*
|
|
1594
|
-
* @example
|
|
1595
|
-
* ```tsx
|
|
1596
|
-
* // Basic usage
|
|
1597
|
-
* <IDBlock id="W1234567890" />
|
|
1598
|
-
*
|
|
1599
|
-
* // With custom label
|
|
1600
|
-
* <IDBlock id="ACC-9876543" label="Account ID" entityType="account" />
|
|
1601
|
-
*
|
|
1602
|
-
* // With callback
|
|
1603
|
-
* <IDBlock
|
|
1604
|
-
* id="DEPLOY-12345"
|
|
1605
|
-
* label="Deployment ID"
|
|
1606
|
-
* entityType="deployment"
|
|
1607
|
-
* onCopy={() => console.log('ID copied')}
|
|
1608
|
-
* />
|
|
1609
|
-
* ```
|
|
1610
|
-
*
|
|
1611
|
-
* @see Figma node 17-3596 for design specifications
|
|
1612
|
-
*/
|
|
1613
|
-
declare const IDBlock: React__default.FC<IDBlockProps>;
|
|
1614
|
-
|
|
1615
|
-
type TooltipProps = TooltipProps$1;
|
|
1616
|
-
declare const Tooltip: React__default.FC<TooltipProps>;
|
|
1617
|
-
|
|
1618
|
-
type ProgressVariant = 'linear' | 'circular';
|
|
1619
|
-
interface ProgressProps {
|
|
1620
|
-
variant?: ProgressVariant;
|
|
1621
|
-
value?: number;
|
|
1622
|
-
size?: number;
|
|
1623
|
-
thickness?: number;
|
|
1624
|
-
}
|
|
1625
|
-
declare const Progress: React__default.FC<ProgressProps>;
|
|
1626
|
-
|
|
1627
|
-
type AlertSeverity = 'success' | 'error' | 'warning' | 'info';
|
|
1628
|
-
interface AlertProps extends Omit<AlertProps$1, 'severity'> {
|
|
1629
|
-
severity?: AlertSeverity;
|
|
1630
|
-
/**
|
|
1631
|
-
* Title to display above the alert message
|
|
1632
|
-
*/
|
|
1633
|
-
title?: string;
|
|
1634
|
-
}
|
|
1635
|
-
declare const Alert: React__default.FC<AlertProps>;
|
|
1636
|
-
|
|
1637
|
-
interface SnackbarProps extends Omit<SnackbarProps$1, 'children'> {
|
|
1638
|
-
/**
|
|
1639
|
-
* Message to display in the snackbar
|
|
1640
|
-
*/
|
|
1641
|
-
message?: string;
|
|
1642
|
-
/**
|
|
1643
|
-
* Severity of the alert inside snackbar
|
|
1644
|
-
*/
|
|
1645
|
-
severity?: AlertSeverity;
|
|
1646
|
-
/**
|
|
1647
|
-
* Title to display in the alert (optional)
|
|
1648
|
-
*/
|
|
1649
|
-
title?: string;
|
|
1650
|
-
/**
|
|
1651
|
-
* Alert variant
|
|
1652
|
-
* @default 'filled'
|
|
1653
|
-
*/
|
|
1654
|
-
variant?: 'filled' | 'standard' | 'outlined';
|
|
1655
|
-
/**
|
|
1656
|
-
* Callback when snackbar is closed
|
|
1657
|
-
*/
|
|
1658
|
-
onClose?: () => void;
|
|
1659
|
-
/**
|
|
1660
|
-
* Children to render instead of message (allows custom content)
|
|
1661
|
-
* Must be a ReactElement to match MuiSnackbar requirements
|
|
1662
|
-
*/
|
|
1663
|
-
children?: React__default.ReactElement;
|
|
1664
|
-
}
|
|
1665
|
-
declare const Snackbar: React__default.FC<SnackbarProps>;
|
|
1666
|
-
|
|
1667
|
-
interface EmptyStateProps {
|
|
1668
|
-
title?: string;
|
|
1669
|
-
description?: string;
|
|
1670
|
-
icon?: React__default.ReactNode;
|
|
1671
|
-
action?: React__default.ReactNode;
|
|
1672
|
-
}
|
|
1673
|
-
declare const EmptyState: React__default.FC<EmptyStateProps>;
|
|
1674
|
-
|
|
1675
|
-
interface LoadingProps {
|
|
1676
|
-
message?: string;
|
|
1677
|
-
size?: number;
|
|
1678
|
-
fullScreen?: boolean;
|
|
1679
|
-
}
|
|
1680
|
-
declare const Loading: React__default.FC<LoadingProps>;
|
|
1681
|
-
|
|
1682
|
-
interface AppLoadingProps {
|
|
1683
|
-
/**
|
|
1684
|
-
* Loading message to display
|
|
1685
|
-
* @default "Loading..."
|
|
1686
|
-
*/
|
|
1687
|
-
message?: string;
|
|
1688
|
-
/**
|
|
1689
|
-
* Logo source URL or path
|
|
1690
|
-
* @default "/icons/logo.png"
|
|
1691
|
-
*/
|
|
1692
|
-
logo?: string;
|
|
1693
|
-
/**
|
|
1694
|
-
* Custom styles
|
|
1695
|
-
*/
|
|
1696
|
-
sx?: any;
|
|
1697
|
-
}
|
|
1698
|
-
/**
|
|
1699
|
-
* AppLoading component - Full-screen loading indicator with logo
|
|
1700
|
-
*
|
|
1701
|
-
* @example
|
|
1702
|
-
* ```tsx
|
|
1703
|
-
* <AppLoading message="Initializing application..." />
|
|
1704
|
-
* ```
|
|
1705
|
-
*/
|
|
1706
|
-
declare const AppLoading: React__default.FC<AppLoadingProps>;
|
|
1707
|
-
|
|
1708
|
-
interface CircularProgressProps extends CircularProgressProps$1 {
|
|
1709
|
-
/**
|
|
1710
|
-
* Size of the progress indicator
|
|
1711
|
-
* @default 40
|
|
1712
|
-
*/
|
|
1713
|
-
size?: number | string;
|
|
1714
|
-
/**
|
|
1715
|
-
* Thickness of the progress indicator
|
|
1716
|
-
* @default 4
|
|
1717
|
-
*/
|
|
1718
|
-
thickness?: number;
|
|
1719
|
-
}
|
|
1720
|
-
/**
|
|
1721
|
-
* CircularProgress component - wrapper around MUI CircularProgress
|
|
1722
|
-
*
|
|
1723
|
-
* @example
|
|
1724
|
-
* ```tsx
|
|
1725
|
-
* <CircularProgress size={40} thickness={4} />
|
|
1726
|
-
* ```
|
|
1727
|
-
*/
|
|
1728
|
-
declare const CircularProgress: React__default.FC<CircularProgressProps>;
|
|
1729
|
-
|
|
1730
|
-
type LogoSize = 'large' | 'medium' | 'small';
|
|
1731
|
-
type LogoProps = PropsWithChildren<{
|
|
1732
|
-
icon?: ReactElement;
|
|
1733
|
-
size?: LogoSize;
|
|
1734
|
-
}>;
|
|
1735
|
-
declare const Logo: ({ children, size, icon }: LogoProps) => react_jsx_runtime.JSX.Element;
|
|
1736
|
-
|
|
1737
|
-
interface DialogProps extends Omit<DialogProps$1, 'title'> {
|
|
1738
|
-
open: boolean;
|
|
1739
|
-
title: ReactNode;
|
|
1740
|
-
onClose: () => void;
|
|
1741
|
-
onSubmit?: () => void;
|
|
1742
|
-
submitLabel?: string;
|
|
1743
|
-
cancelLabel?: string;
|
|
1744
|
-
isLoading?: boolean;
|
|
1745
|
-
disableSubmit?: boolean;
|
|
1746
|
-
showActions?: boolean;
|
|
1747
|
-
headerAction?: ReactNode;
|
|
1748
|
-
fullWidth?: boolean;
|
|
1749
|
-
maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
1750
|
-
children: ReactNode;
|
|
1751
|
-
dividers?: boolean;
|
|
1752
|
-
confirmBeforeClose?: boolean;
|
|
1753
|
-
/**
|
|
1754
|
-
* Custom actions to render instead of default actions
|
|
1755
|
-
* If provided, showActions is ignored and custom actions are used
|
|
1756
|
-
*/
|
|
1757
|
-
customActions?: ReactNode;
|
|
1758
|
-
}
|
|
1759
|
-
declare const Dialog: React__default.FC<DialogProps>;
|
|
1760
|
-
|
|
1761
|
-
type DrawerWidthValue = number | string;
|
|
1762
|
-
/**
|
|
1763
|
-
* Per-breakpoint drawer widths. `xs` sets the base width (mobile-first);
|
|
1764
|
-
* `sm`/`md`/`lg`/`xl` override at and above the named MUI breakpoint.
|
|
1765
|
-
*/
|
|
1766
|
-
interface ResponsiveDrawerWidth {
|
|
1767
|
-
xs?: DrawerWidthValue;
|
|
1768
|
-
sm?: DrawerWidthValue;
|
|
1769
|
-
md?: DrawerWidthValue;
|
|
1770
|
-
lg?: DrawerWidthValue;
|
|
1771
|
-
xl?: DrawerWidthValue;
|
|
1772
|
-
}
|
|
1773
|
-
type DrawerWidth = DrawerWidthValue | ResponsiveDrawerWidth;
|
|
1774
|
-
/**
|
|
1775
|
-
* Resolve a `width` prop into a style object usable by `styled()`.
|
|
1776
|
-
*
|
|
1777
|
-
* - Number/string input returns a single `{ width }` rule.
|
|
1778
|
-
* - Object input produces a mobile-first base width (from `xs`, or
|
|
1779
|
-
* `defaultWidth` if `xs` is missing) plus breakpoint-scoped overrides
|
|
1780
|
-
* for each of sm/md/lg/xl that was provided.
|
|
1781
|
-
*/
|
|
1782
|
-
declare function resolveDrawerWidth(width: DrawerWidth | undefined, theme: Theme, defaultWidth?: DrawerWidthValue): Record<string, unknown> & {
|
|
1783
|
-
width?: DrawerWidthValue;
|
|
1784
|
-
};
|
|
1785
|
-
|
|
1786
|
-
interface DrawerProps extends Omit<DrawerProps$1, 'title'> {
|
|
1787
|
-
/**
|
|
1788
|
-
* Width of the drawer when open. Accepts a single value (number or CSS
|
|
1789
|
-
* string like `"100vw"`) or a responsive object keyed by MUI breakpoint
|
|
1790
|
-
* (`{ xs, sm, md, lg, xl }`). Responsive widths are mobile-first: `xs`
|
|
1791
|
-
* is the base, each named breakpoint overrides at that breakpoint and up.
|
|
1792
|
-
* @default 400 for temporary/persistent, 240 for permanent
|
|
1793
|
-
*/
|
|
1794
|
-
width?: DrawerWidth;
|
|
1795
|
-
/**
|
|
1796
|
-
* Width of the drawer when collapsed (mini variant)
|
|
1797
|
-
* @default 72
|
|
1798
|
-
*/
|
|
1799
|
-
miniWidth?: number;
|
|
1800
|
-
/**
|
|
1801
|
-
* Whether the drawer is in collapsed/mini state
|
|
1802
|
-
* @default false
|
|
1803
|
-
*/
|
|
1804
|
-
collapsed?: boolean;
|
|
1805
|
-
/**
|
|
1806
|
-
* Title to display in the drawer header
|
|
1807
|
-
*/
|
|
1808
|
-
title?: ReactNode;
|
|
1809
|
-
/**
|
|
1810
|
-
* Custom header content (replaces title if provided)
|
|
1811
|
-
*/
|
|
1812
|
-
header?: ReactNode;
|
|
1813
|
-
/**
|
|
1814
|
-
* Show close button in header
|
|
1815
|
-
* @default true for temporary variant, false for permanent
|
|
1816
|
-
*/
|
|
1817
|
-
showCloseButton?: boolean;
|
|
1818
|
-
/**
|
|
1819
|
-
* Tab labels for tabbed drawer content
|
|
1820
|
-
*/
|
|
1821
|
-
tabs?: string[];
|
|
1822
|
-
/**
|
|
1823
|
-
* Active tab index
|
|
1824
|
-
*/
|
|
1825
|
-
activeTab?: number;
|
|
1826
|
-
/**
|
|
1827
|
-
* Callback when tab changes
|
|
1828
|
-
*/
|
|
1829
|
-
onTabChange?: (index: number) => void;
|
|
1830
|
-
/**
|
|
1831
|
-
* Footer content (actions, buttons, etc.)
|
|
1832
|
-
*/
|
|
1833
|
-
footer?: ReactNode;
|
|
1834
|
-
/**
|
|
1835
|
-
* Props for drawer content container
|
|
1836
|
-
*/
|
|
1837
|
-
contentProps?: BoxProps;
|
|
1838
|
-
/**
|
|
1839
|
-
* Anchor position
|
|
1840
|
-
* @default 'right'
|
|
1841
|
-
*/
|
|
1842
|
-
anchor?: 'left' | 'right' | 'top' | 'bottom';
|
|
1843
|
-
/**
|
|
1844
|
-
* Top offset in pixels (e.g., for header + breadcrumbs)
|
|
1845
|
-
* @default 0
|
|
1846
|
-
*/
|
|
1847
|
-
topOffset?: number;
|
|
1848
|
-
}
|
|
1849
|
-
/**
|
|
1850
|
-
* Drawer component for navigation drawers and side panels
|
|
1851
|
-
* Can be used as a replacement for Dialog for better UX
|
|
1852
|
-
*
|
|
1853
|
-
* @example
|
|
1854
|
-
* ```tsx
|
|
1855
|
-
* // Simple drawer
|
|
1856
|
-
* <Drawer open={true} variant="temporary" width={400} title="Settings" onClose={handleClose}>
|
|
1857
|
-
* <Box p={2}>Content here</Box>
|
|
1858
|
-
* </Drawer>
|
|
1859
|
-
*
|
|
1860
|
-
* // Drawer with tabs
|
|
1861
|
-
* <Drawer
|
|
1862
|
-
* open={true}
|
|
1863
|
-
* variant="temporary"
|
|
1864
|
-
* width={600}
|
|
1865
|
-
* title="Edit Stream"
|
|
1866
|
-
* tabs={['General', 'Rules', 'Settings']}
|
|
1867
|
-
* activeTab={activeTab}
|
|
1868
|
-
* onTabChange={setActiveTab}
|
|
1869
|
-
* onClose={handleClose}
|
|
1870
|
-
* >
|
|
1871
|
-
* <Box p={2}>{tabContent}</Box>
|
|
1872
|
-
* </Drawer>
|
|
1873
|
-
* ```
|
|
1874
|
-
*/
|
|
1875
|
-
declare const Drawer: React__default.FC<DrawerProps>;
|
|
1876
|
-
|
|
1877
|
-
interface MetaFieldProps {
|
|
1878
|
-
/** Uppercase eyebrow label displayed above the value. */
|
|
1879
|
-
label: string;
|
|
1880
|
-
/** Value to display. String values get a `title` attribute for overflow tooltips. */
|
|
1881
|
-
value: ReactNode;
|
|
1882
|
-
/** Render the value in a monospace font (for IDs, durations, paths). */
|
|
1883
|
-
mono?: boolean;
|
|
1884
|
-
/**
|
|
1885
|
-
* Override the auto-generated `title` attribute. Useful when the value is a
|
|
1886
|
-
* ReactNode but you still want a hover tooltip, or to customize the string
|
|
1887
|
-
* shown on hover.
|
|
1888
|
-
*/
|
|
1889
|
-
title?: string;
|
|
1890
|
-
}
|
|
1891
|
-
/**
|
|
1892
|
-
* MetaField — a compact label-over-value column for metadata lists.
|
|
1893
|
-
*
|
|
1894
|
-
* Wraps its content in a min-width-0 flex column so it collapses cleanly
|
|
1895
|
-
* inside responsive grids. The value truncates with an ellipsis and shows
|
|
1896
|
-
* the full text on hover (for string values by default).
|
|
1897
|
-
*
|
|
1898
|
-
* @example
|
|
1899
|
-
* ```tsx
|
|
1900
|
-
* <MetaField label="Run ID" value="run_abc123" mono />
|
|
1901
|
-
* <MetaField label="Status" value={<StatusBadge status="ok" />} />
|
|
1902
|
-
* ```
|
|
1903
|
-
*/
|
|
1904
|
-
declare const MetaField: React__default.FC<MetaFieldProps>;
|
|
1905
|
-
|
|
1906
|
-
interface ScrollableRowProps {
|
|
1907
|
-
/** Row content. Rendered in a horizontally-scrolling flex container. */
|
|
1908
|
-
children: ReactNode;
|
|
1909
|
-
/** Accessible label for the left chevron. @default 'Scroll left' */
|
|
1910
|
-
leftLabel?: string;
|
|
1911
|
-
/** Accessible label for the right chevron. @default 'Scroll right' */
|
|
1912
|
-
rightLabel?: string;
|
|
1913
|
-
/**
|
|
1914
|
-
* Minimum nudge distance (px) when a chevron is clicked. The component
|
|
1915
|
-
* scrolls by max(minNudge, clientWidth * nudgeFraction). @default 160
|
|
1916
|
-
*/
|
|
1917
|
-
minNudge?: number;
|
|
1918
|
-
/** Fraction of the viewport scrolled per chevron click. @default 0.6 */
|
|
1919
|
-
nudgeFraction?: number;
|
|
1920
|
-
}
|
|
1921
|
-
/**
|
|
1922
|
-
* ScrollableRow — a horizontally-scrolling container that reveals chevron
|
|
1923
|
-
* buttons at the left and right edges only when content actually overflows.
|
|
1924
|
-
*
|
|
1925
|
-
* Works with any children (chips, cards, pills). Uses a `ResizeObserver` on
|
|
1926
|
-
* both the scroller and its children plus a `MutationObserver` to catch
|
|
1927
|
-
* children being added/removed, so the chevrons stay in sync with real
|
|
1928
|
-
* layout.
|
|
1929
|
-
*/
|
|
1930
|
-
declare const ScrollableRow: React__default.FC<ScrollableRowProps>;
|
|
1931
|
-
|
|
1932
|
-
interface SectionRowProps {
|
|
1933
|
-
/** Section title (e.g. "Published by alice"). Rendered as an h2-equivalent. */
|
|
1934
|
-
title: ReactNode;
|
|
1935
|
-
/** Optional sublabel below the title (e.g. "3 agents"). */
|
|
1936
|
-
subtitle?: ReactNode;
|
|
1937
|
-
/** Optional right-aligned slot in the header (e.g. a "See all →" link). */
|
|
1938
|
-
action?: ReactNode;
|
|
1939
|
-
/** Accessible labels for the scroll chevrons. */
|
|
1940
|
-
leftLabel?: string;
|
|
1941
|
-
rightLabel?: string;
|
|
1942
|
-
/** Tiles / cards rendered inside the horizontally-scrolling track. */
|
|
1943
|
-
children: ReactNode;
|
|
1944
|
-
}
|
|
1945
|
-
/**
|
|
1946
|
-
* SectionRow — header (title + subtitle + right-side action) on top of a
|
|
1947
|
-
* ScrollableRow track. Use for "category row" or "publisher row" layouts in
|
|
1948
|
-
* marketplace / library / dashboard contexts. The scroll mechanics and edge
|
|
1949
|
-
* chevrons come from ScrollableRow.
|
|
1950
|
-
*/
|
|
1951
|
-
declare function SectionRow({ title, subtitle, action, leftLabel, rightLabel, children, }: SectionRowProps): react_jsx_runtime.JSX.Element;
|
|
1952
|
-
|
|
1953
|
-
interface CarouselProps<T> {
|
|
1954
|
-
/** Slide data. Each entry is passed to `renderSlide`. */
|
|
1955
|
-
slides: T[];
|
|
1956
|
-
/** Render function for an individual slide. */
|
|
1957
|
-
renderSlide: (item: T, index: number) => ReactNode;
|
|
1958
|
-
/**
|
|
1959
|
-
* Stable per-slide React key. Always set this when `slides` can be reordered
|
|
1960
|
-
* or filtered; otherwise React will reuse the wrong slide's internal state
|
|
1961
|
-
* across renders. Defaults to the slide's array index when omitted.
|
|
1962
|
-
*/
|
|
1963
|
-
getKey?: (item: T, index: number) => Key;
|
|
1964
|
-
/** Slides visible in the viewport. @default 1 */
|
|
1965
|
-
slidesPerView?: number;
|
|
1966
|
-
/** Auto-advance every `autoplayDelayMs` while not hovered. @default true */
|
|
1967
|
-
autoplay?: boolean;
|
|
1968
|
-
/** Autoplay tick in milliseconds. @default 5000 */
|
|
1969
|
-
autoplayDelayMs?: number;
|
|
1970
|
-
/** Show dot indicators when more than one slide. @default true */
|
|
1971
|
-
showDots?: boolean;
|
|
1972
|
-
/** Show the `01 / 03`-style counter when more than one slide. @default true */
|
|
1973
|
-
showCounter?: boolean;
|
|
1974
|
-
/** Show prev/next chevrons when more than one slide. @default true */
|
|
1975
|
-
showArrows?: boolean;
|
|
1976
|
-
/** Pause autoplay while the pointer is over the carousel. @default true */
|
|
1977
|
-
pauseOnHover?: boolean;
|
|
1978
|
-
/** Accessible label for the surrounding region. */
|
|
1979
|
-
ariaLabel?: string;
|
|
1980
|
-
/** Fires with the new index whenever embla selects a slide. */
|
|
1981
|
-
onSelect?: (index: number) => void;
|
|
1982
|
-
/** Override the IconButton sx for the prev/next arrows. */
|
|
1983
|
-
arrowSx?: SxProps<Theme>;
|
|
1984
|
-
/** Override the dot color (inactive). Accepts any CSS color string. */
|
|
1985
|
-
dotColor?: string;
|
|
1986
|
-
/** Override the active dot color. Accepts any CSS color string. */
|
|
1987
|
-
dotActiveColor?: string;
|
|
1988
|
-
/** Escape hatch for advanced embla options. Most consumers don't need this. */
|
|
1989
|
-
emblaOptions?: EmblaOptionsType;
|
|
1990
|
-
}
|
|
1991
|
-
/**
|
|
1992
|
-
* Carousel — embla-carousel-based slide deck with autoplay, dots, counter,
|
|
1993
|
-
* prev/next arrows and pause-on-hover. Generic over slide payload type; the
|
|
1994
|
-
* caller decides the slide markup via `renderSlide`.
|
|
1995
|
-
*/
|
|
1996
|
-
declare function Carousel<T>({ slides, renderSlide, getKey, slidesPerView, autoplay, autoplayDelayMs, showDots, showCounter, showArrows, pauseOnHover, ariaLabel, onSelect, arrowSx, dotColor, dotActiveColor, emblaOptions, }: CarouselProps<T>): react_jsx_runtime.JSX.Element | null;
|
|
1997
|
-
|
|
1998
|
-
/** Number of distinct gradient palettes. Useful for sizing slide cycles deterministically. */
|
|
1999
|
-
declare const GRADIENT_PALETTE_COUNT: 6;
|
|
2000
|
-
interface GradientSurfaceProps {
|
|
2001
|
-
/**
|
|
2002
|
-
* Which palette to use. Any integer (positive or negative) — the value is
|
|
2003
|
-
* wrapped modulo the palette count, so callers can pass their own counter
|
|
2004
|
-
* (`rowIndex + tileIndex`, slide index, etc.) without worrying about range.
|
|
2005
|
-
*/
|
|
2006
|
-
index: number;
|
|
2007
|
-
/** Optional body rendered over the gradient + blobs. */
|
|
2008
|
-
children?: ReactNode;
|
|
2009
|
-
/** Style overrides on the surface. */
|
|
2010
|
-
sx?: SxProps<Theme>;
|
|
2011
|
-
}
|
|
2012
|
-
/**
|
|
2013
|
-
* GradientSurface — a positioned, gradient-painted surface with two soft blob
|
|
2014
|
-
* accents. Owns the brand palette cycle so consumers don't redeclare gradient
|
|
2015
|
-
* colors per route. Pair with absolute-positioned children for hero artwork.
|
|
2016
|
-
*/
|
|
2017
|
-
declare function GradientSurface({ index, children, sx }: GradientSurfaceProps): react_jsx_runtime.JSX.Element;
|
|
2018
|
-
|
|
2019
|
-
interface DefinitionRowProps {
|
|
2020
|
-
/** Optional leading icon (e.g. a scope or category glyph). */
|
|
2021
|
-
icon?: ReactNode;
|
|
2022
|
-
/** Primary label rendered on the left side. */
|
|
2023
|
-
label: ReactNode;
|
|
2024
|
-
/** Optional secondary line under the label (e.g. type, scope path). */
|
|
2025
|
-
sublabel?: ReactNode;
|
|
2026
|
-
/** Primary right-side content (e.g. `read`, `optional`). */
|
|
2027
|
-
value?: ReactNode;
|
|
2028
|
-
/** Secondary right-side line under the value (e.g. constraint, default). */
|
|
2029
|
-
hint?: ReactNode;
|
|
2030
|
-
/** Reduce vertical padding for compact lists. */
|
|
2031
|
-
dense?: boolean;
|
|
2032
|
-
/** Draw a bottom divider. The last row in a list never draws. @default true */
|
|
2033
|
-
divider?: boolean;
|
|
2034
|
-
}
|
|
2035
|
-
/**
|
|
2036
|
-
* DefinitionRow — `icon · label / sublabel … value / hint` row primitive
|
|
2037
|
-
* for description-list style content (scope tables, settings, key/value
|
|
2038
|
-
* panels).
|
|
2039
|
-
*/
|
|
2040
|
-
declare function DefinitionRow({ icon, label, sublabel, value, hint, dense, divider, }: DefinitionRowProps): react_jsx_runtime.JSX.Element;
|
|
2041
|
-
|
|
2042
|
-
type PanelDialogWidth = 'sm' | 'md' | 'lg' | 'xl';
|
|
2043
|
-
type PanelDialogSide = 'right' | 'center';
|
|
2044
|
-
type PanelDialogTransition = 'fade' | 'slide-up' | 'slide-left';
|
|
2045
|
-
interface PanelDialogProps {
|
|
2046
|
-
/** Controls visibility. */
|
|
2047
|
-
open: boolean;
|
|
2048
|
-
/** Fires when the user closes (close button, backdrop click, ESC). */
|
|
2049
|
-
onClose: () => void;
|
|
2050
|
-
/** Optional title rendered in the header. Used as the dialog accessible name when a string. */
|
|
2051
|
-
title?: ReactNode;
|
|
2052
|
-
/** Optional right-aligned slot in the header (e.g. install + share buttons). */
|
|
2053
|
-
headerActions?: ReactNode;
|
|
2054
|
-
/** Panel width. @default 'md' */
|
|
2055
|
-
width?: PanelDialogWidth;
|
|
2056
|
-
/** Where the panel docks. `right` slides in from the right edge; `center` is a regular centered panel. @default 'right' */
|
|
2057
|
-
side?: PanelDialogSide;
|
|
2058
|
-
/** Override the accessible name when `title` is not a string. */
|
|
2059
|
-
ariaLabel?: string;
|
|
2060
|
-
/**
|
|
2061
|
-
* Drop the header bar entirely (no title row, no border). The close button
|
|
2062
|
-
* still renders but floats absolute over the top-right of the body. Use when
|
|
2063
|
-
* the body content has its own hero / chrome.
|
|
2064
|
-
*/
|
|
2065
|
-
hideHeader?: boolean;
|
|
2066
|
-
/** Style overrides on the dialog paper (border-radius, shadow, width tweaks). */
|
|
2067
|
-
paperSx?: SxProps<Theme>;
|
|
2068
|
-
/** Style overrides on the modal backdrop (e.g. tint, blur). */
|
|
2069
|
-
backdropSx?: SxProps<Theme>;
|
|
2070
|
-
/**
|
|
2071
|
-
* Entry transition. Defaults to `slide-left` for `side='right'` and `fade`
|
|
2072
|
-
* for `side='center'`.
|
|
2073
|
-
*/
|
|
2074
|
-
transition?: PanelDialogTransition;
|
|
2075
|
-
/** Body content. */
|
|
2076
|
-
children: ReactNode;
|
|
2077
|
-
}
|
|
2078
|
-
/**
|
|
2079
|
-
* PanelDialog — a right-anchored (or centered) slide-in panel for detail
|
|
2080
|
-
* views, inspectors, and side sheets. Built on MUI Dialog; focus trap and
|
|
2081
|
-
* ESC-to-close come from MUI. Use Dialog for centered modal-with-Save/Cancel.
|
|
2082
|
-
*/
|
|
2083
|
-
declare function PanelDialog({ open, onClose, title, headerActions, width, side, ariaLabel, hideHeader, paperSx, backdropSx, transition, children, }: PanelDialogProps): react_jsx_runtime.JSX.Element;
|
|
2084
|
-
|
|
2085
|
-
interface SplitDialogContentProps {
|
|
2086
|
-
left: React__default.ReactNode;
|
|
2087
|
-
right: React__default.ReactNode;
|
|
2088
|
-
/** Width of the right (aside) column in px. @default 320 */
|
|
2089
|
-
rightWidth?: number;
|
|
2090
|
-
/** Viewport breakpoint (px) below which the layout collapses to one column. @default 860 */
|
|
2091
|
-
collapseBelow?: number;
|
|
2092
|
-
sx?: SxProps<Theme>;
|
|
2093
|
-
}
|
|
2094
|
-
/**
|
|
2095
|
-
* Two-column dialog body used by detail / info modals: primary content on
|
|
2096
|
-
* the left, sticky meta panel on the right. Collapses to a single column on
|
|
2097
|
-
* narrow viewports.
|
|
2098
|
-
*
|
|
2099
|
-
* Compose inside a `<PanelDialog>`:
|
|
2100
|
-
* <PanelDialog ...>
|
|
2101
|
-
* <SplitDialogContent left={...} right={...} />
|
|
2102
|
-
* </PanelDialog>
|
|
2103
|
-
*/
|
|
2104
|
-
declare const SplitDialogContent: React__default.FC<SplitDialogContentProps>;
|
|
2105
|
-
|
|
2106
|
-
type CardMediaProps = CardMediaProps$1;
|
|
2107
|
-
declare const CardMedia: React__default.FC<CardMediaProps>;
|
|
2108
|
-
type CardVariant = 'standard' | 'tinted' | 'outlined';
|
|
2109
|
-
interface CardProps extends Omit<CardProps$1, 'variant'> {
|
|
2110
|
-
/** Visual treatment. @default 'standard' */
|
|
2111
|
-
variant?: CardVariant;
|
|
2112
|
-
hoverable?: boolean;
|
|
2113
|
-
/**
|
|
2114
|
-
* Opt the card into being a real interactive element. When combined with
|
|
2115
|
-
* `onClick`, the root renders via MUI ButtonBase — focusable button,
|
|
2116
|
-
* Enter/Space activation, `:focus-visible` ring. When `clickable` is set
|
|
2117
|
-
* without `onClick`, only the pointer cursor changes (back-compat).
|
|
2118
|
-
*
|
|
2119
|
-
* `<Card onClick={...}>` WITHOUT `clickable` keeps a `<div>` root and just
|
|
2120
|
-
* forwards the click handler, so consumers using onClick for analytics or
|
|
2121
|
-
* non-clickable side effects are not silently turned into buttons.
|
|
2122
|
-
*/
|
|
2123
|
-
clickable?: boolean;
|
|
2124
|
-
}
|
|
2125
|
-
declare const Card: React__default.FC<CardProps>;
|
|
2126
|
-
declare const CardContent: React__default.FC<CardContentProps>;
|
|
2127
|
-
declare const CardHeader: React__default.FC<CardHeaderProps>;
|
|
2128
|
-
declare const CardActions: React__default.FC<CardActionsProps>;
|
|
2129
|
-
|
|
2130
|
-
type ListProps = ListProps$1;
|
|
2131
|
-
declare const List: React__default.FC<ListProps>;
|
|
2132
|
-
interface ListItemProps extends ListItemProps$1 {
|
|
2133
|
-
primary?: React__default.ReactNode;
|
|
2134
|
-
secondary?: React__default.ReactNode;
|
|
2135
|
-
icon?: React__default.ReactNode;
|
|
2136
|
-
action?: React__default.ReactNode;
|
|
2137
|
-
hoverable?: boolean;
|
|
2138
|
-
}
|
|
2139
|
-
declare const ListItem: React__default.FC<ListItemProps>;
|
|
2140
|
-
|
|
2141
|
-
interface AvatarProps extends AvatarProps$1 {
|
|
2142
|
-
size?: 'small' | 'medium' | 'large' | number;
|
|
2143
|
-
}
|
|
2144
|
-
declare const Avatar: React__default.FC<AvatarProps>;
|
|
2145
|
-
|
|
2146
|
-
interface TableProps extends TableProps$1 {
|
|
2147
|
-
stickyHeader?: boolean;
|
|
2148
|
-
}
|
|
2149
|
-
declare const Table: React__default.FC<TableProps>;
|
|
2150
|
-
interface TableHeaderProps {
|
|
2151
|
-
columns: Array<{
|
|
2152
|
-
id: string;
|
|
2153
|
-
label: string;
|
|
2154
|
-
sortable?: boolean;
|
|
2155
|
-
align?: 'left' | 'center' | 'right';
|
|
2156
|
-
}>;
|
|
2157
|
-
orderBy?: string;
|
|
2158
|
-
order?: 'asc' | 'desc';
|
|
2159
|
-
onSort?: (columnId: string) => void;
|
|
2160
|
-
}
|
|
2161
|
-
declare const TableHeader: React__default.FC<TableHeaderProps>;
|
|
2162
|
-
|
|
2163
|
-
interface BreadcrumbItem {
|
|
2164
|
-
label: string;
|
|
2165
|
-
href?: string;
|
|
2166
|
-
onClick?: () => void;
|
|
2167
|
-
}
|
|
2168
|
-
interface BreadcrumbsProps extends Omit<BreadcrumbsProps$1, 'children'> {
|
|
2169
|
-
items: BreadcrumbItem[];
|
|
2170
|
-
}
|
|
2171
|
-
declare const Breadcrumbs: React__default.FC<BreadcrumbsProps>;
|
|
2172
|
-
|
|
2173
|
-
interface AccordionProps extends Omit<AccordionProps$1, 'children'> {
|
|
2174
|
-
title: string;
|
|
2175
|
-
children: NonNullable<React__default.ReactNode>;
|
|
2176
|
-
defaultExpanded?: boolean;
|
|
2177
|
-
}
|
|
2178
|
-
declare const Accordion: React__default.FC<AccordionProps>;
|
|
2179
|
-
|
|
2180
|
-
interface PaperProps extends PaperProps$1 {
|
|
2181
|
-
variant?: 'elevation' | 'outlined';
|
|
2182
|
-
}
|
|
2183
|
-
declare const Paper: React__default.FC<PaperProps>;
|
|
2184
|
-
|
|
2185
|
-
interface DividerProps extends DividerProps$1 {
|
|
2186
|
-
variant?: 'fullWidth' | 'inset' | 'middle';
|
|
2187
|
-
}
|
|
2188
|
-
declare const Divider: React__default.FC<DividerProps>;
|
|
2189
|
-
|
|
2190
|
-
interface LinkProps extends LinkProps$1 {
|
|
2191
|
-
underline?: 'none' | 'hover' | 'always';
|
|
2192
|
-
}
|
|
2193
|
-
declare const Link: React__default.FC<LinkProps>;
|
|
2194
|
-
|
|
2195
|
-
interface AppBarProps extends AppBarProps$1 {
|
|
2196
|
-
height?: number;
|
|
2197
|
-
}
|
|
2198
|
-
declare const AppBar: React__default.FC<AppBarProps>;
|
|
2199
|
-
|
|
2200
|
-
interface CollapseProps extends CollapseProps$1 {
|
|
2201
|
-
/**
|
|
2202
|
-
* If `true`, the component will transition in
|
|
2203
|
-
*/
|
|
2204
|
-
in?: boolean;
|
|
2205
|
-
/**
|
|
2206
|
-
* The content to collapse
|
|
2207
|
-
*/
|
|
2208
|
-
children?: React__default.ReactNode;
|
|
2209
|
-
}
|
|
2210
|
-
/**
|
|
2211
|
-
* Collapse component - provides a collapse animation
|
|
2212
|
-
*
|
|
2213
|
-
* @example
|
|
2214
|
-
* ```tsx
|
|
2215
|
-
* <Collapse in={open}>
|
|
2216
|
-
* <Box>Collapsible content</Box>
|
|
2217
|
-
* </Collapse>
|
|
2218
|
-
* ```
|
|
2219
|
-
*/
|
|
2220
|
-
declare const Collapse: React__default.FC<CollapseProps>;
|
|
2221
|
-
|
|
2222
|
-
/**
|
|
2223
|
-
* Primary action configuration for EntityHeader
|
|
2224
|
-
*/
|
|
2225
|
-
interface PrimaryAction {
|
|
2226
|
-
/**
|
|
2227
|
-
* Button label text
|
|
2228
|
-
*/
|
|
2229
|
-
label: string;
|
|
2230
|
-
/**
|
|
2231
|
-
* Optional count to display as "Label (N)"
|
|
2232
|
-
*/
|
|
2233
|
-
count?: number;
|
|
2234
|
-
/**
|
|
2235
|
-
* Optional leading icon
|
|
2236
|
-
*/
|
|
2237
|
-
icon?: React__default.ReactNode;
|
|
2238
|
-
/**
|
|
2239
|
-
* Click handler for the button
|
|
2240
|
-
*/
|
|
2241
|
-
onClick?: () => void;
|
|
2242
|
-
}
|
|
2243
|
-
/**
|
|
2244
|
-
* EntityHeader component props
|
|
2245
|
-
*/
|
|
2246
|
-
interface EntityHeaderProps {
|
|
2247
|
-
/**
|
|
2248
|
-
* Primary title text (e.g., entity name)
|
|
2249
|
-
* @required
|
|
2250
|
-
*/
|
|
2251
|
-
title: string;
|
|
2252
|
-
/**
|
|
2253
|
-
* Secondary descriptive text below title
|
|
2254
|
-
*/
|
|
2255
|
-
subtitle?: string;
|
|
2256
|
-
/**
|
|
2257
|
-
* Role or status label - displays as RoleBadge pill
|
|
2258
|
-
*/
|
|
2259
|
-
role?: string;
|
|
2260
|
-
/**
|
|
2261
|
-
* Entity identifier - displays as IDBlock with copy action
|
|
2262
|
-
*/
|
|
2263
|
-
id?: string;
|
|
2264
|
-
/**
|
|
2265
|
-
* Main action button configuration
|
|
2266
|
-
*/
|
|
2267
|
-
primaryAction?: PrimaryAction;
|
|
2268
|
-
/**
|
|
2269
|
-
* Additional content rendered before the primary action button.
|
|
2270
|
-
* Accepts any ReactNode (buttons, dropdowns, etc.).
|
|
2271
|
-
*/
|
|
2272
|
-
startActions?: React__default.ReactNode;
|
|
2273
|
-
/**
|
|
2274
|
-
* Additional content rendered after the primary action button
|
|
2275
|
-
* but before the more-options icon button.
|
|
2276
|
-
* Accepts any ReactNode (buttons, dropdowns, etc.).
|
|
2277
|
-
*/
|
|
2278
|
-
endActions?: React__default.ReactNode;
|
|
2279
|
-
/**
|
|
2280
|
-
* Callback when ID is copied (internal copy + this callback)
|
|
2281
|
-
*/
|
|
2282
|
-
onCopyId?: () => void;
|
|
2283
|
-
/**
|
|
2284
|
-
* Callback when more options button clicked (receives event for anchor positioning)
|
|
2285
|
-
*/
|
|
2286
|
-
onMoreOptions?: (event: React__default.MouseEvent<HTMLElement>) => void;
|
|
2287
|
-
/**
|
|
2288
|
-
* HTML heading level for the title element
|
|
2289
|
-
* @default 'h2'
|
|
2290
|
-
*/
|
|
2291
|
-
headingLevel?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
2292
|
-
/**
|
|
2293
|
-
* Show bottom divider line
|
|
2294
|
-
* @default true
|
|
2295
|
-
*/
|
|
2296
|
-
divider?: boolean;
|
|
2297
|
-
}
|
|
2298
|
-
/**
|
|
2299
|
-
* EntityHeader - Composite UI component for entity (workspace, account, etc.) headers
|
|
2300
|
-
*
|
|
2301
|
-
* Displays an entity with title, optional subtitle, role badge, ID with copy action,
|
|
2302
|
-
* primary action button, and more options control. Matches Figma node 15-1258 specifications.
|
|
2303
|
-
*
|
|
2304
|
-
* @example
|
|
2305
|
-
* ```tsx
|
|
2306
|
-
* // Full example with all props
|
|
2307
|
-
* <EntityHeader
|
|
2308
|
-
* title="Game Co. WF 1769936170928"
|
|
2309
|
-
* subtitle="Gaming Demo Account"
|
|
2310
|
-
* role="Manager"
|
|
2311
|
-
* id="W1234567890"
|
|
2312
|
-
* primaryAction={{
|
|
2313
|
-
* label: 'Members',
|
|
2314
|
-
* count: 5,
|
|
2315
|
-
* icon: <AddCircleIcon />,
|
|
2316
|
-
* onClick: () => console.log('Open members')
|
|
2317
|
-
* }}
|
|
2318
|
-
* onCopyId={() => console.log('ID copied')}
|
|
2319
|
-
* onMoreOptions={(e) => setAnchorEl(e.currentTarget)}
|
|
2320
|
-
* />
|
|
2321
|
-
*
|
|
2322
|
-
* // Minimal example
|
|
2323
|
-
* <EntityHeader title="Simple Entity" />
|
|
2324
|
-
* ```
|
|
2325
|
-
*
|
|
2326
|
-
* @see Figma node 15-1258 for design specifications
|
|
2327
|
-
*/
|
|
2328
|
-
declare const EntityHeader: React__default.FC<EntityHeaderProps>;
|
|
2329
|
-
|
|
2330
|
-
type DeploymentEntityType = 'workspace' | 'stream' | 'deployment' | 'engagement' | 'agent';
|
|
2331
|
-
type DeploymentStatusIndicator = 'normal' | 'warning' | 'error' | 'disabled' | null;
|
|
2332
|
-
interface DeploymentCardAction {
|
|
2333
|
-
id: string;
|
|
2334
|
-
label: string;
|
|
2335
|
-
icon?: React__default.ReactNode;
|
|
2336
|
-
onClick?: () => void;
|
|
2337
|
-
highlight?: boolean;
|
|
2338
|
-
outlined?: boolean;
|
|
2339
|
-
}
|
|
2340
|
-
interface DeploymentDashboardCardProps {
|
|
2341
|
-
/** Entity type: drives chip color and icon (Figma 15-1725, 15-1276) */
|
|
2342
|
-
entityType: DeploymentEntityType;
|
|
2343
|
-
/** Primary title */
|
|
2344
|
-
title: string;
|
|
2345
|
-
/** Display id; when present shows "ID: {id}" with copy action */
|
|
2346
|
-
id?: string;
|
|
2347
|
-
/** Shown as "Created: …" */
|
|
2348
|
-
createdAt?: string;
|
|
2349
|
-
/** Shown as "Last Updated: …" */
|
|
2350
|
-
updatedAt?: string;
|
|
2351
|
-
/** Only for entityType === 'deployment'; shows Capacity label, progress bar, "X%" */
|
|
2352
|
-
capacity?: number;
|
|
2353
|
-
/** Action buttons/chips rendered inline on the right */
|
|
2354
|
-
actions?: DeploymentCardAction[];
|
|
2355
|
-
/** Status dot: green (normal), amber (warning), red (error), white/dim (disabled) */
|
|
2356
|
-
statusIndicator?: DeploymentStatusIndicator;
|
|
2357
|
-
/** Whether to show expand/collapse chevron on the left */
|
|
2358
|
-
expandable?: boolean;
|
|
2359
|
-
/** Controlled expanded state */
|
|
2360
|
-
expanded?: boolean;
|
|
2361
|
-
/** Called when chevron is clicked */
|
|
2362
|
-
onExpandToggle?: () => void;
|
|
2363
|
-
/** When copy ID is clicked */
|
|
2364
|
-
onCopyId?: () => void;
|
|
2365
|
-
/** Optional className */
|
|
2366
|
-
className?: string;
|
|
2367
|
-
/** Child content rendered inside the card border (used by tree to nest children) */
|
|
2368
|
-
children?: React__default.ReactNode;
|
|
2369
|
-
}
|
|
2370
|
-
declare const DeploymentDashboardCard: React__default.FC<DeploymentDashboardCardProps>;
|
|
2371
|
-
|
|
2372
|
-
/**
|
|
2373
|
-
* Describes a single item inside {@link DeploymentEntityContextMenu}.
|
|
2374
|
-
*
|
|
2375
|
-
* Items can be action rows (icon + label), toggle rows (switch + label),
|
|
2376
|
-
* or visual dividers. Use the pre-built `contextMenuItems` factories
|
|
2377
|
-
* for standard deployment-entity actions.
|
|
2378
|
-
*
|
|
2379
|
-
* @see Figma 11-1102
|
|
2380
|
-
*/
|
|
2381
|
-
interface ContextMenuItem {
|
|
2382
|
-
/** Unique key used for React reconciliation */
|
|
2383
|
-
id: string;
|
|
2384
|
-
/** Display label shown next to the icon */
|
|
2385
|
-
label: string;
|
|
2386
|
-
/** Optional leading icon (24 × 24) */
|
|
2387
|
-
icon?: React__default.ReactNode;
|
|
2388
|
-
/** Click handler — called when an action item is selected */
|
|
2389
|
-
onClick?: () => void;
|
|
2390
|
-
/**
|
|
2391
|
-
* Item variant:
|
|
2392
|
-
* - `'action'` (default) — clickable row with icon + label
|
|
2393
|
-
* - `'toggle'` — switch on left + label, controlled by `enableChecked` / `onEnableChange`
|
|
2394
|
-
* - `'divider'` — horizontal separator (label is ignored)
|
|
2395
|
-
*/
|
|
2396
|
-
type?: 'action' | 'toggle' | 'divider';
|
|
2397
|
-
/**
|
|
2398
|
-
* When `true` the item renders with a blue highlight background
|
|
2399
|
-
* (Figma blue-50 / blue-100 tokens). Used for the "Agent Flow Visualization" row.
|
|
2400
|
-
* @default false
|
|
2401
|
-
*/
|
|
2402
|
-
highlighted?: boolean;
|
|
2403
|
-
}
|
|
2404
|
-
/** Pre-built item factories for common deployment entity actions (Figma 11-1102) */
|
|
2405
|
-
declare const contextMenuItems: {
|
|
2406
|
-
/** Add Engagement action (Add Circle icon) */
|
|
2407
|
-
readonly addEngagement: (onClick: () => void) => ContextMenuItem;
|
|
2408
|
-
/** Add Agent action (Add Circle icon) */
|
|
2409
|
-
readonly addAgent: (onClick: () => void) => ContextMenuItem;
|
|
2410
|
-
/** Add Stream action (Add Circle icon) */
|
|
2411
|
-
readonly addStream: (onClick: () => void) => ContextMenuItem;
|
|
2412
|
-
/** Edit action (Pen / Edit icon) */
|
|
2413
|
-
readonly edit: (onClick: () => void) => ContextMenuItem;
|
|
2414
|
-
/** Copy ID action (Copy icon) */
|
|
2415
|
-
readonly copyId: (onClick: () => void) => ContextMenuItem;
|
|
2416
|
-
/** Agent Flow Visualization — highlighted action (SmartToy icon) */
|
|
2417
|
-
readonly agentFlowVisualization: (onClick: () => void) => ContextMenuItem;
|
|
2418
|
-
/** View Logs action (Document / Description icon) */
|
|
2419
|
-
readonly viewLogs: (onClick: () => void) => ContextMenuItem;
|
|
2420
|
-
/** Horizontal divider between sections */
|
|
2421
|
-
readonly divider: () => ContextMenuItem;
|
|
2422
|
-
/** Enable toggle row (switch on left + label) */
|
|
2423
|
-
readonly enable: () => ContextMenuItem;
|
|
2424
|
-
/** Settings action (Settings / Gear icon) */
|
|
2425
|
-
readonly settings: (onClick: () => void) => ContextMenuItem;
|
|
2426
|
-
};
|
|
2427
|
-
|
|
2428
|
-
interface DeploymentEntityContextMenuProps {
|
|
2429
|
-
/** Controlled open state */
|
|
2430
|
-
open: boolean;
|
|
2431
|
-
/** Anchor element for menu position */
|
|
2432
|
-
anchorEl: HTMLElement | null;
|
|
2433
|
-
/** Callback when the menu closes */
|
|
2434
|
-
onClose: () => void;
|
|
2435
|
-
/** Menu items to render (use contextMenuItems helpers to build) */
|
|
2436
|
-
items: ContextMenuItem[];
|
|
2437
|
-
/** Whether to show an "Enable" row with toggle at the bottom (legacy — prefer inline toggle item) */
|
|
2438
|
-
enableToggle?: boolean;
|
|
2439
|
-
/** Toggle checked state */
|
|
2440
|
-
enableChecked?: boolean;
|
|
2441
|
-
/** Toggle callback */
|
|
2442
|
-
onEnableChange?: (checked: boolean) => void;
|
|
2443
|
-
}
|
|
2444
|
-
/**
|
|
2445
|
-
* Floating context menu for deployment entities.
|
|
2446
|
-
*
|
|
2447
|
-
* Use the `contextMenuItems` factory to compose your menu. Supports action items,
|
|
2448
|
-
* dividers, toggle rows, and highlighted (active-state) items.
|
|
2449
|
-
*
|
|
2450
|
-
* @see {@link https://www.figma.com/design/xky11VbkkFcgZLwZE8BdCN/ROB?node-id=11-1102 Figma 11-1102}
|
|
2451
|
-
*/
|
|
2452
|
-
declare const DeploymentEntityContextMenu: React__default.FC<DeploymentEntityContextMenuProps>;
|
|
2453
|
-
|
|
2454
|
-
interface DeploymentTreeNode {
|
|
2455
|
-
id: string;
|
|
2456
|
-
entityType: DeploymentEntityType;
|
|
2457
|
-
title: string;
|
|
2458
|
-
idDisplay?: string;
|
|
2459
|
-
createdAt?: string;
|
|
2460
|
-
updatedAt?: string;
|
|
2461
|
-
capacity?: number;
|
|
2462
|
-
actions?: DeploymentCardAction[];
|
|
2463
|
-
statusIndicator?: DeploymentStatusIndicator;
|
|
2464
|
-
children?: DeploymentTreeNode[];
|
|
2465
|
-
expanded?: boolean;
|
|
2466
|
-
}
|
|
2467
|
-
interface DeploymentDashboardTreeProps {
|
|
2468
|
-
/** Tree of entities */
|
|
2469
|
-
nodes: DeploymentTreeNode[];
|
|
2470
|
-
/** When a row's expand is toggled */
|
|
2471
|
-
onExpandToggle?: (nodeId: string) => void;
|
|
2472
|
-
/** When a card's copy-ID button is clicked */
|
|
2473
|
-
onCopyId?: (nodeId: string) => void;
|
|
2474
|
-
/** Override row content; default: render DeploymentDashboardCard from node data */
|
|
2475
|
-
renderCard?: (node: DeploymentTreeNode) => React__default.ReactNode;
|
|
2476
|
-
}
|
|
2477
|
-
declare const DeploymentDashboardTree: React__default.FC<DeploymentDashboardTreeProps>;
|
|
2478
|
-
|
|
2479
|
-
/**
|
|
2480
|
-
* Backdrop/background panel for the deployment list (Figma 15-1325).
|
|
2481
|
-
* Wraps the deployment tree or list in a rounded, light surface with a subtle border
|
|
2482
|
-
* so the list has a clear visual container.
|
|
2483
|
-
*/
|
|
2484
|
-
interface DeploymentDashboardPanelProps {
|
|
2485
|
-
/** Content (e.g. DeploymentDashboardTree or a list of DeploymentDashboardCards) */
|
|
2486
|
-
children: React__default.ReactNode;
|
|
2487
|
-
/** Optional className */
|
|
2488
|
-
className?: string;
|
|
2489
|
-
/** Optional padding override; default uses theme spacing */
|
|
2490
|
-
padding?: number | string;
|
|
2491
|
-
}
|
|
2492
|
-
declare const DeploymentDashboardPanel: React__default.FC<DeploymentDashboardPanelProps>;
|
|
2493
|
-
|
|
2494
|
-
/** All supported workflow node types */
|
|
2495
|
-
type WorkflowNodeType = 'start' | 'input' | 'stream' | 'rafts' | 'cubbies' | 'events' | 'trigger' | 'action' | 'aiModel' | 'aiAgent' | 'condition' | 'output' | 'end' | 'parallel' | 'merge';
|
|
2496
|
-
interface WorkflowNodeProps extends Omit<PaperProps$1, 'title'> {
|
|
2497
|
-
/** The workflow node type — drives accent color, default icon, and badge label */
|
|
2498
|
-
nodeType: WorkflowNodeType;
|
|
2499
|
-
/** Primary title displayed in the node */
|
|
2500
|
-
title: string;
|
|
2501
|
-
/** Optional description text below the title */
|
|
2502
|
-
description?: string;
|
|
2503
|
-
/** Override the default icon for this node type */
|
|
2504
|
-
icon?: React__default.ReactNode;
|
|
2505
|
-
/** Override the default badge label for this node type */
|
|
2506
|
-
badgeLabel?: string;
|
|
2507
|
-
/** Whether the node is currently selected (highlights border with accent color) */
|
|
2508
|
-
selected?: boolean;
|
|
2509
|
-
/** Optional className */
|
|
2510
|
-
className?: string;
|
|
2511
|
-
/** Renders left/right connector dots to match the design spec */
|
|
2512
|
-
showSideDots?: boolean;
|
|
2513
|
-
}
|
|
2514
|
-
/** Human-readable labels for each node type (matches Figma badge text) */
|
|
2515
|
-
declare const WORKFLOW_NODE_LABELS: Record<WorkflowNodeType, string>;
|
|
2516
|
-
/** Shared elevation shadow for workflow node cards and connector handles (Figma 277-8244) */
|
|
2517
|
-
declare const WORKFLOW_NODE_SHADOW = "0px 1px 3px rgba(0, 0, 0, 0.1), 0px 1px 2px rgba(0, 0, 0, 0.1)";
|
|
2518
|
-
/**
|
|
2519
|
-
* WorkflowNode — visual card for a workflow editor node.
|
|
2520
|
-
*
|
|
2521
|
-
* Renders a card with a colored left border strip, title, optional description,
|
|
2522
|
-
* and a type badge/chip. Designed to integrate with FlowEditor (ReactFlow)
|
|
2523
|
-
* via the WorkflowNodeHandle wrapper.
|
|
2524
|
-
*
|
|
2525
|
-
* @example
|
|
2526
|
-
* ```tsx
|
|
2527
|
-
* <WorkflowNode
|
|
2528
|
-
* nodeType="trigger"
|
|
2529
|
-
* title="HTTP Trigger"
|
|
2530
|
-
* description="Listens for incoming webhook calls"
|
|
2531
|
-
* />
|
|
2532
|
-
* ```
|
|
2533
|
-
*/
|
|
2534
|
-
declare const WorkflowNode: React__default.FC<WorkflowNodeProps>;
|
|
2535
|
-
|
|
2536
|
-
interface WorkflowTopBarProps extends Omit<BoxProps$1, 'title'> {
|
|
2537
|
-
/** Heading shown at the left side of the bar. */
|
|
2538
|
-
title?: string;
|
|
2539
|
-
/** Job identifier displayed in the Job ID field. */
|
|
2540
|
-
executionId: string;
|
|
2541
|
-
/** Label shown above the job ID input. Defaults to "Job ID". */
|
|
2542
|
-
executionIdLabel?: string;
|
|
2543
|
-
/** Called when the job ID value changes. */
|
|
2544
|
-
onExecutionIdChange?: (value: string) => void;
|
|
2545
|
-
/** Called when the job ID clear action is pressed. */
|
|
2546
|
-
onClearExecutionId?: () => void;
|
|
2547
|
-
/** Submit button label. */
|
|
2548
|
-
submitLabel?: string;
|
|
2549
|
-
/** Called when submit is pressed. */
|
|
2550
|
-
onSubmit?: () => void;
|
|
2551
|
-
/** Inspector toggle button label. */
|
|
2552
|
-
inspectorLabel?: string;
|
|
2553
|
-
/** Called when inspector toggle is pressed. */
|
|
2554
|
-
onInspectorToggle?: () => void;
|
|
2555
|
-
/** Called when close is pressed. */
|
|
2556
|
-
onClose?: () => void;
|
|
2557
|
-
/** Hides/shows the inspector toggle button. */
|
|
2558
|
-
showInspectorToggle?: boolean;
|
|
2559
|
-
/** Hides/shows the close icon action. */
|
|
2560
|
-
showCloseButton?: boolean;
|
|
2561
|
-
}
|
|
2562
|
-
/**
|
|
2563
|
-
* WorkflowTopBar
|
|
2564
|
-
*
|
|
2565
|
-
* Top chrome bar for workflow canvas screens based on Figma 277:8006.
|
|
2566
|
-
*/
|
|
2567
|
-
declare const WorkflowTopBar: React__default.FC<WorkflowTopBarProps>;
|
|
2568
|
-
|
|
2569
|
-
interface WorkflowSideInspectorProps extends PaperProps$1 {
|
|
2570
|
-
/** Controls panel visibility for simple layouts. */
|
|
2571
|
-
open?: boolean;
|
|
2572
|
-
/** Header title. */
|
|
2573
|
-
title?: string;
|
|
2574
|
-
/** Selected node headline. */
|
|
2575
|
-
nodeTitle?: string;
|
|
2576
|
-
/** Selected node description. */
|
|
2577
|
-
nodeDescription?: string;
|
|
2578
|
-
/** Selected node type for the colored tag. */
|
|
2579
|
-
nodeType?: WorkflowNodeType;
|
|
2580
|
-
/** Input field value shown in details section. */
|
|
2581
|
-
inputValue?: string;
|
|
2582
|
-
/** Output field value shown in details section. */
|
|
2583
|
-
outputValue?: string;
|
|
2584
|
-
/** Cubby ID value shown in copy button. */
|
|
2585
|
-
cubbyId?: string;
|
|
2586
|
-
/** Timestamp value shown in metadata section. */
|
|
2587
|
-
timestamp?: string;
|
|
2588
|
-
/** Duration value shown in metadata section. */
|
|
2589
|
-
duration?: string;
|
|
2590
|
-
/** Whether to show the Input field in the details section. Defaults to true. */
|
|
2591
|
-
showInput?: boolean;
|
|
2592
|
-
/** Whether to show the Output field in the details section. Defaults to true. */
|
|
2593
|
-
showOutput?: boolean;
|
|
2594
|
-
/** Whether to show the Timestamp field in the metadata section. Defaults to true. */
|
|
2595
|
-
showTimestamp?: boolean;
|
|
2596
|
-
/** Whether to show the Duration field in the metadata section. Defaults to true. */
|
|
2597
|
-
showDuration?: boolean;
|
|
2598
|
-
/** Bottom CTA label. Set to `undefined` or `null` to hide the button. */
|
|
2599
|
-
actionLabel?: string | null;
|
|
2600
|
-
/** Called when close button is pressed. */
|
|
2601
|
-
onClose?: () => void;
|
|
2602
|
-
/** Called when cubby copy button is pressed. */
|
|
2603
|
-
onCopyCubbyId?: () => void;
|
|
2604
|
-
/** Called when bottom CTA is pressed. */
|
|
2605
|
-
onAction?: () => void;
|
|
2606
|
-
}
|
|
2607
|
-
/**
|
|
2608
|
-
* WorkflowSideInspector
|
|
2609
|
-
*
|
|
2610
|
-
* Right-side inspector panel based on Figma 277:8100.
|
|
2611
|
-
*/
|
|
2612
|
-
declare const WorkflowSideInspector: React__default.FC<WorkflowSideInspectorProps>;
|
|
2613
|
-
|
|
2614
|
-
interface WorkflowTimeBarProps extends BoxProps$1 {
|
|
2615
|
-
/** Elapsed time label shown above the progress line. */
|
|
2616
|
-
elapsedTime?: string;
|
|
2617
|
-
/** Progress from 0 to 100. */
|
|
2618
|
-
progress?: number;
|
|
2619
|
-
/** Current step index for the step indicator. */
|
|
2620
|
-
currentStep?: number;
|
|
2621
|
-
/** Total number of steps for the step indicator. */
|
|
2622
|
-
totalSteps?: number;
|
|
2623
|
-
/** Available speed options (e.g. 0.5x, 1x, 2x). */
|
|
2624
|
-
speedOptions?: number[];
|
|
2625
|
-
/** Currently selected speed value. */
|
|
2626
|
-
selectedSpeed?: number;
|
|
2627
|
-
/** Called when stop is pressed. */
|
|
2628
|
-
onStop?: () => void;
|
|
2629
|
-
/** Called when previous step is pressed. */
|
|
2630
|
-
onPreviousStep?: () => void;
|
|
2631
|
-
/** Called when next step is pressed. */
|
|
2632
|
-
onNextStep?: () => void;
|
|
2633
|
-
/** Called when a speed option is selected. */
|
|
2634
|
-
onSpeedChange?: (speed: number) => void;
|
|
2635
|
-
/** Called when refresh is pressed. */
|
|
2636
|
-
onReset?: () => void;
|
|
2637
|
-
}
|
|
2638
|
-
/**
|
|
2639
|
-
* WorkflowTimeBar
|
|
2640
|
-
*
|
|
2641
|
-
* Bottom chrome bar for workflow playback controls based on Figma 277:8087.
|
|
2642
|
-
*/
|
|
2643
|
-
declare const WorkflowTimeBar: React__default.FC<WorkflowTimeBarProps>;
|
|
2644
|
-
|
|
2645
|
-
declare const ActivityAppIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2646
|
-
|
|
2647
|
-
declare const LeftArrowIcon: (props: SvgIconProps) => react_jsx_runtime.JSX.Element;
|
|
2648
|
-
|
|
2649
|
-
declare const RightArrowIcon: (props: SvgIconProps) => react_jsx_runtime.JSX.Element;
|
|
2650
|
-
|
|
2651
|
-
declare const AvatarIcon: (props: SvgIconProps) => react_jsx_runtime.JSX.Element;
|
|
2652
|
-
|
|
2653
|
-
declare const BarTrackingIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2654
|
-
|
|
2655
|
-
declare const CereIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2656
|
-
|
|
2657
|
-
declare const ClockIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2658
|
-
|
|
2659
|
-
declare const CloudFlashIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2660
|
-
|
|
2661
|
-
declare const DecentralizedServerIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2662
|
-
|
|
2663
|
-
declare const DiscordIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2664
|
-
|
|
2665
|
-
declare const DownloadIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2666
|
-
|
|
2667
|
-
declare const FilledFolderIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2668
|
-
|
|
2669
|
-
declare const FolderIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2670
|
-
|
|
2671
|
-
declare const GithubLogoIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2672
|
-
|
|
2673
|
-
declare const ShareIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2674
|
-
|
|
2675
|
-
declare const StorageAppIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2676
|
-
|
|
2677
|
-
declare const UploadFileIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2678
|
-
|
|
2679
|
-
declare const UploadFolderIcon: React$1.MemoExoticComponent<(props: SvgIconProps) => react_jsx_runtime.JSX.Element>;
|
|
2680
|
-
|
|
2681
|
-
type MarkdownProps = {
|
|
2682
|
-
children?: string;
|
|
2683
|
-
content?: string;
|
|
2684
|
-
};
|
|
2685
|
-
declare const Markdown: ({ content, children }: MarkdownProps) => react_jsx_runtime.JSX.Element;
|
|
2686
|
-
|
|
2687
|
-
interface OnboardingContextType {
|
|
2688
|
-
isOnboardingActive: boolean;
|
|
2689
|
-
startOnboarding: () => void;
|
|
2690
|
-
stopOnboarding: () => void;
|
|
2691
|
-
restartOnboarding: () => void;
|
|
2692
|
-
}
|
|
2693
|
-
declare const useOnboarding: () => OnboardingContextType;
|
|
2694
|
-
declare const OnboardingProvider: ({ children }: {
|
|
2695
|
-
children: ReactNode;
|
|
2696
|
-
}) => react_jsx_runtime.JSX.Element;
|
|
2697
|
-
|
|
2698
|
-
type TruncateProps = AriaAttributes & {
|
|
2699
|
-
text: string;
|
|
2700
|
-
maxLength?: number;
|
|
2701
|
-
endingLength?: number;
|
|
2702
|
-
variant?: 'text' | 'email' | 'hex';
|
|
2703
|
-
};
|
|
2704
|
-
declare const Truncate: ({ text, variant, maxLength, endingLength, ...props }: TruncateProps) => react_jsx_runtime.JSX.Element;
|
|
2705
|
-
|
|
2706
|
-
type BytesSizeProps = {
|
|
2707
|
-
bytes: number;
|
|
2708
|
-
};
|
|
2709
|
-
declare const BytesSize: ({ bytes }: BytesSizeProps) => react_jsx_runtime.JSX.Element;
|
|
2710
|
-
|
|
2711
|
-
type QRCodeProps = Omit<QRCodeProps$1, 'ref'>;
|
|
2712
|
-
declare const QRCode: React$1.ForwardRefExoticComponent<QRCodeProps & React$1.RefAttributes<SVGElement>>;
|
|
2713
|
-
|
|
2714
|
-
type ChartWidgetHistoryRecord = {
|
|
2715
|
-
date: Date;
|
|
2716
|
-
value: number;
|
|
2717
|
-
};
|
|
2718
|
-
type ChartWidgetProps = {
|
|
2719
|
-
title: string;
|
|
2720
|
-
value?: ReactNode;
|
|
2721
|
-
history?: ChartWidgetHistoryRecord[];
|
|
2722
|
-
formatValue?: (value: number) => string;
|
|
2723
|
-
};
|
|
2724
|
-
declare const ChartWidget: ({ title, value, history, formatValue, }: ChartWidgetProps) => react_jsx_runtime.JSX.Element;
|
|
2725
|
-
|
|
2726
|
-
type MetricsHistoryRecord = {
|
|
2727
|
-
storedBytes: number;
|
|
2728
|
-
transferredBytes: number;
|
|
2729
|
-
puts: number;
|
|
2730
|
-
gets: number;
|
|
2731
|
-
recordTime: Date;
|
|
2732
|
-
};
|
|
2733
|
-
type MetricsChartProps = {
|
|
2734
|
-
history?: MetricsHistoryRecord[];
|
|
2735
|
-
};
|
|
2736
|
-
/**
|
|
2737
|
-
* TODO: Refactor this component to use shared graphs configuration
|
|
2738
|
-
*/
|
|
2739
|
-
declare const MetricsChart: ({ history }: MetricsChartProps) => react_jsx_runtime.JSX.Element;
|
|
2740
|
-
|
|
2741
|
-
type MetricsPeriod = 'hour' | 'day' | 'week' | 'month';
|
|
2742
|
-
type PeriodSelectProps = {
|
|
2743
|
-
value?: MetricsPeriod;
|
|
2744
|
-
onChange?: (value: MetricsPeriod) => void;
|
|
2745
|
-
};
|
|
2746
|
-
declare const PeriodSelect: ({ value, onChange }: PeriodSelectProps) => react_jsx_runtime.JSX.Element;
|
|
2747
|
-
|
|
2748
|
-
/**
|
|
2749
|
-
* Represents a single time range option in the dropdown.
|
|
2750
|
-
*/
|
|
2751
|
-
interface TimeRangeOption {
|
|
2752
|
-
/** Display label shown in the dropdown (e.g., "1 week") */
|
|
2753
|
-
label: string;
|
|
2754
|
-
/** Value identifier passed to the callback on selection */
|
|
2755
|
-
value: string;
|
|
2756
|
-
}
|
|
2757
|
-
interface TimeRangeSelectProps {
|
|
2758
|
-
/** Available time range options */
|
|
2759
|
-
options: TimeRangeOption[];
|
|
2760
|
-
/** Currently selected time range value */
|
|
2761
|
-
value?: string;
|
|
2762
|
-
/** Callback invoked when user selects a different time range */
|
|
2763
|
-
onChange?: (value: string) => void;
|
|
2764
|
-
}
|
|
2765
|
-
/**
|
|
2766
|
-
* Configurable time range dropdown selector.
|
|
2767
|
-
* Renders a compact select field with the provided time range options.
|
|
2768
|
-
*
|
|
2769
|
-
* @example
|
|
2770
|
-
* ```tsx
|
|
2771
|
-
* <TimeRangeSelect
|
|
2772
|
-
* options={[
|
|
2773
|
-
* { label: 'Last hour', value: 'hour' },
|
|
2774
|
-
* { label: '24 hours', value: 'day' },
|
|
2775
|
-
* { label: '1 week', value: 'week' },
|
|
2776
|
-
* ]}
|
|
2777
|
-
* value="week"
|
|
2778
|
-
* onChange={(value) => console.log(value)}
|
|
2779
|
-
* />
|
|
2780
|
-
* ```
|
|
2781
|
-
*/
|
|
2782
|
-
declare const TimeRangeSelect: ({ options, value, onChange }: TimeRangeSelectProps) => react_jsx_runtime.JSX.Element;
|
|
2783
|
-
|
|
2784
|
-
/**
|
|
2785
|
-
* Represents a single summary statistic item displayed below the graph.
|
|
2786
|
-
*/
|
|
2787
|
-
interface SummaryItem {
|
|
2788
|
-
/** Descriptive label (e.g., "Total Engagements") */
|
|
2789
|
-
label: string;
|
|
2790
|
-
/** Numeric or string value (e.g., "13.72" or 11372) */
|
|
2791
|
-
value: string | number;
|
|
2792
|
-
/** Optional unit suffix (e.g., "K", "GB", "%") */
|
|
2793
|
-
unit?: string;
|
|
2794
|
-
}
|
|
2795
|
-
interface SummaryStatsProps {
|
|
2796
|
-
/** Array of summary items to display */
|
|
2797
|
-
items: SummaryItem[];
|
|
2798
|
-
}
|
|
2799
|
-
/**
|
|
2800
|
-
* Renders a horizontal row of summary statistics below the graph.
|
|
2801
|
-
* Each item shows a label with its corresponding value and optional unit.
|
|
2802
|
-
*
|
|
2803
|
-
* Matches the Figma design layout with label in secondary text color
|
|
2804
|
-
* and value in bold heading typography.
|
|
2805
|
-
*
|
|
2806
|
-
* @example
|
|
2807
|
-
* ```tsx
|
|
2808
|
-
* <SummaryStats
|
|
2809
|
-
* items={[
|
|
2810
|
-
* { label: 'Total Engagements', value: 11372 },
|
|
2811
|
-
* { label: 'Total Consumed', value: '156.91', unit: 'GB' },
|
|
2812
|
-
* ]}
|
|
2813
|
-
* />
|
|
2814
|
-
* ```
|
|
2815
|
-
*/
|
|
2816
|
-
declare const SummaryStats: ({ items }: SummaryStatsProps) => react_jsx_runtime.JSX.Element | null;
|
|
2817
|
-
|
|
2818
|
-
/**
|
|
2819
|
-
* A single data point in a time series.
|
|
2820
|
-
* Use `null` for the value to represent missing/gap data — the line will break.
|
|
2821
|
-
*/
|
|
2822
|
-
interface DataPoint {
|
|
2823
|
-
/** Timestamp of the observation */
|
|
2824
|
-
timestamp: Date;
|
|
2825
|
-
/** Numeric value, or `null` to indicate a gap in the data */
|
|
2826
|
-
value: number | null;
|
|
2827
|
-
}
|
|
2828
|
-
/**
|
|
2829
|
-
* Represents one line on the graph (a named data series).
|
|
2830
|
-
*/
|
|
2831
|
-
interface DataSeries {
|
|
2832
|
-
/** Unique display name for this series (shown in legend) */
|
|
2833
|
-
name: string;
|
|
2834
|
-
/** CSS color string for the line and legend indicator */
|
|
2835
|
-
color: string;
|
|
2836
|
-
/** Ordered array of data points */
|
|
2837
|
-
data: DataPoint[];
|
|
2838
|
-
}
|
|
2839
|
-
interface TimeSeriesGraphProps {
|
|
2840
|
-
/** Optional title displayed at the top-left of the graph card */
|
|
2841
|
-
title?: string;
|
|
2842
|
-
/**
|
|
2843
|
-
* Array of data series to render. Each series becomes one line on the graph.
|
|
2844
|
-
* There is no hardcoded limit on the number of series.
|
|
2845
|
-
*/
|
|
2846
|
-
series: DataSeries[];
|
|
2847
|
-
/**
|
|
2848
|
-
* Configurable time range options for the dropdown selector.
|
|
2849
|
-
* When omitted, the time range dropdown is not rendered.
|
|
2850
|
-
*/
|
|
2851
|
-
timeRangeOptions?: TimeRangeOption[];
|
|
2852
|
-
/** Currently selected time range value (controlled) */
|
|
2853
|
-
selectedTimeRange?: string;
|
|
2854
|
-
/** Callback invoked when the user picks a different time range */
|
|
2855
|
-
onTimeRangeChange?: (value: string) => void;
|
|
2856
|
-
/**
|
|
2857
|
-
* Optional array of summary statistics displayed below the graph.
|
|
2858
|
-
* When omitted or empty, the summary section is hidden.
|
|
2859
|
-
*/
|
|
2860
|
-
summaryItems?: SummaryItem[];
|
|
2861
|
-
/**
|
|
2862
|
-
* Whether to show the summary statistics section.
|
|
2863
|
-
* Defaults to `true`. Set to `false` to explicitly hide, even when `summaryItems` are provided.
|
|
2864
|
-
*/
|
|
2865
|
-
showSummary?: boolean;
|
|
2866
|
-
/**
|
|
2867
|
-
* Optional header action element rendered to the right of the title
|
|
2868
|
-
* (e.g., a secondary dropdown or filter control).
|
|
2869
|
-
*/
|
|
2870
|
-
headerAction?: ReactNode;
|
|
2871
|
-
/**
|
|
2872
|
-
* When `true`, shows a loading overlay (spinner) over the graph area
|
|
2873
|
-
* while the header remains visible and interactive.
|
|
2874
|
-
*/
|
|
2875
|
-
loading?: boolean;
|
|
2876
|
-
/**
|
|
2877
|
-
* Override the x-axis date format string (date-fns format tokens).
|
|
2878
|
-
* When omitted, the format is auto-detected from the data's time span:
|
|
2879
|
-
* - <= 24 hours → `'HH:mm'`
|
|
2880
|
-
* - > 24 hours → `'do MMM'`
|
|
2881
|
-
*/
|
|
2882
|
-
xAxisFormat?: string;
|
|
2883
|
-
}
|
|
2884
|
-
/**
|
|
2885
|
-
* A reusable time series graph component that displays one or more data lines
|
|
2886
|
-
* over a shared time axis. Supports configurable time range selection,
|
|
2887
|
-
* optional summary statistics, interactive legend toggling, crosshair tooltips,
|
|
2888
|
-
* and a loading state.
|
|
2889
|
-
*
|
|
2890
|
-
* Built on `@mui/x-charts` LineChart and the Cere Design System theme.
|
|
2891
|
-
*
|
|
2892
|
-
* @example
|
|
2893
|
-
* ```tsx
|
|
2894
|
-
* <TimeSeriesGraph
|
|
2895
|
-
* title="Engagement over time"
|
|
2896
|
-
* series={[
|
|
2897
|
-
* { name: 'Engagements', color: '#6750A4', data: engagementData },
|
|
2898
|
-
* { name: 'Unique Streams', color: '#4caf50', data: streamData },
|
|
2899
|
-
* ]}
|
|
2900
|
-
* timeRangeOptions={[
|
|
2901
|
-
* { label: 'Last hour', value: 'hour' },
|
|
2902
|
-
* { label: '24 hours', value: 'day' },
|
|
2903
|
-
* { label: '1 week', value: 'week' },
|
|
2904
|
-
* { label: '1 month', value: 'month' },
|
|
2905
|
-
* ]}
|
|
2906
|
-
* selectedTimeRange="week"
|
|
2907
|
-
* onTimeRangeChange={(range) => fetchData(range)}
|
|
2908
|
-
* summaryItems={[
|
|
2909
|
-
* { label: 'Total Engagements', value: 11372 },
|
|
2910
|
-
* { label: 'Daily Engagements', value: 156 },
|
|
2911
|
-
* ]}
|
|
2912
|
-
* />
|
|
2913
|
-
* ```
|
|
2914
|
-
*
|
|
2915
|
-
* Figma reference: [ROB Design - Node 162:1172](https://www.figma.com/design/xky11VbkkFcgZLwZE8BdCN/ROB?node-id=162-1172&m=dev)
|
|
2916
|
-
*/
|
|
2917
|
-
declare const TimeSeriesGraph: ({ title, series, timeRangeOptions, selectedTimeRange, onTimeRangeChange, summaryItems, showSummary, headerAction, loading, xAxisFormat, }: TimeSeriesGraphProps) => react_jsx_runtime.JSX.Element;
|
|
2918
|
-
|
|
2919
|
-
interface FlowEditorProps extends Omit<ReactFlowProps, 'nodes' | 'edges'> {
|
|
2920
|
-
/**
|
|
2921
|
-
* Nodes to display in the flow
|
|
2922
|
-
*/
|
|
2923
|
-
nodes: Node[];
|
|
2924
|
-
/**
|
|
2925
|
-
* Edges to display in the flow
|
|
2926
|
-
*/
|
|
2927
|
-
edges: Edge[];
|
|
2928
|
-
/**
|
|
2929
|
-
* Callback when nodes change
|
|
2930
|
-
*/
|
|
2931
|
-
onNodesChange?: OnNodesChange;
|
|
2932
|
-
/**
|
|
2933
|
-
* Callback when edges change
|
|
2934
|
-
*/
|
|
2935
|
-
onEdgesChange?: OnEdgesChange;
|
|
2936
|
-
/**
|
|
2937
|
-
* Custom node types
|
|
2938
|
-
*/
|
|
2939
|
-
nodeTypes?: NodeTypes;
|
|
2940
|
-
/**
|
|
2941
|
-
* Custom edge types
|
|
2942
|
-
*/
|
|
2943
|
-
edgeTypes?: EdgeTypes;
|
|
2944
|
-
/**
|
|
2945
|
-
* Height of the flow editor
|
|
2946
|
-
* @default '600px'
|
|
2947
|
-
*/
|
|
2948
|
-
height?: string | number;
|
|
2949
|
-
/**
|
|
2950
|
-
* Show background grid
|
|
2951
|
-
* @default true
|
|
2952
|
-
*/
|
|
2953
|
-
showBackground?: boolean;
|
|
2954
|
-
/**
|
|
2955
|
-
* Background variant
|
|
2956
|
-
* @default 'dots'
|
|
2957
|
-
*/
|
|
2958
|
-
backgroundVariant?: BackgroundVariant;
|
|
2959
|
-
/**
|
|
2960
|
-
* Show controls
|
|
2961
|
-
* @default true
|
|
2962
|
-
*/
|
|
2963
|
-
showControls?: boolean;
|
|
2964
|
-
/**
|
|
2965
|
-
* Show minimap
|
|
2966
|
-
* @default false
|
|
2967
|
-
*/
|
|
2968
|
-
showMinimap?: boolean;
|
|
2969
|
-
/**
|
|
2970
|
-
* Allow nodes to be dragged by the user
|
|
2971
|
-
* @default true
|
|
2972
|
-
*/
|
|
2973
|
-
nodesDraggable?: boolean;
|
|
2974
|
-
/**
|
|
2975
|
-
* Show border around the container
|
|
2976
|
-
* @default true
|
|
2977
|
-
*/
|
|
2978
|
-
showBorder?: boolean;
|
|
2979
|
-
/**
|
|
2980
|
-
* Border radius of the container in theme spacing units (e.g. 1 = 8px, 2 = 16px)
|
|
2981
|
-
* @default 1
|
|
2982
|
-
*/
|
|
2983
|
-
borderRadius?: number;
|
|
2984
|
-
/**
|
|
2985
|
-
* Container props
|
|
2986
|
-
*/
|
|
2987
|
-
containerProps?: BoxProps;
|
|
2988
|
-
/**
|
|
2989
|
-
* Props passed directly to the ReactFlow MiniMap component, allowing full customization
|
|
2990
|
-
* of colors, mask, style, and any other MiniMap option. Consumer values override defaults.
|
|
2991
|
-
*/
|
|
2992
|
-
minimapProps?: Partial<MiniMapProps>;
|
|
2993
|
-
/**
|
|
2994
|
-
* Callback when flow instance is initialized
|
|
2995
|
-
*/
|
|
2996
|
-
onInit?: (instance: ReactFlowInstance) => void;
|
|
2997
|
-
}
|
|
2998
|
-
/**
|
|
2999
|
-
* FlowEditor component - wrapper around ReactFlow with theme integration
|
|
3000
|
-
*
|
|
3001
|
-
* @example
|
|
3002
|
-
* ```tsx
|
|
3003
|
-
* <FlowEditor
|
|
3004
|
-
* nodes={nodes}
|
|
3005
|
-
* edges={edges}
|
|
3006
|
-
* onNodesChange={onNodesChange}
|
|
3007
|
-
* onEdgesChange={onEdgesChange}
|
|
3008
|
-
* height="500px"
|
|
3009
|
-
* showBackground
|
|
3010
|
-
* showControls
|
|
3011
|
-
* />
|
|
3012
|
-
* ```
|
|
3013
|
-
*/
|
|
3014
|
-
declare const FlowEditor: React__default.FC<FlowEditorProps>;
|
|
3015
|
-
|
|
3016
|
-
type CodeEditorLanguage = 'typescript' | 'javascript' | 'json' | 'html' | 'css' | 'python' | 'yaml' | 'markdown' | 'sql' | 'xml' | 'plaintext';
|
|
3017
|
-
interface CodeEditorProps {
|
|
3018
|
-
/**
|
|
3019
|
-
* Current value of the editor
|
|
3020
|
-
*/
|
|
3021
|
-
value: string;
|
|
3022
|
-
/**
|
|
3023
|
-
* Callback when value changes
|
|
3024
|
-
*/
|
|
3025
|
-
onChange: (value: string) => void;
|
|
3026
|
-
/**
|
|
3027
|
-
* Programming language
|
|
3028
|
-
* @default 'typescript'
|
|
3029
|
-
*/
|
|
3030
|
-
language?: CodeEditorLanguage;
|
|
3031
|
-
/**
|
|
3032
|
-
* Height of the editor
|
|
3033
|
-
* @default '400px'
|
|
3034
|
-
*/
|
|
3035
|
-
height?: string | number;
|
|
3036
|
-
/**
|
|
3037
|
-
* Minimum height
|
|
3038
|
-
*/
|
|
3039
|
-
minHeight?: string | number;
|
|
3040
|
-
/**
|
|
3041
|
-
* Theme ('light' | 'dark' | 'vs-dark' | 'hc-black')
|
|
3042
|
-
* If not provided, will use theme from design system
|
|
3043
|
-
*/
|
|
3044
|
-
theme?: string;
|
|
3045
|
-
/**
|
|
3046
|
-
* Show line numbers
|
|
3047
|
-
* @default 'on'
|
|
3048
|
-
*/
|
|
3049
|
-
lineNumbers?: 'on' | 'off' | 'relative' | 'interval';
|
|
3050
|
-
/**
|
|
3051
|
-
* Editor options (monaco editor options)
|
|
3052
|
-
*/
|
|
3053
|
-
options?: editor.IStandaloneEditorConstructionOptions;
|
|
3054
|
-
/**
|
|
3055
|
-
* Callback when editor is mounted
|
|
3056
|
-
*/
|
|
3057
|
-
onMount?: (editor: editor.IStandaloneCodeEditor, monaco: Monaco) => void;
|
|
3058
|
-
/**
|
|
3059
|
-
* Callback for validation errors
|
|
3060
|
-
*/
|
|
3061
|
-
onValidate?: (markers: editor.IMarker[]) => void;
|
|
3062
|
-
/**
|
|
3063
|
-
* Ref to editor instance
|
|
3064
|
-
*/
|
|
3065
|
-
editorRef?: React__default.MutableRefObject<editor.IStandaloneCodeEditor | null>;
|
|
3066
|
-
/**
|
|
3067
|
-
* Ref to Monaco instance
|
|
3068
|
-
*/
|
|
3069
|
-
monacoRef?: React__default.MutableRefObject<Monaco | null>;
|
|
3070
|
-
/**
|
|
3071
|
-
* Callback when fullscreen state changes
|
|
3072
|
-
*/
|
|
3073
|
-
onFullscreenChange?: (isFullscreen: boolean) => void;
|
|
3074
|
-
/**
|
|
3075
|
-
* Props for the container Box.
|
|
3076
|
-
*/
|
|
3077
|
-
containerProps?: BoxProps;
|
|
3078
|
-
/**
|
|
3079
|
-
* Additional TypeScript type definitions to add to the editor context.
|
|
3080
|
-
* Can be a string with type definitions or an array of type definition strings.
|
|
3081
|
-
* Each string will be added as a separate extra lib to Monaco.
|
|
3082
|
-
*
|
|
3083
|
-
* @example
|
|
3084
|
-
* ```tsx
|
|
3085
|
-
* <CodeEditor
|
|
3086
|
-
* value={code}
|
|
3087
|
-
* onChange={setCode}
|
|
3088
|
-
* typeDefinitions={`
|
|
3089
|
-
* declare interface MyCustomType {
|
|
3090
|
-
* id: string;
|
|
3091
|
-
* name: string;
|
|
3092
|
-
* }
|
|
3093
|
-
* `}
|
|
3094
|
-
* />
|
|
3095
|
-
* ```
|
|
3096
|
-
*/
|
|
3097
|
-
typeDefinitions?: string | string[];
|
|
3098
|
-
/**
|
|
3099
|
-
* When true, the editor skips internal value syncing and lets an external
|
|
3100
|
-
* source (e.g. useCodeEditorWorkspace) manage Monaco models directly.
|
|
3101
|
-
* The `value` prop is still used as the initial/display value but won't
|
|
3102
|
-
* be force-synced to the editor.
|
|
3103
|
-
* @default false
|
|
3104
|
-
*/
|
|
3105
|
-
externalModelManagement?: boolean;
|
|
3106
|
-
}
|
|
3107
|
-
/**
|
|
3108
|
-
* CodeEditor component - wrapper around Monaco Editor matching dynamic-indexer-client implementation
|
|
3109
|
-
*
|
|
3110
|
-
* @example
|
|
3111
|
-
* ```tsx
|
|
3112
|
-
* <CodeEditor
|
|
3113
|
-
* value={code}
|
|
3114
|
-
* onChange={setCode}
|
|
3115
|
-
* language="typescript"
|
|
3116
|
-
* height="500px"
|
|
3117
|
-
* onValidate={(markers) => console.log('Errors:', markers)}
|
|
3118
|
-
* />
|
|
3119
|
-
* ```
|
|
3120
|
-
*/
|
|
3121
|
-
declare const CodeEditor: React__default.FC<CodeEditorProps>;
|
|
3122
|
-
|
|
3123
|
-
/** Data shape expected by the WorkflowNodeHandle custom ReactFlow node */
|
|
3124
|
-
interface WorkflowNodeData {
|
|
3125
|
-
/** Workflow node type — drives accent color, icon, and badge */
|
|
3126
|
-
nodeType: WorkflowNodeType;
|
|
3127
|
-
/** Primary title */
|
|
3128
|
-
title: string;
|
|
3129
|
-
/** Optional description */
|
|
3130
|
-
description?: string;
|
|
3131
|
-
/** Override default icon */
|
|
3132
|
-
icon?: React__default.ReactNode;
|
|
3133
|
-
/** Override default badge label */
|
|
3134
|
-
badgeLabel?: string;
|
|
3135
|
-
}
|
|
3136
|
-
/**
|
|
3137
|
-
* Thin ReactFlow custom-node wrapper around WorkflowNode.
|
|
3138
|
-
*
|
|
3139
|
-
* Renders a target Handle (top), the WorkflowNode card, and a source Handle (bottom).
|
|
3140
|
-
* Register as a custom nodeType:
|
|
3141
|
-
*
|
|
3142
|
-
* @example
|
|
3143
|
-
* ```tsx
|
|
3144
|
-
* const nodeTypes = { workflowNode: WorkflowNodeHandle };
|
|
3145
|
-
* <FlowEditor nodes={nodes} edges={edges} nodeTypes={nodeTypes} />
|
|
3146
|
-
* ```
|
|
3147
|
-
*/
|
|
3148
|
-
declare const WorkflowNodeHandle: React__default.FC<NodeProps<WorkflowNodeData>>;
|
|
3149
|
-
|
|
3150
|
-
/**
|
|
3151
|
-
* Represents a single file in the workspace.
|
|
3152
|
-
*/
|
|
3153
|
-
interface CodeEditorFile {
|
|
3154
|
-
/** Unique file path, e.g. "src/index.ts" */
|
|
3155
|
-
path: string;
|
|
3156
|
-
/** Programming language (auto-detected from extension when omitted) */
|
|
3157
|
-
language?: CodeEditorLanguage;
|
|
3158
|
-
/** File content */
|
|
3159
|
-
value: string;
|
|
3160
|
-
}
|
|
3161
|
-
/**
|
|
3162
|
-
* Represents an open tab in the editor.
|
|
3163
|
-
*/
|
|
3164
|
-
interface CodeEditorTab {
|
|
3165
|
-
/** File path this tab corresponds to */
|
|
3166
|
-
path: string;
|
|
3167
|
-
/** Display label (defaults to the filename portion of path) */
|
|
3168
|
-
label?: string;
|
|
3169
|
-
/** Whether the file has unsaved changes */
|
|
3170
|
-
isDirty?: boolean;
|
|
3171
|
-
/** Git sync status — distinct from isDirty (editor changes) */
|
|
3172
|
-
syncStatus?: 'new' | 'modified';
|
|
3173
|
-
}
|
|
3174
|
-
/** Git sync status for a file tree node. */
|
|
3175
|
-
type FileTreeNodeStatus = 'new' | 'modified' | 'deleted';
|
|
3176
|
-
/**
|
|
3177
|
-
* A node in the file tree.
|
|
3178
|
-
*/
|
|
3179
|
-
interface FileTreeNode {
|
|
3180
|
-
/** Display name */
|
|
3181
|
-
name: string;
|
|
3182
|
-
/** Full path (unique identifier) */
|
|
3183
|
-
path: string;
|
|
3184
|
-
/** Whether this is a file or folder */
|
|
3185
|
-
type: 'file' | 'folder';
|
|
3186
|
-
/** Children nodes (only for folders) */
|
|
3187
|
-
children?: FileTreeNode[];
|
|
3188
|
-
/** Optional custom icon */
|
|
3189
|
-
icon?: ReactNode;
|
|
3190
|
-
/** Git sync status indicator (new / modified / deleted) */
|
|
3191
|
-
status?: FileTreeNodeStatus;
|
|
3192
|
-
}
|
|
3193
|
-
/**
|
|
3194
|
-
* Git repository information passed into the workspace.
|
|
3195
|
-
* The consuming app is responsible for fetching this data.
|
|
3196
|
-
*/
|
|
3197
|
-
interface GitInfo {
|
|
3198
|
-
/** Current branch name, e.g. "feat/advanced-code-editor" */
|
|
3199
|
-
branch: string;
|
|
3200
|
-
/** Whether the working tree has uncommitted changes */
|
|
3201
|
-
isDirty?: boolean;
|
|
3202
|
-
/** Short commit hash of HEAD */
|
|
3203
|
-
commitHash?: string;
|
|
3204
|
-
/** Remote name, e.g. "origin" */
|
|
3205
|
-
remote?: string;
|
|
3206
|
-
/** Number of commits ahead of remote */
|
|
3207
|
-
ahead?: number;
|
|
3208
|
-
/** Number of commits behind remote */
|
|
3209
|
-
behind?: number;
|
|
3210
|
-
}
|
|
3211
|
-
/**
|
|
3212
|
-
* A custom item to render in the status bar.
|
|
3213
|
-
*/
|
|
3214
|
-
interface CodeEditorStatusBarItem {
|
|
3215
|
-
/** Unique key */
|
|
3216
|
-
id: string;
|
|
3217
|
-
/** Content to display (string or ReactNode) */
|
|
3218
|
-
content: ReactNode;
|
|
3219
|
-
/** Side of the status bar */
|
|
3220
|
-
align?: 'left' | 'right';
|
|
3221
|
-
/** Optional click handler */
|
|
3222
|
-
onClick?: () => void;
|
|
3223
|
-
/** Tooltip text */
|
|
3224
|
-
tooltip?: string;
|
|
3225
|
-
}
|
|
3226
|
-
/**
|
|
3227
|
-
* Map from file extension to CodeEditorLanguage.
|
|
3228
|
-
*/
|
|
3229
|
-
declare const EXTENSION_LANGUAGE_MAP: Record<string, CodeEditorLanguage>;
|
|
3230
|
-
/**
|
|
3231
|
-
* Detect language from a file path extension.
|
|
3232
|
-
*/
|
|
3233
|
-
declare function detectLanguage(path: string): CodeEditorLanguage;
|
|
3234
|
-
/**
|
|
3235
|
-
* Extract the filename from a path.
|
|
3236
|
-
*/
|
|
3237
|
-
declare function getFileName(path: string): string;
|
|
3238
|
-
|
|
3239
|
-
interface UseCodeEditorWorkspaceOptions {
|
|
3240
|
-
/** All files available in the workspace */
|
|
3241
|
-
files: CodeEditorFile[];
|
|
3242
|
-
/** File paths to open as tabs initially */
|
|
3243
|
-
initialOpenPaths?: string[];
|
|
3244
|
-
/** Called when a file's content is modified in the editor */
|
|
3245
|
-
onFileChange?: (path: string, value: string) => void;
|
|
3246
|
-
/** Called when validation markers change across all open models */
|
|
3247
|
-
onValidationChange?: (markers: Record<string, editor.IMarker[]>) => void;
|
|
3248
|
-
}
|
|
3249
|
-
interface UseCodeEditorWorkspaceReturn {
|
|
3250
|
-
/** Currently open tabs */
|
|
3251
|
-
openTabs: CodeEditorTab[];
|
|
3252
|
-
/** Path of the active file (shown in editor) */
|
|
3253
|
-
activeFilePath: string | null;
|
|
3254
|
-
/** Open a file by path (creates tab if not already open, sets it active) */
|
|
3255
|
-
openFile: (path: string) => void;
|
|
3256
|
-
/** Close a tab by path */
|
|
3257
|
-
closeFile: (path: string) => void;
|
|
3258
|
-
/** Set a specific file as active */
|
|
3259
|
-
setActiveFile: (path: string) => void;
|
|
3260
|
-
/** Programmatically update file content */
|
|
3261
|
-
updateFileContent: (path: string, value: string) => void;
|
|
3262
|
-
/** Get the current content of a file */
|
|
3263
|
-
getFileContent: (path: string) => string | undefined;
|
|
3264
|
-
/** Get the active file data */
|
|
3265
|
-
activeFile: CodeEditorFile | undefined;
|
|
3266
|
-
/** Ref to hold the Monaco instance — pass to CodeEditor's monacoRef */
|
|
3267
|
-
monacoRef: React.MutableRefObject<Monaco | null>;
|
|
3268
|
-
/** Ref to hold the editor instance — pass to CodeEditor's editorRef */
|
|
3269
|
-
editorRef: React.MutableRefObject<editor.IStandaloneCodeEditor | null>;
|
|
3270
|
-
/** Handler to pass to CodeEditor's onMount */
|
|
3271
|
-
handleEditorMount: (editorInstance: editor.IStandaloneCodeEditor, monacoInstance: Monaco) => void;
|
|
3272
|
-
/** Handler to pass to CodeEditor's onChange */
|
|
3273
|
-
handleEditorChange: (value: string) => void;
|
|
3274
|
-
/** Aggregated validation markers keyed by file path */
|
|
3275
|
-
validationMarkers: Record<string, editor.IMarker[]>;
|
|
3276
|
-
/** Mark a file as saved (clears dirty flag) */
|
|
3277
|
-
markSaved: (path: string) => void;
|
|
3278
|
-
/** Mark all files as saved */
|
|
3279
|
-
markAllSaved: () => void;
|
|
3280
|
-
/** Current cursor position in the active editor */
|
|
3281
|
-
cursorPosition: {
|
|
3282
|
-
line: number;
|
|
3283
|
-
column: number;
|
|
3284
|
-
} | null;
|
|
3285
|
-
}
|
|
3286
|
-
/**
|
|
3287
|
-
* Headless hook for managing a multi-file Monaco editor workspace.
|
|
3288
|
-
*
|
|
3289
|
-
* Manages Monaco models, open tabs, active file, and dirty tracking.
|
|
3290
|
-
* Pass the returned refs/handlers to a `CodeEditor` component.
|
|
3291
|
-
*
|
|
3292
|
-
* @example
|
|
3293
|
-
* ```tsx
|
|
3294
|
-
* const workspace = useCodeEditorWorkspace({ files, onFileChange });
|
|
3295
|
-
*
|
|
3296
|
-
* <CodeEditorTabs
|
|
3297
|
-
* tabs={workspace.openTabs}
|
|
3298
|
-
* activeTab={workspace.activeFilePath}
|
|
3299
|
-
* onTabSelect={workspace.setActiveFile}
|
|
3300
|
-
* onTabClose={workspace.closeFile}
|
|
3301
|
-
* />
|
|
3302
|
-
* <CodeEditor
|
|
3303
|
-
* value={workspace.activeFile?.value ?? ''}
|
|
3304
|
-
* onChange={workspace.handleEditorChange}
|
|
3305
|
-
* language={workspace.activeFile?.language}
|
|
3306
|
-
* editorRef={workspace.editorRef}
|
|
3307
|
-
* monacoRef={workspace.monacoRef}
|
|
3308
|
-
* onMount={workspace.handleEditorMount}
|
|
3309
|
-
* />
|
|
3310
|
-
* ```
|
|
3311
|
-
*/
|
|
3312
|
-
declare function useCodeEditorWorkspace({ files, initialOpenPaths, onFileChange, onValidationChange, }: UseCodeEditorWorkspaceOptions): UseCodeEditorWorkspaceReturn;
|
|
3313
|
-
|
|
3314
|
-
interface CodeEditorTabRenderProps {
|
|
3315
|
-
tab: CodeEditorTab;
|
|
3316
|
-
isActive: boolean;
|
|
3317
|
-
onSelect: () => void;
|
|
3318
|
-
onClose: () => void;
|
|
3319
|
-
}
|
|
3320
|
-
interface CodeEditorTabsProps {
|
|
3321
|
-
/** Open tabs to display */
|
|
3322
|
-
tabs: CodeEditorTab[];
|
|
3323
|
-
/** Path of the currently active tab */
|
|
3324
|
-
activeTab?: string | null;
|
|
3325
|
-
/** Called when a tab is selected */
|
|
3326
|
-
onTabSelect?: (path: string) => void;
|
|
3327
|
-
/** Called when a tab's close button is clicked */
|
|
3328
|
-
onTabClose?: (path: string) => void;
|
|
3329
|
-
/**
|
|
3330
|
-
* Render prop for full tab customisation.
|
|
3331
|
-
* When provided, default tab rendering is skipped entirely.
|
|
3332
|
-
*/
|
|
3333
|
-
renderTab?: (props: CodeEditorTabRenderProps) => React__default.ReactNode;
|
|
3334
|
-
/** Props for the outer container */
|
|
3335
|
-
containerProps?: BoxProps;
|
|
3336
|
-
}
|
|
3337
|
-
/**
|
|
3338
|
-
* Tab bar for the CodeEditor workspace.
|
|
3339
|
-
*
|
|
3340
|
-
* Provides default MUI-based rendering, but consumers can fully replace it
|
|
3341
|
-
* via the `renderTab` render prop.
|
|
3342
|
-
*
|
|
3343
|
-
* @example
|
|
3344
|
-
* ```tsx
|
|
3345
|
-
* <CodeEditorTabs
|
|
3346
|
-
* tabs={workspace.openTabs}
|
|
3347
|
-
* activeTab={workspace.activeFilePath}
|
|
3348
|
-
* onTabSelect={workspace.setActiveFile}
|
|
3349
|
-
* onTabClose={workspace.closeFile}
|
|
3350
|
-
* />
|
|
3351
|
-
* ```
|
|
3352
|
-
*/
|
|
3353
|
-
declare const CodeEditorTabs: React__default.FC<CodeEditorTabsProps>;
|
|
3354
|
-
|
|
3355
|
-
interface FileTreeNodeRenderProps {
|
|
3356
|
-
node: FileTreeNode;
|
|
3357
|
-
depth: number;
|
|
3358
|
-
isSelected: boolean;
|
|
3359
|
-
isExpanded: boolean;
|
|
3360
|
-
onSelect: () => void;
|
|
3361
|
-
onToggle: () => void;
|
|
3362
|
-
}
|
|
3363
|
-
interface CodeEditorFileTreeProps {
|
|
3364
|
-
/** Tree data to render */
|
|
3365
|
-
tree: FileTreeNode[];
|
|
3366
|
-
/** Currently selected file path */
|
|
3367
|
-
selectedPath?: string | null;
|
|
3368
|
-
/** Called when a file node is clicked */
|
|
3369
|
-
onFileSelect?: (path: string) => void;
|
|
3370
|
-
/** Called when a folder is expanded/collapsed */
|
|
3371
|
-
onFolderToggle?: (path: string, isExpanded: boolean) => void;
|
|
3372
|
-
/**
|
|
3373
|
-
* Render prop for full node customisation.
|
|
3374
|
-
* When provided, default rendering is skipped.
|
|
3375
|
-
*/
|
|
3376
|
-
renderNode?: (props: FileTreeNodeRenderProps) => React__default.ReactNode;
|
|
3377
|
-
/** Paths of folders that should be expanded initially */
|
|
3378
|
-
defaultExpandedPaths?: string[];
|
|
3379
|
-
/** Width of the file tree panel */
|
|
3380
|
-
width?: string | number;
|
|
3381
|
-
/** Props for the outer container */
|
|
3382
|
-
containerProps?: BoxProps;
|
|
3383
|
-
}
|
|
3384
|
-
/**
|
|
3385
|
-
* File tree navigator for the CodeEditor workspace.
|
|
3386
|
-
*
|
|
3387
|
-
* Provides default MUI-based rendering with collapsible folders.
|
|
3388
|
-
* Consumers can fully replace rendering via `renderNode`.
|
|
3389
|
-
*
|
|
3390
|
-
* @example
|
|
3391
|
-
* ```tsx
|
|
3392
|
-
* <CodeEditorFileTree
|
|
3393
|
-
* tree={fileTree}
|
|
3394
|
-
* selectedPath={workspace.activeFilePath}
|
|
3395
|
-
* onFileSelect={workspace.openFile}
|
|
3396
|
-
* />
|
|
3397
|
-
* ```
|
|
3398
|
-
*/
|
|
3399
|
-
declare const CodeEditorFileTree: React__default.FC<CodeEditorFileTreeProps>;
|
|
3400
|
-
|
|
3401
|
-
interface CodeEditorStatusBarRenderProps {
|
|
3402
|
-
gitInfo?: GitInfo;
|
|
3403
|
-
language?: CodeEditorLanguage;
|
|
3404
|
-
cursorPosition?: {
|
|
3405
|
-
line: number;
|
|
3406
|
-
column: number;
|
|
3407
|
-
};
|
|
3408
|
-
items?: CodeEditorStatusBarItem[];
|
|
3409
|
-
}
|
|
3410
|
-
interface CodeEditorStatusBarProps {
|
|
3411
|
-
/** Git repository information */
|
|
3412
|
-
gitInfo?: GitInfo;
|
|
3413
|
-
/** Language of the active file */
|
|
3414
|
-
language?: CodeEditorLanguage;
|
|
3415
|
-
/** Current cursor position */
|
|
3416
|
-
cursorPosition?: {
|
|
3417
|
-
line: number;
|
|
3418
|
-
column: number;
|
|
3419
|
-
};
|
|
3420
|
-
/** Additional custom items */
|
|
3421
|
-
items?: CodeEditorStatusBarItem[];
|
|
3422
|
-
/**
|
|
3423
|
-
* Render prop for full status bar customisation.
|
|
3424
|
-
* When provided, default rendering is skipped entirely.
|
|
3425
|
-
*/
|
|
3426
|
-
renderStatusBar?: (props: CodeEditorStatusBarRenderProps) => React__default.ReactNode;
|
|
3427
|
-
/** Called when the user clicks the branch name in the status bar */
|
|
3428
|
-
onBranchClick?: () => void;
|
|
3429
|
-
/** Props for the outer container */
|
|
3430
|
-
containerProps?: BoxProps;
|
|
3431
|
-
}
|
|
3432
|
-
/**
|
|
3433
|
-
* Status bar for the CodeEditor workspace.
|
|
3434
|
-
*
|
|
3435
|
-
* Displays git branch info, cursor position, file language, and custom items.
|
|
3436
|
-
* Fully replaceable via `renderStatusBar` render prop.
|
|
3437
|
-
*
|
|
3438
|
-
* @example
|
|
3439
|
-
* ```tsx
|
|
3440
|
-
* <CodeEditorStatusBar
|
|
3441
|
-
* gitInfo={{ branch: 'main', isDirty: true, commitHash: 'a1b2c3d' }}
|
|
3442
|
-
* language="typescript"
|
|
3443
|
-
* cursorPosition={{ line: 10, column: 5 }}
|
|
3444
|
-
* />
|
|
3445
|
-
* ```
|
|
3446
|
-
*/
|
|
3447
|
-
declare const CodeEditorStatusBar: React__default.FC<CodeEditorStatusBarProps>;
|
|
3448
|
-
|
|
3449
|
-
interface CodeEditorWelcomeScreenProps {
|
|
3450
|
-
/** Custom logo or icon displayed in the center. Defaults to the Cere logo. */
|
|
3451
|
-
logo?: React__default.ReactNode;
|
|
3452
|
-
/**
|
|
3453
|
-
* Content rendered below the logo. Accepts any ReactNode —
|
|
3454
|
-
* shortcut hints, action buttons, descriptive text, etc.
|
|
3455
|
-
*/
|
|
3456
|
-
children?: React__default.ReactNode;
|
|
3457
|
-
/** Props forwarded to the outer container `Box`. */
|
|
3458
|
-
containerProps?: BoxProps;
|
|
3459
|
-
}
|
|
3460
|
-
/**
|
|
3461
|
-
* Default empty-state screen shown inside `CodeEditorWorkspace` when no file
|
|
3462
|
-
* is open. Renders a centered logo with an optional content slot underneath.
|
|
3463
|
-
*
|
|
3464
|
-
* @example
|
|
3465
|
-
* ```tsx
|
|
3466
|
-
* <CodeEditorWelcomeScreen>
|
|
3467
|
-
* <Typography variant="body2" color="text.secondary">
|
|
3468
|
-
* Open a file from the tree to start editing
|
|
3469
|
-
* </Typography>
|
|
3470
|
-
* </CodeEditorWelcomeScreen>
|
|
3471
|
-
* ```
|
|
3472
|
-
*/
|
|
3473
|
-
declare const CodeEditorWelcomeScreen: React__default.FC<CodeEditorWelcomeScreenProps>;
|
|
3474
|
-
|
|
3475
|
-
interface CodeEditorWorkspaceProps extends Pick<UseCodeEditorWorkspaceOptions, 'files' | 'initialOpenPaths' | 'onFileChange' | 'onValidationChange'> {
|
|
3476
|
-
/** File tree data. When omitted the file tree panel is hidden. */
|
|
3477
|
-
fileTree?: FileTreeNode[];
|
|
3478
|
-
/** Paths of folders expanded by default in the file tree */
|
|
3479
|
-
defaultExpandedPaths?: string[];
|
|
3480
|
-
/** Whether to show the tab bar. @default true */
|
|
3481
|
-
showTabs?: boolean;
|
|
3482
|
-
/** Whether to show the file tree panel. @default true (when fileTree is provided) */
|
|
3483
|
-
showFileTree?: boolean;
|
|
3484
|
-
/** Width of the file tree panel */
|
|
3485
|
-
fileTreeWidth?: string | number;
|
|
3486
|
-
/** Overall height of the workspace */
|
|
3487
|
-
height?: string | number;
|
|
3488
|
-
/** Props passed through to the inner CodeEditor */
|
|
3489
|
-
editorProps?: Partial<Omit<CodeEditorProps, 'value' | 'onChange' | 'language' | 'editorRef' | 'monacoRef' | 'onMount'>>;
|
|
3490
|
-
/** Props for the outer container */
|
|
3491
|
-
containerProps?: BoxProps;
|
|
3492
|
-
/** Replace the default tab bar rendering */
|
|
3493
|
-
renderTabs?: (props: CodeEditorTabsProps & {
|
|
3494
|
-
workspace: UseCodeEditorWorkspaceReturn;
|
|
3495
|
-
}) => React__default.ReactNode;
|
|
3496
|
-
/** Replace the default file tree rendering */
|
|
3497
|
-
renderFileTree?: (props: CodeEditorFileTreeProps & {
|
|
3498
|
-
workspace: UseCodeEditorWorkspaceReturn;
|
|
3499
|
-
}) => React__default.ReactNode;
|
|
3500
|
-
/** Replace the default editor rendering */
|
|
3501
|
-
renderEditor?: (workspace: UseCodeEditorWorkspaceReturn) => React__default.ReactNode;
|
|
3502
|
-
/** Replace the default status bar rendering */
|
|
3503
|
-
renderStatusBar?: (props: CodeEditorStatusBarProps & {
|
|
3504
|
-
workspace: UseCodeEditorWorkspaceReturn;
|
|
3505
|
-
}) => React__default.ReactNode;
|
|
3506
|
-
/** Replace the default welcome screen rendering (shown when no file is open) */
|
|
3507
|
-
renderWelcomeScreen?: (workspace: UseCodeEditorWorkspaceReturn) => React__default.ReactNode;
|
|
3508
|
-
/** Static ReactNode that replaces the default welcome screen entirely */
|
|
3509
|
-
welcomeScreen?: React__default.ReactNode;
|
|
3510
|
-
/** Props forwarded to the default `CodeEditorWelcomeScreen` (ignored when `welcomeScreen` or `renderWelcomeScreen` is provided) */
|
|
3511
|
-
welcomeScreenProps?: CodeEditorWelcomeScreenProps;
|
|
3512
|
-
/** Git repository information to display in the status bar */
|
|
3513
|
-
gitInfo?: GitInfo;
|
|
3514
|
-
/** Whether to show the status bar. @default true */
|
|
3515
|
-
showStatusBar?: boolean;
|
|
3516
|
-
/** Additional custom items for the status bar */
|
|
3517
|
-
statusBarItems?: CodeEditorStatusBarItem[];
|
|
3518
|
-
/** Expose the workspace instance to the parent via ref-like callback */
|
|
3519
|
-
onWorkspaceReady?: (workspace: UseCodeEditorWorkspaceReturn) => void;
|
|
3520
|
-
/** Called when the user presses Ctrl+S / Cmd+S. Receives all dirty files. */
|
|
3521
|
-
onSave?: (dirtyFiles: CodeEditorFile[]) => void;
|
|
3522
|
-
/** Called when the user clicks the branch name in the status bar */
|
|
3523
|
-
onBranchClick?: () => void;
|
|
3524
|
-
}
|
|
3525
|
-
/**
|
|
3526
|
-
* Convenience composed workspace that combines `CodeEditorFileTree`,
|
|
3527
|
-
* `CodeEditorTabs`, and `CodeEditor` into a single layout.
|
|
3528
|
-
*
|
|
3529
|
-
* For full control, use `useCodeEditorWorkspace` directly and assemble
|
|
3530
|
-
* the pieces yourself.
|
|
3531
|
-
*
|
|
3532
|
-
* @example
|
|
3533
|
-
* ```tsx
|
|
3534
|
-
* <CodeEditorWorkspace
|
|
3535
|
-
* files={files}
|
|
3536
|
-
* fileTree={tree}
|
|
3537
|
-
* initialOpenPaths={['src/index.ts']}
|
|
3538
|
-
* height="600px"
|
|
3539
|
-
* gitInfo={{ branch: 'main', isDirty: true, commitHash: 'a1b2c3d' }}
|
|
3540
|
-
* onFileChange={(path, value) => console.log(path, value)}
|
|
3541
|
-
* />
|
|
3542
|
-
* ```
|
|
626
|
+
* Render the gap between two ISO-8601 timestamps. Returns `'—'` when
|
|
627
|
+
* either bound is missing, unparseable, or inverted.
|
|
3543
628
|
*/
|
|
3544
|
-
declare
|
|
629
|
+
declare function formatDuration(startIso: string | undefined | null, endIso: string | undefined | null): string;
|
|
3545
630
|
|
|
3546
|
-
export {
|
|
631
|
+
export { CheckMarkAnimation, LoadingAnimation, type LoadingAnimationProps, type SurfaceVariant, type WebLightVariant, type WebSurfaceTokenKey, borderRadius, colors, formatDuration, formatRelativeTime, motion, robPaletteExtended, robPrimaryPalette, surfaceVariants, theme, useIsDesktop, useIsMobile, useIsTablet, webLight, webSurfaceTokens, workflowConnectionColors, workflowNodeColors };
|