@praxisui/expansion 8.0.0-beta.2 → 8.0.0-beta.21

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
@@ -130,9 +130,37 @@ const expansionConfig: ExpansionMetadata = {
130
130
  };
131
131
  ```
132
132
 
133
+ ## Nested Ports e Conexoes
134
+
135
+ Para conectar widgets dentro de paineis a estado ou widgets externos, use `composition.links` com endpoint `component-port + nestedPath`.
136
+
137
+ Exemplo de output de chart dentro do painel `analytics`:
138
+
139
+ ```json
140
+ {
141
+ "kind": "component-port",
142
+ "ref": {
143
+ "widget": "expansion-widget",
144
+ "nestedPath": [
145
+ { "kind": "panel", "id": "analytics", "index": 0 },
146
+ { "kind": "widget", "key": "payroll-chart", "componentType": "praxis-chart" }
147
+ ],
148
+ "port": "pointClick",
149
+ "direction": "output"
150
+ }
151
+ }
152
+ ```
153
+
154
+ Regras:
155
+
156
+ - `ref.widget` e a instancia top-level de `praxis-expansion`;
157
+ - o segmento terminal deve ser `kind: "widget"` com `key` estavel;
158
+ - `widgetEvent` permanece como bridge avancada/legado, nao como contrato principal;
159
+ - inputs nested devem atualizar o config declarativo do widget filho, inclusive quando o painel ainda nao montou por lazy loading.
160
+
133
161
  ## Action Row por painel
134
162
 
135
- Adicione botões de ação no rodapé do painel com `actionButtons`. O evento é reemitido via `widgetEvent` com `output: 'action'`.
163
+ Adicione botões de ação no rodapé do painel com `actionButtons`. O evento é reemitido via `widgetEvent` com `output: 'action'`; trate esse fluxo como bridge avancada/legado para acoes de painel, nao como modelo principal de nested component ports.
136
164
 
137
165
  ```ts
138
166
  const expansionConfig: ExpansionMetadata = {
@@ -205,6 +233,40 @@ O componente expõe métodos para controlar a expansão por índice (numérico)
205
233
 
206
234
  Cada evento inclui `{ panelId?: string; panelIndex: number }` (ou `expanded: boolean` no caso de `expandedChange`).
207
235
 
236
+ ## Agentic Authoring
237
+
238
+ O contrato executavel de authoring fica em `PRAXIS_EXPANSION_AUTHORING_MANIFEST`.
239
+ Ele modela edicoes em `ExpansionMetadata` por operacoes atomicas sobre paineis,
240
+ cabecalhos, conteudo lazy, estado expandido/desabilitado e comportamento do
241
+ accordion.
242
+
243
+ Quando `enableCustomization` esta ativo, o runtime abre o `PraxisAiAssistantShellComponent`
244
+ com contexto semantico dos paineis e registra a sessao no dock global de assistentes.
245
+ O assistente envia estado atual, perfil dos paineis, campos de schema e referencia ao
246
+ manifesto de authoring para a IA. Patches JSON livres nao sao aplicados no runtime:
247
+ mudancas locais devem nascer de um `componentEditPlan` validado pelo manifesto, e
248
+ regras compartilhadas seguem por `domain-rules/intake`.
249
+
250
+ Cobertura principal:
251
+
252
+ - `panel.add`, `panel.remove`, `panel.order.set`
253
+ - `panel.title.set`, `panel.description.set`, `panel.icon.set`
254
+ - `panel.disabled.set`
255
+ - `behavior.multiExpand.set`
256
+ - `behavior.defaultExpanded.set`
257
+ - `panel.content.set`
258
+
259
+ As operacoes preservam `panels[].id` como identidade canonica. Remover um painel
260
+ com `content`, `widgets` ou `actionButtons` exige confirmacao explicita. Quando
261
+ `accordion.multi` estiver desabilitado, somente um painel pode ficar expandido por
262
+ padrao; o authoring deve colapsar os demais ou falhar validacao.
263
+
264
+ Cada operacao declara `target.resolver`, `preconditions`, `validators`,
265
+ `affectedPaths`, `effects` e `submissionImpact` tipado. Edicoes de conteudo de
266
+ painel podem afetar dados schema-backed porque `panels[].content` hospeda
267
+ `FieldMetadata[]`; widgets filhos continuam governados pelos contratos dos
268
+ respectivos componentes.
269
+
208
270
  ## Tokens de Estilo por instância
209
271
 
210
272
  Os tokens opcionais em `appearance.tokens` permitem customizações rápidas por instância; por exemplo: