@praxisui/list 9.0.14 → 9.0.16

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.14",
3
+ "version": "9.0.16",
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.14",
9
+ "@praxisui/dynamic-fields": "^9.0.16",
10
10
  "rxjs": ">=7 <9",
11
11
  "@angular/forms": "^21.0.0",
12
12
  "@angular/router": "^21.0.0",
13
- "@praxisui/ai": "^9.0.14",
14
- "@praxisui/core": "^9.0.14",
15
- "@praxisui/rich-content": "^9.0.14",
16
- "@praxisui/settings-panel": "^9.0.14"
13
+ "@praxisui/ai": "^9.0.16",
14
+ "@praxisui/core": "^9.0.16",
15
+ "@praxisui/rich-content": "^9.0.16",
16
+ "@praxisui/settings-panel": "^9.0.16"
17
17
  },
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0",
@@ -192,21 +192,19 @@ Este arquivo foi adaptado para o padrao canonico atual sem remover conteudo tecn
192
192
  | `ASYNC_CONFIG_STORAGE` | bidirectional | `loadConfig/saveConfig` | fail-open | Persistência de configuração por `listId`/instância. |
193
193
  | `SettingsPanelService` | bidirectional | `open(...).applied$/saved$` | fail-open | Canal de edição runtime para `PraxisListConfigEditor`. |
194
194
  | `GlobalActionService` | outbound action | `executeRef(globalAction, context)` | fail-soft | Opcional; ausência gera warning e segue fluxo local. |
195
- | `ResourceRecordOpenService` | outbound query | `resolve(reference, record)` | fail-closed | Resolvido sob demanda apenas para `actions[].recordOpen`. |
196
195
  | `GLOBAL_DIALOG_SERVICE` | bidirectional | confirmação de ação | fail-open | Opcional; sem serviço, ação segue sem modal central. |
197
196
  | `PRAXIS_COLLECTION_EXPORT_PROVIDER` | outbound export | `exportCollection(request)` | fail-fast | Necessário para escopos remotos `filtered/all` e formatos avançados. |
198
197
 
199
198
  ### Host/runtime dependencies
200
199
 
201
- | Dependency | Required | Environment | Purpose | Notes |
202
- | ---------------------- | ----------- | -------------------- | -------------------- | ------------------------------------------------------------------------------------- |
203
- | `ListDataService` | Yes | browser/dev/prod/ssr | fluxo de dados | Stream de itens, seção, loading e paginação. |
204
- | `ListSkinService` | Yes | browser/dev/prod | skin runtime | Gera classes/estilos sanitizados por instância. |
205
- | `ASYNC_CONFIG_STORAGE` | Yes | browser/dev/prod | persistência | Salva e restaura config de lista. |
206
- | `SettingsPanelService` | Yes | browser/dev/prod | editor runtime | Abre editor de configuração com preview/apply/save. |
207
- | `GenericCrudService` | Optional | browser/dev/prod | inferência de schema | Usado para inferência de templating quando `resourcePath` existe. |
208
- | `API_URL` | Conditional | browser/dev/prod | discovery governado | Exigido somente ao executar `actions[].recordOpen`; listas locais renderizam sem ele. |
209
- | `ComponentKeyService` | Yes | browser/dev/prod/ssr | chave de escopo | Determina namespace de persistência e isolamento. |
200
+ | Dependency | Required | Environment | Purpose | Notes |
201
+ | ---------------------- | -------- | -------------------- | -------------------- | ----------------------------------------------------------------- |
202
+ | `ListDataService` | Yes | browser/dev/prod/ssr | fluxo de dados | Stream de itens, seção, loading e paginação. |
203
+ | `ListSkinService` | Yes | browser/dev/prod | skin runtime | Gera classes/estilos sanitizados por instância. |
204
+ | `ASYNC_CONFIG_STORAGE` | Yes | browser/dev/prod | persistência | Salva e restaura config de lista. |
205
+ | `SettingsPanelService` | Yes | browser/dev/prod | editor runtime | Abre editor de configuração com preview/apply/save. |
206
+ | `GenericCrudService` | Optional | browser/dev/prod | inferência de schema | Usado para inferência de templating quando `resourcePath` existe. |
207
+ | `ComponentKeyService` | Yes | browser/dev/prod/ssr | chave de escopo | Determina namespace de persistência e isolamento. |
210
208
 
211
209
  ## Coverage matrix
212
210
 
@@ -447,8 +445,6 @@ Regras operacionais:
447
445
  - 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
446
  - Busca (`ui.showSearch`) aplica debounce de `300ms` e exige `ui.searchField`.
449
447
  - 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`.
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.
452
448
  - 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.
453
449
  - `ListDataService.error$` é um `Observable<ListRemoteLoadError | null>` somente leitura; consumidores podem reagir e solicitar `refresh()`, mas não publicar estados de erro no serviço.
454
450
  - Quando nao ha `dataSource.data` nem `dataSource.resourcePath`, o runtime renderiza um empty state operacional orientando a conexao da lista a um recurso.
@@ -461,18 +457,6 @@ Matriz de decisao (runtime atual):
461
457
  | `null/undefined` | preenchido | `remote` | lista/cards/tiles + toolbar e paginação | `filter(query, pageable)`; fallback `getAll()` somente sem critérios ativos |
462
458
  | `null/undefined` | vazio/ausente | `empty` | empty state | sem pipeline de dados |
463
459
 
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
-
476
460
  Regra critica de autoria:
477
461
 
478
462
  - Se o host enviar `data` e `resourcePath` ao mesmo tempo, o runtime usa `data` (modo local).