@moderneinc/neo-styled-components 2.6.0 → 2.7.0-next.4bcf59
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/dist/Avatar/Avatar.d.ts +1 -1
- package/dist/ButtonTab/ButtonTab.d.ts +19 -0
- package/dist/ButtonTabGroup/ButtonTabGroup.d.ts +39 -0
- package/dist/DataGridFilterPanel/DataGridFilterPanel.d.ts +2 -2
- package/dist/Divider/Divider.d.ts +5 -5
- package/dist/Dropdown/Dropdown.d.ts +24 -0
- package/dist/DropdownMenu/DropdownMenu.d.ts +32 -0
- package/dist/DropdownMenuItem/DropdownMenuItem.d.ts +50 -0
- package/dist/GeneralAvatar/GeneralAvatar.d.ts +26 -0
- package/dist/ListItemButton/ListItemButton.d.ts +1 -1
- package/dist/MarketplaceCard/MarketplaceCard.d.ts +2 -2
- package/dist/MarketplaceLargeCard/MarketplaceLargeCard.d.ts +2 -2
- package/dist/NavigationAvatar/NavigationAvatar.d.ts +15 -0
- package/dist/StatusBanner/StatusBanner.d.ts +4 -4
- package/dist/index.d.ts +123 -90
- package/dist/index.esm.js +333 -222
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +345 -227
- package/dist/index.js.map +1 -1
- package/dist/utils/avatarColors.d.ts +7 -0
- package/dist/utils/focusRing.d.ts +3 -3
- package/package.json +3 -3
- package/dist/ButtonGroup/ButtonGroup.d.ts +0 -41
- package/dist/Menu/Menu.d.ts +0 -45
- package/dist/MenuItem/MenuItem.d.ts +0 -61
- package/dist/Select/Select.d.ts +0 -24
package/dist/Avatar/Avatar.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export interface NeoAvatarProps extends Omit<AvatarProps, 'variant'> {
|
|
|
16
16
|
/**
|
|
17
17
|
* NeoAvatar - User avatar component based on MUI Avatar
|
|
18
18
|
*
|
|
19
|
-
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=
|
|
19
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=9600-185
|
|
20
20
|
*
|
|
21
21
|
* Figma Props Mapping:
|
|
22
22
|
* - Figma Type "Initials" → variant="initials", size="small" (20px)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ToggleButtonProps as MuiToggleButtonProps } from '@mui/material/ToggleButton';
|
|
2
|
+
export interface NeoButtonTabProps extends Omit<MuiToggleButtonProps, 'color'> {
|
|
3
|
+
/**
|
|
4
|
+
* Whether the tab is currently selected.
|
|
5
|
+
* When used inside NeoButtonGroup, this is computed automatically from the group's value.
|
|
6
|
+
* @default false
|
|
7
|
+
* @figma Current
|
|
8
|
+
*/
|
|
9
|
+
selected?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* NeoButtonTab - A tab-style toggle button for use within NeoButtonGroup
|
|
13
|
+
*
|
|
14
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=4106-11048
|
|
15
|
+
*/
|
|
16
|
+
export declare const NeoButtonTab: {
|
|
17
|
+
({ children, ...props }: NeoButtonTabProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
displayName: string;
|
|
19
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type ToggleButtonGroupProps as MuiToggleButtonGroupProps } from '@mui/material/ToggleButtonGroup';
|
|
2
|
+
type ButtonTabGroupSize = 'small' | 'medium';
|
|
3
|
+
export interface NeoButtonTabGroupProps extends Omit<MuiToggleButtonGroupProps, 'orientation' | 'color' | 'fullWidth'> {
|
|
4
|
+
/**
|
|
5
|
+
* The size of the button tab group
|
|
6
|
+
* @default "medium"
|
|
7
|
+
*
|
|
8
|
+
* @figma Size=Sm → small, Size=Md → medium
|
|
9
|
+
*/
|
|
10
|
+
size?: ButtonTabGroupSize;
|
|
11
|
+
/**
|
|
12
|
+
* Whether only one button can be selected at a time
|
|
13
|
+
* @default true
|
|
14
|
+
*/
|
|
15
|
+
exclusive?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* NeoButtonTabGroup - Button tab group container
|
|
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
|
+
* - Active button state → Controlled via value/onChange props
|
|
25
|
+
*
|
|
26
|
+
* Usage:
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <NeoButtonTabGroup value={selected} onChange={(_, val) => setSelected(val)} size="medium">
|
|
29
|
+
* <NeoButtonTab value="tab1">Tab 1</NeoButtonTab>
|
|
30
|
+
* <NeoButtonTab value="tab2">Tab 2</NeoButtonTab>
|
|
31
|
+
* <NeoButtonTab value="tab3">Tab 3</NeoButtonTab>
|
|
32
|
+
* </NeoButtonTabGroup>
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const NeoButtonTabGroup: {
|
|
36
|
+
({ size, exclusive, ...props }: NeoButtonTabGroupProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
displayName: string;
|
|
38
|
+
};
|
|
39
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { GridFilterPanel as MuiGridFilterPanel } from '@mui/x-data-grid';
|
|
2
2
|
import type React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { NeoDropdown } from '../Dropdown/Dropdown';
|
|
4
4
|
export type { GridFilterItem as FilterItem, GridFilterOperator as FilterOperator, } from '@mui/x-data-grid';
|
|
5
5
|
/**
|
|
6
6
|
* Icon components for DataGrid filter panel slots
|
|
@@ -50,7 +50,7 @@ export declare const NeoDataGridFilterPanelRemoveAllIcon: {
|
|
|
50
50
|
* />
|
|
51
51
|
* ```
|
|
52
52
|
*/
|
|
53
|
-
export {
|
|
53
|
+
export { NeoDropdown as NeoDataGridSelect };
|
|
54
54
|
export declare const NeoDataGridFilterPanel: {
|
|
55
55
|
(props: React.ComponentProps<typeof MuiGridFilterPanel>): import("react/jsx-runtime").JSX.Element;
|
|
56
56
|
displayName: string;
|
|
@@ -7,16 +7,16 @@ export interface NeoDividerProps extends DividerProps {
|
|
|
7
7
|
* Generic divider component that can be used in menus, lists, cards, or any layout
|
|
8
8
|
* that needs visual separation between content sections.
|
|
9
9
|
*
|
|
10
|
-
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=
|
|
10
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4633-39807
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* ```tsx
|
|
14
14
|
* // In a menu
|
|
15
|
-
* <
|
|
16
|
-
* <
|
|
15
|
+
* <NeoDropdownMenu>
|
|
16
|
+
* <NeoDropdownMenuItem>Settings</NeoDropdownMenuItem>
|
|
17
17
|
* <NeoDivider />
|
|
18
|
-
* <
|
|
19
|
-
* </
|
|
18
|
+
* <NeoDropdownMenuItem>Sign out</NeoDropdownMenuItem>
|
|
19
|
+
* </NeoDropdownMenu>
|
|
20
20
|
*
|
|
21
21
|
* // In a card
|
|
22
22
|
* <Card>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type SelectProps as MuiSelectProps } from '@mui/material/Select';
|
|
2
|
+
import { NeoDropdownMenuItem } from '../DropdownMenuItem/DropdownMenuItem';
|
|
3
|
+
export type NeoDropdownProps = MuiSelectProps;
|
|
4
|
+
/**
|
|
5
|
+
* NeoDropdown - Dropdown select component with Neo design system styling
|
|
6
|
+
*
|
|
7
|
+
* A styled version of MUI's Select that uses Neo design tokens, Lucide ChevronDown icon,
|
|
8
|
+
* and NeoDropdownMenu/NeoDropdownMenuItem for the dropdown list.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```tsx
|
|
12
|
+
* import { NeoDropdown, NeoDropdownOption } from '@moderneinc/neo-styled-components'
|
|
13
|
+
*
|
|
14
|
+
* <NeoDropdown value={value} onChange={handleChange}>
|
|
15
|
+
* <NeoDropdownOption value="option1">Option 1</NeoDropdownOption>
|
|
16
|
+
* <NeoDropdownOption value="option2">Option 2</NeoDropdownOption>
|
|
17
|
+
* </NeoDropdown>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const NeoDropdown: {
|
|
21
|
+
(props: NeoDropdownProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
displayName: string;
|
|
23
|
+
};
|
|
24
|
+
export { NeoDropdownMenuItem as NeoDropdownOption };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type MenuProps } from '@mui/material/Menu';
|
|
2
|
+
export interface NeoDropdownMenuProps extends MenuProps {
|
|
3
|
+
/**
|
|
4
|
+
* Menu content (typically NeoDropdownMenuItem components)
|
|
5
|
+
*/
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* NeoDropdownMenu - Dropdown menu component based on MUI Menu
|
|
10
|
+
*
|
|
11
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=11141-4980
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
|
|
16
|
+
* const open = Boolean(anchorEl);
|
|
17
|
+
*
|
|
18
|
+
* <Button onClick={(e) => setAnchorEl(e.currentTarget)}>Open Menu</Button>
|
|
19
|
+
* <NeoDropdownMenu
|
|
20
|
+
* open={open}
|
|
21
|
+
* anchorEl={anchorEl}
|
|
22
|
+
* onClose={() => setAnchorEl(null)}
|
|
23
|
+
* >
|
|
24
|
+
* <NeoDropdownMenuItem icon={<Icon />} shortcut="⌘+P">View profile</NeoDropdownMenuItem>
|
|
25
|
+
* <NeoDropdownMenuItem>Settings</NeoDropdownMenuItem>
|
|
26
|
+
* </NeoDropdownMenu>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare const NeoDropdownMenu: {
|
|
30
|
+
({ children, ...props }: NeoDropdownMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
displayName: string;
|
|
32
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type MenuItemProps } from '@mui/material/MenuItem';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export interface NeoDropdownMenuItemProps extends MenuItemProps {
|
|
4
|
+
/**
|
|
5
|
+
* Optional icon to display on the left side
|
|
6
|
+
* Note: Cannot be directly mapped from Figma (ReactNode)
|
|
7
|
+
*/
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Optional keyboard shortcut to display on the right side
|
|
11
|
+
* @example "⌘+P" or "Ctrl+K"
|
|
12
|
+
* Note: Cannot be directly mapped from Figma (ReactNode/string)
|
|
13
|
+
*/
|
|
14
|
+
shortcut?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Optional secondary text to display next to the primary label
|
|
17
|
+
* @example "@username" or supporting text
|
|
18
|
+
* Note: Cannot be directly mapped from Figma (ReactNode/string)
|
|
19
|
+
*/
|
|
20
|
+
secondaryText?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Menu item content (text label)
|
|
23
|
+
* @figma children mapped from Figma layer content
|
|
24
|
+
*/
|
|
25
|
+
children?: ReactNode;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* NeoDropdownMenuItem - Dropdown menu item component based on MUI MenuItem
|
|
29
|
+
*
|
|
30
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8584
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* // With icon and shortcut
|
|
35
|
+
* <NeoDropdownMenuItem icon={<UserIcon />} shortcut="⌘+P">
|
|
36
|
+
* View profile
|
|
37
|
+
* </NeoDropdownMenuItem>
|
|
38
|
+
*
|
|
39
|
+
* // With secondary text (user list pattern from Figma node 4305:41844)
|
|
40
|
+
* <NeoDropdownMenuItem secondaryText="@phoenix">Phoenix Baker</NeoDropdownMenuItem>
|
|
41
|
+
* <NeoDropdownMenuItem secondaryText="@olivia">Olivia Rhye</NeoDropdownMenuItem>
|
|
42
|
+
*
|
|
43
|
+
* // Disabled state
|
|
44
|
+
* <NeoDropdownMenuItem disabled>Disabled item</NeoDropdownMenuItem>
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare const NeoDropdownMenuItem: {
|
|
48
|
+
({ icon, shortcut, secondaryText, children, ...props }: NeoDropdownMenuItemProps): import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
displayName: string;
|
|
50
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type AvatarProps } from '@mui/material/Avatar';
|
|
2
|
+
type AvatarSize = 'small' | 'medium';
|
|
3
|
+
export interface NeoGeneralAvatarProps extends Omit<AvatarProps, 'variant'> {
|
|
4
|
+
/**
|
|
5
|
+
* The size of the avatar
|
|
6
|
+
* @default "medium"
|
|
7
|
+
* @figma Size
|
|
8
|
+
*/
|
|
9
|
+
size?: AvatarSize;
|
|
10
|
+
/**
|
|
11
|
+
* Color index for initials background (1-7). Use 0 or omit for image mode.
|
|
12
|
+
* @default 0
|
|
13
|
+
* @figma Color Index
|
|
14
|
+
*/
|
|
15
|
+
colorIndex?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* NeoGeneralAvatar - Avatar with image or colored initials display
|
|
19
|
+
*
|
|
20
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=9600-185
|
|
21
|
+
*/
|
|
22
|
+
export declare const NeoGeneralAvatar: {
|
|
23
|
+
({ size, colorIndex, children, ...props }: NeoGeneralAvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
displayName: string;
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
@@ -48,7 +48,7 @@ export interface NeoListItemButtonProps extends ListItemButtonProps {
|
|
|
48
48
|
* - showIcon → Conditional rendering of ListItemIcon child
|
|
49
49
|
*
|
|
50
50
|
* Design Tokens Used:
|
|
51
|
-
* - semanticColors.
|
|
51
|
+
* - semanticColors.buttons.primary.default (#2f42ff) - Active border
|
|
52
52
|
* - semanticColors.border.primary (#d1d5db) - Default/disabled border
|
|
53
53
|
* - semanticColors.icons.default (#1f2937) - Active icon color
|
|
54
54
|
* - semanticColors.icons.disabled (#d1d5db) - Deselected/disabled icon color
|
|
@@ -68,8 +68,8 @@ export interface NeoMarketplaceCardProps extends Omit<CardProps, 'children' | 't
|
|
|
68
68
|
* Design Tokens Used:
|
|
69
69
|
* - semanticColors.surfaces.card (#FFFFFF) - Default card background
|
|
70
70
|
* - semanticColors.status.info.light (#f2f3ff) - Active/focused card background
|
|
71
|
-
* - semanticColors.border.
|
|
72
|
-
* - semanticColors.
|
|
71
|
+
* - semanticColors.border.primary (#d1d5db) - Default border
|
|
72
|
+
* - semanticColors.buttons.primary.default (#2f42ff) - Active/focused border
|
|
73
73
|
* - shadows.focusWhite1 - Inner white focus ring (2px spread)
|
|
74
74
|
* - shadows.focusBlue2 - Outer blue focus ring (4px spread)
|
|
75
75
|
* - colors.grey[800] (#1F2937) - Text color
|
|
@@ -77,8 +77,8 @@ export interface NeoMarketplaceLargeCardProps extends Omit<CardProps, 'children'
|
|
|
77
77
|
* Design Tokens Used:
|
|
78
78
|
* - semanticColors.surfaces.card (#ffffff) - Light theme background
|
|
79
79
|
* - colors.grey[800] (#1f2937) - Dark theme background
|
|
80
|
-
* - semanticColors.border.
|
|
81
|
-
* - semanticColors.
|
|
80
|
+
* - semanticColors.border.primary (#d1d5db) - Default border (50% opacity on dark)
|
|
81
|
+
* - semanticColors.buttons.primary.default (#2f42ff) - Active/focused border (light theme)
|
|
82
82
|
* - colors.digitalGreen[300] (#88fe9b) - Active/focused border (dark theme)
|
|
83
83
|
* - borderRadius.xS (4px) - Corner radius
|
|
84
84
|
* - shadows.focusWhite1 + shadows.focusBlue2 - Focus ring
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type NeoGeneralAvatarProps } from '../GeneralAvatar/GeneralAvatar';
|
|
2
|
+
export interface NeoNavigationAvatarProps extends Omit<NeoGeneralAvatarProps, 'size'> {
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* NeoNavigationAvatar - Compact avatar for navigation contexts
|
|
6
|
+
*
|
|
7
|
+
* Wraps NeoGeneralAvatar (size="small") in a 44px container with 6px padding,
|
|
8
|
+
* providing a larger interactive area for navigation UI.
|
|
9
|
+
*
|
|
10
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=11325-102
|
|
11
|
+
*/
|
|
12
|
+
export declare const NeoNavigationAvatar: {
|
|
13
|
+
({ colorIndex, children, ...props }: NeoNavigationAvatarProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
@@ -38,10 +38,10 @@ export interface NeoStatusBannerProps extends Omit<AlertProps, 'severity' | 'var
|
|
|
38
38
|
* - Mode (Light|Dark) → variant ('outlined'|'filled')
|
|
39
39
|
*
|
|
40
40
|
* Design Tokens Used:
|
|
41
|
-
* - status.success.light, status.success.
|
|
42
|
-
* - status.error.light, status.error.
|
|
43
|
-
* - status.neutral.light, status.neutral.
|
|
44
|
-
* - status.info.light, status.info.
|
|
41
|
+
* - status.success.light, status.success.default
|
|
42
|
+
* - status.error.light, status.error.default
|
|
43
|
+
* - status.neutral.light, status.neutral.default
|
|
44
|
+
* - status.info.light, status.info.default
|
|
45
45
|
* - typography.tooltip, typography.bodySecondary
|
|
46
46
|
* - grey[800]
|
|
47
47
|
* - fontSize.default, fontSize.sm
|