@rsc-labs/nocto-plugin-system
Version:
Pluggable registry system for Nocto plugins
34 lines (33 loc) • 851 B
TypeScript
import { NoctoPluginDefinition } from "../types/nocto-plugin";
export type SidebarItem = {
path: string;
label: string;
icon?: React.ComponentType<{
className?: string;
}>;
permissions?: string[];
items?: SidebarItem[];
};
type FinalSidebarItem = {
id: string;
path: string;
label: string;
icon?: React.ComponentType<{
className?: string;
}>;
order: number;
permissions?: string[];
items?: SidebarItem[];
};
type SidebarConfigMap = Record<string, {
order?: number;
}>;
declare class SidebarRegistryClass {
private sidebarConfig;
setConfig(config: SidebarConfigMap): void;
register(plugin: NoctoPluginDefinition): void;
getAll(): FinalSidebarItem[];
getSorted(): FinalSidebarItem[];
}
export declare const SidebarRegistry: SidebarRegistryClass;
export {};