UNPKG

fumadocs-ui

Version:

The framework for building a documentation website in Next.js

34 lines (33 loc) 2.18 kB
'use client'; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; import { Sidebar as SidebarIcon } from '../icons.js'; import { cn } from '../utils/cn.js'; import { buttonVariants } from '../components/ui/button.js'; import { useSidebar } from '../contexts/sidebar.js'; import { useNav } from '../contexts/layout.js'; import { SidebarCollapseTrigger } from '../components/layout/sidebar.js'; import { SearchToggle } from '../components/layout/search-toggle.js'; export function Navbar(props) { const { isTransparent } = useNav(); return (_jsx("header", { id: "nd-subnav", ...props, className: cn('fixed top-(--fd-banner-height) inset-x-0 z-30 flex items-center ps-4 pe-2.5 border-b transition-colors backdrop-blur-sm', !isTransparent && 'bg-fd-background/80', props.className), children: props.children })); } export function LayoutBody(props) { const { collapsed } = useSidebar(); return (_jsx("main", { id: "nd-docs-layout", ...props, className: cn('flex flex-1 flex-col pt-(--fd-nav-height) transition-[padding]', props.className), style: { ...props.style, paddingInlineStart: collapsed ? 'min(calc(100vw - var(--fd-page-width)), var(--fd-sidebar-width))' : 'calc(var(--fd-sidebar-width) + var(--fd-layout-offset))', paddingInlineEnd: collapsed ? '0px' : 'var(--fd-layout-offset)', }, children: props.children })); } export function CollapsibleControl() { const { collapsed } = useSidebar(); return (_jsxs("div", { className: cn('fixed flex shadow-lg transition-opacity rounded-xl p-0.5 border bg-fd-muted text-fd-muted-foreground z-10 max-md:hidden xl:start-4 max-xl:end-4', !collapsed && 'pointer-events-none opacity-0'), style: { top: 'calc(var(--fd-banner-height) + var(--fd-tocnav-height) + var(--spacing) * 4)', }, children: [_jsx(SidebarCollapseTrigger, { className: cn(buttonVariants({ color: 'ghost', size: 'icon-sm', className: 'rounded-lg', })), children: _jsx(SidebarIcon, {}) }), _jsx(SearchToggle, { className: "rounded-lg", hideIfDisabled: true })] })); }