@praxisui/dynamic-fields 8.0.0-beta.99 → 9.0.0-beta.1
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 +2 -2
- package/docs/dynamic-fields-inline-components-guide.md +36 -24
- package/fesm2022/praxisui-dynamic-fields.mjs +3699 -345
- package/package.json +3 -3
- package/src/lib/base/pdx-base-input-runtime-contract.json-api.md +4 -4
- package/src/lib/components/inline-color-label/pdx-inline-color-label.json-api.md +43 -2
- package/src/lib/components/inline-currency-range/pdx-inline-currency-range.json-api.md +15 -0
- package/src/lib/components/inline-date/pdx-inline-date.json-api.md +10 -2
- package/src/lib/components/inline-date-range/pdx-inline-date-range.json-api.md +26 -9
- package/src/lib/components/inline-distance-radius/pdx-inline-distance-radius.json-api.md +7 -0
- package/src/lib/components/inline-multi-select/pdx-inline-multi-select.json-api.md +24 -3
- package/src/lib/components/inline-pipeline-status/pdx-inline-pipeline-status.json-api.md +17 -0
- package/src/lib/components/inline-range-slider/pdx-inline-range-slider.json-api.md +8 -1
- package/src/lib/components/inline-rating/pdx-inline-rating.json-api.md +13 -0
- package/src/lib/components/inline-relative-period/pdx-inline-relative-period.json-api.md +13 -0
- package/src/lib/components/inline-score-priority/pdx-inline-score-priority.json-api.md +13 -0
- package/src/lib/components/inline-sentiment/pdx-inline-sentiment.json-api.md +20 -2
- package/src/lib/components/inline-time-range/pdx-inline-time-range.json-api.md +13 -0
- package/src/lib/components/material-cpf-cnpj-input/pdx-material-cpf-cnpj-input.json-api.md +4 -3
- package/src/lib/components/material-price-range/pdx-material-price-range.json-api.md +4 -0
- package/src/lib/components/material-slide-toggle/pdx-material-slide-toggle.json-api.md +26 -22
- package/types/praxisui-dynamic-fields.d.ts +381 -4
|
@@ -300,6 +300,8 @@ Use quando precisar:
|
|
|
300
300
|
| `metadata.scoreTexts/priorityTexts` | `object \| string(JSON)` | Ativo | Textos de labels, aria e separador de faixa; templates canonicos devem usar `{{label}}`, `{{start}}` e `{{end}}`, com compatibilidade legada para `{...}` em metadata. |
|
|
301
301
|
| `metadata.scoreValueFallbackColor/priorityValueFallbackColor` | `string` | Ativo | Cor de fallback para valor selecionado. |
|
|
302
302
|
| `metadata.scoreEmptyGradient/priorityEmptyGradient` | `string` | Ativo | Gradiente quando nao ha bandas definidas. |
|
|
303
|
+
| `metadata.inlineOverlay.applyMode` | `'auto'\|'explicit'` | Ativo | Define se slider e chips de banda comitam durante a interacao ou ficam em rascunho ate `Aplicar`. |
|
|
304
|
+
| `metadata.inlineOverlay.actions.apply/cancel/clear` | `object` | Ativo | Labels, aria, icones, `appearance` e `colorRole` das acoes do painel, materializados por tokens do tema. |
|
|
303
305
|
| `metadata.inlineAutoSize.*` | `object` | Ativo | Largura da pill e painel no modo inline. |
|
|
304
306
|
|
|
305
307
|
#### 3.2 Campos herdados compartilhados (exaustivo)
|
|
@@ -314,6 +316,7 @@ Resumo de composicao deste componente:
|
|
|
314
316
|
- Resolve bandas por ordem: `scoreBands` -> `priorityBands` -> `bands`.
|
|
315
317
|
- Se bandas tiverem ranges explicitos, usa start/end; senao distribui uniformemente.
|
|
316
318
|
- Em modo range, chips de banda aplicam recorte start/end direto no slider.
|
|
319
|
+
- Com `inlineOverlay.applyMode: "explicit"`, slider e chips alteram apenas o rascunho do painel; `Aplicar` comita, enquanto `Cancelar`, `Esc` e fechamento externo restauram o valor anterior.
|
|
317
320
|
- Cores dos valores selecionados seguem banda ativa ou fallback configurado.
|
|
318
321
|
|
|
319
322
|
### 5. Exemplo Minimo (JSON + Uso)
|
|
@@ -357,6 +360,14 @@ Uso: score unico sem bandas custom.
|
|
|
357
360
|
"rangeSeparator": "a",
|
|
358
361
|
"bandAriaLabelTemplate": "{{label}} entre {{start}} e {{end}}"
|
|
359
362
|
},
|
|
363
|
+
"inlineOverlay": {
|
|
364
|
+
"applyMode": "explicit",
|
|
365
|
+
"actions": {
|
|
366
|
+
"apply": { "label": "Aplicar", "appearance": "filled", "colorRole": "primary" },
|
|
367
|
+
"cancel": { "label": "Cancelar", "appearance": "text", "colorRole": "neutral" },
|
|
368
|
+
"clear": { "label": "Limpar", "appearance": "outlined", "colorRole": "neutral" }
|
|
369
|
+
}
|
|
370
|
+
},
|
|
360
371
|
"inlineAutoSize": { "minWidth": 186, "maxWidth": 340, "panelMinWidth": 320, "panelMaxWidth": 560 }
|
|
361
372
|
}
|
|
362
373
|
}
|
|
@@ -399,6 +410,8 @@ Correcao: preencher `scoreUnit` (ou `priorityUnit`/`unit`).
|
|
|
399
410
|
| `metadata` | object | true | n/a | Partial | See Detailed API reference. |
|
|
400
411
|
| `metadata.scoreShowScaleLabels` | unknown | false | n/a | Partial | See Detailed API reference. |
|
|
401
412
|
| `metadata.scoreShowBandChips` | unknown | false | n/a | Partial | See Detailed API reference. |
|
|
413
|
+
| `metadata.inlineOverlay.applyMode` | `'auto'\|'explicit'` | false | `auto` | Active | Controls draft versus immediate commit behavior. |
|
|
414
|
+
| `metadata.inlineOverlay.actions.*` | object | false | n/a | Active | Panel action labels, aria, icons and theme roles. |
|
|
402
415
|
| `metadata.inlineAutoSize.*` | object | false | n/a | Partial | See Detailed API reference. |
|
|
403
416
|
| `readonlyMode` | boolean | false | n/a | Partial | See Detailed API reference. |
|
|
404
417
|
| `disabledMode` | boolean | false | n/a | Partial | See Detailed API reference. |
|
|
@@ -301,6 +301,10 @@ Use quando precisar:
|
|
|
301
301
|
| `metadata.sentimentPalette/palette` | `array \| string` | Ativo | Paleta fallback para opcoes sem cor. |
|
|
302
302
|
| `metadata.sentimentGradientLowColor/midColor/highColor` | `string` | Ativo | Gradiente semantico fallback para barra e opcoes sem cor explicita. |
|
|
303
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. |
|
|
304
308
|
| `metadata.sentimentIcon` / `prefixIcon` | `string` | Ativo | Icone do trigger/painel. |
|
|
305
309
|
| `metadata.inlineAutoSize.*` | `object` | Ativo | Largura da pill e painel. |
|
|
306
310
|
|
|
@@ -317,6 +321,7 @@ Resumo de composicao deste componente:
|
|
|
317
321
|
- Cor/emoji de cada item segue ordem de chaves custom -> payload -> paleta fallback.
|
|
318
322
|
- Em multiplo, respeita `maxSelections` herdado.
|
|
319
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.
|
|
320
325
|
|
|
321
326
|
### 5. Exemplo Minimo (JSON + Uso)
|
|
322
327
|
```json
|
|
@@ -360,11 +365,20 @@ Uso: classificacao simples de sentimento.
|
|
|
360
365
|
"emptyStateText": "Nenhum sentimento disponível",
|
|
361
366
|
"barAriaSelected": "{{label}} com {{value}}"
|
|
362
367
|
},
|
|
363
|
-
"inlineAutoSize": { "minWidth": 186, "maxWidth": 360, "panelMinWidth": 320, "panelMaxWidth": 560 }
|
|
368
|
+
"inlineAutoSize": { "minWidth": 186, "maxWidth": 360, "panelMinWidth": 320, "panelMaxWidth": 560 },
|
|
369
|
+
"clearButton": { "enabled": true, "showOnlyWhenFilled": true },
|
|
370
|
+
"inlineOverlay": {
|
|
371
|
+
"applyMode": "explicit",
|
|
372
|
+
"actions": {
|
|
373
|
+
"apply": { "label": "Aplicar", "appearance": "filled", "colorRole": "primary" },
|
|
374
|
+
"cancel": { "label": "Cancelar", "appearance": "text", "colorRole": "neutral" },
|
|
375
|
+
"clear": { "label": "Limpar", "appearance": "outlined", "colorRole": "neutral" }
|
|
376
|
+
}
|
|
377
|
+
}
|
|
364
378
|
}
|
|
365
379
|
}
|
|
366
380
|
```
|
|
367
|
-
Uso: analise de CX com semantica visual direta.
|
|
381
|
+
Uso: analise de CX com semantica visual direta e confirmacao explicita antes de aplicar.
|
|
368
382
|
|
|
369
383
|
### 7. Troubleshooting e Armadilhas Comuns
|
|
370
384
|
1. Emoji nao renderiza.
|
|
@@ -408,6 +422,10 @@ Correcao: validar `sentimentAnimatedEmoji`.
|
|
|
408
422
|
| `metadata.sentimentCloseOnSelect` | boolean | false | n/a | Partial | See Detailed API reference. |
|
|
409
423
|
| `metadata.sentimentTexts` | unknown | false | n/a | Partial | See Detailed API reference. |
|
|
410
424
|
| `metadata.sentimentIcon` | string | false | n/a | Partial | See Detailed API reference. |
|
|
425
|
+
| `metadata.inlineOverlay.applyMode` | string | false | `auto` | Active | `explicit` mantém rascunho até commit. |
|
|
426
|
+
| `metadata.inlineOverlay.actions.apply` | object | false | n/a | Active | Label, aria, icon, appearance and colorRole for Apply. |
|
|
427
|
+
| `metadata.inlineOverlay.actions.cancel` | object | false | n/a | Active | Label, aria, icon, appearance and colorRole for Cancel. |
|
|
428
|
+
| `metadata.inlineOverlay.actions.clear` | object | false | n/a | Active | Label, aria, icon, appearance and colorRole for Clear. |
|
|
411
429
|
| `metadata.inlineAutoSize.*` | object | false | n/a | Partial | See Detailed API reference. |
|
|
412
430
|
| `selectOptions` | array | false | n/a | Partial | See Detailed API reference. |
|
|
413
431
|
| `readonlyMode` | boolean | false | n/a | Partial | See Detailed API reference. |
|
|
@@ -299,6 +299,10 @@ 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`. |
|
|
303
|
+
| `metadata.inlineOverlay.actions.apply.*` | `object` | Ativo | Label, aria, icon, appearance e colorRole do commit. |
|
|
304
|
+
| `metadata.inlineOverlay.actions.cancel.*` | `object` | Ativo | Label, aria, icon, appearance e colorRole do descarte. |
|
|
305
|
+
| `metadata.inlineOverlay.actions.clear.*` | `object` | Ativo | Label, aria, icon, appearance, colorRole e visibilidade da limpeza explicita. |
|
|
302
306
|
| `metadata.inlineAutoSize.*` | `object` | Ativo | Larguras da pill e painel inline. |
|
|
303
307
|
|
|
304
308
|
#### 3.2 Campos herdados compartilhados (exaustivo)
|
|
@@ -314,6 +318,7 @@ Resumo de composicao deste componente:
|
|
|
314
318
|
- `quickPresets` podem ser declarados ou gerados por defaults internos.
|
|
315
319
|
- Slider e inputs textuais permanecem sincronizados (`timeRangeForm` + `sliderRangeForm`).
|
|
316
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.
|
|
317
322
|
|
|
318
323
|
### 5. Exemplo Minimo (JSON + Uso)
|
|
319
324
|
```json
|
|
@@ -355,6 +360,14 @@ Uso: intervalo simples de horario comercial.
|
|
|
355
360
|
"rangeMessage": "Inicio deve ser menor que fim",
|
|
356
361
|
"minDistanceMessage": "Intervalo minimo nao atendido"
|
|
357
362
|
},
|
|
363
|
+
"inlineOverlay": {
|
|
364
|
+
"applyMode": "explicit",
|
|
365
|
+
"actions": {
|
|
366
|
+
"apply": { "label": "Aplicar", "appearance": "filled", "colorRole": "primary" },
|
|
367
|
+
"cancel": { "label": "Cancelar", "appearance": "text", "colorRole": "neutral" },
|
|
368
|
+
"clear": { "label": "Limpar", "appearance": "outlined", "colorRole": "neutral" }
|
|
369
|
+
}
|
|
370
|
+
},
|
|
358
371
|
"inlineAutoSize": { "minWidth": 186, "maxWidth": 360 }
|
|
359
372
|
}
|
|
360
373
|
}
|
|
@@ -276,7 +276,7 @@ Em conflito entre alias legado e path canonico, priorizar path canonico e regist
|
|
|
276
276
|
|
|
277
277
|
Use quando precisar:
|
|
278
278
|
- mascara dinamica CPF/CNPJ;
|
|
279
|
-
- validacao por algoritmo oficial (legacy e alfanumerico);
|
|
279
|
+
- validacao por algoritmo oficial (legacy e alfanumerico) quando explicitamente habilitada;
|
|
280
280
|
- opcao de persistir valor mascarado ou desmascarado no model.
|
|
281
281
|
|
|
282
282
|
### 2. API do Componente (Inputs/Outputs)
|
|
@@ -306,14 +306,15 @@ Observacao:
|
|
|
306
306
|
Notas de runtime:
|
|
307
307
|
- mascara CPF: `000.000.000-00`.
|
|
308
308
|
- mascara CNPJ: `00.000.000/0000-00` (com suporte alfanumerico no modo `alpha`).
|
|
309
|
-
-
|
|
309
|
+
- validacao semantica por algoritmo oficial e opt-in. O runtime aplica `createCpfCnpjValidator(metadata)` somente quando a metadata declara `validators.cpfCnpj`, `validators.cpf`, `validators.cnpj`, `validateDocument` ou `validateCpfCnpj`.
|
|
310
|
+
- mascara, pattern e limpeza de caracteres continuam podendo validar formato/shape; eles nao implicam validacao semantica automatica do documento.
|
|
310
311
|
|
|
311
312
|
#### 3.2 Campos herdados compartilhados (exaustivo)
|
|
312
313
|
Contrato completo dos campos herdados consumidos por `SimpleBaseInput`:
|
|
313
314
|
- [pdx-base-input-runtime-contract.json-api.md](projects/praxis-dynamic-fields/src/lib/base/pdx-base-input-runtime-contract.json-api.md)
|
|
314
315
|
|
|
315
316
|
Resumo de composicao deste componente:
|
|
316
|
-
- `Ativo`: contrato de documento + mascara + validador dinamico.
|
|
317
|
+
- `Ativo`: contrato de documento + mascara + validador dinamico quando opt-in.
|
|
317
318
|
- `Parcial`: `inputType` contratual nao altera tipo real do input.
|
|
318
319
|
- `Declared-only`: `effectiveFrom`.
|
|
319
320
|
|
|
@@ -329,6 +329,9 @@ Use quando precisar:
|
|
|
329
329
|
| `metadata.startMinMessage/startMaxMessage/endMinMessage/endMaxMessage` | `string` | Ativo | Mensagens custom de validacao segmentada. |
|
|
330
330
|
| `metadata.endMinOffsetMessage/startMaxOffsetMessage` | `string` | Ativo | Mensagens custom para regras de offset. |
|
|
331
331
|
| `metadata.step` | `number` | Declared-only | Declarado no contrato, sem binding dedicado no componente atual. |
|
|
332
|
+
| `metadata.showTicks` | `boolean \| "auto"` | Inline-only | Projeta marcações no popover do range monetário inline; este renderer completo não desenha ticks. |
|
|
333
|
+
| `metadata.marks` | `array \| string` | Inline-only | Marcadores semânticos usados pelo range monetário inline; este renderer completo não materializa labels no trilho. |
|
|
334
|
+
| `metadata.semanticBands` | `array \| string` | Inline-only | Bandas semânticas usadas pelo range monetário inline; este renderer completo não materializa bandas no trilho. |
|
|
332
335
|
| `metadata.inlineDistribution` | `object \| array \| string` | Declared-only | Contrato amplo, sem uso neste renderer. |
|
|
333
336
|
| `metadata.distribution` | `object \| array \| string` | Declared-only | Contrato amplo, sem uso neste renderer. |
|
|
334
337
|
|
|
@@ -338,6 +341,7 @@ Contrato compartilhado de input base:
|
|
|
338
341
|
|
|
339
342
|
Resumo de composicao deste componente:
|
|
340
343
|
- `Ativo`: configuracao monetaria completa + validacoes de faixa/offset.
|
|
344
|
+
- `Inline-only`: `showTicks`, `marks` e `semanticBands` sao materializados pelo range monetario inline.
|
|
341
345
|
- `Declared-only`: `step` e blocos de distribuicao nao usados no template atual.
|
|
342
346
|
|
|
343
347
|
### 4. Mapeamento de Comportamento
|
|
@@ -22,8 +22,8 @@ source_of_truth:
|
|
|
22
22
|
- "projects/praxis-dynamic-fields/src/lib/components/material-slide-toggle/material-slide-toggle.component.ts"
|
|
23
23
|
- "projects/praxis-dynamic-fields/src/lib/base/simple-base-input.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-13"
|
|
26
|
+
last_updated: "2026-06-13"
|
|
27
27
|
toc: true
|
|
28
28
|
sidebar: true
|
|
29
29
|
tags:
|
|
@@ -66,7 +66,7 @@ Este documento e a referencia canonica da API JSON de pdx-material-slide-toggle.
|
|
|
66
66
|
| --- | --- | --- | --- | --- |
|
|
67
67
|
| Component id | `pdx-material-slide-toggle` | Manter ID canonico estavel e versionado por contrato | Active | frontmatter.component |
|
|
68
68
|
| Primary contract source | `runtime-and-code` | Runtime, schema e docs devem permanecer rastreaveis | Partial | frontmatter.contract_source + source_of_truth |
|
|
69
|
-
| Runtime coverage | `true` | Comportamentos runtime criticos devem ficar explicitamente verificados | Active | `projects/praxis-dynamic-fields/src/lib/components/material-slide-toggle/material-slide-toggle.component.ts`, focused component specs on 2026-
|
|
69
|
+
| Runtime coverage | `true` | Comportamentos runtime criticos devem ficar explicitamente verificados | Active | `projects/praxis-dynamic-fields/src/lib/components/material-slide-toggle/material-slide-toggle.component.ts`, focused component specs on 2026-06-13 |
|
|
70
70
|
| Schema/type coverage | `true` | Tipos e schema devem refletir paths publicos do contrato | Active | source_of_truth + Detailed API reference |
|
|
71
71
|
| Editor/tooling coverage | `false` | Editor/tooling deve espelhar somente contrato publico suportado | 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` |
|
|
72
72
|
| Legacy paths | `false` | Segregar legado de caminhos canonicos com janela de migracao | Active | frontmatter.legacy_paths_present |
|
|
@@ -110,10 +110,10 @@ Este documento e a referencia canonica da API JSON de pdx-material-slide-toggle.
|
|
|
110
110
|
| Path | Type | Required | Default | Status | Notes |
|
|
111
111
|
| --- | --- | --- | --- | --- | --- |
|
|
112
112
|
| `metadata` | object | true | n/a | Active | See Detailed API reference for runtime semantics. |
|
|
113
|
-
| `readonlyMode` | boolean | false | `false` | Active | Blocks switch interaction and exposes `aria-readonly`. |
|
|
114
|
-
| `disabledMode` | boolean | false | `false` | Active |
|
|
113
|
+
| `readonlyMode` | boolean | false | `false` | Active | Blocks switch interaction, preserves the enabled form control, and exposes `aria-readonly`. |
|
|
114
|
+
| `disabledMode` | boolean | false | `false` | Active | Applies disabled state through the active `FormControl`, then exposes disabled styling/ARIA. |
|
|
115
115
|
| `visible` | boolean | false | `true` | Active | Hides the host and marks it `aria-hidden`. |
|
|
116
|
-
| `presentationMode` | boolean | false | `false` | Active | Blocks switch interaction as readonly presentation output. |
|
|
116
|
+
| `presentationMode` | boolean | false | `false` | Active | Blocks switch interaction as readonly presentation output while preserving the enabled form control. |
|
|
117
117
|
| `metadata.controlType` | string | false | n/a | Active | Runtime selector/type for this control. |
|
|
118
118
|
| `metadata.color` | string | false | n/a | Active | Material theme color passed to the switch. |
|
|
119
119
|
| `metadata.labelPosition` | string | false | `after` | Active | Label position in relation to the switch. |
|
|
@@ -136,12 +136,12 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
136
136
|
|
|
137
137
|
| Block | Purpose | Required | Merge strategy | Notes |
|
|
138
138
|
| --- | --- | --- | --- | --- |
|
|
139
|
-
| `metadata` | Payload declarativo principal do componente | true | deep-merge | runtime linkage verified for core flows (component specs, 2026-
|
|
140
|
-
| `readonlyMode` | Override de readonly no host/runtime | false | override |
|
|
141
|
-
| `disabledMode` | Override de disabled no host/runtime | false | override | disables
|
|
139
|
+
| `metadata` | Payload declarativo principal do componente | true | deep-merge | runtime linkage verified for core flows (component specs, 2026-06-13). |
|
|
140
|
+
| `readonlyMode` | Override de readonly no host/runtime | false | override | blocks interaction without disabling the form control and exposes readonly semantics (component specs, 2026-06-13). |
|
|
141
|
+
| `disabledMode` | Override de disabled no host/runtime | false | override | disables the active `FormControl` and only reenables state applied by `disabledMode` (component specs, 2026-06-13). |
|
|
142
142
|
| `visible` | Override de visibilidade no host/runtime | false | override | host visibility binding remains active. |
|
|
143
|
-
| `presentationMode` | Renderizacao de apresentacao sem interacao | false | override |
|
|
144
|
-
| `Validators` | Configuracao especifica de runtime | false | override | `requiredTrue` is added and removed according to current metadata (component specs, 2026-
|
|
143
|
+
| `presentationMode` | Renderizacao de apresentacao sem interacao | false | override | blocks interaction without disabling the form control and exposes readonly semantics (component specs, 2026-06-13). |
|
|
144
|
+
| `Validators` | Configuracao especifica de runtime | false | override | `requiredTrue` is added and removed according to current metadata and rebound when an external `FormControl` becomes active (component specs, 2026-06-13). |
|
|
145
145
|
|
|
146
146
|
### Nested configuration blocks
|
|
147
147
|
|
|
@@ -162,10 +162,10 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
162
162
|
| Binding/Path | Type | Required | Source | Runtime normalization | Notes |
|
|
163
163
|
| --- | --- | --- | --- | --- | --- |
|
|
164
164
|
| `metadata` | object | true | host-json | component-defined | Primary inbound contract payload. |
|
|
165
|
-
| `readonlyMode` | boolean | false | host-runtime | effective boolean | Host-level behavioral override that blocks interaction and exposes readonly semantics. |
|
|
166
|
-
| `disabledMode` | boolean | false | host-runtime | effective boolean | Host-level behavioral override that
|
|
165
|
+
| `readonlyMode` | boolean | false | host-runtime | effective boolean | Host-level behavioral override that blocks interaction without disabling the active form control and exposes readonly semantics. |
|
|
166
|
+
| `disabledMode` | boolean | false | host-runtime | effective boolean | Host-level behavioral override that applies disabled state through the active form control and exposes disabled semantics. |
|
|
167
167
|
| `visible` | boolean | false | host-runtime | effective boolean | Host-level visibility override. |
|
|
168
|
-
| `presentationMode` | boolean | false | host-runtime | effective boolean | Host-level presentation override that blocks interaction as readonly output. |
|
|
168
|
+
| `presentationMode` | boolean | false | host-runtime | effective boolean | Host-level presentation override that blocks interaction as readonly output without disabling the active form control. |
|
|
169
169
|
|
|
170
170
|
### Output events
|
|
171
171
|
|
|
@@ -197,7 +197,7 @@ Nao ha paths experimentais confirmados no contrato publico desta revisao.
|
|
|
197
197
|
|
|
198
198
|
| Surface | Verified | Coverage status | Evidence | Notes |
|
|
199
199
|
| --- | --- | --- | --- | --- |
|
|
200
|
-
| Runtime | `true` | Active | `projects/praxis-dynamic-fields/src/lib/components/material-slide-toggle/material-slide-toggle.component.ts`, focused component specs | Core runtime flows verified via focused component specs on 2026-
|
|
200
|
+
| Runtime | `true` | Active | `projects/praxis-dynamic-fields/src/lib/components/material-slide-toggle/material-slide-toggle.component.ts`, focused component specs | Core runtime flows verified via focused component specs on 2026-06-13; editor/tooling coverage remains independent. |
|
|
201
201
|
| Schema/Types | `true` | Active | source_of_truth + Detailed API reference | Reconcile schema/types with canonical paths during follow-up when needed. |
|
|
202
202
|
| 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. |
|
|
203
203
|
|
|
@@ -284,7 +284,7 @@ Use quando precisar:
|
|
|
284
284
|
| --- | --- | --- | --- | --- |
|
|
285
285
|
| `metadata` | `MaterialToggleMetadata` | - | Sim | Contrato principal do toggle. |
|
|
286
286
|
| `readonlyMode` | `boolean` | `false` | Nao | Sobrescreve leitura no host. |
|
|
287
|
-
| `disabledMode` | `boolean` | `false` | Nao | Sobrescreve disabled no host. |
|
|
287
|
+
| `disabledMode` | `boolean` | `false` | Nao | Sobrescreve disabled no host aplicando o estado no `FormControl` ativo. |
|
|
288
288
|
| `visible` | `boolean` | `true` | Nao | Controla exibicao no host. |
|
|
289
289
|
| `presentationMode` | `boolean` | `false` | Nao | Modo apresentacao sem edicao. |
|
|
290
290
|
| `valueChange` | `boolean` | - | Output base input | Mudanca do estado on/off. |
|
|
@@ -313,6 +313,7 @@ Resumo de composicao deste componente:
|
|
|
313
313
|
### 4. Mapeamento de Comportamento
|
|
314
314
|
- Valor: booleano ligado ao `FormControl`.
|
|
315
315
|
- Validacao: `requiredTrue` aplicavel para termos/aceite obrigatorio.
|
|
316
|
+
- Estados governados: `disabledMode` desabilita o `FormControl` ativo; `readonlyMode`, `metadata.readonly` e `presentationMode` bloqueiam interacao sem desabilitar o controle.
|
|
316
317
|
- Acessibilidade: nome acessivel, `aria-required`, `aria-invalid`, `aria-disabled` e `aria-readonly` no host/toggle.
|
|
317
318
|
- Erros/hints: pipeline padrao do base input.
|
|
318
319
|
|
|
@@ -356,7 +357,10 @@ Correcao: usar `requiredTrue=true` em vez de apenas `required`.
|
|
|
356
357
|
2. Esperar bloqueio editavel com `readonly=true`.
|
|
357
358
|
Correcao: `readonly=true`, `readonlyMode=true` e `presentationMode=true` bloqueiam interacao e mantem semantica readonly.
|
|
358
359
|
|
|
359
|
-
3.
|
|
360
|
+
3. Desabilitar o toggle por atributo DOM direto.
|
|
361
|
+
Correcao: usar `disabledMode=true` ou metadata `disabled=true`; o runtime aplica disabled pelo `FormControl` ativo para preservar a integracao Angular Reactive Forms.
|
|
362
|
+
|
|
363
|
+
4. Ripple nao desliga.
|
|
360
364
|
Correcao: validar `disableRipple=true` no metadata final aplicado.
|
|
361
365
|
|
|
362
366
|
4. Icone interno continua visivel.
|
|
@@ -510,13 +514,13 @@ Correcao: verificar binding do form control e serializacao booleana no host.
|
|
|
510
514
|
|
|
511
515
|
| Path/Behavior | Observed behavior (runtime) | Desired behavior | Impact | Tracking issue | Target fix |
|
|
512
516
|
| --- | --- | --- | --- | --- | --- |
|
|
513
|
-
| Canonical contract parity | No confirmed mismatch in this revision; runtime linkage verified for core flows (2026-
|
|
517
|
+
| Canonical contract parity | No confirmed mismatch in this revision; runtime linkage verified for core flows (2026-06-13), with editor/tooling coverage pending | Keep runtime/schema/editor alignment evidence updated | Low | n/a | Monitor in periodic audit |
|
|
514
518
|
|
|
515
519
|
## Source references (obrigatorio)
|
|
516
520
|
|
|
517
521
|
| Source type | Path/URL | Why it is source of truth | Last verified (YYYY-MM-DD) | Notes |
|
|
518
522
|
| --- | --- | --- | --- | --- |
|
|
519
|
-
| schema-metadata | projects/praxis-dynamic-fields/src/lib/components/material-slide-toggle/material-slide-toggle.metadata.ts | Primary source of truth for contract and behavior. | 2026-
|
|
520
|
-
| runtime-code | projects/praxis-dynamic-fields/src/lib/components/material-slide-toggle/material-slide-toggle.component.ts | Primary source of truth for contract and behavior. | 2026-
|
|
521
|
-
| runtime-code | projects/praxis-dynamic-fields/src/lib/base/simple-base-input.component.ts | Primary source of truth for contract and behavior. | 2026-
|
|
522
|
-
| schema-types | projects/praxis-core/src/lib/models/material-field-metadata.interface.ts | Primary source of truth for contract and behavior. | 2026-
|
|
523
|
+
| schema-metadata | projects/praxis-dynamic-fields/src/lib/components/material-slide-toggle/material-slide-toggle.metadata.ts | Primary source of truth for contract and behavior. | 2026-06-13 | verified-path |
|
|
524
|
+
| runtime-code | projects/praxis-dynamic-fields/src/lib/components/material-slide-toggle/material-slide-toggle.component.ts | Primary source of truth for contract and behavior. | 2026-06-13 | verified-path |
|
|
525
|
+
| runtime-code | projects/praxis-dynamic-fields/src/lib/base/simple-base-input.component.ts | Primary source of truth for contract and behavior. | 2026-06-13 | verified-path |
|
|
526
|
+
| schema-types | projects/praxis-core/src/lib/models/material-field-metadata.interface.ts | Primary source of truth for contract and behavior. | 2026-06-13 | verified-path |
|