Catalogue des FieldType
Field ne réimplémente aucun contrôle. Il choisit un composant autonome en fonction de type, lui transmet la valeur et connecte les informations ARIA.
Types et composants
| FieldType | Composant réellement rendu |
|---|---|
text | Input type="text" |
textarea | Textarea |
email | Input type="email" |
password | Input type="password" |
phone | Input type="tel" |
number | Input type="number" |
currency | CurrencyInput |
date | DatePicker |
time | TimePicker |
datetime | DateTimePicker |
select | Select |
multiselect | MultiSelect |
radio | RadioGroup et Radio |
checkbox | Checkbox |
switch | Switch |
file | FileUpload |
image | ImageUpload |
slider | Slider |
rating | Rating |
color | ColorPicker |
rich-text | RichTextEditor |
markdown | MarkdownEditor |
json | JsonEditor |
otp | OtpInput |
tags | TagsInput |
autocomplete | Autocomplete |
reference | ReferenceSelect |
hidden | Input type="hidden" sans structure visuelle |
API déclarative
tsx
<Field type="currency" label="Montant" controlProps={{ currency: "XAF" }} />
<Field
type="multiselect"
label="Rôles"
options={roles}
value={selectedRoles}
onValueChange={setSelectedRoles}
/>
<Field
type="reference"
label="Client"
referenceOptions={clients}
onValueChange={setClientId}
/>Valeurs
- texte et sélections simples :
string; - nombre, devise, slider et rating :
number; - checkbox et switch :
boolean; - multiselect et tags :
string[]; - datetime :
{ date: string; time: string }; - file :
File[]; - image :
File | null.
onValueChange utilise l'union FieldValue. Les composants autonomes gardent leurs callbacks plus précis lorsqu'ils sont utilisés directement.
Personnalisation
controlProps transmet les options avancées au composant rendu, par exemple la devise, la longueur d'un OTP, le nombre maximal de tags ou le renderer de prévisualisation Markdown.
Le mode historique reste possible pour les contrôles externes:
tsx
<Field label="Contrôle propriétaire">
<MyCustomControl />
</Field>