@praxisui/list 8.0.0-beta.2 → 8.0.0-beta.20
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 +61 -6
- package/docs/2026-03-executive-list-platform-backlog.md +140 -0
- package/docs/2026-03-executive-list-reference-checklist.md +110 -0
- package/docs/2026-04-navigation-open-route-release-note.md +40 -0
- package/docs/adr/2026-03-list-authoring-protocol.md +98 -0
- package/docs/adr/2026-03-list-inline-expansion-v1.md +309 -0
- package/fesm2022/praxisui-list.mjs +3009 -273
- package/index.d.ts +114 -26
- package/package.json +9 -3
- package/src/lib/components/praxis-list-skin-preview.json-api.md +459 -0
- package/src/lib/editors/praxis-list-config-editor.json-api.md +523 -0
- package/src/lib/praxis-list.json-api.md +953 -0
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "praxis-list-skin-preview JSON API (Canonical)"
|
|
3
|
+
slug: "praxis-list-skin-preview-json-api"
|
|
4
|
+
doc_type: "api-reference"
|
|
5
|
+
component: "praxis-list-skin-preview"
|
|
6
|
+
document_kind: "json-api-canonical"
|
|
7
|
+
reference_mode: "canonical"
|
|
8
|
+
contract_format: "json"
|
|
9
|
+
contract_source: "runtime-and-code"
|
|
10
|
+
description: "Referencia canonica do contrato JSON do componente praxis-list-skin-preview."
|
|
11
|
+
category: "components"
|
|
12
|
+
sub_category: "list"
|
|
13
|
+
audience:
|
|
14
|
+
- "frontend"
|
|
15
|
+
- "architect"
|
|
16
|
+
- "platform-team"
|
|
17
|
+
level: "advanced"
|
|
18
|
+
status: "active"
|
|
19
|
+
owner: "praxis-ui"
|
|
20
|
+
source_of_truth:
|
|
21
|
+
- "projects/praxis-list/src/lib/components/list-skin-preview.component.ts"
|
|
22
|
+
- "projects/praxis-list/src/lib/components/list-skin-preview.component.html"
|
|
23
|
+
- "projects/praxis-list/src/lib/components/list-skin-preview.component.scss"
|
|
24
|
+
- "projects/praxis-list/src/lib/services/list-skin.service.ts"
|
|
25
|
+
- "projects/praxis-list/src/lib/utils/template-evaluator.ts"
|
|
26
|
+
- "projects/praxis-list/src/lib/models/list-config.model.ts"
|
|
27
|
+
source_of_truth_last_verified: "2026-03-05"
|
|
28
|
+
last_updated: "2026-03-05"
|
|
29
|
+
toc: true
|
|
30
|
+
sidebar: true
|
|
31
|
+
tags:
|
|
32
|
+
- "json-api"
|
|
33
|
+
- "canonical-contract"
|
|
34
|
+
- "praxis-list-skin-preview"
|
|
35
|
+
api_stability: "canonical"
|
|
36
|
+
schema_verified: true
|
|
37
|
+
runtime_verified: false
|
|
38
|
+
editor_coverage_verified: false
|
|
39
|
+
runtime_scope: "public"
|
|
40
|
+
legacy_paths_present: false
|
|
41
|
+
has_known_mismatches: true
|
|
42
|
+
related_components: []
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
# praxis-list-skin-preview
|
|
46
|
+
|
|
47
|
+
Este documento e a referencia canonica da API JSON de praxis-list-skin-preview.
|
|
48
|
+
|
|
49
|
+
## Summary
|
|
50
|
+
|
|
51
|
+
- Tipo documental: API reference canonica de contrato JSON.
|
|
52
|
+
- Source of truth: runtime e codigo declarados no frontmatter.
|
|
53
|
+
- Objetivo operacional: consulta rapida, auditavel e deterministica sob pressao.
|
|
54
|
+
- Resumo funcional herdado: Referencia canonica da JSON API do `praxis-list-skin-preview`.
|
|
55
|
+
|
|
56
|
+
## Scope and positioning
|
|
57
|
+
|
|
58
|
+
- Escopo: contrato JSON publico e limites de comportamento observavel.
|
|
59
|
+
- Fora de escopo: tutorial de adocao e walkthrough operacional detalhado.
|
|
60
|
+
- Posicionamento: referencia canonicamente governada para consumidores, arquitetos e mantenedores.
|
|
61
|
+
|
|
62
|
+
## Source of truth
|
|
63
|
+
|
|
64
|
+
| Source | Kind | Notes |
|
|
65
|
+
| --- | --- | --- |
|
|
66
|
+
| projects/praxis-list/src/lib/components/list-skin-preview.component.ts | runtime-code | Source de implementacao declarado no repositorio. |
|
|
67
|
+
| projects/praxis-list/src/lib/components/list-skin-preview.component.html | template-style | Source de implementacao declarado no repositorio. |
|
|
68
|
+
| projects/praxis-list/src/lib/components/list-skin-preview.component.scss | template-style | Source de implementacao declarado no repositorio. |
|
|
69
|
+
| projects/praxis-list/src/lib/services/list-skin.service.ts | runtime-code | Source de implementacao declarado no repositorio. |
|
|
70
|
+
| projects/praxis-list/src/lib/utils/template-evaluator.ts | runtime-code | Source de implementacao declarado no repositorio. |
|
|
71
|
+
| projects/praxis-list/src/lib/models/list-config.model.ts | runtime-code | Source de implementacao declarado no repositorio. |
|
|
72
|
+
|
|
73
|
+
## Support legend
|
|
74
|
+
|
|
75
|
+
- Active: suportado e observado no runtime atual.
|
|
76
|
+
- Partial: suporte parcial, com restricoes conhecidas.
|
|
77
|
+
- Declared-only: declarado em tipos/schema sem ligacao runtime confirmada.
|
|
78
|
+
- Schema-only: presente em schema/modelo sem confirmacao de execucao.
|
|
79
|
+
- Deprecated: mantido por compatibilidade legada com migracao prevista.
|
|
80
|
+
|
|
81
|
+
## Contract classification
|
|
82
|
+
|
|
83
|
+
### Canonical paths (public contract)
|
|
84
|
+
|
|
85
|
+
| Path | Type | Required | Default | Status | Notes |
|
|
86
|
+
| --- | --- | --- | --- | --- | --- |
|
|
87
|
+
| `layout.variant` | not-specified | not-specified | n/a | Active | Define `list/cards/tiles`. |
|
|
88
|
+
| `layout.lines` | not-specified | not-specified | n/a | Active | Controla linhas secundarias. |
|
|
89
|
+
| `layout.density/model` | not-specified | not-specified | n/a | Active | Aplicados via classes de host resolvidas pelo `ListSkinService`. |
|
|
90
|
+
| `layout.dividers/groupBy/pageSize` | not-specified | not-specified | n/a | Declared-only | Sem efeito direto no preview atual. |
|
|
91
|
+
| `skin.type` | not-specified | not-specified | n/a | Active | Classe `skin-*`. |
|
|
92
|
+
| `skin.gradient/radius/shadow/border/backdropBlur/class/inlineStyle` | not-specified | not-specified | n/a | Active | Aplicados por `ListSkinService`. |
|
|
93
|
+
| `templating.leading/primary/secondary/meta/trailing` | not-specified | not-specified | n/a | Active | Slots principais renderizados. |
|
|
94
|
+
| `templating.sectionHeader/emptyState` | not-specified | not-specified | n/a | Declared-only | Nao renderizados no preview atual. |
|
|
95
|
+
| `templating.metaPrefixIcon` | not-specified | not-specified | n/a | Active | Prefixo em meta textual. |
|
|
96
|
+
| `templating.statusPosition` | not-specified | not-specified | n/a | Active | `top-right` para chip/icon em tiles. |
|
|
97
|
+
| `templating.chipColorMap/chipLabelMap/iconColorMap` | not-specified | not-specified | n/a | Active | Mapeamentos aplicados no render. |
|
|
98
|
+
| `templating.features/featuresVisible/featuresMode` | not-specified | not-specified | n/a | Active | Linha de features no preview. |
|
|
99
|
+
| `templating.skeleton` | not-specified | not-specified | n/a | Declared-only | Sem modo skeleton no preview. |
|
|
100
|
+
| `i18n.locale/currency` | not-specified | not-specified | n/a | Active | Base para formatacao `date/currency`. |
|
|
101
|
+
|
|
102
|
+
### Supported legacy paths
|
|
103
|
+
|
|
104
|
+
Nenhum path legado suportado foi identificado nesta revisão baseada em evidência textual preservada.
|
|
105
|
+
|
|
106
|
+
### Internal-only paths
|
|
107
|
+
|
|
108
|
+
| Path | Internal consumer | Runtime presence | Public support | Notes |
|
|
109
|
+
| --- | --- | --- | --- | --- |
|
|
110
|
+
| not-yet-mapped | not-yet-verified | not-yet-verified | No | Caminhos internos nao mapeados explicitamente nesta revisao automatizada. |
|
|
111
|
+
|
|
112
|
+
### Experimental paths
|
|
113
|
+
|
|
114
|
+
| Path | Enablement (flag/guard) | Stability | Rollout notes | Notes |
|
|
115
|
+
| --- | --- | --- | --- | --- |
|
|
116
|
+
| not-yet-mapped | not-yet-verified | Experimental | not-yet-verified | Registrar somente quando houver evidencia em runtime/codigo. |
|
|
117
|
+
|
|
118
|
+
## Overview
|
|
119
|
+
|
|
120
|
+
Este arquivo foi adaptado para o padrao canonico atual sem remover conteudo tecnico existente. O conteudo detalhado anterior foi preservado para manter rastreabilidade historica e reduzir perda de contexto.
|
|
121
|
+
|
|
122
|
+
## Public contract surface
|
|
123
|
+
|
|
124
|
+
### Top-level configuration blocks
|
|
125
|
+
|
|
126
|
+
| Block | Purpose | Required | Merge strategy | Notes |
|
|
127
|
+
| --- | --- | --- | --- | --- |
|
|
128
|
+
| layout | Configuração top-level identificada na referência preservada. | not-yet-verified | component-defined | 4 path(s) mapeado(s), status predominante Active. |
|
|
129
|
+
| skin | Configuração top-level identificada na referência preservada. | not-yet-verified | component-defined | 2 path(s) mapeado(s), status predominante Active. |
|
|
130
|
+
| templating | Configuração top-level identificada na referência preservada. | not-yet-verified | component-defined | 7 path(s) mapeado(s), status predominante Active. |
|
|
131
|
+
| i18n | Configuração top-level identificada na referência preservada. | not-yet-verified | component-defined | 1 path(s) mapeado(s), status predominante Active. |
|
|
132
|
+
|
|
133
|
+
### Nested configuration blocks
|
|
134
|
+
|
|
135
|
+
| Path | Type | Required | Default | Constraints | Notes |
|
|
136
|
+
| --- | --- | --- | --- | --- | --- |
|
|
137
|
+
| `layout.variant` | not-specified | not-specified | n/a | component-defined | Define `list/cards/tiles`. |
|
|
138
|
+
| `layout.lines` | not-specified | not-specified | n/a | component-defined | Controla linhas secundarias. |
|
|
139
|
+
| `layout.density/model` | not-specified | not-specified | n/a | component-defined | Aplicados via classes de host resolvidas pelo `ListSkinService`. |
|
|
140
|
+
| `layout.dividers/groupBy/pageSize` | not-specified | not-specified | n/a | component-defined | Sem efeito direto no preview atual. |
|
|
141
|
+
| `skin.type` | not-specified | not-specified | n/a | component-defined | Classe `skin-*`. |
|
|
142
|
+
| `skin.gradient/radius/shadow/border/backdropBlur/class/inlineStyle` | not-specified | not-specified | n/a | component-defined | Aplicados por `ListSkinService`. |
|
|
143
|
+
| `templating.leading/primary/secondary/meta/trailing` | not-specified | not-specified | n/a | component-defined | Slots principais renderizados. |
|
|
144
|
+
| `templating.sectionHeader/emptyState` | not-specified | not-specified | n/a | component-defined | Nao renderizados no preview atual. |
|
|
145
|
+
| `templating.metaPrefixIcon` | not-specified | not-specified | n/a | component-defined | Prefixo em meta textual. |
|
|
146
|
+
| `templating.statusPosition` | not-specified | not-specified | n/a | component-defined | `top-right` para chip/icon em tiles. |
|
|
147
|
+
|
|
148
|
+
### Input bindings
|
|
149
|
+
|
|
150
|
+
| Binding/Path | Type | Required | Source | Runtime normalization | Notes |
|
|
151
|
+
| --- | --- | --- | --- | --- | --- |
|
|
152
|
+
| `config` | `PraxisListConfig` | not-specified | component-input | not-yet-verified | Contrato visual usado para render do preview. |
|
|
153
|
+
| `items` | `any[]` | not-specified | component-input | not-yet-verified | Dataset de preview. |
|
|
154
|
+
| `theme` | `'light' \| 'dark' \| 'grid'` | not-specified | component-input | not-yet-verified | Classe de contexto visual (`preview-*`). |
|
|
155
|
+
|
|
156
|
+
### Output events
|
|
157
|
+
|
|
158
|
+
| Event | Payload | Trigger | Stability | Notes |
|
|
159
|
+
| --- | --- | --- | --- | --- |
|
|
160
|
+
| component-outputs | see-detailed-api | runtime-event | Partial | Eventos preservados na referência detalhada. |
|
|
161
|
+
|
|
162
|
+
### External side channels
|
|
163
|
+
|
|
164
|
+
| Channel | Direction | Contract | Failure mode | Notes |
|
|
165
|
+
| --- | --- | --- | --- | --- |
|
|
166
|
+
| host/services/storage | bidirectional | see-detailed-api | not-yet-verified | Side channels dependem do componente e do host consumidor. |
|
|
167
|
+
|
|
168
|
+
### Host/runtime dependencies
|
|
169
|
+
|
|
170
|
+
| Dependency | Required | Environment | Purpose | Notes |
|
|
171
|
+
| --- | --- | --- | --- | --- |
|
|
172
|
+
| see-source-of-truth | true | browser/dev/prod/ssr | runtime linkage | Confirmar por componente quando necessario. |
|
|
173
|
+
|
|
174
|
+
## Coverage matrix
|
|
175
|
+
|
|
176
|
+
| Surface | Verified | Coverage status | Evidence | Notes |
|
|
177
|
+
| --- | --- | --- | --- | --- |
|
|
178
|
+
| Runtime | false | Partial | source_of_truth + conteudo preservado | Revisao estrutural concluida; validacao comportamental fina pode exigir follow-up. |
|
|
179
|
+
| Schema/Types | true | Partial | interfaces/modelos citados | Mapeamento formal de todos os campos ainda pode requerer refinamento. |
|
|
180
|
+
| Editor/Tooling | false | Partial | secoes de editor quando presentes | Cobertura de editor/tooling nem sempre confirmada por evidencia direta. |
|
|
181
|
+
|
|
182
|
+
## Runtime coverage boundaries
|
|
183
|
+
|
|
184
|
+
- Cobertura consolidada com base em documentacao existente e source of truth declarado.
|
|
185
|
+
- Comportamentos fora de evidencia direta foram marcados como not-yet-verified ou Partial.
|
|
186
|
+
- Compatibilidade legada, quando detectada, foi separada em classificacao explicita.
|
|
187
|
+
|
|
188
|
+
## Resolution model
|
|
189
|
+
|
|
190
|
+
### Merge order
|
|
191
|
+
|
|
192
|
+
1. defaults do componente
|
|
193
|
+
2. contrato JSON recebido
|
|
194
|
+
3. overrides de host/runtime
|
|
195
|
+
4. normalizacoes internas
|
|
196
|
+
|
|
197
|
+
### Fallback order
|
|
198
|
+
|
|
199
|
+
contrato explicito -> aliases legados (quando suportados) -> defaults internos -> comportamento seguro
|
|
200
|
+
|
|
201
|
+
### Override points
|
|
202
|
+
|
|
203
|
+
- inputs publicos do componente
|
|
204
|
+
- configuracao JSON de runtime
|
|
205
|
+
- integracoes de host (servicos/tokens/adapters)
|
|
206
|
+
|
|
207
|
+
### Runtime normalization
|
|
208
|
+
|
|
209
|
+
Campos e aliases preservados do documento anterior devem convergir progressivamente para paths canonicos declarados.
|
|
210
|
+
|
|
211
|
+
### Precedence rules
|
|
212
|
+
|
|
213
|
+
Quando houver conflito entre alias e path canonico, priorizar path canonico e manter alias apenas para backward compatibility.
|
|
214
|
+
|
|
215
|
+
## Validation and error semantics
|
|
216
|
+
|
|
217
|
+
### Validation model
|
|
218
|
+
|
|
219
|
+
| Path/Rule | Validation phase | Behavior on fail | Error code / warning | Notes |
|
|
220
|
+
| --- | --- | --- | --- | --- |
|
|
221
|
+
| see-detailed-api | runtime | warn-or-reject | not-yet-standardized | Semantica de validacao preservada do documento anterior. |
|
|
222
|
+
|
|
223
|
+
### Error semantics
|
|
224
|
+
|
|
225
|
+
Erros devem ser classificados em warnings recuperaveis versus falhas bloqueantes. Quando a evidencia nao estiver explicita, tratar como not yet verified.
|
|
226
|
+
|
|
227
|
+
### Fail-open / fail-closed behavior
|
|
228
|
+
|
|
229
|
+
| Condition | Mode | Runtime behavior | Consumer impact |
|
|
230
|
+
| --- | --- | --- | --- |
|
|
231
|
+
| invalid-or-unknown-field | component-defined | not-yet-verified | Variavel por componente; requer verificacao em runtime. |
|
|
232
|
+
|
|
233
|
+
### Invalid or unknown field handling
|
|
234
|
+
|
|
235
|
+
- Campos desconhecidos: comportamento depende da estrategia do componente (ignore, warn ou reject).
|
|
236
|
+
- Campos invalidos: podem gerar fallback, warning ou falha conforme implementacao.
|
|
237
|
+
- Registrar divergencias observadas em Known limitations and mismatches.
|
|
238
|
+
|
|
239
|
+
### Runtime warnings vs hard failures
|
|
240
|
+
|
|
241
|
+
| Condition | Severity | Observability | Consumer action |
|
|
242
|
+
| --- | --- | --- | --- |
|
|
243
|
+
| partial-or-declared-only-coverage | warning | logs/eventos do componente | confirmar ligacao runtime antes de uso critico |
|
|
244
|
+
|
|
245
|
+
## Detailed API
|
|
246
|
+
|
|
247
|
+
### Preserved technical reference (normalized from previous revision)
|
|
248
|
+
|
|
249
|
+
Referencia canonica da JSON API do `praxis-list-skin-preview`.
|
|
250
|
+
|
|
251
|
+
Foco:
|
|
252
|
+
|
|
253
|
+
- o que o preview realmente renderiza a partir de `PraxisListConfig`;
|
|
254
|
+
- diferencas entre preview visual e runtime completo do `praxis-list`;
|
|
255
|
+
- limites para uso corporativo no fluxo de configuracao.
|
|
256
|
+
|
|
257
|
+
Legenda de suporte:
|
|
258
|
+
|
|
259
|
+
- `Active`: consumido diretamente pelo preview.
|
|
260
|
+
- `Partial`: consumido com comportamento reduzido.
|
|
261
|
+
- `Declared-only`: ignorado no preview atual.
|
|
262
|
+
|
|
263
|
+
### Overview
|
|
264
|
+
|
|
265
|
+
`praxis-list-skin-preview` e um renderer de preview usado no editor de configuracao da lista.
|
|
266
|
+
|
|
267
|
+
Fluxo:
|
|
268
|
+
|
|
269
|
+
1. Recebe `config` + `items` + `theme`.
|
|
270
|
+
2. Resolve classes e variaveis de skin via `ListSkinService`.
|
|
271
|
+
3. Renderiza variant `list/cards/tiles` com slots de templating.
|
|
272
|
+
4. Aplica mapas de cor/label para chip e icones.
|
|
273
|
+
|
|
274
|
+
Importante: e um preview estatico. Nao executa fluxo remoto, paginacao, selecao, acoes ou persistencia.
|
|
275
|
+
|
|
276
|
+
### API
|
|
277
|
+
|
|
278
|
+
#### Component inputs
|
|
279
|
+
|
|
280
|
+
| Input | Tipo | Default | Status | Runtime notes |
|
|
281
|
+
| --- | --- | --- | --- | --- |
|
|
282
|
+
| `config` | `PraxisListConfig` | obrigatorio logico | Active | Contrato visual usado para render do preview. |
|
|
283
|
+
| `items` | `any[]` | `[]` | Active | Dataset de preview. |
|
|
284
|
+
| `theme` | `'light' \| 'dark' \| 'grid'` | `'light'` | Active | Classe de contexto visual (`preview-*`). |
|
|
285
|
+
|
|
286
|
+
#### Component outputs
|
|
287
|
+
|
|
288
|
+
Sem `@Output` publico.
|
|
289
|
+
|
|
290
|
+
### Coverage Matrix (`PraxisListConfig` no preview)
|
|
291
|
+
|
|
292
|
+
| JSON path | Status | Preview notes |
|
|
293
|
+
| --- | --- | --- |
|
|
294
|
+
| `layout.variant` | Active | Define `list/cards/tiles`. |
|
|
295
|
+
| `layout.lines` | Active | Controla linhas secundarias. |
|
|
296
|
+
| `layout.density/model` | Active | Aplicados via classes de host resolvidas pelo `ListSkinService`. |
|
|
297
|
+
| `layout.dividers/groupBy/pageSize` | Declared-only | Sem efeito direto no preview atual. |
|
|
298
|
+
| `skin.type` | Active | Classe `skin-*`. |
|
|
299
|
+
| `skin.gradient/radius/shadow/border/backdropBlur/class/inlineStyle` | Active | Aplicados por `ListSkinService`. |
|
|
300
|
+
| `templating.leading/primary/secondary/meta/trailing` | Active | Slots principais renderizados. |
|
|
301
|
+
| `templating.sectionHeader/emptyState` | Declared-only | Nao renderizados no preview atual. |
|
|
302
|
+
| `templating.metaPrefixIcon` | Active | Prefixo em meta textual. |
|
|
303
|
+
| `templating.statusPosition` | Active | `top-right` para chip/icon em tiles. |
|
|
304
|
+
| `templating.chipColorMap/chipLabelMap/iconColorMap` | Active | Mapeamentos aplicados no render. |
|
|
305
|
+
| `templating.features/featuresVisible/featuresMode` | Active | Linha de features no preview. |
|
|
306
|
+
| `templating.skeleton` | Declared-only | Sem modo skeleton no preview. |
|
|
307
|
+
| `i18n.locale/currency` | Active | Base para formatacao `date/currency`. |
|
|
308
|
+
| `dataSource`, `selection`, `actions`, `ui`, `a11y`, `events` | Declared-only | Nao consumidos pelo preview atual. |
|
|
309
|
+
|
|
310
|
+
### Slots e formatacao suportados
|
|
311
|
+
|
|
312
|
+
Tipos suportados nos slots principais:
|
|
313
|
+
|
|
314
|
+
- `text`, `icon`, `image`, `chip`, `rating`, `currency`, `date`, `html`.
|
|
315
|
+
|
|
316
|
+
Comportamentos relevantes:
|
|
317
|
+
|
|
318
|
+
1. `currency`: usa `Intl.NumberFormat` com fallback para `i18n.currency` e `i18n.locale`.
|
|
319
|
+
2. `date`: usa `Intl.DateTimeFormat` com estilo `short|medium|long|full`.
|
|
320
|
+
3. `chip`: aplica `chipColorMap` e `chipLabelMap`.
|
|
321
|
+
4. `icon`: aplica `iconColorMap` por `status` ou valor do icone.
|
|
322
|
+
5. `rating`: respeita `props.rating.max/size/color`.
|
|
323
|
+
|
|
324
|
+
### Diferencas para runtime principal (`praxis-list`)
|
|
325
|
+
|
|
326
|
+
1. Nao existe pipeline remoto (`/filter`, fallback, `loading$`, `total$`, `page$`).
|
|
327
|
+
2. Nao ha `selection` com `FormControl` nem emissao de eventos.
|
|
328
|
+
3. Nao ha `actions` nem `GlobalActionService`.
|
|
329
|
+
4. `featureLabel()` no preview usa substituicao simples de placeholders; pipes avancados nao sao processados nesse ponto.
|
|
330
|
+
|
|
331
|
+
### Exemplos
|
|
332
|
+
|
|
333
|
+
#### 1) Preview basico em cards
|
|
334
|
+
|
|
335
|
+
```html
|
|
336
|
+
<praxis-list-skin-preview
|
|
337
|
+
[config]="config"
|
|
338
|
+
[items]="previewItems"
|
|
339
|
+
theme="light">
|
|
340
|
+
</praxis-list-skin-preview>
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
#### 2) Preview com status no canto (tiles)
|
|
344
|
+
|
|
345
|
+
```json
|
|
346
|
+
{
|
|
347
|
+
"layout": { "variant": "tiles", "lines": 2 },
|
|
348
|
+
"templating": {
|
|
349
|
+
"leading": { "type": "image", "expr": "${item.imageUrl}" },
|
|
350
|
+
"primary": { "type": "text", "expr": "${item.name}" },
|
|
351
|
+
"trailing": { "type": "chip", "expr": "${item.status}" },
|
|
352
|
+
"statusPosition": "top-right",
|
|
353
|
+
"chipColorMap": {
|
|
354
|
+
"active": "primary",
|
|
355
|
+
"paused": "accent",
|
|
356
|
+
"failed": "warn"
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### Known limitations and pending investigation
|
|
363
|
+
|
|
364
|
+
1. Preview nao cobre `sectionHeader`, `emptyState` e `skeleton`.
|
|
365
|
+
2. Nao simula pipeline comportamental (busca, sort, paginacao, selecao, acoes).
|
|
366
|
+
3. Divergencias de avaliacao podem ocorrer em expressoes complexas de `features`.
|
|
367
|
+
|
|
368
|
+
### Source references
|
|
369
|
+
|
|
370
|
+
- `projects/praxis-list/src/lib/components/list-skin-preview.component.ts`
|
|
371
|
+
- `projects/praxis-list/src/lib/components/list-skin-preview.component.html`
|
|
372
|
+
- `projects/praxis-list/src/lib/services/list-skin.service.ts`
|
|
373
|
+
- `projects/praxis-list/src/lib/utils/template-evaluator.ts`
|
|
374
|
+
- `projects/praxis-list/src/lib/models/list-config.model.ts`
|
|
375
|
+
|
|
376
|
+
## JSON path index
|
|
377
|
+
|
|
378
|
+
| Path | Type | Required | Default | Status | Notes |
|
|
379
|
+
| --- | --- | --- | --- | --- | --- |
|
|
380
|
+
| `layout.variant` | not-specified | not-specified | n/a | Active | Define `list/cards/tiles`. |
|
|
381
|
+
| `layout.lines` | not-specified | not-specified | n/a | Active | Controla linhas secundarias. |
|
|
382
|
+
| `layout.density/model` | not-specified | not-specified | n/a | Active | Aplicados via classes de host resolvidas pelo `ListSkinService`. |
|
|
383
|
+
| `layout.dividers/groupBy/pageSize` | not-specified | not-specified | n/a | Declared-only | Sem efeito direto no preview atual. |
|
|
384
|
+
| `skin.type` | not-specified | not-specified | n/a | Active | Classe `skin-*`. |
|
|
385
|
+
| `skin.gradient/radius/shadow/border/backdropBlur/class/inlineStyle` | not-specified | not-specified | n/a | Active | Aplicados por `ListSkinService`. |
|
|
386
|
+
| `templating.leading/primary/secondary/meta/trailing` | not-specified | not-specified | n/a | Active | Slots principais renderizados. |
|
|
387
|
+
| `templating.sectionHeader/emptyState` | not-specified | not-specified | n/a | Declared-only | Nao renderizados no preview atual. |
|
|
388
|
+
| `templating.metaPrefixIcon` | not-specified | not-specified | n/a | Active | Prefixo em meta textual. |
|
|
389
|
+
| `templating.statusPosition` | not-specified | not-specified | n/a | Active | `top-right` para chip/icon em tiles. |
|
|
390
|
+
| `templating.chipColorMap/chipLabelMap/iconColorMap` | not-specified | not-specified | n/a | Active | Mapeamentos aplicados no render. |
|
|
391
|
+
| `templating.features/featuresVisible/featuresMode` | not-specified | not-specified | n/a | Active | Linha de features no preview. |
|
|
392
|
+
| `templating.skeleton` | not-specified | not-specified | n/a | Declared-only | Sem modo skeleton no preview. |
|
|
393
|
+
| `i18n.locale/currency` | not-specified | not-specified | n/a | Active | Base para formatacao `date/currency`. |
|
|
394
|
+
|
|
395
|
+
## Events
|
|
396
|
+
|
|
397
|
+
| Event | Payload | Trigger | Stability | Notes |
|
|
398
|
+
| --- | --- | --- | --- | --- |
|
|
399
|
+
| component-outputs | see-detailed-api | runtime-event | Partial | Eventos preservados na referência detalhada. |
|
|
400
|
+
|
|
401
|
+
## Styling API
|
|
402
|
+
|
|
403
|
+
| Token/Class | Scope | Purpose | Notes |
|
|
404
|
+
| --- | --- | --- | --- |
|
|
405
|
+
| see-detailed-api | component | styling/runtime | Consolidar naming canonico quando aplicavel. |
|
|
406
|
+
|
|
407
|
+
## Editor and tooling notes
|
|
408
|
+
|
|
409
|
+
- Cobertura de editor/tooling foi separada da cobertura de runtime para evitar confusao de suporte.
|
|
410
|
+
- Quando nao houver evidencia direta no codigo, o status deve permanecer not yet verified.
|
|
411
|
+
|
|
412
|
+
## Examples
|
|
413
|
+
|
|
414
|
+
### Minimal valid
|
|
415
|
+
|
|
416
|
+
```json
|
|
417
|
+
{}
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
### Typical/common
|
|
421
|
+
|
|
422
|
+
```json
|
|
423
|
+
{}
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
### Advanced
|
|
427
|
+
|
|
428
|
+
```json
|
|
429
|
+
{}
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
### Enterprise scenario
|
|
433
|
+
|
|
434
|
+
```json
|
|
435
|
+
{}
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
## Known limitations and mismatches
|
|
439
|
+
|
|
440
|
+
| Path/Behavior | Observed behavior (runtime) | Desired behavior | Impact | Tracking issue | Target fix |
|
|
441
|
+
| --- | --- | --- | --- | --- | --- |
|
|
442
|
+
| coverage/mapping | Evidência textual preservada indica itens Partial/Declared-only. | Cobertura confirmada por evidência runtime + schema + editor. | Pode gerar uso de paths não totalmente ligados. | to-be-linked | next-doc-cycle |
|
|
443
|
+
|
|
444
|
+
## Compatibility and migration notes
|
|
445
|
+
|
|
446
|
+
| Concern | Affected versions | Migration action | Deadline | Notes |
|
|
447
|
+
| --- | --- | --- | --- | --- |
|
|
448
|
+
| legacy aliases and mixed status vocabulary | pre-canonical docs | unificar para taxonomia canonica (Active/Partial/Declared-only/...) | next-doc-cycle | manter backward compatibility documentada |
|
|
449
|
+
|
|
450
|
+
## Source references
|
|
451
|
+
|
|
452
|
+
| Source type | Path/URL | Why it is source of truth | Last verified (YYYY-MM-DD) | Notes |
|
|
453
|
+
| --- | --- | --- | --- | --- |
|
|
454
|
+
| local-file | projects/praxis-list/src/lib/components/list-skin-preview.component.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
|
|
455
|
+
| local-file | projects/praxis-list/src/lib/components/list-skin-preview.component.html | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
|
|
456
|
+
| local-file | projects/praxis-list/src/lib/components/list-skin-preview.component.scss | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
|
|
457
|
+
| local-file | projects/praxis-list/src/lib/services/list-skin.service.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
|
|
458
|
+
| local-file | projects/praxis-list/src/lib/utils/template-evaluator.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
|
|
459
|
+
| local-file | projects/praxis-list/src/lib/models/list-config.model.ts | Evidencia de implementacao e contrato. | 2026-03-05 | referencia preservada da versao anterior |
|