@moderneinc/neo-styled-components 2.5.0 → 2.6.0-next.162b98
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/ActivityHeader/ActivityHeader.d.ts +1 -0
- package/dist/Avatar/Avatar.d.ts +2 -1
- package/dist/Badge/Badge.d.ts +3 -3
- package/dist/Banner/Banner.d.ts +22 -17
- package/dist/Button/Button.d.ts +22 -10
- package/dist/ButtonTab/ButtonTab.d.ts +19 -0
- package/dist/ButtonTabGroup/ButtonTabGroup.d.ts +39 -0
- package/dist/CodeSnippet/CodeSnippet.d.ts +6 -6
- package/dist/FilterChip/FilterChip.d.ts +42 -0
- package/dist/Footer/Footer.d.ts +6 -1
- package/dist/GeneralAvatar/GeneralAvatar.d.ts +26 -0
- package/dist/IconWrapper/IconWrapper.d.ts +23 -0
- package/dist/ListItemButton/ListItemButton.d.ts +6 -5
- package/dist/MarketplaceCard/MarketplaceCard.d.ts +9 -8
- package/dist/MarketplaceLargeCard/MarketplaceLargeCard.d.ts +91 -0
- package/dist/MenuItem/MenuItem.d.ts +4 -2
- package/dist/NavigationAvatar/NavigationAvatar.d.ts +15 -0
- package/dist/NavigationItem/NavigationItem.d.ts +36 -0
- package/dist/SearchChip/SearchChip.d.ts +19 -0
- package/dist/StatusBanner/StatusBanner.d.ts +14 -10
- package/dist/Tabs/Tabs.d.ts +5 -7
- package/dist/Tag/Tag.d.ts +9 -8
- package/dist/Toast/Toast.d.ts +19 -11
- package/dist/Tooltip/Tooltip.d.ts +6 -6
- package/dist/Tree/Tree.d.ts +31 -15
- package/dist/index.d.ts +351 -118
- package/dist/index.esm.js +1339 -414
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1366 -431
- package/dist/index.js.map +1 -1
- package/dist/utils/avatarColors.d.ts +7 -0
- package/dist/utils/focusRing.d.ts +10 -0
- package/package.json +27 -5
- package/dist/ButtonGroup/ButtonGroup.d.ts +0 -42
- package/dist/LargeCard/LargeCard.d.ts +0 -26
|
@@ -34,6 +34,7 @@ export interface NeoActivityHeaderProps {
|
|
|
34
34
|
*
|
|
35
35
|
* **Figma Props Mapping:**
|
|
36
36
|
* - `Size` (Figma) → `size` (React): Height variant matching DataGrid sizes
|
|
37
|
+
* - `Type` (Figma) → `color` (React): Activity type (Commit Job → commitJob, Recipe Run → recipeRun, Visualization → visualization)
|
|
37
38
|
*
|
|
38
39
|
* **Design Tokens:**
|
|
39
40
|
* - `semanticColors.activity.commitJob` - Blue dot for commit job events (#2F42FF)
|
package/dist/Avatar/Avatar.d.ts
CHANGED
|
@@ -20,8 +20,9 @@ export interface NeoAvatarProps extends Omit<AvatarProps, 'variant'> {
|
|
|
20
20
|
*
|
|
21
21
|
* Figma Props Mapping:
|
|
22
22
|
* - Figma Type "Initials" → variant="initials", size="small" (20px)
|
|
23
|
-
* - Figma Type "Small" → variant="circular", size="small" (
|
|
23
|
+
* - Figma Type "Small" → variant="circular", size="small" (32px with image)
|
|
24
24
|
* - Figma Type "Medium" → variant="circular", size="medium" (44px white container with image)
|
|
25
|
+
* - State: Focus → CSS :focus-visible ring (2px white inner + 4px blue outer)
|
|
25
26
|
* - State: Hover (tooltip) → Wrap component with MUI Tooltip
|
|
26
27
|
*
|
|
27
28
|
* Usage:
|
package/dist/Badge/Badge.d.ts
CHANGED
|
@@ -12,9 +12,9 @@ export interface NeoBadgeProps extends Omit<ChipProps, 'variant' | 'size'> {
|
|
|
12
12
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system-w--correct-set-of-tokens?node-id=4091-17230
|
|
13
13
|
*
|
|
14
14
|
* Figma Props Mapping:
|
|
15
|
-
* -
|
|
16
|
-
* -
|
|
17
|
-
* -
|
|
15
|
+
* - Intent (Neutral|Error|Warning|Success|Info) → color (default|error|warning|success|info)
|
|
16
|
+
* - LeadingIcon → icon prop (pass React element)
|
|
17
|
+
* - TrailingIcon → deleteIcon prop (pass React element)
|
|
18
18
|
* - Label → label prop
|
|
19
19
|
*/
|
|
20
20
|
export declare const NeoBadge: {
|
package/dist/Banner/Banner.d.ts
CHANGED
|
@@ -2,36 +2,41 @@ import { type AlertProps } from '@mui/material/Alert';
|
|
|
2
2
|
import type { ReactNode } from 'react';
|
|
3
3
|
export interface NeoBannerProps extends Omit<AlertProps, 'variant' | 'severity' | 'color'> {
|
|
4
4
|
/**
|
|
5
|
-
* The
|
|
6
|
-
* @default "
|
|
5
|
+
* The intent/color variant of the banner
|
|
6
|
+
* @default "info"
|
|
7
7
|
*
|
|
8
|
-
* @
|
|
8
|
+
* @figma Intention (Info|Success|Error|Warning|Neutral)
|
|
9
9
|
*/
|
|
10
|
-
variant?: '
|
|
10
|
+
variant?: 'info' | 'success' | 'error' | 'warning' | 'neutral' | 'dark' | 'light';
|
|
11
11
|
/**
|
|
12
|
-
* The
|
|
12
|
+
* The visual type: outlined (light bg) or filled (solid bg)
|
|
13
|
+
* Only applies to intent variants. Legacy variants (dark, light) ignore this prop.
|
|
14
|
+
* @default "outlined"
|
|
13
15
|
*
|
|
14
|
-
* @
|
|
16
|
+
* @figma Type (Outlined|Filled)
|
|
17
|
+
*/
|
|
18
|
+
type?: 'outlined' | 'filled';
|
|
19
|
+
/**
|
|
20
|
+
* The message text to display
|
|
15
21
|
*/
|
|
16
22
|
message: string;
|
|
17
23
|
/**
|
|
18
24
|
* Horizontal alignment of the message content
|
|
19
25
|
* @default "left"
|
|
20
26
|
*
|
|
21
|
-
* @
|
|
27
|
+
* @figma Message Position (Left|Center)
|
|
22
28
|
*/
|
|
23
29
|
messagePosition?: 'left' | 'center';
|
|
24
30
|
/**
|
|
25
|
-
* Optional link text to display after the message
|
|
26
|
-
*
|
|
27
|
-
* @figmaPropMapping link (boolean) → linkText (string)
|
|
31
|
+
* Optional link text to display after the message.
|
|
32
|
+
* In Figma, "Show Link" is a boolean toggle; when enabled, this string is rendered.
|
|
28
33
|
*/
|
|
29
34
|
linkText?: string;
|
|
30
35
|
/**
|
|
31
36
|
* Whether to show the close button
|
|
32
37
|
* @default true
|
|
33
38
|
*
|
|
34
|
-
* @
|
|
39
|
+
* @figma Dismissible (boolean)
|
|
35
40
|
*/
|
|
36
41
|
showClose?: boolean;
|
|
37
42
|
/**
|
|
@@ -54,13 +59,13 @@ export interface NeoBannerProps extends Omit<AlertProps, 'variant' | 'severity'
|
|
|
54
59
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4170-2158
|
|
55
60
|
*
|
|
56
61
|
* Figma Props Mapping:
|
|
57
|
-
* -
|
|
58
|
-
* -
|
|
59
|
-
* -
|
|
60
|
-
* -
|
|
61
|
-
* -
|
|
62
|
+
* - Intention (Info|Success|Error|Warning|Neutral) → variant (info|success|error|warning|neutral)
|
|
63
|
+
* - Type (Outlined|Filled) → type ('outlined'|'filled')
|
|
64
|
+
* - Message Position (Left|Center) → messagePosition ('left'|'center')
|
|
65
|
+
* - Dismissible (boolean) → showClose (boolean)
|
|
66
|
+
* - Show Link (boolean) → linkText presence (string when shown)
|
|
62
67
|
*/
|
|
63
68
|
export declare const NeoBanner: {
|
|
64
|
-
({ variant, message, messagePosition, linkText, showClose, icon, onClose, onLinkClick, ...props }: NeoBannerProps): import("react/jsx-runtime").JSX.Element;
|
|
69
|
+
({ variant, type, message, messagePosition, linkText, showClose, icon, onClose, onLinkClick, ...props }: NeoBannerProps): import("react/jsx-runtime").JSX.Element;
|
|
65
70
|
displayName: string;
|
|
66
71
|
};
|
package/dist/Button/Button.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import ButtonBase from '@mui/material/ButtonBase';
|
|
2
|
+
import React, { type ElementType, type ReactNode } from 'react';
|
|
3
3
|
declare module '@mui/material/ButtonBase' {
|
|
4
4
|
interface ButtonBasePropsVariantOverrides {
|
|
5
5
|
primary: true;
|
|
@@ -7,11 +7,12 @@ declare module '@mui/material/ButtonBase' {
|
|
|
7
7
|
destructive: true;
|
|
8
8
|
link: true;
|
|
9
9
|
linkColor: true;
|
|
10
|
+
tertiary: true;
|
|
10
11
|
}
|
|
11
12
|
}
|
|
12
|
-
type ButtonVariant = 'primary' | 'secondary' | 'destructive' | 'link' | 'linkColor';
|
|
13
|
+
type ButtonVariant = 'primary' | 'secondary' | 'destructive' | 'link' | 'linkColor' | 'tertiary';
|
|
13
14
|
type ButtonSize = 'small' | 'medium';
|
|
14
|
-
|
|
15
|
+
type NeoButtonOwnProps = {
|
|
15
16
|
/**
|
|
16
17
|
* The visual variant of the button
|
|
17
18
|
* @default "primary"
|
|
@@ -41,14 +42,25 @@ export interface NeoButtonProps extends Omit<ButtonBaseProps, 'children'> {
|
|
|
41
42
|
* URL to link to. When provided, the button renders as a link element.
|
|
42
43
|
*/
|
|
43
44
|
href?: string;
|
|
44
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Icon placed before the button label
|
|
47
|
+
*/
|
|
48
|
+
startIcon?: ReactNode;
|
|
49
|
+
/**
|
|
50
|
+
* Icon placed after the button label
|
|
51
|
+
*/
|
|
52
|
+
endIcon?: ReactNode;
|
|
53
|
+
};
|
|
54
|
+
export type NeoButtonProps<C extends ElementType = typeof ButtonBase> = NeoButtonOwnProps & Omit<React.ComponentPropsWithoutRef<C>, keyof NeoButtonOwnProps> & {
|
|
55
|
+
component?: C;
|
|
56
|
+
};
|
|
45
57
|
/**
|
|
46
58
|
* NeoButton - Text button component based on MUI ButtonBase
|
|
47
59
|
*
|
|
48
60
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4086-7590
|
|
49
61
|
*
|
|
50
62
|
* Figma Props Mapping:
|
|
51
|
-
* - Hierarchy (Primary|Secondary|Destructive|Link|Link Color) → variant prop
|
|
63
|
+
* - Hierarchy (Primary|Secondary|Destructive|Link|Link Color|Tertiary) → variant prop
|
|
52
64
|
* - Size (Small|Medium) → size prop
|
|
53
65
|
* - State=Disabled → disabled prop
|
|
54
66
|
* - State=Loading → loading prop
|
|
@@ -56,8 +68,8 @@ export interface NeoButtonProps extends Omit<ButtonBaseProps, 'children'> {
|
|
|
56
68
|
* - State=Pressed → CSS :active
|
|
57
69
|
* - State=Focused → CSS :focus-visible
|
|
58
70
|
*/
|
|
59
|
-
export declare
|
|
60
|
-
|
|
61
|
-
displayName: string;
|
|
62
|
-
}
|
|
71
|
+
export declare function NeoButton<C extends ElementType = typeof ButtonBase>({ variant, size, loading, children, disabled, startIcon, endIcon, ...rest }: NeoButtonProps<C>): import("react/jsx-runtime").JSX.Element;
|
|
72
|
+
export declare namespace NeoButton {
|
|
73
|
+
var displayName: string;
|
|
74
|
+
}
|
|
63
75
|
export {};
|
|
@@ -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 {};
|
|
@@ -7,20 +7,20 @@ declare module '@mui/material/ButtonBase' {
|
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
type CodeSnippetVariant = 'outlined' | 'filled';
|
|
10
|
-
type CodeSnippetSize = 'xs' | 'small' | 'large';
|
|
10
|
+
type CodeSnippetSize = 'xs' | 'small' | 'large' | 'inline';
|
|
11
11
|
export interface NeoCodeSnippetProps extends Omit<ButtonBaseProps, 'children'> {
|
|
12
12
|
/**
|
|
13
13
|
* The visual variant of the code snippet
|
|
14
14
|
* @default "outlined"
|
|
15
15
|
*
|
|
16
|
-
* @figma
|
|
16
|
+
* @figma Theme (Dark|Light)
|
|
17
17
|
*/
|
|
18
18
|
variant?: CodeSnippetVariant;
|
|
19
19
|
/**
|
|
20
20
|
* The size of the code snippet
|
|
21
21
|
* @default "small"
|
|
22
22
|
*
|
|
23
|
-
* @figma
|
|
23
|
+
* @figma Content (Single|Multi|Inline)
|
|
24
24
|
*/
|
|
25
25
|
size?: CodeSnippetSize;
|
|
26
26
|
/**
|
|
@@ -38,9 +38,9 @@ export interface NeoCodeSnippetProps extends Omit<ButtonBaseProps, 'children'> {
|
|
|
38
38
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4187-30353
|
|
39
39
|
*
|
|
40
40
|
* Figma Props Mapping:
|
|
41
|
-
* -
|
|
42
|
-
* -
|
|
43
|
-
* -
|
|
41
|
+
* - Theme (Dark|Light) → variant (outlined|filled)
|
|
42
|
+
* - Content (Single|Multi|Inline) → size (small|large|inline)
|
|
43
|
+
* - Show icon (boolean) → endIcon (ReactNode, unmappable)
|
|
44
44
|
* - Text content → children prop
|
|
45
45
|
*/
|
|
46
46
|
export declare const NeoCodeSnippet: {
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type ChipProps } from '@mui/material/Chip';
|
|
2
|
+
export interface NeoFilterChipProps extends Omit<ChipProps, 'variant' | 'color' | 'label'> {
|
|
3
|
+
/**
|
|
4
|
+
* The filter label text
|
|
5
|
+
*/
|
|
6
|
+
label: string;
|
|
7
|
+
/**
|
|
8
|
+
* Whether the filter has active selections
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
11
|
+
selected?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the filter dropdown is expanded
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
16
|
+
expanded?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Value text shown when selected (e.g. "Filter 1, Filter 2")
|
|
19
|
+
*/
|
|
20
|
+
selectedLabel?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Number of active filter selections (shown as badge when selected)
|
|
23
|
+
* @default 0
|
|
24
|
+
*/
|
|
25
|
+
count?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Handler for clearing the filter (shows X icon when provided and selected)
|
|
28
|
+
*/
|
|
29
|
+
onClear?: (e: React.MouseEvent) => void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* NeoFilterChip - Filter chip for filtering data, based on MUI Chip.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* <NeoFilterChip label="Status" selected selectedLabel="Active, Pending" count={2} onClear={handleClear} />
|
|
36
|
+
*
|
|
37
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=8257-239
|
|
38
|
+
*/
|
|
39
|
+
export declare const NeoFilterChip: {
|
|
40
|
+
({ label, selected, expanded, selectedLabel, count, onClear, onClick, ...props }: NeoFilterChipProps): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
displayName: string;
|
|
42
|
+
};
|
package/dist/Footer/Footer.d.ts
CHANGED
|
@@ -54,6 +54,11 @@ export interface NeoFooterProps {
|
|
|
54
54
|
* If not provided, will attempt to use DataGrid's pagination state
|
|
55
55
|
*/
|
|
56
56
|
hasNextPage?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Whether to show the selected row count on the left side (pagination variant)
|
|
59
|
+
* @default true
|
|
60
|
+
*/
|
|
61
|
+
showSelected?: boolean;
|
|
57
62
|
/**
|
|
58
63
|
* Custom content to render in the footer
|
|
59
64
|
*/
|
|
@@ -103,6 +108,6 @@ export interface NeoFooterProps {
|
|
|
103
108
|
* />
|
|
104
109
|
*/
|
|
105
110
|
export declare const NeoFooter: {
|
|
106
|
-
({ variant, showShadow, loading, resultCount, onLoadMore, hasMore, paginationInfo, onPreviousPage, onNextPage, hasPreviousPage, hasNextPage, children, }: NeoFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
111
|
+
({ variant, showShadow, loading, resultCount, onLoadMore, hasMore, paginationInfo, onPreviousPage, onNextPage, hasPreviousPage, hasNextPage, showSelected, children, }: NeoFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
107
112
|
displayName: string;
|
|
108
113
|
};
|
|
@@ -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 {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
export type IconWrapperSize = 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 72 | 80 | 96 | 128 | 160 | 192;
|
|
3
|
+
export interface NeoIconWrapperProps extends Omit<HTMLAttributes<HTMLDivElement>, 'color'> {
|
|
4
|
+
/**
|
|
5
|
+
* The size of the icon wrapper in pixels
|
|
6
|
+
* @figma Size (8px|12px|...|192px)
|
|
7
|
+
* @default 20
|
|
8
|
+
*/
|
|
9
|
+
size?: IconWrapperSize;
|
|
10
|
+
/**
|
|
11
|
+
* Icon element to render inside the wrapper
|
|
12
|
+
*/
|
|
13
|
+
children?: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* NeoIconWrapper - Flex-centered container that sizes icons
|
|
17
|
+
*
|
|
18
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4061-9955
|
|
19
|
+
*/
|
|
20
|
+
export declare const NeoIconWrapper: {
|
|
21
|
+
({ size, children, ...props }: NeoIconWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
displayName: string;
|
|
23
|
+
};
|
|
@@ -20,7 +20,7 @@ export interface NeoListItemButtonProps extends ListItemButtonProps {
|
|
|
20
20
|
* NeoListItemButton - Selectable list item with icon and text
|
|
21
21
|
*
|
|
22
22
|
* A selectable list item component that displays an optional icon with primary
|
|
23
|
-
* and secondary text. Supports active (selected), deselected, and disabled states.
|
|
23
|
+
* and secondary text. Supports active (selected), deselected, focus, and disabled states.
|
|
24
24
|
*
|
|
25
25
|
* Uses MUI's ListItemButton as base for proper accessibility and interaction.
|
|
26
26
|
* Compose with ListItemIcon and ListItemText for proper structure.
|
|
@@ -41,13 +41,14 @@ export interface NeoListItemButtonProps extends ListItemButtonProps {
|
|
|
41
41
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4925-3764
|
|
42
42
|
*
|
|
43
43
|
* Figma Props Mapping:
|
|
44
|
-
* -
|
|
45
|
-
* -
|
|
46
|
-
* -
|
|
44
|
+
* - state="active" → selected={true}
|
|
45
|
+
* - state="deselected" → selected={false}
|
|
46
|
+
* - state="focus" → focus-visible CSS state
|
|
47
|
+
* - state="disabled" → disabled={true}
|
|
47
48
|
* - showIcon → Conditional rendering of ListItemIcon child
|
|
48
49
|
*
|
|
49
50
|
* Design Tokens Used:
|
|
50
|
-
* - semanticColors.
|
|
51
|
+
* - semanticColors.buttons.primary.default (#2f42ff) - Active border
|
|
51
52
|
* - semanticColors.border.primary (#d1d5db) - Default/disabled border
|
|
52
53
|
* - semanticColors.icons.default (#1f2937) - Active icon color
|
|
53
54
|
* - semanticColors.icons.disabled (#d1d5db) - Deselected/disabled icon color
|
|
@@ -23,13 +23,13 @@ export interface NeoMarketplaceCardProps extends Omit<CardProps, 'children' | 't
|
|
|
23
23
|
/**
|
|
24
24
|
* Whether the card is in selected/active state
|
|
25
25
|
* @default false
|
|
26
|
-
* @figma
|
|
26
|
+
* @figma State (Active)
|
|
27
27
|
*/
|
|
28
28
|
selected?: boolean;
|
|
29
29
|
/**
|
|
30
30
|
* Whether the card is disabled
|
|
31
31
|
* @default false
|
|
32
|
-
* @figma
|
|
32
|
+
* @figma State (Disabled)
|
|
33
33
|
*/
|
|
34
34
|
disabled?: boolean;
|
|
35
35
|
/**
|
|
@@ -59,16 +59,17 @@ export interface NeoMarketplaceCardProps extends Omit<CardProps, 'children' | 't
|
|
|
59
59
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4286-1635&t=Bo58EpFmg6ILJtmv-11
|
|
60
60
|
*
|
|
61
61
|
* Figma Props Mapping:
|
|
62
|
-
* -
|
|
63
|
-
* -
|
|
64
|
-
* -
|
|
65
|
-
* -
|
|
62
|
+
* - State="Active" → selected={true}
|
|
63
|
+
* - State="Disabled" → disabled={true}
|
|
64
|
+
* - State="Focused" → CSS :focus-visible state (not a prop)
|
|
65
|
+
* - State="Hover" → CSS :hover state (not a prop)
|
|
66
|
+
* - State="Default" → Base state (no props)
|
|
66
67
|
*
|
|
67
68
|
* Design Tokens Used:
|
|
68
69
|
* - semanticColors.surfaces.card (#FFFFFF) - Default card background
|
|
69
70
|
* - semanticColors.status.info.light (#f2f3ff) - Active/focused card background
|
|
70
|
-
* - semanticColors.border.
|
|
71
|
-
* - semanticColors.
|
|
71
|
+
* - semanticColors.border.primary (#d1d5db) - Default border
|
|
72
|
+
* - semanticColors.buttons.primary.default (#2f42ff) - Active/focused border
|
|
72
73
|
* - shadows.focusWhite1 - Inner white focus ring (2px spread)
|
|
73
74
|
* - shadows.focusBlue2 - Outer blue focus ring (4px spread)
|
|
74
75
|
* - colors.grey[800] (#1F2937) - Text color
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type CardProps } from '@mui/material/Card';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
type LargeCardState = 'default' | 'active' | 'disabled' | 'focused';
|
|
4
|
+
type LargeCardTheme = 'light' | 'dark';
|
|
5
|
+
export interface NeoMarketplaceLargeCardProps extends Omit<CardProps, 'children' | 'title'> {
|
|
6
|
+
/**
|
|
7
|
+
* The visual state of the card
|
|
8
|
+
* @default "default"
|
|
9
|
+
* @figma State
|
|
10
|
+
*/
|
|
11
|
+
state?: LargeCardState;
|
|
12
|
+
/**
|
|
13
|
+
* The theme variant of the card
|
|
14
|
+
* @default "light"
|
|
15
|
+
* @figma Theme
|
|
16
|
+
*/
|
|
17
|
+
cardTheme?: LargeCardTheme;
|
|
18
|
+
/**
|
|
19
|
+
* Whether to show the icon
|
|
20
|
+
* @default true
|
|
21
|
+
* @figma Show Icon
|
|
22
|
+
*/
|
|
23
|
+
showIcon?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Whether to show the gel brand icon
|
|
26
|
+
* @default true
|
|
27
|
+
* @figma Show Gel
|
|
28
|
+
*/
|
|
29
|
+
showGel?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Whether to show the button area
|
|
32
|
+
* @default true
|
|
33
|
+
* @figma Show Buttons
|
|
34
|
+
*/
|
|
35
|
+
showButtons?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Icon element to display in the header row (rendered at 20x20)
|
|
38
|
+
*/
|
|
39
|
+
icon?: ReactNode;
|
|
40
|
+
/**
|
|
41
|
+
* Gel/brand icon to display in the header row (rendered at 20x20)
|
|
42
|
+
*/
|
|
43
|
+
gel?: ReactNode;
|
|
44
|
+
/**
|
|
45
|
+
* Title text displayed inline in the header row with icon and gel
|
|
46
|
+
*/
|
|
47
|
+
title?: ReactNode;
|
|
48
|
+
/**
|
|
49
|
+
* Description text displayed below the header row
|
|
50
|
+
*/
|
|
51
|
+
children?: ReactNode;
|
|
52
|
+
/**
|
|
53
|
+
* Button/action elements for the footer row
|
|
54
|
+
*/
|
|
55
|
+
actions?: ReactNode;
|
|
56
|
+
/**
|
|
57
|
+
* Click handler for the card
|
|
58
|
+
*/
|
|
59
|
+
onClick?: () => void;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* NeoMarketplaceLargeCard - A large marketplace card with state and theme variants
|
|
63
|
+
*
|
|
64
|
+
* A 340x162px card with optional icon, gel brand icon, title, description, and action buttons.
|
|
65
|
+
* Icon, gel, and title display inline in a header row.
|
|
66
|
+
* Supports 4 states (default, active, disabled, focused) and 2 themes (light, dark).
|
|
67
|
+
*
|
|
68
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=5925-11
|
|
69
|
+
*
|
|
70
|
+
* Figma Props Mapping:
|
|
71
|
+
* - State → state (Default/Active/Disabled/Focused)
|
|
72
|
+
* - Theme → cardTheme (Dark/Light)
|
|
73
|
+
* - Show Icon → showIcon
|
|
74
|
+
* - Show Gel → showGel
|
|
75
|
+
* - Show Buttons → showButtons
|
|
76
|
+
*
|
|
77
|
+
* Design Tokens Used:
|
|
78
|
+
* - semanticColors.surfaces.card (#ffffff) - Light theme background
|
|
79
|
+
* - colors.grey[800] (#1f2937) - Dark theme background
|
|
80
|
+
* - semanticColors.border.primary (#d1d5db) - Default border (50% opacity on dark)
|
|
81
|
+
* - semanticColors.buttons.primary.default (#2f42ff) - Active/focused border (light theme)
|
|
82
|
+
* - colors.digitalGreen[300] (#88fe9b) - Active/focused border (dark theme)
|
|
83
|
+
* - borderRadius.xS (4px) - Corner radius
|
|
84
|
+
* - shadows.focusWhite1 + shadows.focusBlue2 - Focus ring
|
|
85
|
+
* - shadows.card - Active state shadow
|
|
86
|
+
*/
|
|
87
|
+
export declare const NeoMarketplaceLargeCard: {
|
|
88
|
+
({ state, cardTheme, showIcon, showGel, showButtons, icon, gel, title, children, actions, onClick, ...props }: NeoMarketplaceLargeCardProps): import("react/jsx-runtime").JSX.Element;
|
|
89
|
+
displayName: string;
|
|
90
|
+
};
|
|
91
|
+
export {};
|
|
@@ -30,9 +30,11 @@ export interface NeoMenuItemProps extends MenuItemProps {
|
|
|
30
30
|
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8649
|
|
31
31
|
*
|
|
32
32
|
* Figma Props Mapping:
|
|
33
|
+
* - Figma "Dropdown - Menu" component uses Type (Avatar|Button|Icon) and Open (True|False)
|
|
34
|
+
* to control the menu trigger. NeoMenuItem is the individual item inside the menu.
|
|
33
35
|
* - Text label → children prop (mapped via figma.children)
|
|
34
|
-
* -
|
|
35
|
-
* -
|
|
36
|
+
* - selected → selected prop (React-controlled)
|
|
37
|
+
* - disabled → disabled prop (React-controlled)
|
|
36
38
|
* - Hover state → CSS :hover (not mapped)
|
|
37
39
|
* - Icon slot → icon prop (not mappable - ReactNode)
|
|
38
40
|
* - Secondary text → secondaryText prop (not mappable - ReactNode/string)
|
|
@@ -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
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type ButtonBaseProps } from '@mui/material/ButtonBase';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export interface NeoNavigationItemProps extends Omit<ButtonBaseProps, 'children'> {
|
|
4
|
+
/**
|
|
5
|
+
* Icon element to display
|
|
6
|
+
*/
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Text label below the icon
|
|
10
|
+
*/
|
|
11
|
+
label?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the item is selected/active
|
|
14
|
+
* @figma State (Selected)
|
|
15
|
+
* @default false
|
|
16
|
+
*/
|
|
17
|
+
selected?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Optional tag badge content (e.g., count)
|
|
20
|
+
* @figma Tag
|
|
21
|
+
*/
|
|
22
|
+
tag?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Additional content
|
|
25
|
+
*/
|
|
26
|
+
children?: ReactNode;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* NeoNavigationItem - Vertical navigation item with icon, label, and optional tag
|
|
30
|
+
*
|
|
31
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=8455-6120
|
|
32
|
+
*/
|
|
33
|
+
export declare const NeoNavigationItem: {
|
|
34
|
+
({ icon, label, selected, tag, children, ...props }: NeoNavigationItemProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
displayName: string;
|
|
36
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type InputBaseProps } from '@mui/material/InputBase';
|
|
2
|
+
export interface NeoSearchChipProps extends Omit<InputBaseProps, 'startAdornment' | 'endAdornment' | 'type'> {
|
|
3
|
+
/**
|
|
4
|
+
* Handler for clearing the search value (shows X icon when provided and value is non-empty)
|
|
5
|
+
*/
|
|
6
|
+
onClear?: () => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* NeoSearchChip - Pill-shaped search input for inline search functionality.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* <NeoSearchChip placeholder="Search titles" value={query} onChange={handleChange} onClear={handleClear} />
|
|
13
|
+
*
|
|
14
|
+
* @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC?node-id=8542-921
|
|
15
|
+
*/
|
|
16
|
+
export declare const NeoSearchChip: {
|
|
17
|
+
({ onClear, value, ...props }: NeoSearchChipProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
displayName: string;
|
|
19
|
+
};
|