From 894aca0d14650efef37beb538da41625a4bc6d61 Mon Sep 17 00:00:00 2001 From: pheralb Date: Thu, 18 Sep 2025 12:03:20 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Add=20dropdown-menu=20UI=20compo?= =?UTF-8?q?nent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dropdown-menu-content.svelte | 27 +++++++++++++++ .../dropdown-menu/dropdown-menu-group.svelte | 14 ++++++++ .../dropdown-menu/dropdown-menu-item.svelte | 27 +++++++++++++++ .../dropdown-menu/dropdown-menu-label.svelte | 25 ++++++++++++++ .../dropdown-menu-separator.svelte | 17 ++++++++++ .../dropdown-menu-shortcut.svelte | 24 ++++++++++++++ .../dropdown-menu-trigger.svelte | 14 ++++++++ src/components/ui/dropdown-menu/index.ts | 33 +++++++++++++++++++ 8 files changed, 181 insertions(+) create mode 100644 src/components/ui/dropdown-menu/dropdown-menu-content.svelte create mode 100644 src/components/ui/dropdown-menu/dropdown-menu-group.svelte create mode 100644 src/components/ui/dropdown-menu/dropdown-menu-item.svelte create mode 100644 src/components/ui/dropdown-menu/dropdown-menu-label.svelte create mode 100644 src/components/ui/dropdown-menu/dropdown-menu-separator.svelte create mode 100644 src/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte create mode 100644 src/components/ui/dropdown-menu/dropdown-menu-trigger.svelte create mode 100644 src/components/ui/dropdown-menu/index.ts diff --git a/src/components/ui/dropdown-menu/dropdown-menu-content.svelte b/src/components/ui/dropdown-menu/dropdown-menu-content.svelte new file mode 100644 index 0000000..d0d9864 --- /dev/null +++ b/src/components/ui/dropdown-menu/dropdown-menu-content.svelte @@ -0,0 +1,27 @@ + + + + + diff --git a/src/components/ui/dropdown-menu/dropdown-menu-group.svelte b/src/components/ui/dropdown-menu/dropdown-menu-group.svelte new file mode 100644 index 0000000..2473b77 --- /dev/null +++ b/src/components/ui/dropdown-menu/dropdown-menu-group.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/components/ui/dropdown-menu/dropdown-menu-item.svelte b/src/components/ui/dropdown-menu/dropdown-menu-item.svelte new file mode 100644 index 0000000..4287a08 --- /dev/null +++ b/src/components/ui/dropdown-menu/dropdown-menu-item.svelte @@ -0,0 +1,27 @@ + + + diff --git a/src/components/ui/dropdown-menu/dropdown-menu-label.svelte b/src/components/ui/dropdown-menu/dropdown-menu-label.svelte new file mode 100644 index 0000000..a32cf94 --- /dev/null +++ b/src/components/ui/dropdown-menu/dropdown-menu-label.svelte @@ -0,0 +1,25 @@ + + +
+ {@render children?.()} +
diff --git a/src/components/ui/dropdown-menu/dropdown-menu-separator.svelte b/src/components/ui/dropdown-menu/dropdown-menu-separator.svelte new file mode 100644 index 0000000..cd8cb1e --- /dev/null +++ b/src/components/ui/dropdown-menu/dropdown-menu-separator.svelte @@ -0,0 +1,17 @@ + + + diff --git a/src/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte b/src/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte new file mode 100644 index 0000000..fc78b73 --- /dev/null +++ b/src/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte @@ -0,0 +1,24 @@ + + + + {@render children?.()} + diff --git a/src/components/ui/dropdown-menu/dropdown-menu-trigger.svelte b/src/components/ui/dropdown-menu/dropdown-menu-trigger.svelte new file mode 100644 index 0000000..a52fb99 --- /dev/null +++ b/src/components/ui/dropdown-menu/dropdown-menu-trigger.svelte @@ -0,0 +1,14 @@ + + + diff --git a/src/components/ui/dropdown-menu/index.ts b/src/components/ui/dropdown-menu/index.ts new file mode 100644 index 0000000..06eafa0 --- /dev/null +++ b/src/components/ui/dropdown-menu/index.ts @@ -0,0 +1,33 @@ +import { DropdownMenu as DropdownMenuPrimitive } from "bits-ui"; + +import Item from "./dropdown-menu-item.svelte"; +import Label from "./dropdown-menu-label.svelte"; +import Group from "./dropdown-menu-group.svelte"; +import Trigger from "./dropdown-menu-trigger.svelte"; +import Content from "./dropdown-menu-content.svelte"; +import Shortcut from "./dropdown-menu-shortcut.svelte"; +import Separator from "./dropdown-menu-separator.svelte"; + +const Sub = DropdownMenuPrimitive.Sub; +const Root = DropdownMenuPrimitive.Root; + +export { + Content, + Root as DropdownMenu, + Content as DropdownMenuContent, + Group as DropdownMenuGroup, + Item as DropdownMenuItem, + Separator as DropdownMenuSeparator, + Shortcut as DropdownMenuShortcut, + Label as DropdownMenuLabel, + Sub as DropdownMenuSub, + Trigger as DropdownMenuTrigger, + Group, + Item, + Root, + Separator, + Shortcut, + Sub, + Trigger, + Label, +};