@neosjs/vitepress-theme
Version:
NeosJS VitePress theme
39 lines (38 loc) • 1.32 kB
TypeScript
import type { DefaultTheme } from 'vitepress/theme';
import { type ComputedRef, type Ref } from 'vue';
export interface SidebarControl {
collapsed: Ref<boolean>;
collapsible: ComputedRef<boolean>;
isLink: ComputedRef<boolean>;
isActiveLink: Ref<boolean>;
hasActiveLink: ComputedRef<boolean>;
hasChildren: ComputedRef<boolean>;
toggle: () => void;
}
export declare function useSidebar(): {
isOpen: Ref<boolean>;
sidebar: Ref<{
text?: string;
link?: string;
items?: any[] | undefined;
collapsed?: boolean;
base?: string;
docFooterText?: string;
rel?: string;
target?: string;
}[]>;
sidebarGroups: ComputedRef<DefaultTheme.SidebarItem[]>;
hasSidebar: ComputedRef<boolean>;
hasAside: ComputedRef<boolean>;
leftAside: ComputedRef<boolean>;
isSidebarEnabled: ComputedRef<boolean>;
open: () => void;
close: () => void;
toggle: () => void;
};
/**
* a11y: cache the element that opened the Sidebar (the menu button) then
* focus that button again when Menu is closed with Escape key.
*/
export declare function useCloseSidebarOnEscape(isOpen: Ref<boolean>, close: () => void): void;
export declare function useSidebarControl(item: ComputedRef<DefaultTheme.SidebarItem>): SidebarControl;