Input

A text field that knows whether it is inside a Field and a Form, and binds accordingly.

One code path, not two. The value is read from `Form` when the control sits
in a named `Field`, and from `bind:value` otherwise — but the `<input>`
element itself is written once, so its attributes cannot drift apart between
the two cases.

`Textarea` is the same component with a different element and a `rows` prop.

> **The browser validates before you do.** `type="email"` means a malformed
> address is refused before the request is ever made, so your server-side email
> rule never runs. That is standard HTML behaviour and usually what you want,
> but the two validations do not agree about *when* they apply. Use
> `type="text"` with `inputmode="email"` if the server should be the only judge.