From 9961609e6444e3fec0d5dae56e82d5ce3b079f82 Mon Sep 17 00:00:00 2001 From: keven1024 Date: Sat, 18 Oct 2025 12:15:41 +0800 Subject: [PATCH] feat(front): implement DropdownMenu component and its subcomponents for enhanced UI interactivity and organization --- .../ui/dropdown-menu/DropdownMenu.vue | 15 +++++++ .../DropdownMenuCheckboxItem.vue | 35 ++++++++++++++++ .../ui/dropdown-menu/DropdownMenuContent.vue | 33 +++++++++++++++ .../ui/dropdown-menu/DropdownMenuGroup.vue | 12 ++++++ .../ui/dropdown-menu/DropdownMenuItem.vue | 41 +++++++++++++++++++ .../ui/dropdown-menu/DropdownMenuLabel.vue | 23 +++++++++++ .../dropdown-menu/DropdownMenuRadioGroup.vue | 15 +++++++ .../dropdown-menu/DropdownMenuRadioItem.vue | 36 ++++++++++++++++ .../dropdown-menu/DropdownMenuSeparator.vue | 19 +++++++++ .../ui/dropdown-menu/DropdownMenuShortcut.vue | 14 +++++++ .../ui/dropdown-menu/DropdownMenuSub.vue | 15 +++++++ .../dropdown-menu/DropdownMenuSubContent.vue | 29 +++++++++++++ .../dropdown-menu/DropdownMenuSubTrigger.vue | 29 +++++++++++++ .../ui/dropdown-menu/DropdownMenuTrigger.vue | 14 +++++++ front/components/ui/dropdown-menu/index.ts | 16 ++++++++ 15 files changed, 346 insertions(+) create mode 100644 front/components/ui/dropdown-menu/DropdownMenu.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuContent.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuGroup.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuItem.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuLabel.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuRadioItem.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuSeparator.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuShortcut.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuSub.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuSubContent.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue create mode 100644 front/components/ui/dropdown-menu/DropdownMenuTrigger.vue create mode 100644 front/components/ui/dropdown-menu/index.ts diff --git a/front/components/ui/dropdown-menu/DropdownMenu.vue b/front/components/ui/dropdown-menu/DropdownMenu.vue new file mode 100644 index 0000000..a3f3b80 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenu.vue @@ -0,0 +1,15 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue b/front/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue new file mode 100644 index 0000000..acc3da6 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue @@ -0,0 +1,35 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuContent.vue b/front/components/ui/dropdown-menu/DropdownMenuContent.vue new file mode 100644 index 0000000..af66c42 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuContent.vue @@ -0,0 +1,33 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuGroup.vue b/front/components/ui/dropdown-menu/DropdownMenuGroup.vue new file mode 100644 index 0000000..9faa446 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuGroup.vue @@ -0,0 +1,12 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuItem.vue b/front/components/ui/dropdown-menu/DropdownMenuItem.vue new file mode 100644 index 0000000..b8e4bd8 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuItem.vue @@ -0,0 +1,41 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuLabel.vue b/front/components/ui/dropdown-menu/DropdownMenuLabel.vue new file mode 100644 index 0000000..c962379 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuLabel.vue @@ -0,0 +1,23 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue b/front/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue new file mode 100644 index 0000000..cfc1187 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue @@ -0,0 +1,15 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuRadioItem.vue b/front/components/ui/dropdown-menu/DropdownMenuRadioItem.vue new file mode 100644 index 0000000..13ccc03 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuRadioItem.vue @@ -0,0 +1,36 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuSeparator.vue b/front/components/ui/dropdown-menu/DropdownMenuSeparator.vue new file mode 100644 index 0000000..d6a1b92 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuSeparator.vue @@ -0,0 +1,19 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuShortcut.vue b/front/components/ui/dropdown-menu/DropdownMenuShortcut.vue new file mode 100644 index 0000000..e63c9f2 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuShortcut.vue @@ -0,0 +1,14 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuSub.vue b/front/components/ui/dropdown-menu/DropdownMenuSub.vue new file mode 100644 index 0000000..427406c --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuSub.vue @@ -0,0 +1,15 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuSubContent.vue b/front/components/ui/dropdown-menu/DropdownMenuSubContent.vue new file mode 100644 index 0000000..cfa5102 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuSubContent.vue @@ -0,0 +1,29 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue b/front/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue new file mode 100644 index 0000000..15995ea --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue @@ -0,0 +1,29 @@ + + + diff --git a/front/components/ui/dropdown-menu/DropdownMenuTrigger.vue b/front/components/ui/dropdown-menu/DropdownMenuTrigger.vue new file mode 100644 index 0000000..bb686a9 --- /dev/null +++ b/front/components/ui/dropdown-menu/DropdownMenuTrigger.vue @@ -0,0 +1,14 @@ + + + diff --git a/front/components/ui/dropdown-menu/index.ts b/front/components/ui/dropdown-menu/index.ts new file mode 100644 index 0000000..f488d39 --- /dev/null +++ b/front/components/ui/dropdown-menu/index.ts @@ -0,0 +1,16 @@ +export { default as DropdownMenu } from './DropdownMenu.vue' + +export { default as DropdownMenuCheckboxItem } from './DropdownMenuCheckboxItem.vue' +export { default as DropdownMenuContent } from './DropdownMenuContent.vue' +export { default as DropdownMenuGroup } from './DropdownMenuGroup.vue' +export { default as DropdownMenuItem } from './DropdownMenuItem.vue' +export { default as DropdownMenuLabel } from './DropdownMenuLabel.vue' +export { default as DropdownMenuRadioGroup } from './DropdownMenuRadioGroup.vue' +export { default as DropdownMenuRadioItem } from './DropdownMenuRadioItem.vue' +export { default as DropdownMenuSeparator } from './DropdownMenuSeparator.vue' +export { default as DropdownMenuShortcut } from './DropdownMenuShortcut.vue' +export { default as DropdownMenuSub } from './DropdownMenuSub.vue' +export { default as DropdownMenuSubContent } from './DropdownMenuSubContent.vue' +export { default as DropdownMenuSubTrigger } from './DropdownMenuSubTrigger.vue' +export { default as DropdownMenuTrigger } from './DropdownMenuTrigger.vue' +export { DropdownMenuPortal } from 'reka-ui'