@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,9 @@
1
+ import type { GridRenderCellParams } from '@mui/x-data-grid';
2
+ import type { ReactNode } from 'react';
3
+ export interface ModActionsCellProps extends Omit<GridRenderCellParams, 'api'> {
4
+ api?: GridRenderCellParams['api'];
5
+ children: ReactNode;
6
+ position?: 'bottom-end' | 'bottom-start' | 'top-end' | 'top-start';
7
+ suppressChildrenValidation?: boolean;
8
+ }
9
+ export declare function ModActionsCell(props: ModActionsCellProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ type ModAvatarCellBase = {
2
+ disabled?: boolean;
3
+ };
4
+ type ModAvatarCellEmpty = ModAvatarCellBase & {
5
+ empty: true;
6
+ name?: never;
7
+ src?: never;
8
+ label?: never;
9
+ };
10
+ type ModAvatarCellContent = ModAvatarCellBase & {
11
+ empty?: false;
12
+ name?: string;
13
+ src?: string;
14
+ label?: string;
15
+ };
16
+ export type ModAvatarCellProps = ModAvatarCellEmpty | ModAvatarCellContent;
17
+ /**
18
+ * ModAvatarCell — DataGrid cell displaying a user avatar with optional label.
19
+ */
20
+ export declare const ModAvatarCell: {
21
+ ({ name, src, label, disabled, empty, }: ModAvatarCellProps): import("react/jsx-runtime").JSX.Element;
22
+ displayName: string;
23
+ };
24
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface ModIconCellProps {
3
+ icon?: ReactNode;
4
+ ariaLabel?: string;
5
+ disabled?: boolean;
6
+ }
7
+ /**
8
+ * ModIconCell — Icon cell for DataGrid. Renders an icon centered in the cell.
9
+ */
10
+ export declare const ModIconCell: {
11
+ ({ icon, ariaLabel, disabled }: ModIconCellProps): import("react/jsx-runtime").JSX.Element | null;
12
+ displayName: string;
13
+ };
@@ -0,0 +1,23 @@
1
+ type ModLogoCellNoSrc = {
2
+ src?: undefined;
3
+ alt?: string;
4
+ disabled?: boolean;
5
+ };
6
+ type ModLogoCellWithSrc = {
7
+ src: string;
8
+ alt: string;
9
+ disabled?: boolean;
10
+ };
11
+ export type ModLogoCellProps = ModLogoCellNoSrc | ModLogoCellWithSrc;
12
+ /**
13
+ * ModLogoCell — DataGrid cell displaying a raster or SVG logo image.
14
+ *
15
+ * Kept separate from ModIconCell to match the design system Icon/Logo component split:
16
+ * - ModIconCell: MUI SvgIcon components
17
+ * - ModLogoCell: raster or SVG image URLs (img tag)
18
+ */
19
+ export declare const ModLogoCell: {
20
+ ({ src, alt, disabled }: ModLogoCellProps): import("react/jsx-runtime").JSX.Element;
21
+ displayName: string;
22
+ };
23
+ export {};
@@ -0,0 +1,20 @@
1
+ type ModProgressCellBase = {
2
+ disabled?: boolean;
3
+ };
4
+ type ModProgressCellEmpty = ModProgressCellBase & {
5
+ empty: true;
6
+ value?: never;
7
+ };
8
+ type ModProgressCellContent = ModProgressCellBase & {
9
+ empty?: false;
10
+ value?: number;
11
+ };
12
+ export type ModProgressCellProps = ModProgressCellEmpty | ModProgressCellContent;
13
+ /**
14
+ * ModProgressCell — DataGrid cell displaying a linear progress indicator.
15
+ */
16
+ export declare const ModProgressCell: {
17
+ ({ value, disabled, empty, }: ModProgressCellProps): import("react/jsx-runtime").JSX.Element;
18
+ displayName: string;
19
+ };
20
+ export {};
@@ -0,0 +1,29 @@
1
+ import type { ReactNode } from 'react';
2
+ export type ModStatusCellVariant = 'success' | 'error' | 'warning' | 'info' | 'neutral';
3
+ type ModStatusCellBase = {
4
+ disabled?: boolean;
5
+ };
6
+ type ModStatusCellEmpty = ModStatusCellBase & {
7
+ empty: true;
8
+ label?: never;
9
+ icon?: never;
10
+ variant?: never;
11
+ details?: never;
12
+ };
13
+ type ModStatusCellContent = ModStatusCellBase & {
14
+ empty?: false;
15
+ label: string;
16
+ icon?: ReactNode;
17
+ variant?: ModStatusCellVariant;
18
+ /** Error details shown in a hover tooltip. Clipboard actions should be handled by the consuming app. */
19
+ details?: string;
20
+ };
21
+ export type ModStatusCellProps = ModStatusCellEmpty | ModStatusCellContent;
22
+ /**
23
+ * ModStatusCell — DataGrid cell displaying an icon + label chip with optional error tooltip.
24
+ */
25
+ export declare const ModStatusCell: {
26
+ ({ icon, label, details, disabled, variant, empty, }: ModStatusCellProps): import("react/jsx-runtime").JSX.Element;
27
+ displayName: string;
28
+ };
29
+ export {};
@@ -0,0 +1,106 @@
1
+ import { type DialogProps } from '@mui/material/Dialog';
2
+ import type { SxProps, Theme } from '@mui/material/styles';
3
+ import type { ComponentType, ReactNode } from 'react';
4
+ export interface ModModalProps extends Omit<DialogProps, 'children'> {
5
+ /**
6
+ * Dialog content
7
+ */
8
+ children?: ReactNode;
9
+ }
10
+ /**
11
+ * ModModal - Main modal dialog container based on MUI Dialog
12
+ *
13
+ * This is a composition component. Use with ModModalHeader, ModModalContent, and ModModalFooter:
14
+ *
15
+ * @example
16
+ * <ModModal open={open} onClose={handleClose}>
17
+ * <ModModalHeader
18
+ * title="Title"
19
+ * subtitle="Subtitle"
20
+ * onClose={handleClose}
21
+ * />
22
+ * <ModModalContent>
23
+ * Content goes here
24
+ * </ModModalContent>
25
+ * <ModModalFooter>
26
+ * <ModButton onClick={handleClose}>Action</ModButton>
27
+ * </ModModalFooter>
28
+ * </ModModal>
29
+ */
30
+ export declare const ModModal: {
31
+ ({ children, ...props }: ModModalProps): import("react/jsx-runtime").JSX.Element;
32
+ displayName: string;
33
+ };
34
+ export interface ModModalHeaderProps {
35
+ /**
36
+ * Main title text
37
+ */
38
+ title?: string;
39
+ /**
40
+ * Optional subtitle text or element
41
+ */
42
+ subtitle?: ReactNode;
43
+ /**
44
+ * URL to link the title to. When provided, title renders as a link.
45
+ */
46
+ href?: string;
47
+ /**
48
+ * Custom Link component to use for the title link.
49
+ * Required when href is provided to support framework-specific routing (e.g., Next.js Link).
50
+ */
51
+ LinkComponent?: ComponentType<{
52
+ href: string;
53
+ children: ReactNode;
54
+ sx?: SxProps<Theme>;
55
+ }>;
56
+ /**
57
+ * Close button handler
58
+ */
59
+ onClose?: () => void;
60
+ /**
61
+ * Hide the close button
62
+ * @default false
63
+ */
64
+ hideCloseButton?: boolean;
65
+ /**
66
+ * Additional content to render below title/subtitle (e.g., tabs)
67
+ */
68
+ children?: ReactNode;
69
+ }
70
+ /**
71
+ * ModModalHeader - Header section with title, optional subtitle, and close button
72
+ */
73
+ export declare const ModModalHeader: {
74
+ ({ title, subtitle, href, LinkComponent, onClose, hideCloseButton, children, }: ModModalHeaderProps): import("react/jsx-runtime").JSX.Element;
75
+ displayName: string;
76
+ };
77
+ export interface ModModalContentProps {
78
+ /**
79
+ * Content to display in the modal body
80
+ */
81
+ children?: ReactNode;
82
+ }
83
+ /**
84
+ * ModModalContent - Main content area of the modal
85
+ */
86
+ export declare const ModModalContent: {
87
+ ({ children }: ModModalContentProps): import("react/jsx-runtime").JSX.Element;
88
+ displayName: string;
89
+ };
90
+ export interface ModModalFooterProps {
91
+ /**
92
+ * Optional leading icon or content (e.g., settings icon)
93
+ */
94
+ leadingContent?: ReactNode;
95
+ /**
96
+ * Action buttons (typically ModButton components)
97
+ */
98
+ children?: ReactNode;
99
+ }
100
+ /**
101
+ * ModModalFooter - Footer section with optional leading content and action buttons
102
+ */
103
+ export declare const ModModalFooter: {
104
+ ({ leadingContent, children }: ModModalFooterProps): import("react/jsx-runtime").JSX.Element;
105
+ displayName: string;
106
+ };
@@ -0,0 +1,17 @@
1
+ import type { ReactNode } from 'react';
2
+ /**
3
+ * Props for the ModNavIconButton component
4
+ */
5
+ export interface ModNavIconButtonProps {
6
+ /**
7
+ * The content to display inside the component
8
+ */
9
+ children?: ReactNode;
10
+ }
11
+ /**
12
+ * ModNavIconButton — scaffold placeholder, not yet implemented.
13
+ */
14
+ export declare const ModNavIconButton: {
15
+ ({ children, ...props }: ModNavIconButtonProps): import("react/jsx-runtime").JSX.Element;
16
+ displayName: string;
17
+ };
@@ -0,0 +1,13 @@
1
+ import { type ModGeneralAvatarProps } from '../GeneralAvatar/GeneralAvatar';
2
+ export interface ModNavigationAvatarProps extends Omit<ModGeneralAvatarProps, 'size'> {
3
+ }
4
+ /**
5
+ * ModNavigationAvatar - Compact avatar for navigation contexts
6
+ *
7
+ * Wraps ModGeneralAvatar (size="medium") in a 40px container,
8
+ * providing an interactive area for navigation UI.
9
+ */
10
+ export declare const ModNavigationAvatar: {
11
+ ({ children, ...props }: ModNavigationAvatarProps): import("react/jsx-runtime").JSX.Element;
12
+ displayName: string;
13
+ };
@@ -0,0 +1,55 @@
1
+ import ButtonBase, { type ButtonBaseProps } from '@mui/material/ButtonBase';
2
+ import type { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';
3
+ import type { ModTagOwnProps } from '../Tag/Tag';
4
+ type ModNavigationItemOwnProps = {
5
+ /**
6
+ * Icon element to display
7
+ */
8
+ icon?: ReactNode;
9
+ /**
10
+ * Text label below the icon
11
+ */
12
+ label?: string;
13
+ /**
14
+ * Whether the item is selected/active
15
+ * @default false
16
+ */
17
+ selected?: boolean;
18
+ /**
19
+ * Optional tag badge content (e.g., "Beta")
20
+ */
21
+ tag?: string;
22
+ /**
23
+ * Hover tooltip shown only when the surrounding ModSideNav is collapsed
24
+ * (and the label is therefore hidden).
25
+ */
26
+ tooltip?: ReactNode;
27
+ /**
28
+ * Slot props for internal sub-components.
29
+ */
30
+ slotProps?: {
31
+ /**
32
+ * Props forwarded to the ModTag badge rendered when `tag` is set.
33
+ * Override `intent`, `variant`, or `size` to change appearance — e.g.
34
+ * `{ variant: 'outlined', intent: 'default' }` for a calmer grey badge.
35
+ */
36
+ badge?: ModTagOwnProps & {
37
+ sx?: Record<string, unknown>;
38
+ };
39
+ };
40
+ /**
41
+ * Additional content
42
+ */
43
+ children?: ReactNode;
44
+ };
45
+ export type ModNavigationItemProps<C extends ElementType = typeof ButtonBase> = ModNavigationItemOwnProps & Omit<ButtonBaseProps, keyof ModNavigationItemOwnProps | 'component'> & Omit<ComponentPropsWithoutRef<C>, keyof ModNavigationItemOwnProps | keyof ButtonBaseProps> & {
46
+ component?: C;
47
+ };
48
+ /**
49
+ * ModNavigationItem - Vertical navigation item with icon, label, and optional tag
50
+ */
51
+ export declare function ModNavigationItem<C extends ElementType = typeof ButtonBase>({ icon, label, selected, tag, tooltip, slotProps, children, ...props }: ModNavigationItemProps<C>): import("react/jsx-runtime").JSX.Element;
52
+ export declare namespace ModNavigationItem {
53
+ var displayName: string;
54
+ }
55
+ export {};
@@ -0,0 +1,150 @@
1
+ import type { BoxProps } from '@mui/material/Box';
2
+ import type { Breakpoint } from '@mui/material/styles';
3
+ import type { ElementType, ReactNode } from 'react';
4
+ /**
5
+ * Breadcrumb item configuration
6
+ */
7
+ export interface BreadcrumbItem {
8
+ /** Link label */
9
+ label: ReactNode;
10
+ /** Link href (omit for current/last item) */
11
+ href?: string;
12
+ }
13
+ /**
14
+ * Breadcrumb configuration with link component and items
15
+ */
16
+ export interface BreadcrumbConfig {
17
+ /** Custom link component for client-side navigation (e.g., Next.js Link) */
18
+ linkComponent?: ElementType;
19
+ /** Breadcrumb items */
20
+ items: BreadcrumbItem[];
21
+ }
22
+ export interface ModPageContentProps extends BoxProps {
23
+ /**
24
+ * Main heading displayed on the page
25
+ */
26
+ pageTitle: ReactNode | string;
27
+ /**
28
+ * Optional subtitle displayed below the page title
29
+ */
30
+ subtitle?: ReactNode | string;
31
+ /**
32
+ * Optional breadcrumbs navigation displayed above the page title.
33
+ * Last item is automatically marked as current.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * breadcrumbs={{
38
+ * linkComponent: NextLink,
39
+ * items: [
40
+ * { label: 'Settings', href: '/settings' },
41
+ * { label: 'Team', href: '/team' },
42
+ * { label: 'Team Details' },
43
+ * ]
44
+ * }}
45
+ * ```
46
+ */
47
+ breadcrumbs?: BreadcrumbConfig;
48
+ /**
49
+ * Action button displayed in the top-right corner
50
+ */
51
+ action?: ReactNode;
52
+ /**
53
+ * Make header sticky on scroll
54
+ * @default false
55
+ */
56
+ sticky?: boolean;
57
+ /**
58
+ * Maximum width constraint for content
59
+ * @default false
60
+ */
61
+ contentMaxWidth?: Breakpoint | false;
62
+ /**
63
+ * Center content when using contentMaxWidth
64
+ * @default true
65
+ */
66
+ centerContent?: boolean;
67
+ /**
68
+ * Disable gutters/padding
69
+ * @default false
70
+ */
71
+ disableGutters?: boolean;
72
+ /**
73
+ * Page layout mode.
74
+ * - `default`: standard centered/max-width-constrained content with
75
+ * gutters. Best for content-driven pages (settings, forms, lists).
76
+ * - `fullBleed`: removes max-width and horizontal/bottom padding, lets
77
+ * the content area flex-fill the viewport. Best for full-height
78
+ * layouts (sidebar + panel canvases, builders, explorers). Title
79
+ * and breadcrumbs still render — they sit at the leading edge.
80
+ * @default 'default'
81
+ */
82
+ layout?: 'default' | 'fullBleed';
83
+ /**
84
+ * Loading state - shows spinner while content loads
85
+ * @default false
86
+ */
87
+ isLoading?: boolean;
88
+ /**
89
+ * Enable back to top button when scrolling
90
+ * @default true
91
+ */
92
+ showBackToTop?: boolean;
93
+ /**
94
+ * Content to display in the main area
95
+ */
96
+ children: ReactNode;
97
+ }
98
+ /**
99
+ * ModPageContent - Page content surface from the Moderne Design System
100
+ *
101
+ * Represents the main white card/surface that contains page content:
102
+ * - Page title with optional subtitle and action button
103
+ * - Content area where tabs and page content should be rendered
104
+ *
105
+ * ## Design Tokens
106
+ * - Background: `semanticColors.surface.canvasContent` — the page content
107
+ * canvas (#fbfaf6 light / #1b1b21 dark), not a raised card surface
108
+
109
+ * - Border: `semanticColors.border.primary` (#D1D5DB)
110
+ * - Border radius: `borderRadius.input` (8px)
111
+ * - Padding: `spacing.spacing_2_1_2` (20px) horizontal, `spacing.spacing_2` (16px) vertical
112
+ * - Gap: `spacing.spacing_1` (8px)
113
+ * - Title typography: `typography.fontSize.h3` (21px), `typography.fontWeight.medium`
114
+ *
115
+ * @example
116
+ * ```tsx
117
+ * <ModPageContent
118
+ * pageTitle="Users"
119
+ * action={<IconButton>...</IconButton>}
120
+ * >
121
+ * <ModDataGrid ... />
122
+ * </ModPageContent>
123
+ * ```
124
+ *
125
+ * @example
126
+ * ```tsx
127
+ * // With subtitle
128
+ * <ModPageContent
129
+ * pageTitle="Settings"
130
+ * subtitle="Manage your account preferences"
131
+ * >
132
+ * <SettingsContent />
133
+ * </ModPageContent>
134
+ * ```
135
+ *
136
+ * @example
137
+ * ```tsx
138
+ * // With sticky header
139
+ * <ModPageContent
140
+ * pageTitle="Long Content"
141
+ * sticky
142
+ * >
143
+ * <VeryLongContent />
144
+ * </ModPageContent>
145
+ * ```
146
+ */
147
+ export declare function ModPageContent({ pageTitle, subtitle, breadcrumbs, action, sticky, contentMaxWidth: contentMaxWidthProp, centerContent, disableGutters: disableGuttersProp, isLoading, showBackToTop, layout, children, sx, ...boxProps }: ModPageContentProps): import("react/jsx-runtime").JSX.Element;
148
+ export declare namespace ModPageContent {
149
+ var displayName: string;
150
+ }
@@ -0,0 +1,32 @@
1
+ import type { GridSlots } from '@mui/x-data-grid-pro';
2
+ import { type ModDataGridProps } from '../DataGrid/DataGrid';
3
+ export interface ModPaginatedGridProps extends Omit<ModDataGridProps, 'slots'> {
4
+ /**
5
+ * Custom slots (merged with design system defaults)
6
+ */
7
+ slots?: Partial<GridSlots>;
8
+ }
9
+ /**
10
+ * ModPaginatedGrid - DataGrid with standard pagination controls
11
+ *
12
+ * Features:
13
+ * - Standard MUI pagination with page numbers
14
+ * - Shows "1-10 of 100" format in footer
15
+ * - Previous/Next navigation buttons
16
+ * - Auto-calculates page size to fit viewport (autoPageSize)
17
+ * - No vertical scrollbar within pages - use pagination to navigate
18
+ * - Inherits all responsive features from ModDataGrid
19
+ *
20
+ * @example
21
+ * <ModPaginatedGrid
22
+ * rows={rows}
23
+ * columns={columns}
24
+ * paginationModel={{ page: 0, pageSize: 10 }}
25
+ * onPaginationModelChange={handlePaginationChange}
26
+ * rowCount={100}
27
+ * />
28
+ */
29
+ export declare function ModPaginatedGrid({ slots, pageSizeOptions, slotProps: userSlotProps, ...props }: ModPaginatedGridProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare namespace ModPaginatedGrid {
31
+ var displayName: string;
32
+ }
@@ -0,0 +1,17 @@
1
+ import type { ReactNode } from 'react';
2
+ /**
3
+ * Props for the ModProgressSpinner component
4
+ */
5
+ export interface ModProgressSpinnerProps {
6
+ /**
7
+ * The content to display inside the component
8
+ */
9
+ children?: ReactNode;
10
+ }
11
+ /**
12
+ * ModProgressSpinner — scaffold placeholder, not yet implemented.
13
+ */
14
+ export declare const ModProgressSpinner: {
15
+ ({ children, ...props }: ModProgressSpinnerProps): import("react/jsx-runtime").JSX.Element;
16
+ displayName: string;
17
+ };
@@ -0,0 +1,35 @@
1
+ import { type LinearProgressProps } from '@mui/material/LinearProgress';
2
+ export interface ModProgressbarProps extends Omit<LinearProgressProps, 'variant'> {
3
+ /**
4
+ * The value of the progress indicator for the determinate variant.
5
+ * Value between 0 and 100.
6
+ * @default 0
7
+ */
8
+ value?: number;
9
+ /**
10
+ * Position of the label showing the progress percentage
11
+ * @default "none"
12
+ */
13
+ labelPosition?: 'none' | 'right' | 'top' | 'bottom';
14
+ /**
15
+ * The variant of the progress indicator
16
+ * @default "default"
17
+ */
18
+ variant?: 'default' | 'cancelled';
19
+ /**
20
+ * Custom label text to display instead of the percentage
21
+ */
22
+ labelText?: string;
23
+ }
24
+ /**
25
+ * ModProgressbar - Linear progress indicator based on MUI LinearProgress
26
+ *
27
+ * Design Decisions (from Issue #75):
28
+ * - MUI Base Component: LinearProgress (provides accessibility, animations, progress tracking)
29
+ * - Label Positioning: Single labelPosition prop with values 'none', 'right', 'top', 'bottom'
30
+ * - Cancelled State: Separate variant prop (variant='cancelled') alongside value prop
31
+ */
32
+ export declare const ModProgressbar: {
33
+ ({ value, labelPosition, variant, labelText, ...props }: ModProgressbarProps): import("react/jsx-runtime").JSX.Element;
34
+ displayName: string;
35
+ };
@@ -0,0 +1,42 @@
1
+ export interface ModQuickFilterProps {
2
+ /**
3
+ * Placeholder text for the search input
4
+ * @default "Search..."
5
+ */
6
+ placeholder?: string;
7
+ /**
8
+ * Callback fired when a key is pressed
9
+ */
10
+ onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
11
+ /**
12
+ * If true, the input will be focused on mount
13
+ * @default false
14
+ */
15
+ autoFocus?: boolean;
16
+ }
17
+ /**
18
+ * ModQuickFilter - Quick search/filter input component for data grids
19
+ *
20
+ * Uses MUI X DataGrid's QuickFilterControl with Moderne design system styling.
21
+ * Styled to match the Figma design with search icon, clear button, and proper spacing.
22
+ *
23
+ * **Note:** This component must be used within a DataGrid context (inside a DataGrid component's toolbar).
24
+ *
25
+ * @example
26
+ * // Basic usage in DataGrid toolbar
27
+ * <DataGrid
28
+ * rows={rows}
29
+ * columns={columns}
30
+ * slots={{
31
+ * toolbar: () => (
32
+ * <ModToolbar>
33
+ * <ModQuickFilter placeholder="Search users..." />
34
+ * </ModToolbar>
35
+ * ),
36
+ * }}
37
+ * />
38
+ */
39
+ export declare const ModQuickFilter: {
40
+ ({ placeholder, onKeyDown, autoFocus, }: ModQuickFilterProps): import("react/jsx-runtime").JSX.Element;
41
+ displayName: string;
42
+ };
@@ -0,0 +1,59 @@
1
+ import type { RadioProps } from '@mui/material/Radio';
2
+ import type { ReactNode } from 'react';
3
+ declare module '@mui/material/Radio' {
4
+ interface RadioPropsSizeOverrides {
5
+ small: true;
6
+ medium: true;
7
+ }
8
+ }
9
+ type RadioSize = 'small' | 'medium';
10
+ export interface ModRadioProps extends Omit<RadioProps, 'size'> {
11
+ /**
12
+ * The size of the radio button
13
+ * @default "medium"
14
+ */
15
+ size?: RadioSize;
16
+ /**
17
+ * The label text displayed next to the radio button
18
+ */
19
+ label?: ReactNode;
20
+ /**
21
+ * The helper text displayed below the label
22
+ */
23
+ helperText?: ReactNode;
24
+ }
25
+ /**
26
+ * ModRadio - Radio button component based on MUI Radio
27
+ *
28
+ * @example
29
+ * // Basic radio button (just the icon)
30
+ * <ModRadio />
31
+ *
32
+ * @example
33
+ * // With label
34
+ * <ModRadio label="Remember me" />
35
+ *
36
+ * @example
37
+ * // With label and helper text
38
+ * <ModRadio label="Remember me" helperText="Save my login details for next time." />
39
+ *
40
+ * @example
41
+ * // Small size
42
+ * <ModRadio size="small" label="Remember me" />
43
+ *
44
+ * @example
45
+ * // Controlled
46
+ * <ModRadio checked={value === 'option1'} onChange={handleChange} value="option1" label="Option 1" />
47
+ *
48
+ * @example
49
+ * // Radio group
50
+ * <RadioGroup value={value} onChange={handleChange}>
51
+ * <ModRadio value="option1" label="Option 1" helperText="First option" />
52
+ * <ModRadio value="option2" label="Option 2" helperText="Second option" />
53
+ * </RadioGroup>
54
+ */
55
+ export declare const ModRadio: {
56
+ ({ size, label, helperText, disabled, ...props }: ModRadioProps): import("react/jsx-runtime").JSX.Element;
57
+ displayName: string;
58
+ };
59
+ export {};
@@ -0,0 +1,4 @@
1
+ /**
2
+ * ModRadioButtonWithText
3
+ */
4
+ export declare const ModRadioButtonWithText: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,12 @@
1
+ import { type BoxProps } from '@mui/material';
2
+ import type { FunctionComponent } from 'react';
3
+ export interface ModRipplingDotProps extends BoxProps {
4
+ }
5
+ /**
6
+ * ModRipplingDot - Animated status dot with an expanding ripple ring.
7
+ *
8
+ * Indicates an in-progress, indeterminate state (RUNNING / SYNCING / PROCESSING).
9
+ * Color is inherited from `currentColor`; set it via the `color`/`sx` prop or a
10
+ * parent. Sized to the lowercase-letter height regardless of parent fontSize.
11
+ */
12
+ export declare const ModRipplingDot: FunctionComponent<ModRipplingDotProps>;