@praxisui/core 9.0.66 → 9.0.67

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
@@ -4,8 +4,38 @@ Shared contracts, tokens, services, metadata models, widget runtime primitives,
4
4
 
5
5
  Use this package directly when a host application or library needs Praxis UI types, global actions, metadata registries, schema clients, resource discovery, i18n, theme bridge, dynamic widget contracts, or shared runtime services.
6
6
 
7
+ ## Governed color palettes
8
+
9
+ `materializeGovernedPaletteEntries(palette, purposes)` returns `MaterializedGovernedColorToken[]`, pairing each original `entry` with its resolved `color`. It preserves distinct token IDs even when CSS references/colors match, applies purpose filtering, and resolves fallback dependencies against the complete palette. Use this projection for identified swatches; do not zip color arrays to entries or infer identity from color equality. `materializeGovernedPaletteColors` remains the string-only projection of the same resolver.
10
+
11
+ `GovernedColorPaletteService` is the canonical Angular client for color-palette projections published by Praxis Config. Published palettes carry a stable `familyKey`, an explicit `variant` identity and token-level `displayName`/`aliases`; incomplete legacy projections are rejected before caching. The service supports list/read/capabilities/preview, exact `list(familyKey)` queries, tenant/environment-isolated caching, conditional ETag revalidation and deterministic `version`/`etag` pins. Consumers may use names and aliases for presentation and discovery only: `paletteKey` and `tokenId` remain the persisted identities, and local metadata must not become a second source of governance. `GovernedColorTokenSelection` carries the exact palette/version/ETag/token observation beside the existing CSS-string field value; applications persist it only through an explicit domain field or mapping.
12
+
7
13
  ## LLM Recommendation Guide
8
14
 
15
+ - `WidgetShellConfig.stickyHeader: true` retains the existing composition-derived
16
+ header within its widget during page scrolling. Omission/false keeps normal flow.
17
+ This differs from `bodyLayout: 'scroll'`, which governs body scrolling. No second
18
+ selection state, cloned header or page geometry is persisted.
19
+ - Hosts with fixed chrome may set `--pdx-shell-sticky-header-offset` (CSS length,
20
+ default `0px`). Measure responsive chrome; do not assume a desktop-only height.
21
+ The lab uses a lifecycle-owned ResizeObserver for its functional heading.
22
+ - Pinning releases at the widget boundary and is suspended during drag authoring,
23
+ collapse, hidden/disabled headers, expanded/fullscreen windows and scroll recovery.
24
+ This is not a global selected-record bar. Transparent/gradient header appearances
25
+ are painted over an opaque Material surface so data does not bleed through.
26
+ Keyboard focus is revealed below pinned chrome without changing its target.
27
+ - Nested sticky shells add the measured height of sticky ancestor headers in the
28
+ same scrollport. This is transient geometry, not a saved offset or another
29
+ selection context. The stack stops at an independent scrolling container;
30
+ hidden/inactive headers cease contributing. Ancestor resize observation is
31
+ disconnected on destruction. Body scrolling/fill and window-layout rules apply
32
+ to the owning shell's direct body, not to every nested widget body.
33
+ - An invisible shell (`kind: 'none'`) removes padding only from its own body.
34
+ Nested dashboard shells retain their authored body spacing. Hiding a header
35
+ with `showHeader: false` does not hide child headers or reset child spacing.
36
+ - The Page Builder shell editor exposes the option. Existing saved layouts are
37
+ preserved; changing the source recipe does not silently migrate saved pages.
38
+
9
39
  - Coordinated manual resize: an unambiguous edge collision yields space from the
10
40
  affected neighbors, preserving their opposite edges and respecting `minColSpan`,
11
41
  `minRowSpan`, `lockSize` and `lockPosition`. It does not swap widgets or push a
@@ -18,9 +48,9 @@ Use this package directly when a host application or library needs Praxis UI typ
18
48
  discards the entire preview. Feedback is transient, never serialized.
19
49
  Author useful content-specific minimums and device overrides: the grid default of
20
50
  one unit is a geometric limit, not a guarantee of readable enterprise content.
21
- `autoRows: 'content'` still measures content-driven tracks: reducing a tall one-row
22
- widget below `rowSpan: 1` is **not supported** by this grid model. Do not claim
23
- pixel-continuous window resizing, auto-row vertical shrinking, or arbitrary packing.
51
+ `autoRows: 'content'` measures content-driven tracks and uses independent pixel
52
+ `contentSize` for vertical resizing; `rowSpan` remains at least one. Resizing does not
53
+ imply automatic packing or moving unrelated widgets to a new row.
24
54
 
25
55
  - Widget Shell sizing: the shell includes its border inside the height reserved by its
26
56
  host (`border-box`). Consumers do not need a global CSS reset to prevent a 2px overflow.
@@ -29,37 +59,34 @@ Use this package directly when a host application or library needs Praxis UI typ
29
59
  CSS Grid reflow, not automatic compaction of authored fixed coordinates.
30
60
 
31
61
  - Dynamic Page resize presentation: selecting an unlocked widget in an editable grid
32
- exposes eight direct edge/corner grips. The visible grip is small; each native button
33
- has a 24px target, themed focus and a localized accessible name/tooltip. Drag a grip
34
- or use arrow keys (Shift changes two grid units). Selection alone does not change the
35
- page. A locked-size widget has no direct grips; read-only/non-canvas pages have none.
36
- Grips are hidden while a shell is expanded/fullscreen and inert while the contextual
37
- resize panel is open. Header drag remains the reorder entrypoint.
38
-
39
- The global selector and eight 44px controls now live in a collapsed **Alternative
40
- resize controls** disclosure above the canvas, not the primary editing workflow.
41
- Opening it does not edit the page. Its controls occupy normal flow and remain separate
42
- from short headers, card contents and neighboring widgets. This alternative and the
43
- contextual panel are intentional access paths, not parallel layout implementations.
44
- All three presentations reuse `canvas.items`, constraints, collision policy and the
45
- same pointer preview/commit/cancel pipeline. No resize config or host-specific CSS is
46
- required. Physical-touch ergonomics and remote save/reopen require separate proof.
47
-
48
- Widgets with a visible shell header also expose a transient **Resize widget** action.
49
- It opens an anchored, dismissible compass of eight 44px controls, using the same canvas
50
- gesture and keyboard runtime as the global group. Visual and Tab order follow the
51
- compass rows. Escape closes the panel and restores its trigger; opening does not edit
52
- the document. Existing widget identity supplies the selected title. The popup can
53
- temporarily cover underlying content; it does not reserve space or shift the grid.
54
- Headerless canvas widgets expose the same panel through their existing contextual toolbar;
55
- the global group remains available as a fallback. The action and expanded
56
- state are runtime projections, not shell settings to persist in page JSON.
57
-
58
- During a contextual pointer resize, the panel background, explanatory copy and inactive
59
- controls become invisible while the captured 44px control stays in place. No DOM removal,
60
- grid reflow or separate gesture state is introduced. Ending/cancelling restores the panel;
61
- Escape cancels and closes it. This reduces obstruction during the gesture, not while choosing
62
- a direction before it. Physical-touch ergonomics remain a separate validation gate.
62
+ exposes eight edge/corner grips with 24px targets, themed focus and localized names.
63
+ The widget wrapper is keyboard focusable: focus selects it, Tab reaches its controls,
64
+ arrow keys resize, and Escape from a grip returns focus to the wrapper. Selection alone
65
+ does not change the document. Header drag remains the reorder entrypoint.
66
+
67
+ **More actions → Size…** offers width in grid columns and height in rows (fixed grid)
68
+ or pixels (content rows). An optional fixed-corner choice preserves the opposite edges.
69
+ Valid changes preview the same constrained distribution as the grips; Apply commits once,
70
+ Cancel/Escape discard the preview and restore widget focus. Out-of-range or blocked sizes
71
+ disable Apply rather than silently changing the requested numbers. The dialog identifies
72
+ whether the edit targets the base layout or a device override. Opening it preserves
73
+ automatic height; changing only width does not create a fixed height.
74
+
75
+ This menu is available with canvas authoring permission, including headerless widgets
76
+ and hosts that disable removal or shell configuration. Size-locked widgets disable it.
77
+ There is no dedicated Resize widget icon, global selector or detached directional panel.
78
+ The size action is transient and never persisted in page JSON. Shell actions can explicitly
79
+ use `placement: 'menu'` to stay in More actions even when header slots are free; the shell
80
+ editor and capability catalog share that value. Existing header/window placements retain
81
+ their behavior. All sizing reuses canonical canvas items, constraints and device targeting.
82
+ The editor offers exact grid-width presets (⅓, ½, ⅔, 100%) when the column count
83
+ can represent them without rounding. They change the width draft, preserve the fixed
84
+ corner and require Apply; an unavailable full width is rejected, never silently clamped.
85
+ After a committed resize, reopen Size… on that widget to undo the last resize in this
86
+ session, including yielded neighbors. Recovery restores prior device inheritance and
87
+ keeps unrelated content edits. It refuses changed affected geometry/limits, new collisions,
88
+ a different device scope or page identity. This is one-operation recovery, not a general
89
+ history or redo stack. Double-click shortcuts remain a usability-study hypothesis.
63
90
 
64
91
  - Dynamic Page gesture note: drag/resize previews belong to one primary pointer at a time.
65
92
  Secondary buttons, non-primary touches and additional pointers do not replace an active
@@ -537,3 +564,9 @@ Action-bearing components must use the semantic `--praxis-action-control-*` vari
537
564
  - Do not use consuming apps to redefine contracts owned by core, metadata starter, config starter, or a component package.
538
565
  - Prefer `composition.links` for page wiring and `valuePresentation` for scalar display semantics.
539
566
  - Use the official documentation for full recipes on schema flow, option sources, analytics, global actions, dynamic pages, and governed AI flows.
567
+
568
+ ### Catálogo no quick connect e isolamento do editor de página
569
+
570
+ `ResourceQuickConnectComponent` apresenta recursos publicados em `/schemas/catalog` usando o seletor `pdx-material-select` registrado em `ComponentMetadataRegistry`. O host deve registrar os descritores oficiais de DynamicFields. O controle é inicializado pelo protocolo `setInputMetadata` e ControlValueAccessor; Core não importa a biblioteca de campos. A conexão avançada por rota continua disponível.
571
+
572
+ O editor de configurações da página recebe uma cópia da definição autoral. Dados carregados e entradas transitórias dos widgets não devem virar configuração ao alterar o layout.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-09-06T19:09:46.917Z",
3
+ "generatedAt": "2026-09-07T00:54:55.301Z",
4
4
  "packageName": "@praxisui/core",
5
- "packageVersion": "9.0.66",
5
+ "packageVersion": "9.0.67",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 4,
@@ -1535,7 +1535,8 @@
1535
1535
  "valueKind": "enum",
1536
1536
  "allowedValues": [
1537
1537
  "header",
1538
- "window"
1538
+ "window",
1539
+ "menu"
1539
1540
  ],
1540
1541
  "description": "Posicionamento da ação."
1541
1542
  },
@@ -4264,9 +4265,9 @@
4264
4265
  {
4265
4266
  "chunkIndex": 124,
4266
4267
  "chunkKind": "recipe",
4267
- "content": "{\"componentId\":\"praxis-dynamic-page\",\"chunkSection\":\"authoringPlan.widgets[2].inputs.config.tabs\",\"fragmentPath\":\"authoringPlan.widgets[2].inputs.config.tabs\",\"fragmentIdentity\":{\"key\":\"workspace\",\"componentId\":\"praxis-tabs\"},\"fragment\":[{\"id\":\"dossier\",\"textLabel\":\"Visão geral\",\"icon\":\"badge\",\"widgets\":[{\"id\":\"praxis-dynamic-form\",\"childWidgetKey\":\"employee-dossier-form\",\"bindingOrder\":[\"formId\",\"componentInstanceId\",\"resourcePath\",\"resourceId\",\"emptyState\",\"mode\",\"schemaSource\",\"layoutPolicy\",\"configPersistenceStrategy\",\"enableCustomization\",\"showAiAssistant\",\"readonlyModeGlobal\",\"presentationModeGlobal\",\"fieldIconPolicy\"],\"inputs\":{\"formId\":\"quickstart-employee-tabs-detail\",\"componentInstanceId\":\"quickstart-employee-tabs-detail\",\"resourcePath\":\"human-resources/funcionarios\",\"resourceId\":null,\"emptyState\":{\"icon\":\"touch_app\",\"title\":\"Selecione um funcionário\",\"description\":\"Escolha um registro na tabela para carregar, pela API real, a visão geral em modo de apresentação.\",\"tone\":\"primary\",\"variant\":\"transparent\",\"alignment\":\"center\",\"density\":\"compact\",\"iconContainer\":\"circle\"},\"mode\":\"view\",\"schemaSource\":\"resource\",\"layoutPolicy\":{\"source\":\"schema\",\"intent\":\"detail\",\"preset\":\"compactPresentation\",\"lifecycle\":\"live\",\"persistence\":\"transient\",\"schemaOperation\":\"detail\",\"schemaType\":\"response\",\"detailSummary\":{\"includeFields\":[\"avatarUrl\",\"nomeCompleto\",\"ativo\",\"cargoNome\",\"departamentoNome\",\"dataAdmissao\",\"email\",\"telefone\"],\"columns\":3,\"responsiveColumns\":{\"lg\":3,\"md\":2,\"sm\":1,\"xs\":1},\"widthPrecedence\":\"summary\"}},\"configPersistenceStrategy\":\"input-first\",\"enableCustomization\":false,\"showAiAssistant\":false,\"readonlyModeGlobal\":true,\"presentationModeGlobal\":true,\"fieldIconPolicy\":\"presentation-only\"},\"outputs\":{\"customAction\":\"emit\",\"initializationError\":\"emit\"}}]},{\"id\":\"payroll\",\"textLabel\":{\"key\":\"employeeOperations.dossier.tab.payroll\"},\"icon\":\"payments\",\"widgets\":[{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-payroll-history\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"payroll-history\",\"mode\":\"inline\",\"tableId\":\"employee-payroll-history\",\"tableConfig\":{\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.payroll.title\"},\"subtitle\":{\"key\":\"employeeOperations.payroll.subtitle\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":true,\"strategy\":\"server\",\"pageSize\":6,\"pageSizeOptions\":[6,12]}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"competencia\",\"salarioBruto\",\"totalDescontos\",\"salarioLiquido\",\"qtdEventos\",\"composicaoFolha\"],\"overrides\":{\"competencia\":{\"header\":{\"key\":\"employeeOperations.column.period\"},\"format\":\"MM/yyyy\",\"width\":\"120px\"},\"salarioBruto\":{\"header\":{\"key\":\"employeeOperations.column.gross\"},\"type\":\"currency\",\"format\":\"BRL|symbol|2\",\"align\":\"end\"},\"totalDescontos\":{\"header\":{\"key\":\"employeeOperations.column.discounts\"},\"type\":\"currency\",\"format\":\"BRL|symbol|2\",\"align\":\"end\"},\"salarioLiquido\":{\"header\":{\"key\":\"employeeOperations.column.net\"},\"type\":\"currency\",\"format\":\"BRL|symbol|2\",\"align\":\"end\"},\"qtdEventos\":{\"header\":{\"key\":\"employeeOperations.column.events\"},\"align\":\"center\",\"width\":\"100px\"},\"composicaoFolha\":{\"header\":{\"key\":\"employeeOperations.column.composition\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"composicaoFolha\",\"variant\":\"soft\",\"color\":\"primary\"}}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}}]},{\"id\":\"career\",\"textLabel\":{\"key\":\"employeeOperations.dossier.tab.career\"},\"icon\":\"trending_up\",\"widgets\":[{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-skills\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"skills\",\"mode\":\"inline\",\"tableId\":\"employee-skill-matrix\",\"tableConfig\":{\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.skills.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"habilidadeNome\",\"proficiencia\",\"origem\"],\"overrides\":{\"habilidadeNome\":{\"header\":{\"key\":\"employeeOperations.column.skill\"}},\"proficiencia\":{\"header\":{\"key\":\"employeeOperations.column.proficiency\"},\"renderer\":{\"type\":\"progress\",\"progress\":{\"valueExpr\":\"proficiencia\",\"color\":\"primary\",\"showLabel\":true}}},\"origem\":{\"header\":{\"key\":\"employeeOperations.column.origin\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"origem\",\"variant\":\"outlined\",\"color\":\"accent\"}}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}},{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-career-history\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"career-history\",\"mode\":\"inline\",\"tableId\":\"employee-career-history\",\"tableConfig\":{\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.career.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"cargoNome\",\"dataInicio\",\"dataFim\",\"observacoes\"],\"overrides\":{\"cargoNome\":{\"header\":{\"key\":\"employeeOperations.portfolio.column.role\"},\"sticky\":\"start\"},\"dataInicio\":{\"header\":{\"key\":\"employeeOperations.column.start\"}},\"dataFim\":{\"header\":{\"key\":\"employeeOperations.column.end\"}},\"observacoes\":{\"header\":{\"key\":\"employeeOperations.column.context\"}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}}]}]}",
4268
+ "content": "{\"componentId\":\"praxis-dynamic-page\",\"chunkSection\":\"authoringPlan.widgets[2].inputs.config.tabs\",\"fragmentPath\":\"authoringPlan.widgets[2].inputs.config.tabs\",\"fragmentIdentity\":{\"key\":\"workspace\",\"componentId\":\"praxis-tabs\"},\"fragment\":[{\"id\":\"dossier\",\"textLabel\":\"Visão geral\",\"icon\":\"badge\",\"widgets\":[{\"id\":\"praxis-dynamic-form\",\"childWidgetKey\":\"employee-dossier-form\",\"bindingOrder\":[\"formId\",\"componentInstanceId\",\"resourcePath\",\"resourceId\",\"emptyState\",\"mode\",\"schemaSource\",\"layoutPolicy\",\"configPersistenceStrategy\",\"enableCustomization\",\"showAiAssistant\",\"readonlyModeGlobal\",\"presentationModeGlobal\",\"fieldIconPolicy\"],\"inputs\":{\"formId\":\"quickstart-employee-tabs-detail\",\"componentInstanceId\":\"quickstart-employee-tabs-detail\",\"resourcePath\":\"human-resources/funcionarios\",\"resourceId\":null,\"emptyState\":{\"icon\":\"touch_app\",\"title\":\"Selecione um funcionário\",\"description\":\"Escolha um registro na tabela para carregar, pela API real, a visão geral em modo de apresentação.\",\"tone\":\"primary\",\"variant\":\"transparent\",\"alignment\":\"center\",\"density\":\"compact\",\"iconContainer\":\"circle\"},\"mode\":\"view\",\"schemaSource\":\"resource\",\"layoutPolicy\":{\"source\":\"schema\",\"intent\":\"detail\",\"preset\":\"compactPresentation\",\"lifecycle\":\"live\",\"persistence\":\"transient\",\"schemaOperation\":\"detail\",\"schemaType\":\"response\",\"detailSummary\":{\"includeFields\":[\"avatarUrl\",\"nomeCompleto\",\"ativo\",\"cargoNome\",\"departamentoNome\",\"dataAdmissao\",\"email\",\"telefone\"],\"columns\":3,\"responsiveColumns\":{\"lg\":3,\"md\":2,\"sm\":1,\"xs\":1},\"widthPrecedence\":\"summary\"}},\"configPersistenceStrategy\":\"input-first\",\"enableCustomization\":false,\"showAiAssistant\":false,\"readonlyModeGlobal\":true,\"presentationModeGlobal\":true,\"fieldIconPolicy\":\"presentation-only\"},\"outputs\":{\"customAction\":\"emit\",\"initializationError\":\"emit\"}}]},{\"id\":\"payroll\",\"textLabel\":{\"key\":\"employeeOperations.dossier.tab.payroll\"},\"icon\":\"payments\",\"widgets\":[{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-payroll-history\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"payroll-history\",\"mode\":\"inline\",\"tableId\":\"employee-payroll-history\",\"tableConfig\":{\"appearance\":{\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"cardMode\":true,\"horizontalScroll\":false}}},\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.payroll.title\"},\"subtitle\":{\"key\":\"employeeOperations.payroll.subtitle\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":true,\"strategy\":\"server\",\"pageSize\":6,\"pageSizeOptions\":[6,12]}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"competencia\",\"salarioBruto\",\"totalDescontos\",\"salarioLiquido\",\"qtdEventos\",\"composicaoFolha\"],\"overrides\":{\"competencia\":{\"header\":{\"key\":\"employeeOperations.column.period\"},\"format\":\"MM/yyyy\",\"width\":\"120px\"},\"salarioBruto\":{\"header\":{\"key\":\"employeeOperations.column.gross\"},\"type\":\"currency\",\"format\":\"BRL|symbol|2\",\"align\":\"end\"},\"totalDescontos\":{\"header\":{\"key\":\"employeeOperations.column.discounts\"},\"type\":\"currency\",\"format\":\"BRL|symbol|2\",\"align\":\"end\"},\"salarioLiquido\":{\"header\":{\"key\":\"employeeOperations.column.net\"},\"type\":\"currency\",\"format\":\"BRL|symbol|2\",\"align\":\"end\"},\"qtdEventos\":{\"header\":{\"key\":\"employeeOperations.column.events\"},\"align\":\"center\",\"width\":\"100px\"},\"composicaoFolha\":{\"header\":{\"key\":\"employeeOperations.column.composition\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"composicaoFolha\",\"variant\":\"soft\",\"color\":\"primary\"}}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}}]},{\"id\":\"career\",\"textLabel\":{\"key\":\"employeeOperations.dossier.tab.career\"},\"icon\":\"trending_up\",\"widgets\":[{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-skills\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"skills\",\"mode\":\"inline\",\"tableId\":\"employee-skill-matrix\",\"tableConfig\":{\"appearance\":{\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"cardMode\":true,\"horizontalScroll\":false}}},\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.skills.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"habilidadeNome\",\"proficiencia\",\"origem\"],\"overrides\":{\"habilidadeNome\":{\"header\":{\"key\":\"employeeOperations.column.skill\"}},\"proficiencia\":{\"header\":{\"key\":\"employeeOperations.column.proficiency\"},\"renderer\":{\"type\":\"progress\",\"progress\":{\"valueExpr\":\"proficiencia\",\"color\":\"primary\",\"showLabel\":true}}},\"origem\":{\"header\":{\"key\":\"employeeOperations.column.origin\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"origem\",\"variant\":\"outlined\",\"color\":\"accent\"}}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}},{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-career-history\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"career-history\",\"mode\":\"inline\",\"tableId\":\"employee-career-history\",\"tableConfig\":{\"appearance\":{\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"cardMode\":true,\"horizontalScroll\":false}}},\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.career.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"cargoNome\",\"dataInicio\",\"dataFim\",\"observacoes\"],\"overrides\":{\"cargoNome\":{\"header\":{\"key\":\"employeeOperations.portfolio.column.role\"},\"sticky\":\"start\"},\"dataInicio\":{\"header\":{\"key\":\"employeeOperations.column.start\"}},\"dataFim\":{\"header\":{\"key\":\"employeeOperations.column.end\"}},\"observacoes\":{\"header\":{\"key\":\"employeeOperations.column.context\"}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}}]}]}",
4268
4269
  "sourcePointer": "examples/ai-recipes/praxis-dynamic-page.ergon-archetype-master-detail-tabs.json",
4269
- "contentHash": "6f915ca72532cc22758cb0dace5eba592830399197285aaf0972ceadf6b1a71d",
4270
+ "contentHash": "6c4b99342f08b32ce5d5dfbab81b7f021b05c36166e7baffef5351e660e0fe0f",
4270
4271
  "sourceKind": "component_definition",
4271
4272
  "sourceId": "praxis-dynamic-page",
4272
4273
  "corpusVersion": "1.0.0"
@@ -4274,9 +4275,9 @@
4274
4275
  {
4275
4276
  "chunkIndex": 125,
4276
4277
  "chunkKind": "recipe",
4277
- "content": "{\"componentId\":\"praxis-dynamic-page\",\"chunkSection\":\"authoringPlan.widgets[2].inputs.config.tabs\",\"fragmentPath\":\"authoringPlan.widgets[2].inputs.config.tabs\",\"fragmentIdentity\":{\"key\":\"workspace\",\"componentId\":\"praxis-tabs\"},\"fragment\":[{\"id\":\"people\",\"textLabel\":{\"key\":\"employeeOperations.dossier.tab.people\"},\"icon\":\"family_restroom\",\"widgets\":[{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-dependents\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"dependents\",\"mode\":\"inline\",\"tableId\":\"employee-dependents\",\"tableConfig\":{\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.dependents.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"nomeCompleto\",\"parentesco\",\"dataNascimento\"],\"overrides\":{\"nomeCompleto\":{\"header\":{\"key\":\"employeeOperations.column.dependent\"},\"sticky\":\"start\"},\"parentesco\":{\"header\":{\"key\":\"employeeOperations.column.relationship\"},\"renderer\":{\"type\":\"chip\",\"chip\":{\"textField\":\"parentesco\",\"variant\":\"outlined\",\"color\":\"primary\"}}},\"dataNascimento\":{\"header\":{\"key\":\"employeeOperations.column.birthDate\"}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}},{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-address\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"address\",\"mode\":\"inline\",\"tableId\":\"employee-address\",\"tableConfig\":{\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.address.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"logradouro\",\"numero\",\"cidade\",\"estado\",\"cep\"],\"overrides\":{\"logradouro\":{\"header\":{\"key\":\"employeeOperations.column.street\"},\"sticky\":\"start\"},\"numero\":{\"header\":{\"key\":\"employeeOperations.column.number\"},\"width\":\"100px\"},\"cidade\":{\"header\":{\"key\":\"employeeOperations.column.city\"}},\"estado\":{\"header\":\"UF\",\"width\":\"80px\"},\"cep\":{\"header\":\"CEP\",\"width\":\"120px\"}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}}]},{\"id\":\"operations\",\"textLabel\":{\"key\":\"employeeOperations.dossier.tab.operations\"},\"icon\":\"hub\",\"widgets\":[{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-missions\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"mission-participations\",\"mode\":\"inline\",\"tableId\":\"employee-mission-participations\",\"tableConfig\":{\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.missions.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":true,\"strategy\":\"server\",\"pageSize\":5,\"pageSizeOptions\":[5,10]}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"missaoTitulo\",\"papel\",\"principal\",\"resultado\"],\"overrides\":{\"missaoTitulo\":{\"header\":{\"key\":\"employeeOperations.column.mission\"},\"sticky\":\"start\"},\"papel\":{\"header\":{\"key\":\"employeeOperations.column.assignment\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"papel\",\"variant\":\"soft\",\"color\":\"primary\"}}},\"principal\":{\"header\":{\"key\":\"employeeOperations.column.leadership\"},\"format\":\"yes-no\",\"align\":\"center\"},\"resultado\":{\"header\":{\"key\":\"employeeOperations.column.result\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"resultado\",\"variant\":\"outlined\",\"color\":\"accent\"}}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}},{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-equipment-custody\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"equipment-custody\",\"mode\":\"inline\",\"tableId\":\"employee-equipment-custody\",\"tableConfig\":{\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.equipment.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"equipamentoId\",\"status\",\"inicio\",\"fim\"],\"overrides\":{\"equipamentoId\":{\"header\":{\"key\":\"employeeOperations.column.equipment\"},\"sticky\":\"start\"},\"status\":{\"header\":{\"key\":\"employeeOperations.column.status\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"status\",\"variant\":\"soft\",\"color\":\"accent\"}}},\"inicio\":{\"header\":{\"key\":\"employeeOperations.column.custodyStart\"}},\"fim\":{\"header\":{\"key\":\"employeeOperations.column.custodyEnd\"}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}}]}]}",
4278
+ "content": "{\"componentId\":\"praxis-dynamic-page\",\"chunkSection\":\"authoringPlan.widgets[2].inputs.config.tabs\",\"fragmentPath\":\"authoringPlan.widgets[2].inputs.config.tabs\",\"fragmentIdentity\":{\"key\":\"workspace\",\"componentId\":\"praxis-tabs\"},\"fragment\":[{\"id\":\"people\",\"textLabel\":{\"key\":\"employeeOperations.dossier.tab.people\"},\"icon\":\"family_restroom\",\"widgets\":[{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-dependents\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"dependents\",\"mode\":\"inline\",\"tableId\":\"employee-dependents\",\"tableConfig\":{\"appearance\":{\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"cardMode\":true,\"horizontalScroll\":false}}},\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.dependents.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"nomeCompleto\",\"parentesco\",\"dataNascimento\"],\"overrides\":{\"nomeCompleto\":{\"header\":{\"key\":\"employeeOperations.column.dependent\"},\"sticky\":\"start\"},\"parentesco\":{\"header\":{\"key\":\"employeeOperations.column.relationship\"},\"renderer\":{\"type\":\"chip\",\"chip\":{\"textField\":\"parentesco\",\"variant\":\"outlined\",\"color\":\"primary\"}}},\"dataNascimento\":{\"header\":{\"key\":\"employeeOperations.column.birthDate\"}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}},{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-address\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"address\",\"mode\":\"inline\",\"tableId\":\"employee-address\",\"tableConfig\":{\"appearance\":{\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"cardMode\":true,\"horizontalScroll\":false}}},\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.address.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"logradouro\",\"numero\",\"cidade\",\"estado\",\"cep\"],\"overrides\":{\"logradouro\":{\"header\":{\"key\":\"employeeOperations.column.street\"},\"sticky\":\"start\"},\"numero\":{\"header\":{\"key\":\"employeeOperations.column.number\"},\"width\":\"100px\"},\"cidade\":{\"header\":{\"key\":\"employeeOperations.column.city\"}},\"estado\":{\"header\":\"UF\",\"width\":\"80px\"},\"cep\":{\"header\":\"CEP\",\"width\":\"120px\"}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}}]},{\"id\":\"operations\",\"textLabel\":{\"key\":\"employeeOperations.dossier.tab.operations\"},\"icon\":\"hub\",\"widgets\":[{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-missions\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"mission-participations\",\"mode\":\"inline\",\"tableId\":\"employee-mission-participations\",\"tableConfig\":{\"appearance\":{\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"cardMode\":true,\"horizontalScroll\":false}}},\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.missions.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":true,\"strategy\":\"server\",\"pageSize\":5,\"pageSizeOptions\":[5,10]}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"missaoTitulo\",\"papel\",\"principal\",\"resultado\"],\"overrides\":{\"missaoTitulo\":{\"header\":{\"key\":\"employeeOperations.column.mission\"},\"sticky\":\"start\"},\"papel\":{\"header\":{\"key\":\"employeeOperations.column.assignment\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"papel\",\"variant\":\"soft\",\"color\":\"primary\"}}},\"principal\":{\"header\":{\"key\":\"employeeOperations.column.leadership\"},\"format\":\"yes-no\",\"align\":\"center\"},\"resultado\":{\"header\":{\"key\":\"employeeOperations.column.result\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"resultado\",\"variant\":\"outlined\",\"color\":\"accent\"}}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}},{\"id\":\"praxis-related-resource-outlet\",\"childWidgetKey\":\"employee-equipment-custody\",\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\"],\"inputs\":{\"surfaceId\":\"equipment-custody\",\"mode\":\"inline\",\"tableId\":\"employee-equipment-custody\",\"tableConfig\":{\"appearance\":{\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"cardMode\":true,\"horizontalScroll\":false}}},\"toolbar\":{\"visible\":true,\"title\":{\"key\":\"employeeOperations.equipment.title\"}},\"columns\":[],\"behavior\":{\"pagination\":{\"enabled\":false}},\"columnProjection\":{\"source\":\"schema\",\"include\":[\"equipamentoId\",\"status\",\"inicio\",\"fim\"],\"overrides\":{\"equipamentoId\":{\"header\":{\"key\":\"employeeOperations.column.equipment\"},\"sticky\":\"start\"},\"status\":{\"header\":{\"key\":\"employeeOperations.column.status\"},\"renderer\":{\"type\":\"badge\",\"badge\":{\"textField\":\"status\",\"variant\":\"soft\",\"color\":\"accent\"}}},\"inicio\":{\"header\":{\"key\":\"employeeOperations.column.custodyStart\"}},\"fim\":{\"header\":{\"key\":\"employeeOperations.column.custodyEnd\"}}}}},\"parentResourcePath\":\"human-resources/funcionarios\",\"parentResourceId\":null,\"parentIdentity\":null,\"compact\":true,\"enableCustomization\":false},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}}]}]}",
4278
4279
  "sourcePointer": "examples/ai-recipes/praxis-dynamic-page.ergon-archetype-master-detail-tabs.json",
4279
- "contentHash": "c231264bba18a1dace1935d00674dc51b2f4dcba61599e097474eb0b31801209",
4280
+ "contentHash": "fbc56bfed1328e7a40bbc7a3040646d596219a0c3445a4c20f70c757a2735e78",
4280
4281
  "sourceKind": "component_definition",
4281
4282
  "sourceId": "praxis-dynamic-page",
4282
4283
  "corpusVersion": "1.0.0"
@@ -4454,9 +4455,9 @@
4454
4455
  {
4455
4456
  "chunkIndex": 143,
4456
4457
  "chunkKind": "recipe",
4457
- "content": "{\"componentId\":\"praxis-dynamic-page\",\"chunkSection\":\"authoringPlan\",\"authoringPlan\":{\"widgets\":[{\"key\":\"missionFilters\",\"componentId\":\"praxis-filter\",\"role\":\"query-context\",\"shell\":{\"kind\":\"dashboard-card\",\"preset\":\"frameless\",\"icon\":\"filter_alt\",\"title\":\"Localizar missões\",\"subtitle\":\"Filtros inline derivados do contrato real de operations.missoes\",\"showHeader\":false,\"bodyLayout\":\"fill\",\"windowActions\":{\"fullscreen\":true,\"collapsible\":true}},\"bindingOrder\":[\"resourcePath\",\"componentInstanceId\",\"alwaysVisibleFields\",\"value\",\"disablePersistence\",\"enableCustomization\",\"showFilterSettings\",\"showAdvancedButton\",\"showAddButton\",\"showClearButton\",\"showSearchButton\",\"placeBooleansInActions\",\"changeDebounceMs\"],\"inputs\":{\"resourcePath\":\"operations/missoes\",\"componentInstanceId\":\"quickstart-mission-parent-child-filter\",\"alwaysVisibleFields\":[\"titulo\",\"status\",\"prioridade\",\"local\"],\"value\":{},\"disablePersistence\":true,\"enableCustomization\":false,\"showFilterSettings\":false,\"showAdvancedButton\":true,\"showAddButton\":true,\"showClearButton\":true,\"showSearchButton\":false,\"placeBooleansInActions\":true,\"changeDebounceMs\":300},\"outputs\":{\"change\":\"emit\",\"requestSearch\":\"emit\",\"clear\":\"emit\",\"contextChange\":\"emit\"}},{\"key\":\"parents\",\"componentId\":\"praxis-table\",\"role\":\"parent-resource\",\"shell\":{\"kind\":\"dashboard-card\",\"icon\":\"assignment\",\"title\":\"Missões\",\"subtitle\":\"Coleção paginada pelo Quick Start; a seleção governa a surface relacionada\",\"bodyLayout\":\"fill\",\"windowActions\":{\"fullscreen\":true,\"collapsible\":true}},\"bindingOrder\":[\"tableId\",\"config\",\"configPersistenceStrategy\",\"enableCustomization\",\"queryContext\",\"resourcePath\"],\"inputs\":{\"tableId\":\"quickstart-mission-parent\",\"resourcePath\":\"operations/missoes\",\"queryContext\":{\"filters\":{}},\"configPersistenceStrategy\":\"volatile\",\"enableCustomization\":false,\"config\":{\"columns\":[],\"columnProjection\":{\"source\":\"schema\",\"include\":[\"titulo\",\"status\",\"prioridade\",\"local\",\"ameacaNome\",\"inicioPrev\"]},\"behavior\":{\"pagination\":{\"enabled\":true,\"strategy\":\"server\",\"pageSize\":8,\"pageSizeOptions\":[8,16,32],\"showFirstLastButtons\":true},\"sorting\":{\"enabled\":true,\"strategy\":\"server\",\"defaultSort\":{\"column\":\"id\",\"direction\":\"desc\"}},\"filtering\":{\"enabled\":false,\"strategy\":\"server\"},\"selection\":{\"enabled\":true,\"type\":\"single\",\"mode\":\"row\",\"allowSelectAll\":false,\"persistSelection\":false,\"persistOnDataUpdate\":false},\"interaction\":{\"rowClick\":{\"enabled\":true,\"action\":\"select\"}}},\"toolbar\":{\"visible\":false},\"appearance\":{\"density\":\"compact\",\"stickyHeader\":true,\"hoverHighlight\":true,\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"horizontalScroll\":false,\"cardMode\":true,\"priorityColumns\":[\"titulo\",\"status\",\"prioridade\"]}}}}},\"outputs\":{\"selectionChange\":\"emit\"}},{\"key\":\"children\",\"componentId\":\"praxis-related-resource-outlet\",\"role\":\"related-child-resource\",\"shell\":{\"kind\":\"dashboard-card\",\"icon\":\"groups\",\"title\":\"${state.teamTitle}\",\"subtitle\":\"${state.teamSubtitle}\",\"bodyLayout\":\"fill\",\"windowActions\":{\"fullscreen\":true,\"collapsible\":true}},\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\",\"emptyState\",\"enableCustomization\",\"compact\"],\"inputs\":{\"surfaceId\":\"team\",\"parentResourcePath\":\"operations/missoes\",\"parentResourceId\":null,\"parentIdentity\":null,\"mode\":\"inline\",\"tableId\":\"quickstart-mission-team\",\"tableConfig\":{\"columns\":[],\"columnProjection\":{\"source\":\"schema\",\"include\":[\"funcionarioNome\",\"papel\",\"principal\",\"resultado\"],\"overrides\":{\"funcionarioNome\":{\"header\":\"Participante\",\"sticky\":\"start\"},\"principal\":{\"header\":\"Liderança\",\"format\":\"yes-no\",\"align\":\"center\"}}},\"behavior\":{\"pagination\":{\"enabled\":true,\"pageSize\":10,\"pageSizeOptions\":[10,20]},\"sorting\":{\"enabled\":true,\"defaultSort\":{\"column\":\"ordem\",\"direction\":\"asc\"}},\"selection\":{\"enabled\":true,\"type\":\"single\",\"mode\":\"row\",\"allowSelectAll\":false,\"persistSelection\":false,\"persistOnDataUpdate\":true},\"interaction\":{\"rowClick\":{\"enabled\":true,\"action\":\"select\"}}},\"toolbar\":{\"visible\":true,\"title\":\"Participantes\",\"subtitle\":\"Operações e vínculo pai-filho publicados pela surface team\",\"search\":{\"enabled\":true},\"columnsVisibility\":{\"enabled\":false},\"densityToggle\":{\"enabled\":true}},\"appearance\":{\"density\":\"compact\",\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"horizontalScroll\":false,\"cardMode\":true,\"priorityColumns\":[\"funcionarioNome\",\"papel\",\"principal\"]}}}},\"emptyState\":{\"icon\":\"touch_app\",\"title\":\"Selecione uma missão\",\"description\":\"Escolha uma missão para descobrir e carregar sua equipe pela surface publicada.\",\"tone\":\"primary\",\"variant\":\"transparent\",\"alignment\":\"center\",\"density\":\"compact\",\"iconContainer\":\"circle\"},\"enableCustomization\":false,\"compact\":true},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}},{\"key\":\"childDetail\",\"componentId\":\"praxis-dynamic-form\",\"role\":\"child-detail-presentation\",\"shell\":{\"kind\":\"dashboard-card\",\"icon\":\"badge\",\"title\":\"${state.participantTitle}\",\"subtitle\":\"${state.participantSubtitle}\",\"bodyLayout\":\"fill\",\"windowActions\":{\"fullscreen\":true,\"collapsible\":true}},\"bindingOrder\":[\"formId\",\"componentInstanceId\",\"resourcePath\",\"resourceId\",\"emptyState\",\"mode\",\"schemaSource\",\"layoutPolicy\",\"configPersistenceStrategy\",\"enableCustomization\",\"showAiAssistant\",\"readonlyModeGlobal\",\"presentationModeGlobal\",\"fieldIconPolicy\"],\"inputs\":{\"formId\":\"quickstart-mission-participant-detail\",\"componentInstanceId\":\"quickstart-mission-participant-detail\",\"resourcePath\":\"operations/missao-participantes\",\"resourceId\":null,\"emptyState\":{\"icon\":\"person_search\",\"title\":\"Selecione um participante\",\"description\":\"Escolha um registro na equipe para carregar o detalhe pela API real em modo de apresentação.\",\"tone\":\"primary\",\"variant\":\"transparent\",\"alignment\":\"center\",\"density\":\"compact\",\"iconContainer\":\"circle\"},\"mode\":\"view\",\"schemaSource\":\"resource\",\"layoutPolicy\":{\"source\":\"schema\",\"intent\":\"detail\",\"preset\":\"compactPresentation\",\"lifecycle\":\"live\",\"persistence\":\"transient\",\"schemaOperation\":\"detail\",\"schemaType\":\"response\",\"detailSummary\":{\"includeFields\":[\"funcionarioNome\",\"missaoTitulo\",\"papel\",\"ordem\",\"principal\",\"resultado\"],\"columns\":3,\"responsiveColumns\":{\"lg\":3,\"md\":2,\"sm\":1,\"xs\":1},\"widthPrecedence\":\"summary\"}},\"configPersistenceStrategy\":\"input-first\",\"enableCustomization\":false,\"showAiAssistant\":false,\"readonlyModeGlobal\":true,\"presentationModeGlobal\":true,\"fieldIconPolicy\":\"presentation-only\"},\"outputs\":{\"initializationError\":\"emit\"}}],\"contextScopes\":[{\"id\":\"quickstart-mission:team-context\",\"context\":{\"parentResourcePath\":{\"kind\":\"constant\",\"value\":\"operations/missoes\"},\"parentResourceId\":{\"kind\":\"state\",\"path\":\"selectedMissionId\",\"layer\":\"values\",\"initial\":null},\"parentIdentity\":{\"kind\":\"state\",\"path\":\"selectedMissionIdentity\",\"layer\":\"values\",\"initial\":null}},\"targets\":[{\"widget\":\"children\"}],\"policy\":{\"missingValuePolicy\":\"propagate-undefined\",\"distinct\":true},\"metadata\":{\"source\":\"quickstart-real-http\"}},{\"id\":\"quickstart-mission:participant-detail-context\",\"context\":{\"resourcePath\":{\"kind\":\"constant\",\"value\":\"operations/missao-participantes\"},\"resourceId\":{\"kind\":\"state\",\"path\":\"selectedParticipantId\",\"layer\":\"values\",\"initial\":null}},\"targets\":[{\"widget\":\"childDetail\"}],\"policy\":{\"missingValuePolicy\":\"propagate-undefined\",\"distinct\":true},\"metadata\":{\"source\":\"quickstart-real-http\"}}]}}",
4458
+ "content": "{\"componentId\":\"praxis-dynamic-page\",\"chunkSection\":\"authoringPlan\",\"authoringPlan\":{\"widgets\":[{\"key\":\"missionFilters\",\"componentId\":\"praxis-filter\",\"role\":\"query-context\",\"shell\":{\"kind\":\"dashboard-card\",\"preset\":\"frameless\",\"icon\":\"filter_alt\",\"title\":\"Localizar missões\",\"subtitle\":\"Filtros inline derivados do contrato real de operations.missoes\",\"showHeader\":false,\"bodyLayout\":\"fill\",\"windowActions\":{\"fullscreen\":true,\"collapsible\":true}},\"bindingOrder\":[\"resourcePath\",\"componentInstanceId\",\"alwaysVisibleFields\",\"value\",\"disablePersistence\",\"enableCustomization\",\"showFilterSettings\",\"showAdvancedButton\",\"showAddButton\",\"showClearButton\",\"showSearchButton\",\"placeBooleansInActions\",\"changeDebounceMs\"],\"inputs\":{\"resourcePath\":\"operations/missoes\",\"componentInstanceId\":\"quickstart-mission-parent-child-filter\",\"alwaysVisibleFields\":[\"titulo\",\"status\",\"prioridade\",\"local\"],\"value\":{},\"disablePersistence\":true,\"enableCustomization\":false,\"showFilterSettings\":false,\"showAdvancedButton\":true,\"showAddButton\":true,\"showClearButton\":true,\"showSearchButton\":false,\"placeBooleansInActions\":true,\"changeDebounceMs\":300},\"outputs\":{\"change\":\"emit\",\"requestSearch\":\"emit\",\"clear\":\"emit\",\"contextChange\":\"emit\"}},{\"key\":\"parents\",\"componentId\":\"praxis-table\",\"role\":\"parent-resource\",\"shell\":{\"kind\":\"dashboard-card\",\"icon\":\"assignment\",\"title\":\"Missões\",\"subtitle\":\"Coleção paginada pelo Quick Start; a seleção governa a surface relacionada\",\"bodyLayout\":\"fill\",\"windowActions\":{\"fullscreen\":true,\"collapsible\":true}},\"bindingOrder\":[\"tableId\",\"config\",\"configPersistenceStrategy\",\"enableCustomization\",\"queryContext\",\"resourcePath\"],\"inputs\":{\"tableId\":\"quickstart-mission-parent\",\"resourcePath\":\"operations/missoes\",\"queryContext\":{\"filters\":{}},\"configPersistenceStrategy\":\"volatile\",\"enableCustomization\":false,\"config\":{\"columns\":[],\"columnProjection\":{\"source\":\"schema\",\"include\":[\"titulo\",\"status\",\"prioridade\",\"local\",\"ameacaNome\",\"inicioPrev\"]},\"behavior\":{\"pagination\":{\"enabled\":true,\"strategy\":\"server\",\"pageSize\":8,\"pageSizeOptions\":[8,16,32],\"showFirstLastButtons\":true},\"sorting\":{\"enabled\":true,\"strategy\":\"server\",\"defaultSort\":{\"column\":\"id\",\"direction\":\"desc\"}},\"filtering\":{\"enabled\":false,\"strategy\":\"server\"},\"selection\":{\"enabled\":true,\"type\":\"single\",\"mode\":\"row\",\"allowSelectAll\":false,\"persistSelection\":false,\"persistOnDataUpdate\":false},\"interaction\":{\"rowClick\":{\"enabled\":true,\"action\":\"select\"}}},\"toolbar\":{\"visible\":false},\"appearance\":{\"density\":\"compact\",\"stickyHeader\":true,\"hoverHighlight\":true,\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"horizontalScroll\":false,\"cardMode\":true,\"priorityColumns\":[\"titulo\",\"status\",\"prioridade\"]}}}}},\"outputs\":{\"selectionChange\":\"emit\"}},{\"key\":\"children\",\"componentId\":\"praxis-related-resource-outlet\",\"role\":\"related-child-resource\",\"shell\":{\"kind\":\"dashboard-card\",\"icon\":\"groups\",\"title\":\"${state.teamTitle}\",\"stickyHeader\":true,\"subtitle\":\"${state.teamSubtitle}\",\"bodyLayout\":\"fill\",\"windowActions\":{\"fullscreen\":true,\"collapsible\":true}},\"bindingOrder\":[\"surfaceId\",\"parentResourcePath\",\"parentResourceId\",\"parentIdentity\",\"mode\",\"tableId\",\"tableConfig\",\"emptyState\",\"enableCustomization\",\"compact\"],\"inputs\":{\"surfaceId\":\"team\",\"parentResourcePath\":\"operations/missoes\",\"parentResourceId\":null,\"parentIdentity\":null,\"mode\":\"inline\",\"tableId\":\"quickstart-mission-team\",\"tableConfig\":{\"columns\":[],\"columnProjection\":{\"source\":\"schema\",\"include\":[\"funcionarioNome\",\"papel\",\"principal\",\"resultado\"],\"overrides\":{\"funcionarioNome\":{\"header\":\"Participante\",\"sticky\":\"start\"},\"principal\":{\"header\":\"Liderança\",\"format\":\"yes-no\",\"align\":\"center\"}}},\"behavior\":{\"pagination\":{\"enabled\":true,\"pageSize\":10,\"pageSizeOptions\":[10,20]},\"sorting\":{\"enabled\":true,\"defaultSort\":{\"column\":\"ordem\",\"direction\":\"asc\"}},\"selection\":{\"enabled\":true,\"type\":\"single\",\"mode\":\"row\",\"allowSelectAll\":false,\"persistSelection\":false,\"persistOnDataUpdate\":true},\"interaction\":{\"rowClick\":{\"enabled\":true,\"action\":\"select\"}}},\"toolbar\":{\"visible\":true,\"title\":\"Participantes\",\"subtitle\":\"Operações e vínculo pai-filho publicados pela surface team\",\"search\":{\"enabled\":true},\"columnsVisibility\":{\"enabled\":false},\"densityToggle\":{\"enabled\":true}},\"appearance\":{\"density\":\"compact\",\"responsive\":{\"breakpoints\":{\"mobile\":640},\"mobile\":{\"horizontalScroll\":false,\"cardMode\":true,\"priorityColumns\":[\"funcionarioNome\",\"papel\",\"principal\"]}}}},\"emptyState\":{\"icon\":\"touch_app\",\"title\":\"Selecione uma missão\",\"description\":\"Escolha uma missão para descobrir e carregar sua equipe pela surface publicada.\",\"tone\":\"primary\",\"variant\":\"transparent\",\"alignment\":\"center\",\"density\":\"compact\",\"iconContainer\":\"circle\"},\"enableCustomization\":false,\"compact\":true},\"outputs\":{\"widgetEvent\":\"emit\",\"resourceEvent\":\"emit\",\"surfaceOpen\":\"emit\"}},{\"key\":\"childDetail\",\"componentId\":\"praxis-dynamic-form\",\"role\":\"child-detail-presentation\",\"shell\":{\"kind\":\"dashboard-card\",\"icon\":\"badge\",\"title\":\"${state.participantTitle}\",\"stickyHeader\":true,\"subtitle\":\"${state.participantSubtitle}\",\"bodyLayout\":\"fill\",\"windowActions\":{\"fullscreen\":true,\"collapsible\":true}},\"bindingOrder\":[\"formId\",\"componentInstanceId\",\"resourcePath\",\"resourceId\",\"emptyState\",\"mode\",\"schemaSource\",\"layoutPolicy\",\"configPersistenceStrategy\",\"enableCustomization\",\"showAiAssistant\",\"readonlyModeGlobal\",\"presentationModeGlobal\",\"fieldIconPolicy\"],\"inputs\":{\"formId\":\"quickstart-mission-participant-detail\",\"componentInstanceId\":\"quickstart-mission-participant-detail\",\"resourcePath\":\"operations/missao-participantes\",\"resourceId\":null,\"emptyState\":{\"icon\":\"person_search\",\"title\":\"Selecione um participante\",\"description\":\"Escolha um registro na equipe para carregar o detalhe pela API real em modo de apresentação.\",\"tone\":\"primary\",\"variant\":\"transparent\",\"alignment\":\"center\",\"density\":\"compact\",\"iconContainer\":\"circle\"},\"mode\":\"view\",\"schemaSource\":\"resource\",\"layoutPolicy\":{\"source\":\"schema\",\"intent\":\"detail\",\"preset\":\"compactPresentation\",\"lifecycle\":\"live\",\"persistence\":\"transient\",\"schemaOperation\":\"detail\",\"schemaType\":\"response\",\"detailSummary\":{\"includeFields\":[\"funcionarioNome\",\"missaoTitulo\",\"papel\",\"ordem\",\"principal\",\"resultado\"],\"columns\":3,\"responsiveColumns\":{\"lg\":3,\"md\":2,\"sm\":1,\"xs\":1},\"widthPrecedence\":\"summary\"}},\"configPersistenceStrategy\":\"input-first\",\"enableCustomization\":false,\"showAiAssistant\":false,\"readonlyModeGlobal\":true,\"presentationModeGlobal\":true,\"fieldIconPolicy\":\"presentation-only\"},\"outputs\":{\"initializationError\":\"emit\"}}],\"contextScopes\":[{\"id\":\"quickstart-mission:team-context\",\"context\":{\"parentResourcePath\":{\"kind\":\"constant\",\"value\":\"operations/missoes\"},\"parentResourceId\":{\"kind\":\"state\",\"path\":\"selectedMissionId\",\"layer\":\"values\",\"initial\":null},\"parentIdentity\":{\"kind\":\"state\",\"path\":\"selectedMissionIdentity\",\"layer\":\"values\",\"initial\":null}},\"targets\":[{\"widget\":\"children\"}],\"policy\":{\"missingValuePolicy\":\"propagate-undefined\",\"distinct\":true},\"metadata\":{\"source\":\"quickstart-real-http\"}},{\"id\":\"quickstart-mission:participant-detail-context\",\"context\":{\"resourcePath\":{\"kind\":\"constant\",\"value\":\"operations/missao-participantes\"},\"resourceId\":{\"kind\":\"state\",\"path\":\"selectedParticipantId\",\"layer\":\"values\",\"initial\":null}},\"targets\":[{\"widget\":\"childDetail\"}],\"policy\":{\"missingValuePolicy\":\"propagate-undefined\",\"distinct\":true},\"metadata\":{\"source\":\"quickstart-real-http\"}}]}}",
4458
4459
  "sourcePointer": "examples/ai-recipes/praxis-dynamic-page.ergon-archetype-parent-child-related.json",
4459
- "contentHash": "4e64bde244aa8c9ed9a7bc88fc89444337f1dbf7e95777d34ead14e8ac4bf622",
4460
+ "contentHash": "579b613bcbc0920dff61ca0d30f6603cb7debc789ae1a5fafbf554ca80589a2c",
4460
4461
  "sourceKind": "component_definition",
4461
4462
  "sourceId": "praxis-dynamic-page",
4462
4463
  "corpusVersion": "1.0.0"