From 27fcfd73d9e9a8ad430b2b434d278b6dcec8ce7e Mon Sep 17 00:00:00 2001 From: keven1024 Date: Sat, 18 Oct 2025 13:06:11 +0800 Subject: [PATCH] feat(front): add Menubar component and its subcomponents for improved UI navigation and organization --- front/components/ui/menubar/Menubar.vue | 24 ++++++++++++ .../ui/menubar/MenubarCheckboxItem.vue | 35 ++++++++++++++++++ .../components/ui/menubar/MenubarContent.vue | 34 +++++++++++++++++ front/components/ui/menubar/MenubarGroup.vue | 12 ++++++ front/components/ui/menubar/MenubarItem.vue | 37 +++++++++++++++++++ front/components/ui/menubar/MenubarLabel.vue | 20 ++++++++++ front/components/ui/menubar/MenubarMenu.vue | 12 ++++++ .../ui/menubar/MenubarRadioGroup.vue | 15 ++++++++ .../ui/menubar/MenubarRadioItem.vue | 35 ++++++++++++++++++ .../ui/menubar/MenubarSeparator.vue | 17 +++++++++ .../components/ui/menubar/MenubarShortcut.vue | 14 +++++++ front/components/ui/menubar/MenubarSub.vue | 20 ++++++++++ .../ui/menubar/MenubarSubContent.vue | 31 ++++++++++++++++ .../ui/menubar/MenubarSubTrigger.vue | 30 +++++++++++++++ .../components/ui/menubar/MenubarTrigger.vue | 28 ++++++++++++++ front/components/ui/menubar/index.ts | 15 ++++++++ 16 files changed, 379 insertions(+) create mode 100644 front/components/ui/menubar/Menubar.vue create mode 100644 front/components/ui/menubar/MenubarCheckboxItem.vue create mode 100644 front/components/ui/menubar/MenubarContent.vue create mode 100644 front/components/ui/menubar/MenubarGroup.vue create mode 100644 front/components/ui/menubar/MenubarItem.vue create mode 100644 front/components/ui/menubar/MenubarLabel.vue create mode 100644 front/components/ui/menubar/MenubarMenu.vue create mode 100644 front/components/ui/menubar/MenubarRadioGroup.vue create mode 100644 front/components/ui/menubar/MenubarRadioItem.vue create mode 100644 front/components/ui/menubar/MenubarSeparator.vue create mode 100644 front/components/ui/menubar/MenubarShortcut.vue create mode 100644 front/components/ui/menubar/MenubarSub.vue create mode 100644 front/components/ui/menubar/MenubarSubContent.vue create mode 100644 front/components/ui/menubar/MenubarSubTrigger.vue create mode 100644 front/components/ui/menubar/MenubarTrigger.vue create mode 100644 front/components/ui/menubar/index.ts diff --git a/front/components/ui/menubar/Menubar.vue b/front/components/ui/menubar/Menubar.vue new file mode 100644 index 0000000..d4894cc --- /dev/null +++ b/front/components/ui/menubar/Menubar.vue @@ -0,0 +1,24 @@ + + + diff --git a/front/components/ui/menubar/MenubarCheckboxItem.vue b/front/components/ui/menubar/MenubarCheckboxItem.vue new file mode 100644 index 0000000..a1ad4bd --- /dev/null +++ b/front/components/ui/menubar/MenubarCheckboxItem.vue @@ -0,0 +1,35 @@ + + + diff --git a/front/components/ui/menubar/MenubarContent.vue b/front/components/ui/menubar/MenubarContent.vue new file mode 100644 index 0000000..90ee5cb --- /dev/null +++ b/front/components/ui/menubar/MenubarContent.vue @@ -0,0 +1,34 @@ + + + diff --git a/front/components/ui/menubar/MenubarGroup.vue b/front/components/ui/menubar/MenubarGroup.vue new file mode 100644 index 0000000..8cf7041 --- /dev/null +++ b/front/components/ui/menubar/MenubarGroup.vue @@ -0,0 +1,12 @@ + + + diff --git a/front/components/ui/menubar/MenubarItem.vue b/front/components/ui/menubar/MenubarItem.vue new file mode 100644 index 0000000..e871a66 --- /dev/null +++ b/front/components/ui/menubar/MenubarItem.vue @@ -0,0 +1,37 @@ + + + diff --git a/front/components/ui/menubar/MenubarLabel.vue b/front/components/ui/menubar/MenubarLabel.vue new file mode 100644 index 0000000..3b957fc --- /dev/null +++ b/front/components/ui/menubar/MenubarLabel.vue @@ -0,0 +1,20 @@ + + + diff --git a/front/components/ui/menubar/MenubarMenu.vue b/front/components/ui/menubar/MenubarMenu.vue new file mode 100644 index 0000000..0eaffaf --- /dev/null +++ b/front/components/ui/menubar/MenubarMenu.vue @@ -0,0 +1,12 @@ + + + diff --git a/front/components/ui/menubar/MenubarRadioGroup.vue b/front/components/ui/menubar/MenubarRadioGroup.vue new file mode 100644 index 0000000..636ca3d --- /dev/null +++ b/front/components/ui/menubar/MenubarRadioGroup.vue @@ -0,0 +1,15 @@ + + + diff --git a/front/components/ui/menubar/MenubarRadioItem.vue b/front/components/ui/menubar/MenubarRadioItem.vue new file mode 100644 index 0000000..9e45ef8 --- /dev/null +++ b/front/components/ui/menubar/MenubarRadioItem.vue @@ -0,0 +1,35 @@ + + + diff --git a/front/components/ui/menubar/MenubarSeparator.vue b/front/components/ui/menubar/MenubarSeparator.vue new file mode 100644 index 0000000..27163e2 --- /dev/null +++ b/front/components/ui/menubar/MenubarSeparator.vue @@ -0,0 +1,17 @@ + + + diff --git a/front/components/ui/menubar/MenubarShortcut.vue b/front/components/ui/menubar/MenubarShortcut.vue new file mode 100644 index 0000000..bf8b643 --- /dev/null +++ b/front/components/ui/menubar/MenubarShortcut.vue @@ -0,0 +1,14 @@ + + + diff --git a/front/components/ui/menubar/MenubarSub.vue b/front/components/ui/menubar/MenubarSub.vue new file mode 100644 index 0000000..0d1d545 --- /dev/null +++ b/front/components/ui/menubar/MenubarSub.vue @@ -0,0 +1,20 @@ + + + diff --git a/front/components/ui/menubar/MenubarSubContent.vue b/front/components/ui/menubar/MenubarSubContent.vue new file mode 100644 index 0000000..898dca9 --- /dev/null +++ b/front/components/ui/menubar/MenubarSubContent.vue @@ -0,0 +1,31 @@ + + + diff --git a/front/components/ui/menubar/MenubarSubTrigger.vue b/front/components/ui/menubar/MenubarSubTrigger.vue new file mode 100644 index 0000000..7f9194e --- /dev/null +++ b/front/components/ui/menubar/MenubarSubTrigger.vue @@ -0,0 +1,30 @@ + + + diff --git a/front/components/ui/menubar/MenubarTrigger.vue b/front/components/ui/menubar/MenubarTrigger.vue new file mode 100644 index 0000000..1268d47 --- /dev/null +++ b/front/components/ui/menubar/MenubarTrigger.vue @@ -0,0 +1,28 @@ + + + diff --git a/front/components/ui/menubar/index.ts b/front/components/ui/menubar/index.ts new file mode 100644 index 0000000..600c23e --- /dev/null +++ b/front/components/ui/menubar/index.ts @@ -0,0 +1,15 @@ +export { default as Menubar } from './Menubar.vue' +export { default as MenubarCheckboxItem } from './MenubarCheckboxItem.vue' +export { default as MenubarContent } from './MenubarContent.vue' +export { default as MenubarGroup } from './MenubarGroup.vue' +export { default as MenubarItem } from './MenubarItem.vue' +export { default as MenubarLabel } from './MenubarLabel.vue' +export { default as MenubarMenu } from './MenubarMenu.vue' +export { default as MenubarRadioGroup } from './MenubarRadioGroup.vue' +export { default as MenubarRadioItem } from './MenubarRadioItem.vue' +export { default as MenubarSeparator } from './MenubarSeparator.vue' +export { default as MenubarShortcut } from './MenubarShortcut.vue' +export { default as MenubarSub } from './MenubarSub.vue' +export { default as MenubarSubContent } from './MenubarSubContent.vue' +export { default as MenubarSubTrigger } from './MenubarSubTrigger.vue' +export { default as MenubarTrigger } from './MenubarTrigger.vue'