ContextMenu

Right-click context menu with the same compound API as DropdownMenu. Built on @radix-ui/react-context-menu.

Usage

tsx
import { ContextMenu } from 'fxui-core';

<ContextMenu>
  <ContextMenu.Trigger asChild>
    <div className="h-40 border-2 border-dashed border-fx-black">
      Right-click here
    </div>
  </ContextMenu.Trigger>
  <ContextMenu.Content>
    <ContextMenu.Item icon="✂️" shortcut="⌘X">Cut</ContextMenu.Item>
    <ContextMenu.Item icon="📋" shortcut="⌘C">Copy</ContextMenu.Item>
    <ContextMenu.Item icon="📌" shortcut="⌘V">Paste</ContextMenu.Item>
    <ContextMenu.Separator />
    <ContextMenu.Item icon="🗑️" destructive>Delete</ContextMenu.Item>
  </ContextMenu.Content>
</ContextMenu>

With Labels and Groups

tsx
<ContextMenu.Content>
  <ContextMenu.Label>Formatting</ContextMenu.Label>
  <ContextMenu.CheckboxItem checked={bold} onCheckedChange={setBold}>Bold</ContextMenu.CheckboxItem>
  <ContextMenu.CheckboxItem checked={italic} onCheckedChange={setItalic}>Italic</ContextMenu.CheckboxItem>
</ContextMenu.Content>

With Submenu

tsx
<ContextMenu.Sub>
  <ContextMenu.SubTrigger icon="🔗">Share</ContextMenu.SubTrigger>
  <ContextMenu.SubContent>
    <ContextMenu.Item icon="🐦">Twitter</ContextMenu.Item>
    <ContextMenu.Item icon="📧">Email</ContextMenu.Item>
  </ContextMenu.SubContent>
</ContextMenu.Sub>

Compound Components

| Component | Description | |-----------|-------------| | ContextMenu | Root (wraps Radix.Root) | | ContextMenu.Trigger | Wraps the right-clickable area | | ContextMenu.Content | Menu panel (auto-portaled) | | ContextMenu.Item | Clickable row with icon, shortcut, destructive | | ContextMenu.CheckboxItem | Toggleable item | | ContextMenu.Label | Section header | | ContextMenu.Separator | Horizontal divider | | ContextMenu.Sub | Submenu root | | ContextMenu.SubTrigger | Opens the submenu | | ContextMenu.SubContent | Submenu panel |