32 lines
1009 B
TypeScript
32 lines
1009 B
TypeScript
/**
|
|
* Configuration for a section in the WCC Tools sidebar
|
|
*/
|
|
export interface IWccSection {
|
|
/** Display name for the section header */
|
|
name: string;
|
|
/** How items in this section are rendered - 'elements' show demos, 'pages' render directly */
|
|
type: 'elements' | 'pages';
|
|
/** The items in this section - either element classes or page factory functions */
|
|
items: Record<string, any>;
|
|
/** Optional filter function to include/exclude items */
|
|
filter?: (name: string, item: any) => boolean;
|
|
/** Optional sort function for ordering items */
|
|
sort?: (a: [string, any], b: [string, any]) => number;
|
|
/** Optional Material icon name for the section header */
|
|
icon?: string;
|
|
/** Whether this section should start collapsed (default: false) */
|
|
collapsed?: boolean;
|
|
}
|
|
|
|
/**
|
|
* Configuration object for setupWccTools
|
|
*/
|
|
export interface IWccConfig {
|
|
sections: IWccSection[];
|
|
}
|
|
|
|
/**
|
|
* Type for element selection types - now section-based
|
|
*/
|
|
export type TElementType = 'element' | 'page';
|