@moderneinc/neo-styled-components 0.0.0-development → 1.6.1-next.02b147

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.
@@ -0,0 +1,57 @@
1
+ import { type AvatarProps } from '@mui/material/Avatar';
2
+ declare module '@mui/material/Avatar' {
3
+ interface AvatarPropsVariantOverrides {
4
+ initials: true;
5
+ rounded: false;
6
+ square: false;
7
+ }
8
+ }
9
+ export interface NeoAvatarProps extends Omit<AvatarProps, 'variant'> {
10
+ /**
11
+ * The size of the avatar
12
+ * @default "medium"
13
+ */
14
+ size?: 'small' | 'medium';
15
+ /**
16
+ * The variant of the avatar
17
+ * - "circular": Image avatar with white surface container (medium only)
18
+ * - "initials": Text/initials avatar with violet background (no container)
19
+ * @default "circular"
20
+ */
21
+ variant?: 'circular' | 'initials';
22
+ }
23
+ /**
24
+ * NeoAvatar - User avatar component based on MUI Avatar
25
+ *
26
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4214-58134
27
+ *
28
+ * Figma Props Mapping:
29
+ * - Figma Type "Initials" → variant="initials", size="small" (20px)
30
+ * - Figma Type "Small" → variant="circular", size="small" (20px with image)
31
+ * - Figma Type "Medium" → variant="circular", size="medium" (44px white container with image)
32
+ * - State: Hover (tooltip) → Wrap component with MUI Tooltip
33
+ *
34
+ * Usage:
35
+ * ```tsx
36
+ * // Medium image avatar (with white container)
37
+ * <NeoAvatar variant="circular" size="medium" src="/avatar.jpg" alt="User" />
38
+ *
39
+ * // Small image avatar (no container)
40
+ * <NeoAvatar variant="circular" size="small" src="/avatar.jpg" alt="User" />
41
+ *
42
+ * // Small initials avatar
43
+ * <NeoAvatar variant="initials" size="small">A</NeoAvatar>
44
+ *
45
+ * // Medium initials avatar
46
+ * <NeoAvatar variant="initials" size="medium">AB</NeoAvatar>
47
+ *
48
+ * // With tooltip (user wraps)
49
+ * <Tooltip title="This is a tooltip" arrow placement="top">
50
+ * <NeoAvatar variant="initials">A</NeoAvatar>
51
+ * </Tooltip>
52
+ * ```
53
+ */
54
+ export declare const NeoAvatar: {
55
+ ({ size, variant, ...props }: NeoAvatarProps): import("react/jsx-runtime").JSX.Element;
56
+ displayName: string;
57
+ };
@@ -0,0 +1,23 @@
1
+ import { type ChipProps } from '@mui/material/Chip';
2
+ export interface NeoBadgeProps extends Omit<ChipProps, 'variant' | 'size'> {
3
+ /**
4
+ * The color/state of the badge
5
+ * @default "default"
6
+ */
7
+ color?: 'default' | 'error' | 'warning' | 'success' | 'info';
8
+ }
9
+ /**
10
+ * NeoBadge - Status badge component based on MUI Chip
11
+ *
12
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system-w--correct-set-of-tokens?node-id=4091-17230
13
+ *
14
+ * Figma Props Mapping:
15
+ * - state (Neutral|Error|Warning|Success|Info) → color (default|error|warning|success|info)
16
+ * - iconLeading → icon prop (pass React element)
17
+ * - iconTrailing → deleteIcon prop (pass React element)
18
+ * - Label → label prop
19
+ */
20
+ export declare const NeoBadge: {
21
+ (props: NeoBadgeProps): import("react/jsx-runtime").JSX.Element;
22
+ displayName: string;
23
+ };
@@ -0,0 +1,66 @@
1
+ import { type AlertProps } from '@mui/material/Alert';
2
+ import type { ReactNode } from 'react';
3
+ export interface NeoBannerProps extends Omit<AlertProps, 'variant' | 'severity' | 'color'> {
4
+ /**
5
+ * The visual style variant of the banner
6
+ * @default "light"
7
+ *
8
+ * @figmaPropMapping color (Dark|Light|Success|Error|Warning) → variant
9
+ */
10
+ variant?: 'dark' | 'light' | 'success' | 'error' | 'warning';
11
+ /**
12
+ * The message text to display
13
+ *
14
+ * @figmaPropMapping {Message} → message
15
+ */
16
+ message: string;
17
+ /**
18
+ * Horizontal alignment of the message content
19
+ * @default "left"
20
+ *
21
+ * @figmaPropMapping messagePosition (Left|Center) → messagePosition
22
+ */
23
+ messagePosition?: 'left' | 'center';
24
+ /**
25
+ * Optional link text to display after the message
26
+ *
27
+ * @figmaPropMapping link (boolean) → linkText (string)
28
+ */
29
+ linkText?: string;
30
+ /**
31
+ * Whether to show the close button
32
+ * @default true
33
+ *
34
+ * @figmaPropMapping closeIcon → showClose
35
+ */
36
+ showClose?: boolean;
37
+ /**
38
+ * Custom icon to display (optional)
39
+ * If not provided, no icon will be shown
40
+ */
41
+ icon?: ReactNode;
42
+ /**
43
+ * Callback when close button is clicked
44
+ */
45
+ onClose?: () => void;
46
+ /**
47
+ * Callback when link text is clicked
48
+ */
49
+ onLinkClick?: () => void;
50
+ }
51
+ /**
52
+ * NeoBanner - Inline banner/alert component based on MUI Alert
53
+ *
54
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4170-2158
55
+ *
56
+ * Figma Props Mapping:
57
+ * - color (Dark|Light|Success|Error|Warning) → variant (dark|light|success|error|warning)
58
+ * - messagePosition (Left|Center) → messagePosition ("left"|"center")
59
+ * - closeIcon (boolean) → showClose (boolean)
60
+ * - link (boolean) → linkText (string)
61
+ * - {Message} → message (string)
62
+ */
63
+ export declare const NeoBanner: {
64
+ ({ variant, message, messagePosition, linkText, showClose, icon, onClose, onLinkClick, ...props }: NeoBannerProps): import("react/jsx-runtime").JSX.Element;
65
+ displayName: string;
66
+ };
@@ -0,0 +1,61 @@
1
+ import { type LinkProps } from '@mui/material/Link';
2
+ import type { ReactNode } from 'react';
3
+ /**
4
+ * NeoBreadcrumbs - Navigation breadcrumb component
5
+ *
6
+ * Figma Mapping:
7
+ * - Base component uses MuiBreadcrumbs with custom styled Links
8
+ * - Uses chevron separator (ChevronRight from lucide-react)
9
+ * - Typography: 14px Medium (500 weight)
10
+ * - Colors:
11
+ * - Non-current: semanticColors.typography.bodySecondary (#6b7280)
12
+ * - Current: semanticColors.buttons.primary.default (#2f42ff)
13
+ * - Hover: semanticColors.icons.hover (#1f2937) or buttons.tertiary.hover (#1e2ec2)
14
+ * - Focus: 2px outline with buttons.primary.focus
15
+ *
16
+ * @see https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4563-122872
17
+ */
18
+ export interface NeoBreadcrumbsProps {
19
+ /** Breadcrumb items as Link elements */
20
+ children: ReactNode;
21
+ /** Additional CSS classes */
22
+ className?: string;
23
+ }
24
+ export interface NeoBreadcrumbLinkProps extends Omit<LinkProps, 'color'> {
25
+ /** Marks this breadcrumb as the current page (sets aria-current="page") */
26
+ current?: boolean;
27
+ /** Link content */
28
+ children: ReactNode;
29
+ }
30
+ /**
31
+ * NeoBreadcrumbLink - Individual breadcrumb link
32
+ *
33
+ * Use this component as children of NeoBreadcrumbs to create breadcrumb items.
34
+ * Set `current` prop on the last item to indicate the current page.
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * <NeoBreadcrumbs>
39
+ * <NeoBreadcrumbLink href="/settings">Settings</NeoBreadcrumbLink>
40
+ * <NeoBreadcrumbLink href="/team">Team</NeoBreadcrumbLink>
41
+ * <NeoBreadcrumbLink current>Team Details</NeoBreadcrumbLink>
42
+ * </NeoBreadcrumbs>
43
+ * ```
44
+ */
45
+ export declare function NeoBreadcrumbLink({ current, children, ...props }: NeoBreadcrumbLinkProps): import("react/jsx-runtime").JSX.Element;
46
+ /**
47
+ * NeoBreadcrumbs - Navigation breadcrumb component
48
+ *
49
+ * Provides hierarchical navigation with styled links and chevron separators.
50
+ * Use NeoBreadcrumbLink components as children to create breadcrumb items.
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * <NeoBreadcrumbs>
55
+ * <NeoBreadcrumbLink href="/settings">Settings</NeoBreadcrumbLink>
56
+ * <NeoBreadcrumbLink href="/team">Team</NeoBreadcrumbLink>
57
+ * <NeoBreadcrumbLink current>Team Details</NeoBreadcrumbLink>
58
+ * </NeoBreadcrumbs>
59
+ * ```
60
+ */
61
+ export declare function NeoBreadcrumbs({ children, className }: NeoBreadcrumbsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,59 @@
1
+ import { type ButtonBaseProps } from '@mui/material/ButtonBase';
2
+ import type { ReactNode } from 'react';
3
+ declare module '@mui/material/ButtonBase' {
4
+ interface ButtonBasePropsVariantOverrides {
5
+ primary: true;
6
+ secondary: true;
7
+ destructive: true;
8
+ link: true;
9
+ linkColor: true;
10
+ }
11
+ }
12
+ type ButtonVariant = 'primary' | 'secondary' | 'destructive' | 'link' | 'linkColor';
13
+ type ButtonSize = 'small' | 'medium';
14
+ export interface NeoButtonProps extends Omit<ButtonBaseProps, 'children'> {
15
+ /**
16
+ * The visual variant of the button
17
+ * @default "primary"
18
+ *
19
+ * @figma Hierarchy
20
+ */
21
+ variant?: ButtonVariant;
22
+ /**
23
+ * The size of the button
24
+ * @default "medium"
25
+ *
26
+ * @figma Size
27
+ */
28
+ size?: ButtonSize;
29
+ /**
30
+ * Show loading spinner instead of children
31
+ * @default false
32
+ *
33
+ * @figma State=Loading
34
+ */
35
+ loading?: boolean;
36
+ /**
37
+ * Button content
38
+ */
39
+ children?: ReactNode;
40
+ }
41
+ /**
42
+ * NeoButton - Text button component based on MUI ButtonBase
43
+ *
44
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4086-7590
45
+ *
46
+ * Figma Props Mapping:
47
+ * - Hierarchy (Primary|Secondary|Destructive|Link|Link Color) → variant prop
48
+ * - Size (Small|Medium) → size prop
49
+ * - State=Disabled → disabled prop
50
+ * - State=Loading → loading prop
51
+ * - State=Hover → CSS :hover
52
+ * - State=Pressed → CSS :active
53
+ * - State=Focused → CSS :focus-visible
54
+ */
55
+ export declare const NeoButton: {
56
+ ({ variant, size, loading, children, disabled, ...props }: NeoButtonProps): import("react/jsx-runtime").JSX.Element;
57
+ displayName: string;
58
+ };
59
+ export {};
@@ -0,0 +1,42 @@
1
+ import { type ButtonGroupProps as MuiButtonGroupProps } from '@mui/material/ButtonGroup';
2
+ type ButtonGroupSize = 'small' | 'medium';
3
+ export interface NeoButtonGroupProps extends Omit<MuiButtonGroupProps, 'size' | 'variant'> {
4
+ /**
5
+ * The size of the button group
6
+ * @default "medium"
7
+ *
8
+ * @figma Size=Sm → small, Size=Md → medium
9
+ */
10
+ size?: ButtonGroupSize;
11
+ /**
12
+ * The visual variant of the buttons
13
+ * ButtonGroup uses a fixed outlined style from the design
14
+ */
15
+ variant?: 'outlined';
16
+ }
17
+ /**
18
+ * NeoButtonGroup - Button group component based on MUI ButtonGroup
19
+ *
20
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4106-11129
21
+ *
22
+ * Figma Props Mapping:
23
+ * - Size (Sm|Md) → size prop (small|medium)
24
+ * - Icon=False → Icon support not included in this implementation
25
+ * - Active button state → Controlled externally via button props or classes
26
+ *
27
+ * Usage:
28
+ * ```tsx
29
+ * <NeoButtonGroup size="medium">
30
+ * <NeoButton>Button 1</NeoButton>
31
+ * <NeoButton>Button 2</NeoButton>
32
+ * <NeoButton>Button 3</NeoButton>
33
+ * </NeoButtonGroup>
34
+ * ```
35
+ *
36
+ * Note: To show active state, add 'active' class to the selected button
37
+ */
38
+ export declare const NeoButtonGroup: {
39
+ ({ size, variant, ...props }: NeoButtonGroupProps): import("react/jsx-runtime").JSX.Element;
40
+ displayName: string;
41
+ };
42
+ export {};
@@ -0,0 +1,80 @@
1
+ import { type CheckboxProps } from '@mui/material/Checkbox';
2
+ import type { ReactNode } from 'react';
3
+ declare module '@mui/material/Checkbox' {
4
+ interface CheckboxPropsSizeOverrides {
5
+ xs: true;
6
+ small: true;
7
+ medium: true;
8
+ }
9
+ }
10
+ type CheckboxSize = 'xs' | 'small' | 'medium';
11
+ export interface NeoCheckboxProps extends Omit<CheckboxProps, 'size'> {
12
+ /**
13
+ * The size of the checkbox
14
+ * @default "medium"
15
+ *
16
+ * @figma Size
17
+ */
18
+ size?: CheckboxSize;
19
+ /**
20
+ * The label text displayed next to the checkbox
21
+ *
22
+ * @figma Text (label)
23
+ */
24
+ label?: ReactNode;
25
+ /**
26
+ * The helper text displayed below the label
27
+ *
28
+ * @figma Text (supporting text)
29
+ */
30
+ helperText?: ReactNode;
31
+ }
32
+ /**
33
+ * NeoCheckbox - Checkbox component based on MUI Checkbox
34
+ *
35
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4122-39311
36
+ *
37
+ * Figma Props Mapping:
38
+ * - Checked (True|False) → checked prop
39
+ * - Indeterminate (True|False) → indeterminate prop
40
+ * - Size (xs|sm|md) → size prop (xs|small|medium)
41
+ * - State=Default → default state
42
+ * - State=Hover → CSS :hover
43
+ * - State=Focused → CSS :focus-visible
44
+ * - State=Disabled → disabled prop
45
+ * - Text (label) → label prop
46
+ * - Text (supporting text) → helperText prop
47
+ *
48
+ * @example
49
+ * // Basic checkbox
50
+ * <NeoCheckbox />
51
+ *
52
+ * @example
53
+ * // With label
54
+ * <NeoCheckbox label="Remember me" />
55
+ *
56
+ * @example
57
+ * // With label and helper text
58
+ * <NeoCheckbox label="Remember me" helperText="Save my login details for next time." />
59
+ *
60
+ * @example
61
+ * // Small size
62
+ * <NeoCheckbox size="small" label="Remember me" />
63
+ *
64
+ * @example
65
+ * // Extra small size
66
+ * <NeoCheckbox size="xs" label="Remember me" />
67
+ *
68
+ * @example
69
+ * // Controlled
70
+ * <NeoCheckbox checked={isChecked} onChange={handleChange} label="Remember me" />
71
+ *
72
+ * @example
73
+ * // Indeterminate state (for "select all" checkboxes)
74
+ * <NeoCheckbox indeterminate={true} label="Select all" />
75
+ */
76
+ export declare const NeoCheckbox: {
77
+ ({ size, label, helperText, disabled, ...props }: NeoCheckboxProps): import("react/jsx-runtime").JSX.Element;
78
+ displayName: string;
79
+ };
80
+ export {};
@@ -0,0 +1,59 @@
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';
11
+ export interface NeoCodeSnippetProps extends Omit<ButtonBaseProps, 'children'> {
12
+ /**
13
+ * The visual variant of the code snippet
14
+ * @default "outlined"
15
+ *
16
+ * @figma Color (Light|Dark)
17
+ */
18
+ variant?: CodeSnippetVariant;
19
+ /**
20
+ * The size of the code snippet
21
+ * @default "small"
22
+ *
23
+ * @figma size (xs|small|large)
24
+ */
25
+ size?: CodeSnippetSize;
26
+ /**
27
+ * Icon to display at the start (leading position)
28
+ *
29
+ * @figma leadingIcon
30
+ */
31
+ startIcon?: ReactNode;
32
+ /**
33
+ * Icon to display at the end (trailing position)
34
+ *
35
+ * @figma trailingIcon
36
+ */
37
+ endIcon?: ReactNode;
38
+ /**
39
+ * Code snippet content to display
40
+ */
41
+ children: ReactNode;
42
+ }
43
+ /**
44
+ * NeoCodeSnippet - Inline code snippet component based on MUI ButtonBase
45
+ *
46
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4187-30353
47
+ *
48
+ * Figma Props Mapping:
49
+ * - Color (Light|Dark) → variant (outlined|filled)
50
+ * - size (xs|small|large) → size prop
51
+ * - leadingIcon (boolean) → startIcon (ReactNode)
52
+ * - trailingIcon (boolean) → endIcon (ReactNode)
53
+ * - Text content → children prop
54
+ */
55
+ export declare const NeoCodeSnippet: {
56
+ ({ variant, size, startIcon, endIcon, children, ...props }: NeoCodeSnippetProps): import("react/jsx-runtime").JSX.Element;
57
+ displayName: string;
58
+ };
59
+ export {};
@@ -0,0 +1,144 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface CellContentProps extends HTMLAttributes<HTMLDivElement> {
3
+ children?: ReactNode;
4
+ }
5
+ /**
6
+ * DataGridCellContent - Layout helper for cells that need flex layout with gap spacing
7
+ *
8
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4212-41631
9
+ *
10
+ * Use this for any cell content that needs horizontal flex layout with proper spacing:
11
+ * - Multiple badges
12
+ * - Avatar + text
13
+ * - Action buttons/icons
14
+ * - Any other horizontal layouts
15
+ *
16
+ * @example
17
+ * // Badges
18
+ * renderCell: (params) => (
19
+ * <DataGridCellContent>
20
+ * <NeoBadge label="Active" color="success" />
21
+ * <NeoBadge label="New" color="info" />
22
+ * </DataGridCellContent>
23
+ * )
24
+ *
25
+ * @example
26
+ * // Avatar with text
27
+ * renderCell: (params) => (
28
+ * <DataGridCellContent>
29
+ * <NeoAvatar src={params.row.avatarUrl} />
30
+ * <span>{params.row.name}</span>
31
+ * </DataGridCellContent>
32
+ * )
33
+ *
34
+ * @example
35
+ * // Action buttons
36
+ * renderCell: () => (
37
+ * <DataGridCellContent>
38
+ * <NeoIconButton size="small"><Edit2 /></NeoIconButton>
39
+ * <NeoIconButton size="small"><Delete /></NeoIconButton>
40
+ * </DataGridCellContent>
41
+ * )
42
+ */
43
+ export declare const DataGridCellContent: {
44
+ ({ children, ...props }: CellContentProps): import("react/jsx-runtime").JSX.Element;
45
+ displayName: string;
46
+ };
47
+ /**
48
+ * Utility function to get DataGrid sx styles for consistent cell appearance
49
+ *
50
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4212-41631
51
+ *
52
+ * Apply this to DataGrid's `sx` prop to ensure cells are properly aligned and styled.
53
+ *
54
+ * @param size - Row size variant (affects row height)
55
+ * @returns SxProps for DataGrid
56
+ *
57
+ * @example
58
+ * <DataGrid
59
+ * sx={getDataGridCellStyles('default')}
60
+ * rows={rows}
61
+ * columns={columns}
62
+ * />
63
+ */
64
+ export declare const getDataGridCellStyles: (size?: "condensed" | "default" | "relaxed") => {
65
+ [x: string]: {
66
+ minHeight: string;
67
+ maxHeight: string;
68
+ display?: undefined;
69
+ alignItems?: undefined;
70
+ } | {
71
+ display: string;
72
+ alignItems: string;
73
+ minHeight?: undefined;
74
+ maxHeight?: undefined;
75
+ };
76
+ };
77
+ /**
78
+ * StatusBadgeCell - Ready-to-use cell component for status badges
79
+ *
80
+ * @example
81
+ * renderCell: (params) => (
82
+ * <StatusBadgeCell
83
+ * status={params.value}
84
+ * colorMap={{
85
+ * Active: 'success',
86
+ * Pending: 'warning',
87
+ * Inactive: 'default'
88
+ * }}
89
+ * />
90
+ * )
91
+ */
92
+ export interface StatusBadgeCellProps {
93
+ status: string;
94
+ colorMap?: Record<string, 'default' | 'error' | 'info' | 'success' | 'warning'>;
95
+ }
96
+ export declare const StatusBadgeCell: {
97
+ ({ status, colorMap }: StatusBadgeCellProps): import("react/jsx-runtime").JSX.Element;
98
+ displayName: string;
99
+ };
100
+ /**
101
+ * UserAvatarCell - Ready-to-use cell component for user avatar + name
102
+ *
103
+ * @example
104
+ * renderCell: (params) => (
105
+ * <UserAvatarCell
106
+ * name={params.row.name}
107
+ * avatarUrl={params.row.avatarUrl}
108
+ * />
109
+ * )
110
+ */
111
+ export interface UserAvatarCellProps {
112
+ name: string;
113
+ avatarUrl?: string;
114
+ avatarSize?: number;
115
+ }
116
+ export declare const UserAvatarCell: {
117
+ ({ name, avatarUrl, avatarSize }: UserAvatarCellProps): import("react/jsx-runtime").JSX.Element;
118
+ displayName: string;
119
+ };
120
+ /**
121
+ * MultiBadgesCell - Ready-to-use cell component for multiple badges
122
+ *
123
+ * Uses tighter spacing (8px) between badges compared to standard DataGridCellContent (16px).
124
+ *
125
+ * @example
126
+ * renderCell: (params) => (
127
+ * <MultiBadgesCell
128
+ * badges={[
129
+ * { label: 'Active', color: 'success' },
130
+ * { label: 'New', color: 'info' }
131
+ * ]}
132
+ * />
133
+ * )
134
+ */
135
+ export interface MultiBadgesCellProps {
136
+ badges: Array<{
137
+ label: string;
138
+ color?: 'default' | 'error' | 'info' | 'success' | 'warning';
139
+ }>;
140
+ }
141
+ export declare const MultiBadgesCell: {
142
+ ({ badges }: MultiBadgesCellProps): import("react/jsx-runtime").JSX.Element;
143
+ displayName: string;
144
+ };
@@ -0,0 +1,57 @@
1
+ import { GridFilterPanel as MuiGridFilterPanel } from '@mui/x-data-grid';
2
+ import type React from 'react';
3
+ import { NeoSelect } from './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 NeoDataGridFilterPanelAddIcon: {
10
+ (): import("react/jsx-runtime").JSX.Element;
11
+ displayName: string;
12
+ };
13
+ export declare const NeoDataGridFilterPanelDeleteIcon: {
14
+ (): import("react/jsx-runtime").JSX.Element;
15
+ displayName: string;
16
+ };
17
+ export declare const NeoDataGridFilterPanelRemoveAllIcon: {
18
+ (): import("react/jsx-runtime").JSX.Element;
19
+ displayName: string;
20
+ };
21
+ /**
22
+ * NeoDataGridFilterPanel - MUI GridFilterPanel with Neo design system styling and Lucide icons
23
+ *
24
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4594-163847
25
+ *
26
+ * A styled version of MUI's GridFilterPanel that applies Neo design tokens.
27
+ * The per-row delete icon uses Lucide Trash2 internally.
28
+ *
29
+ * For footer button icons ("Add filter" and "Remove all"), you must also pass the icon components
30
+ * to the DataGrid's slots prop.
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * import {
35
+ * NeoDataGridFilterPanel,
36
+ * FilterPanelAddIcon,
37
+ * FilterPanelDeleteIcon,
38
+ * FilterPanelRemoveAllIcon
39
+ * } from '@moderneinc/neo-styled-components'
40
+ *
41
+ * <DataGridPro
42
+ * rows={rows}
43
+ * columns={columns}
44
+ * slots={{
45
+ * filterPanel: NeoDataGridFilterPanel,
46
+ * filterPanelAddIcon: FilterPanelAddIcon,
47
+ * filterPanelDeleteIcon: FilterPanelDeleteIcon,
48
+ * filterPanelRemoveAllIcon: FilterPanelRemoveAllIcon,
49
+ * }}
50
+ * />
51
+ * ```
52
+ */
53
+ export { NeoSelect as NeoDataGridSelect };
54
+ export declare const NeoDataGridFilterPanel: {
55
+ (props: React.ComponentProps<typeof MuiGridFilterPanel>): import("react/jsx-runtime").JSX.Element;
56
+ displayName: string;
57
+ };
@@ -0,0 +1,32 @@
1
+ import { type DividerProps } from '@mui/material/Divider';
2
+ export interface NeoDividerProps extends DividerProps {
3
+ }
4
+ /**
5
+ * NeoDivider - 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
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8649
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * // In a menu
15
+ * <NeoMenu>
16
+ * <NeoMenuItem>Settings</NeoMenuItem>
17
+ * <NeoDivider />
18
+ * <NeoMenuItem>Sign out</NeoMenuItem>
19
+ * </NeoMenu>
20
+ *
21
+ * // In a card
22
+ * <Card>
23
+ * <CardHeader>Title</CardHeader>
24
+ * <NeoDivider />
25
+ * <CardContent>Content</CardContent>
26
+ * </Card>
27
+ * ```
28
+ */
29
+ export declare const NeoDivider: {
30
+ (props: NeoDividerProps): import("react/jsx-runtime").JSX.Element;
31
+ displayName: string;
32
+ };