@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
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ButtonBaseProps } from '@mui/material/ButtonBase';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
declare module '@mui/material/ButtonBase' {
|
|
4
|
+
interface ButtonBasePropsVariantOverrides {
|
|
5
|
+
outlined: true;
|
|
6
|
+
filled: true;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
type CodeSnippetVariant = 'outlined' | 'filled';
|
|
10
|
+
type CodeSnippetSize = 'xs' | 'small' | 'large' | 'inline';
|
|
11
|
+
export interface ModCodeSnippetProps extends Omit<ButtonBaseProps, 'children'> {
|
|
12
|
+
/**
|
|
13
|
+
* The visual variant of the code snippet
|
|
14
|
+
* @default "outlined"
|
|
15
|
+
*/
|
|
16
|
+
variant?: CodeSnippetVariant;
|
|
17
|
+
/**
|
|
18
|
+
* The size of the code snippet
|
|
19
|
+
* @default "small"
|
|
20
|
+
*/
|
|
21
|
+
size?: CodeSnippetSize;
|
|
22
|
+
/**
|
|
23
|
+
* Icon to display at the end (copy button position)
|
|
24
|
+
*/
|
|
25
|
+
endIcon?: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Code snippet content to display
|
|
28
|
+
*/
|
|
29
|
+
children: ReactNode;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* ModCodeSnippet - Inline code snippet component based on MUI ButtonBase
|
|
33
|
+
*/
|
|
34
|
+
export declare const ModCodeSnippet: {
|
|
35
|
+
({ variant, size, endIcon, children, ...props }: ModCodeSnippetProps): import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
displayName: string;
|
|
37
|
+
};
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { type DataGridProProps, type GridDensity, type GridSlots } from '@mui/x-data-grid-pro';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export type DataGridSize = GridDensity;
|
|
4
|
+
export interface ModDataGridProps extends Omit<DataGridProProps, 'slots'> {
|
|
5
|
+
/**
|
|
6
|
+
* Custom toolbar component to render above the grid
|
|
7
|
+
* When provided, automatically enables the toolbar slot
|
|
8
|
+
*/
|
|
9
|
+
toolbar?: ReactNode;
|
|
10
|
+
/**
|
|
11
|
+
* Custom slots (merged with design system defaults)
|
|
12
|
+
*/
|
|
13
|
+
slots?: Partial<GridSlots>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* ModDataGrid - Responsive base DataGrid component with design system styling
|
|
17
|
+
*
|
|
18
|
+
* This is the base component for all design system DataGrid variants. It provides:
|
|
19
|
+
* - Responsive viewport-based height calculation
|
|
20
|
+
* - Dynamic row heights (getRowHeight='auto') for text wrapping
|
|
21
|
+
* - design system styling (colors, typography, spacing)
|
|
22
|
+
* - Custom sort icons and filter panels
|
|
23
|
+
*
|
|
24
|
+
* For specific use cases, see:
|
|
25
|
+
* - ModInfiniteScrollGrid: Infinite scroll with load-more button
|
|
26
|
+
* - ModPaginatedGrid: Standard pagination with page numbers
|
|
27
|
+
*
|
|
28
|
+
* Features:
|
|
29
|
+
* - Auto-calculated height from viewport (calc(100vh - (offset + autoHeightOffset)))
|
|
30
|
+
* - Three size variants: compact, standard, comfortable (affects header height)
|
|
31
|
+
* - Always uses dynamic row heights (matching moderne-ui ResponsiveDataGrid)
|
|
32
|
+
* - Resize event handling
|
|
33
|
+
* - Footer offset support
|
|
34
|
+
*
|
|
35
|
+
* Design tokens used:
|
|
36
|
+
* - Colors: semanticColors.border.primary, semanticColors.surfaces.dataGrid.*, semanticColors.surfaces.white (panel Paper)
|
|
37
|
+
* - Typography: typography.fontFamily.body, typography.fontSize.sm
|
|
38
|
+
* - Spacing: spacing.spacing_*
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* // Basic usage with responsive height
|
|
42
|
+
* <ModDataGrid
|
|
43
|
+
* rows={rows}
|
|
44
|
+
* columns={columns}
|
|
45
|
+
* />
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* // With footer offset
|
|
49
|
+
* <ModDataGrid
|
|
50
|
+
* rows={rows}
|
|
51
|
+
* columns={columns}
|
|
52
|
+
* footerOffsetSelector="#page-footer"
|
|
53
|
+
* />
|
|
54
|
+
*/
|
|
55
|
+
export declare function ModDataGrid({ autoHeight, toolbar, slots, sx, density, slotProps: userSlotProps, ...props }: ModDataGridProps): import("react/jsx-runtime").JSX.Element;
|
|
56
|
+
export declare namespace ModDataGrid {
|
|
57
|
+
var displayName: string;
|
|
58
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
/**
|
|
3
|
+
* Surface for the filter and columns panels.
|
|
4
|
+
*
|
|
5
|
+
* MUI's panel Paper defaults to `theme.palette.background.paper` (#fff) and so
|
|
6
|
+
* stays light under `[data-theme="dark"]`. ModDataGrid themes that Paper via its
|
|
7
|
+
* `panel` slot, but both panels are also usable with a plain MUI DataGrid, so
|
|
8
|
+
* they carry this surface themselves.
|
|
9
|
+
*/
|
|
10
|
+
export declare const panelSurfaceStyles: {
|
|
11
|
+
readonly backgroundColor: "var(--mod-surfaces-white)";
|
|
12
|
+
};
|
|
13
|
+
export declare const getDataGridHeaderStyles: () => SxProps<Theme>;
|
|
14
|
+
export declare const getDataGridRowStyles: () => SxProps<Theme>;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { GridDensity } from '@mui/x-data-grid';
|
|
2
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
3
|
+
export interface ModDataGridCellContentProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
children?: ReactNode;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* ModDataGridCellContent - Layout helper for cells that need flex layout with gap spacing
|
|
8
|
+
*
|
|
9
|
+
* Use this for any cell content that needs horizontal flex layout with proper spacing:
|
|
10
|
+
* - Multiple badges
|
|
11
|
+
* - Avatar + text
|
|
12
|
+
* - Action buttons/icons
|
|
13
|
+
* - Any other horizontal layouts
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Badges
|
|
17
|
+
* renderCell: (params) => (
|
|
18
|
+
* <ModDataGridCellContent>
|
|
19
|
+
* <ModBadge label="Active" color="success" />
|
|
20
|
+
* <ModBadge label="New" color="info" />
|
|
21
|
+
* </ModDataGridCellContent>
|
|
22
|
+
* )
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // Avatar with text
|
|
26
|
+
* renderCell: (params) => (
|
|
27
|
+
* <ModDataGridCellContent>
|
|
28
|
+
* <ModGeneralAvatar src={params.row.avatarUrl} />
|
|
29
|
+
* <span>{params.row.name}</span>
|
|
30
|
+
* </ModDataGridCellContent>
|
|
31
|
+
* )
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* // Action buttons
|
|
35
|
+
* renderCell: () => (
|
|
36
|
+
* <ModDataGridCellContent>
|
|
37
|
+
* <ModIconButton size="small"><Edit2 /></ModIconButton>
|
|
38
|
+
* <ModIconButton size="small"><Delete /></ModIconButton>
|
|
39
|
+
* </ModDataGridCellContent>
|
|
40
|
+
* )
|
|
41
|
+
*/
|
|
42
|
+
export declare const ModDataGridCellContent: {
|
|
43
|
+
({ children, ...props }: ModDataGridCellContentProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
displayName: string;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Row height configuration for DataGrid size variants (from Figma specs)
|
|
48
|
+
* - compact: 42px
|
|
49
|
+
* - standard: 48px
|
|
50
|
+
* - comfortable: 56px
|
|
51
|
+
*/
|
|
52
|
+
export declare const modRowHeights: Record<GridDensity, number>;
|
|
53
|
+
/**
|
|
54
|
+
* StatusBadgeCell - Ready-to-use cell component for status badges
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* renderCell: (params) => (
|
|
58
|
+
* <StatusBadgeCell
|
|
59
|
+
* status={params.value}
|
|
60
|
+
* colorMap={{
|
|
61
|
+
* Active: 'success',
|
|
62
|
+
* Pending: 'warning',
|
|
63
|
+
* Inactive: 'default'
|
|
64
|
+
* }}
|
|
65
|
+
* />
|
|
66
|
+
* )
|
|
67
|
+
*/
|
|
68
|
+
export interface ModStatusBadgeCellProps {
|
|
69
|
+
status: string;
|
|
70
|
+
colorMap?: Record<string, 'default' | 'error' | 'info' | 'success' | 'warning'>;
|
|
71
|
+
}
|
|
72
|
+
export declare const ModStatusBadgeCell: {
|
|
73
|
+
({ status, colorMap }: ModStatusBadgeCellProps): import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
displayName: string;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* ModUserAvatarCell - Ready-to-use cell component for user avatar + name
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* renderCell: (params) => (
|
|
81
|
+
* <ModUserAvatarCell
|
|
82
|
+
* name={params.row.name}
|
|
83
|
+
* avatarUrl={params.row.avatarUrl}
|
|
84
|
+
* />
|
|
85
|
+
* )
|
|
86
|
+
*/
|
|
87
|
+
export interface ModUserAvatarCellProps {
|
|
88
|
+
name: string;
|
|
89
|
+
avatarUrl?: string;
|
|
90
|
+
size?: 'small' | 'medium';
|
|
91
|
+
}
|
|
92
|
+
export declare const ModUserAvatarCell: {
|
|
93
|
+
({ name, avatarUrl, size }: ModUserAvatarCellProps): import("react/jsx-runtime").JSX.Element;
|
|
94
|
+
displayName: string;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* ModMultiBadgesCell - Ready-to-use cell component for multiple badges
|
|
98
|
+
*
|
|
99
|
+
* Uses tighter spacing (8px) between badges compared to standard ModDataGridCellContent (16px).
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* renderCell: (params) => (
|
|
103
|
+
* <ModMultiBadgesCell
|
|
104
|
+
* badges={[
|
|
105
|
+
* { label: 'Active', color: 'success' },
|
|
106
|
+
* { label: 'New', color: 'info' }
|
|
107
|
+
* ]}
|
|
108
|
+
* />
|
|
109
|
+
* )
|
|
110
|
+
*/
|
|
111
|
+
export interface ModMultiBadgesCellProps {
|
|
112
|
+
badges: Array<{
|
|
113
|
+
label: string;
|
|
114
|
+
color?: 'default' | 'error' | 'info' | 'success' | 'warning';
|
|
115
|
+
}>;
|
|
116
|
+
}
|
|
117
|
+
export declare const ModMultiBadgesCell: {
|
|
118
|
+
({ badges }: ModMultiBadgesCellProps): import("react/jsx-runtime").JSX.Element;
|
|
119
|
+
displayName: string;
|
|
120
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModDataGridColumnsButton - Button to open the columns panel in DataGrid
|
|
3
|
+
*
|
|
4
|
+
* Integrates with MUI DataGrid Pro's ColumnsPanelTrigger to show/hide columns.
|
|
5
|
+
* Uses ModButton with Lucide Columns3 icon.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <ModDataGridColumnsButton />
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare function ModDataGridColumnsButton(): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare namespace ModDataGridColumnsButton {
|
|
14
|
+
var displayName: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { GridColumnsPanelProps } from '@mui/x-data-grid-pro';
|
|
2
|
+
/**
|
|
3
|
+
* ModDataGridColumnsPanel - Custom columns panel for ModDataGrid matching Figma design
|
|
4
|
+
*
|
|
5
|
+
* A styled columns panel that integrates with MUI DataGrid's column visibility system.
|
|
6
|
+
* Features:
|
|
7
|
+
* - Search input with Lucide icon (matches ModQuickFilter)
|
|
8
|
+
* - Checkbox list with design system styling (12px checkboxes)
|
|
9
|
+
* - Show/Hide all toggle
|
|
10
|
+
* - Reset button
|
|
11
|
+
*
|
|
12
|
+
* Design Tokens Used:
|
|
13
|
+
* - surfaces.white - Background color
|
|
14
|
+
* - surfaces.listHover - Item hover background (#f9fafb)
|
|
15
|
+
* - input.background - Search input background
|
|
16
|
+
* - border.input - Search input border
|
|
17
|
+
* - buttons.primary.default - Search input focus border
|
|
18
|
+
* - typography.body - Column label text
|
|
19
|
+
* - border.primary - Divider color
|
|
20
|
+
*/
|
|
21
|
+
export interface ModDataGridColumnsPanelProps extends GridColumnsPanelProps {
|
|
22
|
+
/**
|
|
23
|
+
* If true, shows the search input field
|
|
24
|
+
* @default false
|
|
25
|
+
*/
|
|
26
|
+
showSearch?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare const ModDataGridColumnsPanel: {
|
|
29
|
+
({ showSearch, sx: _sx, theme: _theme, ...props }: ModDataGridColumnsPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
displayName: string;
|
|
31
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { GridFilterPanel as MuiGridFilterPanel } from '@mui/x-data-grid';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
import { ModSelect } from '../Select/Select';
|
|
4
|
+
export type { GridFilterItem as FilterItem, GridFilterOperator as FilterOperator, } from '@mui/x-data-grid';
|
|
5
|
+
/**
|
|
6
|
+
* Icon components for DataGrid filter panel slots
|
|
7
|
+
* These must be passed to the DataGrid's slots prop
|
|
8
|
+
*/
|
|
9
|
+
export declare const ModDataGridFilterPanelAddIcon: {
|
|
10
|
+
(): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
displayName: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const ModDataGridFilterPanelDeleteIcon: {
|
|
14
|
+
(): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
displayName: string;
|
|
16
|
+
};
|
|
17
|
+
export declare const ModDataGridFilterPanelRemoveAllIcon: {
|
|
18
|
+
(): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
displayName: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* ModDataGridFilterPanel - MUI GridFilterPanel with design system styling and Lucide icons
|
|
23
|
+
*
|
|
24
|
+
* A styled version of MUI's GridFilterPanel that applies design system tokens.
|
|
25
|
+
* The per-row delete icon uses Lucide Trash2 internally.
|
|
26
|
+
*
|
|
27
|
+
* For footer button icons ("Add filter" and "Remove all"), you must also pass the icon components
|
|
28
|
+
* to the DataGrid's slots prop.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* import {
|
|
33
|
+
* ModDataGridFilterPanel,
|
|
34
|
+
* FilterPanelAddIcon,
|
|
35
|
+
* FilterPanelDeleteIcon,
|
|
36
|
+
* FilterPanelRemoveAllIcon
|
|
37
|
+
* } from '@moderneinc/design-system-components'
|
|
38
|
+
*
|
|
39
|
+
* <DataGridPro
|
|
40
|
+
* rows={rows}
|
|
41
|
+
* columns={columns}
|
|
42
|
+
* slots={{
|
|
43
|
+
* filterPanel: ModDataGridFilterPanel,
|
|
44
|
+
* filterPanelAddIcon: FilterPanelAddIcon,
|
|
45
|
+
* filterPanelDeleteIcon: FilterPanelDeleteIcon,
|
|
46
|
+
* filterPanelRemoveAllIcon: FilterPanelRemoveAllIcon,
|
|
47
|
+
* }}
|
|
48
|
+
* />
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export { ModSelect as ModDataGridSelect };
|
|
52
|
+
export declare const ModDataGridFilterPanel: {
|
|
53
|
+
(props: React.ComponentProps<typeof MuiGridFilterPanel>): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
displayName: string;
|
|
55
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModDataGridFiltersButton - Button to open the filters panel in DataGrid
|
|
3
|
+
*
|
|
4
|
+
* Integrates with MUI DataGrid Pro's FilterPanelTrigger to manage column filters.
|
|
5
|
+
* Uses ModButton with Lucide ListFilter icon and shows active filter count.
|
|
6
|
+
* The count badge updates reactively when filters change.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <ModDataGridFiltersButton />
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function ModDataGridFiltersButton(): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare namespace ModDataGridFiltersButton {
|
|
15
|
+
var displayName: string;
|
|
16
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sort icon components for MUI DataGrid slots
|
|
3
|
+
*
|
|
4
|
+
* Use these with DataGrid's slots API to replace default sort indicators.
|
|
5
|
+
*/
|
|
6
|
+
export declare function SortedDescendingIcon(): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export declare function SortedAscendingIcon(): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function UnsortedIcon(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export interface ModDataGridHeaderLabelProps {
|
|
3
|
+
/**
|
|
4
|
+
* The label text to display
|
|
5
|
+
*/
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* Tooltip text to show when hovering the help icon.
|
|
9
|
+
* If provided, the help icon will be shown automatically.
|
|
10
|
+
*/
|
|
11
|
+
helpTooltip?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Additional CSS class name
|
|
14
|
+
*/
|
|
15
|
+
className?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function ModDataGridHeaderLabel({ children, helpTooltip, className, }: ModDataGridHeaderLabelProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { type DatePickerProps } from '@mui/x-date-pickers/DatePicker';
|
|
2
|
+
import { type PickersShortcutsItem } from '@mui/x-date-pickers/PickersShortcuts';
|
|
3
|
+
import { type DateRangePickerProps } from '@mui/x-date-pickers-pro/DateRangePicker';
|
|
4
|
+
import type { DateRange } from '@mui/x-date-pickers-pro/models';
|
|
5
|
+
type DatePickerType = 'single' | 'range';
|
|
6
|
+
/**
|
|
7
|
+
* Props for the ModDatePicker component
|
|
8
|
+
*/
|
|
9
|
+
export interface ModDatePickerProps {
|
|
10
|
+
/**
|
|
11
|
+
* Type of date picker to render
|
|
12
|
+
* @default "single"
|
|
13
|
+
*/
|
|
14
|
+
type?: DatePickerType;
|
|
15
|
+
/**
|
|
16
|
+
* Whether the picker is open
|
|
17
|
+
* When not provided, the picker manages its own open state (uncontrolled mode)
|
|
18
|
+
*/
|
|
19
|
+
open?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Label for the input field
|
|
22
|
+
*/
|
|
23
|
+
label?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Current selected date value (for single date picker)
|
|
26
|
+
*/
|
|
27
|
+
value?: Date | null;
|
|
28
|
+
/**
|
|
29
|
+
* Current selected date range value (for range picker)
|
|
30
|
+
*/
|
|
31
|
+
rangeValue?: DateRange<Date>;
|
|
32
|
+
/**
|
|
33
|
+
* Callback fired when date changes (single picker)
|
|
34
|
+
*/
|
|
35
|
+
onChange?: (date: Date | null) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Callback fired when date range changes (range picker)
|
|
38
|
+
*/
|
|
39
|
+
onRangeChange?: (range: DateRange<Date>) => void;
|
|
40
|
+
/**
|
|
41
|
+
* Callback fired when picker opens
|
|
42
|
+
*/
|
|
43
|
+
onOpen?: () => void;
|
|
44
|
+
/**
|
|
45
|
+
* Callback fired when picker closes
|
|
46
|
+
*/
|
|
47
|
+
onClose?: () => void;
|
|
48
|
+
/**
|
|
49
|
+
* Placeholder text for the input
|
|
50
|
+
*/
|
|
51
|
+
placeholder?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Whether to show shortcuts
|
|
54
|
+
* @default true for range, false for single
|
|
55
|
+
*/
|
|
56
|
+
showShortcuts?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Custom shortcuts items for range picker
|
|
59
|
+
*/
|
|
60
|
+
shortcuts?: PickersShortcutsItem<DateRange<Date>>[];
|
|
61
|
+
/**
|
|
62
|
+
* Custom shortcuts items for single date picker
|
|
63
|
+
*/
|
|
64
|
+
singleShortcuts?: PickersShortcutsItem<Date>[];
|
|
65
|
+
/**
|
|
66
|
+
* Number of calendars to display (range picker only)
|
|
67
|
+
* @default 2
|
|
68
|
+
*/
|
|
69
|
+
calendars?: 1 | 2 | 3;
|
|
70
|
+
/**
|
|
71
|
+
* Additional props passed to single DatePicker
|
|
72
|
+
*/
|
|
73
|
+
datePickerProps?: Omit<Partial<DatePickerProps>, 'value' | 'onChange' | 'open' | 'onOpen' | 'onClose' | 'label'>;
|
|
74
|
+
/**
|
|
75
|
+
* Additional props passed to DateRangePicker
|
|
76
|
+
*/
|
|
77
|
+
dateRangePickerProps?: Omit<Partial<DateRangePickerProps>, 'value' | 'onChange' | 'open' | 'onOpen' | 'onClose' | 'label'>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* ModDatePicker - Moderne design system date picker component
|
|
81
|
+
*
|
|
82
|
+
* A wrapper around MUI X DatePicker and DateRangePicker with design system tokens and
|
|
83
|
+
* customization. Supports both single date selection and date range selection with
|
|
84
|
+
* built-in shortcuts.
|
|
85
|
+
*
|
|
86
|
+
* Design Tokens Used:
|
|
87
|
+
* - colors: semanticColors.border.strong, semanticColors.typography.body, semanticColors.surfaces.white, semanticColors.icons.hoverBackground
|
|
88
|
+
* - typography: typography.fontSize.sm, typography.fontWeight.medium, typography.fontWeight.semiBold, semanticColors.typography.bodySecondary
|
|
89
|
+
* - border: semanticColors.border.primary
|
|
90
|
+
* - shadows: shadows.dropdown
|
|
91
|
+
* - borderRadius: borderRadius.l (20px)
|
|
92
|
+
*/
|
|
93
|
+
export declare const ModDatePicker: {
|
|
94
|
+
({ type, open, label, value, rangeValue, onChange, onRangeChange, onOpen, onClose, placeholder, showShortcuts, shortcuts, singleShortcuts, calendars, datePickerProps, dateRangePickerProps, }: ModDatePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
95
|
+
displayName: string;
|
|
96
|
+
};
|
|
97
|
+
export type { DatePickerType };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModDatePickerListItem
|
|
3
|
+
*/
|
|
4
|
+
export declare const ModDatePickerListItem: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ModDatePickerMenu
|
|
3
|
+
*/
|
|
4
|
+
export declare const ModDatePickerMenu: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the ModDateTimeCell component
|
|
4
|
+
*/
|
|
5
|
+
export interface ModDateTimeCellProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* ModDateTimeCell — scaffold placeholder, not yet implemented.
|
|
13
|
+
*/
|
|
14
|
+
export declare const ModDateTimeCell: {
|
|
15
|
+
({ children, ...props }: ModDateTimeCellProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type DividerProps } from '@mui/material/Divider';
|
|
2
|
+
export interface ModDividerProps extends DividerProps {
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* ModDivider - Horizontal divider for separating content
|
|
6
|
+
*
|
|
7
|
+
* Generic divider component that can be used in menus, lists, cards, or any layout
|
|
8
|
+
* that needs visual separation between content sections.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* // In a menu
|
|
13
|
+
* <ModMenu>
|
|
14
|
+
* <ModMenuItem>Settings</ModMenuItem>
|
|
15
|
+
* <ModDivider />
|
|
16
|
+
* <ModMenuItem>Sign out</ModMenuItem>
|
|
17
|
+
* </ModMenu>
|
|
18
|
+
*
|
|
19
|
+
* // In a card
|
|
20
|
+
* <Card>
|
|
21
|
+
* <CardHeader>Title</CardHeader>
|
|
22
|
+
* <ModDivider />
|
|
23
|
+
* <CardContent>Content</CardContent>
|
|
24
|
+
* </Card>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare const ModDivider: {
|
|
28
|
+
(props: ModDividerProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
displayName: string;
|
|
30
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
type DotSize = 'small' | 'medium' | 'large';
|
|
3
|
+
type DotVariant = 'solid' | 'outline';
|
|
4
|
+
type DotColor = 'success' | 'error' | 'warning' | 'info' | 'neutral';
|
|
5
|
+
export interface ModDotProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
|
|
6
|
+
/**
|
|
7
|
+
* The size of the dot
|
|
8
|
+
* @default "medium"
|
|
9
|
+
*/
|
|
10
|
+
size?: DotSize;
|
|
11
|
+
/**
|
|
12
|
+
* The variant of the dot
|
|
13
|
+
* @default "solid"
|
|
14
|
+
*/
|
|
15
|
+
variant?: DotVariant;
|
|
16
|
+
/**
|
|
17
|
+
* The color/status of the dot
|
|
18
|
+
* @default "neutral"
|
|
19
|
+
*/
|
|
20
|
+
color?: DotColor;
|
|
21
|
+
/**
|
|
22
|
+
* Optional icon rendered centered inside the dot. Use to indicate intent within
|
|
23
|
+
* the dot itself (e.g., a minus icon on a disconnected error dot). SVG children
|
|
24
|
+
* using `currentColor` inherit a white stroke/fill for contrast against the
|
|
25
|
+
* colored background, and are scaled to 70% of the dot size.
|
|
26
|
+
*/
|
|
27
|
+
children?: ReactNode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* ModDot - Status indicator dot.
|
|
31
|
+
*/
|
|
32
|
+
export declare const ModDot: {
|
|
33
|
+
({ size, variant, color, children, ...props }: ModDotProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type PaperProps } from '@mui/material/Paper';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export interface ModDownloadToastProps extends Omit<PaperProps, 'title'> {
|
|
4
|
+
/**
|
|
5
|
+
* The header text
|
|
6
|
+
*/
|
|
7
|
+
title?: string;
|
|
8
|
+
/**
|
|
9
|
+
* The file name being downloaded
|
|
10
|
+
*/
|
|
11
|
+
fileName?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Progress value (0-100)
|
|
14
|
+
*/
|
|
15
|
+
progress?: number;
|
|
16
|
+
/**
|
|
17
|
+
* Whether to show the close button
|
|
18
|
+
* @default true
|
|
19
|
+
*/
|
|
20
|
+
showClose?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to show the pause button
|
|
23
|
+
* @default true
|
|
24
|
+
*/
|
|
25
|
+
showPause?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Callback when close button is clicked
|
|
28
|
+
*/
|
|
29
|
+
onClose?: () => void;
|
|
30
|
+
/**
|
|
31
|
+
* Callback when pause button is clicked
|
|
32
|
+
*/
|
|
33
|
+
onPause?: () => void;
|
|
34
|
+
/**
|
|
35
|
+
* Custom actions to override the default pause/close buttons
|
|
36
|
+
*/
|
|
37
|
+
actions?: ReactNode;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* ModDownloadToast - Standalone download progress toast notification
|
|
41
|
+
*/
|
|
42
|
+
export declare const ModDownloadToast: {
|
|
43
|
+
({ title, fileName, progress, showClose, showPause, onClose, onPause, actions, ...props }: ModDownloadToastProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
displayName: string;
|
|
45
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the ModDropdownInputField component
|
|
4
|
+
*/
|
|
5
|
+
export interface ModDropdownInputFieldProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* ModDropdownInputField — scaffold placeholder, not yet implemented.
|
|
13
|
+
*/
|
|
14
|
+
export declare const ModDropdownInputField: {
|
|
15
|
+
({ children, ...props }: ModDropdownInputFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the ModEmptyState component
|
|
4
|
+
*/
|
|
5
|
+
export interface ModEmptyStateProps {
|
|
6
|
+
/**
|
|
7
|
+
* The content to display inside the component
|
|
8
|
+
*/
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* ModEmptyState — scaffold placeholder, not yet implemented.
|
|
13
|
+
*/
|
|
14
|
+
export declare const ModEmptyState: {
|
|
15
|
+
({ children, ...props }: ModEmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|