@praxisui/page-builder 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/page-builder",
3
- "version": "10.0.0-rc.3",
3
+ "version": "10.0.0-rc.30",
4
4
  "description": "Page and widget builder utilities for Praxis UI (grid, dynamic widgets, editors).",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
@@ -8,9 +8,9 @@
8
8
  "@angular/forms": "^21.0.0",
9
9
  "@angular/cdk": "^21.0.0",
10
10
  "@angular/material": "^21.0.0",
11
- "@praxisui/ai": "^10.0.0-rc.3",
12
- "@praxisui/core": "^10.0.0-rc.3",
13
- "@praxisui/settings-panel": "^10.0.0-rc.3",
11
+ "@praxisui/ai": "^10.0.0-rc.30",
12
+ "@praxisui/core": "^10.0.0-rc.30",
13
+ "@praxisui/settings-panel": "^10.0.0-rc.30",
14
14
  "rxjs": "~7.8.0"
15
15
  },
16
16
  "dependencies": {
@@ -2,7 +2,7 @@ import { MatDialogRef, MatDialog } from '@angular/material/dialog';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { EventEmitter, OnInit, WritableSignal, InjectionToken, Provider, OnChanges, OnDestroy, Type, SimpleChanges } from '@angular/core';
4
4
  import * as _praxisui_core from '@praxisui/core';
5
- import { ComponentDocMeta, WidgetShellConfig, ComponentMetadataRegistry, PraxisI18nService, SettingsEditorSection, EndpointRef, PraxisTextValue, WidgetShellPresetCategory, CompositionLink, WidgetShellAction, WidgetPageAuthoringCapabilities, PortContract, ComponentPortPathSegment, LinkIntent, WidgetPageDefinition, SurfaceOpenActionEditorComponent, TransformKind, TransformPipeline, SurfaceOpenPayload, WidgetPageDeviceKind, SettingsValueProvider as SettingsValueProvider$1, WidgetShellPresetDefinition, WidgetPageCanvasLayout, WidgetPageGroupingDefinition, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapability, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, WidgetPageDeviceLayouts, WidgetPageSlotAssignments, WidgetPageStateInput, WidgetInstance, TransformOutputHint, TransformSemanticKind, ConfigAuthoringSource, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeChangeSetFilters, DomainKnowledgeValidationResponse, DomainKnowledgeStatusTransitionRequest, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleDefinitionRequest, DomainRuleDefinition, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatusTransitionRequest, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleMaterializationFilters, DomainRuleMaterialization, DomainRuleTimelineResponse, PraxisRuntimeComponentObservationEnvelope, ComponentContextPack, ComponentAuthoringManifest, DiagnosticRecord, NestedPortCatalogRegistry, CompositionValidatorService, ApiUrlEntry, DynamicWidgetPageComponent, ConfigDocument, WidgetEventEnvelope, ObservabilityAgenticTurnMetrics, SettingsPanelBridge, ObservabilityAgenticTurnMetricBucket, RichTimelineItem } from '@praxisui/core';
5
+ import { ComponentDocMeta, WidgetShellConfig, ComponentMetadataRegistry, PraxisI18nService, SettingsEditorSection, EndpointRef, PraxisTextValue, WidgetShellPresetCategory, CompositionLink, WidgetShellAction, WidgetPageAuthoringCapabilities, PortContract, ComponentPortPathSegment, LinkIntent, WidgetPageDefinition, SurfaceOpenActionEditorComponent, TransformKind, TransformPipeline, SurfaceOpenPayload, WidgetPageDeviceKind, SettingsValueProvider as SettingsValueProvider$1, WidgetShellPresetDefinition, WidgetPageCanvasLayout, WidgetPageGroupingDefinition, WidgetPageDataSourceDefinition, WidgetPageDataSourceKind, WidgetPageDataSourceMethod, WidgetPageDataSourceErrorPolicy, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapability, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, WidgetPageDeviceLayouts, WidgetPageSlotAssignments, WidgetPageStateInput, WidgetInstance, TransformOutputHint, TransformSemanticKind, ConfigAuthoringSource, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeChangeSetFilters, DomainKnowledgeValidationResponse, DomainKnowledgeStatusTransitionRequest, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleDefinitionRequest, DomainRuleDefinition, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatusTransitionRequest, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleMaterializationFilters, DomainRuleMaterialization, DomainRuleTimelineResponse, PraxisRuntimeComponentObservationEnvelope, ComponentContextPack, ComponentAuthoringManifest, DiagnosticRecord, NestedPortCatalogRegistry, CompositionValidatorService, ApiUrlEntry, DynamicWidgetPageComponent, ConfigDocument, WidgetPagePersistenceState, WidgetEventEnvelope, ObservabilityAgenticTurnMetrics, SettingsPanelBridge, ObservabilityAgenticTurnMetricBucket, RichTimelineItem } from '@praxisui/core';
6
6
  import * as rxjs from 'rxjs';
7
7
  import { BehaviorSubject, Observable } from 'rxjs';
8
8
  import { FormGroup, FormControl, FormArray, AbstractControl } from '@angular/forms';
@@ -344,7 +344,7 @@ interface ConnectionEditorNode {
344
344
  states: ConnectionEditorPort[];
345
345
  }
346
346
  type ConnectionEditorDiagnosticSeverity = 'error' | 'warning';
347
- type ConnectionEditorDiagnosticCode = 'endpoint-widget-missing' | 'endpoint-unresolved' | 'endpoint-not-declared' | 'nested-path-terminal-missing' | 'nested-path-not-declared' | 'state-path-not-declared' | 'feedback-cycle-unguarded' | 'feedback-cycle-guarded';
347
+ type ConnectionEditorDiagnosticCode = 'endpoint-widget-missing' | 'endpoint-unresolved' | 'endpoint-not-declared' | 'nested-path-terminal-missing' | 'nested-path-not-declared' | 'state-path-not-declared' | 'feedback-cycle-unguarded' | 'feedback-cycle-guarded' | 'competing-query-owner';
348
348
  interface ConnectionEditorDiagnostic {
349
349
  code: ConnectionEditorDiagnosticCode;
350
350
  severity: ConnectionEditorDiagnosticSeverity;
@@ -1091,8 +1091,50 @@ declare class CanvasConstraintEditorModel {
1091
1091
  width: number;
1092
1092
  height: number;
1093
1093
  };
1094
+ private resolveFriendlyWidgetTitle;
1094
1095
  }
1095
1096
 
1097
+ interface GuidedDataSourceQueryConfig {
1098
+ mode: 'group-by' | 'timeseries' | 'collection';
1099
+ groupByField?: string;
1100
+ metricField?: string;
1101
+ metricOp?: 'count' | 'sum' | 'avg' | 'min' | 'max';
1102
+ period?: 'day' | 'week' | 'month' | 'year';
1103
+ pageSize?: number;
1104
+ }
1105
+ interface GuidedDataSourceTransformConfig {
1106
+ kind: 'group-by-map' | 'timeseries-last' | 'path';
1107
+ path?: string;
1108
+ mappingsText?: string;
1109
+ totalField?: string;
1110
+ weightedAverageField?: string;
1111
+ weightedAverageDecimals?: number;
1112
+ ratioTargetField?: string;
1113
+ ratioNumeratorField?: string;
1114
+ ratioDenominatorField?: string;
1115
+ ratioScale?: number;
1116
+ ratioDecimals?: number;
1117
+ }
1118
+ interface GuidedDerivedMeasureConfig {
1119
+ targetPath: string;
1120
+ kind: 'ratio-percent' | 'weighted-average' | 'format-value' | 'template';
1121
+ numeratorPath?: string;
1122
+ denominatorPath?: string;
1123
+ sourcePath?: string;
1124
+ decimals?: number;
1125
+ format?: 'percent' | 'number' | 'currency';
1126
+ templateExpression?: string;
1127
+ }
1128
+ interface CollectionScreenComposerConfig {
1129
+ resourcePath: string;
1130
+ title: string;
1131
+ groupByField: string;
1132
+ includeHeader: boolean;
1133
+ includeIndicators: boolean;
1134
+ filterMode: 'table-integrated' | 'external-filter-bar';
1135
+ collectionKind: 'table' | 'list';
1136
+ detailSurface: 'none' | 'drawer' | 'modal';
1137
+ }
1096
1138
  type EditorTabId$1 = 'canvas' | 'grouping' | 'devices' | 'context' | 'state' | 'limits';
1097
1139
  type DeviceKey = 'desktop' | 'tablet' | 'mobile';
1098
1140
  type GroupingNodeGroup$1 = FormGroup<{
@@ -1105,6 +1147,21 @@ type GroupingNodeGroup$1 = FormGroup<{
1105
1147
  side: FormControl<string>;
1106
1148
  tabsJson: FormControl<string>;
1107
1149
  }>;
1150
+ type DataSourceNodeGroup$1 = FormGroup<{
1151
+ id: FormControl<string>;
1152
+ kind: FormControl<string>;
1153
+ resourcePath: FormControl<string>;
1154
+ endpointKey: FormControl<string>;
1155
+ method: FormControl<string>;
1156
+ targetStatePath: FormControl<string>;
1157
+ errorPolicy: FormControl<string>;
1158
+ refreshIntervalMs: FormControl<number | null>;
1159
+ autoFetch: FormControl<string>;
1160
+ description: FormControl<string>;
1161
+ queryJson: FormControl<string>;
1162
+ transformJson: FormControl<string>;
1163
+ fallbackJson: FormControl<string>;
1164
+ }>;
1108
1165
  type DeviceVariantForm = FormGroup<{
1109
1166
  columns: FormControl<number | null>;
1110
1167
  rowUnit: FormControl<string>;
@@ -1186,6 +1243,7 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
1186
1243
  key: string;
1187
1244
  number: number;
1188
1245
  label: string;
1246
+ widgetKey?: string;
1189
1247
  col: number;
1190
1248
  row: number;
1191
1249
  colSpan: number;
@@ -1228,6 +1286,8 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
1228
1286
  readonly shellPresetControl: FormControl<string>;
1229
1287
  readonly contextControl: FormControl<string>;
1230
1288
  readonly stateControl: FormControl<string>;
1289
+ readonly dataSourcesControl: FormControl<string>;
1290
+ readonly dataSourceNodes: FormArray<DataSourceNodeGroup$1>;
1231
1291
  readonly groupingNodes: FormArray<GroupingNodeGroup$1>;
1232
1292
  readonly deviceForms: Record<DeviceKey, DeviceVariantForm>;
1233
1293
  readonly isDirty$: BehaviorSubject<boolean>;
@@ -1242,19 +1302,51 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
1242
1302
  readonly canvasLimits: CanvasConstraintEditorModel;
1243
1303
  readonly limitsTargetControl: FormControl<number>;
1244
1304
  readonly limitsError: WritableSignal<string | null>;
1305
+ readonly previousAdjustableHeights: WritableSignal<{
1306
+ key: string;
1307
+ title: string;
1308
+ scope: string;
1309
+ scopeLabel: string;
1310
+ heightPx: number;
1311
+ }[]>;
1245
1312
  readonly limitsErrorMatcher: {
1246
1313
  isErrorState: (control: FormControl | null) => boolean;
1247
1314
  };
1248
1315
  private readonly injectedData;
1249
1316
  readonly isHostedInSettingsPanel: boolean;
1250
1317
  private readonly i18n;
1318
+ private readonly dataSourceRuntime;
1319
+ private readonly stateRuntime;
1251
1320
  private pageInput;
1252
1321
  private snapshot;
1253
1322
  readonly stackedDevices: Set<DeviceKey>;
1254
1323
  readonly activeDevice: WritableSignal<DeviceKey>;
1255
1324
  private hydrating;
1325
+ private syncingDataSources;
1326
+ private guidedDataSourcesInvalid;
1256
1327
  private renderedCandidate;
1257
1328
  private renderedValidationFingerprint;
1329
+ private stagedWidgets;
1330
+ private stagedComposition;
1331
+ readonly composerResourcePathControl: FormControl<string>;
1332
+ readonly composerTitleControl: FormControl<string>;
1333
+ readonly composerGroupFieldControl: FormControl<string>;
1334
+ readonly composerIncludeHeaderControl: FormControl<boolean>;
1335
+ readonly composerIncludeIndicatorsControl: FormControl<boolean>;
1336
+ readonly composerFilterModeControl: FormControl<"table-integrated" | "external-filter-bar">;
1337
+ readonly composerCollectionKindControl: FormControl<"table" | "list">;
1338
+ readonly composerDetailSurfaceControl: FormControl<"none" | "modal" | "drawer">;
1339
+ readonly composerMessage: WritableSignal<string>;
1340
+ readonly binderTokenControl: FormControl<string>;
1341
+ readonly binderWidgetControl: FormControl<string>;
1342
+ readonly binderInputPathControl: FormControl<string>;
1343
+ readonly binderMessage: WritableSignal<string>;
1344
+ readonly derivedPathControl: FormControl<string>;
1345
+ readonly derivedKindControl: FormControl<"template" | "format-value" | "ratio-percent" | "weighted-average">;
1346
+ readonly derivedNumeratorControl: FormControl<string>;
1347
+ readonly derivedDenominatorControl: FormControl<string>;
1348
+ readonly derivedFormatControl: FormControl<"number" | "boolean" | "integer" | "percent" | "currency">;
1349
+ readonly derivedDecimalsControl: FormControl<number>;
1258
1350
  private readonly tabOrder;
1259
1351
  constructor();
1260
1352
  ngOnInit(): void;
@@ -1265,6 +1357,17 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
1265
1357
  get dirtyStateLabel(): string;
1266
1358
  get nonLimitError(): string | null;
1267
1359
  get limitsSummaryError(): string | null;
1360
+ get blockedGeometryWidgets(): Array<{
1361
+ targetIndex: number;
1362
+ key: string;
1363
+ title: string;
1364
+ scope: string;
1365
+ scopeLabel: string;
1366
+ heightPx: number | null;
1367
+ message: string;
1368
+ }>;
1369
+ navigateToBlockedLimit(targetIndex?: number): void;
1370
+ switchBlockedWidgetsToAutoHeight(): void;
1268
1371
  get selectedLayoutPresetLabel(): string;
1269
1372
  get selectedThemePresetLabel(): string;
1270
1373
  get selectedLayoutPresetEntry(): LayoutPresetEntry | null;
@@ -1285,6 +1388,61 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
1285
1388
  private stackedCanvas;
1286
1389
  addGroupingNode(seed?: WidgetPageGroupingDefinition): void;
1287
1390
  removeGroupingNode(index: number): void;
1391
+ addDataSourceNode(seed?: Partial<WidgetPageDataSourceDefinition>): void;
1392
+ removeDataSourceNode(index: number): void;
1393
+ dataSourceLabel(index: number): string;
1394
+ applyGuidedDataSourceQuery(index: number, config: GuidedDataSourceQueryConfig): void;
1395
+ applyGuidedDataSourceTransform(index: number, config: GuidedDataSourceTransformConfig): void;
1396
+ getDataSourcePreview(index: number): {
1397
+ status: 'ok' | 'error';
1398
+ sourceKind: 'live' | 'sample';
1399
+ value?: unknown;
1400
+ formattedJson?: string;
1401
+ error?: string;
1402
+ tokens: string[];
1403
+ };
1404
+ addGuidedDerivedMeasure(config?: Partial<GuidedDerivedMeasureConfig>): boolean;
1405
+ getDerivedStatePreview(): {
1406
+ entries: Array<{
1407
+ key: string;
1408
+ value: unknown;
1409
+ formattedValue: string;
1410
+ token: string;
1411
+ }>;
1412
+ diagnostics: string[];
1413
+ };
1414
+ availableStateBindingTokens(): string[];
1415
+ bindablePageWidgets(): Array<{
1416
+ key: string;
1417
+ title: string;
1418
+ componentId: string;
1419
+ }>;
1420
+ bindStateTokenToWidget(widgetKey?: string, inputPath?: string, stateToken?: string): boolean;
1421
+ currentWidgetStateBindings(): Array<{
1422
+ widgetKey: string;
1423
+ widgetTitle: string;
1424
+ inputPath: string;
1425
+ token: string;
1426
+ }>;
1427
+ composeCollectionScreen(overrides?: Partial<CollectionScreenComposerConfig>): WidgetPageDefinition | null;
1428
+ quickCanvasWidgets(): Array<{
1429
+ key: string;
1430
+ label: string;
1431
+ col: number;
1432
+ row: number;
1433
+ colSpan: number;
1434
+ rowSpan: number;
1435
+ }>;
1436
+ setWidgetCanvasSpan(widgetKey: string, colSpan: number, rowSpan?: number): void;
1437
+ duplicateFilterOwners(): Array<{
1438
+ tableKey: string;
1439
+ tableTitle: string;
1440
+ externalSourceKeys: string[];
1441
+ linkIds: string[];
1442
+ }>;
1443
+ consolidateFilterOwnership(tableKey: string, mode: 'keep-table-toolbar' | 'keep-external-link'): void;
1444
+ private resolveWidgetTitle;
1445
+ private isFilterLinkTargetingWidget;
1288
1446
  layoutPresetSummary(preset: LayoutPresetEntry): string;
1289
1447
  slotsSummary(preset: LayoutPresetEntry): string;
1290
1448
  requiredSlotsSummary(preset: LayoutPresetEntry): string;
@@ -1304,6 +1462,12 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
1304
1462
  protected refreshRenderedValidation(): void;
1305
1463
  private createDeviceVariantForm;
1306
1464
  private createGroupingNodeGroup;
1465
+ private createDataSourceNodeGroup;
1466
+ private replaceDataSourceNodes;
1467
+ private buildDataSourcesFromNodes;
1468
+ private syncDataSourcesJsonFromNodes;
1469
+ private syncDataSourceNodesFromJson;
1470
+ private inferPageResourcePath;
1307
1471
  private hydrate;
1308
1472
  private replaceGroupingNodes;
1309
1473
  private buildCurrentPage;
@@ -1316,13 +1480,19 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
1316
1480
  private invalidate;
1317
1481
  private refreshPanelState;
1318
1482
  get layoutPresetOptions(): WidgetPageDefinition['layoutPresetOptions'];
1483
+ private effectivePageInput;
1319
1484
  private currentPageInput;
1320
1485
  private parsePage;
1321
1486
  private parseJson;
1322
1487
  private parseRecordJson;
1488
+ private parseDataSourcesJson;
1489
+ private isValidDataSourceTransform;
1490
+ private validateDataSourceEntry;
1491
+ private isValidDataSourcesPayload;
1323
1492
  private parseGroupingTabs;
1324
1493
  private parseGroupingOverrides;
1325
1494
  private parseWidgetOverrides;
1495
+ private validateWidgetOverrides;
1326
1496
  private isGroupingTab;
1327
1497
  private isGroupingOverride;
1328
1498
  private isWidgetOverride;
@@ -1337,6 +1507,12 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
1337
1507
  private applyShellPresetToContext;
1338
1508
  private lookupPresetLabel;
1339
1509
  private defaultCanvas;
1510
+ private parseKeyValuePairs;
1511
+ private buildSamplePayloadForDataSource;
1512
+ private collectStateTokensForValue;
1513
+ private assignNestedValue;
1514
+ private collectWidgetBindingsRecursive;
1515
+ private humanizeResourceTitle;
1340
1516
  private clone;
1341
1517
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicPageConfigEditorComponent, never>;
1342
1518
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicPageConfigEditorComponent, "praxis-dynamic-page-config-editor", never, { "page": { "alias": "page"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "presets": { "alias": "presets"; "required": false; }; "pagePreset": { "alias": "pagePreset"; "required": false; }; }, { "pageChange": "pageChange"; }, never, never, true, never>;
@@ -1408,11 +1584,29 @@ type GroupingNodeGroup = FormGroup<{
1408
1584
  side: FormControl<string>;
1409
1585
  tabsJson: FormControl<string>;
1410
1586
  }>;
1587
+ type DataSourceNodeGroup = FormGroup<{
1588
+ id: FormControl<string>;
1589
+ kind: FormControl<string>;
1590
+ resourcePath: FormControl<string>;
1591
+ endpointKey: FormControl<string>;
1592
+ method: FormControl<string>;
1593
+ targetStatePath: FormControl<string>;
1594
+ errorPolicy: FormControl<string>;
1595
+ refreshIntervalMs: FormControl<number | null>;
1596
+ autoFetch: FormControl<string>;
1597
+ queryJson: FormControl<string>;
1598
+ transformJson: FormControl<string>;
1599
+ fallbackJson: FormControl<string>;
1600
+ description: FormControl<string>;
1601
+ }>;
1411
1602
  declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1412
1603
  protected readonly derivedOperators: readonly ["merge-objects", "pick", "omit"];
1413
1604
  protected readonly mergeStrategies: readonly ["replace", "merge", "append", "remove-keys"];
1414
1605
  protected readonly valueModes: readonly ["json", "string", "number", "boolean", "null"];
1415
1606
  protected readonly groupingKinds: readonly ["section", "tabs", "hero", "rail"];
1607
+ protected readonly dataSourceKinds: WidgetPageDataSourceKind[];
1608
+ protected readonly dataSourceMethods: WidgetPageDataSourceMethod[];
1609
+ protected readonly dataSourceErrorPolicies: WidgetPageDataSourceErrorPolicy[];
1416
1610
  protected readonly layoutPresetEntries: Array<(typeof BUILTIN_PAGE_LAYOUT_PRESETS)[string]>;
1417
1611
  protected readonly themePresetEntries: Array<(typeof BUILTIN_PAGE_THEME_PRESETS)[string]>;
1418
1612
  readonly page: _angular_core.InputSignal<string | PageDefinition | null>;
@@ -1432,9 +1626,11 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1432
1626
  readonly groupingControl: FormControl<string>;
1433
1627
  readonly deviceLayoutsControl: FormControl<string>;
1434
1628
  readonly stateValuesControl: FormControl<string>;
1629
+ readonly dataSourcesControl: FormControl<string>;
1435
1630
  readonly groupingNodes: FormArray<GroupingNodeGroup>;
1436
1631
  readonly schemaNodes: FormArray<SchemaNodeGroup>;
1437
1632
  readonly derivedNodes: FormArray<DerivedNodeGroup>;
1633
+ readonly dataSourceNodes: FormArray<DataSourceNodeGroup>;
1438
1634
  readonly deviceDesktopForm: FormGroup<{
1439
1635
  orientation: FormControl<string>;
1440
1636
  columns: FormControl<number | null>;
@@ -1471,6 +1667,8 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1471
1667
  private lastGrouping;
1472
1668
  private lastDeviceLayouts;
1473
1669
  private lastStateValues;
1670
+ private lastDataSources;
1671
+ private dataSourcesEditSource;
1474
1672
  private readonly dirtySubject;
1475
1673
  private readonly validSubject;
1476
1674
  private readonly busySubject;
@@ -1492,6 +1690,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1492
1690
  protected get selectedShellPresetLabel(): string;
1493
1691
  protected get contextExample(): string;
1494
1692
  protected get stateValuesExample(): string;
1693
+ protected get dataSourcesExample(): string;
1495
1694
  protected get layoutPresetHint(): string;
1496
1695
  protected get themePresetHint(): string;
1497
1696
  protected get shellPresetHint(): string;
@@ -1515,6 +1714,8 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1515
1714
  config?: WidgetDerivedStateNode;
1516
1715
  }): void;
1517
1716
  removeDerivedNode(index: number): void;
1717
+ addDataSourceNode(seed?: WidgetPageDataSourceDefinition): void;
1718
+ removeDataSourceNode(index: number): void;
1518
1719
  addGroupingNode(seed?: WidgetPageGroupingDefinition): void;
1519
1720
  removeGroupingNode(index: number): void;
1520
1721
  setActiveTab(tab: EditorTabId): void;
@@ -1526,11 +1727,24 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1526
1727
  private stringifyGroupingWidgetKeys;
1527
1728
  private buildGrouping;
1528
1729
  private hydrateDeviceLayoutControls;
1730
+ private deviceOverridesError;
1529
1731
  private buildDeviceLayouts;
1530
1732
  private createDeviceLayoutForm;
1531
1733
  private patchDeviceLayoutForm;
1532
1734
  private buildDeviceLayoutVariant;
1533
1735
  private hydrateStateEditor;
1736
+ private hydrateDataSourcesEditor;
1737
+ private normalizeDataSourcesArray;
1738
+ private replaceDataSourceNodes;
1739
+ private createDataSourceNodeGroup;
1740
+ private syncDataSourceNodesFromControl;
1741
+ private syncDataSourcesControlFromNodes;
1742
+ private isPlainRecord;
1743
+ private isValidDataSourceTransform;
1744
+ private validateDataSourceEntry;
1745
+ private isValidDataSourcesPayload;
1746
+ private buildDataSourcesFromNodes;
1747
+ private buildDataSources;
1534
1748
  private replaceSchemaNodes;
1535
1749
  private replaceDerivedNodes;
1536
1750
  private createSchemaNodeGroup;
@@ -2153,7 +2367,7 @@ type BuilderCanvasLayout = {
2153
2367
  rowUnit?: string;
2154
2368
  gap?: string;
2155
2369
  autoRows?: 'fixed' | 'content';
2156
- collisionPolicy?: 'block' | 'swap';
2370
+ collisionPolicy?: 'block' | 'swap' | 'push-down';
2157
2371
  items: Record<string, BuilderCanvasItem>;
2158
2372
  };
2159
2373
  type BuilderPageDefinition = Omit<WidgetPageDefinition, 'widgets'> & {
@@ -2267,20 +2481,6 @@ interface AgenticAuthoringQuickReply extends PraxisAssistantShellQuickReply {
2267
2481
  kind: string;
2268
2482
  }
2269
2483
  type AgenticAuthoringPanelLayout = PraxisAssistantShellLayout;
2270
- type PageBuilderPremiumReadinessSeverity = 'info' | 'warning' | 'error';
2271
- type PageBuilderPremiumReadinessActionKind = 'open-page-settings' | 'open-connections' | 'open-widget-config' | 'focus-widget';
2272
- interface PageBuilderPremiumReadinessAction {
2273
- kind: PageBuilderPremiumReadinessActionKind;
2274
- label: string;
2275
- widgetKey?: string;
2276
- }
2277
- interface PageBuilderPremiumReadinessIssue {
2278
- id: string;
2279
- severity: PageBuilderPremiumReadinessSeverity;
2280
- title: string;
2281
- description: string;
2282
- action?: PageBuilderPremiumReadinessAction;
2283
- }
2284
2484
  type SharedRuleCockpitAction = 'definition' | 'simulation' | 'approve' | 'activate' | 'publication' | 'materializations' | 'timeline' | 'enforcement';
2285
2485
  type ProjectKnowledgeCockpitAction = 'change-set' | 'validate' | 'approve' | 'reject' | 'apply' | 'readback';
2286
2486
  interface SharedRuleEnforcementSummary {
@@ -2333,14 +2533,18 @@ declare class DynamicPageBuilderComponent implements OnChanges, OnDestroy {
2333
2533
  private readonly observabilityDashboard;
2334
2534
  private readonly runtimeObservationRegistry;
2335
2535
  private readonly agenticAuthoringOptions;
2536
+ private readonly customizationMode;
2336
2537
  runtime?: DynamicWidgetPageComponent;
2337
2538
  page?: WidgetPageDefinition | string;
2338
2539
  context?: Record<string, unknown> | null;
2339
2540
  strictValidation: boolean;
2541
+ /** Opt in to Core persistence; hosts managing their own documents leave this disabled. */
2340
2542
  autoPersist: boolean;
2341
2543
  enableCustomization: boolean;
2342
2544
  authoringCapabilities?: PageBuilderAuthoringCapabilities | null;
2343
2545
  showSettingsButton: boolean;
2546
+ showGovernanceToolbar: boolean;
2547
+ governanceToolbarTitle?: string;
2344
2548
  pageIdentity?: PageIdentity;
2345
2549
  componentInstanceId?: string;
2346
2550
  pageEditorComponent: Type<any> | undefined;
@@ -2364,6 +2568,8 @@ declare class DynamicPageBuilderComponent implements OnChanges, OnDestroy {
2364
2568
  canDeleteSavedPage: boolean;
2365
2569
  pageLifecycleBusy: boolean;
2366
2570
  pageLifecycleResetRevision: number | string | null;
2571
+ readonly persistenceChange: _angular_core.OutputEmitterRef<WidgetPagePersistenceState>;
2572
+ private runtimePersistenceStatus;
2367
2573
  pageChange: EventEmitter<WidgetPageDefinition>;
2368
2574
  /** Emits only explicit visual authoring operations, never runtime state changes. */
2369
2575
  readonly pageAuthoringChange: _angular_core.OutputEmitterRef<WidgetPageDefinition>;
@@ -2373,10 +2579,16 @@ declare class DynamicPageBuilderComponent implements OnChanges, OnDestroy {
2373
2579
  agenticAuthoringSharedRuleHandoff: EventEmitter<PageBuilderAgenticAuthoringSharedRuleHandoff>;
2374
2580
  pageRestart: EventEmitter<void>;
2375
2581
  savedPageDeleteRequested: EventEmitter<void>;
2582
+ customizationChange: EventEmitter<boolean>;
2376
2583
  readonly currentPage: _angular_core.WritableSignal<WidgetPageDefinition>;
2584
+ readonly isCustomizing: _angular_core.WritableSignal<boolean>;
2585
+ readonly governancePersistence: _angular_core.WritableSignal<WidgetPagePersistenceState>;
2586
+ readonly isLayoutCustomized: _angular_core.Signal<boolean>;
2587
+ readonly isGovernanceBusy: _angular_core.Signal<boolean>;
2588
+ readonly governancePersistenceLabel: _angular_core.Signal<string>;
2589
+ readonly governanceLastSavedAt: _angular_core.Signal<string | null>;
2377
2590
  readonly hasPageWidgets: _angular_core.Signal<boolean>;
2378
2591
  readonly hasRecommendedConnectionSuggestion: _angular_core.Signal<boolean>;
2379
- readonly premiumReadinessIssues: _angular_core.Signal<PageBuilderPremiumReadinessIssue[]>;
2380
2592
  readonly connectionsViewerOpen: _angular_core.WritableSignal<boolean>;
2381
2593
  readonly agenticAuthoringOpen: _angular_core.WritableSignal<boolean>;
2382
2594
  readonly agenticAuthoringPrompt: _angular_core.WritableSignal<string>;
@@ -2439,19 +2651,28 @@ declare class DynamicPageBuilderComponent implements OnChanges, OnDestroy {
2439
2651
  constructor(dialog: MatDialog, settingsPanel: SettingsPanelBridge | null);
2440
2652
  ngOnChanges(changes: SimpleChanges): void;
2441
2653
  ngOnDestroy(): void;
2654
+ toggleGovernanceCustomization(): void;
2655
+ isCustomizationEnabled(): boolean;
2442
2656
  showSettings(): boolean;
2443
2657
  canInsertWidgets(): boolean;
2444
2658
  canOpenPageSettings(): boolean;
2445
2659
  canEditConnections(): boolean;
2446
2660
  canPreviewPage(): boolean;
2447
2661
  canUseAgenticAuthoring(): boolean;
2448
- canRunPremiumReadinessAction(action: PageBuilderPremiumReadinessAction): boolean;
2449
2662
  canUsePageLifecycle(): boolean;
2450
2663
  private isAuthoringCapabilityEnabled;
2451
2664
  isPreviewMode(): boolean;
2452
2665
  runtimePage(): WidgetPageDefinition;
2453
2666
  runtimeAuthoringCapabilities(): PageBuilderAuthoringCapabilities;
2454
2667
  builderModeLabel(): string;
2668
+ /** Governed documents and agentic previews retain their explicit host/apply lifecycle. */
2669
+ runtimeAutoPersist(): boolean;
2670
+ /** Explicitly discard the local draft and reload the current identity's saved page. */
2671
+ reloadPersistedPage(defaultPage?: WidgetPageDefinition): void;
2672
+ /** Clear the current identity's saved document after storage acknowledgement. */
2673
+ resetPersistedPage(defaultPage?: WidgetPageDefinition): void;
2674
+ onRuntimePersistenceChange(state: WidgetPagePersistenceState): void;
2675
+ private syncShellPageGovernance;
2455
2676
  onRuntimePageChange(next: WidgetPageDefinition): void;
2456
2677
  onRuntimePageAuthoringChange(next: WidgetPageDefinition): void;
2457
2678
  onRuntimeWidgetEvent(event: WidgetEventEnvelope): void;
@@ -2476,15 +2697,10 @@ declare class DynamicPageBuilderComponent implements OnChanges, OnDestroy {
2476
2697
  addWidget(selection: string | ComponentPaletteSelection): void;
2477
2698
  private layoutHintsFor;
2478
2699
  openPageSettings(): void;
2700
+ /** Retries the current persisted draft, including an intentionally empty page. */
2701
+ retryPersistedPage(): void;
2479
2702
  saveCurrentPage(): void;
2480
2703
  canSaveCurrentPage(): boolean;
2481
- private evaluatePremiumReadiness;
2482
- runPremiumReadinessAction(issue: PageBuilderPremiumReadinessIssue): void;
2483
- private isPremiumReadinessCandidate;
2484
- private hasDisconnectedOperationalWidgets;
2485
- private latePrimaryChartKey;
2486
- private usesLocalAnalyticData;
2487
- private isAnalyticWidget;
2488
2704
  applyConfigFromAdapter(config: PageBuilderConfig): void;
2489
2705
  private createAdapterHost;
2490
2706
  toggleAgenticAuthoring(): void;
@@ -2718,7 +2934,7 @@ declare class DynamicPageBuilderComponent implements OnChanges, OnDestroy {
2718
2934
  authoringSourceDiagnosticText(diagnostic: UiCompositionAuthoringSourceDiagnostic): string;
2719
2935
  tx(key: string, fallback: string): string;
2720
2936
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicPageBuilderComponent, [null, { optional: true; }]>;
2721
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicPageBuilderComponent, "praxis-dynamic-page-builder", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "authoringCapabilities": { "alias": "authoringCapabilities"; "required": false; }; "showSettingsButton": { "alias": "showSettingsButton"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "componentPaletteAllowedWidgetIds": { "alias": "componentPaletteAllowedWidgetIds"; "required": false; }; "componentPaletteAllowedWidgetTags": { "alias": "componentPaletteAllowedWidgetTags"; "required": false; }; "componentPaletteAllowedPresetIds": { "alias": "componentPaletteAllowedPresetIds"; "required": false; }; "enableAgenticAuthoring": { "alias": "enableAgenticAuthoring"; "required": false; }; "agenticAuthoringProvider": { "alias": "agenticAuthoringProvider"; "required": false; }; "agenticAuthoringModel": { "alias": "agenticAuthoringModel"; "required": false; }; "agenticAuthoringApiKey": { "alias": "agenticAuthoringApiKey"; "required": false; }; "agenticAuthoringComponentId": { "alias": "agenticAuthoringComponentId"; "required": false; }; "agenticAuthoringScope": { "alias": "agenticAuthoringScope"; "required": false; }; "agenticAuthoringEtag": { "alias": "agenticAuthoringEtag"; "required": false; }; "agenticAuthoringIncludeLlmDiagnostics": { "alias": "agenticAuthoringIncludeLlmDiagnostics"; "required": false; }; "agenticAuthoringEnableStreaming": { "alias": "agenticAuthoringEnableStreaming"; "required": false; }; "agenticAuthoringVoiceInputMode": { "alias": "agenticAuthoringVoiceInputMode"; "required": false; }; "agenticAuthoringContextHints": { "alias": "agenticAuthoringContextHints"; "required": false; }; "authoringDocument": { "alias": "authoringDocument"; "required": false; }; "showPageLifecycleActions": { "alias": "showPageLifecycleActions"; "required": false; }; "canDeleteSavedPage": { "alias": "canDeleteSavedPage"; "required": false; }; "pageLifecycleBusy": { "alias": "pageLifecycleBusy"; "required": false; }; "pageLifecycleResetRevision": { "alias": "pageLifecycleResetRevision"; "required": false; }; }, { "pageChange": "pageChange"; "pageAuthoringChange": "pageAuthoringChange"; "widgetEvent": "widgetEvent"; "pageSaveRequested": "pageSaveRequested"; "agenticAuthoringApplied": "agenticAuthoringApplied"; "agenticAuthoringSharedRuleHandoff": "agenticAuthoringSharedRuleHandoff"; "pageRestart": "pageRestart"; "savedPageDeleteRequested": "savedPageDeleteRequested"; }, never, never, true, never>;
2937
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicPageBuilderComponent, "praxis-dynamic-page-builder", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "authoringCapabilities": { "alias": "authoringCapabilities"; "required": false; }; "showSettingsButton": { "alias": "showSettingsButton"; "required": false; }; "showGovernanceToolbar": { "alias": "showGovernanceToolbar"; "required": false; }; "governanceToolbarTitle": { "alias": "governanceToolbarTitle"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "componentPaletteAllowedWidgetIds": { "alias": "componentPaletteAllowedWidgetIds"; "required": false; }; "componentPaletteAllowedWidgetTags": { "alias": "componentPaletteAllowedWidgetTags"; "required": false; }; "componentPaletteAllowedPresetIds": { "alias": "componentPaletteAllowedPresetIds"; "required": false; }; "enableAgenticAuthoring": { "alias": "enableAgenticAuthoring"; "required": false; }; "agenticAuthoringProvider": { "alias": "agenticAuthoringProvider"; "required": false; }; "agenticAuthoringModel": { "alias": "agenticAuthoringModel"; "required": false; }; "agenticAuthoringApiKey": { "alias": "agenticAuthoringApiKey"; "required": false; }; "agenticAuthoringComponentId": { "alias": "agenticAuthoringComponentId"; "required": false; }; "agenticAuthoringScope": { "alias": "agenticAuthoringScope"; "required": false; }; "agenticAuthoringEtag": { "alias": "agenticAuthoringEtag"; "required": false; }; "agenticAuthoringIncludeLlmDiagnostics": { "alias": "agenticAuthoringIncludeLlmDiagnostics"; "required": false; }; "agenticAuthoringEnableStreaming": { "alias": "agenticAuthoringEnableStreaming"; "required": false; }; "agenticAuthoringVoiceInputMode": { "alias": "agenticAuthoringVoiceInputMode"; "required": false; }; "agenticAuthoringContextHints": { "alias": "agenticAuthoringContextHints"; "required": false; }; "authoringDocument": { "alias": "authoringDocument"; "required": false; }; "showPageLifecycleActions": { "alias": "showPageLifecycleActions"; "required": false; }; "canDeleteSavedPage": { "alias": "canDeleteSavedPage"; "required": false; }; "pageLifecycleBusy": { "alias": "pageLifecycleBusy"; "required": false; }; "pageLifecycleResetRevision": { "alias": "pageLifecycleResetRevision"; "required": false; }; }, { "persistenceChange": "persistenceChange"; "pageChange": "pageChange"; "pageAuthoringChange": "pageAuthoringChange"; "widgetEvent": "widgetEvent"; "pageSaveRequested": "pageSaveRequested"; "agenticAuthoringApplied": "agenticAuthoringApplied"; "agenticAuthoringSharedRuleHandoff": "agenticAuthoringSharedRuleHandoff"; "pageRestart": "pageRestart"; "savedPageDeleteRequested": "savedPageDeleteRequested"; "customizationChange": "customizationChange"; }, never, never, true, never>;
2722
2938
  }
2723
2939
 
2724
2940
  /** Metadata for Praxis Page Builder component */
@@ -2726,5 +2942,19 @@ declare const PRAXIS_PAGE_BUILDER_COMPONENT_METADATA: ComponentDocMeta;
2726
2942
  /** Provider para auto-registrar metadados do componente Page Builder. */
2727
2943
  declare function providePraxisPageBuilderMetadata(): Provider;
2728
2944
 
2729
- export { ComponentPaletteDialogComponent, ConfirmDialogComponent, ConnectionEditorComponent, DynamicPageBuilderComponent, DynamicPageConfigEditorComponent, FloatingToolbarComponent, PAGE_BUILDER_AGENTIC_AUTHORING_OPTIONS, PAGE_BUILDER_AI_CAPABILITIES, PAGE_BUILDER_COMPONENT_CONTEXT_PACK, PAGE_BUILDER_WIDGET_AI_CATALOGS, PLACEHOLDER, PRAXIS_PAGE_BUILDER_AUTHORING_MANIFEST, PRAXIS_PAGE_BUILDER_COMPONENT_METADATA, PageBuilderAgenticAuthoringService, PageConfigEditorComponent, TileToolbarComponent, UiCompositionResourcePreflightService, WidgetShellEditorComponent, clearWidgetAiCatalogs, compileUiCompositionPlan, getPageAiCatalog, getWidgetAiCapabilities, preflightUiCompositionPlan, preflightUiCompositionPlanResources, providePageBuilderWidgetAiCatalogs, providePraxisPageBuilderMetadata, registerWidgetAiCatalog, registerWidgetAiCatalogs, resolveUiCompositionPlanTemplate, validateUiCompositionPlan, verifyUiCompositionAuthoringSource };
2730
- export type { Capability, CapabilityCatalog, CapabilityCategory, ComponentPaletteData, ComponentPaletteSelection, ConfirmDialogData, PageBuilderAgenticAuthoringAttachmentSummary, PageBuilderAgenticAuthoringCandidate, PageBuilderAgenticAuthoringComponentCapabilitiesResult, PageBuilderAgenticAuthoringComponentCapability, PageBuilderAgenticAuthoringComponentCapabilityCatalog, PageBuilderAgenticAuthoringComponentCapabilityExample, PageBuilderAgenticAuthoringComponentFieldAlias, PageBuilderAgenticAuthoringConversationMessage, PageBuilderAgenticAuthoringGateResult, PageBuilderAgenticAuthoringIntentResolutionRequest, PageBuilderAgenticAuthoringIntentResolutionResult, PageBuilderAgenticAuthoringOptions, PageBuilderAgenticAuthoringPendingClarification, PageBuilderAgenticAuthoringPromptRequest, PageBuilderAgenticAuthoringProvider, PageBuilderAgenticAuthoringQuickReply, PageBuilderAgenticAuthoringResourceCandidatesRequest, PageBuilderAgenticAuthoringResourceCandidatesResult, PageBuilderAgenticAuthoringSharedRuleHandoff, PageBuilderAgenticAuthoringTarget, PageBuilderAgenticAuthoringTurnStreamConnectionError, PageBuilderAgenticAuthoringTurnStreamEvent, PageBuilderAgenticAuthoringTurnStreamRequest, PageBuilderAgenticAuthoringTurnStreamStartResponse, PageBuilderApplyRequest, PageBuilderApplyResult, PageBuilderAuthoringCapabilities, PageBuilderCompiledFormPatch, PageBuilderMinimalFormPlanResult, PageBuilderPreviewDiagnostics, PageBuilderPreviewResult, PageBuilderProjectKnowledgeAudit, UiCompositionAuthoringSourceDiagnostic, UiCompositionAuthoringSourceDiagnosticCode, UiCompositionAuthoringSourceVerification, UiCompositionAuthoringSourceVerificationContext, UiCompositionPlan, UiCompositionPlanAuthoringInput, UiCompositionPlanAuthoringSource, UiCompositionPlanBinding, UiCompositionPlanCompileResult, UiCompositionPlanComponentPortEndpoint, UiCompositionPlanContextScope, UiCompositionPlanContextScopeTarget, UiCompositionPlanContextValue, UiCompositionPlanDiagnostic, UiCompositionPlanEndpoint, UiCompositionPlanGlobalActionEndpoint, UiCompositionPlanGlobalActionSourceEndpoint, UiCompositionPlanInputSource, UiCompositionPlanPreflightResult, UiCompositionPlanSelectCase, UiCompositionPlanSelectionSync, UiCompositionPlanSelectionSyncMapping, UiCompositionPlanSourceEndpoint, UiCompositionPlanStateEndpoint, UiCompositionPlanTargetEndpoint, UiCompositionPlanTemplateMaterialization, UiCompositionPlanTemplateRef, UiCompositionPlanTemplateReference, UiCompositionPlanTemplateResolutionResult, UiCompositionPlanTemplateRevision, UiCompositionPlanTransform, UiCompositionPlanTransformOutput, UiCompositionPlanWidget, UiCompositionResourceSchemaRequest, UiCompositionResourceSchemaResolution, UiCompositionResourceSchemaResolver, ValueKind };
2945
+ /**
2946
+ * Type guard that verifies if an item is a canonical ComponentDocMeta.
2947
+ */
2948
+ declare function isComponentDocMeta(value: unknown): value is ComponentDocMeta;
2949
+ /**
2950
+ * Convenient provider factory for registering widgets in the Page Builder host.
2951
+ *
2952
+ * Accepts a list of either Angular `Provider` entries (such as `providePraxisListMetadata()`)
2953
+ * or direct `ComponentDocMeta` definitions (such as `PRAXIS_LIST_COMPONENT_METADATA`).
2954
+ * Any `ComponentDocMeta` passed will be automatically registered with the
2955
+ * `ComponentMetadataRegistry` during environment initialization.
2956
+ */
2957
+ declare function providePraxisPageBuilderWidgets(widgets?: Array<Provider | ComponentDocMeta>): Provider[];
2958
+
2959
+ export { ComponentPaletteDialogComponent, ConfirmDialogComponent, ConnectionEditorComponent, DynamicPageBuilderComponent, DynamicPageConfigEditorComponent, FloatingToolbarComponent, PAGE_BUILDER_AGENTIC_AUTHORING_OPTIONS, PAGE_BUILDER_AI_CAPABILITIES, PAGE_BUILDER_COMPONENT_CONTEXT_PACK, PAGE_BUILDER_WIDGET_AI_CATALOGS, PLACEHOLDER, PRAXIS_PAGE_BUILDER_AUTHORING_MANIFEST, PRAXIS_PAGE_BUILDER_COMPONENT_METADATA, PageBuilderAgenticAuthoringService, PageConfigEditorComponent, TileToolbarComponent, UiCompositionResourcePreflightService, WidgetShellEditorComponent, clearWidgetAiCatalogs, compileUiCompositionPlan, getPageAiCatalog, getWidgetAiCapabilities, isComponentDocMeta, preflightUiCompositionPlan, preflightUiCompositionPlanResources, providePageBuilderWidgetAiCatalogs, providePraxisPageBuilderMetadata, providePraxisPageBuilderWidgets, registerWidgetAiCatalog, registerWidgetAiCatalogs, resolveUiCompositionPlanTemplate, validateUiCompositionPlan, verifyUiCompositionAuthoringSource };
2960
+ export type { Capability, CapabilityCatalog, CapabilityCategory, CollectionScreenComposerConfig, ComponentPaletteData, ComponentPaletteSelection, ConfirmDialogData, GuidedDataSourceQueryConfig, GuidedDataSourceTransformConfig, GuidedDerivedMeasureConfig, PageBuilderAgenticAuthoringAttachmentSummary, PageBuilderAgenticAuthoringCandidate, PageBuilderAgenticAuthoringComponentCapabilitiesResult, PageBuilderAgenticAuthoringComponentCapability, PageBuilderAgenticAuthoringComponentCapabilityCatalog, PageBuilderAgenticAuthoringComponentCapabilityExample, PageBuilderAgenticAuthoringComponentFieldAlias, PageBuilderAgenticAuthoringConversationMessage, PageBuilderAgenticAuthoringGateResult, PageBuilderAgenticAuthoringIntentResolutionRequest, PageBuilderAgenticAuthoringIntentResolutionResult, PageBuilderAgenticAuthoringOptions, PageBuilderAgenticAuthoringPendingClarification, PageBuilderAgenticAuthoringPromptRequest, PageBuilderAgenticAuthoringProvider, PageBuilderAgenticAuthoringQuickReply, PageBuilderAgenticAuthoringResourceCandidatesRequest, PageBuilderAgenticAuthoringResourceCandidatesResult, PageBuilderAgenticAuthoringSharedRuleHandoff, PageBuilderAgenticAuthoringTarget, PageBuilderAgenticAuthoringTurnStreamConnectionError, PageBuilderAgenticAuthoringTurnStreamEvent, PageBuilderAgenticAuthoringTurnStreamRequest, PageBuilderAgenticAuthoringTurnStreamStartResponse, PageBuilderApplyRequest, PageBuilderApplyResult, PageBuilderAuthoringCapabilities, PageBuilderCompiledFormPatch, PageBuilderMinimalFormPlanResult, PageBuilderPreviewDiagnostics, PageBuilderPreviewResult, PageBuilderProjectKnowledgeAudit, UiCompositionAuthoringSourceDiagnostic, UiCompositionAuthoringSourceDiagnosticCode, UiCompositionAuthoringSourceVerification, UiCompositionAuthoringSourceVerificationContext, UiCompositionPlan, UiCompositionPlanAuthoringInput, UiCompositionPlanAuthoringSource, UiCompositionPlanBinding, UiCompositionPlanCompileResult, UiCompositionPlanComponentPortEndpoint, UiCompositionPlanContextScope, UiCompositionPlanContextScopeTarget, UiCompositionPlanContextValue, UiCompositionPlanDiagnostic, UiCompositionPlanEndpoint, UiCompositionPlanGlobalActionEndpoint, UiCompositionPlanGlobalActionSourceEndpoint, UiCompositionPlanInputSource, UiCompositionPlanPreflightResult, UiCompositionPlanSelectCase, UiCompositionPlanSelectionSync, UiCompositionPlanSelectionSyncMapping, UiCompositionPlanSourceEndpoint, UiCompositionPlanStateEndpoint, UiCompositionPlanTargetEndpoint, UiCompositionPlanTemplateMaterialization, UiCompositionPlanTemplateRef, UiCompositionPlanTemplateReference, UiCompositionPlanTemplateResolutionResult, UiCompositionPlanTemplateRevision, UiCompositionPlanTransform, UiCompositionPlanTransformOutput, UiCompositionPlanWidget, UiCompositionResourceSchemaRequest, UiCompositionResourceSchemaResolution, UiCompositionResourceSchemaResolver, ValueKind };