@moderneinc/neo-styled-components 2.7.0-next.96fb64 → 2.7.0-next.a498e7

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.
@@ -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=4214-58134
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)
@@ -1,6 +1,6 @@
1
1
  import { GridFilterPanel as MuiGridFilterPanel } from '@mui/x-data-grid';
2
2
  import type React from 'react';
3
- import { NeoSelect } from '../Select/Select';
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 { NeoSelect as NeoDataGridSelect };
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=4159-8649
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
- * <NeoMenu>
16
- * <NeoMenuItem>Settings</NeoMenuItem>
15
+ * <NeoDropdownMenu>
16
+ * <NeoDropdownMenuItem>Settings</NeoDropdownMenuItem>
17
17
  * <NeoDivider />
18
- * <NeoMenuItem>Sign out</NeoMenuItem>
19
- * </NeoMenu>
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
+ };
package/dist/index.d.ts CHANGED
@@ -305,7 +305,7 @@ interface NeoAvatarProps extends Omit<AvatarProps, 'variant'> {
305
305
  /**
306
306
  * NeoAvatar - User avatar component based on MUI Avatar
307
307
  *
308
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4214-58134
308
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=9600-185
309
309
  *
310
310
  * Figma Props Mapping:
311
311
  * - Figma Type "Initials" → variant="initials", size="small" (20px)
@@ -1102,7 +1102,7 @@ declare namespace NeoDataGridFiltersButton {
1102
1102
  var displayName: string;
1103
1103
  }
1104
1104
 
1105
- interface NeoMenuItemProps extends MenuItemProps {
1105
+ interface NeoDropdownMenuItemProps extends MenuItemProps {
1106
1106
  /**
1107
1107
  * Optional icon to display on the left side
1108
1108
  * Note: Cannot be directly mapped from Figma (ReactNode)
@@ -1127,60 +1127,49 @@ interface NeoMenuItemProps extends MenuItemProps {
1127
1127
  children?: ReactNode;
1128
1128
  }
1129
1129
  /**
1130
- * NeoMenuItem - Menu item component based on MUI MenuItem
1130
+ * NeoDropdownMenuItem - Dropdown menu item component based on MUI MenuItem
1131
1131
  *
1132
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8649
1133
- *
1134
- * Figma Props Mapping:
1135
- * - Figma "Dropdown - Menu" component uses Type (Avatar|Button|Icon) and Open (True|False)
1136
- * to control the menu trigger. NeoMenuItem is the individual item inside the menu.
1137
- * - Text label → children prop (mapped via figma.children)
1138
- * - selected → selected prop (React-controlled)
1139
- * - disabled → disabled prop (React-controlled)
1140
- * - Hover state → CSS :hover (not mapped)
1141
- * - Icon slot → icon prop (not mappable - ReactNode)
1142
- * - Secondary text → secondaryText prop (not mappable - ReactNode/string)
1143
- * - Keyboard shortcut → shortcut prop (not mappable - ReactNode/string)
1132
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8584
1144
1133
  *
1145
1134
  * @example
1146
1135
  * ```tsx
1147
1136
  * // With icon and shortcut
1148
- * <NeoMenuItem icon={<UserIcon />} shortcut="⌘+P">
1137
+ * <NeoDropdownMenuItem icon={<UserIcon />} shortcut="⌘+P">
1149
1138
  * View profile
1150
- * </NeoMenuItem>
1139
+ * </NeoDropdownMenuItem>
1151
1140
  *
1152
1141
  * // With secondary text (user list pattern from Figma node 4305:41844)
1153
- * <NeoMenuItem secondaryText="@phoenix">Phoenix Baker</NeoMenuItem>
1154
- * <NeoMenuItem secondaryText="@olivia">Olivia Rhye</NeoMenuItem>
1142
+ * <NeoDropdownMenuItem secondaryText="@phoenix">Phoenix Baker</NeoDropdownMenuItem>
1143
+ * <NeoDropdownMenuItem secondaryText="@olivia">Olivia Rhye</NeoDropdownMenuItem>
1155
1144
  *
1156
1145
  * // Disabled state
1157
- * <NeoMenuItem disabled>Disabled item</NeoMenuItem>
1146
+ * <NeoDropdownMenuItem disabled>Disabled item</NeoDropdownMenuItem>
1158
1147
  * ```
1159
1148
  */
1160
- declare const NeoMenuItem: {
1161
- ({ icon, shortcut, secondaryText, children, ...props }: NeoMenuItemProps): react_jsx_runtime.JSX.Element;
1149
+ declare const NeoDropdownMenuItem: {
1150
+ ({ icon, shortcut, secondaryText, children, ...props }: NeoDropdownMenuItemProps): react_jsx_runtime.JSX.Element;
1162
1151
  displayName: string;
1163
1152
  };
1164
1153
 
1165
- type NeoSelectProps = SelectProps;
1154
+ type NeoDropdownProps = SelectProps;
1166
1155
  /**
1167
- * NeoSelect - Select dropdown component with Neo design system styling
1156
+ * NeoDropdown - Dropdown select component with Neo design system styling
1168
1157
  *
1169
1158
  * A styled version of MUI's Select that uses Neo design tokens, Lucide ChevronDown icon,
1170
- * and NeoMenu/NeoMenuItem for the dropdown list.
1159
+ * and NeoDropdownMenu/NeoDropdownMenuItem for the dropdown list.
1171
1160
  *
1172
1161
  * @example
1173
1162
  * ```tsx
1174
- * import { NeoSelect, NeoSelectOption } from '@moderneinc/neo-styled-components'
1163
+ * import { NeoDropdown, NeoDropdownOption } from '@moderneinc/neo-styled-components'
1175
1164
  *
1176
- * <NeoSelect value={value} onChange={handleChange}>
1177
- * <NeoSelectOption value="option1">Option 1</NeoSelectOption>
1178
- * <NeoSelectOption value="option2">Option 2</NeoSelectOption>
1179
- * </NeoSelect>
1165
+ * <NeoDropdown value={value} onChange={handleChange}>
1166
+ * <NeoDropdownOption value="option1">Option 1</NeoDropdownOption>
1167
+ * <NeoDropdownOption value="option2">Option 2</NeoDropdownOption>
1168
+ * </NeoDropdown>
1180
1169
  * ```
1181
1170
  */
1182
- declare const NeoSelect: {
1183
- (props: NeoSelectProps): react_jsx_runtime.JSX.Element;
1171
+ declare const NeoDropdown: {
1172
+ (props: NeoDropdownProps): react_jsx_runtime.JSX.Element;
1184
1173
  displayName: string;
1185
1174
  };
1186
1175
 
@@ -1276,16 +1265,16 @@ interface NeoDividerProps extends DividerProps {
1276
1265
  * Generic divider component that can be used in menus, lists, cards, or any layout
1277
1266
  * that needs visual separation between content sections.
1278
1267
  *
1279
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8649
1268
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4633-39807
1280
1269
  *
1281
1270
  * @example
1282
1271
  * ```tsx
1283
1272
  * // In a menu
1284
- * <NeoMenu>
1285
- * <NeoMenuItem>Settings</NeoMenuItem>
1273
+ * <NeoDropdownMenu>
1274
+ * <NeoDropdownMenuItem>Settings</NeoDropdownMenuItem>
1286
1275
  * <NeoDivider />
1287
- * <NeoMenuItem>Sign out</NeoMenuItem>
1288
- * </NeoMenu>
1276
+ * <NeoDropdownMenuItem>Sign out</NeoDropdownMenuItem>
1277
+ * </NeoDropdownMenu>
1289
1278
  *
1290
1279
  * // In a card
1291
1280
  * <Card>
@@ -1551,48 +1540,35 @@ declare const NeoLoadingSpinner: {
1551
1540
  displayName: string;
1552
1541
  };
1553
1542
 
1554
- interface NeoMenuProps extends MenuProps {
1543
+ interface NeoDropdownMenuProps extends MenuProps {
1555
1544
  /**
1556
- * Menu content (typically NeoMenuItem components)
1545
+ * Menu content (typically NeoDropdownMenuItem components)
1557
1546
  */
1558
1547
  children?: React.ReactNode;
1559
1548
  }
1560
1549
  /**
1561
- * NeoMenu - Dropdown menu component based on MUI Menu
1550
+ * NeoDropdownMenu - Dropdown menu component based on MUI Menu
1562
1551
  *
1563
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8649
1564
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4305-41844 (Dropdown list pattern)
1565
- *
1566
- * Figma Props Mapping:
1567
- * - Container shown in Figma is the Menu Paper component
1568
- * - Menu items are styled separately via NeoMenuItem
1569
- * - Any trigger component (Button, IconButton, etc.) can open the menu
1552
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=11141-4980
1570
1553
  *
1571
1554
  * @example
1572
1555
  * ```tsx
1573
1556
  * const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
1574
1557
  * const open = Boolean(anchorEl);
1575
1558
  *
1576
- * // Standard menu with icons and shortcuts
1577
1559
  * <Button onClick={(e) => setAnchorEl(e.currentTarget)}>Open Menu</Button>
1578
- * <NeoMenu
1560
+ * <NeoDropdownMenu
1579
1561
  * open={open}
1580
1562
  * anchorEl={anchorEl}
1581
1563
  * onClose={() => setAnchorEl(null)}
1582
1564
  * >
1583
- * <NeoMenuItem icon={<Icon />} shortcut="⌘+P">View profile</NeoMenuItem>
1584
- * <NeoMenuItem>Settings</NeoMenuItem>
1585
- * </NeoMenu>
1586
- *
1587
- * // Dropdown list with secondary text (user list pattern)
1588
- * <NeoMenu open={open} anchorEl={anchorEl} onClose={() => setAnchorEl(null)}>
1589
- * <NeoMenuItem secondaryText="@phoenix">Phoenix Baker</NeoMenuItem>
1590
- * <NeoMenuItem secondaryText="@olivia" selected>Olivia Rhye</NeoMenuItem>
1591
- * </NeoMenu>
1565
+ * <NeoDropdownMenuItem icon={<Icon />} shortcut="⌘+P">View profile</NeoDropdownMenuItem>
1566
+ * <NeoDropdownMenuItem>Settings</NeoDropdownMenuItem>
1567
+ * </NeoDropdownMenu>
1592
1568
  * ```
1593
1569
  */
1594
- declare const NeoMenu: {
1595
- ({ children, ...props }: NeoMenuProps): react_jsx_runtime.JSX.Element;
1570
+ declare const NeoDropdownMenu: {
1571
+ ({ children, ...props }: NeoDropdownMenuProps): react_jsx_runtime.JSX.Element;
1596
1572
  displayName: string;
1597
1573
  };
1598
1574
 
@@ -2976,5 +2952,5 @@ declare module '@mui/x-data-grid-pro' {
2976
2952
 
2977
2953
  declare const version: string
2978
2954
 
2979
- export { ActivityScene, CIRCLE_RADIUS, NeoActivityHeader, NeoActivityIndicatorCell, NeoAvatar, NeoBadge, NeoBanner, NeoBreadcrumbLink, NeoBreadcrumbs, NeoButton, NeoButtonTab, NeoButtonTabGroup, NeoCheckbox, NeoCodeSnippet, NeoDataGrid, NeoDataGridCellContent, NeoDataGridColumnsButton, NeoDataGridColumnsPanel, NeoDataGridFilterPanel, NeoDataGridFilterPanelAddIcon, NeoDataGridFilterPanelDeleteIcon, NeoDataGridFilterPanelRemoveAllIcon, NeoDataGridFiltersButton, NeoDataGridHeaderLabel, NeoSelect as NeoDataGridSelect, NeoDatePicker, NeoDivider, NeoDot, NeoFilterChip, NeoFooter, NeoGeneralAvatar, NeoIconButton, NeoInfiniteScrollGrid, NeoInputField, NeoListItem, NeoListItemButton, NeoLoadingSpinner, NeoMarketplaceCard, NeoMenu, NeoMenuItem, NeoModal, NeoModalContent, NeoModalFooter, NeoModalHeader, NeoMultiBadgesCell, NeoNavigationAvatar, NeoNavigationItem, NeoPageContent, NeoPaginatedGrid, NeoProgressbar, NeoQuickFilter, NeoRadio, NeoSearchChip, NeoSelect, NeoMenuItem as NeoSelectOption, NeoSkeleton, NeoStatusBadgeCell, NeoStatusBanner, NeoTab, NeoTabs, NeoTag, NeoToast, NeoToastButton, NeoToggle, NeoToolbar, NeoTooltip, NeoTreeItem, NeoTreeView, StyledToggleButton as NeoTypologyButton, NeoTypologyControl, NeoUserAvatarCell, SortedAscendingIcon, SortedDescendingIcon, UnsortedIcon, getDataGridHeaderStyles, version };
2980
- export type { ActivityColor, ActivityEvent, ActivityHeaderSize, BreadcrumbItem, DataGridSize, NeoActivityHeaderProps, NeoActivityIndicatorCellProps, NeoAvatarProps, NeoBadgeProps, NeoBannerProps, NeoBreadcrumbLinkProps, NeoBreadcrumbsProps, NeoButtonProps, NeoButtonTabGroupProps, NeoButtonTabProps, NeoCheckboxProps, NeoCodeSnippetProps, NeoDataGridCellContentProps, NeoDataGridHeaderLabelProps, NeoDataGridProps, NeoDatePickerProps, NeoDividerProps, NeoDotProps, NeoFilterChipProps, NeoFooterProps, NeoGeneralAvatarProps, NeoIconButtonProps, NeoInfiniteScrollGridProps, NeoInputFieldProps, NeoListItemButtonProps, NeoListItemProps, NeoLoadingSpinnerProps, NeoMarketplaceCardProps, NeoMenuItemProps, NeoMenuProps, NeoModalContentProps, NeoModalFooterProps, NeoModalHeaderProps, NeoModalProps, NeoMultiBadgesCellProps, NeoNavigationAvatarProps, NeoNavigationItemProps, NeoPageContentProps, NeoPaginatedGridProps, NeoProgressbarProps, NeoQuickFilterProps, NeoRadioProps, NeoSearchChipProps, NeoSelectProps, NeoSkeletonProps, NeoStatusBadgeCellProps, NeoStatusBannerProps, NeoTabProps, NeoTagProps, NeoToastProps, NeoToggleProps, NeoToolbarProps, NeoTooltipProps, NeoTreeItemData, NeoTreeItemProps, NeoTreeViewProps, NeoTypologyControlProps, NeoUserAvatarCellProps };
2955
+ export { ActivityScene, CIRCLE_RADIUS, NeoActivityHeader, NeoActivityIndicatorCell, NeoAvatar, NeoBadge, NeoBanner, NeoBreadcrumbLink, NeoBreadcrumbs, NeoButton, NeoButtonTab, NeoButtonTabGroup, NeoCheckbox, NeoCodeSnippet, NeoDataGrid, NeoDataGridCellContent, NeoDataGridColumnsButton, NeoDataGridColumnsPanel, NeoDataGridFilterPanel, NeoDataGridFilterPanelAddIcon, NeoDataGridFilterPanelDeleteIcon, NeoDataGridFilterPanelRemoveAllIcon, NeoDataGridFiltersButton, NeoDataGridHeaderLabel, NeoDropdown as NeoDataGridSelect, NeoDatePicker, NeoDivider, NeoDot, NeoDropdown, NeoDropdownMenu, NeoDropdownMenuItem, NeoDropdownMenuItem as NeoDropdownOption, NeoFilterChip, NeoFooter, NeoGeneralAvatar, NeoIconButton, NeoInfiniteScrollGrid, NeoInputField, NeoListItem, NeoListItemButton, NeoLoadingSpinner, NeoMarketplaceCard, NeoDropdownMenu as NeoMenu, NeoDropdownMenuItem as NeoMenuItem, NeoModal, NeoModalContent, NeoModalFooter, NeoModalHeader, NeoMultiBadgesCell, NeoNavigationAvatar, NeoNavigationItem, NeoPageContent, NeoPaginatedGrid, NeoProgressbar, NeoQuickFilter, NeoRadio, NeoSearchChip, NeoDropdown as NeoSelect, NeoDropdownMenuItem as NeoSelectOption, NeoSkeleton, NeoStatusBadgeCell, NeoStatusBanner, NeoTab, NeoTabs, NeoTag, NeoToast, NeoToastButton, NeoToggle, NeoToolbar, NeoTooltip, NeoTreeItem, NeoTreeView, StyledToggleButton as NeoTypologyButton, NeoTypologyControl, NeoUserAvatarCell, SortedAscendingIcon, SortedDescendingIcon, UnsortedIcon, getDataGridHeaderStyles, version };
2956
+ export type { ActivityColor, ActivityEvent, ActivityHeaderSize, BreadcrumbItem, DataGridSize, NeoActivityHeaderProps, NeoActivityIndicatorCellProps, NeoAvatarProps, NeoBadgeProps, NeoBannerProps, NeoBreadcrumbLinkProps, NeoBreadcrumbsProps, NeoButtonProps, NeoButtonTabGroupProps, NeoButtonTabProps, NeoCheckboxProps, NeoCodeSnippetProps, NeoDataGridCellContentProps, NeoDataGridHeaderLabelProps, NeoDataGridProps, NeoDatePickerProps, NeoDividerProps, NeoDotProps, NeoDropdownMenuItemProps, NeoDropdownMenuProps, NeoDropdownProps, NeoFilterChipProps, NeoFooterProps, NeoGeneralAvatarProps, NeoIconButtonProps, NeoInfiniteScrollGridProps, NeoInputFieldProps, NeoListItemButtonProps, NeoListItemProps, NeoLoadingSpinnerProps, NeoMarketplaceCardProps, NeoDropdownMenuItemProps as NeoMenuItemProps, NeoDropdownMenuProps as NeoMenuProps, NeoModalContentProps, NeoModalFooterProps, NeoModalHeaderProps, NeoModalProps, NeoMultiBadgesCellProps, NeoNavigationAvatarProps, NeoNavigationItemProps, NeoPageContentProps, NeoPaginatedGridProps, NeoProgressbarProps, NeoQuickFilterProps, NeoRadioProps, NeoSearchChipProps, NeoDropdownProps as NeoSelectProps, NeoSkeletonProps, NeoStatusBadgeCellProps, NeoStatusBannerProps, NeoTabProps, NeoTagProps, NeoToastProps, NeoToggleProps, NeoToolbarProps, NeoTooltipProps, NeoTreeItemData, NeoTreeItemProps, NeoTreeViewProps, NeoTypologyControlProps, NeoUserAvatarCellProps };
package/dist/index.esm.js CHANGED
@@ -36,6 +36,9 @@ import { PickersShortcuts } from '@mui/x-date-pickers/PickersShortcuts';
36
36
  import { DateRangePicker } from '@mui/x-date-pickers-pro/DateRangePicker';
37
37
  import { dateRangePickerDayClasses } from '@mui/x-date-pickers-pro/DateRangePickerDay';
38
38
  import Badge, { badgeClasses } from '@mui/material/Badge';
39
+ import { listClasses } from '@mui/material/List';
40
+ import Menu from '@mui/material/Menu';
41
+ import { paperClasses } from '@mui/material/Paper';
39
42
  import FormControl from '@mui/material/FormControl';
40
43
  import FormHelperText, { formHelperTextClasses } from '@mui/material/FormHelperText';
41
44
  import ListItemButton, { listItemButtonClasses } from '@mui/material/ListItemButton';
@@ -43,9 +46,6 @@ import ListItemIcon, { listItemIconClasses } from '@mui/material/ListItemIcon';
43
46
  import ListItemText, { listItemTextClasses } from '@mui/material/ListItemText';
44
47
  import Typography from '@mui/material/Typography';
45
48
  import MuiCard from '@mui/material/Card';
46
- import { listClasses } from '@mui/material/List';
47
- import Menu from '@mui/material/Menu';
48
- import { paperClasses } from '@mui/material/Paper';
49
49
  import Dialog, { dialogClasses } from '@mui/material/Dialog';
50
50
  import DialogActions, { dialogActionsClasses } from '@mui/material/DialogActions';
51
51
  import DialogContent, { dialogContentClasses } from '@mui/material/DialogContent';
@@ -145,7 +145,7 @@ const AvatarContainer = styled(Box)(({ size = 'medium' }) => ({
145
145
  /**
146
146
  * NeoAvatar - User avatar component based on MUI Avatar
147
147
  *
148
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4214-58134
148
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=9600-185
149
149
  *
150
150
  * Figma Props Mapping:
151
151
  * - Figma Type "Initials" → variant="initials", size="small" (20px)
@@ -2047,43 +2047,32 @@ const Shortcut = styled('span')(({ theme }) => ({
2047
2047
  backgroundColor: semanticColors.surfaces.white,
2048
2048
  }));
2049
2049
  /**
2050
- * NeoMenuItem - Menu item component based on MUI MenuItem
2051
- *
2052
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8649
2050
+ * NeoDropdownMenuItem - Dropdown menu item component based on MUI MenuItem
2053
2051
  *
2054
- * Figma Props Mapping:
2055
- * - Figma "Dropdown - Menu" component uses Type (Avatar|Button|Icon) and Open (True|False)
2056
- * to control the menu trigger. NeoMenuItem is the individual item inside the menu.
2057
- * - Text label → children prop (mapped via figma.children)
2058
- * - selected → selected prop (React-controlled)
2059
- * - disabled → disabled prop (React-controlled)
2060
- * - Hover state → CSS :hover (not mapped)
2061
- * - Icon slot → icon prop (not mappable - ReactNode)
2062
- * - Secondary text → secondaryText prop (not mappable - ReactNode/string)
2063
- * - Keyboard shortcut → shortcut prop (not mappable - ReactNode/string)
2052
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8584
2064
2053
  *
2065
2054
  * @example
2066
2055
  * ```tsx
2067
2056
  * // With icon and shortcut
2068
- * <NeoMenuItem icon={<UserIcon />} shortcut="⌘+P">
2057
+ * <NeoDropdownMenuItem icon={<UserIcon />} shortcut="⌘+P">
2069
2058
  * View profile
2070
- * </NeoMenuItem>
2059
+ * </NeoDropdownMenuItem>
2071
2060
  *
2072
2061
  * // With secondary text (user list pattern from Figma node 4305:41844)
2073
- * <NeoMenuItem secondaryText="@phoenix">Phoenix Baker</NeoMenuItem>
2074
- * <NeoMenuItem secondaryText="@olivia">Olivia Rhye</NeoMenuItem>
2062
+ * <NeoDropdownMenuItem secondaryText="@phoenix">Phoenix Baker</NeoDropdownMenuItem>
2063
+ * <NeoDropdownMenuItem secondaryText="@olivia">Olivia Rhye</NeoDropdownMenuItem>
2075
2064
  *
2076
2065
  * // Disabled state
2077
- * <NeoMenuItem disabled>Disabled item</NeoMenuItem>
2066
+ * <NeoDropdownMenuItem disabled>Disabled item</NeoDropdownMenuItem>
2078
2067
  * ```
2079
2068
  */
2080
- const NeoMenuItem = ({ icon, shortcut, secondaryText, children, ...props }) => {
2069
+ const NeoDropdownMenuItem = ({ icon, shortcut, secondaryText, children, ...props }) => {
2081
2070
  return (jsx(StyledMenuItem, { ...props, children: jsxs(MenuItemContent, { children: [icon && jsx(IconWrapper$1, { children: icon }), jsxs(LabelContainer$3, { children: [jsx(Label$3, { children: children }), secondaryText && jsx(SecondaryLabel, { children: secondaryText })] }), shortcut && jsx(Shortcut, { children: shortcut })] }) }));
2082
2071
  };
2083
- NeoMenuItem.displayName = 'NeoMenuItem';
2072
+ NeoDropdownMenuItem.displayName = 'NeoDropdownMenuItem';
2084
2073
 
2085
2074
  /**
2086
- * Custom chevron icon for select dropdown
2075
+ * Custom chevron icon for dropdown
2087
2076
  * Must accept props from MUI Select to work correctly
2088
2077
  */
2089
2078
  const ChevronDownIcon = (props) => (jsx(ChevronDown, { ...props, size: spacing.spacing_2_1_2, color: semanticColors.typography.input.default, style: { ...props.style } }));
@@ -2123,25 +2112,24 @@ const StyledSelect = styled(MuiSelect)({
2123
2112
  },
2124
2113
  });
2125
2114
  /**
2126
- * NeoSelect - Select dropdown component with Neo design system styling
2115
+ * NeoDropdown - Dropdown select component with Neo design system styling
2127
2116
  *
2128
2117
  * A styled version of MUI's Select that uses Neo design tokens, Lucide ChevronDown icon,
2129
- * and NeoMenu/NeoMenuItem for the dropdown list.
2118
+ * and NeoDropdownMenu/NeoDropdownMenuItem for the dropdown list.
2130
2119
  *
2131
2120
  * @example
2132
2121
  * ```tsx
2133
- * import { NeoSelect, NeoSelectOption } from '@moderneinc/neo-styled-components'
2122
+ * import { NeoDropdown, NeoDropdownOption } from '@moderneinc/neo-styled-components'
2134
2123
  *
2135
- * <NeoSelect value={value} onChange={handleChange}>
2136
- * <NeoSelectOption value="option1">Option 1</NeoSelectOption>
2137
- * <NeoSelectOption value="option2">Option 2</NeoSelectOption>
2138
- * </NeoSelect>
2124
+ * <NeoDropdown value={value} onChange={handleChange}>
2125
+ * <NeoDropdownOption value="option1">Option 1</NeoDropdownOption>
2126
+ * <NeoDropdownOption value="option2">Option 2</NeoDropdownOption>
2127
+ * </NeoDropdown>
2139
2128
  * ```
2140
2129
  */
2141
- const NeoSelect = (props) => {
2130
+ const NeoDropdown = (props) => {
2142
2131
  return (jsx(StyledSelect, { ...props, IconComponent: ChevronDownIcon, variant: "standard", MenuProps: {
2143
2132
  ...props.MenuProps,
2144
- // Apply NeoMenu styling to the dropdown
2145
2133
  PaperProps: {
2146
2134
  sx: {
2147
2135
  backgroundColor: semanticColors.surfaces.white,
@@ -2154,7 +2142,7 @@ const NeoSelect = (props) => {
2154
2142
  },
2155
2143
  } }));
2156
2144
  };
2157
- NeoSelect.displayName = 'NeoSelect';
2145
+ NeoDropdown.displayName = 'NeoDropdown';
2158
2146
 
2159
2147
  /**
2160
2148
  * Icon components for DataGrid filter panel slots
@@ -3570,16 +3558,16 @@ const StyledDivider = styled(Divider)(({ theme }) => ({
3570
3558
  * Generic divider component that can be used in menus, lists, cards, or any layout
3571
3559
  * that needs visual separation between content sections.
3572
3560
  *
3573
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8649
3561
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4633-39807
3574
3562
  *
3575
3563
  * @example
3576
3564
  * ```tsx
3577
3565
  * // In a menu
3578
- * <NeoMenu>
3579
- * <NeoMenuItem>Settings</NeoMenuItem>
3566
+ * <NeoDropdownMenu>
3567
+ * <NeoDropdownMenuItem>Settings</NeoDropdownMenuItem>
3580
3568
  * <NeoDivider />
3581
- * <NeoMenuItem>Sign out</NeoMenuItem>
3582
- * </NeoMenu>
3569
+ * <NeoDropdownMenuItem>Sign out</NeoDropdownMenuItem>
3570
+ * </NeoDropdownMenu>
3583
3571
  *
3584
3572
  * // In a card
3585
3573
  * <Card>
@@ -3650,6 +3638,47 @@ const NeoDot = ({ size = 'medium', variant = 'solid', color = 'neutral', ...prop
3650
3638
  };
3651
3639
  NeoDot.displayName = 'NeoDot';
3652
3640
 
3641
+ const StyledMenu = styled(Menu)(({ theme }) => ({
3642
+ [`& .${paperClasses.root}`]: {
3643
+ backgroundColor: semanticColors.surfaces.white,
3644
+ borderRadius: borderRadius.s,
3645
+ border: `1px solid ${semanticColors.border.primary}`,
3646
+ boxShadow: `${shadows.dropdown.x}px ${shadows.dropdown.y}px ${shadows.dropdown.blur}px ${shadows.dropdown.spread}px ${shadows.dropdown.shadow}`,
3647
+ minWidth: 200,
3648
+ marginTop: theme.spacing(1),
3649
+ paddingTop: theme.spacing(1),
3650
+ paddingBottom: theme.spacing(1),
3651
+ },
3652
+ [`& .${listClasses.root}`]: {
3653
+ padding: 0,
3654
+ },
3655
+ }));
3656
+ /**
3657
+ * NeoDropdownMenu - Dropdown menu component based on MUI Menu
3658
+ *
3659
+ * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=11141-4980
3660
+ *
3661
+ * @example
3662
+ * ```tsx
3663
+ * const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
3664
+ * const open = Boolean(anchorEl);
3665
+ *
3666
+ * <Button onClick={(e) => setAnchorEl(e.currentTarget)}>Open Menu</Button>
3667
+ * <NeoDropdownMenu
3668
+ * open={open}
3669
+ * anchorEl={anchorEl}
3670
+ * onClose={() => setAnchorEl(null)}
3671
+ * >
3672
+ * <NeoDropdownMenuItem icon={<Icon />} shortcut="⌘+P">View profile</NeoDropdownMenuItem>
3673
+ * <NeoDropdownMenuItem>Settings</NeoDropdownMenuItem>
3674
+ * </NeoDropdownMenu>
3675
+ * ```
3676
+ */
3677
+ const NeoDropdownMenu = ({ children, ...props }) => {
3678
+ return jsx(StyledMenu, { ...props, children: children });
3679
+ };
3680
+ NeoDropdownMenu.displayName = 'NeoDropdownMenu';
3681
+
3653
3682
  const filterChipOnlyProps = ['selected', 'expanded', 'selectedLabel', 'count', 'onClear'];
3654
3683
  const StyledChip = styled(Chip, {
3655
3684
  shouldForwardProp: prop => !filterChipOnlyProps.includes(prop),
@@ -4971,60 +5000,6 @@ const NeoMarketplaceLargeCard = ({ state = 'default', cardTheme = 'light', showI
4971
5000
  };
4972
5001
  NeoMarketplaceLargeCard.displayName = 'NeoMarketplaceLargeCard';
4973
5002
 
4974
- const StyledMenu = styled(Menu)(({ theme }) => ({
4975
- [`& .${paperClasses.root}`]: {
4976
- backgroundColor: semanticColors.surfaces.white,
4977
- borderRadius: borderRadius.s,
4978
- border: `1px solid ${semanticColors.border.primary}`,
4979
- boxShadow: `${shadows.dropdown.x}px ${shadows.dropdown.y}px ${shadows.dropdown.blur}px ${shadows.dropdown.spread}px ${shadows.dropdown.shadow}`,
4980
- minWidth: 200,
4981
- marginTop: theme.spacing(1),
4982
- paddingTop: theme.spacing(1),
4983
- paddingBottom: theme.spacing(1),
4984
- },
4985
- [`& .${listClasses.root}`]: {
4986
- padding: 0,
4987
- },
4988
- }));
4989
- /**
4990
- * NeoMenu - Dropdown menu component based on MUI Menu
4991
- *
4992
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4159-8649
4993
- * @figma https://www.figma.com/design/fQTkGSFbYyE7LiHuQJsENC/Neo---Moderne-Design-system---2025?node-id=4305-41844 (Dropdown list pattern)
4994
- *
4995
- * Figma Props Mapping:
4996
- * - Container shown in Figma is the Menu Paper component
4997
- * - Menu items are styled separately via NeoMenuItem
4998
- * - Any trigger component (Button, IconButton, etc.) can open the menu
4999
- *
5000
- * @example
5001
- * ```tsx
5002
- * const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
5003
- * const open = Boolean(anchorEl);
5004
- *
5005
- * // Standard menu with icons and shortcuts
5006
- * <Button onClick={(e) => setAnchorEl(e.currentTarget)}>Open Menu</Button>
5007
- * <NeoMenu
5008
- * open={open}
5009
- * anchorEl={anchorEl}
5010
- * onClose={() => setAnchorEl(null)}
5011
- * >
5012
- * <NeoMenuItem icon={<Icon />} shortcut="⌘+P">View profile</NeoMenuItem>
5013
- * <NeoMenuItem>Settings</NeoMenuItem>
5014
- * </NeoMenu>
5015
- *
5016
- * // Dropdown list with secondary text (user list pattern)
5017
- * <NeoMenu open={open} anchorEl={anchorEl} onClose={() => setAnchorEl(null)}>
5018
- * <NeoMenuItem secondaryText="@phoenix">Phoenix Baker</NeoMenuItem>
5019
- * <NeoMenuItem secondaryText="@olivia" selected>Olivia Rhye</NeoMenuItem>
5020
- * </NeoMenu>
5021
- * ```
5022
- */
5023
- const NeoMenu = ({ children, ...props }) => {
5024
- return jsx(StyledMenu, { ...props, children: children });
5025
- };
5026
- NeoMenu.displayName = 'NeoMenu';
5027
-
5028
5003
  // ============================================================================
5029
5004
  // NeoModal - Main Dialog Container
5030
5005
  // ============================================================================
@@ -6904,5 +6879,5 @@ NeoTypologyControl.displayName = 'NeoTypologyControl';
6904
6879
 
6905
6880
  const version = '0.0.0-development';
6906
6881
 
6907
- export { ActivityScene, CIRCLE_RADIUS, NeoActivityHeader, NeoActivityIndicatorCell, NeoAvatar, NeoBadge, NeoBanner, NeoBreadcrumbLink, NeoBreadcrumbs, NeoButton, NeoButtonTab, NeoButtonTabGroup, NeoCheckbox, NeoCodeSnippet, NeoDataGrid, NeoDataGridCellContent, NeoDataGridColumnsButton, NeoDataGridColumnsPanel, NeoDataGridFilterPanel, NeoDataGridFilterPanelAddIcon, NeoDataGridFilterPanelDeleteIcon, NeoDataGridFilterPanelRemoveAllIcon, NeoDataGridFiltersButton, NeoDataGridHeaderLabel, NeoSelect as NeoDataGridSelect, NeoDatePicker, NeoDivider, NeoDot, NeoFilterChip, NeoFooter, NeoGeneralAvatar, NeoIconButton, NeoIconWrapper, NeoInfiniteScrollGrid, NeoInputField, NeoListItem, NeoListItemButton, NeoLoadingSpinner, NeoMarketplaceCard, NeoMarketplaceLargeCard, NeoMenu, NeoMenuItem, NeoModal, NeoModalContent, NeoModalFooter, NeoModalHeader, NeoMultiBadgesCell, NeoNavigationAvatar, NeoNavigationItem, NeoPageContent, NeoPaginatedGrid, NeoProgressbar, NeoQuickFilter, NeoRadio, NeoSearchChip, NeoSelect, NeoMenuItem as NeoSelectOption, NeoSkeleton, NeoStatusBadgeCell, NeoStatusBanner, NeoTab, NeoTabs, NeoTag, NeoToast, NeoToastButton, NeoToggle, NeoToolbar, NeoTooltip, NeoTreeItem, NeoTreeView, StyledToggleButton as NeoTypologyButton, NeoTypologyControl, NeoUserAvatarCell, SortedAscendingIcon, SortedDescendingIcon, UnsortedIcon, getDataGridHeaderStyles, neoRowHeights, version };
6882
+ export { ActivityScene, CIRCLE_RADIUS, NeoActivityHeader, NeoActivityIndicatorCell, NeoAvatar, NeoBadge, NeoBanner, NeoBreadcrumbLink, NeoBreadcrumbs, NeoButton, NeoButtonTab, NeoButtonTabGroup, NeoCheckbox, NeoCodeSnippet, NeoDataGrid, NeoDataGridCellContent, NeoDataGridColumnsButton, NeoDataGridColumnsPanel, NeoDataGridFilterPanel, NeoDataGridFilterPanelAddIcon, NeoDataGridFilterPanelDeleteIcon, NeoDataGridFilterPanelRemoveAllIcon, NeoDataGridFiltersButton, NeoDataGridHeaderLabel, NeoDropdown as NeoDataGridSelect, NeoDatePicker, NeoDivider, NeoDot, NeoDropdown, NeoDropdownMenu, NeoDropdownMenuItem, NeoDropdownMenuItem as NeoDropdownOption, NeoFilterChip, NeoFooter, NeoGeneralAvatar, NeoIconButton, NeoIconWrapper, NeoInfiniteScrollGrid, NeoInputField, NeoListItem, NeoListItemButton, NeoLoadingSpinner, NeoMarketplaceCard, NeoMarketplaceLargeCard, NeoDropdownMenu as NeoMenu, NeoDropdownMenuItem as NeoMenuItem, NeoModal, NeoModalContent, NeoModalFooter, NeoModalHeader, NeoMultiBadgesCell, NeoNavigationAvatar, NeoNavigationItem, NeoPageContent, NeoPaginatedGrid, NeoProgressbar, NeoQuickFilter, NeoRadio, NeoSearchChip, NeoDropdown as NeoSelect, NeoDropdownMenuItem as NeoSelectOption, NeoSkeleton, NeoStatusBadgeCell, NeoStatusBanner, NeoTab, NeoTabs, NeoTag, NeoToast, NeoToastButton, NeoToggle, NeoToolbar, NeoTooltip, NeoTreeItem, NeoTreeView, StyledToggleButton as NeoTypologyButton, NeoTypologyControl, NeoUserAvatarCell, SortedAscendingIcon, SortedDescendingIcon, UnsortedIcon, getDataGridHeaderStyles, neoRowHeights, version };
6908
6883
  //# sourceMappingURL=index.esm.js.map