Fields
Cada item de tabs[].rows[].columns[] é um DyonaFormField. Sua forma mínima é:
{name: 'firstName', label: 'Nome', type: 'text'}
name identifica o field e seu valor, e deve ser único dentro do formulário. label é o texto visível. type determina qual controle o DYONA Form renderiza.
Tipos disponíveis
| Field type | Finalidade | Valor |
|---|---|---|
text | Entrada de texto em uma linha. | string ou null |
number | Entrada numérica. | number normalizado ou null |
date | Entrada de data. | string ou null |
datetime | Entrada de data e hora. | string ou null |
select | Seleção entre options predefinidas. | string, number ou boolean conforme o value exato de uma option; null ou "" representam ausência de seleção. |
autocomplete | Seleção pesquisável entre options locais ou remotas. | string, number ou boolean; null ou "" representam ausência de seleção. |
checkbox | Entrada booleana. | boolean |
textarea | Entrada de texto multilinha. | string ou null |
email | Entrada de email com validação de formato. | string ou null |
password | Entrada de senha com regras opcionais. | string ou null |
link | Elemento visual de navegação. | Sem valor de formulário |
label | Elemento visual informativo. | Sem valor de formulário |
Exemplos mínimos
// text
{name: 'name', label: 'Nome', type: 'text'}
// number
{name: 'quantity', label: 'Quantidade', type: 'number'}
// date
{name: 'startDate', label: 'Data de início', type: 'date'}
// datetime
{name: 'scheduledAt', label: 'Agendado para', type: 'datetime'}
// select
{name: 'status', label: 'Status', type: 'select', options: [
{value: 'active', label: 'Ativo'},
{value: 'inactive', label: 'Inativo'},
]}
// autocomplete: options locais
{name: 'country', label: 'País', type: 'autocomplete', options: [
{value: 'ar', label: 'Argentina'},
{value: 'br', label: 'Brasil'},
]}
// checkbox
{name: 'active', label: 'Ativo', type: 'checkbox'}
// textarea
{name: 'notes', label: 'Notas', type: 'textarea'}
// email
{name: 'email', label: 'Email', type: 'email'}
// password
{name: 'password', label: 'Senha', type: 'password'}
// link
{name: 'help', label: 'Ver ajuda', type: 'link', url: '/help', target: '_self'}
// label
{name: 'statusInfo', label: 'Status do cliente', type: 'label', severity: 'info'}
password pode usar passwordRules opcionais; consulte Validation para detalhes de validação. Este overview cobre deliberadamente apenas options locais de autocomplete.
link e label são visuais, não dados
link e label são fields visuais e não representam dados do formulário. Ambos mantêm um name para identidade, layout e condições dentro do schema, mas nenhum cria uma chave em DyonaFormValues, pode aparecer em initialValues nem é incluído em onSubmit. link representa navegação; label representa informação visual. label pode usar severity: info, success, warning ou error; info é o valor padrão. Consulte Label para a documentação específica de label.
Valores do formulário
Os fields de dados produzem entradas em DyonaFormValues:
{
name: 'Ada',
quantity: 3,
active: true,
}
Um number pode ser editado internamente como texto, mas o DYONA Form normaliza seu valor antes de onSubmit. Esta página se concentra no contrato dos fields.
Propriedades comuns
Muitos fields podem compartilhar propriedades como required, disabled, readOnly, visible, fullWidth, tooltip, grid, placeholder, helperText, defaultValue, visibleWhen, requiredWhen e validations.
Elas não são todas válidas para cada field type. Algumas dependem do tipo, e tanto link quanto label têm restrições específicas; nem todas as propriedades comuns são válidas para fields visuais/no-data. Essas propriedades são documentadas progressivamente nas seções correspondentes.