@praxisui/dynamic-fields 8.0.0-beta.6 → 8.0.0-beta.60
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 +19 -0
- package/docs/dynamic-fields-field-catalog.md +217 -0
- package/docs/dynamic-fields-field-selection-guide.md +204 -0
- package/docs/dynamic-fields-host-custom-field-guide.md +252 -0
- package/docs/dynamic-fields-host-custom-field-troubleshooting.md +160 -0
- package/docs/dynamic-fields-inline-components-guide.md +582 -0
- package/docs/dynamic-fields-inline-filter-catalog.md +502 -0
- package/docs/dynamic-fields-inline-filter-custom-component-guide.md +241 -0
- package/docs/dynamic-fields-inline-filter-inventory.md +247 -0
- package/docs/dynamic-fields-inline-filter-runtime-contract.md +391 -0
- package/docs/dynamic-fields-inline-filter-selection-guide.md +419 -0
- package/docs/dynamic-fields-inline-filter-troubleshooting.md +201 -0
- package/docs/dynamic-fields-inventory.md +206 -0
- package/docs/dynamic-fields-playground-catalog-plan.md +243 -0
- package/docs/generic-crud-service.md +152 -0
- package/fesm2022/praxisui-dynamic-fields-index-CBogy3si.mjs +1 -0
- package/fesm2022/praxisui-dynamic-fields-index-CWPZdn1Y.mjs +6 -0
- package/fesm2022/praxisui-dynamic-fields-index-CrHhyUMO.mjs +1 -0
- package/fesm2022/praxisui-dynamic-fields-index-DhGo5In4.mjs +6 -0
- package/fesm2022/praxisui-dynamic-fields.mjs +19551 -10669
- package/package.json +14 -13
- package/src/lib/base/pdx-base-input-runtime-contract.json-api.md +526 -0
- package/src/lib/base/pdx-base-select-runtime-contract.json-api.md +474 -0
- package/src/lib/components/color-input/pdx-color-input.json-api.md +573 -0
- package/src/lib/components/color-picker/pdx-color-picker.json-api.md +686 -0
- package/src/lib/components/date-input/pdx-date-input.json-api.md +581 -0
- package/src/lib/components/datetime-local-input/pdx-datetime-local-input.json-api.md +560 -0
- package/src/lib/components/email-input/pdx-email-input.json-api.md +546 -0
- package/src/lib/components/field-shell/praxis-field-shell.json-api.md +523 -0
- package/src/lib/components/inline-async-select/pdx-inline-async-select.json-api.md +566 -0
- package/src/lib/components/inline-autocomplete/pdx-inline-autocomplete.json-api.md +554 -0
- package/src/lib/components/inline-color-label/pdx-inline-color-label.json-api.md +615 -0
- package/src/lib/components/inline-currency/pdx-inline-currency.json-api.md +542 -0
- package/src/lib/components/inline-currency-range/pdx-inline-currency-range.json-api.md +630 -0
- package/src/lib/components/inline-date/pdx-inline-date.json-api.md +529 -0
- package/src/lib/components/inline-date-range/pdx-inline-date-range.json-api.md +592 -0
- package/src/lib/components/inline-distance-radius/pdx-inline-distance-radius.json-api.md +649 -0
- package/src/lib/components/inline-entity-lookup/pdx-inline-entity-lookup.json-api.md +656 -0
- package/src/lib/components/inline-input/pdx-inline-input.json-api.md +538 -0
- package/src/lib/components/inline-multi-select/pdx-inline-multi-select.json-api.md +566 -0
- package/src/lib/components/inline-number/pdx-inline-number.json-api.md +533 -0
- package/src/lib/components/inline-pipeline-status/pdx-inline-pipeline-status.json-api.md +619 -0
- package/src/lib/components/inline-range-slider/pdx-inline-range-slider.json-api.md +605 -0
- package/src/lib/components/inline-rating/pdx-inline-rating.json-api.md +594 -0
- package/src/lib/components/inline-relative-period/pdx-inline-relative-period.json-api.md +623 -0
- package/src/lib/components/inline-score-priority/pdx-inline-score-priority.json-api.md +632 -0
- package/src/lib/components/inline-searchable-select/pdx-inline-searchable-select.json-api.md +564 -0
- package/src/lib/components/inline-select/pdx-inline-select.json-api.md +571 -0
- package/src/lib/components/inline-sentiment/pdx-inline-sentiment.json-api.md +661 -0
- package/src/lib/components/inline-time/pdx-inline-time.json-api.md +573 -0
- package/src/lib/components/inline-time-range/pdx-inline-time-range.json-api.md +635 -0
- package/src/lib/components/inline-toggle/pdx-inline-toggle.json-api.md +516 -0
- package/src/lib/components/inline-tree-select/pdx-inline-tree-select.json-api.md +637 -0
- package/src/lib/components/material-async-select/pdx-material-async-select.json-api.md +566 -0
- package/src/lib/components/material-autocomplete/pdx-material-autocomplete.json-api.md +561 -0
- package/src/lib/components/material-avatar/pdx-material-avatar.json-api.md +670 -0
- package/src/lib/components/material-button/pdx-material-button.json-api.md +572 -0
- package/src/lib/components/material-button-toggle/pdx-material-button-toggle.json-api.md +577 -0
- package/src/lib/components/material-checkbox-group/pdx-material-checkbox-group.json-api.md +611 -0
- package/src/lib/components/material-chips/pdx-material-chips.json-api.md +601 -0
- package/src/lib/components/material-colorpicker/pdx-material-colorpicker.json-api.md +545 -0
- package/src/lib/components/material-cpf-cnpj-input/pdx-material-cpf-cnpj-input.json-api.md +531 -0
- package/src/lib/components/material-currency/pdx-material-currency.json-api.md +569 -0
- package/src/lib/components/material-date-range/pdx-material-date-range.json-api.md +636 -0
- package/src/lib/components/material-datepicker/pdx-material-datepicker.json-api.md +551 -0
- package/src/lib/components/material-file-upload/pdx-material-file-upload.json-api.md +511 -0
- package/src/lib/components/material-multi-select/pdx-material-multi-select.json-api.md +596 -0
- package/src/lib/components/material-multi-select-tree/pdx-material-multi-select-tree.json-api.md +623 -0
- package/src/lib/components/material-price-range/pdx-material-price-range.json-api.md +619 -0
- package/src/lib/components/material-radio-group/pdx-material-radio-group.json-api.md +585 -0
- package/src/lib/components/material-range-slider/pdx-material-range-slider.json-api.md +664 -0
- package/src/lib/components/material-rating/pdx-material-rating.json-api.md +551 -0
- package/src/lib/components/material-searchable-select/pdx-material-searchable-select.json-api.md +602 -0
- package/src/lib/components/material-select/pdx-material-select.json-api.md +601 -0
- package/src/lib/components/material-selection-list/pdx-material-selection-list.json-api.md +607 -0
- package/src/lib/components/material-slide-toggle/pdx-material-slide-toggle.json-api.md +522 -0
- package/src/lib/components/material-slider/pdx-material-slider.json-api.md +602 -0
- package/src/lib/components/material-textarea/pdx-material-textarea.json-api.md +598 -0
- package/src/lib/components/material-timepicker/pdx-material-timepicker.json-api.md +554 -0
- package/src/lib/components/material-transfer-list/pdx-material-transfer-list.json-api.md +614 -0
- package/src/lib/components/material-tree-select/pdx-material-tree-select.json-api.md +649 -0
- package/src/lib/components/month-input/pdx-month-input.json-api.md +527 -0
- package/src/lib/components/number-input/pdx-number-input.json-api.md +594 -0
- package/src/lib/components/password-input/pdx-password-input.json-api.md +574 -0
- package/src/lib/components/pdx-material-time-range/pdx-material-time-range.json-api.md +592 -0
- package/src/lib/components/pdx-year-input/pdx-year-input.json-api.md +543 -0
- package/src/lib/components/phone-input/pdx-phone-input.json-api.md +583 -0
- package/src/lib/components/preload-status/pdx-preload-status.json-api.md +455 -0
- package/src/lib/components/search-input/pdx-search-input.json-api.md +536 -0
- package/src/lib/components/text-input/pdx-text-input.json-api.md +600 -0
- package/src/lib/components/time-input/pdx-time-input.json-api.md +546 -0
- package/src/lib/components/url-input/pdx-url-input.json-api.md +542 -0
- package/src/lib/components/week-input/pdx-week-input.json-api.md +533 -0
- package/{index.d.ts → types/praxisui-dynamic-fields.d.ts} +874 -440
- package/fesm2022/praxisui-dynamic-fields-index-C9IUU4lo.mjs +0 -1
- package/fesm2022/praxisui-dynamic-fields-index-GJtthzkD.mjs +0 -1
- package/fesm2022/praxisui-dynamic-fields-index-XvVS6lAQ.mjs +0 -1
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/dynamic-fields",
|
|
3
|
-
"version": "8.0.0-beta.
|
|
3
|
+
"version": "8.0.0-beta.60",
|
|
4
4
|
"description": "Angular Material-based dynamic form fields for Praxis UI with lazy loading and metadata-driven rendering.",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/common": "^
|
|
7
|
-
"@angular/core": "^
|
|
8
|
-
"@angular/forms": "^
|
|
9
|
-
"@angular/material": "^
|
|
10
|
-
"@angular/cdk": "^
|
|
11
|
-
"@angular/
|
|
6
|
+
"@angular/common": "^21.0.0",
|
|
7
|
+
"@angular/core": "^21.0.0",
|
|
8
|
+
"@angular/forms": "^21.0.0",
|
|
9
|
+
"@angular/material": "^21.0.0",
|
|
10
|
+
"@angular/cdk": "^21.0.0",
|
|
11
|
+
"@angular/platform-browser": "^21.0.0",
|
|
12
|
+
"@angular/router": "^21.0.0",
|
|
12
13
|
"rxjs": "^7.8.0",
|
|
13
|
-
"@praxisui/core": "^8.0.0-beta.
|
|
14
|
-
"@praxisui/cron-builder": "^8.0.0-beta.
|
|
15
|
-
"@praxisui/dialog": "^8.0.0-beta.6"
|
|
14
|
+
"@praxisui/core": "^8.0.0-beta.60",
|
|
15
|
+
"@praxisui/cron-builder": "^8.0.0-beta.60"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"libphonenumber-js": "^1.12.41",
|
|
@@ -41,14 +41,15 @@
|
|
|
41
41
|
],
|
|
42
42
|
"sideEffects": false,
|
|
43
43
|
"module": "fesm2022/praxisui-dynamic-fields.mjs",
|
|
44
|
-
"typings": "
|
|
44
|
+
"typings": "types/praxisui-dynamic-fields.d.ts",
|
|
45
45
|
"exports": {
|
|
46
46
|
"./package.json": {
|
|
47
47
|
"default": "./package.json"
|
|
48
48
|
},
|
|
49
49
|
".": {
|
|
50
|
-
"types": "./
|
|
50
|
+
"types": "./types/praxisui-dynamic-fields.d.ts",
|
|
51
51
|
"default": "./fesm2022/praxisui-dynamic-fields.mjs"
|
|
52
52
|
}
|
|
53
|
-
}
|
|
53
|
+
},
|
|
54
|
+
"type": "module"
|
|
54
55
|
}
|
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "pdx-base-input-runtime-contract JSON API (Canonical)"
|
|
3
|
+
slug: "pdx-base-input-runtime-contract-json-api"
|
|
4
|
+
doc_type: "api-reference"
|
|
5
|
+
component: "pdx-base-input-runtime-contract"
|
|
6
|
+
document_kind: "json-api-canonical"
|
|
7
|
+
reference_mode: "canonical"
|
|
8
|
+
contract_format: "json"
|
|
9
|
+
contract_source: "runtime-and-code"
|
|
10
|
+
description: "Referencia canonica do contrato JSON do componente pdx-base-input-runtime-contract."
|
|
11
|
+
category: "components"
|
|
12
|
+
sub_category: "runtime-contract"
|
|
13
|
+
audience:
|
|
14
|
+
- "frontend"
|
|
15
|
+
- "architect"
|
|
16
|
+
- "platform-team"
|
|
17
|
+
level: "advanced"
|
|
18
|
+
status: "active"
|
|
19
|
+
owner: "praxis-ui"
|
|
20
|
+
source_of_truth:
|
|
21
|
+
- "projects/praxis-dynamic-fields/src/lib/base/simple-base-input.component.ts"
|
|
22
|
+
- "projects/praxis-core/src/lib/models/material-field-metadata.interface.ts"
|
|
23
|
+
source_of_truth_last_verified: "2026-03-05"
|
|
24
|
+
last_updated: "2026-03-05"
|
|
25
|
+
toc: true
|
|
26
|
+
sidebar: true
|
|
27
|
+
tags:
|
|
28
|
+
- "json-api"
|
|
29
|
+
- "canonical-contract"
|
|
30
|
+
- "pdx-base-input-runtime-contract"
|
|
31
|
+
api_stability: "canonical"
|
|
32
|
+
schema_verified: true
|
|
33
|
+
runtime_verified: false
|
|
34
|
+
editor_coverage_verified: false
|
|
35
|
+
runtime_scope: "public"
|
|
36
|
+
legacy_paths_present: true
|
|
37
|
+
has_known_mismatches: true
|
|
38
|
+
related_components:
|
|
39
|
+
- "praxis-table"
|
|
40
|
+
- "pdx-text-input"
|
|
41
|
+
- "pdx-number-input"
|
|
42
|
+
- "pdx-date-input"
|
|
43
|
+
- "pdx-material-select"
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
# pdx-base-input-runtime-contract
|
|
47
|
+
|
|
48
|
+
Este documento e a referencia canonica da API JSON de pdx-base-input-runtime-contract.
|
|
49
|
+
|
|
50
|
+
## Summary
|
|
51
|
+
|
|
52
|
+
- Tipo documental: API reference canonica de contrato JSON.
|
|
53
|
+
- Source of truth: runtime e codigo declarados no frontmatter.
|
|
54
|
+
- Objetivo operacional: consulta rapida, auditavel e deterministica sob pressao.
|
|
55
|
+
- Resumo funcional herdado: `SimpleBaseInputComponent` e o contrato runtime compartilhado dos inputs da lib. Voce configura UX, validacao e acessibilidade em JSON (`metadata`) e cada input especifico herda esse comportamento. Nao e um detalhe interno de implementacao: e a base de compatibilidade entre `pdx-*-input`.
|
|
56
|
+
|
|
57
|
+
## Scope and positioning
|
|
58
|
+
|
|
59
|
+
- Escopo: contrato JSON publico e limites de comportamento observavel.
|
|
60
|
+
- Fora de escopo: tutorial de adocao e walkthrough operacional detalhado.
|
|
61
|
+
- Posicionamento: referencia canonicamente governada para consumidores, arquitetos e mantenedores.
|
|
62
|
+
|
|
63
|
+
## Source of truth
|
|
64
|
+
|
|
65
|
+
| Source | Kind | Notes |
|
|
66
|
+
| --- | --- | --- |
|
|
67
|
+
| projects/praxis-dynamic-fields/src/lib/base/simple-base-input.component.ts | runtime-code | Source de implementacao declarado no repositorio. |
|
|
68
|
+
| projects/praxis-core/src/lib/models/material-field-metadata.interface.ts | runtime-code | Source de implementacao declarado no repositorio. |
|
|
69
|
+
|
|
70
|
+
## Support legend
|
|
71
|
+
|
|
72
|
+
- Active: suportado e observado no runtime atual.
|
|
73
|
+
- Partial: suporte parcial, com restricoes conhecidas.
|
|
74
|
+
- Declared-only: declarado em tipos/schema sem ligacao runtime confirmada.
|
|
75
|
+
- Schema-only: presente em schema/modelo sem confirmacao de execucao.
|
|
76
|
+
- Deprecated: mantido por compatibilidade legada com migracao prevista.
|
|
77
|
+
|
|
78
|
+
## Contract classification
|
|
79
|
+
|
|
80
|
+
### Canonical paths (public contract)
|
|
81
|
+
|
|
82
|
+
| Path | Type | Required | Default | Status | Notes |
|
|
83
|
+
| --- | --- | --- | --- | --- | --- |
|
|
84
|
+
| `metadata` | `ComponentMetadata` | not-specified | n/a | Active | Payload principal do componente. |
|
|
85
|
+
| `metadata.name` | `string` | not-specified | n/a | Active | Aplica `name` no input nativo. |
|
|
86
|
+
| `metadata.id` | `string` | not-specified | n/a | Active | Aplica `id` no elemento nativo. |
|
|
87
|
+
| `metadata.label` | `string` | not-specified | n/a | Active | Mapeado para label visivel do campo. |
|
|
88
|
+
| `metadata.placeholder` | `string` | not-specified | n/a | Active | Mapeado para placeholder quando diferente do label. |
|
|
89
|
+
| `metadata.required` | `boolean` | not-specified | n/a | Active | `Validators.required` + `aria-required`. |
|
|
90
|
+
| `metadata.disabled` | `boolean` | not-specified | n/a | Active | Atualiza estado disabled do controle. |
|
|
91
|
+
| `metadata.readonly` | `boolean` | not-specified | n/a | Active | Aplica atributo `readonly` nativo. |
|
|
92
|
+
| `metadata.readOnly` | `boolean` | not-specified | n/a | Partial | Compat legado (dependente de uso no metadata final). |
|
|
93
|
+
| `metadata.autocomplete` | `string` | not-specified | n/a | Active | Aplica atributo `autocomplete`. |
|
|
94
|
+
| `metadata.inputMode` | `string` | not-specified | n/a | Active | Aplica atributo `inputmode`. |
|
|
95
|
+
| `metadata.spellcheck` | `boolean` | not-specified | n/a | Active | Aplica atributo `spellcheck`. |
|
|
96
|
+
| `metadata.tabIndex` | `number` | not-specified | n/a | Active | Aplica `tabIndex` no elemento nativo. |
|
|
97
|
+
| `metadata.minLength` | `number` | not-specified | n/a | Active | `Validators.minLength` + atributo nativo. |
|
|
98
|
+
|
|
99
|
+
### Supported legacy paths
|
|
100
|
+
|
|
101
|
+
| Legacy path | Canonical replacement | Support window | Runtime behavior | Notes |
|
|
102
|
+
| --- | --- | --- | --- | --- |
|
|
103
|
+
| extracted-from-detailed-api | see canonical paths | not-yet-verified | accepted for backward compatibility | Alias/legado identificado no conteúdo preservado. |
|
|
104
|
+
|
|
105
|
+
### Internal-only paths
|
|
106
|
+
|
|
107
|
+
| Path | Internal consumer | Runtime presence | Public support | Notes |
|
|
108
|
+
| --- | --- | --- | --- | --- |
|
|
109
|
+
| not-yet-mapped | not-yet-verified | not-yet-verified | No | Caminhos internos nao mapeados explicitamente nesta revisao automatizada. |
|
|
110
|
+
|
|
111
|
+
### Experimental paths
|
|
112
|
+
|
|
113
|
+
| Path | Enablement (flag/guard) | Stability | Rollout notes | Notes |
|
|
114
|
+
| --- | --- | --- | --- | --- |
|
|
115
|
+
| not-yet-mapped | not-yet-verified | Experimental | not-yet-verified | Registrar somente quando houver evidencia em runtime/codigo. |
|
|
116
|
+
|
|
117
|
+
## Overview
|
|
118
|
+
|
|
119
|
+
Este arquivo foi adaptado para o padrao canonico atual sem remover conteudo tecnico existente. O conteudo detalhado anterior foi preservado para manter rastreabilidade historica e reduzir perda de contexto.
|
|
120
|
+
|
|
121
|
+
## Public contract surface
|
|
122
|
+
|
|
123
|
+
### Top-level configuration blocks
|
|
124
|
+
|
|
125
|
+
| Block | Purpose | Required | Merge strategy | Notes |
|
|
126
|
+
| --- | --- | --- | --- | --- |
|
|
127
|
+
| metadata | Configuração top-level identificada na referência preservada. | not-yet-verified | component-defined | 14 path(s) mapeado(s), status predominante Active. |
|
|
128
|
+
|
|
129
|
+
### Nested configuration blocks
|
|
130
|
+
|
|
131
|
+
| Path | Type | Required | Default | Constraints | Notes |
|
|
132
|
+
| --- | --- | --- | --- | --- | --- |
|
|
133
|
+
| `metadata` | `ComponentMetadata` | not-specified | n/a | component-defined | Payload principal do componente. |
|
|
134
|
+
| `metadata.name` | `string` | not-specified | n/a | component-defined | Aplica `name` no input nativo. |
|
|
135
|
+
| `metadata.id` | `string` | not-specified | n/a | component-defined | Aplica `id` no elemento nativo. |
|
|
136
|
+
| `metadata.label` | `string` | not-specified | n/a | component-defined | Mapeado para label visivel do campo. |
|
|
137
|
+
| `metadata.placeholder` | `string` | not-specified | n/a | component-defined | Mapeado para placeholder quando diferente do label. |
|
|
138
|
+
| `metadata.required` | `boolean` | not-specified | n/a | component-defined | `Validators.required` + `aria-required`. |
|
|
139
|
+
| `metadata.disabled` | `boolean` | not-specified | n/a | component-defined | Atualiza estado disabled do controle. |
|
|
140
|
+
| `metadata.readonly` | `boolean` | not-specified | n/a | component-defined | Aplica atributo `readonly` nativo. |
|
|
141
|
+
| `metadata.readOnly` | `boolean` | not-specified | n/a | component-defined | Compat legado (dependente de uso no metadata final). |
|
|
142
|
+
| `metadata.autocomplete` | `string` | not-specified | n/a | component-defined | Aplica atributo `autocomplete`. |
|
|
143
|
+
|
|
144
|
+
### Input bindings
|
|
145
|
+
|
|
146
|
+
| Binding/Path | Type | Required | Source | Runtime normalization | Notes |
|
|
147
|
+
| --- | --- | --- | --- | --- | --- |
|
|
148
|
+
| component-inputs | see-detailed-api | not-yet-verified | runtime-and-code | not-yet-verified | Inputs preservados na referência detalhada. |
|
|
149
|
+
|
|
150
|
+
### Output events
|
|
151
|
+
|
|
152
|
+
| Event | Payload | Trigger | Stability | Notes |
|
|
153
|
+
| --- | --- | --- | --- | --- |
|
|
154
|
+
| `valueChange` | `any` | Mudanca de valor propagada pelo componente. | Partial | Preservado da documentação anterior. |
|
|
155
|
+
| `focusChange` | `boolean` | Foco/blur do elemento nativo. | Partial | Preservado da documentação anterior. |
|
|
156
|
+
| `nativeBlur` | `FocusEvent` | Evento blur nativo. | Partial | Preservado da documentação anterior. |
|
|
157
|
+
| `nativeChange` | `Event` | Evento change nativo. | Partial | Preservado da documentação anterior. |
|
|
158
|
+
|
|
159
|
+
### External side channels
|
|
160
|
+
|
|
161
|
+
| Channel | Direction | Contract | Failure mode | Notes |
|
|
162
|
+
| --- | --- | --- | --- | --- |
|
|
163
|
+
| host/services/storage | bidirectional | see-detailed-api | not-yet-verified | Side channels dependem do componente e do host consumidor. |
|
|
164
|
+
|
|
165
|
+
### Host/runtime dependencies
|
|
166
|
+
|
|
167
|
+
| Dependency | Required | Environment | Purpose | Notes |
|
|
168
|
+
| --- | --- | --- | --- | --- |
|
|
169
|
+
| see-source-of-truth | true | browser/dev/prod/ssr | runtime linkage | Confirmar por componente quando necessario. |
|
|
170
|
+
|
|
171
|
+
## Coverage matrix
|
|
172
|
+
|
|
173
|
+
| Surface | Verified | Coverage status | Evidence | Notes |
|
|
174
|
+
| --- | --- | --- | --- | --- |
|
|
175
|
+
| Runtime | false | Partial | source_of_truth + conteudo preservado | Revisao estrutural concluida; validacao comportamental fina pode exigir follow-up. |
|
|
176
|
+
| Schema/Types | true | Partial | interfaces/modelos citados | Mapeamento formal de todos os campos ainda pode requerer refinamento. |
|
|
177
|
+
| Editor/Tooling | false | Partial | secoes de editor quando presentes | Cobertura de editor/tooling nem sempre confirmada por evidencia direta. |
|
|
178
|
+
|
|
179
|
+
## Runtime coverage boundaries
|
|
180
|
+
|
|
181
|
+
- Cobertura consolidada com base em documentacao existente e source of truth declarado.
|
|
182
|
+
- Comportamentos fora de evidencia direta foram marcados como not-yet-verified ou Partial.
|
|
183
|
+
- Compatibilidade legada, quando detectada, foi separada em classificacao explicita.
|
|
184
|
+
|
|
185
|
+
## Resolution model
|
|
186
|
+
|
|
187
|
+
### Merge order
|
|
188
|
+
|
|
189
|
+
1. defaults do componente
|
|
190
|
+
2. contrato JSON recebido
|
|
191
|
+
3. overrides de host/runtime
|
|
192
|
+
4. normalizacoes internas
|
|
193
|
+
|
|
194
|
+
### Fallback order
|
|
195
|
+
|
|
196
|
+
contrato explicito -> aliases legados (quando suportados) -> defaults internos -> comportamento seguro
|
|
197
|
+
|
|
198
|
+
### Override points
|
|
199
|
+
|
|
200
|
+
- inputs publicos do componente
|
|
201
|
+
- configuracao JSON de runtime
|
|
202
|
+
- integracoes de host (servicos/tokens/adapters)
|
|
203
|
+
|
|
204
|
+
### Runtime normalization
|
|
205
|
+
|
|
206
|
+
Campos e aliases preservados do documento anterior devem convergir progressivamente para paths canonicos declarados.
|
|
207
|
+
|
|
208
|
+
### Precedence rules
|
|
209
|
+
|
|
210
|
+
Quando houver conflito entre alias e path canonico, priorizar path canonico e manter alias apenas para backward compatibility.
|
|
211
|
+
|
|
212
|
+
## Validation and error semantics
|
|
213
|
+
|
|
214
|
+
### Validation model
|
|
215
|
+
|
|
216
|
+
| Path/Rule | Validation phase | Behavior on fail | Error code / warning | Notes |
|
|
217
|
+
| --- | --- | --- | --- | --- |
|
|
218
|
+
| see-detailed-api | runtime | warn-or-reject | not-yet-standardized | Semantica de validacao preservada do documento anterior. |
|
|
219
|
+
|
|
220
|
+
### Error semantics
|
|
221
|
+
|
|
222
|
+
Erros devem ser classificados em warnings recuperaveis versus falhas bloqueantes. Quando a evidencia nao estiver explicita, tratar como not yet verified.
|
|
223
|
+
|
|
224
|
+
### Fail-open / fail-closed behavior
|
|
225
|
+
|
|
226
|
+
| Condition | Mode | Runtime behavior | Consumer impact |
|
|
227
|
+
| --- | --- | --- | --- |
|
|
228
|
+
| invalid-or-unknown-field | component-defined | not-yet-verified | Variavel por componente; requer verificacao em runtime. |
|
|
229
|
+
|
|
230
|
+
### Invalid or unknown field handling
|
|
231
|
+
|
|
232
|
+
- Campos desconhecidos: comportamento depende da estrategia do componente (ignore, warn ou reject).
|
|
233
|
+
- Campos invalidos: podem gerar fallback, warning ou falha conforme implementacao.
|
|
234
|
+
- Registrar divergencias observadas em Known limitations and mismatches.
|
|
235
|
+
|
|
236
|
+
### Runtime warnings vs hard failures
|
|
237
|
+
|
|
238
|
+
| Condition | Severity | Observability | Consumer action |
|
|
239
|
+
| --- | --- | --- | --- |
|
|
240
|
+
| partial-or-declared-only-coverage | warning | logs/eventos do componente | confirmar ligacao runtime antes de uso critico |
|
|
241
|
+
|
|
242
|
+
## Detailed API
|
|
243
|
+
|
|
244
|
+
### Preserved technical reference (normalized from previous revision)
|
|
245
|
+
|
|
246
|
+
`SimpleBaseInputComponent` e o contrato runtime compartilhado dos inputs da lib. Voce configura UX, validacao e acessibilidade em JSON (`metadata`) e cada input especifico herda esse comportamento. Nao e um detalhe interno de implementacao: e a base de compatibilidade entre `pdx-*-input`.
|
|
247
|
+
|
|
248
|
+
### Prova em 20 segundos
|
|
249
|
+
|
|
250
|
+
```json
|
|
251
|
+
{
|
|
252
|
+
"metadata": {
|
|
253
|
+
"name": "email",
|
|
254
|
+
"label": "E-mail",
|
|
255
|
+
"required": true,
|
|
256
|
+
"validators": {
|
|
257
|
+
"validationTrigger": "blur",
|
|
258
|
+
"requiredMessage": "Campo obrigatorio"
|
|
259
|
+
},
|
|
260
|
+
"materialDesign": { "appearance": "outline" }
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
- O runtime aplica validacao e estado visual sem logica duplicada por componente.
|
|
266
|
+
- O mesmo contrato funciona para multiplos `pdx-*-input`.
|
|
267
|
+
- A regra fica versionavel e auditavel por JSON.
|
|
268
|
+
|
|
269
|
+
### Table of contents
|
|
270
|
+
|
|
271
|
+
- [Start here](#start-here)
|
|
272
|
+
- [Promessa e limites](#promessa-e-limites)
|
|
273
|
+
- [Status model](#status-model)
|
|
274
|
+
- [Checklist corporativo](#checklist-corporativo)
|
|
275
|
+
- [Contrato tecnico completo](#contrato-tecnico-completo)
|
|
276
|
+
- [Matriz completa de cobertura (herdada)](#matriz-completa-de-cobertura-herdada)
|
|
277
|
+
- [Saidas runtime compartilhadas](#saidas-runtime-compartilhadas)
|
|
278
|
+
- [Regras corporativas recomendadas](#regras-corporativas-recomendadas)
|
|
279
|
+
- [Cross-links](#cross-links)
|
|
280
|
+
- [Referencias oficiais Angular](#referencias-oficiais-angular)
|
|
281
|
+
|
|
282
|
+
### Start here
|
|
283
|
+
|
|
284
|
+
#### Promessa e limites
|
|
285
|
+
|
|
286
|
+
**O que isso habilita:** consistencia de input metadata-driven em validacao, material tokens e acessibilidade.
|
|
287
|
+
|
|
288
|
+
**Quando usar:** sempre que o componente filho extender `SimpleBaseInputComponent`.
|
|
289
|
+
|
|
290
|
+
**Exemplo minimo:** `metadata.required` + `metadata.validators.validationTrigger`.
|
|
291
|
+
|
|
292
|
+
Garantias:
|
|
293
|
+
|
|
294
|
+
- campos `metadata.*` ativos sao consumidos diretamente no runtime base.
|
|
295
|
+
- mensagens de validacao e estrategia de erro seguem contrato unico.
|
|
296
|
+
- atributos ARIA e propriedades nativas sao aplicados no elemento de input.
|
|
297
|
+
|
|
298
|
+
Limites:
|
|
299
|
+
|
|
300
|
+
- campos `Declared-only` podem existir no contrato sem efeito direto no runtime base.
|
|
301
|
+
- validacao de dominio continua sendo responsabilidade do backend.
|
|
302
|
+
|
|
303
|
+
#### Status model
|
|
304
|
+
|
|
305
|
+
- `Status: Active` - consumido diretamente no runtime.
|
|
306
|
+
- `Status: Partial` - consumido com restricoes.
|
|
307
|
+
- `Status: Declared-only` - declarado em tipagem, sem consumo direto no runtime base.
|
|
308
|
+
- `Status: Runtime-extension` - chave aceita por extensoes de componentes filhos.
|
|
309
|
+
|
|
310
|
+
#### Checklist corporativo
|
|
311
|
+
|
|
312
|
+
- alinhar `required` com regra de negocio para evitar bloqueio indevido de submit.
|
|
313
|
+
- padronizar `materialDesign.*` por design system.
|
|
314
|
+
- usar `ariaLabel/ariaDescribedby/ariaLabelledby` em campos criticos de jornada.
|
|
315
|
+
- manter mensagens `validators.*Message` consistentes com tom de produto.
|
|
316
|
+
|
|
317
|
+
### Contrato tecnico completo
|
|
318
|
+
|
|
319
|
+
#### Matriz completa de cobertura (herdada)
|
|
320
|
+
|
|
321
|
+
| Caminho JSON | Tipo | Status | Comportamento em runtime |
|
|
322
|
+
| --- | --- | --- | --- |
|
|
323
|
+
| `metadata` | `ComponentMetadata` | Active | Payload principal do componente. |
|
|
324
|
+
| `metadata.name` | `string` | Active | Aplica `name` no input nativo. |
|
|
325
|
+
| `metadata.id` | `string` | Active | Aplica `id` no elemento nativo. |
|
|
326
|
+
| `metadata.label` | `string` | Active | Mapeado para label visivel do campo. |
|
|
327
|
+
| `metadata.placeholder` | `string` | Active | Mapeado para placeholder quando diferente do label. |
|
|
328
|
+
| `metadata.required` | `boolean` | Active | `Validators.required` + `aria-required`. |
|
|
329
|
+
| `metadata.disabled` | `boolean` | Active | Atualiza estado disabled do controle. |
|
|
330
|
+
| `metadata.readonly` | `boolean` | Active | Aplica atributo `readonly` nativo. |
|
|
331
|
+
| `metadata.readOnly` | `boolean` | Partial | Compat legado (dependente de uso no metadata final). |
|
|
332
|
+
| `metadata.autocomplete` | `string` | Active | Aplica atributo `autocomplete`. |
|
|
333
|
+
| `metadata.inputMode` | `string` | Active | Aplica atributo `inputmode`. |
|
|
334
|
+
| `metadata.spellcheck` | `boolean` | Active | Aplica atributo `spellcheck`. |
|
|
335
|
+
| `metadata.tabIndex` | `number` | Active | Aplica `tabIndex` no elemento nativo. |
|
|
336
|
+
| `metadata.minLength` | `number` | Active | `Validators.minLength` + atributo nativo. |
|
|
337
|
+
| `metadata.maxLength` | `number` | Active | `Validators.maxLength` + atributo nativo. |
|
|
338
|
+
| `metadata.pattern` | `string \| RegExp` | Active | `Validators.pattern` no controle. |
|
|
339
|
+
| `metadata.validators.customValidator` | `function` | Active | Executa validador customizado e retorna erro `custom`. |
|
|
340
|
+
| `metadata.validators.validationTrigger` | `'change' \| 'blur' \| 'submit' \| 'immediate'` | Active | Controla estrategia de exibicao/atualizacao de validacao. |
|
|
341
|
+
| `metadata.validators.validationDebounce` | `number` | Active | Debounce da exibicao de erros em `change`. |
|
|
342
|
+
| `metadata.validators.requiredMessage` | `string` | Active | Mensagem customizada para erro `required`. |
|
|
343
|
+
| `metadata.validators.minLengthMessage` | `string` | Active | Mensagem customizada para erro `minlength`. |
|
|
344
|
+
| `metadata.validators.maxLengthMessage` | `string` | Active | Mensagem customizada para erro `maxlength`. |
|
|
345
|
+
| `metadata.validators.patternMessage` | `string` | Active | Mensagem customizada para erro `pattern`. |
|
|
346
|
+
| `metadata.validators.minMessage` | `string` | Active | Mensagem customizada para erro `min`. |
|
|
347
|
+
| `metadata.validators.maxMessage` | `string` | Active | Mensagem customizada para erro `max`. |
|
|
348
|
+
| `metadata.validators.errorPosition` | `'tooltip' \| 'inline' \| 'both'` | Active | Estrategia de exibicao de erro (tooltip/inline). |
|
|
349
|
+
| `metadata.validators.showInlineErrors` | `boolean` | Active | Forca/desliga exibicao inline de erros. |
|
|
350
|
+
| `metadata.errorStateMatcher` | enum | Active | Estrategia de estado de erro usada pelo matcher utilitario. |
|
|
351
|
+
| `metadata.hint` | `string` | Active | Exibe dica quando nao ha erro. |
|
|
352
|
+
| `metadata.hintAlign` | `'start' \| 'end'` | Active | Alinhamento da dica. |
|
|
353
|
+
| `metadata.materialDesign.appearance` | `'fill' \| 'outline'` | Active | Aparencia do `mat-form-field`. |
|
|
354
|
+
| `metadata.materialDesign.color` | `'primary' \| 'accent' \| 'warn'` | Active | Cor do `mat-form-field`. |
|
|
355
|
+
| `metadata.materialDesign.floatLabel` | `'auto' \| 'always'` | Active | Comportamento do label flutuante. |
|
|
356
|
+
| `metadata.materialDesign.subscriptSizing` | `'fixed' \| 'dynamic'` | Active | Tamanho do subscript do `mat-form-field`. |
|
|
357
|
+
| `metadata.materialDesign.hideRequiredMarker` | `boolean` | Active | Oculta marcador de obrigatorio. |
|
|
358
|
+
| `metadata.prefixIcon` | `string` | Active | Icone prefixo renderizado no campo. |
|
|
359
|
+
| `metadata.prefixIconColor` | `string` | Active | Cor do icone prefixo. |
|
|
360
|
+
| `metadata.suffixIcon` | `string` | Active | Icone sufixo renderizado no campo. |
|
|
361
|
+
| `metadata.suffixIconColor` | `string` | Active | Cor do icone sufixo. |
|
|
362
|
+
| `metadata.suffixIconTooltip` | `string` | Active | Tooltip do icone sufixo. |
|
|
363
|
+
| `metadata.suffixIconAriaLabel` | `string` | Active | ARIA label do icone sufixo. |
|
|
364
|
+
| `metadata.clearButton.enabled` | `boolean` | Active | Habilita botao de limpar. |
|
|
365
|
+
| `metadata.clearButton.showOnlyWhenFilled` | `boolean` | Active | Exibe clear apenas com valor preenchido. |
|
|
366
|
+
| `metadata.clearButton.icon` | `string` | Active | Icone do clear. |
|
|
367
|
+
| `metadata.clearButton.iconColor` | `string` | Active | Cor do icone do clear. |
|
|
368
|
+
| `metadata.clearButton.tooltip` | `string` | Active | Tooltip do clear. |
|
|
369
|
+
| `metadata.clearButton.ariaLabel` | `string` | Active | ARIA label do clear. |
|
|
370
|
+
| `metadata.textTransform` | `enum` | Active | Transformacao visual/funcional de texto. |
|
|
371
|
+
| `metadata.textTransformApply` | `'displayOnly' \| 'saveOnly' \| 'both'` | Active | Define onde a transformacao e aplicada. |
|
|
372
|
+
| `metadata.ariaLabel` | `string` | Active | `aria-label` no elemento nativo. |
|
|
373
|
+
| `metadata.ariaDescribedby` | `string` | Active | `aria-describedby` no elemento nativo. |
|
|
374
|
+
| `metadata.ariaLabelledby` | `string` | Active | `aria-labelledby` no elemento nativo. |
|
|
375
|
+
|
|
376
|
+
#### Politica de label com prefixos e sufixos
|
|
377
|
+
|
|
378
|
+
Quando um campo usa `metadata.prefixIcon`, `metadata.suffixIcon`, `clearButton`,
|
|
379
|
+
datepicker toggle, seletor de cor, simbolo de moeda ou qualquer outro conteudo
|
|
380
|
+
renderizado via `matPrefix`/`matSuffix`, a politica recomendada para
|
|
381
|
+
`materialDesign.appearance = 'fill'` ou `'outline'` e:
|
|
382
|
+
|
|
383
|
+
```json
|
|
384
|
+
{
|
|
385
|
+
"materialDesign": {
|
|
386
|
+
"appearance": "outline",
|
|
387
|
+
"floatLabel": "always",
|
|
388
|
+
"subscriptSizing": "dynamic"
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
Essa regra segue a limitacao documentada pelo Angular Material para campos
|
|
394
|
+
`fill`/`outline`: label em repouso e valor do input nao compartilham o mesmo
|
|
395
|
+
alinhamento, entao prefixos/sufixos podem conflitar visualmente com o label
|
|
396
|
+
quando `floatLabel = 'auto'`.
|
|
397
|
+
|
|
398
|
+
Para superficies geradas, como filtros avancados, preferir aplicar essa politica
|
|
399
|
+
na camada global que materializa a metadata dos campos. Evite corrigir com CSS
|
|
400
|
+
local movendo label, icone ou notch do `mat-form-field`; esses detalhes sao
|
|
401
|
+
internos do Angular Material e podem mudar entre versoes.
|
|
402
|
+
|
|
403
|
+
#### Saidas runtime compartilhadas
|
|
404
|
+
|
|
405
|
+
| Output | Tipo | Quando ocorre |
|
|
406
|
+
| --- | --- | --- |
|
|
407
|
+
| `valueChange` | `any` | Mudanca de valor propagada pelo componente. |
|
|
408
|
+
| `focusChange` | `boolean` | Foco/blur do elemento nativo. |
|
|
409
|
+
| `nativeBlur` | `FocusEvent` | Evento blur nativo. |
|
|
410
|
+
| `nativeChange` | `Event` | Evento change nativo. |
|
|
411
|
+
|
|
412
|
+
#### Regras corporativas recomendadas
|
|
413
|
+
|
|
414
|
+
1. Tratar `metadata.validators.*` como contrato de UX, sem substituir validacao de dominio no backend.
|
|
415
|
+
2. Manter consistencia entre `required`, `visible` e regras de negocio para evitar bloqueio de submit com campo oculto.
|
|
416
|
+
3. Padronizar `materialDesign` por design system (aparencia, cor e floatLabel) para reduzir variacao visual entre equipes.
|
|
417
|
+
4. Usar `floatLabel: 'always'` em campos `fill`/`outline` com prefixos, sufixos ou icones Material.
|
|
418
|
+
5. Usar `clearButton` com `ariaLabel` para conformidade de acessibilidade.
|
|
419
|
+
|
|
420
|
+
#### Cross-links
|
|
421
|
+
|
|
422
|
+
- `projects/praxis-dynamic-fields/src/lib/components/text-input/pdx-text-input.json-api.md`
|
|
423
|
+
- `projects/praxis-dynamic-fields/src/lib/components/number-input/pdx-number-input.json-api.md`
|
|
424
|
+
- `projects/praxis-dynamic-fields/src/lib/components/date-input/pdx-date-input.json-api.md`
|
|
425
|
+
- `projects/praxis-dynamic-fields/src/lib/components/material-select/pdx-material-select.json-api.md`
|
|
426
|
+
|
|
427
|
+
### Referencias oficiais Angular
|
|
428
|
+
|
|
429
|
+
- Acessibilidade em Angular: https://angular.dev/best-practices/a11y
|
|
430
|
+
- Criacao e manutencao de libraries: https://angular.dev/tools/libraries/creating-libraries
|
|
431
|
+
- Angular Material `mat-form-field`: https://material.angular.io/components/form-field/overview
|
|
432
|
+
|
|
433
|
+
## JSON path index
|
|
434
|
+
|
|
435
|
+
| Path | Type | Required | Default | Status | Notes |
|
|
436
|
+
| --- | --- | --- | --- | --- | --- |
|
|
437
|
+
| `metadata` | `ComponentMetadata` | not-specified | n/a | Active | Payload principal do componente. |
|
|
438
|
+
| `metadata.name` | `string` | not-specified | n/a | Active | Aplica `name` no input nativo. |
|
|
439
|
+
| `metadata.id` | `string` | not-specified | n/a | Active | Aplica `id` no elemento nativo. |
|
|
440
|
+
| `metadata.label` | `string` | not-specified | n/a | Active | Mapeado para label visivel do campo. |
|
|
441
|
+
| `metadata.placeholder` | `string` | not-specified | n/a | Active | Mapeado para placeholder quando diferente do label. |
|
|
442
|
+
| `metadata.required` | `boolean` | not-specified | n/a | Active | `Validators.required` + `aria-required`. |
|
|
443
|
+
| `metadata.disabled` | `boolean` | not-specified | n/a | Active | Atualiza estado disabled do controle. |
|
|
444
|
+
| `metadata.readonly` | `boolean` | not-specified | n/a | Active | Aplica atributo `readonly` nativo. |
|
|
445
|
+
| `metadata.readOnly` | `boolean` | not-specified | n/a | Partial | Compat legado (dependente de uso no metadata final). |
|
|
446
|
+
| `metadata.autocomplete` | `string` | not-specified | n/a | Active | Aplica atributo `autocomplete`. |
|
|
447
|
+
| `metadata.inputMode` | `string` | not-specified | n/a | Active | Aplica atributo `inputmode`. |
|
|
448
|
+
| `metadata.spellcheck` | `boolean` | not-specified | n/a | Active | Aplica atributo `spellcheck`. |
|
|
449
|
+
| `metadata.tabIndex` | `number` | not-specified | n/a | Active | Aplica `tabIndex` no elemento nativo. |
|
|
450
|
+
| `metadata.minLength` | `number` | not-specified | n/a | Active | `Validators.minLength` + atributo nativo. |
|
|
451
|
+
|
|
452
|
+
## Events
|
|
453
|
+
|
|
454
|
+
| Event | Payload | Trigger | Stability | Notes |
|
|
455
|
+
| --- | --- | --- | --- | --- |
|
|
456
|
+
| `valueChange` | `any` | Mudanca de valor propagada pelo componente. | Partial | Preservado da documentação anterior. |
|
|
457
|
+
| `focusChange` | `boolean` | Foco/blur do elemento nativo. | Partial | Preservado da documentação anterior. |
|
|
458
|
+
| `nativeBlur` | `FocusEvent` | Evento blur nativo. | Partial | Preservado da documentação anterior. |
|
|
459
|
+
| `nativeChange` | `Event` | Evento change nativo. | Partial | Preservado da documentação anterior. |
|
|
460
|
+
|
|
461
|
+
## Styling API
|
|
462
|
+
|
|
463
|
+
| Token/Class | Scope | Purpose | Notes |
|
|
464
|
+
| --- | --- | --- | --- |
|
|
465
|
+
| see-detailed-api | component | styling/runtime | Consolidar naming canonico quando aplicavel. |
|
|
466
|
+
|
|
467
|
+
## Editor and tooling notes
|
|
468
|
+
|
|
469
|
+
- Cobertura de editor/tooling foi separada da cobertura de runtime para evitar confusao de suporte.
|
|
470
|
+
- Quando nao houver evidencia direta no codigo, o status deve permanecer not yet verified.
|
|
471
|
+
|
|
472
|
+
## Examples
|
|
473
|
+
|
|
474
|
+
### Minimal valid
|
|
475
|
+
|
|
476
|
+
```json
|
|
477
|
+
{
|
|
478
|
+
"metadata": {
|
|
479
|
+
"name": "email",
|
|
480
|
+
"label": "E-mail",
|
|
481
|
+
"required": true,
|
|
482
|
+
"validators": {
|
|
483
|
+
"validationTrigger": "blur",
|
|
484
|
+
"requiredMessage": "Campo obrigatorio"
|
|
485
|
+
},
|
|
486
|
+
"materialDesign": { "appearance": "outline" }
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### Typical/common
|
|
492
|
+
|
|
493
|
+
```json
|
|
494
|
+
{}
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
### Advanced
|
|
498
|
+
|
|
499
|
+
```json
|
|
500
|
+
{}
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
### Enterprise scenario
|
|
504
|
+
|
|
505
|
+
```json
|
|
506
|
+
{}
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
## Known limitations and mismatches
|
|
510
|
+
|
|
511
|
+
| Path/Behavior | Observed behavior (runtime) | Desired behavior | Impact | Tracking issue | Target fix |
|
|
512
|
+
| --- | --- | --- | --- | --- | --- |
|
|
513
|
+
| coverage/mapping | Evidência textual preservada indica itens Partial/Declared-only. | Cobertura confirmada por evidência runtime + schema + editor. | Pode gerar uso de paths não totalmente ligados. | to-be-linked | next-doc-cycle |
|
|
514
|
+
|
|
515
|
+
## Compatibility and migration notes
|
|
516
|
+
|
|
517
|
+
| Concern | Affected versions | Migration action | Deadline | Notes |
|
|
518
|
+
| --- | --- | --- | --- | --- |
|
|
519
|
+
| legacy aliases and mixed status vocabulary | pre-canonical docs | unificar para taxonomia canonica (Active/Partial/Declared-only/...) | next-doc-cycle | manter backward compatibility documentada |
|
|
520
|
+
|
|
521
|
+
## Source references
|
|
522
|
+
|
|
523
|
+
| Source type | Path/URL | Why it is source of truth | Last verified (YYYY-MM-DD) | Notes |
|
|
524
|
+
| --- | --- | --- | --- | --- |
|
|
525
|
+
| local-file | projects/praxis-dynamic-fields/src/lib/base/simple-base-input.component.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
|
|
526
|
+
| local-file | projects/praxis-core/src/lib/models/material-field-metadata.interface.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
|