diff --git a/apps/www/src/content/docs/components/dropdown-menu.md b/apps/www/src/content/docs/components/dropdown-menu.md
new file mode 100644
index 00000000..ef1970a8
--- /dev/null
+++ b/apps/www/src/content/docs/components/dropdown-menu.md
@@ -0,0 +1,56 @@
+---
+title: Dropdown 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/dropdown-menu
+primitive: https://www.radix-vue.com/components/dropdown-menu.html
+---
+
+
+
+
+
+## Installation
+
+```bash
+npx shadcn-vue@latest add dropdown-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
+
+
+
+
+ Open
+
+ My Account
+
+ Profile
+ Billing
+ Team
+ Subscription
+
+
+
+```
\ No newline at end of file
diff --git a/apps/www/src/lib/registry/default/examples/DropdownMenuDemo.vue b/apps/www/src/lib/registry/default/examples/DropdownMenuDemo.vue
new file mode 100644
index 00000000..025a3aa1
--- /dev/null
+++ b/apps/www/src/lib/registry/default/examples/DropdownMenuDemo.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+ My Account
+
+
+
+
+ Profile
+ ⇧⌘P
+
+
+
+ Billing
+ ⌘B
+
+
+
+ Settings
+ ⌘S
+
+
+
+ Keyboard shortcuts
+ ⌘K
+
+
+
+
+
+
+ Team
+
+
+
+
+ Invite users
+
+
+
+
+
+ Email
+
+
+
+ Message
+
+
+
+
+ More...
+
+
+
+
+
+
+ New Team
+ ⌘+T
+
+
+
+
+
+ GitHub
+
+
+
+ Support
+
+
+
+ API
+
+
+
+
+ Log out
+ ⇧⌘Q
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue
index b2b57f0e..703c640d 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenu.vue
@@ -1,11 +1,13 @@
-
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
index 55fb1f76..e16f6908 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuCheckboxItem.vue
@@ -5,31 +5,26 @@ import {
type DropdownMenuCheckboxItemProps,
DropdownMenuItemIndicator,
} 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/dropdown-menu/DropdownMenuContent.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue
index fb2e5941..69c96685 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuContent.vue
@@ -9,13 +9,13 @@ import { cn } from '@/lib/utils'
const props = withDefaults(
defineProps(),
{
- sideOffset: 6,
+ sideOffset: 4,
},
)
-
+
()
+const props = defineProps()
@@ -10,7 +10,8 @@ const props = defineProps()
v-bind="props"
:class="[
cn(
- 'flex items-center rounded-md transition-colors data-[disabled]:opacity-50 data-[disabled]:pointer-events-none focus:bg-outline-hover px-2 py-1.5 text-sm outline-none select-none cursor-default',
+ 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
+ inset && 'pl-8',
props.class,
),
]"
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue
index e176e081..c94782d7 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuLabel.vue
@@ -1,13 +1,20 @@
-
-
-
-
-
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue
index 41e5ae3c..310ef748 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuRadioItem.vue
@@ -5,8 +5,8 @@ import {
type DropdownMenuRadioItemEmits,
type DropdownMenuRadioItemProps,
} 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()
@@ -15,20 +15,18 @@ const emits = defineEmits()
-
-
-
+
+
+
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue
index 73829446..9cb171be 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSeparator.vue
@@ -8,5 +8,5 @@ const props = defineProps()
-
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue
index 5be2acac..008520cb 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuShortcut.vue
@@ -1,5 +1,9 @@
+
+
-
+
-
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue
index cac40f96..293a2fab 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubContent.vue
@@ -1,28 +1,20 @@
-
-
-
-
-
+
+
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue
index 7679296d..e4a77f47 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/DropdownMenuSubTrigger.vue
@@ -3,6 +3,7 @@ import {
DropdownMenuSubTrigger,
type DropdownMenuSubTriggerProps,
} from 'radix-vue'
+import { ChevronRight } from 'lucide-vue-next'
import { cn } from '@/lib/utils'
const props = defineProps()
@@ -13,11 +14,12 @@ 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 data-[state=open]:bg-accent',
props.class,
),
]"
>
+
diff --git a/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts b/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts
index b069c39b..6f9446c3 100644
--- a/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts
+++ b/apps/www/src/lib/registry/default/ui/dropdown-menu/index.ts
@@ -1,3 +1,5 @@
+export { DropdownMenuPortal } from 'radix-vue'
+
export { default as DropdownMenu } from './DropdownMenu.vue'
export { default as DropdownMenuTrigger } from './DropdownMenuTrigger.vue'
export { default as DropdownMenuContent } from './DropdownMenuContent.vue'