@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.
- package/README.md +76 -0
- package/dist/ActivityHeader/ActivityHeader.d.ts +58 -0
- package/dist/ActivityIndicatorCell/ActivityIndicatorCell.d.ts +65 -0
- package/dist/Alert/Alert.d.ts +54 -0
- package/dist/Badge/Badge.d.ts +40 -0
- package/dist/Banner/Banner.d.ts +52 -0
- package/dist/Breadcrumbs/Breadcrumbs.d.ts +53 -0
- package/dist/Button/Button.d.ts +56 -0
- package/dist/ButtonTab/ButtonTab.d.ts +16 -0
- package/dist/ButtonTabGroup/ButtonTabGroup.d.ts +31 -0
- package/dist/CanceledIcon/CanceledIcon.d.ts +11 -0
- package/dist/Card/Card.d.ts +32 -0
- package/dist/Checkbox/Checkbox.d.ts +78 -0
- package/dist/CheckboxWithText/CheckboxWithText.d.ts +32 -0
- package/dist/CodeSnippet/CodeSnippet.d.ts +38 -0
- package/dist/DataGrid/DataGrid.d.ts +58 -0
- package/dist/DataGrid/DataGrid.styles.d.ts +14 -0
- package/dist/DataGridCell/DataGridCell.d.ts +120 -0
- package/dist/DataGridColumnsButton/DataGridColumnsButton.d.ts +15 -0
- package/dist/DataGridColumnsPanel/DataGridColumnsPanel.d.ts +31 -0
- package/dist/DataGridFilterPanel/DataGridFilterPanel.d.ts +55 -0
- package/dist/DataGridFiltersButton/DataGridFiltersButton.d.ts +16 -0
- package/dist/DataGridHeaderCell/DataGridHeaderCell.d.ts +8 -0
- package/dist/DataGridHeaderLabel/DataGridHeaderLabel.d.ts +17 -0
- package/dist/DatePicker/DatePicker.d.ts +97 -0
- package/dist/DatePickerListItem/DatePickerListItem.d.ts +4 -0
- package/dist/DatePickerMenu/DatePickerMenu.d.ts +4 -0
- package/dist/DateTimeCell/DateTimeCell.d.ts +17 -0
- package/dist/Divider/Divider.d.ts +30 -0
- package/dist/Dot/Dot.d.ts +36 -0
- package/dist/DownloadToast/DownloadToast.d.ts +45 -0
- package/dist/DropdownInputField/DropdownInputField.d.ts +17 -0
- package/dist/EmptyState/EmptyState.d.ts +17 -0
- package/dist/FilledStatusIcons/FilledStatusIcons.d.ts +41 -0
- package/dist/FilterChip/FilterChip.d.ts +40 -0
- package/dist/Footer/Footer.d.ts +111 -0
- package/dist/GeneralAvatar/GeneralAvatar.d.ts +23 -0
- package/dist/IconButton/IconButton.d.ts +42 -0
- package/dist/IconWrapper/IconWrapper.d.ts +20 -0
- package/dist/InfiniteScrollGrid/InfiniteScrollGrid.d.ts +44 -0
- package/dist/InputField/InputField.d.ts +65 -0
- package/dist/LinkCell/LinkCell.d.ts +17 -0
- package/dist/ListItem/ListItem.d.ts +71 -0
- package/dist/ListItemButton/ListItemButton.d.ts +64 -0
- package/dist/LoadingSpinner/LoadingSpinner.d.ts +28 -0
- package/dist/Menu/Menu.d.ts +30 -0
- package/dist/MenuItem/MenuItem.d.ts +69 -0
- package/dist/ModActionsCell/ModActionsCell.d.ts +9 -0
- package/dist/ModAvatarCell/ModAvatarCell.d.ts +24 -0
- package/dist/ModIconCell/ModIconCell.d.ts +13 -0
- package/dist/ModLogoCell/ModLogoCell.d.ts +23 -0
- package/dist/ModProgressCell/ModProgressCell.d.ts +20 -0
- package/dist/ModStatusCell/ModStatusCell.d.ts +29 -0
- package/dist/Modal/Modal.d.ts +106 -0
- package/dist/NavIconButton/NavIconButton.d.ts +17 -0
- package/dist/NavigationAvatar/NavigationAvatar.d.ts +13 -0
- package/dist/NavigationItem/NavigationItem.d.ts +55 -0
- package/dist/PageContent/PageContent.d.ts +150 -0
- package/dist/PaginatedGrid/PaginatedGrid.d.ts +32 -0
- package/dist/ProgressSpinner/ProgressSpinner.d.ts +17 -0
- package/dist/Progressbar/Progressbar.d.ts +35 -0
- package/dist/QuickFilter/QuickFilter.d.ts +42 -0
- package/dist/Radio/Radio.d.ts +59 -0
- package/dist/RadioButtonWithText/RadioButtonWithText.d.ts +4 -0
- package/dist/RipplingDot/RipplingDot.d.ts +12 -0
- package/dist/SearchChip/SearchChip.d.ts +17 -0
- package/dist/Select/Select.d.ts +24 -0
- package/dist/SelectField/SelectField.d.ts +64 -0
- package/dist/SideNav/ModSideNavContext.d.ts +5 -0
- package/dist/SideNav/SideNav.d.ts +33 -0
- package/dist/Skeleton/Skeleton.d.ts +29 -0
- package/dist/TabPanel/TabPanel.d.ts +47 -0
- package/dist/Table/Table.d.ts +64 -0
- package/dist/Tabs/Tabs.d.ts +28 -0
- package/dist/Tag/Tag.d.ts +51 -0
- package/dist/Toast/Toast.d.ts +66 -0
- package/dist/Toggle/Toggle.d.ts +52 -0
- package/dist/ToggleButton/ToggleButton.d.ts +34 -0
- package/dist/ToggleButtonGroup/ToggleButtonGroup.d.ts +33 -0
- package/dist/ToggleButtonWithText/ToggleButtonWithText.d.ts +4 -0
- package/dist/Toolbar/Toolbar.d.ts +51 -0
- package/dist/Tooltip/Tooltip.d.ts +46 -0
- package/dist/TopNav/TopNav.d.ts +4 -0
- package/dist/TourModal/TourModal.d.ts +4 -0
- package/dist/Tree/Tree.d.ts +38 -0
- package/dist/TypologyControl/TypologyControl.d.ts +19 -0
- package/dist/VibratingDot/VibratingDot.d.ts +12 -0
- package/dist/index.d.ts +3147 -0
- package/dist/index.esm.js +7414 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +7527 -0
- package/dist/index.js.map +1 -0
- package/dist/utils/colorHelpers.d.ts +7 -0
- package/dist/utils/focusRing.d.ts +10 -0
- package/dist/utils/muiProps.d.ts +1 -0
- package/package.json +100 -0
package/dist/index.d.ts
ADDED
|
@@ -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 };
|