From 9d43d0b6e7e7f596690dd98a8bb216920e1d9e37 Mon Sep 17 00:00:00 2001 From: zernonia Date: Wed, 30 Aug 2023 23:30:12 +0800 Subject: [PATCH] feat: context menu --- .../content/docs/components/context-menu.md | 66 +++++++++++++++++ .../default/examples/ContextMenuDemo.vue | 73 +++++++++++++++++++ .../default/ui/collapsible/Collapsible.vue | 4 +- .../default/ui/context-menu/ContextMenu.vue | 7 +- .../context-menu/ContextMenuCheckboxItem.vue | 22 +++--- .../ui/context-menu/ContextMenuContent.vue | 10 +-- .../ui/context-menu/ContextMenuItem.vue | 11 ++- .../ui/context-menu/ContextMenuLabel.vue | 17 +++-- .../ui/context-menu/ContextMenuPortal.vue | 11 +++ .../ui/context-menu/ContextMenuRadioItem.vue | 20 +++-- .../ui/context-menu/ContextMenuSeparator.vue | 3 +- .../ui/context-menu/ContextMenuShortcut.vue | 8 +- .../ui/context-menu/ContextMenuSubContent.vue | 32 +++----- .../ui/context-menu/ContextMenuSubTrigger.vue | 7 +- 14 files changed, 221 insertions(+), 70 deletions(-) create mode 100644 apps/www/src/content/docs/components/context-menu.md create mode 100644 apps/www/src/lib/registry/default/examples/ContextMenuDemo.vue create mode 100644 apps/www/src/lib/registry/default/ui/context-menu/ContextMenuPortal.vue 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 + + + +``` \ 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 @@ + + + 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()