@praxisui/table 9.0.5-rc.21 → 9.0.5-rc.23

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-08-14T20:54:13.811Z",
3
+ "generatedAt": "2026-08-15T00:41:03.182Z",
4
4
  "packageName": "@praxisui/table",
5
- "packageVersion": "9.0.5-rc.21",
5
+ "packageVersion": "9.0.5-rc.23",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 3,
@@ -11024,6 +11024,18 @@
11024
11024
  "dependsOn": "toolbar.visible",
11025
11025
  "safetyNotes": "Invalid Json Logic falha fechado; a acao nao deve ser exibida em nenhum ambiente."
11026
11026
  },
11027
+ {
11028
+ "path": "actions.collection.discovery.enabled",
11029
+ "category": "actions",
11030
+ "valueKind": "boolean",
11031
+ "description": "Controla a materialização de ações de coleção descobertas por HATEOAS/capabilities.",
11032
+ "critical": true,
11033
+ "intentExamples": [
11034
+ "desligar ações descobertas no seletor",
11035
+ "manter somente ações explícitas da coleção"
11036
+ ],
11037
+ "safetyNotes": "Desabilitar não remove ações explícitas, ações por linha, leitura remota, schema ou paginação."
11038
+ },
11027
11039
  {
11028
11040
  "path": "actions.row.enabled",
11029
11041
  "category": "actions",
@@ -27308,6 +27320,54 @@
27308
27320
  "config-initialized"
27309
27321
  ]
27310
27322
  },
27323
+ {
27324
+ "operationId": "actions.collection.configure",
27325
+ "title": "Configurar descoberta de acoes da colecao",
27326
+ "scope": "global",
27327
+ "targetKind": "toolbar",
27328
+ "target": {
27329
+ "kind": "toolbar",
27330
+ "resolver": "toolbar-config",
27331
+ "ambiguityPolicy": "fail",
27332
+ "required": false
27333
+ },
27334
+ "inputSchema": {
27335
+ "type": "object",
27336
+ "required": [
27337
+ "discovery"
27338
+ ],
27339
+ "properties": {
27340
+ "discovery": {
27341
+ "type": "object",
27342
+ "required": [
27343
+ "enabled"
27344
+ ],
27345
+ "properties": {
27346
+ "enabled": {
27347
+ "type": "boolean"
27348
+ }
27349
+ }
27350
+ }
27351
+ }
27352
+ },
27353
+ "effects": [
27354
+ {
27355
+ "kind": "merge-object",
27356
+ "path": "actions.collection"
27357
+ }
27358
+ ],
27359
+ "affectedPaths": [
27360
+ "actions.collection",
27361
+ "actions.collection.discovery.enabled"
27362
+ ],
27363
+ "validators": [
27364
+ "editor-round-trip-preserve"
27365
+ ],
27366
+ "submissionImpact": "config-only",
27367
+ "preconditions": [
27368
+ "config-initialized"
27369
+ ]
27370
+ },
27311
27371
  {
27312
27372
  "operationId": "actions.row.configure",
27313
27373
  "title": "Configurar acoes de linha",
@@ -29450,9 +29510,9 @@
29450
29510
  {
29451
29511
  "chunkIndex": 10,
29452
29512
  "chunkKind": "capabilities",
29453
- "content": "Schema Capability:\n - Path: toolbar.appearance.tokens.titleFg\n Category: toolbar\n Kind: string\n Description: Token CSS para a cor do título da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.subtitleFg\n Category: toolbar\n Kind: string\n Description: Token CSS para a cor do subtítulo da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.iconFg\n Category: toolbar\n Kind: string\n Description: Token CSS para a cor do ícone da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.titleFontSize\n Category: toolbar\n Kind: string\n Description: Token CSS para tamanho do título da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.subtitleFontSize\n Category: toolbar\n Kind: string\n Description: Token CSS para tamanho do subtítulo da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.titleFontWeight\n Category: toolbar\n Kind: string\n Description: Token CSS para peso tipográfico do título da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityGap\n Category: toolbar\n Kind: string\n Description: Token CSS para o espaçamento entre ícone e copy da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityFilterGap\n Category: toolbar\n Kind: string\n Description: Token CSS para o respiro vertical entre a identidade da toolbar e filtros/controles quando a identidade ocupa linha própria.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityMinHeight\n Category: toolbar\n Kind: string\n Description: Token CSS para a altura mínima do bloco de identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityMarginBottom\n Category: toolbar\n Kind: string\n Description: Token CSS para o espaçamento inferior complementar da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityIconSize\n Category: toolbar\n Kind: string\n Description: Token CSS para o tamanho do container do ícone da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityIconRadius\n Category: toolbar\n Kind: string\n Description: Token CSS para o raio do container do ícone da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.layout.alignment\n Category: toolbar\n Kind: enum\n Description: Alinhamento do conteúdo da toolbar.\n\nSchema Capability:\n - Path: toolbar.filters.enabled\n Category: toolbar\n Kind: boolean\n Description: Exibe filtros rápidos na toolbar.\n\nSchema Capability:\n - Path: toolbar.settingsMenu.enabled\n Category: toolbar\n Kind: boolean\n Description: Mostra menu de configurações (densidade, colunas etc.).\n\nSchema Capability:\n - Path: toolbar.actions[]\n Category: toolbar\n Kind: array\n Description: Ações exibidas na barra de ferramentas da tabela.\n\nSchema Capability:\n - Path: toolbar.actions[].visibleWhen\n Category: toolbar\n Kind: expression\n Description: Condicao canonica em JSON Logic para exibir a acao da toolbar.\n\nSchema Capability:\n - Path: actions.row.enabled\n Category: actions\n Kind: boolean\n Description: Habilita coluna de ações por linha.\n\nSchema Capability:\n - Path: actions.row.display\n Category: actions\n Kind: enum\n Description: Modo de exibição das ações (menu/buttons/icons).\n\nSchema Capability:\n - Path: actions.row.trigger\n Category: actions\n Kind: enum\n Description: Como as ações aparecem (hover/always/click).\n\nSchema Capability:\n - Path: actions.row.discovery.enabled\n Category: actions\n Kind: boolean\n Description: Controla se a tabela enriquece ações por linha com discovery contextual de HATEOAS/capabilities.\n\nSchema Capability:\n - Path: actions.row.actions[]\n Category: actions\n Kind: array\n Description: Ações curadas exibidas em cada linha da tabela. Use para criar botões de linha com GlobalActionRef governada, como surface.open.\n\nSchema Capability:\n - Path: actions.row.actions[].recordSurface\n Category: actions\n Kind: object\n Description: ResourceSurfaceCatalogItem canonico preservado para uma acao de linha abrir a superficie relacionada ao registro clicado sem sobrescrever a identidade da surface.\n\nSchema Capability:\n - Path: actions.row.actions[].globalAction.[actionId]\n Category: actions\n Kind: string\n Description: Identificador canônico de global action para a ação por linha (ex.: \"navigation.openRoute\", \"surface.open\", \"toast.success\").\n\nSchema Capability:\n - Path: actions.row.actions[].globalAction.payload\n Category: actions\n Kind: object\n Description: Payload estruturado da global action por linha. Para `navigation.openRoute`, templates como `${row.id}` são resolvidos antes da navegação; para ações como `surface.open`, `payload.*` continua sendo o envelope canônico do evento consumido pelo destino.\n\nSchema Capability:\n - Path: actions.row.actions[].visibleWhen\n Category: actions\n Kind: expression\n Description: Condicao canonica em JSON Logic para exibir a acao por linha.\n\nSchema Capability:\n - Path: actions.row.actions[].disabledWhen\n Category: actions\n Kind: expression\n Description: Condicao canonica em JSON Logic para desabilitar a acao por linha.\n\nSchema Capability:\n - Path: actions.row.actions[].effects\n Category: actions\n Kind: array\n Description: Array canonico de efeitos runtime da acao por linha, alinhado com PraxisRuntimeGlobalActionEffect.\n\nSchema Capability:\n - Path: actions.row.actions[].effects[].kind\n Category: actions\n Kind: enum\n Description: Tipo de efeito runtime da acao por linha. Neste corte, apenas global-action e suportado.\n\nSchema Capability:\n - Path: actions.row.actions[].effects[].globalAction.[actionId]\n Category: actions\n Kind: string\n Description: Identificador canonico da GlobalActionRef dentro do efeito runtime por linha.\n\nSchema Capability:\n - Path: actions.row.actions[].effects[].globalAction.payload\n Category: actions\n Kind: object\n Description: Payload estruturado da GlobalActionRef dentro do efeito runtime por linha.\n\nSchema Capability:\n - Path: actions.bulk.enabled\n Category: actions\n Kind: boolean\n Description: Habilita ações em lote.\n\nSchema Capability:\n - Path: actions.bulk.position\n Category: actions\n Kind: enum\n Description: Posição das ações em lote.\n\nSchema Capability:\n - Path: actions.bulk.actions[]\n Category: actions\n Kind: array\n Description: Ações curadas para operar sobre a seleção atual da tabela. Use para criar botões em lote com GlobalActionRef governada.\n\nSchema Capability:\n - Path: actions.bulk.actions[].globalAction.[actionId]\n Category: actions\n Kind: string\n Description: Identificador canônico de global action para a ação em lote.\n\nSchema Capability:\n - Path: actions.bulk.actions[].globalAction.payload\n Category: actions\n Kind: object\n Description: Payload estruturado da global action em lote. Deve permanecer alinhado ao schema da action escolhida e ao contexto da seleção atual; para `navigation.openRoute`, use templates como `${runtime.selectedIds}` quando precisar enviar os IDs selecionados.\n\nSchema Capability:\n - Path: actions.bulk.actions[].effects\n Category: actions\n Kind: array\n Description: Array canonico de efeitos runtime da acao em lote, alinhado com PraxisRuntimeGlobalActionEffect.\n\nSchema Capability:\n - Path: actions.bulk.actions[].effects[].kind\n Category: actions\n Kind: enum\n Description: Tipo de efeito runtime da acao em lote. Neste corte, apenas global-action e suportado.\n\nSchema Capability:\n - Path: actions.bulk.actions[].effects[].globalAction.[actionId]\n Category: actions\n Kind: string\n Description: Identificador canonico da GlobalActionRef dentro do efeito runtime em lote.",
29513
+ "content": "Schema Capability:\n - Path: toolbar.appearance.tokens.titleFg\n Category: toolbar\n Kind: string\n Description: Token CSS para a cor do título da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.subtitleFg\n Category: toolbar\n Kind: string\n Description: Token CSS para a cor do subtítulo da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.iconFg\n Category: toolbar\n Kind: string\n Description: Token CSS para a cor do ícone da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.titleFontSize\n Category: toolbar\n Kind: string\n Description: Token CSS para tamanho do título da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.subtitleFontSize\n Category: toolbar\n Kind: string\n Description: Token CSS para tamanho do subtítulo da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.titleFontWeight\n Category: toolbar\n Kind: string\n Description: Token CSS para peso tipográfico do título da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityGap\n Category: toolbar\n Kind: string\n Description: Token CSS para o espaçamento entre ícone e copy da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityFilterGap\n Category: toolbar\n Kind: string\n Description: Token CSS para o respiro vertical entre a identidade da toolbar e filtros/controles quando a identidade ocupa linha própria.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityMinHeight\n Category: toolbar\n Kind: string\n Description: Token CSS para a altura mínima do bloco de identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityMarginBottom\n Category: toolbar\n Kind: string\n Description: Token CSS para o espaçamento inferior complementar da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityIconSize\n Category: toolbar\n Kind: string\n Description: Token CSS para o tamanho do container do ícone da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.appearance.tokens.identityIconRadius\n Category: toolbar\n Kind: string\n Description: Token CSS para o raio do container do ícone da identidade da toolbar.\n\nSchema Capability:\n - Path: toolbar.layout.alignment\n Category: toolbar\n Kind: enum\n Description: Alinhamento do conteúdo da toolbar.\n\nSchema Capability:\n - Path: toolbar.filters.enabled\n Category: toolbar\n Kind: boolean\n Description: Exibe filtros rápidos na toolbar.\n\nSchema Capability:\n - Path: toolbar.settingsMenu.enabled\n Category: toolbar\n Kind: boolean\n Description: Mostra menu de configurações (densidade, colunas etc.).\n\nSchema Capability:\n - Path: toolbar.actions[]\n Category: toolbar\n Kind: array\n Description: Ações exibidas na barra de ferramentas da tabela.\n\nSchema Capability:\n - Path: toolbar.actions[].visibleWhen\n Category: toolbar\n Kind: expression\n Description: Condicao canonica em JSON Logic para exibir a acao da toolbar.\n\nSchema Capability:\n - Path: actions.collection.discovery.enabled\n Category: actions\n Kind: boolean\n Description: Controla a materialização de ações de coleção descobertas por HATEOAS/capabilities.\n\nSchema Capability:\n - Path: actions.row.enabled\n Category: actions\n Kind: boolean\n Description: Habilita coluna de ações por linha.\n\nSchema Capability:\n - Path: actions.row.display\n Category: actions\n Kind: enum\n Description: Modo de exibição das ações (menu/buttons/icons).\n\nSchema Capability:\n - Path: actions.row.trigger\n Category: actions\n Kind: enum\n Description: Como as ações aparecem (hover/always/click).\n\nSchema Capability:\n - Path: actions.row.discovery.enabled\n Category: actions\n Kind: boolean\n Description: Controla se a tabela enriquece ações por linha com discovery contextual de HATEOAS/capabilities.\n\nSchema Capability:\n - Path: actions.row.actions[]\n Category: actions\n Kind: array\n Description: Ações curadas exibidas em cada linha da tabela. Use para criar botões de linha com GlobalActionRef governada, como surface.open.\n\nSchema Capability:\n - Path: actions.row.actions[].recordSurface\n Category: actions\n Kind: object\n Description: ResourceSurfaceCatalogItem canonico preservado para uma acao de linha abrir a superficie relacionada ao registro clicado sem sobrescrever a identidade da surface.\n\nSchema Capability:\n - Path: actions.row.actions[].globalAction.[actionId]\n Category: actions\n Kind: string\n Description: Identificador canônico de global action para a ação por linha (ex.: \"navigation.openRoute\", \"surface.open\", \"toast.success\").\n\nSchema Capability:\n - Path: actions.row.actions[].globalAction.payload\n Category: actions\n Kind: object\n Description: Payload estruturado da global action por linha. Para `navigation.openRoute`, templates como `${row.id}` são resolvidos antes da navegação; para ações como `surface.open`, `payload.*` continua sendo o envelope canônico do evento consumido pelo destino.\n\nSchema Capability:\n - Path: actions.row.actions[].visibleWhen\n Category: actions\n Kind: expression\n Description: Condicao canonica em JSON Logic para exibir a acao por linha.\n\nSchema Capability:\n - Path: actions.row.actions[].disabledWhen\n Category: actions\n Kind: expression\n Description: Condicao canonica em JSON Logic para desabilitar a acao por linha.\n\nSchema Capability:\n - Path: actions.row.actions[].effects\n Category: actions\n Kind: array\n Description: Array canonico de efeitos runtime da acao por linha, alinhado com PraxisRuntimeGlobalActionEffect.\n\nSchema Capability:\n - Path: actions.row.actions[].effects[].kind\n Category: actions\n Kind: enum\n Description: Tipo de efeito runtime da acao por linha. Neste corte, apenas global-action e suportado.\n\nSchema Capability:\n - Path: actions.row.actions[].effects[].globalAction.[actionId]\n Category: actions\n Kind: string\n Description: Identificador canonico da GlobalActionRef dentro do efeito runtime por linha.\n\nSchema Capability:\n - Path: actions.row.actions[].effects[].globalAction.payload\n Category: actions\n Kind: object\n Description: Payload estruturado da GlobalActionRef dentro do efeito runtime por linha.\n\nSchema Capability:\n - Path: actions.bulk.enabled\n Category: actions\n Kind: boolean\n Description: Habilita ações em lote.\n\nSchema Capability:\n - Path: actions.bulk.position\n Category: actions\n Kind: enum\n Description: Posição das ações em lote.\n\nSchema Capability:\n - Path: actions.bulk.actions[]\n Category: actions\n Kind: array\n Description: Ações curadas para operar sobre a seleção atual da tabela. Use para criar botões em lote com GlobalActionRef governada.\n\nSchema Capability:\n - Path: actions.bulk.actions[].globalAction.[actionId]\n Category: actions\n Kind: string\n Description: Identificador canônico de global action para a ação em lote.\n\nSchema Capability:\n - Path: actions.bulk.actions[].globalAction.payload\n Category: actions\n Kind: object\n Description: Payload estruturado da global action em lote. Deve permanecer alinhado ao schema da action escolhida e ao contexto da seleção atual; para `navigation.openRoute`, use templates como `${runtime.selectedIds}` quando precisar enviar os IDs selecionados.\n\nSchema Capability:\n - Path: actions.bulk.actions[].effects\n Category: actions\n Kind: array\n Description: Array canonico de efeitos runtime da acao em lote, alinhado com PraxisRuntimeGlobalActionEffect.\n\nSchema Capability:\n - Path: actions.bulk.actions[].effects[].kind\n Category: actions\n Kind: enum\n Description: Tipo de efeito runtime da acao em lote. Neste corte, apenas global-action e suportado.",
29454
29514
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-component-ai-capabilities.ts",
29455
- "contentHash": "15e06f727f61135cea529be42c9fc70d6a2e471b40f0c8e133c38e525a06b44c",
29515
+ "contentHash": "e23863e2446228d07a337bbab8357219f6857f7a3d33a0c37022f19955ada195",
29456
29516
  "sourceKind": "component_definition",
29457
29517
  "sourceId": "praxis-table",
29458
29518
  "corpusVersion": "1.0.0"
@@ -29460,9 +29520,9 @@
29460
29520
  {
29461
29521
  "chunkIndex": 11,
29462
29522
  "chunkKind": "capabilities",
29463
- "content": "Schema Capability:\n - Path: actions.bulk.actions[].effects[].globalAction.payload\n Category: actions\n Kind: object\n Description: Payload estruturado da GlobalActionRef dentro do efeito runtime em lote.\n\nSchema Capability:\n - Path: actions.context.enabled\n Category: actions\n Kind: boolean\n Description: Habilita menu de contexto (clique direito/long press).\n\nSchema Capability:\n - Path: actions.context.trigger\n Category: actions\n Kind: enum\n Description: Trigger para abrir o menu de contexto.\n\nSchema Capability:\n - Path: actions.confirmations.default\n Category: actions\n Kind: object\n Description: Texto padrão de confirmação para ações perigosas.\n\nSchema Capability:\n - Path: toolbar.actions[].globalAction.[actionId]\n Category: toolbar\n Kind: string\n Description: Identificador canônico de global action para ações da toolbar (ex.: \"navigation.openRoute\", \"surface.open\", \"dialog.open\").\n\nSchema Capability:\n - Path: toolbar.actions[].globalAction.payload\n Category: toolbar\n Kind: object\n Description: Payload estruturado da global action da toolbar. Para `surface.open`, preserve a semântica canônica do catálogo compartilhado: `payload.*` representa o envelope do evento e `runtime.*` referencia estado exposto diretamente pelo host.\n\nSchema Capability:\n - Path: toolbar.actions[].effects\n Category: toolbar\n Kind: array\n Description: Array canonico de efeitos runtime da acao da toolbar, alinhado com PraxisRuntimeGlobalActionEffect.\n\nSchema Capability:\n - Path: toolbar.actions[].effects[].kind\n Category: toolbar\n Kind: enum\n Description: Tipo de efeito runtime da acao da toolbar. Neste corte, apenas global-action e suportado.\n\nSchema Capability:\n - Path: toolbar.actions[].effects[].globalAction.[actionId]\n Category: toolbar\n Kind: string\n Description: Identificador canonico da GlobalActionRef dentro do efeito runtime da toolbar.\n\nSchema Capability:\n - Path: toolbar.actions[].effects[].globalAction.payload\n Category: toolbar\n Kind: object\n Description: Payload estruturado da GlobalActionRef dentro do efeito runtime da toolbar.\n\nSchema Capability:\n - Path: export\n Category: export\n Kind: object\n Description: Configuração global de exportação da tabela.\n\nSchema Capability:\n - Path: export.enabled\n Category: export\n Kind: boolean\n Description: Habilita funcionalidades de exportação.\n\nSchema Capability:\n - Path: export.formats\n Category: export\n Kind: array\n Description: Formatos permitidos.\n\nSchema Capability:\n - Path: export.general.includeHeaders\n Category: export\n Kind: boolean\n Description: Inclui cabeçalhos no arquivo exportado.\n\nSchema Capability:\n - Path: export.general.scope\n Category: export\n Kind: enum\n Description: Define o escopo dos dados exportados: auto, selected, filtered, currentPage ou all.\n\nSchema Capability:\n - Path: export.general.maxRows\n Category: export\n Kind: number\n Description: Limite de linhas para exportação.\n\nSchema Capability:\n - Path: export.excel.visibleCurrentPage\n Category: export\n Kind: boolean\n Description: Exibe a ação local \"Excel da página atual\", separada do Excel via provider.\n\nSchema Capability:\n - Path: export.excel.autoFitColumns\n Category: export\n Kind: boolean\n Description: Auto-ajusta largura de colunas na planilha.\n\nSchema Capability:\n - Path: export.pdf.orientation\n Category: export\n Kind: enum\n Description: Orientação do PDF.\n\nSchema Capability:\n - Path: export.pdf.pageSize\n Category: export\n Kind: enum\n Description: Tamanho da página no PDF.\n\nSchema Capability:\n - Path: export.csv.delimiter\n Category: export\n Kind: enum\n Description: Separador do CSV.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[]\n Category: runtime\n Kind: array\n Description: Operacoes runtime revisaveis da tabela para aplicar filtros ou executar exportacao sem alterar a configuracao persistida.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[].operationId\n Category: runtime\n Kind: enum\n Description: Operacao runtime canonica permitida para a tabela.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[].input.criteria\n Category: runtime\n Kind: object\n Description: Criterios de filtro a aplicar no runtime, usando campos declarados no catalogo de filtros. A semantica atual e uma conjuncao simples; expressoes booleanas compostas como OR, anyOf, oneOf ou allOf ainda nao fazem parte deste contrato.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[].input.format\n Category: runtime\n Kind: enum\n Description: Formato da exportacao runtime.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[].input.scope\n Category: runtime\n Kind: enum\n Description: Escopo da exportacao runtime: selected, filtered, currentPage, all ou auto.\n\nSchema Capability:\n - Path: messages.states.empty\n Category: messages\n Kind: string\n Description: Mensagem para estado vazio.\n\nSchema Capability:\n - Path: messages.states.loading\n Category: messages\n Kind: string\n Description: Mensagem de loading.\n\nSchema Capability:\n - Path: messages.actions.confirmations.delete\n Category: messages\n Kind: string\n Description: Texto de confirmação de exclusão.\n\nSchema Capability:\n - Path: localization.locale\n Category: localization\n Kind: string\n Description: Locale principal (ex.: pt-BR, en-US).\n\nSchema Capability:\n - Path: localization.direction\n Category: localization\n Kind: enum\n Description: Direção do texto (ltr/rtl).\n\nSchema Capability:\n - Path: localization.dateTime.dateFormat\n Category: localization\n Kind: string\n Description: Formato padrao de datas (DatePipe).\n\nSchema Capability:\n - Path: localization.dateTime.timeFormat\n Category: localization\n Kind: string\n Description: Formato padrao de horas (DatePipe).\n\nSchema Capability:\n - Path: localization.dateTime.dateTimeFormat\n Category: localization\n Kind: string\n Description: Formato padrao de data e hora (DatePipe).\n\nSchema Capability:\n - Path: localization.dateTime.firstDayOfWeek\n Category: localization\n Kind: number\n Description: Primeiro dia da semana (0=domingo).\n\nSchema Capability:\n - Path: localization.dateTime.relativeTime\n Category: localization\n Kind: boolean\n Description: Habilita formato relativo (ex.: ha 2 dias).\n\nSchema Capability:\n - Path: localization.dateTime.monthNames\n Category: localization\n Kind: array\n Description: Lista de nomes dos meses.\n\nSchema Capability:\n - Path: localization.dateTime.dayNames\n Category: localization\n Kind: array\n Description: Lista de nomes dos dias da semana.\n\nSchema Capability:\n - Path: localization.number.decimalSeparator\n Category: localization\n Kind: string\n Description: Separador decimal.\n\nSchema Capability:\n - Path: localization.number.thousandsSeparator\n Category: localization\n Kind: string\n Description: Separador de milhares.\n\nSchema Capability:\n - Path: localization.number.defaultPrecision\n Category: localization\n Kind: number\n Description: Casas decimais padrao.\n\nSchema Capability:\n - Path: localization.number.negativeSign\n Category: localization\n Kind: string\n Description: Simbolo de negativo.\n\nSchema Capability:\n - Path: localization.number.negativeSignPosition\n Category: localization\n Kind: enum\n Description: Posicao do sinal negativo.\n\nSchema Capability:\n - Path: localization.currency.code\n Category: localization\n Kind: string\n Description: Codigo da moeda (ISO 4217).\n\nSchema Capability:\n - Path: localization.currency.symbol\n Category: localization\n Kind: string\n Description: Simbolo da moeda.\n\nSchema Capability:\n - Path: localization.currency.position\n Category: localization\n Kind: enum\n Description: Posicao do simbolo da moeda.",
29523
+ "content": "Schema Capability:\n - Path: actions.bulk.actions[].effects[].globalAction.[actionId]\n Category: actions\n Kind: string\n Description: Identificador canonico da GlobalActionRef dentro do efeito runtime em lote.\n\nSchema Capability:\n - Path: actions.bulk.actions[].effects[].globalAction.payload\n Category: actions\n Kind: object\n Description: Payload estruturado da GlobalActionRef dentro do efeito runtime em lote.\n\nSchema Capability:\n - Path: actions.context.enabled\n Category: actions\n Kind: boolean\n Description: Habilita menu de contexto (clique direito/long press).\n\nSchema Capability:\n - Path: actions.context.trigger\n Category: actions\n Kind: enum\n Description: Trigger para abrir o menu de contexto.\n\nSchema Capability:\n - Path: actions.confirmations.default\n Category: actions\n Kind: object\n Description: Texto padrão de confirmação para ações perigosas.\n\nSchema Capability:\n - Path: toolbar.actions[].globalAction.[actionId]\n Category: toolbar\n Kind: string\n Description: Identificador canônico de global action para ações da toolbar (ex.: \"navigation.openRoute\", \"surface.open\", \"dialog.open\").\n\nSchema Capability:\n - Path: toolbar.actions[].globalAction.payload\n Category: toolbar\n Kind: object\n Description: Payload estruturado da global action da toolbar. Para `surface.open`, preserve a semântica canônica do catálogo compartilhado: `payload.*` representa o envelope do evento e `runtime.*` referencia estado exposto diretamente pelo host.\n\nSchema Capability:\n - Path: toolbar.actions[].effects\n Category: toolbar\n Kind: array\n Description: Array canonico de efeitos runtime da acao da toolbar, alinhado com PraxisRuntimeGlobalActionEffect.\n\nSchema Capability:\n - Path: toolbar.actions[].effects[].kind\n Category: toolbar\n Kind: enum\n Description: Tipo de efeito runtime da acao da toolbar. Neste corte, apenas global-action e suportado.\n\nSchema Capability:\n - Path: toolbar.actions[].effects[].globalAction.[actionId]\n Category: toolbar\n Kind: string\n Description: Identificador canonico da GlobalActionRef dentro do efeito runtime da toolbar.\n\nSchema Capability:\n - Path: toolbar.actions[].effects[].globalAction.payload\n Category: toolbar\n Kind: object\n Description: Payload estruturado da GlobalActionRef dentro do efeito runtime da toolbar.\n\nSchema Capability:\n - Path: export\n Category: export\n Kind: object\n Description: Configuração global de exportação da tabela.\n\nSchema Capability:\n - Path: export.enabled\n Category: export\n Kind: boolean\n Description: Habilita funcionalidades de exportação.\n\nSchema Capability:\n - Path: export.formats\n Category: export\n Kind: array\n Description: Formatos permitidos.\n\nSchema Capability:\n - Path: export.general.includeHeaders\n Category: export\n Kind: boolean\n Description: Inclui cabeçalhos no arquivo exportado.\n\nSchema Capability:\n - Path: export.general.scope\n Category: export\n Kind: enum\n Description: Define o escopo dos dados exportados: auto, selected, filtered, currentPage ou all.\n\nSchema Capability:\n - Path: export.general.maxRows\n Category: export\n Kind: number\n Description: Limite de linhas para exportação.\n\nSchema Capability:\n - Path: export.excel.visibleCurrentPage\n Category: export\n Kind: boolean\n Description: Exibe a ação local \"Excel da página atual\", separada do Excel via provider.\n\nSchema Capability:\n - Path: export.excel.autoFitColumns\n Category: export\n Kind: boolean\n Description: Auto-ajusta largura de colunas na planilha.\n\nSchema Capability:\n - Path: export.pdf.orientation\n Category: export\n Kind: enum\n Description: Orientação do PDF.\n\nSchema Capability:\n - Path: export.pdf.pageSize\n Category: export\n Kind: enum\n Description: Tamanho da página no PDF.\n\nSchema Capability:\n - Path: export.csv.delimiter\n Category: export\n Kind: enum\n Description: Separador do CSV.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[]\n Category: runtime\n Kind: array\n Description: Operacoes runtime revisaveis da tabela para aplicar filtros ou executar exportacao sem alterar a configuracao persistida.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[].operationId\n Category: runtime\n Kind: enum\n Description: Operacao runtime canonica permitida para a tabela.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[].input.criteria\n Category: runtime\n Kind: object\n Description: Criterios de filtro a aplicar no runtime, usando campos declarados no catalogo de filtros. A semantica atual e uma conjuncao simples; expressoes booleanas compostas como OR, anyOf, oneOf ou allOf ainda nao fazem parte deste contrato.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[].input.format\n Category: runtime\n Kind: enum\n Description: Formato da exportacao runtime.\n\nSchema Capability:\n - Path: tableRuntimeOperations.operations[].input.scope\n Category: runtime\n Kind: enum\n Description: Escopo da exportacao runtime: selected, filtered, currentPage, all ou auto.\n\nSchema Capability:\n - Path: messages.states.empty\n Category: messages\n Kind: string\n Description: Mensagem para estado vazio.\n\nSchema Capability:\n - Path: messages.states.loading\n Category: messages\n Kind: string\n Description: Mensagem de loading.\n\nSchema Capability:\n - Path: messages.actions.confirmations.delete\n Category: messages\n Kind: string\n Description: Texto de confirmação de exclusão.\n\nSchema Capability:\n - Path: localization.locale\n Category: localization\n Kind: string\n Description: Locale principal (ex.: pt-BR, en-US).\n\nSchema Capability:\n - Path: localization.direction\n Category: localization\n Kind: enum\n Description: Direção do texto (ltr/rtl).\n\nSchema Capability:\n - Path: localization.dateTime.dateFormat\n Category: localization\n Kind: string\n Description: Formato padrao de datas (DatePipe).\n\nSchema Capability:\n - Path: localization.dateTime.timeFormat\n Category: localization\n Kind: string\n Description: Formato padrao de horas (DatePipe).\n\nSchema Capability:\n - Path: localization.dateTime.dateTimeFormat\n Category: localization\n Kind: string\n Description: Formato padrao de data e hora (DatePipe).\n\nSchema Capability:\n - Path: localization.dateTime.firstDayOfWeek\n Category: localization\n Kind: number\n Description: Primeiro dia da semana (0=domingo).\n\nSchema Capability:\n - Path: localization.dateTime.relativeTime\n Category: localization\n Kind: boolean\n Description: Habilita formato relativo (ex.: ha 2 dias).\n\nSchema Capability:\n - Path: localization.dateTime.monthNames\n Category: localization\n Kind: array\n Description: Lista de nomes dos meses.\n\nSchema Capability:\n - Path: localization.dateTime.dayNames\n Category: localization\n Kind: array\n Description: Lista de nomes dos dias da semana.\n\nSchema Capability:\n - Path: localization.number.decimalSeparator\n Category: localization\n Kind: string\n Description: Separador decimal.\n\nSchema Capability:\n - Path: localization.number.thousandsSeparator\n Category: localization\n Kind: string\n Description: Separador de milhares.\n\nSchema Capability:\n - Path: localization.number.defaultPrecision\n Category: localization\n Kind: number\n Description: Casas decimais padrao.\n\nSchema Capability:\n - Path: localization.number.negativeSign\n Category: localization\n Kind: string\n Description: Simbolo de negativo.\n\nSchema Capability:\n - Path: localization.number.negativeSignPosition\n Category: localization\n Kind: enum\n Description: Posicao do sinal negativo.\n\nSchema Capability:\n - Path: localization.currency.code\n Category: localization\n Kind: string\n Description: Codigo da moeda (ISO 4217).",
29464
29524
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-component-ai-capabilities.ts",
29465
- "contentHash": "e7a11684cdb837f9c2ace5c09efb7f45d4dd2bc177b6b8b5bea2cc3274518595",
29525
+ "contentHash": "138af448d91b504b7d5aa33482db1a81a0019d8693d63fd73fc4ec804c963efe",
29466
29526
  "sourceKind": "component_definition",
29467
29527
  "sourceId": "praxis-table",
29468
29528
  "corpusVersion": "1.0.0"
@@ -29470,9 +29530,9 @@
29470
29530
  {
29471
29531
  "chunkIndex": 12,
29472
29532
  "chunkKind": "capabilities",
29473
- "content": "Schema Capability:\n - Path: localization.currency.spacing\n Category: localization\n Kind: boolean\n Description: Espaco entre simbolo e valor.\n\nSchema Capability:\n - Path: localization.currency.precision\n Category: localization\n Kind: number\n Description: Precisao padrao da moeda.\n\nSchema Capability:\n - Path: localization.formatting.percentageFormat\n Category: localization\n Kind: string\n Description: Formato de percentual.\n\nSchema Capability:\n - Path: localization.formatting.fileSizeFormat\n Category: localization\n Kind: enum\n Description: Formato de tamanho de arquivo.\n\nSchema Capability:\n - Path: performance.virtualization.enabled\n Category: performance\n Kind: boolean\n Description: Virtualização via PerformanceConfig.\n\nSchema Capability:\n - Path: performance.virtualization.itemHeight\n Category: performance\n Kind: number\n Description: Altura da linha (px) para virtualização.\n\nSchema Capability:\n - Path: performance.debounce.search\n Category: performance\n Kind: number\n Description: Debounce (ms) para buscas.\n\nSchema Capability:\n - Path: performance.debounce.filter\n Category: performance\n Kind: number\n Description: Debounce (ms) para filtros.\n\nSchema Capability:\n - Path: performance.lazyLoading.images\n Category: performance\n Kind: boolean\n Description: Ativa lazy loading de imagens na tabela.\n\nSchema Capability:\n - Path: data.loadingStrategy\n Category: data\n Kind: enum\n Description: Estratégia de carregamento inicial dos dados.\n\nSchema Capability:\n - Path: accessibility.enabled\n Category: accessibility\n Kind: boolean\n Description: Habilita recursos de acessibilidade.\n\nSchema Capability:\n - Path: accessibility.highContrast\n Category: accessibility\n Kind: boolean\n Description: Ativa modo de alto contraste.\n\nSchema Capability:\n - Path: accessibility.reduceMotion\n Category: accessibility\n Kind: boolean\n Description: Reduz ou desativa animações para evitar motion sickness.\n\nSchema Capability:\n - Path: accessibility.announcements.liveRegion\n Category: accessibility\n Kind: enum\n Description: Região ARIA para anúncios (polite/assertive).\n\nSchema Capability:\n - Path: accessibility.keyboard.shortcuts\n Category: accessibility\n Kind: boolean\n Description: Ativa atalhos de teclado.\n\nComponent Capability:\n - Path: inputs.config\n Category: inputs\n Kind: object\n Description: Configuracao completa da tabela (TableConfig).\n\nComponent Capability:\n - Path: inputs.resourcePath\n Category: data\n Kind: string\n Description: Endpoint base para operacoes de dados.\n\nComponent Capability:\n - Path: inputs.queryContext\n Category: data\n Kind: object\n Description: Contrato semantico primario para consulta declarativa; nesta fase a tabela consome filters, sort, limit e page com foco principal em queryContext.filters.\n\nComponent Capability:\n - Path: inputs.filterCriteria\n Category: data\n Kind: object\n Description: Bridge legada de compatibilidade. Para novo authoring, prefira inputs.queryContext.\n\nComponent Capability:\n - Path: inputs.showToolbar\n Category: appearance\n Kind: boolean\n Description: Exibe barra de ferramentas.\n\nComponent Capability:\n - Path: inputs.toolbarV2\n Category: appearance\n Kind: boolean\n Description: Ativa layout da toolbar v2.\n\nComponent Capability:\n - Path: inputs.autoDelete\n Category: behavior\n Kind: boolean\n Description: Ativa delecao automatica.\n\nComponent Capability:\n - Path: inputs.enableCustomization\n Category: behavior\n Kind: boolean\n Description: Permite edicao de layout.\n\nComponent Capability:\n - Path: inputs.dense\n Category: appearance\n Kind: boolean\n Description: Entrada legada: aplica compacto apenas quando appearance.density nao foi definido. Preferir appearance.density para novas configuracoes.\n\nComponent Capability:\n - Path: inputs.tableId\n Category: inputs\n Kind: string\n Description: Identificador para armazenamento de configuracao.\n\nComponent Capability:\n - Path: outputs.rowClick\n Category: outputs\n Kind: object\n Description: Evento emitido ao clicar em uma linha.\n\nComponent Capability:\n - Path: outputs.rowDoubleClick\n Category: outputs\n Kind: object\n Description: Evento emitido ao dar duplo clique em uma linha.\n\nComponent Capability:\n - Path: outputs.rowExpansionChange\n Category: outputs\n Kind: object\n Description: Evento emitido ao expandir/colapsar detalhe de linha com payload governado por politica de exposicao.\n\nComponent Capability:\n - Path: outputs.rowAction\n Category: outputs\n Kind: object\n Description: Evento emitido ao acionar uma acao em uma linha.\n\nComponent Capability:\n - Path: outputs.toolbarAction\n Category: outputs\n Kind: object\n Description: Evento emitido ao acionar uma acao da toolbar.\n\nComponent Capability:\n - Path: outputs.bulkAction\n Category: outputs\n Kind: object\n Description: Evento emitido ao executar acoes em massa.\n\nComponent Capability:\n - Path: outputs.columnReorder\n Category: outputs\n Kind: object\n Description: Evento emitido quando a reordenacao de colunas e concluida (trigger: drag, keyboard ou undo; inclui operationId monotônico).\n\nComponent Capability:\n - Path: outputs.columnReorderAttempt\n Category: outputs\n Kind: object\n Description: Evento emitido para tentativa bloqueada de reordenacao de colunas (inclui operationId monotônico para correlacao).\n\nComponent Capability:\n - Path: outputs.columnResize\n Category: outputs\n Kind: object\n Description: Evento emitido quando uma coluna e redimensionada por ponteiro ou teclado (inclui operationId monotonico e status de persistencia).\n\nComponent Capability:\n - Path: outputs.beforeDelete\n Category: outputs\n Kind: object\n Description: Evento emitido antes de deletar uma linha.\n\nComponent Capability:\n - Path: outputs.afterDelete\n Category: outputs\n Kind: object\n Description: Evento emitido apos deletar uma linha.\n\nComponent Capability:\n - Path: outputs.deleteError\n Category: outputs\n Kind: object\n Description: Evento emitido ao ocorrer erro na delecao.\n\nComponent Capability:\n - Path: outputs.beforeBulkDelete\n Category: outputs\n Kind: object\n Description: Evento emitido antes de deletar multiplas linhas.\n\nComponent Capability:\n - Path: outputs.afterBulkDelete\n Category: outputs\n Kind: object\n Description: Evento emitido apos deletar multiplas linhas.\n\nComponent Capability:\n - Path: outputs.bulkDeleteError\n Category: outputs\n Kind: object\n Description: Evento emitido ao ocorrer erro na delecao em massa.\n\nCapability Note:\n - Este catalogo descreve inputs e outputs do componente.\n\nCapability Note:\n - inputs.config segue o schema de TableConfig (veja table-ai-capabilities).",
29533
+ "content": "Schema Capability:\n - Path: localization.currency.symbol\n Category: localization\n Kind: string\n Description: Simbolo da moeda.\n\nSchema Capability:\n - Path: localization.currency.position\n Category: localization\n Kind: enum\n Description: Posicao do simbolo da moeda.\n\nSchema Capability:\n - Path: localization.currency.spacing\n Category: localization\n Kind: boolean\n Description: Espaco entre simbolo e valor.\n\nSchema Capability:\n - Path: localization.currency.precision\n Category: localization\n Kind: number\n Description: Precisao padrao da moeda.\n\nSchema Capability:\n - Path: localization.formatting.percentageFormat\n Category: localization\n Kind: string\n Description: Formato de percentual.\n\nSchema Capability:\n - Path: localization.formatting.fileSizeFormat\n Category: localization\n Kind: enum\n Description: Formato de tamanho de arquivo.\n\nSchema Capability:\n - Path: performance.virtualization.enabled\n Category: performance\n Kind: boolean\n Description: Virtualização via PerformanceConfig.\n\nSchema Capability:\n - Path: performance.virtualization.itemHeight\n Category: performance\n Kind: number\n Description: Altura da linha (px) para virtualização.\n\nSchema Capability:\n - Path: performance.debounce.search\n Category: performance\n Kind: number\n Description: Debounce (ms) para buscas.\n\nSchema Capability:\n - Path: performance.debounce.filter\n Category: performance\n Kind: number\n Description: Debounce (ms) para filtros.\n\nSchema Capability:\n - Path: performance.lazyLoading.images\n Category: performance\n Kind: boolean\n Description: Ativa lazy loading de imagens na tabela.\n\nSchema Capability:\n - Path: data.loadingStrategy\n Category: data\n Kind: enum\n Description: Estratégia de carregamento inicial dos dados.\n\nSchema Capability:\n - Path: accessibility.enabled\n Category: accessibility\n Kind: boolean\n Description: Habilita recursos de acessibilidade.\n\nSchema Capability:\n - Path: accessibility.highContrast\n Category: accessibility\n Kind: boolean\n Description: Ativa modo de alto contraste.\n\nSchema Capability:\n - Path: accessibility.reduceMotion\n Category: accessibility\n Kind: boolean\n Description: Reduz ou desativa animações para evitar motion sickness.\n\nSchema Capability:\n - Path: accessibility.announcements.liveRegion\n Category: accessibility\n Kind: enum\n Description: Região ARIA para anúncios (polite/assertive).\n\nSchema Capability:\n - Path: accessibility.keyboard.shortcuts\n Category: accessibility\n Kind: boolean\n Description: Ativa atalhos de teclado.\n\nComponent Capability:\n - Path: inputs.config\n Category: inputs\n Kind: object\n Description: Configuracao completa da tabela (TableConfig).\n\nComponent Capability:\n - Path: inputs.resourcePath\n Category: data\n Kind: string\n Description: Endpoint base para operacoes de dados.\n\nComponent Capability:\n - Path: inputs.queryContext\n Category: data\n Kind: object\n Description: Contrato semantico primario para consulta declarativa; nesta fase a tabela consome filters, sort, limit e page com foco principal em queryContext.filters.\n\nComponent Capability:\n - Path: inputs.filterCriteria\n Category: data\n Kind: object\n Description: Bridge legada de compatibilidade. Para novo authoring, prefira inputs.queryContext.\n\nComponent Capability:\n - Path: inputs.showToolbar\n Category: appearance\n Kind: boolean\n Description: Exibe barra de ferramentas.\n\nComponent Capability:\n - Path: inputs.toolbarV2\n Category: appearance\n Kind: boolean\n Description: Ativa layout da toolbar v2.\n\nComponent Capability:\n - Path: inputs.autoDelete\n Category: behavior\n Kind: boolean\n Description: Ativa delecao automatica.\n\nComponent Capability:\n - Path: inputs.enableCustomization\n Category: behavior\n Kind: boolean\n Description: Permite edicao de layout.\n\nComponent Capability:\n - Path: inputs.dense\n Category: appearance\n Kind: boolean\n Description: Entrada legada: aplica compacto apenas quando appearance.density nao foi definido. Preferir appearance.density para novas configuracoes.\n\nComponent Capability:\n - Path: inputs.tableId\n Category: inputs\n Kind: string\n Description: Identificador para armazenamento de configuracao.\n\nComponent Capability:\n - Path: outputs.rowClick\n Category: outputs\n Kind: object\n Description: Evento emitido ao clicar em uma linha.\n\nComponent Capability:\n - Path: outputs.rowDoubleClick\n Category: outputs\n Kind: object\n Description: Evento emitido ao dar duplo clique em uma linha.\n\nComponent Capability:\n - Path: outputs.rowExpansionChange\n Category: outputs\n Kind: object\n Description: Evento emitido ao expandir/colapsar detalhe de linha com payload governado por politica de exposicao.\n\nComponent Capability:\n - Path: outputs.rowAction\n Category: outputs\n Kind: object\n Description: Evento emitido ao acionar uma acao em uma linha.\n\nComponent Capability:\n - Path: outputs.toolbarAction\n Category: outputs\n Kind: object\n Description: Evento emitido ao acionar uma acao da toolbar.\n\nComponent Capability:\n - Path: outputs.bulkAction\n Category: outputs\n Kind: object\n Description: Evento emitido ao executar acoes em massa.\n\nComponent Capability:\n - Path: outputs.columnReorder\n Category: outputs\n Kind: object\n Description: Evento emitido quando a reordenacao de colunas e concluida (trigger: drag, keyboard ou undo; inclui operationId monotônico).\n\nComponent Capability:\n - Path: outputs.columnReorderAttempt\n Category: outputs\n Kind: object\n Description: Evento emitido para tentativa bloqueada de reordenacao de colunas (inclui operationId monotônico para correlacao).\n\nComponent Capability:\n - Path: outputs.columnResize\n Category: outputs\n Kind: object\n Description: Evento emitido quando uma coluna e redimensionada por ponteiro ou teclado (inclui operationId monotonico e status de persistencia).\n\nComponent Capability:\n - Path: outputs.beforeDelete\n Category: outputs\n Kind: object\n Description: Evento emitido antes de deletar uma linha.\n\nComponent Capability:\n - Path: outputs.afterDelete\n Category: outputs\n Kind: object\n Description: Evento emitido apos deletar uma linha.\n\nComponent Capability:\n - Path: outputs.deleteError\n Category: outputs\n Kind: object\n Description: Evento emitido ao ocorrer erro na delecao.\n\nComponent Capability:\n - Path: outputs.beforeBulkDelete\n Category: outputs\n Kind: object\n Description: Evento emitido antes de deletar multiplas linhas.\n\nComponent Capability:\n - Path: outputs.afterBulkDelete\n Category: outputs\n Kind: object\n Description: Evento emitido apos deletar multiplas linhas.\n\nComponent Capability:\n - Path: outputs.bulkDeleteError\n Category: outputs\n Kind: object\n Description: Evento emitido ao ocorrer erro na delecao em massa.\n\nCapability Note:\n - Este catalogo descreve inputs e outputs do componente.\n\nCapability Note:\n - inputs.config segue o schema de TableConfig (veja table-ai-capabilities).",
29474
29534
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-component-ai-capabilities.ts",
29475
- "contentHash": "681b184e65bda6b50698e44960271ee5ba7a54736b4cf2d40f7b1be889433559",
29535
+ "contentHash": "0a659b5dc4e9647f43285ac2361b80ab3417ba97aaeb5b92db01c6cc3810301e",
29476
29536
  "sourceKind": "component_definition",
29477
29537
  "sourceId": "praxis-table",
29478
29538
  "corpusVersion": "1.0.0"
@@ -30050,6 +30110,16 @@
30050
30110
  {
30051
30111
  "chunkIndex": 70,
30052
30112
  "chunkKind": "authoring_manifest",
30113
+ "content": "{\"operationId\":\"actions.collection.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar descoberta de acoes da colecao Effects: merge-object.\",\"scope\":\"global\",\"target\":{\"kind\":\"toolbar\",\"resolver\":\"toolbar-config\",\"required\":false},\"inputContract\":{\"required\":[\"discovery\"],\"properties\":[\"discovery\"],\"semanticTerms\":[\"discovery\",\"discovery.enabled\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"actions.collection\",\"actions.collection.discovery.enabled\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30114
+ "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
30115
+ "contentHash": "7a1547660867fa9ebaf4c1366a3b5d8ac638848e4db21f70d731f637fca2b0f6",
30116
+ "sourceKind": "component_definition",
30117
+ "sourceId": "praxis-table",
30118
+ "corpusVersion": "1.0.0"
30119
+ },
30120
+ {
30121
+ "chunkIndex": 71,
30122
+ "chunkKind": "authoring_manifest",
30053
30123
  "content": "{\"operationId\":\"actions.row.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar acoes de linha Effects: merge-object.\",\"scope\":\"global\",\"target\":{\"kind\":\"rowAction\",\"resolver\":\"action-in-row-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"enabled\",\"display\",\"trigger\",\"discovery\"],\"semanticTerms\":[\"enabled\",\"display\",\"trigger\",\"discovery\",\"menu\",\"buttons\",\"icons\",\"hover\",\"always\",\"click\",\"discovery.enabled\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"actions.row\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30054
30124
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
30055
30125
  "contentHash": "5d3aaa5017909b156c7f787809485fa1508c3847650e03d936cb179bb37bd6d7",
@@ -30058,7 +30128,7 @@
30058
30128
  "corpusVersion": "1.0.0"
30059
30129
  },
30060
30130
  {
30061
- "chunkIndex": 71,
30131
+ "chunkIndex": 72,
30062
30132
  "chunkKind": "authoring_manifest",
30063
30133
  "content": "{\"operationId\":\"actions.bulk.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar acoes em lote Effects: merge-object. Habilitar acoes em lote na toolbar\",\"scope\":\"global\",\"target\":{\"kind\":\"bulkAction\",\"resolver\":\"action-in-bulk-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"enabled\",\"position\"],\"semanticTerms\":[\"enabled\",\"position\",\"toolbar\",\"floating\",\"both\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"actions.bulk\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"configure-bulk-actions\",\"request\":\"Habilitar acoes em lote na toolbar\",\"operationId\":\"actions.bulk.configure\",\"params\":{\"enabled\":true,\"position\":\"toolbar\"},\"isPositive\":true}],\"negativeExamples\":[]}",
30064
30134
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30068,7 +30138,7 @@
30068
30138
  "corpusVersion": "1.0.0"
30069
30139
  },
30070
30140
  {
30071
- "chunkIndex": 72,
30141
+ "chunkIndex": 73,
30072
30142
  "chunkKind": "authoring_manifest",
30073
30143
  "content": "{\"operationId\":\"actions.context.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar menu contextual Effects: merge-object.\",\"scope\":\"global\",\"target\":{\"kind\":\"contextAction\",\"resolver\":\"action-in-context-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"enabled\",\"trigger\"],\"semanticTerms\":[\"enabled\",\"trigger\",\"right-click\",\"long-press\",\"both\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"actions.context\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30074
30144
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30078,7 +30148,7 @@
30078
30148
  "corpusVersion": "1.0.0"
30079
30149
  },
30080
30150
  {
30081
- "chunkIndex": 73,
30151
+ "chunkIndex": 74,
30082
30152
  "chunkKind": "authoring_manifest",
30083
30153
  "content": "{\"operationId\":\"actions.confirmations.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar confirmacoes Effects: merge-object.\",\"scope\":\"global\",\"target\":{\"kind\":\"contextAction\",\"resolver\":\"action-in-context-config\",\"required\":false},\"inputContract\":{\"required\":[\"default\"],\"properties\":[\"default\"],\"semanticTerms\":[\"default\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"actions.confirmations.default\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30084
30154
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30088,7 +30158,7 @@
30088
30158
  "corpusVersion": "1.0.0"
30089
30159
  },
30090
30160
  {
30091
- "chunkIndex": 74,
30161
+ "chunkIndex": 75,
30092
30162
  "chunkKind": "authoring_manifest",
30093
30163
  "content": "{\"operationId\":\"export.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar exportacao Effects: merge-object.\",\"scope\":\"global\",\"target\":{\"kind\":\"export\",\"resolver\":\"export-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"enabled\",\"formats\",\"general\",\"excel\",\"pdf\",\"csv\"],\"semanticTerms\":[\"enabled\",\"formats\",\"general\",\"excel\",\"pdf\",\"csv\",\"general.includeHeaders\",\"general.scope\",\"general.maxRows\",\"excel.autoFitColumns\",\"excel.visibleCurrentPage\",\"pdf.orientation\",\"pdf.pageSize\",\"csv.delimiter\",\"json\",\"print\",\"auto\",\"selected\",\"filtered\",\"currentPage\",\"all\",\"portrait\",\"landscape\",\"A4\",\"A3\",\"Letter\",\"Legal\",\",\",\";\",\"|\",\"\\\\t\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"export\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30094
30164
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30098,7 +30168,7 @@
30098
30168
  "corpusVersion": "1.0.0"
30099
30169
  },
30100
30170
  {
30101
- "chunkIndex": 75,
30171
+ "chunkIndex": 76,
30102
30172
  "chunkKind": "authoring_manifest",
30103
30173
  "content": "{\"operationId\":\"tableRuntimeOperations.plan\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Planejar operacoes runtime da tabela Effects: set-value.\",\"scope\":\"global\",\"target\":{\"kind\":\"runtimeOperation\",\"resolver\":\"table-runtime-operation-contract\",\"required\":false},\"inputContract\":{\"required\":[\"operations\"],\"properties\":[\"operations\"],\"semanticTerms\":[\"operations\",\"operations.operationId\",\"operations.input\",\"operations.description\",\"table.filter.apply\",\"table.export.run\",\"operations.input.criteria\",\"operations.input.format\",\"operations.input.scope\",\"excel\",\"pdf\",\"csv\",\"json\",\"print\",\"auto\",\"selected\",\"filtered\",\"currentPage\",\"all\"]},\"effects\":[\"set-value\"],\"affectedPaths\":[\"tableRuntimeOperations\"],\"validators\":[{\"validatorId\":\"runtime-operation-declared\",\"level\":\"error\",\"code\":\"TB019\",\"description\":\"Operacoes runtime devem usar operationId e input declarados em tableRuntimeOperations sem alterar a configuracao persistida.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"none\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30104
30174
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30108,7 +30178,7 @@
30108
30178
  "corpusVersion": "1.0.0"
30109
30179
  },
30110
30180
  {
30111
- "chunkIndex": 76,
30181
+ "chunkIndex": 77,
30112
30182
  "chunkKind": "authoring_manifest",
30113
30183
  "content": "{\"operationId\":\"appearance.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar aparencia Effects: merge-object.\",\"scope\":\"global\",\"target\":{\"kind\":\"appearance\",\"resolver\":\"appearance-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"density\",\"borders\",\"colors\",\"typography\",\"spacing\",\"responsive\",\"animations\",\"elevation\"],\"semanticTerms\":[\"density\",\"borders\",\"colors\",\"typography\",\"spacing\",\"responsive\",\"animations\",\"elevation\",\"compact\",\"comfortable\",\"spacious\",\"borders.showRowBorders\",\"borders.showColumnBorders\",\"borders.showOuterBorder\",\"borders.style\",\"colors.alternateRowBackground\",\"colors.hoverBackground\",\"typography.fontSize\",\"typography.headerFontWeight\",\"spacing.cellPadding\",\"responsive.mobile\",\"responsive.breakpoints\",\"animations.enabled\",\"elevation.level\",\"solid\",\"dashed\",\"dotted\",\"responsive.mobile.horizontalScroll\",\"responsive.mobile.cardMode\",\"responsive.mobile.priorityColumns\",\"responsive.breakpoints.mobile\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"appearance\"],\"validators\":[{\"validatorId\":\"css-style-safe\",\"level\":\"error\",\"code\":\"TB014\",\"description\":\"Estilos inline devem permanecer em CSS simples e seguro, sem scripts, URLs perigosas ou expressoes dinamicas.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30114
30184
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30118,7 +30188,7 @@
30118
30188
  "corpusVersion": "1.0.0"
30119
30189
  },
30120
30190
  {
30121
- "chunkIndex": 77,
30191
+ "chunkIndex": 78,
30122
30192
  "chunkKind": "authoring_manifest",
30123
30193
  "content": "{\"operationId\":\"messages.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar mensagens Effects: merge-object.\",\"scope\":\"global\",\"target\":{\"kind\":\"messages\",\"resolver\":\"messages-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"states\",\"actions\"],\"semanticTerms\":[\"states\",\"actions\",\"states.empty\",\"states.loading\",\"actions.confirmations\",\"actions.confirmations.delete\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"messages\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30124
30194
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30128,7 +30198,7 @@
30128
30198
  "corpusVersion": "1.0.0"
30129
30199
  },
30130
30200
  {
30131
- "chunkIndex": 78,
30201
+ "chunkIndex": 79,
30132
30202
  "chunkKind": "authoring_manifest",
30133
30203
  "content": "{\"operationId\":\"localization.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar localizacao Effects: merge-object. Configurar a tabela para portugues do Brasil\",\"scope\":\"global\",\"target\":{\"kind\":\"localization\",\"resolver\":\"localization-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"locale\",\"direction\",\"dateTime\",\"number\",\"currency\",\"formatting\"],\"semanticTerms\":[\"locale\",\"direction\",\"dateTime\",\"number\",\"currency\",\"formatting\",\"ltr\",\"rtl\",\"dateTime.dateFormat\",\"dateTime.timeFormat\",\"dateTime.dateTimeFormat\",\"dateTime.firstDayOfWeek\",\"dateTime.relativeTime\",\"dateTime.monthNames\",\"dateTime.dayNames\",\"number.decimalSeparator\",\"number.thousandsSeparator\",\"number.defaultPrecision\",\"number.negativeSign\",\"number.negativeSignPosition\",\"currency.code\",\"currency.symbol\",\"currency.position\",\"currency.spacing\",\"currency.precision\",\"formatting.percentageFormat\",\"formatting.fileSizeFormat\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"before\",\"after\",\"binary\",\"decimal\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"localization\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"configure-localization\",\"request\":\"Configurar a tabela para portugues do Brasil\",\"operationId\":\"localization.configure\",\"params\":{\"locale\":\"pt-BR\",\"direction\":\"ltr\",\"dateTime\":{\"dateFormat\":\"dd/MM/yyyy\"}},\"isPositive\":true}],\"negativeExamples\":[]}",
30134
30204
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30138,7 +30208,7 @@
30138
30208
  "corpusVersion": "1.0.0"
30139
30209
  },
30140
30210
  {
30141
- "chunkIndex": 79,
30211
+ "chunkIndex": 80,
30142
30212
  "chunkKind": "authoring_manifest",
30143
30213
  "content": "{\"operationId\":\"performance.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar performance Effects: merge-object.\",\"scope\":\"global\",\"target\":{\"kind\":\"performance\",\"resolver\":\"performance-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"virtualization\",\"debounce\",\"lazyLoading\"],\"semanticTerms\":[\"virtualization\",\"debounce\",\"lazyLoading\",\"virtualization.enabled\",\"virtualization.itemHeight\",\"debounce.search\",\"debounce.filter\",\"lazyLoading.images\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"performance\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30144
30214
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30148,7 +30218,7 @@
30148
30218
  "corpusVersion": "1.0.0"
30149
30219
  },
30150
30220
  {
30151
- "chunkIndex": 80,
30221
+ "chunkIndex": 81,
30152
30222
  "chunkKind": "authoring_manifest",
30153
30223
  "content": "{\"operationId\":\"data.loadingStrategy.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Definir estrategia de carregamento Effects: set-value.\",\"scope\":\"global\",\"target\":{\"kind\":\"data\",\"resolver\":\"data-config\",\"required\":false},\"inputContract\":{\"required\":[\"loadingStrategy\"],\"properties\":[\"loadingStrategy\"],\"semanticTerms\":[\"loadingStrategy\",\"eager\",\"lazy\",\"on-demand\"]},\"effects\":[\"set-value\"],\"affectedPaths\":[\"data.loadingStrategy\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[],\"negativeExamples\":[]}",
30154
30224
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30158,7 +30228,7 @@
30158
30228
  "corpusVersion": "1.0.0"
30159
30229
  },
30160
30230
  {
30161
- "chunkIndex": 81,
30231
+ "chunkIndex": 82,
30162
30232
  "chunkKind": "authoring_manifest",
30163
30233
  "content": "{\"operationId\":\"accessibility.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configurar acessibilidade Effects: merge-object. Ativar alto contraste e reduzir animacoes\",\"scope\":\"global\",\"target\":{\"kind\":\"accessibility\",\"resolver\":\"accessibility-config\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"enabled\",\"highContrast\",\"reduceMotion\",\"announcements\",\"keyboard\"],\"semanticTerms\":[\"enabled\",\"highContrast\",\"reduceMotion\",\"announcements\",\"keyboard\",\"announcements.liveRegion\",\"keyboard.shortcuts\",\"polite\",\"assertive\"]},\"effects\":[\"merge-object\"],\"affectedPaths\":[\"accessibility\"],\"validators\":[{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"}],\"preconditions\":[\"config-initialized\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"configure-accessibility\",\"request\":\"Ativar alto contraste e reduzir animacoes\",\"operationId\":\"accessibility.configure\",\"params\":{\"enabled\":true,\"highContrast\":true,\"reduceMotion\":true,\"announcements\":{\"liveRegion\":\"polite\"}},\"isPositive\":true}],\"negativeExamples\":[]}",
30164
30234
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30168,7 +30238,7 @@
30168
30238
  "corpusVersion": "1.0.0"
30169
30239
  },
30170
30240
  {
30171
- "chunkIndex": 82,
30241
+ "chunkIndex": 83,
30172
30242
  "chunkKind": "authoring_manifest",
30173
30243
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"identity\"}",
30174
30244
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30178,7 +30248,7 @@
30178
30248
  "corpusVersion": "1.0.0"
30179
30249
  },
30180
30250
  {
30181
- "chunkIndex": 83,
30251
+ "chunkIndex": 84,
30182
30252
  "chunkKind": "authoring_manifest",
30183
30253
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"runtimeInputs\",\"runtimeInputs\":[{\"name\":\"config\",\"type\":\"TableConfig\",\"description\":\"Configuração completa da tabela\"},{\"name\":\"data\",\"type\":\"any[]\",\"description\":\"Dados a serem exibidos (modo client-side)\"},{\"name\":\"resourcePath\",\"type\":\"string\",\"description\":\"Caminho do recurso (API base)\"},{\"name\":\"queryContext\",\"type\":\"PraxisDataQueryContext\",\"description\":\"Contexto de consulta declarativo\"},{\"name\":\"title\",\"type\":\"string\",\"description\":\"Título da tabela\"},{\"name\":\"subtitle\",\"type\":\"string\",\"description\":\"Subtítulo da tabela\"},{\"name\":\"enableCustomization\",\"type\":\"boolean\",\"description\":\"Habilita modo de edição\"},{\"name\":\"authoringCapability\",\"type\":\"string\",\"description\":\"Capability pública do contexto corporativo exigida para materializar authoring governado.\"}]}",
30184
30254
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30188,7 +30258,7 @@
30188
30258
  "corpusVersion": "1.0.0"
30189
30259
  },
30190
30260
  {
30191
- "chunkIndex": 84,
30261
+ "chunkIndex": 85,
30192
30262
  "chunkKind": "authoring_manifest",
30193
30263
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"editableTargets\",\"editableTargets\":[{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"description\":\"Colunas base da tabela\"},{\"kind\":\"columnProjection\",\"resolver\":\"schema-column-projection\",\"description\":\"Projecao de colunas derivada do schema com overrides editoriais\"},{\"kind\":\"computedColumn\",\"resolver\":\"column-by-field\",\"description\":\"Colunas calculadas\"},{\"kind\":\"renderer\",\"resolver\":\"renderer-in-column\",\"description\":\"Renderizador de célula\"},{\"kind\":\"conditionalRenderer\",\"resolver\":\"conditional-renderer-in-column\",\"description\":\"Renderizadores condicionais\"},{\"kind\":\"rowAction\",\"resolver\":\"action-in-row-config\",\"description\":\"Ações por linha\"},{\"kind\":\"toolbarAction\",\"resolver\":\"action-in-toolbar-config\",\"description\":\"Ações na barra de ferramentas\"},{\"kind\":\"toolbar\",\"resolver\":\"toolbar-config\",\"description\":\"Configuração da barra de ferramentas\"},{\"kind\":\"filter\",\"resolver\":\"filter-config\",\"description\":\"Configuração de filtragem\"},{\"kind\":\"grouping\",\"resolver\":\"grouping-config\",\"description\":\"Configuração de agrupamento\"},{\"kind\":\"selection\",\"resolver\":\"selection-config\",\"description\":\"Configuração de seleção\"},{\"kind\":\"export\",\"resolver\":\"export-config\",\"description\":\"Configuração de exportação\"},{\"kind\":\"appearance\",\"resolver\":\"appearance-config\",\"description\":\"Configurações visuais\"},{\"kind\":\"expansion\",\"resolver\":\"expansion-config\",\"description\":\"Configuração de detalhe/expansão\"},{\"kind\":\"rule\",\"resolver\":\"style-rule-in-column-or-row\",\"description\":\"Regras de estilo ou comportamento\"},{\"kind\":\"meta\",\"resolver\":\"table-meta-config\",\"description\":\"Metadados da configuracao\"},{\"kind\":\"bulkAction\",\"resolver\":\"action-in-bulk-config\",\"description\":\"Acoes em lote\"},{\"kind\":\"contextAction\",\"resolver\":\"action-in-context-config\",\"description\":\"Acoes de menu contextual\"},{\"kind\":\"pagination\",\"resolver\":\"pagination-config\",\"description\":\"Configuracao de paginacao\"},{\"kind\":\"sorting\",\"resolver\":\"sorting-config\",\"description\":\"Configuracao de ordenacao\"},{\"kind\":\"interaction\",\"resolver\":\"interaction-config\",\"description\":\"Configuracao de interacao\"},{\"kind\":\"loading\",\"resolver\":\"loading-config\",\"description\":\"Estados de carregamento\"},{\"kind\":\"emptyState\",\"resolver\":\"empty-state-config\",\"description\":\"Estado vazio\"},{\"kind\":\"aiAssistant\",\"resolver\":\"ai-assistant-config\",\"description\":\"Config path ai.assistant.enabled controlling the embedded table AI assistant entrypoint and session.\"},{\"kind\":\"resizing\",\"resolver\":\"resizing-config\",\"description\":\"Redimensionamento de colunas\"},{\"kind\":\"dragging\",\"resolver\":\"dragging-config\",\"description\":\"Reorganizacao por drag and drop\"},{\"kind\":\"editing\",\"resolver\":\"editing-config\",\"description\":\"Modo de edicao\"},{\"kind\":\"messages\",\"resolver\":\"messages-config\",\"description\":\"Mensagens da tabela\"},{\"kind\":\"localization\",\"resolver\":\"localization-config\",\"description\":\"Localizacao e formatos regionais\"},{\"kind\":\"performance\",\"resolver\":\"performance-config\",\"description\":\"Configuracoes de performance\"},{\"kind\":\"data\",\"resolver\":\"data-config\",\"description\":\"Configuracoes de dados\"},{\"kind\":\"runtimeOperation\",\"resolver\":\"table-runtime-operation-contract\",\"description\":\"Operacoes runtime revisaveis sem mutar a configuracao persistida\"},{\"kind\":\"accessibility\",\"resolver\":\"accessibility-config\",\"description\":\"Acessibilidade\"}]}",
30194
30264
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30198,7 +30268,7 @@
30198
30268
  "corpusVersion": "1.0.0"
30199
30269
  },
30200
30270
  {
30201
- "chunkIndex": 85,
30271
+ "chunkIndex": 86,
30202
30272
  "chunkKind": "authoring_manifest",
30203
30273
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"column.projection.configure\",\"title\":\"Usar colunas governadas pelo schema\",\"description\":\"Mantem /schemas/filtered como fonte estrutural das colunas e registra somente diferencas editoriais por nome canonico de campo. Nao use para inventar campos ou contornar metadata ausente.\",\"scope\":\"global\",\"targetKind\":\"columnProjection\",\"target\":{\"kind\":\"columnProjection\",\"resolver\":\"schema-column-projection\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"source\"],\"additionalProperties\":false,\"properties\":{\"source\":{\"const\":\"schema\"},\"include\":{\"type\":\"array\",\"uniqueItems\":true,\"items\":{\"type\":\"string\",\"minLength\":1},\"description\":\"Allowlist ordenada de campos canonicos. Recomendada para dados sensiveis ou quando a pagina precisa de uma projecao focada.\"},\"overrides\":{\"type\":\"object\",\"description\":\"Mapa indexado pelo nome canonico do campo. O objeto de override nao pode conter field.\",\"additionalProperties\":{\"type\":\"object\",\"not\":{\"required\":[\"field\"]}}},\"additions\":{\"type\":\"array\",\"description\":\"Colunas editoriais sem correspondente no schema, normalmente derivadas pelo round-trip de colunas computadas. Uma adicao nunca substitui um campo canonico.\",\"items\":{\"type\":\"object\",\"required\":[\"field\"],\"properties\":{\"field\":{\"type\":\"string\",\"minLength\":1},\"header\":{\"type\":[\"string\",\"object\"]},\"type\":{\"enum\":[\"string\",\"number\",\"date\",\"boolean\",\"currency\",\"percentage\",\"custom\"]}}}}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"columnProjection\"}],\"validators\":[\"schema-column-override-field-immutable\",\"editor-round-trip-preserve\"],\"affectedPaths\":[\"columnProjection\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"column.add\",\"title\":\"Adicionar coluna\",\"scope\":\"global\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"field\",\"header\"],\"properties\":{\"field\":{\"type\":\"string\"},\"header\":{\"type\":\"string\"},\"type\":{\"enum\":[\"string\",\"number\",\"date\",\"boolean\",\"currency\",\"percentage\",\"custom\"],\"default\":\"string\"}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"column-field-unique\"],\"affectedPaths\":[\"columns[]\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"column.remove\",\"title\":\"Remover coluna\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"properties\":{}},\"effects\":[{\"kind\":\"remove-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"destructive-removal-confirmation\"],\"affectedPaths\":[\"columns[]\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.header.set\",\"title\":\"Renomear o título da coluna sem alterar valores das células\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"header\"],\"properties\":{\"header\":{\"type\":\"string\",\"minLength\":1}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].header\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.type.set\",\"title\":\"Definir tipo de dado\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"type\"],\"properties\":{\"type\":{\"enum\":[\"string\",\"number\",\"date\",\"boolean\",\"currency\",\"percentage\",\"custom\"]}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].type\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.format.set\",\"title\":\"Definir formato\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"format\"],\"properties\":{\"format\":{\"type\":\"string\",\"enum\":[\"shortDate\",\"mediumDate\",\"longDate\",\"fullDate\",\"MMM/yyyy\",\"shortTime\",\"short\",\"yyyy-MM-dd\",\"dd/MM/yyyy\",\"yyyy-MM-dd HH:mm\",\"1.0-0\",\"1.1-1\",\"1.2-2\",\"1.0-3\",\"1.0-0|nosep\",\"BRL|symbol|2\",\"USD|symbol|2\",\"EUR|symbol|2\",\"BRL|code|2\",\"USD|code|0\",\"BRL|symbol|2|nosep\",\"EUR|symbol|2|nosep\",\"1.0-0|x100\",\"1.1-1|x100\",\"1.2-2|x100\",\"none\",\"uppercase\",\"lowercase\",\"titlecase\",\"capitalize\",\"uppercase|truncate|50|...\",\"000.000.000-00\",\"true-false\",\"yes-no\",\"active-inactive\",\"on-off\",\"enabled-disabled\",\"custom|Sim|Nao\"],\"description\":\"Preset canônico do DataFormattingService.\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\",\"format-preset-supported\"],\"affectedPaths\":[\"columns[].format\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.width.set\",\"title\":\"Definir largura da coluna\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"width\"],\"properties\":{\"width\":{\"type\":\"string\",\"pattern\":\"^(auto|\\\\d+(px|%|rem|em))$\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\",\"column-width-valid\"],\"affectedPaths\":[\"columns[].width\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.align.set\",\"title\":\"Definir alinhamento da coluna\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"align\"],\"properties\":{\"align\":{\"enum\":[\"left\",\"center\",\"right\"]}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].align\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.sticky.set\",\"title\":\"Definir sticky da coluna\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"sticky\"],\"properties\":{\"sticky\":{\"enum\":[\"start\",\"end\",true,false]}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].sticky\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.sortable.set\",\"title\":\"Definir ordenação da coluna\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"sortable\"],\"properties\":{\"sortable\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].sortable\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]}]}",
30204
30274
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30208,7 +30278,7 @@
30208
30278
  "corpusVersion": "1.0.0"
30209
30279
  },
30210
30280
  {
30211
- "chunkIndex": 86,
30281
+ "chunkIndex": 87,
30212
30282
  "chunkKind": "authoring_manifest",
30213
30283
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"column.filterable.set\",\"title\":\"Definir filtro da coluna\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"filterable\"],\"properties\":{\"filterable\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].filterable\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.style.set\",\"title\":\"Definir estilo da célula\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"style\"],\"properties\":{\"style\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\",\"css-style-safe\"],\"affectedPaths\":[\"columns[].style\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.headerStyle.set\",\"title\":\"Definir estilo do cabeçalho\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"headerStyle\"],\"properties\":{\"headerStyle\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\",\"css-style-safe\"],\"affectedPaths\":[\"columns[].headerStyle\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.valueMapping.set\",\"title\":\"Mapear valores exibidos nas células sem renomear a coluna\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"valueMapping\"],\"properties\":{\"valueMapping\":{\"type\":\"object\",\"minProperties\":1}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\",\"value-mapping-valid\"],\"affectedPaths\":[\"columns[].valueMapping\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.order.set\",\"title\":\"Mover coluna inteira sem alterar o conteúdo da célula\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"order\"],\"properties\":{\"order\":{\"type\":\"number\",\"minimum\":0}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].order\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.visibility.set\",\"title\":\"Mostrar ou ocultar coluna independente sem excluí-la\",\"description\":\"Altera somente a visibilidade da coluna-alvo. Quando um pedido incorpora o conteúdo de uma coluna em outra célula e também diz que a coluna de origem não deve continuar separada, esta operação complementa a composição do renderer.\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"visible\"],\"properties\":{\"visible\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].visible\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.computed.add\",\"title\":\"Adicionar coluna calculada\",\"scope\":\"global\",\"targetKind\":\"computedColumn\",\"target\":{\"kind\":\"computedColumn\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"field\",\"header\",\"expression\"],\"properties\":{\"field\":{\"type\":\"string\",\"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.\"},\"header\":{\"type\":\"string\",\"description\":\"User-facing label for the computed column.\"},\"expression\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"outputType\":{\"enum\":[\"string\",\"number\",\"date\",\"boolean\",\"currency\",\"percentage\",\"custom\"]}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"column-field-unique\",\"computed-expression-valid\"],\"affectedPaths\":[\"columns[]\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\"]}]}",
30214
30284
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30218,7 +30288,7 @@
30218
30288
  "corpusVersion": "1.0.0"
30219
30289
  },
30220
30290
  {
30221
- "chunkIndex": 87,
30291
+ "chunkIndex": 88,
30222
30292
  "chunkKind": "authoring_manifest",
30223
30293
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17]\",\"fragmentPath\":\"operations[17]\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\"},\"fragment\":{\"operationId\":\"column.renderer.set\",\"title\":\"Compor ou definir o conteúdo visual dentro da célula\",\"description\":\"Define ou substitui o renderer raiz da célula. Para mudar somente direção, alinhamento, espaçamento ou quebra de um compose existente, use column.renderer.composeLayout.set. Para mudar somente tamanho, forma ou outra propriedade de um item existente, use column.renderer.composeItem.set. Esta operação não oculta uma coluna de origem; quando o mesmo pedido exige que essa origem deixe de aparecer separadamente, combine-a com column.visibility.set.\",\"scope\":\"column\",\"targetKind\":\"renderer\",\"target\":{\"kind\":\"renderer\",\"resolver\":\"renderer-in-column\",\"ambiguityPolicy\":\"fail\",\"required\":true}}}",
30224
30294
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30228,7 +30298,7 @@
30228
30298
  "corpusVersion": "1.0.0"
30229
30299
  },
30230
30300
  {
30231
- "chunkIndex": 88,
30301
+ "chunkIndex": 89,
30232
30302
  "chunkKind": "authoring_manifest",
30233
30303
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17].inputSchema\",\"fragmentPath\":\"operations[17].inputSchema\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\",\"type\":\"object\"},\"fragment\":{\"type\":\"object\",\"description\":\"Renderizador visual. Quando a intencao pedir chip, use type \\\"chip\\\" e configure chip; efeitos iconBadge materializam badge, nao chip. Ao refinar um compose existente, copie seus itens atuais e altere somente tamanho, forma, direção ou outra propriedade explicitamente solicitada.\",\"required\":[\"type\"]}}",
30234
30304
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30238,7 +30308,7 @@
30238
30308
  "corpusVersion": "1.0.0"
30239
30309
  },
30240
30310
  {
30241
- "chunkIndex": 89,
30311
+ "chunkIndex": 90,
30242
30312
  "chunkKind": "authoring_manifest",
30243
30313
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17].inputSchema.properties\",\"fragmentPath\":\"operations[17].inputSchema.properties\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\",\"type\":\"object\"},\"fragment\":{\"type\":{\"enum\":[\"icon\",\"image\",\"badge\",\"link\",\"button\",\"chip\",\"progress\",\"avatar\",\"toggle\",\"menu\",\"rating\",\"microVisualization\",\"html\",\"compose\"]},\"typeExpr\":{\"type\":\"string\"},\"button\":{\"type\":\"object\",\"required\":[\"action\"],\"properties\":{\"label\":{\"type\":\"string\"},\"labelField\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"text\"]},\"size\":{\"enum\":[\"sm\",\"md\",\"lg\"]},\"ariaLabel\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"menu\":{\"type\":\"object\",\"required\":[\"itemsExpr\"],\"properties\":{\"itemsExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"}}},\"link\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"href\"]},{\"required\":[\"hrefField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"href\":{\"type\":\"string\"},\"hrefField\":{\"type\":\"string\"},\"target\":{\"enum\":[\"_blank\",\"_self\",\"_parent\",\"_top\"]},\"rel\":{\"type\":\"string\"}}},\"progress\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"showLabel\":{\"type\":\"boolean\"}}},\"badge\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"soft\",\"plain\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"chip\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"icon\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"nameField\"]}],\"properties\":{\"name\":{\"type\":\"string\"},\"nameField\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\"},\"suffix\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"size\":{\"type\":\"number\"},\"ariaLabel\":{\"type\":\"string\"}}},\"image\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"width\":{\"type\":\"number\",\"description\":\"Largura visual em pixels; altere apenas quando o pedido mudar o tamanho da imagem.\"},\"height\":{\"type\":\"number\",\"description\":\"Altura visual em pixels; para imagem quadrada, mantenha igual a width.\"},\"shape\":{\"enum\":[\"square\",\"rounded\",\"circle\"],\"description\":\"square não arredonda, rounded usa cantos arredondados e circle materializa um círculo.\"},\"fit\":{\"enum\":[\"cover\",\"contain\"]},\"lazy\":{\"type\":\"boolean\"}}},\"avatar\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]},{\"required\":[\"initialsField\"]},{\"required\":[\"initialsExpr\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"initialsField\":{\"type\":\"string\"},\"initialsExpr\":{\"type\":\"string\"},\"shape\":{\"enum\":[\"circle\",\"square\",\"rounded\"],\"description\":\"circle é circular, square é quadrado e rounded é quadrado com cantos arredondados.\"},\"size\":{\"type\":\"number\",\"description\":\"Tamanho visual do avatar em pixels; preserve os demais campos e itens do compose ao mudar apenas o tamanho.\"},\"backgroundColor\":{\"type\":\"string\"},\"textColor\":{\"type\":\"string\"}}},\"toggle\":{\"type\":\"object\",\"required\":[\"stateExpr\",\"action\"],\"properties\":{\"stateExpr\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"ariaLabel\":{\"type\":\"string\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"rating\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"max\":{\"type\":\"number\"},\"color\":{\"type\":\"string\"},\"outlineColor\":{\"type\":\"string\"},\"size\":{\"enum\":[\"small\",\"medium\",\"large\"]},\"ariaLabel\":{\"type\":\"string\"}}},\"microVisualization\":{\"type\":\"object\",\"required\":[\"visualization\"],\"properties\":{\"visualization\":{\"type\":\"object\",\"description\":\"Expression properties accept a row path such as row.sla or a controlled formula prefixed with =, such as = row.sla.\",\"required\":[\"kind\",\"fallbackText\"],\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\",\"stackedBar\",\"radial\",\"harveyBall\",\"bullet\",\"delta\",\"processFlow\"],\"description\":\"Table-cell guidance: recommended for rapid scanning: delta, bullet, radial, harveyBall, stackedBar. Conditional: line, area and column require horizontal space; comparison increases row height; processFlow needs recognizable steps.\"},\"surface\":{\"const\":\"table-cell\"},\"size\":{\"enum\":[\"xs\",\"sm\",\"md\",\"lg\",\"responsive\"]},\"value\":{},\"valueExpr\":{\"type\":\"string\"},\"valueSuffix\":{\"type\":\"string\"},\"valueSuffixExpr\":{\"type\":\"string\"},\"total\":{\"type\":\"number\"},\"totalExpr\":{\"type\":\"string\"},\"target\":{\"type\":\"number\"},\"targetExpr\":{\"type\":\"string\"},\"baseline\":{\"type\":\"number\"},\"baselineExpr\":{\"type\":\"string\"},\"segments\":{\"type\":\"array\"},\"segmentsExpr\":{\"type\":\"string\"},\"points\":{\"type\":\"array\"},\"pointsExpr\":{\"type\":\"string\"},\"thresholds\":{\"type\":\"array\"},\"thresholdsExpr\":{\"type\":\"string\"},\"items\":{\"type\":\"array\"},\"itemsExpr\":{\"type\":\"string\"},\"tone\":{\"enum\":[\"neutral\",\"info\",\"success\",\"warning\",\"danger\",\"critical\"]},\"toneExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"},\"ariaLabelExpr\":{\"type\":\"string\"},\"fallbackText\":{\"type\":\"string\"},\"fallbackTextExpr\":{\"type\":\"string\"}},\"allOf\":[{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"delta\",\"bullet\",\"radial\",\"harveyBall\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"value\"]},{\"required\":[\"valueExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"points\"]},{\"required\":[\"pointsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"stackedBar\"}}},\"then\":{\"anyOf\":[{\"required\":[\"segments\"]},{\"required\":[\"segmentsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"processFlow\"}}},\"then\":{\"anyOf\":[{\"required\":[\"items\"]},{\"required\":[\"itemsExpr\"]}]}}]}}},\"html\":{\"type\":\"object\",\"required\":[\"template\"],\"properties\":{\"template\":{\"type\":\"string\"},\"sanitize\":{\"enum\":[\"strict\",\"basic\"]},\"emptyFallback\":{\"type\":\"string\"}}}}}",
30244
30314
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30248,7 +30318,7 @@
30248
30318
  "corpusVersion": "1.0.0"
30249
30319
  },
30250
30320
  {
30251
- "chunkIndex": 90,
30321
+ "chunkIndex": 91,
30252
30322
  "chunkKind": "authoring_manifest",
30253
30323
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17].inputSchema.properties.compose\",\"fragmentPath\":\"operations[17].inputSchema.properties.compose\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\",\"type\":\"object\"},\"fragment\":{\"type\":\"object\",\"description\":\"Composição de vários itens dentro da mesma célula. Em refinamentos, preserve os itens atuais e altere somente o atributo solicitado.\",\"required\":[\"items\"]}}",
30254
30324
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30258,7 +30328,7 @@
30258
30328
  "corpusVersion": "1.0.0"
30259
30329
  },
30260
30330
  {
30261
- "chunkIndex": 91,
30331
+ "chunkIndex": 92,
30262
30332
  "chunkKind": "authoring_manifest",
30263
30333
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17].inputSchema.properties.compose.properties.items\",\"fragmentPath\":\"operations[17].inputSchema.properties.compose.properties.items\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\",\"type\":\"array\"},\"fragment\":{\"type\":\"array\",\"minItems\":1}}",
30264
30334
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30268,7 +30338,7 @@
30268
30338
  "corpusVersion": "1.0.0"
30269
30339
  },
30270
30340
  {
30271
- "chunkIndex": 92,
30341
+ "chunkIndex": 93,
30272
30342
  "chunkKind": "authoring_manifest",
30273
30343
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17].inputSchema.properties.compose.properties.items.items\",\"fragmentPath\":\"operations[17].inputSchema.properties.compose.properties.items.items\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\",\"type\":\"object\"},\"fragment\":{\"type\":\"object\",\"description\":\"Item de uma célula composta. value mostra um campo da linha; os demais tipos exigem seu bloco de configuração homônimo.\",\"required\":[\"type\"],\"properties\":{\"type\":{\"enum\":[\"value\",\"icon\",\"image\",\"badge\",\"link\",\"button\",\"chip\",\"progress\",\"avatar\",\"toggle\",\"menu\",\"rating\",\"microVisualization\",\"html\"]},\"field\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"valueField\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"emphasis\":{\"enum\":[\"strong\",\"subtle\"],\"description\":\"Semantic hierarchy for a value item. Use strong for the primary value and subtle for supporting context; arbitrary CSS is not part of the compose contract.\"},\"button\":{\"type\":\"object\",\"required\":[\"action\"],\"properties\":{\"label\":{\"type\":\"string\"},\"labelField\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"text\"]},\"size\":{\"enum\":[\"sm\",\"md\",\"lg\"]},\"ariaLabel\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"menu\":{\"type\":\"object\",\"required\":[\"itemsExpr\"],\"properties\":{\"itemsExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"}}},\"link\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"href\"]},{\"required\":[\"hrefField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"href\":{\"type\":\"string\"},\"hrefField\":{\"type\":\"string\"},\"target\":{\"enum\":[\"_blank\",\"_self\",\"_parent\",\"_top\"]},\"rel\":{\"type\":\"string\"}}},\"progress\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"showLabel\":{\"type\":\"boolean\"}}},\"badge\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"soft\",\"plain\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"chip\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"icon\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"nameField\"]}],\"properties\":{\"name\":{\"type\":\"string\"},\"nameField\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\"},\"suffix\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"size\":{\"type\":\"number\"},\"ariaLabel\":{\"type\":\"string\"}}},\"image\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"width\":{\"type\":\"number\",\"description\":\"Largura visual em pixels; altere apenas quando o pedido mudar o tamanho da imagem.\"},\"height\":{\"type\":\"number\",\"description\":\"Altura visual em pixels; para imagem quadrada, mantenha igual a width.\"},\"shape\":{\"enum\":[\"square\",\"rounded\",\"circle\"],\"description\":\"square não arredonda, rounded usa cantos arredondados e circle materializa um círculo.\"},\"fit\":{\"enum\":[\"cover\",\"contain\"]},\"lazy\":{\"type\":\"boolean\"}}},\"avatar\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]},{\"required\":[\"initialsField\"]},{\"required\":[\"initialsExpr\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"initialsField\":{\"type\":\"string\"},\"initialsExpr\":{\"type\":\"string\"},\"shape\":{\"enum\":[\"circle\",\"square\",\"rounded\"],\"description\":\"circle é circular, square é quadrado e rounded é quadrado com cantos arredondados.\"},\"size\":{\"type\":\"number\",\"description\":\"Tamanho visual do avatar em pixels; preserve os demais campos e itens do compose ao mudar apenas o tamanho.\"},\"backgroundColor\":{\"type\":\"string\"},\"textColor\":{\"type\":\"string\"}}},\"toggle\":{\"type\":\"object\",\"required\":[\"stateExpr\",\"action\"],\"properties\":{\"stateExpr\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"ariaLabel\":{\"type\":\"string\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"rating\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"max\":{\"type\":\"number\"},\"color\":{\"type\":\"string\"},\"outlineColor\":{\"type\":\"string\"},\"size\":{\"enum\":[\"small\",\"medium\",\"large\"]},\"ariaLabel\":{\"type\":\"string\"}}},\"microVisualization\":{\"type\":\"object\",\"required\":[\"visualization\"],\"properties\":{\"visualization\":{\"type\":\"object\",\"description\":\"Expression properties accept a row path such as row.sla or a controlled formula prefixed with =, such as = row.sla.\",\"required\":[\"kind\",\"fallbackText\"],\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\",\"stackedBar\",\"radial\",\"harveyBall\",\"bullet\",\"delta\",\"processFlow\"],\"description\":\"Table-cell guidance: recommended for rapid scanning: delta, bullet, radial, harveyBall, stackedBar. Conditional: line, area and column require horizontal space; comparison increases row height; processFlow needs recognizable steps.\"},\"surface\":{\"const\":\"table-cell\"},\"size\":{\"enum\":[\"xs\",\"sm\",\"md\",\"lg\",\"responsive\"]},\"value\":{},\"valueExpr\":{\"type\":\"string\"},\"valueSuffix\":{\"type\":\"string\"},\"valueSuffixExpr\":{\"type\":\"string\"},\"total\":{\"type\":\"number\"},\"totalExpr\":{\"type\":\"string\"},\"target\":{\"type\":\"number\"},\"targetExpr\":{\"type\":\"string\"},\"baseline\":{\"type\":\"number\"},\"baselineExpr\":{\"type\":\"string\"},\"segments\":{\"type\":\"array\"},\"segmentsExpr\":{\"type\":\"string\"},\"points\":{\"type\":\"array\"},\"pointsExpr\":{\"type\":\"string\"},\"thresholds\":{\"type\":\"array\"},\"thresholdsExpr\":{\"type\":\"string\"},\"items\":{\"type\":\"array\"},\"itemsExpr\":{\"type\":\"string\"},\"tone\":{\"enum\":[\"neutral\",\"info\",\"success\",\"warning\",\"danger\",\"critical\"]},\"toneExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"},\"ariaLabelExpr\":{\"type\":\"string\"},\"fallbackText\":{\"type\":\"string\"},\"fallbackTextExpr\":{\"type\":\"string\"}},\"allOf\":[{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"delta\",\"bullet\",\"radial\",\"harveyBall\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"value\"]},{\"required\":[\"valueExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"points\"]},{\"required\":[\"pointsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"stackedBar\"}}},\"then\":{\"anyOf\":[{\"required\":[\"segments\"]},{\"required\":[\"segmentsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"processFlow\"}}},\"then\":{\"anyOf\":[{\"required\":[\"items\"]},{\"required\":[\"itemsExpr\"]}]}}]}}},\"html\":{\"type\":\"object\",\"required\":[\"template\"],\"properties\":{\"template\":{\"type\":\"string\"},\"sanitize\":{\"enum\":[\"strict\",\"basic\"]},\"emptyFallback\":{\"type\":\"string\"}}}}}}",
30274
30344
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30278,7 +30348,7 @@
30278
30348
  "corpusVersion": "1.0.0"
30279
30349
  },
30280
30350
  {
30281
- "chunkIndex": 93,
30351
+ "chunkIndex": 94,
30282
30352
  "chunkKind": "authoring_manifest",
30283
30353
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17].inputSchema.properties.compose.properties.items.items\",\"fragmentPath\":\"operations[17].inputSchema.properties.compose.properties.items.items\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\",\"type\":\"object\"},\"fragment\":{\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"button\"}}},\"then\":{\"required\":[\"button\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"menu\"}}},\"then\":{\"required\":[\"menu\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"link\"}}},\"then\":{\"required\":[\"link\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"progress\"}}},\"then\":{\"required\":[\"progress\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"badge\"}}},\"then\":{\"required\":[\"badge\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"chip\"}}},\"then\":{\"required\":[\"chip\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"icon\"}}},\"then\":{\"required\":[\"icon\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"image\"}}},\"then\":{\"required\":[\"image\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"avatar\"}}},\"then\":{\"required\":[\"avatar\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"toggle\"}}},\"then\":{\"required\":[\"toggle\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"rating\"}}},\"then\":{\"required\":[\"rating\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"microVisualization\"}}},\"then\":{\"required\":[\"microVisualization\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"html\"}}},\"then\":{\"required\":[\"html\"]}}]}}",
30284
30354
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30288,7 +30358,7 @@
30288
30358
  "corpusVersion": "1.0.0"
30289
30359
  },
30290
30360
  {
30291
- "chunkIndex": 94,
30361
+ "chunkIndex": 95,
30292
30362
  "chunkKind": "authoring_manifest",
30293
30363
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17].inputSchema.properties.compose.properties\",\"fragmentPath\":\"operations[17].inputSchema.properties.compose.properties\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\",\"type\":\"object\"},\"fragment\":{\"layout\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"gap\":{\"type\":\"number\"},\"direction\":{\"enum\":[\"row\",\"column\"],\"description\":\"row coloca os itens lado a lado na mesma linha; column empilha verticalmente, por exemplo foto em cima e código embaixo.\"},\"align\":{\"enum\":[\"start\",\"center\",\"end\"]},\"wrap\":{\"type\":\"boolean\"},\"ellipsis\":{\"type\":\"boolean\"}}}}}",
30294
30364
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30298,7 +30368,7 @@
30298
30368
  "corpusVersion": "1.0.0"
30299
30369
  },
30300
30370
  {
30301
- "chunkIndex": 95,
30371
+ "chunkIndex": 96,
30302
30372
  "chunkKind": "authoring_manifest",
30303
30373
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17].inputSchema\",\"fragmentPath\":\"operations[17].inputSchema\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\",\"type\":\"object\"},\"fragment\":{\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"button\"}}},\"then\":{\"required\":[\"button\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"menu\"}}},\"then\":{\"required\":[\"menu\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"link\"}}},\"then\":{\"required\":[\"link\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"progress\"}}},\"then\":{\"required\":[\"progress\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"badge\"}}},\"then\":{\"required\":[\"badge\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"chip\"}}},\"then\":{\"required\":[\"chip\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"icon\"}}},\"then\":{\"required\":[\"icon\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"image\"}}},\"then\":{\"required\":[\"image\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"avatar\"}}},\"then\":{\"required\":[\"avatar\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"toggle\"}}},\"then\":{\"required\":[\"toggle\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"rating\"}}},\"then\":{\"required\":[\"rating\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"microVisualization\"}}},\"then\":{\"required\":[\"microVisualization\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"html\"}}},\"then\":{\"required\":[\"html\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"compose\"}}},\"then\":{\"required\":[\"compose\"]}}]}}",
30304
30374
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30308,7 +30378,7 @@
30308
30378
  "corpusVersion": "1.0.0"
30309
30379
  },
30310
30380
  {
30311
- "chunkIndex": 96,
30381
+ "chunkIndex": 97,
30312
30382
  "chunkKind": "authoring_manifest",
30313
30383
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[17]\",\"fragmentPath\":\"operations[17]\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.set\"},\"fragment\":{\"effects\":[{\"kind\":\"merge-object\",\"path\":\"columns[].renderer\"}],\"validators\":[\"target-column-exists\",\"renderer-type-supported\",\"renderer-config-match\",\"renderer-fields-exist\",\"editor-round-trip-preserve\"],\"affectedPaths\":[\"columns[].renderer\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]}}",
30314
30384
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30318,7 +30388,7 @@
30318
30388
  "corpusVersion": "1.0.0"
30319
30389
  },
30320
30390
  {
30321
- "chunkIndex": 97,
30391
+ "chunkIndex": 98,
30322
30392
  "chunkKind": "authoring_manifest",
30323
30393
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"column.renderer.composeLayout.set\",\"title\":\"Refinar somente o layout de uma célula composta\",\"description\":\"Altera direção, alinhamento, espaçamento, quebra ou ellipsis do layout de renderer.type compose já existente. Preserva o discriminator compose, a ordem, a configuração e todos os itens atuais; não reconstrua os itens para uma mudança somente de layout.\",\"scope\":\"column\",\"targetKind\":\"renderer\",\"target\":{\"kind\":\"renderer\",\"resolver\":\"renderer-in-column\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"gap\":{\"type\":\"number\"},\"direction\":{\"enum\":[\"row\",\"column\"],\"description\":\"row coloca os itens lado a lado na mesma linha; column empilha verticalmente, por exemplo foto em cima e código embaixo.\"},\"align\":{\"enum\":[\"start\",\"center\",\"end\"]},\"wrap\":{\"type\":\"boolean\"},\"ellipsis\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"table-renderer-compose-layout-merge\",\"path\":\"columns[].renderer.compose.layout\"}],\"validators\":[\"target-column-exists\",\"renderer-compose-exists\",\"editor-round-trip-preserve\"],\"affectedPaths\":[\"columns[].renderer.compose.layout\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]}]}",
30324
30394
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30328,7 +30398,7 @@
30328
30398
  "corpusVersion": "1.0.0"
30329
30399
  },
30330
30400
  {
30331
- "chunkIndex": 98,
30401
+ "chunkIndex": 99,
30332
30402
  "chunkKind": "authoring_manifest",
30333
30403
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[19]\",\"fragmentPath\":\"operations[19]\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.composeItem.set\"},\"fragment\":{\"operationId\":\"column.renderer.composeItem.set\",\"title\":\"Refinar somente um item existente da célula composta\",\"description\":\"Altera um único item já materializado em renderer.type compose, preservando o discriminator compose, o layout, a ordem e todos os itens irmãos. Use itemType para resolver o item; quando houver mais de um item do mesmo tipo, informe itemField para desambiguar.\",\"scope\":\"column\",\"targetKind\":\"renderer\",\"target\":{\"kind\":\"renderer\",\"resolver\":\"renderer-in-column\",\"ambiguityPolicy\":\"fail\",\"required\":true}}}",
30334
30404
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30338,7 +30408,7 @@
30338
30408
  "corpusVersion": "1.0.0"
30339
30409
  },
30340
30410
  {
30341
- "chunkIndex": 99,
30411
+ "chunkIndex": 100,
30342
30412
  "chunkKind": "authoring_manifest",
30343
30413
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[19].inputSchema\",\"fragmentPath\":\"operations[19].inputSchema\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.composeItem.set\",\"type\":\"object\"},\"fragment\":{\"type\":\"object\",\"required\":[\"itemType\",\"item\"]}}",
30344
30414
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30348,7 +30418,7 @@
30348
30418
  "corpusVersion": "1.0.0"
30349
30419
  },
30350
30420
  {
30351
- "chunkIndex": 100,
30421
+ "chunkIndex": 101,
30352
30422
  "chunkKind": "authoring_manifest",
30353
30423
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[19].inputSchema.properties\",\"fragmentPath\":\"operations[19].inputSchema.properties\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.composeItem.set\",\"type\":\"object\"},\"fragment\":{\"itemType\":{\"enum\":[\"value\",\"icon\",\"image\",\"badge\",\"link\",\"button\",\"chip\",\"progress\",\"avatar\",\"toggle\",\"menu\",\"rating\",\"html\"],\"description\":\"Discriminator canônico do item existente que será refinado.\"},\"itemField\":{\"type\":\"string\",\"description\":\"Campo estável do item quando itemType sozinho não o identifica de forma única.\"}}}",
30354
30424
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30358,7 +30428,7 @@
30358
30428
  "corpusVersion": "1.0.0"
30359
30429
  },
30360
30430
  {
30361
- "chunkIndex": 101,
30431
+ "chunkIndex": 102,
30362
30432
  "chunkKind": "authoring_manifest",
30363
30433
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[19].inputSchema.properties.item\",\"fragmentPath\":\"operations[19].inputSchema.properties.item\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.composeItem.set\",\"type\":\"object\"},\"fragment\":{\"type\":\"object\",\"description\":\"Item de uma célula composta. value mostra um campo da linha; os demais tipos exigem seu bloco de configuração homônimo.\",\"required\":[\"type\"],\"properties\":{\"type\":{\"enum\":[\"value\",\"icon\",\"image\",\"badge\",\"link\",\"button\",\"chip\",\"progress\",\"avatar\",\"toggle\",\"menu\",\"rating\",\"microVisualization\",\"html\"]},\"field\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"valueField\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"emphasis\":{\"enum\":[\"strong\",\"subtle\"],\"description\":\"Semantic hierarchy for a value item. Use strong for the primary value and subtle for supporting context; arbitrary CSS is not part of the compose contract.\"},\"button\":{\"type\":\"object\",\"required\":[\"action\"],\"properties\":{\"label\":{\"type\":\"string\"},\"labelField\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"text\"]},\"size\":{\"enum\":[\"sm\",\"md\",\"lg\"]},\"ariaLabel\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"menu\":{\"type\":\"object\",\"required\":[\"itemsExpr\"],\"properties\":{\"itemsExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"}}},\"link\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"href\"]},{\"required\":[\"hrefField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"href\":{\"type\":\"string\"},\"hrefField\":{\"type\":\"string\"},\"target\":{\"enum\":[\"_blank\",\"_self\",\"_parent\",\"_top\"]},\"rel\":{\"type\":\"string\"}}},\"progress\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"showLabel\":{\"type\":\"boolean\"}}},\"badge\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"soft\",\"plain\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"chip\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"icon\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"nameField\"]}],\"properties\":{\"name\":{\"type\":\"string\"},\"nameField\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\"},\"suffix\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"size\":{\"type\":\"number\"},\"ariaLabel\":{\"type\":\"string\"}}},\"image\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"width\":{\"type\":\"number\",\"description\":\"Largura visual em pixels; altere apenas quando o pedido mudar o tamanho da imagem.\"},\"height\":{\"type\":\"number\",\"description\":\"Altura visual em pixels; para imagem quadrada, mantenha igual a width.\"},\"shape\":{\"enum\":[\"square\",\"rounded\",\"circle\"],\"description\":\"square não arredonda, rounded usa cantos arredondados e circle materializa um círculo.\"},\"fit\":{\"enum\":[\"cover\",\"contain\"]},\"lazy\":{\"type\":\"boolean\"}}},\"avatar\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]},{\"required\":[\"initialsField\"]},{\"required\":[\"initialsExpr\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"initialsField\":{\"type\":\"string\"},\"initialsExpr\":{\"type\":\"string\"},\"shape\":{\"enum\":[\"circle\",\"square\",\"rounded\"],\"description\":\"circle é circular, square é quadrado e rounded é quadrado com cantos arredondados.\"},\"size\":{\"type\":\"number\",\"description\":\"Tamanho visual do avatar em pixels; preserve os demais campos e itens do compose ao mudar apenas o tamanho.\"},\"backgroundColor\":{\"type\":\"string\"},\"textColor\":{\"type\":\"string\"}}},\"toggle\":{\"type\":\"object\",\"required\":[\"stateExpr\",\"action\"],\"properties\":{\"stateExpr\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"ariaLabel\":{\"type\":\"string\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"rating\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"max\":{\"type\":\"number\"},\"color\":{\"type\":\"string\"},\"outlineColor\":{\"type\":\"string\"},\"size\":{\"enum\":[\"small\",\"medium\",\"large\"]},\"ariaLabel\":{\"type\":\"string\"}}},\"microVisualization\":{\"type\":\"object\",\"required\":[\"visualization\"],\"properties\":{\"visualization\":{\"type\":\"object\",\"description\":\"Expression properties accept a row path such as row.sla or a controlled formula prefixed with =, such as = row.sla.\",\"required\":[\"kind\",\"fallbackText\"],\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\",\"stackedBar\",\"radial\",\"harveyBall\",\"bullet\",\"delta\",\"processFlow\"],\"description\":\"Table-cell guidance: recommended for rapid scanning: delta, bullet, radial, harveyBall, stackedBar. Conditional: line, area and column require horizontal space; comparison increases row height; processFlow needs recognizable steps.\"},\"surface\":{\"const\":\"table-cell\"},\"size\":{\"enum\":[\"xs\",\"sm\",\"md\",\"lg\",\"responsive\"]},\"value\":{},\"valueExpr\":{\"type\":\"string\"},\"valueSuffix\":{\"type\":\"string\"},\"valueSuffixExpr\":{\"type\":\"string\"},\"total\":{\"type\":\"number\"},\"totalExpr\":{\"type\":\"string\"},\"target\":{\"type\":\"number\"},\"targetExpr\":{\"type\":\"string\"},\"baseline\":{\"type\":\"number\"},\"baselineExpr\":{\"type\":\"string\"},\"segments\":{\"type\":\"array\"},\"segmentsExpr\":{\"type\":\"string\"},\"points\":{\"type\":\"array\"},\"pointsExpr\":{\"type\":\"string\"},\"thresholds\":{\"type\":\"array\"},\"thresholdsExpr\":{\"type\":\"string\"},\"items\":{\"type\":\"array\"},\"itemsExpr\":{\"type\":\"string\"},\"tone\":{\"enum\":[\"neutral\",\"info\",\"success\",\"warning\",\"danger\",\"critical\"]},\"toneExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"},\"ariaLabelExpr\":{\"type\":\"string\"},\"fallbackText\":{\"type\":\"string\"},\"fallbackTextExpr\":{\"type\":\"string\"}},\"allOf\":[{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"delta\",\"bullet\",\"radial\",\"harveyBall\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"value\"]},{\"required\":[\"valueExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"points\"]},{\"required\":[\"pointsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"stackedBar\"}}},\"then\":{\"anyOf\":[{\"required\":[\"segments\"]},{\"required\":[\"segmentsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"processFlow\"}}},\"then\":{\"anyOf\":[{\"required\":[\"items\"]},{\"required\":[\"itemsExpr\"]}]}}]}}},\"html\":{\"type\":\"object\",\"required\":[\"template\"],\"properties\":{\"template\":{\"type\":\"string\"},\"sanitize\":{\"enum\":[\"strict\",\"basic\"]},\"emptyFallback\":{\"type\":\"string\"}}}}}}",
30364
30434
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30368,7 +30438,7 @@
30368
30438
  "corpusVersion": "1.0.0"
30369
30439
  },
30370
30440
  {
30371
- "chunkIndex": 102,
30441
+ "chunkIndex": 103,
30372
30442
  "chunkKind": "authoring_manifest",
30373
30443
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[19].inputSchema.properties.item\",\"fragmentPath\":\"operations[19].inputSchema.properties.item\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.composeItem.set\",\"type\":\"object\"},\"fragment\":{\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"button\"}}},\"then\":{\"required\":[\"button\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"menu\"}}},\"then\":{\"required\":[\"menu\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"link\"}}},\"then\":{\"required\":[\"link\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"progress\"}}},\"then\":{\"required\":[\"progress\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"badge\"}}},\"then\":{\"required\":[\"badge\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"chip\"}}},\"then\":{\"required\":[\"chip\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"icon\"}}},\"then\":{\"required\":[\"icon\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"image\"}}},\"then\":{\"required\":[\"image\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"avatar\"}}},\"then\":{\"required\":[\"avatar\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"toggle\"}}},\"then\":{\"required\":[\"toggle\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"rating\"}}},\"then\":{\"required\":[\"rating\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"microVisualization\"}}},\"then\":{\"required\":[\"microVisualization\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"html\"}}},\"then\":{\"required\":[\"html\"]}}]}}",
30374
30444
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30378,7 +30448,7 @@
30378
30448
  "corpusVersion": "1.0.0"
30379
30449
  },
30380
30450
  {
30381
- "chunkIndex": 103,
30451
+ "chunkIndex": 104,
30382
30452
  "chunkKind": "authoring_manifest",
30383
30453
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[19]\",\"fragmentPath\":\"operations[19]\",\"fragmentIdentity\":{\"operationId\":\"column.renderer.composeItem.set\"},\"fragment\":{\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"table-renderer-compose-item-merge\",\"path\":\"columns[].renderer.compose.items[]\"}],\"validators\":[\"target-column-exists\",\"renderer-compose-item-exists\",\"renderer-type-supported\",\"renderer-config-match\",\"renderer-fields-exist\",\"editor-round-trip-preserve\"],\"affectedPaths\":[\"columns[].renderer.compose.items[]\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]}}",
30384
30454
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30388,7 +30458,7 @@
30388
30458
  "corpusVersion": "1.0.0"
30389
30459
  },
30390
30460
  {
30391
- "chunkIndex": 104,
30461
+ "chunkIndex": 105,
30392
30462
  "chunkKind": "authoring_manifest",
30393
30463
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20]\",\"fragmentPath\":\"operations[20]\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\"},\"fragment\":{\"operationId\":\"column.conditionalRenderer.add\",\"title\":\"Adicionar renderizador condicional\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true}}}",
30394
30464
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30398,7 +30468,7 @@
30398
30468
  "corpusVersion": "1.0.0"
30399
30469
  },
30400
30470
  {
30401
- "chunkIndex": 105,
30471
+ "chunkIndex": 106,
30402
30472
  "chunkKind": "authoring_manifest",
30403
30473
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema\",\"fragmentPath\":\"operations[20].inputSchema\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"type\":\"object\",\"required\":[\"id\",\"condition\"]}}",
30404
30474
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30408,7 +30478,7 @@
30408
30478
  "corpusVersion": "1.0.0"
30409
30479
  },
30410
30480
  {
30411
- "chunkIndex": 106,
30481
+ "chunkIndex": 107,
30412
30482
  "chunkKind": "authoring_manifest",
30413
30483
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties\",\"fragmentPath\":\"operations[20].inputSchema.properties\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"id\":{\"type\":\"string\",\"description\":\"Identificador estável do renderer condicional (usado para deduplicação)\"},\"condition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"}}}",
30414
30484
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30418,7 +30488,7 @@
30418
30488
  "corpusVersion": "1.0.0"
30419
30489
  },
30420
30490
  {
30421
- "chunkIndex": 107,
30491
+ "chunkIndex": 108,
30422
30492
  "chunkKind": "authoring_manifest",
30423
30493
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties.renderer\",\"fragmentPath\":\"operations[20].inputSchema.properties.renderer\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"type\":\"object\",\"description\":\"Renderizador visual. Quando a intencao pedir chip, use type \\\"chip\\\" e configure chip; efeitos iconBadge materializam badge, nao chip. Ao refinar um compose existente, copie seus itens atuais e altere somente tamanho, forma, direção ou outra propriedade explicitamente solicitada.\",\"required\":[\"type\"]}}",
30424
30494
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30428,7 +30498,7 @@
30428
30498
  "corpusVersion": "1.0.0"
30429
30499
  },
30430
30500
  {
30431
- "chunkIndex": 108,
30501
+ "chunkIndex": 109,
30432
30502
  "chunkKind": "authoring_manifest",
30433
30503
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties.renderer.properties\",\"fragmentPath\":\"operations[20].inputSchema.properties.renderer.properties\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"type\":{\"enum\":[\"icon\",\"image\",\"badge\",\"link\",\"button\",\"chip\",\"progress\",\"avatar\",\"toggle\",\"menu\",\"rating\",\"microVisualization\",\"html\",\"compose\"]},\"typeExpr\":{\"type\":\"string\"},\"button\":{\"type\":\"object\",\"required\":[\"action\"],\"properties\":{\"label\":{\"type\":\"string\"},\"labelField\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"text\"]},\"size\":{\"enum\":[\"sm\",\"md\",\"lg\"]},\"ariaLabel\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"menu\":{\"type\":\"object\",\"required\":[\"itemsExpr\"],\"properties\":{\"itemsExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"}}},\"link\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"href\"]},{\"required\":[\"hrefField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"href\":{\"type\":\"string\"},\"hrefField\":{\"type\":\"string\"},\"target\":{\"enum\":[\"_blank\",\"_self\",\"_parent\",\"_top\"]},\"rel\":{\"type\":\"string\"}}},\"progress\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"showLabel\":{\"type\":\"boolean\"}}},\"badge\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"soft\",\"plain\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"chip\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"icon\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"nameField\"]}],\"properties\":{\"name\":{\"type\":\"string\"},\"nameField\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\"},\"suffix\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"size\":{\"type\":\"number\"},\"ariaLabel\":{\"type\":\"string\"}}},\"image\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"width\":{\"type\":\"number\",\"description\":\"Largura visual em pixels; altere apenas quando o pedido mudar o tamanho da imagem.\"},\"height\":{\"type\":\"number\",\"description\":\"Altura visual em pixels; para imagem quadrada, mantenha igual a width.\"},\"shape\":{\"enum\":[\"square\",\"rounded\",\"circle\"],\"description\":\"square não arredonda, rounded usa cantos arredondados e circle materializa um círculo.\"},\"fit\":{\"enum\":[\"cover\",\"contain\"]},\"lazy\":{\"type\":\"boolean\"}}},\"avatar\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]},{\"required\":[\"initialsField\"]},{\"required\":[\"initialsExpr\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"initialsField\":{\"type\":\"string\"},\"initialsExpr\":{\"type\":\"string\"},\"shape\":{\"enum\":[\"circle\",\"square\",\"rounded\"],\"description\":\"circle é circular, square é quadrado e rounded é quadrado com cantos arredondados.\"},\"size\":{\"type\":\"number\",\"description\":\"Tamanho visual do avatar em pixels; preserve os demais campos e itens do compose ao mudar apenas o tamanho.\"},\"backgroundColor\":{\"type\":\"string\"},\"textColor\":{\"type\":\"string\"}}},\"toggle\":{\"type\":\"object\",\"required\":[\"stateExpr\",\"action\"],\"properties\":{\"stateExpr\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"ariaLabel\":{\"type\":\"string\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"rating\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"max\":{\"type\":\"number\"},\"color\":{\"type\":\"string\"},\"outlineColor\":{\"type\":\"string\"},\"size\":{\"enum\":[\"small\",\"medium\",\"large\"]},\"ariaLabel\":{\"type\":\"string\"}}},\"microVisualization\":{\"type\":\"object\",\"required\":[\"visualization\"],\"properties\":{\"visualization\":{\"type\":\"object\",\"description\":\"Expression properties accept a row path such as row.sla or a controlled formula prefixed with =, such as = row.sla.\",\"required\":[\"kind\",\"fallbackText\"],\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\",\"stackedBar\",\"radial\",\"harveyBall\",\"bullet\",\"delta\",\"processFlow\"],\"description\":\"Table-cell guidance: recommended for rapid scanning: delta, bullet, radial, harveyBall, stackedBar. Conditional: line, area and column require horizontal space; comparison increases row height; processFlow needs recognizable steps.\"},\"surface\":{\"const\":\"table-cell\"},\"size\":{\"enum\":[\"xs\",\"sm\",\"md\",\"lg\",\"responsive\"]},\"value\":{},\"valueExpr\":{\"type\":\"string\"},\"valueSuffix\":{\"type\":\"string\"},\"valueSuffixExpr\":{\"type\":\"string\"},\"total\":{\"type\":\"number\"},\"totalExpr\":{\"type\":\"string\"},\"target\":{\"type\":\"number\"},\"targetExpr\":{\"type\":\"string\"},\"baseline\":{\"type\":\"number\"},\"baselineExpr\":{\"type\":\"string\"},\"segments\":{\"type\":\"array\"},\"segmentsExpr\":{\"type\":\"string\"},\"points\":{\"type\":\"array\"},\"pointsExpr\":{\"type\":\"string\"},\"thresholds\":{\"type\":\"array\"},\"thresholdsExpr\":{\"type\":\"string\"},\"items\":{\"type\":\"array\"},\"itemsExpr\":{\"type\":\"string\"},\"tone\":{\"enum\":[\"neutral\",\"info\",\"success\",\"warning\",\"danger\",\"critical\"]},\"toneExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"},\"ariaLabelExpr\":{\"type\":\"string\"},\"fallbackText\":{\"type\":\"string\"},\"fallbackTextExpr\":{\"type\":\"string\"}},\"allOf\":[{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"delta\",\"bullet\",\"radial\",\"harveyBall\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"value\"]},{\"required\":[\"valueExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"points\"]},{\"required\":[\"pointsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"stackedBar\"}}},\"then\":{\"anyOf\":[{\"required\":[\"segments\"]},{\"required\":[\"segmentsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"processFlow\"}}},\"then\":{\"anyOf\":[{\"required\":[\"items\"]},{\"required\":[\"itemsExpr\"]}]}}]}}},\"html\":{\"type\":\"object\",\"required\":[\"template\"],\"properties\":{\"template\":{\"type\":\"string\"},\"sanitize\":{\"enum\":[\"strict\",\"basic\"]},\"emptyFallback\":{\"type\":\"string\"}}}}}",
30434
30504
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30438,7 +30508,7 @@
30438
30508
  "corpusVersion": "1.0.0"
30439
30509
  },
30440
30510
  {
30441
- "chunkIndex": 109,
30511
+ "chunkIndex": 110,
30442
30512
  "chunkKind": "authoring_manifest",
30443
30513
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties.renderer.properties.compose\",\"fragmentPath\":\"operations[20].inputSchema.properties.renderer.properties.compose\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"type\":\"object\",\"description\":\"Composição de vários itens dentro da mesma célula. Em refinamentos, preserve os itens atuais e altere somente o atributo solicitado.\",\"required\":[\"items\"]}}",
30444
30514
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30448,7 +30518,7 @@
30448
30518
  "corpusVersion": "1.0.0"
30449
30519
  },
30450
30520
  {
30451
- "chunkIndex": 110,
30521
+ "chunkIndex": 111,
30452
30522
  "chunkKind": "authoring_manifest",
30453
30523
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties.renderer.properties.compose.properties.items\",\"fragmentPath\":\"operations[20].inputSchema.properties.renderer.properties.compose.properties.items\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"array\"},\"fragment\":{\"type\":\"array\",\"minItems\":1}}",
30454
30524
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30458,7 +30528,7 @@
30458
30528
  "corpusVersion": "1.0.0"
30459
30529
  },
30460
30530
  {
30461
- "chunkIndex": 111,
30531
+ "chunkIndex": 112,
30462
30532
  "chunkKind": "authoring_manifest",
30463
30533
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties.renderer.properties.compose.properties.items.items\",\"fragmentPath\":\"operations[20].inputSchema.properties.renderer.properties.compose.properties.items.items\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"type\":\"object\",\"description\":\"Item de uma célula composta. value mostra um campo da linha; os demais tipos exigem seu bloco de configuração homônimo.\",\"required\":[\"type\"],\"properties\":{\"type\":{\"enum\":[\"value\",\"icon\",\"image\",\"badge\",\"link\",\"button\",\"chip\",\"progress\",\"avatar\",\"toggle\",\"menu\",\"rating\",\"microVisualization\",\"html\"]},\"field\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"valueField\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"emphasis\":{\"enum\":[\"strong\",\"subtle\"],\"description\":\"Semantic hierarchy for a value item. Use strong for the primary value and subtle for supporting context; arbitrary CSS is not part of the compose contract.\"},\"button\":{\"type\":\"object\",\"required\":[\"action\"],\"properties\":{\"label\":{\"type\":\"string\"},\"labelField\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"text\"]},\"size\":{\"enum\":[\"sm\",\"md\",\"lg\"]},\"ariaLabel\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"menu\":{\"type\":\"object\",\"required\":[\"itemsExpr\"],\"properties\":{\"itemsExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"}}},\"link\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"href\"]},{\"required\":[\"hrefField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"href\":{\"type\":\"string\"},\"hrefField\":{\"type\":\"string\"},\"target\":{\"enum\":[\"_blank\",\"_self\",\"_parent\",\"_top\"]},\"rel\":{\"type\":\"string\"}}},\"progress\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"showLabel\":{\"type\":\"boolean\"}}},\"badge\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\",\"soft\",\"plain\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"chip\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"text\"]},{\"required\":[\"textField\"]}],\"properties\":{\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"color\":{\"enum\":[\"primary\",\"accent\",\"warn\",\"danger\",\"success\",\"info\",\"basic\"]},\"variant\":{\"enum\":[\"filled\",\"outlined\"]},\"icon\":{\"type\":\"string\"},\"tooltip\":{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}}}},\"icon\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"name\"]},{\"required\":[\"nameField\"]}],\"properties\":{\"name\":{\"type\":\"string\"},\"nameField\":{\"type\":\"string\"},\"text\":{\"type\":\"string\"},\"textField\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\"},\"suffix\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"size\":{\"type\":\"number\"},\"ariaLabel\":{\"type\":\"string\"}}},\"image\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"width\":{\"type\":\"number\",\"description\":\"Largura visual em pixels; altere apenas quando o pedido mudar o tamanho da imagem.\"},\"height\":{\"type\":\"number\",\"description\":\"Altura visual em pixels; para imagem quadrada, mantenha igual a width.\"},\"shape\":{\"enum\":[\"square\",\"rounded\",\"circle\"],\"description\":\"square não arredonda, rounded usa cantos arredondados e circle materializa um círculo.\"},\"fit\":{\"enum\":[\"cover\",\"contain\"]},\"lazy\":{\"type\":\"boolean\"}}},\"avatar\":{\"type\":\"object\",\"anyOf\":[{\"required\":[\"src\"]},{\"required\":[\"srcField\"]},{\"required\":[\"initialsField\"]},{\"required\":[\"initialsExpr\"]}],\"properties\":{\"src\":{\"type\":\"string\"},\"srcField\":{\"type\":\"string\"},\"alt\":{\"type\":\"string\"},\"altField\":{\"type\":\"string\"},\"initialsField\":{\"type\":\"string\"},\"initialsExpr\":{\"type\":\"string\"},\"shape\":{\"enum\":[\"circle\",\"square\",\"rounded\"],\"description\":\"circle é circular, square é quadrado e rounded é quadrado com cantos arredondados.\"},\"size\":{\"type\":\"number\",\"description\":\"Tamanho visual do avatar em pixels; preserve os demais campos e itens do compose ao mudar apenas o tamanho.\"},\"backgroundColor\":{\"type\":\"string\"},\"textColor\":{\"type\":\"string\"}}},\"toggle\":{\"type\":\"object\",\"required\":[\"stateExpr\",\"action\"],\"properties\":{\"stateExpr\":{\"type\":\"string\"},\"disabledCondition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"ariaLabel\":{\"type\":\"string\"},\"action\":{\"type\":\"object\",\"required\":[\"id\"],\"properties\":{\"id\":{\"type\":\"string\"},\"payloadExpr\":{\"type\":\"string\"}}}}},\"rating\":{\"type\":\"object\",\"required\":[\"valueExpr\"],\"properties\":{\"valueExpr\":{\"type\":\"string\"},\"max\":{\"type\":\"number\"},\"color\":{\"type\":\"string\"},\"outlineColor\":{\"type\":\"string\"},\"size\":{\"enum\":[\"small\",\"medium\",\"large\"]},\"ariaLabel\":{\"type\":\"string\"}}},\"microVisualization\":{\"type\":\"object\",\"required\":[\"visualization\"],\"properties\":{\"visualization\":{\"type\":\"object\",\"description\":\"Expression properties accept a row path such as row.sla or a controlled formula prefixed with =, such as = row.sla.\",\"required\":[\"kind\",\"fallbackText\"],\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\",\"stackedBar\",\"radial\",\"harveyBall\",\"bullet\",\"delta\",\"processFlow\"],\"description\":\"Table-cell guidance: recommended for rapid scanning: delta, bullet, radial, harveyBall, stackedBar. Conditional: line, area and column require horizontal space; comparison increases row height; processFlow needs recognizable steps.\"},\"surface\":{\"const\":\"table-cell\"},\"size\":{\"enum\":[\"xs\",\"sm\",\"md\",\"lg\",\"responsive\"]},\"value\":{},\"valueExpr\":{\"type\":\"string\"},\"valueSuffix\":{\"type\":\"string\"},\"valueSuffixExpr\":{\"type\":\"string\"},\"total\":{\"type\":\"number\"},\"totalExpr\":{\"type\":\"string\"},\"target\":{\"type\":\"number\"},\"targetExpr\":{\"type\":\"string\"},\"baseline\":{\"type\":\"number\"},\"baselineExpr\":{\"type\":\"string\"},\"segments\":{\"type\":\"array\"},\"segmentsExpr\":{\"type\":\"string\"},\"points\":{\"type\":\"array\"},\"pointsExpr\":{\"type\":\"string\"},\"thresholds\":{\"type\":\"array\"},\"thresholdsExpr\":{\"type\":\"string\"},\"items\":{\"type\":\"array\"},\"itemsExpr\":{\"type\":\"string\"},\"tone\":{\"enum\":[\"neutral\",\"info\",\"success\",\"warning\",\"danger\",\"critical\"]},\"toneExpr\":{\"type\":\"string\"},\"ariaLabel\":{\"type\":\"string\"},\"ariaLabelExpr\":{\"type\":\"string\"},\"fallbackText\":{\"type\":\"string\"},\"fallbackTextExpr\":{\"type\":\"string\"}},\"allOf\":[{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"delta\",\"bullet\",\"radial\",\"harveyBall\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"value\"]},{\"required\":[\"valueExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"enum\":[\"line\",\"area\",\"column\",\"comparison\"]}}},\"then\":{\"anyOf\":[{\"required\":[\"points\"]},{\"required\":[\"pointsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"stackedBar\"}}},\"then\":{\"anyOf\":[{\"required\":[\"segments\"]},{\"required\":[\"segmentsExpr\"]}]}},{\"if\":{\"properties\":{\"kind\":{\"const\":\"processFlow\"}}},\"then\":{\"anyOf\":[{\"required\":[\"items\"]},{\"required\":[\"itemsExpr\"]}]}}]}}},\"html\":{\"type\":\"object\",\"required\":[\"template\"],\"properties\":{\"template\":{\"type\":\"string\"},\"sanitize\":{\"enum\":[\"strict\",\"basic\"]},\"emptyFallback\":{\"type\":\"string\"}}}}}}",
30464
30534
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30468,7 +30538,7 @@
30468
30538
  "corpusVersion": "1.0.0"
30469
30539
  },
30470
30540
  {
30471
- "chunkIndex": 112,
30541
+ "chunkIndex": 113,
30472
30542
  "chunkKind": "authoring_manifest",
30473
30543
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties.renderer.properties.compose.properties.items.items\",\"fragmentPath\":\"operations[20].inputSchema.properties.renderer.properties.compose.properties.items.items\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"button\"}}},\"then\":{\"required\":[\"button\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"menu\"}}},\"then\":{\"required\":[\"menu\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"link\"}}},\"then\":{\"required\":[\"link\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"progress\"}}},\"then\":{\"required\":[\"progress\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"badge\"}}},\"then\":{\"required\":[\"badge\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"chip\"}}},\"then\":{\"required\":[\"chip\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"icon\"}}},\"then\":{\"required\":[\"icon\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"image\"}}},\"then\":{\"required\":[\"image\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"avatar\"}}},\"then\":{\"required\":[\"avatar\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"toggle\"}}},\"then\":{\"required\":[\"toggle\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"rating\"}}},\"then\":{\"required\":[\"rating\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"microVisualization\"}}},\"then\":{\"required\":[\"microVisualization\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"html\"}}},\"then\":{\"required\":[\"html\"]}}]}}",
30474
30544
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30478,7 +30548,7 @@
30478
30548
  "corpusVersion": "1.0.0"
30479
30549
  },
30480
30550
  {
30481
- "chunkIndex": 113,
30551
+ "chunkIndex": 114,
30482
30552
  "chunkKind": "authoring_manifest",
30483
30553
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties.renderer.properties.compose.properties\",\"fragmentPath\":\"operations[20].inputSchema.properties.renderer.properties.compose.properties\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"layout\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"gap\":{\"type\":\"number\"},\"direction\":{\"enum\":[\"row\",\"column\"],\"description\":\"row coloca os itens lado a lado na mesma linha; column empilha verticalmente, por exemplo foto em cima e código embaixo.\"},\"align\":{\"enum\":[\"start\",\"center\",\"end\"]},\"wrap\":{\"type\":\"boolean\"},\"ellipsis\":{\"type\":\"boolean\"}}}}}",
30484
30554
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30488,7 +30558,7 @@
30488
30558
  "corpusVersion": "1.0.0"
30489
30559
  },
30490
30560
  {
30491
- "chunkIndex": 114,
30561
+ "chunkIndex": 115,
30492
30562
  "chunkKind": "authoring_manifest",
30493
30563
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties.renderer\",\"fragmentPath\":\"operations[20].inputSchema.properties.renderer\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"allOf\":[{\"if\":{\"properties\":{\"type\":{\"const\":\"button\"}}},\"then\":{\"required\":[\"button\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"menu\"}}},\"then\":{\"required\":[\"menu\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"link\"}}},\"then\":{\"required\":[\"link\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"progress\"}}},\"then\":{\"required\":[\"progress\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"badge\"}}},\"then\":{\"required\":[\"badge\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"chip\"}}},\"then\":{\"required\":[\"chip\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"icon\"}}},\"then\":{\"required\":[\"icon\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"image\"}}},\"then\":{\"required\":[\"image\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"avatar\"}}},\"then\":{\"required\":[\"avatar\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"toggle\"}}},\"then\":{\"required\":[\"toggle\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"rating\"}}},\"then\":{\"required\":[\"rating\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"microVisualization\"}}},\"then\":{\"required\":[\"microVisualization\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"html\"}}},\"then\":{\"required\":[\"html\"]}},{\"if\":{\"properties\":{\"type\":{\"const\":\"compose\"}}},\"then\":{\"required\":[\"compose\"]}}]}}",
30494
30564
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30498,7 +30568,7 @@
30498
30568
  "corpusVersion": "1.0.0"
30499
30569
  },
30500
30570
  {
30501
- "chunkIndex": 115,
30571
+ "chunkIndex": 116,
30502
30572
  "chunkKind": "authoring_manifest",
30503
30573
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema.properties\",\"fragmentPath\":\"operations[20].inputSchema.properties\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"tooltip\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}},\"animation\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"enabled\":{\"type\":\"boolean\",\"description\":\"false desativa a animacao sem remover a regra.\"},\"preset\":{\"enum\":[\"info-soft\",\"success-confirm\",\"warning-attention\",\"critical-alert\",\"audit-review\",\"sync-pending\",\"pulse-soft\",\"fade-soft\",\"sla-warning\",\"sla-breach\",\"risk-elevated\",\"risk-critical\",\"audit-warning\",\"sync-warning\"],\"description\":\"Preset semantico recomendado. Preferir preset antes de type bruto.\"},\"type\":{\"enum\":[\"pulse\",\"blink\",\"grow\",\"fade\",\"slide-in\",\"border-pulse\"]},\"durationMs\":{\"type\":\"number\"},\"trigger\":{\"enum\":[\"onChange\",\"onAppear\",\"onHover\",\"onConditionEnter\",\"onConditionExit\",\"onDataRefresh\"]},\"repeat\":{\"oneOf\":[{\"enum\":[\"once\",\"loop\",\"infinite\"]},{\"type\":\"number\"}]},\"delayMs\":{\"type\":\"number\"},\"intensity\":{\"enum\":[\"subtle\",\"normal\",\"strong\"]}}},\"effects\":{\"type\":\"array\",\"description\":\"Efeitos complementares de estilo, layout, icone ou badge. Nao substituem renderer quando a intencao exige um tipo visual especifico como chip.\",\"items\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"id\":{\"type\":\"string\"},\"scope\":{\"enum\":[\"cell\",\"row\",\"column\",\"table\"]},\"description\":{\"type\":\"string\"},\"estilo\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"bgColor\":{\"type\":\"string\"},\"bold\":{\"type\":\"boolean\"},\"italic\":{\"type\":\"boolean\"},\"underline\":{\"type\":\"boolean\"},\"transform\":{\"enum\":[\"uppercase\",\"lowercase\",\"capitalize\",null]},\"opacity\":{\"type\":\"number\"},\"fontScale\":{\"type\":\"number\"}}},\"layout\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"border\":{\"enum\":[\"none\",\"left\",\"right\",\"top\",\"bottom\",\"all\"]},\"borderColor\":{\"type\":\"string\"},\"borderWidth\":{\"type\":\"number\"},\"padding\":{\"type\":\"number\"},\"align\":{\"enum\":[\"start\",\"center\",\"end\"]},\"elevation\":{\"type\":\"number\"}}},\"iconBadge\":{\"type\":\"object\",\"description\":\"Adiciona icone e/ou badge ao valor materializado. Nao representa chip; para chip use renderer.type \\\"chip\\\" e renderer.chip.\",\"additionalProperties\":false,\"properties\":{\"icon\":{\"type\":\"string\"},\"iconColor\":{\"type\":\"string\"},\"iconPos\":{\"enum\":[\"before\",\"after\",\"overlay\"]},\"badgeText\":{\"type\":\"string\"},\"badgeStyle\":{\"enum\":[\"solid\",\"soft\",\"outline\"]},\"badgeColor\":{\"type\":\"string\"}}},\"background\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"gradient\":{\"type\":\"string\"},\"alpha\":{\"type\":\"number\"},\"blur\":{\"type\":\"number\"}}},\"animation\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"enabled\":{\"type\":\"boolean\",\"description\":\"false desativa a animacao sem remover a regra.\"},\"preset\":{\"enum\":[\"info-soft\",\"success-confirm\",\"warning-attention\",\"critical-alert\",\"audit-review\",\"sync-pending\",\"pulse-soft\",\"fade-soft\",\"sla-warning\",\"sla-breach\",\"risk-elevated\",\"risk-critical\",\"audit-warning\",\"sync-warning\"],\"description\":\"Preset semantico recomendado. Preferir preset antes de type bruto.\"},\"type\":{\"enum\":[\"pulse\",\"blink\",\"grow\",\"fade\",\"slide-in\",\"border-pulse\"]},\"durationMs\":{\"type\":\"number\"},\"trigger\":{\"enum\":[\"onChange\",\"onAppear\",\"onHover\",\"onConditionEnter\",\"onConditionExit\",\"onDataRefresh\"]},\"repeat\":{\"oneOf\":[{\"enum\":[\"once\",\"loop\",\"infinite\"]},{\"type\":\"number\"}]},\"delayMs\":{\"type\":\"number\"},\"intensity\":{\"enum\":[\"subtle\",\"normal\",\"strong\"]}}},\"tooltip\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}},\"cssClass\":{\"type\":\"string\"},\"inlineStyle\":{\"type\":\"string\"}}}},\"enabled\":{\"type\":\"boolean\"},\"description\":{\"type\":\"string\"}}}",
30504
30574
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30508,7 +30578,7 @@
30508
30578
  "corpusVersion": "1.0.0"
30509
30579
  },
30510
30580
  {
30511
- "chunkIndex": 116,
30581
+ "chunkIndex": 117,
30512
30582
  "chunkKind": "authoring_manifest",
30513
30583
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20].inputSchema\",\"fragmentPath\":\"operations[20].inputSchema\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\",\"type\":\"object\"},\"fragment\":{\"anyOf\":[{\"required\":[\"renderer\"]},{\"required\":[\"tooltip\"]},{\"required\":[\"animation\"]},{\"required\":[\"effects\"]}]}}",
30514
30584
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30518,7 +30588,7 @@
30518
30588
  "corpusVersion": "1.0.0"
30519
30589
  },
30520
30590
  {
30521
- "chunkIndex": 117,
30591
+ "chunkIndex": 118,
30522
30592
  "chunkKind": "authoring_manifest",
30523
30593
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations[20]\",\"fragmentPath\":\"operations[20]\",\"fragmentIdentity\":{\"operationId\":\"column.conditionalRenderer.add\"},\"fragment\":{\"effects\":[{\"kind\":\"append-unique\",\"path\":\"columns[].conditionalRenderers[]\",\"key\":\"id\"}],\"validators\":[\"target-column-exists\",\"computed-expression-valid\",\"renderer-config-match\",\"renderer-fields-exist\"],\"affectedPaths\":[\"columns[].conditionalRenderers[]\",\"columns[].conditionalRenderers[].tooltip\",\"columns[].conditionalRenderers[].animation\",\"columns[].conditionalRenderers[].effects\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]}}",
30524
30594
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30528,7 +30598,7 @@
30528
30598
  "corpusVersion": "1.0.0"
30529
30599
  },
30530
30600
  {
30531
- "chunkIndex": 118,
30601
+ "chunkIndex": 119,
30532
30602
  "chunkKind": "authoring_manifest",
30533
30603
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"column.conditionalStyle.add\",\"title\":\"Adicionar regra de estilo condicional na coluna\",\"scope\":\"column\",\"targetKind\":\"rule\",\"target\":{\"kind\":\"rule\",\"resolver\":\"style-rule-in-column-or-row\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"id\",\"condition\"],\"properties\":{\"id\":{\"type\":\"string\",\"description\":\"Identificador estável da regra de estilo da coluna\"},\"condition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"surfacePresetRef\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"id\",\"catalogVersion\"],\"properties\":{\"id\":{\"enum\":[\"success\",\"warning\",\"danger\",\"highlight\"]},\"catalogVersion\":{\"const\":\"0.2.0\"}}},\"cssClass\":{\"type\":\"string\"},\"style\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"background\":{\"type\":\"string\"},\"backgroundColor\":{\"type\":\"string\"},\"background-color\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"fontWeight\":{\"type\":\"string\"},\"font-weight\":{\"type\":\"string\"},\"fontStyle\":{\"type\":\"string\"},\"font-style\":{\"type\":\"string\"},\"textDecoration\":{\"type\":\"string\"},\"text-decoration\":{\"type\":\"string\"},\"textTransform\":{\"type\":\"string\"},\"text-transform\":{\"type\":\"string\"},\"opacity\":{\"oneOf\":[{\"type\":\"string\"},{\"type\":\"number\"}]},\"border\":{\"type\":\"string\"},\"borderLeft\":{\"type\":\"string\"},\"border-left\":{\"type\":\"string\"},\"borderRight\":{\"type\":\"string\"},\"border-right\":{\"type\":\"string\"},\"borderTop\":{\"type\":\"string\"},\"border-top\":{\"type\":\"string\"},\"borderBottom\":{\"type\":\"string\"},\"border-bottom\":{\"type\":\"string\"}}},\"tooltip\":{\"type\":\"object\"},\"effects\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"id\":{\"type\":\"string\"},\"scope\":{\"enum\":[\"cell\",\"row\",\"column\",\"table\"]},\"description\":{\"type\":\"string\"},\"estilo\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"bgColor\":{\"type\":\"string\"},\"bold\":{\"type\":\"boolean\"},\"italic\":{\"type\":\"boolean\"},\"underline\":{\"type\":\"boolean\"},\"transform\":{\"enum\":[\"uppercase\",\"lowercase\",\"capitalize\",null]},\"opacity\":{\"type\":\"number\"},\"fontScale\":{\"type\":\"number\"}}},\"layout\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"border\":{\"enum\":[\"none\",\"left\",\"right\",\"top\",\"bottom\",\"all\"]},\"borderColor\":{\"type\":\"string\"},\"borderWidth\":{\"type\":\"number\"},\"padding\":{\"type\":\"number\"},\"align\":{\"enum\":[\"start\",\"center\",\"end\"]},\"elevation\":{\"type\":\"number\"}}},\"iconBadge\":{\"type\":\"object\",\"description\":\"Adiciona icone e/ou badge ao valor materializado. Nao representa chip; para chip use renderer.type \\\"chip\\\" e renderer.chip.\",\"additionalProperties\":false,\"properties\":{\"icon\":{\"type\":\"string\"},\"iconColor\":{\"type\":\"string\"},\"iconPos\":{\"enum\":[\"before\",\"after\",\"overlay\"]},\"badgeText\":{\"type\":\"string\"},\"badgeStyle\":{\"enum\":[\"solid\",\"soft\",\"outline\"]},\"badgeColor\":{\"type\":\"string\"}}},\"background\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"gradient\":{\"type\":\"string\"},\"alpha\":{\"type\":\"number\"},\"blur\":{\"type\":\"number\"}}},\"animation\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"enabled\":{\"type\":\"boolean\",\"description\":\"false desativa a animacao sem remover a regra.\"},\"preset\":{\"enum\":[\"info-soft\",\"success-confirm\",\"warning-attention\",\"critical-alert\",\"audit-review\",\"sync-pending\",\"pulse-soft\",\"fade-soft\",\"sla-warning\",\"sla-breach\",\"risk-elevated\",\"risk-critical\",\"audit-warning\",\"sync-warning\"],\"description\":\"Preset semantico recomendado. Preferir preset antes de type bruto.\"},\"type\":{\"enum\":[\"pulse\",\"blink\",\"grow\",\"fade\",\"slide-in\",\"border-pulse\"]},\"durationMs\":{\"type\":\"number\"},\"trigger\":{\"enum\":[\"onChange\",\"onAppear\",\"onHover\",\"onConditionEnter\",\"onConditionExit\",\"onDataRefresh\"]},\"repeat\":{\"oneOf\":[{\"enum\":[\"once\",\"loop\",\"infinite\"]},{\"type\":\"number\"}]},\"delayMs\":{\"type\":\"number\"},\"intensity\":{\"enum\":[\"subtle\",\"normal\",\"strong\"]}}},\"tooltip\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}},\"cssClass\":{\"type\":\"string\"},\"inlineStyle\":{\"type\":\"string\"}}}},\"description\":{\"type\":\"string\"}},\"anyOf\":[{\"required\":[\"surfacePresetRef\"]},{\"required\":[\"cssClass\"]},{\"required\":[\"style\"]},{\"required\":[\"tooltip\"]},{\"required\":[\"effects\"]}]},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"columns[].conditionalStyles[]\",\"key\":\"id\"}],\"validators\":[\"target-column-exists\",\"computed-expression-valid\",\"conditional-style-valid\",\"conditional-surface-accessible\"],\"affectedPaths\":[\"columns[].conditionalStyles[]\",\"columns[].conditionalStyles[].effects\",\"columns[].conditionalStyles[].tooltip\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]}]}",
30534
30604
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30538,7 +30608,7 @@
30538
30608
  "corpusVersion": "1.0.0"
30539
30609
  },
30540
30610
  {
30541
- "chunkIndex": 119,
30611
+ "chunkIndex": 120,
30542
30612
  "chunkKind": "authoring_manifest",
30543
30613
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"row.styleRule.add\",\"title\":\"Adicionar destaque visual condicional à linha\",\"scope\":\"global\",\"targetKind\":\"rule\",\"target\":{\"kind\":\"rule\",\"resolver\":\"style-rule-in-column-or-row\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"id\",\"condition\"],\"properties\":{\"id\":{\"type\":\"string\",\"description\":\"Identificador estável da regra (usado para deduplicação via append-unique)\"},\"condition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"surfacePresetRef\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"id\",\"catalogVersion\"],\"properties\":{\"id\":{\"enum\":[\"success\",\"warning\",\"danger\",\"highlight\"]},\"catalogVersion\":{\"const\":\"0.2.0\"}}},\"style\":{\"description\":\"Estilo CSS seguro; fundo sem color usa foreground automático governado no runtime\"},\"cssClass\":{\"type\":\"string\"},\"effects\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"id\":{\"type\":\"string\"},\"scope\":{\"enum\":[\"cell\",\"row\",\"column\",\"table\"]},\"description\":{\"type\":\"string\"},\"estilo\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"bgColor\":{\"type\":\"string\"},\"bold\":{\"type\":\"boolean\"},\"italic\":{\"type\":\"boolean\"},\"underline\":{\"type\":\"boolean\"},\"transform\":{\"enum\":[\"uppercase\",\"lowercase\",\"capitalize\",null]},\"opacity\":{\"type\":\"number\"},\"fontScale\":{\"type\":\"number\"}}},\"layout\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"border\":{\"enum\":[\"none\",\"left\",\"right\",\"top\",\"bottom\",\"all\"]},\"borderColor\":{\"type\":\"string\"},\"borderWidth\":{\"type\":\"number\"},\"padding\":{\"type\":\"number\"},\"align\":{\"enum\":[\"start\",\"center\",\"end\"]},\"elevation\":{\"type\":\"number\"}}},\"iconBadge\":{\"type\":\"object\",\"description\":\"Adiciona icone e/ou badge ao valor materializado. Nao representa chip; para chip use renderer.type \\\"chip\\\" e renderer.chip.\",\"additionalProperties\":false,\"properties\":{\"icon\":{\"type\":\"string\"},\"iconColor\":{\"type\":\"string\"},\"iconPos\":{\"enum\":[\"before\",\"after\",\"overlay\"]},\"badgeText\":{\"type\":\"string\"},\"badgeStyle\":{\"enum\":[\"solid\",\"soft\",\"outline\"]},\"badgeColor\":{\"type\":\"string\"}}},\"background\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"gradient\":{\"type\":\"string\"},\"alpha\":{\"type\":\"number\"},\"blur\":{\"type\":\"number\"}}},\"animation\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"enabled\":{\"type\":\"boolean\",\"description\":\"false desativa a animacao sem remover a regra.\"},\"preset\":{\"enum\":[\"info-soft\",\"success-confirm\",\"warning-attention\",\"critical-alert\",\"audit-review\",\"sync-pending\",\"pulse-soft\",\"fade-soft\",\"sla-warning\",\"sla-breach\",\"risk-elevated\",\"risk-critical\",\"audit-warning\",\"sync-warning\"],\"description\":\"Preset semantico recomendado. Preferir preset antes de type bruto.\"},\"type\":{\"enum\":[\"pulse\",\"blink\",\"grow\",\"fade\",\"slide-in\",\"border-pulse\"]},\"durationMs\":{\"type\":\"number\"},\"trigger\":{\"enum\":[\"onChange\",\"onAppear\",\"onHover\",\"onConditionEnter\",\"onConditionExit\",\"onDataRefresh\"]},\"repeat\":{\"oneOf\":[{\"enum\":[\"once\",\"loop\",\"infinite\"]},{\"type\":\"number\"}]},\"delayMs\":{\"type\":\"number\"},\"intensity\":{\"enum\":[\"subtle\",\"normal\",\"strong\"]}}},\"tooltip\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}},\"cssClass\":{\"type\":\"string\"},\"inlineStyle\":{\"type\":\"string\"}}}},\"description\":{\"type\":\"string\"}},\"anyOf\":[{\"required\":[\"surfacePresetRef\"]},{\"required\":[\"cssClass\"]},{\"required\":[\"style\"]},{\"required\":[\"effects\"]}]},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"rowConditionalStyles[]\",\"key\":\"id\"}],\"validators\":[\"computed-expression-valid\",\"conditional-surface-accessible\"],\"affectedPaths\":[\"rowConditionalStyles[]\",\"rowConditionalStyles[].effects\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]}]}",
30544
30614
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30548,7 +30618,7 @@
30548
30618
  "corpusVersion": "1.0.0"
30549
30619
  },
30550
30620
  {
30551
- "chunkIndex": 120,
30621
+ "chunkIndex": 121,
30552
30622
  "chunkKind": "authoring_manifest",
30553
30623
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"row.styleRule.update\",\"title\":\"Atualizar destaque visual condicional existente da linha\",\"scope\":\"rule\",\"targetKind\":\"rule\",\"target\":{\"kind\":\"rule\",\"resolver\":\"style-rule-in-column-or-row\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"condition\":{\"type\":\"object\",\"description\":\"Nova AST Json Logic; omita para preservar a condição atual\"},\"surfacePresetRef\":{\"type\":\"object\",\"additionalProperties\":false,\"required\":[\"id\",\"catalogVersion\"],\"properties\":{\"id\":{\"enum\":[\"success\",\"warning\",\"danger\",\"highlight\"]},\"catalogVersion\":{\"const\":\"0.2.0\"}}},\"style\":{\"description\":\"Novo estilo CSS seguro; omitir color mantém foreground automático\"},\"cssClass\":{\"type\":\"string\"},\"effects\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"id\":{\"type\":\"string\"},\"scope\":{\"enum\":[\"cell\",\"row\",\"column\",\"table\"]},\"description\":{\"type\":\"string\"},\"estilo\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"bgColor\":{\"type\":\"string\"},\"bold\":{\"type\":\"boolean\"},\"italic\":{\"type\":\"boolean\"},\"underline\":{\"type\":\"boolean\"},\"transform\":{\"enum\":[\"uppercase\",\"lowercase\",\"capitalize\",null]},\"opacity\":{\"type\":\"number\"},\"fontScale\":{\"type\":\"number\"}}},\"layout\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"border\":{\"enum\":[\"none\",\"left\",\"right\",\"top\",\"bottom\",\"all\"]},\"borderColor\":{\"type\":\"string\"},\"borderWidth\":{\"type\":\"number\"},\"padding\":{\"type\":\"number\"},\"align\":{\"enum\":[\"start\",\"center\",\"end\"]},\"elevation\":{\"type\":\"number\"}}},\"iconBadge\":{\"type\":\"object\",\"description\":\"Adiciona icone e/ou badge ao valor materializado. Nao representa chip; para chip use renderer.type \\\"chip\\\" e renderer.chip.\",\"additionalProperties\":false,\"properties\":{\"icon\":{\"type\":\"string\"},\"iconColor\":{\"type\":\"string\"},\"iconPos\":{\"enum\":[\"before\",\"after\",\"overlay\"]},\"badgeText\":{\"type\":\"string\"},\"badgeStyle\":{\"enum\":[\"solid\",\"soft\",\"outline\"]},\"badgeColor\":{\"type\":\"string\"}}},\"background\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"gradient\":{\"type\":\"string\"},\"alpha\":{\"type\":\"number\"},\"blur\":{\"type\":\"number\"}}},\"animation\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"enabled\":{\"type\":\"boolean\",\"description\":\"false desativa a animacao sem remover a regra.\"},\"preset\":{\"enum\":[\"info-soft\",\"success-confirm\",\"warning-attention\",\"critical-alert\",\"audit-review\",\"sync-pending\",\"pulse-soft\",\"fade-soft\",\"sla-warning\",\"sla-breach\",\"risk-elevated\",\"risk-critical\",\"audit-warning\",\"sync-warning\"],\"description\":\"Preset semantico recomendado. Preferir preset antes de type bruto.\"},\"type\":{\"enum\":[\"pulse\",\"blink\",\"grow\",\"fade\",\"slide-in\",\"border-pulse\"]},\"durationMs\":{\"type\":\"number\"},\"trigger\":{\"enum\":[\"onChange\",\"onAppear\",\"onHover\",\"onConditionEnter\",\"onConditionExit\",\"onDataRefresh\"]},\"repeat\":{\"oneOf\":[{\"enum\":[\"once\",\"loop\",\"infinite\"]},{\"type\":\"number\"}]},\"delayMs\":{\"type\":\"number\"},\"intensity\":{\"enum\":[\"subtle\",\"normal\",\"strong\"]}}},\"tooltip\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}},\"cssClass\":{\"type\":\"string\"},\"inlineStyle\":{\"type\":\"string\"}}}},\"description\":{\"type\":\"string\",\"description\":\"Descrição semântica atualizada da regra visual\"}},\"anyOf\":[{\"required\":[\"condition\"]},{\"required\":[\"surfacePresetRef\"]},{\"required\":[\"cssClass\"]},{\"required\":[\"style\"]},{\"required\":[\"effects\"]},{\"required\":[\"description\"]}]},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"rowConditionalStyles[]\",\"key\":\"id\"}],\"validators\":[\"computed-expression-valid\",\"conditional-surface-accessible\"],\"affectedPaths\":[\"rowConditionalStyles[]\",\"rowConditionalStyles[].condition\",\"rowConditionalStyles[].surfacePresetRef\",\"rowConditionalStyles[].style\",\"rowConditionalStyles[].cssClass\",\"rowConditionalStyles[].effects\",\"rowConditionalStyles[].description\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]}]}",
30554
30624
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30558,7 +30628,7 @@
30558
30628
  "corpusVersion": "1.0.0"
30559
30629
  },
30560
30630
  {
30561
- "chunkIndex": 121,
30631
+ "chunkIndex": 122,
30562
30632
  "chunkKind": "authoring_manifest",
30563
30633
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"row.conditionalRenderer.add\",\"title\":\"Adicionar renderizador condicional de linha\",\"scope\":\"global\",\"targetKind\":\"conditionalRenderer\",\"target\":{\"kind\":\"conditionalRenderer\",\"resolver\":\"conditional-renderer-in-row\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"id\",\"condition\"],\"properties\":{\"id\":{\"type\":\"string\",\"description\":\"Identificador estavel da regra de renderer de linha\"},\"condition\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"tooltip\":{\"type\":\"object\",\"description\":\"Tooltip de linha\"},\"animation\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"enabled\":{\"type\":\"boolean\",\"description\":\"false desativa a animacao sem remover a regra.\"},\"preset\":{\"enum\":[\"info-soft\",\"success-confirm\",\"warning-attention\",\"critical-alert\",\"audit-review\",\"sync-pending\",\"pulse-soft\",\"fade-soft\",\"sla-warning\",\"sla-breach\",\"risk-elevated\",\"risk-critical\",\"audit-warning\",\"sync-warning\"],\"description\":\"Preset semantico recomendado. Preferir preset antes de type bruto.\"},\"type\":{\"enum\":[\"pulse\",\"blink\",\"grow\",\"fade\",\"slide-in\",\"border-pulse\"]},\"durationMs\":{\"type\":\"number\"},\"trigger\":{\"enum\":[\"onChange\",\"onAppear\",\"onHover\",\"onConditionEnter\",\"onConditionExit\",\"onDataRefresh\"]},\"repeat\":{\"oneOf\":[{\"enum\":[\"once\",\"loop\",\"infinite\"]},{\"type\":\"number\"}]},\"delayMs\":{\"type\":\"number\"},\"intensity\":{\"enum\":[\"subtle\",\"normal\",\"strong\"]}}},\"effects\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"id\":{\"type\":\"string\"},\"scope\":{\"enum\":[\"cell\",\"row\",\"column\",\"table\"]},\"description\":{\"type\":\"string\"},\"estilo\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"bgColor\":{\"type\":\"string\"},\"bold\":{\"type\":\"boolean\"},\"italic\":{\"type\":\"boolean\"},\"underline\":{\"type\":\"boolean\"},\"transform\":{\"enum\":[\"uppercase\",\"lowercase\",\"capitalize\",null]},\"opacity\":{\"type\":\"number\"},\"fontScale\":{\"type\":\"number\"}}},\"layout\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"border\":{\"enum\":[\"none\",\"left\",\"right\",\"top\",\"bottom\",\"all\"]},\"borderColor\":{\"type\":\"string\"},\"borderWidth\":{\"type\":\"number\"},\"padding\":{\"type\":\"number\"},\"align\":{\"enum\":[\"start\",\"center\",\"end\"]},\"elevation\":{\"type\":\"number\"}}},\"iconBadge\":{\"type\":\"object\",\"description\":\"Adiciona icone e/ou badge ao valor materializado. Nao representa chip; para chip use renderer.type \\\"chip\\\" e renderer.chip.\",\"additionalProperties\":false,\"properties\":{\"icon\":{\"type\":\"string\"},\"iconColor\":{\"type\":\"string\"},\"iconPos\":{\"enum\":[\"before\",\"after\",\"overlay\"]},\"badgeText\":{\"type\":\"string\"},\"badgeStyle\":{\"enum\":[\"solid\",\"soft\",\"outline\"]},\"badgeColor\":{\"type\":\"string\"}}},\"background\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"color\":{\"type\":\"string\"},\"gradient\":{\"type\":\"string\"},\"alpha\":{\"type\":\"number\"},\"blur\":{\"type\":\"number\"}}},\"animation\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"enabled\":{\"type\":\"boolean\",\"description\":\"false desativa a animacao sem remover a regra.\"},\"preset\":{\"enum\":[\"info-soft\",\"success-confirm\",\"warning-attention\",\"critical-alert\",\"audit-review\",\"sync-pending\",\"pulse-soft\",\"fade-soft\",\"sla-warning\",\"sla-breach\",\"risk-elevated\",\"risk-critical\",\"audit-warning\",\"sync-warning\"],\"description\":\"Preset semantico recomendado. Preferir preset antes de type bruto.\"},\"type\":{\"enum\":[\"pulse\",\"blink\",\"grow\",\"fade\",\"slide-in\",\"border-pulse\"]},\"durationMs\":{\"type\":\"number\"},\"trigger\":{\"enum\":[\"onChange\",\"onAppear\",\"onHover\",\"onConditionEnter\",\"onConditionExit\",\"onDataRefresh\"]},\"repeat\":{\"oneOf\":[{\"enum\":[\"once\",\"loop\",\"infinite\"]},{\"type\":\"number\"}]},\"delayMs\":{\"type\":\"number\"},\"intensity\":{\"enum\":[\"subtle\",\"normal\",\"strong\"]}}},\"tooltip\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"text\":{\"type\":\"string\"},\"position\":{\"enum\":[\"top\",\"right\",\"bottom\",\"left\"]},\"bgColor\":{\"type\":\"string\"},\"delayMs\":{\"type\":\"number\"}}},\"cssClass\":{\"type\":\"string\"},\"inlineStyle\":{\"type\":\"string\"}}}},\"enabled\":{\"type\":\"boolean\"},\"description\":{\"type\":\"string\"}},\"anyOf\":[{\"required\":[\"tooltip\"]},{\"required\":[\"animation\"]},{\"required\":[\"effects\"]}]},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"rowConditionalRenderers[]\",\"key\":\"id\"}],\"validators\":[\"computed-expression-valid\"],\"affectedPaths\":[\"rowConditionalRenderers[]\",\"rowConditionalRenderers[].condition\",\"rowConditionalRenderers[].tooltip\",\"rowConditionalRenderers[].animation\",\"rowConditionalRenderers[].effects\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"toolbar.visibility.set\",\"title\":\"Definir visibilidade da toolbar\",\"scope\":\"global\",\"targetKind\":\"toolbar\",\"target\":{\"kind\":\"toolbar\",\"resolver\":\"toolbar-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"visible\"],\"properties\":{\"visible\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"toolbar\"}],\"affectedPaths\":[\"toolbar.visible\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"toolbar.action.add\",\"title\":\"Adicionar ação na toolbar\",\"scope\":\"global\",\"targetKind\":\"toolbarAction\",\"target\":{\"kind\":\"toolbarAction\",\"resolver\":\"action-in-toolbar-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"id\",\"label\",\"action\"],\"properties\":{\"id\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"action\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"type\":{\"enum\":[\"button\",\"icon\",\"menu\"],\"default\":\"button\"},\"visibleWhen\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"globalAction\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"actionId\":{\"type\":\"string\",\"enum\":[\"toast.success\",\"toast.error\",\"dialog.alert\",\"dialog.open\",\"navigation.openExternal\",\"navigation.openRoute\",\"api.post\",\"api.patch\"]},\"payload\":{\"type\":\"object\"},\"payloadExpr\":{\"type\":\"string\"}}},\"effects\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"kind\",\"globalAction\"],\"additionalProperties\":false,\"properties\":{\"kind\":{\"enum\":[\"global-action\"]},\"globalAction\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"actionId\":{\"type\":\"string\",\"enum\":[\"toast.success\",\"toast.error\",\"dialog.alert\",\"dialog.open\",\"navigation.openExternal\",\"navigation.openRoute\",\"api.post\",\"api.patch\"]},\"payload\":{\"type\":\"object\"},\"payloadExpr\":{\"type\":\"string\"}}}}}}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"toolbar.actions[]\",\"key\":\"id\"}],\"validators\":[\"toolbar-action-id-unique\"],\"affectedPaths\":[\"toolbar.actions[]\",\"toolbar.actions[].visibleWhen\",\"toolbar.actions[].effects\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]}]}",
30564
30634
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30568,7 +30638,7 @@
30568
30638
  "corpusVersion": "1.0.0"
30569
30639
  },
30570
30640
  {
30571
- "chunkIndex": 122,
30641
+ "chunkIndex": 123,
30572
30642
  "chunkKind": "authoring_manifest",
30573
30643
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"rowAction.add\",\"title\":\"Adicionar ação de linha\",\"scope\":\"global\",\"targetKind\":\"rowAction\",\"target\":{\"kind\":\"rowAction\",\"resolver\":\"action-in-row-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"id\",\"label\",\"action\"],\"properties\":{\"id\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"action\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"visibleWhen\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"disabledWhen\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"recordSurface\":{\"type\":\"object\",\"description\":\"ResourceSurfaceCatalogItem canonico preservado para abrir uma superficie relacionada ao registro da linha clicada.\"},\"globalAction\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"actionId\":{\"type\":\"string\",\"enum\":[\"toast.success\",\"toast.error\",\"dialog.alert\",\"dialog.open\",\"navigation.openExternal\",\"navigation.openRoute\",\"api.post\",\"api.patch\"]},\"payload\":{\"type\":\"object\"},\"payloadExpr\":{\"type\":\"string\"}}},\"effects\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"kind\",\"globalAction\"],\"additionalProperties\":false,\"properties\":{\"kind\":{\"enum\":[\"global-action\"]},\"globalAction\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"actionId\":{\"type\":\"string\",\"enum\":[\"toast.success\",\"toast.error\",\"dialog.alert\",\"dialog.open\",\"navigation.openExternal\",\"navigation.openRoute\",\"api.post\",\"api.patch\"]},\"payload\":{\"type\":\"object\"},\"payloadExpr\":{\"type\":\"string\"}}}}}}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"actions.row.actions[]\",\"key\":\"id\"}],\"validators\":[\"row-action-id-unique\"],\"affectedPaths\":[\"actions.row.actions[]\",\"actions.row.actions[].visibleWhen\",\"actions.row.actions[].disabledWhen\",\"actions.row.actions[].effects\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"bulkAction.add\",\"title\":\"Adicionar ação em lote\",\"scope\":\"global\",\"targetKind\":\"bulkAction\",\"target\":{\"kind\":\"bulkAction\",\"resolver\":\"action-in-bulk-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"id\",\"label\",\"action\"],\"properties\":{\"id\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"action\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"color\":{\"type\":\"string\"},\"globalAction\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"actionId\":{\"type\":\"string\",\"enum\":[\"toast.success\",\"toast.error\",\"dialog.alert\",\"dialog.open\",\"navigation.openExternal\",\"navigation.openRoute\",\"api.post\",\"api.patch\"]},\"payload\":{\"type\":\"object\"},\"payloadExpr\":{\"type\":\"string\"}}},\"effects\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"kind\",\"globalAction\"],\"additionalProperties\":false,\"properties\":{\"kind\":{\"enum\":[\"global-action\"]},\"globalAction\":{\"type\":\"object\",\"additionalProperties\":false,\"properties\":{\"actionId\":{\"type\":\"string\",\"enum\":[\"toast.success\",\"toast.error\",\"dialog.alert\",\"dialog.open\",\"navigation.openExternal\",\"navigation.openRoute\",\"api.post\",\"api.patch\"]},\"payload\":{\"type\":\"object\"},\"payloadExpr\":{\"type\":\"string\"}}}}}}}},\"effects\":[{\"kind\":\"append-unique\",\"path\":\"actions.bulk.actions[]\",\"key\":\"id\"}],\"validators\":[\"bulk-action-id-unique\"],\"affectedPaths\":[\"actions.bulk.actions[]\",\"actions.bulk.actions[].effects\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"export.enabled.set\",\"title\":\"Habilitar exportação\",\"scope\":\"global\",\"targetKind\":\"export\",\"target\":{\"kind\":\"export\",\"resolver\":\"export-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"formats\":{\"type\":\"array\",\"items\":{\"enum\":[\"excel\",\"pdf\",\"csv\",\"json\"]}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"export\"}],\"affectedPaths\":[\"export.enabled\",\"export.formats\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"filter.advanced.configure\",\"title\":\"Configurar filtros avançados\",\"scope\":\"global\",\"targetKind\":\"filter\",\"target\":{\"kind\":\"filter\",\"resolver\":\"filter-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"queryBuilder\":{\"type\":\"boolean\"},\"savePresets\":{\"type\":\"boolean\"},\"settings\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"filter\"]},\"showAdvanced\":{\"type\":\"boolean\"},\"allowSaveTags\":{\"type\":\"boolean\"},\"tags\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"id\",\"label\",\"patch\"],\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"patch\":{\"type\":\"object\"}}}},\"alwaysVisibleFields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"selectedFieldIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"alwaysVisibleFieldMetadataOverrides\":{\"type\":\"object\",\"additionalProperties\":{\"type\":\"object\"}},\"changeDebounceMs\":{\"type\":\"number\",\"minimum\":0},\"useInlineSearchableSelectVariant\":{\"type\":\"boolean\"},\"useInlineRangeVariant\":{\"type\":\"boolean\"},\"useInlineDateVariant\":{\"type\":\"boolean\"},\"useInlineDateRangeVariant\":{\"type\":\"boolean\"}}}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"behavior.filtering.enabled\",\"value\":true},{\"kind\":\"merge-object\",\"path\":\"behavior.filtering.advancedFilters\"}],\"affectedPaths\":[\"behavior.filtering.enabled\",\"behavior.filtering.advancedFilters.enabled\",\"behavior.filtering.advancedFilters.settings\"],\"validators\":[\"filter-fields-exist\",\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"filter.advanced.fields.add\",\"title\":\"Adicionar campos aos filtros avançados\",\"scope\":\"global\",\"targetKind\":\"filter\",\"target\":{\"kind\":\"filter\",\"resolver\":\"filter-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"fields\"],\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"minItems\":1},\"selected\":{\"type\":\"boolean\"},\"alwaysVisible\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"behavior.filtering.enabled\",\"value\":true},{\"kind\":\"merge-object\",\"path\":\"behavior.filtering.advancedFilters\"}],\"affectedPaths\":[\"behavior.filtering.enabled\",\"behavior.filtering.advancedFilters.enabled\",\"behavior.filtering.advancedFilters.settings\"],\"validators\":[\"filter-fields-exist\",\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"filter.advanced.fields.remove\",\"title\":\"Remover campos dos filtros avançados\",\"scope\":\"global\",\"targetKind\":\"filter\",\"target\":{\"kind\":\"filter\",\"resolver\":\"filter-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"fields\"],\"properties\":{\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"minItems\":1},\"selected\":{\"type\":\"boolean\"},\"alwaysVisible\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"behavior.filtering.enabled\",\"value\":true},{\"kind\":\"merge-object\",\"path\":\"behavior.filtering.advancedFilters\"}],\"affectedPaths\":[\"behavior.filtering.enabled\",\"behavior.filtering.advancedFilters.enabled\",\"behavior.filtering.advancedFilters.settings\"],\"validators\":[\"filter-fields-exist\",\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]}]}",
30574
30644
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30578,7 +30648,7 @@
30578
30648
  "corpusVersion": "1.0.0"
30579
30649
  },
30580
30650
  {
30581
- "chunkIndex": 123,
30651
+ "chunkIndex": 124,
30582
30652
  "chunkKind": "authoring_manifest",
30583
30653
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"grouping.set\",\"title\":\"Definir agrupamento\",\"scope\":\"global\",\"targetKind\":\"grouping\",\"target\":{\"kind\":\"grouping\",\"resolver\":\"grouping-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"fields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"expanded\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.grouping\"}],\"validators\":[\"grouping-fields-exist\"],\"affectedPaths\":[\"behavior.grouping\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"selection.mode.set\",\"title\":\"Definir modo de seleção\",\"scope\":\"global\",\"targetKind\":\"selection\",\"target\":{\"kind\":\"selection\",\"resolver\":\"selection-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"enabled\",\"type\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"type\":{\"enum\":[\"single\",\"multiple\"]},\"mode\":{\"enum\":[\"checkbox\",\"row\",\"both\"]}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.selection\"}],\"affectedPaths\":[\"behavior.selection.enabled\",\"behavior.selection.type\",\"behavior.selection.mode\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"appearance.density.set\",\"title\":\"Definir densidade\",\"scope\":\"global\",\"targetKind\":\"appearance\",\"target\":{\"kind\":\"appearance\",\"resolver\":\"appearance-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"density\"],\"properties\":{\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"appearance\"}],\"affectedPaths\":[\"appearance.density\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"appearance.borders.set\",\"title\":\"Definir bordas\",\"scope\":\"global\",\"targetKind\":\"appearance\",\"target\":{\"kind\":\"appearance\",\"resolver\":\"appearance-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"showRowBorders\",\"showColumnBorders\"],\"properties\":{\"showRowBorders\":{\"type\":\"boolean\"},\"showColumnBorders\":{\"type\":\"boolean\"},\"showOuterBorder\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"appearance.borders\"}],\"affectedPaths\":[\"appearance.borders.showRowBorders\",\"appearance.borders.showColumnBorders\",\"appearance.borders.showOuterBorder\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"virtualization.enabled.set\",\"title\":\"Habilitar virtualização\",\"scope\":\"global\",\"targetKind\":\"appearance\",\"target\":{\"kind\":\"appearance\",\"resolver\":\"appearance-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"itemHeight\":{\"type\":\"number\",\"default\":48}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.virtualization\"},{\"kind\":\"merge-object\",\"path\":\"performance.virtualization\"}],\"affectedPaths\":[\"behavior.virtualization\",\"performance.virtualization\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"expansion.configure\",\"title\":\"Configurar expansão de linha\",\"scope\":\"global\",\"targetKind\":\"expansion\",\"target\":{\"kind\":\"expansion\",\"resolver\":\"expansion-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"contractVersion\":{\"type\":\"string\"},\"state\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"controlled\",\"uncontrolled\"]}}},\"interaction\":{\"type\":\"object\",\"properties\":{\"trigger\":{\"enum\":[\"icon\",\"row\",\"both\"]},\"toggleIcon\":{\"type\":\"object\",\"properties\":{\"collapsed\":{\"type\":\"string\"},\"expanded\":{\"type\":\"string\"},\"ariaLabelCollapsed\":{\"type\":\"string\"},\"ariaLabelExpanded\":{\"type\":\"string\"}}},\"motion\":{\"type\":\"object\",\"properties\":{\"preset\":{\"enum\":[\"none\",\"subtle-slide\",\"accordion\",\"fade-scale\"]},\"durationMs\":{\"type\":\"number\",\"minimum\":0},\"easing\":{\"enum\":[\"standard\",\"emphasized\",\"decelerate\"]}}},\"keyboard\":{\"type\":\"object\",\"properties\":{\"profile\":{\"enum\":[\"disclosure\",\"grid\"]}}}}},\"limits\":{\"type\":\"object\",\"properties\":{\"allowMultiple\":{\"type\":\"boolean\"},\"maxExpandedRows\":{\"type\":\"number\",\"minimum\":1},\"onOverflow\":{\"enum\":[\"collapseOldest\",\"denyNew\",\"collapseAll\"]}}},\"collapseOn\":{\"type\":\"object\",\"properties\":{\"sortChange\":{\"type\":\"boolean\"},\"pageChange\":{\"type\":\"boolean\"},\"filterChange\":{\"type\":\"boolean\"},\"dataRefresh\":{\"type\":\"boolean\"}}},\"virtualization\":{\"type\":\"object\",\"properties\":{\"policy\":{\"enum\":[\"fixed-height-only\",\"allow-dynamic-under-flag\"]}}},\"persistence\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"storageKeyStrategy\":{\"type\":\"object\",\"properties\":{\"namespace\":{\"type\":\"string\"}}}}},\"security\":{\"type\":\"object\",\"properties\":{\"eventExposureDefault\":{\"type\":\"object\",\"properties\":{\"rowId\":{\"enum\":[\"redacted\",\"hashed\",\"raw\"]},\"expandedKeys\":{\"enum\":[\"none\",\"hashed\",\"raw\"]}}}}},\"deepLink\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"encoding\":{\"enum\":[\"csv\"]},\"parsing\":{\"type\":\"object\",\"properties\":{\"duplicateParams\":{\"enum\":[\"firstWins\",\"reject\"]}}},\"integrity\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"opaqueToken\"]}}},\"privacy\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"denyByDefault\",\"allowByDefault\"]}}}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.expansion\"}],\"validators\":[\"editor-round-trip-preserve\"],\"affectedPaths\":[\"behavior.expansion\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"expansion.detailSource.configure\",\"title\":\"Configurar fonte remota do detalhe expansivel\",\"scope\":\"global\",\"targetKind\":\"expansion\",\"target\":{\"kind\":\"expansion\",\"resolver\":\"expansion-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"mode\":{\"enum\":[\"inline\",\"resource\",\"resourcePath\",\"hypermedia\"]},\"inlineSchema\":{\"type\":\"object\"},\"resource\":{\"type\":\"object\",\"properties\":{\"kind\":{\"enum\":[\"ui-composition\",\"form-schema\",\"table-schema\",\"dashboard-schema\"]},\"id\":{\"type\":\"string\"},\"version\":{\"type\":\"string\"}}},\"resourcePath\":{\"type\":\"object\",\"properties\":{\"path\":{\"type\":\"string\"},\"method\":{\"enum\":[\"GET\",\"POST\"]},\"paramsMap\":{\"type\":\"object\"}}},\"resourceAllowList\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"hypermedia\":{\"type\":\"object\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.expansion.detail.source\"}],\"validators\":[\"remote-resource-binding-safe\",\"editor-round-trip-preserve\"],\"affectedPaths\":[\"behavior.expansion.detail.source\",\"behavior.expansion.detail.source.mode\",\"behavior.expansion.detail.source.resourcePath\",\"behavior.expansion.detail.source.resourceAllowList\",\"behavior.expansion.detail.source.hypermedia\"],\"submissionImpact\":\"affects-remote-binding\",\"preconditions\":[\"config-initialized\"]}]}",
30584
30654
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30588,7 +30658,7 @@
30588
30658
  "corpusVersion": "1.0.0"
30589
30659
  },
30590
30660
  {
30591
- "chunkIndex": 124,
30661
+ "chunkIndex": 125,
30592
30662
  "chunkKind": "authoring_manifest",
30593
30663
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"expansion.detailPresentation.configure\",\"title\":\"Configurar apresentacao do detalhe expansivel\",\"scope\":\"global\",\"targetKind\":\"expansion\",\"target\":{\"kind\":\"expansion\",\"resolver\":\"expansion-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"schemaContract\":{\"type\":\"object\",\"properties\":{\"kind\":{\"type\":\"string\"},\"version\":{\"type\":\"string\"}}},\"rendering\":{\"type\":\"object\",\"properties\":{\"strategy\":{\"enum\":[\"registry\"]},\"registryId\":{\"type\":\"string\"},\"hostLayout\":{\"enum\":[\"auto\",\"stack\",\"tabs\"]},\"fallbackNodePolicy\":{\"enum\":[\"failClosed\",\"renderPlaceholder\"]}}},\"height\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"fixed\",\"dynamic\"]},\"px\":{\"type\":\"number\",\"minimum\":0}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.expansion.detail\"}],\"validators\":[\"editor-round-trip-preserve\"],\"affectedPaths\":[\"behavior.expansion.detail\",\"behavior.expansion.detail.schemaContract\",\"behavior.expansion.detail.rendering\",\"behavior.expansion.detail.height\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"meta.configure\",\"title\":\"Configurar metadados\",\"scope\":\"global\",\"targetKind\":\"meta\",\"target\":{\"kind\":\"meta\",\"resolver\":\"table-meta-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"tags\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"schemaId\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"meta\"}],\"affectedPaths\":[\"meta\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"meta.idField.set\",\"title\":\"Definir campo de identidade\",\"scope\":\"global\",\"targetKind\":\"meta\",\"target\":{\"kind\":\"meta\",\"resolver\":\"table-meta-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"idField\"],\"properties\":{\"idField\":{\"type\":\"string\",\"minLength\":1}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"meta.idField\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"meta.idField\"],\"validators\":[\"target-column-exists\",\"editor-round-trip-preserve\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"column.resizable.set\",\"title\":\"Definir redimensionamento da coluna\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"resizable\"],\"properties\":{\"resizable\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].resizable\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.sortField.set\",\"title\":\"Definir campo de ordenacao da coluna\",\"scope\":\"column\",\"targetKind\":\"column\",\"target\":{\"kind\":\"column\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"sortField\"],\"properties\":{\"sortField\":{\"type\":\"string\",\"minLength\":1}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\"],\"affectedPaths\":[\"columns[].sortField\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"column.computed.configure\",\"title\":\"Configurar coluna calculada\",\"scope\":\"column\",\"targetKind\":\"computedColumn\",\"target\":{\"kind\":\"computedColumn\",\"resolver\":\"column-by-field\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"expression\"],\"properties\":{\"expression\":{\"type\":\"object\",\"description\":\"AST Json Logic\"},\"outputType\":{\"enum\":[\"string\",\"number\",\"date\",\"boolean\",\"currency\",\"percentage\",\"custom\"]},\"format\":{\"type\":\"string\",\"enum\":[\"shortDate\",\"mediumDate\",\"longDate\",\"fullDate\",\"MMM/yyyy\",\"shortTime\",\"short\",\"yyyy-MM-dd\",\"dd/MM/yyyy\",\"yyyy-MM-dd HH:mm\",\"1.0-0\",\"1.1-1\",\"1.2-2\",\"1.0-3\",\"1.0-0|nosep\",\"BRL|symbol|2\",\"USD|symbol|2\",\"EUR|symbol|2\",\"BRL|code|2\",\"USD|code|0\",\"BRL|symbol|2|nosep\",\"EUR|symbol|2|nosep\",\"1.0-0|x100\",\"1.1-1|x100\",\"1.2-2|x100\",\"none\",\"uppercase\",\"lowercase\",\"titlecase\",\"capitalize\",\"uppercase|truncate|50|...\",\"000.000.000-00\",\"true-false\",\"yes-no\",\"active-inactive\",\"on-off\",\"enabled-disabled\",\"custom|Sim|Nao\"]},\"dependencies\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"effects\":[{\"kind\":\"merge-by-key\",\"path\":\"columns[]\",\"key\":\"field\"}],\"validators\":[\"target-column-exists\",\"computed-expression-valid\",\"format-preset-supported\"],\"affectedPaths\":[\"columns[].computed\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"config-initialized\",\"target-exists\"]},{\"operationId\":\"behavior.pagination.configure\",\"title\":\"Configurar paginacao\",\"scope\":\"global\",\"targetKind\":\"pagination\",\"target\":{\"kind\":\"pagination\",\"resolver\":\"pagination-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"strategy\":{\"enum\":[\"client\",\"server\"]},\"pageSize\":{\"type\":\"number\",\"minimum\":1},\"pageSizeOptions\":{\"type\":\"array\",\"items\":{\"type\":\"number\",\"minimum\":1}},\"position\":{\"enum\":[\"top\",\"bottom\",\"both\"]},\"style\":{\"enum\":[\"default\",\"simple\",\"advanced\",\"compact\"]},\"advanced\":{\"type\":\"object\",\"properties\":{\"maxPageSize\":{\"type\":\"number\",\"minimum\":1}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.pagination\"}],\"affectedPaths\":[\"behavior.pagination\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"behavior.sorting.configure\",\"title\":\"Configurar ordenacao\",\"scope\":\"global\",\"targetKind\":\"sorting\",\"target\":{\"kind\":\"sorting\",\"resolver\":\"sorting-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"strategy\":{\"enum\":[\"client\",\"server\"]},\"defaultSort\":{\"type\":\"object\"},\"allowClearSort\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.sorting\"}],\"affectedPaths\":[\"behavior.sorting\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]}]}",
30594
30664
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30598,7 +30668,7 @@
30598
30668
  "corpusVersion": "1.0.0"
30599
30669
  },
30600
30670
  {
30601
- "chunkIndex": 125,
30671
+ "chunkIndex": 126,
30602
30672
  "chunkKind": "authoring_manifest",
30603
30673
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"behavior.filtering.configure\",\"title\":\"Configurar filtragem\",\"scope\":\"global\",\"targetKind\":\"filter\",\"target\":{\"kind\":\"filter\",\"resolver\":\"filter-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"strategy\":{\"enum\":[\"client\",\"server\"]},\"columnFilters\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"defaultType\":{\"enum\":[\"text\",\"select\",\"date\",\"number\",\"boolean\"]},\"position\":{\"enum\":[\"header\",\"subheader\",\"sidebar\"]}}},\"advancedFilters\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"settings\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"filter\"]},\"showAdvanced\":{\"type\":\"boolean\"},\"allowSaveTags\":{\"type\":\"boolean\"},\"tags\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"id\",\"label\",\"patch\"],\"properties\":{\"id\":{\"type\":\"string\",\"minLength\":1},\"label\":{\"type\":\"string\",\"minLength\":1},\"patch\":{\"type\":\"object\"}}}},\"alwaysVisibleFields\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"selectedFieldIds\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"alwaysVisibleFieldMetadataOverrides\":{\"type\":\"object\",\"additionalProperties\":{\"type\":\"object\"}},\"changeDebounceMs\":{\"type\":\"number\",\"minimum\":0},\"useInlineSearchableSelectVariant\":{\"type\":\"boolean\"},\"useInlineRangeVariant\":{\"type\":\"boolean\"},\"useInlineDateVariant\":{\"type\":\"boolean\"},\"useInlineDateRangeVariant\":{\"type\":\"boolean\"}}}}},\"debounceTime\":{\"type\":\"number\",\"minimum\":0}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.filtering\"}],\"affectedPaths\":[\"behavior.filtering\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"behavior.selection.configure\",\"title\":\"Configurar selecao\",\"scope\":\"global\",\"targetKind\":\"selection\",\"target\":{\"kind\":\"selection\",\"resolver\":\"selection-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"type\":{\"enum\":[\"single\",\"multiple\"]},\"mode\":{\"enum\":[\"checkbox\",\"row\",\"both\"]},\"allowSelectAll\":{\"type\":\"boolean\"},\"persistSelection\":{\"type\":\"boolean\"},\"maxSelections\":{\"type\":\"number\",\"minimum\":1}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.selection\"}],\"affectedPaths\":[\"behavior.selection\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"behavior.interaction.configure\",\"title\":\"Configurar interacao\",\"scope\":\"global\",\"targetKind\":\"interaction\",\"target\":{\"kind\":\"interaction\",\"resolver\":\"interaction-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"rowClick\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"action\":{\"type\":\"string\"}}},\"keyboard\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"hover\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"highlightRow\":{\"type\":\"boolean\"}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.interaction\"}],\"affectedPaths\":[\"behavior.interaction\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"behavior.loading.configure\",\"title\":\"Configurar loading\",\"scope\":\"global\",\"targetKind\":\"loading\",\"target\":{\"kind\":\"loading\",\"resolver\":\"loading-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"type\":{\"enum\":[\"spinner\",\"skeleton\",\"progress\",\"custom\"]},\"position\":{\"enum\":[\"overlay\",\"inline\",\"replace\"]},\"text\":{\"type\":\"string\"},\"delay\":{\"type\":\"number\",\"minimum\":0}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.loading\"}],\"affectedPaths\":[\"behavior.loading\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"behavior.emptyState.configure\",\"title\":\"Configurar estado vazio\",\"description\":\"Configura copy, apresentação e ações contextuais explícitas do estado vazio. Não duplica CREATE capability-governado, que permanece como ação primária estável da toolbar.\",\"scope\":\"global\",\"targetKind\":\"emptyState\",\"target\":{\"kind\":\"emptyState\",\"resolver\":\"empty-state-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"message\"],\"properties\":{\"title\":{\"type\":\"string\"},\"message\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"tone\":{\"enum\":[\"neutral\",\"primary\",\"secondary\"]},\"variant\":{\"enum\":[\"card\",\"inline\",\"panel\",\"transparent\"]},\"alignment\":{\"enum\":[\"start\",\"center\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\"]},\"iconContainer\":{\"enum\":[\"none\",\"circle\",\"soft\"]},\"actions\":{\"type\":\"array\"},\"contexts\":{\"type\":\"object\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.emptyState\"}],\"affectedPaths\":[\"behavior.emptyState\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"behavior.resizing.configure\",\"title\":\"Configurar redimensionamento\",\"scope\":\"global\",\"targetKind\":\"resizing\",\"target\":{\"kind\":\"resizing\",\"resolver\":\"resizing-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"minColumnWidth\":{\"type\":\"number\",\"minimum\":1},\"maxColumnWidth\":{\"type\":\"number\",\"minimum\":1},\"autoFit\":{\"type\":\"boolean\"},\"persistWidths\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.resizing\"}],\"affectedPaths\":[\"behavior.resizing\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"behavior.dragging.configure\",\"title\":\"Configurar drag and drop\",\"scope\":\"global\",\"targetKind\":\"dragging\",\"target\":{\"kind\":\"dragging\",\"resolver\":\"dragging-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"columns\"],\"properties\":{\"columns\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.dragging\"}],\"affectedPaths\":[\"behavior.dragging\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"behavior.editing.configure\",\"title\":\"Configurar edicao\",\"scope\":\"global\",\"targetKind\":\"editing\",\"target\":{\"kind\":\"editing\",\"resolver\":\"editing-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"mode\"],\"properties\":{\"mode\":{\"type\":\"string\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"behavior.editing\"}],\"affectedPaths\":[\"behavior.editing\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]}]}",
30604
30674
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30608,17 +30678,17 @@
30608
30678
  "corpusVersion": "1.0.0"
30609
30679
  },
30610
30680
  {
30611
- "chunkIndex": 126,
30681
+ "chunkIndex": 127,
30612
30682
  "chunkKind": "authoring_manifest",
30613
- "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"toolbar.configure\",\"title\":\"Configurar toolbar\",\"scope\":\"global\",\"targetKind\":\"toolbar\",\"target\":{\"kind\":\"toolbar\",\"resolver\":\"toolbar-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"visible\":{\"type\":\"boolean\"},\"position\":{\"enum\":[\"top\",\"bottom\",\"both\"]},\"actionsPosition\":{\"enum\":[\"top\",\"bottom\",\"both\"]},\"actionsBackgroundColor\":{\"type\":\"string\"},\"appearance\":{\"type\":\"object\",\"properties\":{\"preset\":{\"type\":\"string\"},\"variant\":{\"enum\":[\"flat\",\"outlined\",\"elevated\",\"integrated\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"shape\":{\"enum\":[\"square\",\"rounded\",\"pill\"]},\"divider\":{\"enum\":[\"none\",\"start\",\"between-groups\"]},\"tokens\":{\"type\":\"object\",\"properties\":{\"titleFg\":{\"type\":\"string\"},\"subtitleFg\":{\"type\":\"string\"},\"iconFg\":{\"type\":\"string\"},\"titleFontSize\":{\"type\":\"string\"},\"subtitleFontSize\":{\"type\":\"string\"},\"titleFontWeight\":{\"type\":\"string\"},\"identityGap\":{\"type\":\"string\"},\"identityFilterGap\":{\"type\":\"string\"},\"identityMinHeight\":{\"type\":\"string\"},\"identityMarginBottom\":{\"type\":\"string\"},\"identityIconSize\":{\"type\":\"string\"},\"identityIconRadius\":{\"type\":\"string\"}},\"additionalProperties\":{\"type\":\"string\"}}}},\"title\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"textAlign\":{\"enum\":[\"start\",\"center\",\"end\"]},\"layout\":{\"type\":\"object\",\"properties\":{\"alignment\":{\"enum\":[\"start\",\"center\",\"end\",\"space-between\"]}}},\"filters\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"showAdvancedButton\":{\"type\":\"boolean\"},\"quickFilters\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"id\",\"label\",\"filter\"],\"properties\":{\"id\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"filter\":{\"type\":\"object\"}}}}}},\"settingsMenu\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"columnsVisibility\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"densityToggle\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"values\":{\"type\":\"array\",\"items\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"uniqueItems\":true}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"toolbar\"}],\"validators\":[\"css-style-safe\"],\"affectedPaths\":[\"toolbar\",\"toolbar.title\",\"toolbar.subtitle\",\"toolbar.icon\",\"toolbar.textAlign\",\"toolbar.appearance\",\"toolbar.appearance.tokens\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"actions.row.configure\",\"title\":\"Configurar acoes de linha\",\"scope\":\"global\",\"targetKind\":\"rowAction\",\"target\":{\"kind\":\"rowAction\",\"resolver\":\"action-in-row-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"display\":{\"enum\":[\"menu\",\"buttons\",\"icons\"]},\"trigger\":{\"enum\":[\"hover\",\"always\",\"click\"]},\"discovery\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"actions.row\"}],\"affectedPaths\":[\"actions.row\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"actions.bulk.configure\",\"title\":\"Configurar acoes em lote\",\"scope\":\"global\",\"targetKind\":\"bulkAction\",\"target\":{\"kind\":\"bulkAction\",\"resolver\":\"action-in-bulk-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"position\":{\"enum\":[\"toolbar\",\"floating\",\"both\"]}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"actions.bulk\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"actions.bulk\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"actions.context.configure\",\"title\":\"Configurar menu contextual\",\"scope\":\"global\",\"targetKind\":\"contextAction\",\"target\":{\"kind\":\"contextAction\",\"resolver\":\"action-in-context-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"trigger\":{\"enum\":[\"right-click\",\"long-press\",\"both\"]}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"actions.context\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"actions.context\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"actions.confirmations.configure\",\"title\":\"Configurar confirmacoes\",\"scope\":\"global\",\"targetKind\":\"contextAction\",\"target\":{\"kind\":\"contextAction\",\"resolver\":\"action-in-context-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"default\"],\"properties\":{\"default\":{\"type\":\"object\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"actions.confirmations\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"actions.confirmations.default\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"export.configure\",\"title\":\"Configurar exportacao\",\"scope\":\"global\",\"targetKind\":\"export\",\"target\":{\"kind\":\"export\",\"resolver\":\"export-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"formats\":{\"type\":\"array\",\"items\":{\"enum\":[\"excel\",\"pdf\",\"csv\",\"json\",\"print\"]}},\"general\":{\"type\":\"object\",\"properties\":{\"includeHeaders\":{\"type\":\"boolean\"},\"scope\":{\"enum\":[\"auto\",\"selected\",\"filtered\",\"currentPage\",\"all\"]},\"maxRows\":{\"type\":\"number\",\"minimum\":1}}},\"excel\":{\"type\":\"object\",\"properties\":{\"autoFitColumns\":{\"type\":\"boolean\"},\"visibleCurrentPage\":{\"type\":\"boolean\"}}},\"pdf\":{\"type\":\"object\",\"properties\":{\"orientation\":{\"enum\":[\"portrait\",\"landscape\"]},\"pageSize\":{\"enum\":[\"A4\",\"A3\",\"Letter\",\"Legal\"]}}},\"csv\":{\"type\":\"object\",\"properties\":{\"delimiter\":{\"enum\":[\",\",\";\",\"|\",\"\\\\t\"]}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"export\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"export\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"tableRuntimeOperations.plan\",\"title\":\"Planejar operacoes runtime da tabela\",\"scope\":\"global\",\"targetKind\":\"runtimeOperation\",\"target\":{\"kind\":\"runtimeOperation\",\"resolver\":\"table-runtime-operation-contract\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"operations\"],\"properties\":{\"operations\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"type\":\"object\",\"required\":[\"operationId\",\"input\"],\"properties\":{\"operationId\":{\"enum\":[\"table.filter.apply\",\"table.export.run\"]},\"input\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"criteria\":{\"type\":\"object\"},\"format\":{\"enum\":[\"excel\",\"pdf\",\"csv\",\"json\",\"print\"]},\"scope\":{\"enum\":[\"auto\",\"selected\",\"filtered\",\"currentPage\",\"all\"]}}},\"description\":{\"type\":\"string\"}}}}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"tableRuntimeOperations\"}],\"affectedPaths\":[\"tableRuntimeOperations\"],\"validators\":[\"runtime-operation-declared\"],\"submissionImpact\":\"none\",\"preconditions\":[\"config-initialized\"]}]}",
30683
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"toolbar.configure\",\"title\":\"Configurar toolbar\",\"scope\":\"global\",\"targetKind\":\"toolbar\",\"target\":{\"kind\":\"toolbar\",\"resolver\":\"toolbar-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"visible\":{\"type\":\"boolean\"},\"position\":{\"enum\":[\"top\",\"bottom\",\"both\"]},\"actionsPosition\":{\"enum\":[\"top\",\"bottom\",\"both\"]},\"actionsBackgroundColor\":{\"type\":\"string\"},\"appearance\":{\"type\":\"object\",\"properties\":{\"preset\":{\"type\":\"string\"},\"variant\":{\"enum\":[\"flat\",\"outlined\",\"elevated\",\"integrated\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"shape\":{\"enum\":[\"square\",\"rounded\",\"pill\"]},\"divider\":{\"enum\":[\"none\",\"start\",\"between-groups\"]},\"tokens\":{\"type\":\"object\",\"properties\":{\"titleFg\":{\"type\":\"string\"},\"subtitleFg\":{\"type\":\"string\"},\"iconFg\":{\"type\":\"string\"},\"titleFontSize\":{\"type\":\"string\"},\"subtitleFontSize\":{\"type\":\"string\"},\"titleFontWeight\":{\"type\":\"string\"},\"identityGap\":{\"type\":\"string\"},\"identityFilterGap\":{\"type\":\"string\"},\"identityMinHeight\":{\"type\":\"string\"},\"identityMarginBottom\":{\"type\":\"string\"},\"identityIconSize\":{\"type\":\"string\"},\"identityIconRadius\":{\"type\":\"string\"}},\"additionalProperties\":{\"type\":\"string\"}}}},\"title\":{\"type\":\"string\"},\"subtitle\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"textAlign\":{\"enum\":[\"start\",\"center\",\"end\"]},\"layout\":{\"type\":\"object\",\"properties\":{\"alignment\":{\"enum\":[\"start\",\"center\",\"end\",\"space-between\"]}}},\"filters\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"showAdvancedButton\":{\"type\":\"boolean\"},\"quickFilters\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"required\":[\"id\",\"label\",\"filter\"],\"properties\":{\"id\":{\"type\":\"string\"},\"label\":{\"type\":\"string\"},\"icon\":{\"type\":\"string\"},\"filter\":{\"type\":\"object\"}}}}}},\"settingsMenu\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"columnsVisibility\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"densityToggle\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"values\":{\"type\":\"array\",\"items\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"uniqueItems\":true}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"toolbar\"}],\"validators\":[\"css-style-safe\"],\"affectedPaths\":[\"toolbar\",\"toolbar.title\",\"toolbar.subtitle\",\"toolbar.icon\",\"toolbar.textAlign\",\"toolbar.appearance\",\"toolbar.appearance.tokens\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"actions.collection.configure\",\"title\":\"Configurar descoberta de acoes da colecao\",\"scope\":\"global\",\"targetKind\":\"toolbar\",\"target\":{\"kind\":\"toolbar\",\"resolver\":\"toolbar-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"discovery\"],\"properties\":{\"discovery\":{\"type\":\"object\",\"required\":[\"enabled\"],\"properties\":{\"enabled\":{\"type\":\"boolean\"}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"actions.collection\"}],\"affectedPaths\":[\"actions.collection\",\"actions.collection.discovery.enabled\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"actions.row.configure\",\"title\":\"Configurar acoes de linha\",\"scope\":\"global\",\"targetKind\":\"rowAction\",\"target\":{\"kind\":\"rowAction\",\"resolver\":\"action-in-row-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"display\":{\"enum\":[\"menu\",\"buttons\",\"icons\"]},\"trigger\":{\"enum\":[\"hover\",\"always\",\"click\"]},\"discovery\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"actions.row\"}],\"affectedPaths\":[\"actions.row\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"actions.bulk.configure\",\"title\":\"Configurar acoes em lote\",\"scope\":\"global\",\"targetKind\":\"bulkAction\",\"target\":{\"kind\":\"bulkAction\",\"resolver\":\"action-in-bulk-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"position\":{\"enum\":[\"toolbar\",\"floating\",\"both\"]}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"actions.bulk\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"actions.bulk\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"actions.context.configure\",\"title\":\"Configurar menu contextual\",\"scope\":\"global\",\"targetKind\":\"contextAction\",\"target\":{\"kind\":\"contextAction\",\"resolver\":\"action-in-context-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"trigger\":{\"enum\":[\"right-click\",\"long-press\",\"both\"]}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"actions.context\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"actions.context\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"actions.confirmations.configure\",\"title\":\"Configurar confirmacoes\",\"scope\":\"global\",\"targetKind\":\"contextAction\",\"target\":{\"kind\":\"contextAction\",\"resolver\":\"action-in-context-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"default\"],\"properties\":{\"default\":{\"type\":\"object\"}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"actions.confirmations\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"actions.confirmations.default\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"export.configure\",\"title\":\"Configurar exportacao\",\"scope\":\"global\",\"targetKind\":\"export\",\"target\":{\"kind\":\"export\",\"resolver\":\"export-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"formats\":{\"type\":\"array\",\"items\":{\"enum\":[\"excel\",\"pdf\",\"csv\",\"json\",\"print\"]}},\"general\":{\"type\":\"object\",\"properties\":{\"includeHeaders\":{\"type\":\"boolean\"},\"scope\":{\"enum\":[\"auto\",\"selected\",\"filtered\",\"currentPage\",\"all\"]},\"maxRows\":{\"type\":\"number\",\"minimum\":1}}},\"excel\":{\"type\":\"object\",\"properties\":{\"autoFitColumns\":{\"type\":\"boolean\"},\"visibleCurrentPage\":{\"type\":\"boolean\"}}},\"pdf\":{\"type\":\"object\",\"properties\":{\"orientation\":{\"enum\":[\"portrait\",\"landscape\"]},\"pageSize\":{\"enum\":[\"A4\",\"A3\",\"Letter\",\"Legal\"]}}},\"csv\":{\"type\":\"object\",\"properties\":{\"delimiter\":{\"enum\":[\",\",\";\",\"|\",\"\\\\t\"]}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"export\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"export\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"tableRuntimeOperations.plan\",\"title\":\"Planejar operacoes runtime da tabela\",\"scope\":\"global\",\"targetKind\":\"runtimeOperation\",\"target\":{\"kind\":\"runtimeOperation\",\"resolver\":\"table-runtime-operation-contract\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"operations\"],\"properties\":{\"operations\":{\"type\":\"array\",\"minItems\":1,\"items\":{\"type\":\"object\",\"required\":[\"operationId\",\"input\"],\"properties\":{\"operationId\":{\"enum\":[\"table.filter.apply\",\"table.export.run\"]},\"input\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"criteria\":{\"type\":\"object\"},\"format\":{\"enum\":[\"excel\",\"pdf\",\"csv\",\"json\",\"print\"]},\"scope\":{\"enum\":[\"auto\",\"selected\",\"filtered\",\"currentPage\",\"all\"]}}},\"description\":{\"type\":\"string\"}}}}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"tableRuntimeOperations\"}],\"affectedPaths\":[\"tableRuntimeOperations\"],\"validators\":[\"runtime-operation-declared\"],\"submissionImpact\":\"none\",\"preconditions\":[\"config-initialized\"]}]}",
30614
30684
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
30615
- "contentHash": "b5c0ac7a5ed604a249cb1b4fd4238cce1d64c8e145877fa5b23fdd48c4951495",
30685
+ "contentHash": "a63209e36d9eb207e2776f02018f46914633da7d89977501f3daa51eb19a27fb",
30616
30686
  "sourceKind": "component_definition",
30617
30687
  "sourceId": "praxis-table",
30618
30688
  "corpusVersion": "1.0.0"
30619
30689
  },
30620
30690
  {
30621
- "chunkIndex": 127,
30691
+ "chunkIndex": 128,
30622
30692
  "chunkKind": "authoring_manifest",
30623
30693
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"appearance.configure\",\"title\":\"Configurar aparencia\",\"scope\":\"global\",\"targetKind\":\"appearance\",\"target\":{\"kind\":\"appearance\",\"resolver\":\"appearance-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"density\":{\"enum\":[\"compact\",\"comfortable\",\"spacious\"]},\"borders\":{\"type\":\"object\",\"properties\":{\"showRowBorders\":{\"type\":\"boolean\"},\"showColumnBorders\":{\"type\":\"boolean\"},\"showOuterBorder\":{\"type\":\"boolean\"},\"style\":{\"enum\":[\"solid\",\"dashed\",\"dotted\"]}}},\"colors\":{\"type\":\"object\",\"properties\":{\"alternateRowBackground\":{\"type\":\"string\"},\"hoverBackground\":{\"type\":\"string\"}}},\"typography\":{\"type\":\"object\",\"properties\":{\"fontSize\":{\"type\":\"string\"},\"headerFontWeight\":{\"type\":\"string\"}}},\"spacing\":{\"type\":\"object\",\"properties\":{\"cellPadding\":{\"type\":\"string\"}}},\"responsive\":{\"type\":\"object\",\"properties\":{\"mobile\":{\"type\":\"object\",\"properties\":{\"horizontalScroll\":{\"type\":\"boolean\"},\"cardMode\":{\"type\":\"boolean\"},\"priorityColumns\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"breakpoints\":{\"type\":\"object\",\"properties\":{\"mobile\":{\"type\":\"number\",\"minimum\":0}}}}},\"animations\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"}}},\"elevation\":{\"type\":\"object\",\"properties\":{\"level\":{\"type\":\"number\",\"minimum\":0}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"appearance\"}],\"validators\":[\"css-style-safe\"],\"affectedPaths\":[\"appearance\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"messages.configure\",\"title\":\"Configurar mensagens\",\"scope\":\"global\",\"targetKind\":\"messages\",\"target\":{\"kind\":\"messages\",\"resolver\":\"messages-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"states\":{\"type\":\"object\",\"properties\":{\"empty\":{\"type\":\"string\"},\"loading\":{\"type\":\"string\"}}},\"actions\":{\"type\":\"object\",\"properties\":{\"confirmations\":{\"type\":\"object\",\"properties\":{\"delete\":{\"type\":\"string\"}}}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"messages\"}],\"affectedPaths\":[\"messages\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"localization.configure\",\"title\":\"Configurar localizacao\",\"scope\":\"global\",\"targetKind\":\"localization\",\"target\":{\"kind\":\"localization\",\"resolver\":\"localization-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"locale\":{\"type\":\"string\"},\"direction\":{\"enum\":[\"ltr\",\"rtl\"]},\"dateTime\":{\"type\":\"object\",\"properties\":{\"dateFormat\":{\"type\":\"string\"},\"timeFormat\":{\"type\":\"string\"},\"dateTimeFormat\":{\"type\":\"string\"},\"firstDayOfWeek\":{\"enum\":[0,1,2,3,4,5,6]},\"relativeTime\":{\"type\":\"boolean\"},\"monthNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"dayNames\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}}},\"number\":{\"type\":\"object\",\"properties\":{\"decimalSeparator\":{\"type\":\"string\"},\"thousandsSeparator\":{\"type\":\"string\"},\"defaultPrecision\":{\"type\":\"number\",\"minimum\":0},\"negativeSign\":{\"type\":\"string\"},\"negativeSignPosition\":{\"enum\":[\"before\",\"after\"]}}},\"currency\":{\"type\":\"object\",\"properties\":{\"code\":{\"type\":\"string\"},\"symbol\":{\"type\":\"string\"},\"position\":{\"enum\":[\"before\",\"after\"]},\"spacing\":{\"type\":\"boolean\"},\"precision\":{\"type\":\"number\",\"minimum\":0}}},\"formatting\":{\"type\":\"object\",\"properties\":{\"percentageFormat\":{\"type\":\"string\"},\"fileSizeFormat\":{\"enum\":[\"binary\",\"decimal\"]}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"localization\"}],\"affectedPaths\":[\"localization\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"performance.configure\",\"title\":\"Configurar performance\",\"scope\":\"global\",\"targetKind\":\"performance\",\"target\":{\"kind\":\"performance\",\"resolver\":\"performance-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"virtualization\":{\"type\":\"object\",\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"itemHeight\":{\"type\":\"number\",\"minimum\":1}}},\"debounce\":{\"type\":\"object\",\"properties\":{\"search\":{\"type\":\"number\",\"minimum\":0},\"filter\":{\"type\":\"number\",\"minimum\":0}}},\"lazyLoading\":{\"type\":\"object\",\"properties\":{\"images\":{\"type\":\"boolean\"}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"performance\"}],\"affectedPaths\":[\"performance\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"data.loadingStrategy.set\",\"title\":\"Definir estrategia de carregamento\",\"scope\":\"global\",\"targetKind\":\"data\",\"target\":{\"kind\":\"data\",\"resolver\":\"data-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"loadingStrategy\"],\"properties\":{\"loadingStrategy\":{\"enum\":[\"eager\",\"lazy\",\"on-demand\"]}}},\"effects\":[{\"kind\":\"set-value\",\"path\":\"data.loadingStrategy\"}],\"affectedPaths\":[\"data.loadingStrategy\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"config-initialized\"]},{\"operationId\":\"accessibility.configure\",\"title\":\"Configurar acessibilidade\",\"scope\":\"global\",\"targetKind\":\"accessibility\",\"target\":{\"kind\":\"accessibility\",\"resolver\":\"accessibility-config\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"enabled\":{\"type\":\"boolean\"},\"highContrast\":{\"type\":\"boolean\"},\"reduceMotion\":{\"type\":\"boolean\"},\"announcements\":{\"type\":\"object\",\"properties\":{\"liveRegion\":{\"enum\":[\"polite\",\"assertive\"]}}},\"keyboard\":{\"type\":\"object\",\"properties\":{\"shortcuts\":{\"type\":\"boolean\"}}}}},\"effects\":[{\"kind\":\"merge-object\",\"path\":\"accessibility\"}],\"requiresConfirmation\":true,\"affectedPaths\":[\"accessibility\"],\"validators\":[\"editor-round-trip-preserve\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"config-initialized\"]}]}",
30624
30694
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30628,7 +30698,7 @@
30628
30698
  "corpusVersion": "1.0.0"
30629
30699
  },
30630
30700
  {
30631
- "chunkIndex": 128,
30701
+ "chunkIndex": 129,
30632
30702
  "chunkKind": "authoring_manifest",
30633
30703
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"validators\",\"validators\":[{\"validatorId\":\"target-column-exists\",\"level\":\"error\",\"code\":\"TB001\",\"description\":\"A coluna alvo deve existir na configuração.\"},{\"validatorId\":\"column-field-unique\",\"level\":\"error\",\"code\":\"TB002\",\"description\":\"O identificador técnico da coluna (field) deve ser único.\"},{\"validatorId\":\"renderer-type-supported\",\"level\":\"error\",\"code\":\"TB003\",\"description\":\"O tipo de renderizador deve ser suportado pelo componente.\"},{\"validatorId\":\"renderer-config-match\",\"level\":\"error\",\"code\":\"TB004\",\"description\":\"A configuração do renderizador deve corresponder ao tipo selecionado.\"},{\"validatorId\":\"renderer-fields-exist\",\"level\":\"error\",\"code\":\"TB023\",\"description\":\"Todos os campos referenciados pelo renderizador devem existir na configuração atual da tabela.\"},{\"validatorId\":\"renderer-compose-exists\",\"level\":\"error\",\"code\":\"TB022\",\"description\":\"O renderer alvo deve ser uma composição existente e conter ao menos um item antes de refinar seu layout.\"},{\"validatorId\":\"renderer-compose-item-exists\",\"level\":\"error\",\"code\":\"TB021\",\"description\":\"O renderer alvo deve ser compose e conter exatamente um item compatível com itemType e itemField.\"},{\"validatorId\":\"grouping-fields-exist\",\"level\":\"error\",\"code\":\"TB005\",\"description\":\"Os campos de agrupamento devem existir na definição de colunas.\"},{\"validatorId\":\"filter-fields-exist\",\"level\":\"error\",\"code\":\"TB018\",\"description\":\"Os campos de filtro avançado devem existir no schema request do filtro governado.\"},{\"validatorId\":\"destructive-removal-confirmation\",\"level\":\"error\",\"code\":\"TB006\",\"description\":\"Remoções destrutivas de colunas ou ações exigem confirmação explícita.\"},{\"validatorId\":\"computed-expression-valid\",\"level\":\"error\",\"code\":\"TB007\",\"description\":\"A expressão de cálculo deve ser um AST Json Logic válido.\"},{\"validatorId\":\"remote-resource-binding-safe\",\"level\":\"error\",\"code\":\"TB008\",\"description\":\"A ligação com recurso remoto não deve conter URLs absolutas não permitidas.\"},{\"validatorId\":\"editor-round-trip-preserve\",\"level\":\"error\",\"code\":\"TB009\",\"description\":\"A edição não deve corromper propriedades críticas necessárias para o round-trip do editor.\"},{\"validatorId\":\"toolbar-action-id-unique\",\"level\":\"error\",\"code\":\"TB010\",\"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.\"},{\"validatorId\":\"row-action-id-unique\",\"level\":\"error\",\"code\":\"TB011\",\"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.\"},{\"validatorId\":\"bulk-action-id-unique\",\"level\":\"error\",\"code\":\"TB017\",\"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.\"},{\"validatorId\":\"format-preset-supported\",\"level\":\"error\",\"code\":\"TB012\",\"description\":\"O formato deve usar um preset canonico publicado em table-ai-capabilities.ts.\"},{\"validatorId\":\"column-width-valid\",\"level\":\"error\",\"code\":\"TB013\",\"description\":\"A largura deve ser auto ou uma medida simples em px, %, rem ou em.\"},{\"validatorId\":\"css-style-safe\",\"level\":\"error\",\"code\":\"TB014\",\"description\":\"Estilos inline devem permanecer em CSS simples e seguro, sem scripts, URLs perigosas ou expressoes dinamicas.\"},{\"validatorId\":\"value-mapping-valid\",\"level\":\"error\",\"code\":\"TB015\",\"description\":\"O mapeamento de valores deve ser um objeto simples com chaves estaveis e labels serializaveis.\"},{\"validatorId\":\"conditional-style-valid\",\"level\":\"error\",\"code\":\"TB016\",\"description\":\"Regras condicionais devem ter id estavel, condition Json Logic e ao menos cssClass, style ou effects.\"},{\"validatorId\":\"conditional-surface-accessible\",\"level\":\"error\",\"code\":\"TB020\",\"description\":\"Foreground explícito deve atingir contraste AA em fundo sólido; fundo sem foreground é derivado pelo runtime e composições não determinísticas exigem diagnóstico.\"},{\"validatorId\":\"runtime-operation-declared\",\"level\":\"error\",\"code\":\"TB019\",\"description\":\"Operacoes runtime devem usar operationId e input declarados em tableRuntimeOperations sem alterar a configuracao persistida.\"},{\"validatorId\":\"schema-column-override-field-immutable\",\"level\":\"error\",\"code\":\"TB024\",\"description\":\"Overrides de projecao podem alterar apresentacao e comportamento, mas nunca a identidade canonica field.\"}]}",
30634
30704
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30638,7 +30708,7 @@
30638
30708
  "corpusVersion": "1.0.0"
30639
30709
  },
30640
30710
  {
30641
- "chunkIndex": 129,
30711
+ "chunkIndex": 130,
30642
30712
  "chunkKind": "authoring_manifest",
30643
30713
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"roundTripRequirements\",\"roundTripRequirements\":[\"preserve-column-order\",\"normalize-enum-values\",\"maintain-renderer-precedence\",\"preserve-meta-ids\"]}",
30644
30714
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30648,7 +30718,7 @@
30648
30718
  "corpusVersion": "1.0.0"
30649
30719
  },
30650
30720
  {
30651
- "chunkIndex": 130,
30721
+ "chunkIndex": 131,
30652
30722
  "chunkKind": "authoring_manifest",
30653
30723
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"presentationAffordances\",\"presentationAffordances\":{\"version\":\"0.2.0\",\"componentId\":\"praxis-table\",\"defaultTargetKind\":\"column\",\"sourceRef\":\"praxis-ui-angular:projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts#presentationAffordances\",\"affordances\":[{\"id\":\"table.conditional-surface.row\",\"targetKind\":\"row\",\"category\":\"surface-preset\",\"description\":\"Versioned semantic row surfaces materialized privately by the table runtime.\",\"options\":[\"success\",\"warning\",\"danger\",\"highlight\"],\"appliesToTypes\":[\"unknown\"],\"unknownCompatible\":true},{\"id\":\"table.conditional-surface.cell\",\"targetKind\":\"column\",\"category\":\"surface-preset\",\"description\":\"Versioned semantic cell surfaces materialized privately by the table runtime.\",\"options\":[\"success\",\"warning\",\"danger\",\"highlight\"],\"appliesToTypes\":[\"string\",\"text\",\"boolean\",\"number\",\"currency\",\"percentage\",\"date\",\"datetime\",\"unknown\"],\"unknownCompatible\":true},{\"id\":\"table.column.text-formatting\",\"targetKind\":\"column\",\"category\":\"format\",\"description\":\"Text transforms and masks for textual table columns.\",\"options\":[\"none\",\"uppercase\",\"lowercase\",\"titlecase\",\"capitalize\",\"uppercase|truncate|50|...\",\"000.000.000-00\"],\"appliesToTypes\":[\"string\",\"text\",\"unknown\"],\"unknownCompatible\":true},{\"id\":\"table.column.numeric-formatting\",\"targetKind\":\"column\",\"category\":\"format\",\"description\":\"Decimal, currency and percentage formats for numeric table columns.\",\"options\":[\"1.0-0\",\"1.1-1\",\"1.2-2\",\"1.0-3\",\"1.0-0|nosep\",\"BRL|symbol|2\",\"USD|symbol|2\",\"EUR|symbol|2\",\"BRL|code|2\",\"USD|code|0\",\"BRL|symbol|2|nosep\",\"EUR|symbol|2|nosep\",\"1.0-0|x100\",\"1.1-1|x100\",\"1.2-2|x100\"],\"appliesToTypes\":[\"number\",\"currency\",\"percentage\"],\"unknownCompatible\":false},{\"id\":\"table.column.date-formatting\",\"targetKind\":\"column\",\"category\":\"format\",\"description\":\"Date and time formats for date-like table columns.\",\"options\":[\"shortDate\",\"mediumDate\",\"longDate\",\"fullDate\",\"MMM/yyyy\",\"shortTime\",\"short\",\"yyyy-MM-dd\",\"dd/MM/yyyy\",\"yyyy-MM-dd HH:mm\"],\"appliesToTypes\":[\"date\",\"datetime\",\"time\"],\"unknownCompatible\":false},{\"id\":\"table.column.boolean-formatting\",\"targetKind\":\"column\",\"category\":\"format\",\"description\":\"Boolean label formats for true/false table columns.\",\"options\":[\"true-false\",\"yes-no\",\"active-inactive\",\"on-off\",\"enabled-disabled\",\"custom|Sim|Nao\"],\"appliesToTypes\":[\"boolean\"],\"unknownCompatible\":false},{\"id\":\"table.column.semantic-renderers\",\"targetKind\":\"column\",\"category\":\"renderer\",\"description\":\"Visual renderers for categorical, status or action-oriented table columns.\",\"options\":[\"badge\",\"chip\",\"icon\",\"link\",\"button\",\"progress\",\"avatar\",\"toggle\",\"menu\",\"rating\",\"compose\"],\"appliesToTypes\":[\"string\",\"text\",\"boolean\",\"number\",\"currency\",\"percentage\",\"date\",\"datetime\",\"unknown\"],\"unknownCompatible\":true},{\"id\":\"table.column.alignment-layout\",\"targetKind\":\"column\",\"category\":\"layout\",\"description\":\"Column alignment and composed cell layout options.\",\"options\":[\"align:start\",\"align:center\",\"align:end\",\"compose:row\",\"compose:column\",\"secondary-line\",\"prefix\",\"suffix\"],\"appliesToTypes\":[\"string\",\"text\",\"boolean\",\"number\",\"currency\",\"percentage\",\"date\",\"datetime\",\"unknown\"],\"unknownCompatible\":true}]}}",
30654
30724
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30658,7 +30728,7 @@
30658
30728
  "corpusVersion": "1.0.0"
30659
30729
  },
30660
30730
  {
30661
- "chunkIndex": 131,
30731
+ "chunkIndex": 132,
30662
30732
  "chunkKind": "authoring_manifest",
30663
30733
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"examples\",\"examples\":[{\"id\":\"add-schema-column\",\"request\":\"Adicionar coluna para o campo email com o título Contato\",\"operationId\":\"column.add\",\"params\":{\"field\":\"email\",\"header\":\"Contato\",\"type\":\"string\"},\"isPositive\":true},{\"id\":\"rename-active-column-to-status\",\"request\":\"Ativo vira Status.\",\"operationId\":\"column.header.set\",\"target\":\"ativo\",\"params\":{\"header\":\"Status\"},\"isPositive\":true},{\"id\":\"rename-column-title-without-changing-cell-values\",\"request\":\"Troque somente o título da coluna Ativo para Status, sem alterar os valores das células\",\"operationId\":\"column.header.set\",\"target\":\"ativo\",\"params\":{\"header\":\"Status\"},\"isPositive\":true},{\"id\":\"cell-value-mapping-is-not-header-renaming\",\"request\":\"Sem mudar o título da coluna Ativo, mostre Sim e Não no lugar dos valores das células\",\"operationId\":\"column.header.set\",\"target\":\"ativo\",\"isPositive\":false},{\"id\":\"current-column-label-is-not-a-rename-request\",\"request\":\"Na coluna chamada Status, mostre um chip vermelho quando o valor estiver inativo\",\"operationId\":\"column.header.set\",\"target\":\"ativo\",\"isPositive\":false},{\"id\":\"add-computed-column\",\"request\":\"Criar coluna de idade baseada na data de nascimento\",\"operationId\":\"column.computed.add\",\"params\":{\"field\":\"idade\",\"header\":\"Idade\",\"expression\":{\"yearsSince\":[{\"var\":\"dataNascimento\"}]},\"outputType\":\"number\"},\"isPositive\":true},{\"id\":\"add-conditional-badge\",\"request\":\"Mostrar badge vermelho na coluna status se o valor for \\\"atrasado\\\"\",\"operationId\":\"column.conditionalRenderer.add\",\"target\":\"status\",\"params\":{\"id\":\"badge-atrasado\",\"condition\":{\"==\":[{\"var\":\"status\"},\"atrasado\"]},\"renderer\":{\"type\":\"badge\",\"badge\":{\"color\":\"warn\",\"variant\":\"filled\"}}},\"isPositive\":true},{\"id\":\"set-active-base-chip-for-status-pair\",\"request\":\"Na coluna Status, use chip verde quando ativo e chip vermelho quando inativo sem alterar as outras colunas\",\"operationId\":\"column.renderer.set\",\"target\":\"ativo\",\"params\":{\"type\":\"chip\",\"chip\":{\"textField\":\"ativo\",\"color\":\"success\",\"variant\":\"filled\"}},\"isPositive\":true},{\"id\":\"add-inactive-conditional-chip\",\"request\":\"Na coluna Status, use chip verde quando ativo e chip vermelho quando inativo sem alterar as outras colunas\",\"operationId\":\"column.conditionalRenderer.add\",\"target\":\"ativo\",\"params\":{\"id\":\"chip-inativo\",\"condition\":{\"==\":[{\"var\":\"ativo\"},false]},\"renderer\":{\"type\":\"chip\",\"chip\":{\"text\":\"Inativo\",\"color\":\"warn\",\"variant\":\"filled\"}}},\"isPositive\":true},{\"id\":\"enable-export\",\"request\":\"Habilitar exportação para Excel e PDF\",\"operationId\":\"export.enabled.set\",\"params\":{\"enabled\":true,\"formats\":[\"excel\",\"pdf\"]},\"isPositive\":true},{\"id\":\"add-row-action\",\"request\":\"Adicionar botão de excluir na linha\",\"operationId\":\"rowAction.add\",\"params\":{\"id\":\"delete\",\"label\":\"Excluir\",\"action\":\"delete\",\"icon\":\"delete\",\"color\":\"warn\"},\"isPositive\":true},{\"id\":\"add-row-action-open-route\",\"request\":\"Adicionar botão de linha para abrir detalhe com navegação interna\",\"operationId\":\"rowAction.add\",\"params\":{\"id\":\"details\",\"label\":\"Detalhes\",\"action\":\"navigation.openRoute\",\"icon\":\"open_in_new\",\"globalAction\":{\"actionId\":\"navigation.openRoute\",\"payload\":{\"path\":\"/clientes/detalhe\",\"query\":{\"id\":\"${row.id}\"}}}},\"isPositive\":true},{\"id\":\"group-by-field\",\"request\":\"Agrupar a tabela por departamento\",\"operationId\":\"grouping.set\",\"params\":{\"enabled\":true,\"fields\":[\"departamento\"]},\"isPositive\":true},{\"id\":\"reject-invalid-renderer\",\"request\":\"Configurar imagem para um renderizador do tipo ícone\",\"operationId\":\"column.renderer.set\",\"target\":\"avatar\",\"params\":{\"type\":\"icon\",\"image\":{\"src\":\"...\"}},\"isPositive\":false},{\"id\":\"compose-photo-and-code-in-code-cell\",\"request\":\"Na coluna Código, mostrar primeiro a foto e depois o código na mesma célula, sem manter Foto como coluna separada\",\"operationId\":\"column.renderer.set\",\"target\":\"codigo\",\"params\":{\"type\":\"compose\",\"compose\":{\"items\":[{\"type\":\"avatar\",\"avatar\":{\"srcField\":\"foto\",\"altField\":\"nome\",\"initialsField\":\"nome\",\"shape\":\"rounded\",\"size\":32}},{\"type\":\"value\",\"field\":\"codigo\"}],\"layout\":{\"direction\":\"row\",\"align\":\"center\",\"gap\":8}}},\"isPositive\":true},{\"id\":\"stack-existing-photo-and-code-vertically\",\"request\":\"No composto anterior, deixe em duas linhas: foto em cima e código embaixo\",\"operationId\":\"column.renderer.composeLayout.set\",\"target\":\"codigo\",\"params\":{\"direction\":\"column\"},\"isPositive\":true},{\"id\":\"grow-photo-inside-existing-compose\",\"request\":\"Aumente um pouco somente a foto dessa célula composta, sem mudar os outros itens\",\"operationId\":\"column.renderer.composeItem.set\",\"target\":\"codigo\",\"params\":{\"itemType\":\"avatar\",\"item\":{\"type\":\"avatar\",\"avatar\":{\"srcField\":\"foto\",\"initialsField\":\"nome\",\"shape\":\"rounded\",\"size\":40}}},\"isPositive\":true},{\"id\":\"shrink-photo-inside-existing-compose\",\"request\":\"Diminua só essa foto; ela está grande demais, e preserve o restante\",\"operationId\":\"column.renderer.composeItem.set\",\"target\":\"codigo\",\"params\":{\"itemType\":\"avatar\",\"item\":{\"type\":\"avatar\",\"avatar\":{\"srcField\":\"foto\",\"initialsField\":\"nome\",\"shape\":\"rounded\",\"size\":24}}},\"isPositive\":true},{\"id\":\"make-photo-circular-inside-existing-compose\",\"request\":\"Deixe somente a foto dessa célula composta circular, sem alterar tamanho, layout ou os outros itens\",\"operationId\":\"column.renderer.composeItem.set\",\"target\":\"codigo\",\"params\":{\"itemType\":\"avatar\",\"item\":{\"type\":\"avatar\",\"avatar\":{\"srcField\":\"foto\",\"initialsField\":\"nome\",\"shape\":\"circle\",\"size\":24}}},\"isPositive\":true},{\"id\":\"set-composed-photo-rounded-square-after-correction\",\"request\":\"Deixe a foto circular... não, cancela essa parte: quero quadrada com cantos arredondados\",\"operationId\":\"column.renderer.composeItem.set\",\"target\":\"codigo\",\"params\":{\"itemType\":\"avatar\",\"item\":{\"type\":\"avatar\",\"avatar\":{\"srcField\":\"foto\",\"initialsField\":\"nome\",\"shape\":\"rounded\",\"size\":24}}},\"isPositive\":true},{\"id\":\"set-button-renderer\",\"request\":\"Transformar a coluna acoes em botao que executa abrir-detalhe\",\"operationId\":\"column.renderer.set\",\"target\":\"acoes\",\"params\":{\"type\":\"button\",\"button\":{\"label\":\"Abrir\",\"action\":{\"id\":\"abrir-detalhe\"}}},\"isPositive\":true},{\"id\":\"add-column-conditional-style\",\"request\":\"Destacar a coluna status quando o valor estiver bloqueado\",\"operationId\":\"column.conditionalStyle.add\",\"target\":\"status\",\"params\":{\"id\":\"status-bloqueado\",\"condition\":{\"==\":[{\"var\":\"status\"},\"bloqueado\"]},\"cssClass\":\"status-bloqueado\"},\"isPositive\":true},{\"id\":\"set-currency-format-preset\",\"request\":\"Formatar a coluna total como moeda brasileira\",\"operationId\":\"column.format.set\",\"target\":\"total\",\"params\":{\"format\":\"BRL|symbol|2\"},\"isPositive\":true},{\"id\":\"set-cpf-format-preset\",\"request\":\"Formate a coluna CPF\",\"operationId\":\"column.format.set\",\"target\":\"cpf\",\"params\":{\"format\":\"000.000.000-00\"},\"isPositive\":true},{\"id\":\"set-long-date-format-preset\",\"request\":\"Mostre a data de admissão por extenso\",\"operationId\":\"column.format.set\",\"target\":\"dataAdmissao\",\"params\":{\"format\":\"longDate\"},\"isPositive\":true},{\"id\":\"set-basic-column-width\",\"request\":\"Definir a largura da coluna nome para 240px\",\"operationId\":\"column.width.set\",\"target\":\"nome\",\"params\":{\"width\":\"240px\"},\"isPositive\":true},{\"id\":\"set-salary-align-right\",\"request\":\"Alinhe o salário à direita\",\"operationId\":\"column.align.set\",\"target\":\"salario\",\"params\":{\"align\":\"right\"},\"isPositive\":true},{\"id\":\"make-name-sticky-start\",\"request\":\"Fixe a coluna funcionário no início da tabela\",\"operationId\":\"column.sticky.set\",\"target\":\"funcionario\",\"params\":{\"sticky\":\"start\"},\"isPositive\":true},{\"id\":\"disable-cpf-sorting\",\"request\":\"Não permita ordenar pela coluna CPF\",\"operationId\":\"column.sortable.set\",\"target\":\"cpf\",\"params\":{\"sortable\":false},\"isPositive\":true}]}",
30664
30734
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30668,7 +30738,7 @@
30668
30738
  "corpusVersion": "1.0.0"
30669
30739
  },
30670
30740
  {
30671
- "chunkIndex": 132,
30741
+ "chunkIndex": 133,
30672
30742
  "chunkKind": "authoring_manifest",
30673
30743
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"2.2.3\",\"componentId\":\"praxis-table\",\"ownerPackage\":\"@praxisui/table\",\"configSchemaId\":\"TableConfig\",\"chunkSection\":\"examples\",\"examples\":[{\"id\":\"enable-department-filter\",\"request\":\"Deixe o departamento disponível nos filtros\",\"operationId\":\"column.filterable.set\",\"target\":\"departamento\",\"params\":{\"filterable\":true},\"isPositive\":true},{\"id\":\"hide-internal-id-column\",\"request\":\"Oculte o ID interno da tabela\",\"operationId\":\"column.visibility.set\",\"target\":\"id\",\"params\":{\"visible\":false},\"isPositive\":true},{\"id\":\"hide-source-column-after-cell-composition\",\"request\":\"Na coluna Código, mostrar primeiro a foto e depois o código na mesma célula, sem manter Foto como coluna separada\",\"operationId\":\"column.visibility.set\",\"target\":\"foto\",\"params\":{\"visible\":false},\"isPositive\":true},{\"id\":\"move-whole-photo-column-before-code\",\"request\":\"Mover a coluna Foto inteira para antes da coluna Código, mantendo as duas colunas separadas e sem alterar suas células\",\"operationId\":\"column.order.set\",\"target\":\"foto\",\"params\":{\"order\":0},\"isPositive\":true},{\"id\":\"map-active-status-labels\",\"request\":\"Sem mudar o título da coluna Ativo, mostre Sim e Não no lugar dos valores das células\",\"operationId\":\"column.valueMapping.set\",\"target\":\"ativo\",\"params\":{\"valueMapping\":{\"true\":\"Sim\",\"false\":\"Não\"}},\"isPositive\":true},{\"id\":\"column-header-renaming-is-not-value-mapping\",\"request\":\"Ativo vira Status.\",\"operationId\":\"column.valueMapping.set\",\"target\":\"ativo\",\"isPositive\":false},{\"id\":\"set-avatar-chip-renderer\",\"request\":\"Corrija o avatar do funcionário e mantenha o nome como chip\",\"operationId\":\"column.renderer.set\",\"target\":\"funcionario\",\"params\":{\"type\":\"compose\",\"compose\":{\"items\":[{\"type\":\"avatar\",\"avatar\":{\"srcField\":\"avatarUrl\",\"initialsField\":\"funcionario\",\"shape\":\"circle\",\"backgroundColor\":\"#E3F2FD\",\"textColor\":\"#0D47A1\"}},{\"type\":\"chip\",\"chip\":{\"textField\":\"funcionario\",\"variant\":\"soft\"}}]}},\"isPositive\":true},{\"id\":\"highlight-high-salary-row-red\",\"request\":\"Destaque de vermelho as linhas com salário acima de 30 mil\",\"operationId\":\"row.styleRule.add\",\"params\":{\"id\":\"salario-acima-30000\",\"condition\":{\">\":[{\"var\":\"salario\"},30000]},\"effects\":[{\"id\":\"salario-alto-destaque\",\"scope\":\"row\",\"description\":\"Destaque visual para salários acima de R$ 30.000.\",\"estilo\":{\"color\":\"#B42318\",\"bold\":true},\"background\":{\"color\":\"#FDECEC\"},\"layout\":{\"border\":\"left\",\"borderColor\":\"#D92D20\",\"borderWidth\":4}}],\"description\":\"Destaca a linha inteira sem alterar dados, filtros ou paginação.\"},\"isPositive\":true},{\"id\":\"change-high-salary-row-highlight-to-orange\",\"request\":\"Agora troque vermelho por laranja\",\"operationId\":\"row.styleRule.update\",\"target\":\"salario-acima-30000\",\"params\":{\"description\":\"Destaca em laranja a linha inteira para salários acima de R$ 30.000.\",\"effects\":[{\"id\":\"salario-alto-destaque\",\"scope\":\"row\",\"description\":\"Destaque visual laranja para salários acima de R$ 30.000.\",\"estilo\":{\"color\":\"#9A3412\",\"bold\":true},\"background\":{\"color\":\"#FFEDD5\"},\"layout\":{\"border\":\"left\",\"borderColor\":\"#F97316\",\"borderWidth\":4}}]},\"isPositive\":true},{\"id\":\"animate-high-salary-row\",\"request\":\"Anime suavemente as linhas com salário acima de 30000\",\"operationId\":\"row.conditionalRenderer.add\",\"params\":{\"id\":\"salario-alto-pulse\",\"condition\":{\">\":[{\"var\":\"salario\"},30000]},\"animation\":{\"preset\":\"pulse-soft\",\"trigger\":\"onAppear\",\"intensity\":\"subtle\",\"repeat\":\"once\",\"durationMs\":1200},\"description\":\"Destaca linhas de salário alto sem alterar os dados.\"},\"isPositive\":true},{\"id\":\"style-low-salary-cell\",\"request\":\"Para salários menores que 30000, use fundo laranja claro\",\"operationId\":\"column.conditionalStyle.add\",\"target\":\"salario\",\"params\":{\"id\":\"salario-baixo-laranja\",\"condition\":{\"<\":[{\"var\":\"salario\"},30000]},\"style\":{\"backgroundColor\":\"#FFF3E0\",\"color\":\"#8A4B00\"},\"tooltip\":{\"text\":\"Salário abaixo do recorte configurado\",\"position\":\"top\"}},\"isPositive\":true},{\"id\":\"enable-advanced-filters-human\",\"request\":\"Ative filtros avançados e deixe CPF e departamento sempre visíveis\",\"operationId\":\"filter.advanced.configure\",\"params\":{\"enabled\":true,\"queryBuilder\":true,\"savePresets\":true,\"settings\":{\"mode\":\"filter\",\"showAdvanced\":true,\"alwaysVisibleFields\":[\"cpf\",\"departamento\"]}},\"isPositive\":true},{\"id\":\"add-salary-to-advanced-filters-human\",\"request\":\"Inclua também Salário nesses filtros\",\"operationId\":\"filter.advanced.fields.add\",\"params\":{\"fields\":[\"salario\"],\"selected\":true,\"alwaysVisible\":true},\"isPositive\":true},{\"id\":\"remove-active-from-advanced-filters-human\",\"request\":\"Agora remova Ativo desses filtros\",\"operationId\":\"filter.advanced.fields.remove\",\"params\":{\"fields\":[\"ativo\"],\"selected\":true,\"alwaysVisible\":true},\"isPositive\":true},{\"id\":\"enable-table-filters-human\",\"request\":\"Habilite os filtros dinâmicos da tabela\",\"operationId\":\"behavior.filtering.configure\",\"params\":{\"enabled\":true,\"strategy\":\"client\",\"debounceMs\":250},\"isPositive\":true},{\"id\":\"compact-density-human\",\"request\":\"Deixe a tabela mais compacta\",\"operationId\":\"appearance.density.set\",\"params\":{\"density\":\"compact\"},\"isPositive\":true},{\"id\":\"toolbar-search-refresh-human\",\"request\":\"Mostre busca e botão de atualizar na toolbar\",\"operationId\":\"toolbar.configure\",\"params\":{\"visible\":true,\"showSearch\":true,\"showRefresh\":true},\"isPositive\":true},{\"id\":\"configure-server-pagination\",\"request\":\"Usar paginacao no servidor com 50 linhas por pagina\",\"operationId\":\"behavior.pagination.configure\",\"params\":{\"enabled\":true,\"strategy\":\"server\",\"pageSize\":50,\"position\":\"bottom\"},\"isPositive\":true},{\"id\":\"configure-default-sorting\",\"request\":\"Ordenar inicialmente por data de criacao decrescente\",\"operationId\":\"behavior.sorting.configure\",\"params\":{\"enabled\":true,\"strategy\":\"server\",\"defaultSort\":{\"column\":\"createdAt\",\"direction\":\"desc\"}},\"isPositive\":true},{\"id\":\"configure-bulk-actions\",\"request\":\"Habilitar acoes em lote na toolbar\",\"operationId\":\"actions.bulk.configure\",\"params\":{\"enabled\":true,\"position\":\"toolbar\"},\"isPositive\":true},{\"id\":\"configure-localization\",\"request\":\"Configurar a tabela para portugues do Brasil\",\"operationId\":\"localization.configure\",\"params\":{\"locale\":\"pt-BR\",\"direction\":\"ltr\",\"dateTime\":{\"dateFormat\":\"dd/MM/yyyy\"}},\"isPositive\":true},{\"id\":\"configure-accessibility\",\"request\":\"Ativar alto contraste e reduzir animacoes\",\"operationId\":\"accessibility.configure\",\"params\":{\"enabled\":true,\"highContrast\":true,\"reduceMotion\":true,\"announcements\":{\"liveRegion\":\"polite\"}},\"isPositive\":true},{\"id\":\"require-removal-confirmation\",\"request\":\"Remover a coluna nome\",\"operationId\":\"column.remove\",\"target\":\"nome\",\"isPositive\":true}]}",
30674
30744
  "sourcePointer": "projects/praxis-table/src/lib/ai/praxis-table-authoring-manifest.ts",
@@ -30678,7 +30748,7 @@
30678
30748
  "corpusVersion": "1.0.0"
30679
30749
  },
30680
30750
  {
30681
- "chunkIndex": 133,
30751
+ "chunkIndex": 134,
30682
30752
  "chunkKind": "context_pack",
30683
30753
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"componentContext\",\"componentContext\":{\"version\":\"v1\"}}",
30684
30754
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30688,7 +30758,7 @@
30688
30758
  "corpusVersion": "1.0.0"
30689
30759
  },
30690
30760
  {
30691
- "chunkIndex": 134,
30761
+ "chunkIndex": 135,
30692
30762
  "chunkKind": "context_pack",
30693
30763
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"componentContext.optionsByPath\",\"componentContext\":{\"optionsByPath\":{\"appearance.density\":{\"mode\":\"enum\",\"options\":[{\"value\":\"compact\",\"label\":\"Compact\"},{\"value\":\"comfortable\",\"label\":\"Comfortable\"},{\"value\":\"spacious\",\"label\":\"Spacious\"}]},\"export.formats\":{\"mode\":\"enum\",\"options\":[{\"value\":\"excel\",\"label\":\"Excel\"},{\"value\":\"pdf\",\"label\":\"PDF\"},{\"value\":\"csv\",\"label\":\"CSV\"},{\"value\":\"json\",\"label\":\"JSON\"},{\"value\":\"print\",\"label\":\"Print\"}]},\"columns[].type\":{\"mode\":\"enum\",\"options\":[{\"value\":\"string\",\"label\":\"String\"},{\"value\":\"number\",\"label\":\"Number\"},{\"value\":\"currency\",\"label\":\"Currency\"},{\"value\":\"percentage\",\"label\":\"Percentage\"},{\"value\":\"date\",\"label\":\"Date\"},{\"value\":\"boolean\",\"label\":\"Boolean\"},{\"value\":\"custom\",\"label\":\"Custom\"}]},\"columns[].format\":{\"mode\":\"suggested\",\"options\":[{\"value\":\"shortDate\",\"label\":\"Date short\",\"example\":\"01/12/2023\"},{\"value\":\"mediumDate\",\"label\":\"Date medium\",\"example\":\"01 Dec 2023\"},{\"value\":\"longDate\",\"label\":\"Date long\",\"example\":\"01 December 2023\"},{\"value\":\"fullDate\",\"label\":\"Date full\",\"example\":\"Friday, 01 December 2023\"},{\"value\":\"MMM/yyyy\",\"label\":\"Month/Year\",\"example\":\"Dec/2023\"},{\"value\":\"shortTime\",\"label\":\"Time short\",\"example\":\"14:30\"},{\"value\":\"short\",\"label\":\"Date+Time short\",\"example\":\"01/12/2023 14:30\"},{\"value\":\"yyyy-MM-dd\",\"label\":\"ISO 8601\",\"example\":\"2023-12-01\"},{\"value\":\"dd/MM/yyyy\",\"label\":\"Date dd/MM/yyyy\",\"example\":\"01/12/2023\"},{\"value\":\"yyyy-MM-dd HH:mm\",\"label\":\"DateTime yyyy-MM-dd HH:mm\",\"example\":\"2023-12-01 14:30\"},{\"value\":\"1.0-0\",\"label\":\"Number integer\",\"example\":\"1,234\"},{\"value\":\"1.1-1\",\"label\":\"Number 1 decimal\",\"example\":\"1,234.5\"},{\"value\":\"1.2-2\",\"label\":\"Number 2 decimals\",\"example\":\"1,234.56\"},{\"value\":\"1.0-3\",\"label\":\"Number up to 3 decimals\",\"example\":\"1,234.567\"},{\"value\":\"1.0-0|nosep\",\"label\":\"Number no grouping\",\"example\":\"1234\"},{\"value\":\"BRL|symbol|2\",\"label\":\"Currency BRL symbol\",\"example\":\"R$ 1.234,56\"},{\"value\":\"BRL|symbol|2|nosep\",\"label\":\"Currency BRL symbol (no grouping)\",\"example\":\"R$ 1234,56\"},{\"value\":\"USD|symbol|2\",\"label\":\"Currency USD symbol\",\"example\":\"US$ 1,234.56\"},{\"value\":\"EUR|symbol|2\",\"label\":\"Currency EUR symbol\",\"example\":\"EUR 1,234.56\"},{\"value\":\"BRL|code|2\",\"label\":\"Currency code\",\"example\":\"1,234.56 BRL\"},{\"value\":\"USD|code|0\",\"label\":\"Currency USD code (0 decimals)\",\"example\":\"1234 USD\"},{\"value\":\"EUR|symbol|2|nosep\",\"label\":\"Currency EUR symbol (no grouping)\",\"example\":\"EUR 1234,56\"},{\"value\":\"1.0-0\",\"label\":\"Percent 0 decimals\",\"example\":\"12%\"},{\"value\":\"1.1-1\",\"label\":\"Percent 1 decimal\",\"example\":\"12.3%\"},{\"value\":\"1.2-2\",\"label\":\"Percent 2 decimals\",\"example\":\"12.34%\"},{\"value\":\"1.0-0|x100\",\"label\":\"Percent 0 decimals (x100)\",\"example\":\"12%\"},{\"value\":\"1.1-1|x100\",\"label\":\"Percent 1 decimal (x100)\",\"example\":\"12.3%\"},{\"value\":\"1.2-2|x100\",\"label\":\"Percent 2 decimals (x100)\",\"example\":\"12.34%\"},{\"value\":\"none\",\"label\":\"String none\",\"example\":\"Sample\"},{\"value\":\"uppercase\",\"label\":\"String uppercase\",\"example\":\"SAMPLE\"},{\"value\":\"lowercase\",\"label\":\"String lowercase\",\"example\":\"sample\"},{\"value\":\"titlecase\",\"label\":\"String titlecase\",\"example\":\"Sample Text\"},{\"value\":\"capitalize\",\"label\":\"String capitalize\",\"example\":\"Sample\"},{\"value\":\"uppercase|truncate|50|...\",\"label\":\"String uppercase + truncate 50\",\"example\":\"SAMPLE...\"},{\"value\":\"true-false\",\"label\":\"Boolean true/false\",\"example\":\"True / False\"},{\"value\":\"yes-no\",\"label\":\"Boolean yes/no\",\"example\":\"Yes / No\"},{\"value\":\"active-inactive\",\"label\":\"Boolean active/inactive\",\"example\":\"Active / Inactive\"},{\"value\":\"on-off\",\"label\":\"Boolean on/off\",\"example\":\"On / Off\"},{\"value\":\"enabled-disabled\",\"label\":\"Boolean enabled/disabled\",\"example\":\"Enabled / Disabled\"},{\"value\":\"custom|Sim|Nao\",\"label\":\"Boolean custom (Sim/Nao)\",\"example\":\"Sim / Nao\"}]},\"columns[].computed.outputType\":{\"mode\":\"enum\",\"options\":[{\"value\":\"string\",\"label\":\"String\"},{\"value\":\"number\",\"label\":\"Number\"},{\"value\":\"currency\",\"label\":\"Currency\"},{\"value\":\"percentage\",\"label\":\"Percentage\"},{\"value\":\"date\",\"label\":\"Date\"},{\"value\":\"boolean\",\"label\":\"Boolean\"},{\"value\":\"custom\",\"label\":\"Custom\"}]},\"columns[].computed.format\":{\"mode\":\"suggested\",\"options\":[{\"value\":\"shortDate\",\"label\":\"Date short\",\"example\":\"01/12/2023\"},{\"value\":\"mediumDate\",\"label\":\"Date medium\",\"example\":\"01 Dec 2023\"},{\"value\":\"longDate\",\"label\":\"Date long\",\"example\":\"01 December 2023\"},{\"value\":\"fullDate\",\"label\":\"Date full\",\"example\":\"Friday, 01 December 2023\"},{\"value\":\"MMM/yyyy\",\"label\":\"Month/Year\",\"example\":\"Dec/2023\"},{\"value\":\"shortTime\",\"label\":\"Time short\",\"example\":\"14:30\"},{\"value\":\"short\",\"label\":\"Date+Time short\",\"example\":\"01/12/2023 14:30\"},{\"value\":\"yyyy-MM-dd\",\"label\":\"ISO 8601\",\"example\":\"2023-12-01\"},{\"value\":\"dd/MM/yyyy\",\"label\":\"Date dd/MM/yyyy\",\"example\":\"01/12/2023\"},{\"value\":\"yyyy-MM-dd HH:mm\",\"label\":\"DateTime yyyy-MM-dd HH:mm\",\"example\":\"2023-12-01 14:30\"},{\"value\":\"1.0-0\",\"label\":\"Number integer\",\"example\":\"1,234\"},{\"value\":\"1.1-1\",\"label\":\"Number 1 decimal\",\"example\":\"1,234.5\"},{\"value\":\"1.2-2\",\"label\":\"Number 2 decimals\",\"example\":\"1,234.56\"},{\"value\":\"1.0-3\",\"label\":\"Number up to 3 decimals\",\"example\":\"1,234.567\"},{\"value\":\"1.0-0|nosep\",\"label\":\"Number no grouping\",\"example\":\"1234\"},{\"value\":\"BRL|symbol|2\",\"label\":\"Currency BRL symbol\",\"example\":\"R$ 1.234,56\"},{\"value\":\"BRL|symbol|2|nosep\",\"label\":\"Currency BRL symbol (no grouping)\",\"example\":\"R$ 1234,56\"},{\"value\":\"USD|symbol|2\",\"label\":\"Currency USD symbol\",\"example\":\"US$ 1,234.56\"},{\"value\":\"EUR|symbol|2\",\"label\":\"Currency EUR symbol\",\"example\":\"EUR 1,234.56\"},{\"value\":\"BRL|code|2\",\"label\":\"Currency code\",\"example\":\"1,234.56 BRL\"},{\"value\":\"USD|code|0\",\"label\":\"Currency USD code (0 decimals)\",\"example\":\"1234 USD\"},{\"value\":\"EUR|symbol|2|nosep\",\"label\":\"Currency EUR symbol (no grouping)\",\"example\":\"EUR 1234,56\"},{\"value\":\"1.0-0\",\"label\":\"Percent 0 decimals\",\"example\":\"12%\"},{\"value\":\"1.1-1\",\"label\":\"Percent 1 decimal\",\"example\":\"12.3%\"},{\"value\":\"1.2-2\",\"label\":\"Percent 2 decimals\",\"example\":\"12.34%\"},{\"value\":\"1.0-0|x100\",\"label\":\"Percent 0 decimals (x100)\",\"example\":\"12%\"},{\"value\":\"1.1-1|x100\",\"label\":\"Percent 1 decimal (x100)\",\"example\":\"12.3%\"},{\"value\":\"1.2-2|x100\",\"label\":\"Percent 2 decimals (x100)\",\"example\":\"12.34%\"},{\"value\":\"none\",\"label\":\"String none\",\"example\":\"Sample\"},{\"value\":\"uppercase\",\"label\":\"String uppercase\",\"example\":\"SAMPLE\"},{\"value\":\"lowercase\",\"label\":\"String lowercase\",\"example\":\"sample\"},{\"value\":\"titlecase\",\"label\":\"String titlecase\",\"example\":\"Sample Text\"},{\"value\":\"capitalize\",\"label\":\"String capitalize\",\"example\":\"Sample\"},{\"value\":\"uppercase|truncate|50|...\",\"label\":\"String uppercase + truncate 50\",\"example\":\"SAMPLE...\"},{\"value\":\"true-false\",\"label\":\"Boolean true/false\",\"example\":\"True / False\"},{\"value\":\"yes-no\",\"label\":\"Boolean yes/no\",\"example\":\"Yes / No\"},{\"value\":\"active-inactive\",\"label\":\"Boolean active/inactive\",\"example\":\"Active / Inactive\"},{\"value\":\"on-off\",\"label\":\"Boolean on/off\",\"example\":\"On / Off\"},{\"value\":\"enabled-disabled\",\"label\":\"Boolean enabled/disabled\",\"example\":\"Enabled / Disabled\"},{\"value\":\"custom|Sim|Nao\",\"label\":\"Boolean custom (Sim/Nao)\",\"example\":\"Sim / Nao\"}]},\"behavior.filtering.advancedFilters.settings.mode\":{\"mode\":\"enum\",\"options\":[{\"value\":\"filter\",\"label\":\"Filter\"}]},\"behavior.expansion.state.mode\":{\"mode\":\"enum\",\"options\":[{\"value\":\"controlled\",\"label\":\"Controlled\"},{\"value\":\"uncontrolled\",\"label\":\"Uncontrolled\"}]},\"behavior.expansion.interaction.trigger\":{\"mode\":\"enum\",\"options\":[{\"value\":\"icon\",\"label\":\"Icon\"},{\"value\":\"row\",\"label\":\"Row\"},{\"value\":\"both\",\"label\":\"Both\"}]},\"behavior.expansion.interaction.keyboard.profile\":{\"mode\":\"enum\",\"options\":[{\"value\":\"disclosure\",\"label\":\"Disclosure\"},{\"value\":\"grid\",\"label\":\"Grid\"}]},\"behavior.expansion.limits.onOverflow\":{\"mode\":\"enum\",\"options\":[{\"value\":\"collapseOldest\",\"label\":\"Collapse Oldest\"},{\"value\":\"denyNew\",\"label\":\"Deny New\"},{\"value\":\"collapseAll\",\"label\":\"Collapse All\"}]}}}}",
30694
30764
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30698,7 +30768,7 @@
30698
30768
  "corpusVersion": "1.0.0"
30699
30769
  },
30700
30770
  {
30701
- "chunkIndex": 135,
30771
+ "chunkIndex": 136,
30702
30772
  "chunkKind": "context_pack",
30703
30773
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"componentContext.optionsByPath\",\"componentContext\":{\"optionsByPath\":{\"behavior.expansion.collapseOn.sortChange\":{\"mode\":\"enum\",\"options\":[{\"value\":\"true\",\"label\":\"Enabled\"},{\"value\":\"false\",\"label\":\"Disabled\"}]},\"behavior.expansion.collapseOn.pageChange\":{\"mode\":\"enum\",\"options\":[{\"value\":\"true\",\"label\":\"Enabled\"},{\"value\":\"false\",\"label\":\"Disabled\"}]},\"behavior.expansion.collapseOn.filterChange\":{\"mode\":\"enum\",\"options\":[{\"value\":\"true\",\"label\":\"Enabled\"},{\"value\":\"false\",\"label\":\"Disabled\"}]},\"behavior.expansion.collapseOn.dataRefresh\":{\"mode\":\"enum\",\"options\":[{\"value\":\"true\",\"label\":\"Enabled\"},{\"value\":\"false\",\"label\":\"Disabled\"}]},\"behavior.expansion.detail.source.mode\":{\"mode\":\"enum\",\"options\":[{\"value\":\"inline\",\"label\":\"Inline\"},{\"value\":\"resource\",\"label\":\"Resource\"},{\"value\":\"resourcePath\",\"label\":\"Resource Path\"}]},\"behavior.expansion.detail.source.resource.kind\":{\"mode\":\"enum\",\"options\":[{\"value\":\"ui-composition\",\"label\":\"UI Composition\"},{\"value\":\"form-schema\",\"label\":\"Form Schema\"},{\"value\":\"table-schema\",\"label\":\"Table Schema\"},{\"value\":\"dashboard-schema\",\"label\":\"Dashboard Schema\"}]},\"behavior.expansion.detail.source.resourcePath.method\":{\"mode\":\"enum\",\"options\":[{\"value\":\"GET\",\"label\":\"GET\"},{\"value\":\"POST\",\"label\":\"POST\"}]},\"behavior.expansion.detail.source.resourcePath.paramsMap\":{\"mode\":\"suggested\",\"options\":[{\"value\":\"{\\\"id\\\":\\\"$row.id\\\"}\",\"label\":\"Row ID\"},{\"value\":\"{\\\"id\\\":\\\"$row.id\\\",\\\"table\\\":\\\"$ctx.tableId\\\"}\",\"label\":\"Row + Table\"}]},\"behavior.expansion.detail.source.resourceAllowList[]\":{\"mode\":\"suggested\",\"options\":[{\"value\":\"api/orders/*/detail-schema\",\"label\":\"Orders detail schema\"},{\"value\":\"api/customers/*/detail-schema\",\"label\":\"Customers detail schema\"}]},\"behavior.expansion.detail.rendering.strategy\":{\"mode\":\"enum\",\"options\":[{\"value\":\"registry\",\"label\":\"Registry\"}]},\"behavior.expansion.detail.rendering.hostLayout\":{\"mode\":\"enum\",\"options\":[{\"value\":\"auto\",\"label\":\"Auto\"},{\"value\":\"stack\",\"label\":\"Stack\"},{\"value\":\"tabs\",\"label\":\"Tabs\"}]},\"behavior.expansion.detail.rendering.fallbackNodePolicy\":{\"mode\":\"enum\",\"options\":[{\"value\":\"failClosed\",\"label\":\"Fail Closed\"},{\"value\":\"renderPlaceholder\",\"label\":\"Render Placeholder\"}]},\"behavior.expansion.detail.height.mode\":{\"mode\":\"enum\",\"options\":[{\"value\":\"fixed\",\"label\":\"Fixed\"},{\"value\":\"dynamic\",\"label\":\"Dynamic\"}]},\"behavior.expansion.virtualization.policy\":{\"mode\":\"enum\",\"options\":[{\"value\":\"fixed-height-only\",\"label\":\"Fixed Height Only\"},{\"value\":\"allow-dynamic-under-flag\",\"label\":\"Allow Dynamic Under Flag\"}]},\"behavior.expansion.security.eventExposureDefault.rowId\":{\"mode\":\"enum\",\"options\":[{\"value\":\"redacted\",\"label\":\"Redacted\"},{\"value\":\"hashed\",\"label\":\"Hashed\"},{\"value\":\"raw\",\"label\":\"Raw\"}]},\"behavior.expansion.security.eventExposureDefault.expandedKeys\":{\"mode\":\"enum\",\"options\":[{\"value\":\"none\",\"label\":\"None\"},{\"value\":\"hashed\",\"label\":\"Hashed\"},{\"value\":\"raw\",\"label\":\"Raw\"}]},\"behavior.expansion.deepLink.encoding\":{\"mode\":\"enum\",\"options\":[{\"value\":\"csv\",\"label\":\"CSV\"}]},\"behavior.expansion.deepLink.parsing.duplicateParams\":{\"mode\":\"enum\",\"options\":[{\"value\":\"firstWins\",\"label\":\"First Wins\"},{\"value\":\"reject\",\"label\":\"Reject\"}]},\"behavior.expansion.deepLink.integrity.mode\":{\"mode\":\"enum\",\"options\":[{\"value\":\"opaqueToken\",\"label\":\"Opaque Token\"}]},\"behavior.expansion.deepLink.privacy.mode\":{\"mode\":\"enum\",\"options\":[{\"value\":\"denyByDefault\",\"label\":\"Deny By Default\"},{\"value\":\"allowByDefault\",\"label\":\"Allow By Default\"}]},\"columns[].renderer.type\":{\"mode\":\"enum\",\"options\":[{\"value\":\"icon\",\"label\":\"Icon\"},{\"value\":\"image\",\"label\":\"Image\"},{\"value\":\"badge\",\"label\":\"Badge\"},{\"value\":\"link\",\"label\":\"Link\"},{\"value\":\"button\",\"label\":\"Button\"},{\"value\":\"chip\",\"label\":\"Chip\"},{\"value\":\"progress\",\"label\":\"Progress\"},{\"value\":\"avatar\",\"label\":\"Avatar\"},{\"value\":\"toggle\",\"label\":\"Toggle\"},{\"value\":\"menu\",\"label\":\"Menu\"},{\"value\":\"rating\",\"label\":\"Rating\"},{\"value\":\"html\",\"label\":\"HTML\"},{\"value\":\"microVisualization\",\"label\":\"Micro visualization\"},{\"value\":\"compose\",\"label\":\"Compose\"}]},\"columns[].renderer.image.shape\":{\"mode\":\"enum\",\"options\":[{\"value\":\"square\",\"label\":\"Square\"},{\"value\":\"rounded\",\"label\":\"Rounded\"},{\"value\":\"circle\",\"label\":\"Circle\"}]},\"columns[].renderer.image.fit\":{\"mode\":\"enum\",\"options\":[{\"value\":\"cover\",\"label\":\"Cover\"},{\"value\":\"contain\",\"label\":\"Contain\"}]},\"columns[].renderer.link.target\":{\"mode\":\"enum\",\"options\":[{\"value\":\"_blank\",\"label\":\"New tab\"},{\"value\":\"_self\",\"label\":\"Same tab\"},{\"value\":\"_parent\",\"label\":\"Parent frame\"},{\"value\":\"_top\",\"label\":\"Top frame\"}]},\"columns[].renderer.button.variant\":{\"mode\":\"enum\",\"options\":[{\"value\":\"filled\",\"label\":\"Filled\"},{\"value\":\"outlined\",\"label\":\"Outlined\"},{\"value\":\"text\",\"label\":\"Text\"}]},\"columns[].renderer.button.color\":{\"mode\":\"enum\",\"options\":[{\"value\":\"primary\",\"label\":\"Primary\"},{\"value\":\"accent\",\"label\":\"Accent\"},{\"value\":\"warn\",\"label\":\"Warn\"}]},\"columns[].renderer.button.size\":{\"mode\":\"enum\",\"options\":[{\"value\":\"sm\",\"label\":\"Small\"},{\"value\":\"md\",\"label\":\"Medium\"},{\"value\":\"lg\",\"label\":\"Large\"}]},\"columns[].renderer.badge.variant\":{\"mode\":\"enum\",\"options\":[{\"value\":\"filled\",\"label\":\"Filled\"},{\"value\":\"outlined\",\"label\":\"Outlined\"},{\"value\":\"soft\",\"label\":\"Soft\"},{\"value\":\"plain\",\"label\":\"Plain\"}]},\"columns[].renderer.chip.variant\":{\"mode\":\"enum\",\"options\":[{\"value\":\"filled\",\"label\":\"Filled\"},{\"value\":\"outlined\",\"label\":\"Outlined\"},{\"value\":\"soft\",\"label\":\"Soft\"},{\"value\":\"plain\",\"label\":\"Plain\"}]},\"columns[].renderer.rating.size\":{\"mode\":\"enum\",\"options\":[{\"value\":\"small\",\"label\":\"Small\"},{\"value\":\"medium\",\"label\":\"Medium\"},{\"value\":\"large\",\"label\":\"Large\"}]},\"columns[].renderer.compose.items[].type\":{\"mode\":\"enum\",\"options\":[{\"value\":\"value\",\"label\":\"Value\"},{\"value\":\"icon\",\"label\":\"Icon\"},{\"value\":\"image\",\"label\":\"Image\"},{\"value\":\"badge\",\"label\":\"Badge\"},{\"value\":\"link\",\"label\":\"Link\"},{\"value\":\"button\",\"label\":\"Button\"},{\"value\":\"chip\",\"label\":\"Chip\"},{\"value\":\"progress\",\"label\":\"Progress\"},{\"value\":\"avatar\",\"label\":\"Avatar\"},{\"value\":\"toggle\",\"label\":\"Toggle\"},{\"value\":\"menu\",\"label\":\"Menu\"},{\"value\":\"rating\",\"label\":\"Rating\"},{\"value\":\"html\",\"label\":\"HTML\"},{\"value\":\"microVisualization\",\"label\":\"Micro visualization\"}]},\"columns[].renderer.microVisualization.visualization.valueExpr\":{},\"columns[].renderer.microVisualization.visualization.valueSuffixExpr\":{},\"columns[].renderer.microVisualization.visualization.totalExpr\":{},\"columns[].renderer.microVisualization.visualization.targetExpr\":{},\"columns[].renderer.microVisualization.visualization.baselineExpr\":{},\"columns[].renderer.microVisualization.visualization.segmentsExpr\":{},\"columns[].renderer.microVisualization.visualization.pointsExpr\":{},\"columns[].renderer.microVisualization.visualization.thresholdsExpr\":{},\"columns[].renderer.microVisualization.visualization.itemsExpr\":{},\"columns[].renderer.microVisualization.visualization.toneExpr\":{},\"columns[].renderer.microVisualization.visualization.ariaLabelExpr\":{},\"columns[].renderer.microVisualization.visualization.fallbackTextExpr\":{},\"columns[].conditionalRenderers[].renderer.type\":{\"mode\":\"enum\",\"options\":[{\"value\":\"icon\",\"label\":\"Icon\"},{\"value\":\"image\",\"label\":\"Image\"},{\"value\":\"badge\",\"label\":\"Badge\"},{\"value\":\"link\",\"label\":\"Link\"},{\"value\":\"button\",\"label\":\"Button\"},{\"value\":\"chip\",\"label\":\"Chip\"},{\"value\":\"progress\",\"label\":\"Progress\"},{\"value\":\"avatar\",\"label\":\"Avatar\"},{\"value\":\"toggle\",\"label\":\"Toggle\"},{\"value\":\"menu\",\"label\":\"Menu\"},{\"value\":\"rating\",\"label\":\"Rating\"},{\"value\":\"html\",\"label\":\"HTML\"},{\"value\":\"microVisualization\",\"label\":\"Micro visualization\"},{\"value\":\"compose\",\"label\":\"Compose\"}]},\"columns[].conditionalRenderers[].renderer.image.shape\":{\"mode\":\"enum\",\"options\":[{\"value\":\"square\",\"label\":\"Square\"},{\"value\":\"rounded\",\"label\":\"Rounded\"},{\"value\":\"circle\",\"label\":\"Circle\"}]}}}}",
30704
30774
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30708,7 +30778,7 @@
30708
30778
  "corpusVersion": "1.0.0"
30709
30779
  },
30710
30780
  {
30711
- "chunkIndex": 136,
30781
+ "chunkIndex": 137,
30712
30782
  "chunkKind": "context_pack",
30713
30783
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"componentContext.optionsByPath\",\"componentContext\":{\"optionsByPath\":{\"columns[].conditionalRenderers[].renderer.image.fit\":{\"mode\":\"enum\",\"options\":[{\"value\":\"cover\",\"label\":\"Cover\"},{\"value\":\"contain\",\"label\":\"Contain\"}]},\"columns[].conditionalRenderers[].renderer.link.target\":{\"mode\":\"enum\",\"options\":[{\"value\":\"_blank\",\"label\":\"New tab\"},{\"value\":\"_self\",\"label\":\"Same tab\"},{\"value\":\"_parent\",\"label\":\"Parent frame\"},{\"value\":\"_top\",\"label\":\"Top frame\"}]},\"columns[].conditionalRenderers[].renderer.button.variant\":{\"mode\":\"enum\",\"options\":[{\"value\":\"filled\",\"label\":\"Filled\"},{\"value\":\"outlined\",\"label\":\"Outlined\"},{\"value\":\"text\",\"label\":\"Text\"}]},\"columns[].conditionalRenderers[].renderer.button.color\":{\"mode\":\"enum\",\"options\":[{\"value\":\"primary\",\"label\":\"Primary\"},{\"value\":\"accent\",\"label\":\"Accent\"},{\"value\":\"warn\",\"label\":\"Warn\"}]},\"columns[].conditionalRenderers[].renderer.button.size\":{\"mode\":\"enum\",\"options\":[{\"value\":\"sm\",\"label\":\"Small\"},{\"value\":\"md\",\"label\":\"Medium\"},{\"value\":\"lg\",\"label\":\"Large\"}]},\"columns[].conditionalRenderers[].renderer.badge.variant\":{\"mode\":\"enum\",\"options\":[{\"value\":\"filled\",\"label\":\"Filled\"},{\"value\":\"outlined\",\"label\":\"Outlined\"},{\"value\":\"soft\",\"label\":\"Soft\"}]},\"columns[].conditionalRenderers[].renderer.chip.variant\":{\"mode\":\"enum\",\"options\":[{\"value\":\"filled\",\"label\":\"Filled\"},{\"value\":\"outlined\",\"label\":\"Outlined\"},{\"value\":\"soft\",\"label\":\"Soft\"}]},\"columns[].conditionalRenderers[].renderer.rating.size\":{\"mode\":\"enum\",\"options\":[{\"value\":\"small\",\"label\":\"Small\"},{\"value\":\"medium\",\"label\":\"Medium\"},{\"value\":\"large\",\"label\":\"Large\"}]},\"columns[].conditionalRenderers[].renderer.compose.items[].type\":{\"mode\":\"enum\",\"options\":[{\"value\":\"value\",\"label\":\"Value\"},{\"value\":\"icon\",\"label\":\"Icon\"},{\"value\":\"image\",\"label\":\"Image\"},{\"value\":\"badge\",\"label\":\"Badge\"},{\"value\":\"link\",\"label\":\"Link\"},{\"value\":\"button\",\"label\":\"Button\"},{\"value\":\"chip\",\"label\":\"Chip\"},{\"value\":\"progress\",\"label\":\"Progress\"},{\"value\":\"avatar\",\"label\":\"Avatar\"},{\"value\":\"toggle\",\"label\":\"Toggle\"},{\"value\":\"menu\",\"label\":\"Menu\"},{\"value\":\"rating\",\"label\":\"Rating\"},{\"value\":\"html\",\"label\":\"HTML\"},{\"value\":\"microVisualization\",\"label\":\"Micro visualization\"}]},\"actions.row.actions[].color\":{\"mode\":\"enum\",\"options\":[{\"value\":\"primary\",\"label\":\"Primary\"},{\"value\":\"accent\",\"label\":\"Accent\"},{\"value\":\"warn\",\"label\":\"Warn\"}]},\"actions.row.actions[].icon\":{\"mode\":\"suggested\",\"options\":[{\"value\":\"edit\",\"label\":\"Edit\"},{\"value\":\"delete\",\"label\":\"Delete\"},{\"value\":\"visibility\",\"label\":\"View\"},{\"value\":\"more_vert\",\"label\":\"More\"},{\"value\":\"check\",\"label\":\"Approve\"},{\"value\":\"close\",\"label\":\"Reject\"},{\"value\":\"download\",\"label\":\"Download\"}]},\"actions.row.actions[].globalAction.[actionId]\":{\"mode\":\"suggested\",\"options\":[{\"value\":\"toast.success\",\"label\":\"Toast success\"},{\"value\":\"toast.error\",\"label\":\"Toast error\"},{\"value\":\"dialog.alert\",\"label\":\"Dialog alert\"},{\"value\":\"dialog.open\",\"label\":\"Dialog open\"},{\"value\":\"navigation.openExternal\",\"label\":\"Open external URL\"},{\"value\":\"navigation.openRoute\",\"label\":\"Open internal route\"},{\"value\":\"api.post\",\"label\":\"API POST\"},{\"value\":\"api.patch\",\"label\":\"API PATCH\"}]},\"rowConditionalStyles[].condition\":{\"mode\":\"suggested\",\"options\":[{\"value\":\"status == \\\"active\\\"\",\"label\":\"Status Active\"},{\"value\":\"amount < 0\",\"label\":\"Negative Amount\"},{\"value\":\"priority == \\\"high\\\"\",\"label\":\"High Priority\"}]}}}}",
30714
30784
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30718,7 +30788,7 @@
30718
30788
  "corpusVersion": "1.0.0"
30719
30789
  },
30720
30790
  {
30721
- "chunkIndex": 137,
30791
+ "chunkIndex": 138,
30722
30792
  "chunkKind": "context_pack",
30723
30793
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"componentContext.actionCatalog\",\"componentContext\":{\"actionCatalog\":[{\"id\":\"ADD_COLUMN\",\"intentExamples\":[\"add column\",\"nova coluna\",\"criar coluna\",\"insert column\"],\"scope\":\"GLOBAL\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"requiresExistingTarget\":false,\"params\":[{\"name\":\"field\",\"type\":\"STRING\",\"description\":\"Nome técnico da nova coluna\"},{\"name\":\"header\",\"type\":\"STRING\",\"description\":\"Título da coluna\"}],\"patchTemplate\":{\"columns\":[{\"field\":\"{{params.field}}\",\"header\":\"{{params.header}}\",\"visible\":true}]}},{\"id\":\"ADD_COLUMN_COMPUTED\",\"intentExamples\":[\"calculated column\",\"coluna calculada\",\"compute\",\"formula\",\"expression\"],\"scope\":\"GLOBAL\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"requiresExistingTarget\":false,\"params\":[{\"name\":\"field\",\"type\":\"STRING\",\"description\":\"Nome técnico da nova coluna (ex: total)\"},{\"name\":\"header\",\"type\":\"STRING\",\"description\":\"Título da coluna\"},{\"name\":\"expression\",\"type\":\"STRING\",\"description\":\"AST Json Logic canônico serializado em JSON para derived values (ex: { \\\"*\\\": [{ \\\"var\\\": \\\"quantity\\\" }, { \\\"var\\\": \\\"price\\\" }] })\"},{\"name\":\"type\",\"type\":\"ENUM\",\"options\":[\"number\",\"currency\",\"percentage\",\"string\",\"boolean\"],\"description\":\"Tipo de dado resultante\"}],\"relatedConcepts\":[\"computed-logic\"],\"patchTemplate\":{\"columns\":[{\"field\":\"{{params.field}}\",\"header\":\"{{params.header}}\",\"visible\":true,\"computed\":{\"expression\":\"{{params.expression}}\",\"outputType\":\"{{params.type}}\"}}]}},{\"id\":\"HIDE_COLUMN\",\"intentExamples\":[\"hide column\",\"ocultar coluna\",\"esconder coluna\",\"invisible\"],\"scope\":\"COLUMN\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"defaultValue\":false,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"visible\":false}]}},{\"id\":\"SHOW_COLUMN\",\"intentExamples\":[\"show column\",\"mostrar coluna\",\"exibir coluna\",\"visible\"],\"scope\":\"COLUMN\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"defaultValue\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"visible\":true}]}},{\"id\":\"RENAME_COLUMN\",\"intentExamples\":[\"rename column\",\"renomear coluna\",\"titulo\",\"cabecalho\"],\"scope\":\"COLUMN\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"header\":\"{{value}}\"}]}},{\"id\":\"column.format.set\",\"intentExamples\":[\"format\",\"formatar\",\"date format\",\"number format\"],\"scope\":\"COLUMN\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"format\":\"{{value}}\"}]}},{\"id\":\"column.type.set\",\"intentExamples\":[\"type\",\"tipo\",\"data type\"],\"scope\":\"COLUMN\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"type\":\"{{value}}\"}]}},{\"id\":\"DISABLE_SORT\",\"intentExamples\":[\"disable sort\",\"desativar ordenacao\",\"sem ordenacao\"],\"scope\":\"COLUMN\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"defaultValue\":false,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"sortable\":false}]}},{\"id\":\"ENABLE_SORT\",\"intentExamples\":[\"enable sort\",\"ativar ordenacao\"],\"scope\":\"COLUMN\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"defaultValue\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"sortable\":true}]}},{\"id\":\"column.width.set\",\"intentExamples\":[\"width\",\"largura\",\"col width\"],\"scope\":\"COLUMN\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"width\":\"{{value}}\"}]}},{\"id\":\"column.order.set\",\"intentExamples\":[\"ordem visual\",\"mover coluna\",\"colocar depois de\",\"colocar antes de\"],\"scope\":\"COLUMN\",\"valueType\":\"NUMBER\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"order\":\"{{value}}\"}]}},{\"id\":\"column.align.set\",\"intentExamples\":[\"align\",\"alinhamento\",\"left\",\"center\",\"right\"],\"scope\":\"COLUMN\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"align\":\"{{value}}\"}]}},{\"id\":\"column.sticky.set\",\"intentExamples\":[\"sticky\",\"fixar coluna\",\"pin column\"],\"scope\":\"COLUMN\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"sticky\":\"{{value}}\"}]}},{\"id\":\"column.renderer.type.set\",\"intentExamples\":[\"renderer\",\"render\",\"cell type\"],\"scope\":\"COLUMN\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"renderer\":{\"type\":\"{{value}}\"}}]}},{\"id\":\"column.renderer.image.shape.set\",\"intentExamples\":[\"image shape\",\"avatar shape\",\"imagem recorte\"],\"scope\":\"COLUMN\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"renderer\":{\"type\":\"image\",\"image\":{\"shape\":\"{{value}}\"}}}]}},{\"id\":\"column.renderer.link.target.set\",\"intentExamples\":[\"link target\",\"abrir em nova aba\",\"target blank\"],\"scope\":\"COLUMN\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"renderer\":{\"type\":\"link\",\"link\":{\"target\":\"{{value}}\"}}}]}},{\"id\":\"column.renderer.button.style.set\",\"intentExamples\":[\"button style\",\"botao estilo\",\"variant\",\"color\"],\"scope\":\"COLUMN\",\"valueType\":\"OBJECT\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"renderer\":{\"type\":\"button\",\"button\":{\"variant\":\"{{params.variant}}\",\"color\":\"{{params.color}}\"}}}]}},{\"id\":\"SET_RENDERER_BADGE\",\"intentExamples\":[\"render badge\",\"exibir como badge\",\"status badge\",\"etiqueta\",\"tag\"],\"scope\":\"COLUMN\",\"valueType\":\"OBJECT\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"params\":[{\"name\":\"variant\",\"type\":\"ENUM\",\"options\":[\"filled\",\"outlined\",\"soft\",\"plain\"],\"description\":\"Estilo visual do badge\"},{\"name\":\"color\",\"type\":\"ENUM\",\"options\":[\"primary\",\"accent\",\"warn\",\"success\",\"info\"],\"description\":\"Cor semântica do badge\"}],\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":\"{{target}}\",\"textField\":\"{{target}}\",\"color\":\"{{params.color}}\",\"variant\":\"{{params.variant}}\"}}}]}},{\"id\":\"SET_RENDERER_CHIP\",\"intentExamples\":[\"render chip\",\"exibir como chip\",\"chip\",\"pilula\"],\"scope\":\"COLUMN\",\"valueType\":\"OBJECT\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"renderer\":{\"type\":\"chip\",\"chip\":{\"textField\":\"{{target}}\",\"color\":\"{{params.color}}\",\"variant\":\"{{params.variant}}\"}}}]}},{\"id\":\"SET_RENDERER_ICON\",\"intentExamples\":[\"render icon\",\"exibir como icone\",\"icone\",\"icon\"],\"scope\":\"COLUMN\",\"valueType\":\"OBJECT\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"renderer\":{\"type\":\"icon\",\"icon\":{\"name\":\"{{value}}\",\"color\":\"{{params.color}}\",\"size\":18}}}]}},{\"id\":\"SET_RENDERER_COMPOSE_TITLE_SUBTITLE\",\"intentExamples\":[\"compose title subtitle\",\"titulo e subtitulo\",\"two lines\",\"duas linhas\"],\"scope\":\"COLUMN\",\"valueType\":\"OBJECT\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"renderer\":{\"type\":\"compose\",\"compose\":{\"layout\":{\"direction\":\"column\",\"gap\":4},\"items\":[{\"type\":\"value\",\"emphasis\":\"strong\"},{\"type\":\"value\",\"textField\":\"{{params.subtitleField}}\",\"emphasis\":\"subtle\"}]}}}]}},{\"id\":\"SET_RENDERER_COMPOSE_AVATAR_TEXT\",\"intentExamples\":[\"compose avatar text\",\"avatar e texto\",\"user card\"],\"scope\":\"COLUMN\",\"valueType\":\"OBJECT\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"renderer\":{\"type\":\"compose\",\"compose\":{\"layout\":{\"direction\":\"row\",\"gap\":12,\"align\":\"center\",\"ellipsis\":true},\"items\":[{\"type\":\"avatar\",\"avatar\":{\"srcField\":\"{{params.imageField}}\",\"initialsField\":\"{{target}}\",\"shape\":\"circle\"}},{\"type\":\"value\",\"emphasis\":\"strong\"}]}}}]}}]}}",
30724
30794
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30728,7 +30798,7 @@
30728
30798
  "corpusVersion": "1.0.0"
30729
30799
  },
30730
30800
  {
30731
- "chunkIndex": 138,
30801
+ "chunkIndex": 139,
30732
30802
  "chunkKind": "context_pack",
30733
30803
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"componentContext.actionCatalog\",\"componentContext\":{\"actionCatalog\":[{\"id\":\"ENABLE_PAGINATION\",\"intentExamples\":[\"enable pagination\",\"paginar\",\"paginação\",\"pagination\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"behavior\":{\"pagination\":{\"enabled\":true,\"pageSize\":\"{{params.pageSize}}\"}}}},{\"id\":\"DISABLE_PAGINATION\",\"intentExamples\":[\"disable pagination\",\"remover paginacao\",\"lista infinita\",\"no pagination\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":false,\"patchTemplate\":{\"behavior\":{\"pagination\":{\"enabled\":false}}}},{\"id\":\"ENABLE_FILTERING\",\"intentExamples\":[\"enable filtering\",\"ligar filtros\",\"filtrar\",\"searchable\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"behavior\":{\"filtering\":{\"enabled\":true}}}},{\"id\":\"DISABLE_FILTERING\",\"intentExamples\":[\"disable filtering\",\"desligar filtros\",\"no filter\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":false,\"patchTemplate\":{\"behavior\":{\"filtering\":{\"enabled\":false}}}},{\"id\":\"ENABLE_ADVANCED_FILTERS\",\"intentExamples\":[\"advanced filters\",\"filtros avancados\",\"filtro complexo\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"behavior\":{\"filtering\":{\"advancedFilters\":{\"enabled\":true}}}}},{\"id\":\"SET_FILTER_MODE\",\"intentExamples\":[\"filter mode\",\"modo de filtro\",\"modo unico do filtro\",\"painel de filtro\"],\"scope\":\"GLOBAL\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"behavior\":{\"filtering\":{\"advancedFilters\":{\"settings\":{\"mode\":\"{{value}}\"}}}}}},{\"id\":\"SET_ALWAYS_VISIBLE_FILTERS\",\"intentExamples\":[\"always visible filter\",\"filtro fixo\",\"fixar filtro\",\"pin filter\"],\"scope\":\"GLOBAL\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"behavior\":{\"filtering\":{\"advancedFilters\":{\"settings\":{\"alwaysVisibleFields\":[\"{{target}}\"]}}}}}},{\"id\":\"ENABLE_FILTER_SAVING\",\"intentExamples\":[\"save filters\",\"salvar filtros\",\"filter tags\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"behavior\":{\"filtering\":{\"advancedFilters\":{\"settings\":{\"allowSaveTags\":true}}}}}},{\"id\":\"ENABLE_SORTING\",\"intentExamples\":[\"enable sorting\",\"ligar ordenacao\",\"ordenar\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"behavior\":{\"sorting\":{\"enabled\":true}}}},{\"id\":\"DISABLE_SORTING\",\"intentExamples\":[\"disable sorting\",\"desligar ordenacao\",\"no sort\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":false,\"patchTemplate\":{\"behavior\":{\"sorting\":{\"enabled\":false}}}},{\"id\":\"ENABLE_SELECTION\",\"intentExamples\":[\"enable selection\",\"ativar selecao\",\"selecionavel\",\"selectable\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"behavior\":{\"selection\":{\"enabled\":true}}}},{\"id\":\"DISABLE_SELECTION\",\"intentExamples\":[\"disable selection\",\"remover selecao\",\"not selectable\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":false,\"patchTemplate\":{\"behavior\":{\"selection\":{\"enabled\":false}}}},{\"id\":\"SET_SELECTION_SINGLE\",\"intentExamples\":[\"single selection\",\"selecao unica\",\"selecionar um\"],\"scope\":\"GLOBAL\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":\"single\",\"patchTemplate\":{\"behavior\":{\"selection\":{\"type\":\"single\"}}}},{\"id\":\"SET_SELECTION_MULTIPLE\",\"intentExamples\":[\"multiple selection\",\"selecao multipla\",\"selecionar varios\"],\"scope\":\"GLOBAL\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":\"multiple\",\"patchTemplate\":{\"behavior\":{\"selection\":{\"type\":\"multiple\"}}}},{\"id\":\"ENABLE_EXPORT\",\"intentExamples\":[\"enable export\",\"ativar exportacao\",\"botão exportar\",\"excel\",\"pdf\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"export\":{\"enabled\":true},\"toolbar\":{\"visible\":true}}},{\"id\":\"DISABLE_EXPORT\",\"intentExamples\":[\"disable export\",\"remover exportacao\",\"esconder exportar\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":false,\"patchTemplate\":{\"export\":{\"enabled\":false}}},{\"id\":\"SET_DENSITY\",\"intentExamples\":[\"set density\",\"mudar densidade\",\"compacto\",\"confortavel\",\"espacoso\"],\"scope\":\"GLOBAL\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"appearance\":{\"density\":\"{{value}}\"}}},{\"id\":\"SHOW_BORDERS\",\"intentExamples\":[\"show borders\",\"mostrar bordas\",\"com bordas\",\"grid lines\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"appearance\":{\"borders\":{\"showRowBorders\":true,\"showColumnBorders\":true}}}},{\"id\":\"HIDE_BORDERS\",\"intentExamples\":[\"hide borders\",\"ocultar bordas\",\"sem bordas\",\"clean look\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":false,\"patchTemplate\":{\"appearance\":{\"borders\":{\"showRowBorders\":false,\"showColumnBorders\":false,\"showOuterBorder\":false}}}},{\"id\":\"ENABLE_STRIPED_ROWS\",\"intentExamples\":[\"striped rows\",\"zebrado\",\"linhas alternadas\",\"zebra\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"appearance\":{\"colors\":{\"alternateRowBackground\":\"#f7f9fc\"}}}},{\"id\":\"DISABLE_STRIPED_ROWS\",\"intentExamples\":[\"disable striped\",\"remover zebrado\",\"fundo solido\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":false,\"patchTemplate\":{\"appearance\":{\"colors\":{}}}},{\"id\":\"SHOW_TOOLBAR\",\"intentExamples\":[\"show toolbar\",\"mostrar toolbar\",\"barra de ferramentas\",\"titulo da tabela\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"toolbar\":{\"visible\":true}}},{\"id\":\"HIDE_TOOLBAR\",\"intentExamples\":[\"hide toolbar\",\"esconder toolbar\",\"remover titulo\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":false,\"patchTemplate\":{\"toolbar\":{\"visible\":false}}},{\"id\":\"SET_TOOLBAR_POSITION\",\"intentExamples\":[\"toolbar position\",\"posicao da toolbar\",\"toolbar no topo\",\"toolbar embaixo\",\"toolbar em cima\",\"toolbar ambos\"],\"scope\":\"GLOBAL\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"toolbar\":{\"position\":\"{{value}}\"}}},{\"id\":\"SET_TOOLBAR_ACTIONS_POSITION\",\"intentExamples\":[\"acoes da toolbar\",\"barra de acoes\",\"acoes no topo\",\"acoes embaixo\",\"acoes em cima\",\"acoes em ambos\"],\"scope\":\"GLOBAL\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"toolbar\":{\"actionsPosition\":\"{{value}}\"}}},{\"id\":\"SET_TOOLBAR_ACTIONS_BG\",\"intentExamples\":[\"cor barra de acoes\",\"fundo da barra de acoes\",\"background acoes\",\"acoes com cor\"],\"scope\":\"GLOBAL\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"toolbar\":{\"actionsBackgroundColor\":\"{{value}}\"}}},{\"id\":\"ENABLE_VIRTUALIZATION\",\"intentExamples\":[\"enable virtualization\",\"virtualizar\",\"scroll infinito\",\"performance\",\"large dataset\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"behavior\":{\"virtualization\":{\"enabled\":true,\"itemHeight\":48}},\"performance\":{\"virtualization\":{\"enabled\":true,\"itemHeight\":48}}}}]}}",
30734
30804
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30738,7 +30808,7 @@
30738
30808
  "corpusVersion": "1.0.0"
30739
30809
  },
30740
30810
  {
30741
- "chunkIndex": 139,
30811
+ "chunkIndex": 140,
30742
30812
  "chunkKind": "context_pack",
30743
30813
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"componentContext.actionCatalog\",\"componentContext\":{\"actionCatalog\":[{\"id\":\"DISABLE_VIRTUALIZATION\",\"intentExamples\":[\"disable virtualization\",\"desativar virtualizacao\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":false,\"patchTemplate\":{\"behavior\":{\"virtualization\":{\"enabled\":false}},\"performance\":{\"virtualization\":{\"enabled\":false}}}},{\"id\":\"ENABLE_ROW_EXPANSION\",\"intentExamples\":[\"expand row\",\"expandir linha\",\"detalhe expansivel\",\"row details\",\"master detail\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"behavior\":{\"expansion\":{\"enabled\":true,\"contractVersion\":\"1.0.0\",\"interaction\":{\"trigger\":\"icon\",\"keyboard\":{\"profile\":\"disclosure\"}},\"limits\":{\"allowMultiple\":false,\"maxExpandedRows\":1,\"onOverflow\":\"collapseOldest\"},\"detail\":{\"schemaContract\":{\"kind\":\"praxis.detail.schema\",\"version\":\"1.0.0\"},\"source\":{\"mode\":\"inline\",\"inlineSchema\":{\"layout\":\"stack\",\"items\":[]}},\"rendering\":{\"strategy\":\"registry\",\"registryId\":\"praxis.detail.default\"}}}}}},{\"id\":\"SET_EXPANSION_SOURCE_MODE\",\"intentExamples\":[\"expansion source\",\"detail source\",\"schema source\",\"resource detail\",\"resourcePath detail\"],\"scope\":\"GLOBAL\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"behavior\":{\"expansion\":{\"detail\":{\"source\":{\"mode\":\"{{value}}\"}}}}}},{\"id\":\"SET_EXPANSION_RESOURCE\",\"intentExamples\":[\"detail resource id\",\"resource detail id\",\"ui composition detail\",\"schema detail resource\"],\"scope\":\"GLOBAL\",\"valueType\":\"OBJECT\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"behavior\":{\"expansion\":{\"detail\":{\"source\":{\"mode\":\"resource\",\"resource\":{\"kind\":\"{{params.kind}}\",\"id\":\"{{params.id}}\",\"version\":\"{{params.version}}\"}}}}}}},{\"id\":\"SET_COLUMN_BOLD\",\"intentExamples\":[\"column bold\",\"coluna negrito\",\"destacar coluna\",\"bold text\"],\"scope\":\"COLUMN\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"style\":\"font-weight: 600;\"}]}},{\"id\":\"SET_COLUMN_COLOR\",\"intentExamples\":[\"column color\",\"cor da coluna\",\"pintar coluna\",\"text color\"],\"scope\":\"COLUMN\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"style\":\"color: {{value}};\"}]}},{\"id\":\"SET_HEADER_UPPERCASE\",\"intentExamples\":[\"header uppercase\",\"cabecalho maiuscula\",\"titulo caixa alta\"],\"scope\":\"COLUMN\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"headerStyle\":\"text-transform: uppercase;\"}]}},{\"id\":\"SET_HEADER_BOLD\",\"intentExamples\":[\"header bold\",\"cabecalho negrito\",\"titulo forte\"],\"scope\":\"COLUMN\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"headerStyle\":\"font-weight: 600;\"}]}},{\"id\":\"SET_HEADER_BG_COLOR\",\"intentExamples\":[\"header background\",\"fundo cabecalho\",\"cor titulo\"],\"scope\":\"COLUMN\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"headerStyle\":\"background-color: {{value}};\"}]}},{\"id\":\"SET_HEADER_TEXT_COLOR\",\"intentExamples\":[\"header text color\",\"cor texto cabecalho\"],\"scope\":\"COLUMN\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"headerStyle\":\"color: {{value}};\"}]}},{\"id\":\"SET_TOOLBAR_ALIGNMENT\",\"intentExamples\":[\"toolbar align\",\"alinhar toolbar\",\"alinhamento barra\",\"space-between\",\"start\",\"end\"],\"scope\":\"GLOBAL\",\"valueType\":\"ENUM\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"toolbar\":{\"layout\":{\"alignment\":\"{{value}}\"}}}},{\"id\":\"ENABLE_GROUPING\",\"intentExamples\":[\"group by\",\"agrupar por\",\"agrupamento\"],\"scope\":\"GLOBAL\",\"valueType\":\"STRING\",\"operation\":\"update\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"behavior\":{\"grouping\":{\"enabled\":true,\"fields\":[\"{{target}}\"],\"expanded\":true}}}},{\"id\":\"CLEAR_GROUPING\",\"intentExamples\":[\"ungroup\",\"desagrupar\",\"remover agrupamento\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"behavior\":{\"grouping\":{\"enabled\":false,\"fields\":[]}}}},{\"id\":\"ENABLE_ROW_ACTIONS\",\"intentExamples\":[\"enable row actions\",\"acoes de linha\",\"botoes na linha\"],\"scope\":\"GLOBAL\",\"valueType\":\"BOOLEAN\",\"operation\":\"update\",\"requiresExistingTarget\":false,\"defaultValue\":true,\"patchTemplate\":{\"actions\":{\"row\":{\"enabled\":true,\"sticky\":\"end\"}}}},{\"id\":\"ADD_ROW_ACTION_ICON\",\"intentExamples\":[\"add row action\",\"botao de acao\",\"adicionar botao\"],\"scope\":\"GLOBAL\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"actions\":{\"row\":{\"actions\":[{\"id\":\"{{id}}\",\"icon\":\"{{icon}}\",\"label\":\"{{label}}\",\"color\":\"{{params.color}}\",\"overflow\":false}]}}}},{\"id\":\"ADD_ROW_ACTION_MENU\",\"intentExamples\":[\"add row menu\",\"acao no menu\",\"item de menu\"],\"scope\":\"GLOBAL\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"actions\":{\"row\":{\"actions\":[{\"id\":\"{{id}}\",\"icon\":\"{{icon}}\",\"label\":\"{{label}}\",\"overflow\":true}]}}}},{\"id\":\"ADD_ROW_STYLE_BG\",\"intentExamples\":[\"row background condition\",\"pintar linha se\",\"cor de fundo condicional\"],\"scope\":\"GLOBAL\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"rowConditionalStyles\":[{\"condition\":\"{{condition}}\",\"style\":{\"background-color\":\"{{value}}\"}}]}},{\"id\":\"ADD_ROW_STYLE_COLOR\",\"intentExamples\":[\"row text color condition\",\"cor texto linha se\"],\"scope\":\"GLOBAL\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"requiresExistingTarget\":false,\"patchTemplate\":{\"rowConditionalStyles\":[{\"condition\":\"{{condition}}\",\"style\":{\"color\":\"{{value}}\"}}]}},{\"id\":\"ADD_CONDITIONAL_RENDERER\",\"intentExamples\":[\"conditional renderer\",\"renderer condicional\",\"badge condicional\",\"chip condicional\",\"badge se\",\"chip se\",\"conditional badge\",\"conditional chip\"],\"scope\":\"COLUMN\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"requiresExistingTarget\":true,\"params\":[{\"name\":\"condition\",\"type\":\"STRING\",\"description\":\"Objeto JSON Logic canonico serializado, nunca DSL textual (ex: { \\\">\\\": [{ \\\"var\\\": \\\"recompensa\\\" }, 500000] })\"},{\"name\":\"renderer\",\"type\":\"STRING\",\"description\":\"Renderer completo com type e config (ex: { type: \\\"badge\\\", badge: { textField: \\\"recompensa\\\", color: \\\"#ff69b4\\\", variant: \\\"filled\\\" } })\"}],\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"conditionalRenderers\":[{\"condition\":\"{{params.condition}}\",\"renderer\":\"{{params.renderer}}\"}]}]}},{\"id\":\"ADD_CONDITIONAL_ICON\",\"intentExamples\":[\"conditional icon\",\"icone condicional\",\"icone se\"],\"scope\":\"COLUMN\",\"valueType\":\"OBJECT\",\"operation\":\"create\",\"requiresExistingTarget\":true,\"patchTemplate\":{\"columns\":[{\"field\":\"{{target}}\",\"conditionalRenderers\":[{\"condition\":\"{{condition}}\",\"renderer\":{\"type\":\"icon\",\"icon\":{\"name\":\"{{value}}\",\"color\":\"{{params.color}}\"}}}]}]}}]}}",
30744
30814
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30748,7 +30818,7 @@
30748
30818
  "corpusVersion": "1.0.0"
30749
30819
  },
30750
30820
  {
30751
- "chunkIndex": 140,
30821
+ "chunkIndex": 141,
30752
30822
  "chunkKind": "context_pack",
30753
30823
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"componentContext\",\"componentContext\":{\"fieldResolvers\":{\"columns[].field\":[\"field\",\"header\"],\"actions.row.actions[].id\":[\"id\",\"label\"],\"rowConditionalStyles[].condition\":[\"condition\"]},\"hints\":[\"Use semantic patches with columns[] and field, not JSON Patch or column indexes.\",\"Set columns[].type before choosing columns[].format presets to avoid mismatched formatting.\",\"Renderer config overrides format/valueMapping; avoid mixing unless required.\",\"Use ADD_CONDITIONAL_RENDERER with renderer.type + renderer.<type> config for conditional badges/chips.\",\"When the table already shows a status/boolean column as valueMapping or chip/badge and the user refines colors, variants, icons, animation or tooltip, preserve the target column and create conditionalRenderers per semantic value instead of repeating the same valueMapping.\",\"For boolean chips/badges, model true/false branches explicitly: condition {\\\"==\\\":[{\\\"var\\\":\\\"<field>\\\"},true]} for the positive label and {\\\"==\\\":[{\\\"var\\\":\\\"<field>\\\"},false]} for the negative label; use renderer.type \\\"chip\\\" or \\\"badge\\\" with text, color and variant.\",\"DOC: Widget purpose: data table with sorting, filtering, pagination, and actions.\",\"DOC: Host inputs: tableId (required), resourcePath (optional), config (optional).\",\"DOC: config defaults to createDefaultTableConfig(); columns may start empty.\",\"DOC: behavior.expansion.detail é schema-driven; altere source.mode (inline/resource/resourcePath), não use detail.type.\",\"DOC: Para detail.source.mode=resource, sempre informar resource.kind + resource.id + resource.version.\",\"DOC: Para detail.source.mode=resourcePath, sempre informar resourcePath.paramsMap + resourceAllowList[]; URL absoluta/scheme (http:, https:, data:, javascript:) é bloqueada e o runtime aplica fail-closed.\",\"DOC: collapseOn ativo no runtime P0A: sortChange, pageChange, filterChange e dataRefresh.\",\"DOC: When resourcePath is available, the table can load schema and data; ask the user to pick an API resource when missing.\",\"DOC: resourcePath must be the base resource path only (no /filter, /all, /{id}). CRUD endpoints are handled internally.\",\"DOC: columns[].computed.expression agora usa AST Json Logic canônico para derived values; não use fórmulas string.\",\"DOC: Para microVisualization em table-cell, recomende delta, bullet, radial, harveyBall ou stackedBar para leitura rápida. line, area e column são condicionais à largura horizontal; comparison aumenta a altura da linha; processFlow exige etapas reconhecíveis. Quando esses trade-offs não servirem à decisão, prefira detalhe expandido ou superfície relacionada.\",\"DOC: Expressões de microVisualization aceitam caminho da linha (row.sla) ou fórmula controlada com prefixo = (= row.sla), com a mesma semântica do editor visual.\",\"DOC: Operadores/funções canônicos úteis: +, -, *, /, %, min, max, cat, substr, round, ceil, floor, abs, coalesce, now, date, yearsSince, monthsSince, daysSince, len, toNumber e stringify.\",\"DOC: Examples: {\\\"yearsSince\\\":[{\\\"var\\\":\\\"dataNascimento\\\"}]} → idade; {\\\"yearsSince\\\":[{\\\"var\\\":\\\"dataAdmissao\\\"}]} → tempoEmpresa (anos); {\\\"monthsSince\\\":[{\\\"var\\\":\\\"dataAdmissao\\\"}]} → tempoEmpresa (meses); {\\\"daysSince\\\":[{\\\"var\\\":\\\"dataCadastro\\\"}]} → dias desde cadastro; {\\\"+\\\":[{\\\"coalesce\\\":[{\\\"var\\\":\\\"bonus\\\"},0]},{\\\"var\\\":\\\"salario\\\"}]} → total com fallback.\",\"### DATA ARCHETYPE TO VISUAL STRATEGY\",\"Apply these patterns based on the SEMANTIC NATURE of the column data:\",\"- STATUS/STATE (e.g., phase, stage, is_active, priority):\",\" -> Use \\\"badge\\\" or \\\"chip\\\" with conditional colors (success/warn/error/info).\",\" -> Use \\\"valueMapping\\\" to convert codes (1, \\\"A\\\") to labels (\\\"Active\\\", \\\"Approved\\\").\",\"- METRICS/KPI (e.g., progress, score, rating, completion):\",\" -> Use \\\"progress\\\" (bars), \\\"rating\\\" (stars), or \\\"percentage\\\" type.\",\" -> Align \\\"right\\\".\",\"- FINANCIAL (e.g., price, cost, balance, total):\",\" -> Use type \\\"currency\\\" and format \\\"BRL|symbol|2\\\" (or per locale).\",\" -> Align \\\"right\\\". Style: \\\"font-variant-numeric: tabular-nums\\\".\",\"- ENTITIES (e.g., user, product, thumb):\",\" -> Use \\\"avatar\\\" (for people/users) or \\\"image\\\" (for products/files).\",\" -> Combine with \\\"link\\\" or \\\"compose\\\" for title+subtitle layouts.\",\"- INTERACTIVE/NAV (e.g., details, website, download):\",\" -> Use \\\"button\\\" (actions), \\\"link\\\" (navigation) or \\\"icon\\\" (simple triggers).\",\"- BOOLEAN (e.g., has_tax, is_valid):\",\" -> Use \\\"toggle\\\" (if editable) or \\\"icon\\\" (check/close) or \\\"badge\\\" (Yes/No).\",\"- IDENTIFIERS (e.g., uuid, sku, order_id, cpf):\",\" -> Style: \\\"font-family: monospace\\\".\",\" -> CRITICAL: Do NOT use numeric formatting (like \\\"1.0-0\\\") for IDs. Treat them as strings.\",\" -> Consider adding a \\\"copy\\\" context action.\",\"- GROUPING (e.g., category, department):\",\" -> If the user asks to \\\"group by X\\\", use the ENABLE_GROUPING action with target=X.\",\"- TEMPORAL (e.g., created_at, deadline):\",\" -> Use type \\\"date\\\". Prefer \\\"short\\\" or \\\"shortDate\\\" for compact views.\",\" -> Use standard format (dd/MM/yyyy) for strict records.\"]}}",
30754
30824
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30758,7 +30828,7 @@
30758
30828
  "corpusVersion": "1.0.0"
30759
30829
  },
30760
30830
  {
30761
- "chunkIndex": 141,
30831
+ "chunkIndex": 142,
30762
30832
  "chunkKind": "context_pack",
30763
30833
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"aiConcepts\",\"aiConcepts\":{\"authoring-envelope\":{\"id\":\"authoring-envelope\",\"title\":\"Envelope de Autoria\",\"description\":\"Contrato primário de autoria usado por editor visual, editor JSON, playground e IA.\",\"rules\":[\"O JSON primário de autoria é TableAuthoringDocument com kind \\\"praxis.table.editor\\\".\",\"bindings.resourcePath e bindings.horizontalScroll não devem ser embutidos diretamente no TableConfig.\",\"meta.idField pertence ao TableConfig canônico e deve ser editado como metadado da configuração.\",\"TableConfig representa a projeção canônica de runtime, não o envelope completo de autoria.\",\"meta.schemaId e meta.serverHash são snapshots persistidos de reconciliação, não fonte primária do runtime.\"],\"examples\":[\"{ kind: \\\"praxis.table.editor\\\", version: 1, config: { meta: { idField: \\\"employeeId\\\" }, columns: [{ field: \\\"name\\\", header: \\\"Nome\\\" }] }, bindings: { resourcePath: \\\"employees\\\", horizontalScroll: \\\"auto\\\" } }\"],\"antiPatterns\":[\"{ columns: [{ field: \\\"name\\\", header: \\\"Nome\\\" }], __resourcePath__: \\\"employees\\\" }\",\"{ config: { columns: [] }, bindings: { idField: \\\"employeeId\\\" } }\"]},\"meta-identity\":{\"id\":\"meta-identity\",\"title\":\"Identidade e Metadados\",\"description\":\"Regras para meta.* persistível (nome, descrição, tags, schemaId).\",\"rules\":[\"meta.idField deve apontar para o campo único das linhas quando configurado.\",\"Alterar meta.idField exige confirmação pois impacta seleção e ações por linha.\",\"meta.tags deve ser uma lista de strings curtas e sem espaços extras.\",\"meta.schemaId é referência de origem; use apenas valores conhecidos.\"],\"examples\":[\"meta.name = \\\"Funcionários ativos\\\"\",\"meta.description = \\\"Visão de colaboradores ativos com filtros por status.\\\"\",\"meta.tags = [\\\"financeiro\\\", \\\"demo\\\"]\",\"meta.idField = \\\"employeeId\\\"\"],\"antiPatterns\":[\"meta.idField = \\\"id\\\" (sem validar se existe no dataset)\",\"meta.tags = \\\"financeiro\\\"\"]},\"columns-core\":{\"id\":\"columns-core\",\"title\":\"Colunas Básicas\",\"description\":\"Definições essenciais de colunas (field, header, visible, order, width).\",\"rules\":[\"columns[].field deve ser único e existir no dataset.\",\"Não reutilize o mesmo field em duas colunas.\",\"Use order para posicionar colunas; menor valor = mais à esquerda.\",\"width aceita valores CSS (ex.: \\\"120px\\\", \\\"10%\\\", \\\"auto\\\").\"],\"examples\":[\"{ field: \\\"status\\\", header: \\\"Status\\\", visible: true, order: 2 }\",\"{ field: \\\"createdAt\\\", header: \\\"Criado em\\\", width: \\\"140px\\\" }\"],\"antiPatterns\":[\"{ field: \\\"status\\\", header: \\\"Status\\\" } e outra coluna com field \\\"status\\\"\",\"{ field: \\\"price\\\", width: 120 }\"]},\"columns-behavior\":{\"id\":\"columns-behavior\",\"title\":\"Comportamento de Coluna\",\"description\":\"Configura sortable, filterable, resizable, align e sticky.\",\"rules\":[\"sortable e filterable devem refletir o comportamento real do backend.\",\"resizable depende de behavior.resizing.enabled quando disponível.\",\"align deve ser left/center/right.\",\"sticky aceita true, \\\"start\\\" ou \\\"end\\\".\"],\"examples\":[\"{ field: \\\"amount\\\", sortable: true, filterable: true, align: \\\"right\\\" }\",\"{ field: \\\"id\\\", sticky: \\\"start\\\" }\"],\"antiPatterns\":[\"{ align: \\\"middle\\\" }\",\"{ sticky: \\\"left\\\" }\"]},\"columns-styles\":{\"id\":\"columns-styles\",\"title\":\"Estilos de Coluna\",\"description\":\"CSS inline e classes para células e cabeçalho.\",\"rules\":[\"cssClass/headerCssClass devem ser nomes de classe válidos.\",\"style/headerStyle são CSS inline curtos e seguros.\",\"Evite !important e regras muito longas.\"],\"examples\":[\"{ field: \\\"status\\\", cssClass: \\\"col-status\\\" }\",\"{ field: \\\"name\\\", headerStyle: \\\"text-transform: uppercase;\\\" }\"],\"antiPatterns\":[\"{ headerCssClass: \\\"header title\\\" }\",\"{ style: \\\"background: url(javascript:...)\\\" }\"]},\"columns-types\":{\"id\":\"columns-types\",\"title\":\"Tipos e Formatos de Coluna\",\"description\":\"Regras de type/format por tipo de dado.\",\"rules\":[\"type deve ser um dos tipos suportados (string/number/date/boolean/currency/percentage/custom).\",\"format deve ser compatível com type e presets do sistema.\",\"Para currency, use formato \\\"BRL|symbol|2\\\" ou semelhante.\",\"Para date, use DatePipe ou presets existentes.\"],\"examples\":[\"{ field: \\\"createdAt\\\", type: \\\"date\\\", format: \\\"dd/MM/yyyy\\\" }\",\"{ field: \\\"amount\\\", type: \\\"currency\\\", format: \\\"BRL|symbol|2\\\" }\"],\"antiPatterns\":[\"{ type: \\\"money\\\" }\",\"{ format: \\\"money()\\\" }\"]},\"columns-formatting\":{\"id\":\"columns-formatting\",\"title\":\"Mapeamento e Formatação Avançada\",\"description\":\"valueMapping, format e estilos adicionais.\",\"rules\":[\"valueMapping deve usar chaves de string para mapear valores crus.\",\"Use format presets quando disponíveis; evite formatos inventados.\"],\"syntax\":\"format: \\\"BRL|symbol|2\\\"\",\"examples\":[\"{ field: \\\"active\\\", valueMapping: { \\\"1\\\": \\\"Ativo\\\", \\\"0\\\": \\\"Inativo\\\" } }\"],\"antiPatterns\":[\"{ valueMapping: { 1: \\\"Ativo\\\" } }\"]},\"columns-internals\":{\"id\":\"columns-internals\",\"title\":\"Campos Internos de Coluna\",\"description\":\"Campos reservados usados por fluxos internos e importação.\",\"rules\":[\"Evite setar _styleRulesState, _generatedValueGetter, _originalApiType e _isApiField manualmente.\",\"Use apenas em fluxos de migração ou importação controlada.\"],\"examples\":[\"(_isApiField true só quando coluna veio da API)\"],\"antiPatterns\":[\"{ _generatedValueGetter: \\\"row => row.value\\\" }\"]},\"computed-logic\":{\"id\":\"computed-logic\",\"title\":\"Lógica de Colunas Calculadas\",\"description\":\"Regras matemáticas e de sintaxe para colunas computed.\",\"rules\":[\"Use AST Json Logic canônico em columns[].computed.expression.\",\"Acesse campos da linha com {\\\"var\\\":\\\"field\\\"} e dependências anteriores com {\\\"var\\\":\\\"computed.total\\\"}.\",\"Operadores/funções disponíveis incluem +, -, *, /, %, min, max, cat, substr, round, floor, ceil, abs, coalesce, now, date, yearsSince, monthsSince, daysSince, len, toNumber e stringify.\",\"NÃO use prefixos como \\\"row.\\\", \\\"this.\\\" ou \\\"item.\\\", nem strings DSL.\",\"O resultado deve ser compatível com o outputType (number, currency, percentage, string).\"],\"syntax\":\"{\\\"*\\\":[{\\\"var\\\":\\\"fieldA\\\"},{\\\"var\\\":\\\"fieldB\\\"}]}\",\"examples\":[\"{\\\"*\\\":[{\\\"var\\\":\\\"quantity\\\"},{\\\"var\\\":\\\"unitPrice\\\"}]}\",\"{\\\"/\\\":[{\\\"-\\\":[{\\\"var\\\":\\\"total\\\"},{\\\"var\\\":\\\"cost\\\"}]},{\\\"var\\\":\\\"total\\\"}]}\",\"{\\\"min\\\":[{\\\"var\\\":\\\"stock\\\"},100]}\",\"{\\\"abs\\\":[{\\\"var\\\":\\\"balance\\\"}]}\"],\"antiPatterns\":[\"\\\"quantity * price\\\"\",\"row.quantity * row.price\",\"Math.max(price, 0)\",\"return quantity * price;\"]},\"renderers-core\":{\"id\":\"renderers-core\",\"title\":\"Renderers de Coluna\",\"description\":\"Regras para columns[].renderer.* e tipos suportados.\",\"rules\":[\"Defina columns[].renderer.type antes de configurar detalhes.\",\"Para renderers interativos (button, toggle, menu), configure action.\",\"renderer.html deve usar template com placeholders [[field]].\",\"renderer.link deve preferir hrefField/textField quando o valor vem do dataset.\"],\"examples\":[\"{ renderer: { type: \\\"badge\\\", badge: { textField: \\\"status\\\", color: \\\"success\\\" } } }\",\"{ renderer: { type: \\\"button\\\", button: { label: \\\"Editar\\\", action: { id: \\\"edit-row\\\" } } } }\"],\"antiPatterns\":[\"{ renderer: { badge: { text: \\\"Ativo\\\" } } }\",\"{ renderer: { type: \\\"button\\\", button: { label: \\\"Editar\\\" } } }\"]},\"renderer-icon\":{\"id\":\"renderer-icon\",\"title\":\"Renderer Icon\",\"description\":\"Configuração de renderer.icon.*\",\"rules\":[\"Use icon.name para ícone fixo ou icon.nameField para dinâmico.\",\"icon.size é em px.\",\"ariaLabel deve ser descritivo.\"],\"examples\":[\"{ renderer: { type: \\\"icon\\\", icon: { name: \\\"check_circle\\\", color: \\\"success\\\", size: 18 } } }\"],\"antiPatterns\":[\"{ icon: { name: \\\"check\\\" } } sem renderer.type\"]}}}",
30764
30834
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30768,7 +30838,7 @@
30768
30838
  "corpusVersion": "1.0.0"
30769
30839
  },
30770
30840
  {
30771
- "chunkIndex": 142,
30841
+ "chunkIndex": 143,
30772
30842
  "chunkKind": "context_pack",
30773
30843
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"aiConcepts\",\"aiConcepts\":{\"renderer-image\":{\"id\":\"renderer-image\",\"title\":\"Renderer Image\",\"description\":\"Configuração de renderer.image.*\",\"rules\":[\"Use srcField quando a URL vem do dataset.\",\"Defina alt/altField para acessibilidade.\",\"width/height são em px.\",\"shape deve ser square/rounded/circle.\"],\"examples\":[\"{ renderer: { type: \\\"image\\\", image: { srcField: \\\"avatarUrl\\\", shape: \\\"circle\\\", width: 32, height: 32 } } }\"],\"antiPatterns\":[\"{ renderer: { type: \\\"image\\\", image: { src: \\\"\\\" } } }\"]},\"renderer-badge\":{\"id\":\"renderer-badge\",\"title\":\"Renderer Badge\",\"description\":\"Configuração de renderer.badge.*\",\"rules\":[\"Badge requer text ou textField.\",\"variant deve ser filled/outlined/soft/plain.\"],\"examples\":[\"{ renderer: { type: \\\"badge\\\", badge: { textField: \\\"status\\\", variant: \\\"filled\\\" } } }\"],\"antiPatterns\":[\"{ badge: {} }\"]},\"renderer-link\":{\"id\":\"renderer-link\",\"title\":\"Renderer Link\",\"description\":\"Configuração de renderer.link.*\",\"rules\":[\"Use hrefField quando URL vem do dataset.\",\"target deve ser _blank/_self/_parent/_top.\",\"rel deve ser usado com target _blank (ex.: noopener).\"],\"examples\":[\"{ renderer: { type: \\\"link\\\", link: { textField: \\\"name\\\", hrefField: \\\"profileUrl\\\", target: \\\"_blank\\\", rel: \\\"noopener\\\" } } }\"],\"antiPatterns\":[\"{ link: { href: \\\"javascript:alert(1)\\\" } }\"]},\"renderer-button\":{\"id\":\"renderer-button\",\"title\":\"Renderer Button\",\"description\":\"Configuração de renderer.button.*\",\"rules\":[\"button.action.id é obrigatório para ações interativas.\",\"disabledCondition usa expressao condicional canonica em JSON Logic.\",\"variant deve ser filled/outlined/text.\"],\"examples\":[\"{ renderer: { type: \\\"button\\\", button: { label: \\\"Editar\\\", action: { id: \\\"edit-row\\\" } } } }\"],\"antiPatterns\":[\"{ button: { label: \\\"Editar\\\" } }\"]},\"renderer-chip\":{\"id\":\"renderer-chip\",\"title\":\"Renderer Chip\",\"description\":\"Configuração de renderer.chip.*\",\"rules\":[\"Chip requer text ou textField.\",\"variant deve ser filled/outlined/soft/plain.\"],\"examples\":[\"{ renderer: { type: \\\"chip\\\", chip: { text: \\\"Ativo\\\", variant: \\\"filled\\\" } } }\"],\"antiPatterns\":[\"{ chip: { variant: \\\"ghost\\\" } }\"]},\"renderer-progress\":{\"id\":\"renderer-progress\",\"title\":\"Renderer Progress\",\"description\":\"Configuração de renderer.progress.*\",\"rules\":[\"valueExpr deve retornar 0-100.\",\"showLabel controla exibição do valor.\"],\"examples\":[\"{ renderer: { type: \\\"progress\\\", progress: { valueExpr: \\\"progress\\\", showLabel: true } } }\"],\"antiPatterns\":[\"{ progress: { valueExpr: \\\"progress/100\\\" } } sem garantir 0-100\"]},\"renderer-avatar\":{\"id\":\"renderer-avatar\",\"title\":\"Renderer Avatar\",\"description\":\"Configuração de renderer.avatar.*\",\"rules\":[\"Use srcField para imagem dinâmica.\",\"initialsField deriva iniciais automaticamente a partir de um campo textual.\",\"initialsExpr é fallback quando não há imagem e deve retornar as iniciais prontas; não use JS arbitrário para split/map/trim.\",\"Use backgroundColor e textColor para colorir o círculo do avatar; para variar por linha, aplique esses campos em conditionalRenderers.\",\"shape deve ser circle/square/rounded.\"],\"examples\":[\"{ renderer: { type: \\\"avatar\\\", avatar: { srcField: \\\"avatarUrl\\\", initialsField: \\\"name\\\" } } }\",\"{ renderer: { type: \\\"avatar\\\", avatar: { initialsExpr: \\\"initials\\\" } } }\",\"{ conditionalRenderers: [{ condition: { \\\">\\\": [{ \\\"var\\\": \\\"salary\\\" }, 30000] }, renderer: { type: \\\"avatar\\\", avatar: { initialsField: \\\"name\\\", backgroundColor: \\\"#D32F2F\\\", textColor: \\\"#FFFFFF\\\" } } }] }\"],\"antiPatterns\":[\"{ avatar: { initialsExpr: \\\"name\\\" } }\",\"{ avatar: { shape: \\\"round\\\" } }\"]},\"renderer-toggle\":{\"id\":\"renderer-toggle\",\"title\":\"Renderer Toggle\",\"description\":\"Configuração de renderer.toggle.*\",\"rules\":[\"toggle.action.id é obrigatório para persistir mudança.\",\"disabledCondition usa expressao condicional canonica em JSON Logic.\"],\"examples\":[\"{ renderer: { type: \\\"toggle\\\", toggle: { stateExpr: \\\"active\\\", action: { id: \\\"toggle-active\\\" } } } }\"],\"antiPatterns\":[\"{ toggle: { stateExpr: \\\"active\\\" } } sem action\"]},\"renderer-menu\":{\"id\":\"renderer-menu\",\"title\":\"Renderer Menu\",\"description\":\"Configuração de renderer.menu.*\",\"rules\":[\"itemsExpr deve produzir lista de ações válidas.\",\"ariaLabel deve descrever o menu.\"],\"examples\":[\"{ renderer: { type: \\\"menu\\\", menu: { itemsExpr: \\\"row.menuItems\\\", ariaLabel: \\\"Ações\\\" } } }\"],\"antiPatterns\":[\"{ menu: { itemsExpr: \\\"row => row.items\\\" } }\"]},\"renderer-rating\":{\"id\":\"renderer-rating\",\"title\":\"Renderer Rating\",\"description\":\"Configuração de renderer.rating.*\",\"rules\":[\"valueExpr deve retornar numero dentro do max.\",\"O renderer é somente leitura por padrão; não use readonly no schema funcional.\"],\"examples\":[\"{ renderer: { type: \\\"rating\\\", rating: { valueExpr: \\\"score\\\", max: 5, ariaLabel: \\\"Nota {value} de {max}\\\" } } }\"],\"antiPatterns\":[\"{ rating: { max: 0 } }\"]},\"renderer-html\":{\"id\":\"renderer-html\",\"title\":\"Renderer HTML\",\"description\":\"Configuração de renderer.html.*\",\"rules\":[\"template deve usar placeholders [[field]].\",\"sanitize deve ser strict ou basic, preferindo strict.\"],\"examples\":[\"{ renderer: { type: \\\"html\\\", html: { template: \\\"<strong>[[name]]</strong>\\\", sanitize: \\\"strict\\\" } } }\"],\"antiPatterns\":[\"{ html: { template: \\\"<script>alert(1)</script>\\\" } }\"]},\"renderer-compose\":{\"id\":\"renderer-compose\",\"title\":\"Renderer Compose\",\"description\":\"Composição de múltiplos renderers na mesma célula.\",\"rules\":[\"columns[].renderer.compose.items deve ser uma lista de renderers válidos.\",\"Defina layout (direction, gap, align) para evitar overflow.\",\"Evite mixar elementos interativos sem espaço suficiente.\"],\"examples\":[\"{ renderer: { type: \\\"compose\\\", compose: { items: [{ type: \\\"icon\\\", icon: { name: \\\"check\\\" } }, { type: \\\"text\\\", textField: \\\"status\\\" }], layout: { direction: \\\"row\\\", gap: 8 } } } }\"],\"antiPatterns\":[\"{ renderer: { type: \\\"compose\\\", compose: { items: [] } } }\"]},\"conditional-json-logic\":{\"id\":\"conditional-json-logic\",\"title\":\"Expressoes Condicionais\",\"description\":\"Sintaxe de condições para conditionalRenderers e filtros de estilo.\",\"rules\":[\"Use objetos JSON Logic com referencias var (ex: { \\\"===\\\": [{ \\\"var\\\": \\\"status\\\" }, \\\"Ativo\\\"] }).\",\"Operadores suportados: ===, !==, >, <, >=, <=, and, or, !.\",\"Funcoes comuns: { \\\"contains\\\": [{ \\\"var\\\": \\\"name\\\" }, \\\"Silva\\\"] }.\",\"Pode referenciar computed.<field> quando existir.\",\"NAO use DSL textual, JavaScript (row., this., Math., ternario, eval) nem strings de expressao.\"],\"syntax\":\"{\\\"and\\\":[{\\\"contains\\\":[{\\\"var\\\":\\\"status\\\"},\\\"Ativo\\\"]},{\\\">=\\\":[{\\\"var\\\":\\\"price\\\"},100]}]}\",\"examples\":[\"{\\\"===\\\":[{\\\"var\\\":\\\"status\\\"},\\\"Ativo\\\"]}\",\"{\\\"contains\\\":[{\\\"var\\\":\\\"name\\\"},\\\"Silva\\\"]}\",\"{\\\">\\\":[{\\\"var\\\":\\\"computed.total\\\"},1000]}\"],\"antiPatterns\":[\"row.status == \\\"Ativo\\\"\",\"Math.max(price, 0) > 10\",\"status ? \\\"A\\\" : \\\"B\\\"\"]},\"conditional-renderers\":{\"id\":\"conditional-renderers\",\"title\":\"Renderers Condicionais\",\"description\":\"Configura conditionalRenderers por coluna.\",\"rules\":[\"condition usa expressao condicional canonica em JSON Logic.\",\"renderer interno segue as mesmas regras dos renderers padrão.\",\"Para animar apenas uma célula/coluna quando a condição for verdadeira, use columns[].conditionalRenderers[].animation.\",\"enabled controla ativacao da regra.\"],\"examples\":[\"{ conditionalRenderers: [{ condition: { \\\"===\\\": [{ \\\"var\\\": \\\"status\\\" }, \\\"Ativo\\\"] }, renderer: { type: \\\"badge\\\", badge: { text: \\\"Ativo\\\" } } }] }\",\"{ conditionalRenderers: [{ condition: { \\\">\\\": [{ \\\"var\\\": \\\"salario\\\" }, 30000] }, animation: { preset: \\\"pulse-soft\\\", trigger: \\\"onAppear\\\", intensity: \\\"subtle\\\", repeat: \\\"once\\\" } }] }\"],\"antiPatterns\":[\"{ conditionalRenderers: [{ condition: \\\"row.status == \\\"Ativo\\\"\\\" }] }\",\"{ conditionalStyles: [{ style: { animation: \\\"pulse 1s infinite\\\" } }] }\"]}}}",
30774
30844
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30778,7 +30848,7 @@
30778
30848
  "corpusVersion": "1.0.0"
30779
30849
  },
30780
30850
  {
30781
- "chunkIndex": 143,
30851
+ "chunkIndex": 144,
30782
30852
  "chunkKind": "context_pack",
30783
30853
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"aiConcepts\",\"aiConcepts\":{\"conditional-animations\":{\"id\":\"conditional-animations\",\"title\":\"Animações Condicionais\",\"description\":\"Animações condicionais de linha e célula na tabela.\",\"rules\":[\"Use rowConditionalRenderers[].animation para animar a linha inteira.\",\"Use columns[].conditionalRenderers[].animation para animar somente o conteúdo de uma célula/coluna.\",\"Prefira preset semântico antes de type bruto: info-soft, success-confirm, warning-attention, critical-alert, audit-review, sync-pending, pulse-soft, fade-soft, sla-warning, sla-breach, risk-elevated, risk-critical, audit-warning ou sync-warning.\",\"condition sempre usa JSON Logic; não use JS, row.status ou strings de expressão.\",\"appearance.animations.enabled=false desativa animações; appearance.animations.specific.row/cell=false desativa o escopo correspondente.\",\"onConditionEnter, onConditionExit e onDataRefresh são aceitos no contrato de autoria e normalizados para gatilho de mudança no runtime.\"],\"examples\":[\"{ rowConditionalRenderers: [{ id: \\\"salary-high-pulse\\\", condition: { \\\">\\\": [{ \\\"var\\\": \\\"salario\\\" }, 30000] }, animation: { preset: \\\"pulse-soft\\\", trigger: \\\"onAppear\\\", intensity: \\\"subtle\\\", repeat: \\\"once\\\", durationMs: 1200 }, enabled: true }] }\",\"{ columns: [{ field: \\\"status\\\", conditionalRenderers: [{ id: \\\"status-critical-alert\\\", condition: { \\\"===\\\": [{ \\\"var\\\": \\\"status\\\" }, \\\"Critico\\\"] }, animation: { preset: \\\"critical-alert\\\", trigger: \\\"onChange\\\", repeat: \\\"loop\\\", intensity: \\\"strong\\\" }, enabled: true }] }] }\"],\"antiPatterns\":[\"{ rowConditionalStyles: [{ style: { animation: \\\"pulse 1s infinite\\\" } }] }\",\"{ rowConditionalRenderers: [{ condition: \\\"row.salario > 30000\\\", animation: { name: \\\"pulse\\\" } }] }\",\"{ columns: [{ conditionalStyles: [{ condition: { \\\">\\\": [{ \\\"var\\\": \\\"salario\\\" }, 30000] }, style: { animationName: \\\"pulse\\\" } }] }] }\"]},\"conditional-styles\":{\"id\":\"conditional-styles\",\"title\":\"Estilos Condicionais por Coluna\",\"description\":\"Configura conditionalStyles.*\",\"rules\":[\"condition usa expressao condicional canonica em JSON Logic.\",\"cssClass define classe e style aplica inline.\",\"description deve ser texto curto.\"],\"examples\":[\"{ conditionalStyles: [{ condition: { \\\"<\\\": [{ \\\"var\\\": \\\"amount\\\" }, 0] }, cssClass: \\\"col-negative\\\" }] }\"],\"antiPatterns\":[\"{ conditionalStyles: [{ condition: \\\"row.amount < 0\\\" }] }\"]},\"row-conditional-styles\":{\"id\":\"row-conditional-styles\",\"title\":\"Estilos Condicionais de Linha\",\"description\":\"Configura rowConditionalStyles.*\",\"rules\":[\"condition usa expressao condicional canonica em JSON Logic.\",\"cssClass define classe e style aplica inline.\",\"description deve ser texto curto.\"],\"examples\":[\"{ rowConditionalStyles: [{ condition: { \\\"<\\\": [{ \\\"var\\\": \\\"amount\\\" }, 0] }, cssClass: \\\"row-negative\\\" }] }\"],\"antiPatterns\":[\"{ rowConditionalStyles: [{ condition: \\\"row.amount < 0\\\" }] }\"]},\"behavior-pagination\":{\"id\":\"behavior-pagination\",\"title\":\"Paginação (Behavior)\",\"description\":\"Configuração de behavior.pagination.*\",\"rules\":[\"strategy deve ser client ou server.\",\"pageSizeOptions deve incluir pageSize.\",\"advanced.maxPageSize limita pageSize customizado.\"],\"examples\":[\"{ behavior: { pagination: { enabled: true, strategy: \\\"server\\\", pageSize: 25, pageSizeOptions: [10, 25, 50] } } }\"],\"antiPatterns\":[\"{ behavior: { pagination: { strategy: \\\"server\\\" } } } sem totalItems\"]},\"behavior-sorting\":{\"id\":\"behavior-sorting\",\"title\":\"Ordenação (Behavior)\",\"description\":\"Configuração de behavior.sorting.*\",\"rules\":[\"defaultSort pode ser objeto unico ou lista.\",\"multiSort true permite multiplos campos.\",\"allowClearSort habilita terceiro clique.\"],\"examples\":[\"{ behavior: { sorting: { enabled: true, strategy: \\\"client\\\", defaultSort: { column: \\\"createdAt\\\", direction: \\\"desc\\\" } } } }\"],\"antiPatterns\":[\"{ behavior: { sorting: { defaultSort: { column: \\\"\\\", direction: \\\"asc\\\" } } } }\"]},\"behavior-filtering\":{\"id\":\"behavior-filtering\",\"title\":\"Filtros (Behavior)\",\"description\":\"Configuração de behavior.filtering.*\",\"rules\":[\"columnFilters.position deve ser header/subheader/sidebar.\",\"advancedFilters.settings controla o painel avançado.\",\"strategy deve refletir suporte do backend.\"],\"examples\":[\"{ behavior: { filtering: { enabled: true, columnFilters: { enabled: true, position: \\\"header\\\" } } } }\"],\"antiPatterns\":[\"{ behavior: { filtering: { enabled: true } } } sem strategy\"]},\"behavior-selection\":{\"id\":\"behavior-selection\",\"title\":\"Selecao (Behavior)\",\"description\":\"Configuração de behavior.selection.*\",\"rules\":[\"type define single/multiple e mode define checkbox/row/both.\",\"persistSelection mantem selecao entre paginas.\",\"visual.highlightSelected define destaque da linha.\"],\"examples\":[\"{ behavior: { selection: { enabled: true, type: \\\"multiple\\\", mode: \\\"checkbox\\\", persistSelection: true } } }\"],\"antiPatterns\":[\"{ behavior: { selection: { type: \\\"multi\\\" } } }\"]},\"behavior-interaction\":{\"id\":\"behavior-interaction\",\"title\":\"Interacao (Behavior)\",\"description\":\"Configuração de behavior.interaction.*\",\"rules\":[\"rowClick/rowDoubleClick.action devem ser ids conhecidos.\",\"customAction deve referenciar handler registrado.\",\"keyboard.customShortcuts mapeia teclas para ações.\"],\"examples\":[\"{ behavior: { interaction: { rowClick: { enabled: true, action: \\\"view\\\" } } } }\"],\"antiPatterns\":[\"{ behavior: { interaction: { rowClick: { customAction: \\\"row => fn(row)\\\" } } } }\"]},\"behavior-loading\":{\"id\":\"behavior-loading\",\"title\":\"Loading (Behavior)\",\"description\":\"Configuração de behavior.loading.*\",\"rules\":[\"type deve ser spinner/skeleton/progress/custom.\",\"delay evita flicker.\",\"skeleton.rows deve ser numero positivo.\"],\"examples\":[\"{ behavior: { loading: { type: \\\"skeleton\\\", position: \\\"replace\\\", delay: 200, skeleton: { rows: 6, animated: true } } } }\"],\"antiPatterns\":[\"{ behavior: { loading: { delay: 0 } } }\"]},\"behavior-empty-state\":{\"id\":\"behavior-empty-state\",\"title\":\"Estado Vazio (Behavior)\",\"description\":\"Configuração de behavior.emptyState.*\",\"rules\":[\"message deve ser texto curto.\",\"actions[].action deve ser string de acao.\",\"actions deve representar uma intencao contextual distinta; CREATE capability-governado permanece na toolbar e nao deve ser duplicado.\",\"contexts permite variações por cenário.\"],\"examples\":[\"{ behavior: { emptyState: { message: \\\"Sem dados\\\", actions: [{ label: \\\"Importar arquivo\\\", action: \\\"import\\\", primary: true }] } } }\"],\"antiPatterns\":[\"{ behavior: { emptyState: { message: \\\"\\\" } } }\",\"{ toolbar: { actions: [{ action: \\\"create\\\" }] }, behavior: { emptyState: { actions: [{ action: \\\"create\\\" }] } } }\"]},\"behavior-virtualization\":{\"id\":\"behavior-virtualization\",\"title\":\"Virtualizacao (Behavior)\",\"description\":\"Configuração de behavior.virtualization.*\",\"rules\":[\"itemHeight deve ser informado quando enabled.\",\"strategy deve ser fixed ou dynamic.\"],\"examples\":[\"{ behavior: { virtualization: { enabled: true, itemHeight: 48, strategy: \\\"fixed\\\" } } }\"],\"antiPatterns\":[\"{ behavior: { virtualization: { enabled: true } } }\"]},\"behavior-resizing\":{\"id\":\"behavior-resizing\",\"title\":\"Resize (Behavior)\",\"description\":\"Configuração de behavior.resizing.*\",\"rules\":[\"minColumnWidth deve ser positivo.\",\"maxColumnWidth deve ser maior que minColumnWidth quando informado.\",\"persistWidths salva ajustes do usuario.\"],\"examples\":[\"{ behavior: { resizing: { enabled: true, minColumnWidth: 80, maxColumnWidth: 520, autoFit: false, persistWidths: true } } }\"],\"antiPatterns\":[\"{ behavior: { resizing: { minColumnWidth: 0 } } }\"]},\"behavior-dragging\":{\"id\":\"behavior-dragging\",\"title\":\"Drag & Drop (Behavior)\",\"description\":\"Configuração de behavior.dragging.*\",\"rules\":[\"columns/rows controla reordenacao.\",\"columnDropZones deve listar zonas validas.\"],\"examples\":[\"{ behavior: { dragging: { columns: true, rows: false, showDragIndicator: true } } }\"],\"antiPatterns\":[\"{ behavior: { dragging: { columns: \\\"yes\\\" } } }\"]}}}",
30784
30854
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30788,7 +30858,7 @@
30788
30858
  "corpusVersion": "1.0.0"
30789
30859
  },
30790
30860
  {
30791
- "chunkIndex": 144,
30861
+ "chunkIndex": 145,
30792
30862
  "chunkKind": "context_pack",
30793
30863
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"aiConcepts\",\"aiConcepts\":{\"behavior-expansion\":{\"id\":\"behavior-expansion\",\"title\":\"Expansion (Behavior)\",\"description\":\"Configuração de behavior.expansion.* para detail rows schema-driven.\",\"rules\":[\"detail é sempre schema-driven; varie source.mode (inline/resource/resourcePath), não detail.type.\",\"detail.schemaContract.kind/version deve ser informado para validação e migração.\",\"Em virtualização, prefira detail.height.mode=fixed com virtualization.policy=fixed-height-only.\",\"Use eventExposureDefault hashed/redacted por padrão em ambiente corporativo.\"],\"examples\":[\"{ behavior: { expansion: { enabled: true, state: { mode: \\\"controlled\\\" }, detail: { schemaContract: { kind: \\\"praxis.detail.schema\\\", version: \\\"1.0.0\\\" }, source: { mode: \\\"resource\\\", resource: { kind: \\\"ui-composition\\\", id: \\\"customer-detail-v2\\\", version: \\\"2.1.0\\\" } }, rendering: { strategy: \\\"registry\\\", registryId: \\\"praxis.detail.default\\\" } } } } }\"],\"antiPatterns\":[\"{ behavior: { expansion: { detail: { type: \\\"template\\\", templateId: \\\"legacy-id\\\" } } } }\"]},\"appearance\":{\"id\":\"appearance\",\"title\":\"Aparência e Layout\",\"description\":\"Densidade, bordas, cores, tipografia, espaçamento e responsividade.\",\"rules\":[\"appearance.density deve usar valores compact/comfortable/spacious.\",\"Cores devem usar tokens do tema ou hex válido.\",\"responsive.mobile.cardMode deve ser combinado com colunas prioritárias.\",\"Se animations.enabled for true, respeite reduceMotion.\",\"appearance.animations.specific.row e appearance.animations.specific.cell controlam animações condicionais por escopo.\"],\"examples\":[\"{ appearance: { density: \\\"compact\\\", borders: { showRowBorders: true } } }\",\"{ appearance: { typography: { fontSize: \\\"14px\\\" }, spacing: { cellPadding: \\\"8px 16px\\\" } } }\"],\"antiPatterns\":[\"{ appearance: { density: \\\"tiny\\\" } }\"]},\"appearance-details\":{\"id\":\"appearance-details\",\"title\":\"Detalhes de Aparência\",\"description\":\"Bordas, cores, tipografia, spacing, elevation e responsive autoAdjust.\",\"rules\":[\"borders.style deve ser solid/dashed/dotted quando aplicável.\",\"typography.headerFontWeight deve ser string numerica ou token.\",\"responsive.autoAdjust controla ajustes automáticos em telas menores.\"],\"examples\":[\"{ appearance: { borders: { showOuterBorder: true, style: \\\"solid\\\" }, colors: { alternateRowBackground: \\\"#f7f9fc\\\" } } }\",\"{ appearance: { responsive: { mobile: { cardMode: true, priorityColumns: [\\\"name\\\", \\\"status\\\"] } } } }\"],\"antiPatterns\":[\"{ appearance: { borders: { style: \\\"double\\\" } } }\"]},\"toolbar\":{\"id\":\"toolbar\",\"title\":\"Toolbar\",\"description\":\"Configurações gerais da toolbar.\",\"rules\":[\"toolbar.visible controla exibição global da barra.\",\"Use toolbar.layout.alignment para ajustar distribuição.\",\"toolbar.filters.enabled depende de filtering.enabled.\",\"settingsMenu.enabled expõe opções de densidade e colunas.\"],\"examples\":[\"{ toolbar: { visible: true, position: \\\"top\\\", title: \\\"Pedidos\\\" } }\"],\"antiPatterns\":[\"{ toolbar: { position: \\\"left\\\" } }\"]},\"toolbar-layout\":{\"id\":\"toolbar-layout\",\"title\":\"Layout da Toolbar\",\"description\":\"Configuração de toolbar.layout.*\",\"rules\":[\"alignment deve ser start/center/end/space-between.\",\"height e padding devem ser coerentes com o tema.\"],\"examples\":[\"{ toolbar: { layout: { alignment: \\\"space-between\\\", height: 56, showSeparator: true } } }\"],\"antiPatterns\":[\"{ toolbar: { layout: { alignment: \\\"between\\\" } } }\"]},\"toolbar-actions\":{\"id\":\"toolbar-actions\",\"title\":\"Ações da Toolbar\",\"description\":\"Definições de toolbar.actions[].\",\"rules\":[\"toolbar.actions[].id deve ser único.\",\"action deve ser string, não função JS.\",\"type deve ser button/icon/fab/menu.\",\"visibleWhen usa expressao condicional canonica em JSON Logic.\"],\"examples\":[\"{ toolbar: { actions: [{ id: \\\"add\\\", label: \\\"Adicionar\\\", type: \\\"button\\\", action: \\\"create\\\", position: \\\"end\\\" }] } }\",\"{ toolbar: { actions: [{ id: \\\"more\\\", label: \\\"Mais\\\", type: \\\"menu\\\", action: \\\"noop\\\", children: [{ id: \\\"export\\\", label: \\\"Exportar\\\", type: \\\"button\\\", action: \\\"export\\\" }] }] } }\"],\"antiPatterns\":[\"{ actions: [{ action: \\\"() => doSomething()\\\" }] }\"]},\"toolbar-filters\":{\"id\":\"toolbar-filters\",\"title\":\"Filtros da Toolbar\",\"description\":\"Configuração de toolbar.filters.* e quickFilters.\",\"rules\":[\"quickFilters[].filter deve seguir a estrutura do filtro suportado.\",\"quickFilters representa um pequeno seletor de escopo exclusivo e removível; use filtros avançados para critérios combináveis.\",\"enabled depende de behavior.filtering.enabled.\"],\"examples\":[\"{ toolbar: { filters: { enabled: true, quickFilters: [{ id: \\\"active\\\", label: \\\"Ativos\\\", filter: { status: \\\"active\\\" } }] } } }\"],\"antiPatterns\":[\"{ toolbar: { filters: { quickFilters: [{ filter: \\\"status=active\\\" }] } } }\"]},\"toolbar-settings\":{\"id\":\"toolbar-settings\",\"title\":\"Menu de Configuracoes\",\"description\":\"Configuração de toolbar.settingsMenu.*\",\"rules\":[\"settingsMenu.options[].type deve ser toggle/select/action.\",\"options deve listar valores validos quando type for select.\"],\"examples\":[\"{ toolbar: { settingsMenu: { enabled: true, options: [{ id: \\\"density\\\", label: \\\"Densidade\\\", type: \\\"select\\\", options: [\\\"compact\\\", \\\"comfortable\\\", \\\"spacious\\\"] }] } } }\"],\"antiPatterns\":[\"{ settingsMenu: { options: [{ type: \\\"dropdown\\\" }] } }\"]},\"row-actions\":{\"id\":\"row-actions\",\"title\":\"Acoes por Linha\",\"description\":\"Configuração de actions.row.*\",\"rules\":[\"enabled deve estar true para mostrar coluna de ações.\",\"display deve ser menu/buttons/icons.\",\"trigger deve ser hover/always/click.\",\"actions[].action deve ser string.\"],\"examples\":[\"{ actions: { row: { enabled: true, display: \\\"menu\\\", trigger: \\\"hover\\\", actions: [{ id: \\\"edit\\\", label: \\\"Editar\\\", action: \\\"edit\\\" }] } } }\"],\"antiPatterns\":[\"{ actions: { row: { display: \\\"dropdown\\\" } } }\"]},\"row-actions-advanced\":{\"id\":\"row-actions-advanced\",\"title\":\"Acoes por Linha Avancadas\",\"description\":\"Header, overflow, menu e comportamento avançado.\",\"rules\":[\"header.align deve ser start/center/end.\",\"behavior.maxInline deve ser numero ou objeto de breakpoints.\",\"menuIcon e menuButtonColor devem ser valores suportados.\",\"discovery.enabled=false mantem apenas as actions configuradas e bloqueia a descoberta contextual por HATEOAS/capabilities.\"],\"examples\":[\"{ actions: { row: { header: { label: \\\"Ações\\\", align: \\\"end\\\" }, maxVisibleActions: 3, behavior: { enabled: true, maxInline: 2 } } } }\",\"{ actions: { row: { enabled: true, display: \\\"buttons\\\", discovery: { enabled: false }, actions: [{ id: \\\"briefing\\\", label: \\\"Briefing\\\", action: \\\"inspect-surfaces\\\" }] } } }\"],\"antiPatterns\":[\"{ row: { header: { align: \\\"middle\\\" } } }\"]},\"bulk-actions\":{\"id\":\"bulk-actions\",\"title\":\"Acoes em Lote\",\"description\":\"Configuração de actions.bulk.*\",\"rules\":[\"bulk.enabled exige selection.enabled.\",\"floating.position deve ser bottom-right/bottom-left/top-right/top-left.\",\"hideWhenEmpty evita botão flutuante quando nada selecionado.\"],\"examples\":[\"{ actions: { bulk: { enabled: true, position: \\\"toolbar\\\", actions: [{ id: \\\"delete\\\", label: \\\"Excluir\\\", action: \\\"bulk-delete\\\", requiresConfirmation: true }], floating: { position: \\\"bottom-right\\\", hideWhenEmpty: true } } } }\"],\"antiPatterns\":[\"{ actions: { bulk: { enabled: true } } } sem selection.enabled\"]},\"context-actions\":{\"id\":\"context-actions\",\"title\":\"Menu de Contexto\",\"description\":\"Configuração de actions.context.*\",\"rules\":[\"trigger deve ser right-click/long-press/both.\",\"actions[].action deve ser string.\"],\"examples\":[\"{ actions: { context: { enabled: true, trigger: \\\"right-click\\\", actions: [{ id: \\\"copy\\\", label: \\\"Copiar\\\", action: \\\"copy\\\" }] } } }\"],\"antiPatterns\":[\"{ context: { trigger: \\\"click\\\" } }\"]}}}",
30794
30864
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30798,7 +30868,7 @@
30798
30868
  "corpusVersion": "1.0.0"
30799
30869
  },
30800
30870
  {
30801
- "chunkIndex": 145,
30871
+ "chunkIndex": 146,
30802
30872
  "chunkKind": "context_pack",
30803
30873
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"aiConcepts\",\"aiConcepts\":{\"actions-confirmations\":{\"id\":\"actions-confirmations\",\"title\":\"Confirmacoes de Acoes\",\"description\":\"Configuração de actions.confirmations.*\",\"rules\":[\"default deve conter title, message, confirmText e cancelText.\",\"specific usa actionId como chave.\"],\"examples\":[\"{ actions: { confirmations: { default: { title: \\\"Confirmar\\\", message: \\\"Deseja continuar?\\\", confirmText: \\\"Sim\\\", cancelText: \\\"Nao\\\" }, specific: { \\\"delete\\\": { message: \\\"Excluir item?\\\" } } } } }\"],\"antiPatterns\":[\"{ actions: { confirmations: { default: { title: \\\"\\\" } } } }\"]},\"export-general\":{\"id\":\"export-general\",\"title\":\"Exportacao Geral\",\"description\":\"Configuração de export.general.*\",\"rules\":[\"includeHeaders deve ser boolean.\",\"scope deve ser auto, selected, filtered, currentPage ou all.\",\"maxRows deve limitar volume.\",\"includeColumns deve ser all/visible ou lista de fields.\"],\"examples\":[\"{ export: { enabled: true, formats: [\\\"csv\\\"], general: { includeHeaders: true, scope: \\\"auto\\\", maxRows: 5000, includeColumns: \\\"visible\\\" } } }\"],\"antiPatterns\":[\"{ export: { general: { maxRows: 0 } } }\"]},\"export-excel\":{\"id\":\"export-excel\",\"title\":\"Exportacao Excel\",\"description\":\"Configuração de export.excel.*\",\"rules\":[\"sheetName deve ser curto e sem caracteres invalidos.\",\"autoFitColumns melhora legibilidade.\",\"styling.headerStyle e cellStyle devem ser simples.\"],\"examples\":[\"{ export: { excel: { sheetName: \\\"Dados\\\", autoFitColumns: true, freezeHeaders: true, styling: { headerStyle: { fontWeight: \\\"bold\\\" } } } } }\"],\"antiPatterns\":[\"{ excel: { sheetName: \\\"\\\" } }\"]},\"export-pdf\":{\"id\":\"export-pdf\",\"title\":\"Exportacao PDF\",\"description\":\"Configuração de export.pdf.*\",\"rules\":[\"orientation deve ser portrait/landscape.\",\"pageSize deve ser A4/A3/Letter/Legal.\",\"margins devem conter top/right/bottom/left.\"],\"examples\":[\"{ export: { pdf: { orientation: \\\"landscape\\\", pageSize: \\\"A4\\\", margins: { top: 10, right: 10, bottom: 10, left: 10 }, autoPageBreak: true } } }\"],\"antiPatterns\":[\"{ pdf: { pageSize: \\\"A5\\\" } }\"]},\"export-csv\":{\"id\":\"export-csv\",\"title\":\"Exportacao CSV\",\"description\":\"Configuração de export.csv.*\",\"rules\":[\"delimiter deve ser \\\",\\\", \\\";\\\", \\\"|\\\" ou \\\"\\\\t\\\".\",\"encoding deve ser utf-8/utf-16/iso-8859-1.\",\"escapeChar deve ser um caractere.\"],\"examples\":[\"{ export: { csv: { delimiter: \\\";\\\", encoding: \\\"utf-8\\\", escapeChar: \\\"\\\\\\\" } } }\"],\"antiPatterns\":[\"{ csv: { delimiter: \\\":\\\" } }\"]},\"export-json\":{\"id\":\"export-json\",\"title\":\"Exportacao JSON\",\"description\":\"Configuração de export.json.*\",\"rules\":[\"format deve ser pretty ou compact.\",\"structure deve ser array ou object.\"],\"examples\":[\"{ export: { json: { format: \\\"pretty\\\", includeMetadata: true, structure: \\\"array\\\" } } }\"],\"antiPatterns\":[\"{ json: { format: \\\"full\\\" } }\"]},\"export-templates\":{\"id\":\"export-templates\",\"title\":\"Templates de Exportacao\",\"description\":\"Configuração de export.templates[]\",\"rules\":[\"templates devem ter id, name e format válidos.\",\"config deve seguir o formato correspondente.\"],\"examples\":[\"{ export: { templates: [{ id: \\\"resumo\\\", name: \\\"Resumo\\\", format: \\\"pdf\\\", config: {}, isDefault: false }] } }\"],\"antiPatterns\":[\"{ templates: [{ id: \\\"\\\", format: \\\"xls\\\" }] }\"]},\"messages\":{\"id\":\"messages\",\"title\":\"Mensagens\",\"description\":\"Mensagens de estados, ações, validação e exportação.\",\"rules\":[\"Mensagens devem ser curtas e claras.\",\"Não defina funções inline (use templates ou strings simples).\"],\"examples\":[\"{ messages: { states: { empty: \\\"Sem registros.\\\" }, actions: { confirmations: { delete: \\\"Excluir?\\\" } } } }\"],\"antiPatterns\":[\"{ messages: { states: { loadingWithCount: \\\"(n) => ...\\\" } } }\"]},\"messages-advanced\":{\"id\":\"messages-advanced\",\"title\":\"Mensagens Avancadas\",\"description\":\"custom, templates e formatos por tipo.\",\"rules\":[\"templates[].template deve usar placeholders simples.\",\"custom é um mapa chave -> mensagem.\",\"formats deve seguir excel/pdf/csv/json.\"],\"examples\":[\"{ messages: { export: { formats: { excel: \\\"Excel pronto\\\" } }, templates: [{ id: \\\"t1\\\", template: \\\"Exportado {count} itens\\\" }] } }\"],\"antiPatterns\":[\"{ messages: { templates: [{ id: \\\"t1\\\" }] } }\"]},\"localization-date-time\":{\"id\":\"localization-date-time\",\"title\":\"Localizacao de Datas\",\"description\":\"Configuração de localization.dateTime.*\",\"rules\":[\"dateFormat/timeFormat devem seguir DatePipe.\",\"firstDayOfWeek deve ser 0-6.\",\"monthNames e dayNames devem ter 12 e 7 entradas.\"],\"examples\":[\"{ localization: { dateTime: { dateFormat: \\\"dd/MM/yyyy\\\", timeFormat: \\\"HH:mm\\\", firstDayOfWeek: 0 } } }\"],\"antiPatterns\":[\"{ localization: { dateTime: { firstDayOfWeek: 7 } } }\"]},\"localization-number-currency\":{\"id\":\"localization-number-currency\",\"title\":\"Localizacao de Numeros e Moeda\",\"description\":\"Configuração de localization.number.* e localization.currency.*\",\"rules\":[\"decimalSeparator e thousandsSeparator devem ser 1 caractere.\",\"negativeSignPosition deve ser before/after.\",\"currency.code deve ser ISO 4217.\"],\"examples\":[\"{ localization: { number: { decimalSeparator: \\\",\\\", thousandsSeparator: \\\".\\\", negativeSign: \\\"-\\\", negativeSignPosition: \\\"before\\\" }, currency: { code: \\\"BRL\\\", symbol: \\\"R$\\\" } } }\"],\"antiPatterns\":[\"{ localization: { currency: { code: \\\"REAL\\\" } } }\"]},\"localization-formatting\":{\"id\":\"localization-formatting\",\"title\":\"Formatos Locais\",\"description\":\"Configuração de localization.formatting.*\",\"rules\":[\"percentageFormat e fileSizeFormat devem seguir padrao esperado.\",\"units deve mapear tipo -> unidade -> label.\"],\"examples\":[\"{ localization: { formatting: { percentageFormat: \\\"#0.00%\\\", fileSizeFormat: \\\"decimal\\\" } } }\"],\"antiPatterns\":[\"{ localization: { formatting: { percentageFormat: \\\"percent\\\" } } }\"]},\"localization-translations\":{\"id\":\"localization-translations\",\"title\":\"Traducoes\",\"description\":\"Configuração de localization.availableLocales e translations.*\",\"rules\":[\"availableLocales deve listar locales conhecidos.\",\"translations deve mapear locale -> chaves de texto.\"],\"examples\":[\"{ localization: { availableLocales: [\\\"pt-BR\\\", \\\"en-US\\\"], translations: { \\\"pt-BR\\\": { \\\"table.title\\\": \\\"Pedidos\\\" } } } }\"],\"antiPatterns\":[\"{ translations: \\\"pt-BR\\\" }\"]},\"data-cache\":{\"id\":\"data-cache\",\"title\":\"Cache de Dados\",\"description\":\"Configuração de data.cache.*\",\"rules\":[\"ttl e maxSize devem ser positivos.\",\"invalidationStrategy deve ser ttl/manual/on-update.\"],\"examples\":[\"{ data: { cache: { enabled: true, ttl: 600000, maxSize: 1000, invalidationStrategy: \\\"ttl\\\" } } }\"],\"antiPatterns\":[\"{ cache: { ttl: 0 } }\"]},\"data-sync\":{\"id\":\"data-sync\",\"title\":\"Sincronizacao\",\"description\":\"Configuração de data.sync.*\",\"rules\":[\"interval deve ser em ms.\",\"deltaSync e autoSync devem ser boolean.\",\"conflictResolution deve ser client/server/manual.\"],\"examples\":[\"{ data: { sync: { autoSync: true, interval: 30000, deltaSync: true, conflictResolution: \\\"server\\\" } } }\"],\"antiPatterns\":[\"{ sync: { interval: -1 } }\"]},\"data-validation\":{\"id\":\"data-validation\",\"title\":\"Validacao de Dados\",\"description\":\"Configuração de data.validation.* e rules[]\",\"rules\":[\"rules[].type deve ser required/format/range/custom.\",\"params deve conter dados compatíveis com o tipo.\",\"showInlineErrors deve ser boolean.\"],\"examples\":[\"{ data: { validation: { clientSide: true, serverSide: false, showInlineErrors: true, rules: [{ field: \\\"email\\\", type: \\\"format\\\", params: { format: \\\"email\\\" }, message: \\\"Email invalido\\\" }] } } }\"],\"antiPatterns\":[\"{ validation: { rules: [{ type: \\\"regex\\\" }] } }\"]}}}",
30804
30874
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30808,7 +30878,7 @@
30808
30878
  "corpusVersion": "1.0.0"
30809
30879
  },
30810
30880
  {
30811
- "chunkIndex": 146,
30881
+ "chunkIndex": 147,
30812
30882
  "chunkKind": "context_pack",
30813
30883
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"aiConcepts\",\"aiConcepts\":{\"data-transformations\":{\"id\":\"data-transformations\",\"title\":\"Transformacoes de Dados\",\"description\":\"Configuração de data.transformations[]\",\"rules\":[\"transform deve ser uma string suportada pelo sistema, não funcao JS.\",\"applyTo deve ser display/data/both.\"],\"examples\":[\"{ data: { transformations: [{ id: \\\"t1\\\", field: \\\"amount\\\", type: \\\"format\\\", transform: \\\"currency\\\", applyTo: \\\"display\\\" }] } }\"],\"antiPatterns\":[\"{ transformations: [{ transform: \\\"row => row.amount\\\" }] }\"]},\"data-polling\":{\"id\":\"data-polling\",\"title\":\"Polling\",\"description\":\"Configuração de data.polling.*\",\"rules\":[\"interval deve ser em ms e razoavel.\",\"exponentialBackoff deve ser boolean.\"],\"examples\":[\"{ data: { polling: { enabled: true, interval: 30000, onlyWhenActive: true, exponentialBackoff: true } } }\"],\"antiPatterns\":[\"{ polling: { interval: 100 } }\"]},\"performance-virtualization\":{\"id\":\"performance-virtualization\",\"title\":\"Performance Virtualization\",\"description\":\"Configuração de performance.virtualization.*\",\"rules\":[\"itemHeight deve ser informado quando enabled.\",\"strategy deve ser fixed/dynamic.\"],\"examples\":[\"{ performance: { virtualization: { enabled: true, itemHeight: 48 } } }\"],\"antiPatterns\":[\"{ performance: { virtualization: { enabled: true } } }\"]},\"performance-debounce\":{\"id\":\"performance-debounce\",\"title\":\"Performance Debounce\",\"description\":\"Configuração de performance.debounce.*\",\"rules\":[\"valores devem estar em ms (ex.: 200-500).\"],\"examples\":[\"{ performance: { debounce: { search: 300, filter: 300, resize: 200, scroll: 200 } } }\"],\"antiPatterns\":[\"{ debounce: { search: -1 } }\"]},\"performance-memory\":{\"id\":\"performance-memory\",\"title\":\"Performance Memory\",\"description\":\"Configuração de performance.memory.*\",\"rules\":[\"maxRows deve limitar o volume em memoria.\",\"cleanupInterval deve ser em ms.\"],\"examples\":[\"{ performance: { memory: { maxRows: 5000, autoCleanup: true, cleanupInterval: 60000 } } }\"],\"antiPatterns\":[\"{ memory: { maxRows: 0 } }\"]},\"performance-rendering\":{\"id\":\"performance-rendering\",\"title\":\"Performance Rendering\",\"description\":\"Configuração de performance.rendering.*\",\"rules\":[\"batchUpdates true requer batchSize coerente.\",\"optimizeReRenders melhora atualizações frequentes.\"],\"examples\":[\"{ performance: { rendering: { useRAF: true, batchUpdates: true, batchSize: 50, optimizeReRenders: true } } }\"],\"antiPatterns\":[\"{ rendering: { batchSize: 0 } }\"]},\"performance-lazy-loading\":{\"id\":\"performance-lazy-loading\",\"title\":\"Performance Lazy Loading\",\"description\":\"Configuração de performance.lazyLoading.*\",\"rules\":[\"threshold deve ser numero positivo.\",\"components e images devem ser boolean.\"],\"examples\":[\"{ performance: { lazyLoading: { images: true, components: true, threshold: 200 } } }\"],\"antiPatterns\":[\"{ lazyLoading: { threshold: -1 } }\"]},\"accessibility-core\":{\"id\":\"accessibility-core\",\"title\":\"Acessibilidade\",\"description\":\"Configuração base de accessibility.*\",\"rules\":[\"enabled deve ser true em apps com requisitos a11y.\",\"reduceMotion deve desativar animacoes nao essenciais.\"],\"examples\":[\"{ accessibility: { enabled: true, reduceMotion: true } }\"],\"antiPatterns\":[\"{ accessibility: { enabled: true, reduceMotion: \\\"yes\\\" } }\"]},\"accessibility-announcements\":{\"id\":\"accessibility-announcements\",\"title\":\"Acessibilidade Anuncios\",\"description\":\"Configuração de accessibility.announcements.*\",\"rules\":[\"dataChanges, userActions e loadingStates devem ser boolean.\",\"liveRegion deve ser polite ou assertive.\"],\"examples\":[\"{ accessibility: { announcements: { dataChanges: true, userActions: true, loadingStates: true, liveRegion: \\\"polite\\\" } } }\"],\"antiPatterns\":[\"{ announcements: { liveRegion: \\\"loud\\\" } }\"]},\"accessibility-keyboard\":{\"id\":\"accessibility-keyboard\",\"title\":\"Acessibilidade Teclado\",\"description\":\"Configuração de accessibility.keyboard.*\",\"rules\":[\"tabNavigation e arrowNavigation devem ser boolean.\",\"shortcuts e skipLinks devem ser boolean.\",\"focusTrap deve ser boolean.\"],\"examples\":[\"{ accessibility: { keyboard: { tabNavigation: true, arrowNavigation: true, shortcuts: true, skipLinks: true, focusTrap: false } } }\"],\"antiPatterns\":[\"{ keyboard: { tabNavigation: \\\"yes\\\" } }\"]},\"accessibility-aria-labels\":{\"id\":\"accessibility-aria-labels\",\"title\":\"Acessibilidade ARIA\",\"description\":\"Configuração de accessibility.ariaLabels.*\",\"rules\":[\"ariaLabels deve mapear chaves conhecidas para textos curtos.\"],\"examples\":[\"{ accessibility: { ariaLabels: { table: \\\"Tabela de pedidos\\\" } } }\"],\"antiPatterns\":[\"{ ariaLabels: { table: \\\"\\\" } }\"]},\"theme-core\":{\"id\":\"theme-core\",\"title\":\"Tema Base\",\"description\":\"Configuração de theme.primary/secondary/darkMode.\",\"rules\":[\"primary e secondary devem ser cores validas (hex ou token).\",\"darkMode deve ser boolean.\"],\"examples\":[\"{ theme: { primary: \\\"#1976d2\\\", secondary: \\\"#ff9800\\\" } }\"],\"antiPatterns\":[\"{ theme: { primary: \\\"blue\\\" } }\"]},\"theme-custom\":{\"id\":\"theme-custom\",\"title\":\"Tema Customizado\",\"description\":\"Configuração de theme.custom e theme.cssVariables.\",\"rules\":[\"cssVariables deve usar nomes CSS validos (ex.: --table-bg).\",\"custom deve ser mapa simples de tokens.\"],\"examples\":[\"{ theme: { custom: { headerBg: \\\"var(--md-sys-color-surface-container)\\\" }, cssVariables: { \\\"--table-bg\\\": \\\"var(--md-sys-color-surface)\\\" } } }\"],\"antiPatterns\":[\"{ theme: { cssVariables: { \\\"table-bg\\\": \\\"var(--md-sys-color-surface)\\\" } } }\"]},\"plugins\":{\"id\":\"plugins\",\"title\":\"Plugins\",\"description\":\"Configuração de plugins[].\",\"rules\":[\"plugins[].id, name e version sao obrigatorios.\",\"hooks deve mapear eventos para handlers conhecidos.\"],\"examples\":[\"{ plugins: [{ id: \\\"audit\\\", name: \\\"Audit Logger\\\", version: \\\"1.2.0\\\", enabled: true }] }\"],\"antiPatterns\":[\"{ plugins: [{ name: \\\"Audit\\\" }] }\"]},\"editor-extras\":{\"id\":\"editor-extras\",\"title\":\"Extras do Editor\",\"description\":\"Envelope de autoria usado pelo editor e pelo playground.\",\"rules\":[\"bindings.resourcePath deve ser path valido da API quando presente.\",\"config.meta.idField deve refletir a chave primaria quando configurado.\",\"bindings.horizontalScroll deve ser auto/wrap/none.\"],\"examples\":[\"{ kind: \\\"praxis.table.editor\\\", version: 1, config: { meta: { idField: \\\"employeeId\\\" }, columns: [] }, bindings: { resourcePath: \\\"/api/employees\\\", horizontalScroll: \\\"auto\\\" } }\"],\"antiPatterns\":[\"{ kind: \\\"praxis.table.editor\\\", version: 1, config: { columns: [] }, bindings: { horizontalScroll: \\\"left\\\" } }\"]}}}",
30814
30884
  "sourcePointer": "projects/praxis-table/src/lib/ai/table-context-pack.ts",
@@ -30818,7 +30888,7 @@
30818
30888
  "corpusVersion": "1.0.0"
30819
30889
  },
30820
30890
  {
30821
- "chunkIndex": 147,
30891
+ "chunkIndex": 148,
30822
30892
  "chunkKind": "recipe",
30823
30893
  "content": "{\"_comment\":\"Variant focused on row and bulk actions.\",\"templateMeta\":{\"variantId\":\"actions\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"actions\",\"bulk\"],\"useWhen\":\"user asks to add, remove, or adjust row/bulk actions\",\"examplePrompts\":[\"add a bulk delete action\",\"add a row action to open details\"]},\"meta\":{\"version\":\"2.0.0\",\"id\":\"table-recipe-full\",\"name\":\"Full Table Recipe\",\"description\":\"Kitchen sink config covering TableConfig v2\",\"tags\":[\"example\",\"full\",\"table\"],\"createdAt\":\"2024-01-01T00:00:00Z\",\"updatedAt\":\"2024-02-01T12:00:00Z\",\"author\":\"Praxis UI\",\"isTemplate\":true,\"derivedFrom\":\"base-template\",\"schemaId\":\"path:/api/orders#response\",\"serverHash\":\"hash-123\",\"idField\":\"id\",\"schemaContext\":{\"path\":\"/api/orders\",\"operation\":\"GET\",\"schemaType\":\"response\",\"internal\":false,\"tenant\":\"default\",\"locale\":\"en-US\"}},\"actions\":{\"row\":{\"enabled\":true,\"position\":\"end\",\"width\":\"64px\",\"sticky\":\"end\",\"actions\":[{\"id\":\"view\",\"label\":\"View\",\"icon\":\"visibility\",\"color\":\"primary\",\"disabled\":false,\"action\":\"viewItem\",\"tooltip\":\"View details\"},{\"id\":\"edit\",\"label\":\"Edit\",\"icon\":\"edit\",\"color\":\"accent\",\"action\":\"editItem\",\"tooltip\":\"Edit item\",\"visibleWhen\":\"canEdit\"},{\"id\":\"delete\",\"label\":\"Delete\",\"icon\":\"delete\",\"color\":\"warn\",\"action\":\"deleteItem\",\"tooltip\":\"Delete item\",\"requiresConfirmation\":true,\"separator\":true,\"autoDelete\":true,\"deleteEndpoint\":\"/api/orders/{id}\"}],\"display\":\"menu\",\"trigger\":\"click\",\"menuIcon\":\"more_vert\",\"menuButtonColor\":\"basic\",\"header\":{\"label\":\"Actions\",\"icon\":\"bolt\",\"tooltip\":\"Row actions\",\"align\":\"center\"},\"maxVisibleActions\":3,\"behavior\":{\"enabled\":true,\"maxInline\":{\"xs\":1,\"sm\":2,\"md\":3,\"lg\":4},\"autoStrategy\":\"breakpoints\"}},\"bulk\":{\"enabled\":true,\"position\":\"toolbar\",\"actions\":[{\"id\":\"bulk-delete\",\"label\":\"Delete\",\"icon\":\"delete\",\"color\":\"warn\",\"action\":\"bulkDelete\",\"requiresConfirmation\":true,\"minSelections\":2,\"maxSelections\":100,\"autoDelete\":true,\"deleteEndpoint\":\"/api/orders/bulk-delete\"}],\"floating\":{\"position\":\"bottom-right\",\"hideWhenEmpty\":true}},\"context\":{\"enabled\":true,\"actions\":[{\"id\":\"context-copy\",\"label\":\"Copy\",\"icon\":\"content_copy\",\"action\":\"copyCell\"},{\"id\":\"context-history\",\"label\":\"History\",\"icon\":\"history\",\"action\":\"openHistory\",\"separator\":true,\"visibleWhen\":\"canViewHistory\"}],\"trigger\":\"right-click\"},\"confirmations\":{\"default\":{\"title\":\"Confirm action\",\"message\":\"Are you sure you want to continue?\",\"confirmText\":\"Confirm\",\"cancelText\":\"Cancel\"},\"specific\":{\"deleteItem\":{\"title\":\"Delete order\",\"message\":\"This action cannot be undone.\",\"confirmText\":\"Delete\"}}}}}",
30824
30894
  "sourcePointer": "examples/ai-recipes/praxis-table.actions.json",
@@ -30828,7 +30898,7 @@
30828
30898
  "corpusVersion": "1.0.0"
30829
30899
  },
30830
30900
  {
30831
- "chunkIndex": 148,
30901
+ "chunkIndex": 149,
30832
30902
  "chunkKind": "recipe",
30833
30903
  "content": "{\"_comment\":\"Variant focused on behavior settings (pagination, sorting, filtering, selection).\",\"templateMeta\":{\"variantId\":\"behavior\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"behavior\",\"pagination\",\"sorting\",\"filtering\"],\"useWhen\":\"user asks about pagination, sorting, filtering, or selection behavior\",\"examplePrompts\":[\"enable server side pagination with page size 50\",\"turn on multi sort\"]},\"meta\":{\"version\":\"2.0.0\",\"id\":\"table-recipe-full\",\"name\":\"Full Table Recipe\",\"description\":\"Kitchen sink config covering TableConfig v2\",\"tags\":[\"example\",\"full\",\"table\"],\"createdAt\":\"2024-01-01T00:00:00Z\",\"updatedAt\":\"2024-02-01T12:00:00Z\",\"author\":\"Praxis UI\",\"isTemplate\":true,\"derivedFrom\":\"base-template\",\"schemaId\":\"path:/api/orders#response\",\"serverHash\":\"hash-123\",\"idField\":\"id\",\"schemaContext\":{\"path\":\"/api/orders\",\"operation\":\"GET\",\"schemaType\":\"response\",\"internal\":false,\"tenant\":\"default\",\"locale\":\"en-US\"}},\"behavior\":{\"pagination\":{\"enabled\":true,\"pageSize\":25,\"pageSizeOptions\":[10,25,50,100],\"showFirstLastButtons\":true,\"showPageNumbers\":true,\"showPageInfo\":true,\"position\":\"bottom\",\"style\":\"advanced\",\"totalItems\":1000,\"strategy\":\"server\",\"advanced\":{\"showJumpToPage\":true,\"allowCustomPageSize\":true,\"maxPageSize\":200}},\"sorting\":{\"enabled\":true,\"defaultSort\":{\"column\":\"createdAt\",\"direction\":\"desc\"},\"multiSort\":true,\"strategy\":\"server\",\"showSortIndicators\":true,\"indicatorPosition\":\"end\",\"allowClearSort\":true,\"advanced\":{\"_comment\":\"customComparators expects functions at runtime; JSON uses string placeholders.\",\"customComparators\":{\"amount\":\"(a: number, b: number) => a - b\"},\"preserveSort\":true}},\"filtering\":{\"enabled\":true,\"columnFilters\":{\"enabled\":true,\"defaultType\":\"text\",\"position\":\"subheader\"},\"advancedFilters\":{\"enabled\":true,\"queryBuilder\":true,\"savePresets\":true,\"settings\":{\"alwaysVisibleFields\":[\"status\",\"priority\"],\"showAdvanced\":true,\"allowSaveTags\":true,\"changeDebounceMs\":300,\"mode\":\"filter\"}},\"strategy\":\"server\",\"debounceTime\":300},\"selection\":{\"enabled\":true,\"type\":\"multiple\",\"mode\":\"checkbox\",\"allowSelectAll\":true,\"checkboxPosition\":\"start\",\"persistSelection\":true,\"persistOnDataUpdate\":true,\"maxSelections\":200,\"visual\":{\"highlightSelected\":true,\"highlightColor\":\"#e0f7fa\",\"showSelectionCount\":true}},\"interaction\":{\"rowClick\":{\"enabled\":true,\"action\":\"custom\",\"customAction\":\"openDetail\"},\"rowDoubleClick\":{\"enabled\":true,\"action\":\"edit\",\"customAction\":\"openEditor\"},\"hover\":{\"enabled\":true,\"highlightRow\":true,\"showActionsOnHover\":true},\"keyboard\":{\"enabled\":true,\"arrowNavigation\":true,\"spaceSelection\":true,\"customShortcuts\":{\"Ctrl+F\":\"focusFilter\",\"Ctrl+Shift+R\":\"refreshData\"}}},\"loading\":{\"type\":\"skeleton\",\"position\":\"replace\",\"text\":\"Loading data...\",\"showForQuickOperations\":false,\"delay\":150,\"skeleton\":{\"rows\":8,\"animated\":true,\"baseColor\":\"#eeeeee\",\"highlightColor\":\"#f5f5f5\"}},\"emptyState\":{\"message\":\"No records found\",\"icon\":\"inbox\",\"image\":\"https://example.com/empty.png\",\"actions\":[{\"label\":\"Create\",\"action\":\"createItem\",\"icon\":\"add\",\"primary\":true}],\"customTemplate\":\"empty-state-template\",\"contexts\":{\"initial\":{\"message\":\"Load data to get started\"},\"filtered\":{\"message\":\"No matches for current filters\"},\"searched\":{\"message\":\"No results for your search\"}}},\"virtualization\":{\"enabled\":true,\"itemHeight\":48,\"bufferSize\":10,\"minContainerHeight\":320,\"strategy\":\"fixed\"},\"resizing\":{\"enabled\":true,\"minColumnWidth\":80,\"maxColumnWidth\":360,\"autoFit\":false,\"persistWidths\":true},\"dragging\":{\"columns\":true,\"rows\":false,\"showDragIndicator\":true,\"columnDropZones\":[\"left\",\"right\"]}}}",
30834
30904
  "sourcePointer": "examples/ai-recipes/praxis-table.behavior.json",
@@ -30838,7 +30908,7 @@
30838
30908
  "corpusVersion": "1.0.0"
30839
30909
  },
30840
30910
  {
30841
- "chunkIndex": 149,
30911
+ "chunkIndex": 150,
30842
30912
  "chunkKind": "recipe",
30843
30913
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"_comment\",\"_comment\":\"Variant focused on columns and renderers for Praxis Table.\"}",
30844
30914
  "sourcePointer": "examples/ai-recipes/praxis-table.columns.json",
@@ -30848,7 +30918,7 @@
30848
30918
  "corpusVersion": "1.0.0"
30849
30919
  },
30850
30920
  {
30851
- "chunkIndex": 150,
30921
+ "chunkIndex": 151,
30852
30922
  "chunkKind": "recipe",
30853
30923
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"templateMeta\",\"templateMeta\":{\"variantId\":\"columns\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"columns\",\"renderers\"],\"useWhen\":\"user asks to add, remove, or adjust columns\",\"examplePrompts\":[\"add a status column with badge renderer\",\"hide the internal code column\"]}}",
30854
30924
  "sourcePointer": "examples/ai-recipes/praxis-table.columns.json",
@@ -30858,7 +30928,7 @@
30858
30928
  "corpusVersion": "1.0.0"
30859
30929
  },
30860
30930
  {
30861
- "chunkIndex": 151,
30931
+ "chunkIndex": 152,
30862
30932
  "chunkKind": "recipe",
30863
30933
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"meta\",\"meta\":{\"version\":\"2.0.0\",\"id\":\"table-recipe-full\",\"name\":\"Full Table Recipe\",\"description\":\"Kitchen sink config covering TableConfig v2\",\"tags\":[\"example\",\"full\",\"table\"],\"createdAt\":\"2024-01-01T00:00:00Z\",\"updatedAt\":\"2024-02-01T12:00:00Z\",\"author\":\"Praxis UI\",\"isTemplate\":true,\"derivedFrom\":\"base-template\",\"schemaId\":\"path:/api/orders#response\",\"serverHash\":\"hash-123\",\"idField\":\"id\",\"schemaContext\":{\"path\":\"/api/orders\",\"operation\":\"GET\",\"schemaType\":\"response\",\"internal\":false,\"tenant\":\"default\",\"locale\":\"en-US\"}}}",
30864
30934
  "sourcePointer": "examples/ai-recipes/praxis-table.columns.json",
@@ -30868,7 +30938,7 @@
30868
30938
  "corpusVersion": "1.0.0"
30869
30939
  },
30870
30940
  {
30871
- "chunkIndex": 152,
30941
+ "chunkIndex": 153,
30872
30942
  "chunkKind": "recipe",
30873
30943
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"columns\",\"columns\":[{\"field\":\"id\",\"header\":\"ID\",\"type\":\"string\",\"width\":\"80px\",\"visible\":true,\"sortable\":true,\"filterable\":true,\"resizable\":true,\"sticky\":\"start\",\"align\":\"left\",\"order\":0,\"sortField\":\"id\",\"style\":\"font-weight: 600;\",\"headerStyle\":\"text-transform: uppercase;\",\"cssClass\":\"col-id\",\"headerCssClass\":\"col-id-header\"},{\"field\":\"createdAt\",\"header\":\"Created At\",\"type\":\"date\",\"width\":\"160px\",\"sortable\":true,\"filterable\":true,\"align\":\"left\",\"order\":1,\"format\":\"yyyy-MM-dd HH:mm\"},{\"field\":\"status\",\"header\":\"Status\",\"type\":\"string\",\"sortable\":true,\"filterable\":true,\"valueMapping\":{\"ACTIVE\":\"Active\",\"INACTIVE\":\"Inactive\",\"PENDING\":\"Pending\"},\"renderer\":{\"typeExpr\":{\"expr\":\"statusRenderer\"},\"type\":\"badge\",\"badge\":{\"text\":\"Status\",\"textField\":\"statusLabel\",\"color\":\"success\",\"variant\":\"filled\",\"icon\":\"check\"}},\"conditionalRenderers\":[{\"condition\":{\"==\":[{\"var\":\"status\"},\"PENDING\"]},\"renderer\":{\"type\":\"chip\",\"chip\":{\"text\":\"Pending\",\"textField\":\"statusLabel\",\"color\":\"accent\",\"variant\":\"outlined\",\"icon\":\"hourglass_empty\"}},\"description\":\"Pending state\",\"enabled\":true},{\"condition\":{\"==\":[{\"var\":\"status\"},\"INACTIVE\"]},\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":\"Inactive\",\"textField\":\"statusLabel\",\"color\":\"warn\",\"variant\":\"soft\",\"icon\":\"block\"}},\"description\":\"Inactive state\",\"enabled\":true},{\"condition\":{\"!!\":[{\"var\":\"avatarUrl\"}]},\"renderer\":{\"type\":\"avatar\",\"avatar\":{\"src\":\"https://example.com/avatar-conditional.png\",\"srcField\":\"avatarUrl\",\"alt\":\"Avatar\",\"altField\":\"name\",\"initialsField\":\"name\",\"shape\":\"circle\",\"size\":28,\"backgroundColor\":\"#D32F2F\",\"textColor\":\"#FFFFFF\"}},\"description\":\"Avatar override\",\"enabled\":true},{\"condition\":{\"!=\":[{\"var\":\"progressPercent\"},null]},\"renderer\":{\"type\":\"progress\",\"progress\":{\"valueExpr\":\"progressPercent\",\"color\":\"accent\",\"showLabel\":false}},\"description\":\"Progress override\",\"enabled\":true},{\"condition\":{\"!=\":[{\"var\":\"rating\"},null]},\"renderer\":{\"type\":\"rating\",\"rating\":{\"valueExpr\":\"rating\",\"max\":5,\"size\":\"small\",\"readonly\":true,\"ariaLabel\":\"Status rating\",\"color\":\"gold\",\"outlineColor\":\"#bdbdbd\"}},\"description\":\"Rating override\",\"enabled\":true},{\"condition\":{\"!=\":[{\"var\":\"isActive\"},null]},\"renderer\":{\"type\":\"toggle\",\"toggle\":{\"stateExpr\":\"isActive\",\"disabledCondition\":\"locked == true\",\"ariaLabel\":\"Toggle status\",\"action\":{\"id\":\"toggle-status\",\"payloadExpr\":\"{ id: id, active: !isActive }\"}}},\"description\":\"Toggle override\",\"enabled\":true},{\"condition\":{\"==\":[{\"var\":\"status\"},\"COMPOSED\"]},\"renderer\":{\"type\":\"compose\",\"compose\":{\"items\":[{\"type\":\"icon\",\"icon\":{\"name\":\"info\"}},{\"type\":\"chip\",\"chip\":{\"textField\":\"statusLabel\",\"color\":\"accent\"}}],\"layout\":{\"direction\":\"row\",\"gap\":6}}},\"description\":\"Compose override\",\"enabled\":true}],\"conditionalStyles\":[{\"condition\":{\"==\":[{\"var\":\"status\"},\"INACTIVE\"]},\"cssClass\":\"status-inactive\",\"style\":{\"color\":\"#d32f2f\",\"fontWeight\":\"600\"},\"description\":\"Inactive style\"}],\"_styleRulesState\":{\"version\":1,\"rules\":[\"status\"]},\"_originalApiType\":\"string\",\"_isApiField\":true},{\"field\":\"priority\",\"header\":\"Priority\",\"type\":\"string\",\"renderer\":{\"type\":\"chip\",\"chip\":{\"text\":\"Priority\",\"textField\":\"priorityLabel\",\"color\":\"warn\",\"icon\":\"priority_high\",\"variant\":\"filled\"}}},{\"field\":\"amount\",\"header\":\"Amount\",\"type\":\"currency\",\"width\":\"120px\",\"align\":\"right\",\"sortable\":true,\"filterable\":true,\"format\":\"USD|symbol|2\"},{\"field\":\"discountRate\",\"header\":\"Discount\",\"type\":\"percentage\",\"width\":\"110px\",\"align\":\"right\",\"format\":\"1.2-2\"},{\"field\":\"score\",\"header\":\"Score\",\"type\":\"number\",\"align\":\"right\",\"format\":\"1.0-0\",\"_generatedValueGetter\":\"score = weight * value\",\"_originalApiType\":\"decimal\",\"_isApiField\":false},{\"field\":\"profile\",\"header\":\"Profile\",\"type\":\"custom\",\"renderer\":{\"type\":\"avatar\",\"avatar\":{\"src\":\"https://example.com/avatar.png\",\"srcField\":\"avatarUrl\",\"alt\":\"Avatar\",\"altField\":\"name\",\"initialsField\":\"name\",\"shape\":\"circle\",\"size\":32,\"backgroundColor\":\"#E3F2FD\",\"textColor\":\"#0D47A1\"}}},{\"field\":\"progress\",\"header\":\"Progress\",\"type\":\"number\",\"renderer\":{\"type\":\"progress\",\"progress\":{\"valueExpr\":\"progressPercent\",\"color\":\"primary\",\"showLabel\":true}}},{\"field\":\"rating\",\"header\":\"Rating\",\"type\":\"number\",\"renderer\":{\"type\":\"rating\",\"rating\":{\"valueExpr\":\"rating\",\"max\":5,\"color\":\"gold\",\"outlineColor\":\"#bdbdbd\",\"size\":\"small\",\"ariaLabel\":\"Rating\",\"readonly\":true}}},{\"field\":\"active\",\"header\":\"Active\",\"type\":\"boolean\",\"renderer\":{\"type\":\"toggle\",\"toggle\":{\"stateExpr\":\"active\",\"disabledCondition\":\"locked == true\",\"ariaLabel\":\"Toggle active\",\"action\":{\"id\":\"toggle-active\",\"payloadExpr\":\"{ id: id, active: !active }\"}}}},{\"field\":\"profileLink\",\"header\":\"Profile Link\",\"type\":\"string\",\"renderer\":{\"type\":\"link\",\"link\":{\"text\":\"View profile\",\"textField\":\"name\",\"href\":\"https://example.com/profile\",\"hrefField\":\"profileUrl\",\"target\":\"_blank\",\"rel\":\"noopener\"}}},{\"field\":\"thumbnail\",\"header\":\"Thumb\",\"type\":\"custom\",\"renderer\":{\"type\":\"image\",\"image\":{\"src\":\"https://example.com/thumb.png\",\"srcField\":\"thumbnailUrl\",\"alt\":\"Thumbnail\",\"altField\":\"name\",\"width\":32,\"height\":32,\"shape\":\"rounded\",\"fit\":\"cover\",\"lazy\":true}}},{\"field\":\"statusIcon\",\"header\":\"Status Icon\",\"type\":\"custom\",\"renderer\":{\"type\":\"icon\",\"icon\":{\"name\":\"check_circle\",\"nameField\":\"statusIcon\",\"color\":\"success\",\"size\":18,\"ariaLabel\":\"Status icon\"}}},{\"field\":\"actionButton\",\"header\":\"Action\",\"type\":\"custom\",\"renderer\":{\"type\":\"button\",\"button\":{\"label\":\"Edit\",\"labelField\":\"editLabel\",\"icon\":\"edit\",\"color\":\"primary\",\"variant\":\"outlined\",\"size\":\"sm\",\"ariaLabel\":\"Edit row\",\"disabledCondition\":\"locked == true\",\"action\":{\"id\":\"edit-row\",\"payloadExpr\":\"{ id: id }\"}}}},{\"field\":\"menuActions\",\"header\":\"Menu\",\"type\":\"custom\",\"renderer\":{\"type\":\"menu\",\"menu\":{\"itemsExpr\":\"menuItems\",\"ariaLabel\":\"Row menu\"}}},{\"field\":\"notes\",\"header\":\"Notes\",\"type\":\"string\",\"renderer\":{\"type\":\"html\",\"html\":{\"template\":\"<strong>[[notes]]</strong>\",\"sanitize\":\"strict\",\"emptyFallback\":\"None\"}}},{\"field\":\"composed\",\"header\":\"Composed\",\"type\":\"custom\",\"renderer\":{\"type\":\"compose\",\"compose\":{\"items\":[{\"type\":\"icon\",\"icon\":{\"name\":\"info\",\"nameField\":\"iconName\",\"color\":\"primary\",\"size\":16,\"ariaLabel\":\"Info\"}},{\"type\":\"image\",\"image\":{\"src\":\"https://example.com/thumb.png\",\"srcField\":\"thumbnailUrl\",\"alt\":\"Thumbnail\",\"altField\":\"name\",\"width\":20,\"height\":20,\"shape\":\"circle\",\"fit\":\"cover\",\"lazy\":true}},{\"type\":\"badge\",\"badge\":{\"text\":\"Status\",\"textField\":\"status\",\"color\":\"info\",\"variant\":\"soft\",\"icon\":\"info\"}},{\"type\":\"link\",\"link\":{\"text\":\"Details\",\"textField\":\"detailLabel\",\"href\":\"https://example.com/orders\",\"hrefField\":\"detailUrl\",\"target\":\"_self\",\"rel\":\"noopener\"}},{\"type\":\"button\",\"button\":{\"label\":\"Open\",\"labelField\":\"actionLabel\",\"icon\":\"open_in_new\",\"color\":\"primary\",\"variant\":\"text\",\"size\":\"sm\",\"disabledCondition\":\"locked == true\",\"action\":{\"id\":\"open-detail\",\"payloadExpr\":\"{ id: id }\"}}},{\"type\":\"chip\",\"chip\":{\"text\":\"Tag\",\"textField\":\"tagLabel\",\"color\":\"accent\",\"variant\":\"outlined\",\"icon\":\"label\"}},{\"type\":\"progress\",\"progress\":{\"valueExpr\":\"progressPercent\",\"color\":\"accent\",\"showLabel\":false}},{\"type\":\"avatar\",\"avatar\":{\"src\":\"https://example.com/avatar-mini.png\",\"srcField\":\"avatarUrl\",\"alt\":\"Avatar\",\"altField\":\"name\",\"initialsField\":\"name\",\"shape\":\"circle\",\"size\":24,\"backgroundColor\":\"#E3F2FD\",\"textColor\":\"#0D47A1\"}},{\"type\":\"toggle\",\"toggle\":{\"stateExpr\":\"active\",\"disabledCondition\":\"locked == true\",\"action\":{\"id\":\"toggle-active\",\"payloadExpr\":\"{ id: id, active: !active }\"}}},{\"type\":\"menu\",\"menu\":{\"itemsExpr\":\"menuItems\",\"ariaLabel\":\"Inline menu\"}},{\"type\":\"rating\",\"rating\":{\"valueExpr\":\"rating\",\"max\":5,\"color\":\"gold\",\"outlineColor\":\"#bdbdbd\",\"size\":\"small\",\"readonly\":true,\"ariaLabel\":\"Rating\"}},{\"type\":\"html\",\"html\":{\"template\":\"<em>[[tagline]]</em>\",\"sanitize\":\"basic\",\"emptyFallback\":\"-\"}}],\"layout\":{\"direction\":\"row\",\"gap\":8,\"align\":\"center\",\"wrap\":true,\"ellipsis\":true}}}},{\"field\":\"internalCode\",\"header\":\"Internal Code\",\"type\":\"string\",\"visible\":false}]}",
30874
30944
  "sourcePointer": "examples/ai-recipes/praxis-table.columns.json",
@@ -30878,7 +30948,7 @@
30878
30948
  "corpusVersion": "1.0.0"
30879
30949
  },
30880
30950
  {
30881
- "chunkIndex": 153,
30951
+ "chunkIndex": 154,
30882
30952
  "chunkKind": "recipe",
30883
30953
  "content": "{\"_comment\":\"Variant focused on computed columns and conditional styling.\",\"templateMeta\":{\"variantId\":\"computed-columns\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"computed\",\"columns\",\"kpi\",\"finance\"],\"useWhen\":\"user asks to add calculated columns, totals, or KPI columns\",\"examplePrompts\":[\"add a total column = quantity * price\",\"create a margin % column\",\"highlight rows when computed delay is greater than zero\"]},\"meta\":{\"version\":\"2.0.0\",\"id\":\"table-recipe-computed-columns\",\"name\":\"Computed Columns Recipe\",\"description\":\"Focused template with calculated columns and conditional styles\",\"tags\":[\"computed\",\"columns\",\"template\"],\"createdAt\":\"2024-03-01T00:00:00Z\",\"updatedAt\":\"2024-03-01T00:00:00Z\",\"author\":\"Praxis UI\",\"isTemplate\":true},\"columns\":[{\"field\":\"quantity\",\"header\":\"Quantity\",\"type\":\"number\",\"align\":\"right\",\"sortable\":true,\"filterable\":true},{\"field\":\"price\",\"header\":\"Price\",\"type\":\"currency\",\"align\":\"right\",\"format\":\"BRL|symbol|2\",\"sortable\":true,\"filterable\":true},{\"field\":\"total\",\"header\":\"Total\",\"type\":\"currency\",\"align\":\"right\",\"computed\":{\"expression\":{\"*\":[{\"var\":\"quantity\"},{\"var\":\"price\"}]},\"outputType\":\"currency\",\"format\":\"BRL|symbol|2\",\"dependencies\":[\"quantity\",\"price\"]},\"conditionalStyles\":[{\"condition\":{\">\":[{\"var\":\"computed.total\"},1000]},\"style\":{\"color\":\"#2e7d32\",\"fontWeight\":\"600\"}}]},{\"field\":\"revenue\",\"header\":\"Revenue\",\"type\":\"number\",\"align\":\"right\",\"sortable\":true},{\"field\":\"cost\",\"header\":\"Cost\",\"type\":\"number\",\"align\":\"right\",\"sortable\":true},{\"field\":\"score\",\"header\":\"Score %\",\"type\":\"percentage\",\"align\":\"right\",\"computed\":{\"expression\":{\"/\":[{\"-\":[{\"var\":\"revenue\"},{\"var\":\"cost\"}]},{\"var\":\"cost\"}]},\"outputType\":\"percentage\",\"format\":\"1.1-1\",\"dependencies\":[\"revenue\",\"cost\"]}},{\"field\":\"delayDays\",\"header\":\"Delay (days)\",\"type\":\"number\",\"align\":\"right\",\"computed\":{\"expression\":{\"max\":[0,{\"var\":\"daysLate\"}]},\"outputType\":\"number\",\"format\":\"1.0-0\",\"dependencies\":[\"daysLate\"]},\"conditionalStyles\":[{\"condition\":{\">\":[{\"var\":\"computed.delayDays\"},0]},\"style\":{\"color\":\"#d32f2f\",\"fontWeight\":\"600\"}}]}],\"rowConditionalStyles\":[{\"condition\":{\">\":[{\"var\":\"computed.delayDays\"},0]},\"cssClass\":\"row--late\"}]}",
30884
30954
  "sourcePointer": "examples/ai-recipes/praxis-table.computed.json",
@@ -30888,7 +30958,7 @@
30888
30958
  "corpusVersion": "1.0.0"
30889
30959
  },
30890
30960
  {
30891
- "chunkIndex": 154,
30961
+ "chunkIndex": 155,
30892
30962
  "chunkKind": "recipe",
30893
30963
  "content": "{\"_comment\":\"Template to format existing columns as currency without changing their type.\",\"templateMeta\":{\"variantId\":\"format-currency\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"format\",\"column\",\"currency\",\"money\",\"finance\"],\"useWhen\":\"user asks to format an existing column as currency, money, or specific monetary unit\",\"examplePrompts\":[\"format the price column as BRL\",\"show amount in USD with symbol\",\"display total as currency\"]},\"columns\":[{\"field\":\"price\",\"format\":\"BRL|symbol|2\",\"align\":\"right\"}]}",
30894
30964
  "sourcePointer": "examples/ai-recipes/praxis-table.format-currency.json",
@@ -30898,7 +30968,7 @@
30898
30968
  "corpusVersion": "1.0.0"
30899
30969
  },
30900
30970
  {
30901
- "chunkIndex": 155,
30971
+ "chunkIndex": 156,
30902
30972
  "chunkKind": "recipe",
30903
30973
  "content": "{\"_comment\":\"Template to format existing columns as date/time without changing their type.\",\"templateMeta\":{\"variantId\":\"format-date\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"format\",\"column\",\"date\",\"time\",\"datetime\"],\"useWhen\":\"user asks to format an existing column as date or time\",\"examplePrompts\":[\"format createdAt as dd/MM/yyyy\",\"show date with time\",\"display short date\"]},\"columns\":[{\"field\":\"createdAt\",\"format\":\"yyyy-MM-dd HH:mm\",\"align\":\"left\"}]}",
30904
30974
  "sourcePointer": "examples/ai-recipes/praxis-table.format-date.json",
@@ -30908,7 +30978,7 @@
30908
30978
  "corpusVersion": "1.0.0"
30909
30979
  },
30910
30980
  {
30911
- "chunkIndex": 156,
30981
+ "chunkIndex": 157,
30912
30982
  "chunkKind": "recipe",
30913
30983
  "content": "{\"_comment\":\"Template to format existing columns as number/integer without changing their type.\",\"templateMeta\":{\"variantId\":\"format-number\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"format\",\"column\",\"number\",\"integer\",\"decimal\"],\"useWhen\":\"user asks to format an existing column as number, integer, or specific decimal places\",\"examplePrompts\":[\"format quantity as integer\",\"show weight with 3 decimal places\",\"display count without decimals\"]},\"columns\":[{\"field\":\"quantity\",\"format\":\"1.0-0\",\"align\":\"right\"}]}",
30914
30984
  "sourcePointer": "examples/ai-recipes/praxis-table.format-number.json",
@@ -30918,7 +30988,7 @@
30918
30988
  "corpusVersion": "1.0.0"
30919
30989
  },
30920
30990
  {
30921
- "chunkIndex": 157,
30991
+ "chunkIndex": 158,
30922
30992
  "chunkKind": "recipe",
30923
30993
  "content": "{\"_comment\":\"Template to format existing columns as percentages without changing their type.\",\"templateMeta\":{\"variantId\":\"format-percentage\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"format\",\"column\",\"percentage\",\"ratio\"],\"useWhen\":\"user asks to format an existing column as percentage\",\"examplePrompts\":[\"format discount as percentage\",\"show rate with 2 decimal places %\"]},\"columns\":[{\"field\":\"rate\",\"format\":\"1.2-2\",\"align\":\"right\"}]}",
30924
30994
  "sourcePointer": "examples/ai-recipes/praxis-table.format-percentage.json",
@@ -30928,7 +30998,7 @@
30928
30998
  "corpusVersion": "1.0.0"
30929
30999
  },
30930
31000
  {
30931
- "chunkIndex": 158,
31001
+ "chunkIndex": 159,
30932
31002
  "chunkKind": "recipe",
30933
31003
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"templateMeta\",\"templateMeta\":{\"registryKey\":\"praxis-table\",\"defaultVariantId\":\"columns\",\"variants\":[{\"id\":\"columns\",\"registryKey\":\"praxis-table\",\"variantId\":\"columns\",\"aiDescription\":\"Columns and renderers focus.\",\"tags\":[\"columns\",\"renderers\"],\"useWhen\":\"user asks to add, remove, or adjust columns\",\"examplePrompts\":[\"add a status column with badge renderer\",\"hide the internal code column\"]},{\"id\":\"computed-columns\",\"registryKey\":\"praxis-table\",\"variantId\":\"computed-columns\",\"aiDescription\":\"Calculated columns, KPIs, and conditional styling based on computed values.\",\"tags\":[\"computed\",\"columns\",\"kpi\"],\"useWhen\":\"user asks to add calculated columns, totals, or KPI metrics\",\"examplePrompts\":[\"create a total column = quantity * price\",\"highlight rows when computed delay > 0\"]},{\"id\":\"behavior\",\"registryKey\":\"praxis-table\",\"variantId\":\"behavior\",\"aiDescription\":\"Pagination, sorting, filtering, selection.\",\"tags\":[\"behavior\",\"pagination\",\"sorting\",\"filtering\"],\"useWhen\":\"user asks about pagination, sorting, filtering, or selection behavior\",\"examplePrompts\":[\"enable server side pagination with page size 50\",\"turn on multi sort\"]},{\"id\":\"toolbar\",\"registryKey\":\"praxis-table\",\"variantId\":\"toolbar\",\"aiDescription\":\"Toolbar actions and quick commands.\",\"tags\":[\"toolbar\",\"actions\"],\"useWhen\":\"user asks to change toolbar, buttons, or quick actions\",\"examplePrompts\":[\"add export buttons to the toolbar\",\"change the toolbar title\"]},{\"id\":\"table-pagination\",\"registryKey\":\"praxis-table\",\"variantId\":\"table-pagination\",\"aiDescription\":\"Focused pagination settings to reduce context size.\",\"tags\":[\"pagination\",\"performance\"],\"useWhen\":\"user asks to configure pagination only\",\"examplePrompts\":[\"enable pagination\",\"set page size to 20\"]},{\"id\":\"table-actions\",\"registryKey\":\"praxis-table\",\"variantId\":\"table-actions\",\"aiDescription\":\"Focused row and bulk actions settings.\",\"tags\":[\"actions\",\"bulk\",\"row\"],\"useWhen\":\"user asks to configure table actions only\",\"examplePrompts\":[\"add delete action\",\"enable bulk actions\"]},{\"id\":\"table-export\",\"registryKey\":\"praxis-table\",\"variantId\":\"table-export\",\"aiDescription\":\"Configuration for data export (Excel, PDF, CSV).\",\"tags\":[\"export\",\"download\",\"excel\",\"pdf\"],\"useWhen\":\"user asks about export settings\",\"examplePrompts\":[\"enable excel export\",\"configure pdf landscape\"]},{\"id\":\"table-appearance\",\"registryKey\":\"praxis-table\",\"variantId\":\"table-appearance\",\"aiDescription\":\"Visual settings: density, borders, colors, striping.\",\"tags\":[\"appearance\",\"theme\",\"style\",\"density\"],\"useWhen\":\"user asks to change look and feel\",\"examplePrompts\":[\"make it compact\",\"add zebra striping\",\"hide borders\"]}]}}",
30934
31004
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -30938,7 +31008,7 @@
30938
31008
  "corpusVersion": "1.0.0"
30939
31009
  },
30940
31010
  {
30941
- "chunkIndex": 159,
31011
+ "chunkIndex": 160,
30942
31012
  "chunkKind": "recipe",
30943
31013
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"meta\",\"meta\":{\"version\":\"2.0.0\",\"id\":\"table-recipe-full\",\"name\":\"Full Table Recipe\",\"description\":\"Kitchen sink config covering TableConfig v2\",\"tags\":[\"example\",\"full\",\"table\"],\"createdAt\":\"2024-01-01T00:00:00Z\",\"updatedAt\":\"2024-02-01T12:00:00Z\",\"author\":\"Praxis UI\",\"isTemplate\":true,\"derivedFrom\":\"base-template\",\"schemaId\":\"path:/api/orders#response\",\"serverHash\":\"hash-123\",\"idField\":\"id\",\"schemaContext\":{\"path\":\"/api/orders\",\"operation\":\"GET\",\"schemaType\":\"response\",\"internal\":false,\"tenant\":\"default\",\"locale\":\"en-US\"}}}",
30944
31014
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -30948,7 +31018,7 @@
30948
31018
  "corpusVersion": "1.0.0"
30949
31019
  },
30950
31020
  {
30951
- "chunkIndex": 160,
31021
+ "chunkIndex": 161,
30952
31022
  "chunkKind": "recipe",
30953
31023
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"columns\",\"columns\":[{\"field\":\"id\",\"header\":\"ID\",\"type\":\"string\",\"width\":\"80px\",\"visible\":true,\"sortable\":true,\"filterable\":true,\"resizable\":true,\"sticky\":\"start\",\"align\":\"left\",\"order\":0,\"sortField\":\"id\",\"style\":\"font-weight: 600;\",\"headerStyle\":\"text-transform: uppercase;\",\"cssClass\":\"col-id\",\"headerCssClass\":\"col-id-header\"},{\"field\":\"createdAt\",\"header\":\"Created At\",\"type\":\"date\",\"width\":\"160px\",\"sortable\":true,\"filterable\":true,\"align\":\"left\",\"order\":1,\"format\":\"yyyy-MM-dd HH:mm\"},{\"field\":\"status\",\"header\":\"Status\",\"type\":\"string\",\"sortable\":true,\"filterable\":true,\"valueMapping\":{\"ACTIVE\":\"Active\",\"INACTIVE\":\"Inactive\",\"PENDING\":\"Pending\"},\"renderer\":{\"typeExpr\":{\"expr\":\"statusRenderer\"},\"type\":\"badge\",\"badge\":{\"text\":\"Status\",\"textField\":\"statusLabel\",\"color\":\"success\",\"variant\":\"filled\",\"icon\":\"check\"}},\"conditionalRenderers\":[{\"condition\":{\"==\":[{\"var\":\"status\"},\"PENDING\"]},\"renderer\":{\"type\":\"chip\",\"chip\":{\"text\":\"Pending\",\"textField\":\"statusLabel\",\"color\":\"accent\",\"variant\":\"outlined\",\"icon\":\"hourglass_empty\"}},\"description\":\"Pending state\",\"enabled\":true},{\"condition\":{\"==\":[{\"var\":\"status\"},\"INACTIVE\"]},\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":\"Inactive\",\"textField\":\"statusLabel\",\"color\":\"warn\",\"variant\":\"soft\",\"icon\":\"block\"}},\"description\":\"Inactive state\",\"enabled\":true},{\"condition\":{\"!!\":[{\"var\":\"avatarUrl\"}]},\"renderer\":{\"type\":\"avatar\",\"avatar\":{\"src\":\"https://example.com/avatar-conditional.png\",\"srcField\":\"avatarUrl\",\"alt\":\"Avatar\",\"altField\":\"name\",\"initialsField\":\"name\",\"shape\":\"circle\",\"size\":28,\"backgroundColor\":\"#D32F2F\",\"textColor\":\"#FFFFFF\"}},\"description\":\"Avatar override\",\"enabled\":true},{\"condition\":{\"!=\":[{\"var\":\"progressPercent\"},null]},\"renderer\":{\"type\":\"progress\",\"progress\":{\"valueExpr\":\"progressPercent\",\"color\":\"accent\",\"showLabel\":false}},\"description\":\"Progress override\",\"enabled\":true},{\"condition\":{\"!=\":[{\"var\":\"rating\"},null]},\"renderer\":{\"type\":\"rating\",\"rating\":{\"valueExpr\":\"rating\",\"max\":5,\"size\":\"small\",\"readonly\":true,\"ariaLabel\":\"Status rating\",\"color\":\"gold\",\"outlineColor\":\"#bdbdbd\"}},\"description\":\"Rating override\",\"enabled\":true},{\"condition\":{\"!=\":[{\"var\":\"isActive\"},null]},\"renderer\":{\"type\":\"toggle\",\"toggle\":{\"stateExpr\":\"isActive\",\"disabledCondition\":\"locked == true\",\"ariaLabel\":\"Toggle status\",\"action\":{\"id\":\"toggle-status\",\"payloadExpr\":\"{ id: id, active: !isActive }\"}}},\"description\":\"Toggle override\",\"enabled\":true},{\"condition\":{\"==\":[{\"var\":\"status\"},\"COMPOSED\"]},\"renderer\":{\"type\":\"compose\",\"compose\":{\"items\":[{\"type\":\"icon\",\"icon\":{\"name\":\"info\"}},{\"type\":\"chip\",\"chip\":{\"textField\":\"statusLabel\",\"color\":\"accent\"}}],\"layout\":{\"direction\":\"row\",\"gap\":6}}},\"description\":\"Compose override\",\"enabled\":true}],\"conditionalStyles\":[{\"condition\":{\"==\":[{\"var\":\"status\"},\"INACTIVE\"]},\"cssClass\":\"status-inactive\",\"style\":{\"color\":\"#d32f2f\",\"fontWeight\":\"600\"},\"description\":\"Inactive style\"}],\"_styleRulesState\":{\"version\":1,\"rules\":[\"status\"]},\"_originalApiType\":\"string\",\"_isApiField\":true},{\"field\":\"priority\",\"header\":\"Priority\",\"type\":\"string\",\"renderer\":{\"type\":\"chip\",\"chip\":{\"text\":\"Priority\",\"textField\":\"priorityLabel\",\"color\":\"warn\",\"icon\":\"priority_high\",\"variant\":\"filled\"}}},{\"field\":\"amount\",\"header\":\"Amount\",\"type\":\"currency\",\"width\":\"120px\",\"align\":\"right\",\"sortable\":true,\"filterable\":true,\"format\":\"USD|symbol|2\"},{\"field\":\"total\",\"header\":\"Total\",\"type\":\"currency\",\"align\":\"right\",\"computed\":{\"expression\":\"quantity * price\",\"outputType\":\"currency\",\"format\":\"BRL|symbol|2\",\"dependencies\":[\"quantity\",\"price\"]}},{\"field\":\"delayDays\",\"header\":\"Atraso (dias)\",\"type\":\"number\",\"align\":\"right\",\"computed\":{\"expression\":\"max(0, daysLate)\",\"outputType\":\"number\",\"format\":\"1.0-0\",\"dependencies\":[\"daysLate\"]}},{\"field\":\"discountRate\",\"header\":\"Discount\",\"type\":\"percentage\",\"width\":\"110px\",\"align\":\"right\",\"format\":\"1.2-2\"},{\"field\":\"score\",\"header\":\"Score\",\"type\":\"number\",\"align\":\"right\",\"format\":\"1.0-0\",\"_generatedValueGetter\":\"weight * value\",\"_originalApiType\":\"decimal\",\"_isApiField\":false},{\"field\":\"profile\",\"header\":\"Profile\",\"type\":\"custom\",\"renderer\":{\"type\":\"avatar\",\"avatar\":{\"src\":\"https://example.com/avatar.png\",\"srcField\":\"avatarUrl\",\"alt\":\"Avatar\",\"altField\":\"name\",\"initialsField\":\"name\",\"shape\":\"circle\",\"size\":32,\"backgroundColor\":\"#E3F2FD\",\"textColor\":\"#0D47A1\"}}},{\"field\":\"progress\",\"header\":\"Progress\",\"type\":\"number\",\"renderer\":{\"type\":\"progress\",\"progress\":{\"valueExpr\":\"progressPercent\",\"color\":\"primary\",\"showLabel\":true}}},{\"field\":\"rating\",\"header\":\"Rating\",\"type\":\"number\",\"renderer\":{\"type\":\"rating\",\"rating\":{\"valueExpr\":\"rating\",\"max\":5,\"color\":\"gold\",\"outlineColor\":\"#bdbdbd\",\"size\":\"small\",\"ariaLabel\":\"Rating\",\"readonly\":true}}},{\"field\":\"active\",\"header\":\"Active\",\"type\":\"boolean\",\"renderer\":{\"type\":\"toggle\",\"toggle\":{\"stateExpr\":\"active\",\"disabledCondition\":\"locked == true\",\"ariaLabel\":\"Toggle active\",\"action\":{\"id\":\"toggle-active\",\"payloadExpr\":\"{ id: id, active: !active }\"}}}},{\"field\":\"profileLink\",\"header\":\"Profile Link\",\"type\":\"string\",\"renderer\":{\"type\":\"link\",\"link\":{\"text\":\"View profile\",\"textField\":\"name\",\"href\":\"https://example.com/profile\",\"hrefField\":\"profileUrl\",\"target\":\"_blank\",\"rel\":\"noopener\"}}},{\"field\":\"thumbnail\",\"header\":\"Thumb\",\"type\":\"custom\",\"renderer\":{\"type\":\"image\",\"image\":{\"src\":\"https://example.com/thumb.png\",\"srcField\":\"thumbnailUrl\",\"alt\":\"Thumbnail\",\"altField\":\"name\",\"width\":32,\"height\":32,\"shape\":\"rounded\",\"fit\":\"cover\",\"lazy\":true}}},{\"field\":\"statusIcon\",\"header\":\"Status Icon\",\"type\":\"custom\",\"renderer\":{\"type\":\"icon\",\"icon\":{\"name\":\"check_circle\",\"nameField\":\"statusIcon\",\"color\":\"success\",\"size\":18,\"ariaLabel\":\"Status icon\"}}},{\"field\":\"actionButton\",\"header\":\"Action\",\"type\":\"custom\",\"renderer\":{\"type\":\"button\",\"button\":{\"label\":\"Edit\",\"labelField\":\"editLabel\",\"icon\":\"edit\",\"color\":\"primary\",\"variant\":\"outlined\",\"size\":\"sm\",\"ariaLabel\":\"Edit row\",\"disabledCondition\":\"locked == true\",\"action\":{\"id\":\"edit-row\",\"payloadExpr\":\"{ id: id }\"}}}},{\"field\":\"menuActions\",\"header\":\"Menu\",\"type\":\"custom\",\"renderer\":{\"type\":\"menu\",\"menu\":{\"itemsExpr\":\"menuItems\",\"ariaLabel\":\"Row menu\"}}},{\"field\":\"notes\",\"header\":\"Notes\",\"type\":\"string\",\"renderer\":{\"type\":\"html\",\"html\":{\"template\":\"<strong>[[notes]]</strong>\",\"sanitize\":\"strict\",\"emptyFallback\":\"None\"}}}]}",
30954
31024
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -30958,7 +31028,7 @@
30958
31028
  "corpusVersion": "1.0.0"
30959
31029
  },
30960
31030
  {
30961
- "chunkIndex": 161,
31031
+ "chunkIndex": 162,
30962
31032
  "chunkKind": "recipe",
30963
31033
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"columns\",\"columns\":[{\"field\":\"composed\",\"header\":\"Composed\",\"type\":\"custom\",\"renderer\":{\"type\":\"compose\",\"compose\":{\"items\":[{\"type\":\"icon\",\"icon\":{\"name\":\"info\",\"nameField\":\"iconName\",\"color\":\"primary\",\"size\":16,\"ariaLabel\":\"Info\"}},{\"type\":\"image\",\"image\":{\"src\":\"https://example.com/thumb.png\",\"srcField\":\"thumbnailUrl\",\"alt\":\"Thumbnail\",\"altField\":\"name\",\"width\":20,\"height\":20,\"shape\":\"circle\",\"fit\":\"cover\",\"lazy\":true}},{\"type\":\"badge\",\"badge\":{\"text\":\"Status\",\"textField\":\"status\",\"color\":\"info\",\"variant\":\"soft\",\"icon\":\"info\"}},{\"type\":\"link\",\"link\":{\"text\":\"Details\",\"textField\":\"detailLabel\",\"href\":\"https://example.com/orders\",\"hrefField\":\"detailUrl\",\"target\":\"_self\",\"rel\":\"noopener\"}},{\"type\":\"button\",\"button\":{\"label\":\"Open\",\"labelField\":\"actionLabel\",\"icon\":\"open_in_new\",\"color\":\"primary\",\"variant\":\"text\",\"size\":\"sm\",\"disabledCondition\":\"locked == true\",\"action\":{\"id\":\"open-detail\",\"payloadExpr\":\"{ id: id }\"}}},{\"type\":\"chip\",\"chip\":{\"text\":\"Tag\",\"textField\":\"tagLabel\",\"color\":\"accent\",\"variant\":\"outlined\",\"icon\":\"label\"}},{\"type\":\"progress\",\"progress\":{\"valueExpr\":\"progressPercent\",\"color\":\"accent\",\"showLabel\":false}},{\"type\":\"avatar\",\"avatar\":{\"src\":\"https://example.com/avatar-mini.png\",\"srcField\":\"avatarUrl\",\"alt\":\"Avatar\",\"altField\":\"name\",\"initialsField\":\"name\",\"shape\":\"circle\",\"size\":24,\"backgroundColor\":\"#E3F2FD\",\"textColor\":\"#0D47A1\"}},{\"type\":\"toggle\",\"toggle\":{\"stateExpr\":\"active\",\"disabledCondition\":\"locked == true\",\"action\":{\"id\":\"toggle-active\",\"payloadExpr\":\"{ id: id, active: !active }\"}}},{\"type\":\"menu\",\"menu\":{\"itemsExpr\":\"menuItems\",\"ariaLabel\":\"Inline menu\"}},{\"type\":\"rating\",\"rating\":{\"valueExpr\":\"rating\",\"max\":5,\"color\":\"gold\",\"outlineColor\":\"#bdbdbd\",\"size\":\"small\",\"readonly\":true,\"ariaLabel\":\"Rating\"}},{\"type\":\"html\",\"html\":{\"template\":\"<em>[[tagline]]</em>\",\"sanitize\":\"basic\",\"emptyFallback\":\"-\"}}],\"layout\":{\"direction\":\"row\",\"gap\":8,\"align\":\"center\",\"wrap\":true,\"ellipsis\":true}}}},{\"field\":\"internalCode\",\"header\":\"Internal Code\",\"type\":\"string\",\"visible\":false}]}",
30964
31034
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -30968,7 +31038,7 @@
30968
31038
  "corpusVersion": "1.0.0"
30969
31039
  },
30970
31040
  {
30971
- "chunkIndex": 162,
31041
+ "chunkIndex": 163,
30972
31042
  "chunkKind": "recipe",
30973
31043
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"behavior\",\"behavior\":{\"pagination\":{\"enabled\":true,\"pageSize\":25,\"pageSizeOptions\":[10,25,50,100],\"showFirstLastButtons\":true,\"showPageNumbers\":true,\"showPageInfo\":true,\"position\":\"bottom\",\"style\":\"advanced\",\"totalItems\":1000,\"strategy\":\"server\",\"advanced\":{\"showJumpToPage\":true,\"allowCustomPageSize\":true,\"maxPageSize\":200}},\"sorting\":{\"enabled\":true,\"defaultSort\":{\"column\":\"createdAt\",\"direction\":\"desc\"},\"multiSort\":true,\"strategy\":\"server\",\"showSortIndicators\":true,\"indicatorPosition\":\"end\",\"allowClearSort\":true,\"advanced\":{\"_comment\":\"customComparators expects functions at runtime; JSON uses string placeholders.\",\"customComparators\":{\"amount\":\"(a: number, b: number) => a - b\"},\"preserveSort\":true}},\"filtering\":{\"enabled\":true,\"columnFilters\":{\"enabled\":true,\"defaultType\":\"text\",\"position\":\"subheader\"},\"advancedFilters\":{\"enabled\":true,\"queryBuilder\":true,\"savePresets\":true,\"settings\":{\"alwaysVisibleFields\":[\"status\",\"priority\"],\"showAdvanced\":true,\"allowSaveTags\":true,\"changeDebounceMs\":300,\"mode\":\"filter\"}},\"strategy\":\"server\",\"debounceTime\":300},\"selection\":{\"enabled\":true,\"type\":\"multiple\",\"mode\":\"checkbox\",\"allowSelectAll\":true,\"checkboxPosition\":\"start\",\"persistSelection\":true,\"persistOnDataUpdate\":true,\"maxSelections\":200,\"visual\":{\"highlightSelected\":true,\"highlightColor\":\"#e0f7fa\",\"showSelectionCount\":true}},\"interaction\":{\"rowClick\":{\"enabled\":true,\"action\":\"custom\",\"customAction\":\"openDetail\"},\"rowDoubleClick\":{\"enabled\":true,\"action\":\"edit\",\"customAction\":\"openEditor\"},\"hover\":{\"enabled\":true,\"highlightRow\":true,\"showActionsOnHover\":true},\"keyboard\":{\"enabled\":true,\"arrowNavigation\":true,\"spaceSelection\":true,\"customShortcuts\":{\"Ctrl+F\":\"focusFilter\",\"Ctrl+Shift+R\":\"refreshData\"}}},\"loading\":{\"type\":\"skeleton\",\"position\":\"replace\",\"text\":\"Loading data...\",\"showForQuickOperations\":false,\"delay\":150,\"skeleton\":{\"rows\":8,\"animated\":true,\"baseColor\":\"#eeeeee\",\"highlightColor\":\"#f5f5f5\"}},\"emptyState\":{\"message\":\"No records found\",\"icon\":\"inbox\",\"image\":\"https://example.com/empty.png\",\"actions\":[{\"label\":\"Create\",\"action\":\"createItem\",\"icon\":\"add\",\"primary\":true}],\"customTemplate\":\"empty-state-template\",\"contexts\":{\"initial\":{\"message\":\"Load data to get started\"},\"filtered\":{\"message\":\"No matches for current filters\"},\"searched\":{\"message\":\"No results for your search\"}}},\"virtualization\":{\"enabled\":true,\"itemHeight\":48,\"bufferSize\":10,\"minContainerHeight\":320,\"strategy\":\"fixed\"},\"resizing\":{\"enabled\":true,\"minColumnWidth\":80,\"maxColumnWidth\":360,\"autoFit\":false,\"persistWidths\":true},\"dragging\":{\"columns\":true,\"rows\":false,\"showDragIndicator\":true,\"columnDropZones\":[\"left\",\"right\"]}}}",
30974
31044
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -30978,7 +31048,7 @@
30978
31048
  "corpusVersion": "1.0.0"
30979
31049
  },
30980
31050
  {
30981
- "chunkIndex": 163,
31051
+ "chunkIndex": 164,
30982
31052
  "chunkKind": "recipe",
30983
31053
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"appearance\",\"appearance\":{\"density\":\"comfortable\",\"borders\":{\"showRowBorders\":true,\"showColumnBorders\":false,\"showOuterBorder\":true,\"style\":\"solid\",\"width\":1,\"color\":\"#e0e0e0\",\"specific\":{\"header\":{\"showRowBorders\":true,\"showColumnBorders\":true,\"showOuterBorder\":true,\"style\":\"dashed\",\"width\":1,\"color\":\"#bdbdbd\"},\"footer\":{\"showRowBorders\":true,\"showColumnBorders\":false,\"showOuterBorder\":true,\"style\":\"solid\",\"width\":1,\"color\":\"#e0e0e0\"},\"sticky\":{\"showRowBorders\":true,\"showColumnBorders\":true,\"showOuterBorder\":false,\"style\":\"solid\",\"width\":1,\"color\":\"#c0c0c0\"}}},\"colors\":{\"background\":\"#ffffff\",\"headerBackground\":\"#fafafa\",\"alternateRowBackground\":\"#f7f9fc\",\"hoverBackground\":\"#eef3ff\",\"selectedBackground\":\"#e3f2fd\",\"textColor\":\"#212121\",\"headerTextColor\":\"#424242\",\"states\":{\"error\":\"#d32f2f\",\"warning\":\"#f9a825\",\"success\":\"#2e7d32\",\"info\":\"#0288d1\"}},\"typography\":{\"fontFamily\":\"Segoe UI, Arial, sans-serif\",\"fontSize\":\"14px\",\"headerFontSize\":\"12px\",\"fontWeight\":400,\"headerFontWeight\":600,\"lineHeight\":\"1.4\",\"letterSpacing\":\"0.2px\",\"headerCase\":\"uppercase\"},\"spacing\":{\"cellPadding\":\"8px 12px\",\"headerPadding\":\"10px 12px\",\"rowHeight\":44,\"headerHeight\":48,\"containerSpacing\":\"8px\"},\"animations\":{\"enabled\":true,\"duration\":200,\"easing\":\"ease-in-out\",\"specific\":{\"loading\":true,\"hover\":true,\"selection\":true,\"sorting\":false}},\"responsive\":{\"breakpoints\":{\"mobile\":600,\"tablet\":960,\"desktop\":1280},\"mobile\":{\"horizontalScroll\":true,\"collapseColumns\":true,\"priorityColumns\":[\"id\",\"status\",\"amount\"],\"cardMode\":true},\"autoAdjust\":{\"hideColumns\":true,\"scaleFontSize\":true,\"adjustPadding\":true}},\"elevation\":{\"level\":2,\"shadowColor\":\"rgba(0,0,0,0.2)\",\"hoverElevation\":4}}}",
30984
31054
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -30988,7 +31058,7 @@
30988
31058
  "corpusVersion": "1.0.0"
30989
31059
  },
30990
31060
  {
30991
- "chunkIndex": 164,
31061
+ "chunkIndex": 165,
30992
31062
  "chunkKind": "recipe",
30993
31063
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"toolbar\",\"toolbar\":{\"visible\":true,\"position\":\"top\",\"layout\":{\"alignment\":\"space-between\",\"height\":56,\"padding\":\"0 16px\",\"backgroundColor\":\"#fafafa\",\"showSeparator\":true},\"title\":\"Orders\",\"subtitle\":\"Last sync 5m ago\",\"actions\":[{\"id\":\"create\",\"label\":\"Create\",\"icon\":\"add\",\"type\":\"button\",\"color\":\"primary\",\"appearance\":\"filled\",\"disabled\":false,\"action\":\"createItem\",\"tooltip\":\"Create new item\",\"shortcut\":\"Ctrl+N\",\"position\":\"start\",\"order\":1},{\"id\":\"refresh\",\"label\":\"Refresh\",\"icon\":\"refresh\",\"type\":\"icon\",\"color\":\"accent\",\"appearance\":\"text\",\"action\":\"refreshData\",\"tooltip\":\"Reload data\",\"shortcut\":\"Ctrl+R\",\"position\":\"start\",\"order\":2},{\"id\":\"export\",\"label\":\"Export\",\"icon\":\"download\",\"type\":\"menu\",\"color\":\"primary\",\"appearance\":\"outlined\",\"action\":\"openExportMenu\",\"position\":\"end\",\"order\":1,\"children\":[{\"id\":\"export-csv\",\"label\":\"Export CSV\",\"type\":\"button\",\"action\":\"exportCsv\",\"position\":\"end\"},{\"id\":\"export-pdf\",\"label\":\"Export PDF\",\"type\":\"button\",\"action\":\"exportPdf\",\"position\":\"end\"}]},{\"id\":\"help\",\"label\":\"Help\",\"icon\":\"help\",\"type\":\"fab\",\"color\":\"warn\",\"appearance\":\"tonal\",\"action\":\"openHelp\",\"tooltip\":\"Open help\",\"position\":\"end\",\"order\":99,\"visibleWhen\":\"canHelp\"}],\"filters\":{\"enabled\":true,\"quickFilters\":[{\"id\":\"active\",\"label\":\"Active\",\"filter\":{\"status\":\"ACTIVE\"},\"icon\":\"check\"},{\"id\":\"pending\",\"label\":\"Pending\",\"filter\":{\"status\":\"PENDING\"},\"icon\":\"hourglass_empty\"}],\"showAdvancedButton\":true},\"settingsMenu\":{\"enabled\":true,\"options\":[{\"id\":\"density\",\"label\":\"Density\",\"type\":\"select\",\"value\":\"comfortable\",\"options\":[\"compact\",\"comfortable\",\"spacious\"]},{\"id\":\"wrap\",\"label\":\"Wrap columns\",\"type\":\"toggle\",\"value\":false},{\"id\":\"reset\",\"label\":\"Reset\",\"type\":\"action\"}]}}}",
30994
31064
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -30998,7 +31068,7 @@
30998
31068
  "corpusVersion": "1.0.0"
30999
31069
  },
31000
31070
  {
31001
- "chunkIndex": 165,
31071
+ "chunkIndex": 166,
31002
31072
  "chunkKind": "recipe",
31003
31073
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"actions\",\"actions\":{\"row\":{\"enabled\":true,\"position\":\"end\",\"width\":\"64px\",\"sticky\":\"end\",\"actions\":[{\"id\":\"view\",\"label\":\"View\",\"icon\":\"visibility\",\"color\":\"primary\",\"disabled\":false,\"action\":\"viewItem\",\"tooltip\":\"View details\"},{\"id\":\"edit\",\"label\":\"Edit\",\"icon\":\"edit\",\"color\":\"accent\",\"action\":\"editItem\",\"tooltip\":\"Edit item\",\"visibleWhen\":\"canEdit\"},{\"id\":\"delete\",\"label\":\"Delete\",\"icon\":\"delete\",\"color\":\"warn\",\"action\":\"deleteItem\",\"tooltip\":\"Delete item\",\"requiresConfirmation\":true,\"separator\":true,\"autoDelete\":true,\"deleteEndpoint\":\"/api/orders/{id}\"}],\"display\":\"menu\",\"trigger\":\"click\",\"menuIcon\":\"more_vert\",\"menuButtonColor\":\"basic\",\"header\":{\"label\":\"Actions\",\"icon\":\"bolt\",\"tooltip\":\"Row actions\",\"align\":\"center\"},\"maxVisibleActions\":3,\"behavior\":{\"enabled\":true,\"maxInline\":{\"xs\":1,\"sm\":2,\"md\":3,\"lg\":4},\"autoStrategy\":\"breakpoints\"}},\"bulk\":{\"enabled\":true,\"position\":\"toolbar\",\"actions\":[{\"id\":\"bulk-delete\",\"label\":\"Delete\",\"icon\":\"delete\",\"color\":\"warn\",\"action\":\"bulkDelete\",\"requiresConfirmation\":true,\"minSelections\":2,\"maxSelections\":100,\"autoDelete\":true,\"deleteEndpoint\":\"/api/orders/bulk-delete\"}],\"floating\":{\"position\":\"bottom-right\",\"hideWhenEmpty\":true}},\"context\":{\"enabled\":true,\"actions\":[{\"id\":\"context-copy\",\"label\":\"Copy\",\"icon\":\"content_copy\",\"action\":\"copyCell\"},{\"id\":\"context-history\",\"label\":\"History\",\"icon\":\"history\",\"action\":\"openHistory\",\"separator\":true,\"visibleWhen\":\"canViewHistory\"}],\"trigger\":\"right-click\"},\"confirmations\":{\"default\":{\"title\":\"Confirm action\",\"message\":\"Are you sure you want to continue?\",\"confirmText\":\"Confirm\",\"cancelText\":\"Cancel\"},\"specific\":{\"deleteItem\":{\"title\":\"Delete order\",\"message\":\"This action cannot be undone.\",\"confirmText\":\"Delete\"}}}}}",
31004
31074
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31008,7 +31078,7 @@
31008
31078
  "corpusVersion": "1.0.0"
31009
31079
  },
31010
31080
  {
31011
- "chunkIndex": 166,
31081
+ "chunkIndex": 167,
31012
31082
  "chunkKind": "recipe",
31013
31083
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"export\",\"export\":{\"enabled\":true,\"formats\":[\"excel\",\"pdf\",\"csv\",\"json\",\"print\"],\"general\":{\"includeHeaders\":true,\"respectFilters\":true,\"selectedRowsOnly\":false,\"maxRows\":5000,\"defaultFileName\":\"orders-export\",\"includeColumns\":[\"id\",\"status\",\"amount\"],\"applyFormatting\":true},\"excel\":{\"sheetName\":\"Orders\",\"includeFormulas\":false,\"freezeHeaders\":true,\"autoFitColumns\":true,\"multipleSheets\":false,\"styling\":{\"headerStyle\":{\"backgroundColor\":\"#1976d2\",\"fontColor\":\"#ffffff\",\"fontWeight\":\"bold\",\"fontSize\":12},\"cellStyle\":{\"fontSize\":11,\"borderStyle\":\"thin\"},\"alternateRows\":{\"enabled\":true,\"color\":\"#f7f9fc\"}}},\"pdf\":{\"orientation\":\"landscape\",\"pageSize\":\"A4\",\"margins\":{\"top\":12,\"right\":12,\"bottom\":12,\"left\":12},\"header\":\"Orders Report\",\"footer\":\"Generated by Praxis\",\"watermark\":\"CONFIDENTIAL\",\"font\":{\"family\":\"Helvetica\",\"size\":10},\"autoPageBreak\":true},\"csv\":{\"delimiter\":\";\",\"escapeChar\":\"\\\"\",\"encoding\":\"utf-8\",\"includeBOM\":true},\"json\":{\"format\":\"pretty\",\"includeMetadata\":true,\"structure\":\"array\"},\"templates\":[{\"id\":\"export-default\",\"name\":\"Default Export\",\"description\":\"Standard template\",\"format\":\"csv\",\"config\":{\"delimiter\":\",\",\"includeHeaders\":true},\"isDefault\":true}]}}",
31014
31084
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31018,7 +31088,7 @@
31018
31088
  "corpusVersion": "1.0.0"
31019
31089
  },
31020
31090
  {
31021
- "chunkIndex": 167,
31091
+ "chunkIndex": 168,
31022
31092
  "chunkKind": "recipe",
31023
31093
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"messages\",\"messages\":{\"states\":{\"loading\":\"Loading records...\",\"empty\":\"No data available\",\"error\":\"Failed to load data\",\"noResults\":\"No results found\",\"loadingMore\":\"Loading more records...\",\"dynamic\":{\"_comment\":\"Functions are represented as strings in JSON examples. Replace with real functions at runtime.\",\"loadingWithCount\":\"(count: number) => `Loading ${count} records...`\",\"emptyWithFilter\":\"(filterCount: number) =>\\n `No results for ${filterCount} active filters`\",\"searchResults\":\"(resultCount: number, searchTerm: string) =>\\n `${resultCount} results for \\\"${searchTerm}\\\"`\"}},\"actions\":{\"confirmations\":{\"delete\":\"Delete this item?\",\"deleteMultiple\":\"Delete selected items?\",\"save\":\"Save changes?\",\"cancel\":\"Cancel changes?\",\"export\":\"Export data now?\"},\"success\":{\"save\":\"Saved successfully\",\"delete\":\"Deleted successfully\",\"export\":\"Export completed\",\"import\":\"Import completed\"},\"progress\":{\"delete\":\"Deleting item...\",\"deleteMultiple\":\"Deleting items...\"},\"canceled\":{\"delete\":\"Delete canceled\",\"deleteMultiple\":\"Bulk delete canceled\"},\"errors\":{\"save\":\"Save failed\",\"delete\":\"Delete failed\",\"export\":\"Export failed\",\"network\":\"Network error\",\"permission\":\"Permission denied\"}},\"validation\":{\"required\":\"Field is required\",\"invalid\":\"Invalid value\",\"tooLong\":\"Value is too long\",\"tooShort\":\"Value is too short\",\"types\":{\"email\":\"Invalid email\",\"url\":\"Invalid URL\",\"number\":\"Invalid number\",\"date\":\"Invalid date\"}},\"export\":{\"starting\":\"Starting export...\",\"processing\":\"Processing data...\",\"ready\":\"Export ready\",\"error\":\"Export error\",\"formats\":{\"excel\":\"Generating Excel file...\",\"pdf\":\"Generating PDF...\",\"csv\":\"Generating CSV...\",\"json\":\"Generating JSON...\"}},\"custom\":{\"customKey\":\"Custom message\"},\"templates\":[{\"id\":\"table.template.export\",\"template\":\"Exported {count} rows\",\"variables\":[\"count\"],\"_comment\":\"interpolate expects a function at runtime; JSON uses a string placeholder.\",\"interpolate\":\"(template: string, data: { count: number }) =>\\n template.replace('{count}', String(data.count))\"}]}}",
31024
31094
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31028,7 +31098,7 @@
31028
31098
  "corpusVersion": "1.0.0"
31029
31099
  },
31030
31100
  {
31031
- "chunkIndex": 168,
31101
+ "chunkIndex": 169,
31032
31102
  "chunkKind": "recipe",
31033
31103
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"localization\",\"localization\":{\"locale\":\"en-US\",\"availableLocales\":[\"en-US\",\"pt-BR\"],\"direction\":\"ltr\",\"dateTime\":{\"dateFormat\":\"yyyy-MM-dd\",\"timeFormat\":\"HH:mm\",\"dateTimeFormat\":\"yyyy-MM-dd HH:mm\",\"firstDayOfWeek\":0,\"monthNames\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],\"dayNames\":[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],\"relativeTime\":true},\"number\":{\"decimalSeparator\":\".\",\"thousandsSeparator\":\",\",\"defaultPrecision\":2,\"negativeSign\":\"-\",\"negativeSignPosition\":\"before\"},\"currency\":{\"code\":\"USD\",\"symbol\":\"$\",\"position\":\"before\",\"spacing\":false,\"precision\":2},\"translations\":{\"en-US\":{\"tableTitle\":\"Orders\"},\"pt-BR\":{\"tableTitle\":\"Pedidos\"}},\"formatting\":{\"percentageFormat\":\"0.00%\",\"fileSizeFormat\":\"decimal\",\"units\":{\"weight\":{\"kg\":\"kg\",\"lb\":\"lb\"}}}}}",
31034
31104
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31038,7 +31108,7 @@
31038
31108
  "corpusVersion": "1.0.0"
31039
31109
  },
31040
31110
  {
31041
- "chunkIndex": 169,
31111
+ "chunkIndex": 170,
31042
31112
  "chunkKind": "recipe",
31043
31113
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"data\",\"data\":{\"loadingStrategy\":\"lazy\",\"cache\":{\"enabled\":true,\"ttl\":60000,\"maxSize\":1000,\"invalidationStrategy\":\"ttl\"},\"sync\":{\"autoSync\":true,\"interval\":300000,\"deltaSync\":true,\"conflictResolution\":\"server\"},\"validation\":{\"clientSide\":true,\"serverSide\":true,\"rules\":[{\"field\":\"email\",\"type\":\"format\",\"params\":{\"pattern\":\"^\\\\S+@\\\\S+\\\\.\\\\S+$\"},\"message\":\"Invalid email format\"},{\"field\":\"amount\",\"type\":\"range\",\"params\":{\"min\":0,\"max\":100000},\"message\":\"Amount out of range\"},{\"field\":\"status\",\"type\":\"required\",\"message\":\"Status is required\"},{\"field\":\"customField\",\"type\":\"custom\",\"params\":{\"fn\":\"validateCustomField\"},\"message\":\"Custom validation failed\"}],\"showInlineErrors\":true},\"transformations\":[{\"id\":\"format-date\",\"field\":\"createdAt\",\"type\":\"format\",\"transform\":\"formatDate\",\"applyTo\":\"display\"},{\"id\":\"calc-total\",\"field\":\"amount\",\"type\":\"calculate\",\"transform\":\"calculateTotal\",\"applyTo\":\"data\"},{\"id\":\"agg-status\",\"field\":\"status\",\"type\":\"aggregate\",\"transform\":\"groupByStatus\",\"applyTo\":\"both\"}],\"polling\":{\"enabled\":true,\"interval\":60000,\"onlyWhenActive\":true,\"exponentialBackoff\":true}}}",
31044
31114
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31048,7 +31118,7 @@
31048
31118
  "corpusVersion": "1.0.0"
31049
31119
  },
31050
31120
  {
31051
- "chunkIndex": 170,
31121
+ "chunkIndex": 171,
31052
31122
  "chunkKind": "recipe",
31053
31123
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"theme\",\"theme\":{\"primary\":\"#1976d2\",\"secondary\":\"#ff9800\",\"darkMode\":false,\"custom\":{\"borderRadius\":\"8px\"},\"cssVariables\":{\"--table-row-hover\":\"#eef3ff\"}}}",
31054
31124
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31058,7 +31128,7 @@
31058
31128
  "corpusVersion": "1.0.0"
31059
31129
  },
31060
31130
  {
31061
- "chunkIndex": 171,
31131
+ "chunkIndex": 172,
31062
31132
  "chunkKind": "recipe",
31063
31133
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"performance\",\"performance\":{\"virtualization\":{\"enabled\":true,\"itemHeight\":44,\"bufferSize\":8,\"minContainerHeight\":240,\"strategy\":\"dynamic\"},\"debounce\":{\"search\":300,\"filter\":250,\"resize\":200,\"scroll\":50},\"memory\":{\"maxRows\":10000,\"autoCleanup\":true,\"cleanupInterval\":600000},\"rendering\":{\"useRAF\":true,\"batchUpdates\":true,\"batchSize\":50,\"optimizeReRenders\":true},\"lazyLoading\":{\"images\":true,\"components\":true,\"threshold\":200}}}",
31064
31134
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31068,7 +31138,7 @@
31068
31138
  "corpusVersion": "1.0.0"
31069
31139
  },
31070
31140
  {
31071
- "chunkIndex": 172,
31141
+ "chunkIndex": 173,
31072
31142
  "chunkKind": "recipe",
31073
31143
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"plugins\",\"plugins\":[{\"id\":\"audit\",\"name\":\"AuditPlugin\",\"version\":\"1.0.0\",\"enabled\":true,\"settings\":{\"logLevel\":\"info\"},\"hooks\":{\"onRowClick\":\"trackRowClick\",\"onExport\":\"trackExport\"}}]}",
31074
31144
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31078,7 +31148,7 @@
31078
31148
  "corpusVersion": "1.0.0"
31079
31149
  },
31080
31150
  {
31081
- "chunkIndex": 173,
31151
+ "chunkIndex": 174,
31082
31152
  "chunkKind": "recipe",
31083
31153
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"accessibility\",\"accessibility\":{\"enabled\":true,\"announcements\":{\"dataChanges\":true,\"userActions\":true,\"loadingStates\":true,\"liveRegion\":\"polite\"},\"keyboard\":{\"tabNavigation\":true,\"arrowNavigation\":true,\"shortcuts\":true,\"skipLinks\":true,\"focusTrap\":false},\"highContrast\":false,\"reduceMotion\":false,\"ariaLabels\":{\"table\":\"Orders table\",\"pagination\":\"Pagination\"}}}",
31084
31154
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31088,7 +31158,7 @@
31088
31158
  "corpusVersion": "1.0.0"
31089
31159
  },
31090
31160
  {
31091
- "chunkIndex": 174,
31161
+ "chunkIndex": 175,
31092
31162
  "chunkKind": "recipe",
31093
31163
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"rowConditionalStyles\",\"rowConditionalStyles\":[{\"condition\":{\"==\":[{\"var\":\"priority\"},\"HIGH\"]},\"cssClass\":\"row-priority-high\",\"style\":{\"backgroundColor\":\"#fff8e1\"},\"description\":\"Highlight high priority rows\"}]}",
31094
31164
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31098,7 +31168,7 @@
31098
31168
  "corpusVersion": "1.0.0"
31099
31169
  },
31100
31170
  {
31101
- "chunkIndex": 175,
31171
+ "chunkIndex": 176,
31102
31172
  "chunkKind": "recipe",
31103
31173
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"_rowStyleRulesState\",\"_rowStyleRulesState\":{\"version\":1,\"rules\":[\"priority\"]}}",
31104
31174
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31108,7 +31178,7 @@
31108
31178
  "corpusVersion": "1.0.0"
31109
31179
  },
31110
31180
  {
31111
- "chunkIndex": 176,
31181
+ "chunkIndex": 177,
31112
31182
  "chunkKind": "recipe",
31113
31183
  "content": "{\"componentId\":\"praxis-table\",\"chunkSection\":\"_variants\",\"_variants\":[{\"id\":\"sorting-default-single\",\"description\":\"Use single defaultSort object instead of array.\",\"patch\":{\"behavior\":{\"sorting\":{\"defaultSort\":{\"column\":\"createdAt\",\"direction\":\"desc\"}}}}},{\"id\":\"pagination-client\",\"description\":\"Client-side pagination example.\",\"patch\":{\"behavior\":{\"pagination\":{\"strategy\":\"client\",\"totalItems\":250}}}},{\"id\":\"selection-single-row\",\"description\":\"Single selection with row mode.\",\"patch\":{\"behavior\":{\"selection\":{\"type\":\"single\",\"mode\":\"row\"}}}},{\"id\":\"sticky-boolean\",\"description\":\"Sticky as boolean for simple cases.\",\"patch\":{\"columns\":[{\"field\":\"id\",\"header\":\"ID\",\"sticky\":true}]}},{\"id\":\"typeexpr-string\",\"description\":\"Renderer typeExpr as string instead of object.\",\"patch\":{\"columns\":[{\"field\":\"status\",\"header\":\"Status\",\"renderer\":{\"typeExpr\":\"statusRenderer\"}}]}},{\"id\":\"row-actions-inline-number\",\"description\":\"Row actions maxInline as number.\",\"patch\":{\"actions\":{\"row\":{\"behavior\":{\"maxInline\":2}}}}},{\"id\":\"row-actions-inline-auto\",\"description\":\"Row actions maxInline as auto.\",\"patch\":{\"actions\":{\"row\":{\"behavior\":{\"maxInline\":\"auto\"}}}}},{\"id\":\"virtualization-min-height-string\",\"description\":\"minContainerHeight as CSS string.\",\"patch\":{\"behavior\":{\"virtualization\":{\"minContainerHeight\":\"50vh\"}}}},{\"id\":\"include-columns-list\",\"description\":\"Export includeColumns as explicit array.\",\"patch\":{\"export\":{\"general\":{\"includeColumns\":[\"id\",\"status\",\"amount\"]}}}}]}",
31114
31184
  "sourcePointer": "examples/ai-recipes/praxis-table.json",
@@ -31118,7 +31188,7 @@
31118
31188
  "corpusVersion": "1.0.0"
31119
31189
  },
31120
31190
  {
31121
- "chunkIndex": 177,
31191
+ "chunkIndex": 178,
31122
31192
  "chunkKind": "recipe",
31123
31193
  "content": "{\"_comment\":\"Template to display column values as badges (tags/chips).\",\"templateMeta\":{\"variantId\":\"renderer-badge\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"renderer\",\"badge\",\"chip\",\"tag\",\"status\",\"appearance\"],\"useWhen\":\"user asks to show a column as a badge, tag, or chip, possibly with colors mapping to values\",\"examplePrompts\":[\"show status as a badge\",\"display priority as colored tags\",\"use badges for the category column\"]},\"columns\":[{\"field\":\"status\",\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":\"Status\",\"textField\":\"statusLabel\",\"color\":\"primary\",\"variant\":\"filled\"}},\"conditionalRenderers\":[{\"condition\":{\"==\":[{\"var\":\"status\"},\"ERROR\"]},\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":\"Error\",\"color\":\"warn\",\"icon\":\"error\"}},\"enabled\":true},{\"condition\":{\"==\":[{\"var\":\"status\"},\"SUCCESS\"]},\"renderer\":{\"type\":\"badge\",\"badge\":{\"text\":\"Success\",\"color\":\"success\",\"icon\":\"check\"}},\"enabled\":true}]}]}",
31124
31194
  "sourcePointer": "examples/ai-recipes/praxis-table.renderer-badge.json",
@@ -31128,7 +31198,7 @@
31128
31198
  "corpusVersion": "1.0.0"
31129
31199
  },
31130
31200
  {
31131
- "chunkIndex": 178,
31201
+ "chunkIndex": 179,
31132
31202
  "chunkKind": "recipe",
31133
31203
  "content": "{\"_comment\":\"Template to display icons in a column, either static or conditional.\",\"templateMeta\":{\"variantId\":\"renderer-icon\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"renderer\",\"icon\",\"visual\",\"appearance\"],\"useWhen\":\"user asks to display an icon in a column, usually based on a condition\",\"examplePrompts\":[\"show a check icon if active\",\"display a warning icon for late items\",\"add an icon column for status\"]},\"columns\":[{\"field\":\"active\",\"renderer\":{\"type\":\"icon\",\"icon\":{\"name\":\"check_circle\",\"color\":\"success\"}},\"conditionalRenderers\":[{\"condition\":{\"==\":[{\"var\":\"active\"},false]},\"renderer\":{\"type\":\"icon\",\"icon\":{\"name\":\"cancel\",\"color\":\"warn\"}},\"enabled\":true}]}]}",
31134
31204
  "sourcePointer": "examples/ai-recipes/praxis-table.renderer-icon.json",
@@ -31138,7 +31208,7 @@
31138
31208
  "corpusVersion": "1.0.0"
31139
31209
  },
31140
31210
  {
31141
- "chunkIndex": 179,
31211
+ "chunkIndex": 180,
31142
31212
  "chunkKind": "recipe",
31143
31213
  "content": "{\"_comment\":\"Template to display a progress bar in a column.\",\"templateMeta\":{\"variantId\":\"renderer-progress\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"renderer\",\"progress\",\"bar\",\"visual\",\"percentage\"],\"useWhen\":\"user asks to show a progress bar or visual indicator of completion/percentage\",\"examplePrompts\":[\"show completion as a progress bar\",\"display usage with a bar\",\"visualize the percentage\"]},\"columns\":[{\"field\":\"completion\",\"renderer\":{\"type\":\"progress\",\"progress\":{\"valueExpr\":\"completion\",\"color\":\"primary\",\"showLabel\":true}}}]}",
31144
31214
  "sourcePointer": "examples/ai-recipes/praxis-table.renderer-progress.json",
@@ -31148,7 +31218,7 @@
31148
31218
  "corpusVersion": "1.0.0"
31149
31219
  },
31150
31220
  {
31151
- "chunkIndex": 180,
31221
+ "chunkIndex": 181,
31152
31222
  "chunkKind": "recipe",
31153
31223
  "content": "{\"_comment\":\"Template to apply conditional styling (colors, fonts) to rows or columns based on data values.\",\"templateMeta\":{\"variantId\":\"style-conditional\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"style\",\"animation\",\"appearance\",\"conditional\",\"color\",\"background\",\"highlight\"],\"useWhen\":\"user asks to highlight, color, style, or animate rows/cells based on a condition (e.g., 'red if negative', 'highlight high priority', 'pulse critical rows')\",\"examplePrompts\":[\"highlight rows where status is urgent\",\"make the amount red if less than zero\",\"bold the text for active items\",\"animate salary rows above 30000\",\"pulse the status cell when it is critical\"]},\"columns\":[{\"field\":\"amount\",\"conditionalStyles\":[{\"condition\":{\"<\":[{\"var\":\"amount\"},0]},\"style\":{\"color\":\"#d32f2f\",\"fontWeight\":\"bold\"}}]},{\"field\":\"status\",\"conditionalRenderers\":[{\"id\":\"status-critical-alert\",\"condition\":{\"===\":[{\"var\":\"status\"},\"CRITICAL\"]},\"animation\":{\"preset\":\"critical-alert\",\"trigger\":\"onChange\",\"intensity\":\"strong\",\"repeat\":\"loop\"},\"description\":\"Animate only the status cell for critical rows\",\"enabled\":true}]}],\"rowConditionalStyles\":[{\"id\":\"priority-high-highlight\",\"condition\":{\"==\":[{\"var\":\"priority\"},\"HIGH\"]},\"surfacePresetRef\":{\"id\":\"warning\",\"catalogVersion\":\"0.2.0\"},\"style\":{\"borderLeft\":\"4px solid #f59e0b\"},\"description\":\"Destaca prioridade alta com superfície semântica acessível e marcador lateral visível.\"}],\"rowConditionalRenderers\":[{\"id\":\"priority-high-pulse\",\"condition\":{\"===\":[{\"var\":\"priority\"},\"HIGH\"]},\"animation\":{\"preset\":\"pulse-soft\",\"trigger\":\"onAppear\",\"intensity\":\"subtle\",\"repeat\":\"once\",\"durationMs\":1200},\"description\":\"Animate the full row for high priority records\",\"enabled\":true}]}",
31154
31224
  "sourcePointer": "examples/ai-recipes/praxis-table.style-conditional.json",
@@ -31158,7 +31228,7 @@
31158
31228
  "corpusVersion": "1.0.0"
31159
31229
  },
31160
31230
  {
31161
- "chunkIndex": 181,
31231
+ "chunkIndex": 182,
31162
31232
  "chunkKind": "recipe",
31163
31233
  "content": "{\"_comment\":\"Variant focused on toolbar configuration and actions.\",\"templateMeta\":{\"variantId\":\"toolbar\",\"variantOf\":\"praxis-table\",\"registryKey\":\"praxis-table\",\"tags\":[\"toolbar\",\"actions\"],\"useWhen\":\"user asks to change toolbar, buttons, or quick actions\",\"examplePrompts\":[\"add export buttons to the toolbar\",\"change the toolbar title\"]},\"meta\":{\"version\":\"2.0.0\",\"id\":\"table-recipe-full\",\"name\":\"Full Table Recipe\",\"description\":\"Kitchen sink config covering TableConfig v2\",\"tags\":[\"example\",\"full\",\"table\"],\"createdAt\":\"2024-01-01T00:00:00Z\",\"updatedAt\":\"2024-02-01T12:00:00Z\",\"author\":\"Praxis UI\",\"isTemplate\":true,\"derivedFrom\":\"base-template\",\"schemaId\":\"path:/api/orders#response\",\"serverHash\":\"hash-123\",\"idField\":\"id\",\"schemaContext\":{\"path\":\"/api/orders\",\"operation\":\"GET\",\"schemaType\":\"response\",\"internal\":false,\"tenant\":\"default\",\"locale\":\"en-US\"}},\"toolbar\":{\"visible\":true,\"position\":\"top\",\"layout\":{\"alignment\":\"space-between\",\"height\":56,\"padding\":\"0 16px\",\"backgroundColor\":\"#fafafa\",\"showSeparator\":true},\"title\":\"Orders\",\"subtitle\":\"Last sync 5m ago\",\"actions\":[{\"id\":\"create\",\"label\":\"Create\",\"icon\":\"add\",\"type\":\"button\",\"color\":\"primary\",\"appearance\":\"filled\",\"disabled\":false,\"action\":\"createItem\",\"tooltip\":\"Create new item\",\"shortcut\":\"Ctrl+N\",\"position\":\"start\",\"order\":1},{\"id\":\"refresh\",\"label\":\"Refresh\",\"icon\":\"refresh\",\"type\":\"icon\",\"color\":\"accent\",\"appearance\":\"text\",\"action\":\"refreshData\",\"tooltip\":\"Reload data\",\"shortcut\":\"Ctrl+R\",\"position\":\"start\",\"order\":2},{\"id\":\"export\",\"label\":\"Export\",\"icon\":\"download\",\"type\":\"menu\",\"color\":\"primary\",\"appearance\":\"outlined\",\"action\":\"openExportMenu\",\"position\":\"end\",\"order\":1,\"children\":[{\"id\":\"export-csv\",\"label\":\"Export CSV\",\"type\":\"button\",\"action\":\"exportCsv\",\"position\":\"end\"},{\"id\":\"export-pdf\",\"label\":\"Export PDF\",\"type\":\"button\",\"action\":\"exportPdf\",\"position\":\"end\"}]},{\"id\":\"help\",\"label\":\"Help\",\"icon\":\"help\",\"type\":\"fab\",\"color\":\"warn\",\"appearance\":\"tonal\",\"action\":\"openHelp\",\"tooltip\":\"Open help\",\"position\":\"end\",\"order\":99,\"visibleWhen\":\"canHelp\"}],\"filters\":{\"enabled\":true,\"quickFilters\":[{\"id\":\"active\",\"label\":\"Active\",\"filter\":{\"status\":\"ACTIVE\"},\"icon\":\"check\"},{\"id\":\"pending\",\"label\":\"Pending\",\"filter\":{\"status\":\"PENDING\"},\"icon\":\"hourglass_empty\"}],\"showAdvancedButton\":true},\"settingsMenu\":{\"enabled\":true,\"options\":[{\"id\":\"density\",\"label\":\"Density\",\"type\":\"select\",\"value\":\"comfortable\",\"options\":[\"compact\",\"comfortable\",\"spacious\"]},{\"id\":\"wrap\",\"label\":\"Wrap columns\",\"type\":\"toggle\",\"value\":false},{\"id\":\"reset\",\"label\":\"Reset\",\"type\":\"action\"}]}}}",
31164
31234
  "sourcePointer": "examples/ai-recipes/praxis-table.toolbar.json",