/** * FlowDrop Form Code Editor Module * * Adds CodeMirror-based code/JSON editor support to SchemaForm. * This module bundles CodeMirror dependencies (~300KB). * * @module form/code * * @example * ```typescript * import { SchemaForm } from "@flowdrop/flowdrop/form"; * import { registerCodeEditorField, registerTemplateEditorField } from "@flowdrop/flowdrop/form/code"; * * // Register code editor support (call once at app startup) * registerCodeEditorField(); * * // Optionally also register template editor * registerTemplateEditorField(); * * // Now SchemaForm will render code editors for format: "json", "code", or "template" * ``` */ import type { FieldComponent } from './fieldRegistry.js'; import type { FieldSchema } from '../components/form/types.js'; export { default as FormCodeEditor } from '../components/form/FormCodeEditor.svelte'; export { default as FormTemplateEditor } from '../components/form/FormTemplateEditor.svelte'; export type { CodeEditorFieldProps, TemplateEditorFieldProps } from '../components/form/types.js'; /** * Matcher for code/JSON editor fields * Matches: format "json", "code", or type "object" without specific format */ export declare function codeEditorFieldMatcher(schema: FieldSchema): boolean; /** * Matcher for template editor fields * Matches: format "template" (Twig/Liquid-style templates) */ export declare function templateEditorFieldMatcher(schema: FieldSchema): boolean; /** * Register the code/JSON editor field component * * Call this function once at application startup to enable * code editor fields in SchemaForm. This loads CodeMirror dependencies. * * @param priority - Priority for field matching (default: 100) * * @example * ```typescript * // In your app's entry point: * import { registerCodeEditorField } from "@flowdrop/flowdrop/form/code"; * * registerCodeEditorField(); * ``` */ export declare function registerCodeEditorField(priority?: number): void; /** * Register the template editor field component * * Call this function once at application startup to enable * template editor fields (Twig/Liquid syntax) in SchemaForm. * * @param priority - Priority for field matching (default: 100) * * @example * ```typescript * // In your app's entry point: * import { registerTemplateEditorField } from "@flowdrop/flowdrop/form/code"; * * registerTemplateEditorField(); * ``` */ export declare function registerTemplateEditorField(priority?: number): void; /** * Register all code-related editor fields (code + template) * * Convenience function to register both code editor types at once. * * @param priority - Priority for field matching (default: 100) */ export declare function registerAllCodeEditors(priority?: number): void; /** * Synchronously register code editor field using the imported component * * Use this when you've already imported the component and want immediate registration. * * @param priority - Priority for field matching (default: 100) * * @example * ```typescript * import { registerCodeEditorFieldWithComponent, FormCodeEditor } from "@flowdrop/flowdrop/form/code"; * registerCodeEditorFieldWithComponent(FormCodeEditor); * ``` */ export declare function registerCodeEditorFieldWithComponent(component: FieldComponent, priority?: number): void; /** * Check if code editor field is registered */ export declare function isCodeEditorRegistered(): boolean; /** * Check if template editor field is registered */ export declare function isTemplateEditorRegistered(): boolean;