@praxisui/dynamic-fields 3.0.0-beta.6 → 3.0.0-beta.8
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 +29 -0
- package/fesm2022/praxisui-dynamic-fields.mjs +31292 -30110
- package/fesm2022/praxisui-dynamic-fields.mjs.map +1 -1
- package/index.d.ts +37 -8
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -64,6 +64,18 @@ last_updated: "2026-03-07"
|
|
|
64
64
|
- Headless UI and design systems
|
|
65
65
|
- Data-driven forms
|
|
66
66
|
|
|
67
|
+
## Value Presentation
|
|
68
|
+
|
|
69
|
+
Em estados read-only/display, `dynamic-fields` prefere o contrato canônico `valuePresentation` quando ele existir no metadata do campo.
|
|
70
|
+
|
|
71
|
+
Regras práticas:
|
|
72
|
+
- use `valuePresentation` para valores escalares de display, como `currency`, `number`, `date`, `datetime`, `time`, `percentage` e `boolean`
|
|
73
|
+
- mantenha `format`, `numericFormat`, `currency`, `numberFormat` e `locale` apenas como bridge legado quando necessário
|
|
74
|
+
- `valuePresentation` não é o contrato certo para ranges, selections e IDs semânticos
|
|
75
|
+
- precedência prática: `field.valuePresentation` -> hints legados mapeáveis -> `localization` da superfície/campo -> `LOCALE_ID`
|
|
76
|
+
- `controlType` ajuda o runtime a inferir fallback quando o metadata antigo ainda é usado, mas não substitui a semântica de apresentação
|
|
77
|
+
- em `presentationMode` puro, o runtime renderiza o valor formatado no shell e evita instanciar o componente interativo escondido, reduzindo side effects e deriva de valor
|
|
78
|
+
|
|
67
79
|
Biblioteca de campos dinâmicos para aplicações Angular (v20+) com Material Design. Renderiza campos a partir de metadados, com carregamento lazy e integração com Reactive Forms.
|
|
68
80
|
|
|
69
81
|
## Instalação
|
|
@@ -152,6 +164,23 @@ const isRegistered = registry.isRegistered(FieldControlType.INPUT);
|
|
|
152
164
|
- `projects/praxis-dynamic-fields/docs/dynamic-fields-inline-components-guide.md` (slug: `dynamic-fields-inline-components-guide`)
|
|
153
165
|
- `projects/praxis-dynamic-fields/docs/generic-crud-service.md`
|
|
154
166
|
|
|
167
|
+
## Editorial governance
|
|
168
|
+
|
|
169
|
+
Para fields mantidos pela propria lib, a semantica editorial canonica nasce em `src/lib/editorial/**`.
|
|
170
|
+
|
|
171
|
+
Fronteira oficial:
|
|
172
|
+
|
|
173
|
+
- `ComponentMetadataEditorialDescriptor`: fonte canonica de `friendlyName`, `description`, `tooltip`, `icon`, bindings e i18n para familias governadas.
|
|
174
|
+
- `ComponentDocMeta`: artefato derivado para builders, discovery e compatibilidade de runtime; nao deve redefinir copy editorial da mesma familia governada.
|
|
175
|
+
- `dynamic-fields-playground.catalog.ts`: camada derivada para showcase/discovery; pode adicionar `recommendedWhen`, `avoidWhen`, estados e snippets, mas nao deve reinventar copy canonica.
|
|
176
|
+
- `@praxisui/dynamic-form`: consumidor; resolve nome/icone/descricao via `ComponentMetadataRegistry.resolveEditorial(..., { namespace: 'dynamicFields' })`.
|
|
177
|
+
|
|
178
|
+
Estado atual da trilha:
|
|
179
|
+
|
|
180
|
+
- a governanca editorial canonica cobre a wave 1 registrada em `dynamic-fields-wave-1.registry.ts`;
|
|
181
|
+
- familias fora da wave 1 ainda podem expor `ComponentDocMeta` proprio, mas isso nao as transforma em nova fonte canonica;
|
|
182
|
+
- ao promover uma nova familia para a trilha canonica, a ordem correta e: descriptor editorial -> metadata derivado -> catalogo derivado -> consumo no `dynamic-form`.
|
|
183
|
+
|
|
155
184
|
### Componentes Suportados
|
|
156
185
|
|
|
157
186
|
A fonte de verdade do suporte default e o `ComponentRegistryService`.
|