UNPKG

fumadocs-ui

Version:

The Radix UI version of Fumadocs UI

73 lines (72 loc) 2.32 kB
import { BaseSlots, BaseSlotsProps } from "../shared/client.js"; import { BaseLayoutProps, GetLayoutTabsOptions, LayoutTab, LinkItemType } from "../shared/index.js"; import { TabDropdownProps } from "./slots/tab-dropdown.js"; import { SidebarProps, SidebarProviderProps } from "./slots/sidebar.js"; import { ComponentProps, FC, ReactNode } from "react"; import * as PageTree from "fumadocs-core/page-tree"; import { motion } from "motion/react"; //#region src/layouts/flux/index.d.ts interface DocsSlots extends BaseSlots { container: FC<ComponentProps<'div'>>; tabDropdown: FC<TabDropdownProps>; sidebar: { provider: FC<SidebarProviderProps>; trigger: FC<ComponentProps<'button'>>; root: FC<SidebarProps>; useSidebar: () => { collapsed: boolean; open: boolean; setOpen: (v: boolean) => void; }; }; } interface DocsLayoutProps extends BaseLayoutProps { tree: PageTree.Root; sidebar?: SidebarOptions; tabs?: LayoutTab[] | GetLayoutTabsOptions | false; slots?: Partial<DocsSlots>; renderNavigationPanel?: (props: NavigationPanelProps) => ReactNode; containerProps?: ComponentProps<'div'>; } interface SidebarOptions extends SidebarProps, SidebarProviderProps { enabled?: boolean; /** * @deprecated use layout-level `tabs` instead. */ tabs?: LayoutTab[] | GetLayoutTabsOptions | false; } declare function useFluxLayout(): { props: BaseSlotsProps; menuItems: LinkItemType[]; navItems: LinkItemType[]; slots: DocsSlots; }; declare function DocsLayout(props: DocsLayoutProps): import("react").JSX.Element; interface NavigationPanelProps { head: ReactNode; tabDropdown: ReactNode; tool: ReactNode; link: ReactNode; } declare function NavigationPanel({ head, tabDropdown, tool, link, children, ...props }: NavigationPanelProps & Omit<ComponentProps<typeof motion.div>, 'children'> & { /** * replace default children */ children?: (defaultChildren: ReactNode) => ReactNode; }): import("react").JSX.Element; declare function NavigationPanelOverlay({ enabled, className, ...props }: ComponentProps<typeof motion.div> & { enabled?: boolean; }): import("react").JSX.Element; //#endregion export { DocsLayout, DocsLayoutProps, DocsSlots, NavigationPanel, NavigationPanelOverlay, NavigationPanelProps, useFluxLayout };