@praxisui/dynamic-fields 9.0.0-beta.4 → 9.0.0-beta.40
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 +9 -1
- package/ai/component-registry.json +266480 -0
- package/docs/dynamic-fields-field-catalog.md +2 -3
- package/docs/dynamic-fields-field-selection-guide.md +27 -3
- package/docs/dynamic-fields-inline-components-guide.md +26 -6
- package/docs/dynamic-fields-inline-filter-runtime-contract.md +11 -0
- package/fesm2022/praxisui-dynamic-fields.mjs +1752 -573
- package/package.json +8 -4
- package/src/lib/base/pdx-base-input-runtime-contract.json-api.md +16 -0
- package/src/lib/components/field-shell/praxis-field-shell.json-api.md +33 -3
- package/src/lib/components/inline-color-label/pdx-inline-color-label.json-api.md +1 -1
- package/src/lib/components/inline-currency-range/pdx-inline-currency-range.json-api.md +49 -17
- package/src/lib/components/inline-date/pdx-inline-date.json-api.md +1 -1
- package/src/lib/components/inline-number/pdx-inline-number.json-api.md +1 -0
- package/src/lib/components/inline-range-slider/pdx-inline-range-slider.json-api.md +52 -13
- package/src/lib/components/inline-relative-period/pdx-inline-relative-period.json-api.md +103 -103
- package/src/lib/components/inline-sentiment/pdx-inline-sentiment.json-api.md +84 -84
- package/src/lib/components/inline-time-range/pdx-inline-time-range.json-api.md +2 -2
- package/src/lib/components/material-async-select/pdx-material-async-select.json-api.md +3 -2
- package/src/lib/components/material-checkbox-group/pdx-material-checkbox-group.json-api.md +5 -3
- package/src/lib/components/material-file-upload/pdx-material-file-upload.json-api.md +58 -27
- package/types/praxisui-dynamic-fields.d.ts +138 -8
|
@@ -7,7 +7,7 @@ document_kind: "json-api-canonical"
|
|
|
7
7
|
reference_mode: "canonical"
|
|
8
8
|
contract_format: "json"
|
|
9
9
|
contract_source: "runtime-and-code"
|
|
10
|
-
description: "
|
|
10
|
+
description: "Referência canônica do contrato JSON do componente pdx-inline-sentiment."
|
|
11
11
|
category: "components"
|
|
12
12
|
sub_category: "dynamic-fields"
|
|
13
13
|
audience:
|
|
@@ -44,60 +44,60 @@ related_components:
|
|
|
44
44
|
|
|
45
45
|
# pdx-inline-sentiment
|
|
46
46
|
|
|
47
|
-
Este documento e a
|
|
47
|
+
Este documento e a referência canônica da API JSON de pdx-inline-sentiment.
|
|
48
48
|
|
|
49
49
|
## Summary
|
|
50
50
|
|
|
51
|
-
- Tipo documental: API reference
|
|
51
|
+
- Tipo documental: API reference canônica de contrato JSON.
|
|
52
52
|
- Source of truth: runtime e codigo declarados no frontmatter.
|
|
53
|
-
- Objetivo operacional: consulta
|
|
53
|
+
- Objetivo operacional: consulta rápida, auditável e determinística sob pressão.
|
|
54
54
|
- Resumo funcional: Contrato JSON metadata-driven com comportamento definido por runtime e schema associado.
|
|
55
55
|
|
|
56
56
|
## Purpose and scope
|
|
57
57
|
|
|
58
|
-
- O componente consome payload JSON metadata-driven e
|
|
59
|
-
- Esta
|
|
60
|
-
- Fora de escopo: quickstart, tutorial narrativo e notas arquiteturais que
|
|
58
|
+
- O componente consome payload JSON metadata-driven e expõe comportamento runtime configurável por contrato.
|
|
59
|
+
- Esta referência cobre contrato público, classificação de paths e semântica de cobertura (runtime/schema/editor).
|
|
60
|
+
- Fora de escopo: quickstart, tutorial narrativo e notas arquiteturais que não alteram contrato público.
|
|
61
61
|
|
|
62
|
-
## Consulta
|
|
62
|
+
## Consulta rápida (obrigatorio)
|
|
63
63
|
|
|
64
64
|
| Regra/tema | Observado | Canonico desejado | Status | Evidencia |
|
|
65
65
|
| --- | --- | --- | --- | --- |
|
|
66
|
-
| Component id | `pdx-inline-sentiment` | Manter ID
|
|
67
|
-
| Primary contract source | `runtime-and-code` | Runtime, schema e docs devem permanecer
|
|
68
|
-
| Runtime coverage | `true` | Comportamentos runtime
|
|
69
|
-
| Schema/type coverage | `true` | Tipos e schema devem refletir paths
|
|
70
|
-
| Editor/tooling coverage | `false` | Editor/tooling deve espelhar somente contrato
|
|
71
|
-
| Path hygiene | `false` | Manter
|
|
72
|
-
| Known mismatches | `false` | Registrar observed vs desired de forma
|
|
66
|
+
| Component id | `pdx-inline-sentiment` | Manter ID canônico estável e versionado por contrato | Active | frontmatter.component |
|
|
67
|
+
| Primary contract source | `runtime-and-code` | Runtime, schema e docs devem permanecer rastreáveis | Partial | frontmatter.contract_source + source_of_truth |
|
|
68
|
+
| Runtime coverage | `true` | Comportamentos runtime críticos devem ficar explicitamente verificados | Active | `projects/praxis-dynamic-fields/src/lib/components/inline-sentiment/inline-sentiment.component.ts`, `projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts` |
|
|
69
|
+
| Schema/type coverage | `true` | Tipos e schema devem refletir paths públicos do contrato | Active | source_of_truth + Detailed API reference |
|
|
70
|
+
| Editor/tooling coverage | `false` | Editor/tooling deve espelhar somente contrato público suportado | Partial | `projects/praxis-core/src/lib/utils/inline-filter-controls.util.ts`, `projects/praxis-dynamic-fields/src/lib/services/component-registry/component-registry.service.ts` |
|
|
71
|
+
| Path hygiene | `false` | Manter consistência entre contrato canônico e caminhos documentados | Active | frontmatter.legacy_paths_present |
|
|
72
|
+
| Known mismatches | `false` | Registrar observed vs desired de forma auditável | Active | frontmatter.has_known_mismatches |
|
|
73
73
|
|
|
74
74
|
## Source of truth
|
|
75
75
|
|
|
76
76
|
| Source | Kind | Notes |
|
|
77
77
|
| --- | --- | --- |
|
|
78
|
-
| projects/praxis-dynamic-fields/src/lib/components/inline-sentiment/inline-sentiment.component.ts | runtime-code | Arquivo presente no repositorio e usado como
|
|
79
|
-
| projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts | runtime-code | Arquivo presente no repositorio e usado como
|
|
80
|
-
| projects/praxis-core/src/lib/models/material-field-metadata.interface.ts | schema-types | Arquivo presente no repositorio e usado como
|
|
78
|
+
| projects/praxis-dynamic-fields/src/lib/components/inline-sentiment/inline-sentiment.component.ts | runtime-code | Arquivo presente no repositorio e usado como evidência de contrato. |
|
|
79
|
+
| projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts | runtime-code | Arquivo presente no repositorio e usado como evidência de contrato. |
|
|
80
|
+
| projects/praxis-core/src/lib/models/material-field-metadata.interface.ts | schema-types | Arquivo presente no repositorio e usado como evidência de contrato. |
|
|
81
81
|
|
|
82
82
|
## Support legend
|
|
83
83
|
|
|
84
84
|
- **Active**: suportado em runtime e liberado para uso externo.
|
|
85
|
-
- **Partial**: suporte parcial, com restricoes, lacunas ou
|
|
86
|
-
- **Declared-only**: declarado em tipos/schema sem
|
|
85
|
+
- **Partial**: suporte parcial, com restricoes, lacunas ou validação incompleta.
|
|
86
|
+
- **Declared-only**: declarado em tipos/schema sem evidência operacional completa.
|
|
87
87
|
- **Schema-only**: presente em schema/tipos sem cobertura runtime confirmada.
|
|
88
88
|
|
|
89
89
|
## Contract status snapshot
|
|
90
90
|
|
|
91
91
|
| Item | Value | Notes |
|
|
92
92
|
| --- | --- | --- |
|
|
93
|
-
| Reference mode | `canonical` | Deve permanecer
|
|
93
|
+
| Reference mode | `canonical` | Deve permanecer canônico |
|
|
94
94
|
| Contract format | `json` | Contrato metadata-driven |
|
|
95
95
|
| Contract source | `runtime-and-code` | Alinhar com source_of_truth |
|
|
96
96
|
| Runtime scope | `public` | Escopo publicado para consumidores |
|
|
97
|
-
| Runtime verified | `true` | Revisar sempre com
|
|
98
|
-
| Schema verified | `true` | Revisar sempre com
|
|
99
|
-
| Editor coverage verified | `false` | Revisar sempre com
|
|
100
|
-
| Current path hygiene | `false` | Segregar
|
|
97
|
+
| Runtime verified | `true` | Revisar sempre com evidência de runtime |
|
|
98
|
+
| Schema verified | `true` | Revisar sempre com evidência de tipos/schema |
|
|
99
|
+
| Editor coverage verified | `false` | Revisar sempre com evidência de editor/tooling |
|
|
100
|
+
| Current path hygiene | `false` | Segregar consistência do contrato canônico |
|
|
101
101
|
| Has known mismatches | `false` | Divergencias devem aparecer em secao dedicada |
|
|
102
102
|
|
|
103
103
|
## Contract classification (obrigatorio)
|
|
@@ -117,15 +117,15 @@ Este documento e a referencia canonica da API JSON de pdx-inline-sentiment.
|
|
|
117
117
|
|
|
118
118
|
### Path audit
|
|
119
119
|
|
|
120
|
-
Nenhum desvio de caminho foi identificado nesta
|
|
120
|
+
Nenhum desvio de caminho foi identificado nesta revisão.
|
|
121
121
|
|
|
122
122
|
### Internal-only paths
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
Não ha paths internal-only confirmados no contrato público desta revisão.
|
|
125
125
|
|
|
126
126
|
### Experimental paths
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
Não ha paths experimentais confirmados no contrato público desta revisão.
|
|
129
129
|
|
|
130
130
|
## Public contract surface (obrigatorio)
|
|
131
131
|
|
|
@@ -134,11 +134,11 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
134
134
|
| Block | Purpose | Required | Merge strategy | Notes |
|
|
135
135
|
| --- | --- | --- | --- | --- |
|
|
136
136
|
| `metadata` | Payload declarativo principal do componente | true | deep-merge | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
137
|
-
| `selectOptions` |
|
|
137
|
+
| `selectOptions` | Configuração especifica de runtime | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
138
138
|
| `readonlyMode` | Override de readonly no host/runtime | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
139
139
|
| `disabledMode` | Override de disabled no host/runtime | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
140
140
|
| `visible` | Override de visibilidade no host/runtime | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
141
|
-
| `presentationMode` |
|
|
141
|
+
| `presentationMode` | Renderização de apresentação sem interação | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
|
|
142
142
|
|
|
143
143
|
### Nested configuration blocks
|
|
144
144
|
|
|
@@ -203,15 +203,15 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
203
203
|
### Runtime coverage boundaries
|
|
204
204
|
|
|
205
205
|
- Ambientes suportados: browser/dev/prod; SSR/hydration appears to be component-dependent unless explicitly verified.
|
|
206
|
-
- Pre-condicoes: payload JSON
|
|
207
|
-
- Fora de cobertura confirmada: caminhos internos, experimentais ou aliases
|
|
206
|
+
- Pre-condicoes: payload JSON válido, bindings de host consistentes e dependencias descritas no source_of_truth.
|
|
207
|
+
- Fora de cobertura confirmada: caminhos internos, experimentais ou aliases não enumerados formalmente.
|
|
208
208
|
|
|
209
209
|
### Editor and tooling notes
|
|
210
210
|
|
|
211
211
|
- Evidencia de tooling: aliases `pdx-inline-*` resolvidos por `inline-filter-controls.util.ts` e consumidos no `ComponentRegistryService`; editor visual E2E permanece not-yet-verified.
|
|
212
|
-
- O que esta exposto no editor visual depende da cobertura real do workspace e
|
|
213
|
-
- Campos
|
|
214
|
-
- Quando houver divergencia entre editor e runtime, manter mismatch
|
|
212
|
+
- O que esta exposto no editor visual depende da cobertura real do workspace e não deve ser inferido como suporte runtime total.
|
|
213
|
+
- Campos disponíveis apenas via JSON/manual devem continuar no contrato, com rótulo explícito de cobertura parcial.
|
|
214
|
+
- Quando houver divergencia entre editor e runtime, manter mismatch rastreável em secao dedicada.
|
|
215
215
|
|
|
216
216
|
## Resolution and precedence model (obrigatorio)
|
|
217
217
|
|
|
@@ -224,21 +224,21 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
224
224
|
|
|
225
225
|
### Fallback order
|
|
226
226
|
|
|
227
|
-
contrato explicito -> aliases
|
|
227
|
+
contrato explicito -> aliases históricos (quando suportados) -> defaults internos -> comportamento seguro
|
|
228
228
|
|
|
229
229
|
### Override points
|
|
230
230
|
|
|
231
231
|
- inputs publicos do componente
|
|
232
|
-
-
|
|
233
|
-
- integracoes de host (
|
|
232
|
+
- configuração JSON de runtime
|
|
233
|
+
- integracoes de host (serviços/tokens/adapters)
|
|
234
234
|
|
|
235
235
|
### Runtime normalization
|
|
236
236
|
|
|
237
|
-
Alias e defaults devem convergir para paths
|
|
237
|
+
Alias e defaults devem convergir para paths canônicos; onde não houver evidência, manter not-yet-verified de forma explícita.
|
|
238
238
|
|
|
239
239
|
### Precedence rules
|
|
240
240
|
|
|
241
|
-
Em conflito entre caminho
|
|
241
|
+
Em conflito entre caminho histórico e path canônico, priorizar path canônico e registrar janela de migração do histórico.
|
|
242
242
|
|
|
243
243
|
## Validation and error semantics (obrigatorio)
|
|
244
244
|
|
|
@@ -246,7 +246,7 @@ Em conflito entre caminho historico e path canonico, priorizar path canonico e r
|
|
|
246
246
|
|
|
247
247
|
| Path/Rule | Validation phase | Behavior on fail | Error code / warning | Notes |
|
|
248
248
|
| --- | --- | --- | --- | --- |
|
|
249
|
-
| canonical-paths | parse/runtime | component-defined (warn/reject/default) | not-yet-standardized | Semantica detalhada preservada na
|
|
249
|
+
| canonical-paths | parse/runtime | component-defined (warn/reject/default) | not-yet-standardized | Semantica detalhada preservada na referência técnica por componente. |
|
|
250
250
|
|
|
251
251
|
### Invalid and unknown field handling
|
|
252
252
|
|
|
@@ -264,66 +264,66 @@ Em conflito entre caminho historico e path canonico, priorizar path canonico e r
|
|
|
264
264
|
|
|
265
265
|
| Condition | Severity | Observability | Consumer action |
|
|
266
266
|
| --- | --- | --- | --- |
|
|
267
|
-
| partial-or-declared-only-coverage | warning | logs/eventos do componente | Confirmar
|
|
268
|
-
| mismatch-confirmed | error-or-warning | componente/host observability | Planejar
|
|
267
|
+
| partial-or-declared-only-coverage | warning | logs/eventos do componente | Confirmar ligação runtime antes de uso crítico. |
|
|
268
|
+
| mismatch-confirmed | error-or-warning | componente/host observability | Planejar migração e corrigir contrato/runtime. |
|
|
269
269
|
|
|
270
270
|
## Detailed API reference
|
|
271
271
|
### Preserved technical reference (normalized from previous revision)
|
|
272
272
|
|
|
273
|
-
### 1.
|
|
274
|
-
`pdx-inline-sentiment`
|
|
273
|
+
### 1. Visão Geral e Quando Usar
|
|
274
|
+
`pdx-inline-sentiment` é um filtro inline de sentimento com emojis, barra de gradiente e cards selecionáveis.
|
|
275
275
|
|
|
276
276
|
Use quando precisar:
|
|
277
277
|
- classificar feedback por polaridade (negativo/neutro/positivo);
|
|
278
|
-
- expor leitura visual
|
|
279
|
-
- permitir single ou
|
|
278
|
+
- expor leitura visual rápida via emoji + cor;
|
|
279
|
+
- permitir single ou múltipla seleção com pills de resumo.
|
|
280
280
|
|
|
281
281
|
### 2. API do Componente (Inputs/Outputs)
|
|
282
|
-
| Propriedade | Tipo |
|
|
282
|
+
| Propriedade | Tipo | Padrão | Obrigatório | Comportamento |
|
|
283
283
|
| --- | --- | --- | --- | --- |
|
|
284
284
|
| `metadata` | `MaterialSelectMetadata` | - | Sim | Contrato principal de sentimento inline. |
|
|
285
|
-
| `readonlyMode/disabledMode/visible/presentationMode` | `boolean` | `false/false/true/false` |
|
|
285
|
+
| `readonlyMode/disabledMode/visible/presentationMode` | `boolean` | `false/false/true/false` | Não | Estados de host do campo inline. |
|
|
286
286
|
| `selectionChange` | `T \| T[]` | - | Output herdado | Valor(es) de sentimento selecionado(s). |
|
|
287
|
-
| `optionSelected` | `SelectOption` | - | Output herdado |
|
|
287
|
+
| `optionSelected` | `SelectOption` | - | Output herdado | Opção escolhida no card de sentimento. |
|
|
288
288
|
|
|
289
289
|
### 3. Matriz de Cobertura JSON (Completa)
|
|
290
|
-
#### 3.1 Campos
|
|
290
|
+
#### 3.1 Campos específicos do componente
|
|
291
291
|
| Caminho JSON | Tipo | Status | Comportamento em runtime |
|
|
292
292
|
| --- | --- | --- | --- |
|
|
293
293
|
| `metadata.sentimentOptions` | `array \| string(JSON)` | Ativo | Fonte principal dos cards de sentimento. |
|
|
294
294
|
| `metadata.sentimentMultiple` / `multiple` | `boolean` | Ativo | Define single/multiple selection. |
|
|
295
295
|
| `metadata.sentimentShowBar` | `boolean` | Ativo | Exibe barra visual de sentimento. |
|
|
296
296
|
| `metadata.sentimentShowSelectionPills` | `boolean` | Ativo | Exibe pills dos itens selecionados. |
|
|
297
|
-
| `metadata.sentimentAnimatedEmoji` | `boolean` | Ativo | Ativa
|
|
298
|
-
| `metadata.sentimentCloseOnSelect` | `boolean` | Ativo | Fecha painel
|
|
299
|
-
| `metadata.sentimentEmojiKey/optionEmojiKey` | `string` | Ativo | Chave do emoji por
|
|
300
|
-
| `metadata.sentimentColorKey/optionColorKey` | `string` | Ativo | Chave da cor por
|
|
301
|
-
| `metadata.sentimentPalette/palette` | `array \| string` | Ativo | Paleta fallback para
|
|
302
|
-
| `metadata.sentimentGradientLowColor/midColor/highColor` | `string` | Ativo | Gradiente
|
|
303
|
-
| `metadata.sentimentTexts` / `inlineTexts` | `object \| string(JSON)` | Ativo | Textos de
|
|
304
|
-
| `metadata.inlineOverlay.applyMode` | `"auto" \| "explicit"` | Ativo | Define se cards de sentimento comitam imediatamente ou ficam em rascunho
|
|
305
|
-
| `metadata.inlineOverlay.actions.apply` | `object` | Ativo | Configura label, aria-label,
|
|
306
|
-
| `metadata.inlineOverlay.actions.cancel` | `object` | Ativo | Configura a
|
|
307
|
-
| `metadata.inlineOverlay.actions.clear` | `object` | Ativo | Configura a
|
|
308
|
-
| `metadata.sentimentIcon` / `prefixIcon` | `string` | Ativo |
|
|
297
|
+
| `metadata.sentimentAnimatedEmoji` | `boolean` | Ativo | Ativa animação de emoji em hover/select. |
|
|
298
|
+
| `metadata.sentimentCloseOnSelect` | `boolean` | Ativo | Fecha painel após seleção (single). |
|
|
299
|
+
| `metadata.sentimentEmojiKey/optionEmojiKey` | `string` | Ativo | Chave do emoji por opção. |
|
|
300
|
+
| `metadata.sentimentColorKey/optionColorKey` | `string` | Ativo | Chave da cor por opção. |
|
|
301
|
+
| `metadata.sentimentPalette/palette` | `array \| string` | Ativo | Paleta fallback para opções sem cor. |
|
|
302
|
+
| `metadata.sentimentGradientLowColor/midColor/highColor` | `string` | Ativo | Gradiente semântico fallback para barra e opções sem cor explícita. |
|
|
303
|
+
| `metadata.sentimentTexts` / `inlineTexts` | `object \| string(JSON)` | Ativo | Textos de subtítulo, aria, labels de grupo/pills e empty state; templates canônicos devem usar `{{label}}` e `{{value}}` quando houver interpolação. |
|
|
304
|
+
| `metadata.inlineOverlay.applyMode` | `"auto" \| "explicit"` | Ativo | Define se cards de sentimento comitam imediatamente ou ficam em rascunho até `Aplicar`. |
|
|
305
|
+
| `metadata.inlineOverlay.actions.apply` | `object` | Ativo | Configura label, aria-label, ícone, `appearance` e `colorRole` da ação de commit. |
|
|
306
|
+
| `metadata.inlineOverlay.actions.cancel` | `object` | Ativo | Configura a ação que descarta rascunho e fecha o painel. |
|
|
307
|
+
| `metadata.inlineOverlay.actions.clear` | `object` | Ativo | Configura a ação que remove a seleção aplicada/rascunho usando tokens do tema. |
|
|
308
|
+
| `metadata.sentimentIcon` / `prefixIcon` | `string` | Ativo | Ícone do trigger/painel. |
|
|
309
309
|
| `metadata.inlineAutoSize.*` | `object` | Ativo | Largura da pill e painel. |
|
|
310
310
|
|
|
311
311
|
#### 3.2 Campos herdados compartilhados (exaustivo)
|
|
312
312
|
- `projects/praxis-dynamic-fields/src/lib/components/material-select/pdx-material-select.json-api.md`
|
|
313
313
|
- `projects/praxis-dynamic-fields/src/lib/base/pdx-base-select-runtime-contract.json-api.md`
|
|
314
314
|
|
|
315
|
-
Resumo de
|
|
315
|
+
Resumo de composição deste componente:
|
|
316
316
|
- `Ativo`: cards de sentimento com emoji/cor, barra e pills de resumo.
|
|
317
|
-
- `
|
|
317
|
+
- `Extensão de runtime`: namespace `sentiment*` com fallback para chaves genéricas.
|
|
318
318
|
|
|
319
319
|
### 4. Mapeamento de Comportamento
|
|
320
|
-
-
|
|
320
|
+
- Opções podem ser carregadas de `sentimentOptions`, `selectOptions` ou `options`.
|
|
321
321
|
- Cor/emoji de cada item segue ordem de chaves custom -> payload -> paleta fallback.
|
|
322
|
-
- Em
|
|
322
|
+
- Em múltiplo, respeita `maxSelections` herdado.
|
|
323
323
|
- Aria labels, labels de grupo/pills e textos operacionais podem ser centralizados em `sentimentTexts`.
|
|
324
|
-
- Quando `inlineOverlay.applyMode` e `"explicit"`,
|
|
324
|
+
- Quando `inlineOverlay.applyMode` e `"explicit"`, seleções no painel alteram apenas o rascunho; `Aplicar` comita, `Cancelar`, `Esc` e clique externo descartam, e `Limpar` remove a seleção.
|
|
325
325
|
|
|
326
|
-
### 5. Exemplo
|
|
326
|
+
### 5. Exemplo Mínimo (JSON + Uso)
|
|
327
327
|
```json
|
|
328
328
|
{
|
|
329
329
|
"componentId": "pdx-inline-sentiment",
|
|
@@ -338,7 +338,7 @@ Resumo de composicao deste componente:
|
|
|
338
338
|
}
|
|
339
339
|
}
|
|
340
340
|
```
|
|
341
|
-
Uso:
|
|
341
|
+
Uso: classificação simples de sentimento.
|
|
342
342
|
|
|
343
343
|
### 6. Exemplo Corporativo (JSON + Uso)
|
|
344
344
|
```json
|
|
@@ -378,34 +378,34 @@ Uso: classificacao simples de sentimento.
|
|
|
378
378
|
}
|
|
379
379
|
}
|
|
380
380
|
```
|
|
381
|
-
Uso:
|
|
381
|
+
Uso: análise de CX com semântica visual direta e confirmação explícita antes de aplicar.
|
|
382
382
|
|
|
383
383
|
### 7. Troubleshooting e Armadilhas Comuns
|
|
384
|
-
1. Emoji
|
|
385
|
-
|
|
384
|
+
1. Emoji não renderiza.
|
|
385
|
+
Correção: ajustar `sentimentEmojiKey` ou o campo de payload.
|
|
386
386
|
|
|
387
387
|
2. Cores repetidas sem intencao.
|
|
388
|
-
|
|
388
|
+
Correção: revisar `sentimentColorKey` e `sentimentPalette`.
|
|
389
389
|
|
|
390
|
-
3. Painel
|
|
391
|
-
|
|
390
|
+
3. Painel não fecha no single.
|
|
391
|
+
Correção: habilitar `sentimentCloseOnSelect=true`.
|
|
392
392
|
|
|
393
|
-
4. Pills
|
|
394
|
-
|
|
393
|
+
4. Pills não aparecem no múltiplo.
|
|
394
|
+
Correção: verificar `sentimentShowSelectionPills`.
|
|
395
395
|
|
|
396
|
-
5.
|
|
397
|
-
|
|
396
|
+
5. Animação de emoji não ocorre.
|
|
397
|
+
Correção: validar `sentimentAnimatedEmoji`.
|
|
398
398
|
|
|
399
399
|
### 8. Cross-links
|
|
400
400
|
- `projects/praxis-dynamic-fields/src/lib/components/material-select/pdx-material-select.json-api.md`
|
|
401
401
|
- `projects/praxis-dynamic-fields/src/lib/base/pdx-base-select-runtime-contract.json-api.md`
|
|
402
402
|
|
|
403
|
-
### 9.
|
|
404
|
-
-
|
|
403
|
+
### 9. Relatório de Validação Estrutural
|
|
404
|
+
- Visão geral: PASS
|
|
405
405
|
- API (inputs/outputs): PASS
|
|
406
406
|
- Cobertura JSON completa (especifico + herdado): PASS
|
|
407
407
|
- Mapeamento de comportamento: PASS
|
|
408
|
-
- Exemplo
|
|
408
|
+
- Exemplo mínimo: PASS
|
|
409
409
|
- Exemplo corporativo: PASS
|
|
410
410
|
- Troubleshooting: PASS
|
|
411
411
|
|
|
@@ -668,7 +668,7 @@ Correcao: validar `sentimentAnimatedEmoji`.
|
|
|
668
668
|
|
|
669
669
|
| Path/Behavior | Observed behavior (runtime) | Desired behavior | Impact | Tracking issue | Target fix |
|
|
670
670
|
| --- | --- | --- | --- | --- | --- |
|
|
671
|
-
| Canonical contract parity | Runtime e exemplos desta
|
|
671
|
+
| Canonical contract parity | Runtime e exemplos desta referência foram atualizados em 2026-03-16 para refletir a migração do componente para o catálogo shared de i18n e o uso de templates `{{...}}` | Manter exemplos e host overrides no formato canônico `{{...}}` | Low | n/a | Monitor in periodic audit |
|
|
672
672
|
|
|
673
673
|
## Source references (obrigatorio)
|
|
674
674
|
|
|
@@ -299,7 +299,7 @@ Use quando precisar:
|
|
|
299
299
|
| `metadata.validators.rangeMessage` | `string` | Ativo | Mensagem para erro de ordem do intervalo. |
|
|
300
300
|
| `metadata.validators.minDistanceMessage` | `string` | Ativo | Mensagem para distancia minima. |
|
|
301
301
|
| `metadata.validators.maxDistanceMessage` | `string` | Ativo | Mensagem para distancia maxima. |
|
|
302
|
-
| `metadata.inlineOverlay.applyMode` | `"auto" \| "explicit"
|
|
302
|
+
| `metadata.inlineOverlay.applyMode` | `"auto" \| "explicit"` | Ativo | Quando `explicit`, slider, inputs e presets ficam em rascunho ate `Aplicar`. |
|
|
303
303
|
| `metadata.inlineOverlay.actions.apply.*` | `object` | Ativo | Label, aria, icon, appearance e colorRole do commit. |
|
|
304
304
|
| `metadata.inlineOverlay.actions.cancel.*` | `object` | Ativo | Label, aria, icon, appearance e colorRole do descarte. |
|
|
305
305
|
| `metadata.inlineOverlay.actions.clear.*` | `object` | Ativo | Label, aria, icon, appearance, colorRole e visibilidade da limpeza explicita. |
|
|
@@ -318,7 +318,7 @@ Resumo de composicao deste componente:
|
|
|
318
318
|
- `quickPresets` podem ser declarados ou gerados por defaults internos.
|
|
319
319
|
- Slider e inputs textuais permanecem sincronizados (`timeRangeForm` + `sliderRangeForm`).
|
|
320
320
|
- `timeInputStepSeconds()` deriva de `stepMinute` para entrada `type=time`.
|
|
321
|
-
- Com `inlineOverlay.applyMode: "explicit"
|
|
321
|
+
- Com `inlineOverlay.applyMode: "explicit"`, alteracoes no painel nao emitem valor externo ate `Aplicar`; `Cancelar`, `Esc`, detach ou clique externo restauram o valor confirmado anterior.
|
|
322
322
|
|
|
323
323
|
### 5. Exemplo Minimo (JSON + Uso)
|
|
324
324
|
```json
|
|
@@ -393,7 +393,8 @@ Precedencia de comportamento:
|
|
|
393
393
|
|
|
394
394
|
Notas de runtime:
|
|
395
395
|
|
|
396
|
-
- em remoto, `loadOptions`
|
|
396
|
+
- em remoto generico, `loadOptions` pode usar `includeIds` na pagina 0.
|
|
397
|
+
- em `optionSource`, o filtro envia `includeIds` somente quando `optionSource.includeIds=true`; quando ausente ou `false`, valores selecionados sao reidratados por `/option-sources/{sourceKey}/options/by-ids`.
|
|
397
398
|
- `onSearch` limpa estado local e reinicia pagina para novo termo.
|
|
398
399
|
|
|
399
400
|
Contrato compartilhado completo:
|
|
@@ -417,7 +418,7 @@ Correcao: revise `loadOn`, `resourcePath` e permissao de endpoint.
|
|
|
417
418
|
Correcao: alinhe `optionLabelKey` e `optionValueKey` ao payload real.
|
|
418
419
|
|
|
419
420
|
4. Item selecionado some apos nova busca.
|
|
420
|
-
Correcao: backend deve suportar include de ids selecionados na pagina inicial.
|
|
421
|
+
Correcao: para `optionSource.includeIds=false`, backend deve suportar reidratacao por `/by-ids`; para remoto generico ou `optionSource.includeIds=true`, pode suportar include de ids selecionados na pagina inicial.
|
|
421
422
|
|
|
422
423
|
5. Cascata nao atualiza automaticamente.
|
|
423
424
|
Correcao: use `dependencyLoadOnChange='immediate'` ou dispare recarga no host.
|
|
@@ -22,8 +22,8 @@ source_of_truth:
|
|
|
22
22
|
- "projects/praxis-dynamic-fields/src/lib/components/material-checkbox-group/material-checkbox-group.component.ts"
|
|
23
23
|
- "projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts"
|
|
24
24
|
- "projects/praxis-core/src/lib/models/material-field-metadata.interface.ts"
|
|
25
|
-
source_of_truth_last_verified: "2026-
|
|
26
|
-
last_updated: "2026-
|
|
25
|
+
source_of_truth_last_verified: "2026-06-25"
|
|
26
|
+
last_updated: "2026-06-25"
|
|
27
27
|
toc: true
|
|
28
28
|
sidebar: true
|
|
29
29
|
tags:
|
|
@@ -133,6 +133,7 @@ Este documento e a referencia canonica da API JSON de pdx-material-checkbox-grou
|
|
|
133
133
|
| --- | --- | --- | --- | --- |
|
|
134
134
|
| `metadata.options` | `metadata.checkboxOptions` | not-yet-defined | accepted for backward compatibility | Alias legado para opcoes do grupo. |
|
|
135
135
|
| ausencia de `metadata.selectionMode` | `metadata.selectionMode` explicito | not-yet-defined | runtime infere `boolean` sem opcoes e `multiple` com opcoes | Fallback legado preservado para migracao. |
|
|
136
|
+
| valores booleanos legados `S`/`N`, `1`/`0`, `true`/`false` no `FormControl` | `boolean` real | not-yet-defined | em `selectionMode: 'boolean'`, o runtime normaliza antes de renderizar e emitir eventos | Compatibilidade para telas migradas que recebem flags legadas do backend. |
|
|
136
137
|
|
|
137
138
|
### Internal-only paths
|
|
138
139
|
|
|
@@ -197,6 +198,7 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
197
198
|
### Runtime semantics addendum
|
|
198
199
|
|
|
199
200
|
- `selectionMode` explicito governa a semantica interna de selecao; heuristica por presenca de opcoes so vale quando `selectionMode` nao e informado.
|
|
201
|
+
- Em `selectionMode: 'boolean'`, o valor de entrada aceita `boolean` real e flags legadas textuais/numéricas (`S`/`N`, `T`/`F`, `1`/`0`, `true`/`false`, `sim`/`não`) e normaliza para `boolean` antes da interação.
|
|
200
202
|
- `required`/`requiredChecked` propagam sinalizacao acessivel (`aria-required`) para o checkbox renderizado.
|
|
201
203
|
- No modo boolean, cliques no shell de conteudo tambem emitem `selectionChange` e `optionSelected` para alinhamento operacional com o runtime base de selecao.
|
|
202
204
|
- Estados governados (`disabledMode`, `readonlyMode`, `presentationMode`, `metadata.readonly` e `FormControl.disabled`) bloqueiam mutacoes em modo boolean, option e select-all.
|
|
@@ -224,7 +226,7 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
224
226
|
|
|
225
227
|
| Surface | Verified | Coverage status | Evidence | Notes |
|
|
226
228
|
| --- | --- | --- | --- | --- |
|
|
227
|
-
| Runtime | `true` | Active | `projects/praxis-dynamic-fields/src/lib/components/material-checkbox-group/material-checkbox-group.metadata.ts`, `projects/praxis-dynamic-fields/src/lib/components/material-checkbox-group/material-checkbox-group.component.ts` | Core runtime flows
|
|
229
|
+
| Runtime | `true` | Active | `projects/praxis-dynamic-fields/src/lib/components/material-checkbox-group/material-checkbox-group.metadata.ts`, `projects/praxis-dynamic-fields/src/lib/components/material-checkbox-group/material-checkbox-group.component.ts` | Core runtime flows, governed states and legacy boolean value normalization verified via focused component specs on 2026-06-25; editor/tooling coverage remains independent. |
|
|
228
230
|
| Schema/Types | `true` | Active | source_of_truth + Detailed API reference | Reconcile schema/types with canonical paths during follow-up when needed. |
|
|
229
231
|
| Editor/Tooling | `false` | Partial | `projects/praxis-core/src/lib/metadata/field-selector-control-type.constants.ts`, `projects/praxis-dynamic-fields/src/lib/services/component-registry/component-registry.service.ts` | Selector/control-type tooling linkage verified via default selector map and registry seeding; visual editor end-to-end coverage remains not-yet-verified. |
|
|
230
232
|
|
|
@@ -21,8 +21,8 @@ source_of_truth:
|
|
|
21
21
|
- "projects/praxis-dynamic-fields/src/lib/components/material-file-upload/material-file-upload.metadata.ts"
|
|
22
22
|
- "projects/praxis-dynamic-fields/src/lib/components/material-file-upload/material-file-upload.component.ts"
|
|
23
23
|
- "projects/praxis-dynamic-fields/src/lib/base/simple-base-input.component.ts"
|
|
24
|
-
source_of_truth_last_verified: "2026-
|
|
25
|
-
last_updated: "2026-
|
|
24
|
+
source_of_truth_last_verified: "2026-06-24"
|
|
25
|
+
last_updated: "2026-06-24"
|
|
26
26
|
toc: true
|
|
27
27
|
sidebar: true
|
|
28
28
|
tags:
|
|
@@ -149,10 +149,14 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
149
149
|
| `metadata.hint` | string | false | n/a | component-defined | Partial; verify per source_of_truth. |
|
|
150
150
|
| `metadata.placeholder` | string | false | n/a | component-defined | Partial; verify per source_of_truth. |
|
|
151
151
|
| `metadata.validators.*` | object | false | n/a | component-defined | Partial; verify per source_of_truth. |
|
|
152
|
-
| `metadata.accept` | string | false | n/a |
|
|
153
|
-
| `metadata.multiple` | boolean | false |
|
|
154
|
-
| `metadata.maxFileSize` | number | false | n/a |
|
|
152
|
+
| `metadata.accept` | string | false | n/a | comma-separated extensions or MIME patterns | Active; applied to native input and local file validation. |
|
|
153
|
+
| `metadata.multiple` | boolean | false | `false` | boolean | Active; selected value is `File[]` when true and `File | null` otherwise. |
|
|
154
|
+
| `metadata.maxFileSize` | number | false | n/a | positive byte count | Active; rejects selected files above the configured limit. |
|
|
155
|
+
| `metadata.maxFiles` | number | false | n/a | positive integer | Active; rejects selections above the configured number of files. |
|
|
155
156
|
| `metadata.allowedTypes` | string[] | false | n/a | component-defined | Partial; verify per source_of_truth. |
|
|
157
|
+
| `metadata.imagePreview` | boolean | false | `false` | boolean | Active; renders local image preview for selected image files. |
|
|
158
|
+
| `metadata.preview` | string | false | n/a | `image` | Active; `image` is an alias for local image preview. |
|
|
159
|
+
| `metadata.previewAlt` | string | false | localized fallback | component-defined | Active; accessible alt text for the local preview image. |
|
|
156
160
|
|
|
157
161
|
### Input bindings (inbound data)
|
|
158
162
|
|
|
@@ -268,12 +272,13 @@ Em conflito entre alias legado e path canonico, priorizar path canonico e regist
|
|
|
268
272
|
### Preserved technical reference (normalized from previous revision)
|
|
269
273
|
|
|
270
274
|
### 1. Visao Geral e Quando Usar
|
|
271
|
-
`pdx-material-file-upload` e um upload basico
|
|
275
|
+
`pdx-material-file-upload` e um upload basico de campo com `<input type="file">`, integracao CVA, validacao local de tipo/tamanho e preview local de imagem.
|
|
272
276
|
|
|
273
277
|
Use quando precisar:
|
|
274
278
|
- prototipar upload rapido no form;
|
|
275
|
-
- capturar um
|
|
276
|
-
-
|
|
279
|
+
- capturar um arquivo selecionado ou uma lista curta de arquivos;
|
|
280
|
+
- mostrar preview local para fluxos de foto/avatar antes da persistencia;
|
|
281
|
+
- delegar persistencia, presign, progresso, conflito e storage governado para a camada canonica de upload.
|
|
277
282
|
|
|
278
283
|
### 2. API do Componente (Inputs/Outputs)
|
|
279
284
|
| Propriedade | Tipo | Padrao | Obrigatorio | Comportamento |
|
|
@@ -283,7 +288,7 @@ Use quando precisar:
|
|
|
283
288
|
| `disabledMode` | `boolean` | `false` | Nao | Sobrescreve disabled no host. |
|
|
284
289
|
| `visible` | `boolean` | `true` | Nao | Controla exibicao no host. |
|
|
285
290
|
| `presentationMode` | `boolean` | `false` | Nao | Modo apresentacao sem edicao. |
|
|
286
|
-
| `valueChange` | `File \| null` | - | Output base input | Arquivo selecionado no input. |
|
|
291
|
+
| `valueChange` | `File \| File[] \| null` | - | Output base input | Arquivo selecionado no input; quando `multiple=true`, emite array. |
|
|
287
292
|
|
|
288
293
|
### 3. Matriz de Cobertura JSON (Completa)
|
|
289
294
|
#### 3.1 Campos especificos do componente
|
|
@@ -294,25 +299,29 @@ Use quando precisar:
|
|
|
294
299
|
| `metadata.hint` | `string` | Ativo | Mensagem de apoio quando sem erro. |
|
|
295
300
|
| `metadata.placeholder` | `string` | Parcial | `setFileUploadMetadata` remove placeholder do estado efetivo. |
|
|
296
301
|
| `metadata.validators.*` | `object` | Parcial | Validacoes basicas do `SimpleBaseInput` podem atuar no control, sem parser de arquivo dedicado. |
|
|
297
|
-
| `metadata.accept` | `string` |
|
|
298
|
-
| `metadata.multiple` | `boolean` |
|
|
299
|
-
| `metadata.maxFileSize` | `number` |
|
|
302
|
+
| `metadata.accept` | `string` | Ativo | Aplicado ao atributo `accept` e validado localmente por extensao/MIME antes de atualizar o control. |
|
|
303
|
+
| `metadata.multiple` | `boolean` | Ativo | Permite selecionar varios arquivos e atualiza o valor como `File[]`. |
|
|
304
|
+
| `metadata.maxFileSize` | `number` | Ativo | Rejeita arquivos acima do limite em bytes antes de atualizar o control. |
|
|
305
|
+
| `metadata.maxFiles` | `number` | Ativo | Rejeita selecoes acima da quantidade maxima configurada. |
|
|
300
306
|
| `metadata.allowedTypes` | `string[]` | Declared-only | Nao ha filtro dedicado por tipo no componente atual. |
|
|
307
|
+
| `metadata.imagePreview` | `boolean` | Ativo | Mostra preview local para o primeiro arquivo de imagem selecionado. |
|
|
308
|
+
| `metadata.preview` | `'image'` | Ativo | Alias declarativo para habilitar preview local de imagem. |
|
|
309
|
+
| `metadata.previewAlt` | `string` | Ativo | Texto alternativo do preview local. |
|
|
301
310
|
|
|
302
311
|
#### 3.2 Campos herdados compartilhados (exaustivo)
|
|
303
312
|
Contrato compartilhado de input base:
|
|
304
313
|
- [pdx-base-input-runtime-contract.json-api.md](projects/praxis-dynamic-fields/src/lib/base/pdx-base-input-runtime-contract.json-api.md)
|
|
305
314
|
|
|
306
315
|
Resumo de composicao deste componente:
|
|
307
|
-
- `Ativo`: fluxo basico de selecao de
|
|
316
|
+
- `Ativo`: fluxo basico de selecao, bind no control, preview local de imagem e validacao local de tipo/tamanho/quantidade.
|
|
308
317
|
- `Parcial`: placeholder e validacoes genericas do base.
|
|
309
|
-
- `Declared-only`:
|
|
318
|
+
- `Declared-only`: politica avancada por `allowedTypes`.
|
|
310
319
|
|
|
311
320
|
### 4. Mapeamento de Comportamento
|
|
312
|
-
- Selecao: ao `change`,
|
|
313
|
-
- Valor:
|
|
314
|
-
- Renderizacao: label
|
|
315
|
-
-
|
|
321
|
+
- Selecao: ao `change`, valida arquivos e grava `File` ou `File[]` no control.
|
|
322
|
+
- Valor: `File | null` quando `multiple` esta ausente/falso; `File[]` quando `multiple=true`.
|
|
323
|
+
- Renderizacao: label, input file, resumo da selecao, preview local de imagem, erro/hint e acao de limpar.
|
|
324
|
+
- Persistencia corporativa: fora deste componente. Use `@praxisui/files-upload` para presign, progresso, conflito, retry e storage governado.
|
|
316
325
|
|
|
317
326
|
### 5. Exemplo Minimo (JSON + Uso)
|
|
318
327
|
```json
|
|
@@ -345,12 +354,30 @@ Uso: captura um arquivo unico para envio posterior.
|
|
|
345
354
|
```
|
|
346
355
|
Uso: etapa inicial de upload, deixando validacoes profundas para API backend.
|
|
347
356
|
|
|
357
|
+
### 6.1 Exemplo para troca de avatar (JSON + Uso)
|
|
358
|
+
```json
|
|
359
|
+
{
|
|
360
|
+
"componentId": "pdx-material-file-upload",
|
|
361
|
+
"metadata": {
|
|
362
|
+
"name": "profileImageFile",
|
|
363
|
+
"label": "Foto de perfil",
|
|
364
|
+
"controlType": "upload",
|
|
365
|
+
"accept": "image/*",
|
|
366
|
+
"maxFileSize": 4194304,
|
|
367
|
+
"maxFiles": 1,
|
|
368
|
+
"imagePreview": true,
|
|
369
|
+
"hint": "Escolha uma imagem para revisar antes de salvar a foto do perfil."
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
```
|
|
373
|
+
Uso: combine este campo com `pdx-material-avatar` para preview/display e com a capability canonica de persistencia de arquivo para publicar a URL final consumida pelo avatar.
|
|
374
|
+
|
|
348
375
|
### 7. Troubleshooting e Armadilhas Comuns
|
|
349
|
-
1. Esperar
|
|
350
|
-
Correcao: componente
|
|
376
|
+
1. Esperar persistencia automatica.
|
|
377
|
+
Correcao: este componente escolhe e valida localmente; persistencia pertence ao host ou a `@praxisui/files-upload`.
|
|
351
378
|
|
|
352
|
-
2. Esperar
|
|
353
|
-
Correcao: nao
|
|
379
|
+
2. Esperar crop/zoom.
|
|
380
|
+
Correcao: preview local nao e editor de imagem. Crop deve nascer em contrato proprio de avatar/image authoring.
|
|
354
381
|
|
|
355
382
|
3. Placeholder nao aparece.
|
|
356
383
|
Correcao: `setFileUploadMetadata` remove placeholder explicitamente.
|
|
@@ -358,8 +385,8 @@ Correcao: `setFileUploadMetadata` remove placeholder explicitamente.
|
|
|
358
385
|
4. Arquivo nao persiste no payload final.
|
|
359
386
|
Correcao: verificar serializacao de `File` no host e estrategia de envio multipart.
|
|
360
387
|
|
|
361
|
-
5. Necessidade de
|
|
362
|
-
Correcao:
|
|
388
|
+
5. Necessidade de progresso/chunk/presign.
|
|
389
|
+
Correcao: usar `@praxisui/files-upload`, que e a fronteira canonica de upload operacional.
|
|
363
390
|
|
|
364
391
|
### 8. Cross-links
|
|
365
392
|
- `projects/praxis-dynamic-fields/src/lib/base/pdx-base-input-runtime-contract.json-api.md`
|
|
@@ -388,10 +415,14 @@ Correcao: esse renderer e baseline; implementar camada avancada para cenarios en
|
|
|
388
415
|
| `metadata.hint` | string | false | n/a | Partial | See Detailed API reference. |
|
|
389
416
|
| `metadata.placeholder` | string | false | n/a | Partial | See Detailed API reference. |
|
|
390
417
|
| `metadata.validators.*` | object | false | n/a | Partial | See Detailed API reference. |
|
|
391
|
-
| `metadata.accept` | string | false | n/a |
|
|
392
|
-
| `metadata.multiple` | boolean | false |
|
|
393
|
-
| `metadata.maxFileSize` | number | false | n/a |
|
|
418
|
+
| `metadata.accept` | string | false | n/a | Active | Applied to native input and local type validation. |
|
|
419
|
+
| `metadata.multiple` | boolean | false | `false` | Active | Emits `File[]` when true. |
|
|
420
|
+
| `metadata.maxFileSize` | number | false | n/a | Active | Rejects files above the byte limit. |
|
|
421
|
+
| `metadata.maxFiles` | number | false | n/a | Active | Rejects selections above the configured number of files. |
|
|
394
422
|
| `metadata.allowedTypes` | string[] | false | n/a | Partial | See Detailed API reference. |
|
|
423
|
+
| `metadata.imagePreview` | boolean | false | `false` | Active | Enables local image preview. |
|
|
424
|
+
| `metadata.preview` | string | false | n/a | Active | `image` enables local image preview. |
|
|
425
|
+
| `metadata.previewAlt` | string | false | localized fallback | Active | Accessible alt text for preview image. |
|
|
395
426
|
|
|
396
427
|
## Events reference (obrigatorio)
|
|
397
428
|
|