@praxisui/table 9.0.0-beta.44 → 9.0.0-beta.45
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/ai/component-registry.json +53 -4
- package/fesm2022/{praxisui-table-praxisui-table-B_3nc4X5.mjs → praxisui-table-praxisui-table-BplRCswi.mjs} +64 -5
- package/fesm2022/{praxisui-table-table-ai.adapter-BKxvxgsw.mjs → praxisui-table-table-ai.adapter-CJuL6UVY.mjs} +1 -1
- package/fesm2022/praxisui-table.mjs +1 -1
- package/package.json +10 -10
- package/types/praxisui-table.d.ts +7 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-07-
|
|
3
|
+
"generatedAt": "2026-07-07T23:17:36.844Z",
|
|
4
4
|
"packageName": "@praxisui/table",
|
|
5
|
-
"packageVersion": "9.0.0-beta.
|
|
5
|
+
"packageVersion": "9.0.0-beta.45",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 3,
|
|
@@ -20002,8 +20002,57 @@
|
|
|
20002
20002
|
"message"
|
|
20003
20003
|
],
|
|
20004
20004
|
"properties": {
|
|
20005
|
+
"title": {
|
|
20006
|
+
"type": "string"
|
|
20007
|
+
},
|
|
20005
20008
|
"message": {
|
|
20006
20009
|
"type": "string"
|
|
20010
|
+
},
|
|
20011
|
+
"description": {
|
|
20012
|
+
"type": "string"
|
|
20013
|
+
},
|
|
20014
|
+
"icon": {
|
|
20015
|
+
"type": "string"
|
|
20016
|
+
},
|
|
20017
|
+
"tone": {
|
|
20018
|
+
"enum": [
|
|
20019
|
+
"neutral",
|
|
20020
|
+
"primary",
|
|
20021
|
+
"secondary"
|
|
20022
|
+
]
|
|
20023
|
+
},
|
|
20024
|
+
"variant": {
|
|
20025
|
+
"enum": [
|
|
20026
|
+
"card",
|
|
20027
|
+
"inline",
|
|
20028
|
+
"panel",
|
|
20029
|
+
"transparent"
|
|
20030
|
+
]
|
|
20031
|
+
},
|
|
20032
|
+
"alignment": {
|
|
20033
|
+
"enum": [
|
|
20034
|
+
"start",
|
|
20035
|
+
"center"
|
|
20036
|
+
]
|
|
20037
|
+
},
|
|
20038
|
+
"density": {
|
|
20039
|
+
"enum": [
|
|
20040
|
+
"compact",
|
|
20041
|
+
"comfortable"
|
|
20042
|
+
]
|
|
20043
|
+
},
|
|
20044
|
+
"iconContainer": {
|
|
20045
|
+
"enum": [
|
|
20046
|
+
"none",
|
|
20047
|
+
"circle",
|
|
20048
|
+
"soft"
|
|
20049
|
+
]
|
|
20050
|
+
},
|
|
20051
|
+
"actions": {
|
|
20052
|
+
"type": "array"
|
|
20053
|
+
},
|
|
20054
|
+
"contexts": {
|
|
20055
|
+
"type": "object"
|
|
20007
20056
|
}
|
|
20008
20057
|
}
|
|
20009
20058
|
},
|
|
@@ -22027,9 +22076,9 @@
|
|
|
22027
22076
|
{
|
|
22028
22077
|
"chunkIndex": 2,
|
|
22029
22078
|
"chunkKind": "authoring_manifest",
|
|
22030
|
-
"content": "{\n \"schemaVersion\": \"1.0.0\",\n \"componentId\": \"praxis-table\",\n \"ownerPackage\": \"@praxisui/table\",\n \"configSchemaId\": \"TableConfig\",\n \"manifestVersion\": \"2.0.0\",\n \"runtimeInputs\": [\n {\n \"name\": \"config\",\n \"type\": \"TableConfig\",\n \"description\": \"Configuração completa da tabela\"\n },\n {\n \"name\": \"data\",\n \"type\": \"any[]\",\n \"description\": \"Dados a serem exibidos (modo client-side)\"\n },\n {\n \"name\": \"resourcePath\",\n \"type\": \"string\",\n \"description\": \"Caminho do recurso (API base)\"\n },\n {\n \"name\": \"queryContext\",\n \"type\": \"PraxisDataQueryContext\",\n \"description\": \"Contexto de consulta declarativo\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"description\": \"Título da tabela\"\n },\n {\n \"name\": \"subtitle\",\n \"type\": \"string\",\n \"description\": \"Subtítulo da tabela\"\n },\n {\n \"name\": \"enableCustomization\",\n \"type\": \"boolean\",\n \"description\": \"Habilita modo de edição\"\n }\n ],\n \"editableTargets\": [\n {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"description\": \"Colunas base da tabela\"\n },\n {\n \"kind\": \"computedColumn\",\n \"resolver\": \"column-by-field\",\n \"description\": \"Colunas calculadas\"\n },\n {\n \"kind\": \"renderer\",\n \"resolver\": \"renderer-in-column\",\n \"description\": \"Renderizador de célula\"\n },\n {\n \"kind\": \"conditionalRenderer\",\n \"resolver\": \"conditional-renderer-in-column\",\n \"description\": \"Renderizadores condicionais\"\n },\n {\n \"kind\": \"rowAction\",\n \"resolver\": \"action-in-row-config\",\n \"description\": \"Ações por linha\"\n },\n {\n \"kind\": \"toolbarAction\",\n \"resolver\": \"action-in-toolbar-config\",\n \"description\": \"Ações na barra de ferramentas\"\n },\n {\n \"kind\": \"toolbar\",\n \"resolver\": \"toolbar-config\",\n \"description\": \"Configuração da barra de ferramentas\"\n },\n {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"description\": \"Configuração de filtragem\"\n },\n {\n \"kind\": \"grouping\",\n \"resolver\": \"grouping-config\",\n \"description\": \"Configuração de agrupamento\"\n },\n {\n \"kind\": \"selection\",\n \"resolver\": \"selection-config\",\n \"description\": \"Configuração de seleção\"\n },\n {\n \"kind\": \"export\",\n \"resolver\": \"export-config\",\n \"description\": \"Configuração de exportação\"\n },\n {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"description\": \"Configurações visuais\"\n },\n {\n \"kind\": \"expansion\",\n \"resolver\": \"expansion-config\",\n \"description\": \"Configuração de detalhe/expansão\"\n },\n {\n \"kind\": \"rule\",\n \"resolver\": \"style-rule-in-column-or-row\",\n \"description\": \"Regras de estilo ou comportamento\"\n },\n {\n \"kind\": \"meta\",\n \"resolver\": \"table-meta-config\",\n \"description\": \"Metadados da configuracao\"\n },\n {\n \"kind\": \"bulkAction\",\n \"resolver\": \"action-in-bulk-config\",\n \"description\": \"Acoes em lote\"\n },\n {\n \"kind\": \"contextAction\",\n \"resolver\": \"action-in-context-config\",\n \"description\": \"Acoes de menu contextual\"\n },\n {\n \"kind\": \"pagination\",\n \"resolver\": \"pagination-config\",\n \"description\": \"Configuracao de paginacao\"\n },\n {\n \"kind\": \"sorting\",\n \"resolver\": \"sorting-config\",\n \"description\": \"Configuracao de ordenacao\"\n },\n {\n \"kind\": \"interaction\",\n \"resolver\": \"interaction-config\",\n \"description\": \"Configuracao de interacao\"\n },\n {\n \"kind\": \"loading\",\n \"resolver\": \"loading-config\",\n \"description\": \"Estados de carregamento\"\n },\n {\n \"kind\": \"emptyState\",\n \"resolver\": \"empty-state-config\",\n \"description\": \"Estado vazio\"\n },\n {\n \"kind\": \"aiAssistant\",\n \"resolver\": \"ai-assistant-config\",\n \"description\": \"Config path ai.assistant.enabled controlling the embedded table AI assistant entrypoint and session.\"\n },\n {\n \"kind\": \"resizing\",\n \"resolver\": \"resizing-config\",\n \"description\": \"Redimensionamento de colunas\"\n },\n {\n \"kind\": \"dragging\",\n \"resolver\": \"dragging-config\",\n \"description\": \"Reorganizacao por drag and drop\"\n },\n {\n \"kind\": \"editing\",\n \"resolver\": \"editing-config\",\n \"description\": \"Modo de edicao\"\n },\n {\n \"kind\": \"messages\",\n \"resolver\": \"messages-config\",\n \"description\": \"Mensagens da tabela\"\n },\n {\n \"kind\": \"localization\",\n \"resolver\": \"localization-config\",\n \"description\": \"Localizacao e formatos regionais\"\n },\n {\n \"kind\": \"performance\",\n \"resolver\": \"performance-config\",\n \"description\": \"Configuracoes de performance\"\n },\n {\n \"kind\": \"data\",\n \"resolver\": \"data-config\",\n \"description\": \"Configuracoes de dados\"\n },\n {\n \"kind\": \"runtimeOperation\",\n \"resolver\": \"table-runtime-operation-contract\",\n \"description\": \"Operacoes runtime revisaveis sem mutar a configuracao persistida\"\n },\n {\n \"kind\": \"accessibility\",\n \"resolver\": \"accessibility-config\",\n \"description\": \"Acessibilidade\"\n }\n ],\n \"operations\": [\n {\n \"operationId\": \"column.add\",\n \"title\": \"Adicionar coluna\",\n \"scope\": \"global\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"field\",\n \"header\"\n ],\n \"properties\": {\n \"field\": {\n \"type\": \"string\"\n },\n \"header\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"enum\": [\n \"string\",\n \"number\",\n \"date\",\n \"boolean\",\n \"currency\",\n \"percentage\",\n \"custom\"\n ],\n \"default\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"column-field-unique\"\n ],\n \"affectedPaths\": [\n \"columns[]\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"column.remove\",\n \"title\": \"Remover coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"effects\": [\n {\n \"kind\": \"remove-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"destructive\": true,\n \"requiresConfirmation\": true,\n \"validators\": [\n \"destructive-removal-confirmation\"\n ],\n \"affectedPaths\": [\n \"columns[]\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.header.set\",\n \"title\": \"Definir cabeçalho\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"header\"\n ],\n \"properties\": {\n \"header\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].header\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.type.set\",\n \"title\": \"Definir tipo de dado\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {}\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].type\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.format.set\",\n \"title\": \"Definir formato\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"format\"\n ],\n \"properties\": {\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\n \"shortDate\",\n \"mediumDate\",\n \"longDate\",\n \"fullDate\",\n \"MMM/yyyy\",\n \"shortTime\",\n \"short\",\n \"yyyy-MM-dd\",\n \"dd/MM/yyyy\",\n \"yyyy-MM-dd HH:mm\",\n \"1.0-0\",\n \"1.1-1\",\n \"1.2-2\",\n \"1.0-3\",\n \"1.0-0|nosep\",\n \"BRL|symbol|2\",\n \"USD|symbol|2\",\n \"EUR|symbol|2\",\n \"BRL|code|2\",\n \"USD|code|0\",\n \"BRL|symbol|2|nosep\",\n \"EUR|symbol|2|nosep\",\n \"1.0-0|x100\",\n \"1.1-1|x100\",\n \"1.2-2|x100\",\n \"none\",\n \"uppercase\",\n \"lowercase\",\n \"titlecase\",\n \"capitalize\",\n \"uppercase|truncate|50|...\",\n \"000.000.000-00\",\n \"true-false\",\n \"yes-no\",\n \"active-inactive\",\n \"on-off\",\n \"enabled-disabled\",\n \"custom|Sim|Nao\"\n ],\n \"description\": \"Preset canônico do DataFormattingService.\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"format-preset-supported\"\n ],\n \"affectedPaths\": [\n \"columns[].format\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.width.set\",\n \"title\": \"Definir largura da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"width\"\n ],\n \"properties\": {\n \"width\": {\n \"type\": \"string\",\n \"pattern\": \"^(auto|\\\\d+(px|%|rem|em))$\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"column-width-valid\"\n ],\n \"affectedPaths\": [\n \"columns[].width\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.align.set\",\n \"title\": \"Definir alinhamento da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"align\"\n ],\n \"properties\": {\n \"align\": {\n \"enum\": [\n \"left\",\n \"center\",\n \"right\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].align\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.sticky.set\",\n \"title\": \"Definir sticky da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"sticky\"\n ],\n \"properties\": {\n \"sticky\": {\n \"enum\": [\n \"start\",\n \"end\",\n true,\n false\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].sticky\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.sortable.set\",\n \"title\": \"Definir ordenação da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"sortable\"\n ],\n \"properties\": {\n \"sortable\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].sortable\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.filterable.set\",\n \"title\": \"Definir filtro da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"filterable\"\n ],\n \"properties\": {\n \"filterable\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].filterable\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.style.set\",\n \"title\": \"Definir estilo da célula\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"style\"\n ],\n \"properties\": {\n \"style\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"css-style-safe\"\n ],\n \"affectedPaths\": [\n \"columns[].style\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.headerStyle.set\",\n \"title\": \"Definir estilo do cabeçalho\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"headerStyle\"\n ],\n \"properties\": {\n \"headerStyle\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"css-style-safe\"\n ],\n \"affectedPaths\": [\n \"columns[].headerStyle\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.valueMapping.set\",\n \"title\": \"Definir mapeamento de valores\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"valueMapping\"\n ],\n \"properties\": {\n \"valueMapping\": {\n \"type\": \"object\",\n \"minProperties\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"value-mapping-valid\"\n ],\n \"affectedPaths\": [\n \"columns[].valueMapping\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.order.set\",\n \"title\": \"Definir ordem visual\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"order\"\n ],\n \"properties\": {\n \"order\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].order\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.visibility.set\",\n \"title\": \"Definir visibilidade\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"visible\"\n ],\n \"properties\": {\n \"visible\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].visible\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.computed.add\",\n \"title\": \"Adicionar coluna calculada\",\n \"scope\": \"global\",\n \"targetKind\": \"computedColumn\",\n \"target\": {\n \"kind\": \"computedColumn\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"field\",\n \"header\",\n \"expression\"\n ],\n \"properties\": {\n \"field\": {\n \"type\": \"string\",\n \"description\": \"Stable camelCase field id for the new computed column. When the user supplies a header/name, derive this id from that header instead of asking for clarification.\"\n },\n \"header\": {\n \"type\": \"string\",\n \"description\": \"User-facing label for the computed column.\"\n },\n \"expression\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"outputType\": {}\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"column-field-unique\",\n \"computed-expression-valid\"\n ],\n \"affectedPaths\": [\n \"columns[]\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"column.renderer.set\",\n \"title\": \"Definir renderizador\",\n \"scope\": \"column\",\n \"targetKind\": \"renderer\",\n \"target\": {\n \"kind\": \"renderer\",\n \"resolver\": \"renderer-in-column\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"enum\": [\n \"icon\",\n \"image\",\n \"badge\",\n \"link\",\n \"button\",\n \"chip\",\n \"progress\",\n \"avatar\",\n \"toggle\",\n \"menu\",\n \"rating\",\n \"html\",\n \"compose\"\n ]\n },\n \"typeExpr\": {\n \"type\": \"string\"\n },\n \"button\": {\n \"type\": \"object\",\n \"required\": [\n \"action\"\n ],\n \"properties\": {\n \"label\": {\n \"type\": \"string\"\n },\n \"labelField\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"enum\": [\n \"primary\",\n \"accent\",\n \"warn\"\n ]\n },\n \"variant\": {\n \"enum\": [\n \"filled\",\n \"outlined\",\n \"text\"\n ]\n },\n \"size\": {\n \"enum\": [\n \"sm\",\n \"md\",\n \"lg\"\n ]\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n },\n \"disabledCondition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"action\": {\n \"type\": \"object\",\n \"required\": [\n \"id\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"payloadExpr\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"menu\": {\n \"type\": \"object\",\n \"required\": [\n \"itemsExpr\"\n ],\n \"properties\": {\n \"itemsExpr\": {\n \"type\": \"string\"\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n }\n }\n },\n \"link\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"href\"\n ]\n },\n {\n \"required\": [\n \"hrefField\"\n ]\n }\n ],\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"textField\": {\n \"type\": \"string\"\n },\n \"href\": {\n \"type\": \"string\"\n },\n \"hrefField\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"enum\": [\n \"_blank\",\n \"_self\",\n \"_parent\",\n \"_top\"\n ]\n },\n \"rel\": {\n \"type\": \"string\"\n }\n }\n },\n \"progress\": {\n \"type\": \"object\",\n \"required\": [\n \"valueExpr\"\n ],\n \"properties\": {\n \"valueExpr\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"showLabel\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"badge\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"text\"\n ]\n },\n {\n \"required\": [\n \"textField\"\n ]\n }\n ],\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"textField\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"variant\": {\n \"enum\": [\n \"filled\",\n \"outlined\",\n \"soft\",\n \"plain\"\n ]\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"tooltip\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ]\n },\n \"bgColor\": {\n \"type\": \"string\"\n },\n \"delayMs\": {\n \"type\": \"number\"\n }\n }\n }\n }\n },\n \"chip\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"text\"\n ]\n },\n {\n \"required\": [\n \"textField\"\n ]\n }\n ],\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"textField\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"variant\": {\n \"enum\": [\n \"filled\",\n \"outlined\"\n ]\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"tooltip\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ]\n },\n \"bgColor\": {\n \"type\": \"string\"\n },\n \"delayMs\": {\n \"type\": \"number\"\n }\n }\n }\n }\n },\n \"icon\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"name\"\n ]\n },\n {\n \"required\": [\n \"nameField\"\n ]\n }\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"nameField\": {\n \"type\": \"string\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"textField\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"suffix\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"number\"\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n }\n }\n },\n \"image\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"src\"\n ]\n },\n {\n \"required\": [\n \"srcField\"\n ]\n }\n ],\n \"properties\": {\n \"src\": {\n \"type\": \"string\"\n },\n \"srcField\": {\n \"type\": \"string\"\n },\n \"alt\": {\n \"type\": \"string\"\n },\n \"altField\": {\n \"type\": \"string\"\n },\n \"width\": {\n \"type\": \"number\"\n },\n \"height\": {\n \"type\": \"number\"\n },\n \"shape\": {\n \"enum\": [\n \"square\",\n \"rounded\",\n \"circle\"\n ]\n },\n \"fit\": {\n \"enum\": [\n \"cover\",\n \"contain\"\n ]\n },\n \"lazy\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"avatar\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"src\"\n ]\n },\n {\n \"required\": [\n \"srcField\"\n ]\n },\n {\n \"required\": [\n \"initialsField\"\n ]\n },\n {\n \"required\": [\n \"initialsExpr\"\n ]\n }\n ],\n \"properties\": {\n \"src\": {\n \"type\": \"string\"\n },\n \"srcField\": {\n \"type\": \"string\"\n },\n \"alt\": {\n \"type\": \"string\"\n },\n \"altField\": {\n \"type\": \"string\"\n },\n \"initialsField\": {\n \"type\": \"string\"\n },\n \"initialsExpr\": {\n \"type\": \"string\"\n },\n \"shape\": {\n \"enum\": [\n \"circle\",\n \"square\",\n \"rounded\"\n ]\n },\n \"size\": {\n \"type\": \"number\"\n },\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"textColor\": {\n \"type\": \"string\"\n }\n }\n },\n \"toggle\": {\n \"type\": \"object\",\n \"required\": [\n \"stateExpr\",\n \"action\"\n ],\n \"properties\": {\n \"stateExpr\": {\n \"type\": \"string\"\n },\n \"disabledCondition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n },\n \"action\": {\n \"type\": \"object\",\n \"required\": [\n \"id\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"payloadExpr\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"rating\": {\n \"type\": \"object\",\n \"required\": [\n \"valueExpr\"\n ],\n \"properties\": {\n \"valueExpr\": {\n \"type\": \"string\"\n },\n \"max\": {\n \"type\": \"number\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"outlineColor\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"enum\": [\n \"small\",\n \"medium\",\n \"large\"\n ]\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n }\n }\n },\n \"html\": {\n \"type\": \"object\",\n \"required\": [\n \"template\"\n ],\n \"properties\": {\n \"template\": {\n \"type\": \"string\"\n },\n \"sanitize\": {\n \"enum\": [\n \"strict\",\n \"basic\"\n ]\n },\n \"emptyFallback\": {\n \"type\": \"string\"\n }\n }\n },\n \"compose\": {\n \"type\": \"object\",\n \"required\": [\n \"items\"\n ],\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {}\n }\n }\n },\n \"layout\": {\n \"type\": \"object\",\n \"properties\": {\n \"gap\": {\n \"type\": \"number\"\n },\n \"direction\": {\n \"enum\": [\n \"row\",\n \"column\"\n ]\n },\n \"align\": {\n \"enum\": [\n \"start\",\n \"center\",\n \"end\"\n ]\n },\n \"wrap\": {\n \"type\": \"boolean\"\n },\n \"ellipsis\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n }\n },\n \"allOf\": [\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"button\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"button\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"menu\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"menu\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"link\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"link\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"progress\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"progress\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"badge\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"badge\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"chip\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"chip\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"icon\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"icon\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"image\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"image\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"avatar\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"avatar\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"toggle\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"toggle\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"rating\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"rating\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"html\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"html\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"compose\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"compose\"\n ]\n }\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"columns[].renderer\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"renderer-type-supported\",\n \"renderer-config-match\",\n \"editor-round-trip-preserve\"\n ],\n \"affectedPaths\": [\n \"columns[].renderer\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.conditionalRenderer.add\",\n \"title\": \"Adicionar renderizador condicional\",\n \"scope\": \"column\",\n \"targetKind\": \"conditionalRenderer\",\n \"target\": {\n \"kind\": \"conditionalRenderer\",\n \"resolver\": \"conditional-renderer-in-column\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"condition\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identificador estável do renderer condicional (usado para deduplicação)\"\n },\n \"condition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"tooltip\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ]\n },\n \"bgColor\": {\n \"type\": \"string\"\n },\n \"delayMs\": {\n \"type\": \"number\"\n }\n }\n },\n \"animation\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\",\n \"description\": \"false desativa a animacao sem remover a regra.\"\n },\n \"preset\": {\n \"enum\": [\n \"info-soft\",\n \"success-confirm\",\n \"warning-attention\",\n \"critical-alert\",\n \"audit-review\",\n \"sync-pending\",\n \"pulse-soft\",\n \"fade-soft\",\n \"sla-warning\",\n \"sla-breach\",\n \"risk-elevated\",\n \"risk-critical\",\n \"audit-warning\",\n \"sync-warning\"\n ],\n \"description\": \"Preset semantico recomendado. Preferir preset antes de type bruto.\"\n },\n \"type\": {\n \"enum\": [\n \"pulse\",\n \"blink\",\n \"grow\",\n \"fade\",\n \"slide-in\",\n \"border-pulse\"\n ]\n },\n \"durationMs\": {\n \"type\": \"number\"\n },\n \"trigger\": {\n \"enum\": [\n \"onChange\",\n \"onAppear\",\n \"onHover\",\n \"onConditionEnter\",\n \"onConditionExit\",\n \"onDataRefresh\"\n ]\n },\n \"repeat\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"once\",\n \"loop\",\n \"infinite\"\n ]\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"delayMs\": {\n \"type\": \"number\"\n },\n \"intensity\": {\n \"enum\": [\n \"subtle\",\n \"normal\",\n \"strong\"\n ]\n }\n }\n },\n \"effects\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"scope\": {\n \"enum\": [\n \"cell\",\n \"row\",\n \"column\",\n \"table\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"estilo\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"color\": {\n \"type\": \"string\"\n },\n \"bgColor\": {\n \"type\": \"string\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"transform\": {\n \"enum\": [\n \"uppercase\",\n \"lowercase\",\n \"capitalize\",\n null\n ]\n },\n \"opacity\": {\n \"type\": \"number\"\n },\n \"fontScale\": {\n \"type\": \"number\"\n }\n }\n },\n \"layout\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"border\": {\n \"enum\": [\n \"none\",\n \"left\",\n \"right\",\n \"top\",\n \"bottom\",\n \"all\"\n ]\n },\n \"borderColor\": {\n \"type\": \"string\"\n },\n \"borderWidth\": {\n \"type\": \"number\"\n },\n \"padding\": {\n \"type\": \"number\"\n },\n \"align\": {\n \"enum\": [\n \"start\",\n \"center\",\n \"end\"\n ]\n },\n \"elevation\": {\n \"type\": \"number\"\n }\n }\n },\n \"iconBadge\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"icon\": {\n \"type\": \"string\"\n },\n \"iconColor\": {\n \"type\": \"string\"\n },\n \"iconPos\": {\n \"enum\": [\n \"before\",\n \"after\",\n \"overlay\"\n ]\n },\n \"badgeText\": {\n \"type\": \"string\"\n },\n \"badgeStyle\": {\n \"enum\": [\n \"solid\",\n \"soft\",\n \"outline\"\n ]\n },\n \"badgeColor\": {\n \"type\": \"string\"\n }\n }\n },\n \"background\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"color\": {\n \"type\": \"string\"\n },\n \"gradient\": {\n \"type\": \"string\"\n },\n \"alpha\": {\n \"type\": \"number\"\n },\n \"blur\": {\n \"type\": \"number\"\n }\n }\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"inlineStyle\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"renderer\"\n ]\n },\n {\n \"required\": [\n \"tooltip\"\n ]\n },\n {\n \"required\": [\n \"animation\"\n ]\n },\n {\n \"required\": [\n \"effects\"\n ]\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"columns[].conditionalRenderers[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"computed-expression-valid\",\n \"renderer-config-match\"\n ],\n \"affectedPaths\": [\n \"columns[].conditionalRenderers[]\",\n \"columns[].conditionalRenderers[].tooltip\",\n \"columns[].conditionalRenderers[].animation\",\n \"columns[].conditionalRenderers[].effects\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.conditionalStyle.add\",\n \"title\": \"Adicionar regra de estilo condicional na coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"rule\",\n \"target\": {\n \"kind\": \"rule\",\n \"resolver\": \"style-rule-in-column-or-row\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"condition\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identificador estável da regra de estilo da coluna\"\n },\n \"condition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"type\": \"object\"\n },\n \"tooltip\": {\n \"type\": \"object\"\n },\n \"effects\": {\n \"type\": \"array\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"cssClass\"\n ]\n },\n {\n \"required\": [\n \"style\"\n ]\n },\n {\n \"required\": [\n \"tooltip\"\n ]\n },\n {\n \"required\": [\n \"effects\"\n ]\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"columns[].conditionalStyles[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"computed-expression-valid\",\n \"conditional-style-valid\"\n ],\n \"affectedPaths\": [\n \"columns[].conditionalStyles[]\",\n \"columns[].conditionalStyles[].effects\",\n \"columns[].conditionalStyles[].tooltip\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"row.styleRule.add\",\n \"title\": \"Adicionar regra de estilo de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"rule\",\n \"target\": {\n \"kind\": \"rule\",\n \"resolver\": \"style-rule-in-column-or-row\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"condition\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identificador estável da regra (usado para deduplicação via append-unique)\"\n },\n \"condition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"style\": {\n \"type\": \"object\",\n \"description\": \"Estilo CSS (Record<string, string>)\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"effects\": {\n \"type\": \"array\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"cssClass\"\n ]\n },\n {\n \"required\": [\n \"style\"\n ]\n },\n {\n \"required\": [\n \"effects\"\n ]\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"rowConditionalStyles[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"computed-expression-valid\"\n ],\n \"affectedPaths\": [\n \"rowConditionalStyles[]\",\n \"rowConditionalStyles[].effects\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"row.conditionalRenderer.add\",\n \"title\": \"Adicionar renderizador condicional de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"conditionalRenderer\",\n \"target\": {\n \"kind\": \"conditionalRenderer\",\n \"resolver\": \"conditional-renderer-in-row\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"condition\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identificador estavel da regra de renderer de linha\"\n },\n \"condition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"tooltip\": {\n \"type\": \"object\",\n \"description\": \"Tooltip de linha\"\n },\n \"effects\": {\n \"type\": \"array\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"tooltip\"\n ]\n },\n {\n \"required\": [\n \"animation\"\n ]\n },\n {\n \"required\": [\n \"effects\"\n ]\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"rowConditionalRenderers[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"computed-expression-valid\"\n ],\n \"affectedPaths\": [\n \"rowConditionalRenderers[]\",\n \"rowConditionalRenderers[].condition\",\n \"rowConditionalRenderers[].tooltip\",\n \"rowConditionalRenderers[].animation\",\n \"rowConditionalRenderers[].effects\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"toolbar.visibility.set\",\n \"title\": \"Definir visibilidade da toolbar\",\n \"scope\": \"global\",\n \"targetKind\": \"toolbar\",\n \"target\": {\n \"kind\": \"toolbar\",\n \"resolver\": \"toolbar-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"visible\"\n ],\n \"properties\": {\n \"visible\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"toolbar\"\n }\n ],\n \"affectedPaths\": [\n \"toolbar.visible\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"toolbar.action.add\",\n \"title\": \"Adicionar ação na toolbar\",\n \"scope\": \"global\",\n \"targetKind\": \"toolbarAction\",\n \"target\": {\n \"kind\": \"toolbarAction\",\n \"resolver\": \"action-in-toolbar-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"label\",\n \"action\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"action\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"enum\": [\n \"button\",\n \"icon\",\n \"menu\"\n ],\n \"default\": \"button\"\n },\n \"visibleWhen\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"globalAction\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"actionId\": {\n \"type\": \"string\",\n \"enum\": [\n \"toast.success\",\n \"toast.error\",\n \"dialog.alert\",\n \"dialog.open\",\n \"navigation.openExternal\",\n \"navigation.openRoute\",\n \"api.post\",\n \"api.patch\"\n ]\n },\n \"payload\": {\n \"type\": \"object\"\n },\n \"payloadExpr\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"kind\",\n \"globalAction\"\n ],\n \"additionalProperties\": false,\n \"properties\": {\n \"kind\": {\n \"enum\": [\n \"global-action\"\n ]\n }\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"toolbar.actions[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"toolbar-action-id-unique\"\n ],\n \"affectedPaths\": [\n \"toolbar.actions[]\",\n \"toolbar.actions[].visibleWhen\",\n \"toolbar.actions[].effects\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"rowAction.add\",\n \"title\": \"Adicionar ação de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"rowAction\",\n \"target\": {\n \"kind\": \"rowAction\",\n \"resolver\": \"action-in-row-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"label\",\n \"action\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"action\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"visibleWhen\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"disabledWhen\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"recordSurface\": {\n \"type\": \"object\",\n \"description\": \"ResourceSurfaceCatalogItem canonico preservado para abrir uma superficie relacionada ao registro da linha clicada.\"\n },\n \"effects\": {\n \"type\": \"array\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"actions.row.actions[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"row-action-id-unique\"\n ],\n \"affectedPaths\": [\n \"actions.row.actions[]\",\n \"actions.row.actions[].visibleWhen\",\n \"actions.row.actions[].disabledWhen\",\n \"actions.row.actions[].effects\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"bulkAction.add\",\n \"title\": \"Adicionar ação em lote\",\n \"scope\": \"global\",\n \"targetKind\": \"bulkAction\",\n \"target\": {\n \"kind\": \"bulkAction\",\n \"resolver\": \"action-in-bulk-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"label\",\n \"action\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"action\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"effects\": {\n \"type\": \"array\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"actions.bulk.actions[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"bulk-action-id-unique\"\n ],\n \"affectedPaths\": [\n \"actions.bulk.actions[]\",\n \"actions.bulk.actions[].effects\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"export.enabled.set\",\n \"title\": \"Habilitar exportação\",\n \"scope\": \"global\",\n \"targetKind\": \"export\",\n \"target\": {\n \"kind\": \"export\",\n \"resolver\": \"export-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"formats\": {\n \"type\": \"array\",\n \"items\": {\n \"enum\": [\n \"excel\",\n \"pdf\",\n \"csv\",\n \"json\"\n ]\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"export\"\n }\n ],\n \"affectedPaths\": [\n \"export.enabled\",\n \"export.formats\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"filter.advanced.configure\",\n \"title\": \"Configurar filtros avançados\",\n \"scope\": \"global\",\n \"targetKind\": \"filter\",\n \"target\": {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"queryBuilder\": {\n \"type\": \"boolean\"\n },\n \"savePresets\": {\n \"type\": \"boolean\"\n },\n \"settings\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"filter\"\n ]\n },\n \"showAdvanced\": {\n \"type\": \"boolean\"\n },\n \"allowSaveTags\": {\n \"type\": \"boolean\"\n },\n \"alwaysVisibleFields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"selectedFieldIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alwaysVisibleFieldMetadataOverrides\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\"\n }\n },\n \"changeDebounceMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"useInlineSearchableSelectVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineRangeVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineDateVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineDateRangeVariant\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"behavior.filtering.enabled\",\n \"value\": true\n },\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.filtering.advancedFilters\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.filtering.enabled\",\n \"behavior.filtering.advancedFilters.enabled\",\n \"behavior.filtering.advancedFilters.settings\"\n ],\n \"validators\": [\n \"filter-fields-exist\",\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"filter.advanced.fields.add\",\n \"title\": \"Adicionar campos aos filtros avançados\",\n \"scope\": \"global\",\n \"targetKind\": \"filter\",\n \"target\": {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"fields\"\n ],\n \"properties\": {\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1\n },\n \"selected\": {\n \"type\": \"boolean\"\n },\n \"alwaysVisible\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"behavior.filtering.enabled\",\n \"value\": true\n },\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.filtering.advancedFilters\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.filtering.enabled\",\n \"behavior.filtering.advancedFilters.enabled\",\n \"behavior.filtering.advancedFilters.settings\"\n ],\n \"validators\": [\n \"filter-fields-exist\",\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"filter.advanced.fields.remove\",\n \"title\": \"Remover campos dos filtros avançados\",\n \"scope\": \"global\",\n \"targetKind\": \"filter\",\n \"target\": {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"fields\"\n ],\n \"properties\": {\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1\n },\n \"selected\": {\n \"type\": \"boolean\"\n },\n \"alwaysVisible\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"behavior.filtering.enabled\",\n \"value\": true\n },\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.filtering.advancedFilters\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.filtering.enabled\",\n \"behavior.filtering.advancedFilters.enabled\",\n \"behavior.filtering.advancedFilters.settings\"\n ],\n \"validators\": [\n \"filter-fields-exist\",\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"grouping.set\",\n \"title\": \"Definir agrupamento\",\n \"scope\": \"global\",\n \"targetKind\": \"grouping\",\n \"target\": {\n \"kind\": \"grouping\",\n \"resolver\": \"grouping-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"expanded\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.grouping\"\n }\n ],\n \"validators\": [\n \"grouping-fields-exist\"\n ],\n \"affectedPaths\": [\n \"behavior.grouping\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"selection.mode.set\",\n \"title\": \"Definir modo de seleção\",\n \"scope\": \"global\",\n \"targetKind\": \"selection\",\n \"target\": {\n \"kind\": \"selection\",\n \"resolver\": \"selection-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\",\n \"type\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"enum\": [\n \"single\",\n \"multiple\"\n ]\n },\n \"mode\": {\n \"enum\": [\n \"checkbox\",\n \"row\",\n \"both\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.selection\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.selection.enabled\",\n \"behavior.selection.type\",\n \"behavior.selection.mode\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"appearance.density.set\",\n \"title\": \"Definir densidade\",\n \"scope\": \"global\",\n \"targetKind\": \"appearance\",\n \"target\": {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"density\"\n ],\n \"properties\": {\n \"density\": {\n \"enum\": [\n \"compact\",\n \"comfortable\",\n \"spacious\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"appearance\"\n }\n ],\n \"affectedPaths\": [\n \"appearance.density\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"appearance.borders.set\",\n \"title\": \"Definir bordas\",\n \"scope\": \"global\",\n \"targetKind\": \"appearance\",\n \"target\": {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"showRowBorders\",\n \"showColumnBorders\"\n ],\n \"properties\": {\n \"showRowBorders\": {\n \"type\": \"boolean\"\n },\n \"showColumnBorders\": {\n \"type\": \"boolean\"\n },\n \"showOuterBorder\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"appearance.borders\"\n }\n ],\n \"affectedPaths\": [\n \"appearance.borders.showRowBorders\",\n \"appearance.borders.showColumnBorders\",\n \"appearance.borders.showOuterBorder\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"virtualization.enabled.set\",\n \"title\": \"Habilitar virtualização\",\n \"scope\": \"global\",\n \"targetKind\": \"appearance\",\n \"target\": {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"itemHeight\": {\n \"type\": \"number\",\n \"default\": 48\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.virtualization\"\n },\n {\n \"kind\": \"merge-object\",\n \"path\": \"performance.virtualization\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.virtualization\",\n \"performance.virtualization\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"expansion.configure\",\n \"title\": \"Configurar expansão de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"expansion\",\n \"target\": {\n \"kind\": \"expansion\",\n \"resolver\": \"expansion-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"contractVersion\": {\n \"type\": \"string\"\n },\n \"state\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"controlled\",\n \"uncontrolled\"\n ]\n }\n }\n },\n \"interaction\": {\n \"type\": \"object\",\n \"properties\": {\n \"trigger\": {\n \"enum\": [\n \"icon\",\n \"row\",\n \"both\"\n ]\n },\n \"toggleIcon\": {\n \"type\": \"object\",\n \"properties\": {\n \"collapsed\": {\n \"type\": \"string\"\n },\n \"expanded\": {\n \"type\": \"string\"\n },\n \"ariaLabelCollapsed\": {\n \"type\": \"string\"\n },\n \"ariaLabelExpanded\": {\n \"type\": \"string\"\n }\n }\n },\n \"motion\": {\n \"type\": \"object\",\n \"properties\": {\n \"preset\": {\n \"enum\": [\n \"none\",\n \"subtle-slide\",\n \"accordion\",\n \"fade-scale\"\n ]\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"easing\": {\n \"enum\": [\n \"standard\",\n \"emphasized\",\n \"decelerate\"\n ]\n }\n }\n },\n \"keyboard\": {\n \"type\": \"object\",\n \"properties\": {\n \"profile\": {\n \"enum\": [\n \"disclosure\",\n \"grid\"\n ]\n }\n }\n }\n }\n },\n \"limits\": {\n \"type\": \"object\",\n \"properties\": {\n \"allowMultiple\": {\n \"type\": \"boolean\"\n },\n \"maxExpandedRows\": {\n \"type\": \"number\",\n \"minimum\": 1\n },\n \"onOverflow\": {\n \"enum\": [\n \"collapseOldest\",\n \"denyNew\",\n \"collapseAll\"\n ]\n }\n }\n },\n \"collapseOn\": {\n \"type\": \"object\",\n \"properties\": {\n \"sortChange\": {\n \"type\": \"boolean\"\n },\n \"pageChange\": {\n \"type\": \"boolean\"\n },\n \"filterChange\": {\n \"type\": \"boolean\"\n },\n \"dataRefresh\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"virtualization\": {\n \"type\": \"object\",\n \"properties\": {\n \"policy\": {\n \"enum\": [\n \"fixed-height-only\",\n \"allow-dynamic-under-flag\"\n ]\n }\n }\n },\n \"persistence\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"storageKeyStrategy\": {\n \"type\": \"object\",\n \"properties\": {\n \"namespace\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"security\": {\n \"type\": \"object\",\n \"properties\": {\n \"eventExposureDefault\": {\n \"type\": \"object\",\n \"properties\": {\n \"rowId\": {\n \"enum\": [\n \"redacted\",\n \"hashed\",\n \"raw\"\n ]\n },\n \"expandedKeys\": {\n \"enum\": [\n \"none\",\n \"hashed\",\n \"raw\"\n ]\n }\n }\n }\n }\n },\n \"deepLink\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"encoding\": {\n \"enum\": [\n \"csv\"\n ]\n },\n \"parsing\": {\n \"type\": \"object\",\n \"properties\": {\n \"duplicateParams\": {\n \"enum\": [\n \"firstWins\",\n \"reject\"\n ]\n }\n }\n },\n \"integrity\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"opaqueToken\"\n ]\n }\n }\n },\n \"privacy\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"denyByDefault\",\n \"allowByDefault\"\n ]\n }\n }\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.expansion\"\n }\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"affectedPaths\": [\n \"behavior.expansion\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"expansion.detailSource.configure\",\n \"title\": \"Configurar fonte remota do detalhe expansivel\",\n \"scope\": \"global\",\n \"targetKind\": \"expansion\",\n \"target\": {\n \"kind\": \"expansion\",\n \"resolver\": \"expansion-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"inline\",\n \"resource\",\n \"resourcePath\",\n \"hypermedia\"\n ]\n },\n \"inlineSchema\": {\n \"type\": \"object\"\n },\n \"resource\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"enum\": [\n \"ui-composition\",\n \"form-schema\",\n \"table-schema\",\n \"dashboard-schema\"\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n }\n },\n \"resourcePath\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"enum\": [\n \"GET\",\n \"POST\"\n ]\n },\n \"paramsMap\": {\n \"type\": \"object\"\n }\n }\n },\n \"resourceAllowList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"hypermedia\": {\n \"type\": \"object\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.expansion.detail.source\"\n }\n ],\n \"validators\": [\n \"remote-resource-binding-safe\",\n \"editor-round-trip-preserve\"\n ],\n \"affectedPaths\": [\n \"behavior.expansion.detail.source\",\n \"behavior.expansion.detail.source.mode\",\n \"behavior.expansion.detail.source.resourcePath\",\n \"behavior.expansion.detail.source.resourceAllowList\",\n \"behavior.expansion.detail.source.hypermedia\"\n ],\n \"submissionImpact\": \"affects-remote-binding\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"expansion.detailPresentation.configure\",\n \"title\": \"Configurar apresentacao do detalhe expansivel\",\n \"scope\": \"global\",\n \"targetKind\": \"expansion\",\n \"target\": {\n \"kind\": \"expansion\",\n \"resolver\": \"expansion-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"schemaContract\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n }\n },\n \"rendering\": {\n \"type\": \"object\",\n \"properties\": {\n \"strategy\": {\n \"enum\": [\n \"registry\"\n ]\n },\n \"registryId\": {\n \"type\": \"string\"\n },\n \"hostLayout\": {\n \"enum\": [\n \"auto\",\n \"stack\",\n \"tabs\"\n ]\n },\n \"fallbackNodePolicy\": {\n \"enum\": [\n \"failClosed\",\n \"renderPlaceholder\"\n ]\n }\n }\n },\n \"height\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"fixed\",\n \"dynamic\"\n ]\n },\n \"px\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.expansion.detail\"\n }\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"affectedPaths\": [\n \"behavior.expansion.detail\",\n \"behavior.expansion.detail.schemaContract\",\n \"behavior.expansion.detail.rendering\",\n \"behavior.expansion.detail.height\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"meta.configure\",\n \"title\": \"Configurar metadados\",\n \"scope\": \"global\",\n \"targetKind\": \"meta\",\n \"target\": {\n \"kind\": \"meta\",\n \"resolver\": \"table-meta-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"schemaId\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"meta\"\n }\n ],\n \"affectedPaths\": [\n \"meta\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"meta.idField.set\",\n \"title\": \"Definir campo de identidade\",\n \"scope\": \"global\",\n \"targetKind\": \"meta\",\n \"target\": {\n \"kind\": \"meta\",\n \"resolver\": \"table-meta-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"idField\"\n ],\n \"properties\": {\n \"idField\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"meta.idField\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"meta.idField\"\n ],\n \"validators\": [\n \"target-column-exists\",\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"column.resizable.set\",\n \"title\": \"Definir redimensionamento da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"resizable\"\n ],\n \"properties\": {\n \"resizable\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].resizable\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.sortField.set\",\n \"title\": \"Definir campo de ordenacao da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"sortField\"\n ],\n \"properties\": {\n \"sortField\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].sortField\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.computed.configure\",\n \"title\": \"Configurar coluna calculada\",\n \"scope\": \"column\",\n \"targetKind\": \"computedColumn\",\n \"target\": {\n \"kind\": \"computedColumn\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"expression\"\n ],\n \"properties\": {\n \"expression\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"outputType\": {},\n \"format\": {\n \"type\": \"string\"\n },\n \"dependencies\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"computed-expression-valid\",\n \"format-preset-supported\"\n ],\n \"affectedPaths\": [\n \"columns[].computed\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"behavior.pagination.configure\",\n \"title\": \"Configurar paginacao\",\n \"scope\": \"global\",\n \"targetKind\": \"pagination\",\n \"target\": {\n \"kind\": \"pagination\",\n \"resolver\": \"pagination-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"strategy\": {\n \"enum\": [\n \"client\",\n \"server\"\n ]\n },\n \"pageSize\": {\n \"type\": \"number\",\n \"minimum\": 1\n },\n \"pageSizeOptions\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"bottom\",\n \"both\"\n ]\n },\n \"style\": {\n \"enum\": [\n \"default\",\n \"simple\",\n \"advanced\",\n \"compact\"\n ]\n },\n \"advanced\": {\n \"type\": \"object\",\n \"properties\": {\n \"maxPageSize\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.pagination\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.pagination\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.sorting.configure\",\n \"title\": \"Configurar ordenacao\",\n \"scope\": \"global\",\n \"targetKind\": \"sorting\",\n \"target\": {\n \"kind\": \"sorting\",\n \"resolver\": \"sorting-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"strategy\": {\n \"enum\": [\n \"client\",\n \"server\"\n ]\n },\n \"defaultSort\": {\n \"type\": \"object\"\n },\n \"allowClearSort\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.sorting\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.sorting\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.filtering.configure\",\n \"title\": \"Configurar filtragem\",\n \"scope\": \"global\",\n \"targetKind\": \"filter\",\n \"target\": {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"strategy\": {\n \"enum\": [\n \"client\",\n \"server\"\n ]\n },\n \"columnFilters\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"defaultType\": {\n \"enum\": [\n \"text\",\n \"select\",\n \"date\",\n \"number\",\n \"boolean\"\n ]\n },\n \"position\": {\n \"enum\": [\n \"header\",\n \"subheader\",\n \"sidebar\"\n ]\n }\n }\n },\n \"advancedFilters\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"settings\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"filter\"\n ]\n },\n \"showAdvanced\": {\n \"type\": \"boolean\"\n },\n \"allowSaveTags\": {\n \"type\": \"boolean\"\n },\n \"alwaysVisibleFields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"selectedFieldIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alwaysVisibleFieldMetadataOverrides\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\"\n }\n },\n \"changeDebounceMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"useInlineSearchableSelectVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineRangeVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineDateVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineDateRangeVariant\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"debounceTime\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.filtering\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.filtering\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.selection.configure\",\n \"title\": \"Configurar selecao\",\n \"scope\": \"global\",\n \"targetKind\": \"selection\",\n \"target\": {\n \"kind\": \"selection\",\n \"resolver\": \"selection-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"enum\": [\n \"single\",\n \"multiple\"\n ]\n },\n \"mode\": {\n \"enum\": [\n \"checkbox\",\n \"row\",\n \"both\"\n ]\n },\n \"allowSelectAll\": {\n \"type\": \"boolean\"\n },\n \"persistSelection\": {\n \"type\": \"boolean\"\n },\n \"maxSelections\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.selection\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.selection\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.interaction.configure\",\n \"title\": \"Configurar interacao\",\n \"scope\": \"global\",\n \"targetKind\": \"interaction\",\n \"target\": {\n \"kind\": \"interaction\",\n \"resolver\": \"interaction-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"rowClick\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"action\": {\n \"type\": \"string\"\n }\n }\n },\n \"keyboard\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"hover\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"highlightRow\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.interaction\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.interaction\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.loading.configure\",\n \"title\": \"Configurar loading\",\n \"scope\": \"global\",\n \"targetKind\": \"loading\",\n \"target\": {\n \"kind\": \"loading\",\n \"resolver\": \"loading-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"type\": {\n \"enum\": [\n \"spinner\",\n \"skeleton\",\n \"progress\",\n \"custom\"\n ]\n },\n \"position\": {\n \"enum\": [\n \"overlay\",\n \"inline\",\n \"replace\"\n ]\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"delay\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.loading\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.loading\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.emptyState.configure\",\n \"title\": \"Configurar estado vazio\",\n \"scope\": \"global\",\n \"targetKind\": \"emptyState\",\n \"target\": {\n \"kind\": \"emptyState\",\n \"resolver\": \"empty-state-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"message\"\n ],\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.emptyState\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.emptyState\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.resizing.configure\",\n \"title\": \"Configurar redimensionamento\",\n \"scope\": \"global\",\n \"targetKind\": \"resizing\",\n \"target\": {\n \"kind\": \"resizing\",\n \"resolver\": \"resizing-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"minColumnWidth\": {\n \"type\": \"number\",\n \"minimum\": 1\n },\n \"maxColumnWidth\": {\n \"type\": \"number\",\n \"minimum\": 1\n },\n \"autoFit\": {\n \"type\": \"boolean\"\n },\n \"persistWidths\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.resizing\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.resizing\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.dragging.configure\",\n \"title\": \"Configurar drag and drop\",\n \"scope\": \"global\",\n \"targetKind\": \"dragging\",\n \"target\": {\n \"kind\": \"dragging\",\n \"resolver\": \"dragging-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"columns\"\n ],\n \"properties\": {\n \"columns\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.dragging\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.dragging\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.editing.configure\",\n \"title\": \"Configurar edicao\",\n \"scope\": \"global\",\n \"targetKind\": \"editing\",\n \"target\": {\n \"kind\": \"editing\",\n \"resolver\": \"editing-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"mode\"\n ],\n \"properties\": {\n \"mode\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.editing\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.editing\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"toolbar.configure\",\n \"title\": \"Configurar toolbar\",\n \"scope\": \"global\",\n \"targetKind\": \"toolbar\",\n \"target\": {\n \"kind\": \"toolbar\",\n \"resolver\": \"toolbar-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"visible\": {\n \"type\": \"boolean\"\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"bottom\",\n \"both\"\n ]\n },\n \"actionsPosition\": {\n \"enum\": [\n \"top\",\n \"bottom\",\n \"both\"\n ]\n },\n \"actionsBackgroundColor\": {\n \"type\": \"string\"\n },\n \"appearance\": {\n \"type\": \"object\",\n \"properties\": {\n \"preset\": {\n \"type\": \"string\"\n },\n \"variant\": {\n \"enum\": [\n \"flat\",\n \"outlined\",\n \"elevated\",\n \"integrated\"\n ]\n },\n \"density\": {\n \"enum\": [\n \"compact\",\n \"comfortable\",\n \"spacious\"\n ]\n },\n \"shape\": {\n \"enum\": [\n \"square\",\n \"rounded\",\n \"pill\"\n ]\n },\n \"divider\": {\n \"enum\": [\n \"none\",\n \"start\",\n \"between-groups\"\n ]\n },\n \"tokens\": {\n \"type\": \"object\",\n \"properties\": {\n \"titleFg\": {\n \"type\": \"string\"\n },\n \"subtitleFg\": {\n \"type\": \"string\"\n },\n \"iconFg\": {\n \"type\": \"string\"\n },\n \"titleFontSize\": {\n \"type\": \"string\"\n },\n \"subtitleFontSize\": {\n \"type\": \"string\"\n },\n \"titleFontWeight\": {\n \"type\": \"string\"\n },\n \"identityGap\": {\n \"type\": \"string\"\n },\n \"identityFilterGap\": {\n \"type\": \"string\"\n },\n \"identityMinHeight\": {\n \"type\": \"string\"\n },\n \"identityMarginBottom\": {\n \"type\": \"string\"\n },\n \"identityIconSize\": {\n \"type\": \"string\"\n },\n \"identityIconRadius\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"subtitle\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"textAlign\": {\n \"enum\": [\n \"start\",\n \"center\",\n \"end\"\n ]\n },\n \"layout\": {\n \"type\": \"object\",\n \"properties\": {\n \"alignment\": {\n \"enum\": [\n \"start\",\n \"center\",\n \"end\",\n \"space-between\"\n ]\n }\n }\n },\n \"filters\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"settingsMenu\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"columnsVisibility\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"toolbar\"\n }\n ],\n \"validators\": [\n \"css-style-safe\"\n ],\n \"affectedPaths\": [\n \"toolbar\",\n \"toolbar.title\",\n \"toolbar.subtitle\",\n \"toolbar.icon\",\n \"toolbar.textAlign\",\n \"toolbar.appearance\",\n \"toolbar.appearance.tokens\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"actions.row.configure\",\n \"title\": \"Configurar acoes de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"rowAction\",\n \"target\": {\n \"kind\": \"rowAction\",\n \"resolver\": \"action-in-row-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"display\": {\n \"enum\": [\n \"menu\",\n \"buttons\",\n \"icons\"\n ]\n },\n \"trigger\": {\n \"enum\": [\n \"hover\",\n \"always\",\n \"click\"\n ]\n },\n \"discovery\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"actions.row\"\n }\n ],\n \"affectedPaths\": [\n \"actions.row\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"actions.bulk.configure\",\n \"title\": \"Configurar acoes em lote\",\n \"scope\": \"global\",\n \"targetKind\": \"bulkAction\",\n \"target\": {\n \"kind\": \"bulkAction\",\n \"resolver\": \"action-in-bulk-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"position\": {\n \"enum\": [\n \"toolbar\",\n \"floating\",\n \"both\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"actions.bulk\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"actions.bulk\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"actions.context.configure\",\n \"title\": \"Configurar menu contextual\",\n \"scope\": \"global\",\n \"targetKind\": \"contextAction\",\n \"target\": {\n \"kind\": \"contextAction\",\n \"resolver\": \"action-in-context-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"trigger\": {\n \"enum\": [\n \"right-click\",\n \"long-press\",\n \"both\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"actions.context\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"actions.context\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"actions.confirmations.configure\",\n \"title\": \"Configurar confirmacoes\",\n \"scope\": \"global\",\n \"targetKind\": \"contextAction\",\n \"target\": {\n \"kind\": \"contextAction\",\n \"resolver\": \"action-in-context-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"default\"\n ],\n \"properties\": {\n \"default\": {\n \"type\": \"object\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"actions.confirmations\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"actions.confirmations.default\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"export.configure\",\n \"title\": \"Configurar exportacao\",\n \"scope\": \"global\",\n \"targetKind\": \"export\",\n \"target\": {\n \"kind\": \"export\",\n \"resolver\": \"export-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"formats\": {\n \"type\": \"array\",\n \"items\": {\n \"enum\": [\n \"excel\",\n \"pdf\",\n \"csv\",\n \"json\",\n \"print\"\n ]\n }\n },\n \"general\": {\n \"type\": \"object\",\n \"properties\": {\n \"includeHeaders\": {\n \"type\": \"boolean\"\n },\n \"scope\": {\n \"enum\": [\n \"auto\",\n \"selected\",\n \"filtered\",\n \"currentPage\",\n \"all\"\n ]\n },\n \"maxRows\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n }\n },\n \"excel\": {\n \"type\": \"object\",\n \"properties\": {\n \"autoFitColumns\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"pdf\": {\n \"type\": \"object\",\n \"properties\": {\n \"orientation\": {\n \"enum\": [\n \"portrait\",\n \"landscape\"\n ]\n },\n \"pageSize\": {\n \"enum\": [\n \"A4\",\n \"A3\",\n \"Letter\",\n \"Legal\"\n ]\n }\n }\n },\n \"csv\": {\n \"type\": \"object\",\n \"properties\": {\n \"delimiter\": {\n \"enum\": [\n \",\",\n \";\",\n \"|\",\n \"\\\\t\"\n ]\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"export\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"export\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"tableRuntimeOperations.plan\",\n \"title\": \"Planejar operacoes runtime da tabela\",\n \"scope\": \"global\",\n \"targetKind\": \"runtimeOperation\",\n \"target\": {\n \"kind\": \"runtimeOperation\",\n \"resolver\": \"table-runtime-operation-contract\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"operations\"\n ],\n \"properties\": {\n \"operations\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"operationId\",\n \"input\"\n ],\n \"properties\": {\n \"operationId\": {\n \"enum\": [\n \"table.filter.apply\",\n \"table.export.run\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"criteria\": {\n \"type\": \"object\"\n },\n \"format\": {},\n \"scope\": {}\n }\n },\n \"description\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"tableRuntimeOperations\"\n }\n ],\n \"affectedPaths\": [\n \"tableRuntimeOperations\"\n ],\n \"validators\": [\n \"runtime-operation-declared\"\n ],\n \"submissionImpact\": \"none\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"appearance.configure\",\n \"title\": \"Configurar aparencia\",\n \"scope\": \"global\",\n \"targetKind\": \"appearance\",\n \"target\": {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"density\": {\n \"enum\": [\n \"compact\",\n \"comfortable\",\n \"spacious\"\n ]\n },\n \"borders\": {\n \"type\": \"object\",\n \"properties\": {\n \"showRowBorders\": {\n \"type\": \"boolean\"\n },\n \"showColumnBorders\": {\n \"type\": \"boolean\"\n },\n \"showOuterBorder\": {\n \"type\": \"boolean\"\n },\n \"style\": {\n \"enum\": [\n \"solid\",\n \"dashed\",\n \"dotted\"\n ]\n }\n }\n },\n \"colors\": {\n \"type\": \"object\",\n \"properties\": {\n \"alternateRowBackground\": {\n \"type\": \"string\"\n },\n \"hoverBackground\": {\n \"type\": \"string\"\n }\n }\n },\n \"typography\": {\n \"type\": \"object\",\n \"properties\": {\n \"fontSize\": {\n \"type\": \"string\"\n },\n \"headerFontWeight\": {\n \"type\": \"string\"\n }\n }\n },\n \"spacing\": {\n \"type\": \"object\",\n \"properties\": {\n \"cellPadding\": {\n \"type\": \"string\"\n }\n }\n },\n \"responsive\": {\n \"type\": \"object\",\n \"properties\": {\n \"mobile\": {\n \"type\": \"object\",\n \"properties\": {\n \"horizontalScroll\": {\n \"type\": \"boolean\"\n },\n \"cardMode\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"breakpoints\": {\n \"type\": \"object\",\n \"properties\": {\n \"mobile\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n }\n }\n },\n \"animations\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"elevation\": {\n \"type\": \"object\",\n \"properties\": {\n \"level\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"appearance\"\n }\n ],\n \"validators\": [\n \"css-style-safe\"\n ],\n \"affectedPaths\": [\n \"appearance\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"messages.configure\",\n \"title\": \"Configurar mensagens\",\n \"scope\": \"global\",\n \"targetKind\": \"messages\",\n \"target\": {\n \"kind\": \"messages\",\n \"resolver\": \"messages-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"states\": {\n \"type\": \"object\",\n \"properties\": {\n \"empty\": {\n \"type\": \"string\"\n },\n \"loading\": {\n \"type\": \"string\"\n }\n }\n },\n \"actions\": {\n \"type\": \"object\",\n \"properties\": {\n \"confirmations\": {\n \"type\": \"object\",\n \"properties\": {\n \"delete\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"messages\"\n }\n ],\n \"affectedPaths\": [\n \"messages\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"localization.configure\",\n \"title\": \"Configurar localizacao\",\n \"scope\": \"global\",\n \"targetKind\": \"localization\",\n \"target\": {\n \"kind\": \"localization\",\n \"resolver\": \"localization-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"locale\": {\n \"type\": \"string\"\n },\n \"direction\": {\n \"enum\": [\n \"ltr\",\n \"rtl\"\n ]\n },\n \"dateTime\": {\n \"type\": \"object\",\n \"properties\": {\n \"dateFormat\": {\n \"type\": \"string\"\n },\n \"timeFormat\": {\n \"type\": \"string\"\n },\n \"dateTimeFormat\": {\n \"type\": \"string\"\n },\n \"firstDayOfWeek\": {\n \"enum\": [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ]\n },\n \"relativeTime\": {\n \"type\": \"boolean\"\n },\n \"monthNames\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dayNames\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"number\": {\n \"type\": \"object\",\n \"properties\": {\n \"decimalSeparator\": {\n \"type\": \"string\"\n },\n \"thousandsSeparator\": {\n \"type\": \"string\"\n },\n \"defaultPrecision\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"negativeSign\": {\n \"type\": \"string\"\n },\n \"negativeSignPosition\": {\n \"enum\": [\n \"before\",\n \"after\"\n ]\n }\n }\n },\n \"currency\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\"\n },\n \"symbol\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"enum\": [\n \"before\",\n \"after\"\n ]\n },\n \"spacing\": {\n \"type\": \"boolean\"\n },\n \"precision\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"formatting\": {\n \"type\": \"object\",\n \"properties\": {\n \"percentageFormat\": {\n \"type\": \"string\"\n },\n \"fileSizeFormat\": {\n \"enum\": [\n \"binary\",\n \"decimal\"\n ]\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"localization\"\n }\n ],\n \"affectedPaths\": [\n \"localization\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"performance.configure\",\n \"title\": \"Configurar performance\",\n \"scope\": \"global\",\n \"targetKind\": \"performance\",\n \"target\": {\n \"kind\": \"performance\",\n \"resolver\": \"performance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"virtualization\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"itemHeight\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n }\n },\n \"debounce\": {\n \"type\": \"object\",\n \"properties\": {\n \"search\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"filter\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"lazyLoading\": {\n \"type\": \"object\",\n \"properties\": {\n \"images\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"performance\"\n }\n ],\n \"affectedPaths\": [\n \"performance\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"data.loadingStrategy.set\",\n \"title\": \"Definir estrategia de carregamento\",\n \"scope\": \"global\",\n \"targetKind\": \"data\",\n \"target\": {\n \"kind\": \"data\",\n \"resolver\": \"data-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"loadingStrategy\"\n ],\n \"properties\": {\n \"loadingStrategy\": {\n \"enum\": [\n \"eager\",\n \"lazy\",\n \"on-demand\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"data.loadingStrategy\"\n }\n ],\n \"affectedPaths\": [\n \"data.loadingStrategy\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"accessibility.configure\",\n \"title\": \"Configurar acessibilidade\",\n \"scope\": \"global\",\n \"targetKind\": \"accessibility\",\n \"target\": {\n \"kind\": \"accessibility\",\n \"resolver\": \"accessibility-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"highContrast\": {\n \"type\": \"boolean\"\n },\n \"reduceMotion\": {\n \"type\": \"boolean\"\n },\n \"announcements\": {\n \"type\": \"object\",\n \"properties\": {\n \"liveRegion\": {\n \"enum\": [\n \"polite\",\n \"assertive\"\n ]\n }\n }\n },\n \"keyboard\": {\n \"type\": \"object\",\n \"properties\": {\n \"shortcuts\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"accessibility\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"accessibility\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n }\n ],\n \"validators\": [\n {\n \"validatorId\": \"target-column-exists\",\n \"level\": \"error\",\n \"code\": \"TB001\",\n \"description\": \"A coluna alvo deve existir na configuração.\"\n },\n {\n \"validatorId\": \"column-field-unique\",\n \"level\": \"error\",\n \"code\": \"TB002\",\n \"description\": \"O identificador técnico da coluna (field) deve ser único.\"\n },\n {\n \"validatorId\": \"renderer-type-supported\",\n \"level\": \"error\",\n \"code\": \"TB003\",\n \"description\": \"O tipo de renderizador deve ser suportado pelo componente.\"\n },\n {\n \"validatorId\": \"renderer-config-match\",\n \"level\": \"error\",\n \"code\": \"TB004\",\n \"description\": \"A configuração do renderizador deve corresponder ao tipo selecionado.\"\n },\n {\n \"validatorId\": \"grouping-fields-exist\",\n \"level\": \"error\",\n \"code\": \"TB005\",\n \"description\": \"Os campos de agrupamento devem existir na definição de colunas.\"\n },\n {\n \"validatorId\": \"filter-fields-exist\",\n \"level\": \"error\",\n \"code\": \"TB018\",\n \"description\": \"Os campos de filtro avançado devem existir no schema request do filtro governado.\"\n },\n {\n \"validatorId\": \"destructive-removal-confirmation\",\n \"level\": \"error\",\n \"code\": \"TB006\",\n \"description\": \"Remoções destrutivas de colunas ou ações exigem confirmação explícita.\"\n },\n {\n \"validatorId\": \"computed-expression-valid\",\n \"level\": \"error\",\n \"code\": \"TB007\",\n \"description\": \"A expressão de cálculo deve ser um AST Json Logic válido.\"\n },\n {\n \"validatorId\": \"remote-resource-binding-safe\",\n \"level\": \"error\",\n \"code\": \"TB008\",\n \"description\": \"A ligação com recurso remoto não deve conter URLs absolutas não permitidas.\"\n },\n {\n \"validatorId\": \"editor-round-trip-preserve\",\n \"level\": \"error\",\n \"code\": \"TB009\",\n \"description\": \"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"\n },\n {\n \"validatorId\": \"toolbar-action-id-unique\",\n \"level\": \"error\",\n \"code\": \"TB010\",\n \"description\": \"O id da ação de toolbar deve ser único em toolbar.actions[]. O efeito append-unique usa este id como chave de deduplicação.\"\n },\n {\n \"validatorId\": \"row-action-id-unique\",\n \"level\": \"error\",\n \"code\": \"TB011\",\n \"description\": \"O id da row action deve ser único em actions.row.actions[]. O efeito append-unique usa este id como chave de deduplicação.\"\n },\n {\n \"validatorId\": \"bulk-action-id-unique\",\n \"level\": \"error\",\n \"code\": \"TB017\",\n \"description\": \"O id da ação em lote deve ser único em actions.bulk.actions[]. O efeito append-unique usa este id como chave de deduplicação.\"\n },\n {\n \"validatorId\": \"format-preset-supported\",\n \"level\": \"error\",\n \"code\": \"TB012\",\n \"description\": \"O formato deve usar um preset canonico publicado em table-ai-capabilities.ts.\"\n },\n {\n \"validatorId\": \"column-width-valid\",\n \"level\": \"error\",\n \"code\": \"TB013\",\n \"description\": \"A largura deve ser auto ou uma medida simples em px, %, rem ou em.\"\n },\n {\n \"validatorId\": \"css-style-safe\",\n \"level\": \"error\",\n \"code\": \"TB014\",\n \"description\": \"Estilos inline devem permanecer em CSS simples e seguro, sem scripts, URLs perigosas ou expressoes dinamicas.\"\n },\n {\n \"validatorId\": \"value-mapping-valid\",\n \"level\": \"error\",\n \"code\": \"TB015\",\n \"description\": \"O mapeamento de valores deve ser um objeto simples com chaves estaveis e labels serializaveis.\"\n },\n {\n \"validatorId\": \"conditional-style-valid\",\n \"level\": \"error\",\n \"code\": \"TB016\",\n \"description\": \"Regras condicionais de coluna devem ter id estavel, condition Json Logic e ao menos cssClass ou style.\"\n },\n {\n \"validatorId\": \"runtime-operation-declared\",\n \"level\": \"error\",\n \"code\": \"TB019\",\n \"description\": \"Operacoes runtime devem usar operationId e input declarados em tableRuntimeOperations sem alterar a configuracao persistida.\"\n }\n ],\n \"roundTripRequirements\": [\n \"preserve-column-order\",\n \"normalize-enum-values\",\n \"maintain-renderer-precedence\",\n \"preserve-meta-ids\"\n ],\n \"presentationAffordances\": {\n \"version\": \"0.1.0\",\n \"componentId\": \"praxis-table\",\n \"defaultTargetKind\": \"column\",\n \"sourceRef\": \"praxis-ui-angular:projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts#presentationAffordances\",\n \"affordances\": [\n {\n \"id\": \"table.column.text-formatting\",\n \"targetKind\": \"column\",\n \"category\": \"format\",\n \"description\": \"Text transforms and masks for textual table columns.\",\n \"options\": [\n \"none\",\n \"uppercase\",\n \"lowercase\",\n \"titlecase\",\n \"capitalize\",\n \"uppercase|truncate|50|...\",\n \"000.000.000-00\"\n ],\n \"appliesToTypes\": [\n \"string\",\n \"text\",\n \"unknown\"\n ],\n \"unknownCompatible\": true\n },\n {\n \"id\": \"table.column.numeric-formatting\",\n \"targetKind\": \"column\",\n \"category\": \"format\",\n \"description\": \"Decimal, currency and percentage formats for numeric table columns.\",\n \"options\": [\n \"1.0-0\",\n \"1.1-1\",\n \"1.2-2\",\n \"1.0-3\",\n \"1.0-0|nosep\",\n \"BRL|symbol|2\",\n \"USD|symbol|2\",\n \"EUR|symbol|2\",\n \"BRL|code|2\",\n \"USD|code|0\",\n \"BRL|symbol|2|nosep\",\n \"EUR|symbol|2|nosep\",\n \"1.0-0|x100\",\n \"1.1-1|x100\",\n \"1.2-2|x100\"\n ],\n \"appliesToTypes\": [\n \"number\",\n \"currency\",\n \"percentage\"\n ],\n \"unknownCompatible\": false\n },\n {\n \"id\": \"table.column.date-formatting\",\n \"targetKind\": \"column\",\n \"category\": \"format\",\n \"description\": \"Date and time formats for date-like table columns.\",\n \"options\": [\n \"shortDate\",\n \"mediumDate\",\n \"longDate\",\n \"fullDate\",\n \"MMM/yyyy\",\n \"shortTime\",\n \"short\",\n \"yyyy-MM-dd\",\n \"dd/MM/yyyy\",\n \"yyyy-MM-dd HH:mm\"\n ],\n \"appliesToTypes\": [\n \"date\",\n \"datetime\",\n \"time\"\n ],\n \"unknownCompatible\": false\n },\n {\n \"id\": \"table.column.boolean-formatting\",\n \"targetKind\": \"column\",\n \"category\": \"format\",\n \"description\": \"Boolean label formats for true/false table columns.\",\n \"options\": [\n \"true-false\",\n \"yes-no\",\n \"active-inactive\",\n \"on-off\",\n \"enabled-disabled\",\n \"custom|Sim|Nao\"\n ],\n \"appliesToTypes\": [\n \"boolean\"\n ],\n \"unknownCompatible\": false\n },\n {\n \"id\": \"table.column.semantic-renderers\",\n \"targetKind\": \"column\",\n \"category\": \"renderer\",\n \"description\": \"Visual renderers for categorical, status or action-oriented table columns.\",\n \"options\": [\n \"badge\",\n \"chip\",\n \"icon\",\n \"link\",\n \"button\",\n \"progress\",\n \"avatar\",\n \"toggle\",\n \"menu\",\n \"rating\",\n \"compose\"\n ],\n \"appliesToTypes\": [\n \"string\",\n \"text\",\n \"boolean\",\n \"number\",\n \"currency\",\n \"percentage\",\n \"date\",\n \"datetime\",\n \"unknown\"\n ],\n \"unknownCompatible\": true\n },\n {\n \"id\": \"table.column.alignment-layout\",\n \"targetKind\": \"column\",\n \"category\": \"layout\",\n \"description\": \"Column alignment and composed cell layout options.\",\n \"options\": [\n \"align:start\",\n \"align:center\",\n \"align:end\",\n \"compose:row\",\n \"compose:column\",\n \"secondary-line\",\n \"prefix\",\n \"suffix\"\n ],\n \"appliesToTypes\": [\n \"string\",\n \"text\",\n \"boolean\",\n \"number\",\n \"currency\",\n \"percentage\",\n \"date\",\n \"datetime\",\n \"unknown\"\n ],\n \"unknownCompatible\": true\n }\n ]\n },\n \"examples\": [\n {\n \"id\": \"add-schema-column\",\n \"request\": \"Adicionar coluna para o campo email com o título Contato\",\n \"operationId\": \"column.add\",\n \"params\": {\n \"field\": \"email\",\n \"header\": \"Contato\",\n \"type\": \"string\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-computed-column\",\n \"request\": \"Criar coluna de idade baseada na data de nascimento\",\n \"operationId\": \"column.computed.add\",\n \"params\": {\n \"field\": \"idade\",\n \"header\": \"Idade\",\n \"expression\": {\n \"yearsSince\": [\n {\n \"var\": \"dataNascimento\"\n }\n ]\n },\n \"outputType\": \"number\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-conditional-badge\",\n \"request\": \"Mostrar badge vermelho na coluna status se o valor for \\\"atrasado\\\"\",\n \"operationId\": \"column.conditionalRenderer.add\",\n \"target\": \"status\",\n \"params\": {\n \"id\": \"badge-atrasado\",\n \"condition\": {\n \"==\": [\n {\n \"var\": \"status\"\n },\n \"atrasado\"\n ]\n },\n \"renderer\": {\n \"type\": \"badge\",\n \"badge\": {\n \"color\": \"warn\",\n \"variant\": \"filled\"\n }\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"enable-export\",\n \"request\": \"Habilitar exportação para Excel e PDF\",\n \"operationId\": \"export.enabled.set\",\n \"params\": {\n \"enabled\": true,\n \"formats\": [\n \"excel\",\n \"pdf\"\n ]\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-row-action\",\n \"request\": \"Adicionar botão de excluir na linha\",\n \"operationId\": \"rowAction.add\",\n \"params\": {\n \"id\": \"delete\",\n \"label\": \"Excluir\",\n \"action\": \"delete\",\n \"icon\": \"delete\",\n \"color\": \"warn\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-row-action-open-route\",\n \"request\": \"Adicionar botão de linha para abrir detalhe com navegação interna\",\n \"operationId\": \"rowAction.add\",\n \"params\": {\n \"id\": \"details\",\n \"label\": \"Detalhes\",\n \"action\": \"navigation.openRoute\",\n \"icon\": \"open_in_new\",\n \"globalAction\": {\n \"actionId\": \"navigation.openRoute\",\n \"payload\": {\n \"path\": \"/clientes/detalhe\",\n \"query\": {\n \"id\": \"${row.id}\"\n }\n }\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"group-by-field\",\n \"request\": \"Agrupar a tabela por departamento\",\n \"operationId\": \"grouping.set\",\n \"params\": {\n \"enabled\": true,\n \"fields\": [\n \"departamento\"\n ]\n },\n \"isPositive\": true\n },\n {\n \"id\": \"reject-invalid-renderer\",\n \"request\": \"Configurar imagem para um renderizador do tipo ícone\",\n \"operationId\": \"column.renderer.set\",\n \"target\": \"avatar\",\n \"params\": {\n \"type\": \"icon\",\n \"image\": {\n \"src\": \"...\"\n }\n },\n \"isPositive\": false\n },\n {\n \"id\": \"set-button-renderer\",\n \"request\": \"Transformar a coluna acoes em botao que executa abrir-detalhe\",\n \"operationId\": \"column.renderer.set\",\n \"target\": \"acoes\",\n \"params\": {\n \"type\": \"button\",\n \"button\": {\n \"label\": \"Abrir\",\n \"action\": {\n \"id\": \"abrir-detalhe\"\n }\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-column-conditional-style\",\n \"request\": \"Destacar a coluna status quando o valor estiver bloqueado\",\n \"operationId\": \"column.conditionalStyle.add\",\n \"target\": \"status\",\n \"params\": {\n \"id\": \"status-bloqueado\",\n \"condition\": {\n \"==\": [\n {\n \"var\": \"status\"\n },\n \"bloqueado\"\n ]\n },\n \"cssClass\": \"status-bloqueado\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-currency-format-preset\",\n \"request\": \"Formatar a coluna total como moeda brasileira\",\n \"operationId\": \"column.format.set\",\n \"target\": \"total\",\n \"params\": {\n \"format\": \"BRL|symbol|2\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-cpf-format-preset\",\n \"request\": \"Formate a coluna CPF\",\n \"operationId\": \"column.format.set\",\n \"target\": \"cpf\",\n \"params\": {\n \"format\": \"000.000.000-00\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-long-date-format-preset\",\n \"request\": \"Mostre a data de admissão por extenso\",\n \"operationId\": \"column.format.set\",\n \"target\": \"dataAdmissao\",\n \"params\": {\n \"format\": \"longDate\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-basic-column-width\",\n \"request\": \"Definir a largura da coluna nome para 240px\",\n \"operationId\": \"column.width.set\",\n \"target\": \"nome\",\n \"params\": {\n \"width\": \"240px\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-salary-align-right\",\n \"request\": \"Alinhe o salário à direita\",\n \"operationId\": \"column.align.set\",\n \"target\": \"salario\",\n \"params\": {\n \"align\": \"right\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"make-name-sticky-start\",\n \"request\": \"Fixe a coluna funcionário no início da tabela\",\n \"operationId\": \"column.sticky.set\",\n \"target\": \"funcionario\",\n \"params\": {\n \"sticky\": \"start\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"disable-cpf-sorting\",\n \"request\": \"Não permita ordenar pela coluna CPF\",\n \"operationId\": \"column.sortable.set\",\n \"target\": \"cpf\",\n \"params\": {\n \"sortable\": false\n },\n \"isPositive\": true\n },\n {\n \"id\": \"enable-department-filter\",\n \"request\": \"Deixe o departamento disponível nos filtros\",\n \"operationId\": \"column.filterable.set\",\n \"target\": \"departamento\",\n \"params\": {\n \"filterable\": true\n },\n \"isPositive\": true\n },\n {\n \"id\": \"hide-internal-id-column\",\n \"request\": \"Oculte o ID interno da tabela\",\n \"operationId\": \"column.visibility.set\",\n \"target\": \"id\",\n \"params\": {\n \"visible\": false\n },\n \"isPositive\": true\n },\n {\n \"id\": \"map-active-status-labels\",\n \"request\": \"Mostre Sim e Não na coluna ativo\",\n \"operationId\": \"column.valueMapping.set\",\n \"target\": \"ativo\",\n \"params\": {\n \"valueMapping\": {\n \"true\": \"Sim\",\n \"false\": \"Não\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-avatar-chip-renderer\",\n \"request\": \"Corrija o avatar do funcionário e mantenha o nome como chip\",\n \"operationId\": \"column.renderer.set\",\n \"target\": \"funcionario\",\n \"params\": {\n \"type\": \"compose\",\n \"compose\": {\n \"items\": [\n {\n \"type\": \"avatar\",\n \"avatar\": {\n \"srcField\": \"avatarUrl\",\n \"initialsField\": \"funcionario\",\n \"shape\": \"circle\",\n \"backgroundColor\": \"#E3F2FD\",\n \"textColor\": \"#0D47A1\"\n }\n },\n {\n \"type\": \"chip\",\n \"chip\": {\n \"textField\": \"funcionario\",\n \"variant\": \"soft\"\n }\n }\n ]\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"animate-high-salary-row\",\n \"request\": \"Anime suavemente as linhas com salário acima de 30000\",\n \"operationId\": \"row.conditionalRenderer.add\",\n \"params\": {\n \"id\": \"salario-alto-pulse\",\n \"condition\": {\n \">\": [\n {\n \"var\": \"salario\"\n },\n 30000\n ]\n },\n \"animation\": {\n \"preset\": \"pulse-soft\",\n \"trigger\": \"onAppear\",\n \"intensity\": \"subtle\",\n \"repeat\": \"once\",\n \"durationMs\": 1200\n },\n \"description\": \"Destaca linhas de salário alto sem alterar os dados.\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"style-low-salary-cell\",\n \"request\": \"Para salários menores que 30000, use fundo laranja claro\",\n \"operationId\": \"column.conditionalStyle.add\",\n \"target\": \"salario\",\n \"params\": {\n \"id\": \"salario-baixo-laranja\",\n \"condition\": {\n \"<\": [\n {\n \"var\": \"salario\"\n },\n 30000\n ]\n },\n \"style\": {\n \"backgroundColor\": \"#FFF3E0\",\n \"color\": \"#8A4B00\"\n },\n \"tooltip\": {\n \"text\": \"Salário abaixo do recorte configurado\",\n \"position\": \"top\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"enable-advanced-filters-human\",\n \"request\": \"Ative filtros avançados e deixe CPF e departamento sempre visíveis\",\n \"operationId\": \"filter.advanced.configure\",\n \"params\": {\n \"enabled\": true,\n \"queryBuilder\": true,\n \"savePresets\": true,\n \"settings\": {\n \"mode\": \"filter\",\n \"showAdvanced\": true,\n \"alwaysVisibleFields\": [\n \"cpf\",\n \"departamento\"\n ]\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-salary-to-advanced-filters-human\",\n \"request\": \"Inclua também Salário nesses filtros\",\n \"operationId\": \"filter.advanced.fields.add\",\n \"params\": {\n \"fields\": [\n \"salario\"\n ],\n \"selected\": true,\n \"alwaysVisible\": true\n },\n \"isPositive\": true\n },\n {\n \"id\": \"remove-active-from-advanced-filters-human\",\n \"request\": \"Agora remova Ativo desses filtros\",\n \"operationId\": \"filter.advanced.fields.remove\",\n \"params\": {\n \"fields\": [\n \"ativo\"\n ],\n \"selected\": true,\n \"alwaysVisible\": true\n },\n \"isPositive\": true\n },\n {\n \"id\": \"enable-table-filters-human\",\n \"request\": \"Habilite os filtros dinâmicos da tabela\",\n \"operationId\": \"behavior.filtering.configure\",\n \"params\": {\n \"enabled\": true,\n \"strategy\": \"client\",\n \"debounceMs\": 250\n },\n \"isPositive\": true\n },\n {\n \"id\": \"compact-density-human\",\n \"request\": \"Deixe a tabela mais compacta\",\n \"operationId\": \"appearance.density.set\",\n \"params\": {\n \"density\": \"compact\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"toolbar-search-refresh-human\",\n \"request\": \"Mostre busca e botão de atualizar na toolbar\",\n \"operationId\": \"toolbar.configure\",\n \"params\": {\n \"visible\": true,\n \"showSearch\": true,\n \"showRefresh\": true\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-server-pagination\",\n \"request\": \"Usar paginacao no servidor com 50 linhas por pagina\",\n \"operationId\": \"behavior.pagination.configure\",\n \"params\": {\n \"enabled\": true,\n \"strategy\": \"server\",\n \"pageSize\": 50,\n \"position\": \"bottom\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-default-sorting\",\n \"request\": \"Ordenar inicialmente por data de criacao decrescente\",\n \"operationId\": \"behavior.sorting.configure\",\n \"params\": {\n \"enabled\": true,\n \"strategy\": \"server\",\n \"defaultSort\": {\n \"field\": \"createdAt\",\n \"direction\": \"desc\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-bulk-actions\",\n \"request\": \"Habilitar acoes em lote na toolbar\",\n \"operationId\": \"actions.bulk.configure\",\n \"params\": {\n \"enabled\": true,\n \"position\": \"toolbar\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-localization\",\n \"request\": \"Configurar a tabela para portugues do Brasil\",\n \"operationId\": \"localization.configure\",\n \"params\": {\n \"locale\": \"pt-BR\",\n \"direction\": \"ltr\",\n \"dateTime\": {\n \"dateFormat\": \"dd/MM/yyyy\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-accessibility\",\n \"request\": \"Ativar alto contraste e reduzir animacoes\",\n \"operationId\": \"accessibility.configure\",\n \"params\": {\n \"enabled\": true,\n \"highContrast\": true,\n \"reduceMotion\": true,\n \"announcements\": {\n \"liveRegion\": \"polite\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"require-removal-confirmation\",\n \"request\": \"Remover a coluna nome\",\n \"operationId\": \"column.remove\",\n \"target\": \"nome\",\n \"isPositive\": true\n }\n ]\n}",
|
|
22079
|
+
"content": "{\n \"schemaVersion\": \"1.0.0\",\n \"componentId\": \"praxis-table\",\n \"ownerPackage\": \"@praxisui/table\",\n \"configSchemaId\": \"TableConfig\",\n \"manifestVersion\": \"2.0.0\",\n \"runtimeInputs\": [\n {\n \"name\": \"config\",\n \"type\": \"TableConfig\",\n \"description\": \"Configuração completa da tabela\"\n },\n {\n \"name\": \"data\",\n \"type\": \"any[]\",\n \"description\": \"Dados a serem exibidos (modo client-side)\"\n },\n {\n \"name\": \"resourcePath\",\n \"type\": \"string\",\n \"description\": \"Caminho do recurso (API base)\"\n },\n {\n \"name\": \"queryContext\",\n \"type\": \"PraxisDataQueryContext\",\n \"description\": \"Contexto de consulta declarativo\"\n },\n {\n \"name\": \"title\",\n \"type\": \"string\",\n \"description\": \"Título da tabela\"\n },\n {\n \"name\": \"subtitle\",\n \"type\": \"string\",\n \"description\": \"Subtítulo da tabela\"\n },\n {\n \"name\": \"enableCustomization\",\n \"type\": \"boolean\",\n \"description\": \"Habilita modo de edição\"\n }\n ],\n \"editableTargets\": [\n {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"description\": \"Colunas base da tabela\"\n },\n {\n \"kind\": \"computedColumn\",\n \"resolver\": \"column-by-field\",\n \"description\": \"Colunas calculadas\"\n },\n {\n \"kind\": \"renderer\",\n \"resolver\": \"renderer-in-column\",\n \"description\": \"Renderizador de célula\"\n },\n {\n \"kind\": \"conditionalRenderer\",\n \"resolver\": \"conditional-renderer-in-column\",\n \"description\": \"Renderizadores condicionais\"\n },\n {\n \"kind\": \"rowAction\",\n \"resolver\": \"action-in-row-config\",\n \"description\": \"Ações por linha\"\n },\n {\n \"kind\": \"toolbarAction\",\n \"resolver\": \"action-in-toolbar-config\",\n \"description\": \"Ações na barra de ferramentas\"\n },\n {\n \"kind\": \"toolbar\",\n \"resolver\": \"toolbar-config\",\n \"description\": \"Configuração da barra de ferramentas\"\n },\n {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"description\": \"Configuração de filtragem\"\n },\n {\n \"kind\": \"grouping\",\n \"resolver\": \"grouping-config\",\n \"description\": \"Configuração de agrupamento\"\n },\n {\n \"kind\": \"selection\",\n \"resolver\": \"selection-config\",\n \"description\": \"Configuração de seleção\"\n },\n {\n \"kind\": \"export\",\n \"resolver\": \"export-config\",\n \"description\": \"Configuração de exportação\"\n },\n {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"description\": \"Configurações visuais\"\n },\n {\n \"kind\": \"expansion\",\n \"resolver\": \"expansion-config\",\n \"description\": \"Configuração de detalhe/expansão\"\n },\n {\n \"kind\": \"rule\",\n \"resolver\": \"style-rule-in-column-or-row\",\n \"description\": \"Regras de estilo ou comportamento\"\n },\n {\n \"kind\": \"meta\",\n \"resolver\": \"table-meta-config\",\n \"description\": \"Metadados da configuracao\"\n },\n {\n \"kind\": \"bulkAction\",\n \"resolver\": \"action-in-bulk-config\",\n \"description\": \"Acoes em lote\"\n },\n {\n \"kind\": \"contextAction\",\n \"resolver\": \"action-in-context-config\",\n \"description\": \"Acoes de menu contextual\"\n },\n {\n \"kind\": \"pagination\",\n \"resolver\": \"pagination-config\",\n \"description\": \"Configuracao de paginacao\"\n },\n {\n \"kind\": \"sorting\",\n \"resolver\": \"sorting-config\",\n \"description\": \"Configuracao de ordenacao\"\n },\n {\n \"kind\": \"interaction\",\n \"resolver\": \"interaction-config\",\n \"description\": \"Configuracao de interacao\"\n },\n {\n \"kind\": \"loading\",\n \"resolver\": \"loading-config\",\n \"description\": \"Estados de carregamento\"\n },\n {\n \"kind\": \"emptyState\",\n \"resolver\": \"empty-state-config\",\n \"description\": \"Estado vazio\"\n },\n {\n \"kind\": \"aiAssistant\",\n \"resolver\": \"ai-assistant-config\",\n \"description\": \"Config path ai.assistant.enabled controlling the embedded table AI assistant entrypoint and session.\"\n },\n {\n \"kind\": \"resizing\",\n \"resolver\": \"resizing-config\",\n \"description\": \"Redimensionamento de colunas\"\n },\n {\n \"kind\": \"dragging\",\n \"resolver\": \"dragging-config\",\n \"description\": \"Reorganizacao por drag and drop\"\n },\n {\n \"kind\": \"editing\",\n \"resolver\": \"editing-config\",\n \"description\": \"Modo de edicao\"\n },\n {\n \"kind\": \"messages\",\n \"resolver\": \"messages-config\",\n \"description\": \"Mensagens da tabela\"\n },\n {\n \"kind\": \"localization\",\n \"resolver\": \"localization-config\",\n \"description\": \"Localizacao e formatos regionais\"\n },\n {\n \"kind\": \"performance\",\n \"resolver\": \"performance-config\",\n \"description\": \"Configuracoes de performance\"\n },\n {\n \"kind\": \"data\",\n \"resolver\": \"data-config\",\n \"description\": \"Configuracoes de dados\"\n },\n {\n \"kind\": \"runtimeOperation\",\n \"resolver\": \"table-runtime-operation-contract\",\n \"description\": \"Operacoes runtime revisaveis sem mutar a configuracao persistida\"\n },\n {\n \"kind\": \"accessibility\",\n \"resolver\": \"accessibility-config\",\n \"description\": \"Acessibilidade\"\n }\n ],\n \"operations\": [\n {\n \"operationId\": \"column.add\",\n \"title\": \"Adicionar coluna\",\n \"scope\": \"global\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"field\",\n \"header\"\n ],\n \"properties\": {\n \"field\": {\n \"type\": \"string\"\n },\n \"header\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"enum\": [\n \"string\",\n \"number\",\n \"date\",\n \"boolean\",\n \"currency\",\n \"percentage\",\n \"custom\"\n ],\n \"default\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"column-field-unique\"\n ],\n \"affectedPaths\": [\n \"columns[]\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"column.remove\",\n \"title\": \"Remover coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {}\n },\n \"effects\": [\n {\n \"kind\": \"remove-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"destructive\": true,\n \"requiresConfirmation\": true,\n \"validators\": [\n \"destructive-removal-confirmation\"\n ],\n \"affectedPaths\": [\n \"columns[]\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.header.set\",\n \"title\": \"Definir cabeçalho\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"header\"\n ],\n \"properties\": {\n \"header\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].header\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.type.set\",\n \"title\": \"Definir tipo de dado\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {}\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].type\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.format.set\",\n \"title\": \"Definir formato\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"format\"\n ],\n \"properties\": {\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\n \"shortDate\",\n \"mediumDate\",\n \"longDate\",\n \"fullDate\",\n \"MMM/yyyy\",\n \"shortTime\",\n \"short\",\n \"yyyy-MM-dd\",\n \"dd/MM/yyyy\",\n \"yyyy-MM-dd HH:mm\",\n \"1.0-0\",\n \"1.1-1\",\n \"1.2-2\",\n \"1.0-3\",\n \"1.0-0|nosep\",\n \"BRL|symbol|2\",\n \"USD|symbol|2\",\n \"EUR|symbol|2\",\n \"BRL|code|2\",\n \"USD|code|0\",\n \"BRL|symbol|2|nosep\",\n \"EUR|symbol|2|nosep\",\n \"1.0-0|x100\",\n \"1.1-1|x100\",\n \"1.2-2|x100\",\n \"none\",\n \"uppercase\",\n \"lowercase\",\n \"titlecase\",\n \"capitalize\",\n \"uppercase|truncate|50|...\",\n \"000.000.000-00\",\n \"true-false\",\n \"yes-no\",\n \"active-inactive\",\n \"on-off\",\n \"enabled-disabled\",\n \"custom|Sim|Nao\"\n ],\n \"description\": \"Preset canônico do DataFormattingService.\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"format-preset-supported\"\n ],\n \"affectedPaths\": [\n \"columns[].format\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.width.set\",\n \"title\": \"Definir largura da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"width\"\n ],\n \"properties\": {\n \"width\": {\n \"type\": \"string\",\n \"pattern\": \"^(auto|\\\\d+(px|%|rem|em))$\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"column-width-valid\"\n ],\n \"affectedPaths\": [\n \"columns[].width\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.align.set\",\n \"title\": \"Definir alinhamento da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"align\"\n ],\n \"properties\": {\n \"align\": {\n \"enum\": [\n \"left\",\n \"center\",\n \"right\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].align\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.sticky.set\",\n \"title\": \"Definir sticky da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"sticky\"\n ],\n \"properties\": {\n \"sticky\": {\n \"enum\": [\n \"start\",\n \"end\",\n true,\n false\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].sticky\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.sortable.set\",\n \"title\": \"Definir ordenação da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"sortable\"\n ],\n \"properties\": {\n \"sortable\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].sortable\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.filterable.set\",\n \"title\": \"Definir filtro da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"filterable\"\n ],\n \"properties\": {\n \"filterable\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].filterable\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.style.set\",\n \"title\": \"Definir estilo da célula\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"style\"\n ],\n \"properties\": {\n \"style\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"css-style-safe\"\n ],\n \"affectedPaths\": [\n \"columns[].style\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.headerStyle.set\",\n \"title\": \"Definir estilo do cabeçalho\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"headerStyle\"\n ],\n \"properties\": {\n \"headerStyle\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"css-style-safe\"\n ],\n \"affectedPaths\": [\n \"columns[].headerStyle\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.valueMapping.set\",\n \"title\": \"Definir mapeamento de valores\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"valueMapping\"\n ],\n \"properties\": {\n \"valueMapping\": {\n \"type\": \"object\",\n \"minProperties\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"value-mapping-valid\"\n ],\n \"affectedPaths\": [\n \"columns[].valueMapping\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.order.set\",\n \"title\": \"Definir ordem visual\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"order\"\n ],\n \"properties\": {\n \"order\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].order\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.visibility.set\",\n \"title\": \"Definir visibilidade\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"visible\"\n ],\n \"properties\": {\n \"visible\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].visible\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.computed.add\",\n \"title\": \"Adicionar coluna calculada\",\n \"scope\": \"global\",\n \"targetKind\": \"computedColumn\",\n \"target\": {\n \"kind\": \"computedColumn\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"field\",\n \"header\",\n \"expression\"\n ],\n \"properties\": {\n \"field\": {\n \"type\": \"string\",\n \"description\": \"Stable camelCase field id for the new computed column. When the user supplies a header/name, derive this id from that header instead of asking for clarification.\"\n },\n \"header\": {\n \"type\": \"string\",\n \"description\": \"User-facing label for the computed column.\"\n },\n \"expression\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"outputType\": {}\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"column-field-unique\",\n \"computed-expression-valid\"\n ],\n \"affectedPaths\": [\n \"columns[]\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"column.renderer.set\",\n \"title\": \"Definir renderizador\",\n \"scope\": \"column\",\n \"targetKind\": \"renderer\",\n \"target\": {\n \"kind\": \"renderer\",\n \"resolver\": \"renderer-in-column\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {\n \"enum\": [\n \"icon\",\n \"image\",\n \"badge\",\n \"link\",\n \"button\",\n \"chip\",\n \"progress\",\n \"avatar\",\n \"toggle\",\n \"menu\",\n \"rating\",\n \"html\",\n \"compose\"\n ]\n },\n \"typeExpr\": {\n \"type\": \"string\"\n },\n \"button\": {\n \"type\": \"object\",\n \"required\": [\n \"action\"\n ],\n \"properties\": {\n \"label\": {\n \"type\": \"string\"\n },\n \"labelField\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"enum\": [\n \"primary\",\n \"accent\",\n \"warn\"\n ]\n },\n \"variant\": {\n \"enum\": [\n \"filled\",\n \"outlined\",\n \"text\"\n ]\n },\n \"size\": {\n \"enum\": [\n \"sm\",\n \"md\",\n \"lg\"\n ]\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n },\n \"disabledCondition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"action\": {\n \"type\": \"object\",\n \"required\": [\n \"id\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"payloadExpr\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"menu\": {\n \"type\": \"object\",\n \"required\": [\n \"itemsExpr\"\n ],\n \"properties\": {\n \"itemsExpr\": {\n \"type\": \"string\"\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n }\n }\n },\n \"link\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"href\"\n ]\n },\n {\n \"required\": [\n \"hrefField\"\n ]\n }\n ],\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"textField\": {\n \"type\": \"string\"\n },\n \"href\": {\n \"type\": \"string\"\n },\n \"hrefField\": {\n \"type\": \"string\"\n },\n \"target\": {\n \"enum\": [\n \"_blank\",\n \"_self\",\n \"_parent\",\n \"_top\"\n ]\n },\n \"rel\": {\n \"type\": \"string\"\n }\n }\n },\n \"progress\": {\n \"type\": \"object\",\n \"required\": [\n \"valueExpr\"\n ],\n \"properties\": {\n \"valueExpr\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"showLabel\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"badge\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"text\"\n ]\n },\n {\n \"required\": [\n \"textField\"\n ]\n }\n ],\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"textField\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"variant\": {\n \"enum\": [\n \"filled\",\n \"outlined\",\n \"soft\",\n \"plain\"\n ]\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"tooltip\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ]\n },\n \"bgColor\": {\n \"type\": \"string\"\n },\n \"delayMs\": {\n \"type\": \"number\"\n }\n }\n }\n }\n },\n \"chip\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"text\"\n ]\n },\n {\n \"required\": [\n \"textField\"\n ]\n }\n ],\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"textField\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"variant\": {\n \"enum\": [\n \"filled\",\n \"outlined\"\n ]\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"tooltip\": {\n \"type\": \"object\",\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ]\n },\n \"bgColor\": {\n \"type\": \"string\"\n },\n \"delayMs\": {\n \"type\": \"number\"\n }\n }\n }\n }\n },\n \"icon\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"name\"\n ]\n },\n {\n \"required\": [\n \"nameField\"\n ]\n }\n ],\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"nameField\": {\n \"type\": \"string\"\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"textField\": {\n \"type\": \"string\"\n },\n \"prefix\": {\n \"type\": \"string\"\n },\n \"suffix\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"type\": \"number\"\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n }\n }\n },\n \"image\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"src\"\n ]\n },\n {\n \"required\": [\n \"srcField\"\n ]\n }\n ],\n \"properties\": {\n \"src\": {\n \"type\": \"string\"\n },\n \"srcField\": {\n \"type\": \"string\"\n },\n \"alt\": {\n \"type\": \"string\"\n },\n \"altField\": {\n \"type\": \"string\"\n },\n \"width\": {\n \"type\": \"number\"\n },\n \"height\": {\n \"type\": \"number\"\n },\n \"shape\": {\n \"enum\": [\n \"square\",\n \"rounded\",\n \"circle\"\n ]\n },\n \"fit\": {\n \"enum\": [\n \"cover\",\n \"contain\"\n ]\n },\n \"lazy\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"avatar\": {\n \"type\": \"object\",\n \"anyOf\": [\n {\n \"required\": [\n \"src\"\n ]\n },\n {\n \"required\": [\n \"srcField\"\n ]\n },\n {\n \"required\": [\n \"initialsField\"\n ]\n },\n {\n \"required\": [\n \"initialsExpr\"\n ]\n }\n ],\n \"properties\": {\n \"src\": {\n \"type\": \"string\"\n },\n \"srcField\": {\n \"type\": \"string\"\n },\n \"alt\": {\n \"type\": \"string\"\n },\n \"altField\": {\n \"type\": \"string\"\n },\n \"initialsField\": {\n \"type\": \"string\"\n },\n \"initialsExpr\": {\n \"type\": \"string\"\n },\n \"shape\": {\n \"enum\": [\n \"circle\",\n \"square\",\n \"rounded\"\n ]\n },\n \"size\": {\n \"type\": \"number\"\n },\n \"backgroundColor\": {\n \"type\": \"string\"\n },\n \"textColor\": {\n \"type\": \"string\"\n }\n }\n },\n \"toggle\": {\n \"type\": \"object\",\n \"required\": [\n \"stateExpr\",\n \"action\"\n ],\n \"properties\": {\n \"stateExpr\": {\n \"type\": \"string\"\n },\n \"disabledCondition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n },\n \"action\": {\n \"type\": \"object\",\n \"required\": [\n \"id\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"payloadExpr\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"rating\": {\n \"type\": \"object\",\n \"required\": [\n \"valueExpr\"\n ],\n \"properties\": {\n \"valueExpr\": {\n \"type\": \"string\"\n },\n \"max\": {\n \"type\": \"number\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"outlineColor\": {\n \"type\": \"string\"\n },\n \"size\": {\n \"enum\": [\n \"small\",\n \"medium\",\n \"large\"\n ]\n },\n \"ariaLabel\": {\n \"type\": \"string\"\n }\n }\n },\n \"html\": {\n \"type\": \"object\",\n \"required\": [\n \"template\"\n ],\n \"properties\": {\n \"template\": {\n \"type\": \"string\"\n },\n \"sanitize\": {\n \"enum\": [\n \"strict\",\n \"basic\"\n ]\n },\n \"emptyFallback\": {\n \"type\": \"string\"\n }\n }\n },\n \"compose\": {\n \"type\": \"object\",\n \"required\": [\n \"items\"\n ],\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"type\"\n ],\n \"properties\": {\n \"type\": {}\n }\n }\n },\n \"layout\": {\n \"type\": \"object\",\n \"properties\": {\n \"gap\": {\n \"type\": \"number\"\n },\n \"direction\": {\n \"enum\": [\n \"row\",\n \"column\"\n ]\n },\n \"align\": {\n \"enum\": [\n \"start\",\n \"center\",\n \"end\"\n ]\n },\n \"wrap\": {\n \"type\": \"boolean\"\n },\n \"ellipsis\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n }\n },\n \"allOf\": [\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"button\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"button\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"menu\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"menu\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"link\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"link\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"progress\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"progress\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"badge\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"badge\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"chip\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"chip\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"icon\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"icon\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"image\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"image\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"avatar\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"avatar\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"toggle\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"toggle\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"rating\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"rating\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"html\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"html\"\n ]\n }\n },\n {\n \"if\": {\n \"properties\": {\n \"type\": {\n \"const\": \"compose\"\n }\n }\n },\n \"then\": {\n \"required\": [\n \"compose\"\n ]\n }\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"columns[].renderer\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"renderer-type-supported\",\n \"renderer-config-match\",\n \"editor-round-trip-preserve\"\n ],\n \"affectedPaths\": [\n \"columns[].renderer\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.conditionalRenderer.add\",\n \"title\": \"Adicionar renderizador condicional\",\n \"scope\": \"column\",\n \"targetKind\": \"conditionalRenderer\",\n \"target\": {\n \"kind\": \"conditionalRenderer\",\n \"resolver\": \"conditional-renderer-in-column\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"condition\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identificador estável do renderer condicional (usado para deduplicação)\"\n },\n \"condition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"tooltip\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"text\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n ]\n },\n \"bgColor\": {\n \"type\": \"string\"\n },\n \"delayMs\": {\n \"type\": \"number\"\n }\n }\n },\n \"animation\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\",\n \"description\": \"false desativa a animacao sem remover a regra.\"\n },\n \"preset\": {\n \"enum\": [\n \"info-soft\",\n \"success-confirm\",\n \"warning-attention\",\n \"critical-alert\",\n \"audit-review\",\n \"sync-pending\",\n \"pulse-soft\",\n \"fade-soft\",\n \"sla-warning\",\n \"sla-breach\",\n \"risk-elevated\",\n \"risk-critical\",\n \"audit-warning\",\n \"sync-warning\"\n ],\n \"description\": \"Preset semantico recomendado. Preferir preset antes de type bruto.\"\n },\n \"type\": {\n \"enum\": [\n \"pulse\",\n \"blink\",\n \"grow\",\n \"fade\",\n \"slide-in\",\n \"border-pulse\"\n ]\n },\n \"durationMs\": {\n \"type\": \"number\"\n },\n \"trigger\": {\n \"enum\": [\n \"onChange\",\n \"onAppear\",\n \"onHover\",\n \"onConditionEnter\",\n \"onConditionExit\",\n \"onDataRefresh\"\n ]\n },\n \"repeat\": {\n \"oneOf\": [\n {\n \"enum\": [\n \"once\",\n \"loop\",\n \"infinite\"\n ]\n },\n {\n \"type\": \"number\"\n }\n ]\n },\n \"delayMs\": {\n \"type\": \"number\"\n },\n \"intensity\": {\n \"enum\": [\n \"subtle\",\n \"normal\",\n \"strong\"\n ]\n }\n }\n },\n \"effects\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"scope\": {\n \"enum\": [\n \"cell\",\n \"row\",\n \"column\",\n \"table\"\n ]\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"estilo\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"color\": {\n \"type\": \"string\"\n },\n \"bgColor\": {\n \"type\": \"string\"\n },\n \"bold\": {\n \"type\": \"boolean\"\n },\n \"italic\": {\n \"type\": \"boolean\"\n },\n \"underline\": {\n \"type\": \"boolean\"\n },\n \"transform\": {\n \"enum\": [\n \"uppercase\",\n \"lowercase\",\n \"capitalize\",\n null\n ]\n },\n \"opacity\": {\n \"type\": \"number\"\n },\n \"fontScale\": {\n \"type\": \"number\"\n }\n }\n },\n \"layout\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"border\": {\n \"enum\": [\n \"none\",\n \"left\",\n \"right\",\n \"top\",\n \"bottom\",\n \"all\"\n ]\n },\n \"borderColor\": {\n \"type\": \"string\"\n },\n \"borderWidth\": {\n \"type\": \"number\"\n },\n \"padding\": {\n \"type\": \"number\"\n },\n \"align\": {\n \"enum\": [\n \"start\",\n \"center\",\n \"end\"\n ]\n },\n \"elevation\": {\n \"type\": \"number\"\n }\n }\n },\n \"iconBadge\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"icon\": {\n \"type\": \"string\"\n },\n \"iconColor\": {\n \"type\": \"string\"\n },\n \"iconPos\": {\n \"enum\": [\n \"before\",\n \"after\",\n \"overlay\"\n ]\n },\n \"badgeText\": {\n \"type\": \"string\"\n },\n \"badgeStyle\": {\n \"enum\": [\n \"solid\",\n \"soft\",\n \"outline\"\n ]\n },\n \"badgeColor\": {\n \"type\": \"string\"\n }\n }\n },\n \"background\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"color\": {\n \"type\": \"string\"\n },\n \"gradient\": {\n \"type\": \"string\"\n },\n \"alpha\": {\n \"type\": \"number\"\n },\n \"blur\": {\n \"type\": \"number\"\n }\n }\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"inlineStyle\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"renderer\"\n ]\n },\n {\n \"required\": [\n \"tooltip\"\n ]\n },\n {\n \"required\": [\n \"animation\"\n ]\n },\n {\n \"required\": [\n \"effects\"\n ]\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"columns[].conditionalRenderers[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"computed-expression-valid\",\n \"renderer-config-match\"\n ],\n \"affectedPaths\": [\n \"columns[].conditionalRenderers[]\",\n \"columns[].conditionalRenderers[].tooltip\",\n \"columns[].conditionalRenderers[].animation\",\n \"columns[].conditionalRenderers[].effects\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.conditionalStyle.add\",\n \"title\": \"Adicionar regra de estilo condicional na coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"rule\",\n \"target\": {\n \"kind\": \"rule\",\n \"resolver\": \"style-rule-in-column-or-row\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"condition\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identificador estável da regra de estilo da coluna\"\n },\n \"condition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"style\": {\n \"type\": \"object\"\n },\n \"tooltip\": {\n \"type\": \"object\"\n },\n \"effects\": {\n \"type\": \"array\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"cssClass\"\n ]\n },\n {\n \"required\": [\n \"style\"\n ]\n },\n {\n \"required\": [\n \"tooltip\"\n ]\n },\n {\n \"required\": [\n \"effects\"\n ]\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"columns[].conditionalStyles[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"computed-expression-valid\",\n \"conditional-style-valid\"\n ],\n \"affectedPaths\": [\n \"columns[].conditionalStyles[]\",\n \"columns[].conditionalStyles[].effects\",\n \"columns[].conditionalStyles[].tooltip\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"row.styleRule.add\",\n \"title\": \"Adicionar regra de estilo de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"rule\",\n \"target\": {\n \"kind\": \"rule\",\n \"resolver\": \"style-rule-in-column-or-row\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"condition\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identificador estável da regra (usado para deduplicação via append-unique)\"\n },\n \"condition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"style\": {\n \"type\": \"object\",\n \"description\": \"Estilo CSS (Record<string, string>)\"\n },\n \"cssClass\": {\n \"type\": \"string\"\n },\n \"effects\": {\n \"type\": \"array\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"cssClass\"\n ]\n },\n {\n \"required\": [\n \"style\"\n ]\n },\n {\n \"required\": [\n \"effects\"\n ]\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"rowConditionalStyles[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"computed-expression-valid\"\n ],\n \"affectedPaths\": [\n \"rowConditionalStyles[]\",\n \"rowConditionalStyles[].effects\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"row.conditionalRenderer.add\",\n \"title\": \"Adicionar renderizador condicional de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"conditionalRenderer\",\n \"target\": {\n \"kind\": \"conditionalRenderer\",\n \"resolver\": \"conditional-renderer-in-row\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"condition\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"Identificador estavel da regra de renderer de linha\"\n },\n \"condition\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"tooltip\": {\n \"type\": \"object\",\n \"description\": \"Tooltip de linha\"\n },\n \"effects\": {\n \"type\": \"array\"\n },\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"description\": {\n \"type\": \"string\"\n }\n },\n \"anyOf\": [\n {\n \"required\": [\n \"tooltip\"\n ]\n },\n {\n \"required\": [\n \"animation\"\n ]\n },\n {\n \"required\": [\n \"effects\"\n ]\n }\n ]\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"rowConditionalRenderers[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"computed-expression-valid\"\n ],\n \"affectedPaths\": [\n \"rowConditionalRenderers[]\",\n \"rowConditionalRenderers[].condition\",\n \"rowConditionalRenderers[].tooltip\",\n \"rowConditionalRenderers[].animation\",\n \"rowConditionalRenderers[].effects\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"toolbar.visibility.set\",\n \"title\": \"Definir visibilidade da toolbar\",\n \"scope\": \"global\",\n \"targetKind\": \"toolbar\",\n \"target\": {\n \"kind\": \"toolbar\",\n \"resolver\": \"toolbar-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"visible\"\n ],\n \"properties\": {\n \"visible\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"toolbar\"\n }\n ],\n \"affectedPaths\": [\n \"toolbar.visible\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"toolbar.action.add\",\n \"title\": \"Adicionar ação na toolbar\",\n \"scope\": \"global\",\n \"targetKind\": \"toolbarAction\",\n \"target\": {\n \"kind\": \"toolbarAction\",\n \"resolver\": \"action-in-toolbar-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"label\",\n \"action\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"action\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"enum\": [\n \"button\",\n \"icon\",\n \"menu\"\n ],\n \"default\": \"button\"\n },\n \"visibleWhen\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"globalAction\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"actionId\": {\n \"type\": \"string\",\n \"enum\": [\n \"toast.success\",\n \"toast.error\",\n \"dialog.alert\",\n \"dialog.open\",\n \"navigation.openExternal\",\n \"navigation.openRoute\",\n \"api.post\",\n \"api.patch\"\n ]\n },\n \"payload\": {\n \"type\": \"object\"\n },\n \"payloadExpr\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"kind\",\n \"globalAction\"\n ],\n \"additionalProperties\": false,\n \"properties\": {\n \"kind\": {\n \"enum\": [\n \"global-action\"\n ]\n }\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"toolbar.actions[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"toolbar-action-id-unique\"\n ],\n \"affectedPaths\": [\n \"toolbar.actions[]\",\n \"toolbar.actions[].visibleWhen\",\n \"toolbar.actions[].effects\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"rowAction.add\",\n \"title\": \"Adicionar ação de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"rowAction\",\n \"target\": {\n \"kind\": \"rowAction\",\n \"resolver\": \"action-in-row-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"label\",\n \"action\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"action\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"visibleWhen\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"disabledWhen\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"recordSurface\": {\n \"type\": \"object\",\n \"description\": \"ResourceSurfaceCatalogItem canonico preservado para abrir uma superficie relacionada ao registro da linha clicada.\"\n },\n \"effects\": {\n \"type\": \"array\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"actions.row.actions[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"row-action-id-unique\"\n ],\n \"affectedPaths\": [\n \"actions.row.actions[]\",\n \"actions.row.actions[].visibleWhen\",\n \"actions.row.actions[].disabledWhen\",\n \"actions.row.actions[].effects\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"bulkAction.add\",\n \"title\": \"Adicionar ação em lote\",\n \"scope\": \"global\",\n \"targetKind\": \"bulkAction\",\n \"target\": {\n \"kind\": \"bulkAction\",\n \"resolver\": \"action-in-bulk-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"id\",\n \"label\",\n \"action\"\n ],\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"label\": {\n \"type\": \"string\"\n },\n \"action\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"color\": {\n \"type\": \"string\"\n },\n \"effects\": {\n \"type\": \"array\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"append-unique\",\n \"path\": \"actions.bulk.actions[]\",\n \"key\": \"id\"\n }\n ],\n \"validators\": [\n \"bulk-action-id-unique\"\n ],\n \"affectedPaths\": [\n \"actions.bulk.actions[]\",\n \"actions.bulk.actions[].effects\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"export.enabled.set\",\n \"title\": \"Habilitar exportação\",\n \"scope\": \"global\",\n \"targetKind\": \"export\",\n \"target\": {\n \"kind\": \"export\",\n \"resolver\": \"export-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"formats\": {\n \"type\": \"array\",\n \"items\": {\n \"enum\": [\n \"excel\",\n \"pdf\",\n \"csv\",\n \"json\"\n ]\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"export\"\n }\n ],\n \"affectedPaths\": [\n \"export.enabled\",\n \"export.formats\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"filter.advanced.configure\",\n \"title\": \"Configurar filtros avançados\",\n \"scope\": \"global\",\n \"targetKind\": \"filter\",\n \"target\": {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"queryBuilder\": {\n \"type\": \"boolean\"\n },\n \"savePresets\": {\n \"type\": \"boolean\"\n },\n \"settings\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"filter\"\n ]\n },\n \"showAdvanced\": {\n \"type\": \"boolean\"\n },\n \"allowSaveTags\": {\n \"type\": \"boolean\"\n },\n \"alwaysVisibleFields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"selectedFieldIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alwaysVisibleFieldMetadataOverrides\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\"\n }\n },\n \"changeDebounceMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"useInlineSearchableSelectVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineRangeVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineDateVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineDateRangeVariant\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"behavior.filtering.enabled\",\n \"value\": true\n },\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.filtering.advancedFilters\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.filtering.enabled\",\n \"behavior.filtering.advancedFilters.enabled\",\n \"behavior.filtering.advancedFilters.settings\"\n ],\n \"validators\": [\n \"filter-fields-exist\",\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"filter.advanced.fields.add\",\n \"title\": \"Adicionar campos aos filtros avançados\",\n \"scope\": \"global\",\n \"targetKind\": \"filter\",\n \"target\": {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"fields\"\n ],\n \"properties\": {\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1\n },\n \"selected\": {\n \"type\": \"boolean\"\n },\n \"alwaysVisible\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"behavior.filtering.enabled\",\n \"value\": true\n },\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.filtering.advancedFilters\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.filtering.enabled\",\n \"behavior.filtering.advancedFilters.enabled\",\n \"behavior.filtering.advancedFilters.settings\"\n ],\n \"validators\": [\n \"filter-fields-exist\",\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"filter.advanced.fields.remove\",\n \"title\": \"Remover campos dos filtros avançados\",\n \"scope\": \"global\",\n \"targetKind\": \"filter\",\n \"target\": {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"fields\"\n ],\n \"properties\": {\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"minItems\": 1\n },\n \"selected\": {\n \"type\": \"boolean\"\n },\n \"alwaysVisible\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"behavior.filtering.enabled\",\n \"value\": true\n },\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.filtering.advancedFilters\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.filtering.enabled\",\n \"behavior.filtering.advancedFilters.enabled\",\n \"behavior.filtering.advancedFilters.settings\"\n ],\n \"validators\": [\n \"filter-fields-exist\",\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"grouping.set\",\n \"title\": \"Definir agrupamento\",\n \"scope\": \"global\",\n \"targetKind\": \"grouping\",\n \"target\": {\n \"kind\": \"grouping\",\n \"resolver\": \"grouping-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"fields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"expanded\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.grouping\"\n }\n ],\n \"validators\": [\n \"grouping-fields-exist\"\n ],\n \"affectedPaths\": [\n \"behavior.grouping\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"selection.mode.set\",\n \"title\": \"Definir modo de seleção\",\n \"scope\": \"global\",\n \"targetKind\": \"selection\",\n \"target\": {\n \"kind\": \"selection\",\n \"resolver\": \"selection-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\",\n \"type\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"enum\": [\n \"single\",\n \"multiple\"\n ]\n },\n \"mode\": {\n \"enum\": [\n \"checkbox\",\n \"row\",\n \"both\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.selection\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.selection.enabled\",\n \"behavior.selection.type\",\n \"behavior.selection.mode\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"appearance.density.set\",\n \"title\": \"Definir densidade\",\n \"scope\": \"global\",\n \"targetKind\": \"appearance\",\n \"target\": {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"density\"\n ],\n \"properties\": {\n \"density\": {\n \"enum\": [\n \"compact\",\n \"comfortable\",\n \"spacious\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"appearance\"\n }\n ],\n \"affectedPaths\": [\n \"appearance.density\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"appearance.borders.set\",\n \"title\": \"Definir bordas\",\n \"scope\": \"global\",\n \"targetKind\": \"appearance\",\n \"target\": {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"showRowBorders\",\n \"showColumnBorders\"\n ],\n \"properties\": {\n \"showRowBorders\": {\n \"type\": \"boolean\"\n },\n \"showColumnBorders\": {\n \"type\": \"boolean\"\n },\n \"showOuterBorder\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"appearance.borders\"\n }\n ],\n \"affectedPaths\": [\n \"appearance.borders.showRowBorders\",\n \"appearance.borders.showColumnBorders\",\n \"appearance.borders.showOuterBorder\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"virtualization.enabled.set\",\n \"title\": \"Habilitar virtualização\",\n \"scope\": \"global\",\n \"targetKind\": \"appearance\",\n \"target\": {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"enabled\"\n ],\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"itemHeight\": {\n \"type\": \"number\",\n \"default\": 48\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.virtualization\"\n },\n {\n \"kind\": \"merge-object\",\n \"path\": \"performance.virtualization\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.virtualization\",\n \"performance.virtualization\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"expansion.configure\",\n \"title\": \"Configurar expansão de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"expansion\",\n \"target\": {\n \"kind\": \"expansion\",\n \"resolver\": \"expansion-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"contractVersion\": {\n \"type\": \"string\"\n },\n \"state\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"controlled\",\n \"uncontrolled\"\n ]\n }\n }\n },\n \"interaction\": {\n \"type\": \"object\",\n \"properties\": {\n \"trigger\": {\n \"enum\": [\n \"icon\",\n \"row\",\n \"both\"\n ]\n },\n \"toggleIcon\": {\n \"type\": \"object\",\n \"properties\": {\n \"collapsed\": {\n \"type\": \"string\"\n },\n \"expanded\": {\n \"type\": \"string\"\n },\n \"ariaLabelCollapsed\": {\n \"type\": \"string\"\n },\n \"ariaLabelExpanded\": {\n \"type\": \"string\"\n }\n }\n },\n \"motion\": {\n \"type\": \"object\",\n \"properties\": {\n \"preset\": {\n \"enum\": [\n \"none\",\n \"subtle-slide\",\n \"accordion\",\n \"fade-scale\"\n ]\n },\n \"durationMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"easing\": {\n \"enum\": [\n \"standard\",\n \"emphasized\",\n \"decelerate\"\n ]\n }\n }\n },\n \"keyboard\": {\n \"type\": \"object\",\n \"properties\": {\n \"profile\": {\n \"enum\": [\n \"disclosure\",\n \"grid\"\n ]\n }\n }\n }\n }\n },\n \"limits\": {\n \"type\": \"object\",\n \"properties\": {\n \"allowMultiple\": {\n \"type\": \"boolean\"\n },\n \"maxExpandedRows\": {\n \"type\": \"number\",\n \"minimum\": 1\n },\n \"onOverflow\": {\n \"enum\": [\n \"collapseOldest\",\n \"denyNew\",\n \"collapseAll\"\n ]\n }\n }\n },\n \"collapseOn\": {\n \"type\": \"object\",\n \"properties\": {\n \"sortChange\": {\n \"type\": \"boolean\"\n },\n \"pageChange\": {\n \"type\": \"boolean\"\n },\n \"filterChange\": {\n \"type\": \"boolean\"\n },\n \"dataRefresh\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"virtualization\": {\n \"type\": \"object\",\n \"properties\": {\n \"policy\": {\n \"enum\": [\n \"fixed-height-only\",\n \"allow-dynamic-under-flag\"\n ]\n }\n }\n },\n \"persistence\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"storageKeyStrategy\": {\n \"type\": \"object\",\n \"properties\": {\n \"namespace\": {\n \"type\": \"string\"\n }\n }\n }\n }\n },\n \"security\": {\n \"type\": \"object\",\n \"properties\": {\n \"eventExposureDefault\": {\n \"type\": \"object\",\n \"properties\": {\n \"rowId\": {\n \"enum\": [\n \"redacted\",\n \"hashed\",\n \"raw\"\n ]\n },\n \"expandedKeys\": {\n \"enum\": [\n \"none\",\n \"hashed\",\n \"raw\"\n ]\n }\n }\n }\n }\n },\n \"deepLink\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"encoding\": {\n \"enum\": [\n \"csv\"\n ]\n },\n \"parsing\": {\n \"type\": \"object\",\n \"properties\": {\n \"duplicateParams\": {\n \"enum\": [\n \"firstWins\",\n \"reject\"\n ]\n }\n }\n },\n \"integrity\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"opaqueToken\"\n ]\n }\n }\n },\n \"privacy\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"denyByDefault\",\n \"allowByDefault\"\n ]\n }\n }\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.expansion\"\n }\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"affectedPaths\": [\n \"behavior.expansion\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"expansion.detailSource.configure\",\n \"title\": \"Configurar fonte remota do detalhe expansivel\",\n \"scope\": \"global\",\n \"targetKind\": \"expansion\",\n \"target\": {\n \"kind\": \"expansion\",\n \"resolver\": \"expansion-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"inline\",\n \"resource\",\n \"resourcePath\",\n \"hypermedia\"\n ]\n },\n \"inlineSchema\": {\n \"type\": \"object\"\n },\n \"resource\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"enum\": [\n \"ui-composition\",\n \"form-schema\",\n \"table-schema\",\n \"dashboard-schema\"\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n }\n },\n \"resourcePath\": {\n \"type\": \"object\",\n \"properties\": {\n \"path\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"enum\": [\n \"GET\",\n \"POST\"\n ]\n },\n \"paramsMap\": {\n \"type\": \"object\"\n }\n }\n },\n \"resourceAllowList\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"hypermedia\": {\n \"type\": \"object\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.expansion.detail.source\"\n }\n ],\n \"validators\": [\n \"remote-resource-binding-safe\",\n \"editor-round-trip-preserve\"\n ],\n \"affectedPaths\": [\n \"behavior.expansion.detail.source\",\n \"behavior.expansion.detail.source.mode\",\n \"behavior.expansion.detail.source.resourcePath\",\n \"behavior.expansion.detail.source.resourceAllowList\",\n \"behavior.expansion.detail.source.hypermedia\"\n ],\n \"submissionImpact\": \"affects-remote-binding\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"expansion.detailPresentation.configure\",\n \"title\": \"Configurar apresentacao do detalhe expansivel\",\n \"scope\": \"global\",\n \"targetKind\": \"expansion\",\n \"target\": {\n \"kind\": \"expansion\",\n \"resolver\": \"expansion-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"schemaContract\": {\n \"type\": \"object\",\n \"properties\": {\n \"kind\": {\n \"type\": \"string\"\n },\n \"version\": {\n \"type\": \"string\"\n }\n }\n },\n \"rendering\": {\n \"type\": \"object\",\n \"properties\": {\n \"strategy\": {\n \"enum\": [\n \"registry\"\n ]\n },\n \"registryId\": {\n \"type\": \"string\"\n },\n \"hostLayout\": {\n \"enum\": [\n \"auto\",\n \"stack\",\n \"tabs\"\n ]\n },\n \"fallbackNodePolicy\": {\n \"enum\": [\n \"failClosed\",\n \"renderPlaceholder\"\n ]\n }\n }\n },\n \"height\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"fixed\",\n \"dynamic\"\n ]\n },\n \"px\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.expansion.detail\"\n }\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"affectedPaths\": [\n \"behavior.expansion.detail\",\n \"behavior.expansion.detail.schemaContract\",\n \"behavior.expansion.detail.rendering\",\n \"behavior.expansion.detail.height\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"meta.configure\",\n \"title\": \"Configurar metadados\",\n \"scope\": \"global\",\n \"targetKind\": \"meta\",\n \"target\": {\n \"kind\": \"meta\",\n \"resolver\": \"table-meta-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"tags\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"schemaId\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"meta\"\n }\n ],\n \"affectedPaths\": [\n \"meta\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"meta.idField.set\",\n \"title\": \"Definir campo de identidade\",\n \"scope\": \"global\",\n \"targetKind\": \"meta\",\n \"target\": {\n \"kind\": \"meta\",\n \"resolver\": \"table-meta-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"idField\"\n ],\n \"properties\": {\n \"idField\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"meta.idField\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"meta.idField\"\n ],\n \"validators\": [\n \"target-column-exists\",\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"column.resizable.set\",\n \"title\": \"Definir redimensionamento da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"resizable\"\n ],\n \"properties\": {\n \"resizable\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].resizable\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.sortField.set\",\n \"title\": \"Definir campo de ordenacao da coluna\",\n \"scope\": \"column\",\n \"targetKind\": \"column\",\n \"target\": {\n \"kind\": \"column\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"sortField\"\n ],\n \"properties\": {\n \"sortField\": {\n \"type\": \"string\",\n \"minLength\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\"\n ],\n \"affectedPaths\": [\n \"columns[].sortField\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"column.computed.configure\",\n \"title\": \"Configurar coluna calculada\",\n \"scope\": \"column\",\n \"targetKind\": \"computedColumn\",\n \"target\": {\n \"kind\": \"computedColumn\",\n \"resolver\": \"column-by-field\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": true\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"expression\"\n ],\n \"properties\": {\n \"expression\": {\n \"type\": \"object\",\n \"description\": \"AST Json Logic\"\n },\n \"outputType\": {},\n \"format\": {\n \"type\": \"string\"\n },\n \"dependencies\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-by-key\",\n \"path\": \"columns[]\",\n \"key\": \"field\"\n }\n ],\n \"validators\": [\n \"target-column-exists\",\n \"computed-expression-valid\",\n \"format-preset-supported\"\n ],\n \"affectedPaths\": [\n \"columns[].computed\"\n ],\n \"submissionImpact\": \"affects-schema-backed-data\",\n \"preconditions\": [\n \"config-initialized\",\n \"target-exists\"\n ]\n },\n {\n \"operationId\": \"behavior.pagination.configure\",\n \"title\": \"Configurar paginacao\",\n \"scope\": \"global\",\n \"targetKind\": \"pagination\",\n \"target\": {\n \"kind\": \"pagination\",\n \"resolver\": \"pagination-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"strategy\": {\n \"enum\": [\n \"client\",\n \"server\"\n ]\n },\n \"pageSize\": {\n \"type\": \"number\",\n \"minimum\": 1\n },\n \"pageSizeOptions\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"bottom\",\n \"both\"\n ]\n },\n \"style\": {\n \"enum\": [\n \"default\",\n \"simple\",\n \"advanced\",\n \"compact\"\n ]\n },\n \"advanced\": {\n \"type\": \"object\",\n \"properties\": {\n \"maxPageSize\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.pagination\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.pagination\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.sorting.configure\",\n \"title\": \"Configurar ordenacao\",\n \"scope\": \"global\",\n \"targetKind\": \"sorting\",\n \"target\": {\n \"kind\": \"sorting\",\n \"resolver\": \"sorting-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"strategy\": {\n \"enum\": [\n \"client\",\n \"server\"\n ]\n },\n \"defaultSort\": {\n \"type\": \"object\"\n },\n \"allowClearSort\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.sorting\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.sorting\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.filtering.configure\",\n \"title\": \"Configurar filtragem\",\n \"scope\": \"global\",\n \"targetKind\": \"filter\",\n \"target\": {\n \"kind\": \"filter\",\n \"resolver\": \"filter-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"strategy\": {\n \"enum\": [\n \"client\",\n \"server\"\n ]\n },\n \"columnFilters\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"defaultType\": {\n \"enum\": [\n \"text\",\n \"select\",\n \"date\",\n \"number\",\n \"boolean\"\n ]\n },\n \"position\": {\n \"enum\": [\n \"header\",\n \"subheader\",\n \"sidebar\"\n ]\n }\n }\n },\n \"advancedFilters\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"settings\": {\n \"type\": \"object\",\n \"properties\": {\n \"mode\": {\n \"enum\": [\n \"filter\"\n ]\n },\n \"showAdvanced\": {\n \"type\": \"boolean\"\n },\n \"allowSaveTags\": {\n \"type\": \"boolean\"\n },\n \"alwaysVisibleFields\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"selectedFieldIds\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"alwaysVisibleFieldMetadataOverrides\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"object\"\n }\n },\n \"changeDebounceMs\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"useInlineSearchableSelectVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineRangeVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineDateVariant\": {\n \"type\": \"boolean\"\n },\n \"useInlineDateRangeVariant\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"debounceTime\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.filtering\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.filtering\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.selection.configure\",\n \"title\": \"Configurar selecao\",\n \"scope\": \"global\",\n \"targetKind\": \"selection\",\n \"target\": {\n \"kind\": \"selection\",\n \"resolver\": \"selection-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"type\": {\n \"enum\": [\n \"single\",\n \"multiple\"\n ]\n },\n \"mode\": {\n \"enum\": [\n \"checkbox\",\n \"row\",\n \"both\"\n ]\n },\n \"allowSelectAll\": {\n \"type\": \"boolean\"\n },\n \"persistSelection\": {\n \"type\": \"boolean\"\n },\n \"maxSelections\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.selection\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.selection\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.interaction.configure\",\n \"title\": \"Configurar interacao\",\n \"scope\": \"global\",\n \"targetKind\": \"interaction\",\n \"target\": {\n \"kind\": \"interaction\",\n \"resolver\": \"interaction-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"rowClick\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"action\": {\n \"type\": \"string\"\n }\n }\n },\n \"keyboard\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"hover\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"highlightRow\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.interaction\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.interaction\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.loading.configure\",\n \"title\": \"Configurar loading\",\n \"scope\": \"global\",\n \"targetKind\": \"loading\",\n \"target\": {\n \"kind\": \"loading\",\n \"resolver\": \"loading-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"type\": {\n \"enum\": [\n \"spinner\",\n \"skeleton\",\n \"progress\",\n \"custom\"\n ]\n },\n \"position\": {\n \"enum\": [\n \"overlay\",\n \"inline\",\n \"replace\"\n ]\n },\n \"text\": {\n \"type\": \"string\"\n },\n \"delay\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.loading\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.loading\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.emptyState.configure\",\n \"title\": \"Configurar estado vazio\",\n \"scope\": \"global\",\n \"targetKind\": \"emptyState\",\n \"target\": {\n \"kind\": \"emptyState\",\n \"resolver\": \"empty-state-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"message\"\n ],\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"tone\": {\n \"enum\": [\n \"neutral\",\n \"primary\",\n \"secondary\"\n ]\n },\n \"variant\": {\n \"enum\": [\n \"card\",\n \"inline\",\n \"panel\",\n \"transparent\"\n ]\n },\n \"alignment\": {\n \"enum\": [\n \"start\",\n \"center\"\n ]\n },\n \"density\": {\n \"enum\": [\n \"compact\",\n \"comfortable\"\n ]\n },\n \"iconContainer\": {\n \"enum\": [\n \"none\",\n \"circle\",\n \"soft\"\n ]\n },\n \"actions\": {\n \"type\": \"array\"\n },\n \"contexts\": {\n \"type\": \"object\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.emptyState\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.emptyState\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.resizing.configure\",\n \"title\": \"Configurar redimensionamento\",\n \"scope\": \"global\",\n \"targetKind\": \"resizing\",\n \"target\": {\n \"kind\": \"resizing\",\n \"resolver\": \"resizing-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"minColumnWidth\": {\n \"type\": \"number\",\n \"minimum\": 1\n },\n \"maxColumnWidth\": {\n \"type\": \"number\",\n \"minimum\": 1\n },\n \"autoFit\": {\n \"type\": \"boolean\"\n },\n \"persistWidths\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.resizing\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.resizing\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.dragging.configure\",\n \"title\": \"Configurar drag and drop\",\n \"scope\": \"global\",\n \"targetKind\": \"dragging\",\n \"target\": {\n \"kind\": \"dragging\",\n \"resolver\": \"dragging-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"columns\"\n ],\n \"properties\": {\n \"columns\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.dragging\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.dragging\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"behavior.editing.configure\",\n \"title\": \"Configurar edicao\",\n \"scope\": \"global\",\n \"targetKind\": \"editing\",\n \"target\": {\n \"kind\": \"editing\",\n \"resolver\": \"editing-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"mode\"\n ],\n \"properties\": {\n \"mode\": {\n \"type\": \"string\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"behavior.editing\"\n }\n ],\n \"affectedPaths\": [\n \"behavior.editing\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"toolbar.configure\",\n \"title\": \"Configurar toolbar\",\n \"scope\": \"global\",\n \"targetKind\": \"toolbar\",\n \"target\": {\n \"kind\": \"toolbar\",\n \"resolver\": \"toolbar-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"visible\": {\n \"type\": \"boolean\"\n },\n \"position\": {\n \"enum\": [\n \"top\",\n \"bottom\",\n \"both\"\n ]\n },\n \"actionsPosition\": {\n \"enum\": [\n \"top\",\n \"bottom\",\n \"both\"\n ]\n },\n \"actionsBackgroundColor\": {\n \"type\": \"string\"\n },\n \"appearance\": {\n \"type\": \"object\",\n \"properties\": {\n \"preset\": {\n \"type\": \"string\"\n },\n \"variant\": {\n \"enum\": [\n \"flat\",\n \"outlined\",\n \"elevated\",\n \"integrated\"\n ]\n },\n \"density\": {\n \"enum\": [\n \"compact\",\n \"comfortable\",\n \"spacious\"\n ]\n },\n \"shape\": {\n \"enum\": [\n \"square\",\n \"rounded\",\n \"pill\"\n ]\n },\n \"divider\": {\n \"enum\": [\n \"none\",\n \"start\",\n \"between-groups\"\n ]\n },\n \"tokens\": {\n \"type\": \"object\",\n \"properties\": {\n \"titleFg\": {\n \"type\": \"string\"\n },\n \"subtitleFg\": {\n \"type\": \"string\"\n },\n \"iconFg\": {\n \"type\": \"string\"\n },\n \"titleFontSize\": {\n \"type\": \"string\"\n },\n \"subtitleFontSize\": {\n \"type\": \"string\"\n },\n \"titleFontWeight\": {\n \"type\": \"string\"\n },\n \"identityGap\": {\n \"type\": \"string\"\n },\n \"identityFilterGap\": {\n \"type\": \"string\"\n },\n \"identityMinHeight\": {\n \"type\": \"string\"\n },\n \"identityMarginBottom\": {\n \"type\": \"string\"\n },\n \"identityIconSize\": {\n \"type\": \"string\"\n },\n \"identityIconRadius\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"title\": {\n \"type\": \"string\"\n },\n \"subtitle\": {\n \"type\": \"string\"\n },\n \"icon\": {\n \"type\": \"string\"\n },\n \"textAlign\": {\n \"enum\": [\n \"start\",\n \"center\",\n \"end\"\n ]\n },\n \"layout\": {\n \"type\": \"object\",\n \"properties\": {\n \"alignment\": {\n \"enum\": [\n \"start\",\n \"center\",\n \"end\",\n \"space-between\"\n ]\n }\n }\n },\n \"filters\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"settingsMenu\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"columnsVisibility\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"toolbar\"\n }\n ],\n \"validators\": [\n \"css-style-safe\"\n ],\n \"affectedPaths\": [\n \"toolbar\",\n \"toolbar.title\",\n \"toolbar.subtitle\",\n \"toolbar.icon\",\n \"toolbar.textAlign\",\n \"toolbar.appearance\",\n \"toolbar.appearance.tokens\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"actions.row.configure\",\n \"title\": \"Configurar acoes de linha\",\n \"scope\": \"global\",\n \"targetKind\": \"rowAction\",\n \"target\": {\n \"kind\": \"rowAction\",\n \"resolver\": \"action-in-row-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"display\": {\n \"enum\": [\n \"menu\",\n \"buttons\",\n \"icons\"\n ]\n },\n \"trigger\": {\n \"enum\": [\n \"hover\",\n \"always\",\n \"click\"\n ]\n },\n \"discovery\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"actions.row\"\n }\n ],\n \"affectedPaths\": [\n \"actions.row\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"actions.bulk.configure\",\n \"title\": \"Configurar acoes em lote\",\n \"scope\": \"global\",\n \"targetKind\": \"bulkAction\",\n \"target\": {\n \"kind\": \"bulkAction\",\n \"resolver\": \"action-in-bulk-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"position\": {\n \"enum\": [\n \"toolbar\",\n \"floating\",\n \"both\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"actions.bulk\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"actions.bulk\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"actions.context.configure\",\n \"title\": \"Configurar menu contextual\",\n \"scope\": \"global\",\n \"targetKind\": \"contextAction\",\n \"target\": {\n \"kind\": \"contextAction\",\n \"resolver\": \"action-in-context-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"trigger\": {\n \"enum\": [\n \"right-click\",\n \"long-press\",\n \"both\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"actions.context\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"actions.context\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"actions.confirmations.configure\",\n \"title\": \"Configurar confirmacoes\",\n \"scope\": \"global\",\n \"targetKind\": \"contextAction\",\n \"target\": {\n \"kind\": \"contextAction\",\n \"resolver\": \"action-in-context-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"default\"\n ],\n \"properties\": {\n \"default\": {\n \"type\": \"object\"\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"actions.confirmations\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"actions.confirmations.default\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"export.configure\",\n \"title\": \"Configurar exportacao\",\n \"scope\": \"global\",\n \"targetKind\": \"export\",\n \"target\": {\n \"kind\": \"export\",\n \"resolver\": \"export-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"formats\": {\n \"type\": \"array\",\n \"items\": {\n \"enum\": [\n \"excel\",\n \"pdf\",\n \"csv\",\n \"json\",\n \"print\"\n ]\n }\n },\n \"general\": {\n \"type\": \"object\",\n \"properties\": {\n \"includeHeaders\": {\n \"type\": \"boolean\"\n },\n \"scope\": {\n \"enum\": [\n \"auto\",\n \"selected\",\n \"filtered\",\n \"currentPage\",\n \"all\"\n ]\n },\n \"maxRows\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n }\n },\n \"excel\": {\n \"type\": \"object\",\n \"properties\": {\n \"autoFitColumns\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"pdf\": {\n \"type\": \"object\",\n \"properties\": {\n \"orientation\": {\n \"enum\": [\n \"portrait\",\n \"landscape\"\n ]\n },\n \"pageSize\": {\n \"enum\": [\n \"A4\",\n \"A3\",\n \"Letter\",\n \"Legal\"\n ]\n }\n }\n },\n \"csv\": {\n \"type\": \"object\",\n \"properties\": {\n \"delimiter\": {\n \"enum\": [\n \",\",\n \";\",\n \"|\",\n \"\\\\t\"\n ]\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"export\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"export\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"tableRuntimeOperations.plan\",\n \"title\": \"Planejar operacoes runtime da tabela\",\n \"scope\": \"global\",\n \"targetKind\": \"runtimeOperation\",\n \"target\": {\n \"kind\": \"runtimeOperation\",\n \"resolver\": \"table-runtime-operation-contract\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"operations\"\n ],\n \"properties\": {\n \"operations\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\n \"type\": \"object\",\n \"required\": [\n \"operationId\",\n \"input\"\n ],\n \"properties\": {\n \"operationId\": {\n \"enum\": [\n \"table.filter.apply\",\n \"table.export.run\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"criteria\": {\n \"type\": \"object\"\n },\n \"format\": {},\n \"scope\": {}\n }\n },\n \"description\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"tableRuntimeOperations\"\n }\n ],\n \"affectedPaths\": [\n \"tableRuntimeOperations\"\n ],\n \"validators\": [\n \"runtime-operation-declared\"\n ],\n \"submissionImpact\": \"none\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"appearance.configure\",\n \"title\": \"Configurar aparencia\",\n \"scope\": \"global\",\n \"targetKind\": \"appearance\",\n \"target\": {\n \"kind\": \"appearance\",\n \"resolver\": \"appearance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"density\": {\n \"enum\": [\n \"compact\",\n \"comfortable\",\n \"spacious\"\n ]\n },\n \"borders\": {\n \"type\": \"object\",\n \"properties\": {\n \"showRowBorders\": {\n \"type\": \"boolean\"\n },\n \"showColumnBorders\": {\n \"type\": \"boolean\"\n },\n \"showOuterBorder\": {\n \"type\": \"boolean\"\n },\n \"style\": {\n \"enum\": [\n \"solid\",\n \"dashed\",\n \"dotted\"\n ]\n }\n }\n },\n \"colors\": {\n \"type\": \"object\",\n \"properties\": {\n \"alternateRowBackground\": {\n \"type\": \"string\"\n },\n \"hoverBackground\": {\n \"type\": \"string\"\n }\n }\n },\n \"typography\": {\n \"type\": \"object\",\n \"properties\": {\n \"fontSize\": {\n \"type\": \"string\"\n },\n \"headerFontWeight\": {\n \"type\": \"string\"\n }\n }\n },\n \"spacing\": {\n \"type\": \"object\",\n \"properties\": {\n \"cellPadding\": {\n \"type\": \"string\"\n }\n }\n },\n \"responsive\": {\n \"type\": \"object\",\n \"properties\": {\n \"mobile\": {\n \"type\": \"object\",\n \"properties\": {\n \"horizontalScroll\": {\n \"type\": \"boolean\"\n },\n \"cardMode\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"breakpoints\": {\n \"type\": \"object\",\n \"properties\": {\n \"mobile\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n }\n }\n },\n \"animations\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n }\n }\n },\n \"elevation\": {\n \"type\": \"object\",\n \"properties\": {\n \"level\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"appearance\"\n }\n ],\n \"validators\": [\n \"css-style-safe\"\n ],\n \"affectedPaths\": [\n \"appearance\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"messages.configure\",\n \"title\": \"Configurar mensagens\",\n \"scope\": \"global\",\n \"targetKind\": \"messages\",\n \"target\": {\n \"kind\": \"messages\",\n \"resolver\": \"messages-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"states\": {\n \"type\": \"object\",\n \"properties\": {\n \"empty\": {\n \"type\": \"string\"\n },\n \"loading\": {\n \"type\": \"string\"\n }\n }\n },\n \"actions\": {\n \"type\": \"object\",\n \"properties\": {\n \"confirmations\": {\n \"type\": \"object\",\n \"properties\": {\n \"delete\": {\n \"type\": \"string\"\n }\n }\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"messages\"\n }\n ],\n \"affectedPaths\": [\n \"messages\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"localization.configure\",\n \"title\": \"Configurar localizacao\",\n \"scope\": \"global\",\n \"targetKind\": \"localization\",\n \"target\": {\n \"kind\": \"localization\",\n \"resolver\": \"localization-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"locale\": {\n \"type\": \"string\"\n },\n \"direction\": {\n \"enum\": [\n \"ltr\",\n \"rtl\"\n ]\n },\n \"dateTime\": {\n \"type\": \"object\",\n \"properties\": {\n \"dateFormat\": {\n \"type\": \"string\"\n },\n \"timeFormat\": {\n \"type\": \"string\"\n },\n \"dateTimeFormat\": {\n \"type\": \"string\"\n },\n \"firstDayOfWeek\": {\n \"enum\": [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6\n ]\n },\n \"relativeTime\": {\n \"type\": \"boolean\"\n },\n \"monthNames\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"dayNames\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"number\": {\n \"type\": \"object\",\n \"properties\": {\n \"decimalSeparator\": {\n \"type\": \"string\"\n },\n \"thousandsSeparator\": {\n \"type\": \"string\"\n },\n \"defaultPrecision\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"negativeSign\": {\n \"type\": \"string\"\n },\n \"negativeSignPosition\": {\n \"enum\": [\n \"before\",\n \"after\"\n ]\n }\n }\n },\n \"currency\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"string\"\n },\n \"symbol\": {\n \"type\": \"string\"\n },\n \"position\": {\n \"enum\": [\n \"before\",\n \"after\"\n ]\n },\n \"spacing\": {\n \"type\": \"boolean\"\n },\n \"precision\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"formatting\": {\n \"type\": \"object\",\n \"properties\": {\n \"percentageFormat\": {\n \"type\": \"string\"\n },\n \"fileSizeFormat\": {\n \"enum\": [\n \"binary\",\n \"decimal\"\n ]\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"localization\"\n }\n ],\n \"affectedPaths\": [\n \"localization\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"performance.configure\",\n \"title\": \"Configurar performance\",\n \"scope\": \"global\",\n \"targetKind\": \"performance\",\n \"target\": {\n \"kind\": \"performance\",\n \"resolver\": \"performance-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"virtualization\": {\n \"type\": \"object\",\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"itemHeight\": {\n \"type\": \"number\",\n \"minimum\": 1\n }\n }\n },\n \"debounce\": {\n \"type\": \"object\",\n \"properties\": {\n \"search\": {\n \"type\": \"number\",\n \"minimum\": 0\n },\n \"filter\": {\n \"type\": \"number\",\n \"minimum\": 0\n }\n }\n },\n \"lazyLoading\": {\n \"type\": \"object\",\n \"properties\": {\n \"images\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"performance\"\n }\n ],\n \"affectedPaths\": [\n \"performance\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"data.loadingStrategy.set\",\n \"title\": \"Definir estrategia de carregamento\",\n \"scope\": \"global\",\n \"targetKind\": \"data\",\n \"target\": {\n \"kind\": \"data\",\n \"resolver\": \"data-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"required\": [\n \"loadingStrategy\"\n ],\n \"properties\": {\n \"loadingStrategy\": {\n \"enum\": [\n \"eager\",\n \"lazy\",\n \"on-demand\"\n ]\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"set-value\",\n \"path\": \"data.loadingStrategy\"\n }\n ],\n \"affectedPaths\": [\n \"data.loadingStrategy\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"config-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n },\n {\n \"operationId\": \"accessibility.configure\",\n \"title\": \"Configurar acessibilidade\",\n \"scope\": \"global\",\n \"targetKind\": \"accessibility\",\n \"target\": {\n \"kind\": \"accessibility\",\n \"resolver\": \"accessibility-config\",\n \"ambiguityPolicy\": \"fail\",\n \"required\": false\n },\n \"inputSchema\": {\n \"type\": \"object\",\n \"minProperties\": 1,\n \"properties\": {\n \"enabled\": {\n \"type\": \"boolean\"\n },\n \"highContrast\": {\n \"type\": \"boolean\"\n },\n \"reduceMotion\": {\n \"type\": \"boolean\"\n },\n \"announcements\": {\n \"type\": \"object\",\n \"properties\": {\n \"liveRegion\": {\n \"enum\": [\n \"polite\",\n \"assertive\"\n ]\n }\n }\n },\n \"keyboard\": {\n \"type\": \"object\",\n \"properties\": {\n \"shortcuts\": {\n \"type\": \"boolean\"\n }\n }\n }\n }\n },\n \"effects\": [\n {\n \"kind\": \"merge-object\",\n \"path\": \"accessibility\"\n }\n ],\n \"requiresConfirmation\": true,\n \"affectedPaths\": [\n \"accessibility\"\n ],\n \"validators\": [\n \"editor-round-trip-preserve\"\n ],\n \"submissionImpact\": \"visual-only\",\n \"preconditions\": [\n \"config-initialized\"\n ]\n }\n ],\n \"validators\": [\n {\n \"validatorId\": \"target-column-exists\",\n \"level\": \"error\",\n \"code\": \"TB001\",\n \"description\": \"A coluna alvo deve existir na configuração.\"\n },\n {\n \"validatorId\": \"column-field-unique\",\n \"level\": \"error\",\n \"code\": \"TB002\",\n \"description\": \"O identificador técnico da coluna (field) deve ser único.\"\n },\n {\n \"validatorId\": \"renderer-type-supported\",\n \"level\": \"error\",\n \"code\": \"TB003\",\n \"description\": \"O tipo de renderizador deve ser suportado pelo componente.\"\n },\n {\n \"validatorId\": \"renderer-config-match\",\n \"level\": \"error\",\n \"code\": \"TB004\",\n \"description\": \"A configuração do renderizador deve corresponder ao tipo selecionado.\"\n },\n {\n \"validatorId\": \"grouping-fields-exist\",\n \"level\": \"error\",\n \"code\": \"TB005\",\n \"description\": \"Os campos de agrupamento devem existir na definição de colunas.\"\n },\n {\n \"validatorId\": \"filter-fields-exist\",\n \"level\": \"error\",\n \"code\": \"TB018\",\n \"description\": \"Os campos de filtro avançado devem existir no schema request do filtro governado.\"\n },\n {\n \"validatorId\": \"destructive-removal-confirmation\",\n \"level\": \"error\",\n \"code\": \"TB006\",\n \"description\": \"Remoções destrutivas de colunas ou ações exigem confirmação explícita.\"\n },\n {\n \"validatorId\": \"computed-expression-valid\",\n \"level\": \"error\",\n \"code\": \"TB007\",\n \"description\": \"A expressão de cálculo deve ser um AST Json Logic válido.\"\n },\n {\n \"validatorId\": \"remote-resource-binding-safe\",\n \"level\": \"error\",\n \"code\": \"TB008\",\n \"description\": \"A ligação com recurso remoto não deve conter URLs absolutas não permitidas.\"\n },\n {\n \"validatorId\": \"editor-round-trip-preserve\",\n \"level\": \"error\",\n \"code\": \"TB009\",\n \"description\": \"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"\n },\n {\n \"validatorId\": \"toolbar-action-id-unique\",\n \"level\": \"error\",\n \"code\": \"TB010\",\n \"description\": \"O id da ação de toolbar deve ser único em toolbar.actions[]. O efeito append-unique usa este id como chave de deduplicação.\"\n },\n {\n \"validatorId\": \"row-action-id-unique\",\n \"level\": \"error\",\n \"code\": \"TB011\",\n \"description\": \"O id da row action deve ser único em actions.row.actions[]. O efeito append-unique usa este id como chave de deduplicação.\"\n },\n {\n \"validatorId\": \"bulk-action-id-unique\",\n \"level\": \"error\",\n \"code\": \"TB017\",\n \"description\": \"O id da ação em lote deve ser único em actions.bulk.actions[]. O efeito append-unique usa este id como chave de deduplicação.\"\n },\n {\n \"validatorId\": \"format-preset-supported\",\n \"level\": \"error\",\n \"code\": \"TB012\",\n \"description\": \"O formato deve usar um preset canonico publicado em table-ai-capabilities.ts.\"\n },\n {\n \"validatorId\": \"column-width-valid\",\n \"level\": \"error\",\n \"code\": \"TB013\",\n \"description\": \"A largura deve ser auto ou uma medida simples em px, %, rem ou em.\"\n },\n {\n \"validatorId\": \"css-style-safe\",\n \"level\": \"error\",\n \"code\": \"TB014\",\n \"description\": \"Estilos inline devem permanecer em CSS simples e seguro, sem scripts, URLs perigosas ou expressoes dinamicas.\"\n },\n {\n \"validatorId\": \"value-mapping-valid\",\n \"level\": \"error\",\n \"code\": \"TB015\",\n \"description\": \"O mapeamento de valores deve ser um objeto simples com chaves estaveis e labels serializaveis.\"\n },\n {\n \"validatorId\": \"conditional-style-valid\",\n \"level\": \"error\",\n \"code\": \"TB016\",\n \"description\": \"Regras condicionais de coluna devem ter id estavel, condition Json Logic e ao menos cssClass ou style.\"\n },\n {\n \"validatorId\": \"runtime-operation-declared\",\n \"level\": \"error\",\n \"code\": \"TB019\",\n \"description\": \"Operacoes runtime devem usar operationId e input declarados em tableRuntimeOperations sem alterar a configuracao persistida.\"\n }\n ],\n \"roundTripRequirements\": [\n \"preserve-column-order\",\n \"normalize-enum-values\",\n \"maintain-renderer-precedence\",\n \"preserve-meta-ids\"\n ],\n \"presentationAffordances\": {\n \"version\": \"0.1.0\",\n \"componentId\": \"praxis-table\",\n \"defaultTargetKind\": \"column\",\n \"sourceRef\": \"praxis-ui-angular:projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts#presentationAffordances\",\n \"affordances\": [\n {\n \"id\": \"table.column.text-formatting\",\n \"targetKind\": \"column\",\n \"category\": \"format\",\n \"description\": \"Text transforms and masks for textual table columns.\",\n \"options\": [\n \"none\",\n \"uppercase\",\n \"lowercase\",\n \"titlecase\",\n \"capitalize\",\n \"uppercase|truncate|50|...\",\n \"000.000.000-00\"\n ],\n \"appliesToTypes\": [\n \"string\",\n \"text\",\n \"unknown\"\n ],\n \"unknownCompatible\": true\n },\n {\n \"id\": \"table.column.numeric-formatting\",\n \"targetKind\": \"column\",\n \"category\": \"format\",\n \"description\": \"Decimal, currency and percentage formats for numeric table columns.\",\n \"options\": [\n \"1.0-0\",\n \"1.1-1\",\n \"1.2-2\",\n \"1.0-3\",\n \"1.0-0|nosep\",\n \"BRL|symbol|2\",\n \"USD|symbol|2\",\n \"EUR|symbol|2\",\n \"BRL|code|2\",\n \"USD|code|0\",\n \"BRL|symbol|2|nosep\",\n \"EUR|symbol|2|nosep\",\n \"1.0-0|x100\",\n \"1.1-1|x100\",\n \"1.2-2|x100\"\n ],\n \"appliesToTypes\": [\n \"number\",\n \"currency\",\n \"percentage\"\n ],\n \"unknownCompatible\": false\n },\n {\n \"id\": \"table.column.date-formatting\",\n \"targetKind\": \"column\",\n \"category\": \"format\",\n \"description\": \"Date and time formats for date-like table columns.\",\n \"options\": [\n \"shortDate\",\n \"mediumDate\",\n \"longDate\",\n \"fullDate\",\n \"MMM/yyyy\",\n \"shortTime\",\n \"short\",\n \"yyyy-MM-dd\",\n \"dd/MM/yyyy\",\n \"yyyy-MM-dd HH:mm\"\n ],\n \"appliesToTypes\": [\n \"date\",\n \"datetime\",\n \"time\"\n ],\n \"unknownCompatible\": false\n },\n {\n \"id\": \"table.column.boolean-formatting\",\n \"targetKind\": \"column\",\n \"category\": \"format\",\n \"description\": \"Boolean label formats for true/false table columns.\",\n \"options\": [\n \"true-false\",\n \"yes-no\",\n \"active-inactive\",\n \"on-off\",\n \"enabled-disabled\",\n \"custom|Sim|Nao\"\n ],\n \"appliesToTypes\": [\n \"boolean\"\n ],\n \"unknownCompatible\": false\n },\n {\n \"id\": \"table.column.semantic-renderers\",\n \"targetKind\": \"column\",\n \"category\": \"renderer\",\n \"description\": \"Visual renderers for categorical, status or action-oriented table columns.\",\n \"options\": [\n \"badge\",\n \"chip\",\n \"icon\",\n \"link\",\n \"button\",\n \"progress\",\n \"avatar\",\n \"toggle\",\n \"menu\",\n \"rating\",\n \"compose\"\n ],\n \"appliesToTypes\": [\n \"string\",\n \"text\",\n \"boolean\",\n \"number\",\n \"currency\",\n \"percentage\",\n \"date\",\n \"datetime\",\n \"unknown\"\n ],\n \"unknownCompatible\": true\n },\n {\n \"id\": \"table.column.alignment-layout\",\n \"targetKind\": \"column\",\n \"category\": \"layout\",\n \"description\": \"Column alignment and composed cell layout options.\",\n \"options\": [\n \"align:start\",\n \"align:center\",\n \"align:end\",\n \"compose:row\",\n \"compose:column\",\n \"secondary-line\",\n \"prefix\",\n \"suffix\"\n ],\n \"appliesToTypes\": [\n \"string\",\n \"text\",\n \"boolean\",\n \"number\",\n \"currency\",\n \"percentage\",\n \"date\",\n \"datetime\",\n \"unknown\"\n ],\n \"unknownCompatible\": true\n }\n ]\n },\n \"examples\": [\n {\n \"id\": \"add-schema-column\",\n \"request\": \"Adicionar coluna para o campo email com o título Contato\",\n \"operationId\": \"column.add\",\n \"params\": {\n \"field\": \"email\",\n \"header\": \"Contato\",\n \"type\": \"string\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-computed-column\",\n \"request\": \"Criar coluna de idade baseada na data de nascimento\",\n \"operationId\": \"column.computed.add\",\n \"params\": {\n \"field\": \"idade\",\n \"header\": \"Idade\",\n \"expression\": {\n \"yearsSince\": [\n {\n \"var\": \"dataNascimento\"\n }\n ]\n },\n \"outputType\": \"number\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-conditional-badge\",\n \"request\": \"Mostrar badge vermelho na coluna status se o valor for \\\"atrasado\\\"\",\n \"operationId\": \"column.conditionalRenderer.add\",\n \"target\": \"status\",\n \"params\": {\n \"id\": \"badge-atrasado\",\n \"condition\": {\n \"==\": [\n {\n \"var\": \"status\"\n },\n \"atrasado\"\n ]\n },\n \"renderer\": {\n \"type\": \"badge\",\n \"badge\": {\n \"color\": \"warn\",\n \"variant\": \"filled\"\n }\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"enable-export\",\n \"request\": \"Habilitar exportação para Excel e PDF\",\n \"operationId\": \"export.enabled.set\",\n \"params\": {\n \"enabled\": true,\n \"formats\": [\n \"excel\",\n \"pdf\"\n ]\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-row-action\",\n \"request\": \"Adicionar botão de excluir na linha\",\n \"operationId\": \"rowAction.add\",\n \"params\": {\n \"id\": \"delete\",\n \"label\": \"Excluir\",\n \"action\": \"delete\",\n \"icon\": \"delete\",\n \"color\": \"warn\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-row-action-open-route\",\n \"request\": \"Adicionar botão de linha para abrir detalhe com navegação interna\",\n \"operationId\": \"rowAction.add\",\n \"params\": {\n \"id\": \"details\",\n \"label\": \"Detalhes\",\n \"action\": \"navigation.openRoute\",\n \"icon\": \"open_in_new\",\n \"globalAction\": {\n \"actionId\": \"navigation.openRoute\",\n \"payload\": {\n \"path\": \"/clientes/detalhe\",\n \"query\": {\n \"id\": \"${row.id}\"\n }\n }\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"group-by-field\",\n \"request\": \"Agrupar a tabela por departamento\",\n \"operationId\": \"grouping.set\",\n \"params\": {\n \"enabled\": true,\n \"fields\": [\n \"departamento\"\n ]\n },\n \"isPositive\": true\n },\n {\n \"id\": \"reject-invalid-renderer\",\n \"request\": \"Configurar imagem para um renderizador do tipo ícone\",\n \"operationId\": \"column.renderer.set\",\n \"target\": \"avatar\",\n \"params\": {\n \"type\": \"icon\",\n \"image\": {\n \"src\": \"...\"\n }\n },\n \"isPositive\": false\n },\n {\n \"id\": \"set-button-renderer\",\n \"request\": \"Transformar a coluna acoes em botao que executa abrir-detalhe\",\n \"operationId\": \"column.renderer.set\",\n \"target\": \"acoes\",\n \"params\": {\n \"type\": \"button\",\n \"button\": {\n \"label\": \"Abrir\",\n \"action\": {\n \"id\": \"abrir-detalhe\"\n }\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-column-conditional-style\",\n \"request\": \"Destacar a coluna status quando o valor estiver bloqueado\",\n \"operationId\": \"column.conditionalStyle.add\",\n \"target\": \"status\",\n \"params\": {\n \"id\": \"status-bloqueado\",\n \"condition\": {\n \"==\": [\n {\n \"var\": \"status\"\n },\n \"bloqueado\"\n ]\n },\n \"cssClass\": \"status-bloqueado\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-currency-format-preset\",\n \"request\": \"Formatar a coluna total como moeda brasileira\",\n \"operationId\": \"column.format.set\",\n \"target\": \"total\",\n \"params\": {\n \"format\": \"BRL|symbol|2\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-cpf-format-preset\",\n \"request\": \"Formate a coluna CPF\",\n \"operationId\": \"column.format.set\",\n \"target\": \"cpf\",\n \"params\": {\n \"format\": \"000.000.000-00\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-long-date-format-preset\",\n \"request\": \"Mostre a data de admissão por extenso\",\n \"operationId\": \"column.format.set\",\n \"target\": \"dataAdmissao\",\n \"params\": {\n \"format\": \"longDate\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-basic-column-width\",\n \"request\": \"Definir a largura da coluna nome para 240px\",\n \"operationId\": \"column.width.set\",\n \"target\": \"nome\",\n \"params\": {\n \"width\": \"240px\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-salary-align-right\",\n \"request\": \"Alinhe o salário à direita\",\n \"operationId\": \"column.align.set\",\n \"target\": \"salario\",\n \"params\": {\n \"align\": \"right\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"make-name-sticky-start\",\n \"request\": \"Fixe a coluna funcionário no início da tabela\",\n \"operationId\": \"column.sticky.set\",\n \"target\": \"funcionario\",\n \"params\": {\n \"sticky\": \"start\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"disable-cpf-sorting\",\n \"request\": \"Não permita ordenar pela coluna CPF\",\n \"operationId\": \"column.sortable.set\",\n \"target\": \"cpf\",\n \"params\": {\n \"sortable\": false\n },\n \"isPositive\": true\n },\n {\n \"id\": \"enable-department-filter\",\n \"request\": \"Deixe o departamento disponível nos filtros\",\n \"operationId\": \"column.filterable.set\",\n \"target\": \"departamento\",\n \"params\": {\n \"filterable\": true\n },\n \"isPositive\": true\n },\n {\n \"id\": \"hide-internal-id-column\",\n \"request\": \"Oculte o ID interno da tabela\",\n \"operationId\": \"column.visibility.set\",\n \"target\": \"id\",\n \"params\": {\n \"visible\": false\n },\n \"isPositive\": true\n },\n {\n \"id\": \"map-active-status-labels\",\n \"request\": \"Mostre Sim e Não na coluna ativo\",\n \"operationId\": \"column.valueMapping.set\",\n \"target\": \"ativo\",\n \"params\": {\n \"valueMapping\": {\n \"true\": \"Sim\",\n \"false\": \"Não\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"set-avatar-chip-renderer\",\n \"request\": \"Corrija o avatar do funcionário e mantenha o nome como chip\",\n \"operationId\": \"column.renderer.set\",\n \"target\": \"funcionario\",\n \"params\": {\n \"type\": \"compose\",\n \"compose\": {\n \"items\": [\n {\n \"type\": \"avatar\",\n \"avatar\": {\n \"srcField\": \"avatarUrl\",\n \"initialsField\": \"funcionario\",\n \"shape\": \"circle\",\n \"backgroundColor\": \"#E3F2FD\",\n \"textColor\": \"#0D47A1\"\n }\n },\n {\n \"type\": \"chip\",\n \"chip\": {\n \"textField\": \"funcionario\",\n \"variant\": \"soft\"\n }\n }\n ]\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"animate-high-salary-row\",\n \"request\": \"Anime suavemente as linhas com salário acima de 30000\",\n \"operationId\": \"row.conditionalRenderer.add\",\n \"params\": {\n \"id\": \"salario-alto-pulse\",\n \"condition\": {\n \">\": [\n {\n \"var\": \"salario\"\n },\n 30000\n ]\n },\n \"animation\": {\n \"preset\": \"pulse-soft\",\n \"trigger\": \"onAppear\",\n \"intensity\": \"subtle\",\n \"repeat\": \"once\",\n \"durationMs\": 1200\n },\n \"description\": \"Destaca linhas de salário alto sem alterar os dados.\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"style-low-salary-cell\",\n \"request\": \"Para salários menores que 30000, use fundo laranja claro\",\n \"operationId\": \"column.conditionalStyle.add\",\n \"target\": \"salario\",\n \"params\": {\n \"id\": \"salario-baixo-laranja\",\n \"condition\": {\n \"<\": [\n {\n \"var\": \"salario\"\n },\n 30000\n ]\n },\n \"style\": {\n \"backgroundColor\": \"#FFF3E0\",\n \"color\": \"#8A4B00\"\n },\n \"tooltip\": {\n \"text\": \"Salário abaixo do recorte configurado\",\n \"position\": \"top\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"enable-advanced-filters-human\",\n \"request\": \"Ative filtros avançados e deixe CPF e departamento sempre visíveis\",\n \"operationId\": \"filter.advanced.configure\",\n \"params\": {\n \"enabled\": true,\n \"queryBuilder\": true,\n \"savePresets\": true,\n \"settings\": {\n \"mode\": \"filter\",\n \"showAdvanced\": true,\n \"alwaysVisibleFields\": [\n \"cpf\",\n \"departamento\"\n ]\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"add-salary-to-advanced-filters-human\",\n \"request\": \"Inclua também Salário nesses filtros\",\n \"operationId\": \"filter.advanced.fields.add\",\n \"params\": {\n \"fields\": [\n \"salario\"\n ],\n \"selected\": true,\n \"alwaysVisible\": true\n },\n \"isPositive\": true\n },\n {\n \"id\": \"remove-active-from-advanced-filters-human\",\n \"request\": \"Agora remova Ativo desses filtros\",\n \"operationId\": \"filter.advanced.fields.remove\",\n \"params\": {\n \"fields\": [\n \"ativo\"\n ],\n \"selected\": true,\n \"alwaysVisible\": true\n },\n \"isPositive\": true\n },\n {\n \"id\": \"enable-table-filters-human\",\n \"request\": \"Habilite os filtros dinâmicos da tabela\",\n \"operationId\": \"behavior.filtering.configure\",\n \"params\": {\n \"enabled\": true,\n \"strategy\": \"client\",\n \"debounceMs\": 250\n },\n \"isPositive\": true\n },\n {\n \"id\": \"compact-density-human\",\n \"request\": \"Deixe a tabela mais compacta\",\n \"operationId\": \"appearance.density.set\",\n \"params\": {\n \"density\": \"compact\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"toolbar-search-refresh-human\",\n \"request\": \"Mostre busca e botão de atualizar na toolbar\",\n \"operationId\": \"toolbar.configure\",\n \"params\": {\n \"visible\": true,\n \"showSearch\": true,\n \"showRefresh\": true\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-server-pagination\",\n \"request\": \"Usar paginacao no servidor com 50 linhas por pagina\",\n \"operationId\": \"behavior.pagination.configure\",\n \"params\": {\n \"enabled\": true,\n \"strategy\": \"server\",\n \"pageSize\": 50,\n \"position\": \"bottom\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-default-sorting\",\n \"request\": \"Ordenar inicialmente por data de criacao decrescente\",\n \"operationId\": \"behavior.sorting.configure\",\n \"params\": {\n \"enabled\": true,\n \"strategy\": \"server\",\n \"defaultSort\": {\n \"field\": \"createdAt\",\n \"direction\": \"desc\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-bulk-actions\",\n \"request\": \"Habilitar acoes em lote na toolbar\",\n \"operationId\": \"actions.bulk.configure\",\n \"params\": {\n \"enabled\": true,\n \"position\": \"toolbar\"\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-localization\",\n \"request\": \"Configurar a tabela para portugues do Brasil\",\n \"operationId\": \"localization.configure\",\n \"params\": {\n \"locale\": \"pt-BR\",\n \"direction\": \"ltr\",\n \"dateTime\": {\n \"dateFormat\": \"dd/MM/yyyy\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"configure-accessibility\",\n \"request\": \"Ativar alto contraste e reduzir animacoes\",\n \"operationId\": \"accessibility.configure\",\n \"params\": {\n \"enabled\": true,\n \"highContrast\": true,\n \"reduceMotion\": true,\n \"announcements\": {\n \"liveRegion\": \"polite\"\n }\n },\n \"isPositive\": true\n },\n {\n \"id\": \"require-removal-confirmation\",\n \"request\": \"Remover a coluna nome\",\n \"operationId\": \"column.remove\",\n \"target\": \"nome\",\n \"isPositive\": true\n }\n ]\n}",
|
|
22031
22080
|
"sourcePointer": "praxis-ui-angular/projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
|
|
22032
|
-
"contentHash": "
|
|
22081
|
+
"contentHash": "064b1694a3f4bb6f3da97f083909d0289d36649126ee67ecca090fe39ce5fdba",
|
|
22033
22082
|
"sourceKind": "component_definition",
|
|
22034
22083
|
"sourceId": "praxis-table",
|
|
22035
22084
|
"corpusVersion": "1.0.0"
|