registry:component
Context Menu
v1.0.0ga
Right-click action menu primitive with nested and selectable items.
Registry Endpoint
Open JSONnpx shadcn@latest add @aavya/ui-context-menu
One-time setup — add the @aavya registry to your components.json so branded dependencies resolve to Aavya (not stock shadcn):
"registries": { "@aavya": "https://registry-dev.aavya.com/r/{name}.json" }Or install by full URL: npx shadcn@latest add https://registry-dev.aavya.com/r/ui-context-menu.json
Live Preview
Right-click here
Props
| Part | Prop | Type | Default |
|---|---|---|---|
| ContextMenuSubTrigger | inset? | boolean | — |
| ContextMenuItem | inset? | boolean | — |
| ContextMenuItem | variant? | 'default' | 'destructive' | 'default' |
| ContextMenuLabel | inset? | boolean | — |
ContextMenu forwards remaining props to ContextMenuPrimitive.Root props.
Usage Snippet
import { ContextMenu } from '@/components/ui/context-menu'
export default function Example() {
return (
<div className="p-6">
<ContextMenu />
</div>
)
}
Source Preview
'use client'
import * as React from 'react'
import * as ContextMenuPrimitive from '@radix-ui/react-context-menu'
import { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react'
import { cn } from '@/lib/utils'
function ContextMenu({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Root>) {
return <ContextMenuPrimitive.Root data-slot='context-menu' {...props} />
}
function ContextMenuTrigger({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>) {
return <ContextMenuPrimitive.Trigger data-slot='context-menu-trigger' {...props} />
}
function ContextMenuGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Group>) {
return <ContextMenuPrimitive.Group data-slot='context-menu-group' {...props} />
}
function ContextMenuPortal({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Portal>) {
return <ContextMenuPrimitive.Portal data-slot='context-menu-portal' {...props} />
}
function ContextMenuSub({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Sub>) {
return <ContextMenuPrimitive.Sub data-slot='context-menu-sub' {...props} />
}
function ContextMenuRadioGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>) {
return <ContextMenuPrimitive.RadioGroup data-slot='context-menu-radio-group' {...props} />
}
function ContextMenuSubTrigger({
className,
inset,
childr