From 2778f57aa3880cd24f42f268fd3c96d221bbec5b Mon Sep 17 00:00:00 2001 From: khairulhaaziq Date: Tue, 11 Jul 2023 14:51:55 +0800 Subject: [PATCH 01/17] init --- .../NavigationMenu/NavigationMenuArrow.vue | 7 + .../NavigationMenuCheckboxItem.vue | 103 +++++++++++ .../NavigationMenu/NavigationMenuContent.vue | 125 +++++++++++++ .../NavigationMenu/NavigationMenuGroup.vue | 73 ++++++++ .../src/NavigationMenu/NavigationMenuItem.vue | 75 ++++++++ .../NavigationMenuItemIndicator.vue | 19 ++ .../NavigationMenu/NavigationMenuLabel.vue | 16 ++ .../src/NavigationMenu/NavigationMenuMenu.vue | 56 ++++++ .../NavigationMenu/NavigationMenuPortal.vue | 14 ++ .../NavigationMenuRadioGroup.vue | 55 ++++++ .../NavigationMenuRadioItem.vue | 89 ++++++++++ .../src/NavigationMenu/NavigationMenuRoot.vue | 98 +++++++++++ .../NavigationMenuSeparator.vue | 21 +++ .../src/NavigationMenu/NavigationMenuSub.vue | 75 ++++++++ .../NavigationMenuSubContent.vue | 116 ++++++++++++ .../NavigationMenuSubTrigger.vue | 112 ++++++++++++ .../NavigationMenu/NavigationMenuTrigger.vue | 165 +++++++++++++++++ .../radix-vue/src/NavigationMenu/index.ts | 19 ++ .../radix-vue/src/NavigationMenu/utils.ts | 8 + packages/radix-vue/src/index.ts | 19 ++ playground/vue3/src/App.vue | 4 + .../components/Demo/NavigationMenuDemo.vue | 166 ++++++++++++++++++ .../Demo/NavigationMenuListItem.vue | 25 +++ 23 files changed, 1460 insertions(+) create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuArrow.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuCheckboxItem.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuContent.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuGroup.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuItem.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuItemIndicator.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuLabel.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuMenu.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuPortal.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuRadioGroup.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuRadioItem.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuRoot.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuSeparator.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuSub.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuSubContent.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuSubTrigger.vue create mode 100644 packages/radix-vue/src/NavigationMenu/NavigationMenuTrigger.vue create mode 100644 packages/radix-vue/src/NavigationMenu/index.ts create mode 100644 packages/radix-vue/src/NavigationMenu/utils.ts create mode 100644 playground/vue3/src/components/Demo/NavigationMenuDemo.vue create mode 100644 playground/vue3/src/components/Demo/NavigationMenuListItem.vue diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuArrow.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuArrow.vue new file mode 100644 index 000000000..6d13bc339 --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuArrow.vue @@ -0,0 +1,7 @@ + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuCheckboxItem.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuCheckboxItem.vue new file mode 100644 index 000000000..16ef5f4a8 --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuCheckboxItem.vue @@ -0,0 +1,103 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuContent.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuContent.vue new file mode 100644 index 000000000..b17f790fb --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuContent.vue @@ -0,0 +1,125 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuGroup.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuGroup.vue new file mode 100644 index 000000000..296cb25ba --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuGroup.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuItem.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuItem.vue new file mode 100644 index 000000000..534af6b6c --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuItem.vue @@ -0,0 +1,75 @@ + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuItemIndicator.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuItemIndicator.vue new file mode 100644 index 000000000..2077b040c --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuItemIndicator.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuLabel.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuLabel.vue new file mode 100644 index 000000000..8a54cb36b --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuLabel.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuMenu.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuMenu.vue new file mode 100644 index 000000000..57518837d --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuMenu.vue @@ -0,0 +1,56 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuPortal.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuPortal.vue new file mode 100644 index 000000000..bdee234e6 --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuPortal.vue @@ -0,0 +1,14 @@ + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuRadioGroup.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuRadioGroup.vue new file mode 100644 index 000000000..9e1738308 --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuRadioGroup.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuRadioItem.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuRadioItem.vue new file mode 100644 index 000000000..4757b032e --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuRadioItem.vue @@ -0,0 +1,89 @@ + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuRoot.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuRoot.vue new file mode 100644 index 000000000..2b012384a --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuRoot.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuSeparator.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuSeparator.vue new file mode 100644 index 000000000..8666e8237 --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuSeparator.vue @@ -0,0 +1,21 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuSub.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuSub.vue new file mode 100644 index 000000000..c9fbe7903 --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuSub.vue @@ -0,0 +1,75 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuSubContent.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuSubContent.vue new file mode 100644 index 000000000..d5602a74b --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuSubContent.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuSubTrigger.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuSubTrigger.vue new file mode 100644 index 000000000..c619e54ad --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuSubTrigger.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/NavigationMenuTrigger.vue b/packages/radix-vue/src/NavigationMenu/NavigationMenuTrigger.vue new file mode 100644 index 000000000..89aaf8e40 --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/NavigationMenuTrigger.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/packages/radix-vue/src/NavigationMenu/index.ts b/packages/radix-vue/src/NavigationMenu/index.ts new file mode 100644 index 000000000..7557bf690 --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/index.ts @@ -0,0 +1,19 @@ +export { default as NavigationMenuRoot } from "./NavigationMenuRoot.vue"; +export { default as NavigationMenuTrigger } from "./NavigationMenuTrigger.vue"; +export { default as NavigationMenuPortal } from "./NavigationMenuPortal.vue"; +export { default as NavigationMenuContent } from "./NavigationMenuContent.vue"; +export { default as NavigationMenuArrow } from "./NavigationMenuArrow.vue"; +export { default as NavigationMenuItem } from "./NavigationMenuItem.vue"; +export { default as NavigationMenuGroup } from "./NavigationMenuGroup.vue"; +export { default as NavigationMenuSeparator } from "./NavigationMenuSeparator.vue"; +export { default as NavigationMenuCheckboxItem } from "./NavigationMenuCheckboxItem.vue"; +export { default as NavigationMenuItemIndicator } from "./NavigationMenuItemIndicator.vue"; +export { default as NavigationMenuLabel } from "./NavigationMenuLabel.vue"; +export { default as NavigationMenuRadioGroup } from "./NavigationMenuRadioGroup.vue"; +export { default as NavigationMenuRadioItem } from "./NavigationMenuRadioItem.vue"; +export { default as NavigationMenuSub } from "./NavigationMenuSub.vue"; +export { default as NavigationMenuSubContent } from "./NavigationMenuSubContent.vue"; +export { default as NavigationMenuSubTrigger } from "./NavigationMenuSubTrigger.vue"; +export { default as NavigationMenuMenu } from "./NavigationMenuMenu.vue"; + +export * from "./utils"; diff --git a/packages/radix-vue/src/NavigationMenu/utils.ts b/packages/radix-vue/src/NavigationMenu/utils.ts new file mode 100644 index 000000000..2efa529bb --- /dev/null +++ b/packages/radix-vue/src/NavigationMenu/utils.ts @@ -0,0 +1,8 @@ +import { type InjectionKey, type Ref } from "vue"; + +type NavigationMenuItemContextValue = { + modelValue: Ref; +}; + +export const NAVIGATION_MENU_ITEM_SYMBOL = + Symbol() as InjectionKey; diff --git a/packages/radix-vue/src/index.ts b/packages/radix-vue/src/index.ts index 0d27e5ee1..0bd1e2257 100644 --- a/packages/radix-vue/src/index.ts +++ b/packages/radix-vue/src/index.ts @@ -151,5 +151,24 @@ export { MenubarSubTrigger, MenubarMenu, } from "./Menubar"; +export { + NavigationMenuArrow, + NavigationMenuContent, + NavigationMenuGroup, + NavigationMenuItem, + NavigationMenuPortal, + NavigationMenuRoot, + NavigationMenuSeparator, + NavigationMenuTrigger, + NavigationMenuCheckboxItem, + NavigationMenuItemIndicator, + NavigationMenuLabel, + NavigationMenuRadioGroup, + NavigationMenuRadioItem, + NavigationMenuSub, + NavigationMenuSubContent, + NavigationMenuSubTrigger, + NavigationMenuMenu, +} from "./NavigationMenu"; export * from "./ScrollArea"; diff --git a/playground/vue3/src/App.vue b/playground/vue3/src/App.vue index 15d4748cc..d9de03aba 100644 --- a/playground/vue3/src/App.vue +++ b/playground/vue3/src/App.vue @@ -25,6 +25,7 @@ import DropdownMenuDemo from './components/Demo/DropdownMenuDemo.vue' import ContextMenuDemo from './components/Demo/ContextMenuDemo.vue' import ScrollAreaDemo from './components/Demo/ScrollAreaDemo.vue' import MenubarDemo from './components/Demo/MenubarDemo.vue' +import NavigationMenuDemo from './components/Demo/NavigationMenuDemo.vue'