fumadocs-ui
Version:
The Radix UI version of Fumadocs UI
44 lines (41 loc) • 2.21 kB
JavaScript
'use client';
import { cn } from "@fumadocs/ui/cn";
import { jsx } from "react/jsx-runtime";
import * as React from "react";
import * as Primitive from "@radix-ui/react-navigation-menu";
//#region src/components/ui/navigation-menu.tsx
const NavigationMenu = Primitive.Root;
const NavigationMenuList = Primitive.List;
const NavigationMenuItem = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(Primitive.NavigationMenuItem, {
ref,
className: cn("list-none", className),
...props,
children
}));
NavigationMenuItem.displayName = Primitive.NavigationMenuItem.displayName;
const NavigationMenuTrigger = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(Primitive.Trigger, {
ref,
className: cn("data-[state=open]:bg-fd-accent/50", className),
...props,
children
}));
NavigationMenuTrigger.displayName = Primitive.Trigger.displayName;
const NavigationMenuContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Primitive.Content, {
ref,
className: cn("absolute inset-x-0 top-0 overflow-auto fd-scroll-container max-h-[80svh] data-[motion=from-end]:animate-fd-enterFromRight data-[motion=from-start]:animate-fd-enterFromLeft data-[motion=to-end]:animate-fd-exitToRight data-[motion=to-start]:animate-fd-exitToLeft", className),
...props
}));
NavigationMenuContent.displayName = Primitive.Content.displayName;
const NavigationMenuLink = Primitive.Link;
const NavigationMenuViewport = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
ref,
className: "flex w-full justify-center",
children: /* @__PURE__ */ jsx(Primitive.Viewport, {
...props,
className: cn("relative h-(--radix-navigation-menu-viewport-height) w-full origin-[top_center] overflow-hidden transition-[width,height] duration-300 data-[state=closed]:animate-fd-nav-menu-out data-[state=open]:animate-fd-nav-menu-in", className)
})
}));
NavigationMenuViewport.displayName = Primitive.Viewport.displayName;
//#endregion
export { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport };
//# sourceMappingURL=navigation-menu.js.map