# @praxisui/table - Release Notes (P1 Hardening)

Data de congelamento da baseline de docs: **2026-02-26**.

## Escopo consolidado

Nota historica: esta baseline e anterior a canonicalizacao de Json Logic. As referencias a DSL abaixo descrevem o estado de `2026-02-26`; para regras novas, use Json Logic canonico.

- DSL runtime com helpers corporativos embutidos:
  - `jsonType`, `coalesce`, `eqIgnoreCase`, `between`, `dateBetween`, `containsAny`, `containsAll`.
  - Helpers anteriores mantidos (`jsonGet/jsonEq/jsonIn`, `isBlank`, `today/now`, `len*`, etc.).
  - Normalização legada preservada para expressões antigas.
  - Limitação documentada: parser atual não suporta comparação direta de retorno de função (`fn(...) == valor`).
- `toolbar.actions.visibleWhen` hoje falha fechado em todos os ambientes quando a condicao nao e Json Logic valida. A baseline historica de `2026-02-26` registrava comportamento diagnostico legado, mas esse comportamento foi removido na canonicalizacao.
- `shortcutScope` canonico com validacao (`toolbar|global`) e fallback seguro.
- Guards schema-only para:
  - `behavior.sorting.multiSort`
  - `behavior.filtering.columnFilters.enabled`
- `appearance.colors.*` com binding real no runtime:
  - `background`, `hoverBackground`, `selectedBackground`, `textColor`, `states.*`.
- `messages.actions.success/errors` por `actionId` em `rowAction`, `toolbarAction` e `bulkAction`.

## Baseline de contrato/documentacao

- Contrato principal alinhado em:
  - `projects/praxis-table/src/lib/praxis-table.json-api.md`
- Guia historico de remocao da DSL em:
  - `projects/praxis-table/docs/DSL-Extensions-Guide.md`
- README de uso atualizado em:
  - `projects/praxis-table/README.md`
- Changelog atualizado em:
  - `projects/praxis-table/CHANGELOG.md`

## Evidencia MCP (Angular CLI)

- Ferramentas listadas:
  - `get_best_practices`
  - `search_documentation`
  - `list_projects`
- Recomendacoes aplicadas nesta release:
  - bindings visuais via classe/style declarativos (evitando logica visual difusa em template).
  - validacao via testes de DOM para classes e estilos efetivos (viewport/classes + cores).
  - fluxo de testes async padronizado com ambiente `zone.js/testing` para specs com `fakeAsync`.
  - manutencao de fallback seguro e comportamento previsivel no runtime/documentacao.
  - helper DSL puros/deterministicos com tratamento explicito de nulos e tipos.
- Referencias oficiais retornadas por `search_documentation`:
  - `https://angular.dev/best-practices/security`
  - `https://angular.dev/guide/testing/zone-js-testing-utilities`
  - `https://angular.dev/guide/testing`

## Checklist de compatibilidade (PR final)

- [x] Sem quebra de retrocompatibilidade de payload dos eventos (`action`, `row/rows`, `actionConfig`).
- [x] Fallbacks seguros para contrato invalido (`type` invalido, `shortcutScope` invalido, `visibleWhen` invalido).
- [x] Features schema-only com bloqueio explicito no editor e guard no runtime.
- [x] `appearance.colors.*` com precedencia documentada: custom > tokens > defaults.
- [x] Matriz de limitações conhecida atualizada para refletir guards e status reais.
- [x] Suite dirigida executada para runtime, toolbar, viewport, behavior editor e filtro.
- [x] Suite de regras DSL atualizada para novos helpers corporativos e fuzzing deterministico.

## Suite de regressao consolidada

Comando base de fechamento:

```bash
node_modules/.bin/ng test praxis-table --watch=false --browsers=ChromeHeadless \
  --polyfills=zone.js --polyfills=zone.js/testing \
  --include=projects/praxis-table/src/lib/praxis-table.local-runtime.spec.ts \
  --include=projects/praxis-table/src/lib/praxis-table-toolbar.spec.ts \
  --include=projects/praxis-table/src/lib/praxis-table.viewport-classes.spec.ts \
  --include=projects/praxis-table/src/lib/behavior-config-editor/behavior-config-editor.component.spec.ts \
  --include=projects/praxis-table/src/lib/components/praxis-filter/praxis-filter.component.spec.ts \
  --include=projects/praxis-table/src/lib/components/praxis-filter/filter-form-dialog-host.component.spec.ts
```
