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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +76 -0
  2. package/dist/ActivityHeader/ActivityHeader.d.ts +58 -0
  3. package/dist/ActivityIndicatorCell/ActivityIndicatorCell.d.ts +65 -0
  4. package/dist/Alert/Alert.d.ts +54 -0
  5. package/dist/Badge/Badge.d.ts +40 -0
  6. package/dist/Banner/Banner.d.ts +52 -0
  7. package/dist/Breadcrumbs/Breadcrumbs.d.ts +53 -0
  8. package/dist/Button/Button.d.ts +56 -0
  9. package/dist/ButtonTab/ButtonTab.d.ts +16 -0
  10. package/dist/ButtonTabGroup/ButtonTabGroup.d.ts +31 -0
  11. package/dist/CanceledIcon/CanceledIcon.d.ts +11 -0
  12. package/dist/Card/Card.d.ts +32 -0
  13. package/dist/Checkbox/Checkbox.d.ts +78 -0
  14. package/dist/CheckboxWithText/CheckboxWithText.d.ts +32 -0
  15. package/dist/CodeSnippet/CodeSnippet.d.ts +38 -0
  16. package/dist/DataGrid/DataGrid.d.ts +58 -0
  17. package/dist/DataGrid/DataGrid.styles.d.ts +14 -0
  18. package/dist/DataGridCell/DataGridCell.d.ts +120 -0
  19. package/dist/DataGridColumnsButton/DataGridColumnsButton.d.ts +15 -0
  20. package/dist/DataGridColumnsPanel/DataGridColumnsPanel.d.ts +31 -0
  21. package/dist/DataGridFilterPanel/DataGridFilterPanel.d.ts +55 -0
  22. package/dist/DataGridFiltersButton/DataGridFiltersButton.d.ts +16 -0
  23. package/dist/DataGridHeaderCell/DataGridHeaderCell.d.ts +8 -0
  24. package/dist/DataGridHeaderLabel/DataGridHeaderLabel.d.ts +17 -0
  25. package/dist/DatePicker/DatePicker.d.ts +97 -0
  26. package/dist/DatePickerListItem/DatePickerListItem.d.ts +4 -0
  27. package/dist/DatePickerMenu/DatePickerMenu.d.ts +4 -0
  28. package/dist/DateTimeCell/DateTimeCell.d.ts +17 -0
  29. package/dist/Divider/Divider.d.ts +30 -0
  30. package/dist/Dot/Dot.d.ts +36 -0
  31. package/dist/DownloadToast/DownloadToast.d.ts +45 -0
  32. package/dist/DropdownInputField/DropdownInputField.d.ts +17 -0
  33. package/dist/EmptyState/EmptyState.d.ts +17 -0
  34. package/dist/FilledStatusIcons/FilledStatusIcons.d.ts +41 -0
  35. package/dist/FilterChip/FilterChip.d.ts +40 -0
  36. package/dist/Footer/Footer.d.ts +111 -0
  37. package/dist/GeneralAvatar/GeneralAvatar.d.ts +23 -0
  38. package/dist/IconButton/IconButton.d.ts +42 -0
  39. package/dist/IconWrapper/IconWrapper.d.ts +20 -0
  40. package/dist/InfiniteScrollGrid/InfiniteScrollGrid.d.ts +44 -0
  41. package/dist/InputField/InputField.d.ts +65 -0
  42. package/dist/LinkCell/LinkCell.d.ts +17 -0
  43. package/dist/ListItem/ListItem.d.ts +71 -0
  44. package/dist/ListItemButton/ListItemButton.d.ts +64 -0
  45. package/dist/LoadingSpinner/LoadingSpinner.d.ts +28 -0
  46. package/dist/Menu/Menu.d.ts +30 -0
  47. package/dist/MenuItem/MenuItem.d.ts +69 -0
  48. package/dist/ModActionsCell/ModActionsCell.d.ts +9 -0
  49. package/dist/ModAvatarCell/ModAvatarCell.d.ts +24 -0
  50. package/dist/ModIconCell/ModIconCell.d.ts +13 -0
  51. package/dist/ModLogoCell/ModLogoCell.d.ts +23 -0
  52. package/dist/ModProgressCell/ModProgressCell.d.ts +20 -0
  53. package/dist/ModStatusCell/ModStatusCell.d.ts +29 -0
  54. package/dist/Modal/Modal.d.ts +106 -0
  55. package/dist/NavIconButton/NavIconButton.d.ts +17 -0
  56. package/dist/NavigationAvatar/NavigationAvatar.d.ts +13 -0
  57. package/dist/NavigationItem/NavigationItem.d.ts +55 -0
  58. package/dist/PageContent/PageContent.d.ts +150 -0
  59. package/dist/PaginatedGrid/PaginatedGrid.d.ts +32 -0
  60. package/dist/ProgressSpinner/ProgressSpinner.d.ts +17 -0
  61. package/dist/Progressbar/Progressbar.d.ts +35 -0
  62. package/dist/QuickFilter/QuickFilter.d.ts +42 -0
  63. package/dist/Radio/Radio.d.ts +59 -0
  64. package/dist/RadioButtonWithText/RadioButtonWithText.d.ts +4 -0
  65. package/dist/RipplingDot/RipplingDot.d.ts +12 -0
  66. package/dist/SearchChip/SearchChip.d.ts +17 -0
  67. package/dist/Select/Select.d.ts +24 -0
  68. package/dist/SelectField/SelectField.d.ts +64 -0
  69. package/dist/SideNav/ModSideNavContext.d.ts +5 -0
  70. package/dist/SideNav/SideNav.d.ts +33 -0
  71. package/dist/Skeleton/Skeleton.d.ts +29 -0
  72. package/dist/TabPanel/TabPanel.d.ts +47 -0
  73. package/dist/Table/Table.d.ts +64 -0
  74. package/dist/Tabs/Tabs.d.ts +28 -0
  75. package/dist/Tag/Tag.d.ts +51 -0
  76. package/dist/Toast/Toast.d.ts +66 -0
  77. package/dist/Toggle/Toggle.d.ts +52 -0
  78. package/dist/ToggleButton/ToggleButton.d.ts +34 -0
  79. package/dist/ToggleButtonGroup/ToggleButtonGroup.d.ts +33 -0
  80. package/dist/ToggleButtonWithText/ToggleButtonWithText.d.ts +4 -0
  81. package/dist/Toolbar/Toolbar.d.ts +51 -0
  82. package/dist/Tooltip/Tooltip.d.ts +46 -0
  83. package/dist/TopNav/TopNav.d.ts +4 -0
  84. package/dist/TourModal/TourModal.d.ts +4 -0
  85. package/dist/Tree/Tree.d.ts +38 -0
  86. package/dist/TypologyControl/TypologyControl.d.ts +19 -0
  87. package/dist/VibratingDot/VibratingDot.d.ts +12 -0
  88. package/dist/index.d.ts +3147 -0
  89. package/dist/index.esm.js +7414 -0
  90. package/dist/index.esm.js.map +1 -0
  91. package/dist/index.js +7527 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/utils/colorHelpers.d.ts +7 -0
  94. package/dist/utils/focusRing.d.ts +10 -0
  95. package/dist/utils/muiProps.d.ts +1 -0
  96. package/package.json +100 -0
@@ -0,0 +1,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
+ };