fumadocs-ui
Version:
The Radix UI version of Fumadocs UI
61 lines • 2.3 kB
TypeScript
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 };