Ir al contenido

Arquitectura

MLForm separa cinco trabajos:

PiezaImportSe encarga de
Kitmlform/kitMontaje en apps, UI por defecto, helpers de layout.
Runtimemlform/runtimeEstado, validacion, condiciones, submit, estado de reports.
Schemamlform/schemaContratos de campos y reports compartidos por UI y backend.
Primitivesmlform/primitivesWeb Components para campos, reports, errores y submit.
Design systemmlform/designThemes, recipes, tokens e integracion con el host.

La mayoria de apps empieza con mountForm() desde kit.

import { mountForm } from "mlform/kit";
import type { FormSchema } from "mlform/schema";
import { createJsonTransport } from "mlform/transport";
const schema: FormSchema = {
fields: [{ id: "prompt", kind: "text", label: "Prompt" }],
};
mountForm(container, {
schema,
transport: createJsonTransport({ endpoint: "/predict" }),
});

Usa createFormView() cuando MLForm debe mantener estado y validacion, pero tu app pinta el layout. Usa createForm() desde runtime cuando no quieres la UI del kit.

La frontera importante: schema dice que significa el formulario, layout dice como se organiza, transport dice adonde van los valores, primitives dice que piezas UI renderizan los descriptores de fields y reports.