import type { ReactNode } from "react"; import type { RegistrationSchema, TypedRegistrationSchema } from "@bota-apps/types"; import type { FeatureBoundary } from "@bota-apps/types/fm"; import type { FormValidationMessages } from "./zodBuilder.js"; import type { ComboboxOptionsMap } from "./fieldRenderer.js"; type DynamicFormProps = Record> = { schema: TypedRegistrationSchema | RegistrationSchema; onSubmit: (values: T) => void | Promise; /** * Runs the submit under a pre-bound feature boundary — `scope.boundary({...})` * from fm — which owns error classification, success/error toasts, tracking, and * post-success reactions, so `onSubmit` can be the bare mutation. The contract * comes from @bota-apps/types/fm; react-ui never imports the fm runtime. */ featureScope?: FeatureBoundary; onCancel?: () => void; isPending?: boolean; submitLabel?: string; cancelLabel?: string; initialValues?: Partial; /** Optional content rendered between field sections and submit buttons */ children?: ReactNode; /** Form layout: "default" stacks all sections, "tabs" shows one section at a time via tab nav, "inline" renders fields horizontally (for filter bars) */ layout?: "default" | "tabs" | "inline"; /** Visual density: "default" for standard forms, "compact" for tighter spacing */ size?: "default" | "compact"; /** Runtime options for combobox fields, keyed by field name */ comboboxOptions?: ComboboxOptionsMap; /** Override validation messages (e.g. for translation). Defaults are English. */ validationMessages?: FormValidationMessages; }; export declare function DynamicForm = Record>({ schema, onSubmit, featureScope, onCancel, isPending, submitLabel, cancelLabel, initialValues, children, layout, size, comboboxOptions, validationMessages, }: DynamicFormProps): import("react").JSX.Element; export * from "./fieldRenderer.js"; export * from "./schemaSelector.js"; export * from "./tabbedSections.js"; export * from "./zodBuilder.js"; export * from "./normalizer.js"; //# sourceMappingURL=index.d.ts.map