@cere/cere-design-system 0.0.2

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.
@@ -0,0 +1,901 @@
1
+ import { Theme } from '@mui/material/styles';
2
+ import React, { ReactNode } from 'react';
3
+ import { ButtonProps as ButtonProps$1 } from '@mui/material/Button';
4
+ import { IconButtonProps as IconButtonProps$1 } from '@mui/material/IconButton';
5
+ import { LoadingButtonProps as LoadingButtonProps$1 } from '@mui/lab';
6
+ import { ButtonGroupProps as ButtonGroupProps$1, SelectProps, ToggleButtonProps as ToggleButtonProps$1, ToggleButtonGroupProps as ToggleButtonGroupProps$1, StepperProps as StepperProps$1, StepProps as StepProps$1, StepLabelProps as StepLabelProps$1, StepContentProps as StepContentProps$1, StepButtonProps as StepButtonProps$1, MenuProps as MenuProps$1, DialogProps as DialogProps$1, ListProps as ListProps$1, ListItemProps as ListItemProps$1, TableProps as TableProps$1, AccordionProps as AccordionProps$1, AppBarProps as AppBarProps$1, CollapseProps as CollapseProps$1, CircularProgressProps as CircularProgressProps$1, BoxProps } from '@mui/material';
7
+ export { Box, BoxProps, Container, ContainerProps, FormControl, FormControlLabel, FormControlLabelProps, FormControlProps, FormHelperText, FormHelperTextProps, FormLabel, FormLabelProps, Grid, Grid2Props, GridProps, InputAdornment, InputAdornmentProps, InputLabel, InputLabelProps, ListItemIcon, ListItemSecondaryAction, ListItemText, Stack, StackProps, Toolbar, ToolbarProps, Typography, TypographyProps } from '@mui/material';
8
+ import { TextFieldProps as TextFieldProps$1 } from '@mui/material/TextField';
9
+ import { SwitchProps as SwitchProps$1 } from '@mui/material/Switch';
10
+ import { CheckboxProps as CheckboxProps$1 } from '@mui/material/Checkbox';
11
+ import { RadioProps as RadioProps$1 } from '@mui/material/Radio';
12
+ import { BadgeProps as BadgeProps$1 } from '@mui/material/Badge';
13
+ import { ChipProps as ChipProps$1 } from '@mui/material/Chip';
14
+ import { TooltipProps as TooltipProps$1 } from '@mui/material/Tooltip';
15
+ import { TabProps as TabProps$1 } from '@mui/material/Tab';
16
+ import { PaginationProps as PaginationProps$1 } from '@mui/material/Pagination';
17
+ import { DrawerProps as DrawerProps$1 } from '@mui/material/Drawer';
18
+ import { CardProps as CardProps$1 } from '@mui/material/Card';
19
+ import { CardContentProps } from '@mui/material/CardContent';
20
+ import { CardHeaderProps } from '@mui/material/CardHeader';
21
+ import { CardActionsProps } from '@mui/material/CardActions';
22
+ import { AvatarProps as AvatarProps$1 } from '@mui/material/Avatar';
23
+ import { BreadcrumbsProps as BreadcrumbsProps$1 } from '@mui/material/Breadcrumbs';
24
+ import { PaperProps as PaperProps$1 } from '@mui/material/Paper';
25
+ import { DividerProps as DividerProps$1 } from '@mui/material/Divider';
26
+ import { LinkProps as LinkProps$1 } from '@mui/material/Link';
27
+ import { AlertProps as AlertProps$1 } from '@mui/material/Alert';
28
+ import { SnackbarProps as SnackbarProps$1 } from '@mui/material/Snackbar';
29
+ import { ReactFlowProps, Node, Edge, OnNodesChange, OnEdgesChange, NodeTypes, EdgeTypes, BackgroundVariant, ReactFlowInstance } from 'reactflow';
30
+ export { Background, BackgroundVariant, ConnectionLineType, Controls, Edge, EdgeTypes, MiniMap, Node, NodeTypes, OnEdgesChange, OnNodesChange, Panel, ReactFlowInstance } from 'reactflow';
31
+ import { Monaco } from '@monaco-editor/react';
32
+ import { editor } from 'monaco-editor';
33
+ export { default as RadioGroup } from '@mui/material/RadioGroup';
34
+
35
+ declare const colors: {
36
+ primary: {
37
+ main: string;
38
+ light: string;
39
+ dark: string;
40
+ contrastText: string;
41
+ };
42
+ secondary: {
43
+ main: string;
44
+ light: string;
45
+ dark: string;
46
+ contrastText: string;
47
+ };
48
+ success: {
49
+ main: string;
50
+ light: string;
51
+ dark: string;
52
+ contrastText: string;
53
+ };
54
+ error: {
55
+ main: string;
56
+ light: string;
57
+ dark: string;
58
+ contrastText: string;
59
+ };
60
+ warning: {
61
+ main: string;
62
+ light: string;
63
+ dark: string;
64
+ contrastText: string;
65
+ };
66
+ tertiary: {
67
+ main: string;
68
+ light: string;
69
+ dark: string;
70
+ contrastText: string;
71
+ };
72
+ grey: {
73
+ 50: string;
74
+ 100: string;
75
+ 200: string;
76
+ 300: string;
77
+ 400: string;
78
+ 500: string;
79
+ 600: string;
80
+ 700: string;
81
+ 800: string;
82
+ 900: string;
83
+ };
84
+ text: {
85
+ primary: string;
86
+ secondary: string;
87
+ disabled: string;
88
+ };
89
+ background: {
90
+ default: string;
91
+ paper: string;
92
+ selected: string;
93
+ };
94
+ };
95
+ declare const theme: Theme;
96
+
97
+ type ButtonVariant = 'primary' | 'secondary' | 'tertiary';
98
+ interface ButtonProps extends Omit<ButtonProps$1, 'variant' | 'color'> {
99
+ variant?: ButtonVariant;
100
+ size?: 'small' | 'medium' | 'large';
101
+ startIcon?: React.ReactNode;
102
+ endIcon?: React.ReactNode;
103
+ }
104
+ declare const Button: React.FC<ButtonProps>;
105
+
106
+ interface IconButtonProps extends IconButtonProps$1 {
107
+ variant?: 'default' | 'primary' | 'secondary';
108
+ }
109
+ declare const IconButton: React.FC<IconButtonProps>;
110
+
111
+ interface LoadingButtonProps extends LoadingButtonProps$1 {
112
+ /**
113
+ * If `true`, the button will show a loading indicator
114
+ */
115
+ loading?: boolean;
116
+ /**
117
+ * The loading indicator can be positioned inside the button or in the center
118
+ */
119
+ loadingPosition?: 'start' | 'end' | 'center';
120
+ }
121
+ /**
122
+ * LoadingButton component - Button with loading state from MUI Lab
123
+ *
124
+ * @example
125
+ * ```tsx
126
+ * <LoadingButton
127
+ * variant="contained"
128
+ * loading={isLoading}
129
+ * onClick={handleSubmit}
130
+ * >
131
+ * Submit
132
+ * </LoadingButton>
133
+ * ```
134
+ */
135
+ declare const LoadingButton: React.FC<LoadingButtonProps>;
136
+
137
+ interface ButtonGroupProps extends ButtonGroupProps$1 {
138
+ /**
139
+ * The content of the button group
140
+ */
141
+ children?: React.ReactNode;
142
+ /**
143
+ * If `true`, the buttons will be disabled
144
+ */
145
+ disabled?: boolean;
146
+ /**
147
+ * If `true`, the button group will take full width
148
+ */
149
+ fullWidth?: boolean;
150
+ /**
151
+ * The orientation of the button group
152
+ * @default 'horizontal'
153
+ */
154
+ orientation?: 'horizontal' | 'vertical';
155
+ /**
156
+ * The size of the buttons
157
+ * @default 'medium'
158
+ */
159
+ size?: 'small' | 'medium' | 'large';
160
+ /**
161
+ * The variant to use
162
+ * @default 'outlined'
163
+ */
164
+ variant?: 'text' | 'outlined' | 'contained';
165
+ }
166
+ /**
167
+ * ButtonGroup component - groups related buttons together
168
+ *
169
+ * @example
170
+ * ```tsx
171
+ * <ButtonGroup variant="contained">
172
+ * <Button>One</Button>
173
+ * <Button>Two</Button>
174
+ * <Button>Three</Button>
175
+ * </ButtonGroup>
176
+ * ```
177
+ */
178
+ declare const ButtonGroup: React.FC<ButtonGroupProps>;
179
+
180
+ type TextFieldSize = 'small' | 'medium';
181
+ interface TextFieldProps extends Omit<TextFieldProps$1, 'size'> {
182
+ size?: TextFieldSize;
183
+ }
184
+ declare const TextField: React.FC<TextFieldProps>;
185
+
186
+ interface SearchFieldProps extends Omit<TextFieldProps, 'InputProps'> {
187
+ placeholder?: string;
188
+ onSearch?: (value: string) => void;
189
+ }
190
+ declare const SearchField: React.FC<SearchFieldProps>;
191
+
192
+ type DropdownSize = 'small' | 'medium' | 'large';
193
+ interface DropdownOption {
194
+ value: string | number;
195
+ label: string;
196
+ disabled?: boolean;
197
+ }
198
+ interface DropdownProps extends Omit<SelectProps, 'size'> {
199
+ label?: string;
200
+ options: DropdownOption[];
201
+ size?: DropdownSize;
202
+ placeholder?: string;
203
+ }
204
+ declare const Dropdown: React.FC<DropdownProps>;
205
+
206
+ interface ToggleButtonProps extends ToggleButtonProps$1 {
207
+ }
208
+ declare const ToggleButton: React.FC<ToggleButtonProps>;
209
+ interface ToggleButtonGroupProps extends ToggleButtonGroupProps$1 {
210
+ }
211
+ declare const ToggleButtonGroup: React.FC<ToggleButtonGroupProps>;
212
+
213
+ interface SwitchProps extends Omit<SwitchProps$1, 'color'> {
214
+ label?: string;
215
+ labelPosition?: 'left' | 'right';
216
+ }
217
+ declare const Switch: React.FC<SwitchProps>;
218
+
219
+ interface CheckboxProps extends Omit<CheckboxProps$1, 'color'> {
220
+ label?: string;
221
+ labelPosition?: 'left' | 'right';
222
+ }
223
+ declare const Checkbox: React.FC<CheckboxProps>;
224
+
225
+ interface RadioProps extends Omit<RadioProps$1, 'color'> {
226
+ label?: string;
227
+ labelPosition?: 'left' | 'right';
228
+ }
229
+ declare const Radio: React.FC<RadioProps>;
230
+
231
+ interface SidebarItemProps {
232
+ label: string;
233
+ icon?: React.ReactNode;
234
+ selected?: boolean;
235
+ onClick?: () => void;
236
+ size?: 'small' | 'medium' | 'large';
237
+ endIcon?: React.ReactNode;
238
+ children?: React.ReactNode;
239
+ }
240
+ declare const SidebarItem: React.FC<SidebarItemProps>;
241
+
242
+ interface SidebarProps {
243
+ open?: boolean;
244
+ width?: number;
245
+ items: SidebarItemProps[];
246
+ onClose?: () => void;
247
+ variant?: 'permanent' | 'persistent' | 'temporary';
248
+ }
249
+ declare const Sidebar: React.FC<SidebarProps>;
250
+
251
+ interface Service {
252
+ id: string;
253
+ name: string;
254
+ description?: string;
255
+ type?: string;
256
+ lastAccessed?: string;
257
+ memberCount?: number;
258
+ favorited?: boolean;
259
+ isPersonal?: boolean;
260
+ avatar?: string;
261
+ archived?: boolean;
262
+ }
263
+ interface ServiceSelectorButtonProps {
264
+ /**
265
+ * List of services to display
266
+ */
267
+ services: Service[];
268
+ /**
269
+ * Currently selected service ID
270
+ */
271
+ selectedServiceId: string | null;
272
+ /**
273
+ * Loading state
274
+ */
275
+ loading?: boolean;
276
+ /**
277
+ * Compact mode for mobile or mini-sidebar
278
+ */
279
+ compact?: boolean;
280
+ /**
281
+ * Callback when service is selected
282
+ */
283
+ onSelectService?: (serviceId: string) => void;
284
+ /**
285
+ * Callback when service name is clicked (for navigation)
286
+ */
287
+ onServiceClick?: (serviceId: string) => void;
288
+ /**
289
+ * Callback when "Create Service" is clicked
290
+ */
291
+ onCreateService?: () => void;
292
+ /**
293
+ * Callback after service is created
294
+ */
295
+ onServiceCreated?: () => void;
296
+ /**
297
+ * Whether user is a manager for the selected service
298
+ */
299
+ isManager?: boolean;
300
+ /**
301
+ * Custom styles
302
+ */
303
+ sx?: any;
304
+ /**
305
+ * Panel width
306
+ * @default 350
307
+ */
308
+ panelWidth?: number;
309
+ }
310
+ declare const ServiceSelectorButton: React.FC<ServiceSelectorButtonProps>;
311
+
312
+ interface Workspace {
313
+ id: string;
314
+ name: string;
315
+ description?: string;
316
+ }
317
+ interface WorkspaceSelectorButtonProps {
318
+ /**
319
+ * List of workspaces to display
320
+ */
321
+ workspaces: Workspace[];
322
+ /**
323
+ * Currently selected workspace ID
324
+ */
325
+ selectedWorkspaceId: string | null;
326
+ /**
327
+ * Loading state
328
+ */
329
+ loading?: boolean;
330
+ /**
331
+ * Callback when workspace is selected
332
+ */
333
+ onSelectWorkspace?: (workspaceId: string) => void;
334
+ /**
335
+ * Callback when workspace name is clicked (for navigation)
336
+ */
337
+ onWorkspaceClick?: (workspaceId: string) => void;
338
+ /**
339
+ * Callback when "Create Workspace" is clicked
340
+ */
341
+ onCreateWorkspace?: () => void;
342
+ /**
343
+ * Custom styles
344
+ */
345
+ sx?: any;
346
+ /**
347
+ * Panel width
348
+ * @default 350
349
+ */
350
+ panelWidth?: number;
351
+ }
352
+ declare const WorkspaceSelectorButton: React.FC<WorkspaceSelectorButtonProps>;
353
+
354
+ interface StepperProps extends StepperProps$1 {
355
+ }
356
+ /**
357
+ * Stepper component - displays progress through a sequence of steps
358
+ *
359
+ * @example
360
+ * ```tsx
361
+ * <Stepper activeStep={activeStep}>
362
+ * <Step>
363
+ * <StepLabel>Step 1</StepLabel>
364
+ * </Step>
365
+ * <Step>
366
+ * <StepLabel>Step 2</StepLabel>
367
+ * </Step>
368
+ * </Stepper>
369
+ * ```
370
+ */
371
+ declare const Stepper: React.FC<StepperProps>;
372
+ interface StepProps extends StepProps$1 {
373
+ }
374
+ /**
375
+ * Step component - represents a single step in a Stepper
376
+ */
377
+ declare const Step: React.FC<StepProps>;
378
+ interface StepLabelProps extends StepLabelProps$1 {
379
+ }
380
+ /**
381
+ * StepLabel component - label for a Step
382
+ */
383
+ declare const StepLabel: React.FC<StepLabelProps>;
384
+ interface StepContentProps extends StepContentProps$1 {
385
+ }
386
+ /**
387
+ * StepContent component - optional content that appears below a StepLabel
388
+ */
389
+ declare const StepContent: React.FC<StepContentProps>;
390
+ interface StepButtonProps extends StepButtonProps$1 {
391
+ }
392
+ /**
393
+ * StepButton component - makes a Step clickable
394
+ */
395
+ declare const StepButton: React.FC<StepButtonProps>;
396
+
397
+ type BadgeVariant = 'default' | 'primary' | 'success' | 'error';
398
+ interface BadgeProps extends Omit<BadgeProps$1, 'color' | 'variant'> {
399
+ variant?: BadgeVariant;
400
+ children?: React.ReactNode;
401
+ }
402
+ declare const Badge: React.FC<BadgeProps>;
403
+
404
+ type ChipVariant = 'default' | 'active';
405
+ interface ChipProps extends Omit<ChipProps$1, 'color' | 'variant'> {
406
+ variant?: ChipVariant;
407
+ }
408
+ declare const Chip: React.FC<ChipProps>;
409
+
410
+ interface TooltipProps extends TooltipProps$1 {
411
+ }
412
+ declare const Tooltip: React.FC<TooltipProps>;
413
+
414
+ type ProgressVariant = 'linear' | 'circular';
415
+ interface ProgressProps {
416
+ variant?: ProgressVariant;
417
+ value?: number;
418
+ size?: number;
419
+ thickness?: number;
420
+ }
421
+ declare const Progress: React.FC<ProgressProps>;
422
+
423
+ interface TabProps extends Omit<TabProps$1, 'icon'> {
424
+ badge?: number | string;
425
+ badgeVariant?: 'default' | 'primary' | 'success' | 'error';
426
+ }
427
+ declare const Tab: React.FC<TabProps>;
428
+
429
+ interface MenuProps extends Omit<MenuProps$1, 'open'> {
430
+ anchorEl?: HTMLElement | null;
431
+ onClose: () => void;
432
+ }
433
+ declare const Menu: React.FC<MenuProps>;
434
+ interface MenuItemProps {
435
+ icon?: React.ReactNode;
436
+ label: string;
437
+ onClick?: () => void;
438
+ disabled?: boolean;
439
+ divider?: boolean;
440
+ }
441
+ declare const MenuItem: React.FC<MenuItemProps>;
442
+
443
+ interface PaginationProps extends Omit<PaginationProps$1, 'color'> {
444
+ color?: 'primary' | 'secondary' | 'standard';
445
+ }
446
+ declare const Pagination: React.FC<PaginationProps>;
447
+
448
+ interface SelectorOption {
449
+ id: string;
450
+ name: string;
451
+ description?: string;
452
+ avatar?: string;
453
+ icon?: React.ReactNode;
454
+ disabled?: boolean;
455
+ }
456
+ interface SelectorProps {
457
+ options: SelectorOption[];
458
+ selectedId: string | null;
459
+ onSelect: (id: string) => void;
460
+ onCreate?: () => void;
461
+ loading?: boolean;
462
+ placeholder?: string;
463
+ emptyMessage?: string;
464
+ compact?: boolean;
465
+ renderSelected?: (option: SelectorOption) => React.ReactNode;
466
+ width?: number;
467
+ }
468
+ declare const Selector: React.FC<SelectorProps>;
469
+
470
+ interface DialogProps extends Omit<DialogProps$1, 'title'> {
471
+ open: boolean;
472
+ title: ReactNode;
473
+ onClose: () => void;
474
+ onSubmit?: () => void;
475
+ submitLabel?: string;
476
+ cancelLabel?: string;
477
+ isLoading?: boolean;
478
+ disableSubmit?: boolean;
479
+ showActions?: boolean;
480
+ headerAction?: ReactNode;
481
+ fullWidth?: boolean;
482
+ maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
483
+ children: ReactNode;
484
+ dividers?: boolean;
485
+ confirmBeforeClose?: boolean;
486
+ }
487
+ declare const Dialog: React.FC<DialogProps>;
488
+
489
+ interface DrawerProps extends DrawerProps$1 {
490
+ /**
491
+ * Width of the drawer when open
492
+ * @default 240
493
+ */
494
+ width?: number;
495
+ /**
496
+ * Width of the drawer when collapsed (mini variant)
497
+ * @default 72
498
+ */
499
+ miniWidth?: number;
500
+ /**
501
+ * Whether the drawer is in collapsed/mini state
502
+ * @default false
503
+ */
504
+ collapsed?: boolean;
505
+ }
506
+ /**
507
+ * Drawer component for navigation drawers and side panels
508
+ *
509
+ * @example
510
+ * ```tsx
511
+ * <Drawer open={true} variant="permanent" width={240}>
512
+ * <List>
513
+ * <ListItem>Item 1</ListItem>
514
+ * </List>
515
+ * </Drawer>
516
+ * ```
517
+ */
518
+ declare const Drawer: React.FC<DrawerProps>;
519
+
520
+ interface CardProps extends CardProps$1 {
521
+ hoverable?: boolean;
522
+ clickable?: boolean;
523
+ }
524
+ declare const Card: React.FC<CardProps>;
525
+ declare const CardContent: React.FC<CardContentProps>;
526
+ declare const CardHeader: React.FC<CardHeaderProps>;
527
+ declare const CardActions: React.FC<CardActionsProps>;
528
+
529
+ interface ListProps extends ListProps$1 {
530
+ }
531
+ declare const List: React.FC<ListProps>;
532
+ interface ListItemProps extends ListItemProps$1 {
533
+ primary?: React.ReactNode;
534
+ secondary?: React.ReactNode;
535
+ icon?: React.ReactNode;
536
+ action?: React.ReactNode;
537
+ hoverable?: boolean;
538
+ }
539
+ declare const ListItem: React.FC<ListItemProps>;
540
+
541
+ interface AvatarProps extends AvatarProps$1 {
542
+ size?: 'small' | 'medium' | 'large' | number;
543
+ }
544
+ declare const Avatar: React.FC<AvatarProps>;
545
+
546
+ interface TableProps extends TableProps$1 {
547
+ stickyHeader?: boolean;
548
+ }
549
+ declare const Table: React.FC<TableProps>;
550
+ interface TableHeaderProps {
551
+ columns: Array<{
552
+ id: string;
553
+ label: string;
554
+ sortable?: boolean;
555
+ align?: 'left' | 'center' | 'right';
556
+ }>;
557
+ orderBy?: string;
558
+ order?: 'asc' | 'desc';
559
+ onSort?: (columnId: string) => void;
560
+ }
561
+ declare const TableHeader: React.FC<TableHeaderProps>;
562
+
563
+ interface BreadcrumbItem {
564
+ label: string;
565
+ href?: string;
566
+ onClick?: () => void;
567
+ }
568
+ interface BreadcrumbsProps extends Omit<BreadcrumbsProps$1, 'children'> {
569
+ items: BreadcrumbItem[];
570
+ }
571
+ declare const Breadcrumbs: React.FC<BreadcrumbsProps>;
572
+
573
+ interface AccordionProps extends Omit<AccordionProps$1, 'children'> {
574
+ title: string;
575
+ children: NonNullable<React.ReactNode>;
576
+ defaultExpanded?: boolean;
577
+ }
578
+ declare const Accordion: React.FC<AccordionProps>;
579
+
580
+ interface PaperProps extends PaperProps$1 {
581
+ variant?: 'elevation' | 'outlined';
582
+ }
583
+ declare const Paper: React.FC<PaperProps>;
584
+
585
+ interface DividerProps extends DividerProps$1 {
586
+ variant?: 'fullWidth' | 'inset' | 'middle';
587
+ }
588
+ declare const Divider: React.FC<DividerProps>;
589
+
590
+ interface LinkProps extends LinkProps$1 {
591
+ underline?: 'none' | 'hover' | 'always';
592
+ }
593
+ declare const Link: React.FC<LinkProps>;
594
+
595
+ interface AppBarProps extends AppBarProps$1 {
596
+ height?: number;
597
+ }
598
+ declare const AppBar: React.FC<AppBarProps>;
599
+
600
+ interface CollapseProps extends CollapseProps$1 {
601
+ /**
602
+ * If `true`, the component will transition in
603
+ */
604
+ in?: boolean;
605
+ /**
606
+ * The content to collapse
607
+ */
608
+ children?: React.ReactNode;
609
+ }
610
+ /**
611
+ * Collapse component - provides a collapse animation
612
+ *
613
+ * @example
614
+ * ```tsx
615
+ * <Collapse in={open}>
616
+ * <Box>Collapsible content</Box>
617
+ * </Collapse>
618
+ * ```
619
+ */
620
+ declare const Collapse: React.FC<CollapseProps>;
621
+
622
+ type AlertSeverity = 'success' | 'error' | 'warning' | 'info';
623
+ interface AlertProps extends Omit<AlertProps$1, 'severity'> {
624
+ severity?: AlertSeverity;
625
+ /**
626
+ * Title to display above the alert message
627
+ */
628
+ title?: string;
629
+ }
630
+ declare const Alert: React.FC<AlertProps>;
631
+
632
+ interface SnackbarProps extends Omit<SnackbarProps$1, 'children'> {
633
+ /**
634
+ * Message to display in the snackbar
635
+ */
636
+ message?: string;
637
+ /**
638
+ * Severity of the alert inside snackbar
639
+ */
640
+ severity?: AlertSeverity;
641
+ /**
642
+ * Title to display in the alert (optional)
643
+ */
644
+ title?: string;
645
+ /**
646
+ * Alert variant
647
+ * @default 'filled'
648
+ */
649
+ variant?: 'filled' | 'standard' | 'outlined';
650
+ /**
651
+ * Callback when snackbar is closed
652
+ */
653
+ onClose?: () => void;
654
+ /**
655
+ * Children to render instead of message (allows custom content)
656
+ * Must be a ReactElement to match MuiSnackbar requirements
657
+ */
658
+ children?: React.ReactElement;
659
+ }
660
+ declare const Snackbar: React.FC<SnackbarProps>;
661
+
662
+ interface EmptyStateProps {
663
+ title?: string;
664
+ description?: string;
665
+ icon?: React.ReactNode;
666
+ action?: React.ReactNode;
667
+ }
668
+ declare const EmptyState: React.FC<EmptyStateProps>;
669
+
670
+ interface LoadingProps {
671
+ message?: string;
672
+ size?: number;
673
+ fullScreen?: boolean;
674
+ }
675
+ declare const Loading: React.FC<LoadingProps>;
676
+
677
+ interface AppLoadingProps {
678
+ /**
679
+ * Loading message to display
680
+ * @default "Loading..."
681
+ */
682
+ message?: string;
683
+ /**
684
+ * Logo source URL or path
685
+ * @default "/icons/logo.png"
686
+ */
687
+ logo?: string;
688
+ /**
689
+ * Custom styles
690
+ */
691
+ sx?: any;
692
+ }
693
+ /**
694
+ * AppLoading component - Full-screen loading indicator with logo
695
+ *
696
+ * @example
697
+ * ```tsx
698
+ * <AppLoading message="Initializing application..." />
699
+ * ```
700
+ */
701
+ declare const AppLoading: React.FC<AppLoadingProps>;
702
+
703
+ interface CircularProgressProps extends CircularProgressProps$1 {
704
+ /**
705
+ * Size of the progress indicator
706
+ * @default 40
707
+ */
708
+ size?: number | string;
709
+ /**
710
+ * Thickness of the progress indicator
711
+ * @default 4
712
+ */
713
+ thickness?: number;
714
+ }
715
+ /**
716
+ * CircularProgress component - wrapper around MUI CircularProgress
717
+ *
718
+ * @example
719
+ * ```tsx
720
+ * <CircularProgress size={40} thickness={4} />
721
+ * ```
722
+ */
723
+ declare const CircularProgress: React.FC<CircularProgressProps>;
724
+
725
+ interface FlowEditorProps extends Omit<ReactFlowProps, 'nodes' | 'edges'> {
726
+ /**
727
+ * Nodes to display in the flow
728
+ */
729
+ nodes: Node[];
730
+ /**
731
+ * Edges to display in the flow
732
+ */
733
+ edges: Edge[];
734
+ /**
735
+ * Callback when nodes change
736
+ */
737
+ onNodesChange?: OnNodesChange;
738
+ /**
739
+ * Callback when edges change
740
+ */
741
+ onEdgesChange?: OnEdgesChange;
742
+ /**
743
+ * Custom node types
744
+ */
745
+ nodeTypes?: NodeTypes;
746
+ /**
747
+ * Custom edge types
748
+ */
749
+ edgeTypes?: EdgeTypes;
750
+ /**
751
+ * Height of the flow editor
752
+ * @default '600px'
753
+ */
754
+ height?: string | number;
755
+ /**
756
+ * Show background grid
757
+ * @default true
758
+ */
759
+ showBackground?: boolean;
760
+ /**
761
+ * Background variant
762
+ * @default 'dots'
763
+ */
764
+ backgroundVariant?: BackgroundVariant;
765
+ /**
766
+ * Show controls
767
+ * @default true
768
+ */
769
+ showControls?: boolean;
770
+ /**
771
+ * Show minimap
772
+ * @default false
773
+ */
774
+ showMinimap?: boolean;
775
+ /**
776
+ * Container props
777
+ */
778
+ containerProps?: BoxProps;
779
+ /**
780
+ * Callback when flow instance is initialized
781
+ */
782
+ onInit?: (instance: ReactFlowInstance) => void;
783
+ }
784
+ /**
785
+ * FlowEditor component - wrapper around ReactFlow with theme integration
786
+ *
787
+ * @example
788
+ * ```tsx
789
+ * <FlowEditor
790
+ * nodes={nodes}
791
+ * edges={edges}
792
+ * onNodesChange={onNodesChange}
793
+ * onEdgesChange={onEdgesChange}
794
+ * height="500px"
795
+ * showBackground
796
+ * showControls
797
+ * />
798
+ * ```
799
+ */
800
+ declare const FlowEditor: React.FC<FlowEditorProps>;
801
+
802
+ type CodeEditorLanguage = 'typescript' | 'javascript' | 'json' | 'html' | 'css' | 'python' | 'yaml' | 'markdown' | 'sql' | 'xml' | 'plaintext';
803
+ interface CodeEditorProps {
804
+ /**
805
+ * Current value of the editor
806
+ */
807
+ value: string;
808
+ /**
809
+ * Callback when value changes
810
+ */
811
+ onChange: (value: string) => void;
812
+ /**
813
+ * Programming language
814
+ * @default 'typescript'
815
+ */
816
+ language?: CodeEditorLanguage;
817
+ /**
818
+ * Height of the editor
819
+ * @default '400px'
820
+ */
821
+ height?: string | number;
822
+ /**
823
+ * Minimum height
824
+ */
825
+ minHeight?: string | number;
826
+ /**
827
+ * Theme ('light' | 'dark' | 'vs-dark' | 'hc-black')
828
+ * If not provided, will use theme from design system
829
+ */
830
+ theme?: string;
831
+ /**
832
+ * Show line numbers
833
+ * @default 'on'
834
+ */
835
+ lineNumbers?: 'on' | 'off' | 'relative' | 'interval';
836
+ /**
837
+ * Editor options (monaco editor options)
838
+ */
839
+ options?: editor.IStandaloneEditorConstructionOptions;
840
+ /**
841
+ * Callback when editor is mounted
842
+ */
843
+ onMount?: (editor: editor.IStandaloneCodeEditor, monaco: Monaco) => void;
844
+ /**
845
+ * Callback for validation errors
846
+ */
847
+ onValidate?: (markers: editor.IMarker[]) => void;
848
+ /**
849
+ * Ref to editor instance
850
+ */
851
+ editorRef?: React.MutableRefObject<editor.IStandaloneCodeEditor | null>;
852
+ /**
853
+ * Ref to Monaco instance
854
+ */
855
+ monacoRef?: React.MutableRefObject<Monaco | null>;
856
+ /**
857
+ * Callback when fullscreen state changes
858
+ */
859
+ onFullscreenChange?: (isFullscreen: boolean) => void;
860
+ /**
861
+ * Props for the container Box.
862
+ */
863
+ containerProps?: BoxProps;
864
+ /**
865
+ * Additional TypeScript type definitions to add to the editor context.
866
+ * Can be a string with type definitions or an array of type definition strings.
867
+ * Each string will be added as a separate extra lib to Monaco.
868
+ *
869
+ * @example
870
+ * ```tsx
871
+ * <CodeEditor
872
+ * value={code}
873
+ * onChange={setCode}
874
+ * typeDefinitions={`
875
+ * declare interface MyCustomType {
876
+ * id: string;
877
+ * name: string;
878
+ * }
879
+ * `}
880
+ * />
881
+ * ```
882
+ */
883
+ typeDefinitions?: string | string[];
884
+ }
885
+ /**
886
+ * CodeEditor component - wrapper around Monaco Editor matching dynamic-indexer-client implementation
887
+ *
888
+ * @example
889
+ * ```tsx
890
+ * <CodeEditor
891
+ * value={code}
892
+ * onChange={setCode}
893
+ * language="typescript"
894
+ * height="500px"
895
+ * onValidate={(markers) => console.log('Errors:', markers)}
896
+ * />
897
+ * ```
898
+ */
899
+ declare const CodeEditor: React.FC<CodeEditorProps>;
900
+
901
+ export { Accordion, type AccordionProps, Alert, type AlertProps, type AlertSeverity, AppBar, type AppBarProps, AppLoading, type AppLoadingProps, Avatar, type AvatarProps, Badge, type BadgeProps, type BreadcrumbItem, Breadcrumbs, type BreadcrumbsProps, Button, ButtonGroup, type ButtonGroupProps, type ButtonProps, Card, CardActions, CardContent, CardHeader, type CardProps, Checkbox, type CheckboxProps, Chip, type ChipProps, CircularProgress, type CircularProgressProps, CodeEditor, type CodeEditorLanguage, type CodeEditorProps, Collapse, type CollapseProps, Dialog, type DialogProps, Divider, type DividerProps, Drawer, type DrawerProps, Dropdown, type DropdownProps, EmptyState, type EmptyStateProps, FlowEditor, type FlowEditorProps, IconButton, type IconButtonProps, Link, type LinkProps, List, ListItem, type ListItemProps, type ListProps, Loading, LoadingButton, type LoadingButtonProps, type LoadingProps, Menu, MenuItem, type MenuItemProps, type MenuProps, Pagination, type PaginationProps, Paper, type PaperProps, Progress, type ProgressProps, Radio, type RadioProps, SearchField, type SearchFieldProps, Selector, type SelectorOption, type SelectorProps, type Service, ServiceSelectorButton, type ServiceSelectorButtonProps, Sidebar, SidebarItem, type SidebarItemProps, type SidebarProps, Snackbar, type SnackbarProps, Step, StepButton, type StepButtonProps, StepContent, type StepContentProps, StepLabel, type StepLabelProps, type StepProps, Stepper, type StepperProps, Switch, type SwitchProps, Tab, type TabProps, Table, TableHeader, type TableHeaderProps, type TableProps, TextField, type TextFieldProps, ToggleButton, ToggleButtonGroup, type ToggleButtonGroupProps, type ToggleButtonProps, Tooltip, type TooltipProps, type Workspace, WorkspaceSelectorButton, type WorkspaceSelectorButtonProps, colors, theme };