Context menu wrappers
Right click here
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuCheckboxItem,
ContextMenuContent,
ContextMenuGroup,
ContextMenuItem,
ContextMenuLabel,
ContextMenuRadioGroup,
ContextMenuRadioItem,
ContextMenuSeparator,
ContextMenuShortcut,
ContextMenuSub,
ContextMenuSubContent,
ContextMenuSubTrigger,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuDemoExample() {
return (
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click here</span>
<span class="hidden pointer-coarse:inline-block">Long press here</span>
</ContextMenuTrigger>
<ContextMenuContent class="w-48">
<ContextMenuGroup>
<ContextMenuItem>
Back
<ContextMenuShortcut>⌘[</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem disabled>
Forward
<ContextMenuShortcut>⌘]</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Reload
<ContextMenuShortcut>⌘R</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuSub>
<ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger>
<ContextMenuSubContent class="w-44">
<ContextMenuGroup>
<ContextMenuItem>Save Page...</ContextMenuItem>
<ContextMenuItem>Create Shortcut...</ContextMenuItem>
<ContextMenuItem>Name Window...</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuItem>Developer Tools</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuItem variant="destructive">Delete</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuSubContent>
</ContextMenuSub>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuCheckboxItem checked>Show Bookmarks</ContextMenuCheckboxItem>
<ContextMenuCheckboxItem>Show Full URLs</ContextMenuCheckboxItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuRadioGroup value="pedro">
<ContextMenuLabel>People</ContextMenuLabel>
<ContextMenuRadioItem value="pedro">Pedro Duarte</ContextMenuRadioItem>
<ContextMenuRadioItem value="colm">Colm Tuite</ContextMenuRadioItem>
</ContextMenuRadioGroup>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
)
}
Installation
npx @fictjs/shadcn@latest add context-menuInstall the runtime dependencies:
npm install @fictjs/radix-uiCopy the Fict shadcn component into your project.
Source
components/ui/context-menu.tsx
src/components/ui/context-menu.tsx
import { ContextMenu as ContextMenuPrimitive } from '@fictjs/radix-ui'
import { cn } from '@/lib/cn'
export const ContextMenu = ContextMenuPrimitive.Root
export const ContextMenuTrigger = ContextMenuPrimitive.Trigger
export const ContextMenuSub = ContextMenuPrimitive.Sub
export const ContextMenuGroup = ContextMenuPrimitive.Group
export const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup
type GenericProps = {
class?: string
inset?: boolean
children?: unknown
[key: string]: unknown
}
export function ContextMenuContent(props: GenericProps) {
const { class: className, ...rest } = props
return (
<ContextMenuPrimitive.Content
class={cn('z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md', className)}
{...rest}
/>
)
}
export function ContextMenuItem(props: GenericProps) {
const { class: className, inset, ...rest } = props
return (
<ContextMenuPrimitive.Item
class={cn('relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent hover:text-accent-foreground', inset && 'pl-8', className)}
{...rest}
/>
)
}
export function ContextMenuCheckboxItem(props: GenericProps) {
const { class: className, ...rest } = props
return <ContextMenuPrimitive.CheckboxItem class={cn('relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none hover:bg-accent', className)} {...rest} />
}
export function ContextMenuRadioItem(props: GenericProps) {
const { class: className, ...rest } = props
return <ContextMenuPrimitive.RadioItem class={cn('relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none hover:bg-accent', className)} {...rest} />
}
export function ContextMenuLabel(props: GenericProps) {
const { class: className, inset, ...rest } = props
return <ContextMenuPrimitive.Label class={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)} {...rest} />
}
export function ContextMenuSeparator(props: GenericProps) {
const { class: className, ...rest } = props
return <ContextMenuPrimitive.Separator class={cn('-mx-1 my-1 h-px bg-muted', className)} {...rest} />
}
export function ContextMenuShortcut(props: JSX.IntrinsicElements['span']) {
const { class: className, ...rest } = props
return <span class={cn('ml-auto text-xs tracking-widest text-muted-foreground', className)} {...rest} />
}
export function ContextMenuSubTrigger(props: GenericProps) {
const { class: className, inset, ...rest } = props
return (
<ContextMenuPrimitive.SubTrigger
class={cn('flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent data-[state=open]:bg-accent', inset && 'pl-8', className)}
{...rest}
/>
)
}
export function ContextMenuSubContent(props: GenericProps) {
const { class: className, ...rest } = props
return (
<ContextMenuPrimitive.SubContent
class={cn('z-50 min-w-32 overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg', className)}
{...rest}
/>
)
}
Usage
Examples
Basic
Right click here
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuContent,
ContextMenuGroup,
ContextMenuItem,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuBasicExample() {
return (
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click here</span>
<span class="hidden pointer-coarse:inline-block">Long press here</span>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuGroup>
<ContextMenuItem>Back</ContextMenuItem>
<ContextMenuItem disabled>Forward</ContextMenuItem>
<ContextMenuItem>Reload</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
)
}
Submenu
Right click here
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuContent,
ContextMenuGroup,
ContextMenuItem,
ContextMenuSeparator,
ContextMenuShortcut,
ContextMenuSub,
ContextMenuSubContent,
ContextMenuSubTrigger,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuSubmenuExample() {
return (
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click here</span>
<span class="hidden pointer-coarse:inline-block">Long press here</span>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuGroup>
<ContextMenuItem>
Copy
<ContextMenuShortcut>⌘C</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Cut
<ContextMenuShortcut>⌘X</ContextMenuShortcut>
</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSub>
<ContextMenuSubTrigger>More Tools</ContextMenuSubTrigger>
<ContextMenuSubContent>
<ContextMenuGroup>
<ContextMenuItem>Save Page...</ContextMenuItem>
<ContextMenuItem>Create Shortcut...</ContextMenuItem>
<ContextMenuItem>Name Window...</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuItem>Developer Tools</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuItem variant="destructive">Delete</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuSubContent>
</ContextMenuSub>
</ContextMenuContent>
</ContextMenu>
)
}
Shortcuts
Right click here
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuContent,
ContextMenuGroup,
ContextMenuItem,
ContextMenuSeparator,
ContextMenuShortcut,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuShortcutsExample() {
return (
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click here</span>
<span class="hidden pointer-coarse:inline-block">Long press here</span>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuGroup>
<ContextMenuItem>
Back
<ContextMenuShortcut>⌘[</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem disabled>
Forward
<ContextMenuShortcut>⌘]</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Reload
<ContextMenuShortcut>⌘R</ContextMenuShortcut>
</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuItem>
Save
<ContextMenuShortcut>⌘S</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Save As...
<ContextMenuShortcut>⇧⌘S</ContextMenuShortcut>
</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
)
}
Groups
Right click here
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuContent,
ContextMenuGroup,
ContextMenuItem,
ContextMenuLabel,
ContextMenuSeparator,
ContextMenuShortcut,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuGroupsExample() {
return (
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click here</span>
<span class="hidden pointer-coarse:inline-block">Long press here</span>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuGroup>
<ContextMenuLabel>File</ContextMenuLabel>
<ContextMenuItem>
New File
<ContextMenuShortcut>⌘N</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Open File
<ContextMenuShortcut>⌘O</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Save
<ContextMenuShortcut>⌘S</ContextMenuShortcut>
</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuLabel>Edit</ContextMenuLabel>
<ContextMenuItem>
Undo
<ContextMenuShortcut>⌘Z</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Redo
<ContextMenuShortcut>⇧⌘Z</ContextMenuShortcut>
</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuItem>
Cut
<ContextMenuShortcut>⌘X</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Copy
<ContextMenuShortcut>⌘C</ContextMenuShortcut>
</ContextMenuItem>
<ContextMenuItem>
Paste
<ContextMenuShortcut>⌘V</ContextMenuShortcut>
</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuItem variant="destructive">
Delete
<ContextMenuShortcut>⌫</ContextMenuShortcut>
</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
)
}
Icons
Right click here
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuContent,
ContextMenuGroup,
ContextMenuItem,
ContextMenuSeparator,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuIconsExample() {
return (
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click here</span>
<span class="hidden pointer-coarse:inline-block">Long press here</span>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuGroup>
<ContextMenuItem>
<span aria-hidden="true">•</span>
Copy
</ContextMenuItem>
<ContextMenuItem>
<span aria-hidden="true">•</span>
Cut
</ContextMenuItem>
<ContextMenuItem>
<span aria-hidden="true">•</span>
Paste
</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuItem variant="destructive">
<span aria-hidden="true">•</span>
Delete
</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
)
}
Checkboxes
Right click here
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuCheckboxItem,
ContextMenuContent,
ContextMenuGroup,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuCheckboxesExample() {
return (
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click here</span>
<span class="hidden pointer-coarse:inline-block">Long press here</span>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuGroup>
<ContextMenuCheckboxItem defaultChecked>Show Bookmarks Bar</ContextMenuCheckboxItem>
<ContextMenuCheckboxItem>Show Full URLs</ContextMenuCheckboxItem>
<ContextMenuCheckboxItem defaultChecked>Show Developer Tools</ContextMenuCheckboxItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
)
}
Radio
Right click here
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuContent,
ContextMenuLabel,
ContextMenuRadioGroup,
ContextMenuRadioItem,
ContextMenuSeparator,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuRadioExample() {
let person = $state('pedro')
return (
<ContextMenu>
<ContextMenuTrigger class="flex h-40 w-72 items-center justify-center rounded-md border border-dashed">
Right click here
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuLabel>People</ContextMenuLabel>
<ContextMenuSeparator />
<ContextMenuRadioGroup
value={() => person}
onValueChange={value => {
person = value
}}
>
<ContextMenuRadioItem value="pedro">Pedro Duarte</ContextMenuRadioItem>
<ContextMenuRadioItem value="colm">Colm Tuite</ContextMenuRadioItem>
</ContextMenuRadioGroup>
</ContextMenuContent>
</ContextMenu>
)
}
Destructive
Right click here
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuContent,
ContextMenuGroup,
ContextMenuItem,
ContextMenuSeparator,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuDestructiveExample() {
return (
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click here</span>
<span class="hidden pointer-coarse:inline-block">Long press here</span>
</ContextMenuTrigger>
<ContextMenuContent>
<ContextMenuGroup>
<ContextMenuItem>
<span aria-hidden="true">•</span>
Edit
</ContextMenuItem>
<ContextMenuItem>
<span aria-hidden="true">•</span>
Share
</ContextMenuItem>
</ContextMenuGroup>
<ContextMenuSeparator />
<ContextMenuGroup>
<ContextMenuItem variant="destructive">
<span aria-hidden="true">•</span>
Delete
</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
)
}
Sides
Right click (top)
Right click (right)
Right click (bottom)
Right click (left)
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuContent,
ContextMenuGroup,
ContextMenuItem,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
export default function ContextMenuSidesExample() {
return (
<div class="grid w-full max-w-sm grid-cols-2 gap-4">
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click (top)</span>
<span class="hidden pointer-coarse:inline-block">Long press (top)</span>
</ContextMenuTrigger>
<ContextMenuContent side="top">
<ContextMenuGroup>
<ContextMenuItem>Back</ContextMenuItem>
<ContextMenuItem>Forward</ContextMenuItem>
<ContextMenuItem>Reload</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click (right)</span>
<span class="hidden pointer-coarse:inline-block">Long press (right)</span>
</ContextMenuTrigger>
<ContextMenuContent side="right">
<ContextMenuGroup>
<ContextMenuItem>Back</ContextMenuItem>
<ContextMenuItem>Forward</ContextMenuItem>
<ContextMenuItem>Reload</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click (bottom)</span>
<span class="hidden pointer-coarse:inline-block">Long press (bottom)</span>
</ContextMenuTrigger>
<ContextMenuContent side="bottom">
<ContextMenuGroup>
<ContextMenuItem>Back</ContextMenuItem>
<ContextMenuItem>Forward</ContextMenuItem>
<ContextMenuItem>Reload</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
<ContextMenu>
<ContextMenuTrigger class="flex aspect-video w-full max-w-xs items-center justify-center rounded-xl border border-dashed text-sm">
<span class="hidden pointer-fine:inline-block">Right click (left)</span>
<span class="hidden pointer-coarse:inline-block">Long press (left)</span>
</ContextMenuTrigger>
<ContextMenuContent side="left">
<ContextMenuGroup>
<ContextMenuItem>Back</ContextMenuItem>
<ContextMenuItem>Forward</ContextMenuItem>
<ContextMenuItem>Reload</ContextMenuItem>
</ContextMenuGroup>
</ContextMenuContent>
</ContextMenu>
</div>
)
}
Rtl
انقر بزر الماوس الأيمن هنا
import {
ContextMenu,
...import {
ContextMenu,
ContextMenuCheckboxItem,
ContextMenuContent,
ContextMenuItem,
ContextMenuLabel,
ContextMenuRadioGroup,
ContextMenuRadioItem,
ContextMenuSeparator,
ContextMenuShortcut,
ContextMenuSub,
ContextMenuSubContent,
ContextMenuSubTrigger,
ContextMenuTrigger,
} from '@/components/ui/context-menu'
const translations = {
ar: { dir: 'rtl', trigger: 'انقر بزر الماوس الأيمن هنا', navigation: 'التنقل', back: 'رجوع', forward: 'تقدم', reload: 'إعادة تحميل', more: 'المزيد من الأدوات', save: 'Save Page...', create: 'Create Shortcut...', name: 'Name Window...', developer: 'Developer Tools', delete: 'Delete', bookmarks: 'إظهار الإشارات المرجعية', urls: 'إظهار عناوين URL الكاملة', people: 'الأشخاص' },
he: { dir: 'rtl', trigger: 'לחץ לחיצה ימנית כאן', navigation: 'ניווט', back: 'חזור', forward: 'קדימה', reload: 'רענן', more: 'כלים נוספים', save: 'שמור עמוד...', create: 'צור קיצור דרך...', name: 'שם חלון...', developer: 'כלי מפתח', delete: 'מחק', bookmarks: 'הצג סימניות', urls: 'הצג כתובות URL מלאות', people: 'אנשים' },
en: { dir: 'ltr', trigger: 'Right click here', navigation: 'Navigation', back: 'Back', forward: 'Forward', reload: 'Reload', more: 'More Tools', save: 'Save Page...', create: 'Create Shortcut...', name: 'Name Window...', developer: 'Developer Tools', delete: 'Delete', bookmarks: 'Show Bookmarks', urls: 'Show Full URLs', people: 'People' },
} as const
export default function ContextMenuRtlExample() {
let language = $state<keyof typeof translations>('ar')
const t = translations[language]
return (
<div class="grid gap-4"><select aria-label="Preview language" value={language} onChange={event => language = event.currentTarget.value as keyof typeof translations}><option value="ar">Arabic (العربية)</option><option value="he">Hebrew (עברית)</option><option value="en">English</option></select><ContextMenu dir={t.dir}><ContextMenuTrigger class="flex h-40 w-72 items-center justify-center rounded-md border border-dashed">{t.trigger}</ContextMenuTrigger><ContextMenuContent dir={t.dir} class="w-48"><ContextMenuSub><ContextMenuSubTrigger>{t.navigation}</ContextMenuSubTrigger><ContextMenuSubContent dir={t.dir}><ContextMenuItem>{t.back}<ContextMenuShortcut>⌘[</ContextMenuShortcut></ContextMenuItem><ContextMenuItem disabled>{t.forward}<ContextMenuShortcut>⌘]</ContextMenuShortcut></ContextMenuItem><ContextMenuItem>{t.reload}<ContextMenuShortcut>⌘R</ContextMenuShortcut></ContextMenuItem></ContextMenuSubContent></ContextMenuSub><ContextMenuSub><ContextMenuSubTrigger>{t.more}</ContextMenuSubTrigger><ContextMenuSubContent dir={t.dir}><ContextMenuItem>{t.save}</ContextMenuItem><ContextMenuItem>{t.create}</ContextMenuItem><ContextMenuItem>{t.name}</ContextMenuItem><ContextMenuSeparator /><ContextMenuItem>{t.developer}</ContextMenuItem><ContextMenuSeparator /><ContextMenuItem variant="destructive">{t.delete}</ContextMenuItem></ContextMenuSubContent></ContextMenuSub><ContextMenuSeparator /><ContextMenuCheckboxItem checked>{t.bookmarks}</ContextMenuCheckboxItem><ContextMenuCheckboxItem>{t.urls}</ContextMenuCheckboxItem><ContextMenuSeparator /><ContextMenuLabel>{t.people}</ContextMenuLabel><ContextMenuRadioGroup value="pedro"><ContextMenuRadioItem value="pedro">Pedro Duarte</ContextMenuRadioItem><ContextMenuRadioItem value="colm">Colm Tuite</ContextMenuRadioItem></ContextMenuRadioGroup></ContextMenuContent></ContextMenu></div>
)
}