@praxisui/core 9.0.0-beta.73 → 9.0.0-beta.75
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 +15 -0
- package/ai/component-registry.json +10 -4
- package/fesm2022/praxisui-core.mjs +1350 -496
- package/package.json +1 -1
- package/types/praxisui-core.d.ts +310 -12
package/README.md
CHANGED
|
@@ -136,6 +136,13 @@ Use `page.composition.links` for persisted wiring. `page.connections` is legacy/
|
|
|
136
136
|
|
|
137
137
|
If the problem is URL or HTTP execution, start with `resourcePath`. If the problem is semantic discovery, surface/action context, or stable runtime identity, start with `resourceKey`.
|
|
138
138
|
|
|
139
|
+
`ResourceCapabilitySnapshot.canonicalOperations` preserves structural support only.
|
|
140
|
+
`operations` carries the current operation contract and availability for CRUD, query,
|
|
141
|
+
options, stats, and export. The core keeps unknown operation IDs for forward compatibility;
|
|
142
|
+
it must not infer authorization from a `canonicalOperations` boolean or discard denial metadata.
|
|
143
|
+
|
|
144
|
+
`ResourceRecordOpenService` materializes the minimal `ResourceRecordOpenRef` published by governed analytics. It resolves the target resource catalog, loads the real item, follows its HATEOAS `surfaces` relation, requires the exact item surface to be available for the current context, and only then delegates to `ResourceSurfaceOpenAdapterService`. Consumers must not replace this flow with `${item.id}`, a copied surface path, a label match, or a prebuilt `surface.open` payload.
|
|
145
|
+
|
|
139
146
|
## Schema And Metadata
|
|
140
147
|
|
|
141
148
|
Core exports schema and metadata infrastructure used by form, table, list, chart, CRUD, and page-builder packages:
|
|
@@ -151,6 +158,8 @@ Core exports schema and metadata infrastructure used by form, table, list, chart
|
|
|
151
158
|
- form layout item models
|
|
152
159
|
- JSON Logic models and runtime service
|
|
153
160
|
|
|
161
|
+
For governed analytics cross-filtering, `bindings.primaryDimension.keyFilterField` is the public request field that receives the raw `bucket.key`. Consumers must preserve its type, verify the target request schema, and must not infer this field from the dimension name, display label, or backend property paths.
|
|
162
|
+
|
|
154
163
|
`valuePresentation` is the shared display contract for scalar read-only values such as currency, number, date, datetime, time, percentage, and boolean.
|
|
155
164
|
`presentation` is the shared semantic wrapper contract for presentation-capable consumers. It can request chip, badge, status or iconValue rendering while preserving the raw value used for filtering, sorting and export.
|
|
156
165
|
|
|
@@ -196,6 +205,12 @@ Without an HTTP provider, local CSV/JSON export uses loaded items. With the HTTP
|
|
|
196
205
|
|
|
197
206
|
Core also exports shared AI authoring types, capability types, dynamic-page context packs, and domain catalog context packs used by component packages.
|
|
198
207
|
|
|
208
|
+
## Component Config Authoring
|
|
209
|
+
|
|
210
|
+
`DynamicWidgetPageComponent` treats the editor declared by `ComponentDocMeta.configEditor` as the canonical authoring surface for the **Configurar conteúdo** action. When the Settings Panel bridge is available, the host resolves any transient `contextResolver` evidence and opens that metadata-owned editor even if the live widget also exposes an internal settings shortcut. This keeps the action deterministic across widget loading states.
|
|
211
|
+
|
|
212
|
+
Widget-local settings dispatch remains only a fallback when the canonical Settings Panel/editor is unavailable. Transient context and diagnostics are passed separately to the editor and must not be copied into persisted `definition.inputs`; the editor result owns the persisted `{ inputs }` round-trip.
|
|
213
|
+
|
|
199
214
|
## Domain Governance
|
|
200
215
|
|
|
201
216
|
`DomainKnowledgeService` and `DomainRuleService` are shared clients for governed semantic decision flows exposed by `praxis-config-starter`. Runtime surfaces should treat materializations as derived projections of backend-governed decisions, not as frontend-owned business rules.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-07-
|
|
3
|
+
"generatedAt": "2026-07-16T21:37:28.607Z",
|
|
4
4
|
"packageName": "@praxisui/core",
|
|
5
|
-
"packageVersion": "9.0.0-beta.
|
|
5
|
+
"packageVersion": "9.0.0-beta.75",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 4,
|
|
@@ -1030,6 +1030,12 @@
|
|
|
1030
1030
|
"valueKind": "string",
|
|
1031
1031
|
"description": "Titulo opcional usado pelo host ao abrir o editor de inputs do componente."
|
|
1032
1032
|
},
|
|
1033
|
+
{
|
|
1034
|
+
"path": "ComponentDocMeta.configEditor.contextResolver",
|
|
1035
|
+
"category": "widgets",
|
|
1036
|
+
"valueKind": "object",
|
|
1037
|
+
"description": "Resolver canonico de contexto transiente para o editor; catálogos, schemas, capabilities, targets e diagnostics devem ser passados por context/contextDiagnostics e nao persistidos em definition.inputs."
|
|
1038
|
+
},
|
|
1033
1039
|
{
|
|
1034
1040
|
"path": "ComponentDocMeta.authoringManifestRef",
|
|
1035
1041
|
"category": "widgets",
|
|
@@ -2912,9 +2918,9 @@
|
|
|
2912
2918
|
{
|
|
2913
2919
|
"chunkIndex": 1,
|
|
2914
2920
|
"chunkKind": "capabilities",
|
|
2915
|
-
"content": "Component Capabilities:\n - Path: uiCompositionPlan\n Category: page\n Kind: object\n Description: Plano declarativo intermediario aceito em preview agentic antes do WidgetPageDefinition.\n - Path: uiCompositionPlan.version\n Category: page\n Kind: string\n Description: Versao do plano. Valor atual: 1.0.\n - Path: uiCompositionPlan.kind\n Category: page\n Kind: string\n Description: Discriminador do plano. Valor atual: praxis.ui-composition-plan.\n - Path: uiCompositionPlan.layoutPreset\n Category: layout\n Kind: string\n Description: Preset semantico opcional da composicao planejada.\n - Path: uiCompositionPlan.layoutPresetOptions\n Category: layout\n Kind: object\n Description: Opcoes semanticas opcionais do preset, como familia visual, estrategia responsiva e politica de densidade.\n - Path: uiCompositionPlan.grouping\n Category: layout\n Kind: array\n Description: Agrupamentos semanticos opcionais para organizar widgets em hero, section, tabs ou rail no runtime.\n - Path: uiCompositionPlan.slotAssignments\n Category: layout\n Kind: object\n Description: Mapa opcional widgetKey -> slot semantico para alinhar widgets gerados a presets de layout sem depender de dominio.\n - Path: uiCompositionPlan.deviceLayouts\n Category: layout\n Kind: object\n Description: Variantes responsivas opcionais para desktop, tablet e mobile, incluindo canvas, groupingOverrides e widgetOverrides.\n - Path: uiCompositionPlan.themePreset\n Category: layout\n Kind: string\n Description: Preset visual opcional do runtime, por exemplo analytics-calm, workspace-balanced ou ops-monitoring.\n - Path: uiCompositionPlan.state\n Category: state\n Kind: object\n Description: Estado inicial/declarativo que sera compilado para page.state.\n - Path: uiCompositionPlan.widgets\n Category: widgets\n Kind: array\n Description: Widgets planejados antes da compilacao para page.widgets.\n - Path: uiCompositionPlan.widgets[].key\n Category: widgets\n Kind: string\n Description: ID estavel do widget planejado.\n - Path: uiCompositionPlan.widgets[].componentId\n Category: widgets\n Kind: string\n Description: Componente registrado que sera compilado para definition.id.\n - Path: uiCompositionPlan.widgets[].inputs\n Category: widgets\n Kind: object\n Description: Inputs canonicos do componente, compilados para definition.inputs.\n - Path: uiCompositionPlan.widgets[].bindingOrder\n Category: widgets\n Kind: array\n Description: Ordem declarativa de binding, compilada para definition.bindingOrder.\n - Path: uiCompositionPlan.bindings\n Category: connections\n Kind: array\n Description: Bindings declarativos que serao compilados para page.composition.links.\n - Path: uiCompositionPlan.bindings[].id\n Category: connections\n Kind: string\n Description: Identificador estavel do binding planejado.\n - Path: uiCompositionPlan.bindings[].from\n Category: connections\n Kind: object\n Description: Endpoint de origem: component-port ou state.\n - Path: uiCompositionPlan.bindings[].to\n Category: connections\n Kind: object\n Description: Endpoint de destino: component-port, state ou global-action.\n - Path: uiCompositionPlan.bindings[].to.[actionId]\n Category: connections\n Kind: string\n Description: ID da action global quando uiCompositionPlan.bindings[].to.kind = global-action.\n - Path: uiCompositionPlan.bindings[].to.payload\n Category: connections\n Kind: object\n Description: Payload literal opcional para destino global-action planejado.\n - Path: uiCompositionPlan.bindings[].to.payloadExpr\n Category: connections\n Kind: string\n Description: Path de payload opcional para destino global-action planejado.\n - Path: uiCompositionPlan.bindings[].from.nestedPath\n Category: connections\n Kind: array\n Description: Caminho estruturado para porta nested de origem. Use apenas com endpoint component-port; o owner top-level continua em from.widget.\n - Path: uiCompositionPlan.bindings[].to.nestedPath\n Category: connections\n Kind: array\n Description: Caminho estruturado para porta nested de destino. Use apenas com endpoint component-port; o owner top-level continua em to.widget.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].kind\n Category: connections\n Kind: string\n Description: Tipo do segmento nested de origem, como tab, nav, link, expansion, panel ou widget. O ultimo segmento deve ser widget.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].id\n Category: connections\n Kind: string\n Description: Identificador estrutural estavel do container de origem no segmento nested, quando existir.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].key\n Category: connections\n Kind: string\n Description: Chave estavel do widget filho no segmento terminal widget de origem. Obrigatoria para endpoint nested persistido.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].index\n Category: connections\n Kind: number\n Description: Indice auxiliar de origem para contexto visual/diagnostico; nao use como identidade primaria persistida.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].componentType\n Category: connections\n Kind: string\n Description: Tipo do componente real do widget filho de origem, usado como verificacao auxiliar, nao como identidade primaria.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].kind\n Category: connections\n Kind: string\n Description: Tipo do segmento nested de destino, como tab, nav, link, expansion, panel ou widget. O ultimo segmento deve ser widget.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].id\n Category: connections\n Kind: string\n Description: Identificador estrutural estavel do container de destino no segmento nested, quando existir.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].key\n Category: connections\n Kind: string\n Description: Chave estavel do widget filho no segmento terminal widget de destino. Obrigatoria para endpoint nested persistido.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].index\n Category: connections\n Kind: number\n Description: Indice auxiliar de destino para contexto visual/diagnostico; nao use como identidade primaria persistida.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].componentType\n Category: connections\n Kind: string\n Description: Tipo do componente real do widget filho de destino, usado como verificacao auxiliar, nao como identidade primaria.\n - Path: uiCompositionPlan.bindings[].intent\n Category: connections\n Kind: string\n Description: Intencao semantica do binding.\n - Path: uiCompositionPlan.bindings[].condition\n Category: connections\n Kind: expression\n Description: Guarda opcional em Json Logic.\n - Path: uiCompositionPlan.bindings[].transform\n Category: connections\n Kind: object\n Description: Transform declarativo: pick-path, query-context, template ou constant.\n - Path: uiCompositionPlan.bindings[].policy\n Category: connections\n Kind: object\n Description: Politica operacional opcional do binding.\n - Path: page\n Category: page\n Kind: object\n Description: Definicao da pagina (WidgetPageDefinition).\n - Path: context\n Category: context\n Kind: object\n Description: Contexto extra mesclado ao page.context.\n - Path: enableCustomization\n Category: behavior\n Kind: boolean\n Description: Habilita modo de edicao.\n - Path: showSettingsButton\n Category: behavior\n Kind: boolean\n Description: Exibe botao de settings.\n - Path: strictValidation\n Category: behavior\n Kind: boolean\n Description: Validacao estrita do widget loader.\n - Path: layoutOptions\n Category: layout\n Kind: object\n Description: Overrides residuais do host aceitos apenas para compatibilidade de migracao.\n - Path: layoutOptions.cols\n Category: layout\n Kind: number\n Description: Compat: numero de colunas usado para derivar canvas padrao.\n - Path: layoutOptions.rowHeight\n Category: layout\n Kind: number\n Description: Compat: altura de linha usada para derivar rowUnit do canvas.\n - Path: layoutOptions.gap\n Category: layout\n Kind: number\n Description: Compat: espacamento usado para derivar gap do canvas.\n - Path: pageIdentity\n Category: identity\n Kind: object\n Description: Identidade de persistencia da pagina.\n - Path: pageIdentity.appId\n Category: identity\n Kind: string\n Description: App id (opcional).\n - Path: pageIdentity.tenantId\n Category: identity\n Kind: string\n Description: Tenant id.\n - Path: pageIdentity.userId\n Category: identity\n Kind: string\n Description: User id.\n - Path: pageIdentity.routePath\n Category: identity\n Kind: string\n Description: Rota base da pagina.\n - Path: pageIdentity.locale\n Category: identity\n Kind: string\n Description: Locale.\n - Path: page.canvas\n Category: layout\n Kind: object\n Description: Canvas espacial canonico da pagina.\n - Path: page.canvas.mode\n Category: layout\n Kind: string\n Description: Modo do canvas. O builder usa grid canonico.\n - Path: page.canvas.columns\n Category: layout\n Kind: number\n Description: Numero de colunas do canvas.\n - Path: page.canvas.rowUnit\n Category: layout\n Kind: string\n Description: Altura base das linhas do canvas (ex: 80px).\n - Path: page.canvas.gap\n Category: layout\n Kind: string\n Description: Espacamento entre itens do canvas.\n - Path: page.canvas.autoRows\n Category: layout\n Kind: string\n Description: Politica de auto rows do canvas.\n - Path: page.canvas.items\n Category: layout\n Kind: object\n Description: Mapa canonico de posicionamento espacial por widget key.\n - Path: page.canvas.items.<widgetKey>.col\n Category: layout\n Kind: number\n Description: Coluna inicial (1-based).\n - Path: page.canvas.items.<widgetKey>.row\n Category: layout\n Kind: number\n Description: Linha inicial (1-based).\n - Path: page.canvas.items.<widgetKey>.colSpan\n Category: layout\n Kind: number\n Description: Colunas ocupadas.\n - Path: page.canvas.items.<widgetKey>.rowSpan\n Category: layout\n Kind: number\n Description: Linhas ocupadas.\n - Path: page.state\n Category: state\n Kind: object\n Description: Estado declarativo opcional da pagina.\n - Path: page.state.values\n Category: state\n Kind: object\n Description: Valores primarios persistiveis do estado da pagina.\n - Path: page.state.schema\n Category: state\n Kind: object\n Description: Descritores dos paths de estado primario.\n - Path: page.state.derived\n Category: state\n Kind: object\n Description: Descritores de estado derivado recomputado pelo runtime.\n - Path: page.widgets\n Category: widgets\n Kind: array\n Description: Widgets da pagina.\n - Path: page.widgets[].key\n Category: widgets\n Kind: string\n Description: ID unico do widget.\n - Path: page.widgets[].className\n Category: widgets\n Kind: string\n Description: Classe CSS do widget.\n - Path: page.widgets[].definition\n Category: widgets\n Kind: object\n Description: Definicao do widget (WidgetDefinition).\n - Path: page.widgets[].definition.id\n Category: widgets\n Kind: string\n Description: ID do componente registrado.\n - Path: page.widgets[].definition.inputs\n Category: widgets\n Kind: object\n Description: Inputs do componente.\n - Path: page.widgets[].definition.inputs.document\n Category: widgets\n Kind: object\n Description: RichContentDocument quando definition.id for praxis-rich-content.\n - Path: page.widgets[].definition.bindingOrder\n Category: widgets\n Kind: array\n Description: Ordem de aplicacao dos inputs.\n - Path: ComponentDocMeta.configEditor\n Category: widgets\n Kind: object\n Description: Editor canonico de inputs publicado pela lib dona do componente e aberto pelo settings-panel do host.\n - Path: ComponentDocMeta.configEditor.component\n Category: widgets\n Kind: object\n Description: Componente standalone que implementa SettingsValueProvider para editar definition.inputs.\n - Path: ComponentDocMeta.configEditor.title\n Category: widgets\n Kind: string\n Description: Titulo opcional usado pelo host ao abrir o editor de inputs do componente.\n - Path: ComponentDocMeta.authoringManifestRef\n Category: widgets\n Kind: object\n Description: Referencia canonica para o manifesto executavel de authoring por IA publicado pela lib dona do componente.\n - Path: ComponentDocMeta.authoringManifestRef.componentId\n Category: widgets\n Kind: string\n Description: ID do componente no registry/backend de manifestos de authoring.\n - Path: ComponentDocMeta.authoringManifestRef.source\n Category: widgets\n Kind: string\n Description: Simbolo, modulo ou registry id estavel do manifesto usado para delegar edicoes governadas.\n - Path: page.composition\n Category: connections\n Kind: object\n Description: Envelope canonico da composicao persistida.\n - Path: page.composition.version\n Category: connections\n Kind: string\n Description: Versao do envelope de composicao.\n - Path: page.composition.links\n Category: connections\n Kind: array\n Description: Links canonicos entre widgets, estado e actions globais.\n - Path: page.composition.links[].id\n Category: connections\n Kind: string\n Description: Identificador estavel do link.\n - Path: page.composition.links[].from\n Category: connections\n Kind: object\n Description: Endpoint de origem do link.\n - Path: page.composition.links[].to\n Category: connections\n Kind: object\n Description: Endpoint de destino do link.\n - Path: page.composition.links[].to.kind\n Category: connections\n Kind: string\n Description: Tipo do endpoint de destino, incluindo global-action para command-dispatch declarativo.\n - Path: page.composition.links[].to.ref.[actionId]\n Category: connections\n Kind: string\n Description: ID da action global quando page.composition.links[].to.kind = global-action.\n - Path: page.composition.links[].to.ref.payload\n Category: connections\n Kind: object\n Description: Payload estruturado opcional da action global persistida; quando omitido, o valor transformado do link segue como delivery value.\n - Path: page.composition.links[].to.ref.payloadExpr\n Category: connections\n Kind: expression\n Description: Escape avancado explicito de payload da action global persistida.\n - Path: page.composition.links[].to.ref.meta\n Category: connections\n Kind: object\n Description: Metadados opcionais do GlobalActionRef persistido, sem criar executor paralelo.\n - Path: page.composition.links[].from.ref.nestedPath\n Category: connections\n Kind: array\n Description: NestedPath canonico em endpoint component-port de origem persistido. Omita para top-level; nao serialize nestedPath: [].\n - Path: page.composition.links[].from.ref.nestedPath[].key\n Category: connections\n Kind: string\n Description: Chave estavel do widget filho no segmento terminal widget de origem. Obrigatoria para endpoint nested persistido.\n - Path: page.composition.links[].to.ref.nestedPath\n Category: connections\n Kind: array\n Description: NestedPath canonico em endpoint component-port de destino persistido. Omita para top-level; nao serialize nestedPath: [].\n - Path: page.composition.links[].to.ref.nestedPath[].key\n Category: connections\n Kind: string\n Description: Chave estavel do widget filho no segmento terminal widget de destino. Obrigatoria para endpoint nested persistido.\n - Path: page.composition.links[].intent\n Category: connections\n Kind: string\n Description: Intencao semantica do link.\n - Path: page.composition.links[].transform\n Category: connections\n Kind: object\n Description: Pipeline de transformacao do link.\n - Path: page.composition.links[].condition\n Category: connections\n Kind: expression\n Description: Guarda semantica opcional do link, expressa como um unico AST Json Logic canonico.\n - Path: page.composition.links[].policy\n Category: connections\n Kind: object\n Description: Politicas operacionais opcionais do link, separadas da condition semantica.\n - Path: page.composition.links[].metadata\n Category: connections\n Kind: object\n Description: Metadados opcionais do link.\n - Path: page.context\n Category: context\n Kind: object\n Description: Contexto da pagina (compartilhado por widgets).\n - Path: page.layoutPreset\n Category: layout\n Kind: string\n Description: ID canônico opcional do preset estrutural da página.\n - Path: page.layoutPresetOptions\n Category: layout\n Kind: object\n Description: Opções específicas do preset estrutural consumidas por builders e runtimes futuros.\n - Path: page.themePreset\n Category: appearance\n Kind: string\n Description: ID opcional do preset de tema para shell, gráficos, densidade e defaults visuais.\n - Path: page.layout\n Category: layout\n Kind: object\n Description: Layout base da página.\n - Path: page.layout.orientation\n Category: layout\n Kind: enum\n Description: Orientacao do grid (vertical/columns).\n - Path: page.layout.columns\n Category: layout\n Kind: number\n Description: Numero de colunas (quando orientation=columns).\n - Path: page.layout.gap\n Category: layout\n Kind: string\n Description: Gap entre widgets (ex: 16px).\n - Path: page.layout.breakpoints\n Category: layout\n Kind: object\n Description: Colunas por breakpoint.\n - Path: page.layout.breakpoints.sm\n Category: layout\n Kind: number\n Description: Colunas para breakpoint sm.\n - Path: page.layout.breakpoints.md\n Category: layout\n Kind: number\n Description: Colunas para breakpoint md.\n - Path: page.layout.breakpoints.lg\n Category: layout\n Kind: number\n Description: Colunas para breakpoint lg.\n - Path: page.layout.breakpoints.xl\n Category: layout\n Kind: number\n Description: Colunas para breakpoint xl.\n - Path: page.canvas.collisionPolicy\n Category: layout\n Kind: enum\n Description: Politica de colisao do canvas espacial.\n - Path: page.canvas.items.<widgetKey>.zIndex\n Category: layout\n Kind: number\n Description: Camada opcional do item no canvas.\n - Path: page.canvas.items.<widgetKey>.constraints\n Category: layout\n Kind: object\n Description: Restricoes opcionais de posicao e tamanho do item no canvas.\n - Path: page.canvas.items.<widgetKey>.constraints.minColSpan\n Category: layout\n Kind: number\n Description: Span mínimo de colunas permitido.\n - Path: page.canvas.items.<widgetKey>.constraints.minRowSpan\n Category: layout\n Kind: number\n Description: Span mínimo de linhas permitido.\n - Path: page.canvas.items.<widgetKey>.constraints.maxColSpan\n Category: layout\n Kind: number\n Description: Span máximo de colunas permitido.\n - Path: page.canvas.items.<widgetKey>.constraints.maxRowSpan\n Category: layout\n Kind: number\n Description: Span máximo de linhas permitido.\n - Path: page.canvas.items.<widgetKey>.constraints.lockPosition\n Category: layout\n Kind: boolean\n Description: Bloqueia alteracao de posicao do item no canvas.\n - Path: page.canvas.items.<widgetKey>.constraints.lockSize\n Category: layout\n Kind: boolean\n Description: Bloqueia alteracao de tamanho do item no canvas.\n - Path: page.widgets[].definition.inputs.hostCapabilities\n Category: widgets\n Kind: object\n Description: Capacidades runtime mediadas pelo host quando definition.id = praxis-rich-content. Não pertence ao JSON persistido.\n - Path: page.widgets[].definition.inputs.hostCapabilities.dispatchAction\n Category: widgets\n Kind: object\n Description: Dispatcher runtime para actionButton e actions declarativas de rich content hospedado na página.\n - Path: page.widgets[].definition.inputs.hostCapabilities.isActionAvailable\n Category: widgets\n Kind: object\n Description: Resolver runtime de disponibilidade de actionId para rich content hospedado na página.\n - Path: page.widgets[].definition.inputs.hostCapabilities.hasCapability\n Category: widgets\n Kind: object\n Description: Resolver runtime de capabilities como page.customization.enabled e page.widget.selected para rich content hospedado na página.\n - Path: page.widgets[].shell\n Category: shell\n Kind: object\n Description: Configuração do shell do widget.\n - Path: page.widgets[].shell.kind\n Category: shell\n Kind: enum\n Description: Tipo de shell.\n - Path: page.widgets[].shell.title\n Category: shell\n Kind: string\n Description: Título do shell.\n - Path: page.widgets[].shell.subtitle\n Category: shell\n Kind: string\n Description: Subtítulo do shell.\n - Path: page.widgets[].shell.icon\n Category: shell\n Kind: string\n Description: Ícone do shell.\n - Path: page.widgets[].shell.showHeader\n Category: shell\n Kind: boolean\n Description: Exibe o header do shell.\n - Path: page.widgets[].shell.actions\n Category: shell\n Kind: array\n Description: Ações do shell.\n - Path: page.widgets[].shell.actions[].id\n Category: shell\n Kind: string\n Description: ID da ação.\n - Path: page.widgets[].shell.actions[].label\n Category: shell\n Kind: string\n Description: Label da ação.\n - Path: page.widgets[].shell.actions[].icon\n Category: shell\n Kind: string\n Description: Ícone da ação.\n - Path: page.widgets[].shell.actions[].variant\n Category: shell\n Kind: enum\n Description: Estilo visual da ação.\n - Path: page.widgets[].shell.actions[].placement\n Category: shell\n Kind: enum\n Description: Posicionamento da ação.\n - Path: page.widgets[].shell.actions[].emit\n Category: shell\n Kind: string\n Description: Evento emitido ao acionar a ação.\n - Path: page.state.schema.<token>.type\n Category: state\n Kind: string\n Description: Tipo semantico opcional do path de estado.\n - Path: page.state.schema.<token>.initial\n Category: state\n Kind: object\n Description: Valor inicial usado quando page.state.values omite o path.\n - Path: page.state.schema.<token>.persist\n Category: state\n Kind: boolean\n Description: Indica se o path primário deve ser persistido com a página.\n - Path: page.state.schema.<token>.mergeStrategy\n Category: state\n Kind: enum\n Description: Como escritas de widget/estado combinam com o valor atual.\n - Path: page.state.schema.<token>.description\n Category: state\n Kind: string\n Description: Descrição opcional do path para builders e catálogos AI.\n - Path: page.state.schema.<token>.tags\n Category: state\n Kind: array\n Description: Tags opcionais para busca e governanca do estado.\n - Path: page.state.derived.<token>.dependsOn\n Category: state\n Kind: array\n Description: Paths de estado que alimentam o valor derivado.\n - Path: page.state.derived.<token>.compute\n Category: state\n Kind: object\n Description: Descritor de computacao do estado derivado.\n - Path: page.state.derived.<token>.compute.kind\n Category: state\n Kind: enum\n Description: Tipo de computacao do estado derivado.\n - Path: page.state.derived.<token>.compute.expression\n Category: state\n Kind: expression\n Description: Expressao Json Logic para compute.kind=json-logic.\n - Path: page.state.derived.<token>.compute.value\n Category: state\n Kind: object\n Description: Valor template para compute.kind=template.\n - Path: page.state.derived.<token>.compute.operator\n Category: state\n Kind: string\n Description: Operador para compute.kind=operator.\n - Path: page.state.derived.<token>.compute.options\n Category: state\n Kind: object\n Description: Opções do operador ou transformer.\n - Path: page.state.derived.<token>.compute.transformerId\n Category: state\n Kind: string\n Description: Identificador do transformer para compute.kind=transformer.\n - Path: page.state.derived.<token>.description\n Category: state\n Kind: string\n Description: Descrição opcional do estado derivado.\n - Path: page.state.derived.<token>.cache\n Category: state\n Kind: boolean\n Description: Permite cache futuro do valor derivado.\n - Path: page.composition.links[].from.kind\n Category: connections\n Kind: string\n Description: Tipo do endpoint de origem, como component-port ou state.\n - Path: page.composition.links[].from.ref\n Category: connections\n Kind: object\n Description: Referencia estruturada do endpoint de origem.\n - Path: page.composition.links[].from.ref.widget\n Category: connections\n Kind: string\n Description: Widget top-level dono do endpoint de origem.\n - Path: page.composition.links[].from.ref.port\n Category: connections\n Kind: string\n Description: Porta de origem do componente.\n - Path: page.composition.links[].from.ref.direction\n Category: connections\n Kind: string\n Description: Direcao da porta de origem.\n - Path: page.composition.links[].from.ref.nestedPath[].kind\n Category: connections\n Kind: string\n Description: Tipo do segmento nested de origem.\n - Path: page.composition.links[].from.ref.nestedPath[].id\n Category: connections\n Kind: string\n Description: Identificador estrutural do segmento nested de origem.\n - Path: page.composition.links[].from.ref.nestedPath[].index\n Category: connections\n Kind: number\n Description: Índice auxiliar para diagnóstico visual; não use como identidade primária.\n - Path: page.composition.links[].from.ref.nestedPath[].componentType\n Category: connections\n Kind: string\n Description: Tipo do componente real do widget filho de origem.\n - Path: page.composition.links[].to.ref\n Category: connections\n Kind: object\n Description: Referencia estruturada do endpoint de destino.\n - Path: page.composition.links[].to.ref.widget\n Category: connections\n Kind: string\n Description: Widget top-level dono do endpoint de destino.\n - Path: page.composition.links[].to.ref.port\n Category: connections\n Kind: string\n Description: Porta de destino do componente.\n - Path: page.composition.links[].to.ref.direction\n Category: connections\n Kind: string\n Description: Direcao da porta de destino.\n - Path: page.composition.links[].to.ref.nestedPath[].kind\n Category: connections\n Kind: string\n Description: Tipo do segmento nested de destino.\n - Path: page.composition.links[].to.ref.nestedPath[].id\n Category: connections\n Kind: string\n Description: Identificador estrutural do segmento nested de destino.\n - Path: page.composition.links[].to.ref.nestedPath[].index\n Category: connections\n Kind: number\n Description: Índice auxiliar para diagnóstico visual; não use como identidade primária.\n - Path: page.composition.links[].to.ref.nestedPath[].componentType\n Category: connections\n Kind: string\n Description: Tipo do componente real do widget filho de destino.\n - Path: page.grouping\n Category: layout\n Kind: array\n Description: Modelo semantico opcional de secoes, abas, areas hero e rails.\n - Path: page.grouping[].kind\n Category: layout\n Kind: enum\n Description: Tipo do agrupamento semantico.\n - Path: page.grouping[].id\n Category: layout\n Kind: string\n Description: Identificador estavel do agrupamento.\n - Path: page.grouping[].label\n Category: layout\n Kind: string\n Description: Rotulo opcional do agrupamento.\n - Path: page.grouping[].widgetKeys\n Category: layout\n Kind: array\n Description: Widgets pertencentes ao agrupamento section, hero ou rail.\n - Path: page.grouping[].layout\n Category: layout\n Kind: enum\n Description: Layout opcional para agrupamento section.\n - Path: page.grouping[].tabs\n Category: layout\n Kind: array\n Description: Abas do agrupamento kind=tabs.\n - Path: page.grouping[].tabs[].id\n Category: layout\n Kind: string\n Description: Identificador estavel da aba.\n - Path: page.grouping[].tabs[].label\n Category: layout\n Kind: string\n Description: Rotulo da aba.\n - Path: page.grouping[].tabs[].widgetKeys\n Category: layout\n Kind: array\n Description: Widgets renderizados dentro da aba.\n - Path: page.grouping[].emphasis\n Category: layout\n Kind: enum\n Description: Enfase opcional para agrupamento hero.\n - Path: page.grouping[].side\n Category: layout\n Kind: enum\n Description: Lado do rail quando kind=rail.\n - Path: page.slotAssignments\n Category: layout\n Kind: object\n Description: Mapa canonico de widget key para slot semantico de preset.\n - Path: page.deviceLayouts\n Category: layout\n Kind: object\n Description: Variantes opcionais de layout por dispositivo.\n - Path: page.deviceLayouts.desktop\n Category: layout\n Kind: object\n Description: Overrides de layout para desktop.\n - Path: page.deviceLayouts.tablet\n Category: layout\n Kind: object\n Description: Overrides de layout para tablet.\n - Path: page.deviceLayouts.mobile\n Category: layout\n Kind: object\n Description: Overrides de layout para mobile.\n - Path: page.deviceLayouts.desktop.layout\n Category: layout\n Kind: object\n Description: Override de WidgetPageLayout para desktop.\n - Path: page.deviceLayouts.desktop.canvas\n Category: layout\n Kind: object\n Description: Override de canvas para desktop.\n - Path: page.deviceLayouts.desktop.groupingOverrides\n Category: layout\n Kind: array\n Description: Overrides de agrupamentos para desktop.\n - Path: page.deviceLayouts.desktop.widgetOverrides\n Category: layout\n Kind: object\n Description: Overrides por widget key para desktop.\n - Path: page.deviceLayouts.desktop.widgetOverrides.<widgetKey>.hidden\n Category: layout\n Kind: boolean\n Description: Oculta o widget em desktop.\n - Path: page.deviceLayouts.tablet.layout\n Category: layout\n Kind: object\n Description: Override de WidgetPageLayout para tablet.\n - Path: page.deviceLayouts.tablet.canvas\n Category: layout\n Kind: object\n Description: Override de canvas para tablet.\n - Path: page.deviceLayouts.tablet.groupingOverrides\n Category: layout\n Kind: array\n Description: Overrides de agrupamentos para tablet.\n - Path: page.deviceLayouts.tablet.widgetOverrides\n Category: layout\n Kind: object\n Description: Overrides por widget key para tablet.\n - Path: page.deviceLayouts.tablet.widgetOverrides.<widgetKey>.hidden\n Category: layout\n Kind: boolean\n Description: Oculta o widget em tablet.\n - Path: page.deviceLayouts.mobile.layout\n Category: layout\n Kind: object\n Description: Override de WidgetPageLayout para mobile.\n - Path: page.deviceLayouts.mobile.canvas\n Category: layout\n Kind: object\n Description: Override de canvas para mobile.\n - Path: page.deviceLayouts.mobile.groupingOverrides\n Category: layout\n Kind: array\n Description: Overrides de agrupamentos para mobile.\n - Path: page.deviceLayouts.mobile.widgetOverrides\n Category: layout\n Kind: object\n Description: Overrides por widget key para mobile.\n - Path: page.deviceLayouts.mobile.widgetOverrides.<widgetKey>.hidden\n Category: layout\n Kind: boolean\n Description: Oculta o widget em mobile.\nCapability Notes:\n - page segue o modelo canonico WidgetPageDefinition (widgets, composition.links, context e state opcional); composition.links tambem pode despachar actions globais via to.kind = global-action.\n - Conteudo editorial rico deve ser modelado como widget praxis-rich-content com definition.inputs.document: RichContentDocument, nao como DSL local do page-builder.\n - Quando definition.id = praxis-rich-content em uma pagina dinamica, definition.inputs.document continua sendo o contrato persistido; hostCapabilities e mediado em runtime pelo host praxis-dynamic-page e nao deve ser serializado no JSON da pagina.\n - Edicao visual de inputs de widget deve usar ComponentDocMeta.configEditor ou ComponentDocMeta.authoringManifestRef publicado pela lib dona do componente; nao criar editor local no page-builder para semantica de outro pacote.\n - Canvas e o modelo espacial canonico da pagina quando houver posicionamento explicito.\n - Taxonomia editorial: condition usa Json Logic canonico; transform usa pipeline declarativo; policy cobre apenas comportamento operacional.\n - Para criacao agentic de paginas, o preview pode trazer uiCompositionPlan como plano intermediario validavel; o page-builder compila esse plano para WidgetPageDefinition antes de aplicar.\n - UiCompositionPlan usa widgets[].componentId e bindings declarativos. O JSON persistido continua sendo page.widgets[].definition.id e page.composition.links.\n - Nested component ports usam endpoint component-port com nestedPath. O owner em ref.widget ou bindings[].*.widget continua sendo o widget top-level; a porta real do filho fica em port/direction e o caminho ate o filho fica em nestedPath.\n - Nao gere links nested via owner.widgetEvent, bindingPath profundo, page.connections ou wrappers host-specific. widgetEvent e bridge legada/avancada, nao contrato principal de authoring.\n - Payloads legados de layout ainda podem ser ingeridos, mas sao normalizados para canvas e nao devem ser reemitidos.\n - pageIdentity identifica o escopo de persistencia e nao pertence ao objeto page.\n - Este catálogo é específico para o runtime praxis-dynamic-page; operações de authoring/mutação pertencem ao manifesto do praxis-page-builder.\n - WidgetPageDefinition e o contrato canonico persistido: widgets, composition.links, state, context, layout, canvas, presets, grouping, slotAssignments, deviceLayouts e themePreset.\n - Widgets e page.composition.links sao arrays; ferramentas de patch legadas fazem merge por key estavel e id estavel.\n - page.canvas.items é um mapa por widget key; não modele canvas.items como array.\n - Taxonomia editorial: condition usa Json Logic canônico; transform usa pipeline declarativo; não trate ambos como a mesma \"expression\".\n - Para remocao/replace, use flags {_remove:true} ou {_replace:true} no item.\n - Para renomear um link, inclua {_beforeKey:\"link-id-anterior\"} no item.\n - Inputs de widgets dependem do componente (ex: praxis-table, praxis-dynamic-form). Evite inventar campos; prefira pedir confirmação.\n - Quando page.widgets[].definition.id for praxis-rich-content, o host praxis-dynamic-page injeta hostCapabilities em runtime para actions e capability gating; não serialize funções nem tente persistir page.widgets[].definition.inputs.hostCapabilities.\n - Use ids estaveis para links e keys estaveis para widgets.\n - Nested component ports usam endpoint component-port com nestedPath; o owner em ref.widget continua sendo o widget top-level.\n - Objetivo: compor widgets e relacionamentos canonicos (ex.: master-detail).\n - Link tipico de master-detail: component-port(table.rowClick) -> component-port(form.resourceId) com transform map payload.row.id.\n",
|
|
2921
|
+
"content": "Component Capabilities:\n - Path: uiCompositionPlan\n Category: page\n Kind: object\n Description: Plano declarativo intermediario aceito em preview agentic antes do WidgetPageDefinition.\n - Path: uiCompositionPlan.version\n Category: page\n Kind: string\n Description: Versao do plano. Valor atual: 1.0.\n - Path: uiCompositionPlan.kind\n Category: page\n Kind: string\n Description: Discriminador do plano. Valor atual: praxis.ui-composition-plan.\n - Path: uiCompositionPlan.layoutPreset\n Category: layout\n Kind: string\n Description: Preset semantico opcional da composicao planejada.\n - Path: uiCompositionPlan.layoutPresetOptions\n Category: layout\n Kind: object\n Description: Opcoes semanticas opcionais do preset, como familia visual, estrategia responsiva e politica de densidade.\n - Path: uiCompositionPlan.grouping\n Category: layout\n Kind: array\n Description: Agrupamentos semanticos opcionais para organizar widgets em hero, section, tabs ou rail no runtime.\n - Path: uiCompositionPlan.slotAssignments\n Category: layout\n Kind: object\n Description: Mapa opcional widgetKey -> slot semantico para alinhar widgets gerados a presets de layout sem depender de dominio.\n - Path: uiCompositionPlan.deviceLayouts\n Category: layout\n Kind: object\n Description: Variantes responsivas opcionais para desktop, tablet e mobile, incluindo canvas, groupingOverrides e widgetOverrides.\n - Path: uiCompositionPlan.themePreset\n Category: layout\n Kind: string\n Description: Preset visual opcional do runtime, por exemplo analytics-calm, workspace-balanced ou ops-monitoring.\n - Path: uiCompositionPlan.state\n Category: state\n Kind: object\n Description: Estado inicial/declarativo que sera compilado para page.state.\n - Path: uiCompositionPlan.widgets\n Category: widgets\n Kind: array\n Description: Widgets planejados antes da compilacao para page.widgets.\n - Path: uiCompositionPlan.widgets[].key\n Category: widgets\n Kind: string\n Description: ID estavel do widget planejado.\n - Path: uiCompositionPlan.widgets[].componentId\n Category: widgets\n Kind: string\n Description: Componente registrado que sera compilado para definition.id.\n - Path: uiCompositionPlan.widgets[].inputs\n Category: widgets\n Kind: object\n Description: Inputs canonicos do componente, compilados para definition.inputs.\n - Path: uiCompositionPlan.widgets[].bindingOrder\n Category: widgets\n Kind: array\n Description: Ordem declarativa de binding, compilada para definition.bindingOrder.\n - Path: uiCompositionPlan.bindings\n Category: connections\n Kind: array\n Description: Bindings declarativos que serao compilados para page.composition.links.\n - Path: uiCompositionPlan.bindings[].id\n Category: connections\n Kind: string\n Description: Identificador estavel do binding planejado.\n - Path: uiCompositionPlan.bindings[].from\n Category: connections\n Kind: object\n Description: Endpoint de origem: component-port ou state.\n - Path: uiCompositionPlan.bindings[].to\n Category: connections\n Kind: object\n Description: Endpoint de destino: component-port, state ou global-action.\n - Path: uiCompositionPlan.bindings[].to.[actionId]\n Category: connections\n Kind: string\n Description: ID da action global quando uiCompositionPlan.bindings[].to.kind = global-action.\n - Path: uiCompositionPlan.bindings[].to.payload\n Category: connections\n Kind: object\n Description: Payload literal opcional para destino global-action planejado.\n - Path: uiCompositionPlan.bindings[].to.payloadExpr\n Category: connections\n Kind: string\n Description: Path de payload opcional para destino global-action planejado.\n - Path: uiCompositionPlan.bindings[].from.nestedPath\n Category: connections\n Kind: array\n Description: Caminho estruturado para porta nested de origem. Use apenas com endpoint component-port; o owner top-level continua em from.widget.\n - Path: uiCompositionPlan.bindings[].to.nestedPath\n Category: connections\n Kind: array\n Description: Caminho estruturado para porta nested de destino. Use apenas com endpoint component-port; o owner top-level continua em to.widget.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].kind\n Category: connections\n Kind: string\n Description: Tipo do segmento nested de origem, como tab, nav, link, expansion, panel ou widget. O ultimo segmento deve ser widget.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].id\n Category: connections\n Kind: string\n Description: Identificador estrutural estavel do container de origem no segmento nested, quando existir.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].key\n Category: connections\n Kind: string\n Description: Chave estavel do widget filho no segmento terminal widget de origem. Obrigatoria para endpoint nested persistido.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].index\n Category: connections\n Kind: number\n Description: Indice auxiliar de origem para contexto visual/diagnostico; nao use como identidade primaria persistida.\n - Path: uiCompositionPlan.bindings[].from.nestedPath[].componentType\n Category: connections\n Kind: string\n Description: Tipo do componente real do widget filho de origem, usado como verificacao auxiliar, nao como identidade primaria.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].kind\n Category: connections\n Kind: string\n Description: Tipo do segmento nested de destino, como tab, nav, link, expansion, panel ou widget. O ultimo segmento deve ser widget.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].id\n Category: connections\n Kind: string\n Description: Identificador estrutural estavel do container de destino no segmento nested, quando existir.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].key\n Category: connections\n Kind: string\n Description: Chave estavel do widget filho no segmento terminal widget de destino. Obrigatoria para endpoint nested persistido.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].index\n Category: connections\n Kind: number\n Description: Indice auxiliar de destino para contexto visual/diagnostico; nao use como identidade primaria persistida.\n - Path: uiCompositionPlan.bindings[].to.nestedPath[].componentType\n Category: connections\n Kind: string\n Description: Tipo do componente real do widget filho de destino, usado como verificacao auxiliar, nao como identidade primaria.\n - Path: uiCompositionPlan.bindings[].intent\n Category: connections\n Kind: string\n Description: Intencao semantica do binding.\n - Path: uiCompositionPlan.bindings[].condition\n Category: connections\n Kind: expression\n Description: Guarda opcional em Json Logic.\n - Path: uiCompositionPlan.bindings[].transform\n Category: connections\n Kind: object\n Description: Transform declarativo: pick-path, query-context, template ou constant.\n - Path: uiCompositionPlan.bindings[].policy\n Category: connections\n Kind: object\n Description: Politica operacional opcional do binding.\n - Path: page\n Category: page\n Kind: object\n Description: Definicao da pagina (WidgetPageDefinition).\n - Path: context\n Category: context\n Kind: object\n Description: Contexto extra mesclado ao page.context.\n - Path: enableCustomization\n Category: behavior\n Kind: boolean\n Description: Habilita modo de edicao.\n - Path: showSettingsButton\n Category: behavior\n Kind: boolean\n Description: Exibe botao de settings.\n - Path: strictValidation\n Category: behavior\n Kind: boolean\n Description: Validacao estrita do widget loader.\n - Path: layoutOptions\n Category: layout\n Kind: object\n Description: Overrides residuais do host aceitos apenas para compatibilidade de migracao.\n - Path: layoutOptions.cols\n Category: layout\n Kind: number\n Description: Compat: numero de colunas usado para derivar canvas padrao.\n - Path: layoutOptions.rowHeight\n Category: layout\n Kind: number\n Description: Compat: altura de linha usada para derivar rowUnit do canvas.\n - Path: layoutOptions.gap\n Category: layout\n Kind: number\n Description: Compat: espacamento usado para derivar gap do canvas.\n - Path: pageIdentity\n Category: identity\n Kind: object\n Description: Identidade de persistencia da pagina.\n - Path: pageIdentity.appId\n Category: identity\n Kind: string\n Description: App id (opcional).\n - Path: pageIdentity.tenantId\n Category: identity\n Kind: string\n Description: Tenant id.\n - Path: pageIdentity.userId\n Category: identity\n Kind: string\n Description: User id.\n - Path: pageIdentity.routePath\n Category: identity\n Kind: string\n Description: Rota base da pagina.\n - Path: pageIdentity.locale\n Category: identity\n Kind: string\n Description: Locale.\n - Path: page.canvas\n Category: layout\n Kind: object\n Description: Canvas espacial canonico da pagina.\n - Path: page.canvas.mode\n Category: layout\n Kind: string\n Description: Modo do canvas. O builder usa grid canonico.\n - Path: page.canvas.columns\n Category: layout\n Kind: number\n Description: Numero de colunas do canvas.\n - Path: page.canvas.rowUnit\n Category: layout\n Kind: string\n Description: Altura base das linhas do canvas (ex: 80px).\n - Path: page.canvas.gap\n Category: layout\n Kind: string\n Description: Espacamento entre itens do canvas.\n - Path: page.canvas.autoRows\n Category: layout\n Kind: string\n Description: Politica de auto rows do canvas.\n - Path: page.canvas.items\n Category: layout\n Kind: object\n Description: Mapa canonico de posicionamento espacial por widget key.\n - Path: page.canvas.items.<widgetKey>.col\n Category: layout\n Kind: number\n Description: Coluna inicial (1-based).\n - Path: page.canvas.items.<widgetKey>.row\n Category: layout\n Kind: number\n Description: Linha inicial (1-based).\n - Path: page.canvas.items.<widgetKey>.colSpan\n Category: layout\n Kind: number\n Description: Colunas ocupadas.\n - Path: page.canvas.items.<widgetKey>.rowSpan\n Category: layout\n Kind: number\n Description: Linhas ocupadas.\n - Path: page.state\n Category: state\n Kind: object\n Description: Estado declarativo opcional da pagina.\n - Path: page.state.values\n Category: state\n Kind: object\n Description: Valores primarios persistiveis do estado da pagina.\n - Path: page.state.schema\n Category: state\n Kind: object\n Description: Descritores dos paths de estado primario.\n - Path: page.state.derived\n Category: state\n Kind: object\n Description: Descritores de estado derivado recomputado pelo runtime.\n - Path: page.widgets\n Category: widgets\n Kind: array\n Description: Widgets da pagina.\n - Path: page.widgets[].key\n Category: widgets\n Kind: string\n Description: ID unico do widget.\n - Path: page.widgets[].className\n Category: widgets\n Kind: string\n Description: Classe CSS do widget.\n - Path: page.widgets[].definition\n Category: widgets\n Kind: object\n Description: Definicao do widget (WidgetDefinition).\n - Path: page.widgets[].definition.id\n Category: widgets\n Kind: string\n Description: ID do componente registrado.\n - Path: page.widgets[].definition.inputs\n Category: widgets\n Kind: object\n Description: Inputs do componente.\n - Path: page.widgets[].definition.inputs.document\n Category: widgets\n Kind: object\n Description: RichContentDocument quando definition.id for praxis-rich-content.\n - Path: page.widgets[].definition.bindingOrder\n Category: widgets\n Kind: array\n Description: Ordem de aplicacao dos inputs.\n - Path: ComponentDocMeta.configEditor\n Category: widgets\n Kind: object\n Description: Editor canonico de inputs publicado pela lib dona do componente e aberto pelo settings-panel do host.\n - Path: ComponentDocMeta.configEditor.component\n Category: widgets\n Kind: object\n Description: Componente standalone que implementa SettingsValueProvider para editar definition.inputs.\n - Path: ComponentDocMeta.configEditor.title\n Category: widgets\n Kind: string\n Description: Titulo opcional usado pelo host ao abrir o editor de inputs do componente.\n - Path: ComponentDocMeta.configEditor.contextResolver\n Category: widgets\n Kind: object\n Description: Resolver canonico de contexto transiente para o editor; catálogos, schemas, capabilities, targets e diagnostics devem ser passados por context/contextDiagnostics e nao persistidos em definition.inputs.\n - Path: ComponentDocMeta.authoringManifestRef\n Category: widgets\n Kind: object\n Description: Referencia canonica para o manifesto executavel de authoring por IA publicado pela lib dona do componente.\n - Path: ComponentDocMeta.authoringManifestRef.componentId\n Category: widgets\n Kind: string\n Description: ID do componente no registry/backend de manifestos de authoring.\n - Path: ComponentDocMeta.authoringManifestRef.source\n Category: widgets\n Kind: string\n Description: Simbolo, modulo ou registry id estavel do manifesto usado para delegar edicoes governadas.\n - Path: page.composition\n Category: connections\n Kind: object\n Description: Envelope canonico da composicao persistida.\n - Path: page.composition.version\n Category: connections\n Kind: string\n Description: Versao do envelope de composicao.\n - Path: page.composition.links\n Category: connections\n Kind: array\n Description: Links canonicos entre widgets, estado e actions globais.\n - Path: page.composition.links[].id\n Category: connections\n Kind: string\n Description: Identificador estavel do link.\n - Path: page.composition.links[].from\n Category: connections\n Kind: object\n Description: Endpoint de origem do link.\n - Path: page.composition.links[].to\n Category: connections\n Kind: object\n Description: Endpoint de destino do link.\n - Path: page.composition.links[].to.kind\n Category: connections\n Kind: string\n Description: Tipo do endpoint de destino, incluindo global-action para command-dispatch declarativo.\n - Path: page.composition.links[].to.ref.[actionId]\n Category: connections\n Kind: string\n Description: ID da action global quando page.composition.links[].to.kind = global-action.\n - Path: page.composition.links[].to.ref.payload\n Category: connections\n Kind: object\n Description: Payload estruturado opcional da action global persistida; quando omitido, o valor transformado do link segue como delivery value.\n - Path: page.composition.links[].to.ref.payloadExpr\n Category: connections\n Kind: expression\n Description: Escape avancado explicito de payload da action global persistida.\n - Path: page.composition.links[].to.ref.meta\n Category: connections\n Kind: object\n Description: Metadados opcionais do GlobalActionRef persistido, sem criar executor paralelo.\n - Path: page.composition.links[].from.ref.nestedPath\n Category: connections\n Kind: array\n Description: NestedPath canonico em endpoint component-port de origem persistido. Omita para top-level; nao serialize nestedPath: [].\n - Path: page.composition.links[].from.ref.nestedPath[].key\n Category: connections\n Kind: string\n Description: Chave estavel do widget filho no segmento terminal widget de origem. Obrigatoria para endpoint nested persistido.\n - Path: page.composition.links[].to.ref.nestedPath\n Category: connections\n Kind: array\n Description: NestedPath canonico em endpoint component-port de destino persistido. Omita para top-level; nao serialize nestedPath: [].\n - Path: page.composition.links[].to.ref.nestedPath[].key\n Category: connections\n Kind: string\n Description: Chave estavel do widget filho no segmento terminal widget de destino. Obrigatoria para endpoint nested persistido.\n - Path: page.composition.links[].intent\n Category: connections\n Kind: string\n Description: Intencao semantica do link.\n - Path: page.composition.links[].transform\n Category: connections\n Kind: object\n Description: Pipeline de transformacao do link.\n - Path: page.composition.links[].condition\n Category: connections\n Kind: expression\n Description: Guarda semantica opcional do link, expressa como um unico AST Json Logic canonico.\n - Path: page.composition.links[].policy\n Category: connections\n Kind: object\n Description: Politicas operacionais opcionais do link, separadas da condition semantica.\n - Path: page.composition.links[].metadata\n Category: connections\n Kind: object\n Description: Metadados opcionais do link.\n - Path: page.context\n Category: context\n Kind: object\n Description: Contexto da pagina (compartilhado por widgets).\n - Path: page.layoutPreset\n Category: layout\n Kind: string\n Description: ID canônico opcional do preset estrutural da página.\n - Path: page.layoutPresetOptions\n Category: layout\n Kind: object\n Description: Opções específicas do preset estrutural consumidas por builders e runtimes futuros.\n - Path: page.themePreset\n Category: appearance\n Kind: string\n Description: ID opcional do preset de tema para shell, gráficos, densidade e defaults visuais.\n - Path: page.layout\n Category: layout\n Kind: object\n Description: Layout base da página.\n - Path: page.layout.orientation\n Category: layout\n Kind: enum\n Description: Orientacao do grid (vertical/columns).\n - Path: page.layout.columns\n Category: layout\n Kind: number\n Description: Numero de colunas (quando orientation=columns).\n - Path: page.layout.gap\n Category: layout\n Kind: string\n Description: Gap entre widgets (ex: 16px).\n - Path: page.layout.breakpoints\n Category: layout\n Kind: object\n Description: Colunas por breakpoint.\n - Path: page.layout.breakpoints.sm\n Category: layout\n Kind: number\n Description: Colunas para breakpoint sm.\n - Path: page.layout.breakpoints.md\n Category: layout\n Kind: number\n Description: Colunas para breakpoint md.\n - Path: page.layout.breakpoints.lg\n Category: layout\n Kind: number\n Description: Colunas para breakpoint lg.\n - Path: page.layout.breakpoints.xl\n Category: layout\n Kind: number\n Description: Colunas para breakpoint xl.\n - Path: page.canvas.collisionPolicy\n Category: layout\n Kind: enum\n Description: Politica de colisao do canvas espacial.\n - Path: page.canvas.items.<widgetKey>.zIndex\n Category: layout\n Kind: number\n Description: Camada opcional do item no canvas.\n - Path: page.canvas.items.<widgetKey>.constraints\n Category: layout\n Kind: object\n Description: Restricoes opcionais de posicao e tamanho do item no canvas.\n - Path: page.canvas.items.<widgetKey>.constraints.minColSpan\n Category: layout\n Kind: number\n Description: Span mínimo de colunas permitido.\n - Path: page.canvas.items.<widgetKey>.constraints.minRowSpan\n Category: layout\n Kind: number\n Description: Span mínimo de linhas permitido.\n - Path: page.canvas.items.<widgetKey>.constraints.maxColSpan\n Category: layout\n Kind: number\n Description: Span máximo de colunas permitido.\n - Path: page.canvas.items.<widgetKey>.constraints.maxRowSpan\n Category: layout\n Kind: number\n Description: Span máximo de linhas permitido.\n - Path: page.canvas.items.<widgetKey>.constraints.lockPosition\n Category: layout\n Kind: boolean\n Description: Bloqueia alteracao de posicao do item no canvas.\n - Path: page.canvas.items.<widgetKey>.constraints.lockSize\n Category: layout\n Kind: boolean\n Description: Bloqueia alteracao de tamanho do item no canvas.\n - Path: page.widgets[].definition.inputs.hostCapabilities\n Category: widgets\n Kind: object\n Description: Capacidades runtime mediadas pelo host quando definition.id = praxis-rich-content. Não pertence ao JSON persistido.\n - Path: page.widgets[].definition.inputs.hostCapabilities.dispatchAction\n Category: widgets\n Kind: object\n Description: Dispatcher runtime para actionButton e actions declarativas de rich content hospedado na página.\n - Path: page.widgets[].definition.inputs.hostCapabilities.isActionAvailable\n Category: widgets\n Kind: object\n Description: Resolver runtime de disponibilidade de actionId para rich content hospedado na página.\n - Path: page.widgets[].definition.inputs.hostCapabilities.hasCapability\n Category: widgets\n Kind: object\n Description: Resolver runtime de capabilities como page.customization.enabled e page.widget.selected para rich content hospedado na página.\n - Path: page.widgets[].shell\n Category: shell\n Kind: object\n Description: Configuração do shell do widget.\n - Path: page.widgets[].shell.kind\n Category: shell\n Kind: enum\n Description: Tipo de shell.\n - Path: page.widgets[].shell.title\n Category: shell\n Kind: string\n Description: Título do shell.\n - Path: page.widgets[].shell.subtitle\n Category: shell\n Kind: string\n Description: Subtítulo do shell.\n - Path: page.widgets[].shell.icon\n Category: shell\n Kind: string\n Description: Ícone do shell.\n - Path: page.widgets[].shell.showHeader\n Category: shell\n Kind: boolean\n Description: Exibe o header do shell.\n - Path: page.widgets[].shell.actions\n Category: shell\n Kind: array\n Description: Ações do shell.\n - Path: page.widgets[].shell.actions[].id\n Category: shell\n Kind: string\n Description: ID da ação.\n - Path: page.widgets[].shell.actions[].label\n Category: shell\n Kind: string\n Description: Label da ação.\n - Path: page.widgets[].shell.actions[].icon\n Category: shell\n Kind: string\n Description: Ícone da ação.\n - Path: page.widgets[].shell.actions[].variant\n Category: shell\n Kind: enum\n Description: Estilo visual da ação.\n - Path: page.widgets[].shell.actions[].placement\n Category: shell\n Kind: enum\n Description: Posicionamento da ação.\n - Path: page.widgets[].shell.actions[].emit\n Category: shell\n Kind: string\n Description: Evento emitido ao acionar a ação.\n - Path: page.state.schema.<token>.type\n Category: state\n Kind: string\n Description: Tipo semantico opcional do path de estado.\n - Path: page.state.schema.<token>.initial\n Category: state\n Kind: object\n Description: Valor inicial usado quando page.state.values omite o path.\n - Path: page.state.schema.<token>.persist\n Category: state\n Kind: boolean\n Description: Indica se o path primário deve ser persistido com a página.\n - Path: page.state.schema.<token>.mergeStrategy\n Category: state\n Kind: enum\n Description: Como escritas de widget/estado combinam com o valor atual.\n - Path: page.state.schema.<token>.description\n Category: state\n Kind: string\n Description: Descrição opcional do path para builders e catálogos AI.\n - Path: page.state.schema.<token>.tags\n Category: state\n Kind: array\n Description: Tags opcionais para busca e governanca do estado.\n - Path: page.state.derived.<token>.dependsOn\n Category: state\n Kind: array\n Description: Paths de estado que alimentam o valor derivado.\n - Path: page.state.derived.<token>.compute\n Category: state\n Kind: object\n Description: Descritor de computacao do estado derivado.\n - Path: page.state.derived.<token>.compute.kind\n Category: state\n Kind: enum\n Description: Tipo de computacao do estado derivado.\n - Path: page.state.derived.<token>.compute.expression\n Category: state\n Kind: expression\n Description: Expressao Json Logic para compute.kind=json-logic.\n - Path: page.state.derived.<token>.compute.value\n Category: state\n Kind: object\n Description: Valor template para compute.kind=template.\n - Path: page.state.derived.<token>.compute.operator\n Category: state\n Kind: string\n Description: Operador para compute.kind=operator.\n - Path: page.state.derived.<token>.compute.options\n Category: state\n Kind: object\n Description: Opções do operador ou transformer.\n - Path: page.state.derived.<token>.compute.transformerId\n Category: state\n Kind: string\n Description: Identificador do transformer para compute.kind=transformer.\n - Path: page.state.derived.<token>.description\n Category: state\n Kind: string\n Description: Descrição opcional do estado derivado.\n - Path: page.state.derived.<token>.cache\n Category: state\n Kind: boolean\n Description: Permite cache futuro do valor derivado.\n - Path: page.composition.links[].from.kind\n Category: connections\n Kind: string\n Description: Tipo do endpoint de origem, como component-port ou state.\n - Path: page.composition.links[].from.ref\n Category: connections\n Kind: object\n Description: Referencia estruturada do endpoint de origem.\n - Path: page.composition.links[].from.ref.widget\n Category: connections\n Kind: string\n Description: Widget top-level dono do endpoint de origem.\n - Path: page.composition.links[].from.ref.port\n Category: connections\n Kind: string\n Description: Porta de origem do componente.\n - Path: page.composition.links[].from.ref.direction\n Category: connections\n Kind: string\n Description: Direcao da porta de origem.\n - Path: page.composition.links[].from.ref.nestedPath[].kind\n Category: connections\n Kind: string\n Description: Tipo do segmento nested de origem.\n - Path: page.composition.links[].from.ref.nestedPath[].id\n Category: connections\n Kind: string\n Description: Identificador estrutural do segmento nested de origem.\n - Path: page.composition.links[].from.ref.nestedPath[].index\n Category: connections\n Kind: number\n Description: Índice auxiliar para diagnóstico visual; não use como identidade primária.\n - Path: page.composition.links[].from.ref.nestedPath[].componentType\n Category: connections\n Kind: string\n Description: Tipo do componente real do widget filho de origem.\n - Path: page.composition.links[].to.ref\n Category: connections\n Kind: object\n Description: Referencia estruturada do endpoint de destino.\n - Path: page.composition.links[].to.ref.widget\n Category: connections\n Kind: string\n Description: Widget top-level dono do endpoint de destino.\n - Path: page.composition.links[].to.ref.port\n Category: connections\n Kind: string\n Description: Porta de destino do componente.\n - Path: page.composition.links[].to.ref.direction\n Category: connections\n Kind: string\n Description: Direcao da porta de destino.\n - Path: page.composition.links[].to.ref.nestedPath[].kind\n Category: connections\n Kind: string\n Description: Tipo do segmento nested de destino.\n - Path: page.composition.links[].to.ref.nestedPath[].id\n Category: connections\n Kind: string\n Description: Identificador estrutural do segmento nested de destino.\n - Path: page.composition.links[].to.ref.nestedPath[].index\n Category: connections\n Kind: number\n Description: Índice auxiliar para diagnóstico visual; não use como identidade primária.\n - Path: page.composition.links[].to.ref.nestedPath[].componentType\n Category: connections\n Kind: string\n Description: Tipo do componente real do widget filho de destino.\n - Path: page.grouping\n Category: layout\n Kind: array\n Description: Modelo semantico opcional de secoes, abas, areas hero e rails.\n - Path: page.grouping[].kind\n Category: layout\n Kind: enum\n Description: Tipo do agrupamento semantico.\n - Path: page.grouping[].id\n Category: layout\n Kind: string\n Description: Identificador estavel do agrupamento.\n - Path: page.grouping[].label\n Category: layout\n Kind: string\n Description: Rotulo opcional do agrupamento.\n - Path: page.grouping[].widgetKeys\n Category: layout\n Kind: array\n Description: Widgets pertencentes ao agrupamento section, hero ou rail.\n - Path: page.grouping[].layout\n Category: layout\n Kind: enum\n Description: Layout opcional para agrupamento section.\n - Path: page.grouping[].tabs\n Category: layout\n Kind: array\n Description: Abas do agrupamento kind=tabs.\n - Path: page.grouping[].tabs[].id\n Category: layout\n Kind: string\n Description: Identificador estavel da aba.\n - Path: page.grouping[].tabs[].label\n Category: layout\n Kind: string\n Description: Rotulo da aba.\n - Path: page.grouping[].tabs[].widgetKeys\n Category: layout\n Kind: array\n Description: Widgets renderizados dentro da aba.\n - Path: page.grouping[].emphasis\n Category: layout\n Kind: enum\n Description: Enfase opcional para agrupamento hero.\n - Path: page.grouping[].side\n Category: layout\n Kind: enum\n Description: Lado do rail quando kind=rail.\n - Path: page.slotAssignments\n Category: layout\n Kind: object\n Description: Mapa canonico de widget key para slot semantico de preset.\n - Path: page.deviceLayouts\n Category: layout\n Kind: object\n Description: Variantes opcionais de layout por dispositivo.\n - Path: page.deviceLayouts.desktop\n Category: layout\n Kind: object\n Description: Overrides de layout para desktop.\n - Path: page.deviceLayouts.tablet\n Category: layout\n Kind: object\n Description: Overrides de layout para tablet.\n - Path: page.deviceLayouts.mobile\n Category: layout\n Kind: object\n Description: Overrides de layout para mobile.\n - Path: page.deviceLayouts.desktop.layout\n Category: layout\n Kind: object\n Description: Override de WidgetPageLayout para desktop.\n - Path: page.deviceLayouts.desktop.canvas\n Category: layout\n Kind: object\n Description: Override de canvas para desktop.\n - Path: page.deviceLayouts.desktop.groupingOverrides\n Category: layout\n Kind: array\n Description: Overrides de agrupamentos para desktop.\n - Path: page.deviceLayouts.desktop.widgetOverrides\n Category: layout\n Kind: object\n Description: Overrides por widget key para desktop.\n - Path: page.deviceLayouts.desktop.widgetOverrides.<widgetKey>.hidden\n Category: layout\n Kind: boolean\n Description: Oculta o widget em desktop.\n - Path: page.deviceLayouts.tablet.layout\n Category: layout\n Kind: object\n Description: Override de WidgetPageLayout para tablet.\n - Path: page.deviceLayouts.tablet.canvas\n Category: layout\n Kind: object\n Description: Override de canvas para tablet.\n - Path: page.deviceLayouts.tablet.groupingOverrides\n Category: layout\n Kind: array\n Description: Overrides de agrupamentos para tablet.\n - Path: page.deviceLayouts.tablet.widgetOverrides\n Category: layout\n Kind: object\n Description: Overrides por widget key para tablet.\n - Path: page.deviceLayouts.tablet.widgetOverrides.<widgetKey>.hidden\n Category: layout\n Kind: boolean\n Description: Oculta o widget em tablet.\n - Path: page.deviceLayouts.mobile.layout\n Category: layout\n Kind: object\n Description: Override de WidgetPageLayout para mobile.\n - Path: page.deviceLayouts.mobile.canvas\n Category: layout\n Kind: object\n Description: Override de canvas para mobile.\n - Path: page.deviceLayouts.mobile.groupingOverrides\n Category: layout\n Kind: array\n Description: Overrides de agrupamentos para mobile.\n - Path: page.deviceLayouts.mobile.widgetOverrides\n Category: layout\n Kind: object\n Description: Overrides por widget key para mobile.\n - Path: page.deviceLayouts.mobile.widgetOverrides.<widgetKey>.hidden\n Category: layout\n Kind: boolean\n Description: Oculta o widget em mobile.\nCapability Notes:\n - page segue o modelo canonico WidgetPageDefinition (widgets, composition.links, context e state opcional); composition.links tambem pode despachar actions globais via to.kind = global-action.\n - Conteudo editorial rico deve ser modelado como widget praxis-rich-content com definition.inputs.document: RichContentDocument, nao como DSL local do page-builder.\n - Quando definition.id = praxis-rich-content em uma pagina dinamica, definition.inputs.document continua sendo o contrato persistido; hostCapabilities e mediado em runtime pelo host praxis-dynamic-page e nao deve ser serializado no JSON da pagina.\n - Edicao visual de inputs de widget deve usar ComponentDocMeta.configEditor ou ComponentDocMeta.authoringManifestRef publicado pela lib dona do componente; nao criar editor local no page-builder para semantica de outro pacote.\n - Canvas e o modelo espacial canonico da pagina quando houver posicionamento explicito.\n - Taxonomia editorial: condition usa Json Logic canonico; transform usa pipeline declarativo; policy cobre apenas comportamento operacional.\n - Para criacao agentic de paginas, o preview pode trazer uiCompositionPlan como plano intermediario validavel; o page-builder compila esse plano para WidgetPageDefinition antes de aplicar.\n - UiCompositionPlan usa widgets[].componentId e bindings declarativos. O JSON persistido continua sendo page.widgets[].definition.id e page.composition.links.\n - Nested component ports usam endpoint component-port com nestedPath. O owner em ref.widget ou bindings[].*.widget continua sendo o widget top-level; a porta real do filho fica em port/direction e o caminho ate o filho fica em nestedPath.\n - Nao gere links nested via owner.widgetEvent, bindingPath profundo, page.connections ou wrappers host-specific. widgetEvent e bridge legada/avancada, nao contrato principal de authoring.\n - Payloads legados de layout ainda podem ser ingeridos, mas sao normalizados para canvas e nao devem ser reemitidos.\n - pageIdentity identifica o escopo de persistencia e nao pertence ao objeto page.\n - Este catálogo é específico para o runtime praxis-dynamic-page; operações de authoring/mutação pertencem ao manifesto do praxis-page-builder.\n - WidgetPageDefinition e o contrato canonico persistido: widgets, composition.links, state, context, layout, canvas, presets, grouping, slotAssignments, deviceLayouts e themePreset.\n - Widgets e page.composition.links sao arrays; ferramentas de patch legadas fazem merge por key estavel e id estavel.\n - page.canvas.items é um mapa por widget key; não modele canvas.items como array.\n - Taxonomia editorial: condition usa Json Logic canônico; transform usa pipeline declarativo; não trate ambos como a mesma \"expression\".\n - Para remocao/replace, use flags {_remove:true} ou {_replace:true} no item.\n - Para renomear um link, inclua {_beforeKey:\"link-id-anterior\"} no item.\n - Inputs de widgets dependem do componente (ex: praxis-table, praxis-dynamic-form). Evite inventar campos; prefira pedir confirmação.\n - Quando page.widgets[].definition.id for praxis-rich-content, o host praxis-dynamic-page injeta hostCapabilities em runtime para actions e capability gating; não serialize funções nem tente persistir page.widgets[].definition.inputs.hostCapabilities.\n - Use ids estaveis para links e keys estaveis para widgets.\n - Nested component ports usam endpoint component-port com nestedPath; o owner em ref.widget continua sendo o widget top-level.\n - Objetivo: compor widgets e relacionamentos canonicos (ex.: master-detail).\n - Link tipico de master-detail: component-port(table.rowClick) -> component-port(form.resourceId) com transform map payload.row.id.\n",
|
|
2916
2922
|
"sourcePointer": "projects/praxis-core/src/lib/ai/dynamic-page-ai-capabilities.ts",
|
|
2917
|
-
"contentHash": "
|
|
2923
|
+
"contentHash": "31a9822e673d69cfe010ff5dd297694d1354faf7d60b2c659e9fbf7ac97bfc42",
|
|
2918
2924
|
"sourceKind": "component_definition",
|
|
2919
2925
|
"sourceId": "praxis-dynamic-page",
|
|
2920
2926
|
"corpusVersion": "1.0.0"
|