"use client" /** * ContextMenu — right-click + long-press menu surface backed by Radix * `ContextMenu`. Visual surface mirrors `DropdownMenu` so the two read as * a consistent menu family across the product (same item heights, same * tints, same separator + label rhythm). * * Use for **secondary, contextual actions** on a specific row, card, or * editable region — duplicate, rename, archive, copy link. The primary * action SHOULD still be reachable by click / keyboard via a visible * trigger; the context menu is an accelerator, not a replacement. * * Accessibility: * - Radix handles the right-click trigger, long-press on touch, the * `aria-haspopup` / `aria-expanded` wiring, and arrow-key navigation * between items. * - Items announce as `role="menuitem"`; `CheckboxItem` and `RadioItem` * expose checked / selected state correctly. * - Pair with a visible alternative (a `…` overflow `DropdownMenu`) so * keyboard-only users can reach the same actions without a pointer. */ import * as React from "react" import { ContextMenu as ContextMenuPrimitive } from "radix-ui" import { cn } from "../../lib/utils" import { DROPDOWN_MENU_CONTENT_SURFACE_CLASS } from "../../lib/dropdown-menu-surface" function ContextMenu({ ...props }: React.ComponentProps) { return } function ContextMenuTrigger({ ...props }: React.ComponentProps) { return ( ) } function ContextMenuGroup({ ...props }: React.ComponentProps) { return } function ContextMenuPortal({ ...props }: React.ComponentProps) { return ( ) } function ContextMenuSub({ ...props }: React.ComponentProps) { return } function ContextMenuRadioGroup({ ...props }: React.ComponentProps) { return ( ) } function ContextMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps & { inset?: boolean }) { return ( {children}