From 5936aedd3d853514a31ebece23175255fb2415c3 Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Mon, 31 Aug 2026 17:00:12 +1200 Subject: Initial commit --- components/ui/navigation-menu.tsx | 168 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 components/ui/navigation-menu.tsx (limited to 'components/ui/navigation-menu.tsx') diff --git a/components/ui/navigation-menu.tsx b/components/ui/navigation-menu.tsx new file mode 100644 index 0000000..5958637 --- /dev/null +++ b/components/ui/navigation-menu.tsx @@ -0,0 +1,168 @@ +import { NavigationMenu as NavigationMenuPrimitive } from "@base-ui/react/navigation-menu" +import { cva } from "class-variance-authority" + +import { cn } from "@/lib/utils" +import { ChevronDownIcon } from "lucide-react" + +function NavigationMenu({ + align = "start", + className, + children, + ...props +}: NavigationMenuPrimitive.Root.Props & + Pick) { + return ( + + {children} + + + ) +} + +function NavigationMenuList({ + className, + ...props +}: React.ComponentPropsWithRef) { + return ( + + ) +} + +function NavigationMenuItem({ + className, + ...props +}: React.ComponentPropsWithRef) { + return ( + + ) +} + +const navigationMenuTriggerStyle = cva( + "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted" +) + +function NavigationMenuTrigger({ + className, + children, + ...props +}: NavigationMenuPrimitive.Trigger.Props) { + return ( + + {children}{" "} + + ) +} + +function NavigationMenuContent({ + className, + ...props +}: NavigationMenuPrimitive.Content.Props) { + return ( + + ) +} + +function NavigationMenuPositioner({ + className, + side = "bottom", + sideOffset = 8, + align = "start", + alignOffset = 0, + ...props +}: NavigationMenuPrimitive.Positioner.Props) { + return ( + + + + + + + + ) +} + +function NavigationMenuLink({ + className, + ...props +}: NavigationMenuPrimitive.Link.Props) { + return ( + + ) +} + +function NavigationMenuIndicator({ + className, + ...props +}: React.ComponentPropsWithRef) { + return ( + +
+ + ) +} + +export { + NavigationMenu, + NavigationMenuContent, + NavigationMenuIndicator, + NavigationMenuItem, + NavigationMenuLink, + NavigationMenuList, + NavigationMenuTrigger, + navigationMenuTriggerStyle, + NavigationMenuPositioner, +} -- cgit v1.2.3