UNPKG

zod-form-kit

Version:

UI-agnostic form generation library based on Zod schemas with extensible adapter pattern

25 lines (24 loc) 1.41 kB
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 {};