@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 +63 -1
- package/fesm2022/praxisui-expansion.mjs +1177 -19
- package/index.d.ts +81 -6
- package/package.json +8 -4
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:
|