@praxisui/table 8.0.0-beta.82 → 8.0.0-beta.85

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,7 +1,7 @@
1
1
  import { firstValueFrom } from 'rxjs';
2
2
  import { BaseAiAdapter, createComponentAuthoringContext } from '@praxisui/ai';
3
- import { deepMerge } from '@praxisui/core';
4
- import { z as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, R as coerceTableComponentEditPlans, W as compileTableComponentEditPlans, G as TASK_PRESETS, $ as getTableComponentEditPlanCapabilities, w as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, u as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, x as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, E as TABLE_COMPONENT_EDIT_PLAN_VERSION, v as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, y as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-28INRbt6.mjs';
3
+ import { PRAXIS_GLOBAL_ACTION_CATALOG, deepMerge } from '@praxisui/core';
4
+ import { z as TABLE_COMPONENT_EDIT_PLAN_OPERATION_IDS, k as PRAXIS_TABLE_AUTHORING_MANIFEST, T as TABLE_AI_CAPABILITIES, R as coerceTableComponentEditPlans, W as compileTableComponentEditPlans, G as TASK_PRESETS, $ as getTableComponentEditPlanCapabilities, w as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, u as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, x as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, E as TABLE_COMPONENT_EDIT_PLAN_VERSION, v as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, y as TABLE_COMPONENT_EDIT_PLAN_KIND } from './praxisui-table-praxisui-table-BdJW7m53.mjs';
5
5
 
6
6
  const TABLE_COMPONENT_CONTEXT_PACK = {
7
7
  version: 'v1',
@@ -1985,6 +1985,8 @@ class TableAiAdapter extends BaseAiAdapter {
1985
1985
  const selectedRowsContext = this.getSelectedRowsAuthoringContext();
1986
1986
  const resourceCapabilities = this.getResourceCapabilityAuthoringContext();
1987
1987
  const recordSurfaces = this.getRecordSurfaceAuthoringContext();
1988
+ const globalActionCatalog = this.getGlobalActionAuthoringCatalog();
1989
+ const navigationDestinations = this.getNavigationDestinationAuthoringContext();
1988
1990
  const filterExpressionSupported = resourceCapabilities?.filterExpressionSupported === true;
1989
1991
  const runtimeExportFormats = this.getRuntimeExportFormats();
1990
1992
  const runtimeOperations = [
@@ -2048,6 +2050,8 @@ class TableAiAdapter extends BaseAiAdapter {
2048
2050
  useWhen: [
2049
2051
  'The user asks how the current table is configured or connected.',
2050
2052
  'The user asks which resourcePath, endpoint, schema fields, capabilities, styling options, or computed-column patterns are available.',
2053
+ 'The user asks which row buttons, row options, or per-record actions can be added or are available, without asking to apply the change now.',
2054
+ 'The user asks which toolbar actions, global actions, route buttons, bulk actions, or table action buttons can be added, without asking to apply the change now.',
2051
2055
  'The user asks for an explanation, documentation-style answer, or how-to guidance without requesting an immediate change.',
2052
2056
  ],
2053
2057
  rules: [
@@ -2064,6 +2068,9 @@ class TableAiAdapter extends BaseAiAdapter {
2064
2068
  'When the user asks how selected records can drive advanced filters or export, bridge the selected records to declared filterFieldCatalog fields and export scopes conceptually; ask for clarification when the shared property or export scope is ambiguous.',
2065
2069
  'For ambiguous selected-record bridge requests that can become a real table operation, prefer type "clarification" with concise user-facing options grounded in filterFieldCatalog labels or export scopes; do not answer with a long documentation-style explanation.',
2066
2070
  'Keep selected-record bridge responses human-facing: mention selected record count and meaningful labels, but do not expose raw ids, endpoint paths, operationIds, internal field names, schema keys, or payload examples unless the user explicitly asks for technical details.',
2071
+ 'When the user asks which row buttons or per-record actions can be added, answer from declared recordSurfaces and capability labels as guidance; do not emit rowAction.add until the user explicitly asks to add, create, or apply one.',
2072
+ 'When the user asks which toolbar, global, route, or bulk actions can be added, answer from globalActionCatalog, navigationDestinations, and table action capability labels as guidance; do not emit toolbar.action.add, rowAction.add, or bulkAction.add until the user explicitly asks to add, create, or apply one.',
2073
+ 'When navigationDestinations exists and the user asks which route or navigation buttons can be added, use its human-facing labels, descriptions, and paths as the declared destination catalog.',
2067
2074
  'For how-to or documentation-style turns, explain the governed operation shape and give a safe example instead of collecting missing edit parameters.',
2068
2075
  'Do not return clarification for missing target fields, labels, formats, colors, conditions, or columns unless the selected response mode is edit/componentEditPlan.',
2069
2076
  'Only produce componentEditPlan when the user asks to apply or materialize a table change.',
@@ -2077,9 +2084,16 @@ class TableAiAdapter extends BaseAiAdapter {
2077
2084
  'The user asks to change table configuration, visual rules, renderers, columns, behavior, actions, or appearance.',
2078
2085
  ],
2079
2086
  rules: [
2087
+ 'Do not use rowAction.add for capability-discovery questions such as which row buttons or actions can be added; those belong to consult mode until the user explicitly asks to add one.',
2088
+ 'Do not use toolbar.action.add or bulkAction.add for capability-discovery questions such as which global actions, toolbar buttons, route buttons, or bulk buttons can be added; those belong to consult mode until the user explicitly asks to add one.',
2080
2089
  'When the user asks to add a row button, row option, or action in each row for a declared record surface, use rowAction.add with capabilityPath "actions.row.actions[]".',
2081
2090
  'For a rowAction.add that opens a declared record surface, set action id/label for the row button and preserve the declared surface under value.recordSurface; never overwrite the canonical recordSurface.id with the row action id.',
2082
2091
  'Use human-facing labels from recordSurfaces for row action labels; do not ask for technical fields such as surface to open, button label, or placement in row when the conversation already grounded one declared surface.',
2092
+ 'When the user explicitly asks to add a global action button in the table toolbar, use toolbar.action.add with capabilityPath "toolbar.actions[]".',
2093
+ 'When the user explicitly asks to add a global action for selected rows or batch operation, use bulkAction.add with capabilityPath "actions.bulk.actions[]".',
2094
+ 'When the user explicitly asks for a bulk action to open an internal route and provides the route path, use bulkAction.add with globalAction.actionId "navigation.openRoute" and globalAction.payload { path, query: { ids: "${runtime.selectedIds}" } }; do not ask for recordIdParamName, target, or output format.',
2095
+ 'For navigation.openRoute requests, ground payload.path in consultativeContext.navigationDestinations.destinations[].path when navigationDestinations exists; if the user asks for a route not declared there, ask a concise confirmation or clarification instead of claiming the route is available.',
2096
+ 'Choose action ids from consultativeContext.globalActionCatalog.actions[].id. For required payload fields such as navigation.openRoute payload.path, ask a concise clarification only when the user did not provide a value.',
2083
2097
  ],
2084
2098
  },
2085
2099
  {
@@ -2113,6 +2127,8 @@ class TableAiAdapter extends BaseAiAdapter {
2113
2127
  ...(resourceCapabilities ? { resourceCapabilities } : {}),
2114
2128
  ...(selectedRowsContext ? { selectedRecordsContext: selectedRowsContext } : {}),
2115
2129
  ...(recordSurfaces ? { recordSurfaces } : {}),
2130
+ ...(navigationDestinations ? { navigationDestinations } : {}),
2131
+ globalActionCatalog,
2116
2132
  answerableQuestionKinds: [
2117
2133
  'current-resource-path',
2118
2134
  'current-endpoint',
@@ -2120,6 +2136,11 @@ class TableAiAdapter extends BaseAiAdapter {
2120
2136
  'selected-records',
2121
2137
  'selection-derived-filter-candidates',
2122
2138
  'record-related-surfaces',
2139
+ 'table-global-actions',
2140
+ 'navigation-destinations',
2141
+ 'toolbar-actions',
2142
+ 'row-actions',
2143
+ 'bulk-actions',
2123
2144
  'selection-derived-export-scope',
2124
2145
  'styling-capabilities',
2125
2146
  'conditional-renderers',
@@ -2145,6 +2166,10 @@ class TableAiAdapter extends BaseAiAdapter {
2145
2166
  'For column.order.set, use a zero-based visual index from currentStateDigest.columnOrder; when the user says after a column, use that column index + 1, and when the user says before a column, use that column index.',
2146
2167
  'Use Json Logic objects for computed expressions and conditional rules.',
2147
2168
  'For selected-record bridge requests, configure available table capabilities such as filter.advanced.configure, filter.advanced.fields.add, toolbar.action.add, or export.configure; do not invent a runtime apply-filter or run-export operation unless it is declared in the contract.',
2169
+ 'For action authoring requests, use consultativeContext.globalActionCatalog as the canonical action catalog; choose toolbar.action.add for toolbar buttons, rowAction.add for per-record buttons, and bulkAction.add for selected-row/batch buttons.',
2170
+ 'For global actions with payloadSchema.required fields, populate the structured globalAction.payload only from user-provided values, declared surfaces, or runtime context templates; ask clarification when required payload cannot be grounded.',
2171
+ 'For bulk route actions over selected rows, the canonical selected-id template is "${runtime.selectedIds}" and the human-facing default is to send those IDs in query.ids when the user already provided the route path.',
2172
+ 'When materializing a global action, preserve both value.globalAction and an effects[] entry with kind "global-action" when the operation supports effects.',
2148
2173
  'Do not invent fields, operationIds, changeKinds, capabilityPaths, formats, badge variants, or colors outside the provided contract.',
2149
2174
  ],
2150
2175
  operationRegistryCoverage: TABLE_AUTHORING_REGISTRY_COVERAGE,
@@ -2185,6 +2210,64 @@ class TableAiAdapter extends BaseAiAdapter {
2185
2210
  ? format
2186
2211
  : null;
2187
2212
  }
2213
+ getGlobalActionAuthoringCatalog() {
2214
+ return {
2215
+ source: 'praxis-global-action-catalog',
2216
+ surfaces: ['toolbar.actions[]', 'actions.row.actions[]', 'actions.bulk.actions[]'],
2217
+ actions: PRAXIS_GLOBAL_ACTION_CATALOG.map((entry) => this.sanitizeGlobalActionCatalogEntry(entry)),
2218
+ };
2219
+ }
2220
+ getNavigationDestinationAuthoringContext() {
2221
+ const context = this.table.aiContext?.navigationDestinations;
2222
+ if (!context || typeof context !== 'object')
2223
+ return null;
2224
+ const destinations = Array.isArray(context.destinations) ? context.destinations : [];
2225
+ const sanitized = destinations
2226
+ .map((destination) => this.sanitizeNavigationDestination(destination))
2227
+ .filter((destination) => !!destination);
2228
+ if (!sanitized.length)
2229
+ return null;
2230
+ return {
2231
+ source: context.source || 'host-ai-context',
2232
+ destinations: sanitized,
2233
+ };
2234
+ }
2235
+ sanitizeNavigationDestination(value) {
2236
+ const destination = this.toRecord(value);
2237
+ if (!destination)
2238
+ return null;
2239
+ const path = this.stringValue(destination['path']);
2240
+ if (!path)
2241
+ return null;
2242
+ const tags = this.compactStringArray(destination['tags']);
2243
+ return {
2244
+ path,
2245
+ ...(this.stringValue(destination['id']) ? { id: this.stringValue(destination['id']) } : {}),
2246
+ ...(this.stringValue(destination['label']) ? { label: this.stringValue(destination['label']) } : {}),
2247
+ ...(this.stringValue(destination['description']) ? { description: this.stringValue(destination['description']) } : {}),
2248
+ ...(this.stringValue(destination['source']) ? { source: this.stringValue(destination['source']) } : {}),
2249
+ ...(tags.length ? { tags } : {}),
2250
+ ...(typeof destination['materialized'] === 'boolean' ? { materialized: destination['materialized'] } : {}),
2251
+ };
2252
+ }
2253
+ sanitizeGlobalActionCatalogEntry(entry) {
2254
+ const payloadSchema = entry.payloadSchema
2255
+ ? {
2256
+ type: entry.payloadSchema.type,
2257
+ required: Array.isArray(entry.payloadSchema.required) ? [...entry.payloadSchema.required] : [],
2258
+ properties: entry.payloadSchema.properties ?? {},
2259
+ ...(entry.payloadSchema.example !== undefined ? { example: entry.payloadSchema.example } : {}),
2260
+ }
2261
+ : undefined;
2262
+ return {
2263
+ id: entry.id,
2264
+ label: entry.label,
2265
+ ...(entry.description ? { description: entry.description } : {}),
2266
+ ...(entry.icon ? { icon: entry.icon } : {}),
2267
+ ...(payloadSchema ? { payloadSchema } : {}),
2268
+ ...(entry.param ? { param: entry.param } : {}),
2269
+ };
2270
+ }
2188
2271
  getSelectedRowsAuthoringContext() {
2189
2272
  try {
2190
2273
  const selection = this.table.getAiAssistantSelectedRowsContext?.();
@@ -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 PraxisFilter, n as PraxisFilterWidgetConfigEditor, o as PraxisTable, p as PraxisTableConfigEditor, q as PraxisTableInlineAuthoringEditorComponent, r as PraxisTableToolbar, s as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, t as TABLE_COMPONENT_AI_CAPABILITIES, u as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, v as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, w as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, x as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, y as TABLE_COMPONENT_EDIT_PLAN_KIND, E as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TASK_PRESETS, H as TableDefaultsProvider, I as TableRulesEditorComponent, K as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, L as VisualFormulaBuilderComponent, O as buildTableApplyPlan, Q as coerceTableComponentEditPlan, R as coerceTableComponentEditPlans, U as compileTableComponentEditPlan, W as compileTableComponentEditPlans, X as createTableAuthoringDocument, Y as getActionId, Z as getEnum, _ as getTableCapabilities, $ as getTableComponentEditPlanCapabilities, a0 as isTableRendererSupportedByRichContentP0, a1 as mapTableRendererToRichContentP0, a2 as normalizeTableAuthoringDocument, a3 as parseLegacyOrTableDocument, a4 as providePraxisFilterMetadata, a5 as providePraxisTableMetadata, a6 as serializeTableAuthoringDocument, a7 as toCanonicalTableConfig, a8 as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-28INRbt6.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 PraxisFilter, n as PraxisFilterWidgetConfigEditor, o as PraxisTable, p as PraxisTableConfigEditor, q as PraxisTableInlineAuthoringEditorComponent, r as PraxisTableToolbar, s as PraxisTableWidgetConfigEditor, S as STRING_PRESETS, T as TABLE_AI_CAPABILITIES, t as TABLE_COMPONENT_AI_CAPABILITIES, u as TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, v as TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, w as TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, x as TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, y as TABLE_COMPONENT_EDIT_PLAN_KIND, E as TABLE_COMPONENT_EDIT_PLAN_VERSION, G as TASK_PRESETS, H as TableDefaultsProvider, I as TableRulesEditorComponent, K as ToolbarActionsEditorComponent, V as ValueMappingEditorComponent, L as VisualFormulaBuilderComponent, O as buildTableApplyPlan, Q as coerceTableComponentEditPlan, R as coerceTableComponentEditPlans, U as compileTableComponentEditPlan, W as compileTableComponentEditPlans, X as createTableAuthoringDocument, Y as getActionId, Z as getEnum, _ as getTableCapabilities, $ as getTableComponentEditPlanCapabilities, a0 as isTableRendererSupportedByRichContentP0, a1 as mapTableRendererToRichContentP0, a2 as normalizeTableAuthoringDocument, a3 as parseLegacyOrTableDocument, a4 as providePraxisFilterMetadata, a5 as providePraxisTableMetadata, a6 as serializeTableAuthoringDocument, a7 as toCanonicalTableConfig, a8 as validateTableAuthoringDocument } from './praxisui-table-praxisui-table-BdJW7m53.mjs';
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@praxisui/table",
3
- "version": "8.0.0-beta.82",
3
+ "version": "8.0.0-beta.85",
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
- "@praxisui/ai": "^8.0.0-beta.82",
9
- "@praxisui/core": "^8.0.0-beta.82",
10
- "@praxisui/dynamic-fields": "^8.0.0-beta.82",
11
- "@praxisui/dynamic-form": "^8.0.0-beta.82",
12
- "@praxisui/metadata-editor": "^8.0.0-beta.82",
13
- "@praxisui/rich-content": "^8.0.0-beta.82",
14
- "@praxisui/settings-panel": "^8.0.0-beta.82",
15
- "@praxisui/table-rule-builder": "^8.0.0-beta.82",
8
+ "@praxisui/ai": "^8.0.0-beta.85",
9
+ "@praxisui/core": "^8.0.0-beta.85",
10
+ "@praxisui/dynamic-fields": "^8.0.0-beta.85",
11
+ "@praxisui/dynamic-form": "^8.0.0-beta.85",
12
+ "@praxisui/metadata-editor": "^8.0.0-beta.85",
13
+ "@praxisui/rich-content": "^8.0.0-beta.85",
14
+ "@praxisui/settings-panel": "^8.0.0-beta.85",
15
+ "@praxisui/table-rule-builder": "^8.0.0-beta.85",
16
16
  "@angular/cdk": "^21.0.0",
17
17
  "@angular/forms": "^21.0.0",
18
18
  "@angular/material": "^21.0.0",
19
19
  "@angular/router": "^21.0.0",
20
- "@praxisui/dialog": "^8.0.0-beta.82",
20
+ "@praxisui/dialog": "^8.0.0-beta.85",
21
21
  "rxjs": "~7.8.0"
22
22
  },
23
23
  "dependencies": {
@@ -18,7 +18,7 @@ import { BaseDynamicFieldComponent } from '@praxisui/dynamic-fields';
18
18
  import { CdkOverlayOrigin, ConnectedPosition } from '@angular/cdk/overlay';
19
19
  import { MatSelect } from '@angular/material/select';
20
20
  import { PraxisDialog } from '@praxisui/dialog';
21
- import { PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantShellMessage } from '@praxisui/ai';
21
+ import { PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantRecommendedIntent, PraxisAssistantShellMessage } from '@praxisui/ai';
22
22
  import { HttpClient } from '@angular/common/http';
23
23
  import { MatTabChangeEvent } from '@angular/material/tabs';
24
24
  import { RuleEffectDefinition } from '@praxisui/table-rule-builder';
@@ -830,6 +830,23 @@ declare class AnalyticsTableStatsApiService {
830
830
  static ɵprov: i0.ɵɵInjectableDeclaration<AnalyticsTableStatsApiService>;
831
831
  }
832
832
 
833
+ interface TableAiNavigationDestinationContext {
834
+ id?: string;
835
+ path: string;
836
+ label?: string;
837
+ description?: string;
838
+ source?: string;
839
+ tags?: string[];
840
+ materialized?: boolean;
841
+ }
842
+ interface TableAiNavigationContextPack {
843
+ source?: string;
844
+ destinations: TableAiNavigationDestinationContext[];
845
+ }
846
+ interface TableAiContext {
847
+ recordSurfaces?: RecordRelatedSurfaceContextPack | null;
848
+ navigationDestinations?: TableAiNavigationContextPack | null;
849
+ }
833
850
  type SchemaFieldHint = {
834
851
  name: string;
835
852
  label?: string;
@@ -986,9 +1003,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
986
1003
  crudContext: any;
987
1004
  filterCriteria: Record<string, any>;
988
1005
  queryContext: PraxisDataQueryContextBridge | null;
989
- aiContext: {
990
- recordSurfaces?: RecordRelatedSurfaceContextPack | null;
991
- } | null;
1006
+ aiContext: TableAiContext | null;
992
1007
  advancedFilterValue: Record<string, any>;
993
1008
  advancedFilterRuntimeVisibleFields: string[];
994
1009
  private advancedFilterAlwaysVisibleCacheKey;
@@ -1194,6 +1209,7 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1194
1209
  private ensureAiAssistantRowCapabilitySnapshot;
1195
1210
  private buildCapabilitySnapshotFromSurfaceCatalog;
1196
1211
  private buildAiAssistantResourceSurfaceContexts;
1212
+ private getAiAssistantRecordSurfaceProbeRows;
1197
1213
  private buildRecordRelatedSurfaceContextFromResourceSurface;
1198
1214
  private humanizeResourceSurfaceLabel;
1199
1215
  aiAdapter: any;
@@ -1293,6 +1309,8 @@ declare class PraxisTable implements OnInit, OnChanges, AfterViewInit, AfterCont
1293
1309
  onAiAssistantRetry(): void;
1294
1310
  onAiAssistantCancel(): void;
1295
1311
  onAiAssistantQuickReply(reply: PraxisAssistantShellQuickReply): void;
1312
+ getAiAssistantRecommendedIntents(): readonly PraxisAssistantRecommendedIntent[];
1313
+ onAiAssistantRecommendedIntent(intent: PraxisAssistantRecommendedIntent): void;
1296
1314
  onAiAssistantEditMessage(message: PraxisAssistantShellMessage): void;
1297
1315
  onAiAssistantResendMessage(message: PraxisAssistantShellMessage): void;
1298
1316
  onAiAssistantLayoutChange(layout: PraxisAssistantShellLayout): void;
@@ -4103,9 +4121,9 @@ type ComponentEditPlanCapability = {
4103
4121
  declare const TABLE_COMPONENT_EDIT_PLAN_KIND = "praxis.table.component-edit-plan";
4104
4122
  declare const TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND = "praxis.table.component-edit-plan.batch";
4105
4123
  declare const TABLE_COMPONENT_EDIT_PLAN_VERSION = "1.0";
4106
- type TableComponentEditChangeKind = 'add_column' | 'set_column_format' | 'set_column_header' | 'set_column_visibility' | 'set_column_filterable' | 'set_column_sortable' | 'set_column_width' | 'set_column_order' | 'set_column_align' | 'set_column_style' | 'set_column_header_style' | 'set_column_sticky' | 'set_column_conditional_style' | 'set_row_conditional_style' | 'set_column_computed' | 'set_column_value_mapping' | 'set_column_renderer' | 'set_column_badge_renderer' | 'set_column_conditional_badge_renderers' | 'set_row_conditional_renderer' | 'configure_table_filtering' | 'configure_advanced_filters' | 'add_advanced_filter_fields' | 'remove_advanced_filter_fields' | 'configure_table_pagination' | 'configure_table_selection' | 'configure_table_sorting' | 'configure_toolbar' | 'add_toolbar_action' | 'add_row_action' | 'configure_export' | 'set_table_density' | 'set_toolbar_visibility';
4107
- type TableComponentEditOperationId = 'column.add' | 'column.format.set' | 'column.header.set' | 'column.visibility.set' | 'column.filterable.set' | 'column.sortable.set' | 'column.width.set' | 'column.order.set' | 'column.align.set' | 'column.style.set' | 'column.headerStyle.set' | 'column.sticky.set' | 'column.renderer.set' | 'column.valueMapping.set' | 'column.conditionalStyle.add' | 'row.styleRule.add' | 'column.conditionalRenderer.add' | 'column.computed.add' | 'row.conditionalRenderer.add' | 'behavior.filtering.configure' | 'filter.advanced.configure' | 'filter.advanced.fields.add' | 'filter.advanced.fields.remove' | 'behavior.pagination.configure' | 'behavior.selection.configure' | 'behavior.sorting.configure' | 'toolbar.configure' | 'toolbar.action.add' | 'rowAction.add' | 'export.configure' | 'appearance.density.set' | 'toolbar.visibility.set';
4108
- declare const TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS: readonly ["add_column", "set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_order", "set_column_align", "set_column_style", "set_column_header_style", "set_column_sticky", "set_column_conditional_style", "set_row_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_advanced_filters", "add_advanced_filter_fields", "remove_advanced_filter_fields", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "add_toolbar_action", "add_row_action", "configure_export", "set_table_density", "set_toolbar_visibility"];
4124
+ type TableComponentEditChangeKind = 'add_column' | 'set_column_format' | 'set_column_header' | 'set_column_visibility' | 'set_column_filterable' | 'set_column_sortable' | 'set_column_width' | 'set_column_order' | 'set_column_align' | 'set_column_style' | 'set_column_header_style' | 'set_column_sticky' | 'set_column_conditional_style' | 'set_row_conditional_style' | 'set_column_computed' | 'set_column_value_mapping' | 'set_column_renderer' | 'set_column_badge_renderer' | 'set_column_conditional_badge_renderers' | 'set_row_conditional_renderer' | 'configure_table_filtering' | 'configure_advanced_filters' | 'add_advanced_filter_fields' | 'remove_advanced_filter_fields' | 'configure_table_pagination' | 'configure_table_selection' | 'configure_table_sorting' | 'configure_toolbar' | 'add_toolbar_action' | 'add_row_action' | 'add_bulk_action' | 'configure_export' | 'set_table_density' | 'set_toolbar_visibility';
4125
+ type TableComponentEditOperationId = 'column.add' | 'column.format.set' | 'column.header.set' | 'column.visibility.set' | 'column.filterable.set' | 'column.sortable.set' | 'column.width.set' | 'column.order.set' | 'column.align.set' | 'column.style.set' | 'column.headerStyle.set' | 'column.sticky.set' | 'column.renderer.set' | 'column.valueMapping.set' | 'column.conditionalStyle.add' | 'row.styleRule.add' | 'column.conditionalRenderer.add' | 'column.computed.add' | 'row.conditionalRenderer.add' | 'behavior.filtering.configure' | 'filter.advanced.configure' | 'filter.advanced.fields.add' | 'filter.advanced.fields.remove' | 'behavior.pagination.configure' | 'behavior.selection.configure' | 'behavior.sorting.configure' | 'toolbar.configure' | 'toolbar.action.add' | 'rowAction.add' | 'bulkAction.add' | 'export.configure' | 'appearance.density.set' | 'toolbar.visibility.set';
4126
+ declare const TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS: readonly ["add_column", "set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_order", "set_column_align", "set_column_style", "set_column_header_style", "set_column_sticky", "set_column_conditional_style", "set_row_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_advanced_filters", "add_advanced_filter_fields", "remove_advanced_filter_fields", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "add_toolbar_action", "add_row_action", "add_bulk_action", "configure_export", "set_table_density", "set_toolbar_visibility"];
4109
4127
  declare const TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS: Record<TableComponentEditChangeKind, string>;
4110
4128
  interface TableComponentEditPlan {
4111
4129
  kind?: typeof TABLE_COMPONENT_EDIT_PLAN_KIND;
@@ -4147,7 +4165,7 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4147
4165
  readonly $defs: {
4148
4166
  readonly changeKind: {
4149
4167
  readonly type: "string";
4150
- readonly enum: readonly ["add_column", "set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_order", "set_column_align", "set_column_style", "set_column_header_style", "set_column_sticky", "set_column_conditional_style", "set_row_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_advanced_filters", "add_advanced_filter_fields", "remove_advanced_filter_fields", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "add_toolbar_action", "add_row_action", "configure_export", "set_table_density", "set_toolbar_visibility"];
4168
+ readonly enum: readonly ["add_column", "set_column_format", "set_column_header", "set_column_visibility", "set_column_filterable", "set_column_sortable", "set_column_width", "set_column_order", "set_column_align", "set_column_style", "set_column_header_style", "set_column_sticky", "set_column_conditional_style", "set_row_conditional_style", "set_column_computed", "set_column_value_mapping", "set_column_renderer", "set_column_badge_renderer", "set_column_conditional_badge_renderers", "set_row_conditional_renderer", "configure_table_filtering", "configure_advanced_filters", "add_advanced_filter_fields", "remove_advanced_filter_fields", "configure_table_pagination", "configure_table_selection", "configure_table_sorting", "configure_toolbar", "add_toolbar_action", "add_row_action", "add_bulk_action", "configure_export", "set_table_density", "set_toolbar_visibility"];
4151
4169
  };
4152
4170
  readonly capabilityPath: {
4153
4171
  readonly type: "string";
@@ -4228,7 +4246,7 @@ declare const TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA: {
4228
4246
  readonly const: "praxis-table";
4229
4247
  };
4230
4248
  readonly operationId: {
4231
- readonly enum: readonly ["column.add", "column.format.set", "column.header.set", "column.visibility.set", "column.filterable.set", "column.sortable.set", "column.width.set", "column.order.set", "column.align.set", "column.style.set", "column.headerStyle.set", "column.sticky.set", "column.renderer.set", "column.valueMapping.set", "column.conditionalStyle.add", "row.styleRule.add", "column.conditionalRenderer.add", "column.computed.add", "row.conditionalRenderer.add", "behavior.filtering.configure", "filter.advanced.configure", "filter.advanced.fields.add", "filter.advanced.fields.remove", "behavior.pagination.configure", "behavior.selection.configure", "behavior.sorting.configure", "toolbar.configure", "toolbar.action.add", "rowAction.add", "export.configure", "appearance.density.set", "toolbar.visibility.set"];
4249
+ readonly enum: readonly ["column.add", "column.format.set", "column.header.set", "column.visibility.set", "column.filterable.set", "column.sortable.set", "column.width.set", "column.order.set", "column.align.set", "column.style.set", "column.headerStyle.set", "column.sticky.set", "column.renderer.set", "column.valueMapping.set", "column.conditionalStyle.add", "row.styleRule.add", "column.conditionalRenderer.add", "column.computed.add", "row.conditionalRenderer.add", "behavior.filtering.configure", "filter.advanced.configure", "filter.advanced.fields.add", "filter.advanced.fields.remove", "behavior.pagination.configure", "behavior.selection.configure", "behavior.sorting.configure", "toolbar.configure", "toolbar.action.add", "rowAction.add", "bulkAction.add", "export.configure", "appearance.density.set", "toolbar.visibility.set"];
4232
4250
  };
4233
4251
  readonly target: true;
4234
4252
  readonly input: true;
@@ -4424,4 +4442,4 @@ declare function compileTableComponentEditPlans(plans: TableComponentEditPlan[],
4424
4442
  declare function compileTableComponentEditPlan(plan: TableComponentEditPlan, currentConfig: TableConfig): TableComponentEditPlanCompileResult;
4425
4443
 
4426
4444
  export { AnalyticsTableConfigAdapterService, AnalyticsTableContractService, AnalyticsTableStatsApiService, BOOLEAN_PRESETS, BehaviorConfigEditorComponent, CURRENCY_PRESETS, ColumnsConfigEditorComponent, DATE_PRESETS, DataFormatterComponent, DataFormattingService, FORMULA_TEMPLATES, FilterConfigService, FilterSettingsComponent, FormulaGeneratorService, JsonConfigEditorComponent, MessagesLocalizationEditorComponent, NUMBER_PRESETS, PERCENTAGE_PRESETS, PRAXIS_FILTER_COMPONENT_METADATA, PRAXIS_TABLE_AUTHORING_MANIFEST, PRAXIS_TABLE_COMPONENT_METADATA, PraxisFilter, PraxisFilterWidgetConfigEditor, PraxisTable, PraxisTableConfigEditor, PraxisTableInlineAuthoringEditorComponent, PraxisTableToolbar, PraxisTableWidgetConfigEditor, STRING_PRESETS, TABLE_AI_CAPABILITIES, TABLE_COMPONENT_AI_CAPABILITIES, TABLE_COMPONENT_EDIT_PLAN_ALLOWED_CHANGE_KINDS, TABLE_COMPONENT_EDIT_PLAN_BATCH_KIND, TABLE_COMPONENT_EDIT_PLAN_EXPECTED_PATHS, TABLE_COMPONENT_EDIT_PLAN_JSON_SCHEMA, TABLE_COMPONENT_EDIT_PLAN_KIND, TABLE_COMPONENT_EDIT_PLAN_VERSION, TASK_PRESETS, TableDefaultsProvider, TableRulesEditorComponent, ToolbarActionsEditorComponent, ValueMappingEditorComponent, VisualFormulaBuilderComponent, buildTableApplyPlan, coerceTableComponentEditPlan, coerceTableComponentEditPlans, compileTableComponentEditPlan, compileTableComponentEditPlans, createTableAuthoringDocument, getActionId, getEnum, getTableCapabilities, getTableComponentEditPlanCapabilities, isTableRendererSupportedByRichContentP0, mapTableRendererToRichContentP0, normalizeTableAuthoringDocument, parseLegacyOrTableDocument, providePraxisFilterMetadata, providePraxisTableMetadata, serializeTableAuthoringDocument, toCanonicalTableConfig, validateTableAuthoringDocument };
4427
- export type { ActionLike, AnalyticsTableConfigAdapterOptions, AnalyticsTableContractDefinition, AnalyticsTableContractLoadOptions, AnalyticsTableContractLoadResult, AnalyticsTableContractSource, AnalyticsTableRow, AnalyticsTableViewModel, ArithmeticParams, BehaviorConfigChange, BooleanFormatterOptions, BulkAction, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColumnChange, ColumnDataType$1 as ColumnDataType, ConcatenationParams, ConditionalMappingParams, CurrencyFormatterOptions, DataFormattingOptions, DataMode, DateFormatterOptions, DefaultValueParams, EditorDiagnostic, EditorDocument, FieldSchema, FilterConfig, FilterTag, FormatPreset, FormatterConfig, FormulaDefinition, FormulaParameterSchema, FormulaParams, FormulaTemplate, FormulaType, I18n, JsonEditorEvent, JsonValidationResult, MessagesLocalizationChange, NestedPropertyParams, NumberFormatterOptions, PercentageFormatterOptions, PraxisFilterWidgetEditorInputs, PraxisFilterWidgetEditorValue, PraxisTableWidgetEditorInputs, PraxisTableWidgetEditorValue, ResourcePathIntent, RowAction, RowExpansionChangeBase, RowExpansionChangeEvent, RowExpansionReasonCode, RowExpansionTrigger, StringFormatterOptions, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };
4445
+ export type { ActionLike, AnalyticsTableConfigAdapterOptions, AnalyticsTableContractDefinition, AnalyticsTableContractLoadOptions, AnalyticsTableContractLoadResult, AnalyticsTableContractSource, AnalyticsTableRow, AnalyticsTableViewModel, ArithmeticParams, BehaviorConfigChange, BooleanFormatterOptions, BulkAction, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColumnChange, ColumnDataType$1 as ColumnDataType, ConcatenationParams, ConditionalMappingParams, CurrencyFormatterOptions, DataFormattingOptions, DataMode, DateFormatterOptions, DefaultValueParams, EditorDiagnostic, EditorDocument, FieldSchema, FilterConfig, FilterTag, FormatPreset, FormatterConfig, FormulaDefinition, FormulaParameterSchema, FormulaParams, FormulaTemplate, FormulaType, I18n, JsonEditorEvent, JsonValidationResult, MessagesLocalizationChange, NestedPropertyParams, NumberFormatterOptions, PercentageFormatterOptions, PraxisFilterWidgetEditorInputs, PraxisFilterWidgetEditorValue, PraxisTableWidgetEditorInputs, PraxisTableWidgetEditorValue, ResourcePathIntent, RowAction, RowExpansionChangeBase, RowExpansionChangeEvent, RowExpansionReasonCode, RowExpansionTrigger, StringFormatterOptions, TableAiContext, TableAiNavigationContextPack, TableAiNavigationDestinationContext, TableApplyPlan, TableAuthoringDocument, TableBindings, Capability as TableComponentCapability, CapabilityCatalog as TableComponentCapabilityCatalog, CapabilityCategory as TableComponentCapabilityCategory, TableComponentEditChangeKind, TableComponentEditPlan, TableComponentEditPlanCompileResult, ValueKind as TableComponentValueKind, TableHorizontalScroll, TableProjectionContext, TableRichContentP0Node, TableRuntimeContext, TableValidationContext, ToolbarAction, ToolbarActionsChange, ValueKind$1 as ValueKind, ValueMappingPair };