@praxisui/expansion 1.0.0-beta.8 → 3.0.0-beta.0

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 CHANGED
@@ -1,5 +1,57 @@
1
+ ---
2
+ title: "Expansion"
3
+ slug: "expansion-overview"
4
+ description: "Visao geral do @praxisui/expansion com metadata-first panels, persistencia, providers e integracao com registry."
5
+ doc_type: "reference"
6
+ document_kind: "component-overview"
7
+ component: "expansion"
8
+ category: "components"
9
+ audience:
10
+ - "frontend"
11
+ - "host"
12
+ - "architect"
13
+ level: "intermediate"
14
+ status: "active"
15
+ owner: "praxis-ui"
16
+ tags:
17
+ - "expansion"
18
+ - "metadata"
19
+ - "accordion"
20
+ - "registry"
21
+ - "providers"
22
+ order: 35
23
+ icon: "expand"
24
+ toc: true
25
+ sidebar: true
26
+ search_boost: 1.0
27
+ reading_time: 8
28
+ estimated_setup_time: 15
29
+ version: "1.0"
30
+ related_docs:
31
+ - "host-integration-guide"
32
+ - "consumer-integration-quickstart"
33
+ keywords:
34
+ - "accordion"
35
+ - "expansion panel"
36
+ - "metadata"
37
+ - "providers"
38
+ last_updated: "2026-03-07"
39
+ ---
40
+
1
41
  # @praxisui/expansion — Praxis Expansion Panel
2
42
 
43
+ ## Documentation
44
+
45
+ - Official documentation: https://praxisui.dev
46
+ - Quickstart reference app: https://github.com/codexrodrigues/praxis-ui-quickstart
47
+ - Recommended for: accordion and panel layouts driven by metadata with editor integration
48
+
49
+ ## When to use
50
+
51
+ - Organizar blocos expansivos em telas configuradas por metadata
52
+ - Reaproveitar paines tipo accordion em fluxos com editor embutido
53
+ - Manter comportamento e defaults de expansion alinhados no ecossistema Praxis UI
54
+
3
55
  Widget baseado em Angular Material (MatAccordion/MatExpansionPanel) com configuração via metadata, editor embutido e integração com o `ComponentMetadataRegistry` para uso no `praxis-dynamic-gridster-page`.
4
56
 
5
57
  ## Instalação e Providers
@@ -41,9 +93,14 @@ const expansionConfig: ExpansionMetadata = {
41
93
  ```
42
94
 
43
95
  ```html
44
- <praxis-expansion [config]="expansionConfig" [editModeEnabled]="true"></praxis-expansion>
96
+ <praxis-expansion expansionId="expansion-demo" [config]="expansionConfig" [enableCustomization]="true"></praxis-expansion>
45
97
  ```
46
98
 
99
+ ## Persistência
100
+
101
+ - Quando `expansionId` é fornecido, a configuração é salva/recuperada em `AsyncConfigStorage` na chave `expansion:<component_id>`.
102
+ - Use `componentInstanceId` quando houver múltiplas instâncias com o mesmo `expansionId` na mesma rota.
103
+
47
104
  ## Lazy loading de conteúdo (por painel)
48
105
 
49
106
  O componente utiliza `<ng-template matExpansionPanelContent>`, logo o conteúdo interno de cada painel é criado apenas quando o painel é aberto. Não é necessário habilitar um flag: basta declarar `content` (campos) e/ou `widgets` (widgets dinâmicos) no painel.
@@ -93,7 +150,7 @@ const expansionConfig: ExpansionMetadata = {
93
150
  ```
94
151
 
95
152
  ```html
96
- <praxis-expansion
153
+ <praxis-expansion expansionId="expansion-demo"
97
154
  [config]="expansionConfig"
98
155
  (widgetEvent)="onExpansionEvent($event)">
99
156
  </praxis-expansion>
@@ -112,7 +169,7 @@ onExpansionEvent(ev: { panelId?: string; panelIndex?: number; sourceId: string;
112
169
  Você pode passar `defaultOptions` direto no componente, que tem precedência sobre os valores providos globalmente via provider.
113
170
 
114
171
  ```html
115
- <praxis-expansion
172
+ <praxis-expansion expansionId="expansion-demo"
116
173
  [config]="expansionConfig"
117
174
  [defaultOptions]="{ collapsedHeight: '48px', expandedHeight: '64px', hideToggle: false }">
118
175
  </praxis-expansion>
@@ -123,7 +180,7 @@ Você pode passar `defaultOptions` direto no componente, que tem precedência so
123
180
  O componente expõe métodos para controlar a expansão por índice (numérico) ou por id (string):
124
181
 
125
182
  ```html
126
- <praxis-expansion #expRef [config]="expansionConfig"></praxis-expansion>
183
+ <praxis-expansion expansionId="expansion-demo" #expRef [config]="expansionConfig"></praxis-expansion>
127
184
 
128
185
  <button (click)="expRef.open('general')">Abrir Geral</button>
129
186
  <button (click)="expRef.close(1)">Fechar painel 2</button>
@@ -135,7 +192,7 @@ O componente expõe métodos para controlar a expansão por índice (numérico)
135
192
  ## Eventos suportados
136
193
 
137
194
  ```html
138
- <praxis-expansion
195
+ <praxis-expansion expansionId="expansion-demo"
139
196
  [config]="expansionConfig"
140
197
  (opened)="onOpened($event)"
141
198
  (afterExpand)="onAfterExpand($event)"
@@ -162,4 +219,3 @@ const expansionConfig: ExpansionMetadata = {
162
219
  ## Integração via Registry / Gridster
163
220
 
164
221
  Ao registrar `providePraxisExpansionMetadata()`, o widget `praxis-expansion` fica disponível para o `DynamicWidgetLoader` e pode ser usado em páginas dinâmicas (incl. `praxis-dynamic-gridster-page`). Basta fornecer um `WidgetDefinition` com `id: 'praxis-expansion'` e `inputs.config` com o `ExpansionMetadata` desejado.
165
-