Fields
Cada elemento de tabs[].rows[].columns[] es un DyonaFormField. Su forma mínima es:
{name: 'firstName', label: 'Nombre', type: 'text'}
name identifica el field y su valor, y debe ser único dentro del formulario. label es el texto visible. type determina qué control renderiza DYONA Form.
Tipos disponibles
| Field type | Propósito | Valor |
|---|---|---|
text | Entrada de texto de una línea. | string o null |
number | Entrada numérica. | number normalizado o null |
date | Entrada de fecha. | string o null |
datetime | Entrada de fecha y hora. | string o null |
select | Selección entre options predefinidas. | string, number o boolean según el value exacto de una option; null o "" representan ausencia de selección. |
autocomplete | Selección con búsqueda entre options locales o remotas. | string, number o boolean; null o "" representan ausencia de selección. |
checkbox | Entrada booleana. | boolean |
textarea | Entrada de texto multilínea. | string o null |
email | Entrada de email con validación de formato. | string o null |
password | Entrada de contraseña con reglas opcionales. | string o null |
link | Elemento visual de navegación. | Sin valor de formulario |
label | Elemento visual informativo. | Sin valor de formulario |
Ejemplos mínimos
// text
{name: 'name', label: 'Nombre', type: 'text'}
// number
{name: 'quantity', label: 'Cantidad', type: 'number'}
// date
{name: 'startDate', label: 'Fecha de inicio', type: 'date'}
// datetime
{name: 'scheduledAt', label: 'Programado para', type: 'datetime'}
// select
{name: 'status', label: 'Estado', type: 'select', options: [
{value: 'active', label: 'Activo'},
{value: 'inactive', label: 'Inactivo'},
]}
// autocomplete: options locales
{name: 'country', label: 'País', type: 'autocomplete', options: [
{value: 'ar', label: 'Argentina'},
{value: 'br', label: 'Brasil'},
]}
// checkbox
{name: 'active', label: 'Activo', type: 'checkbox'}
// textarea
{name: 'notes', label: 'Notas', type: 'textarea'}
// email
{name: 'email', label: 'Email', type: 'email'}
// password
{name: 'password', label: 'Contraseña', type: 'password'}
// link
{name: 'help', label: 'Ver ayuda', type: 'link', url: '/help', target: '_self'}
// label
{name: 'statusInfo', label: 'Estado del cliente', type: 'label', severity: 'info'}
password puede usar passwordRules opcionales; consultá Validation para los detalles de validación. Este overview cubre deliberadamente solo options locales de autocomplete.
link y label son visuales, no datos
link y label son fields visuales y no representan datos del formulario. Ambos conservan un name para identidad, layout y condiciones dentro del schema, pero ninguno crea una clave en DyonaFormValues, puede aparecer en initialValues ni se incluye en onSubmit. link representa navegación; label representa información visual. label puede usar severity: info, success, warning o error; info es el valor predeterminado. Consultá Label para la documentación específica de label.
Valores del formulario
Los fields de datos producen entradas en DyonaFormValues:
{
name: 'Ada',
quantity: 3,
active: true,
}
Un number puede editarse internamente como texto, pero DYONA Form normaliza su valor antes de onSubmit. Esta página se concentra en el contrato de los fields.
Propiedades comunes
Muchos fields pueden compartir propiedades como required, disabled, readOnly, visible, fullWidth, tooltip, grid, placeholder, helperText, defaultValue, visibleWhen, requiredWhen y validations.
No todas son válidas para cada field type. Algunas dependen del tipo, y tanto link como label tienen restricciones específicas; no todas las propiedades comunes son válidas para fields visuales/no-data. Estas propiedades se documentan progresivamente en las secciones correspondientes.