@vuepress-reco/style-default
Version:
It is default type of vuepress-theme-reco.
46 lines (45 loc) • 1.31 kB
TypeScript
/**
* Base nav item, displayed as text
*/
export interface NavItem {
text: string;
ariaLabel?: string;
}
/**
* Base nav group, has nav items children
*/
export interface NavGroup<T> extends NavItem {
children: T[];
}
/**
* Props for `<NavLink>`
*/
export interface NavLink extends NavItem {
link: string;
rel?: string;
target?: string;
}
/**
* Navbar types
*/
export declare type NavbarItem = NavLink;
export declare type NavbarGroup = NavGroup<NavbarGroup | NavbarItem | string>;
export declare type NavbarConfig = (NavbarItem | NavbarGroup | string)[];
export declare type ResolvedNavbarItem = NavbarItem | NavGroup<ResolvedNavbarItem>;
/**
* Sidebar types
*/
export interface SidebarItem extends NavLink, NavGroup<NavLink | SidebarItem | string> {
isGroup?: false;
}
export interface SidebarGroup extends NavGroup<SidebarGroup | NavLink | SidebarItem | string> {
isGroup: true;
}
export declare type SidebarConfigArray = (SidebarGroup | SidebarItem | string)[];
export declare type SidebarConfigObject = Record<string, SidebarConfigArray>;
export declare type SidebarConfig = SidebarConfigArray | SidebarConfigObject;
export interface ResolvedSidebarItem extends Partial<NavLink> {
level?: number;
isGroup?: boolean;
children?: ResolvedSidebarItem[];
}