import type { ReactNode } from 'react' import * as RadixMenu from '@radix-ui/react-dropdown-menu' import { ChevronRight } from 'lucide-react' import Block from '../Primitives/Block/Block' import PrimitiveText from '../Primitives/PrimitiveText/PrimitiveText' import { useResponsiveTokens } from '../../hooks/useResponsiveTokens' import type { MultiSelectV2TokensType } from './multiSelectV2.tokens' import type { MultiSelectV2ItemType } from './multiSelectV2.types' // eslint-disable-next-line import-x/no-cycle -- intentional recursion: SubMenu renders MenuItem which renders SubMenu import MultiSelectV2MenuItem from './MultiSelectV2MenuItem' const MenuItemSlot = ({ slot }: { slot: ReactNode }) => ( {slot} ) type MultiSelectV2SubMenuProps = { item: MultiSelectV2ItemType onSelect: (value: string) => void selected: string[] maxSelections?: number focusIdentityEnabled?: boolean } const MultiSelectV2SubMenu = ({ item, onSelect, selected, maxSelections, focusIdentityEnabled, }: MultiSelectV2SubMenuProps) => { const multiSelectTokens = useResponsiveTokens('MULTI_SELECT_V2') return ( {item.slot1 && } {item.label} {item.slot2 && } {item.slot3 && } {item.slot4 && } {item.subMenu?.map((subItem, subIdx) => ( ))} ) } export default MultiSelectV2SubMenu