zod-form-kit
Version:
UI-agnostic form generation library based on Zod schemas with extensible adapter pattern
25 lines (24 loc) • 1.41 kB
TypeScript
import { ReactNode } from 'react';
import { PluginSystemConfig, FieldType, FieldRendererComponent, UIAdapter, SchemaPatternMatcher, SchemaPatternRenderer } from '../types/plugin-system';
import { z } from 'zod';
interface PluginSystemContextValue {
registerFieldRenderer: (fieldType: FieldType, component: FieldRendererComponent) => void;
registerUIAdapter: (adapter: UIAdapter) => void;
getRegisteredRenderer: (fieldType: FieldType) => FieldRendererComponent | undefined;
getUIAdapter: (adapterName: string) => UIAdapter | undefined;
getDefaultAdapter: () => UIAdapter | undefined;
setDefaultAdapter: (adapterName: string) => void;
registerSchemaPatternRenderer: (id: string, matcher: SchemaPatternMatcher | z.ZodTypeAny, component: SchemaPatternRenderer, priority?: number) => void;
getMatchingPatternRenderer: (zodSchema: z.ZodTypeAny, parsedField: any, formValue?: any) => SchemaPatternRenderer | undefined;
removeSchemaPatternRenderer: (id: string) => boolean;
getAllPatternRenderers: () => any[];
clearPatternRenderers: () => void;
registry: any;
}
interface PluginProviderProps {
children: ReactNode;
config?: PluginSystemConfig;
}
export declare function PluginProvider({ children, config: _config }: PluginProviderProps): import("react/jsx-runtime").JSX.Element;
export declare function usePluginContext(): PluginSystemContextValue;
export {};