Import
import { Form } from "@typed/ui/index";Access Form.InputComponent through the imported Form export. Its declaration below describes the member.
This public exposure is a re-export. Its import path is supported; declaration documentation is shared with the other public exposures below.
Signatures
export type InputComponent<Value> = <const Values extends object, const Options extends InputOptions<Values, Value>, const Host extends HostResult = never>(options: Options & Pick<InputOptions<Values, Value>, "state" | "name">, host?: Dom.HostOverride<Dom.RenderHostProps<Options, InputProps<Values, Value>>, "", Host>) => Fx<RenderEvent, Schema.SchemaError | Renderable.Error<RenderableComponentOptions<Options> | Host>, Renderable.Services<RenderableComponentOptions<Options> | Host> | Scope.Scope | RenderTemplate>;Examples
import { InputComponent, makeState, TextInput } from "@typed/ui/Form"
import { html } from "@typed/template"
import { Effect, Schema } from "effect"
const Text: InputComponent<string> = TextInput
const rendered = Effect.gen(function* () {
const state = yield* makeState(Schema.Struct({ name: Schema.String }), {
values: { name: "" }
})
return Text({ state, name: "name" }, (props) => html`<input ...${props} />`)
})Other public imports
These import paths expose the same declaration. Each page retains its own public name and signature.