Overview
ActionMenuList is a compound component for selecting block types. It auto-generates items from editor plugins and handles block type toggling. Designed to be opened from toolbar “Turn into” buttons, block options menus, etc.

Features
- API — controlled/uncontrolled with
open/onOpenChange - Auto-generated items — reads plugins from editor automatically
- Two view modes —
smallfor compact menus,defaultfor full display - Floating positioning — automatic positioning via Floating UI
- TypeScript — full type safety
Installation
Basic Usage
API Reference
ActionMenuList (Root)
Root component that manages state and context.
| Prop | Type | Description |
|---|---|---|
open | boolean | Controlled open state |
onOpenChange | (open: boolean) => void | Called when open state changes |
defaultOpen | boolean | Default open state (uncontrolled) |
anchor | HTMLElement | null | Anchor element for positioning |
view | 'small' | 'default' | View mode (default: 'default') |
placement | Placement | Floating UI placement (default: 'bottom-start') |
children | ReactNode | ((api) => ReactNode) | Content or render function |
| Property | Type | Description |
|---|---|---|
actions | ActionMenuItem[] | Available block types from plugins |
selectedAction | ActionMenuItem | null | Currently highlighted action |
onSelect | (type: string) => void | Execute action (toggle block) |
empty | boolean | Whether actions list is empty |
ActionMenuList.Content
Floating content panel. Auto-generates items if no children provided.
| Prop | Type | Description |
|---|---|---|
className | string | Custom CSS classes |
children | ReactNode | Optional custom content |
ActionMenuList.Group
Groups related items together.
ActionMenuList.Item
Individual menu item.
| Prop | Type | Description |
|---|---|---|
action | ActionMenuItem | Action data (type, title, description, icon) |
selected | boolean | Whether item is selected/highlighted |
icon | ReactNode | Override action’s icon |
onClick | (event) => void | Click handler |
ActionMenuList.Empty
Empty state when no actions are available.
Examples
With FloatingToolbar
With BlockOptions
Custom Items with Render Props
View Modes
Small View (Compact)
Use for toolbar menus and block options:- Smaller icons (20x20)
- No descriptions shown
- Compact padding
- Min width: 180px
Default View (Full)
Use for slash command menus and larger dropdowns:- Larger icons (40x40)
- Descriptions visible
- Standard padding
- Min width: 244px
Styling
CSS Variables
Custom Styles
Best Practices
Use small view for toolbar/block options
Use small view for toolbar/block options
Close parent menu when action completes
Close parent menu when action completes
Use keepOpen on trigger items
Use keepOpen on trigger items

