diff --git a/apps/www/src/content/docs/components/context-menu.md b/apps/www/src/content/docs/components/context-menu.md
new file mode 100644
index 00000000..203da0b6
--- /dev/null
+++ b/apps/www/src/content/docs/components/context-menu.md
@@ -0,0 +1,66 @@
+---
+title: Context Menu
+description: Displays a menu to the user — such as a set of actions or functions — triggered by a button.
+source: https://github.com/radix-vue/shadcn-vue/tree/main/apps/www/src/lib/registry/default/ui/context-menu
+primitive: https://www.radix-vue.com/components/context-menu.html
+---
+
+
+
+
+<<< ../../../lib/registry/default/examples/ContextMenuDemo.vue
+
+
+
+
+
+## Installation
+
+```bash
+npx shadcn-vue@latest add context-menu
+```
+
+
+
+1. Install `radix-vue`:
+
+```bash
+npm install radix-vue
+```
+
+2. Copy and paste the component source files linked at the top of this page into your project.
+
+
+## Usage
+
+```vue
+
+
+
+
+ Right click
+
+ Profile
+ Billing
+ Team
+ Subscription
+
+
+
+```
\ No newline at end of file
diff --git a/apps/www/src/lib/registry/default/examples/ContextMenuDemo.vue b/apps/www/src/lib/registry/default/examples/ContextMenuDemo.vue
new file mode 100644
index 00000000..90f6922e
--- /dev/null
+++ b/apps/www/src/lib/registry/default/examples/ContextMenuDemo.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+ Right click here
+
+
+
+ Back
+ ⌘[
+
+
+ Forward
+ ⌘]
+
+
+ Reload
+ ⌘R
+
+
+
+ More Tools
+
+
+
+ Save Page As...
+ ⇧⌘S
+
+ Create Shortcut...
+ Name Window...
+
+ Developer Tools
+
+
+
+
+ Show Bookmarks Bar
+ ⌘⇧B
+
+ Show Full URLs
+
+
+
+ People
+
+
+
+ Pedro Duarte
+
+
+ Colm Tuite
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue b/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue
index 05bf9c23..495d2a50 100644
--- a/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue
+++ b/apps/www/src/lib/registry/default/ui/collapsible/Collapsible.vue
@@ -5,12 +5,10 @@ import { useEmitAsProps } from '@/lib/utils'
const props = defineProps()
const emits = defineEmits()
-
-const emitsAsProps = useEmitAsProps(emits)
-
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue
index 7a587b5f..f042c306 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenu.vue
@@ -1,11 +1,14 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue
index 24b06561..2414d5b5 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuCheckboxItem.vue
@@ -5,30 +5,30 @@ import {
type ContextMenuCheckboxItemProps,
ContextMenuItemIndicator,
} from 'radix-vue'
-import { cn } from '@/lib/utils'
-import RadixIconsCheck from '~icons/radix-icons/check'
+import { Check } from 'lucide-vue-next'
+import { cn, useEmitAsProps } from '@/lib/utils'
const props = defineProps()
-
const emits = defineEmits()
-
-
-
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue
index e659c603..67dcff43 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuContent.vue
@@ -5,25 +5,23 @@ import {
type ContextMenuContentProps,
ContextMenuPortal,
} from 'radix-vue'
-import { cn } from '@/lib/utils'
+import { cn, useEmitAsProps } from '@/lib/utils'
const props = defineProps()
-
const emits = defineEmits()
-
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue
index 3eac857b..19b3765d 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuItem.vue
@@ -4,23 +4,22 @@ import {
type ContextMenuItemEmits,
type ContextMenuItemProps,
} from 'radix-vue'
-import { cn } from '@/lib/utils'
-
-const props = defineProps()
+import { cn, useEmitAsProps } from '@/lib/utils'
+const props = defineProps()
const emits = defineEmits()
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue
index 972088a3..3702f395 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuLabel.vue
@@ -1,13 +1,18 @@
-
-
-
-
-
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuPortal.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuPortal.vue
new file mode 100644
index 00000000..73dc714b
--- /dev/null
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuPortal.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue
index 0ed025cc..2172c7ee 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuRadioItem.vue
@@ -5,30 +5,28 @@ import {
type ContextMenuRadioItemEmits,
type ContextMenuRadioItemProps,
} from 'radix-vue'
-import { cn } from '@/lib/utils'
-import RiCheckboxBlankCircleFill from '~icons/ri/checkbox-blank-circle-fill'
+import { Circle } from 'lucide-vue-next'
+import { cn, useEmitAsProps } from '@/lib/utils'
const props = defineProps()
-
const emits = defineEmits()
-
-
-
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue
index d7fe1aec..bf1eca8b 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSeparator.vue
@@ -3,10 +3,11 @@ import {
ContextMenuSeparator,
type ContextMenuSeparatorProps,
} from 'radix-vue'
+import { cn } from '@/lib/utils'
const props = defineProps()
-
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue
index 5be2acac..e97f3c2b 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuShortcut.vue
@@ -1,5 +1,9 @@
+
+
-
+
-
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue
index c7a4cdd2..ebeb363e 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubContent.vue
@@ -1,33 +1,25 @@
-
-
-
-
-
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue
index 2145acbb..258a6df7 100644
--- a/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/context-menu/ContextMenuSubTrigger.vue
@@ -3,9 +3,10 @@ import {
ContextMenuSubTrigger,
type ContextMenuSubTriggerProps,
} from 'radix-vue'
+import { ChevronRight } from 'lucide-vue-next'
import { cn } from '@/lib/utils'
-const props = defineProps()
+const props = defineProps()
@@ -13,11 +14,13 @@ const props = defineProps()
v-bind="props"
:class="[
cn(
- 'flex items-center rounded-md transition-colors data-[disabled]:opacity-50 data-[disabled]:pointer-events-none data-[highlighted]:bg-outline-hover px-2 py-1.5 text-sm outline-none select-none cursor-default',
+ 'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',
+ inset && 'pl-8',
props.class,
),
]"
>
+