Popsané textové pole: popisek, nápověda, chyba, jednotka. Pro ruční formuláře, které pole nemají odkud odvodit.
<label> + <input>.affix, nikdy do placeholder — placeholder zmizí, jakmile uživatel začne psát, a s ním i to, v čem se ta hodnota měří.error zapne error stav i aria-invalid jedním textem, takže se nedá udělat červené pole bez vysvětlení.mono přepne na mono a tabular-nums.IngotForm nad IngotFieldSpec[]: pole, která nikdo neopsal rukou, se nemůžou se schématem rozejít. Tahle komponenta je opačná větev — rukou psaný formulář, kde žádné schéma není.IngotFieldInput.<dl> / <dt> / <dd>), ne disabled. To je pro pole, které se ODEMKNE — dočasně, ne navždy.type: "text" | "number" | "password" | "email" | "url" | "tel" | "textarea" — Jakou klávesnici a masku nabídne prohlížeč. textarea je totéž pole na několik řádků.rows: number — Výška textarea v řádcích. Ostatní typy ji ignorují.label: ReactNode — Podstatné jméno bez dvojtečky („Počet kusů“).value: string — Řízená hodnota vstupu.onChange: (next: string) => void — Dostane rovnou text, ne událost.hint: ReactNode — Celá věta s tečkou pod polem.error: ReactNode — Text chyby. Jeho přítomnost zapíná error stav i aria-invalid.affix: ReactNode — Jednotka nebo měna uvnitř rámečku („ks“, „%“).mono: boolean — Mono a tabular-nums pro kódy a čísla.optionalLabel: ReactNode — Přeložené „— nepovinné“ vedle popisku.placeholder: string — Příklad hodnoty, nikdy popisek ani jednotka.required: boolean — Nativní required vstupu.disabled: boolean — Dočasně zamčené pole — ne způsob, jak ukázat hodnotu.testId: string — data-testid vstupu, ne obalu — testy sahají na to, co se ovládá.