@praxisui/dynamic-fields 9.0.0-beta.0 → 9.0.0-beta.10

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.
@@ -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: "Referencia canonica do contrato JSON do componente pdx-inline-sentiment."
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 referencia canonica da API JSON de pdx-inline-sentiment.
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 canonica de contrato JSON.
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 rapida, auditavel e deterministica sob pressao.
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 expoe comportamento runtime configuravel por contrato.
59
- - Esta referencia cobre contrato publico, classificacao de paths e semantica de cobertura (runtime/schema/editor).
60
- - Fora de escopo: quickstart, tutorial narrativo e notas arquiteturais que nao alteram contrato publico.
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 rapida (obrigatorio)
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 canonico estavel e versionado por contrato | Active | frontmatter.component |
67
- | Primary contract source | `runtime-and-code` | Runtime, schema e docs devem permanecer rastreaveis | Partial | frontmatter.contract_source + source_of_truth |
68
- | Runtime coverage | `true` | Comportamentos runtime criticos 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 publicos do contrato | Active | source_of_truth + Detailed API reference |
70
- | Editor/tooling coverage | `false` | Editor/tooling deve espelhar somente contrato publico 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 consistencia entre contrato canonico e caminhos documentados | Active | frontmatter.legacy_paths_present |
72
- | Known mismatches | `false` | Registrar observed vs desired de forma auditavel | Active | frontmatter.has_known_mismatches |
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 evidencia de contrato. |
79
- | projects/praxis-dynamic-fields/src/lib/base/simple-base-select.component.ts | runtime-code | Arquivo presente no repositorio e usado como evidencia de contrato. |
80
- | projects/praxis-core/src/lib/models/material-field-metadata.interface.ts | schema-types | Arquivo presente no repositorio e usado como evidencia de contrato. |
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 validacao incompleta.
86
- - **Declared-only**: declarado em tipos/schema sem evidencia operacional completa.
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 canonico |
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 evidencia de runtime |
98
- | Schema verified | `true` | Revisar sempre com evidencia de tipos/schema |
99
- | Editor coverage verified | `false` | Revisar sempre com evidencia de editor/tooling |
100
- | Current path hygiene | `false` | Segregar consistencia do contrato canonico |
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 revisao.
120
+ Nenhum desvio de caminho foi identificado nesta revisão.
121
121
 
122
122
  ### Internal-only paths
123
123
 
124
- Nao ha paths internal-only confirmados no contrato publico desta revisao.
124
+ Não ha paths internal-only confirmados no contrato público desta revisão.
125
125
 
126
126
  ### Experimental paths
127
127
 
128
- Nao ha paths experimentais confirmados no contrato publico desta revisao.
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` | Configuracao especifica de runtime | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
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` | Renderizacao de apresentacao sem interacao | false | override | runtime linkage verified for core flows (component specs, 2026-03-16). |
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 valido, bindings de host consistentes e dependencias descritas no source_of_truth.
207
- - Fora de cobertura confirmada: caminhos internos, experimentais ou aliases nao enumerados formalmente.
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 nao deve ser inferido como suporte runtime total.
213
- - Campos disponiveis apenas via JSON/manual devem continuar no contrato, com rotulo explicito de cobertura parcial.
214
- - Quando houver divergencia entre editor e runtime, manter mismatch rastreavel em secao dedicada.
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 historicos (quando suportados) -> defaults internos -> comportamento seguro
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
- - configuracao JSON de runtime
233
- - integracoes de host (servicos/tokens/adapters)
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 canonicos; onde nao houver evidencia, manter not-yet-verified de forma explicita.
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 historico e path canonico, priorizar path canonico e registrar janela de migracao do historico.
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 referencia tecnica por componente. |
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 ligacao runtime antes de uso critico. |
268
- | mismatch-confirmed | error-or-warning | componente/host observability | Planejar migracao e corrigir contrato/runtime. |
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. Visao Geral e Quando Usar
274
- `pdx-inline-sentiment` e um filtro inline de sentimento com emojis, barra de gradiente e cards selecionaveis.
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 rapida via emoji + cor;
279
- - permitir single ou multipla selecao com pills de resumo.
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 | Padrao | Obrigatorio | Comportamento |
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` | Nao | Estados de host do campo inline. |
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 | Opcao escolhida no card de sentimento. |
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 especificos do componente
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 animacao de emoji em hover/select. |
298
- | `metadata.sentimentCloseOnSelect` | `boolean` | Ativo | Fecha painel apos selecao (single). |
299
- | `metadata.sentimentEmojiKey/optionEmojiKey` | `string` | Ativo | Chave do emoji por opcao. |
300
- | `metadata.sentimentColorKey/optionColorKey` | `string` | Ativo | Chave da cor por opcao. |
301
- | `metadata.sentimentPalette/palette` | `array \| string` | Ativo | Paleta fallback para opcoes sem cor. |
302
- | `metadata.sentimentGradientLowColor/midColor/highColor` | `string` | Ativo | Gradiente semantico fallback para barra e opcoes sem cor explicita. |
303
- | `metadata.sentimentTexts` / `inlineTexts` | `object \| string(JSON)` | Ativo | Textos de subtitulo, aria, labels de grupo/pills e empty state; templates canonicos devem usar `{{label}}` e `{{value}}` quando houver interpolacao. |
304
- | `metadata.inlineOverlay.applyMode` | `"auto" \| "explicit"` | Ativo | Define se cards de sentimento comitam imediatamente ou ficam em rascunho ate `Aplicar`. |
305
- | `metadata.inlineOverlay.actions.apply` | `object` | Ativo | Configura label, aria-label, icone, `appearance` e `colorRole` da acao de commit. |
306
- | `metadata.inlineOverlay.actions.cancel` | `object` | Ativo | Configura a acao que descarta rascunho e fecha o painel. |
307
- | `metadata.inlineOverlay.actions.clear` | `object` | Ativo | Configura a acao que remove a selecao aplicada/rascunho usando tokens do tema. |
308
- | `metadata.sentimentIcon` / `prefixIcon` | `string` | Ativo | Icone do trigger/painel. |
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 composicao deste componente:
315
+ Resumo de composição deste componente:
316
316
  - `Ativo`: cards de sentimento com emoji/cor, barra e pills de resumo.
317
- - `Extensao de runtime`: namespace `sentiment*` com fallback para chaves genericas.
317
+ - `Extensão de runtime`: namespace `sentiment*` com fallback para chaves genéricas.
318
318
 
319
319
  ### 4. Mapeamento de Comportamento
320
- - Opcoes podem ser carregadas de `sentimentOptions`, `selectOptions` ou `options`.
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 multiplo, respeita `maxSelections` herdado.
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"`, selecoes no painel alteram apenas o rascunho; `Aplicar` comita, `Cancelar`, `Esc` e clique externo descartam, e `Limpar` remove a selecao.
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 Minimo (JSON + Uso)
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: classificacao simples de sentimento.
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: analise de CX com semantica visual direta e confirmacao explicita antes de aplicar.
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 nao renderiza.
385
- Correcao: ajustar `sentimentEmojiKey` ou o campo de payload.
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
- Correcao: revisar `sentimentColorKey` e `sentimentPalette`.
388
+ Correção: revisar `sentimentColorKey` e `sentimentPalette`.
389
389
 
390
- 3. Painel nao fecha no single.
391
- Correcao: habilitar `sentimentCloseOnSelect=true`.
390
+ 3. Painel não fecha no single.
391
+ Correção: habilitar `sentimentCloseOnSelect=true`.
392
392
 
393
- 4. Pills nao aparecem no multiplo.
394
- Correcao: verificar `sentimentShowSelectionPills`.
393
+ 4. Pills não aparecem no múltiplo.
394
+ Correção: verificar `sentimentShowSelectionPills`.
395
395
 
396
- 5. Animacao de emoji nao ocorre.
397
- Correcao: validar `sentimentAnimatedEmoji`.
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. Relatorio de Validacao Estrutural
404
- - Visao geral: PASS
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 minimo: PASS
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 referencia foram atualizados em 2026-03-16 para refletir a migracao do componente para o catalogo shared de i18n e o uso de templates `{{...}}` | Manter exemplos e host overrides no formato canonico `{{...}}` | Low | n/a | Monitor in periodic audit |
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" \| "confirm"` | Ativo | Quando `explicit`/`confirm`, slider, inputs e presets ficam em rascunho ate `Aplicar`. |
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"` ou `"confirm"`, alteracoes no painel nao emitem valor externo ate `Aplicar`; `Cancelar`, `Esc`, detach ou clique externo restauram o valor confirmado anterior.
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
@@ -281,6 +281,9 @@ interface PraxisDynamicFieldsI18nOverrides {
281
281
  displayUpto?: PraxisDynamicFieldText;
282
282
  presetFrom?: PraxisDynamicFieldText;
283
283
  };
284
+ dateRange?: {
285
+ shortcutsAriaLabel?: PraxisDynamicFieldText;
286
+ };
284
287
  inlineDateRange?: {
285
288
  placeholder?: PraxisDynamicFieldText;
286
289
  startPlaceholder?: PraxisDynamicFieldText;
@@ -326,6 +329,13 @@ interface PraxisDynamicFieldsI18nOverrides {
326
329
  };
327
330
  inlineRange?: {
328
331
  placeholder?: PraxisDynamicFieldText;
332
+ minLabel?: PraxisDynamicFieldText;
333
+ maxLabel?: PraxisDynamicFieldText;
334
+ valueLabel?: PraxisDynamicFieldText;
335
+ quickPresetsLabel?: PraxisDynamicFieldText;
336
+ clearActionLabel?: PraxisDynamicFieldText;
337
+ applyActionLabel?: PraxisDynamicFieldText;
338
+ doneActionLabel?: PraxisDynamicFieldText;
329
339
  cancelActionLabel?: PraxisDynamicFieldText;
330
340
  };
331
341
  inlineCurrencyRange?: {
@@ -341,6 +351,13 @@ interface PraxisDynamicFieldsI18nOverrides {
341
351
  from?: PraxisDynamicFieldText;
342
352
  upto?: PraxisDynamicFieldText;
343
353
  };
354
+ validation?: {
355
+ required?: PraxisDynamicFieldText;
356
+ rangeOrder?: PraxisDynamicFieldText;
357
+ rangeMin?: PraxisDynamicFieldText;
358
+ rangeMax?: PraxisDynamicFieldText;
359
+ invalid?: PraxisDynamicFieldText;
360
+ };
344
361
  };
345
362
  inlineSelect?: {
346
363
  placeholder?: PraxisDynamicFieldText;
@@ -359,6 +376,7 @@ interface PraxisDynamicFieldsI18nOverrides {
359
376
  selectionTitle?: PraxisDynamicFieldText;
360
377
  selectionBadgesAriaLabel?: PraxisDynamicFieldText;
361
378
  removeSelectionAriaLabel?: PraxisDynamicFieldText;
379
+ fallbackOptionLabel?: PraxisDynamicFieldText;
362
380
  emptyStateText?: PraxisDynamicFieldText;
363
381
  overlayActionsAriaLabel?: PraxisDynamicFieldText;
364
382
  clearActionLabel?: PraxisDynamicFieldText;
@@ -384,14 +402,43 @@ interface PraxisDynamicFieldsI18nOverrides {
384
402
  inlineRelativePeriod?: {
385
403
  placeholder?: PraxisDynamicFieldText;
386
404
  panelSubtitle?: PraxisDynamicFieldText;
405
+ defaultOptions?: {
406
+ today?: PraxisDynamicFieldText;
407
+ yesterday?: PraxisDynamicFieldText;
408
+ last7?: PraxisDynamicFieldText;
409
+ last30?: PraxisDynamicFieldText;
410
+ thisMonth?: PraxisDynamicFieldText;
411
+ lastMonth?: PraxisDynamicFieldText;
412
+ thisQuarter?: PraxisDynamicFieldText;
413
+ thisYear?: PraxisDynamicFieldText;
414
+ };
387
415
  progressEmptyLabel?: PraxisDynamicFieldText;
416
+ progressAriaLabel?: PraxisDynamicFieldText;
388
417
  optionsGroupAriaLabel?: PraxisDynamicFieldText;
418
+ fallbackOptionLabel?: PraxisDynamicFieldText;
389
419
  emptyStateText?: PraxisDynamicFieldText;
390
420
  overlayActionsAriaLabel?: PraxisDynamicFieldText;
391
421
  clearActionLabel?: PraxisDynamicFieldText;
392
422
  cancelActionLabel?: PraxisDynamicFieldText;
393
423
  applyActionLabel?: PraxisDynamicFieldText;
394
424
  };
425
+ inlinePeriodRange?: {
426
+ minLabel?: PraxisDynamicFieldText;
427
+ maxLabel?: PraxisDynamicFieldText;
428
+ quickPresetsLabel?: PraxisDynamicFieldText;
429
+ };
430
+ inlineMonthRange?: {
431
+ quickPresetsLabel?: PraxisDynamicFieldText;
432
+ presetFull?: PraxisDynamicFieldText;
433
+ presetFirstHalf?: PraxisDynamicFieldText;
434
+ presetSecondHalf?: PraxisDynamicFieldText;
435
+ };
436
+ inlineYearRange?: {
437
+ minLabel?: PraxisDynamicFieldText;
438
+ maxLabel?: PraxisDynamicFieldText;
439
+ quickPresetsLabel?: PraxisDynamicFieldText;
440
+ presetFull?: PraxisDynamicFieldText;
441
+ };
395
442
  inlineTime?: {
396
443
  placeholder?: PraxisDynamicFieldText;
397
444
  openPanelAriaLabel?: PraxisDynamicFieldText;
@@ -404,10 +451,18 @@ interface PraxisDynamicFieldsI18nOverrides {
404
451
  inlineSentiment?: {
405
452
  placeholder?: PraxisDynamicFieldText;
406
453
  panelSubtitle?: PraxisDynamicFieldText;
454
+ defaultOptions?: {
455
+ terrible?: PraxisDynamicFieldText;
456
+ bad?: PraxisDynamicFieldText;
457
+ neutral?: PraxisDynamicFieldText;
458
+ good?: PraxisDynamicFieldText;
459
+ great?: PraxisDynamicFieldText;
460
+ };
407
461
  barAriaEmpty?: PraxisDynamicFieldText;
408
462
  barAriaSelected?: PraxisDynamicFieldText;
409
463
  optionsGroupAriaLabel?: PraxisDynamicFieldText;
410
464
  selectionPillsAriaLabel?: PraxisDynamicFieldText;
465
+ fallbackOptionLabel?: PraxisDynamicFieldText;
411
466
  emptyStateText?: PraxisDynamicFieldText;
412
467
  overlayActionsAriaLabel?: PraxisDynamicFieldText;
413
468
  clearActionLabel?: PraxisDynamicFieldText;
@@ -1987,6 +2042,7 @@ declare class MaterialDateRangeComponent extends SimpleBaseInputComponent implem
1987
2042
  picker: MatDateRangePicker<Date>;
1988
2043
  private endDateInput?;
1989
2044
  readonly shouldShowShortcuts: () => boolean;
2045
+ readonly shortcutOverlayAriaLabel: _angular_core.Signal<string>;
1990
2046
  readonly overlayPositions: () => ConnectedPosition[];
1991
2047
  private shortcutOverlayBelowPositions;
1992
2048
  private shortcutOverlayLeftPositions;
@@ -3460,6 +3516,7 @@ declare class InlineCurrencyComponent extends SimpleBaseInputComponent {
3460
3516
  inlineWidthPx: number;
3461
3517
  inlineMaxWidthPx: number;
3462
3518
  private resizeRafId;
3519
+ private displayFormatRafId;
3463
3520
  private fieldLabelText;
3464
3521
  private minValidator?;
3465
3522
  private maxValidator?;
@@ -3513,8 +3570,10 @@ declare class InlineCurrencyComponent extends SimpleBaseInputComponent {
3513
3570
  private allowNegative;
3514
3571
  private applyMaskedInput;
3515
3572
  private digitsToNumber;
3573
+ private normalizeDecimalPlaces;
3516
3574
  private syncDigitsFromValue;
3517
3575
  private formatDisplayValue;
3576
+ private scheduleDisplayFormat;
3518
3577
  private formatDecimalValue;
3519
3578
  private setCaretToEnd;
3520
3579
  private detectNegative;
@@ -3684,6 +3743,7 @@ declare class InlineCurrencyRangeComponent extends SimpleBaseInputComponent {
3684
3743
  private formatCurrency;
3685
3744
  private currencyFormatter;
3686
3745
  private resolveDecimalPlaces;
3746
+ private normalizeDecimalPlaces;
3687
3747
  private allowNegative;
3688
3748
  private recalculateInlineSizeBounds;
3689
3749
  private resetFormatterCache;
@@ -3910,6 +3970,7 @@ declare class InlineRangeSliderComponent extends SimpleBaseInputComponent {
3910
3970
  private usesCurrencyFormatting;
3911
3971
  private usesPercentFormatting;
3912
3972
  private resetFormatterCache;
3973
+ private normalizeDecimalPlaces;
3913
3974
  private resetQuickPresetsCache;
3914
3975
  private resetDistributionCache;
3915
3976
  private resolveFieldLabelFromMetadata;
@@ -4259,6 +4320,7 @@ declare class InlineTimeComponent extends MaterialTimepickerComponent {
4259
4320
  errorStateMatcher(): _angular_material_core.ErrorStateMatcher;
4260
4321
  isInteractionBlocked(): boolean;
4261
4322
  showQuickClear(): boolean;
4323
+ showPanelToggle(): boolean;
4262
4324
  hasInlineValue(): boolean;
4263
4325
  showInlinePlaceholder(): boolean;
4264
4326
  onTriggerIconMouseDown(event: MouseEvent): void;
@@ -4311,7 +4373,6 @@ declare class InlineTimeComponent extends MaterialTimepickerComponent {
4311
4373
  private recalculateInlineWidth;
4312
4374
  private resolveWidthBounds;
4313
4375
  private resolveChromeWidth;
4314
- private parsePx;
4315
4376
  private resolveFieldLabelFromMetadata;
4316
4377
  private normalizeControlValue;
4317
4378
  private resolveDisplayTime;
@@ -4571,6 +4632,8 @@ declare class InlineTreeSelectComponent extends SimpleBaseSelectComponent {
4571
4632
  selectNode(node: MaterialTreeNode): void;
4572
4633
  isSelected(node: MaterialTreeNode): boolean;
4573
4634
  isNodeDisabled(node: MaterialTreeNode): boolean;
4635
+ isNodeSelectionOnlyDisabled(node: MaterialTreeNode): boolean;
4636
+ private isNodeSelectionBlocked;
4574
4637
  handleKeydown(event: KeyboardEvent, node: MaterialTreeNode): void;
4575
4638
  filteredTreeCount(): number;
4576
4639
  emptyStateText(): string;
@@ -5118,9 +5181,11 @@ declare class InlineRelativePeriodComponent extends SimpleBaseSelectComponent {
5118
5181
  onPanelDone(event: MouseEvent): void;
5119
5182
  isInteractionBlocked(): boolean;
5120
5183
  private parseOptionsSource;
5184
+ private defaultRelativePeriodOptions;
5121
5185
  private selectedOptions;
5122
5186
  private toVisualOption;
5123
5187
  private resolveOptionSubtitle;
5188
+ private fallbackOptionLabel;
5124
5189
  private resolveOptionIcon;
5125
5190
  private selectedValues;
5126
5191
  private resolveCloseOnSelect;
@@ -5240,8 +5305,10 @@ declare class InlineSentimentComponent extends SimpleBaseSelectComponent {
5240
5305
  onPanelDone(event: MouseEvent): void;
5241
5306
  isInteractionBlocked(): boolean;
5242
5307
  private parseOptionsSource;
5308
+ private defaultSentimentOptions;
5243
5309
  private toVisualOption;
5244
5310
  private resolveOptionEmoji;
5311
+ private fallbackOptionLabel;
5245
5312
  private resolveOptionColor;
5246
5313
  private sentimentGradientColorByIndex;
5247
5314
  private sentimentGradientColorByRatio;
@@ -5374,6 +5441,7 @@ declare class InlineColorLabelComponent extends SimpleBaseSelectComponent<unknow
5374
5441
  private parseOptionsSource;
5375
5442
  private toVisualOption;
5376
5443
  private resolveOptionColor;
5444
+ private fallbackOptionLabel;
5377
5445
  private parseColorList;
5378
5446
  private selectedValues;
5379
5447
  private openPanel;