@moderneinc/neo-styled-components 2.6.0 → 2.7.0

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.
@@ -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 visual style variant of the banner
6
- * @default "light"
5
+ * The intent/color variant of the banner
6
+ * @default "info"
7
7
  *
8
- * @figmaPropMapping color (Dark|Light|Success|Error|Warning) → variant
8
+ * @figma Intention (Info|Success|Error|Warning|Neutral)
9
9
  */
10
- variant?: 'dark' | 'light' | 'success' | 'error' | 'warning';
10
+ variant?: 'info' | 'success' | 'error' | 'warning' | 'neutral' | 'dark' | 'light';
11
11
  /**
12
- * The message text to display
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
- * @figmaPropMapping {Message} → message
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
- * @figmaPropMapping messagePosition (Left|Center) → messagePosition
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
- * @figmaPropMapping closeIcon → showClose
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
- * - 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
+ * - 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
  };
@@ -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 {};
@@ -20,7 +20,7 @@ export interface NeoCodeSnippetProps extends Omit<ButtonBaseProps, 'children'> {
20
20
  * The size of the code snippet
21
21
  * @default "small"
22
22
  *
23
- * @figma Size (Single line|multiline|inline)
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
- * - Color (Light|Dark) → variant (outlined|filled)
42
- * - size (Single line|multiline|inline) → size prop + auto-detected multiline
43
- * - Copy button → endIcon (ReactNode)
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,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.border.tabActive (#2f42ff) - Active border
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.card (#d1d5db) - Default border
72
- * - semanticColors.border.tabActive (#2f42ff) - Active/focused border
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.card (#d1d5db) - Default border (50% opacity on dark)
81
- * - semanticColors.border.tabActive (#2f42ff) - Active/focused border (light theme)
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
+ };
@@ -7,13 +7,15 @@ export interface NeoStatusBannerProps extends Omit<AlertProps, 'severity' | 'var
7
7
  /**
8
8
  * The severity level of the status banner
9
9
  * @default "success"
10
- * @figma Intent
10
+ *
11
+ * @figma Intent (Success|Error|Info|Offline|Warning)
11
12
  */
12
- severity?: 'success' | 'error' | 'neutral' | 'info';
13
+ severity?: 'success' | 'error' | 'neutral' | 'info' | 'warning';
13
14
  /**
14
15
  * The visual variant style
15
16
  * @default "outlined"
16
- * @figma Theme
17
+ *
18
+ * @figma Type (Outlined|Filled)
17
19
  */
18
20
  variant?: 'outlined' | 'filled';
19
21
  /**
@@ -28,20 +30,21 @@ export interface NeoStatusBannerProps extends Omit<AlertProps, 'severity' | 'var
28
30
  /**
29
31
  * NeoStatusBanner - Status banner component for displaying system status messages
30
32
  *
31
- * Displays status information with different severity levels (success, error, info, neutral) and
32
- * visual modes (outlined for light backgrounds, filled for emphasis).
33
+ * Displays status information with different severity levels (success, error, info, neutral, warning)
34
+ * and visual modes (outlined for light backgrounds, filled for emphasis).
33
35
  *
34
36
  * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4921-3427
35
37
  *
36
38
  * Figma Props Mapping:
37
- * - Status (Success|Error|Info|Offline) → severity ('success'|'error'|'info'|'neutral')
38
- * - Mode (Light|Dark) → variant ('outlined'|'filled')
39
+ * - Intent (Success|Error|Info|Offline|Warning) → severity ('success'|'error'|'info'|'neutral'|'warning')
40
+ * - Type (Outlined|Filled) → variant ('outlined'|'filled')
39
41
  *
40
42
  * Design Tokens Used:
41
- * - status.success.light, status.success.medium
42
- * - status.error.light, status.error.medium
43
- * - status.neutral.light, status.neutral.medium
44
- * - status.info.light, status.info.medium
43
+ * - status.success.light, status.success.default
44
+ * - status.error.light, status.error.default
45
+ * - status.neutral.light, status.neutral.default
46
+ * - status.info.light, status.info.default
47
+ * - status.warning.light, status.warning.default
45
48
  * - typography.tooltip, typography.bodySecondary
46
49
  * - grey[800]
47
50
  * - fontSize.default, fontSize.sm
@@ -22,13 +22,13 @@ export interface NeoTabProps extends Omit<TabProps, 'label'> {
22
22
  * Optional count to display in a tag next to the label
23
23
  * @default undefined
24
24
  *
25
- * @figma Tag with number (999)
25
+ * @figma Show tag (boolean)
26
26
  */
27
27
  count?: number | string;
28
28
  /**
29
29
  * Tab value identifier
30
30
  *
31
- * @figma Used for Current=True/False state
31
+ * @figma Selected (True|False) — controlled by parent NeoTabs
32
32
  */
33
33
  value: string | number;
34
34
  }
@@ -38,11 +38,9 @@ export interface NeoTabProps extends Omit<TabProps, 'label'> {
38
38
  * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=3368-26152
39
39
  *
40
40
  * Figma Props Mapping:
41
- * - Current=True/False → Controlled by parent NeoTabs value
42
- * - State=Default → default styling
43
- * - State=HoverCSS :hover
44
- * - State=Focus → CSS :focus-visible
45
- * - Tag count → count prop (renders NeoTag)
41
+ * - Selected (True|False) → Controlled by parent NeoTabs value
42
+ * - State (Default|Hover|Focus|Disabled)CSS states + disabled prop
43
+ * - Show tag (boolean) count prop (renders NeoTag)
46
44
  * - Text label → label prop
47
45
  */
48
46
  export declare const NeoTab: {
package/dist/Tag/Tag.d.ts CHANGED
@@ -15,19 +15,19 @@ declare module '@mui/material/Chip' {
15
15
  export interface NeoTagProps extends Omit<ChipProps, 'variant' | 'size'> {
16
16
  /**
17
17
  * The size of the tag
18
- * @figma m (sm|md|lg)
18
+ * @figma Size (Small|Medium|Large)
19
19
  * @default "small"
20
20
  */
21
21
  size?: 'small' | 'medium' | 'large';
22
22
  /**
23
23
  * The variant style of the tag
24
- * @figma type (light|dark)
24
+ * @figma Type (Outline|Filled)
25
25
  * @default "outlined"
26
26
  */
27
27
  variant?: 'outlined' | 'filled';
28
28
  /**
29
- * The color/state of the tag
30
- * @figma state (Neutral|Error|Warning|Success|Info|Violet|Beta)
29
+ * The color/intent of the tag
30
+ * @figma Intent (Neutral|Error|Warning|Success|Info|Violet|Beta)
31
31
  * @default "default"
32
32
  */
33
33
  color?: 'default' | 'error' | 'warning' | 'success' | 'info' | 'violet' | 'beta';
@@ -38,9 +38,9 @@ export interface NeoTagProps extends Omit<ChipProps, 'variant' | 'size'> {
38
38
  * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4120-34533
39
39
  *
40
40
  * Figma Props Mapping:
41
- * - m (sm|md|lg) → size (small|medium|large)
42
- * - type (light|dark) → variant (outlined|filled)
43
- * - state (Neutral|Error|Warning|Success|Info|Violet|Beta) → color (default|error|warning|success|info|violet|beta)
41
+ * - Size (Small|Medium|Large) → size (small|medium|large)
42
+ * - Type (Outline|Filled) → variant (outlined|filled)
43
+ * - Intent (Neutral|Error|Warning|Success|Info|Violet|Beta) → color (default|error|warning|success|info|violet|beta)
44
44
  * - Label text → label prop
45
45
  */
46
46
  export declare const NeoTag: {
@@ -3,10 +3,17 @@ import Button from '@mui/material/Button';
3
3
  import type { ReactNode } from 'react';
4
4
  export interface NeoToastProps extends Omit<AlertProps, 'variant' | 'severity' | 'color'> {
5
5
  /**
6
- * The visual style variant of the toast
6
+ * The intent/color variant of the toast
7
7
  * @default "default"
8
8
  */
9
- variant?: 'default' | 'dark' | 'brand' | 'error' | 'success' | 'info' | 'download';
9
+ variant?: 'default' | 'error' | 'success' | 'info' | 'warning' | 'dark' | 'brand' | 'download';
10
+ /**
11
+ * The visual type: outlined (light bg + border) or filled (solid bg)
12
+ * Only applies to intent variants (default, error, success, info, warning).
13
+ * Legacy variants (dark, brand, download) ignore this prop.
14
+ * @default "outlined"
15
+ */
16
+ type?: 'filled' | 'outlined';
10
17
  /**
11
18
  * The title/header text
12
19
  */
@@ -44,25 +51,26 @@ export interface NeoToastProps extends Omit<AlertProps, 'variant' | 'severity' |
44
51
  * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4122-37223
45
52
  *
46
53
  * Figma Props Mapping:
47
- * - type (Light mode|Dark mode|Brand color|Error|Success|Info|Download) → variant (default|dark|brand|error|success|info|download)
48
- * - headertitle (string)
49
- * - supportingTextmessage (string)
50
- * - xCloseButtonshowClose (boolean)
51
- * - actionsactions (ReactNode)
52
- * - Progress barprogress (number 0-100)
54
+ * - Intent (Neutral|Error|Success|Info|Warning) → variant (default|error|success|info|warning)
55
+ * - Type (Outlined|Filled) type ('outlined'|'filled')
56
+ * - Show header title (string)
57
+ * - Show supporting text message (string)
58
+ * - Show close icon showClose (boolean)
59
+ * - Show actionsactions (ReactNode)
53
60
  */
54
61
  export declare const NeoToast: {
55
- ({ variant, title, message, showClose, actions, progress, fileName, onClose, ...props }: NeoToastProps): import("react/jsx-runtime").JSX.Element;
62
+ ({ variant, type, title, message, showClose, actions, progress, fileName, onClose, ...props }: NeoToastProps): import("react/jsx-runtime").JSX.Element;
56
63
  displayName: string;
57
64
  };
58
65
  /**
59
66
  * Helper component for creating toast action buttons with proper styling
60
67
  */
61
68
  export declare const NeoToastButton: {
62
- ({ primary, variant, children, ...props }: {
69
+ ({ primary, variant, type, children, ...props }: {
63
70
  primary?: boolean;
64
71
  variant?: NeoToastProps["variant"];
72
+ type?: NeoToastProps["type"];
65
73
  children: ReactNode;
66
- } & Omit<React.ComponentProps<typeof Button>, "variant">): import("react/jsx-runtime").JSX.Element;
74
+ } & Omit<React.ComponentProps<typeof Button>, "variant" | "type">): import("react/jsx-runtime").JSX.Element;
67
75
  displayName: string;
68
76
  };
@@ -10,7 +10,7 @@ export interface NeoTooltipProps extends Omit<TooltipProps, 'title' | 'variant'>
10
10
  /**
11
11
  * The visual style variant
12
12
  * @default "light"
13
- * @figma Type
13
+ * @figma Theme (Light mode|Dark mode|Brand color)
14
14
  */
15
15
  variant?: TooltipVariant;
16
16
  /**
@@ -22,7 +22,7 @@ export interface NeoTooltipProps extends Omit<TooltipProps, 'title' | 'variant'>
22
22
  * Optional supporting description text
23
23
  * When provided, shows a larger tooltip with title (semibold) + description (medium)
24
24
  * @default undefined
25
- * @figma Supporting text
25
+ * @figma Show description (boolean)
26
26
  */
27
27
  description?: string;
28
28
  }
@@ -35,10 +35,10 @@ export interface NeoTooltipProps extends Omit<TooltipProps, 'title' | 'variant'>
35
35
  * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4091-26557&t=Bo58EpFmg6ILJtmv-11
36
36
  *
37
37
  * Figma Props Mapping:
38
- * - Type (Light mode|Dark mode|Brand color) → variant ('light'|'dark'|'brand')
39
- * - Arrow → arrow (boolean) + placement (top/bottom/left/right/etc)
40
- * - Supporting text (True|False) → description (string|undefined)
41
- * - text → title (string, literal content)
38
+ * - Theme (Light mode|Dark mode|Brand color) → variant ('light'|'dark'|'brand')
39
+ * - Placement (None|Bottom left|...|Top center) → arrow (boolean) + placement
40
+ * - Show description (boolean) → description (string|undefined)
41
+ * - Text → title (string, literal content)
42
42
  *
43
43
  * Design Tokens Used:
44
44
  * - Light: surfaces.tooltip (#4b5563), typography.tooltip (#ffffff)