@praxisui/list 9.0.11 → 9.0.13

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/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@praxisui/list",
3
- "version": "9.0.11",
3
+ "version": "9.0.13",
4
4
  "description": "List components and helpers for Praxis UI.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
7
7
  "@angular/core": "^21.0.0",
8
8
  "@angular/material": "^21.0.0",
9
- "@praxisui/dynamic-fields": "^9.0.11",
9
+ "@praxisui/dynamic-fields": "^9.0.13",
10
10
  "rxjs": ">=7 <9",
11
11
  "@angular/forms": "^21.0.0",
12
12
  "@angular/router": "^21.0.0",
13
- "@praxisui/ai": "^9.0.11",
14
- "@praxisui/core": "^9.0.11",
15
- "@praxisui/rich-content": "^9.0.11",
16
- "@praxisui/settings-panel": "^9.0.11"
13
+ "@praxisui/ai": "^9.0.13",
14
+ "@praxisui/core": "^9.0.13",
15
+ "@praxisui/rich-content": "^9.0.13",
16
+ "@praxisui/settings-panel": "^9.0.13"
17
17
  },
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0",
@@ -447,6 +447,7 @@ Regras operacionais:
447
447
  - Em erro no `/filter` com critérios ativos, falha fechado: mantém o contexto de filtro, zera o resultado, publica `ListRemoteLoadError` em `ListDataService.error$` e oferece nova tentativa. Dados sem filtro nunca substituem silenciosamente a consulta solicitada.
448
448
  - Busca (`ui.showSearch`) aplica debounce de `300ms` e exige `ui.searchField`.
449
449
  - Busca, ordenação e exportação compartilham a toolbar superior da coleção; paginação permanece no footer. Busca, ordenação e paginação remotas aparecem apenas quando o modo resolvido é `remote`, nunca quando `data` local tem precedência sobre `resourcePath`.
450
+ - Filtros estruturados não são reimplementados pela lista: `praxis-filter` compõe os controles inline existentes de `@praxisui/dynamic-fields` e projeta o DTO governado em `queryContext`.
450
451
  - Em viewport estreito, `layout.rowLayout` recompõe os slots semânticos canônicos (`leading`, `primary`, `secondary`, `meta`, `trailing`) em linhas ordenadas sem sobreposição; slots operacionais estendidos são empilhados no owner da lista, sem CSS corretivo no host.
451
452
  - Atualizações síncronas de query, ordenação e página materializadas pelo mesmo `queryContext` são coalescidas antes do acesso HTTP; o backend recebe somente o estado final consistente.
452
453
  - `ListDataService.error$` é um `Observable<ListRemoteLoadError | null>` somente leitura; consumidores podem reagir e solicitar `refresh()`, mas não publicar estados de erro no serviço.
@@ -460,6 +461,18 @@ Matriz de decisao (runtime atual):
460
461
  | `null/undefined` | preenchido | `remote` | lista/cards/tiles + toolbar e paginação | `filter(query, pageable)`; fallback `getAll()` somente sem critérios ativos |
461
462
  | `null/undefined` | vazio/ausente | `empty` | empty state | sem pipeline de dados |
462
463
 
464
+ Anatomia recomendada da coleção corporativa:
465
+
466
+ | Região | Conteúdo canônico | Regra de integração |
467
+ | ------ | ----------------- | ------------------- |
468
+ | Filtros estruturados | `praxis-filter` + fields inline de `@praxisui/dynamic-fields` | Antes da toolbar, no mesmo contexto visual; o DTO entra por `queryContext`. |
469
+ | Toolbar superior | busca rápida, `ui.sortOptions`, exportação e comandos de coleção | Busca lidera; ordenação e comandos ficam agrupados no final. |
470
+ | Item | ações cujo alvo é somente aquele registro | Permanecem no slot de ações do item. |
471
+ | Ações de seleção | ações em lote derivadas de `selectionChange` | Barra composta próxima ao cabeçalho da coleção; nunca dentro do paginator. |
472
+ | Footer | tamanho de página, range e navegação | Sem filtros, ordenação ou ações de negócio. |
473
+
474
+ `ui.showSort` é opcional. Use quando o usuário realmente precisa comparar ou priorizar itens em outra ordem; omita quando a ordem é fixa ou existe somente uma ordenação significativa. Os labels de `ui.sortOptions` devem ser legíveis no domínio e não expor diretamente `field,direction`.
475
+
463
476
  Regra critica de autoria:
464
477
 
465
478
  - Se o host enviar `data` e `resourcePath` ao mesmo tempo, o runtime usa `data` (modo local).