@praxisui/table 9.0.0-beta.25 → 9.0.0-beta.26

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.
@@ -11,9 +11,7 @@ Nota historica: esta baseline e anterior a canonicalizacao de Json Logic. As ref
11
11
  - Helpers anteriores mantidos (`jsonGet/jsonEq/jsonIn`, `isBlank`, `today/now`, `len*`, etc.).
12
12
  - Normalização legada preservada para expressões antigas.
13
13
  - Limitação documentada: parser atual não suporta comparação direta de retorno de função (`fn(...) == valor`).
14
- - `toolbar.actions.visibleWhen` com politica por ambiente:
15
- - `prod/qa`: fail-closed.
16
- - `dev/hml`: fail-open para diagnostico.
14
+ - `toolbar.actions.visibleWhen` hoje falha fechado em todos os ambientes quando a condicao nao e Json Logic valida. A baseline historica de `2026-02-26` registrava comportamento diagnostico legado, mas esse comportamento foi removido na canonicalizacao.
17
15
  - `shortcutScope` canonico com validacao (`toolbar|global`) e fallback seguro.
18
16
  - Guards schema-only para:
19
17
  - `behavior.sorting.multiSort`
@@ -992,7 +992,7 @@ class PraxisTableToolbar {
992
992
  return policy === 'fail-open';
993
993
  }
994
994
  resolveVisibleWhenFallbackPolicy() {
995
- return this.isDiagnosticsEnvironment() ? 'fail-open' : 'fail-closed';
995
+ return 'fail-closed';
996
996
  }
997
997
  resolveRuntimeEnvironment() {
998
998
  const configAny = this.config;
@@ -1015,14 +1015,6 @@ class PraxisTableToolbar {
1015
1015
  }
1016
1016
  return 'prod';
1017
1017
  }
1018
- isDiagnosticsEnvironment() {
1019
- const env = this.resolveRuntimeEnvironment();
1020
- return (env === 'dev'
1021
- || env === 'development'
1022
- || env === 'hml'
1023
- || env === 'homolog'
1024
- || env === 'homologacao');
1025
- }
1026
1018
  buildEvaluationContext() {
1027
1019
  const base = this.evaluationContext && typeof this.evaluationContext === 'object'
1028
1020
  ? this.evaluationContext
@@ -29993,6 +29985,7 @@ class TableRulesEditorComponent {
29993
29985
  normalizePersistedRules(rules) {
29994
29986
  return (Array.isArray(rules) ? rules : [])
29995
29987
  .filter((rule) => !!rule && typeof rule === 'object')
29988
+ .filter((rule) => this.isManualExpressionCandidate(rule.condition))
29996
29989
  .map((rule) => {
29997
29990
  const effects = this.normalizeRuleEffects(rule.effects).map((effect) => ({ ...effect, scope: this.scope }));
29998
29991
  return {
@@ -41156,7 +41149,7 @@ class PraxisTable {
41156
41149
  if (this.aiAdapter || this.aiAdapterLoadStarted)
41157
41150
  return;
41158
41151
  this.aiAdapterLoadStarted = true;
41159
- import('./praxisui-table-table-ai.adapter-gadZyxCR.mjs')
41152
+ import('./praxisui-table-table-ai.adapter-DN9G-Hms.mjs')
41160
41153
  .then(({ TableAiAdapter }) => {
41161
41154
  if (!this.isAiAssistantEnabled()) {
41162
41155
  this.aiAssistantOpenAfterAdapterLoad = false;
@@ -43714,9 +43707,12 @@ class PraxisTable {
43714
43707
  }
43715
43708
  isExpansionDetailEmbedActionVisible(action, context) {
43716
43709
  const visibleWhen = action?.visibleWhen;
43717
- if (!this.hasConditionalExpression(visibleWhen)) {
43710
+ if (visibleWhen === null || visibleWhen === undefined) {
43718
43711
  return true;
43719
43712
  }
43713
+ if (!this.hasConditionalExpression(visibleWhen)) {
43714
+ return false;
43715
+ }
43720
43716
  return this.evaluateExpansionDetailRichListItemCondition(visibleWhen, context, this.resolveRowVisibleWhenFailurePolicy() === 'fail-open');
43721
43717
  }
43722
43718
  getExpansionDetailEmbedLabel(node) {
@@ -43878,9 +43874,12 @@ class PraxisTable {
43878
43874
  }
43879
43875
  isExpansionDetailActionBarActionVisible(action, context) {
43880
43876
  const visibleWhen = action?.visibleWhen;
43881
- if (!this.hasConditionalExpression(visibleWhen)) {
43877
+ if (visibleWhen === null || visibleWhen === undefined) {
43882
43878
  return true;
43883
43879
  }
43880
+ if (!this.hasConditionalExpression(visibleWhen)) {
43881
+ return false;
43882
+ }
43884
43883
  return this.evaluateExpansionDetailRichListItemCondition(visibleWhen, context, this.resolveRowVisibleWhenFailurePolicy() === 'fail-open');
43885
43884
  }
43886
43885
  getExpansionDetailTabButtonRichContentNodes(tab) {
@@ -44040,9 +44039,12 @@ class PraxisTable {
44040
44039
  }
44041
44040
  isExpansionDetailRichListItemActionVisible(action, context) {
44042
44041
  const visibleWhen = action?.visibleWhen;
44043
- if (!this.hasConditionalExpression(visibleWhen)) {
44042
+ if (visibleWhen === null || visibleWhen === undefined) {
44044
44043
  return true;
44045
44044
  }
44045
+ if (!this.hasConditionalExpression(visibleWhen)) {
44046
+ return false;
44047
+ }
44046
44048
  return this.evaluateExpansionDetailRichListItemCondition(visibleWhen, context, this.resolveRowVisibleWhenFailurePolicy() === 'fail-open');
44047
44049
  }
44048
44050
  evaluateExpansionDetailRichListItemCondition(expression, context, fallbackResult) {
@@ -50657,11 +50659,10 @@ class PraxisTable {
50657
50659
  }
50658
50660
  }
50659
50661
  evaluateActionVisibilityCondition(expression, rowData, action) {
50660
- const failurePolicy = this.resolveRowVisibleWhenFailurePolicy();
50661
50662
  return this.evaluateActionCondition(expression, rowData, {
50662
50663
  source: 'visibleWhen',
50663
- failurePolicy,
50664
- fallbackResult: failurePolicy === 'fail-open',
50664
+ failurePolicy: 'fail-closed',
50665
+ fallbackResult: false,
50665
50666
  actionId: getActionId(action),
50666
50667
  });
50667
50668
  }
@@ -50692,7 +50693,7 @@ class PraxisTable {
50692
50693
  }
50693
50694
  }
50694
50695
  resolveRowVisibleWhenFailurePolicy() {
50695
- return this.isDiagnosticsRuntimeEnvironment() ? 'fail-open' : 'fail-closed';
50696
+ return 'fail-closed';
50696
50697
  }
50697
50698
  isJsonLogicExpression(value) {
50698
50699
  return !!value && typeof value === 'object' && !Array.isArray(value);
@@ -50727,14 +50728,6 @@ class PraxisTable {
50727
50728
  }
50728
50729
  return 'prod';
50729
50730
  }
50730
- isDiagnosticsRuntimeEnvironment() {
50731
- const env = this.resolveRuntimeEnvironment();
50732
- return (env === 'dev'
50733
- || env === 'development'
50734
- || env === 'hml'
50735
- || env === 'homolog'
50736
- || env === 'homologacao');
50737
- }
50738
50731
  logActionConditionFallback(options, expression, reason, details) {
50739
50732
  this.warnOnceLog('[PraxisTable] Action condition fallback applied', {
50740
50733
  source: options.source,
@@ -60840,7 +60833,7 @@ const TABLE_AI_CAPABILITIES = {
60840
60833
  { path: 'toolbar.filters.enabled', category: 'toolbar', valueKind: 'boolean', description: 'Exibe filtros rápidos na toolbar.', dependsOn: 'behavior.filtering.enabled' },
60841
60834
  { path: 'toolbar.settingsMenu.enabled', category: 'toolbar', valueKind: 'boolean', description: 'Mostra menu de configurações (densidade, colunas etc.).', intentExamples: ['mostrar menu de configurações'] },
60842
60835
  { path: 'toolbar.actions[]', category: 'toolbar', valueKind: 'array', description: 'Ações exibidas na barra de ferramentas da tabela.', dependsOn: 'toolbar.visible', intentExamples: ['adicionar botão na toolbar', 'criar ação de exportação na barra de ações'] },
60843
- { path: 'toolbar.actions[].visibleWhen', category: 'toolbar', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para exibir a acao da toolbar.', dependsOn: 'toolbar.visible', safetyNotes: 'Invalid Json Logic segue a politica de fallback da toolbar por ambiente.' },
60836
+ { path: 'toolbar.actions[].visibleWhen', category: 'toolbar', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para exibir a acao da toolbar.', dependsOn: 'toolbar.visible', safetyNotes: 'Invalid Json Logic falha fechado; a acao nao deve ser exibida em nenhum ambiente.' },
60844
60837
  // Actions
60845
60838
  { path: 'actions.row.enabled', category: 'actions', valueKind: 'boolean', description: 'Habilita coluna de ações por linha.', critical: true, intentExamples: ['ativar ações por linha', 'desligar coluna de ações'], safetyNotes: 'Ao desabilitar, verifique se não há ações críticas dependentes.' },
60846
60839
  { path: 'actions.row.display', category: 'actions', valueKind: 'enum', allowedValues: ENUMS.rowActionDisplay, description: 'Modo de exibição das ações (menu/buttons/icons).', dependsOn: 'actions.row.enabled' },
@@ -60850,7 +60843,7 @@ const TABLE_AI_CAPABILITIES = {
60850
60843
  { path: 'actions.row.actions[].recordSurface', category: 'actions', valueKind: 'object', description: 'ResourceSurfaceCatalogItem canonico preservado para uma acao de linha abrir a superficie relacionada ao registro clicado sem sobrescrever a identidade da surface.', dependsOn: 'actions.row.actions[]', intentExamples: ['botão de linha para abrir folha de pagamento', 'ação por linha para abrir timeline relacionada'] },
60851
60844
  { path: 'actions.row.actions[].globalAction.[actionId]', category: 'actions', valueKind: 'string', description: 'Identificador canônico de global action para a ação por linha (ex.: "navigation.openRoute", "surface.open", "toast.success").', dependsOn: 'actions.row.enabled', intentExamples: ['navegar para detalhe interno ao clicar na linha', 'abrir drawer com surface.open', 'mostrar toast de sucesso'] },
60852
60845
  { path: 'actions.row.actions[].globalAction.payload', category: 'actions', valueKind: 'object', 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.', dependsOn: 'actions.row.actions[].globalAction.[actionId]', intentExamples: ['abrir detalhe com query.id da linha', 'passar state.selectedId usando a linha atual'], example: '{ "path": "/clientes/detalhe", "query": { "id": "${row.id}" }, "state": { "selectedId": "${row.id}" } }' },
60853
- { path: 'actions.row.actions[].visibleWhen', category: 'actions', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para exibir a acao por linha.', dependsOn: 'actions.row.enabled', safetyNotes: 'Invalid Json Logic segue a politica de fallback da tabela por ambiente.' },
60846
+ { path: 'actions.row.actions[].visibleWhen', category: 'actions', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para exibir a acao por linha.', dependsOn: 'actions.row.enabled', safetyNotes: 'Invalid Json Logic falha fechado; a acao de linha nao deve ser exibida em nenhum ambiente.' },
60854
60847
  { path: 'actions.row.actions[].disabledWhen', category: 'actions', valueKind: 'expression', description: 'Condicao canonica em JSON Logic para desabilitar a acao por linha.', dependsOn: 'actions.row.enabled', safetyNotes: 'Invalid Json Logic falha como nao desabilitado, preservando logs estruturados.' },
60855
60848
  { path: 'actions.row.actions[].effects', category: 'actions', valueKind: 'array', description: 'Array canonico de efeitos runtime da acao por linha, alinhado com PraxisRuntimeGlobalActionEffect.', dependsOn: 'actions.row.enabled' },
60856
60849
  { path: 'actions.row.actions[].effects[].kind', category: 'actions', valueKind: 'enum', allowedValues: ['global-action'], description: 'Tipo de efeito runtime da acao por linha. Neste corte, apenas global-action e suportado.', dependsOn: 'actions.row.actions[].effects' },
@@ -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 { G as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, W as coerceTableComponentEditPlans, Y as compileTableComponentEditPlans, I as TASK_PRESETS, a1 as getTableComponentEditPlanCapabilities, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-DehRrVBm.mjs';
4
+ import { G as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, W as coerceTableComponentEditPlans, Y as compileTableComponentEditPlans, I as TASK_PRESETS, a1 as getTableComponentEditPlanCapabilities, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, E as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-mNsK6DE9.mjs';
5
5
 
6
6
  const TABLE_ROW_EXPRESSION_CONTEXT_OPTION = {
7
7
  mode: 'expression',
@@ -1622,7 +1622,7 @@ const TABLE_COMPONENT_CONTEXT_PACK = {
1622
1622
  {
1623
1623
  name: 'condition',
1624
1624
  type: 'STRING',
1625
- description: 'Expressao condicional (ex: recompensa > 500000)'
1625
+ description: 'Objeto JSON Logic canonico serializado, nunca DSL textual (ex: { ">": [{ "var": "recompensa" }, 500000] })'
1626
1626
  },
1627
1627
  {
1628
1628
  name: 'renderer',
@@ -3726,7 +3726,13 @@ Columns Analysis:
3726
3726
  const isRootArray = currentPath && (allowedPaths.has(currentPath + '[]') || Array.from(allowedPaths).some(p => p.startsWith(currentPath + '[].')));
3727
3727
  if (!isRootArray)
3728
3728
  return obj; // É um valor array (ex: tags), retorna direto
3729
- return obj.map(item => recurse(item, currentPath + '[]'));
3729
+ const items = obj.map(item => recurse(item, currentPath + '[]'));
3730
+ if (currentPath === 'columns[].conditionalRenderers'
3731
+ || currentPath === 'columns[].conditionalStyles'
3732
+ || currentPath === 'rowConditionalStyles') {
3733
+ return items.filter((item) => this.hasCanonicalConditionalRule(item));
3734
+ }
3735
+ return items;
3730
3736
  }
3731
3737
  const cleanObj = {};
3732
3738
  for (const key of Object.keys(obj)) {
@@ -3738,14 +3744,6 @@ Columns Analysis:
3738
3744
  const exactMatch = allowedPaths.has(newPath) || isIdentityField;
3739
3745
  const prefixMatch = Array.from(allowedPaths).some(p => p.startsWith(newPath + '.') || p.startsWith(newPath + '['));
3740
3746
  if (exactMatch || prefixMatch) {
3741
- if (exactMatch
3742
- && (passthroughObjectPaths.has(newPath) || jsonLogicObjectPaths.has(newPath))
3743
- && typeof obj[key] === 'object'
3744
- && obj[key] !== null
3745
- && !Array.isArray(obj[key])) {
3746
- cleanObj[key] = obj[key];
3747
- continue;
3748
- }
3749
3747
  if (newPath === 'columns[].computed.expression') {
3750
3748
  if (!obj[key] || typeof obj[key] !== 'object' || Array.isArray(obj[key])) {
3751
3749
  warnings.push(`Computed expression inválida: ${newPath} (deve ser Json Logic)`);
@@ -3758,6 +3756,22 @@ Columns Analysis:
3758
3756
  cleanObj[key] = obj[key];
3759
3757
  continue;
3760
3758
  }
3759
+ if (exactMatch && jsonLogicObjectPaths.has(newPath)) {
3760
+ if (!this.isCanonicalJsonLogicObject(obj[key])) {
3761
+ warnings.push(`Condicao Json Logic invalida: ${newPath} (deve ser objeto Json Logic)`);
3762
+ continue;
3763
+ }
3764
+ cleanObj[key] = obj[key];
3765
+ continue;
3766
+ }
3767
+ if (exactMatch
3768
+ && passthroughObjectPaths.has(newPath)
3769
+ && typeof obj[key] === 'object'
3770
+ && obj[key] !== null
3771
+ && !Array.isArray(obj[key])) {
3772
+ cleanObj[key] = obj[key];
3773
+ continue;
3774
+ }
3761
3775
  const val = recurse(obj[key], newPath);
3762
3776
  // Se for objeto vazio após limpeza, não inclui (salvo se for intenção explicita de limpar config, mas patch geralmente é aditivo)
3763
3777
  if (typeof val === 'object' && val !== null && !Array.isArray(val) && Object.keys(val).length === 0) {
@@ -3776,6 +3790,17 @@ Columns Analysis:
3776
3790
  const sanitized = recurse(patch, '');
3777
3791
  return { sanitized, warnings };
3778
3792
  }
3793
+ isCanonicalJsonLogicObject(value) {
3794
+ return !!value
3795
+ && typeof value === 'object'
3796
+ && !Array.isArray(value)
3797
+ && Object.keys(value).length === 1;
3798
+ }
3799
+ hasCanonicalConditionalRule(value) {
3800
+ if (!value || typeof value !== 'object' || Array.isArray(value))
3801
+ return false;
3802
+ return this.isCanonicalJsonLogicObject(value['condition']);
3803
+ }
3779
3804
  // -------- Internal helpers --------
3780
3805
  /**
3781
3806
  * Specialized merge for TableConfig that handles Array reconciliation safely.
@@ -1 +1 @@
1
- export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, n as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, o as PraxisFilter, p as PraxisFilterWidgetConfigEditor, q as PraxisTable, r as PraxisTableConfigEditor, s as PraxisTableInlineAuthoringEditorComponent, t as PraxisTableToolbar, u as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, v as TABLE_COMPONENT_AI_CAPABILITIES, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, E as TABLE_COMPONENT_EDIT_PLAN_KIND, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, I as TASK_PRESETS, K as TableDefaultsProvider, L as TableRulesEditorComponent, O as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, Q as VisualFormulaBuilderComponent, R as buildTableApplyPlan, U as coerceTableComponentEditPlan, W as coerceTableComponentEditPlans, X as compileTableComponentEditPlan, Y as compileTableComponentEditPlans, Z as createTableAuthoringDocument, _ as getActionId, $ as getEnum, a0 as getTableCapabilities, a1 as getTableComponentEditPlanCapabilities, a2 as isTableRendererSupportedByRichContentP0, a3 as mapTableRendererToRichContentP0, a4 as normalizeTableAuthoringDocument, a5 as parseLegacyOrTableDocument, a6 as providePraxisFilterMetadata, a7 as providePraxisTableMetadata, a8 as providePraxisTableToolbarAppearance, a9 as serializeTableAuthoringDocument, aa as toCanonicalTableConfig, ab as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-DehRrVBm.mjs';
1
+ export { A as AnalyticsTableConfigAdapterService, a as AnalyticsTableContractService, b as AnalyticsTableStatsApiService, B as BOOLEAN_PRESETS, c as BehaviorConfigEditorComponent, C as CURRENCY_PRESETS, d as ColumnsConfigEditorComponent, D as DATE_PRESETS, e as DataFormatterComponent, f as DataFormattingService, F as FORMULA_TEMPLATES, g as FilterConfigService, h as FilterSettingsComponent, i as FormulaGeneratorService, J as JsonConfigEditorComponent, M as MessagesLocalizationEditorComponent, N as NUMBER_PRESETS, P as PERCENTAGE_PRESETS, j as PRAXIS_FILTER_COMPONENT_METADATA, k as PRAXIS_TABLE_AUTHORING_MANIFEST, l as PRAXIS_TABLE_COMPONENT_METADATA, m as PRAXIS_TABLE_TOOLBAR_DEFAULT_APPEARANCE, n as PRAXIS_TABLE_TOOLBAR_TOKEN_PRESETS, o as PraxisFilter, p as PraxisFilterWidgetConfigEditor, q as PraxisTable, r as PraxisTableConfigEditor, s as PraxisTableInlineAuthoringEditorComponent, t as PraxisTableToolbar, u as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, v as TABLE_COMPONENT_AI_CAPABILITIES, w as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, x as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, y as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, z as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, E as TABLE_COMPONENT_EDIT_PLAN_KIND, H as TABLE_COMPONENT_EDIT_PLAN_VERSION, I as TASK_PRESETS, K as TableDefaultsProvider, L as TableRulesEditorComponent, O as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, Q as VisualFormulaBuilderComponent, R as buildTableApplyPlan, U as coerceTableComponentEditPlan, W as coerceTableComponentEditPlans, X as compileTableComponentEditPlan, Y as compileTableComponentEditPlans, Z as createTableAuthoringDocument, _ as getActionId, $ as getEnum, a0 as getTableCapabilities, a1 as getTableComponentEditPlanCapabilities, a2 as isTableRendererSupportedByRichContentP0, a3 as mapTableRendererToRichContentP0, a4 as normalizeTableAuthoringDocument, a5 as parseLegacyOrTableDocument, a6 as providePraxisFilterMetadata, a7 as providePraxisTableMetadata, a8 as providePraxisTableToolbarAppearance, a9 as serializeTableAuthoringDocument, aa as toCanonicalTableConfig, ab as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-mNsK6DE9.mjs';
package/package.json CHANGED
@@ -1,24 +1,24 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "9.0.0-beta.25",
3
+ "version": "9.0.0-beta.26",
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": "^9.0.0-beta.25",
10
- "@praxisui/core": "^9.0.0-beta.25",
11
- "@praxisui/dynamic-fields": "^9.0.0-beta.25",
12
- "@praxisui/dynamic-form": "^9.0.0-beta.25",
13
- "@praxisui/metadata-editor": "^9.0.0-beta.25",
14
- "@praxisui/rich-content": "^9.0.0-beta.25",
15
- "@praxisui/settings-panel": "^9.0.0-beta.25",
16
- "@praxisui/table-rule-builder": "^9.0.0-beta.25",
9
+ "@praxisui/ai": "^9.0.0-beta.26",
10
+ "@praxisui/core": "^9.0.0-beta.26",
11
+ "@praxisui/dynamic-fields": "^9.0.0-beta.26",
12
+ "@praxisui/dynamic-form": "^9.0.0-beta.26",
13
+ "@praxisui/metadata-editor": "^9.0.0-beta.26",
14
+ "@praxisui/rich-content": "^9.0.0-beta.26",
15
+ "@praxisui/settings-panel": "^9.0.0-beta.26",
16
+ "@praxisui/table-rule-builder": "^9.0.0-beta.26",
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": "^9.0.0-beta.25",
21
+ "@praxisui/dialog": "^9.0.0-beta.26",
22
22
  "rxjs": "~7.8.0"
23
23
  },
24
24
  "dependencies": {
@@ -142,7 +142,6 @@ declare class PraxisTableToolbar implements OnDestroy {
142
142
  private resolveVisibleWhenFallback;
143
143
  private resolveVisibleWhenFallbackPolicy;
144
144
  private resolveRuntimeEnvironment;
145
- private isDiagnosticsEnvironment;
146
145
  private buildEvaluationContext;
147
146
  private warnVisibleWhenFallback;
148
147
  private collectShortcutBindings;
@@ -1936,7 +1935,6 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1936
1935
  private isJsonLogicExpression;
1937
1936
  private hasConditionalExpression;
1938
1937
  private resolveRuntimeEnvironment;
1939
- private isDiagnosticsRuntimeEnvironment;
1940
1938
  private logActionConditionFallback;
1941
1939
  getRowClasses(rowData: any): string[] | undefined;
1942
1940
  getRowNgStyle(rowData: any): Record<string, string> | undefined;