import { FlatTemplatable } from "tempstream"; import { FormField } from "../fields/field.js"; import { FieldValueType } from "../form-types.js"; import { FormControl, FormControlContext } from "./form-control.js"; export type FormFieldsToTypes = { [Index in keyof FormFields]: FormFields[Index] extends FormField ? FieldValueType : never; }; export abstract class FormFieldControl extends FormControl { role = "input"; constructor(public fields: FormField[]) { super(); } abstract render( fctx: FormControlContext ): FlatTemplatable | Promise; }