@praxisui/dynamic-fields 9.0.0-beta.20 → 9.0.0-beta.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/ai/component-registry.json +910 -10
- package/docs/dynamic-fields-field-catalog.md +1 -1
- package/docs/dynamic-fields-field-selection-guide.md +27 -3
- package/fesm2022/praxisui-dynamic-fields.mjs +318 -43
- package/package.json +3 -3
- package/src/lib/components/field-shell/praxis-field-shell.json-api.md +33 -3
- package/src/lib/components/material-checkbox-group/pdx-material-checkbox-group.json-api.md +5 -3
- package/types/praxisui-dynamic-fields.d.ts +3 -0
|
@@ -179,7 +179,7 @@ Use `stateInitialValues` apenas quando o valor do preset precisa continuar coere
|
|
|
179
179
|
|
|
180
180
|
| Field | controlType | Quando usar | Quando evitar | Valor esperado | Snippet | Detail doc |
|
|
181
181
|
| ------------- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------ | ----------------------------- | ------------------------------------------------------------------------------- | ----------------------------------------- |
|
|
182
|
-
| Checkbox | <span id="checkbox"></span>`checkbox` | booleano simples com `selectionMode: 'boolean'` ou
|
|
182
|
+
| Checkbox | <span id="checkbox"></span>`checkbox` | booleano simples com `selectionMode: 'boolean'` ou múltiplas escolhas com `selectionMode: 'multiple'`; em migrações, flags `S`/`N` e `1`/`0` são normalizadas no modo booleano | contrato novo sem `selectionMode`; escolha única | `boolean \| unknown[]` | `{ name: 'privacyConsent', controlType: 'checkbox', selectionMode: 'boolean' }` | `pdx-material-checkbox-group.json-api.md` |
|
|
183
183
|
| Radio group | <span id="radio"></span>`radio` | escolha unica explicita com `selectionMode: 'single'` | muitas opcoes/espaco restrito | `string \| number \| boolean` | `{ name: 'priority', controlType: 'radio', selectionMode: 'single' }` | `pdx-material-radio-group.json-api.md` |
|
|
184
184
|
| Toggle | <span id="toggle"></span>`toggle` | booleano binario | multiplos estados | `boolean` | `{ name: 'active', controlType: 'toggle' }` | `pdx-material-slide-toggle.json-api.md` |
|
|
185
185
|
| Button toggle | <span id="buttontoggle"></span>`buttonToggle` | escolha segmentada curta | listas longas | `string \| number` | `{ name: 'mode', controlType: 'buttonToggle' }` | `pdx-material-button-toggle.json-api.md` |
|
|
@@ -37,7 +37,7 @@ keywords:
|
|
|
37
37
|
- "select vs autocomplete"
|
|
38
38
|
- "custom host field"
|
|
39
39
|
- "inline filter"
|
|
40
|
-
last_updated: "2026-06-
|
|
40
|
+
last_updated: "2026-06-25"
|
|
41
41
|
---
|
|
42
42
|
|
|
43
43
|
# Dynamic Fields Field Selection Guide
|
|
@@ -187,7 +187,29 @@ Se o caso e filtro corporativo compacto, consulte:
|
|
|
187
187
|
- [Dynamic Fields Inline Filter Catalog](./dynamic-fields-inline-filter-catalog.md)
|
|
188
188
|
- [Dynamic Fields Inline Components Guide](./dynamic-fields-inline-components-guide.md)
|
|
189
189
|
|
|
190
|
-
## 6.
|
|
190
|
+
## 6. Presentation mode vs chart widget
|
|
191
|
+
|
|
192
|
+
`presentation.presenter = 'microVisualization'` nao e um `controlType`. Use esse presenter quando o campo ja tem valor no `FormControl`, mas a surface readonly precisa mostrar um indicador compacto e escaneavel.
|
|
193
|
+
|
|
194
|
+
Use `microVisualization` quando:
|
|
195
|
+
|
|
196
|
+
- a surface e `form-presentation`, `table-cell`, `list-item`, `object-header` ou `card-summary`;
|
|
197
|
+
- a leitura precisa caber em celula, linha, drawer ou detalhe compacto;
|
|
198
|
+
- o indicador e pequeno, como `comparison`, `stackedBar`, `bullet` ou `delta`;
|
|
199
|
+
- a mesma semantica deve ser dirigida por `presentationRules` e Json Logic sem mutar o valor do campo.
|
|
200
|
+
|
|
201
|
+
Use `@praxisui/charts` quando:
|
|
202
|
+
|
|
203
|
+
- o usuario precisa interagir com grafico, legenda, tooltip analitico ou drilldown;
|
|
204
|
+
- o grafico ocupa card, dashboard, cockpit ou modal dedicado;
|
|
205
|
+
- a visualizacao depende de series maiores, eixos, zoom ou agregacoes vindas de endpoint analitico.
|
|
206
|
+
|
|
207
|
+
Use `rich-content` quando:
|
|
208
|
+
|
|
209
|
+
- o bloco mistura timeline, record summary, property sheet, progresso, badges e textos;
|
|
210
|
+
- a surface de detalhe precisa composicao editorial, nao apenas um valor de campo.
|
|
211
|
+
|
|
212
|
+
## 7. Decision table
|
|
191
213
|
|
|
192
214
|
| Question | Prefer |
|
|
193
215
|
| --- | --- |
|
|
@@ -211,12 +233,14 @@ Se o caso e filtro corporativo compacto, consulte:
|
|
|
211
233
|
| ha uma colecao repetivel de objetos? | `array` |
|
|
212
234
|
| ha anexos? | `upload` |
|
|
213
235
|
| o controle e acao, nao dado? | `button` |
|
|
236
|
+
| o valor readonly precisa de indicador compacto em celula/lista/formulario? | `presentation.presenter = "microVisualization"` |
|
|
214
237
|
| nada do catalogo resolve sem gambiarra? | field custom do host |
|
|
215
238
|
|
|
216
|
-
##
|
|
239
|
+
## 8. Enterprise recommendations
|
|
217
240
|
|
|
218
241
|
- prefira nomes canonicos de `controlType`; deixe aliases apenas para compatibilidade;
|
|
219
242
|
- nao use inline filter controls em formularios normais para “economizar espaco”;
|
|
243
|
+
- nao crie `controlType` local para indicadores readonly; use `presentation.presenter` e `presentation.visualization` quando a semantica for de apresentacao;
|
|
220
244
|
- para campos remotos, explicite origem de dados e comportamento de busca;
|
|
221
245
|
- para entidades de negocio, use `entityLookup` com `optionSource.type = RESOURCE_ENTITY`, `byIds`, `dependsOn`, `dependencyFilterMap` e `selectionPolicy` quando a selecao depender de status, permissao ou contexto;
|
|
222
246
|
- para colecoes repetiveis, use `array` com `array.itemSchema.fields` em vez de criar campos numerados como `item1`, `item2`, `item3`;
|