@brickslab/ui-web
Champ texte multi-lignes contrôlé. Supporte label, placeholder, textes d'aide et d'erreur, 3 tailles, compteur de caractères et autoResize. Aucun 'use client' dans ui-web — le composant est entièrement contrôlé via props.
Aperçu
textarea basique · placeholder
Tailles
sm · md · lg
Rows
rows=2 · rows=6
AutoResize
grandit avec le contenu, ne rétrécit pas sous rows
Compteur de caractères
maxLength active le compteur — rouge à la limite
États
error · disabled · readOnly
Redimensionnement
resize="none" · resize="vertical" (défaut) · resize="both"
Label et texte d'aide
label · helperText · required (astérisque)
Pleine largeur
fullWidth — s'étire à 100% du conteneur
Props
| Prop | Type | Défaut | Requis | Description |
|---|---|---|---|---|
value | string | — | ✓ | Valeur contrôlée du textarea. |
onChange | (value: string) => void | — | ✓ | Callback déclenché à chaque frappe, reçoit la valeur string. |
label | string | — | — | Label affiché au-dessus du textarea, lié via htmlFor. |
placeholder | string | — | — | Texte indicatif affiché quand le textarea est vide. |
helperText | string | — | — | Texte d'aide affiché sous le textarea (en muted). Masqué si errorText est présent. |
errorText | string | — | — | Message d'erreur affiché sous le textarea (en rouge). Active aussi la bordure rouge. |
disabled | boolean | false | — | Désactive le textarea (opacité 0.5, curseur not-allowed). |
readOnly | boolean | false | — | Rend le textarea en lecture seule. |
size | "sm" | "md" | "lg" | "md" | — | Taille du textarea (padding et taille de police). |
fullWidth | boolean | false | — | Étire le textarea à 100% de la largeur du conteneur. |
rows | number | 4 | — | Nombre de lignes visibles par défaut. |
maxLength | number | — | — | Longueur maximale. Active le compteur {length}/{maxLength} si fourni. |
resize | "none" | "vertical" | "both" | "vertical" | — | Contrôle la poignée de redimensionnement CSS. Ignoré si autoResize est actif. |
autoResize | boolean | false | — | Ajuste automatiquement la hauteur au contenu via scrollHeight. |
id | string | — | — | ID HTML du textarea. Auto-généré via React.useId() si non fourni. |
name | string | — | — | Nom du champ pour les formulaires HTML natifs. |
required | boolean | false | — | Marque le champ comme requis (astérisque rouge sur le label). |