@praxisui/table 10.0.0-rc.3 → 10.0.0-rc.30

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,6 +1,6 @@
1
1
  import { Observable, firstValueFrom } from 'rxjs';
2
2
  import { withAuthoringScopePolicy } from '@praxisui/ai';
3
- import { af as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-DKvwb6v1.mjs';
3
+ import { ar as setTableActionGlobalActionRef } from './praxisui-table-praxisui-table-Dg1mPimH.mjs';
4
4
 
5
5
  class TableAgenticAuthoringTurnFlow {
6
6
  adapter;
@@ -1,7 +1,7 @@
1
1
  import { firstValueFrom } from 'rxjs';
2
2
  import { BaseAiAdapter, sanitizePraxisAssistantText, createComponentAuthoringContext } from '@praxisui/ai';
3
3
  import { PRAXIS_GLOBAL_ACTION_CATALOG, deepMerge } from '@praxisui/core';
4
- import { L as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, n as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, $ as coerceTableComponentEditPlans, a1 as compileTableComponentEditPlans, Q as TASK_PRESETS, a6 as getTableComponentEditPlanCapabilities, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, K as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-DKvwb6v1.mjs';
4
+ import { W as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, p as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, a6 as coerceTableComponentEditPlans, a8 as compileTableComponentEditPlans, Y as TASK_PRESETS, ae as getTableComponentEditPlanCapabilities, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, V as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-Dg1mPimH.mjs';
5
5
 
6
6
  const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
7
7
  mode: 'expression',
@@ -1 +1,2 @@
1
- export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticsTableConfigAdapterService, b as AnalyticsTableContractService, c as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, d as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, e as ColumnsConfigEditorComponent, D as DATE_PRESETS, f as DataFormatterComponent, g as DataFormattingService, F as FORMULA_TEMPLATES, h as FilterConfigService, i as FilterSettingsComponent, j as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, k as PRAXIS_FILTER_AUTHORING_MANIFEST, l as PRAXIS_FILTER_COMPONENT_METADATA, m as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, n as PRAXIS_TABLE_AUTHORING_MANIFEST, o as PRAXIS_TABLE_COMPONENT_METADATA, p as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, q as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, r as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, s as PraxisFilter, t as PraxisFilterWidgetConfigEditor, u as PraxisTable, v as PraxisTableConfigEditor, w as PraxisTableInlineAuthoringEditorComponent, x as PraxisTableToolbar, y as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, z as TABLE_COMPONENT_AI_CAPABILITIES, E as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, G as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, H as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, I as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, K as TABLE_COMPONENT_EDIT_PLAN_KIND, O as TABLE_COMPONENT_EDIT_PLAN_VERSION, Q as TASK_PRESETS, R as TableDefaultsProvider, U as TableRulesEditorComponent, V as ToolbarActionsEditorComponent, W as ValueMappingEditorComponent, X as VisualFormulaBuilderComponent, Y as analyticsComparisonMetricField, Z as buildTableApplyPlan, _ as coerceTableComponentEditPlan, $ as coerceTableComponentEditPlans, a0 as compileTableComponentEditPlan, a1 as compileTableComponentEditPlans, a2 as createTableAuthoringDocument, a3 as getActionId, a4 as getEnum, a5 as getTableCapabilities, a6 as getTableComponentEditPlanCapabilities, a7 as isTableRendererSupportedByRichContentP0, a8 as mapTableRendererToRichContentP0, a9 as normalizeTableAuthoringDocument, aa as parseLegacyOrTableDocument, ab as providePraxisFilterMetadata, ac as providePraxisTableMetadata, ad as providePraxisTableToolbarAppearance, ae as serializeTableAuthoringDocument, ag as toCanonicalTableConfig, ah as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-DKvwb6v1.mjs';
1
+ export { A as ANALYTICS_TABLE_ROW_KEY_FIELD, a as AnalyticalDrawerRegistryService, b as AnalyticsTableConfigAdapterService, c as AnalyticsTableContractService, d as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, e as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, f as ColumnsConfigEditorComponent, D as DATE_PRESETS, g as DataFormatterComponent, h as DataFormattingService, F as FORMULA_TEMPLATES, i as FilterConfigService, j as FilterSettingsComponent, k as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, l as PRAXIS_ANALYTICAL_DRAWER_SCHEMAS, m as PRAXIS_FILTER_AUTHORING_MANIFEST, n as PRAXIS_FILTER_COMPONENT_METADATA, o as PRAXIS_FILTER_VIEW_CONTEXT_SCHEMA_VERSION, p as PRAXIS_TABLE_AUTHORING_MANIFEST, q as PRAXIS_TABLE_COMPONENT_METADATA, r as PRAXIS_TABLE_TOOLBAR_APPEARANCE_PRESETS, s as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, t as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, u as PraxisAnalyticalDrawerComponent, v as PraxisFilter, w as PraxisFilterOutletComponent, x as PraxisFilterOutletDirective, y as PraxisFilterWidgetConfigEditor, z as PraxisScopeBarComponent, E as PraxisTable, G as PraxisTableConfigEditor, H as PraxisTableInlineAuthoringEditorComponent, I as PraxisTableToolbar, K as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, L as TABLE_COMPONENT_AI_CAPABILITIES, O as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, Q as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, R as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, U as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, V as TABLE_COMPONENT_EDIT_PLAN_KIND, X as TABLE_COMPONENT_EDIT_PLAN_VERSION, Y as TASK_PRESETS, Z as TableDefaultsProvider, _ as TableRulesEditorComponent, $ as ToolbarActionsEditorComponent, a0 as ValueMappingEditorComponent, a1 as VisualFormulaBuilderComponent, a2 as analyticsComparisonMetricField, a3 as applyComputedFieldsToRows, a4 as buildTableApplyPlan, a5 as coerceTableComponentEditPlan, a6 as coerceTableComponentEditPlans, a7 as compileTableComponentEditPlan, a8 as compileTableComponentEditPlans, a9 as createTableAuthoringDocument, aa as formatComputedFieldValue, ab as getActionId, ac as getEnum, ad as getTableCapabilities, ae as getTableComponentEditPlanCapabilities, af as interpolateRelationEndpoint, ag as isAnalyticalDrawerSchema, ah as isTableRendererSupportedByRichContentP0, ai as mapTableRendererToRichContentP0, aj as normalizeComputedFieldDefinition, ak as normalizeTableAuthoringDocument, al as parseLegacyOrTableDocument, am as providePraxisAnalyticalDrawerSchemas, an as providePraxisFilterMetadata, ao as providePraxisTableMetadata, ap as providePraxisTableToolbarAppearance, aq as serializeTableAuthoringDocument, as as toCanonicalTableConfig, at as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-Dg1mPimH.mjs';
2
+ export { createDynamicRecord, extractRecordId, isDynamicDataRecord, resolveDataField } from '@praxisui/core';
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "10.0.0-rc.3",
3
+ "version": "10.0.0-rc.30",
4
4
  "description": "Advanced data table for Angular (Praxis UI) with editing, filtering, sorting, virtualization, and settings panel integration.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
7
7
  "@angular/core": "^21.0.0",
8
8
  "@angular/platform-browser": "^21.0.0",
9
- "@praxisui/ai": "^10.0.0-rc.3",
10
- "@praxisui/core": "^10.0.0-rc.3",
11
- "@praxisui/dynamic-fields": "^10.0.0-rc.3",
12
- "@praxisui/dynamic-form": "^10.0.0-rc.3",
13
- "@praxisui/metadata-editor": "^10.0.0-rc.3",
14
- "@praxisui/rich-content": "^10.0.0-rc.3",
15
- "@praxisui/settings-panel": "^10.0.0-rc.3",
16
- "@praxisui/table-rule-builder": "^10.0.0-rc.3",
9
+ "@praxisui/ai": "^10.0.0-rc.30",
10
+ "@praxisui/core": "^10.0.0-rc.30",
11
+ "@praxisui/dynamic-fields": "^10.0.0-rc.30",
12
+ "@praxisui/dynamic-form": "^10.0.0-rc.30",
13
+ "@praxisui/metadata-editor": "^10.0.0-rc.30",
14
+ "@praxisui/rich-content": "^10.0.0-rc.30",
15
+ "@praxisui/settings-panel": "^10.0.0-rc.30",
16
+ "@praxisui/table-rule-builder": "^10.0.0-rc.30",
17
17
  "@angular/cdk": "^21.0.0",
18
18
  "@angular/forms": "^21.0.0",
19
19
  "@angular/material": "^21.0.0",
20
20
  "@angular/router": "^21.0.0",
21
- "@praxisui/dialog": "^10.0.0-rc.3",
21
+ "@praxisui/dialog": "^10.0.0-rc.30",
22
22
  "rxjs": "~7.8.0"
23
23
  },
24
24
  "dependencies": {
@@ -50,6 +50,10 @@
50
50
  "types": "./types/praxisui-table.d.ts",
51
51
  "default": "./fesm2022/praxisui-table.mjs"
52
52
  },
53
+ "./authoring": {
54
+ "types": "./types/praxisui-table-authoring.d.ts",
55
+ "default": "./fesm2022/praxisui-table-authoring.mjs"
56
+ },
53
57
  "./filter-drawer-adapter": {
54
58
  "types": "./types/praxisui-table-filter-drawer-adapter.d.ts",
55
59
  "default": "./fesm2022/praxisui-table-filter-drawer-adapter.mjs"
@@ -109,11 +109,16 @@ Este documento e a referencia canonica da API JSON de praxis-table.
109
109
  > [!WARNING]
110
110
  > **Segurança Corporativa em Cenários Corporativos**: A visibilidade de colunas via dropdown da toolbar é um recurso estritamente visual (layout de apresentação do lado do cliente). A ocultação de colunas **não** protege o dado sensível da transmissão de rede nem de inspeção técnica. Se determinados campos (ex: salários, senhas ou tokens) forem confidenciais para o nível de permissão do usuário atual, a restrição de dados deve ser realizada obrigatoriamente no lado do servidor (através da filtragem de propriedades nas APIs de CRUD e consulta), e nunca por meio de ocultação puramente visual na tabela.
111
111
 
112
- ## Quick filters and density
113
-
114
- - `config.toolbar.filters.quickFilters[]` materializa um pequeno seletor de escopo na toolbar. Cada item declara `id`, `label`, `filter` e `icon` opcional. O runtime mantém no máximo um item ativo; acionar novamente o item atual restaura os critérios anteriores.
115
- - O filtro rápido é combinado com os critérios já ativos. Ao desativá-lo, a tabela restaura os critérios anteriores sem perder o contexto do operador.
116
- - Aplicar ou limpar o formulário de filtros avançados encerra o estado visual do filtro rápido para evitar dois controles aparentarem governar critérios divergentes.
112
+ ## Quick filters, unified filter region, and density
113
+
114
+ - **Região única de filtros e dono explícito da consulta**: Em telas de coleção com `praxis-table`, a própria tabela é a dona canônica dos filtros editáveis pelo usuário. Quando um campo (ex.: `ativo` / `status`) é governado por `config.toolbar.filters.quickFilters[]`, evite duplicá-lo em `alwaysVisibleFields` (mantenha-o apenas nos escopos rápidos e opcionalmente na gaveta avançada `selectedFieldIds`).
115
+ - `config.toolbar.filters.quickFilters[]` materializa um seletor de escopo governado na toolbar. Cada item declara `id`, `label`, `filter` e `icon` opcional.
116
+ - Um item com `filter: {}` representa o escopo **"Todos"** (sem restrição editável): acioná-lo limpa critérios editáveis anteriores em `filterCriteria` e em `queryContext.filters` não estruturais sem exigir reload da página.
117
+ - Critérios booleanos explícitos `false` (ex.: `{ ativo: false }`) são preservados integralmente na serialização remota e na avaliação local.
118
+ - **Reconciliação de atalhos externos (`queryContext.filters`) vs. filtros estruturais (`queryContext.meta`)**:
119
+ - Quando cards de KPI ou widgets externos aplicam um filtro editável via `queryContext.filters` (ex.: `{ ativo: true }`), a tabela sincroniza `advancedFilterValue`, `activeCrossFilters` e `activeQuickFilterId` correspondente.
120
+ - Se o operador alterar o escopo rápido (`onQuickFilterChange`), submeter/limpar os filtros da tabela (`onAdvancedFilterSubmit` / `onAdvancedFilterClear`) ou remover chips (`onClearCrossFilter` / `onClearAllCrossFilters`), a tabela reconcilia as chaves editáveis em `queryContext.filters` e emite `queryContextChange` e `queryContextClear`, impedindo que `queryContext.filters` órfãos continuem sobrescrevendo `filterCriteria`.
121
+ - Filtros estruturais de contexto (`queryContext.meta.relatedResource === true` + `parentFilterField`, `queryContext.meta.structuralFields`, `queryContext.meta.immutableFields` ou `queryContext.meta.structural === true`) permanecem protegidos e nunca são limpos por ações de filtro do usuário.
117
122
  - A composição adaptativa é responsabilidade do runtime: identidade, escopo, consulta e comandos se reorganizam pela largura do container da tabela. Dentro da consulta, campos editáveis formam a região de critérios; tags/atalhos salvos e comandos de gerenciamento formam um único cluster auxiliar. Em largura intermediária, os critérios e esse cluster completo compartilham o mesmo fluxo de quebra para aproveitar a faixa final sem criar uma linha órfã; em largura estreita, o cluster migra inteiro para a faixa seguinte. O host não precisa declarar coordenadas, breakpoints ou ordem visual adicional.
118
123
  - Em superfícies de até `640px`, os campos de consulta absorvem o espaço residual da própria linha até o limite do arquétipo; em `320px`, entradas que não cabem em pares ocupam a largura útil integral. Presets e comandos curtos preservam largura intrínseca. Grupos binários de filtros rápidos equilibram as duas opções em até `540px`, enquanto grupos maiores mantêm largura por conteúdo e overflow acessível.
119
124
  - `advancedFilters.settings.alwaysVisibleFields` deve conter apenas critérios frequentes. Atalhos persistidos e comandos de gerenciamento não devem ser simulados como campos sempre visíveis nem reposicionados por seletores CSS internos do host.
@@ -949,13 +954,13 @@ O contrato principal e `TableConfig` (alias de `TableConfigV2`) com extensoes de
949
954
 
950
955
  #### Projeção governada de colunas
951
956
 
952
- Quando `columnProjection.source = "schema"`, a lista estrutural de colunas é
953
- materializada a partir de `/schemas/filtered`; a página declara apenas diferenças
954
- em `columnProjection.overrides`, indexadas pelo nome canônico do campo:
957
+ Quando `columnProjection.source = "schema"`, a declaração explícita de `columns` é opcional.
958
+ A lista estrutural de colunas é materializada em tempo de execução a partir de `/schemas/filtered`;
959
+ a configuração declara apenas a seleção ordenada em `columnProjection.include` e as decisões
960
+ editoriais pontuais em `columnProjection.overrides`, indexadas pelo nome canônico do campo:
955
961
 
956
962
  ```json
957
963
  {
958
- "columns": [],
959
964
  "columnProjection": {
960
965
  "source": "schema",
961
966
  "include": ["competencia", "salarioBruto", "salarioLiquido"],
@@ -969,6 +974,11 @@ em `columnProjection.overrides`, indexadas pelo nome canônico do campo:
969
974
  }
970
975
  ```
971
976
 
977
+ Quando consumido dentro de `<praxis-crud>`, o contrato também auto-infere a `schemaUrl`
978
+ de `behavior.filtering.advancedFilters` a partir de `resource.schemaPath` ou `resource.path`
979
+ (normalizado para `/schemas/filtered?path=/api/.../filter&operation=post&schemaType=request`),
980
+ eliminando URLs estáticas duplicadas nos arquivos de configuração.
981
+
972
982
  O runtime reaplica os overrides após bootstrap e atualização do schema. Uma chave
973
983
  desconhecida não cria coluna, e `field` não pode ser alterado pelo override. Este
974
984
  contrato não cria “defaults da surface” paralelos: tipo, visibilidade, ordem e
@@ -1294,6 +1304,8 @@ Em `scroll-auto`, o viewport e uma regiao focalizavel por teclado para que o scr
1294
1304
  | --- | --- | --- | --- | --- | --- |
1295
1305
  | `columns[]` | `TableColumnConfig[]` | Yes | `[]` | Active | Definicao de colunas, renderers e regras de exibicao. |
1296
1306
  | `behavior` | `TableBehaviorConfig` | No | defaults do runtime | Partial | Inclui paginacao, filtro, selecao e expansao por blocos. |
1307
+ | `behavior.filtering.advancedFilters.settings.showAddButton` | `boolean` | No | `true` | Active | Controla a exibicao do botao `+` de adicionar campos rapidos (`alwaysVisibleFields`) na barra do `PraxisFilter` embutido. |
1308
+ | `behavior.filtering.advancedFilters.settings.showFilterSettings` | `boolean` | No | `isCustomizationAvailable()` | Active | Controla a exibicao da engrenagem de preferencias do `PraxisFilter` embutido; quando `enableCustomization` esta desabilitado, permanece oculta. |
1297
1309
  | `toolbar.actions[]` | `ToolbarActionConfig[]` | No | `[]` | Partial | Acoes de toolbar com roteamento para `toolbarAction` e `bulkAction`. |
1298
1310
  | `toolbar.title` | `string` | No | `undefined` | Active | Titulo renderizado na regiao de identidade da toolbar principal, antes de filtros e acoes. |
1299
1311
  | `toolbar.subtitle` | `string` | No | `undefined` | Active | Texto auxiliar renderizado abaixo do titulo quando houver espaco. |
@@ -0,0 +1,104 @@
1
+ import { TableConfig, FieldDefinition } from '@praxisui/core';
2
+
3
+ interface EditorDocument<TConfig, TBindings = unknown> {
4
+ kind: string;
5
+ version: number;
6
+ config: TConfig;
7
+ bindings?: TBindings;
8
+ }
9
+ type TableHorizontalScroll = 'auto' | 'wrap' | 'none';
10
+ interface TableBindings {
11
+ resourcePath?: string | null;
12
+ horizontalScroll?: TableHorizontalScroll;
13
+ }
14
+ interface TableAuthoringDocument extends EditorDocument<TableConfig, TableBindings> {
15
+ kind: 'praxis.table.editor';
16
+ version: 1;
17
+ }
18
+ interface EditorDiagnostic {
19
+ level: 'error' | 'warning' | 'info';
20
+ code: string;
21
+ message: string;
22
+ path?: string;
23
+ }
24
+ interface TableValidationContext {
25
+ hasLocalDataInput?: boolean;
26
+ localDataModeDefaultEnabled?: boolean;
27
+ server?: {
28
+ idField?: string;
29
+ schemaHash?: string;
30
+ };
31
+ }
32
+ interface TableProjectionContext {
33
+ hasLocalDataInput?: boolean;
34
+ localDataModeDefaultEnabled?: boolean;
35
+ }
36
+ interface TableRuntimeContext {
37
+ hasLocalDataInput?: boolean;
38
+ localDataModeDefaultEnabled?: boolean;
39
+ server?: {
40
+ idField?: string;
41
+ schemaId?: string;
42
+ schemaHash?: string;
43
+ };
44
+ crud?: {
45
+ tableId: string;
46
+ componentKeyId?: string;
47
+ };
48
+ currentBindings?: TableBindings;
49
+ }
50
+ interface TableApplyPlan {
51
+ canonicalConfig: TableConfig;
52
+ bindingsPatch?: TableBindings;
53
+ persistence?: {
54
+ saveConfig?: boolean;
55
+ saveBindings?: boolean;
56
+ };
57
+ runtime?: {
58
+ reconnectDataSource?: boolean;
59
+ reloadSchema?: boolean;
60
+ fetchData?: boolean;
61
+ refreshLocalView?: boolean;
62
+ };
63
+ metadata?: {
64
+ attachServerMeta?: boolean;
65
+ };
66
+ diff?: {
67
+ resourcePathChanged?: boolean;
68
+ horizontalScrollChanged?: boolean;
69
+ requiresDataRefresh?: boolean;
70
+ };
71
+ diagnostics: EditorDiagnostic[];
72
+ }
73
+
74
+ /** Owner inputs exposed through @praxisui/table/authoring. Fields must already be normalized by admitted Core code.
75
+ * Config and bindings are variable native inputs, not recoverable from a schema.
76
+ * This helper neither admits sources nor evaluates raw schema expressions.
77
+ */
78
+ interface TableEditorDocumentDerivationInput {
79
+ config: TableConfig;
80
+ bindings: TableBindings;
81
+ fields: FieldDefinition[];
82
+ }
83
+ /** Full native document: canonical defaults/action normalization are owned by
84
+ * createTableAuthoringDocument. This is not a public host executor or attestation.
85
+ */
86
+ declare function deriveTableEditorDocument(input: TableEditorDocumentDerivationInput): TableAuthoringDocument;
87
+
88
+ declare function createTableAuthoringDocument(source: {
89
+ config?: unknown;
90
+ bindings?: unknown;
91
+ }): TableAuthoringDocument;
92
+ declare function parseLegacyOrTableDocument(raw: unknown): TableAuthoringDocument;
93
+ declare function normalizeTableAuthoringDocument(doc: TableAuthoringDocument): TableAuthoringDocument;
94
+ declare function validateTableAuthoringDocument(doc: TableAuthoringDocument, context?: TableValidationContext): EditorDiagnostic[];
95
+ declare function toCanonicalTableConfig(doc: TableAuthoringDocument, context?: TableProjectionContext): TableConfig;
96
+ declare function buildTableApplyPlan(doc: TableAuthoringDocument, runtime?: TableRuntimeContext, options?: {
97
+ saveConfig?: boolean;
98
+ saveBindings?: boolean;
99
+ attachServerMeta?: boolean;
100
+ }): TableApplyPlan;
101
+ declare function serializeTableAuthoringDocument(doc: TableAuthoringDocument): unknown;
102
+
103
+ export { buildTableApplyPlan, createTableAuthoringDocument, deriveTableEditorDocument, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
104
+ export type { EditorDiagnostic, TableApplyPlan, TableAuthoringDocument, TableBindings, TableEditorDocumentDerivationInput, TableProjectionContext, TableRuntimeContext, TableValidationContext };