fumadocs-ui
Version:
The Radix UI version of Fumadocs UI
85 lines • 4.2 kB
TypeScript
import { CollapsibleContentProps, CollapsibleTriggerProps } from "../ui/collapsible.js";
import { ScrollArea, ScrollViewport } from "../ui/scroll-area.js";
import { LinkProps } from "fumadocs-core/link";
import { ComponentProps, PointerEvent, ReactNode, RefObject } from "react";
declare namespace base_d_exports {
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, useAutoScroll, useFolder, useFolderDepth, useSidebar };
}
interface SidebarContext {
open: boolean;
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
collapsed: boolean;
setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;
/**
* When set to false, don't close the sidebar when navigate to another page
*/
closeOnRedirect: RefObject<boolean>;
defaultOpenLevel: number;
prefetch?: boolean;
mode: Mode;
}
interface SidebarProviderProps {
/**
* Open folders by default if their level is lower or equal to a specific level
* (Starting from 1)
*
* @defaultValue 0
*/
defaultOpenLevel?: number;
/**
* Prefetch links, default behaviour depends on your React.js framework.
*/
prefetch?: boolean;
children?: ReactNode;
}
type Mode = 'drawer' | 'full';
declare const SidebarContext: import("react").Context<SidebarContext | null>;
declare function SidebarProvider({ defaultOpenLevel, prefetch, children }: SidebarProviderProps): import("react").JSX.Element;
declare function useSidebar(): SidebarContext;
declare function useFolder(): {
open: boolean;
setOpen: React.Dispatch<React.SetStateAction<boolean>>;
depth: number;
collapsible: boolean;
} | null;
declare function useFolderDepth(): number;
declare function SidebarContent({ mode: allowedMode, children }: {
mode?: Mode | true;
children: (state: {
ref: RefObject<HTMLElement | null>;
collapsed: boolean;
hovered: boolean;
onPointerEnter: (event: PointerEvent) => void;
onPointerLeave: (event: PointerEvent) => void;
}) => ReactNode;
}): ReactNode;
declare function SidebarViewport({ area, viewport, children }: {
area?: ComponentProps<typeof ScrollArea>;
viewport?: ComponentProps<typeof ScrollViewport>;
children: ReactNode;
}): import("react").JSX.Element;
declare function SidebarDrawerOverlay(props: ComponentProps<'div'>): import("react").JSX.Element | undefined;
declare function SidebarDrawerContent({ className, children, ...props }: ComponentProps<'aside'>): import("react").JSX.Element | undefined;
declare function SidebarSeparator(props: ComponentProps<'p'>): import("react").JSX.Element;
declare function SidebarItem({ icon, active, children, ...props }: LinkProps & {
active?: boolean;
icon?: ReactNode;
}): import("react").JSX.Element;
declare function SidebarFolder({ defaultOpen: defaultOpenProp, collapsible, active, children, ...props }: ComponentProps<'div'> & {
active?: boolean;
defaultOpen?: boolean;
collapsible?: boolean;
}): import("react").JSX.Element;
declare function SidebarFolderTrigger({ children, ...props }: CollapsibleTriggerProps): import("react").JSX.Element;
declare function SidebarFolderLink({ children, active, ...props }: LinkProps & {
active?: boolean;
}): import("react").JSX.Element;
declare function SidebarFolderContent(props: CollapsibleContentProps): import("react").JSX.Element;
declare function SidebarTrigger({ children, ...props }: ComponentProps<'button'>): import("react").JSX.Element;
declare function SidebarCollapseTrigger(props: ComponentProps<'button'>): import("react").JSX.Element;
/**
* scroll to the element if `active` is true
*/
declare function useAutoScroll(active: boolean, ref: RefObject<HTMLElement | null>): void;
//#endregion
export { SidebarCollapseTrigger, SidebarContent, SidebarDrawerContent, SidebarDrawerOverlay, SidebarFolder, SidebarFolderContent, SidebarFolderLink, SidebarFolderTrigger, SidebarItem, SidebarProvider, SidebarProviderProps, SidebarSeparator, SidebarTrigger, SidebarViewport, base_d_exports, useAutoScroll, useFolder, useFolderDepth, useSidebar };