UNPKG

@stacksjs/stx

Version:

A performant UI Framework. Powered by Bun.

129 lines (128 loc) 2.69 kB
/** * Component prop definition for validation */ export declare interface PropDefinition { type: PropType | PropType[] required?: boolean default?: unknown validator?: (value: unknown) => boolean } /** * Component props schema for validation * * @example * ```typescript * const alertProps: ComponentPropsSchema = { * title: { type: 'string', required: true }, * type: { type: 'string', default: 'info' }, * dismissible: { type: 'boolean', default: false } * } * ``` */ export declare interface ComponentPropsSchema { } /** * Component definition with metadata */ export declare interface ComponentDefinition { name: string path?: string props?: ComponentPropsSchema description?: string } /** * Component configuration */ export declare interface ComponentConfig { validateProps?: boolean components?: Record<string, ComponentDefinition> } /** * Web component definition */ export declare interface WebComponent { name: string tag: string file: string extends?: string shadowDOM?: boolean template?: boolean styleSource?: string attributes?: string[] description?: string outputFormat?: 'js' | 'ts' attributeTypes?: Record<string, 'string' | 'number' | 'boolean' | 'object'> } /** * Web components configuration */ export declare interface WebComponentConfig { enabled: boolean outputDir: string components: WebComponent[] } /** * Component property documentation */ export declare interface ComponentPropDoc { name: string type?: string required?: boolean default?: string description?: string } /** * Component documentation */ export declare interface ComponentDoc { name: string path: string description?: string props: ComponentPropDoc[] example?: string isWebComponent?: boolean tag?: string } /** * Template documentation */ export declare interface TemplateDoc { name: string path: string description?: string components?: string[] directives?: string[] } /** * Directive documentation */ export declare interface DirectiveDoc { name: string description?: string hasEndTag: boolean example?: string } /** * Documentation generator configuration */ export declare interface DocGeneratorConfig { enabled: boolean outputDir: string format: DocFormat components: boolean templates: boolean directives: boolean extraContent?: string template?: string } /** * Component System Types */ /** * Prop type definition for component prop validation */ export type PropType = 'string' | 'number' | 'boolean' | 'array' | 'object' | 'function' | 'any' /** * Documentation format options */ export type DocFormat = 'markdown' | 'html' | 'json'