@moderneinc/design-system-components 6.0.0-next.02da4a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +76 -0
  2. package/dist/ActivityHeader/ActivityHeader.d.ts +58 -0
  3. package/dist/ActivityIndicatorCell/ActivityIndicatorCell.d.ts +65 -0
  4. package/dist/Alert/Alert.d.ts +54 -0
  5. package/dist/Badge/Badge.d.ts +40 -0
  6. package/dist/Banner/Banner.d.ts +52 -0
  7. package/dist/Breadcrumbs/Breadcrumbs.d.ts +53 -0
  8. package/dist/Button/Button.d.ts +56 -0
  9. package/dist/ButtonTab/ButtonTab.d.ts +16 -0
  10. package/dist/ButtonTabGroup/ButtonTabGroup.d.ts +31 -0
  11. package/dist/CanceledIcon/CanceledIcon.d.ts +11 -0
  12. package/dist/Card/Card.d.ts +32 -0
  13. package/dist/Checkbox/Checkbox.d.ts +78 -0
  14. package/dist/CheckboxWithText/CheckboxWithText.d.ts +32 -0
  15. package/dist/CodeSnippet/CodeSnippet.d.ts +38 -0
  16. package/dist/DataGrid/DataGrid.d.ts +58 -0
  17. package/dist/DataGrid/DataGrid.styles.d.ts +14 -0
  18. package/dist/DataGridCell/DataGridCell.d.ts +120 -0
  19. package/dist/DataGridColumnsButton/DataGridColumnsButton.d.ts +15 -0
  20. package/dist/DataGridColumnsPanel/DataGridColumnsPanel.d.ts +31 -0
  21. package/dist/DataGridFilterPanel/DataGridFilterPanel.d.ts +55 -0
  22. package/dist/DataGridFiltersButton/DataGridFiltersButton.d.ts +16 -0
  23. package/dist/DataGridHeaderCell/DataGridHeaderCell.d.ts +8 -0
  24. package/dist/DataGridHeaderLabel/DataGridHeaderLabel.d.ts +17 -0
  25. package/dist/DatePicker/DatePicker.d.ts +97 -0
  26. package/dist/DatePickerListItem/DatePickerListItem.d.ts +4 -0
  27. package/dist/DatePickerMenu/DatePickerMenu.d.ts +4 -0
  28. package/dist/DateTimeCell/DateTimeCell.d.ts +17 -0
  29. package/dist/Divider/Divider.d.ts +30 -0
  30. package/dist/Dot/Dot.d.ts +36 -0
  31. package/dist/DownloadToast/DownloadToast.d.ts +45 -0
  32. package/dist/DropdownInputField/DropdownInputField.d.ts +17 -0
  33. package/dist/EmptyState/EmptyState.d.ts +17 -0
  34. package/dist/FilledStatusIcons/FilledStatusIcons.d.ts +41 -0
  35. package/dist/FilterChip/FilterChip.d.ts +40 -0
  36. package/dist/Footer/Footer.d.ts +111 -0
  37. package/dist/GeneralAvatar/GeneralAvatar.d.ts +23 -0
  38. package/dist/IconButton/IconButton.d.ts +42 -0
  39. package/dist/IconWrapper/IconWrapper.d.ts +20 -0
  40. package/dist/InfiniteScrollGrid/InfiniteScrollGrid.d.ts +44 -0
  41. package/dist/InputField/InputField.d.ts +65 -0
  42. package/dist/LinkCell/LinkCell.d.ts +17 -0
  43. package/dist/ListItem/ListItem.d.ts +71 -0
  44. package/dist/ListItemButton/ListItemButton.d.ts +64 -0
  45. package/dist/LoadingSpinner/LoadingSpinner.d.ts +28 -0
  46. package/dist/Menu/Menu.d.ts +30 -0
  47. package/dist/MenuItem/MenuItem.d.ts +69 -0
  48. package/dist/ModActionsCell/ModActionsCell.d.ts +9 -0
  49. package/dist/ModAvatarCell/ModAvatarCell.d.ts +24 -0
  50. package/dist/ModIconCell/ModIconCell.d.ts +13 -0
  51. package/dist/ModLogoCell/ModLogoCell.d.ts +23 -0
  52. package/dist/ModProgressCell/ModProgressCell.d.ts +20 -0
  53. package/dist/ModStatusCell/ModStatusCell.d.ts +29 -0
  54. package/dist/Modal/Modal.d.ts +106 -0
  55. package/dist/NavIconButton/NavIconButton.d.ts +17 -0
  56. package/dist/NavigationAvatar/NavigationAvatar.d.ts +13 -0
  57. package/dist/NavigationItem/NavigationItem.d.ts +55 -0
  58. package/dist/PageContent/PageContent.d.ts +150 -0
  59. package/dist/PaginatedGrid/PaginatedGrid.d.ts +32 -0
  60. package/dist/ProgressSpinner/ProgressSpinner.d.ts +17 -0
  61. package/dist/Progressbar/Progressbar.d.ts +35 -0
  62. package/dist/QuickFilter/QuickFilter.d.ts +42 -0
  63. package/dist/Radio/Radio.d.ts +59 -0
  64. package/dist/RadioButtonWithText/RadioButtonWithText.d.ts +4 -0
  65. package/dist/RipplingDot/RipplingDot.d.ts +12 -0
  66. package/dist/SearchChip/SearchChip.d.ts +17 -0
  67. package/dist/Select/Select.d.ts +24 -0
  68. package/dist/SelectField/SelectField.d.ts +64 -0
  69. package/dist/SideNav/ModSideNavContext.d.ts +5 -0
  70. package/dist/SideNav/SideNav.d.ts +33 -0
  71. package/dist/Skeleton/Skeleton.d.ts +29 -0
  72. package/dist/TabPanel/TabPanel.d.ts +47 -0
  73. package/dist/Table/Table.d.ts +64 -0
  74. package/dist/Tabs/Tabs.d.ts +28 -0
  75. package/dist/Tag/Tag.d.ts +51 -0
  76. package/dist/Toast/Toast.d.ts +66 -0
  77. package/dist/Toggle/Toggle.d.ts +52 -0
  78. package/dist/ToggleButton/ToggleButton.d.ts +34 -0
  79. package/dist/ToggleButtonGroup/ToggleButtonGroup.d.ts +33 -0
  80. package/dist/ToggleButtonWithText/ToggleButtonWithText.d.ts +4 -0
  81. package/dist/Toolbar/Toolbar.d.ts +51 -0
  82. package/dist/Tooltip/Tooltip.d.ts +46 -0
  83. package/dist/TopNav/TopNav.d.ts +4 -0
  84. package/dist/TourModal/TourModal.d.ts +4 -0
  85. package/dist/Tree/Tree.d.ts +38 -0
  86. package/dist/TypologyControl/TypologyControl.d.ts +19 -0
  87. package/dist/VibratingDot/VibratingDot.d.ts +12 -0
  88. package/dist/index.d.ts +3147 -0
  89. package/dist/index.esm.js +7414 -0
  90. package/dist/index.esm.js.map +1 -0
  91. package/dist/index.js +7527 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/utils/colorHelpers.d.ts +7 -0
  94. package/dist/utils/focusRing.d.ts +10 -0
  95. package/dist/utils/muiProps.d.ts +1 -0
  96. package/package.json +100 -0
@@ -0,0 +1,3147 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React$1 from 'react';
3
+ import React__default, { ReactNode, ElementType, HTMLAttributes, ComponentPropsWithoutRef, ComponentType, FunctionComponent } from 'react';
4
+ import { GridDensity, GridFilterPanel, GridRenderCellParams, ToolbarProps } from '@mui/x-data-grid';
5
+ import { AlertProps } from '@mui/material/Alert';
6
+ import Chip, { ChipProps } from '@mui/material/Chip';
7
+ import { LinkProps } from '@mui/material/Link';
8
+ import ButtonBase, { ButtonBaseProps } from '@mui/material/ButtonBase';
9
+ import { ToggleButtonProps } from '@mui/material/ToggleButton';
10
+ import { ToggleButtonGroupProps } from '@mui/material/ToggleButtonGroup';
11
+ import { SvgIconProps } from '@mui/material/SvgIcon';
12
+ import { CardProps } from '@mui/material/Card';
13
+ import { CheckboxProps } from '@mui/material/Checkbox';
14
+ import { GridDensity as GridDensity$1, DataGridProProps, GridSlots, GridColumnsPanelProps } from '@mui/x-data-grid-pro';
15
+ import { SxProps, Theme, Breakpoint } from '@mui/material/styles';
16
+ import { DatePickerProps } from '@mui/x-date-pickers/DatePicker';
17
+ import { PickersShortcutsItem } from '@mui/x-date-pickers/PickersShortcuts';
18
+ import { DateRangePickerProps } from '@mui/x-date-pickers-pro/DateRangePicker';
19
+ import { DateRange } from '@mui/x-date-pickers-pro/models';
20
+ import * as _mui_system from '@mui/system';
21
+ import * as _mui_material from '@mui/material';
22
+ import { BoxProps as BoxProps$1 } from '@mui/material';
23
+ import { DividerProps } from '@mui/material/Divider';
24
+ import { PaperProps } from '@mui/material/Paper';
25
+ import { AvatarProps } from '@mui/material/Avatar';
26
+ import { InputBaseProps } from '@mui/material/InputBase';
27
+ import { ListItemButtonProps } from '@mui/material/ListItemButton';
28
+ import { MenuProps } from '@mui/material/Menu';
29
+ import MenuItem from '@mui/material/MenuItem';
30
+ import { DialogProps } from '@mui/material/Dialog';
31
+ import { BoxProps } from '@mui/material/Box';
32
+ import { LinearProgressProps } from '@mui/material/LinearProgress';
33
+ import { RadioProps } from '@mui/material/Radio';
34
+ import { SelectProps, SelectChangeEvent } from '@mui/material/Select';
35
+ import { SkeletonProps } from '@mui/material/Skeleton';
36
+ import { TableProps } from '@mui/material/Table';
37
+ import * as _mui_material_OverridableComponent from '@mui/material/OverridableComponent';
38
+ import { TabProps } from '@mui/material/Tab';
39
+ import Button from '@mui/material/Button';
40
+ import { SwitchProps } from '@mui/material/Switch';
41
+ import { TooltipProps } from '@mui/material/Tooltip';
42
+ import { TreeItemProps } from '@mui/x-tree-view/TreeItem';
43
+ import { RichTreeViewProProps } from '@mui/x-tree-view-pro/RichTreeViewPro';
44
+
45
+ interface ModFooterProps {
46
+ /**
47
+ * Footer variant
48
+ * - "loading": Shows result count with loading indicator and "Load more" button
49
+ * - "pagination": Shows pagination controls with page range and navigation buttons
50
+ * @default "pagination"
51
+ */
52
+ variant?: 'loading' | 'pagination';
53
+ /**
54
+ * Whether to show the drop shadow on top of footer (for scrolling effect)
55
+ * @default false
56
+ */
57
+ showShadow?: boolean;
58
+ /**
59
+ * Whether to show the loading indicator (only for "loading" variant)
60
+ * @default false
61
+ */
62
+ loading?: boolean;
63
+ /**
64
+ * Total number of results (for "loading" variant)
65
+ */
66
+ resultCount?: number;
67
+ /**
68
+ * Callback when "Load more" is clicked (for "loading" variant)
69
+ */
70
+ onLoadMore?: () => void;
71
+ /**
72
+ * Whether there are more results to load (for "loading" variant)
73
+ * @default true
74
+ */
75
+ hasMore?: boolean;
76
+ /**
77
+ * Custom pagination info text (for "pagination" variant)
78
+ * If not provided, will attempt to use DataGrid's pagination state
79
+ * @example "1-80 of 120"
80
+ */
81
+ paginationInfo?: string;
82
+ /**
83
+ * Callback when previous page button is clicked (for "pagination" variant)
84
+ */
85
+ onPreviousPage?: () => void;
86
+ /**
87
+ * Callback when next page button is clicked (for "pagination" variant)
88
+ */
89
+ onNextPage?: () => void;
90
+ /**
91
+ * Whether the previous page button is disabled (for "pagination" variant)
92
+ * If not provided, will attempt to use DataGrid's pagination state
93
+ */
94
+ hasPreviousPage?: boolean;
95
+ /**
96
+ * Whether the next page button is disabled (for "pagination" variant)
97
+ * If not provided, will attempt to use DataGrid's pagination state
98
+ */
99
+ hasNextPage?: boolean;
100
+ /**
101
+ * Whether to show the selected row count on the left side (pagination variant)
102
+ * @default true
103
+ */
104
+ showSelected?: boolean;
105
+ /**
106
+ * Custom content to render in the footer
107
+ */
108
+ children?: ReactNode;
109
+ }
110
+ /**
111
+ * ModFooter - Footer component for data grids
112
+ *
113
+ * Provides two variants:
114
+ * - "loading": Shows result count with loading indicator and "Load more" button for infinite scroll
115
+ * - "pagination": Shows pagination controls with page range and navigation buttons
116
+ *
117
+ * @example
118
+ * // Loading variant with load more
119
+ * <ModFooter
120
+ * variant="loading"
121
+ * loading={isLoading}
122
+ * resultCount={40}
123
+ * hasMore={true}
124
+ * onLoadMore={() => loadMore()}
125
+ * />
126
+ *
127
+ * @example
128
+ * // Pagination variant
129
+ * <ModFooter
130
+ * variant="pagination"
131
+ * paginationInfo="1-80 of 120"
132
+ * hasPreviousPage={false}
133
+ * hasNextPage={true}
134
+ * onPreviousPage={() => goToPrevious()}
135
+ * onNextPage={() => goToNext()}
136
+ * />
137
+ *
138
+ * @example
139
+ * // Used with DataGrid (automatically reads pagination state)
140
+ * <DataGrid
141
+ * rows={rows}
142
+ * columns={columns}
143
+ * slots={{ footer: ModFooter }}
144
+ * slotProps={{
145
+ * footer: {
146
+ * variant: 'pagination',
147
+ * },
148
+ * }}
149
+ * />
150
+ */
151
+ declare const ModFooter: {
152
+ ({ variant, showShadow, loading, resultCount, onLoadMore, hasMore, paginationInfo, onPreviousPage, onNextPage, hasPreviousPage, hasNextPage, showSelected, children, }: ModFooterProps): react_jsx_runtime.JSX.Element;
153
+ displayName: string;
154
+ };
155
+
156
+ /**
157
+ * Size variant for ActivityHeader (matches DataGrid size variants)
158
+ * Alias for MUI's GridDensity type
159
+ */
160
+ type ActivityHeaderSize = GridDensity;
161
+ /**
162
+ * Activity color type for ModActivityHeader
163
+ */
164
+ type ActivityColor = 'commitJob' | 'recipeRun' | 'visualization';
165
+ /**
166
+ * Props for ModActivityHeader component
167
+ */
168
+ interface ModActivityHeaderProps {
169
+ /**
170
+ * Size variant matching DataGrid row heights
171
+ * @default 'compact'
172
+ */
173
+ size?: GridDensity;
174
+ /**
175
+ * Activity type color to display
176
+ * @default 'commitJob'
177
+ */
178
+ color?: ActivityColor;
179
+ }
180
+ /**
181
+ * ModActivityHeader - Header cell showing activity type legend for DataGrid
182
+ *
183
+ * A header cell component that displays a visual legend of activity event types
184
+ * using colored dots. Designed to be used as the column header for activity
185
+ * timeline columns in DataGrid.
186
+ *
187
+ * **Design Tokens:**
188
+ * - `semanticColors.activity.commitJob` - Blue dot for commit job events (#2F42FF)
189
+ * - `semanticColors.activity.recipeRun` - Purple dot for recipe run events (#992FB9)
190
+ * - `#27AA88` - Teal dot for visualization events (hardcoded - needs design token fix)
191
+ * - `semanticColors.border.secondary` - Bottom border (#e5e7eb)
192
+ * - `spacing.spacing_1_1_2` - Dot size (12px)
193
+ *
194
+ * @example
195
+ * // In DataGrid column definition
196
+ * {
197
+ * field: 'activity',
198
+ * headerName: '',
199
+ * width: 34,
200
+ * renderHeader: () => <ModActivityHeader size="condensed" color="commitJob" />,
201
+ * renderCell: (params) => (
202
+ * <ModActivityIndicatorCell
203
+ * event={params.row.eventType}
204
+ * scene={params.row.scene}
205
+ * />
206
+ * )
207
+ * }
208
+ */
209
+ declare const ModActivityHeader: {
210
+ ({ size, color, }: ModActivityHeaderProps): react_jsx_runtime.JSX.Element;
211
+ displayName: string;
212
+ };
213
+
214
+ declare const CIRCLE_RADIUS = 6;
215
+ /**
216
+ * Event type for activity indicator
217
+ */
218
+ type ActivityEvent = 'commit-job' | 'recipe-run' | 'visualization' | 'none';
219
+ /**
220
+ * Scene types based on moderne-ui ActivityRowScenes
221
+ */
222
+ declare enum ActivityScene {
223
+ BLANK = "blank",
224
+ CIRCLE = "circle",
225
+ CIRCLE_WITH_RIGHT_PATH = "circle-with-right-path",
226
+ CIRCLE_WITH_TOP_PATH = "circle-with-top-path",
227
+ CIRCLE_WITH_TOP_AND_BOTTOM_PATH = "circle-with-top-and-bottom-path",
228
+ PATH_CORNER = "path-corner",
229
+ PATH_CORNER_WITH_HORIZONTAL = "path-corner-with-horizontal",
230
+ PATH_VERTICAL = "path-vertical",
231
+ PATH_HORIZONTAL = "path-horizontal"
232
+ }
233
+ /**
234
+ * Props for ModActivityIndicatorCell component
235
+ */
236
+ interface ModActivityIndicatorCellProps {
237
+ /**
238
+ * Type of activity event (determines color for circle/dot)
239
+ */
240
+ event?: ActivityEvent;
241
+ /**
242
+ * Secondary event type for path color (e.g., when a recipe-run connects to a commit-job)
243
+ * If not specified, paths use the primary event color
244
+ */
245
+ secondaryEvent?: ActivityEvent;
246
+ /**
247
+ * Scene to render (combines shapes and paths)
248
+ */
249
+ scene?: ActivityScene;
250
+ /**
251
+ * Whether to show the event dot
252
+ * @default true
253
+ */
254
+ showDot?: boolean;
255
+ }
256
+ /**
257
+ * ModActivityIndicatorCell - Timeline activity indicator for DataGrid cells
258
+ *
259
+ * Based on moderne-ui's RecentActivitySceneSelector with solid filled circles.
260
+ *
261
+ * @example
262
+ * // In DataGrid column definition
263
+ * {
264
+ * field: 'activity',
265
+ * headerName: '',
266
+ * width: 35,
267
+ * renderCell: (params) => (
268
+ * <ModActivityIndicatorCell
269
+ * event="commit-job"
270
+ * scene={ActivityScene.CIRCLE_WITH_TOP_AND_BOTTOM_PATH}
271
+ * />
272
+ * )
273
+ * }
274
+ */
275
+ declare const ModActivityIndicatorCell: {
276
+ ({ event, secondaryEvent, scene, showDot, }: ModActivityIndicatorCellProps): react_jsx_runtime.JSX.Element | null;
277
+ displayName: string;
278
+ };
279
+
280
+ type Intent$2 = 'success' | 'error' | 'warning' | 'offline' | 'info';
281
+ type AlertType = 'outlined' | 'filled';
282
+ type AlertSize = 'default' | 'compact';
283
+ interface ModAlertProps extends Omit<AlertProps, 'severity' | 'variant' | 'color'> {
284
+ /**
285
+ * The intent/purpose of the alert
286
+ * @default "success"
287
+ */
288
+ intent?: Intent$2;
289
+ /**
290
+ * Visual type: outlined (light bg) or filled (solid bg)
291
+ * @default "outlined"
292
+ */
293
+ type?: AlertType;
294
+ /**
295
+ * Vertical density. `default` is page-level (64px fixed height,
296
+ * supports title + description). `compact` is inline-panel use
297
+ * (auto height, 40px min, single-line optimized for terse messages).
298
+ * @default "default"
299
+ */
300
+ size?: AlertSize;
301
+ /**
302
+ * The title text displayed in the alert
303
+ */
304
+ title: string;
305
+ /**
306
+ * Optional supporting description text
307
+ */
308
+ description?: string;
309
+ /**
310
+ * Custom icon to display (defaults to intent-based icon)
311
+ */
312
+ icon?: ReactNode;
313
+ /**
314
+ * Optional action element (typically a button) displayed on the right
315
+ */
316
+ action?: ReactNode;
317
+ /**
318
+ * Optional content rendered below the title inside the alert container.
319
+ * Use for rich content like stack traces or code blocks. When present,
320
+ * the alert expands to auto height and top-aligns its icon and action.
321
+ */
322
+ children?: ReactNode;
323
+ }
324
+ /**
325
+ * ModAlert - Alert component for displaying contextual status messages
326
+ */
327
+ declare const ModAlert: {
328
+ ({ intent, type, size, title, description, icon, action, children, ...props }: ModAlertProps): react_jsx_runtime.JSX.Element;
329
+ displayName: string;
330
+ };
331
+
332
+ type BadgeSize = 'small' | 'medium';
333
+ type BadgeVariant = 'filled' | 'outlined';
334
+ type BadgeShape = 'square' | 'rounded';
335
+ interface ModBadgeProps extends Omit<ChipProps, 'variant' | 'size'> {
336
+ /**
337
+ * The color/state of the badge. Ignored when `variant="outlined"`.
338
+ * @default "default"
339
+ */
340
+ color?: 'default' | 'error' | 'warning' | 'success' | 'info';
341
+ /**
342
+ * Visual density of the badge. `small` is 20px tall, `medium` is 24px tall.
343
+ * @default "medium"
344
+ */
345
+ size?: BadgeSize;
346
+ /**
347
+ * Visual treatment. `filled` uses a per-color tinted background;
348
+ * `outlined` uses a transparent background with a neutral secondary border.
349
+ * @default "filled"
350
+ */
351
+ variant?: BadgeVariant;
352
+ /**
353
+ * Corner treatment. `square` = borderRadius.xS, `rounded` = borderRadius.full.
354
+ * Deliberately defaults to `square` even though Figma's Shape default differs —
355
+ * this keeps existing consumers rendering unchanged. Don't "fix" it.
356
+ * @default "square"
357
+ */
358
+ shape?: BadgeShape;
359
+ }
360
+ /**
361
+ * ModBadge - Status badge component based on MUI Chip
362
+ *
363
+ * `deleteIcon` still works via ChipProps — MUI renders it only when `onDelete`
364
+ * is also set.
365
+ */
366
+ declare const ModBadge: {
367
+ ({ size, variant, shape, ...props }: ModBadgeProps): react_jsx_runtime.JSX.Element;
368
+ displayName: string;
369
+ };
370
+
371
+ type Intent$1 = 'info' | 'success' | 'error' | 'warning' | 'neutral';
372
+ type BannerType = 'outlined' | 'filled';
373
+ interface ModBannerProps extends Omit<AlertProps, 'variant' | 'severity' | 'color'> {
374
+ /**
375
+ * The intent/purpose of the banner
376
+ * @default "info"
377
+ */
378
+ intent?: Intent$1;
379
+ /**
380
+ * Visual type: outlined (light bg) or filled (solid bg)
381
+ * @default "outlined"
382
+ */
383
+ type?: BannerType;
384
+ /**
385
+ * The message text to display
386
+ */
387
+ message: string;
388
+ /**
389
+ * Horizontal alignment of the message content
390
+ * @default "left"
391
+ */
392
+ messagePosition?: 'left' | 'center';
393
+ /**
394
+ * Optional link text to display after the message
395
+ */
396
+ linkText?: string;
397
+ /**
398
+ * Whether to show the close button
399
+ * @default false
400
+ */
401
+ showClose?: boolean;
402
+ /**
403
+ * Custom icon to display (optional)
404
+ * If not provided, no icon will be shown
405
+ */
406
+ icon?: ReactNode;
407
+ /**
408
+ * Callback when close button is clicked
409
+ */
410
+ onClose?: () => void;
411
+ /**
412
+ * Callback when link text is clicked
413
+ */
414
+ onLinkClick?: () => void;
415
+ }
416
+ declare const ModBanner: {
417
+ ({ intent, type, message, messagePosition, linkText, showClose, icon, onClose, onLinkClick, ...props }: ModBannerProps): react_jsx_runtime.JSX.Element | null;
418
+ displayName: string;
419
+ };
420
+
421
+ /**
422
+ * ModBreadcrumbs - Navigation breadcrumb component
423
+ *
424
+ * @see https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4563-122872
425
+ */
426
+ interface ModBreadcrumbsProps {
427
+ /** Breadcrumb items as Link elements */
428
+ children: ReactNode;
429
+ /** Additional CSS classes */
430
+ className?: string;
431
+ }
432
+ interface ModBreadcrumbLinkProps extends Omit<LinkProps, 'color'> {
433
+ /** Marks this breadcrumb as the current page (sets aria-current="page") */
434
+ current?: boolean;
435
+ /** Link content */
436
+ children: ReactNode;
437
+ /** Custom link component for client-side navigation (e.g., Next.js Link) */
438
+ component?: ElementType;
439
+ }
440
+ /**
441
+ * ModBreadcrumbLink - Individual breadcrumb link
442
+ *
443
+ * Use this component as children of ModBreadcrumbs to create breadcrumb items.
444
+ * Set `current` prop on the last item to indicate the current page.
445
+ *
446
+ * @example
447
+ * ```tsx
448
+ * <ModBreadcrumbs>
449
+ * <ModBreadcrumbLink href="/settings">Settings</ModBreadcrumbLink>
450
+ * <ModBreadcrumbLink href="/team">Team</ModBreadcrumbLink>
451
+ * <ModBreadcrumbLink current>Team Details</ModBreadcrumbLink>
452
+ * </ModBreadcrumbs>
453
+ * ```
454
+ */
455
+ declare function ModBreadcrumbLink({ current, children, component, ...props }: ModBreadcrumbLinkProps): react_jsx_runtime.JSX.Element;
456
+ /**
457
+ * ModBreadcrumbs - Navigation breadcrumb component
458
+ *
459
+ * Provides hierarchical navigation with styled links and chevron separators.
460
+ * Use ModBreadcrumbLink components as children to create breadcrumb items.
461
+ *
462
+ * @example
463
+ * ```tsx
464
+ * <ModBreadcrumbs>
465
+ * <ModBreadcrumbLink href="/settings">Settings</ModBreadcrumbLink>
466
+ * <ModBreadcrumbLink href="/team">Team</ModBreadcrumbLink>
467
+ * <ModBreadcrumbLink current>Team Details</ModBreadcrumbLink>
468
+ * </ModBreadcrumbs>
469
+ * ```
470
+ */
471
+ declare function ModBreadcrumbs({ children, className }: ModBreadcrumbsProps): react_jsx_runtime.JSX.Element;
472
+
473
+ declare module '@mui/material/ButtonBase' {
474
+ interface ButtonBasePropsVariantOverrides {
475
+ primary: true;
476
+ secondary: true;
477
+ destructive: true;
478
+ tertiary: true;
479
+ }
480
+ }
481
+ type ButtonVariant = 'primary' | 'secondary' | 'destructive' | 'tertiary';
482
+ type ButtonSize = 'small' | 'medium';
483
+ type ModButtonOwnProps = {
484
+ /**
485
+ * The visual variant of the button
486
+ * @default "primary"
487
+ */
488
+ variant?: ButtonVariant;
489
+ /**
490
+ * The size of the button
491
+ * @default "medium"
492
+ */
493
+ size?: ButtonSize;
494
+ /**
495
+ * Show loading spinner instead of children
496
+ * @default false
497
+ */
498
+ loading?: boolean;
499
+ /**
500
+ * Button content
501
+ */
502
+ children?: ReactNode;
503
+ /**
504
+ * URL to link to. When provided, the button renders as a link element.
505
+ */
506
+ href?: string;
507
+ /**
508
+ * Icon placed before the button label
509
+ */
510
+ startIcon?: ReactNode;
511
+ /**
512
+ * Icon placed after the button label
513
+ */
514
+ endIcon?: ReactNode;
515
+ };
516
+ type ModButtonProps<C extends ElementType = typeof ButtonBase> = ModButtonOwnProps & Omit<React__default.ComponentPropsWithoutRef<C>, keyof ModButtonOwnProps> & {
517
+ component?: C;
518
+ };
519
+ /**
520
+ * ModButton - Text button component based on MUI ButtonBase
521
+ */
522
+ declare function ModButton<C extends ElementType = typeof ButtonBase>({ variant, size, loading, children, disabled, startIcon, endIcon, ...rest }: ModButtonProps<C>): react_jsx_runtime.JSX.Element;
523
+ declare namespace ModButton {
524
+ var displayName: string;
525
+ }
526
+
527
+ interface ModButtonTabProps extends Omit<ToggleButtonProps, 'color'> {
528
+ /**
529
+ * Whether the tab is currently selected.
530
+ * When used inside ModButtonGroup, this is computed automatically from the group's value.
531
+ * @default false
532
+ */
533
+ selected?: boolean;
534
+ }
535
+ /**
536
+ * ModButtonTab - A tab-style toggle button for use within ModButtonGroup
537
+ */
538
+ declare const ModButtonTab: {
539
+ ({ children, ...props }: ModButtonTabProps): react_jsx_runtime.JSX.Element;
540
+ displayName: string;
541
+ };
542
+
543
+ type ButtonTabGroupSize = 'small' | 'medium';
544
+ interface ModButtonTabGroupProps extends Omit<ToggleButtonGroupProps, 'orientation' | 'color' | 'fullWidth'> {
545
+ /**
546
+ * The size of the button tab group
547
+ * @default "medium"
548
+ */
549
+ size?: ButtonTabGroupSize;
550
+ /**
551
+ * Whether only one button can be selected at a time
552
+ * @default true
553
+ */
554
+ exclusive?: boolean;
555
+ }
556
+ /**
557
+ * ModButtonTabGroup - Button tab group container
558
+ *
559
+ * Usage:
560
+ * ```tsx
561
+ * <ModButtonTabGroup value={selected} onChange={(_, val) => setSelected(val)} size="medium">
562
+ * <ModButtonTab value="tab1">Tab 1</ModButtonTab>
563
+ * <ModButtonTab value="tab2">Tab 2</ModButtonTab>
564
+ * <ModButtonTab value="tab3">Tab 3</ModButtonTab>
565
+ * </ModButtonTabGroup>
566
+ * ```
567
+ */
568
+ declare const ModButtonTabGroup: {
569
+ ({ size, exclusive, ...props }: ModButtonTabGroupProps): react_jsx_runtime.JSX.Element;
570
+ displayName: string;
571
+ };
572
+
573
+ /**
574
+ * ModCanceledIcon - Outlined circle struck through by a horizontal line.
575
+ *
576
+ * Marks a CANCELED state. Color comes entirely from `currentColor` (stroke plus
577
+ * a 10% fill tint); set it via the `color`/`sx` prop or a parent.
578
+ */
579
+ declare const ModCanceledIcon: {
580
+ (props: SvgIconProps): react_jsx_runtime.JSX.Element;
581
+ displayName: string;
582
+ };
583
+
584
+ type ModCardSize = 'small' | 'large';
585
+ interface ModCardSmallProps extends Omit<CardProps, 'children' | 'title'> {
586
+ size: 'small';
587
+ logo: ReactNode;
588
+ recipeCount: string;
589
+ title: ReactNode | string;
590
+ description: string;
591
+ selected?: boolean;
592
+ disabled?: boolean;
593
+ onClick?: () => void;
594
+ }
595
+ interface ModCardLargeProps extends Omit<CardProps, 'children' | 'title'> {
596
+ size: 'large';
597
+ disabled?: boolean;
598
+ cardTheme?: 'light' | 'dark';
599
+ showIcon?: boolean;
600
+ showGel?: boolean;
601
+ showButtons?: boolean;
602
+ icon?: ReactNode;
603
+ gel?: ReactNode;
604
+ title?: ReactNode;
605
+ children?: ReactNode;
606
+ actions?: ReactNode;
607
+ onClick?: () => void;
608
+ }
609
+ type ModCardProps = ModCardSmallProps | ModCardLargeProps;
610
+ declare const ModCard: {
611
+ (props: ModCardProps): react_jsx_runtime.JSX.Element;
612
+ displayName: string;
613
+ };
614
+
615
+ interface ComponentSelector {
616
+ __emotion_styles: any;
617
+ }
618
+
619
+ /**
620
+ * @desc Utility type for getting props type of React component.
621
+ * It takes `defaultProps` into an account - making props with defaults optional.
622
+ */
623
+ type PropsOf<C extends keyof ReactJSX.IntrinsicElements | React.JSXElementConstructor<any>> = ReactJSX.LibraryManagedAttributes<C, React.ComponentProps<C>>;
624
+
625
+ type IsPreReact19$1 = 2 extends Parameters<React.FunctionComponent<any>>['length'] ? true : false;
626
+ /** @ts-ignore */
627
+ type ReactJSXElement = true extends IsPreReact19$1 ? JSX.Element : React.JSX.Element;
628
+ /** @ts-ignore */
629
+ type ReactJSXElementClass = true extends IsPreReact19$1 ? JSX.ElementClass : React.JSX.ElementClass;
630
+ /** @ts-ignore */
631
+ type ReactJSXElementAttributesProperty = true extends IsPreReact19$1 ? JSX.ElementAttributesProperty : React.JSX.ElementAttributesProperty;
632
+ /** @ts-ignore */
633
+ type ReactJSXElementChildrenAttribute = true extends IsPreReact19$1 ? JSX.ElementChildrenAttribute : React.JSX.ElementChildrenAttribute;
634
+ /** @ts-ignore */
635
+ type ReactJSXLibraryManagedAttributes<C, P> = true extends IsPreReact19$1 ? JSX.LibraryManagedAttributes<C, P> : React.JSX.LibraryManagedAttributes<C, P>;
636
+ /** @ts-ignore */
637
+ type ReactJSXIntrinsicAttributes = true extends IsPreReact19$1 ? JSX.IntrinsicAttributes : React.JSX.IntrinsicAttributes;
638
+ /** @ts-ignore */
639
+ type ReactJSXIntrinsicClassAttributes<T> = true extends IsPreReact19$1 ? JSX.IntrinsicClassAttributes<T> : React.JSX.IntrinsicClassAttributes<T>;
640
+ /** @ts-ignore */
641
+ type ReactJSXIntrinsicElements$1 = true extends IsPreReact19$1 ? JSX.IntrinsicElements : React.JSX.IntrinsicElements;
642
+ /** @ts-ignore */
643
+ type ReactJSXElementType = true extends IsPreReact19$1 ? string | React.JSXElementConstructor<any> : React.JSX.ElementType;
644
+ declare namespace ReactJSX {
645
+ type ElementType = ReactJSXElementType;
646
+ interface Element extends ReactJSXElement {
647
+ }
648
+ interface ElementClass extends ReactJSXElementClass {
649
+ }
650
+ interface ElementAttributesProperty extends ReactJSXElementAttributesProperty {
651
+ }
652
+ interface ElementChildrenAttribute extends ReactJSXElementChildrenAttribute {
653
+ }
654
+ type LibraryManagedAttributes<C, P> = ReactJSXLibraryManagedAttributes<C, P>;
655
+ interface IntrinsicAttributes extends ReactJSXIntrinsicAttributes {
656
+ }
657
+ interface IntrinsicClassAttributes<T> extends ReactJSXIntrinsicClassAttributes<T> {
658
+ }
659
+ type IntrinsicElements = ReactJSXIntrinsicElements$1;
660
+ }
661
+
662
+ type IsPreReact19 = 2 extends Parameters<React.FunctionComponent<any>>['length'] ? true : false;
663
+ /** @ts-ignore */
664
+ type ReactJSXIntrinsicElements = true extends IsPreReact19 ? JSX.IntrinsicElements : React.JSX.IntrinsicElements;
665
+
666
+ /**
667
+ * @typeparam ComponentProps Props which will be included when withComponent is called
668
+ * @typeparam SpecificComponentProps Props which will *not* be included when withComponent is called
669
+ */
670
+ interface StyledComponent<ComponentProps extends {}, SpecificComponentProps extends {} = {}, JSXProps extends {} = {}> extends React.FC<ComponentProps & SpecificComponentProps & JSXProps>, ComponentSelector {
671
+ withComponent<C extends React.ComponentClass<React.ComponentProps<C>>>(component: C): StyledComponent<ComponentProps & PropsOf<C>, {}, {
672
+ ref?: React.Ref<InstanceType<C>>;
673
+ }>;
674
+ withComponent<C extends React.ComponentType<React.ComponentProps<C>>>(component: C): StyledComponent<ComponentProps & PropsOf<C>>;
675
+ withComponent<Tag extends keyof ReactJSXIntrinsicElements>(tag: Tag): StyledComponent<ComponentProps, ReactJSXIntrinsicElements[Tag]>;
676
+ }
677
+
678
+ /**
679
+ * ModCheckbox uses Lucide icons (square / square-check / square-minus): a rounded
680
+ * outline drawn in `currentColor`, with the check/minus mark sharing that stroke —
681
+ * so a single per-state `color` (set in StyledCheckbox) drives every variant.
682
+ *
683
+ * Checkbox sizes: xs=12x12, small=16x16, medium=20x20
684
+ */
685
+ type CheckboxSize = 'xs' | 'small' | 'medium';
686
+ declare module '@mui/material/Checkbox' {
687
+ interface CheckboxPropsSizeOverrides {
688
+ xs: true;
689
+ small: true;
690
+ medium: true;
691
+ }
692
+ }
693
+ interface ModCheckboxProps extends Omit<CheckboxProps, 'size'> {
694
+ /**
695
+ * The size of the checkbox
696
+ * @default "medium"
697
+ */
698
+ size?: CheckboxSize;
699
+ /**
700
+ * The label text displayed next to the checkbox
701
+ */
702
+ label?: ReactNode;
703
+ /**
704
+ * The helper text displayed below the label
705
+ */
706
+ helperText?: ReactNode;
707
+ }
708
+ /**
709
+ * ModCheckbox - Checkbox component based on MUI Checkbox
710
+ *
711
+ * @example
712
+ * // Basic checkbox
713
+ * <ModCheckbox />
714
+ *
715
+ * @example
716
+ * // With label
717
+ * <ModCheckbox label="Remember me" />
718
+ *
719
+ * @example
720
+ * // With label and helper text
721
+ * <ModCheckbox label="Remember me" helperText="Save my login details for next time." />
722
+ *
723
+ * @example
724
+ * // Small size
725
+ * <ModCheckbox size="small" label="Remember me" />
726
+ *
727
+ * @example
728
+ * // Extra small size
729
+ * <ModCheckbox size="xs" label="Remember me" />
730
+ *
731
+ * @example
732
+ * // Controlled
733
+ * <ModCheckbox checked={isChecked} onChange={handleChange} label="Remember me" />
734
+ *
735
+ * @example
736
+ * // Indeterminate state (for "select all" checkboxes)
737
+ * <ModCheckbox indeterminate={true} label="Select all" />
738
+ */
739
+ declare const ModCheckbox: {
740
+ ({ size, label, helperText, disabled, icon, checkedIcon, indeterminateIcon, className, ...props }: ModCheckboxProps): react_jsx_runtime.JSX.Element;
741
+ displayName: string;
742
+ };
743
+
744
+ type CheckboxWithTextSize = 'small' | 'medium';
745
+ /**
746
+ * Props for the ModCheckboxWithText component
747
+ */
748
+ interface ModCheckboxWithTextProps extends Omit<ModCheckboxProps, 'size'> {
749
+ /**
750
+ * The size of the checkbox with text
751
+ * @default "small"
752
+ */
753
+ size?: CheckboxWithTextSize;
754
+ /**
755
+ * The label text displayed next to the checkbox
756
+ */
757
+ label?: ReactNode;
758
+ /**
759
+ * The helper text displayed below the label
760
+ */
761
+ helperText?: ReactNode;
762
+ }
763
+ /**
764
+ * ModCheckboxWithText - Checkbox with label and supporting text
765
+ *
766
+ * Thin wrapper around ModCheckbox that maps the Figma "Checkbox with text"
767
+ * component to the existing ModCheckbox with label + helperText.
768
+ */
769
+ declare const ModCheckboxWithText: {
770
+ ({ size, ...props }: ModCheckboxWithTextProps): react_jsx_runtime.JSX.Element;
771
+ displayName: string;
772
+ };
773
+
774
+ declare module '@mui/material/ButtonBase' {
775
+ interface ButtonBasePropsVariantOverrides {
776
+ outlined: true;
777
+ filled: true;
778
+ }
779
+ }
780
+ type CodeSnippetVariant = 'outlined' | 'filled';
781
+ type CodeSnippetSize = 'xs' | 'small' | 'large' | 'inline';
782
+ interface ModCodeSnippetProps extends Omit<ButtonBaseProps, 'children'> {
783
+ /**
784
+ * The visual variant of the code snippet
785
+ * @default "outlined"
786
+ */
787
+ variant?: CodeSnippetVariant;
788
+ /**
789
+ * The size of the code snippet
790
+ * @default "small"
791
+ */
792
+ size?: CodeSnippetSize;
793
+ /**
794
+ * Icon to display at the end (copy button position)
795
+ */
796
+ endIcon?: ReactNode;
797
+ /**
798
+ * Code snippet content to display
799
+ */
800
+ children: ReactNode;
801
+ }
802
+ /**
803
+ * ModCodeSnippet - Inline code snippet component based on MUI ButtonBase
804
+ */
805
+ declare const ModCodeSnippet: {
806
+ ({ variant, size, endIcon, children, ...props }: ModCodeSnippetProps): react_jsx_runtime.JSX.Element;
807
+ displayName: string;
808
+ };
809
+
810
+ type DataGridSize = GridDensity$1;
811
+ interface ModDataGridProps extends Omit<DataGridProProps, 'slots'> {
812
+ /**
813
+ * Custom toolbar component to render above the grid
814
+ * When provided, automatically enables the toolbar slot
815
+ */
816
+ toolbar?: ReactNode;
817
+ /**
818
+ * Custom slots (merged with design system defaults)
819
+ */
820
+ slots?: Partial<GridSlots>;
821
+ }
822
+ /**
823
+ * ModDataGrid - Responsive base DataGrid component with design system styling
824
+ *
825
+ * This is the base component for all design system DataGrid variants. It provides:
826
+ * - Responsive viewport-based height calculation
827
+ * - Dynamic row heights (getRowHeight='auto') for text wrapping
828
+ * - design system styling (colors, typography, spacing)
829
+ * - Custom sort icons and filter panels
830
+ *
831
+ * For specific use cases, see:
832
+ * - ModInfiniteScrollGrid: Infinite scroll with load-more button
833
+ * - ModPaginatedGrid: Standard pagination with page numbers
834
+ *
835
+ * Features:
836
+ * - Auto-calculated height from viewport (calc(100vh - (offset + autoHeightOffset)))
837
+ * - Three size variants: compact, standard, comfortable (affects header height)
838
+ * - Always uses dynamic row heights (matching moderne-ui ResponsiveDataGrid)
839
+ * - Resize event handling
840
+ * - Footer offset support
841
+ *
842
+ * Design tokens used:
843
+ * - Colors: semanticColors.border.primary, semanticColors.surfaces.dataGrid.*, semanticColors.surfaces.white (panel Paper)
844
+ * - Typography: typography.fontFamily.body, typography.fontSize.sm
845
+ * - Spacing: spacing.spacing_*
846
+ *
847
+ * @example
848
+ * // Basic usage with responsive height
849
+ * <ModDataGrid
850
+ * rows={rows}
851
+ * columns={columns}
852
+ * />
853
+ *
854
+ * @example
855
+ * // With footer offset
856
+ * <ModDataGrid
857
+ * rows={rows}
858
+ * columns={columns}
859
+ * footerOffsetSelector="#page-footer"
860
+ * />
861
+ */
862
+ declare function ModDataGrid({ autoHeight, toolbar, slots, sx, density, slotProps: userSlotProps, ...props }: ModDataGridProps): react_jsx_runtime.JSX.Element;
863
+ declare namespace ModDataGrid {
864
+ var displayName: string;
865
+ }
866
+
867
+ declare const getDataGridHeaderStyles: () => SxProps<Theme>;
868
+ declare const getDataGridRowStyles: () => SxProps<Theme>;
869
+
870
+ interface ModDataGridCellContentProps extends HTMLAttributes<HTMLDivElement> {
871
+ children?: ReactNode;
872
+ }
873
+ /**
874
+ * ModDataGridCellContent - Layout helper for cells that need flex layout with gap spacing
875
+ *
876
+ * Use this for any cell content that needs horizontal flex layout with proper spacing:
877
+ * - Multiple badges
878
+ * - Avatar + text
879
+ * - Action buttons/icons
880
+ * - Any other horizontal layouts
881
+ *
882
+ * @example
883
+ * // Badges
884
+ * renderCell: (params) => (
885
+ * <ModDataGridCellContent>
886
+ * <ModBadge label="Active" color="success" />
887
+ * <ModBadge label="New" color="info" />
888
+ * </ModDataGridCellContent>
889
+ * )
890
+ *
891
+ * @example
892
+ * // Avatar with text
893
+ * renderCell: (params) => (
894
+ * <ModDataGridCellContent>
895
+ * <ModGeneralAvatar src={params.row.avatarUrl} />
896
+ * <span>{params.row.name}</span>
897
+ * </ModDataGridCellContent>
898
+ * )
899
+ *
900
+ * @example
901
+ * // Action buttons
902
+ * renderCell: () => (
903
+ * <ModDataGridCellContent>
904
+ * <ModIconButton size="small"><Edit2 /></ModIconButton>
905
+ * <ModIconButton size="small"><Delete /></ModIconButton>
906
+ * </ModDataGridCellContent>
907
+ * )
908
+ */
909
+ declare const ModDataGridCellContent: {
910
+ ({ children, ...props }: ModDataGridCellContentProps): react_jsx_runtime.JSX.Element;
911
+ displayName: string;
912
+ };
913
+ /**
914
+ * StatusBadgeCell - Ready-to-use cell component for status badges
915
+ *
916
+ * @example
917
+ * renderCell: (params) => (
918
+ * <StatusBadgeCell
919
+ * status={params.value}
920
+ * colorMap={{
921
+ * Active: 'success',
922
+ * Pending: 'warning',
923
+ * Inactive: 'default'
924
+ * }}
925
+ * />
926
+ * )
927
+ */
928
+ interface ModStatusBadgeCellProps {
929
+ status: string;
930
+ colorMap?: Record<string, 'default' | 'error' | 'info' | 'success' | 'warning'>;
931
+ }
932
+ declare const ModStatusBadgeCell: {
933
+ ({ status, colorMap }: ModStatusBadgeCellProps): react_jsx_runtime.JSX.Element;
934
+ displayName: string;
935
+ };
936
+ /**
937
+ * ModUserAvatarCell - Ready-to-use cell component for user avatar + name
938
+ *
939
+ * @example
940
+ * renderCell: (params) => (
941
+ * <ModUserAvatarCell
942
+ * name={params.row.name}
943
+ * avatarUrl={params.row.avatarUrl}
944
+ * />
945
+ * )
946
+ */
947
+ interface ModUserAvatarCellProps {
948
+ name: string;
949
+ avatarUrl?: string;
950
+ size?: 'small' | 'medium';
951
+ }
952
+ declare const ModUserAvatarCell: {
953
+ ({ name, avatarUrl, size }: ModUserAvatarCellProps): react_jsx_runtime.JSX.Element;
954
+ displayName: string;
955
+ };
956
+ /**
957
+ * ModMultiBadgesCell - Ready-to-use cell component for multiple badges
958
+ *
959
+ * Uses tighter spacing (8px) between badges compared to standard ModDataGridCellContent (16px).
960
+ *
961
+ * @example
962
+ * renderCell: (params) => (
963
+ * <ModMultiBadgesCell
964
+ * badges={[
965
+ * { label: 'Active', color: 'success' },
966
+ * { label: 'New', color: 'info' }
967
+ * ]}
968
+ * />
969
+ * )
970
+ */
971
+ interface ModMultiBadgesCellProps {
972
+ badges: Array<{
973
+ label: string;
974
+ color?: 'default' | 'error' | 'info' | 'success' | 'warning';
975
+ }>;
976
+ }
977
+ declare const ModMultiBadgesCell: {
978
+ ({ badges }: ModMultiBadgesCellProps): react_jsx_runtime.JSX.Element;
979
+ displayName: string;
980
+ };
981
+
982
+ /**
983
+ * ModDataGridColumnsButton - Button to open the columns panel in DataGrid
984
+ *
985
+ * Integrates with MUI DataGrid Pro's ColumnsPanelTrigger to show/hide columns.
986
+ * Uses ModButton with Lucide Columns3 icon.
987
+ *
988
+ * @example
989
+ * ```tsx
990
+ * <ModDataGridColumnsButton />
991
+ * ```
992
+ */
993
+ declare function ModDataGridColumnsButton(): react_jsx_runtime.JSX.Element;
994
+ declare namespace ModDataGridColumnsButton {
995
+ var displayName: string;
996
+ }
997
+
998
+ /**
999
+ * ModDataGridColumnsPanel - Custom columns panel for ModDataGrid matching Figma design
1000
+ *
1001
+ * A styled columns panel that integrates with MUI DataGrid's column visibility system.
1002
+ * Features:
1003
+ * - Search input with Lucide icon (matches ModQuickFilter)
1004
+ * - Checkbox list with design system styling (12px checkboxes)
1005
+ * - Show/Hide all toggle
1006
+ * - Reset button
1007
+ *
1008
+ * Design Tokens Used:
1009
+ * - surfaces.white - Background color
1010
+ * - surfaces.listHover - Item hover background (#f9fafb)
1011
+ * - input.background - Search input background
1012
+ * - border.input - Search input border
1013
+ * - buttons.primary.default - Search input focus border
1014
+ * - typography.body - Column label text
1015
+ * - border.primary - Divider color
1016
+ */
1017
+ interface ModDataGridColumnsPanelProps extends GridColumnsPanelProps {
1018
+ /**
1019
+ * If true, shows the search input field
1020
+ * @default false
1021
+ */
1022
+ showSearch?: boolean;
1023
+ }
1024
+ declare const ModDataGridColumnsPanel: {
1025
+ ({ showSearch, sx: _sx, theme: _theme, ...props }: ModDataGridColumnsPanelProps): react_jsx_runtime.JSX.Element;
1026
+ displayName: string;
1027
+ };
1028
+
1029
+ type ModMenuItemOwnProps = {
1030
+ /**
1031
+ * Optional icon to display on the left side
1032
+ * Note: Cannot be directly mapped from Figma (ReactNode)
1033
+ */
1034
+ icon?: ReactNode;
1035
+ /**
1036
+ * Optional keyboard shortcut to display on the right side
1037
+ * @example "⌘+P" or "Ctrl+K"
1038
+ * Note: Cannot be directly mapped from Figma (ReactNode/string)
1039
+ */
1040
+ shortcut?: string;
1041
+ /**
1042
+ * Optional secondary text to display next to the primary label
1043
+ * @example "@username" or supporting text
1044
+ * Note: Cannot be directly mapped from Figma (ReactNode/string)
1045
+ */
1046
+ secondaryText?: string;
1047
+ /**
1048
+ * URL to navigate to. When provided, the menu item renders as an anchor
1049
+ * element (via MUI ButtonBase) so users can middle-click or right-click
1050
+ * to open in a new tab. For client-side routing, also pass
1051
+ * `component={NextLink}` (or your router's link component).
1052
+ */
1053
+ href?: string;
1054
+ /**
1055
+ * Menu item content (text label)
1056
+ */
1057
+ children?: ReactNode;
1058
+ };
1059
+ type ModMenuItemProps<C extends ElementType = typeof MenuItem> = ModMenuItemOwnProps & Omit<ComponentPropsWithoutRef<C>, keyof ModMenuItemOwnProps> & {
1060
+ component?: C;
1061
+ };
1062
+ /**
1063
+ * ModMenuItem - Menu item component based on MUI MenuItem
1064
+ *
1065
+ * @example
1066
+ * ```tsx
1067
+ * // With icon and shortcut
1068
+ * <ModMenuItem icon={<UserIcon />} shortcut="⌘+P">
1069
+ * View profile
1070
+ * </ModMenuItem>
1071
+ *
1072
+ * // With secondary text (user list pattern from Figma node 4305:41844)
1073
+ * <ModMenuItem secondaryText="@phoenix">Phoenix Baker</ModMenuItem>
1074
+ * <ModMenuItem secondaryText="@olivia">Olivia Rhye</ModMenuItem>
1075
+ *
1076
+ * // Disabled state
1077
+ * <ModMenuItem disabled>Disabled item</ModMenuItem>
1078
+ *
1079
+ * // As an anchor — middle-click/right-click open in a new tab
1080
+ * <ModMenuItem href="/api-explorer">API explorer</ModMenuItem>
1081
+ *
1082
+ * // External link
1083
+ * <ModMenuItem href="https://docs.example.com" target="_blank" rel="noopener noreferrer">
1084
+ * Documentation
1085
+ * </ModMenuItem>
1086
+ *
1087
+ * // Client-side routing (Next.js)
1088
+ * <ModMenuItem component={NextLink} href="/api-explorer">API explorer</ModMenuItem>
1089
+ * ```
1090
+ */
1091
+ declare function ModMenuItem<C extends ElementType = typeof MenuItem>({ icon, shortcut, secondaryText, children, ...rest }: ModMenuItemProps<C>): react_jsx_runtime.JSX.Element;
1092
+ declare namespace ModMenuItem {
1093
+ var displayName: string;
1094
+ }
1095
+
1096
+ type ModSelectProps = SelectProps;
1097
+ /**
1098
+ * ModSelect - Select component with design system styling
1099
+ *
1100
+ * A styled version of MUI's Select that uses design system tokens, Lucide ChevronDown icon,
1101
+ * and ModMenu/ModMenuItem for the dropdown list.
1102
+ *
1103
+ * @example
1104
+ * ```tsx
1105
+ * import { ModSelect, ModSelectOption } from '@moderneinc/design-system-components'
1106
+ *
1107
+ * <ModSelect value={value} onChange={handleChange}>
1108
+ * <ModSelectOption value="option1">Option 1</ModSelectOption>
1109
+ * <ModSelectOption value="option2">Option 2</ModSelectOption>
1110
+ * </ModSelect>
1111
+ * ```
1112
+ */
1113
+ declare const ModSelect: {
1114
+ (props: ModSelectProps): react_jsx_runtime.JSX.Element;
1115
+ displayName: string;
1116
+ };
1117
+
1118
+ /**
1119
+ * Icon components for DataGrid filter panel slots
1120
+ * These must be passed to the DataGrid's slots prop
1121
+ */
1122
+ declare const ModDataGridFilterPanelAddIcon: {
1123
+ (): react_jsx_runtime.JSX.Element;
1124
+ displayName: string;
1125
+ };
1126
+ declare const ModDataGridFilterPanelDeleteIcon: {
1127
+ (): react_jsx_runtime.JSX.Element;
1128
+ displayName: string;
1129
+ };
1130
+ declare const ModDataGridFilterPanelRemoveAllIcon: {
1131
+ (): react_jsx_runtime.JSX.Element;
1132
+ displayName: string;
1133
+ };
1134
+
1135
+ declare const ModDataGridFilterPanel: {
1136
+ (props: React__default.ComponentProps<typeof GridFilterPanel>): react_jsx_runtime.JSX.Element;
1137
+ displayName: string;
1138
+ };
1139
+
1140
+ /**
1141
+ * ModDataGridFiltersButton - Button to open the filters panel in DataGrid
1142
+ *
1143
+ * Integrates with MUI DataGrid Pro's FilterPanelTrigger to manage column filters.
1144
+ * Uses ModButton with Lucide ListFilter icon and shows active filter count.
1145
+ * The count badge updates reactively when filters change.
1146
+ *
1147
+ * @example
1148
+ * ```tsx
1149
+ * <ModDataGridFiltersButton />
1150
+ * ```
1151
+ */
1152
+ declare function ModDataGridFiltersButton(): react_jsx_runtime.JSX.Element;
1153
+ declare namespace ModDataGridFiltersButton {
1154
+ var displayName: string;
1155
+ }
1156
+
1157
+ /**
1158
+ * Sort icon components for MUI DataGrid slots
1159
+ *
1160
+ * Use these with DataGrid's slots API to replace default sort indicators.
1161
+ */
1162
+ declare function SortedDescendingIcon(): react_jsx_runtime.JSX.Element;
1163
+ declare function SortedAscendingIcon(): react_jsx_runtime.JSX.Element;
1164
+ declare function UnsortedIcon(): react_jsx_runtime.JSX.Element;
1165
+
1166
+ interface ModDataGridHeaderLabelProps {
1167
+ /**
1168
+ * The label text to display
1169
+ */
1170
+ children?: ReactNode;
1171
+ /**
1172
+ * Tooltip text to show when hovering the help icon.
1173
+ * If provided, the help icon will be shown automatically.
1174
+ */
1175
+ helpTooltip?: string;
1176
+ /**
1177
+ * Additional CSS class name
1178
+ */
1179
+ className?: string;
1180
+ }
1181
+ declare function ModDataGridHeaderLabel({ children, helpTooltip, className, }: ModDataGridHeaderLabelProps): react_jsx_runtime.JSX.Element;
1182
+
1183
+ type DatePickerType = 'single' | 'range';
1184
+ /**
1185
+ * Props for the ModDatePicker component
1186
+ */
1187
+ interface ModDatePickerProps {
1188
+ /**
1189
+ * Type of date picker to render
1190
+ * @default "single"
1191
+ */
1192
+ type?: DatePickerType;
1193
+ /**
1194
+ * Whether the picker is open
1195
+ * When not provided, the picker manages its own open state (uncontrolled mode)
1196
+ */
1197
+ open?: boolean;
1198
+ /**
1199
+ * Label for the input field
1200
+ */
1201
+ label?: string;
1202
+ /**
1203
+ * Current selected date value (for single date picker)
1204
+ */
1205
+ value?: Date | null;
1206
+ /**
1207
+ * Current selected date range value (for range picker)
1208
+ */
1209
+ rangeValue?: DateRange<Date>;
1210
+ /**
1211
+ * Callback fired when date changes (single picker)
1212
+ */
1213
+ onChange?: (date: Date | null) => void;
1214
+ /**
1215
+ * Callback fired when date range changes (range picker)
1216
+ */
1217
+ onRangeChange?: (range: DateRange<Date>) => void;
1218
+ /**
1219
+ * Callback fired when picker opens
1220
+ */
1221
+ onOpen?: () => void;
1222
+ /**
1223
+ * Callback fired when picker closes
1224
+ */
1225
+ onClose?: () => void;
1226
+ /**
1227
+ * Placeholder text for the input
1228
+ */
1229
+ placeholder?: string;
1230
+ /**
1231
+ * Whether to show shortcuts
1232
+ * @default true for range, false for single
1233
+ */
1234
+ showShortcuts?: boolean;
1235
+ /**
1236
+ * Custom shortcuts items for range picker
1237
+ */
1238
+ shortcuts?: PickersShortcutsItem<DateRange<Date>>[];
1239
+ /**
1240
+ * Custom shortcuts items for single date picker
1241
+ */
1242
+ singleShortcuts?: PickersShortcutsItem<Date>[];
1243
+ /**
1244
+ * Number of calendars to display (range picker only)
1245
+ * @default 2
1246
+ */
1247
+ calendars?: 1 | 2 | 3;
1248
+ /**
1249
+ * Additional props passed to single DatePicker
1250
+ */
1251
+ datePickerProps?: Omit<Partial<DatePickerProps>, 'value' | 'onChange' | 'open' | 'onOpen' | 'onClose' | 'label'>;
1252
+ /**
1253
+ * Additional props passed to DateRangePicker
1254
+ */
1255
+ dateRangePickerProps?: Omit<Partial<DateRangePickerProps>, 'value' | 'onChange' | 'open' | 'onOpen' | 'onClose' | 'label'>;
1256
+ }
1257
+ /**
1258
+ * ModDatePicker - Moderne design system date picker component
1259
+ *
1260
+ * A wrapper around MUI X DatePicker and DateRangePicker with design system tokens and
1261
+ * customization. Supports both single date selection and date range selection with
1262
+ * built-in shortcuts.
1263
+ *
1264
+ * Design Tokens Used:
1265
+ * - colors: semanticColors.border.strong, semanticColors.typography.body, semanticColors.surfaces.white, semanticColors.icons.hoverBackground
1266
+ * - typography: typography.fontSize.sm, typography.fontWeight.medium, typography.fontWeight.semiBold, semanticColors.typography.bodySecondary
1267
+ * - border: semanticColors.border.primary
1268
+ * - shadows: shadows.dropdown
1269
+ * - borderRadius: borderRadius.l (20px)
1270
+ */
1271
+ declare const ModDatePicker: {
1272
+ ({ type, open, label, value, rangeValue, onChange, onRangeChange, onOpen, onClose, placeholder, showShortcuts, shortcuts, singleShortcuts, calendars, datePickerProps, dateRangePickerProps, }: ModDatePickerProps): react_jsx_runtime.JSX.Element;
1273
+ displayName: string;
1274
+ };
1275
+
1276
+ /**
1277
+ * ModDatePickerListItem
1278
+ */
1279
+ declare const ModDatePickerListItem: StyledComponent<_mui_system.MUIStyledCommonProps<_mui_material.Theme>, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
1280
+
1281
+ /**
1282
+ * ModDatePickerMenu
1283
+ */
1284
+ declare const ModDatePickerMenu: StyledComponent<_mui_system.MUIStyledCommonProps<_mui_material.Theme>, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
1285
+
1286
+ interface ModDividerProps extends DividerProps {
1287
+ }
1288
+ /**
1289
+ * ModDivider - Horizontal divider for separating content
1290
+ *
1291
+ * Generic divider component that can be used in menus, lists, cards, or any layout
1292
+ * that needs visual separation between content sections.
1293
+ *
1294
+ * @example
1295
+ * ```tsx
1296
+ * // In a menu
1297
+ * <ModMenu>
1298
+ * <ModMenuItem>Settings</ModMenuItem>
1299
+ * <ModDivider />
1300
+ * <ModMenuItem>Sign out</ModMenuItem>
1301
+ * </ModMenu>
1302
+ *
1303
+ * // In a card
1304
+ * <Card>
1305
+ * <CardHeader>Title</CardHeader>
1306
+ * <ModDivider />
1307
+ * <CardContent>Content</CardContent>
1308
+ * </Card>
1309
+ * ```
1310
+ */
1311
+ declare const ModDivider: {
1312
+ (props: ModDividerProps): react_jsx_runtime.JSX.Element;
1313
+ displayName: string;
1314
+ };
1315
+
1316
+ type DotSize = 'small' | 'medium' | 'large';
1317
+ type DotVariant = 'solid' | 'outline';
1318
+ type DotColor = 'success' | 'error' | 'warning' | 'info' | 'neutral';
1319
+ interface ModDotProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
1320
+ /**
1321
+ * The size of the dot
1322
+ * @default "medium"
1323
+ */
1324
+ size?: DotSize;
1325
+ /**
1326
+ * The variant of the dot
1327
+ * @default "solid"
1328
+ */
1329
+ variant?: DotVariant;
1330
+ /**
1331
+ * The color/status of the dot
1332
+ * @default "neutral"
1333
+ */
1334
+ color?: DotColor;
1335
+ /**
1336
+ * Optional icon rendered centered inside the dot. Use to indicate intent within
1337
+ * the dot itself (e.g., a minus icon on a disconnected error dot). SVG children
1338
+ * using `currentColor` inherit a white stroke/fill for contrast against the
1339
+ * colored background, and are scaled to 70% of the dot size.
1340
+ */
1341
+ children?: ReactNode;
1342
+ }
1343
+ /**
1344
+ * ModDot - Status indicator dot.
1345
+ */
1346
+ declare const ModDot: {
1347
+ ({ size, variant, color, children, ...props }: ModDotProps): react_jsx_runtime.JSX.Element;
1348
+ displayName: string;
1349
+ };
1350
+
1351
+ interface ModDownloadToastProps extends Omit<PaperProps, 'title'> {
1352
+ /**
1353
+ * The header text
1354
+ */
1355
+ title?: string;
1356
+ /**
1357
+ * The file name being downloaded
1358
+ */
1359
+ fileName?: string;
1360
+ /**
1361
+ * Progress value (0-100)
1362
+ */
1363
+ progress?: number;
1364
+ /**
1365
+ * Whether to show the close button
1366
+ * @default true
1367
+ */
1368
+ showClose?: boolean;
1369
+ /**
1370
+ * Whether to show the pause button
1371
+ * @default true
1372
+ */
1373
+ showPause?: boolean;
1374
+ /**
1375
+ * Callback when close button is clicked
1376
+ */
1377
+ onClose?: () => void;
1378
+ /**
1379
+ * Callback when pause button is clicked
1380
+ */
1381
+ onPause?: () => void;
1382
+ /**
1383
+ * Custom actions to override the default pause/close buttons
1384
+ */
1385
+ actions?: ReactNode;
1386
+ }
1387
+ /**
1388
+ * ModDownloadToast - Standalone download progress toast notification
1389
+ */
1390
+ declare const ModDownloadToast: {
1391
+ ({ title, fileName, progress, showClose, showPause, onClose, onPause, actions, ...props }: ModDownloadToastProps): react_jsx_runtime.JSX.Element;
1392
+ displayName: string;
1393
+ };
1394
+
1395
+ /**
1396
+ * Filled status icons — sourced from the published Figma library components
1397
+ * Filled_Success / Filled_Queued / Filled_Info / Filled_Warning / Filled_Error /
1398
+ * Filled_Neutral / Filled_Canceled.
1399
+ *
1400
+ * Designed at 16px; size via `fontSize` like any MUI `SvgIcon`. Each ships its
1401
+ * intent's status color baked into the silhouette with a white inner glyph — the
1402
+ * fill is fixed, so `color`/`htmlColor` are omitted from the props. There is no
1403
+ * Filled_Active (the open-arc spinner cannot fill). Use below 18px; above that,
1404
+ * prefer the Lucide outline glyph.
1405
+ */
1406
+ type ModFilledStatusIconProps = Omit<SvgIconProps, 'color' | 'htmlColor'>;
1407
+ declare const ModFilledSuccess: {
1408
+ (props: ModFilledStatusIconProps): react_jsx_runtime.JSX.Element;
1409
+ displayName: string;
1410
+ };
1411
+ declare const ModFilledQueued: {
1412
+ (props: ModFilledStatusIconProps): react_jsx_runtime.JSX.Element;
1413
+ displayName: string;
1414
+ };
1415
+ declare const ModFilledInfo: {
1416
+ (props: ModFilledStatusIconProps): react_jsx_runtime.JSX.Element;
1417
+ displayName: string;
1418
+ };
1419
+ declare const ModFilledWarning: {
1420
+ (props: ModFilledStatusIconProps): react_jsx_runtime.JSX.Element;
1421
+ displayName: string;
1422
+ };
1423
+ declare const ModFilledError: {
1424
+ (props: ModFilledStatusIconProps): react_jsx_runtime.JSX.Element;
1425
+ displayName: string;
1426
+ };
1427
+ declare const ModFilledNeutral: {
1428
+ (props: ModFilledStatusIconProps): react_jsx_runtime.JSX.Element;
1429
+ displayName: string;
1430
+ };
1431
+ declare const ModFilledCanceled: {
1432
+ (props: ModFilledStatusIconProps): react_jsx_runtime.JSX.Element;
1433
+ displayName: string;
1434
+ };
1435
+
1436
+ interface ModFilterChipProps extends Omit<ChipProps, 'variant' | 'color' | 'label'> {
1437
+ /**
1438
+ * The filter label text
1439
+ */
1440
+ label: string;
1441
+ /**
1442
+ * Whether the filter has active selections
1443
+ * @default false
1444
+ */
1445
+ selected?: boolean;
1446
+ /**
1447
+ * Whether the filter dropdown is expanded
1448
+ * @default false
1449
+ */
1450
+ expanded?: boolean;
1451
+ /**
1452
+ * Value text shown when selected (e.g. "Filter 1, Filter 2")
1453
+ */
1454
+ selectedLabel?: string;
1455
+ /**
1456
+ * Number of active filter selections (shown as badge when selected)
1457
+ * @default 0
1458
+ */
1459
+ count?: number;
1460
+ /**
1461
+ * Handler for clearing the filter (shows X icon when provided and selected)
1462
+ */
1463
+ onClear?: (e: React.MouseEvent) => void;
1464
+ }
1465
+ /**
1466
+ * ModFilterChip - Filter chip for filtering data, based on MUI Chip.
1467
+ *
1468
+ * @example
1469
+ * <ModFilterChip label="Status" selected selectedLabel="Active, Pending" count={2} onClear={handleClear} />
1470
+ */
1471
+ declare const ModFilterChip: {
1472
+ ({ label, selected, expanded, selectedLabel, count, onClear, onClick, ...props }: ModFilterChipProps): react_jsx_runtime.JSX.Element;
1473
+ displayName: string;
1474
+ };
1475
+
1476
+ type AvatarColorIndex = 1 | 2 | 3 | 4 | 5 | 6 | 7;
1477
+
1478
+ type AvatarSize = 'small' | 'medium';
1479
+ interface ModGeneralAvatarProps extends Omit<AvatarProps, 'variant'> {
1480
+ /**
1481
+ * The size of the avatar
1482
+ * @default "medium"
1483
+ */
1484
+ size?: AvatarSize;
1485
+ /**
1486
+ * Explicit initials color index. When omitted, derived deterministically
1487
+ * from `alt`. Image avatars ignore it and use the default styling.
1488
+ */
1489
+ colorIndex?: AvatarColorIndex;
1490
+ }
1491
+ /**
1492
+ * ModGeneralAvatar - Avatar with image or colored initials display
1493
+ */
1494
+ declare const ModGeneralAvatar: {
1495
+ ({ size, colorIndex, alt, src, children, ...props }: ModGeneralAvatarProps): react_jsx_runtime.JSX.Element;
1496
+ displayName: string;
1497
+ };
1498
+
1499
+ type IconButtonSize = 'small' | 'medium';
1500
+ type IconButtonVariant = 'primary' | 'secondary' | 'destructive' | 'tertiary' | 'nav';
1501
+ interface ModIconButtonProps extends Omit<ButtonBaseProps, 'children' | 'size'> {
1502
+ /**
1503
+ * The size of the icon button
1504
+ * @default "medium"
1505
+ */
1506
+ size?: IconButtonSize;
1507
+ /**
1508
+ * The visual variant of the icon button.
1509
+ * - `primary`, `secondary`, `destructive`, `tertiary`: Uses ModButton's hierarchy styling
1510
+ * - `nav`: White background with border, used in global navigation
1511
+ * @default "tertiary"
1512
+ */
1513
+ variant?: IconButtonVariant;
1514
+ /**
1515
+ * Whether the button is in an active/selected state (e.g., popover is open).
1516
+ * Only applies to the `nav` variant.
1517
+ * @default false
1518
+ */
1519
+ active?: boolean;
1520
+ /**
1521
+ * Show loading spinner instead of icon.
1522
+ * Only applies to hierarchy variants (not `nav`).
1523
+ * @default false
1524
+ */
1525
+ loading?: boolean;
1526
+ children?: ReactNode;
1527
+ }
1528
+ /**
1529
+ * ModIconButton - Icon-only button component
1530
+ *
1531
+ * For hierarchy variants (primary/secondary/destructive/tertiary), wraps ModButton with
1532
+ * icon-only sizing. For the `nav` variant, uses a standalone MUI IconButton with custom styling.
1533
+ */
1534
+ declare const ModIconButton: {
1535
+ ({ size, variant, active, loading, children, ...props }: ModIconButtonProps): react_jsx_runtime.JSX.Element;
1536
+ displayName: string;
1537
+ };
1538
+
1539
+ interface ModInfiniteScrollGridProps extends Omit<ModDataGridProps, 'slots'> {
1540
+ /**
1541
+ * Callback when load more is triggered - either by scrolling or clicking button
1542
+ */
1543
+ onLoadMore: () => void;
1544
+ /**
1545
+ * Whether there are more rows to load
1546
+ * @default true
1547
+ */
1548
+ hasNextPage?: boolean;
1549
+ /**
1550
+ * Scroll threshold (0-1) to trigger auto-load. 0.85 = 85% scrolled
1551
+ * @default 0.85
1552
+ */
1553
+ loadMoreAtScrollPercent?: number;
1554
+ /**
1555
+ * Custom slots (merged with design system defaults)
1556
+ */
1557
+ slots?: Partial<GridSlots>;
1558
+ }
1559
+ /**
1560
+ * ModInfiniteScrollGrid - DataGrid with infinite scroll and load-more functionality
1561
+ *
1562
+ * Features:
1563
+ * - Auto-loads more data when scrolled to 85% (configurable)
1564
+ * - Manual "Load more" button in footer
1565
+ * - Shows row count and loading state
1566
+ * - Inherits all responsive features from ModDataGrid
1567
+ *
1568
+ * @example
1569
+ * <ModInfiniteScrollGrid
1570
+ * rows={rows}
1571
+ * columns={columns}
1572
+ * onLoadMore={loadMoreData}
1573
+ * hasNextPage={hasMore}
1574
+ * loading={isLoading}
1575
+ * />
1576
+ */
1577
+ declare function ModInfiniteScrollGrid({ onLoadMore, hasNextPage, loadMoreAtScrollPercent, slots, slotProps: userSlotProps, sx: userSx, ...props }: ModInfiniteScrollGridProps): react_jsx_runtime.JSX.Element;
1578
+ declare namespace ModInfiniteScrollGrid {
1579
+ var displayName: string;
1580
+ }
1581
+
1582
+ type InputFieldSize = 'small' | 'medium';
1583
+
1584
+ interface ModInputFieldProps extends Omit<InputBaseProps, 'size'> {
1585
+ /**
1586
+ * The size of the input field
1587
+ * @default "medium"
1588
+ */
1589
+ size?: InputFieldSize;
1590
+ /**
1591
+ * Show error/destructive state with red styling
1592
+ * @default false
1593
+ */
1594
+ destructive?: boolean;
1595
+ /**
1596
+ * Label text for the input
1597
+ */
1598
+ label?: string;
1599
+ /**
1600
+ * Show required indicator (asterisk)
1601
+ * @default false
1602
+ */
1603
+ required?: boolean;
1604
+ /**
1605
+ * Info icon to display next to the label
1606
+ */
1607
+ infoIcon?: ReactNode;
1608
+ /**
1609
+ * Helper text displayed below the input (normal state)
1610
+ */
1611
+ helperText?: string;
1612
+ /**
1613
+ * Error message displayed below the input (destructive state)
1614
+ * Takes precedence over helperText when destructive is true
1615
+ */
1616
+ errorMessage?: string;
1617
+ /**
1618
+ * Icon to display at the start of the input
1619
+ */
1620
+ startIcon?: ReactNode;
1621
+ /**
1622
+ * Icon to display at the end of the input
1623
+ * In destructive state, an error icon is automatically shown
1624
+ */
1625
+ endIcon?: ReactNode;
1626
+ }
1627
+ /**
1628
+ * ModInputField - Form input field component using MUI FormControl composition
1629
+ */
1630
+ declare const ModInputField: {
1631
+ ({ size, destructive, label, required, infoIcon, helperText, errorMessage, startIcon, endIcon, disabled, id, ...props }: ModInputFieldProps): react_jsx_runtime.JSX.Element;
1632
+ displayName: string;
1633
+ };
1634
+
1635
+ declare module '@mui/material/ListItemButton' {
1636
+ interface ListItemButtonPropsVariantOverrides {
1637
+ size?: 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | 'xxxlarge';
1638
+ }
1639
+ }
1640
+ /**
1641
+ * Props for the ModListItem component
1642
+ */
1643
+ interface ModListItemProps extends Omit<ListItemButtonProps, 'children' | 'size' | 'color'> {
1644
+ /**
1645
+ * The size variant of the list item
1646
+ * @default "medium"
1647
+ */
1648
+ size?: 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | 'xxxlarge';
1649
+ /**
1650
+ * Primary text content (required)
1651
+ */
1652
+ primaryText: ReactNode;
1653
+ /**
1654
+ * Secondary/supporting text content (optional, shown in large/xlarge/xxlarge/xxxlarge)
1655
+ */
1656
+ secondaryText?: ReactNode;
1657
+ /**
1658
+ * Badge content for count display (optional, for xxlarge/xxxlarge link variant)
1659
+ */
1660
+ badge?: ReactNode;
1661
+ /**
1662
+ * Icon or logo element (optional, scales based on size)
1663
+ */
1664
+ icon?: ReactNode;
1665
+ /**
1666
+ * The component used for the root node (for polymorphic behavior)
1667
+ * @default 'button'
1668
+ */
1669
+ component?: React.ElementType;
1670
+ /**
1671
+ * Whether this is a link variant (applies link styling)
1672
+ * @default false
1673
+ */
1674
+ isLink?: boolean;
1675
+ /**
1676
+ * Trailing element (optional, e.g., chevron icon for navigation)
1677
+ * Renders at the end of the list item, typically used for navigation indicators.
1678
+ */
1679
+ trailingElement?: ReactNode;
1680
+ }
1681
+ /**
1682
+ * ModListItem - Flexible list item component with multiple size variants and states
1683
+ *
1684
+ * A versatile list item component built on MUI's ListItemButton that supports six size variants
1685
+ * (small to xxxlarge), interactive states (default, selected, disabled, link), and optional
1686
+ * icons/logos, secondary text, and badges.
1687
+ *
1688
+ * Design Tokens Used:
1689
+ * - semanticColors.typography.body (default text)
1690
+ * - semanticColors.typography.body-secondary (secondary text)
1691
+ * - semanticColors.typography.link.primary (link text)
1692
+ * - semanticColors.icon.placeholder (default icon color)
1693
+ * - semanticColors.icon.pressed (active icon color)
1694
+ * - semanticColors.icon.disabled (disabled icon color)
1695
+ * - semanticColors.buttons.secondary.hover-background (active background)
1696
+ * - semanticColors.surface.input.background (default background)
1697
+ * - semanticColors.surface.input.disabled-background (disabled background)
1698
+ * - semanticColors.buttons.tertiary.disabled (disabled text color)
1699
+ */
1700
+ declare const ModListItem: {
1701
+ ({ size, primaryText, secondaryText, badge, icon, isLink, trailingElement, component, ...props }: ModListItemProps): react_jsx_runtime.JSX.Element;
1702
+ displayName: string;
1703
+ };
1704
+
1705
+ type ListItemButtonVariant = 'card' | 'nav';
1706
+ /**
1707
+ * Props for the ModListItemButton component
1708
+ */
1709
+ interface ModListItemButtonProps extends ListItemButtonProps {
1710
+ /**
1711
+ * Whether the list item is selected
1712
+ * @default false
1713
+ */
1714
+ selected?: boolean;
1715
+ /**
1716
+ * Whether the list item is disabled
1717
+ * @default false
1718
+ */
1719
+ disabled?: boolean;
1720
+ /**
1721
+ * Visual treatment.
1722
+ * - `card` (default): bordered card-style for settings/radio-list patterns.
1723
+ * Expects ListItemIcon + ListItemText children for full styling support.
1724
+ * - `nav`: borderless sidebar nav style with subtle hover/selected
1725
+ * highlights. Renders children inline; works with plain text.
1726
+ * @default 'card'
1727
+ */
1728
+ variant?: ListItemButtonVariant;
1729
+ }
1730
+ /**
1731
+ * ModListItemButton - Selectable list item with icon and text
1732
+ *
1733
+ * A selectable list item component that displays an optional icon with primary
1734
+ * and secondary text. Supports active (selected), deselected, focus, and disabled states.
1735
+ *
1736
+ * Uses MUI's ListItemButton as base for proper accessibility and interaction.
1737
+ * Compose with ListItemIcon and ListItemText for proper structure.
1738
+ *
1739
+ * @example
1740
+ * ```tsx
1741
+ * <ModListItemButton selected>
1742
+ * <ListItemIcon>
1743
+ * <PanelLeft size={36} />
1744
+ * </ListItemIcon>
1745
+ * <ListItemText
1746
+ * primary="Always pin recipe list to the LEFT"
1747
+ * secondary="This will display the recipe topology in a small box to the left of the recipe list"
1748
+ * />
1749
+ * </ModListItemButton>
1750
+ * ```
1751
+ *
1752
+ * Design Tokens Used (hex values omitted — they are generated from Figma and drift):
1753
+ * - semanticColors.buttons.primary.default - Active border
1754
+ * - semanticColors.border.primary - Default/disabled border
1755
+ * - semanticColors.icons.default - Active icon color
1756
+ * - semanticColors.icons.disabled - Deselected/disabled icon fill (not a text color)
1757
+ * - semanticColors.buttons.tertiary.disabled - Deselected text color
1758
+ * - semanticColors.typography.bodySecondary - Active secondary text
1759
+ * - semanticColors.typography.button.disabled - Disabled text (button-scoped)
1760
+ * - typography.body - Active primary text
1761
+ * - semanticColors.surface.sunken - Disabled background
1762
+ */
1763
+ declare const ModListItemButton: {
1764
+ ({ children, selected, disabled, variant, ...props }: ModListItemButtonProps): react_jsx_runtime.JSX.Element;
1765
+ displayName: string;
1766
+ };
1767
+
1768
+ interface ModLoadingSpinnerProps {
1769
+ /**
1770
+ * Size of the spinner in pixels
1771
+ * @default 24
1772
+ */
1773
+ size?: number;
1774
+ /**
1775
+ * Color of the spinner
1776
+ * @default semanticColors.buttons.primary.default
1777
+ */
1778
+ color?: string;
1779
+ }
1780
+ /**
1781
+ * ModLoadingSpinner - Animated loading spinner component
1782
+ *
1783
+ * A circular loading spinner with a partial arc that rotates continuously.
1784
+ * Based on the Figma design system button loading icon.
1785
+ *
1786
+ * @example
1787
+ * <ModLoadingSpinner />
1788
+ *
1789
+ * @example
1790
+ * <ModLoadingSpinner size={32} color="#ff0000" />
1791
+ */
1792
+ declare const ModLoadingSpinner: {
1793
+ ({ size, color, }: ModLoadingSpinnerProps): react_jsx_runtime.JSX.Element;
1794
+ displayName: string;
1795
+ };
1796
+
1797
+ interface ModMenuProps extends MenuProps {
1798
+ /**
1799
+ * Menu content (typically ModMenuItem components)
1800
+ */
1801
+ children?: React.ReactNode;
1802
+ }
1803
+ /**
1804
+ * ModMenu - Menu component based on MUI Menu
1805
+ *
1806
+ * @example
1807
+ * ```tsx
1808
+ * const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
1809
+ * const open = Boolean(anchorEl);
1810
+ *
1811
+ * <Button onClick={(e) => setAnchorEl(e.currentTarget)}>Open Menu</Button>
1812
+ * <ModMenu
1813
+ * open={open}
1814
+ * anchorEl={anchorEl}
1815
+ * onClose={() => setAnchorEl(null)}
1816
+ * >
1817
+ * <ModMenuItem icon={<Icon />} shortcut="⌘+P">View profile</ModMenuItem>
1818
+ * <ModMenuItem>Settings</ModMenuItem>
1819
+ * </ModMenu>
1820
+ * ```
1821
+ */
1822
+ declare const ModMenu: {
1823
+ ({ children, ...props }: ModMenuProps): react_jsx_runtime.JSX.Element;
1824
+ displayName: string;
1825
+ };
1826
+
1827
+ interface ModActionsCellProps extends Omit<GridRenderCellParams, 'api'> {
1828
+ api?: GridRenderCellParams['api'];
1829
+ children: ReactNode;
1830
+ position?: 'bottom-end' | 'bottom-start' | 'top-end' | 'top-start';
1831
+ suppressChildrenValidation?: boolean;
1832
+ }
1833
+ declare function ModActionsCell(props: ModActionsCellProps): react_jsx_runtime.JSX.Element;
1834
+
1835
+ type ModAvatarCellBase = {
1836
+ disabled?: boolean;
1837
+ };
1838
+ type ModAvatarCellEmpty = ModAvatarCellBase & {
1839
+ empty: true;
1840
+ name?: never;
1841
+ src?: never;
1842
+ label?: never;
1843
+ };
1844
+ type ModAvatarCellContent = ModAvatarCellBase & {
1845
+ empty?: false;
1846
+ name?: string;
1847
+ src?: string;
1848
+ label?: string;
1849
+ };
1850
+ type ModAvatarCellProps = ModAvatarCellEmpty | ModAvatarCellContent;
1851
+ /**
1852
+ * ModAvatarCell — DataGrid cell displaying a user avatar with optional label.
1853
+ */
1854
+ declare const ModAvatarCell: {
1855
+ ({ name, src, label, disabled, empty, }: ModAvatarCellProps): react_jsx_runtime.JSX.Element;
1856
+ displayName: string;
1857
+ };
1858
+
1859
+ interface ModModalProps extends Omit<DialogProps, 'children'> {
1860
+ /**
1861
+ * Dialog content
1862
+ */
1863
+ children?: ReactNode;
1864
+ }
1865
+ /**
1866
+ * ModModal - Main modal dialog container based on MUI Dialog
1867
+ *
1868
+ * This is a composition component. Use with ModModalHeader, ModModalContent, and ModModalFooter:
1869
+ *
1870
+ * @example
1871
+ * <ModModal open={open} onClose={handleClose}>
1872
+ * <ModModalHeader
1873
+ * title="Title"
1874
+ * subtitle="Subtitle"
1875
+ * onClose={handleClose}
1876
+ * />
1877
+ * <ModModalContent>
1878
+ * Content goes here
1879
+ * </ModModalContent>
1880
+ * <ModModalFooter>
1881
+ * <ModButton onClick={handleClose}>Action</ModButton>
1882
+ * </ModModalFooter>
1883
+ * </ModModal>
1884
+ */
1885
+ declare const ModModal: {
1886
+ ({ children, ...props }: ModModalProps): react_jsx_runtime.JSX.Element;
1887
+ displayName: string;
1888
+ };
1889
+ interface ModModalHeaderProps {
1890
+ /**
1891
+ * Main title text
1892
+ */
1893
+ title?: string;
1894
+ /**
1895
+ * Optional subtitle text or element
1896
+ */
1897
+ subtitle?: ReactNode;
1898
+ /**
1899
+ * URL to link the title to. When provided, title renders as a link.
1900
+ */
1901
+ href?: string;
1902
+ /**
1903
+ * Custom Link component to use for the title link.
1904
+ * Required when href is provided to support framework-specific routing (e.g., Next.js Link).
1905
+ */
1906
+ LinkComponent?: ComponentType<{
1907
+ href: string;
1908
+ children: ReactNode;
1909
+ sx?: SxProps<Theme>;
1910
+ }>;
1911
+ /**
1912
+ * Close button handler
1913
+ */
1914
+ onClose?: () => void;
1915
+ /**
1916
+ * Hide the close button
1917
+ * @default false
1918
+ */
1919
+ hideCloseButton?: boolean;
1920
+ /**
1921
+ * Additional content to render below title/subtitle (e.g., tabs)
1922
+ */
1923
+ children?: ReactNode;
1924
+ }
1925
+ /**
1926
+ * ModModalHeader - Header section with title, optional subtitle, and close button
1927
+ */
1928
+ declare const ModModalHeader: {
1929
+ ({ title, subtitle, href, LinkComponent, onClose, hideCloseButton, children, }: ModModalHeaderProps): react_jsx_runtime.JSX.Element;
1930
+ displayName: string;
1931
+ };
1932
+ interface ModModalContentProps {
1933
+ /**
1934
+ * Content to display in the modal body
1935
+ */
1936
+ children?: ReactNode;
1937
+ }
1938
+ /**
1939
+ * ModModalContent - Main content area of the modal
1940
+ */
1941
+ declare const ModModalContent: {
1942
+ ({ children }: ModModalContentProps): react_jsx_runtime.JSX.Element;
1943
+ displayName: string;
1944
+ };
1945
+ interface ModModalFooterProps {
1946
+ /**
1947
+ * Optional leading icon or content (e.g., settings icon)
1948
+ */
1949
+ leadingContent?: ReactNode;
1950
+ /**
1951
+ * Action buttons (typically ModButton components)
1952
+ */
1953
+ children?: ReactNode;
1954
+ }
1955
+ /**
1956
+ * ModModalFooter - Footer section with optional leading content and action buttons
1957
+ */
1958
+ declare const ModModalFooter: {
1959
+ ({ leadingContent, children }: ModModalFooterProps): react_jsx_runtime.JSX.Element;
1960
+ displayName: string;
1961
+ };
1962
+
1963
+ interface ModIconCellProps {
1964
+ icon?: ReactNode;
1965
+ ariaLabel?: string;
1966
+ disabled?: boolean;
1967
+ }
1968
+ /**
1969
+ * ModIconCell — Icon cell for DataGrid. Renders an icon centered in the cell.
1970
+ */
1971
+ declare const ModIconCell: {
1972
+ ({ icon, ariaLabel, disabled }: ModIconCellProps): react_jsx_runtime.JSX.Element | null;
1973
+ displayName: string;
1974
+ };
1975
+
1976
+ type ModLogoCellNoSrc = {
1977
+ src?: undefined;
1978
+ alt?: string;
1979
+ disabled?: boolean;
1980
+ };
1981
+ type ModLogoCellWithSrc = {
1982
+ src: string;
1983
+ alt: string;
1984
+ disabled?: boolean;
1985
+ };
1986
+ type ModLogoCellProps = ModLogoCellNoSrc | ModLogoCellWithSrc;
1987
+ /**
1988
+ * ModLogoCell — DataGrid cell displaying a raster or SVG logo image.
1989
+ *
1990
+ * Kept separate from ModIconCell to match the design system Icon/Logo component split:
1991
+ * - ModIconCell: MUI SvgIcon components
1992
+ * - ModLogoCell: raster or SVG image URLs (img tag)
1993
+ */
1994
+ declare const ModLogoCell: {
1995
+ ({ src, alt, disabled }: ModLogoCellProps): react_jsx_runtime.JSX.Element;
1996
+ displayName: string;
1997
+ };
1998
+
1999
+ type ModProgressCellBase = {
2000
+ disabled?: boolean;
2001
+ };
2002
+ type ModProgressCellEmpty = ModProgressCellBase & {
2003
+ empty: true;
2004
+ value?: never;
2005
+ };
2006
+ type ModProgressCellContent = ModProgressCellBase & {
2007
+ empty?: false;
2008
+ value?: number;
2009
+ };
2010
+ type ModProgressCellProps = ModProgressCellEmpty | ModProgressCellContent;
2011
+ /**
2012
+ * ModProgressCell — DataGrid cell displaying a linear progress indicator.
2013
+ */
2014
+ declare const ModProgressCell: {
2015
+ ({ value, disabled, empty, }: ModProgressCellProps): react_jsx_runtime.JSX.Element;
2016
+ displayName: string;
2017
+ };
2018
+
2019
+ type ModStatusCellVariant = 'success' | 'error' | 'warning' | 'info' | 'neutral';
2020
+ type ModStatusCellBase = {
2021
+ disabled?: boolean;
2022
+ };
2023
+ type ModStatusCellEmpty = ModStatusCellBase & {
2024
+ empty: true;
2025
+ label?: never;
2026
+ icon?: never;
2027
+ variant?: never;
2028
+ details?: never;
2029
+ };
2030
+ type ModStatusCellContent = ModStatusCellBase & {
2031
+ empty?: false;
2032
+ label: string;
2033
+ icon?: ReactNode;
2034
+ variant?: ModStatusCellVariant;
2035
+ /** Error details shown in a hover tooltip. Clipboard actions should be handled by the consuming app. */
2036
+ details?: string;
2037
+ };
2038
+ type ModStatusCellProps = ModStatusCellEmpty | ModStatusCellContent;
2039
+ /**
2040
+ * ModStatusCell — DataGrid cell displaying an icon + label chip with optional error tooltip.
2041
+ */
2042
+ declare const ModStatusCell: {
2043
+ ({ icon, label, details, disabled, variant, empty, }: ModStatusCellProps): react_jsx_runtime.JSX.Element;
2044
+ displayName: string;
2045
+ };
2046
+
2047
+ interface ModNavigationAvatarProps extends Omit<ModGeneralAvatarProps, 'size'> {
2048
+ }
2049
+ /**
2050
+ * ModNavigationAvatar - Compact avatar for navigation contexts
2051
+ *
2052
+ * Wraps ModGeneralAvatar (size="medium") in a 40px container,
2053
+ * providing an interactive area for navigation UI.
2054
+ */
2055
+ declare const ModNavigationAvatar: {
2056
+ ({ children, ...props }: ModNavigationAvatarProps): react_jsx_runtime.JSX.Element;
2057
+ displayName: string;
2058
+ };
2059
+
2060
+ declare module '@mui/material/Chip' {
2061
+ interface ChipPropsColorOverrides {
2062
+ violet: true;
2063
+ beta: true;
2064
+ }
2065
+ interface ChipPropsSizeOverrides {
2066
+ large: true;
2067
+ }
2068
+ interface ChipPropsVariantOverrides {
2069
+ outlined: true;
2070
+ filled: true;
2071
+ }
2072
+ }
2073
+ type TagShape = 'square' | 'rounded';
2074
+ type ModTagOwnProps = {
2075
+ /**
2076
+ * The size of the tag
2077
+ * @default "small"
2078
+ */
2079
+ size?: 'small' | 'medium' | 'large';
2080
+ /**
2081
+ * The variant style of the tag
2082
+ * @default "outlined"
2083
+ */
2084
+ variant?: 'outlined' | 'filled';
2085
+ /**
2086
+ * The intent/purpose of the tag
2087
+ * @default "default"
2088
+ */
2089
+ intent?: 'default' | 'error' | 'warning' | 'success' | 'info' | 'violet' | 'beta';
2090
+ /**
2091
+ * Corner treatment. `square` = borderRadius.xS, `rounded` = borderRadius.full.
2092
+ * Deliberately defaults to `square` even though Figma's Shape default differs —
2093
+ * this keeps existing consumers rendering unchanged. Don't "fix" it.
2094
+ * @default "square"
2095
+ */
2096
+ shape?: TagShape;
2097
+ };
2098
+ type ModTagProps<C extends ElementType = typeof Chip> = ModTagOwnProps & Omit<ChipProps, keyof ModTagOwnProps | 'component' | 'color'> & Omit<ComponentPropsWithoutRef<C>, keyof ModTagOwnProps | keyof ChipProps> & {
2099
+ component?: C;
2100
+ };
2101
+ /**
2102
+ * ModTag - Small label component based on MUI Chip
2103
+ */
2104
+ declare function ModTag<C extends ElementType = typeof Chip>({ size, variant, intent, shape, ...props }: ModTagProps<C>): react_jsx_runtime.JSX.Element;
2105
+ declare namespace ModTag {
2106
+ var displayName: string;
2107
+ }
2108
+
2109
+ type ModNavigationItemOwnProps = {
2110
+ /**
2111
+ * Icon element to display
2112
+ */
2113
+ icon?: ReactNode;
2114
+ /**
2115
+ * Text label below the icon
2116
+ */
2117
+ label?: string;
2118
+ /**
2119
+ * Whether the item is selected/active
2120
+ * @default false
2121
+ */
2122
+ selected?: boolean;
2123
+ /**
2124
+ * Optional tag badge content (e.g., "Beta")
2125
+ */
2126
+ tag?: string;
2127
+ /**
2128
+ * Hover tooltip shown only when the surrounding ModSideNav is collapsed
2129
+ * (and the label is therefore hidden).
2130
+ */
2131
+ tooltip?: ReactNode;
2132
+ /**
2133
+ * Slot props for internal sub-components.
2134
+ */
2135
+ slotProps?: {
2136
+ /**
2137
+ * Props forwarded to the ModTag badge rendered when `tag` is set.
2138
+ * Override `intent`, `variant`, or `size` to change appearance — e.g.
2139
+ * `{ variant: 'outlined', intent: 'default' }` for a calmer grey badge.
2140
+ */
2141
+ badge?: ModTagOwnProps & {
2142
+ sx?: Record<string, unknown>;
2143
+ };
2144
+ };
2145
+ /**
2146
+ * Additional content
2147
+ */
2148
+ children?: ReactNode;
2149
+ };
2150
+ type ModNavigationItemProps<C extends ElementType = typeof ButtonBase> = ModNavigationItemOwnProps & Omit<ButtonBaseProps, keyof ModNavigationItemOwnProps | 'component'> & Omit<ComponentPropsWithoutRef<C>, keyof ModNavigationItemOwnProps | keyof ButtonBaseProps> & {
2151
+ component?: C;
2152
+ };
2153
+ /**
2154
+ * ModNavigationItem - Vertical navigation item with icon, label, and optional tag
2155
+ */
2156
+ declare function ModNavigationItem<C extends ElementType = typeof ButtonBase>({ icon, label, selected, tag, tooltip, slotProps, children, ...props }: ModNavigationItemProps<C>): react_jsx_runtime.JSX.Element;
2157
+ declare namespace ModNavigationItem {
2158
+ var displayName: string;
2159
+ }
2160
+
2161
+ /**
2162
+ * Breadcrumb item configuration
2163
+ */
2164
+ interface BreadcrumbItem {
2165
+ /** Link label */
2166
+ label: ReactNode;
2167
+ /** Link href (omit for current/last item) */
2168
+ href?: string;
2169
+ }
2170
+ /**
2171
+ * Breadcrumb configuration with link component and items
2172
+ */
2173
+ interface BreadcrumbConfig {
2174
+ /** Custom link component for client-side navigation (e.g., Next.js Link) */
2175
+ linkComponent?: ElementType;
2176
+ /** Breadcrumb items */
2177
+ items: BreadcrumbItem[];
2178
+ }
2179
+ interface ModPageContentProps extends BoxProps {
2180
+ /**
2181
+ * Main heading displayed on the page
2182
+ */
2183
+ pageTitle: ReactNode | string;
2184
+ /**
2185
+ * Optional subtitle displayed below the page title
2186
+ */
2187
+ subtitle?: ReactNode | string;
2188
+ /**
2189
+ * Optional breadcrumbs navigation displayed above the page title.
2190
+ * Last item is automatically marked as current.
2191
+ *
2192
+ * @example
2193
+ * ```tsx
2194
+ * breadcrumbs={{
2195
+ * linkComponent: NextLink,
2196
+ * items: [
2197
+ * { label: 'Settings', href: '/settings' },
2198
+ * { label: 'Team', href: '/team' },
2199
+ * { label: 'Team Details' },
2200
+ * ]
2201
+ * }}
2202
+ * ```
2203
+ */
2204
+ breadcrumbs?: BreadcrumbConfig;
2205
+ /**
2206
+ * Action button displayed in the top-right corner
2207
+ */
2208
+ action?: ReactNode;
2209
+ /**
2210
+ * Make header sticky on scroll
2211
+ * @default false
2212
+ */
2213
+ sticky?: boolean;
2214
+ /**
2215
+ * Maximum width constraint for content
2216
+ * @default false
2217
+ */
2218
+ contentMaxWidth?: Breakpoint | false;
2219
+ /**
2220
+ * Center content when using contentMaxWidth
2221
+ * @default true
2222
+ */
2223
+ centerContent?: boolean;
2224
+ /**
2225
+ * Disable gutters/padding
2226
+ * @default false
2227
+ */
2228
+ disableGutters?: boolean;
2229
+ /**
2230
+ * Page layout mode.
2231
+ * - `default`: standard centered/max-width-constrained content with
2232
+ * gutters. Best for content-driven pages (settings, forms, lists).
2233
+ * - `fullBleed`: removes max-width and horizontal/bottom padding, lets
2234
+ * the content area flex-fill the viewport. Best for full-height
2235
+ * layouts (sidebar + panel canvases, builders, explorers). Title
2236
+ * and breadcrumbs still render — they sit at the leading edge.
2237
+ * @default 'default'
2238
+ */
2239
+ layout?: 'default' | 'fullBleed';
2240
+ /**
2241
+ * Loading state - shows spinner while content loads
2242
+ * @default false
2243
+ */
2244
+ isLoading?: boolean;
2245
+ /**
2246
+ * Enable back to top button when scrolling
2247
+ * @default true
2248
+ */
2249
+ showBackToTop?: boolean;
2250
+ /**
2251
+ * Content to display in the main area
2252
+ */
2253
+ children: ReactNode;
2254
+ }
2255
+ /**
2256
+ * ModPageContent - Page content surface from the Moderne Design System
2257
+ *
2258
+ * Represents the main white card/surface that contains page content:
2259
+ * - Page title with optional subtitle and action button
2260
+ * - Content area where tabs and page content should be rendered
2261
+ *
2262
+ * ## Design Tokens
2263
+ * - Background: `semanticColors.surface.canvasContent` — the page content
2264
+ * canvas (#fbfaf6 light / #1b1b21 dark), not a raised card surface
2265
+
2266
+ * - Border: `semanticColors.border.primary` (#D1D5DB)
2267
+ * - Border radius: `borderRadius.input` (8px)
2268
+ * - Padding: `spacing.spacing_2_1_2` (20px) horizontal, `spacing.spacing_2` (16px) vertical
2269
+ * - Gap: `spacing.spacing_1` (8px)
2270
+ * - Title typography: `typography.fontSize.h3` (21px), `typography.fontWeight.medium`
2271
+ *
2272
+ * @example
2273
+ * ```tsx
2274
+ * <ModPageContent
2275
+ * pageTitle="Users"
2276
+ * action={<IconButton>...</IconButton>}
2277
+ * >
2278
+ * <ModDataGrid ... />
2279
+ * </ModPageContent>
2280
+ * ```
2281
+ *
2282
+ * @example
2283
+ * ```tsx
2284
+ * // With subtitle
2285
+ * <ModPageContent
2286
+ * pageTitle="Settings"
2287
+ * subtitle="Manage your account preferences"
2288
+ * >
2289
+ * <SettingsContent />
2290
+ * </ModPageContent>
2291
+ * ```
2292
+ *
2293
+ * @example
2294
+ * ```tsx
2295
+ * // With sticky header
2296
+ * <ModPageContent
2297
+ * pageTitle="Long Content"
2298
+ * sticky
2299
+ * >
2300
+ * <VeryLongContent />
2301
+ * </ModPageContent>
2302
+ * ```
2303
+ */
2304
+ declare function ModPageContent({ pageTitle, subtitle, breadcrumbs, action, sticky, contentMaxWidth: contentMaxWidthProp, centerContent, disableGutters: disableGuttersProp, isLoading, showBackToTop, layout, children, sx, ...boxProps }: ModPageContentProps): react_jsx_runtime.JSX.Element;
2305
+ declare namespace ModPageContent {
2306
+ var displayName: string;
2307
+ }
2308
+
2309
+ interface ModPaginatedGridProps extends Omit<ModDataGridProps, 'slots'> {
2310
+ /**
2311
+ * Custom slots (merged with design system defaults)
2312
+ */
2313
+ slots?: Partial<GridSlots>;
2314
+ }
2315
+ /**
2316
+ * ModPaginatedGrid - DataGrid with standard pagination controls
2317
+ *
2318
+ * Features:
2319
+ * - Standard MUI pagination with page numbers
2320
+ * - Shows "1-10 of 100" format in footer
2321
+ * - Previous/Next navigation buttons
2322
+ * - Auto-calculates page size to fit viewport (autoPageSize)
2323
+ * - No vertical scrollbar within pages - use pagination to navigate
2324
+ * - Inherits all responsive features from ModDataGrid
2325
+ *
2326
+ * @example
2327
+ * <ModPaginatedGrid
2328
+ * rows={rows}
2329
+ * columns={columns}
2330
+ * paginationModel={{ page: 0, pageSize: 10 }}
2331
+ * onPaginationModelChange={handlePaginationChange}
2332
+ * rowCount={100}
2333
+ * />
2334
+ */
2335
+ declare function ModPaginatedGrid({ slots, pageSizeOptions, slotProps: userSlotProps, ...props }: ModPaginatedGridProps): react_jsx_runtime.JSX.Element;
2336
+ declare namespace ModPaginatedGrid {
2337
+ var displayName: string;
2338
+ }
2339
+
2340
+ interface ModProgressbarProps extends Omit<LinearProgressProps, 'variant'> {
2341
+ /**
2342
+ * The value of the progress indicator for the determinate variant.
2343
+ * Value between 0 and 100.
2344
+ * @default 0
2345
+ */
2346
+ value?: number;
2347
+ /**
2348
+ * Position of the label showing the progress percentage
2349
+ * @default "none"
2350
+ */
2351
+ labelPosition?: 'none' | 'right' | 'top' | 'bottom';
2352
+ /**
2353
+ * The variant of the progress indicator
2354
+ * @default "default"
2355
+ */
2356
+ variant?: 'default' | 'cancelled';
2357
+ /**
2358
+ * Custom label text to display instead of the percentage
2359
+ */
2360
+ labelText?: string;
2361
+ }
2362
+ /**
2363
+ * ModProgressbar - Linear progress indicator based on MUI LinearProgress
2364
+ *
2365
+ * Design Decisions (from Issue #75):
2366
+ * - MUI Base Component: LinearProgress (provides accessibility, animations, progress tracking)
2367
+ * - Label Positioning: Single labelPosition prop with values 'none', 'right', 'top', 'bottom'
2368
+ * - Cancelled State: Separate variant prop (variant='cancelled') alongside value prop
2369
+ */
2370
+ declare const ModProgressbar: {
2371
+ ({ value, labelPosition, variant, labelText, ...props }: ModProgressbarProps): react_jsx_runtime.JSX.Element;
2372
+ displayName: string;
2373
+ };
2374
+
2375
+ interface ModQuickFilterProps {
2376
+ /**
2377
+ * Placeholder text for the search input
2378
+ * @default "Search..."
2379
+ */
2380
+ placeholder?: string;
2381
+ /**
2382
+ * Callback fired when a key is pressed
2383
+ */
2384
+ onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
2385
+ /**
2386
+ * If true, the input will be focused on mount
2387
+ * @default false
2388
+ */
2389
+ autoFocus?: boolean;
2390
+ }
2391
+ /**
2392
+ * ModQuickFilter - Quick search/filter input component for data grids
2393
+ *
2394
+ * Uses MUI X DataGrid's QuickFilterControl with Moderne design system styling.
2395
+ * Styled to match the Figma design with search icon, clear button, and proper spacing.
2396
+ *
2397
+ * **Note:** This component must be used within a DataGrid context (inside a DataGrid component's toolbar).
2398
+ *
2399
+ * @example
2400
+ * // Basic usage in DataGrid toolbar
2401
+ * <DataGrid
2402
+ * rows={rows}
2403
+ * columns={columns}
2404
+ * slots={{
2405
+ * toolbar: () => (
2406
+ * <ModToolbar>
2407
+ * <ModQuickFilter placeholder="Search users..." />
2408
+ * </ModToolbar>
2409
+ * ),
2410
+ * }}
2411
+ * />
2412
+ */
2413
+ declare const ModQuickFilter: {
2414
+ ({ placeholder, onKeyDown, autoFocus, }: ModQuickFilterProps): react_jsx_runtime.JSX.Element;
2415
+ displayName: string;
2416
+ };
2417
+
2418
+ declare module '@mui/material/Radio' {
2419
+ interface RadioPropsSizeOverrides {
2420
+ small: true;
2421
+ medium: true;
2422
+ }
2423
+ }
2424
+ type RadioSize = 'small' | 'medium';
2425
+ interface ModRadioProps extends Omit<RadioProps, 'size'> {
2426
+ /**
2427
+ * The size of the radio button
2428
+ * @default "medium"
2429
+ */
2430
+ size?: RadioSize;
2431
+ /**
2432
+ * The label text displayed next to the radio button
2433
+ */
2434
+ label?: ReactNode;
2435
+ /**
2436
+ * The helper text displayed below the label
2437
+ */
2438
+ helperText?: ReactNode;
2439
+ }
2440
+ /**
2441
+ * ModRadio - Radio button component based on MUI Radio
2442
+ *
2443
+ * @example
2444
+ * // Basic radio button (just the icon)
2445
+ * <ModRadio />
2446
+ *
2447
+ * @example
2448
+ * // With label
2449
+ * <ModRadio label="Remember me" />
2450
+ *
2451
+ * @example
2452
+ * // With label and helper text
2453
+ * <ModRadio label="Remember me" helperText="Save my login details for next time." />
2454
+ *
2455
+ * @example
2456
+ * // Small size
2457
+ * <ModRadio size="small" label="Remember me" />
2458
+ *
2459
+ * @example
2460
+ * // Controlled
2461
+ * <ModRadio checked={value === 'option1'} onChange={handleChange} value="option1" label="Option 1" />
2462
+ *
2463
+ * @example
2464
+ * // Radio group
2465
+ * <RadioGroup value={value} onChange={handleChange}>
2466
+ * <ModRadio value="option1" label="Option 1" helperText="First option" />
2467
+ * <ModRadio value="option2" label="Option 2" helperText="Second option" />
2468
+ * </RadioGroup>
2469
+ */
2470
+ declare const ModRadio: {
2471
+ ({ size, label, helperText, disabled, ...props }: ModRadioProps): react_jsx_runtime.JSX.Element;
2472
+ displayName: string;
2473
+ };
2474
+
2475
+ /**
2476
+ * ModRadioButtonWithText
2477
+ */
2478
+ declare const ModRadioButtonWithText: StyledComponent<_mui_system.MUIStyledCommonProps<_mui_material.Theme>, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
2479
+
2480
+ interface ModRipplingDotProps extends BoxProps$1 {
2481
+ }
2482
+ /**
2483
+ * ModRipplingDot - Animated status dot with an expanding ripple ring.
2484
+ *
2485
+ * Indicates an in-progress, indeterminate state (RUNNING / SYNCING / PROCESSING).
2486
+ * Color is inherited from `currentColor`; set it via the `color`/`sx` prop or a
2487
+ * parent. Sized to the lowercase-letter height regardless of parent fontSize.
2488
+ */
2489
+ declare const ModRipplingDot: FunctionComponent<ModRipplingDotProps>;
2490
+
2491
+ interface ModSearchChipProps extends Omit<InputBaseProps, 'startAdornment' | 'endAdornment' | 'type'> {
2492
+ /**
2493
+ * Handler for clearing the search value (shows X icon when provided and value is non-empty)
2494
+ */
2495
+ onClear?: () => void;
2496
+ }
2497
+ /**
2498
+ * ModSearchChip - Pill-shaped search input for inline search functionality.
2499
+ *
2500
+ * @example
2501
+ * <ModSearchChip placeholder="Search titles" value={query} onChange={handleChange} onClear={handleClear} />
2502
+ */
2503
+ declare const ModSearchChip: {
2504
+ ({ onClear, value, ...props }: ModSearchChipProps): react_jsx_runtime.JSX.Element;
2505
+ displayName: string;
2506
+ };
2507
+
2508
+ interface ModSelectFieldOption {
2509
+ value: string | number;
2510
+ label: ReactNode;
2511
+ disabled?: boolean;
2512
+ }
2513
+ interface ModSelectFieldProps extends Omit<SelectProps, 'size' | 'variant' | 'error' | 'children'> {
2514
+ /**
2515
+ * Form-control size.
2516
+ * @default 'medium'
2517
+ */
2518
+ size?: InputFieldSize;
2519
+ /**
2520
+ * Show error/destructive state with red label + helper text styling.
2521
+ * @default false
2522
+ */
2523
+ destructive?: boolean;
2524
+ /** Label text rendered above the select. */
2525
+ label?: string;
2526
+ /** Show required indicator (asterisk) next to the label. @default false */
2527
+ required?: boolean;
2528
+ /** Optional info icon rendered next to the label. */
2529
+ infoIcon?: ReactNode;
2530
+ /** Helper text rendered below the select (normal state). */
2531
+ helperText?: string;
2532
+ /**
2533
+ * Error message rendered below the select when `destructive` is true.
2534
+ * Takes precedence over helperText when destructive.
2535
+ */
2536
+ errorMessage?: string;
2537
+ /**
2538
+ * Convenience option list. Each entry becomes a ModSelectOption.
2539
+ * Use `children` instead for custom option content.
2540
+ */
2541
+ options?: ModSelectFieldOption[];
2542
+ /** Custom option content. Overrides `options` if both are provided. */
2543
+ children?: ReactNode;
2544
+ }
2545
+ /**
2546
+ * ModSelectField — composite of ModInputField's form chrome (label,
2547
+ * helper text, error state) wrapped around ModSelect. Mirrors the
2548
+ * MUI `<TextField select>` ergonomics with design system tokens, so
2549
+ * consumers don't have to compose the two manually.
2550
+ *
2551
+ * @example
2552
+ * <ModSelectField
2553
+ * label="Response format"
2554
+ * value={format}
2555
+ * onChange={e => setFormat(e.target.value)}
2556
+ * options={[
2557
+ * { value: 'json', label: 'JSON' },
2558
+ * { value: 'plain', label: 'Plain text' },
2559
+ * ]}
2560
+ * />
2561
+ */
2562
+ declare const ModSelectField: {
2563
+ ({ size, destructive, label, required, infoIcon, helperText, errorMessage, options, children, disabled, id, ...selectProps }: ModSelectFieldProps): react_jsx_runtime.JSX.Element;
2564
+ displayName: string;
2565
+ };
2566
+
2567
+ type ModSelectFieldChangeEvent<T = unknown> = SelectChangeEvent<T>;
2568
+
2569
+ type ModSideNavProps = {
2570
+ /** Controlled collapsed state. */
2571
+ collapsed: boolean;
2572
+ /** Called with the next collapsed value when the edge-handle is activated. */
2573
+ onCollapsedChange: (next: boolean) => void;
2574
+ /** Fixed top slot (e.g. product logo). */
2575
+ header?: ReactNode;
2576
+ /** Fixed bottom slot (e.g. tenant branding). */
2577
+ footer?: ReactNode;
2578
+ /** Scrolling content slot — the nav items. */
2579
+ children?: ReactNode;
2580
+ } & Pick<ComponentPropsWithoutRef<'nav'>, 'className' | 'id' | 'aria-label'>;
2581
+ /**
2582
+ * ModSideNav
2583
+ *
2584
+ * Collapsible vertical navigation rail with fixed `header`/`footer` slots and a
2585
+ * scrolling content area. Controlled via `collapsed` + `onCollapsedChange`;
2586
+ * broadcasts collapsed state to descendant `ModNavigationItem`s through context.
2587
+ *
2588
+ * The scroll area's top and bottom edges fade into the fixed slots, each fade
2589
+ * appearing only while there is content to scroll toward in that direction.
2590
+ *
2591
+ * A chevron handle on the rail's trailing edge (beside the tenant-logo row)
2592
+ * toggles the controlled state. Consumers that want the rail to auto-collapse
2593
+ * on viewport changes compute `collapsed` themselves (e.g. via `useMediaQuery`)
2594
+ * and pass it in — see the `AutoCollapseOnResize` Storybook story for the
2595
+ * pattern.
2596
+ */
2597
+ declare function ModSideNav({ collapsed, onCollapsedChange, header, footer, children, className, id, 'aria-label': ariaLabel, }: ModSideNavProps): react_jsx_runtime.JSX.Element;
2598
+ declare namespace ModSideNav {
2599
+ var displayName: string;
2600
+ }
2601
+
2602
+ /**
2603
+ * Extended props for ModSkeleton component
2604
+ */
2605
+ interface ModSkeletonProps extends Omit<SkeletonProps, 'variant' | 'animation'> {
2606
+ /**
2607
+ * Color theme variant for the skeleton
2608
+ * @default "light"
2609
+ */
2610
+ colorTheme?: 'light' | 'dark';
2611
+ /**
2612
+ * Animation position (direction)
2613
+ * @default "start"
2614
+ */
2615
+ position?: 'start' | 'end';
2616
+ }
2617
+ /**
2618
+ * ModSkeleton - Loading skeleton component based on MUI Skeleton
2619
+ *
2620
+ * Usage:
2621
+ * ```tsx
2622
+ * <ModSkeleton width={200} height={32} />
2623
+ * <ModSkeleton colorTheme="dark" position="end" width={200} height={32} />
2624
+ * ```
2625
+ */
2626
+ declare const ModSkeleton: {
2627
+ ({ colorTheme, position, ...props }: ModSkeletonProps): react_jsx_runtime.JSX.Element;
2628
+ displayName: string;
2629
+ };
2630
+
2631
+ type TableSize = 'small' | 'medium';
2632
+ type TableVariant = 'bordered' | 'plain';
2633
+ type CellAlign = 'left' | 'center' | 'right';
2634
+ interface ModTableColumn {
2635
+ /** Unique key — looked up against each row to find the cell value. */
2636
+ key: string;
2637
+ /** Header label rendered in the thead. */
2638
+ header: ReactNode;
2639
+ /** Cell text alignment. @default 'left' */
2640
+ align?: CellAlign;
2641
+ /** Column width — any CSS length (e.g. '120px', '20%'). */
2642
+ width?: string;
2643
+ }
2644
+ interface ModTableProps extends Omit<TableProps, 'size'> {
2645
+ /** Column definitions. Order in the array determines render order. */
2646
+ columns: ModTableColumn[];
2647
+ /**
2648
+ * Row data. Each row is a record keyed by `column.key`. Cell values
2649
+ * may be any ReactNode (strings, badges, icons, etc.).
2650
+ */
2651
+ rows: Array<Record<string, ReactNode>>;
2652
+ /**
2653
+ * Cell density.
2654
+ * - 'small': tight padding for dense lists.
2655
+ * - 'medium': comfortable padding for read-heavy tables.
2656
+ * @default 'small'
2657
+ */
2658
+ size?: TableSize;
2659
+ /**
2660
+ * Container chrome.
2661
+ * - 'bordered': container border + borderRadius.card.
2662
+ * - 'plain': no container chrome — for embedding inside an existing surface.
2663
+ * @default 'bordered'
2664
+ */
2665
+ variant?: TableVariant;
2666
+ /** Optional accessible label for the table. */
2667
+ ariaLabel?: string;
2668
+ }
2669
+ /**
2670
+ * ModTable — lightweight read-only table for static data (schema rows,
2671
+ * key/value summaries, response metadata). For interactive grids with
2672
+ * sorting / filtering / pagination, use ModDataGrid instead.
2673
+ *
2674
+ * @example
2675
+ * <ModTable
2676
+ * columns={[
2677
+ * { key: 'name', header: 'Property' },
2678
+ * { key: 'type', header: 'Type', align: 'center', width: '120px' },
2679
+ * { key: 'description', header: 'Description' },
2680
+ * ]}
2681
+ * rows={[
2682
+ * { name: 'id', type: 'string', description: 'Resource identifier' },
2683
+ * { name: 'count', type: 'number', description: 'Item count' },
2684
+ * ]}
2685
+ * size="small"
2686
+ * />
2687
+ */
2688
+ declare const ModTable: {
2689
+ ({ columns, rows, size, variant, ariaLabel, ...tableProps }: ModTableProps): react_jsx_runtime.JSX.Element;
2690
+ displayName: string;
2691
+ };
2692
+
2693
+ type TabPanelVariant = 'default' | 'flush';
2694
+ interface ModTabPanelProps extends Omit<BoxProps, 'role'> {
2695
+ /** This panel's identity — must match `currentValue` for the panel to render. */
2696
+ value: string | number;
2697
+ /**
2698
+ * The currently selected tab value. When equal to `value`, this panel
2699
+ * renders its children. Otherwise the panel is hidden (and removed from
2700
+ * the accessibility tree via `hidden`).
2701
+ */
2702
+ currentValue: string | number;
2703
+ /**
2704
+ * Layout density.
2705
+ * - `default`: 16px top padding — for standard content tabs.
2706
+ * - `flush`: zero padding — for full-bleed sidebar/panel/canvas layouts
2707
+ * where content must sit flush against the tab bar's bottom border.
2708
+ * @default 'default'
2709
+ */
2710
+ variant?: TabPanelVariant;
2711
+ /** Panel content. */
2712
+ children?: ReactNode;
2713
+ }
2714
+ /**
2715
+ * ModTabPanel — completes the ModTabs + ModTab + ModTabPanel set.
2716
+ *
2717
+ * Lightweight ARIA-compliant tab panel that renders children when its
2718
+ * `value` matches `currentValue`. No MUI Lab / TabContext dependency.
2719
+ *
2720
+ * @example
2721
+ * const [tab, setTab] = useState('overview')
2722
+ * return (
2723
+ * <>
2724
+ * <ModTabs value={tab} onChange={(_, v) => setTab(v)}>
2725
+ * <ModTab value="overview" label="Overview" />
2726
+ * <ModTab value="details" label="Details" />
2727
+ * </ModTabs>
2728
+ * <ModTabPanel value="overview" currentValue={tab}>...</ModTabPanel>
2729
+ * <ModTabPanel value="details" currentValue={tab} variant="flush">...</ModTabPanel>
2730
+ * </>
2731
+ * )
2732
+ */
2733
+ declare const ModTabPanel: {
2734
+ ({ value, currentValue, variant, children, ...boxProps }: ModTabPanelProps): react_jsx_runtime.JSX.Element;
2735
+ displayName: string;
2736
+ };
2737
+
2738
+ /**
2739
+ * ModTabs - Tabs container component based on MUI Tabs
2740
+ */
2741
+ declare const ModTabs: StyledComponent<_mui_material.TabsOwnProps & _mui_material_OverridableComponent.CommonProps & Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "style" | "children" | "sx" | "className" | "aria-label" | "aria-labelledby" | "onChange" | "classes" | "action" | "value" | "variant" | "orientation" | "slots" | "slotProps" | "allowScrollButtonsMobile" | "centered" | "indicatorColor" | "scrollButtons" | "selectionFollowsFocus" | "textColor" | "visibleScrollbar"> & _mui_system.MUIStyledCommonProps<_mui_material.Theme>, {}, {}>;
2742
+ interface ModTabProps extends Omit<TabProps, 'label'> {
2743
+ /**
2744
+ * The label for the tab
2745
+ */
2746
+ label: ReactNode;
2747
+ /**
2748
+ * Optional count to display in a tag next to the label
2749
+ * @default undefined
2750
+ */
2751
+ count?: number | string;
2752
+ /**
2753
+ * Tab value identifier
2754
+ */
2755
+ value: string | number;
2756
+ }
2757
+ /**
2758
+ * ModTab - Individual tab button component based on MUI Tab
2759
+ */
2760
+ declare const ModTab: {
2761
+ ({ label, count, ...props }: ModTabProps): react_jsx_runtime.JSX.Element;
2762
+ displayName: string;
2763
+ };
2764
+
2765
+ type Intent = 'neutral' | 'info' | 'success' | 'error' | 'warning';
2766
+ /**
2767
+ * @deprecated The Figma design no longer has Filled/Outlined styles. Retained for API
2768
+ * compatibility only; all toasts render the single tinted style.
2769
+ */
2770
+ type ToastType = 'outlined' | 'filled';
2771
+ interface ModToastProps extends Omit<AlertProps, 'variant' | 'severity' | 'color'> {
2772
+ /**
2773
+ * The intent/purpose of the toast
2774
+ * @default "neutral"
2775
+ */
2776
+ intent?: Intent;
2777
+ /**
2778
+ * @deprecated The Figma design no longer has Filled/Outlined styles. Ignored; all
2779
+ * toasts render the single tinted style.
2780
+ */
2781
+ type?: ToastType;
2782
+ /**
2783
+ * The title/header text
2784
+ */
2785
+ title?: string;
2786
+ /**
2787
+ * The body/supporting text
2788
+ */
2789
+ message?: string;
2790
+ /**
2791
+ * Whether to show the close button
2792
+ * @default false
2793
+ */
2794
+ showClose?: boolean;
2795
+ /**
2796
+ * Custom action buttons (for default toast types)
2797
+ * Pass action buttons as children of this prop
2798
+ */
2799
+ actions?: ReactNode;
2800
+ /**
2801
+ * Callback when close button is clicked
2802
+ */
2803
+ onClose?: () => void;
2804
+ }
2805
+ /**
2806
+ * ModToast - Notification/Toast component based on MUI Alert
2807
+ */
2808
+ declare const ModToast: {
2809
+ ({ intent, type: _type, title, message, showClose, actions, onClose, ...props }: ModToastProps): react_jsx_runtime.JSX.Element;
2810
+ displayName: string;
2811
+ };
2812
+ /**
2813
+ * Helper component for creating toast action buttons with proper styling
2814
+ */
2815
+ declare const ModToastButton: {
2816
+ ({ primary, intent, type: _type, children, ...props }: {
2817
+ primary?: boolean;
2818
+ intent?: Intent;
2819
+ /**
2820
+ * @deprecated The Figma design no longer has Filled/Outlined styles. Ignored.
2821
+ */
2822
+ type?: ToastType;
2823
+ children: ReactNode;
2824
+ } & Omit<React.ComponentProps<typeof Button>, "variant" | "type">): react_jsx_runtime.JSX.Element;
2825
+ displayName: string;
2826
+ };
2827
+
2828
+ declare module '@mui/material/Switch' {
2829
+ interface SwitchPropsSizeOverrides {
2830
+ small: true;
2831
+ medium: true;
2832
+ }
2833
+ }
2834
+ type ToggleSize = 'small' | 'medium';
2835
+ interface ModToggleProps extends Omit<SwitchProps, 'size'> {
2836
+ /**
2837
+ * The size of the toggle
2838
+ * @default "medium"
2839
+ */
2840
+ size?: ToggleSize;
2841
+ /**
2842
+ * The label text displayed next to the toggle
2843
+ */
2844
+ label?: ReactNode;
2845
+ /**
2846
+ * The helper text displayed below the label
2847
+ */
2848
+ helperText?: ReactNode;
2849
+ }
2850
+ /**
2851
+ * ModToggle - Binary on/off switch component based on MUI Switch
2852
+ *
2853
+ * @example
2854
+ * // Basic toggle
2855
+ * <ModToggle />
2856
+ *
2857
+ * @example
2858
+ * // With label
2859
+ * <ModToggle label="Remember me" />
2860
+ *
2861
+ * @example
2862
+ * // With label and helper text
2863
+ * <ModToggle label="Remember me" helperText="Save my login details for next time." />
2864
+ *
2865
+ * @example
2866
+ * // Small size
2867
+ * <ModToggle size="small" label="Remember me" />
2868
+ *
2869
+ * @example
2870
+ * // Controlled
2871
+ * <ModToggle checked={isChecked} onChange={handleChange} label="Remember me" />
2872
+ */
2873
+ declare const ModToggle: {
2874
+ ({ size, label, helperText, disabled, ...props }: ModToggleProps): react_jsx_runtime.JSX.Element;
2875
+ displayName: string;
2876
+ };
2877
+
2878
+ type ToggleButtonSize = 'small' | 'medium';
2879
+ /**
2880
+ * Visual style of the toggle. Set automatically by ModToggleButtonGroup.
2881
+ * - `default`: buttons fill a bordered pill; selected is a tinted band.
2882
+ * - `segmented`: buttons are raised pills on a sunken track; selected lifts to
2883
+ * the card surface in accent text (the Morpheus segmented control).
2884
+ */
2885
+ type ToggleButtonVariant = 'default' | 'segmented';
2886
+ interface ModToggleButtonProps extends Omit<ToggleButtonProps, 'color' | 'size'> {
2887
+ /**
2888
+ * Size of the toggle button. Set automatically by ModToggleButtonGroup
2889
+ * when used as a child; set explicitly only for standalone use.
2890
+ * @default 'medium'
2891
+ */
2892
+ size?: ToggleButtonSize;
2893
+ /**
2894
+ * Visual style. Set automatically by ModToggleButtonGroup; set explicitly
2895
+ * only for standalone use.
2896
+ * @default 'default'
2897
+ */
2898
+ variant?: ToggleButtonVariant;
2899
+ }
2900
+ /**
2901
+ * ModToggleButton — a single button in a segmented control. Use inside
2902
+ * ModToggleButtonGroup; the group manages selection state and forwards
2903
+ * size and variant to its children. Suitable for inline toolbar mode switches
2904
+ * ("Table" / "Raw"). For page-level tabs, prefer ModButtonTab.
2905
+ */
2906
+ declare const ModToggleButton: {
2907
+ ({ children, size, variant, ...props }: ModToggleButtonProps): react_jsx_runtime.JSX.Element;
2908
+ displayName: string;
2909
+ };
2910
+
2911
+ type ToggleButtonGroupSize = 'small' | 'medium';
2912
+ interface ModToggleButtonGroupProps extends Omit<ToggleButtonGroupProps, 'orientation' | 'color' | 'size' | 'fullWidth'> {
2913
+ /**
2914
+ * Size of the buttons in the group. Forwarded to each ModToggleButton child.
2915
+ * @default 'medium'
2916
+ */
2917
+ size?: ToggleButtonGroupSize;
2918
+ /**
2919
+ * Visual style, forwarded to each child. `segmented` renders raised pills on
2920
+ * a sunken track with the selected pill lifted to the card surface in accent
2921
+ * text (Morpheus). `default` is a bordered pill with a tinted selection.
2922
+ * @default 'default'
2923
+ */
2924
+ variant?: ToggleButtonVariant;
2925
+ }
2926
+ /**
2927
+ * ModToggleButtonGroup — segmented control wrapping MUI ToggleButtonGroup with
2928
+ * design system tokens. Use for inline toolbar mode switches (e.g. "Table" / "Raw" in a
2929
+ * panel header). For page-level tab navigation, prefer ModButtonTabGroup.
2930
+ *
2931
+ * @example
2932
+ * <ModToggleButtonGroup value={mode} exclusive onChange={(_, v) => v && setMode(v)} variant="segmented" size="small">
2933
+ * <ModToggleButton value="table">Table</ModToggleButton>
2934
+ * <ModToggleButton value="raw">Raw</ModToggleButton>
2935
+ * </ModToggleButtonGroup>
2936
+ */
2937
+ declare const ModToggleButtonGroup: {
2938
+ ({ size, variant, children, ...props }: ModToggleButtonGroupProps): react_jsx_runtime.JSX.Element;
2939
+ displayName: string;
2940
+ };
2941
+
2942
+ /**
2943
+ * ModToggleButtonWithText
2944
+ */
2945
+ declare const ModToggleButtonWithText: StyledComponent<_mui_system.MUIStyledCommonProps<_mui_material.Theme>, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
2946
+
2947
+ interface ModToolbarProps extends ToolbarProps {
2948
+ /**
2949
+ * Toolbar content (typically ModQuickFilter, ModButton, ModToggle, etc.)
2950
+ */
2951
+ children?: ReactNode;
2952
+ }
2953
+ /**
2954
+ * ModToolbar - Styled toolbar component for data grid controls
2955
+ *
2956
+ * A composable toolbar component that provides consistent styling for data grid toolbars.
2957
+ * Uses justify-space-between layout. Wrap left-side controls in a Box with gap, and right-side
2958
+ * controls in another Box.
2959
+ *
2960
+ * @example
2961
+ * // Basic toolbar with search
2962
+ * <ModToolbar>
2963
+ * <Box sx={{ display: 'flex', gap: 2, alignItems: 'center' }}>
2964
+ * <ModQuickFilter placeholder="Search..." />
2965
+ * </Box>
2966
+ * </ModToolbar>
2967
+ *
2968
+ * @example
2969
+ * // Full toolbar with left controls and right actions
2970
+ * <ModToolbar>
2971
+ * <Box sx={{ display: 'flex', gap: 2, alignItems: 'center' }}>
2972
+ * <ModQuickFilter placeholder="Search..." />
2973
+ * <ModButton variant="secondary" size="small">
2974
+ * <SlidersHorizontal size={20} />
2975
+ * Filters
2976
+ * <ModTag label="4" variant="filled" color="info" />
2977
+ * </ModButton>
2978
+ * <ModButton variant="secondary" size="small">
2979
+ * <Columns3 size={16} />
2980
+ * Columns
2981
+ * </ModButton>
2982
+ * <ModToggle size="small" label="Toggle option" checked={true} />
2983
+ * </Box>
2984
+ * <Box sx={{ display: 'flex', gap: 2, alignItems: 'center', height: 40 }}>
2985
+ * <ModButton variant="secondary" size="small">
2986
+ * Actions
2987
+ * <ChevronDown size={16} />
2988
+ * </ModButton>
2989
+ * </Box>
2990
+ * </ModToolbar>
2991
+ */
2992
+ declare const ModToolbar: {
2993
+ ({ children, ...props }: ModToolbarProps): react_jsx_runtime.JSX.Element;
2994
+ displayName: string;
2995
+ };
2996
+
2997
+ /**
2998
+ * Variant type for ModTooltip
2999
+ */
3000
+ type TooltipVariant = 'light' | 'dark' | 'brand';
3001
+ /**
3002
+ * Props for the ModTooltip component
3003
+ */
3004
+ interface ModTooltipProps extends Omit<TooltipProps, 'title' | 'variant'> {
3005
+ /**
3006
+ * The visual style variant
3007
+ * @default "light"
3008
+ */
3009
+ variant?: TooltipVariant;
3010
+ /**
3011
+ * The main tooltip content. Accepts a string or any ReactNode, so callers can
3012
+ * compose richer content when the `description` variant isn't enough.
3013
+ */
3014
+ title: ReactNode;
3015
+ /**
3016
+ * Optional supporting description text. When provided, shows a larger tooltip
3017
+ * with a heading + body hierarchy: title (13px semibold) above a muted
3018
+ * description (12px medium).
3019
+ * @default undefined
3020
+ */
3021
+ description?: string;
3022
+ }
3023
+ /**
3024
+ * ModTooltip - Tooltip component following design system
3025
+ *
3026
+ * Provides contextual information when users hover over or focus on an element.
3027
+ * Supports three visual variants (light, dark, brand) and optional supporting text.
3028
+ *
3029
+ * Design Tokens Used:
3030
+ * - Light: surfaces.tooltip, typography.tooltip.default
3031
+ * - Dark: surfaces.white, typography.body
3032
+ * - Brand: surfaces.snackbarBrand, typography.linkWhite (both fixed across modes)
3033
+ * - Shadow: neutralMedium (0px 8px 15px 0px rgba(31,41,55,0.1))
3034
+ * - Typography: fontSize.xs (12), fontSize.caption (13), fontWeight.medium (500), fontWeight.semiBold (600)
3035
+ */
3036
+ declare const ModTooltip: {
3037
+ ({ variant, title, description, children, arrow, placement, ...props }: ModTooltipProps): react_jsx_runtime.JSX.Element;
3038
+ displayName: string;
3039
+ };
3040
+
3041
+ /**
3042
+ * ModTopNav
3043
+ */
3044
+ declare const ModTopNav: StyledComponent<_mui_system.MUIStyledCommonProps<_mui_material.Theme>, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
3045
+
3046
+ /**
3047
+ * ModTourModal
3048
+ */
3049
+ declare const ModTourModal: StyledComponent<_mui_system.MUIStyledCommonProps<_mui_material.Theme>, React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
3050
+
3051
+ /**
3052
+ * Extended item data that ModTreeItem can read from the items array.
3053
+ * Consumers pass these via the `items` prop on ModTreeView.
3054
+ */
3055
+ interface ModTreeItemData {
3056
+ id: string;
3057
+ label: string;
3058
+ icon?: ReactNode;
3059
+ checkbox?: ReactNode;
3060
+ secondaryLabel?: ReactNode;
3061
+ endAction?: ReactNode;
3062
+ statusIcon?: ReactNode;
3063
+ children?: ModTreeItemData[];
3064
+ }
3065
+ type ModTreeItemProps = TreeItemProps;
3066
+ /**
3067
+ * ModTreeItem - Styled tree item row with optional icon, checkbox,
3068
+ * secondaryLabel, endAction, and statusIcon slots.
3069
+ *
3070
+ * Slot data is read from the item model (passed via `items` on ModTreeView).
3071
+ */
3072
+ declare const ModTreeItem: React$1.ForwardRefExoticComponent<TreeItemProps & React$1.RefAttributes<HTMLLIElement>>;
3073
+ interface ModTreeViewProps extends Omit<RichTreeViewProProps<ModTreeItemData, false>, 'slots'> {
3074
+ slots?: RichTreeViewProProps<ModTreeItemData, false>['slots'];
3075
+ }
3076
+ /**
3077
+ * ModTreeView - Styled tree container wrapping MUI RichTreeViewPro.
3078
+ *
3079
+ * Provides design-system token styling, default expand/collapse icons,
3080
+ * and ModTreeItem as the default item slot.
3081
+ */
3082
+ declare const ModTreeView: {
3083
+ ({ slots, ...props }: ModTreeViewProps): react_jsx_runtime.JSX.Element;
3084
+ displayName: string;
3085
+ };
3086
+
3087
+ declare const StyledToggleButton: StyledComponent<_mui_material.ToggleButtonOwnProps & Omit<_mui_material.ButtonBaseOwnProps, keyof _mui_material.ToggleButtonOwnProps> & Omit<_mui_material.ButtonBaseOwnProps, "tabIndex" | "action" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "nativeButton" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "type" | keyof _mui_material.ToggleButtonOwnProps> & _mui_material_OverridableComponent.CommonProps & Omit<React$1.DetailedHTMLProps<React$1.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "style" | "color" | "size" | "children" | "sx" | "className" | "tabIndex" | "onChange" | "onClick" | "classes" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "nativeButton" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "type" | "disableFocusRipple" | "value" | "fullWidth" | "selected"> & _mui_system.MUIStyledCommonProps<_mui_material.Theme>, {}, {}>;
3088
+ interface ModTypologyControlProps extends Omit<ToggleButtonGroupProps, 'orientation'> {
3089
+ }
3090
+ /**
3091
+ * ModTypologyControl - A vertical toggle button group for switching between different typology views
3092
+ *
3093
+ * Design Tokens Used:
3094
+ * - semanticColors.surfaces.card - background color
3095
+ * - semanticColors.icons.default - default icon color
3096
+ * - semanticColors.icons.active - selected icon color
3097
+ * - semanticColors.buttons.navigation.pressedBackground - selected button background
3098
+ * - borderRadius.m - container border radius
3099
+ */
3100
+ declare const ModTypologyControl: {
3101
+ ({ children, ...props }: ModTypologyControlProps): react_jsx_runtime.JSX.Element;
3102
+ displayName: string;
3103
+ };
3104
+
3105
+ /**
3106
+ * Outline-based focus ring styles derived from design system border tokens.
3107
+ * Uses CSS outline (not box-shadow) so focus rings are never clipped by overflow:hidden.
3108
+ *
3109
+ * Produces a double-ring effect: a white inner gap (via outline-offset) and a colored outer ring.
3110
+ */
3111
+ declare const focusRingStyles: {
3112
+ readonly outline: "2px solid var(--mod-border-focus)";
3113
+ readonly outlineOffset: "2px";
3114
+ };
3115
+
3116
+ interface ModVibratingDotProps extends BoxProps$1 {
3117
+ }
3118
+ /**
3119
+ * ModVibratingDot - Animated status dot with a breathing pulse halo.
3120
+ *
3121
+ * Indicates a waiting/pending state (QUEUED / CREATED). Color is inherited from
3122
+ * `currentColor`; set it via the `color`/`sx` prop or a parent. Sized to the
3123
+ * lowercase-letter height regardless of parent fontSize.
3124
+ */
3125
+ declare const ModVibratingDot: FunctionComponent<ModVibratingDotProps>;
3126
+
3127
+ /**
3128
+ * @moderneinc/design-system-components
3129
+ *
3130
+ * TypeScript declarations for Moderne styled components
3131
+ */
3132
+
3133
+
3134
+
3135
+ // Module augmentation for MUI DataGrid slot props
3136
+ declare module '@mui/x-data-grid' {
3137
+ interface FooterPropsOverrides extends ModFooterProps {}
3138
+ }
3139
+
3140
+ declare module '@mui/x-data-grid-pro' {
3141
+ interface FooterPropsOverrides extends ModFooterProps {}
3142
+ }
3143
+
3144
+ declare const version: string
3145
+
3146
+ export { ActivityScene, CIRCLE_RADIUS, ModActionsCell, ModActivityHeader, ModActivityIndicatorCell, ModAlert, ModAvatarCell, ModBadge, ModBanner, ModBreadcrumbLink, ModBreadcrumbs, ModButton, ModButtonTab, ModButtonTabGroup, ModCanceledIcon, ModCard, ModCheckbox, ModCheckboxWithText, ModCodeSnippet, ModDataGrid, ModDataGridCellContent, ModDataGridColumnsButton, ModDataGridColumnsPanel, ModDataGridFilterPanel, ModDataGridFilterPanelAddIcon, ModDataGridFilterPanelDeleteIcon, ModDataGridFilterPanelRemoveAllIcon, ModDataGridFiltersButton, ModDataGridHeaderLabel, ModSelect as ModDataGridSelect, ModDatePicker, ModDatePickerListItem, ModDatePickerMenu, ModDivider, ModDot, ModDownloadToast, ModSelect as ModDropdown, ModMenu as ModDropdownMenu, ModMenuItem as ModDropdownMenuItem, ModMenuItem as ModDropdownOption, ModFilledCanceled, ModFilledError, ModFilledInfo, ModFilledNeutral, ModFilledQueued, ModFilledSuccess, ModFilledWarning, ModFilterChip, ModFooter, ModGeneralAvatar, ModIconButton, ModIconCell, ModInfiniteScrollGrid, ModInputField, ModListItem, ModListItemButton, ModLoadingSpinner, ModLogoCell, ModMenu, ModMenuItem, ModModal, ModModalContent, ModModalFooter, ModModalHeader, ModMultiBadgesCell, ModNavigationAvatar, ModNavigationItem, ModPageContent, ModPaginatedGrid, ModProgressCell, ModProgressbar, ModQuickFilter, ModRadio, ModRadioButtonWithText, ModRipplingDot, ModSearchChip, ModSelect, ModSelectField, ModMenuItem as ModSelectOption, ModSideNav, ModSkeleton, ModStatusBadgeCell, ModStatusCell, ModTab, ModTabPanel, ModTable, ModTabs, ModTag, ModToast, ModToastButton, ModToggle, ModToggleButton, ModToggleButtonGroup, ModToggleButtonWithText, ModToolbar, ModTooltip, ModTopNav, ModTourModal, ModTreeItem, ModTreeView, StyledToggleButton as ModTypologyButton, ModTypologyControl, ModUserAvatarCell, ModVibratingDot, SortedAscendingIcon, SortedDescendingIcon, UnsortedIcon, focusRingStyles, getDataGridHeaderStyles, getDataGridRowStyles, version };
3147
+ export type { ActivityColor, ActivityEvent, ActivityHeaderSize, BreadcrumbItem, DataGridSize, ModActionsCellProps, ModActivityHeaderProps, ModActivityIndicatorCellProps, ModAlertProps, ModAvatarCellProps, ModBadgeProps, ModBannerProps, ModBreadcrumbLinkProps, ModBreadcrumbsProps, ModButtonProps, ModButtonTabGroupProps, ModButtonTabProps, ModCardLargeProps, ModCardProps, ModCardSize, ModCardSmallProps, ModCheckboxProps, ModCheckboxWithTextProps, ModCodeSnippetProps, ModDataGridCellContentProps, ModDataGridHeaderLabelProps, ModDataGridProps, ModDatePickerProps, ModDividerProps, ModDotProps, ModDownloadToastProps, ModMenuItemProps as ModDropdownMenuItemProps, ModMenuProps as ModDropdownMenuProps, ModSelectProps as ModDropdownProps, ModFilledStatusIconProps, ModFilterChipProps, ModFooterProps, ModGeneralAvatarProps, ModIconButtonProps, ModIconCellProps, ModInfiniteScrollGridProps, ModInputFieldProps, ModListItemButtonProps, ModListItemProps, ModLoadingSpinnerProps, ModLogoCellProps, ModMenuItemProps, ModMenuProps, ModModalContentProps, ModModalFooterProps, ModModalHeaderProps, ModModalProps, ModMultiBadgesCellProps, ModNavigationAvatarProps, ModNavigationItemProps, ModPageContentProps, ModPaginatedGridProps, ModProgressCellProps, ModProgressbarProps, ModQuickFilterProps, ModRadioProps, ModRipplingDotProps, ModSearchChipProps, ModSelectFieldChangeEvent, ModSelectFieldOption, ModSelectFieldProps, ModSelectProps, ModSideNavProps, ModSkeletonProps, ModStatusBadgeCellProps, ModStatusCellProps, ModStatusCellVariant, ModTabPanelProps, ModTabProps, ModTableColumn, ModTableProps, ModTagProps, ModToastProps, ModToggleButtonGroupProps, ModToggleButtonProps, ModToggleProps, ModToolbarProps, ModTooltipProps, ModTreeItemData, ModTreeItemProps, ModTreeViewProps, ModTypologyControlProps, ModUserAvatarCellProps, ModVibratingDotProps };