# DropdownMenu _(no submodules)_ - dropdown-menu.variants — `dropdownMenuContentVarian… - [dropdown-menu.variants](./dropdown-menu.variants.md) — `dropdownMenuContentVariants`, `dropdownMenuItemVariants`, `dropdownMenuLabelVariants`, `dropdownMenuSeparatorVariants`… - dropdown-menu.variants — `dropdownMenuContentVarian… - [dropdown-menu.variants](./dropdown-menu.variants.md) — `dropdownMenuContentVariants`, `dropdownMenuItemVariants`, `dropdownMenuLabelVariants`, `dropdownMenuSeparatorVariants`… - dropdown-menu.variants — `dropdownMenuContentVarian… - [dropdown-menu.variants](./dropdown-menu.variants.md) — `dropdownMenuContentVariants`, `dropdownMenuItemVariants`, `dropdownMenuLabelVariants`, `dropdownMenuSeparatorVariants`… - dropdown-menu.variants — `dropdownMenuContentVarian… - [dropdown-menu.variants](./dropdown-menu.variants.md) — `dropdownMenuContentVariants`, `dropdownMenuItemVariants`, `dropdownMenuLabelVariants`, `dropdownMenuSeparatorVariants`… - [dropdown-menu.variants](./dropdown-menu.variants.md) — `dropdownMenuContentVariants`, `dropdownMenuItemVariants`, `dropdownMenuLabelVariants`, `dropdownMenuSeparatorVariants`… ## Purpose `` and its sub-components (``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``, ``) are the chassis dropdown-menu primitive built on `@radix-ui/react-dropdown-menu`. Radix supplies the WAI-ARIA menu semantics (`role="menu"`, `role="menuitem"`, arrow-key roving focus, type-ahead search, Escape closes, focus-trap while open, restore-focus to the trigger on close), and the chassis layers cva slots, theme overrides, and a translated `` `aria-keyshortcuts` attribute on top. **Composition rule (shadcn skill rule):** items typically sit inside a `` so screen-readers announce them as one set. Single ungrouped items at the top level are also acceptable. Sub-menus pair `` with `` inside a ``. ## Features - WAI-ARIA menu semantics from Radix. - Arrow-key roving focus + type-ahead search. - Escape closes; click-outside dismisses; restore-focus to the trigger on close. - Auto-portalled `` (matches shadcn upstream — consumers do not need to remember ``). - `` accepts an `ariaKeyShortcutsKey` translation key so the localised shortcut announcement reaches assistive tech. - `` / `` / `` with 32-px gutter for the indicator. - `` for nested sub-menus with a chevron indicator (RTL-flipped via `rtl:rotate-180`). - `inset` variant on `` / `` / `` aligns with checkbox/radio rows. - All sub-components forward refs to their underlying Radix elements. ## Usage: Basic Example ```tsx import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuTrigger, } from "@suaveplan/react-ui"; export function UserMenu() { return ( Open menu Profile Settings Sign out ); } ``` ## Usage: Advanced Example ```tsx import { Button, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, } from "@suaveplan/react-ui"; import { useState } from "react"; export function EditorMenu() { const [showLineNumbers, setShowLineNumbers] = useState(true); const [theme, setTheme] = useState<"light" | "dark">("light"); return ( Editor Save ⌘S setShowLineNumbers(Boolean(checked)) } > Line numbers setTheme(v as "light" | "dark")} > Light theme Dark theme Export PDF HTML Markdown ); } ``` ## API Reference ### `` The Radix Root. Standard Radix Root props (`open`, `defaultOpen`, `onOpenChange`, `modal`, `dir`). ### `` Wraps the Radix Trigger (renders a `