A flexible, grouped actions menu component supporting inline display and dropdown trigger modes, with items that can be plain actions, checkboxes, submenus, separators, or navigation links — each optionally enhanced with a secondary icon action.
## Key Components
| Export | Type | Description |
|---|---|---|
| `ActionsMenu` | Component | Standalone menu panel rendering grouped `ActionsMenuItem` rows |
| `ActionsMenuDropdown` | Component | Wraps `ActionsMenu` in a Radix UI dropdown with a configurable trigger button |
| `ActionsMenuItemIconAction` | Interface | Secondary icon button/link rendered on the right edge of a menu row |
| `ActionsMenuItem` | Interface | Single menu row — supports `item`, `checkbox`, `submenu`, and `separator` types |
| `ActionsMenuGroup` | Interface | Ordered collection of items with an optional visual separator |
## Usage Example
```typescript
import { ActionsMenuDropdown } from "./actions-menu";
const groups = [
{
items: [
{
id: "edit",
label: "Edit",
icon: ,
onClick: () => console.log("edit"),
},
{
id: "notify",
label: "Notifications",
type: "checkbox" as const,
checked: true,
onClick: () => toggleNotifications(),
},
],
},
{
separator: true,
items: [
{
id: "delete",
label: "Delete",
danger: true,
onClick: () => confirmDelete(),
},
],
},
];
export function MyComponent() {
return (
);
}
```
## Notes
- `closeOnSelect` defaults to closing the dropdown; set to `false` to keep it open (useful for multi-select scenarios).
- `ActionsMenuDropdown` supports **controlled open state** via `open` + `onOpenChange`.
- Items with `href` render as Next.js `` elements; `iconAction` renders an independent secondary `` or `