@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.
- package/README.md +119 -562
- package/docs/dynamic-fields-inline-components-guide.md +21 -1
- package/docs/dynamic-fields-inline-filter-runtime-contract.md +11 -0
- package/fesm2022/praxisui-dynamic-fields.mjs +612 -344
- package/package.json +4 -11
- 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/types/praxisui-dynamic-fields.d.ts +69 -1
|
@@ -147,7 +147,7 @@ Exemplo mínimo (quick clear explícito para os 3 inline especiais):
|
|
|
147
147
|
- Quando a fonte remota vier de `x-ui.optionSource.type = CATEGORICAL_BUCKET`, o runtime passa a assumir `loadOn = "init"` e esconde a busca por padrão, mantendo opt-in explícito via `metadata.searchable = true` quando o host realmente precisar de pesquisa textual.
|
|
148
148
|
- `inlineEntityLookup`: variante inline corporativa para lookup de entidades (`id + descrição`), com busca por id/descrição e atalho de reset no popover.
|
|
149
149
|
- `inlineAutocomplete`: autocomplete compacto em pill, com busca incremental e lista em popover arredondado.
|
|
150
|
-
- `inlineNumber`: número compacto em pill, com validação `min/max`, clear e largura adaptativa. Em `numericFormat/format = percent`, renderiza sufixo `%` e defaults corporativos (`min=0`, `max=100`, `step=0.01`) quando não informados. O visual gráfico enriquecido fica sob opt-in explícito com `inlineVisualStyle = "graphic"`,
|
|
150
|
+
- `inlineNumber`: número compacto em pill, com validação `min/max`, clear e largura adaptativa. Em `numericFormat/format = percent`, renderiza sufixo `%` e defaults corporativos (`min=0`, `max=100`, `step=0.01`) quando não informados. O visual gráfico enriquecido fica sob opt-in explícito com `inlineVisualStyle = "graphic"`, mas é reduzido ao pill compacto quando renderizado dentro de `praxis-filter` compacto para preservar densidade, ritmo e legibilidade da barra.
|
|
151
151
|
- `inlineCurrency`: moeda compacta em pill, com máscara, locale/moeda configuráveis e clear.
|
|
152
152
|
- `inlineCurrencyRange`: faixa monetária compacta em pill, com slider duplo em popover, resumo `min-max`, ticks/marks semânticos compactos, bands opcionais, histograma/distribuição, readout adaptativo para evitar colisão de valores longos e confirmação explícita por `Aplicar`/`Cancelar`.
|
|
153
153
|
- `inlineMultiSelect`: listas múltiplas compactas em pill + popover, exibindo tokens selecionados com overflow `+N`, seção de selecionados no painel e confirmação explícita por `inlineOverlay` quando necessário.
|
|
@@ -394,6 +394,21 @@ Override opcional por metadata:
|
|
|
394
394
|
}
|
|
395
395
|
```
|
|
396
396
|
|
|
397
|
+
### Política canônica de commit para overlays inline
|
|
398
|
+
|
|
399
|
+
`inlineOverlay` é o contrato canônico para painéis inline editáveis. Ele não deve ser substituído por contratos locais como `confirm`, `commitPolicy` ou labels isolados por componente.
|
|
400
|
+
|
|
401
|
+
| Classe de interação | Componentes típicos | Modo recomendado | Regra UX |
|
|
402
|
+
| --- | --- | --- | --- |
|
|
403
|
+
| Campo direto sem painel composto | `inlineInput`, `inlineNumber`, `inlineCurrency`, `inlineToggle` | Sem `inlineOverlay` | Alteração aplica imediatamente; `Cancelar`/`Aplicar` adicionaria fricção sem reduzir erro. |
|
|
404
|
+
| Seleção simples conclusiva | `inlineSelect`, `inlineSearchableSelect`, `inlineAsyncSelect`, `inlineAutocomplete`, `inlineTreeSelect`, `inlineTime` | `auto` ou sem `inlineOverlay` | Escolher uma opção aplica o filtro; `Esc` e clique externo apenas fecham o painel. |
|
|
405
|
+
| Seleção múltipla, range, presets ou painel exploratório | `inlineMultiSelect`, `inlineRange`, `inlineCurrencyRange`, `inlineRating`, `inlineDistanceRadius`, `inlineScorePriority`, `inlinePipelineStatus`, `inlineRelativePeriod`, `inlineSentiment`, `inlineColorLabel`, `inlineDate`, `inlineDateRange`, `inlineTimeRange` | `explicit` quando houver rascunho real; `auto` quando a interação for filtro rápido | Em `explicit`, alterações ficam em rascunho; `Aplicar` comita; `Cancelar`, `Esc` e fechamento externo restauram o valor confirmado anterior. |
|
|
406
|
+
| Lookup com dialog real | `inlineEntityLookup` | Semântica de dialog | `Cancelar` fecha sem alterar a seleção confirmada; a ação primária do dialog comita e o foco retorna ao trigger. |
|
|
407
|
+
|
|
408
|
+
O vocabulário público de `inlineOverlay.applyMode` é `auto | explicit`. Componentes podem tolerar aliases legados em runtime para compatibilidade, mas documentação, exemplos e authoring visual devem emitir `explicit` para fluxos com `Aplicar`/`Cancelar`.
|
|
409
|
+
|
|
410
|
+
`Limpar` não é sinônimo de `Cancelar`: no trigger/pill, limpa diretamente o valor aplicado; dentro de um painel `explicit`, deve limpar o rascunho e só virar valor final quando o usuário acionar `Aplicar`, salvo contrato específico documentado pelo componente.
|
|
411
|
+
|
|
397
412
|
`inlineSelect` usa o mesmo envelope de min/max por densidade/viewport (pill vazio e preenchido), mantendo largura por conteúdo para o texto selecionado.
|
|
398
413
|
`inlineMultiSelect` também usa o envelope adaptativo e, com `inlineOverlay.applyMode: "explicit"`, mantém seleção, remoção e limpeza do painel em rascunho até `Aplicar`; `Cancelar`, `Esc` ou fechamento externo restauram a seleção confirmada anterior. Labels, aria, `appearance` e `colorRole` das ações do rodapé devem vir de `inlineOverlay.actions.*`. O `inlineSelect` single ainda comita no clique por herdar o comportamento nativo do `mat-select`; confirmação explícita ali exige uma superfície de painel própria para não fechar ao selecionar.
|
|
399
414
|
`inlineAsyncSelect` segue o mesmo envelope adaptativo de largura e mantém label como placeholder visual quando vazio.
|
|
@@ -575,6 +590,11 @@ No exemplo `Showcase inline com metadados estáticos` (`/filter-demo`), o contra
|
|
|
575
590
|
- contador visual de linhas/filtros não usa `role=status` contínuo.
|
|
576
591
|
- live region dedicada (sr-only, `aria-live="polite"`) anuncia resultado somente após submissão.
|
|
577
592
|
- conflito temporal (`periodoRelativo` combinado com data/período absoluto) exibe aviso explícito.
|
|
593
|
+
- Customização visual:
|
|
594
|
+
- `clearButton.iconColor` deve ser respeitado mesmo quando o inline estiver dentro do host compacto do `praxis-filter`.
|
|
595
|
+
- Componentes inline que renderizam clear/close devem propagar a cor resolvida para `--pdx-inline-clear-icon-color` no próprio botão de limpeza.
|
|
596
|
+
- Hosts compactos podem estilizar tamanho, fundo e hover dos clear buttons, mas devem manter `color: var(--pdx-inline-clear-icon-color, currentColor)` para não descartar a customização feita no metadata editor.
|
|
597
|
+
- `inlineCurrency` deve manter formatação localizada após `Salvar & Fechar` no metadata editor, incluindo o caso de round-trip com `decimalPlaces` vazio.
|
|
578
598
|
|
|
579
599
|
Para E2E visual em CI, a configuração Playwright do filtro suporta servidor gerenciado:
|
|
580
600
|
|
|
@@ -129,6 +129,17 @@ Conclusao importante:
|
|
|
129
129
|
|
|
130
130
|
## Camada 4. shape do valor no front
|
|
131
131
|
|
|
132
|
+
### 4.1. commit de overlay inline
|
|
133
|
+
|
|
134
|
+
`inlineOverlay` é o contrato compartilhado para painéis inline que precisam separar rascunho visual de valor aplicado. O vocabulário público de `inlineOverlay.applyMode` é:
|
|
135
|
+
|
|
136
|
+
- `auto`: cada interação conclusiva aplica imediatamente o valor no `FormGroup`; `Esc` e clique externo apenas fecham o painel.
|
|
137
|
+
- `explicit`: alterações ficam em rascunho no painel; `Aplicar` comita o valor; `Cancelar`, `Esc` e fechamento externo restauram o valor confirmado anterior.
|
|
138
|
+
|
|
139
|
+
Não criar contratos locais como `confirm`, `commitPolicy` ou botões hardcoded por componente. Labels, `ariaLabel`, `appearance`, `colorRole`, ícones e visibilidade de ações pertencem a `inlineOverlay.actions.apply`, `inlineOverlay.actions.cancel` e `inlineOverlay.actions.clear`.
|
|
140
|
+
|
|
141
|
+
`Limpar` não é `Cancelar`: no trigger/pill é uma ação direta de remover o valor aplicado; dentro de um overlay `explicit`, deve limpar o rascunho e aguardar `Aplicar`, salvo contrato específico documentado pelo componente.
|
|
142
|
+
|
|
132
143
|
### Valores simples
|
|
133
144
|
|
|
134
145
|
- texto: `string`
|