@praxisui/page-builder 9.0.67 → 9.0.68-rc.1

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": "9.0.67",
3
+ "version": "9.0.68-rc.1",
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": "^9.0.67",
12
- "@praxisui/core": "^9.0.67",
13
- "@praxisui/settings-panel": "^9.0.67",
11
+ "@praxisui/ai": "^9.0.68-rc.1",
12
+ "@praxisui/core": "^9.0.68-rc.1",
13
+ "@praxisui/settings-panel": "^9.0.68-rc.1",
14
14
  "rxjs": "~7.8.0"
15
15
  },
16
16
  "dependencies": {
@@ -2,10 +2,10 @@ 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, ComponentMetadataRegistry, PraxisI18nService, WidgetShellConfig, WidgetPageAuthoringCapabilities, WidgetShellAction, EndpointRef, PortContract, ComponentPortPathSegment, LinkIntent, CompositionLink, WidgetPageDefinition, TransformKind, SurfaceOpenPayload, WidgetPageDeviceKind, SettingsValueProvider as SettingsValueProvider$1, WidgetPageGroupingDefinition, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapability, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, WidgetPageCanvasLayout, 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, WidgetPageGroupingDefinition, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, PageIdentity, WidgetStateNode, WidgetDerivedStateNode, AiCapability, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, WidgetPageCanvasLayout, 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';
6
6
  import * as rxjs from 'rxjs';
7
7
  import { BehaviorSubject, Observable } from 'rxjs';
8
- import { FormGroup, FormControl, FormArray } from '@angular/forms';
8
+ import { FormGroup, FormControl, FormArray, AbstractControl } from '@angular/forms';
9
9
  import { SettingsValueProvider } from '@praxisui/settings-panel';
10
10
  import { AgenticAuthoringAttachmentSummaryContract, AgenticAuthoringCandidateContract, AiJsonValue, AgenticAuthoringComponentCapabilitiesResultContract, AgenticAuthoringComponentCapabilityCatalogContract, AgenticAuthoringComponentCapabilityContract, AgenticAuthoringComponentFieldAliasContract, AgenticAuthoringComponentCapabilityExampleContract, AgenticAuthoringConversationMessageContract, AgenticAuthoringIntentResolutionRequestContract, AiJsonObject, AgenticAuthoringQuickReplyContract, AgenticAuthoringPendingClarificationContract, AiContextHintsContract, AgenticAuthoringSemanticDecisionContract, AgenticAuthoringPlanRequestContract, AgenticAuthoringResourceCandidatesRequestContract, AgenticAuthoringResourceCandidatesResultContract, AgenticAuthoringTurnStreamContextHintsContract, AgenticAuthoringTurnStreamEnvelopeContract, AgenticAuthoringTurnStreamStartResponseContract, PraxisAssistantVoiceInputMode, PraxisAssistantShellMessage, PraxisAssistantShellQuickReply, PraxisAssistantShellAttachment, PraxisAssistantShellLayout, PraxisAssistantSessionSnapshot, PraxisAssistantShellLabels, PraxisAssistantRecommendedIntent, PraxisAssistantShellAction, PraxisAssistantShellState, PraxisAssistantShellContextItem } from '@praxisui/ai';
11
11
  import * as _praxisui_page_builder from '@praxisui/page-builder';
@@ -70,6 +70,7 @@ interface ComponentPaletteSelection {
70
70
  componentId: string;
71
71
  presetId?: string;
72
72
  inputs?: Record<string, unknown>;
73
+ shell?: WidgetShellConfig;
73
74
  }
74
75
  interface ComponentPaletteData {
75
76
  title?: string;
@@ -88,6 +89,7 @@ interface ComponentPaletteEntry {
88
89
  badges: ComponentPaletteBadge[];
89
90
  searchText: string;
90
91
  inputs?: Record<string, unknown>;
92
+ shell?: WidgetShellConfig;
91
93
  }
92
94
  interface ComponentPaletteBadge {
93
95
  label: string;
@@ -127,6 +129,9 @@ declare class ComponentPaletteDialogComponent implements OnInit {
127
129
  }
128
130
 
129
131
  type ShellInputs = {
132
+ /** Canonical page links supplied only for inspection; never persisted by this editor. */
133
+ compositionLinks?: readonly CompositionLink[];
134
+ getActionAvailability?: (action: WidgetShellAction) => Pick<WidgetShellAction, 'disabled' | 'tooltip'> | undefined;
130
135
  shell?: WidgetShellConfig | null;
131
136
  widgetKey?: string;
132
137
  widgetType?: string;
@@ -161,10 +166,32 @@ type SetInputPreset = {
161
166
  icon?: string;
162
167
  values: SetInputValueOption[];
163
168
  };
169
+ type ShellPresetOption = {
170
+ id: string;
171
+ label: PraxisTextValue;
172
+ description: PraxisTextValue;
173
+ category: WidgetShellPresetCategory | 'custom';
174
+ appearance?: WidgetShellConfig['appearance'];
175
+ };
164
176
  declare class WidgetShellEditorComponent implements SettingsValueProvider {
165
177
  private registry?;
178
+ readonly sectionsHosted: boolean;
179
+ readonly topicPanelId: string;
180
+ readonly selectedTopic: _angular_core.WritableSignal<string>;
181
+ editorTopics(): Array<{
182
+ id: string;
183
+ label: string;
184
+ }>;
185
+ currentTopic(): string;
186
+ getSettingsSections(): readonly SettingsEditorSection[];
187
+ selectSettingsSection(id: string): void;
188
+ endpointLabel(endpoint: EndpointRef): string;
189
+ currentTopicLabel(): string;
166
190
  private readonly i18n;
167
191
  menuPlacementLabel(): string;
192
+ shellText(key: string): string;
193
+ pagePresetLabel(): string;
194
+ hasAppearanceErrors(): boolean;
168
195
  appearanceError(): string;
169
196
  stickyHeaderLabel(): string;
170
197
  form: FormGroup<{
@@ -173,6 +200,10 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
173
200
  applyToAll: FormControl<boolean>;
174
201
  title: FormControl<string>;
175
202
  subtitle: FormControl<string>;
203
+ avatarEnabled: FormControl<boolean>;
204
+ avatarImage: FormControl<string>;
205
+ avatarName: FormControl<string>;
206
+ avatarInitials: FormControl<string>;
176
207
  icon: FormControl<string>;
177
208
  showHeader: FormControl<"auto" | "true" | "false">;
178
209
  stickyHeader: FormControl<boolean>;
@@ -205,35 +236,42 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
205
236
  private initialTitle;
206
237
  private initialSubtitle;
207
238
  private readonly actionCopySources;
208
- presetOptions: Array<{
209
- id: string;
210
- label: string;
211
- }>;
239
+ presetOptions: ShellPresetOption[];
212
240
  private presets;
213
241
  availableActions: AvailableShellAction[];
242
+ readonly compositionLinks: readonly CompositionLink[];
243
+ private readonly getActionAvailability?;
214
244
  actionQuery: FormControl<string>;
215
245
  showScopeShell: boolean;
216
246
  showScopeAny: boolean;
217
247
  showScopeToolbar: boolean;
248
+ showNotificationActions: boolean;
218
249
  showScopeContext: boolean;
219
250
  setInputPresets: SetInputPreset[];
220
251
  setInputTarget: FormControl<string>;
221
252
  setInputValue: FormControl<any>;
222
- previewCollapsed: boolean;
223
- previewExpanded: boolean;
224
253
  pagePreset: string | null;
225
254
  private readonly authoringCapabilities;
226
255
  constructor(data?: ShellInputs | null, registry?: (ComponentMetadataRegistry | null) | undefined);
227
256
  get actions(): FormArray<FormGroup>;
257
+ selectPreset(id: string): void;
258
+ presetLabel(preset: ShellPresetOption): string;
259
+ presetDescription(preset: ShellPresetOption): string;
260
+ presetTitle(): string;
261
+ noPresetLabel(): string;
262
+ noPresetDescription(): string;
228
263
  get hasAvailableActions(): boolean;
229
264
  canEditShellIdentity(): boolean;
230
265
  canEditShellAppearance(): boolean;
231
266
  canEditShellActions(): boolean;
232
267
  canPromotePagePreset(): boolean;
268
+ actionIdIssue(group: AbstractControl): 'required' | 'duplicate' | 'reserved' | null;
269
+ private validateActionIds;
233
270
  addAction(seed?: Partial<WidgetShellAction>): void;
234
271
  removeAction(index: number): void;
235
272
  getSettingsValue(): ShellEditorResult;
236
273
  onSave(): ShellEditorResult;
274
+ acceptAppliedValue(value: unknown): void;
237
275
  reset(): void;
238
276
  private applyShell;
239
277
  private loadAvailableActions;
@@ -243,23 +281,22 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
243
281
  private buildAppearance;
244
282
  private cloneAppearance;
245
283
  private isShellCapabilityEnabled;
246
- previewVars(): Record<string, string | null>;
247
- previewShowHeader(): boolean;
248
- previewTitle(): string;
249
- previewSubtitle(): string;
250
- private buildPreviewAppearance;
284
+ private readonly appearanceControls;
285
+ appearanceOverrideCount(): number;
286
+ clearAppearanceOverrides(): void;
287
+ private previewCacheKey;
288
+ private previewCache?;
289
+ previewShell(): WidgetShellConfig;
251
290
  private mergeAppearance;
252
- togglePreviewCollapse(): void;
253
- togglePreviewExpand(): void;
254
- previewHeaderActions(): WidgetShellAction[];
255
- previewOverflowCount(): number;
256
- previewWindowActions(): WidgetShellAction[];
257
291
  private normalizeAction;
258
292
  private editableText;
259
293
  private preserveTextDescriptor;
260
294
  private tryParsePayload;
261
295
  private snapshotValue;
296
+ enabledActionScopeCount(): number;
262
297
  filteredAvailableActions(): AvailableShellAction[];
298
+ actionUnavailable(action: AvailableShellAction): boolean;
299
+ actionAvailabilityText(action: AvailableShellAction): string;
263
300
  isActionSelected(action: AvailableShellAction): boolean;
264
301
  toggleAvailableAction(action: AvailableShellAction): void;
265
302
  scopeLabel(scope?: string): string;
@@ -270,7 +307,6 @@ declare class WidgetShellEditorComponent implements SettingsValueProvider {
270
307
  currentSetInputValues(): SetInputValueOption[];
271
308
  addSetInputAction(): void;
272
309
  private findActionIndex;
273
- private previewActions;
274
310
  private loadSetInputPresets;
275
311
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<WidgetShellEditorComponent, [{ optional: true; }, { optional: true; }]>;
276
312
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<WidgetShellEditorComponent, "praxis-widget-shell-editor", never, {}, {}, never, never, true, never>;
@@ -352,6 +388,41 @@ interface ConnectionEditorTraceStep {
352
388
  blocked: boolean;
353
389
  }
354
390
 
391
+ interface ConnectionEditorPoint {
392
+ x: number;
393
+ y: number;
394
+ }
395
+ interface ConnectionEditorSegmentGeometry {
396
+ port: ConnectionEditorPort;
397
+ path: string;
398
+ anchor: ConnectionEditorPoint;
399
+ label: ConnectionEditorPoint;
400
+ icon: ConnectionEditorPoint;
401
+ normalAngle: number;
402
+ color: string;
403
+ }
404
+
405
+ type CaptionSide = 'top' | 'right' | 'bottom' | 'left';
406
+ interface ConnectionEditorCaption {
407
+ side: CaptionSide;
408
+ x: number;
409
+ y: number;
410
+ width: number;
411
+ height: number;
412
+ }
413
+
414
+ interface ConnectionEditorWireRoute {
415
+ path: string;
416
+ source: ConnectionEditorPoint;
417
+ sourceStub: ConnectionEditorPoint;
418
+ sourceControl: ConnectionEditorPoint;
419
+ targetControl: ConnectionEditorPoint;
420
+ targetStub: ConnectionEditorPoint;
421
+ target: ConnectionEditorPoint;
422
+ midpoint: ConnectionEditorPoint;
423
+ offset: number;
424
+ }
425
+
355
426
  interface ConnectionsViewerNode {
356
427
  widgetId: string;
357
428
  componentType: string;
@@ -389,20 +460,6 @@ interface ConnectionsViewerModel {
389
460
  diagnosticLinks: number;
390
461
  }
391
462
 
392
- interface ConnectionEditorPoint {
393
- x: number;
394
- y: number;
395
- }
396
- interface ConnectionEditorSegmentGeometry {
397
- port: ConnectionEditorPort;
398
- path: string;
399
- anchor: ConnectionEditorPoint;
400
- label: ConnectionEditorPoint;
401
- icon: ConnectionEditorPoint;
402
- normalAngle: number;
403
- color: string;
404
- }
405
-
406
463
  type ConnectionEditorPortOrderState = Record<string, string[]>;
407
464
 
408
465
  type ConnectionsEditorFilter = 'all' | 'condition' | 'transform' | 'policy' | 'diagnostic';
@@ -477,9 +534,12 @@ interface ConnectionEditorDockTabDefinition {
477
534
  }
478
535
  declare class ConnectionEditorComponent {
479
536
  readonly stateNodeId = "__page_state__";
537
+ protected readonly minZoom = 0.2;
538
+ protected readonly maxZoom = 1.8;
480
539
  readonly nodeViewBox = "0 0 168 168";
481
540
  readonly canvasViewBox = "0 0 900 540";
482
541
  readonly nodeHaloPaths: string[];
542
+ private readonly injector;
483
543
  private readonly i18n;
484
544
  private readonly hostElement;
485
545
  private readonly globalActionCatalog;
@@ -506,6 +566,7 @@ declare class ConnectionEditorComponent {
506
566
  readonly draftTargets: _angular_core.Signal<ConnectionEditorPort[]>;
507
567
  readonly draftDiagnostics: _angular_core.Signal<_praxisui_core.DiagnosticRecord[]>;
508
568
  readonly draftDuplicate: _angular_core.Signal<boolean>;
569
+ readonly draftExistingRoute: _angular_core.Signal<ConnectionEditorConnection | null>;
509
570
  readonly canApplyDraft: _angular_core.Signal<boolean>;
510
571
  readonly activeMode: _angular_core.WritableSignal<ConnectionEditorFlowMode>;
511
572
  readonly activeFilter: _angular_core.WritableSignal<ConnectionsEditorFilter>;
@@ -517,12 +578,18 @@ declare class ConnectionEditorComponent {
517
578
  readonly expandedNodeId: _angular_core.WritableSignal<string | null>;
518
579
  readonly activeDockTab: _angular_core.WritableSignal<ConnectionEditorDockTab>;
519
580
  readonly dockCollapsed: _angular_core.WritableSignal<boolean>;
581
+ readonly inspectorOpen: _angular_core.WritableSignal<boolean>;
582
+ readonly connectionIntents: _angular_core.Signal<_praxisui_core.LinkIntent[]>;
520
583
  readonly traceEnabled: _angular_core.WritableSignal<boolean>;
521
584
  readonly traceStepIndex: _angular_core.WritableSignal<number>;
522
585
  readonly traceSourceNodeId: _angular_core.WritableSignal<string | null>;
586
+ readonly traceSourceEndpoint: _angular_core.WritableSignal<EndpointRef | null>;
523
587
  readonly selectedPort: _angular_core.WritableSignal<ConnectionEditorPort | null>;
524
588
  readonly hoveredNodeId: _angular_core.WritableSignal<string | null>;
525
589
  readonly visualDensity: _angular_core.WritableSignal<ConnectionEditorVisualDensity>;
590
+ private readonly invalidSurfaceDrafts;
591
+ readonly surfaceDraftInvalid: _angular_core.WritableSignal<boolean>;
592
+ onSurfaceDraftValidity(source: SurfaceOpenActionEditorComponent, connection: ConnectionEditorConnection, valid: boolean): void;
526
593
  readonly globalActionPayloadError: _angular_core.WritableSignal<string | null>;
527
594
  readonly pendingSegmentState: _angular_core.WritableSignal<PendingSegmentState | null>;
528
595
  readonly dragState: _angular_core.WritableSignal<DragState | null>;
@@ -531,6 +598,7 @@ declare class ConnectionEditorComponent {
531
598
  readonly panState: _angular_core.WritableSignal<PanState | null>;
532
599
  readonly minimapPanState: _angular_core.WritableSignal<MinimapPanState | null>;
533
600
  readonly rotationState: _angular_core.WritableSignal<RotationState | null>;
601
+ readonly captionLayoutScale: _angular_core.WritableSignal<number>;
534
602
  readonly viewport: _angular_core.WritableSignal<ViewportState>;
535
603
  readonly portOrder: _angular_core.WritableSignal<ConnectionEditorPortOrderState>;
536
604
  readonly nodeRotations: _angular_core.WritableSignal<Record<string, number>>;
@@ -605,9 +673,14 @@ declare class ConnectionEditorComponent {
605
673
  readonly connectedNodeIds: _angular_core.Signal<Set<string>>;
606
674
  readonly connectedPortIds: _angular_core.Signal<Set<string>>;
607
675
  readonly editorNodes: _angular_core.Signal<ConnectionEditorNode[]>;
676
+ readonly nodeCaptions: _angular_core.Signal<Map<string, ConnectionEditorCaption>>;
677
+ protected readonly captionRenderRatio: _angular_core.Signal<number>;
678
+ protected readonly renderedNodeCaptions: _angular_core.Signal<Map<string, ConnectionEditorCaption>>;
679
+ readonly wireRoutes: _angular_core.Signal<Map<string, ConnectionEditorWireRoute | null>>;
608
680
  readonly navigationBounds: _angular_core.Signal<ConnectionEditorBounds>;
609
681
  readonly minimapViewBox: _angular_core.Signal<string>;
610
682
  readonly editorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
683
+ readonly dockConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
611
684
  readonly canvasEditorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
612
685
  readonly visibleEditorConnections: _angular_core.Signal<ConnectionEditorConnection[]>;
613
686
  readonly modeMatchedConnectionIds: _angular_core.Signal<Set<string>>;
@@ -616,14 +689,38 @@ declare class ConnectionEditorComponent {
616
689
  readonly smartSuggestions: _angular_core.Signal<ConnectionEditorSuggestion[]>;
617
690
  readonly recommendedMasterDetailSuggestion: _angular_core.Signal<ConnectionEditorSuggestion | null>;
618
691
  readonly masterDetailReadinessDiagnostic: _angular_core.Signal<string | null>;
692
+ readonly compactStage: _angular_core.WritableSignal<boolean>;
619
693
  readonly traceSteps: _angular_core.Signal<ConnectionEditorTraceStep[]>;
694
+ readonly traceConnectionSteps: _angular_core.Signal<{
695
+ order: number;
696
+ id: string;
697
+ connectionId: string;
698
+ phase: ConnectionEditorTracePhase;
699
+ fromLabel: string;
700
+ toLabel: string;
701
+ intent: string;
702
+ blocked: boolean;
703
+ }[]>;
704
+ readonly activeTraceOperations: _angular_core.Signal<ConnectionEditorTraceStep[]>;
705
+ readonly activeTraceSummary: _angular_core.Signal<string>;
620
706
  readonly activeTraceStepIndex: _angular_core.Signal<number>;
621
- readonly traceActiveStep: _angular_core.Signal<ConnectionEditorTraceStep>;
707
+ readonly traceActiveStep: _angular_core.Signal<{
708
+ order: number;
709
+ id: string;
710
+ connectionId: string;
711
+ phase: ConnectionEditorTracePhase;
712
+ fromLabel: string;
713
+ toLabel: string;
714
+ intent: string;
715
+ blocked: boolean;
716
+ }>;
622
717
  readonly tracedConnectionIds: _angular_core.Signal<Set<string>>;
623
718
  readonly traceProgressPercent: _angular_core.Signal<number>;
624
719
  readonly traceProgressLabel: _angular_core.Signal<string>;
625
720
  readonly traceSourceNodeIds: _angular_core.Signal<Set<string>>;
626
721
  readonly traceReactingNodeIds: _angular_core.Signal<Set<string>>;
722
+ private readonly syncTracePresentation;
723
+ private revealInScrollRegion;
627
724
  readonly focusedConnectionNodeIds: _angular_core.Signal<Set<string>>;
628
725
  readonly focusedConnectionPortIds: _angular_core.Signal<Set<string>>;
629
726
  readonly diagnosticConnectionIds: _angular_core.Signal<Set<string>>;
@@ -634,6 +731,7 @@ declare class ConnectionEditorComponent {
634
731
  readonly canvasInteractionActive: _angular_core.Signal<boolean>;
635
732
  readonly visibleConnectionTooltip: _angular_core.Signal<ConnectionEditorConnection | null>;
636
733
  readonly visibleExpandedNodeId: _angular_core.Signal<string | null>;
734
+ readonly expandedEditorNode: _angular_core.Signal<ConnectionEditorNode | null>;
637
735
  readonly canUndo: _angular_core.Signal<boolean>;
638
736
  readonly canRedo: _angular_core.Signal<boolean>;
639
737
  readonly hasVisualPortOrder: _angular_core.Signal<boolean>;
@@ -662,11 +760,19 @@ declare class ConnectionEditorComponent {
662
760
  width: number;
663
761
  height: number;
664
762
  }>;
665
- selectNode(nodeId: string): void;
763
+ private inspectorInvoker;
764
+ private portInvoker;
765
+ private inspectorPortContext;
766
+ selectNode(nodeId: string, event?: Event): void;
666
767
  selectSegment(port: ConnectionEditorPort, event: MouseEvent): void;
667
768
  selectWidget(node: ConnectionsViewerNode): void;
668
769
  selectLink(edge: ConnectionsViewerEdge): void;
669
- selectConnection(connection: ConnectionEditorConnection): void;
770
+ inspectPortConnection(connection: ConnectionEditorConnection, event: Event): void;
771
+ protected toggleInspector(event: Event): void;
772
+ private rememberInspectorPortContext;
773
+ closeInspector(): void;
774
+ selectConnection(connection: ConnectionEditorConnection, event?: Event): void;
775
+ private focusInspectorAfterRender;
670
776
  jumpToConnection(connection: ConnectionEditorConnection, event: Event): void;
671
777
  previewConnection(connection: ConnectionEditorConnection): void;
672
778
  clearPreviewConnection(connection: ConnectionEditorConnection): void;
@@ -679,6 +785,7 @@ declare class ConnectionEditorComponent {
679
785
  setDockTab(tab: ConnectionEditorDockTab): void;
680
786
  handleDockTabKeydown(event: KeyboardEvent, tab: ConnectionEditorDockTab): void;
681
787
  toggleDock(): void;
788
+ followConnectionPath(connection: ConnectionEditorConnection, event: Event): void;
682
789
  toggleTrace(event: Event): void;
683
790
  selectTraceSource(nodeId: string | null, event: Event): void;
684
791
  moveTraceStep(delta: -1 | 1, event: Event): void;
@@ -725,6 +832,8 @@ declare class ConnectionEditorComponent {
725
832
  enableTransform(connection: ConnectionEditorConnection, event: Event): void;
726
833
  addTransformStep(connection: ConnectionEditorConnection, kind: TransformKind, event: Event): void;
727
834
  removeTransformStep(connection: ConnectionEditorConnection, index: number, event: Event): void;
835
+ formatStepOption(step: TransformPipeline['steps'][number], key: string): string;
836
+ updateFormatStep(connection: ConnectionEditorConnection, index: number, key: string, value: string): void;
728
837
  clearTransform(connection: ConnectionEditorConnection, event: Event): void;
729
838
  applyConditionPreset(connection: ConnectionEditorConnection, preset: ConnectionEditorConditionPreset, event: Event): void;
730
839
  clearCondition(connection: ConnectionEditorConnection, event: Event): void;
@@ -739,6 +848,9 @@ declare class ConnectionEditorComponent {
739
848
  nestedPortPathText(port: ConnectionEditorPort): string;
740
849
  portDescription(port: ConnectionEditorPort): string;
741
850
  segmentKindGlyph(kind: ConnectionEditorPortKind): string;
851
+ nodeHue(id: string): number;
852
+ compactConnections(nodeId: string): ConnectionEditorConnection[];
853
+ connectionsForPort(port: ConnectionEditorPort): ConnectionEditorConnection[];
742
854
  nodeIcon(node: ConnectionEditorNode): string;
743
855
  dockTabLabel(tab: ConnectionEditorDockTabDefinition): string;
744
856
  dockTabId(tab: ConnectionEditorDockTab): string;
@@ -758,6 +870,15 @@ declare class ConnectionEditorComponent {
758
870
  isModeDimmedPort(port: ConnectionEditorPort): boolean;
759
871
  isGuidedQuietNode(node: ConnectionEditorNode): boolean;
760
872
  areNodePortsVisible(node: ConnectionEditorNode): boolean;
873
+ closePortDetails(): void;
874
+ private focusInvoker;
875
+ private restoreInspectionFocus;
876
+ private isRestorableInspectionTarget;
877
+ beginConnectionFromPort(port: ConnectionEditorPort, event: Event): void;
878
+ wireTerminalPath(connection: ConnectionEditorConnection): string;
879
+ portPanelWidth(): number;
880
+ portPanelHeight(): number;
881
+ portPanelPosition(node: ConnectionEditorNode): ConnectionEditorPoint;
761
882
  isGuidedPortVisible(port: ConnectionEditorPort): boolean;
762
883
  isGuidedSegmentLabelVisible(port: ConnectionEditorPort): boolean;
763
884
  clearHoveredNode(nodeId: string): void;
@@ -784,7 +905,13 @@ declare class ConnectionEditorComponent {
784
905
  connectionCreatedFeedback(connection: ConnectionEditorConnection): string;
785
906
  portAriaLabel(node: ConnectionEditorNode, port: ConnectionEditorPort, role: 'input' | 'output' | 'state'): string;
786
907
  transformKindText(kind: TransformKind): string;
787
- private readableEndpointLabel;
908
+ businessPortLabel(port: ConnectionEditorPort): string;
909
+ authoredStateName(port: ConnectionEditorPort): string;
910
+ stateNamingPorts(connection: ConnectionEditorConnection): ConnectionEditorPort[];
911
+ applyStateName(port: ConnectionEditorPort, name: string): void;
912
+ businessPortDescription(port: ConnectionEditorPort | null | undefined): string;
913
+ private editorialPort;
914
+ readableEndpointLabel(connection: ConnectionEditorConnection, side: 'from' | 'to'): string;
788
915
  private isSelectionToDetailConnection;
789
916
  private isSuggestedMasterDetail;
790
917
  private isCanonicalSelectionToDetailConnection;
@@ -809,6 +936,7 @@ declare class ConnectionEditorComponent {
809
936
  } | null;
810
937
  wireLabelTransform(connection: ConnectionEditorConnection, endpoint: 'source' | 'target'): string;
811
938
  minimapWirePath(connection: ConnectionEditorConnection): string;
939
+ connectionTooltipWidth(): number;
812
940
  connectionTooltipPosition(connection: ConnectionEditorConnection): ConnectionEditorTooltipPosition;
813
941
  connectionTooltipCalloutX(connection: ConnectionEditorConnection): number;
814
942
  connectionTooltipKind(connection: ConnectionEditorConnection): string;
@@ -840,6 +968,7 @@ declare class ConnectionEditorComponent {
840
968
  cancelDraft(): void;
841
969
  private clearDraft;
842
970
  closeEditor(): void;
971
+ nodeCaptionHeight(): number;
843
972
  nodeCaptionWidth(): number;
844
973
  togglePresentation(): void;
845
974
  tx(key: string, fallback: string): string;
@@ -888,6 +1017,7 @@ declare class ConnectionEditorComponent {
888
1017
  private fitViewportState;
889
1018
  private clampViewport;
890
1019
  private connectionEditorNavigationBounds;
1020
+ private needsCompactStage;
891
1021
  private stageClientSize;
892
1022
  private stageRect;
893
1023
  private shouldIgnorePanTarget;
@@ -953,6 +1083,7 @@ type DeviceVariantForm = FormGroup<{
953
1083
  columns: FormControl<number | null>;
954
1084
  rowUnit: FormControl<string>;
955
1085
  gap: FormControl<string>;
1086
+ paddingInline: FormControl<string>;
956
1087
  autoRows: FormControl<'fixed' | 'content' | ''>;
957
1088
  groupingOverrides: FormControl<string>;
958
1089
  widgetOverrides: FormControl<string>;
@@ -988,14 +1119,12 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
988
1119
  pageChange: EventEmitter<WidgetPageDefinition>;
989
1120
  readonly layoutPresetEntries: LayoutPresetEntry[];
990
1121
  readonly themePresetEntries: ThemePresetEntry[];
991
- readonly shellPresetEntries: {
992
- id: string;
993
- label: string;
994
- }[];
1122
+ readonly shellPresetEntries: readonly WidgetShellPresetDefinition[];
995
1123
  readonly deviceKeys: DeviceKey[];
996
1124
  readonly deviceLabels: Record<DeviceKey, string>;
997
1125
  readonly canvasColumnsControl: FormControl<number>;
998
1126
  readonly canvasRowUnitControl: FormControl<string>;
1127
+ readonly paddingInlineControl: FormControl<string>;
999
1128
  readonly canvasGapControl: FormControl<string>;
1000
1129
  readonly canvasAutoRowsControl: FormControl<"content" | "fixed">;
1001
1130
  readonly layoutPresetControl: FormControl<string>;
@@ -1063,6 +1192,7 @@ declare class DynamicPageConfigEditorComponent implements OnInit, SettingsValueP
1063
1192
  inheritedThemeHelp(theme: ThemePresetEntry): string;
1064
1193
  groupLabel(index: number): string;
1065
1194
  tx(key: string, fallback: string): string;
1195
+ shellPresetLabel(preset: WidgetShellPresetDefinition): string;
1066
1196
  limitsTargetLabel(index: number): string;
1067
1197
  limitFieldError(control: FormControl<number | null>): string;
1068
1198
  private draftFingerprint;
@@ -1189,6 +1319,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1189
1319
  rowHeight: FormControl<number | null>;
1190
1320
  gap: FormControl<number | null>;
1191
1321
  }>;
1322
+ readonly paddingInlineControl: FormControl<string>;
1192
1323
  readonly contextControl: FormControl<string>;
1193
1324
  readonly shellPresetControl: FormControl<string>;
1194
1325
  readonly layoutPresetControl: FormControl<string>;
@@ -1203,6 +1334,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1203
1334
  orientation: FormControl<string>;
1204
1335
  columns: FormControl<number | null>;
1205
1336
  gap: FormControl<string>;
1337
+ paddingInline: FormControl<string>;
1206
1338
  breakpointsJson: FormControl<string>;
1207
1339
  groupingOverridesJson: FormControl<string>;
1208
1340
  widgetOverridesJson: FormControl<string>;
@@ -1211,6 +1343,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1211
1343
  orientation: FormControl<string>;
1212
1344
  columns: FormControl<number | null>;
1213
1345
  gap: FormControl<string>;
1346
+ paddingInline: FormControl<string>;
1214
1347
  breakpointsJson: FormControl<string>;
1215
1348
  groupingOverridesJson: FormControl<string>;
1216
1349
  widgetOverridesJson: FormControl<string>;
@@ -1219,6 +1352,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1219
1352
  orientation: FormControl<string>;
1220
1353
  columns: FormControl<number | null>;
1221
1354
  gap: FormControl<string>;
1355
+ paddingInline: FormControl<string>;
1222
1356
  breakpointsJson: FormControl<string>;
1223
1357
  groupingOverridesJson: FormControl<string>;
1224
1358
  widgetOverridesJson: FormControl<string>;
@@ -1227,10 +1361,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1227
1361
  readonly layoutError: _angular_core.WritableSignal<string | null>;
1228
1362
  readonly stateError: _angular_core.WritableSignal<string | null>;
1229
1363
  readonly activeTab: _angular_core.WritableSignal<EditorTabId>;
1230
- readonly shellPresetEntries: Array<{
1231
- id: string;
1232
- label: string;
1233
- }>;
1364
+ readonly shellPresetEntries: readonly WidgetShellPresetDefinition[];
1234
1365
  private lastContext;
1235
1366
  private lastGrouping;
1236
1367
  private lastDeviceLayouts;
@@ -1268,6 +1399,7 @@ declare class PageConfigEditorComponent implements SettingsValueProvider$1 {
1268
1399
  protected get transformerOptionsHint(): string;
1269
1400
  constructor();
1270
1401
  protected tx(key: string, fallback: string): string;
1402
+ shellPresetLabel(preset: WidgetShellPresetDefinition | undefined): string;
1271
1403
  addSchemaNode(seed?: {
1272
1404
  path?: string;
1273
1405
  config?: WidgetStateNode;
@@ -1991,7 +2123,13 @@ declare function preflightUiCompositionPlanResources(plan: UiCompositionPlan, re
1991
2123
  declare class UiCompositionResourcePreflightService {
1992
2124
  private readonly registry;
1993
2125
  private readonly discovery;
2126
+ private readonly pageSchemas;
1994
2127
  preflight(plan: UiCompositionPlan, registry?: ComponentMetadataRegistry): Promise<UiCompositionPlanPreflightResult>;
2128
+ /** Revalidates an authored page without reconstructing or trusting its original plan. */
2129
+ preflightPage(page: WidgetPageDefinition, registry?: ComponentMetadataRegistry, options?: {
2130
+ refreshSchemas?: boolean;
2131
+ }): Promise<UiCompositionPlanPreflightResult>;
2132
+ private resolvePageSchema;
1995
2133
  private resolveSchema;
1996
2134
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<UiCompositionResourcePreflightService, never>;
1997
2135
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<UiCompositionResourcePreflightService>;