@praxisui/core 8.0.0-beta.0 → 8.0.0-beta.100

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,9 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Type, Provider, ErrorHandler, EnvironmentProviders, OnChanges, EventEmitter, SimpleChanges, OnInit, OnDestroy, ElementRef, Renderer2 } from '@angular/core';
2
+ import { InjectionToken, Type, Provider, ErrorHandler, EnvironmentProviders, OnChanges, EventEmitter, SimpleChanges, OnInit, OnDestroy, ElementRef, AfterViewInit, Renderer2 } from '@angular/core';
3
3
  import * as rxjs from 'rxjs';
4
4
  import { Observable, BehaviorSubject } from 'rxjs';
5
- import { HttpHeaders, HttpContext, HttpClient, HttpParams, HttpInterceptorFn, HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpFeature, HttpFeatureKind, HttpContextToken } from '@angular/common/http';
6
- import { ValidationErrors, ValidatorFn, AsyncValidatorFn, FormControl, FormGroup } from '@angular/forms';
5
+ import { HttpHeaders, HttpContext, HttpClient, HttpParams, HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpInterceptorFn, HttpFeature, HttpFeatureKind, HttpContextToken } from '@angular/common/http';
6
+ import * as _praxisui_core from '@praxisui/core';
7
+ import { ValidationErrors, ValidatorFn, AsyncValidatorFn, FormGroup, AbstractControl, FormControl } from '@angular/forms';
7
8
  import { ThemePalette, DateAdapter } from '@angular/material/core';
8
9
  import { ActivatedRoute } from '@angular/router';
9
10
  import { MatDialogRef } from '@angular/material/dialog';
@@ -76,20 +77,250 @@ interface LocateRequest {
76
77
  sort?: string[];
77
78
  }
78
79
 
79
- interface OptionSourceMetadata {
80
+ type OptionSourceType = 'RESOURCE_ENTITY' | 'DISTINCT_DIMENSION' | 'CATEGORICAL_BUCKET' | 'LIGHT_LOOKUP' | 'STATIC_CANONICAL';
81
+ type OptionSourceSearchMode = 'none' | 'starts-with' | 'contains' | 'exact';
82
+ type OptionSourceCachePolicy = 'none' | 'request-scope' | 'session-scope' | 'etag-aware';
83
+ type LookupOpenDetailMode = 'samePage' | 'newTab' | 'drawer' | 'modal' | 'route';
84
+ type LookupStatusTone = 'success' | 'warning' | 'danger' | 'neutral';
85
+ type LookupDialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
86
+ type LookupFilterFieldType = 'text' | 'enum' | 'date' | 'number' | 'reference';
87
+ type LookupFilterOperator = 'contains' | 'startsWith' | 'equals' | 'in' | 'before' | 'after' | 'between' | 'gt' | 'gte' | 'lt' | 'lte';
88
+ type EntityLookupSelectedLayout = 'card' | 'inline' | 'compact' | 'token';
89
+ type EntityLookupResultLayout = 'list' | 'denseList' | 'table' | 'card';
90
+ type EntityLookupDisplayPreset = 'compact' | 'rich' | 'directory' | 'status' | 'reference' | 'hierarchical';
91
+ type EntityLookupUsage = 'form' | 'filter' | 'table-cell' | 'dashboard' | 'wizard' | 'review';
92
+ type EntityLookupDensity = 'compact' | 'comfortable' | 'rich';
93
+ type EntityLookupDisplayFieldPresentation = 'text' | 'chip' | 'badge' | 'date' | 'currency' | 'metric';
94
+ interface EntityLookupDisplayFieldMetadata {
95
+ key?: string;
96
+ propertyPath?: string;
97
+ label?: string;
98
+ icon?: string;
99
+ presentation?: EntityLookupDisplayFieldPresentation | string;
100
+ tone?: LookupStatusTone | 'info' | string;
101
+ format?: string;
102
+ }
103
+ interface EntityLookupRichFieldMetadata extends EntityLookupDisplayFieldMetadata {
104
+ value?: unknown;
105
+ }
106
+ type EntityLookupSinglePayloadMode = 'id' | 'entityRef';
107
+ type EntityLookupMultiplePayloadMode = 'ids' | 'entityRefs';
108
+ type EntityLookupPayloadMode = EntityLookupSinglePayloadMode | EntityLookupMultiplePayloadMode;
109
+ interface EntityLookupCollectionMetadata {
110
+ multiple?: boolean;
111
+ maxSelections?: number;
112
+ }
113
+ interface LookupSelectionPolicyMetadata {
114
+ selectablePropertyPath?: string;
115
+ statusPropertyPath?: string;
116
+ allowedStatuses?: string[];
117
+ blockedStatuses?: string[];
118
+ allowRetainInvalidExistingValue?: boolean;
119
+ disabledReasonTemplate?: string;
120
+ validationMessageTemplate?: string;
121
+ }
122
+ interface LookupCapabilitiesMetadata {
123
+ filter?: boolean;
124
+ byIds?: boolean;
125
+ detail?: boolean;
126
+ create?: boolean;
127
+ edit?: boolean;
128
+ navigateToDetail?: boolean;
129
+ multiSelect?: boolean;
130
+ recent?: boolean;
131
+ favorites?: boolean;
132
+ auditSnapshot?: boolean;
133
+ }
134
+ interface LookupDetailMetadata {
135
+ hrefTemplate?: string;
136
+ routeTemplate?: string;
137
+ openDetailMode?: LookupOpenDetailMode;
138
+ kind?: 'surface' | 'route' | 'href' | string;
139
+ surfaceId?: string;
140
+ presentation?: 'modal' | 'drawer' | string;
141
+ preferredWidget?: string;
142
+ mode?: 'view' | 'edit' | 'create' | string;
143
+ }
144
+ interface LookupCreateMetadata {
145
+ hrefTemplate?: string;
146
+ routeTemplate?: string;
147
+ openMode?: LookupOpenDetailMode;
148
+ }
149
+ interface LookupFilterDefinitionMetadata {
150
+ field: string;
151
+ label?: string;
152
+ type: LookupFilterFieldType;
153
+ operators: LookupFilterOperator[];
154
+ defaultOperator?: LookupFilterOperator;
155
+ optionsSource?: string;
156
+ required?: boolean;
157
+ hidden?: boolean;
158
+ }
159
+ interface LookupSortOptionMetadata {
80
160
  key: string;
161
+ field: string;
162
+ direction: 'asc' | 'desc';
163
+ label?: string;
164
+ }
165
+ interface LookupFilteringMetadata {
166
+ availableFilters?: LookupFilterDefinitionMetadata[];
167
+ defaultFilters?: Record<string, unknown[]>;
168
+ sortOptions?: LookupSortOptionMetadata[];
169
+ defaultSort?: string;
170
+ quickFilterFields?: string[];
171
+ searchPlaceholder?: string;
172
+ }
173
+ interface LookupDialogMetadata {
174
+ enabled?: boolean;
175
+ title?: string;
176
+ size?: LookupDialogSize;
177
+ previewPanel?: boolean;
178
+ allowColumnChooser?: boolean;
179
+ allowSavedViews?: boolean;
180
+ resultColumns?: LookupResultColumnMetadata[];
181
+ openActionLabel?: string;
182
+ applyActionLabel?: string;
183
+ cancelActionLabel?: string;
184
+ }
185
+ type LookupResultColumnKind = 'code' | 'label' | 'description' | 'status' | 'disabledReason' | 'custom';
186
+ interface LookupResultColumnMetadata {
187
+ field: string;
188
+ label?: string;
189
+ kind?: LookupResultColumnKind;
190
+ width?: string;
191
+ }
192
+ interface LookupFilterRequest {
193
+ field: string;
194
+ operator: LookupFilterOperator;
195
+ value: unknown;
196
+ }
197
+ interface OptionSourceFilterRequest<ID = string | number, FD = unknown> {
198
+ filter?: FD | null;
199
+ filters?: LookupFilterRequest[];
200
+ search?: string;
201
+ sort?: string;
202
+ includeIds?: ID[];
203
+ }
204
+ interface EntityLookupActionsMetadata {
205
+ showDetail?: boolean;
206
+ showChange?: boolean;
207
+ showCopyCode?: boolean;
208
+ showCopyId?: boolean;
209
+ showCreate?: boolean;
210
+ showClear?: boolean;
211
+ }
212
+ interface EntityLookupDisplayMetadata {
213
+ preset?: EntityLookupDisplayPreset | string;
214
+ usage?: EntityLookupUsage | string;
215
+ density?: EntityLookupDensity | string;
216
+ selectedLayout?: EntityLookupSelectedLayout;
217
+ resultLayout?: EntityLookupResultLayout;
218
+ primaryPropertyPath?: string;
219
+ fields?: EntityLookupDisplayFieldMetadata[];
220
+ secondaryPropertyPaths?: string[];
221
+ badgePropertyPaths?: string[];
222
+ avatarPropertyPath?: string;
223
+ showCode?: boolean;
224
+ showDescription?: boolean;
225
+ showStatus?: boolean;
226
+ showAvatar?: boolean;
227
+ showBadges?: boolean;
228
+ showDisabledReason?: boolean;
229
+ showResultCount?: boolean;
230
+ statusToneMap?: Record<string, LookupStatusTone>;
231
+ badgeKeys?: string[];
232
+ maxVisibleBadges?: number;
233
+ detailActionLabel?: string;
234
+ changeActionLabel?: string;
235
+ copyCodeActionLabel?: string;
236
+ copyIdActionLabel?: string;
237
+ createActionLabel?: string;
238
+ clearActionLabel?: string;
239
+ actions?: EntityLookupActionsMetadata;
240
+ }
241
+ interface EntityRef<ID = string | number> {
242
+ id: ID;
81
243
  type?: string;
244
+ }
245
+ interface EntityLookupResultExtra {
246
+ code?: string;
247
+ description?: string;
248
+ status?: string;
249
+ statusLabel?: string;
250
+ statusTone?: LookupStatusTone;
251
+ selectable?: boolean;
252
+ disabledReason?: string;
253
+ detailHref?: string;
254
+ detailRoute?: string;
255
+ resourcePath?: string;
256
+ entityKey?: string;
257
+ richFields?: EntityLookupRichFieldMetadata[];
258
+ badges?: string[];
259
+ tags?: string[];
260
+ riskLevel?: string;
261
+ homologationStatus?: string;
262
+ [key: string]: unknown;
263
+ }
264
+ interface EntityLookupResult<ID = string | number> {
265
+ id: ID;
266
+ label: string;
267
+ extra?: EntityLookupResultExtra;
268
+ }
269
+ type EntityLookupResultState = 'selectable' | 'blocked' | 'legacy';
270
+ interface EntityLookupResultStateContext {
271
+ allowRetainInvalidExistingValue?: boolean;
272
+ }
273
+ interface OptionSourceMetadata {
274
+ key: string;
275
+ type?: OptionSourceType;
82
276
  resourcePath?: string;
83
277
  filterField?: string;
84
278
  propertyPath?: string;
85
279
  labelPropertyPath?: string;
86
280
  valuePropertyPath?: string;
87
281
  dependsOn?: string[];
282
+ entityKey?: string;
283
+ codePropertyPath?: string;
284
+ descriptionPropertyPaths?: string[];
285
+ statusPropertyPath?: string;
286
+ disabledPropertyPath?: string;
287
+ disabledReasonPropertyPath?: string;
288
+ searchPropertyPaths?: string[];
289
+ dependencyFilterMap?: Record<string, string>;
290
+ selectionPolicy?: LookupSelectionPolicyMetadata;
291
+ capabilities?: LookupCapabilitiesMetadata;
292
+ detail?: LookupDetailMetadata;
293
+ create?: LookupCreateMetadata;
294
+ display?: EntityLookupDisplayMetadata;
295
+ filtering?: LookupFilteringMetadata;
88
296
  excludeSelfField?: boolean;
89
- searchMode?: string;
297
+ searchMode?: OptionSourceSearchMode;
90
298
  pageSize?: number;
91
299
  includeIds?: boolean;
92
- }
300
+ cachePolicy?: OptionSourceCachePolicy;
301
+ }
302
+ declare function isEntityLookupResultSelectable(result?: Pick<EntityLookupResult<any>, 'extra'> | null): boolean;
303
+ declare function isEntityLookupPayloadMode(value: unknown): value is EntityLookupPayloadMode;
304
+ declare function isEntityLookupSinglePayloadMode(value: unknown): value is EntityLookupSinglePayloadMode;
305
+ declare function isEntityLookupMultiplePayloadMode(value: unknown): value is EntityLookupMultiplePayloadMode;
306
+ declare function isLookupFilterFieldType(value: unknown): value is LookupFilterFieldType;
307
+ declare function isLookupFilterOperator(value: unknown): value is LookupFilterOperator;
308
+ declare function isLookupDialogSize(value: unknown): value is LookupDialogSize;
309
+ declare function normalizeLookupFilterRequest(filter: LookupFilterRequest): LookupFilterRequest;
310
+ declare function serializeOptionSourceFilterRequest<ID = string | number, FD = unknown>(filter: FD | null | undefined, options?: {
311
+ filters?: LookupFilterRequest[] | null;
312
+ search?: string | null;
313
+ sort?: string | null;
314
+ includeIds?: ID[] | null;
315
+ }): OptionSourceFilterRequest<ID, FD>;
316
+ declare function resolveEntityLookupPayloadMode(payloadMode: unknown, multiple?: boolean): EntityLookupPayloadMode;
317
+ declare function isEntityLookupPayloadModeCompatible(payloadMode: unknown, multiple?: boolean): boolean;
318
+ declare function serializeEntityLookupValueForPayload(value: unknown, options?: {
319
+ payloadMode?: unknown;
320
+ multiple?: boolean;
321
+ entityType?: string;
322
+ }): unknown;
323
+ declare function classifyEntityLookupResult(result?: Pick<EntityLookupResult<any>, 'extra'> | null, context?: EntityLookupResultStateContext): EntityLookupResultState;
93
324
 
94
325
  type RuleContextRoot = 'form' | 'row' | 'computed' | 'meta' | 'source' | 'event' | 'payload' | 'state' | 'context';
95
326
  type PraxisNativeJsonLogicOperator = 'var' | '==' | '===' | '!=' | '!==' | '>' | '>=' | '<' | '<=' | '!' | '!!' | 'and' | 'or' | 'if' | 'in' | 'cat' | 'substr' | '+' | '-' | '*' | '/' | '%' | 'min' | 'max' | 'merge' | 'map' | 'filter' | 'reduce' | 'all' | 'some' | 'none';
@@ -146,12 +377,15 @@ interface RichBlockRuleSet {
146
377
  expr: JsonLogicExpression;
147
378
  }>;
148
379
  }
380
+ type RichCapabilityMode = 'all' | 'any';
149
381
  interface RichBlockBaseNode extends RichBlockRuleSet {
150
382
  id?: string;
151
383
  testId?: string;
152
384
  className?: string;
153
385
  style?: Record<string, string | number>;
154
386
  bindings?: RichBlockContextConfig;
387
+ requiresCapabilities?: string[];
388
+ capabilityMode?: RichCapabilityMode;
155
389
  }
156
390
  interface RichTextNode extends RichBlockBaseNode {
157
391
  type: 'text';
@@ -170,6 +404,14 @@ interface RichImageNode extends RichBlockBaseNode {
170
404
  alt?: string;
171
405
  altExpr?: string;
172
406
  }
407
+ interface RichLinkNode extends RichBlockBaseNode {
408
+ type: 'link';
409
+ label?: string;
410
+ labelExpr?: string;
411
+ href: string;
412
+ target?: '_blank' | '_self';
413
+ rel?: string;
414
+ }
173
415
  interface RichBadgeNode extends RichBlockBaseNode {
174
416
  type: 'badge';
175
417
  label?: string;
@@ -200,7 +442,23 @@ interface RichProgressNode extends RichBlockBaseNode {
200
442
  labelExpr?: string;
201
443
  showPercent?: boolean;
202
444
  }
203
- type RichPresenterNode = RichTextNode | RichIconNode | RichImageNode | RichBadgeNode | RichAvatarNode | RichMetricNode | RichProgressNode;
445
+ interface RichActionRef {
446
+ actionId: string;
447
+ payload?: unknown;
448
+ payloadExpr?: string;
449
+ availabilityExpr?: string;
450
+ confirmMessage?: string;
451
+ }
452
+ interface RichActionButtonNode extends RichBlockBaseNode {
453
+ type: 'actionButton';
454
+ label?: string;
455
+ labelExpr?: string;
456
+ icon?: string;
457
+ variant?: 'basic' | 'raised' | 'stroked' | 'flat';
458
+ color?: 'basic' | 'primary' | 'accent' | 'warn';
459
+ action: RichActionRef;
460
+ }
461
+ type RichPresenterNode = RichTextNode | RichIconNode | RichImageNode | RichLinkNode | RichBadgeNode | RichAvatarNode | RichMetricNode | RichProgressNode | RichActionButtonNode;
204
462
  interface RichComposeNode extends RichBlockBaseNode {
205
463
  type: 'compose';
206
464
  direction?: 'row' | 'column';
@@ -208,6 +466,39 @@ interface RichComposeNode extends RichBlockBaseNode {
208
466
  wrap?: boolean;
209
467
  items: RichPresenterNode[];
210
468
  }
469
+ type RichCardVariant = 'plain' | 'outlined' | 'elevated' | 'filled' | 'transparent';
470
+ type RichCardTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
471
+ type RichCardSize = 'sm' | 'md' | 'lg';
472
+ type RichCardDensity = 'compact' | 'comfortable';
473
+ type RichCardOrientation = 'vertical' | 'horizontal';
474
+ type RichCardMediaKind = 'image' | 'video' | 'icon' | 'avatar';
475
+ type RichCardMediaPlacement = 'top' | 'leading' | 'trailing' | 'background';
476
+ interface RichCardMedia {
477
+ kind: RichCardMediaKind;
478
+ src?: string;
479
+ srcExpr?: string;
480
+ alt?: string;
481
+ altExpr?: string;
482
+ icon?: string;
483
+ label?: string;
484
+ labelExpr?: string;
485
+ placement?: RichCardMediaPlacement;
486
+ aspectRatio?: string;
487
+ }
488
+ type RichCardInteractionMode = 'none' | 'action' | 'selectable';
489
+ interface RichCardInteraction {
490
+ mode: RichCardInteractionMode;
491
+ action?: RichActionRef;
492
+ selected?: boolean;
493
+ selectedExpr?: string;
494
+ }
495
+ interface RichCardAccessibility {
496
+ role?: 'article' | 'group' | 'button';
497
+ ariaLabel?: string;
498
+ ariaLabelExpr?: string;
499
+ ariaLabelledBy?: string;
500
+ ariaDescribedBy?: string;
501
+ }
211
502
  interface RichCardNode extends RichBlockBaseNode {
212
503
  type: 'card';
213
504
  title?: string;
@@ -215,6 +506,303 @@ interface RichCardNode extends RichBlockBaseNode {
215
506
  subtitle?: string;
216
507
  subtitleExpr?: string;
217
508
  content: Array<RichPresenterNode | RichComposeNode>;
509
+ media?: RichCardMedia;
510
+ headerAction?: RichActionButtonNode;
511
+ header?: RichBlockNode[];
512
+ body?: RichBlockNode[];
513
+ footer?: RichBlockNode[];
514
+ actions?: RichActionButtonNode[];
515
+ aside?: RichBlockNode[];
516
+ variant?: RichCardVariant;
517
+ tone?: RichCardTone;
518
+ size?: RichCardSize;
519
+ density?: RichCardDensity;
520
+ orientation?: RichCardOrientation;
521
+ loading?: boolean;
522
+ loadingExpr?: string;
523
+ active?: boolean;
524
+ activeExpr?: string;
525
+ interaction?: RichCardInteraction;
526
+ accessibility?: RichCardAccessibility;
527
+ }
528
+ interface RichCalloutNode extends RichBlockBaseNode {
529
+ type: 'callout';
530
+ tone?: 'info' | 'success' | 'warning' | 'danger' | 'neutral';
531
+ icon?: string;
532
+ title?: string;
533
+ titleExpr?: string;
534
+ message?: string;
535
+ messageExpr?: string;
536
+ actions?: RichActionButtonNode[];
537
+ }
538
+ type RichCtaGroupLayout = 'stacked' | 'split';
539
+ interface RichCtaGroupNode extends RichBlockBaseNode {
540
+ type: 'ctaGroup';
541
+ title?: string;
542
+ titleExpr?: string;
543
+ subtitle?: string;
544
+ subtitleExpr?: string;
545
+ message?: string;
546
+ messageExpr?: string;
547
+ layout?: RichCtaGroupLayout;
548
+ actions: RichActionButtonNode[];
549
+ }
550
+ interface RichKeyValueItem {
551
+ id?: string;
552
+ label?: string;
553
+ labelExpr?: string;
554
+ value?: string;
555
+ valueExpr?: string;
556
+ badge?: string;
557
+ badgeExpr?: string;
558
+ icon?: string;
559
+ }
560
+ interface RichKeyValueListNode extends RichBlockBaseNode {
561
+ type: 'keyValueList';
562
+ title?: string;
563
+ titleExpr?: string;
564
+ layout?: 'stacked' | 'inline';
565
+ items: RichKeyValueItem[];
566
+ }
567
+ type RichPropertySheetColumns = 1 | 2;
568
+ type RichPropertySheetTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
569
+ interface RichPropertySheetItem {
570
+ id?: string;
571
+ label?: string;
572
+ labelExpr?: string;
573
+ value?: string;
574
+ valueExpr?: string;
575
+ hint?: string;
576
+ hintExpr?: string;
577
+ icon?: string;
578
+ tone?: RichPropertySheetTone;
579
+ }
580
+ interface RichPropertySheetNode extends RichBlockBaseNode {
581
+ type: 'propertySheet';
582
+ title?: string;
583
+ titleExpr?: string;
584
+ columns?: RichPropertySheetColumns;
585
+ items: RichPropertySheetItem[];
586
+ }
587
+ type RichStatGroupLayout = 'stacked' | 'inline' | 'grid';
588
+ type RichStatTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
589
+ interface RichStatItem {
590
+ id?: string;
591
+ label?: string;
592
+ labelExpr?: string;
593
+ value?: string;
594
+ valueExpr?: string;
595
+ caption?: string;
596
+ captionExpr?: string;
597
+ icon?: string;
598
+ tone?: RichStatTone;
599
+ }
600
+ interface RichStatGroupNode extends RichBlockBaseNode {
601
+ type: 'statGroup';
602
+ title?: string;
603
+ titleExpr?: string;
604
+ subtitle?: string;
605
+ subtitleExpr?: string;
606
+ layout?: RichStatGroupLayout;
607
+ items: RichStatItem[];
608
+ }
609
+ type RichTabsAppearance = 'underline' | 'pills';
610
+ interface RichTabsItem extends RichBlockRuleSet {
611
+ id?: string;
612
+ label?: string;
613
+ labelExpr?: string;
614
+ icon?: string;
615
+ badge?: string;
616
+ badgeExpr?: string;
617
+ requiresCapabilities?: string[];
618
+ capabilityMode?: RichCapabilityMode;
619
+ content: RichBlockNode[];
620
+ }
621
+ interface RichTabsNode extends RichBlockBaseNode {
622
+ type: 'tabs';
623
+ title?: string;
624
+ titleExpr?: string;
625
+ subtitle?: string;
626
+ subtitleExpr?: string;
627
+ appearance?: RichTabsAppearance;
628
+ defaultTabId?: string;
629
+ items: RichTabsItem[];
630
+ }
631
+ interface RichEmptyStateNode extends RichBlockBaseNode {
632
+ type: 'emptyState';
633
+ icon?: string;
634
+ title?: string;
635
+ titleExpr?: string;
636
+ message?: string;
637
+ messageExpr?: string;
638
+ actions?: RichActionButtonNode[];
639
+ }
640
+ interface RichRecordSummaryField {
641
+ id?: string;
642
+ label?: string;
643
+ labelExpr?: string;
644
+ value?: string;
645
+ valueExpr?: string;
646
+ }
647
+ interface RichRecordSummaryNode extends RichBlockBaseNode {
648
+ type: 'recordSummary';
649
+ title?: string;
650
+ titleExpr?: string;
651
+ subtitle?: string;
652
+ subtitleExpr?: string;
653
+ meta?: string;
654
+ metaExpr?: string;
655
+ fields: RichRecordSummaryField[];
656
+ actions?: RichActionButtonNode[];
657
+ }
658
+ type RichLookupResultStatus = 'idle' | 'resolved' | 'empty' | 'error';
659
+ interface RichLookupResultField {
660
+ id?: string;
661
+ label?: string;
662
+ labelExpr?: string;
663
+ value?: string;
664
+ valueExpr?: string;
665
+ hint?: string;
666
+ hintExpr?: string;
667
+ }
668
+ interface RichLookupResultNode extends RichBlockBaseNode {
669
+ type: 'lookupResult';
670
+ title?: string;
671
+ titleExpr?: string;
672
+ subtitle?: string;
673
+ subtitleExpr?: string;
674
+ status?: RichLookupResultStatus;
675
+ statusExpr?: string;
676
+ emptyText?: string;
677
+ emptyTextExpr?: string;
678
+ errorText?: string;
679
+ errorTextExpr?: string;
680
+ meta?: string;
681
+ metaExpr?: string;
682
+ fields: RichLookupResultField[];
683
+ actions?: RichActionButtonNode[];
684
+ }
685
+ interface RichLookupCardNode extends RichBlockBaseNode {
686
+ type: 'lookupCard';
687
+ title?: string;
688
+ titleExpr?: string;
689
+ subtitle?: string;
690
+ subtitleExpr?: string;
691
+ icon?: string;
692
+ status?: RichLookupResultStatus;
693
+ statusExpr?: string;
694
+ emptyText?: string;
695
+ emptyTextExpr?: string;
696
+ errorText?: string;
697
+ errorTextExpr?: string;
698
+ meta?: string;
699
+ metaExpr?: string;
700
+ ctaLabel?: string;
701
+ ctaLabelExpr?: string;
702
+ ctaIcon?: string;
703
+ variant?: 'basic' | 'raised' | 'stroked' | 'flat';
704
+ color?: 'basic' | 'primary' | 'accent' | 'warn';
705
+ action: RichActionRef;
706
+ fields: RichLookupResultField[];
707
+ secondaryActions?: RichActionButtonNode[];
708
+ }
709
+ interface RichRelatedRecordNode extends RichBlockBaseNode {
710
+ type: 'relatedRecord';
711
+ title?: string;
712
+ titleExpr?: string;
713
+ subtitle?: string;
714
+ subtitleExpr?: string;
715
+ relationLabel?: string;
716
+ relationLabelExpr?: string;
717
+ icon?: string;
718
+ meta?: string;
719
+ metaExpr?: string;
720
+ ctaLabel?: string;
721
+ ctaLabelExpr?: string;
722
+ ctaIcon?: string;
723
+ variant?: 'basic' | 'raised' | 'stroked' | 'flat';
724
+ color?: 'basic' | 'primary' | 'accent' | 'warn';
725
+ action?: RichActionRef;
726
+ fields: RichLookupResultField[];
727
+ secondaryActions?: RichActionButtonNode[];
728
+ }
729
+ interface RichActionCardNode extends RichBlockBaseNode {
730
+ type: 'actionCard';
731
+ title?: string;
732
+ titleExpr?: string;
733
+ subtitle?: string;
734
+ subtitleExpr?: string;
735
+ message?: string;
736
+ messageExpr?: string;
737
+ icon?: string;
738
+ meta?: string;
739
+ metaExpr?: string;
740
+ ctaLabel?: string;
741
+ ctaLabelExpr?: string;
742
+ ctaIcon?: string;
743
+ variant?: 'basic' | 'raised' | 'stroked' | 'flat';
744
+ color?: 'basic' | 'primary' | 'accent' | 'warn';
745
+ action: RichActionRef;
746
+ secondaryActions?: RichActionButtonNode[];
747
+ }
748
+ interface RichFormLauncherNode extends RichBlockBaseNode {
749
+ type: 'formLauncher';
750
+ title?: string;
751
+ titleExpr?: string;
752
+ subtitle?: string;
753
+ subtitleExpr?: string;
754
+ description?: string;
755
+ descriptionExpr?: string;
756
+ icon?: string;
757
+ formId?: string;
758
+ ctaLabel?: string;
759
+ ctaLabelExpr?: string;
760
+ ctaIcon?: string;
761
+ variant?: 'basic' | 'raised' | 'stroked' | 'flat';
762
+ color?: 'basic' | 'primary' | 'accent' | 'warn';
763
+ action: RichActionRef;
764
+ secondaryActions?: RichActionButtonNode[];
765
+ }
766
+ interface RichCollapsibleCardNode extends RichBlockBaseNode {
767
+ type: 'collapsibleCard';
768
+ title?: string;
769
+ titleExpr?: string;
770
+ subtitle?: string;
771
+ subtitleExpr?: string;
772
+ icon?: string;
773
+ defaultExpanded?: boolean;
774
+ actions?: RichActionButtonNode[];
775
+ content: RichBlockNode[];
776
+ }
777
+ interface RichDisclosureNode extends RichBlockBaseNode {
778
+ type: 'disclosure';
779
+ title?: string;
780
+ titleExpr?: string;
781
+ subtitle?: string;
782
+ subtitleExpr?: string;
783
+ icon?: string;
784
+ appearance?: 'plain' | 'card';
785
+ defaultExpanded?: boolean;
786
+ actions?: RichActionButtonNode[];
787
+ content: RichBlockNode[];
788
+ }
789
+ interface RichAccordionItem {
790
+ id?: string;
791
+ title?: string;
792
+ titleExpr?: string;
793
+ subtitle?: string;
794
+ subtitleExpr?: string;
795
+ icon?: string;
796
+ defaultExpanded?: boolean;
797
+ actions?: RichActionButtonNode[];
798
+ content: RichBlockNode[];
799
+ }
800
+ interface RichAccordionNode extends RichBlockBaseNode {
801
+ type: 'accordion';
802
+ title?: string;
803
+ titleExpr?: string;
804
+ multi?: boolean;
805
+ items: RichAccordionItem[];
218
806
  }
219
807
  interface RichMediaBlockNode extends RichBlockBaseNode {
220
808
  type: 'mediaBlock';
@@ -232,16 +820,37 @@ interface RichTimelineItem {
232
820
  subtitleExpr?: string;
233
821
  meta?: string;
234
822
  metaExpr?: string;
823
+ opposite?: string;
824
+ oppositeExpr?: string;
235
825
  icon?: string;
236
826
  iconExpr?: string;
237
827
  badge?: string;
238
828
  badgeExpr?: string;
239
- }
829
+ markerColor?: RichTimelineColor;
830
+ markerStyle?: RichTimelineMarkerStyle;
831
+ connectorColor?: RichTimelineColor;
832
+ connectorVariant?: RichTimelineConnectorVariant;
833
+ }
834
+ type RichTimelinePosition = 'left' | 'right' | 'alternate' | 'alternate-reverse';
835
+ type RichTimelineOrientation = 'vertical' | 'horizontal';
836
+ type RichTimelineOrder = 'normal' | 'reverse';
837
+ type RichTimelineConnectorVariant = 'solid' | 'dashed' | 'none';
838
+ type RichTimelineMarkerVariant = 'dot' | 'icon' | 'number';
839
+ type RichTimelineMarkerStyle = 'filled' | 'outlined';
840
+ type RichTimelineColor = 'primary' | 'secondary' | 'tertiary' | 'success' | 'warning' | 'error' | 'info' | 'neutral';
240
841
  interface RichTimelineNode extends RichBlockBaseNode {
241
842
  type: 'timeline';
242
843
  title?: string;
243
844
  titleExpr?: string;
244
845
  emptyText?: string;
846
+ orientation?: RichTimelineOrientation;
847
+ order?: RichTimelineOrder;
848
+ position?: RichTimelinePosition;
849
+ connectorVariant?: RichTimelineConnectorVariant;
850
+ connectorColor?: RichTimelineColor;
851
+ markerVariant?: RichTimelineMarkerVariant;
852
+ markerColor?: RichTimelineColor;
853
+ markerStyle?: RichTimelineMarkerStyle;
245
854
  items: RichTimelineItem[];
246
855
  }
247
856
  type CorePresetKind = 'surface-open' | 'widget-page-layout' | 'widget-page-theme' | 'editorial-theme' | 'editorial-compliance' | 'editorial-solution' | 'rich-block';
@@ -271,6 +880,13 @@ interface CorePresetDiscoveryRegistry {
271
880
  }
272
881
  interface RichBlockHostCapabilities {
273
882
  dispatchAction?(actionId: string, payload?: unknown): void | Promise<void>;
883
+ confirmAction?(request: {
884
+ actionId: string;
885
+ message: string;
886
+ payload?: unknown;
887
+ }): boolean | Promise<boolean>;
888
+ isActionAvailable?(actionId: string): boolean;
889
+ hasCapability?(capabilityId: string): boolean;
274
890
  resolveEmbed?(kind: 'component' | 'templateRef' | 'formRef' | 'tableRef' | 'chartRef', ref: string, inputs?: Record<string, unknown>): unknown;
275
891
  resolvePreset?(ref: CorePresetRef): unknown;
276
892
  loadData?(request: {
@@ -283,7 +899,7 @@ interface RichBlockHostCapabilities {
283
899
  onLoadError?: 'hide' | 'error' | 'placeholder';
284
900
  };
285
901
  }
286
- type RichPrimitiveNode = RichPresenterNode | RichComposeNode | RichCardNode | RichMediaBlockNode | RichTimelineNode;
902
+ type RichPrimitiveNode = RichPresenterNode | RichComposeNode | RichCardNode | RichCalloutNode | RichCtaGroupNode | RichKeyValueListNode | RichPropertySheetNode | RichStatGroupNode | RichTabsNode | RichEmptyStateNode | RichRecordSummaryNode | RichLookupResultNode | RichLookupCardNode | RichRelatedRecordNode | RichActionCardNode | RichFormLauncherNode | RichCollapsibleCardNode | RichDisclosureNode | RichAccordionNode | RichMediaBlockNode | RichTimelineNode;
287
903
  type RichBlockNode = RichPrimitiveNode | RichPresetReferenceNode;
288
904
  interface RichContentDocument {
289
905
  kind: 'praxis.rich-content';
@@ -293,6 +909,377 @@ interface RichContentDocument {
293
909
  }
294
910
  declare function createEmptyRichContentDocument(): RichContentDocument;
295
911
 
912
+ type GlobalActionResult = {
913
+ success: boolean;
914
+ data?: any;
915
+ error?: string;
916
+ };
917
+ interface NavigationOpenRoutePayload {
918
+ path: string;
919
+ query?: Record<string, string | number | boolean | null | undefined>;
920
+ fragment?: string;
921
+ replaceUrl?: boolean;
922
+ state?: Record<string, unknown>;
923
+ }
924
+ interface GlobalActionRef {
925
+ actionId: string;
926
+ payload?: any;
927
+ payloadExpr?: string;
928
+ meta?: {
929
+ label?: string;
930
+ icon?: string;
931
+ emitLocal?: boolean;
932
+ confirmation?: any;
933
+ [key: string]: any;
934
+ };
935
+ }
936
+ type GlobalActionContext = {
937
+ sourceId?: string;
938
+ widgetKey?: string;
939
+ output?: string;
940
+ payload?: any;
941
+ pageContext?: Record<string, any> | null;
942
+ meta?: Record<string, any>;
943
+ runtime?: {
944
+ row?: any;
945
+ item?: any;
946
+ selection?: any;
947
+ selectedRows?: any[];
948
+ selectedIds?: Array<string | number>;
949
+ idField?: string;
950
+ formData?: any;
951
+ value?: any;
952
+ state?: any;
953
+ };
954
+ };
955
+ type GlobalActionHandler = (payload?: any, context?: GlobalActionContext) => Promise<GlobalActionResult> | GlobalActionResult;
956
+ interface GlobalActionHandlerEntry {
957
+ id: string;
958
+ handler: GlobalActionHandler;
959
+ }
960
+ interface GlobalDialogService {
961
+ alert: (payload: {
962
+ title?: string;
963
+ message?: string;
964
+ okLabel?: string;
965
+ variant?: string;
966
+ }) => Promise<any> | any;
967
+ confirm: (payload: {
968
+ title?: string;
969
+ message?: string;
970
+ confirmLabel?: string;
971
+ cancelLabel?: string;
972
+ type?: 'danger' | 'warning' | 'info';
973
+ }) => Promise<boolean> | boolean;
974
+ prompt: (payload: {
975
+ title?: string;
976
+ message?: string;
977
+ placeholder?: string;
978
+ defaultValue?: string;
979
+ okLabel?: string;
980
+ cancelLabel?: string;
981
+ }) => Promise<any> | any;
982
+ open: (payload: {
983
+ componentId?: string;
984
+ inputs?: any;
985
+ size?: any;
986
+ data?: any;
987
+ }) => Promise<any> | any;
988
+ }
989
+ interface GlobalToastService {
990
+ success: (message: string, opts?: any) => void;
991
+ error: (message: string, opts?: any) => void;
992
+ }
993
+ interface GlobalAnalyticsService {
994
+ track: (eventName: string, payload?: any) => void;
995
+ }
996
+ interface GlobalApiClient {
997
+ get: (url: string, params?: Record<string, any>) => Promise<any> | any;
998
+ post: (url: string, body?: any) => Promise<any> | any;
999
+ patch: (url: string, body?: any) => Promise<any> | any;
1000
+ }
1001
+ interface GlobalRouteGuardResolver {
1002
+ resolve: (guardId: string) => any;
1003
+ }
1004
+
1005
+ type PraxisExportFormat = 'excel' | 'pdf' | 'csv' | 'json' | 'print';
1006
+ type PraxisExportScope = 'auto' | 'selected' | 'filtered' | 'currentPage' | 'all';
1007
+ type PraxisCollectionComponentType = 'table' | 'list' | string;
1008
+ type PraxisCollectionSelectionMode = 'none' | 'single' | 'multiple';
1009
+ type PraxisExportSortDirection = 'asc' | 'desc';
1010
+ interface PraxisCollectionSelectionState<T = unknown> {
1011
+ mode: PraxisCollectionSelectionMode;
1012
+ keyField?: string;
1013
+ selectedKeys?: Array<string | number>;
1014
+ selectedItems?: T[];
1015
+ allMatchingSelected?: boolean;
1016
+ excludedKeys?: Array<string | number>;
1017
+ }
1018
+ interface PraxisCollectionExportLocalization {
1019
+ locale?: string;
1020
+ timeZone?: string;
1021
+ }
1022
+ interface PraxisCollectionExportFieldPresentation {
1023
+ semanticType?: string;
1024
+ format?: string;
1025
+ currency?: string;
1026
+ locale?: string;
1027
+ timeZone?: string;
1028
+ trueLabel?: string;
1029
+ falseLabel?: string;
1030
+ nullDisplay?: string;
1031
+ valueMapping?: Record<string, string>;
1032
+ }
1033
+ interface PraxisCollectionExportCsvOptions {
1034
+ delimiter?: ',' | ';' | '|' | '\t' | string;
1035
+ encoding?: 'utf-8' | 'utf-16' | 'iso-8859-1' | string;
1036
+ includeBom?: boolean;
1037
+ lineEnding?: 'crlf' | 'lf' | string;
1038
+ excelCompatibility?: boolean;
1039
+ includeSepDirective?: boolean;
1040
+ }
1041
+ interface PraxisCollectionExportExcelOptions {
1042
+ sheetName?: string;
1043
+ freezeHeaders?: boolean;
1044
+ autoFitColumns?: boolean;
1045
+ typedCells?: boolean;
1046
+ includeFormulas?: boolean;
1047
+ }
1048
+ interface PraxisCollectionExportFormatOptions {
1049
+ csv?: PraxisCollectionExportCsvOptions;
1050
+ excel?: PraxisCollectionExportExcelOptions;
1051
+ }
1052
+ interface PraxisCollectionExportField<T = unknown> {
1053
+ key: string;
1054
+ label?: string;
1055
+ visible?: boolean;
1056
+ exportable?: boolean;
1057
+ type?: string;
1058
+ valuePath?: string;
1059
+ format?: string;
1060
+ presentation?: PraxisCollectionExportFieldPresentation;
1061
+ valueGetter?: (item: T) => unknown;
1062
+ formatter?: (value: unknown, item: T) => unknown;
1063
+ }
1064
+ interface PraxisCollectionSortDescriptor {
1065
+ field: string;
1066
+ direction: PraxisExportSortDirection;
1067
+ }
1068
+ interface PraxisCollectionPaginationState {
1069
+ pageIndex?: number;
1070
+ pageNumber?: number;
1071
+ pageSize?: number;
1072
+ totalItems?: number;
1073
+ }
1074
+ interface PraxisCollectionExportSource<T = unknown> {
1075
+ loadedItems?: T[];
1076
+ resourcePath?: string;
1077
+ query?: Record<string, unknown>;
1078
+ filters?: unknown;
1079
+ sort?: PraxisCollectionSortDescriptor[] | unknown;
1080
+ pagination?: PraxisCollectionPaginationState | unknown;
1081
+ }
1082
+ interface PraxisCollectionExportRequest<T = unknown> extends PraxisCollectionExportSource<T> {
1083
+ componentType: PraxisCollectionComponentType;
1084
+ componentId?: string;
1085
+ format: PraxisExportFormat;
1086
+ scope: PraxisExportScope;
1087
+ selection?: PraxisCollectionSelectionState<T>;
1088
+ fields?: PraxisCollectionExportField<T>[];
1089
+ includeHeaders?: boolean;
1090
+ applyFormatting?: boolean;
1091
+ maxRows?: number;
1092
+ fileName?: string;
1093
+ formatOptions?: PraxisCollectionExportFormatOptions;
1094
+ localization?: PraxisCollectionExportLocalization;
1095
+ metadata?: Record<string, unknown>;
1096
+ }
1097
+ interface PraxisCollectionExportResult {
1098
+ status: 'completed' | 'deferred';
1099
+ format: PraxisExportFormat;
1100
+ scope: PraxisExportScope;
1101
+ fileName?: string;
1102
+ mimeType?: string;
1103
+ content?: string | Blob;
1104
+ downloadUrl?: string;
1105
+ jobId?: string;
1106
+ rowCount?: number;
1107
+ warnings?: string[];
1108
+ metadata?: Record<string, unknown>;
1109
+ }
1110
+ interface PraxisCollectionExportProvider {
1111
+ exportCollection<T = unknown>(request: PraxisCollectionExportRequest<T>): PraxisCollectionExportResult | Promise<PraxisCollectionExportResult>;
1112
+ }
1113
+ interface PraxisExportSecurityPolicy {
1114
+ escapeFormulaValues: boolean;
1115
+ formulaPrefixes: readonly string[];
1116
+ formulaEscapePrefix: string;
1117
+ }
1118
+ declare const PRAXIS_EXPORT_FORMULA_PREFIXES: readonly ["=", "+", "-", "@", "\t", "\r"];
1119
+ declare const PRAXIS_DEFAULT_EXPORT_SECURITY_POLICY: PraxisExportSecurityPolicy;
1120
+ declare function resolvePraxisExportScope<T>(request: PraxisCollectionExportRequest<T>): Exclude<PraxisExportScope, 'auto'>;
1121
+ declare function resolvePraxisCollectionExportItems<T>(request: PraxisCollectionExportRequest<T>): T[];
1122
+ declare function resolvePraxisExportFields<T>(request: PraxisCollectionExportRequest<T>): PraxisCollectionExportField<T>[];
1123
+ declare function readPraxisExportValue(item: unknown, path: string): unknown;
1124
+ declare function escapePraxisExportCell(value: unknown, policy?: PraxisExportSecurityPolicy): string;
1125
+ declare function serializePraxisCollectionToCsv<T>(request: PraxisCollectionExportRequest<T>, policy?: PraxisExportSecurityPolicy): string;
1126
+ declare function serializePraxisCollectionToJson<T>(request: PraxisCollectionExportRequest<T>): string;
1127
+ declare function hasPraxisCollectionExportArtifact(result: PraxisCollectionExportResult | null | undefined): boolean;
1128
+ declare function assertPraxisCollectionExportArtifact(result: PraxisCollectionExportResult | null | undefined): asserts result is PraxisCollectionExportResult;
1129
+
1130
+ type PraxisRuntimeEffectTrigger = 'on-condition-enter' | 'on-value-change' | 'while-true';
1131
+ interface PraxisEffectPolicy {
1132
+ trigger?: PraxisRuntimeEffectTrigger;
1133
+ distinct?: boolean;
1134
+ distinctBy?: string;
1135
+ debounceMs?: number;
1136
+ missingValuePolicy?: 'propagate-undefined' | 'skip' | 'use-default';
1137
+ errorPolicy?: 'diagnostic' | 'drop' | 'halt-page';
1138
+ runOnInitialEvaluation?: boolean;
1139
+ }
1140
+ interface PraxisRuntimeConditionalEffectRule<TEffect = unknown> extends PraxisConditionalRule<JsonLogicExpression | null> {
1141
+ id?: string;
1142
+ effects: TEffect[];
1143
+ policy?: PraxisEffectPolicy;
1144
+ priority?: number;
1145
+ enabled?: boolean;
1146
+ description?: string;
1147
+ }
1148
+ interface PraxisRuntimeGlobalActionEffect {
1149
+ id?: string;
1150
+ kind: 'global-action';
1151
+ globalAction: GlobalActionRef;
1152
+ }
1153
+ interface PraxisConditionalEffectDiagnostic {
1154
+ ruleId?: string;
1155
+ effectId?: string;
1156
+ code: 'missing-effect' | 'invalid-effect' | 'invalid-condition' | 'policy-blocked' | 'execution-failed';
1157
+ details?: string[];
1158
+ }
1159
+ interface PraxisEffectDistinctKeyInput {
1160
+ componentId?: string;
1161
+ ruleId?: string;
1162
+ effectId?: string;
1163
+ actionId?: string;
1164
+ contextKey?: string;
1165
+ distinctBy?: string;
1166
+ value?: unknown;
1167
+ }
1168
+ declare function isPraxisRuntimeGlobalActionEffect(value: unknown): value is PraxisRuntimeGlobalActionEffect;
1169
+ declare function normalizePraxisEffectPolicy(policy: PraxisEffectPolicy | null | undefined): PraxisEffectPolicy;
1170
+ declare function buildPraxisEffectDistinctKey(input: PraxisEffectDistinctKeyInput): string;
1171
+
1172
+ /**
1173
+ * Contratos compartilhados de discovery semantico consumidos pelo runtime Angular.
1174
+ *
1175
+ * `resourcePath` continua sendo o endereco operacional do recurso.
1176
+ * `resourceKey` representa a identidade semantica estavel devolvida pelo backend para
1177
+ * surfaces, actions e capabilities.
1178
+ *
1179
+ * O runtime usa `resourceKey` para preservar contexto semantico e gerar ids estaveis de
1180
+ * abertura, enquanto `resourcePath`, `path`, `method` e `schemaUrl` seguem responsaveis pelo
1181
+ * comportamento operacional.
1182
+ */
1183
+
1184
+ interface ResourceAvailabilityDecision {
1185
+ allowed: boolean;
1186
+ reason?: string | null;
1187
+ metadata?: Record<string, any>;
1188
+ }
1189
+ type ResourceSurfaceKind = 'FORM' | 'PARTIAL_FORM' | 'VIEW' | 'READ_PROJECTION';
1190
+ type ResourceSurfaceScope = 'COLLECTION' | 'ITEM';
1191
+ type ResourceSurfaceResponseCardinality = 'OBJECT' | 'COLLECTION' | 'PAGE' | 'VOID' | 'UNKNOWN';
1192
+ type ResourceActionScope = 'COLLECTION' | 'ITEM';
1193
+ type ResourceDiscoveryRel = 'surfaces' | 'actions' | 'capabilities';
1194
+ type ResourceCrudOperationId = 'create' | 'view' | 'edit' | 'delete';
1195
+ type ResourceCapabilityOperationId = ResourceCrudOperationId | 'export' | string;
1196
+ type ResourceExportMaxRows = Partial<Record<PraxisExportFormat, number>> & Record<string, number | undefined>;
1197
+ interface ResourceSurfaceCatalogItem {
1198
+ id: string;
1199
+ resourceKey: string;
1200
+ kind: ResourceSurfaceKind;
1201
+ scope: ResourceSurfaceScope;
1202
+ title: string;
1203
+ description?: string | null;
1204
+ intent?: string | null;
1205
+ operationId: string;
1206
+ path: string;
1207
+ method: string;
1208
+ schemaId: string;
1209
+ schemaUrl: string;
1210
+ responseCardinality?: ResourceSurfaceResponseCardinality | null;
1211
+ availability: ResourceAvailabilityDecision;
1212
+ order: number;
1213
+ tags: string[];
1214
+ }
1215
+ interface ResourceSurfaceCatalogResponse {
1216
+ resourceKey: string;
1217
+ resourcePath: string;
1218
+ group?: string | null;
1219
+ resourceId?: string | number | null;
1220
+ surfaces: ResourceSurfaceCatalogItem[];
1221
+ }
1222
+ interface ResourceActionCatalogItem {
1223
+ id: string;
1224
+ resourceKey: string;
1225
+ scope: ResourceActionScope;
1226
+ title: string;
1227
+ description?: string | null;
1228
+ operationId: string;
1229
+ path: string;
1230
+ method: string;
1231
+ requestSchemaId?: string | null;
1232
+ requestSchemaUrl?: string | null;
1233
+ responseSchemaId?: string | null;
1234
+ responseSchemaUrl?: string | null;
1235
+ availability: ResourceAvailabilityDecision;
1236
+ order: number;
1237
+ successMessage?: string | null;
1238
+ tags: string[];
1239
+ }
1240
+ interface ResourceActionCatalogResponse {
1241
+ resourceKey: string;
1242
+ resourcePath: string;
1243
+ group?: string | null;
1244
+ resourceId?: string | number | null;
1245
+ actions: ResourceActionCatalogItem[];
1246
+ }
1247
+ interface ResourceCapabilityOperation {
1248
+ id: ResourceCapabilityOperationId;
1249
+ supported: boolean;
1250
+ scope: ResourceSurfaceScope;
1251
+ preferredMethod?: string | null;
1252
+ preferredRel?: string | null;
1253
+ availability?: ResourceAvailabilityDecision | null;
1254
+ formats?: PraxisExportFormat[];
1255
+ scopes?: PraxisExportScope[];
1256
+ maxRows?: ResourceExportMaxRows;
1257
+ async?: boolean | null;
1258
+ }
1259
+ type ResourceCapabilityOperations = Partial<Record<ResourceCrudOperationId | 'export', ResourceCapabilityOperation>> & Record<string, ResourceCapabilityOperation | undefined>;
1260
+ interface ResourceCapabilitySnapshot {
1261
+ resourceKey: string;
1262
+ resourcePath: string;
1263
+ group?: string | null;
1264
+ resourceId?: string | number | null;
1265
+ canonicalOperations: Record<string, boolean>;
1266
+ operations?: ResourceCapabilityOperations;
1267
+ surfaces: ResourceSurfaceCatalogItem[];
1268
+ actions: ResourceActionCatalogItem[];
1269
+ }
1270
+ interface ResourceCapabilityDigest {
1271
+ source: 'schema-x-ui-resource';
1272
+ resourcePath: string;
1273
+ canonicalOperations: Record<string, boolean>;
1274
+ filterExpressionSupported: boolean;
1275
+ }
1276
+
1277
+ interface TableTooltipConfig {
1278
+ text?: string;
1279
+ position?: 'top' | 'right' | 'bottom' | 'left' | 'above' | 'below' | 'before' | 'after';
1280
+ bgColor?: string;
1281
+ delayMs?: number;
1282
+ }
296
1283
  /**
297
1284
  * Nova arquitetura modular do TableConfig v2.0
298
1285
  * Preparada para crescimento exponencial e alinhada com as 5 abas do editor
@@ -359,6 +1346,8 @@ interface ColumnDefinition {
359
1346
  };
360
1347
  /** Tipo do renderizador */
361
1348
  type: 'icon' | 'image' | 'badge' | 'link' | 'button' | 'chip' | 'progress' | 'avatar' | 'toggle' | 'menu' | 'rating' | 'html' | 'compose';
1349
+ /** Tooltip associado ao renderer efetivo da célula. */
1350
+ tooltip?: TableTooltipConfig;
362
1351
  /** Configuração de ícone (Material/SVG por nome) */
363
1352
  icon?: {
364
1353
  /** Nome fixo do ícone (ex.: 'check_circle') */
@@ -404,6 +1393,8 @@ interface ColumnDefinition {
404
1393
  variant?: 'filled' | 'outlined' | 'soft';
405
1394
  /** Ícone opcional dentro do badge */
406
1395
  icon?: string;
1396
+ /** Tooltip opcional associado ao indicador visual */
1397
+ tooltip?: TableTooltipConfig;
407
1398
  };
408
1399
  /** Link (sanitizado) */
409
1400
  link?: {
@@ -436,6 +1427,8 @@ interface ColumnDefinition {
436
1427
  color?: string;
437
1428
  icon?: string;
438
1429
  variant?: 'filled' | 'outlined' | 'soft';
1430
+ /** Tooltip opcional associado ao chip */
1431
+ tooltip?: TableTooltipConfig;
439
1432
  };
440
1433
  /** Barra de progresso leve */
441
1434
  progress?: {
@@ -458,9 +1451,12 @@ interface ColumnDefinition {
458
1451
  srcField?: string;
459
1452
  alt?: string;
460
1453
  altField?: string;
1454
+ initialsField?: string;
461
1455
  initialsExpr?: string;
462
1456
  shape?: 'square' | 'rounded' | 'circle';
463
1457
  size?: number;
1458
+ backgroundColor?: string;
1459
+ textColor?: string;
464
1460
  };
465
1461
  /** Alternância (toggle) com ação */
466
1462
  toggle?: {
@@ -516,6 +1512,7 @@ interface ColumnDefinition {
516
1512
  color?: string;
517
1513
  variant?: 'filled' | 'outlined' | 'soft';
518
1514
  icon?: string;
1515
+ tooltip?: TableTooltipConfig;
519
1516
  };
520
1517
  } | {
521
1518
  type: 'link';
@@ -550,6 +1547,7 @@ interface ColumnDefinition {
550
1547
  color?: string;
551
1548
  icon?: string;
552
1549
  variant?: 'filled' | 'outlined' | 'soft';
1550
+ tooltip?: TableTooltipConfig;
553
1551
  };
554
1552
  } | {
555
1553
  type: 'progress';
@@ -565,9 +1563,12 @@ interface ColumnDefinition {
565
1563
  srcField?: string;
566
1564
  alt?: string;
567
1565
  altField?: string;
1566
+ initialsField?: string;
568
1567
  initialsExpr?: string;
569
1568
  shape?: 'square' | 'rounded' | 'circle';
570
1569
  size?: number;
1570
+ backgroundColor?: string;
1571
+ textColor?: string;
571
1572
  };
572
1573
  } | {
573
1574
  type: 'toggle';
@@ -614,8 +1615,14 @@ interface ColumnDefinition {
614
1615
  };
615
1616
  /** Overrides condicionais do renderer por linha (first‑match wins) */
616
1617
  conditionalRenderers?: Array<{
1618
+ /** Identificador estável usado para reconciliação e deduplicação de regras authoradas. */
1619
+ id?: string;
617
1620
  condition: JsonLogicExpression | null;
618
- renderer: Partial<ColumnDefinition['renderer']>;
1621
+ renderer?: Partial<ColumnDefinition['renderer']>;
1622
+ /** Tooltip condicional aplicado quando a regra vencer. */
1623
+ tooltip?: TableTooltipConfig;
1624
+ /** Efeitos visuais canonicos que podem produzir renderer, tooltip ou animacao. */
1625
+ effects?: Array<Record<string, unknown>>;
619
1626
  description?: string;
620
1627
  enabled?: boolean;
621
1628
  }>;
@@ -624,11 +1631,16 @@ interface ColumnDefinition {
624
1631
  * Cada regra contém uma expressão canônica em `condition` e o efeito visual a aplicar.
625
1632
  */
626
1633
  conditionalStyles?: Array<{
1634
+ /** Identificador estável usado para reconciliação e deduplicação de regras authoradas. */
1635
+ id?: string;
627
1636
  condition: JsonLogicExpression | null;
1637
+ /** Efeitos visuais canonicos produzidos pelo editor de regras da Table. */
1638
+ effects?: Array<Record<string, unknown>>;
628
1639
  cssClass?: string;
629
1640
  style?: {
630
1641
  [key: string]: string;
631
1642
  };
1643
+ tooltip?: Record<string, unknown>;
632
1644
  description?: string;
633
1645
  }>;
634
1646
  /** Estado serializado do construtor visual de regras (round‑trip) */
@@ -686,6 +1698,8 @@ interface TableBehaviorConfig {
686
1698
  sorting?: SortingConfig;
687
1699
  /** Configurações de filtragem */
688
1700
  filtering?: FilteringConfig;
1701
+ /** Configurações de agrupamento de linhas */
1702
+ grouping?: GroupingConfig;
689
1703
  /** Configurações de seleção de linhas */
690
1704
  selection?: SelectionConfig;
691
1705
  /** Configurações de interação do usuário */
@@ -920,6 +1934,14 @@ interface SortingConfig {
920
1934
  preserveSort?: boolean;
921
1935
  };
922
1936
  }
1937
+ interface GroupingConfig {
1938
+ /** Habilitar agrupamento */
1939
+ enabled: boolean;
1940
+ /** Campos usados para agrupamento */
1941
+ fields: string[];
1942
+ /** Se os grupos iniciam expandidos */
1943
+ expanded?: boolean;
1944
+ }
923
1945
  interface FilteringConfig {
924
1946
  /** Habilitar filtragem */
925
1947
  enabled: boolean;
@@ -1294,6 +2316,8 @@ interface ToolbarConfig {
1294
2316
  actionsPosition?: 'top' | 'bottom' | 'both';
1295
2317
  /** Cor de fundo da barra de ações */
1296
2318
  actionsBackgroundColor?: string;
2319
+ /** Aparência governada da barra de ferramentas */
2320
+ appearance?: TableToolbarAppearanceConfig;
1297
2321
  /** Configurações de layout */
1298
2322
  layout?: ToolbarLayoutConfig;
1299
2323
  /** Título da tabela */
@@ -1307,6 +2331,25 @@ interface ToolbarConfig {
1307
2331
  /** Menu de configurações */
1308
2332
  settingsMenu?: ToolbarSettingsConfig;
1309
2333
  }
2334
+ type TableToolbarAppearanceVariant = 'flat' | 'outlined' | 'elevated' | 'integrated';
2335
+ type TableToolbarAppearanceDensity = 'compact' | 'comfortable' | 'spacious';
2336
+ type TableToolbarAppearanceShape = 'square' | 'rounded' | 'pill';
2337
+ type TableToolbarAppearanceDivider = 'none' | 'start' | 'between-groups';
2338
+ type TableToolbarTokenName = 'bg' | 'fg' | 'borderColor' | 'borderWidth' | 'radius' | 'shadow' | 'paddingBlock' | 'paddingInline' | 'minHeight' | 'gap' | 'actionsGap' | 'dividerColor' | 'actionSize' | 'actionRadius' | 'actionBg' | 'actionFg' | 'actionHoverBg' | 'actionActiveBg' | 'actionFocusRing' | 'aiAccentColor' | 'statusFg';
2339
+ interface TableToolbarAppearanceConfig {
2340
+ /** Preset registrado pelo host via @praxisui/table */
2341
+ preset?: string;
2342
+ /** Variante visual canônica da toolbar */
2343
+ variant?: TableToolbarAppearanceVariant;
2344
+ /** Densidade visual da toolbar */
2345
+ density?: TableToolbarAppearanceDensity;
2346
+ /** Forma dos containers e botões */
2347
+ shape?: TableToolbarAppearanceShape;
2348
+ /** Política de divisores entre regiões */
2349
+ divider?: TableToolbarAppearanceDivider;
2350
+ /** Tokens CSS públicos materializados pelo runtime */
2351
+ tokens?: Partial<Record<TableToolbarTokenName, string>>;
2352
+ }
1310
2353
  interface ToolbarLayoutConfig {
1311
2354
  /** Alinhamento do conteúdo */
1312
2355
  alignment: 'start' | 'center' | 'end' | 'space-between';
@@ -1336,6 +2379,10 @@ interface ToolbarAction {
1336
2379
  disabled?: boolean;
1337
2380
  /** Função a executar */
1338
2381
  action: string;
2382
+ /** Acao global estruturada executada pelo host via GlobalActionService */
2383
+ globalAction?: GlobalActionRef;
2384
+ /** Efeitos runtime canonicos executados quando a acao da toolbar e acionada */
2385
+ effects?: PraxisRuntimeGlobalActionEffect[];
1339
2386
  /** Tooltip */
1340
2387
  tooltip?: string;
1341
2388
  /** Tecla de atalho */
@@ -1348,6 +2395,8 @@ interface ToolbarAction {
1348
2395
  order?: number;
1349
2396
  /** Visibilidade condicional */
1350
2397
  visibleWhen?: JsonLogicExpression | null;
2398
+ /** Desabilitacao condicional */
2399
+ disabledWhen?: JsonLogicExpression | null;
1351
2400
  /** Sub-ações (para menus) */
1352
2401
  children?: ToolbarAction[];
1353
2402
  }
@@ -1405,6 +2454,11 @@ interface RowActionsConfig {
1405
2454
  menuIcon?: string;
1406
2455
  /** Cor do botão do menu de ações (overflow) */
1407
2456
  menuButtonColor?: 'basic' | 'primary' | 'accent' | 'warn';
2457
+ /** Descoberta HATEOAS/capabilities para enriquecer ações de linha */
2458
+ discovery?: {
2459
+ /** Habilitar descoberta contextual de actions/capabilities para a linha */
2460
+ enabled?: boolean;
2461
+ };
1408
2462
  /** Configurações do cabeçalho da coluna de ações */
1409
2463
  header?: {
1410
2464
  /** Texto exibido no cabeçalho (ex.: "Ações") */
@@ -1446,6 +2500,12 @@ interface RowAction {
1446
2500
  disabled?: boolean;
1447
2501
  /** Função a executar */
1448
2502
  action: string;
2503
+ /** Acao global estruturada executada pelo host via GlobalActionService */
2504
+ globalAction?: GlobalActionRef;
2505
+ /** Efeitos runtime canonicos executados quando a acao por linha e acionada */
2506
+ effects?: PraxisRuntimeGlobalActionEffect[];
2507
+ /** Surface de registro canonica aberta por esta acao de linha */
2508
+ recordSurface?: ResourceSurfaceCatalogItem;
1449
2509
  /** Tooltip */
1450
2510
  tooltip?: string;
1451
2511
  /** Requer confirmação */
@@ -1484,6 +2544,10 @@ interface BulkAction {
1484
2544
  color?: string;
1485
2545
  /** Função a executar */
1486
2546
  action: string;
2547
+ /** Acao global estruturada executada pelo host via GlobalActionService */
2548
+ globalAction?: GlobalActionRef;
2549
+ /** Efeitos runtime canonicos executados quando a acao em lote e acionada */
2550
+ effects?: PraxisRuntimeGlobalActionEffect[];
1487
2551
  /** Requer confirmação */
1488
2552
  requiresConfirmation?: boolean;
1489
2553
  /** Mínimo de itens selecionados */
@@ -1713,14 +2777,12 @@ interface ExportConfig {
1713
2777
  /** Templates personalizados */
1714
2778
  templates?: ExportTemplate[];
1715
2779
  }
1716
- type ExportFormat = 'excel' | 'pdf' | 'csv' | 'json' | 'print';
2780
+ type ExportFormat = PraxisExportFormat;
1717
2781
  interface GeneralExportConfig {
1718
2782
  /** Incluir cabeçalhos */
1719
2783
  includeHeaders: boolean;
1720
- /** Incluir filtros aplicados na exportação */
1721
- respectFilters: boolean;
1722
- /** Incluir apenas linhas selecionadas */
1723
- selectedRowsOnly?: boolean;
2784
+ /** Escopo canônico dos dados exportados */
2785
+ scope: PraxisExportScope;
1724
2786
  /** Máximo de linhas para exportar */
1725
2787
  maxRows?: number;
1726
2788
  /** Nome do arquivo padrão */
@@ -2242,12 +3304,26 @@ interface TableConfigV2 {
2242
3304
  */
2243
3305
  rowConditionalStyles?: Array<{
2244
3306
  condition: JsonLogicExpression | null;
3307
+ /** Efeitos visuais canonicos produzidos pelo editor de regras da Table. */
3308
+ effects?: Array<Record<string, unknown>>;
2245
3309
  cssClass?: string;
2246
3310
  style?: {
2247
3311
  [key: string]: string;
2248
3312
  };
2249
3313
  description?: string;
2250
3314
  }>;
3315
+ /** Regras condicionais de linha para tooltip e animacao derivados de efeitos visuais. */
3316
+ rowConditionalRenderers?: Array<{
3317
+ /** Identificador estável usado para reconciliação e deduplicação de regras authoradas. */
3318
+ id?: string;
3319
+ condition: JsonLogicExpression | null;
3320
+ tooltip?: Record<string, unknown>;
3321
+ animation?: Record<string, unknown>;
3322
+ /** Efeitos visuais canonicos que podem produzir tooltip ou animacao de linha. */
3323
+ effects?: Array<Record<string, unknown>>;
3324
+ description?: string;
3325
+ enabled?: boolean;
3326
+ }>;
2251
3327
  /** Estado serializado do construtor para regras de linha (round‑trip) */
2252
3328
  _rowStyleRulesState?: any;
2253
3329
  }
@@ -2293,6 +3369,7 @@ declare const FieldDataType: {
2293
3369
  readonly FILE: "file";
2294
3370
  readonly URL: "url";
2295
3371
  readonly BOOLEAN: "boolean";
3372
+ readonly ARRAY: "array";
2296
3373
  readonly JSON: "json";
2297
3374
  };
2298
3375
  type FieldDataType = typeof FieldDataType[keyof typeof FieldDataType];
@@ -2343,6 +3420,7 @@ declare const FieldControlType: {
2343
3420
  readonly DRAWER: "drawer";
2344
3421
  readonly DROP_DOWN_TREE: "dropDownTree";
2345
3422
  readonly EMAIL_INPUT: "email";
3423
+ readonly ENTITY_LOOKUP: "entityLookup";
2346
3424
  readonly EXPANSION_PANEL: "expansionPanel";
2347
3425
  readonly FILE_SAVER: "fileSaver";
2348
3426
  readonly FILE_SELECT: "fileSelect";
@@ -2359,6 +3437,7 @@ declare const FieldControlType: {
2359
3437
  readonly INLINE_ENTITY_LOOKUP: "inlineEntityLookup";
2360
3438
  readonly INLINE_AUTOCOMPLETE: "inlineAutocomplete";
2361
3439
  readonly INLINE_INPUT: "inlineInput";
3440
+ readonly INLINE_PHONE: "inlinePhone";
2362
3441
  readonly INLINE_NUMBER: "inlineNumber";
2363
3442
  readonly INLINE_CURRENCY: "inlineCurrency";
2364
3443
  readonly INLINE_CURRENCY_RANGE: "inlineCurrencyRange";
@@ -2579,11 +3658,57 @@ interface ValidatorOptions {
2579
3658
  /** Custom error display position */
2580
3659
  errorPosition?: 'bottom' | 'top' | 'tooltip';
2581
3660
  }
2582
- interface ConditionalValidationRule {
2583
- /** Canonical Json Logic guard evaluated against the `form` root. */
2584
- condition: JsonLogicExpression | null;
2585
- /** Validators applied when the guard resolves to true. */
2586
- validators: Omit<ValidatorOptions, 'conditionalValidation'>;
3661
+ interface ConditionalValidationRule {
3662
+ /** Canonical Json Logic guard evaluated against the `form` root. */
3663
+ condition: JsonLogicExpression | null;
3664
+ /** Validators applied when the guard resolves to true. */
3665
+ validators: Omit<ValidatorOptions, 'conditionalValidation'>;
3666
+ }
3667
+ interface FieldArrayOperations {
3668
+ add?: boolean;
3669
+ edit?: boolean;
3670
+ remove?: boolean;
3671
+ [key: string]: any;
3672
+ }
3673
+ interface FieldArrayCollectionValidation {
3674
+ uniqueBy?: string[];
3675
+ exactlyOne?: {
3676
+ field: string;
3677
+ value?: any;
3678
+ message?: string;
3679
+ };
3680
+ atLeastOne?: {
3681
+ field: string;
3682
+ value?: any;
3683
+ message?: string;
3684
+ };
3685
+ sumEquals?: {
3686
+ field: string;
3687
+ targetField?: string;
3688
+ value?: number;
3689
+ message?: string;
3690
+ };
3691
+ [key: string]: any;
3692
+ }
3693
+ interface FieldArrayConfig {
3694
+ itemType?: 'object';
3695
+ mode?: 'cards';
3696
+ itemSchemaRef?: string;
3697
+ itemIdentityField?: string;
3698
+ minItems?: number;
3699
+ maxItems?: number;
3700
+ addLabel?: string;
3701
+ emptyState?: string;
3702
+ itemTitleTemplate?: string;
3703
+ operations?: FieldArrayOperations;
3704
+ deleteMode?: 'removeFromPayload';
3705
+ itemSchema?: {
3706
+ fields?: FieldMetadata[];
3707
+ properties?: Record<string, any>;
3708
+ [key: string]: any;
3709
+ };
3710
+ collectionValidation?: FieldArrayCollectionValidation;
3711
+ [key: string]: any;
2587
3712
  }
2588
3713
  /**
2589
3714
  * Configuration for field options in selection components.
@@ -2673,6 +3798,8 @@ interface MaterialDesignConfig {
2673
3798
  * };
2674
3799
  * ```
2675
3800
  */
3801
+ type FieldSource = 'schema' | 'local';
3802
+ type FieldSubmitPolicy = 'include' | 'omit' | 'includeWhenDirty';
2676
3803
  interface FieldMetadata extends ComponentMetadata {
2677
3804
  /** Unique field identifier (required) */
2678
3805
  name: string;
@@ -2695,12 +3822,39 @@ interface FieldMetadata extends ComponentMetadata {
2695
3822
  controlType: FieldControlType;
2696
3823
  /** Data type for processing and validation */
2697
3824
  dataType?: FieldDataType;
3825
+ /** Canonical metadata for editable collection fields (`controlType: "array"`). */
3826
+ array?: FieldArrayConfig;
3827
+ /** Optional top-level alias for collection validators mirrored into `array.collectionValidation`. */
3828
+ collectionValidation?: FieldArrayCollectionValidation;
2698
3829
  /** Display order in form */
2699
3830
  order?: number;
2700
3831
  /** Logical grouping of related fields */
2701
3832
  group?: string;
2702
3833
  /** Detailed description for tooltips */
2703
3834
  description?: string;
3835
+ /**
3836
+ * Field origin for metadata-driven forms.
3837
+ *
3838
+ * Defaults to `schema` when omitted. Use `local` for host-authored fields that
3839
+ * support the form UX but do not belong to the backend DTO/schema.
3840
+ */
3841
+ source?: FieldSource;
3842
+ /**
3843
+ * Marks a field as form-local/transient.
3844
+ *
3845
+ * Transient fields participate in validation, rules, visibility, and value
3846
+ * changes, but are omitted from submit payloads unless `submitPolicy` is
3847
+ * explicitly set to `include`.
3848
+ */
3849
+ transient?: boolean;
3850
+ /**
3851
+ * Submit behavior for the field.
3852
+ *
3853
+ * Defaults to `omit` for local/transient fields and `include` for schema
3854
+ * fields. When provided, this value has priority over `source` and
3855
+ * `transient`.
3856
+ */
3857
+ submitPolicy?: FieldSubmitPolicy;
2704
3858
  /** Field is required */
2705
3859
  required?: boolean;
2706
3860
  /** Field is disabled */
@@ -2942,6 +4096,8 @@ interface FieldDefinition {
2942
4096
  layout?: 'horizontal' | 'vertical';
2943
4097
  disabled?: boolean;
2944
4098
  readOnly?: boolean;
4099
+ array?: FieldArrayConfig;
4100
+ collectionValidation?: FieldArrayCollectionValidation;
2945
4101
  multiple?: boolean;
2946
4102
  editable?: boolean;
2947
4103
  validationMode?: string;
@@ -3119,13 +4275,39 @@ declare function buildHeaders(entry: ApiUrlEntry): HttpHeaders | undefined;
3119
4275
  * // fields: [{ name: 'email', label: 'E-mail', type: 'string', controlType: 'input', required: true, email: true }]
3120
4276
  */
3121
4277
  declare class SchemaNormalizerService {
4278
+ private clonePlain;
4279
+ private resolveSchemaRef;
4280
+ private normalizeObjectSchema;
4281
+ private normalizeArrayConfig;
4282
+ private finalizeArrayConfig;
4283
+ private normalizeInlineItemSchemaFields;
4284
+ private normalizeInlineItemSchemaField;
3122
4285
  /** Convert value to boolean. Accepts boolean, string or number. */
3123
4286
  private parseBoolean;
3124
4287
  /** Ensure an array of strings from various inputs. */
3125
4288
  private parseStringArray;
4289
+ private parseNonBlankStringArray;
4290
+ private parseStringRecord;
4291
+ private parseSelectionPolicy;
4292
+ private parseLookupCapabilities;
4293
+ private parseLookupDetail;
4294
+ private parseLookupDisplay;
4295
+ private parseLookupDisplayField;
4296
+ private parseLookupCreate;
4297
+ private parseLookupFilterOperatorArray;
4298
+ private parseLookupSortDirection;
4299
+ private parseLookupDialogSize;
4300
+ private parseLookupDialog;
4301
+ private parseLookupResultColumn;
4302
+ private parseLookupFilterDefinition;
4303
+ private parseDefaultFilters;
4304
+ private parseLookupFiltering;
3126
4305
  /** Parse option arrays into `{ key, value }` objects. */
3127
4306
  private parseOptions;
3128
4307
  private parseOptionSource;
4308
+ private parseOptionSourceType;
4309
+ private parseOptionSourceSearchMode;
4310
+ private parseLookupOpenDetailMode;
3129
4311
  private parseValuePresentation;
3130
4312
  /**
3131
4313
  * Converte string/Function em função real.
@@ -3160,6 +4342,7 @@ declare class SchemaNormalizerService {
3160
4342
  * @returns FieldDefinition[] prontos para mapeamento/uso no restante do sistema.
3161
4343
  */
3162
4344
  normalizeSchema(schema: any): FieldDefinition[];
4345
+ private normalizeSchemaWithRoot;
3163
4346
  private resolveFieldType;
3164
4347
  static ɵfac: i0.ɵɵFactoryDeclaration<SchemaNormalizerService, never>;
3165
4348
  static ɵprov: i0.ɵɵInjectableDeclaration<SchemaNormalizerService>;
@@ -3194,7 +4377,7 @@ type LegacyTableConfig = TableConfig;
3194
4377
  /**
3195
4378
  * @deprecated Use createDefaultTableConfig instead
3196
4379
  */
3197
- declare const DEFAULT_TABLE_CONFIG: TableConfigV2;
4380
+ declare const DEFAULT_TABLE_CONFIG: _praxisui_core.TableConfigModern;
3198
4381
 
3199
4382
  type GlobalDialogAriaRole = 'dialog' | 'alertdialog';
3200
4383
  interface GlobalDialogPosition {
@@ -3516,6 +4699,8 @@ interface OptionSourceRequestOptions<ID = string | number> extends CrudOperation
3516
4699
  includeIds?: ID[];
3517
4700
  observeVersionHeader?: boolean;
3518
4701
  search?: string;
4702
+ sortKey?: string;
4703
+ filters?: LookupFilterRequest[];
3519
4704
  }
3520
4705
  interface BatchDeleteProgress<ID = string | number> {
3521
4706
  id: ID;
@@ -3571,6 +4756,7 @@ declare class GenericCrudService<T, ID extends string | number = string | number
3571
4756
  private _schemaCache?;
3572
4757
  private schemaCacheReady?;
3573
4758
  private _lastResourceMeta;
4759
+ private _lastResourceCapabilityDigest;
3574
4760
  private _lastSchemaInfo;
3575
4761
  /**
3576
4762
  * Cria a instância do serviço genérico.
@@ -3607,10 +4793,10 @@ declare class GenericCrudService<T, ID extends string | number = string | number
3607
4793
  * Fluxo de schemas (grid e filtro)
3608
4794
  *
3609
4795
  * - Grid/Lista (colunas e metadados do DTO principal):
3610
- * 1) getSchema() chama GET {resource}/schemas (ex.: /api/human-resources/funcionarios/schemas)
3611
- * 2) O backend responde 302 para /schemas/filtered com query params:
3612
- * - path: {basePath}/all (ex.: /api/human-resources/funcionarios/all)
3613
- * - operation: get
4796
+ * 1) getSchema() deriva a superfície canônica de busca/listagem do recurso
4797
+ * 2) Em seguida chama /schemas/filtered com query params:
4798
+ * - path: {basePath}/filter (ex.: /api/human-resources/funcionarios/filter)
4799
+ * - operation: post
3614
4800
  * - schemaType: response
3615
4801
  * 3) O serviço normaliza o schema retornado (x-ui) para montagem de grids e formulários.
3616
4802
  *
@@ -3628,8 +4814,8 @@ declare class GenericCrudService<T, ID extends string | number = string | number
3628
4814
  * Obtém o schema (metadados) do recurso, útil para construção dinâmica de grids e formulários.
3629
4815
  *
3630
4816
  * Fluxo:
3631
- * - Faz GET {resource}/schemas; o backend redireciona (302) para /schemas/filtered
3632
- * com path={basePath}/all, operation=get, schemaType=response.
4817
+ * - Chama /schemas/filtered para a superfície canônica de busca/listagem:
4818
+ * path={basePath}/filter, operation=post, schemaType=response.
3633
4819
  * - O resultado é normalizado e usado para montar colunas de grid e formulários (x-ui).
3634
4820
  *
3635
4821
  * Exemplo:
@@ -3639,9 +4825,13 @@ declare class GenericCrudService<T, ID extends string | number = string | number
3639
4825
  * ```
3640
4826
  */
3641
4827
  getSchema(options?: CrudOperationOptions): Observable<FieldDefinition[]>;
4828
+ private updateLastResourceMetadataFromSchema;
4829
+ private normalizeCanonicalCapabilities;
4830
+ private shouldRememberFilteredSchemaEndpointUnavailable;
3642
4831
  private fetchDirectSchema;
3643
4832
  /** Retorna o campo identificador do recurso (ex.: 'id', 'codigo'), quando derivado do schema. */
3644
4833
  getResourceIdField(): string | undefined;
4834
+ getResourceCapabilityDigest(): ResourceCapabilityDigest | null;
3645
4835
  /** Retorna o último schemaId e hash conhecidos após getSchema()/getFilteredSchema(). */
3646
4836
  getLastSchemaInfo(): {
3647
4837
  schemaId?: string;
@@ -3885,6 +5075,7 @@ declare class GenericCrudService<T, ID extends string | number = string | number
3885
5075
  * @throws Error quando o ID é obrigatório mas não fornecido, ou quando o serviço não está configurado
3886
5076
  */
3887
5077
  private getEndpointUrl;
5078
+ private resolveEntityEndpointTemplate;
3888
5079
  private getResourceBaseUrl;
3889
5080
  /**
3890
5081
  * Resolve `/schemas/filtered` base URL honoring ApiUrlConfig (supports APIs on another origin).
@@ -3902,6 +5093,9 @@ declare class GenericCrudService<T, ID extends string | number = string | number
3902
5093
  private resolveRangeAliases;
3903
5094
  private findExistingKey;
3904
5095
  private normalizeRangeBound;
5096
+ private isDateValue;
5097
+ private formatDateOnly;
5098
+ private tryParseLocalizedRangeNumber;
3905
5099
  private isRangeValue;
3906
5100
  private isPlainObject;
3907
5101
  private updateRangeFieldHints;
@@ -3989,39 +5183,39 @@ declare class TableConfigService {
3989
5183
  /**
3990
5184
  * Obtém configuração de paginação
3991
5185
  */
3992
- getPaginationConfig(): PaginationConfig | undefined;
5186
+ getPaginationConfig(): _praxisui_core.PaginationConfig | undefined;
3993
5187
  /**
3994
5188
  * Obtém configuração de ordenação
3995
5189
  */
3996
- getSortingConfig(): SortingConfig | undefined;
5190
+ getSortingConfig(): _praxisui_core.SortingConfig | undefined;
3997
5191
  /**
3998
5192
  * Obtém configuração de filtragem
3999
5193
  */
4000
- getFilteringConfig(): FilteringConfig | undefined;
5194
+ getFilteringConfig(): _praxisui_core.FilteringConfig | undefined;
4001
5195
  /**
4002
5196
  * Obtém configuração de seleção
4003
5197
  */
4004
- getSelectionConfig(): SelectionConfig | undefined;
5198
+ getSelectionConfig(): _praxisui_core.SelectionConfig | undefined;
4005
5199
  /**
4006
5200
  * Obtém configuração da toolbar
4007
5201
  */
4008
- getToolbarConfig(): ToolbarConfig | undefined;
5202
+ getToolbarConfig(): _praxisui_core.ToolbarConfig | undefined;
4009
5203
  /**
4010
5204
  * Obtém configuração de ações
4011
5205
  */
4012
- getActionsConfig(): TableActionsConfig | undefined;
5206
+ getActionsConfig(): _praxisui_core.TableActionsConfig | undefined;
4013
5207
  /**
4014
5208
  * Obtém configuração de aparência
4015
5209
  */
4016
- getAppearanceConfig(): TableAppearanceConfig | undefined;
5210
+ getAppearanceConfig(): _praxisui_core.TableAppearanceConfig | undefined;
4017
5211
  /**
4018
5212
  * Obtém configuração de mensagens
4019
5213
  */
4020
- getMessagesConfig(): MessagesConfig | undefined;
5214
+ getMessagesConfig(): _praxisui_core.MessagesConfig | undefined;
4021
5215
  /**
4022
5216
  * Obtém configuração de localização
4023
5217
  */
4024
- getLocalizationConfig(): LocalizationConfig | undefined;
5218
+ getLocalizationConfig(): _praxisui_core.LocalizationConfig | undefined;
4025
5219
  /**
4026
5220
  * Reset para configuração padrão
4027
5221
  */
@@ -4181,6 +5375,8 @@ declare const CONFIG_STORAGE: InjectionToken<ConfigStorage>;
4181
5375
  */
4182
5376
  interface ApiConfigStorageOptions {
4183
5377
  baseUrl?: string;
5378
+ /** Optional ui_user_config scope query param, e.g. "user" for user-owned configs. */
5379
+ scope?: string;
4184
5380
  /** Factory to supply headers (tenant/user/env/updatedBy) per request. */
4185
5381
  headersFactory?: () => Record<string, string | undefined>;
4186
5382
  /** Default headers applied when the headersFactory omits them. */
@@ -4199,6 +5395,7 @@ declare class ApiConfigStorage implements AsyncConfigStorage {
4199
5395
  private readonly http;
4200
5396
  private readonly opts;
4201
5397
  private readonly baseUrl;
5398
+ private readonly scope;
4202
5399
  private readonly headersFactory;
4203
5400
  private readonly defaultHeaders;
4204
5401
  private readonly componentTypeResolver;
@@ -4226,74 +5423,6 @@ declare class ApiConfigStorage implements AsyncConfigStorage {
4226
5423
  static ɵprov: i0.ɵɵInjectableDeclaration<ApiConfigStorage>;
4227
5424
  }
4228
5425
 
4229
- type GlobalActionResult = {
4230
- success: boolean;
4231
- data?: any;
4232
- error?: string;
4233
- };
4234
- type GlobalActionContext = {
4235
- sourceId?: string;
4236
- widgetKey?: string;
4237
- output?: string;
4238
- payload?: any;
4239
- pageContext?: Record<string, any> | null;
4240
- meta?: Record<string, any>;
4241
- runtime?: {
4242
- row?: any;
4243
- item?: any;
4244
- selection?: any;
4245
- formData?: any;
4246
- value?: any;
4247
- state?: any;
4248
- };
4249
- };
4250
- type GlobalActionHandler = (payload?: any, context?: GlobalActionContext) => Promise<GlobalActionResult> | GlobalActionResult;
4251
- interface GlobalActionHandlerEntry {
4252
- id: string;
4253
- handler: GlobalActionHandler;
4254
- }
4255
- interface GlobalDialogService {
4256
- alert: (payload: {
4257
- title?: string;
4258
- message?: string;
4259
- variant?: string;
4260
- }) => Promise<any> | any;
4261
- confirm: (payload: {
4262
- title?: string;
4263
- message?: string;
4264
- confirmLabel?: string;
4265
- cancelLabel?: string;
4266
- type?: 'danger' | 'warning' | 'info';
4267
- }) => Promise<boolean> | boolean;
4268
- prompt: (payload: {
4269
- title?: string;
4270
- message?: string;
4271
- placeholder?: string;
4272
- defaultValue?: string;
4273
- }) => Promise<any> | any;
4274
- open: (payload: {
4275
- componentId?: string;
4276
- inputs?: any;
4277
- size?: any;
4278
- data?: any;
4279
- }) => Promise<any> | any;
4280
- }
4281
- interface GlobalToastService {
4282
- success: (message: string, opts?: any) => void;
4283
- error: (message: string, opts?: any) => void;
4284
- }
4285
- interface GlobalAnalyticsService {
4286
- track: (eventName: string, payload?: any) => void;
4287
- }
4288
- interface GlobalApiClient {
4289
- get: (url: string, params?: Record<string, any>) => Promise<any> | any;
4290
- post: (url: string, body?: any) => Promise<any> | any;
4291
- patch: (url: string, body?: any) => Promise<any> | any;
4292
- }
4293
- interface GlobalRouteGuardResolver {
4294
- resolve: (guardId: string) => any;
4295
- }
4296
-
4297
5426
  declare class GlobalActionService {
4298
5427
  private readonly handlers;
4299
5428
  private readonly router;
@@ -4311,9 +5440,16 @@ declare class GlobalActionService {
4311
5440
  register(id: string, handler: GlobalActionHandler): void;
4312
5441
  has(id: string): boolean;
4313
5442
  execute(id: string, payload?: any, context?: GlobalActionContext): Promise<GlobalActionResult>;
5443
+ executeRef(ref: GlobalActionRef | null | undefined, context?: GlobalActionContext): Promise<GlobalActionResult>;
5444
+ private resolvePayloadExpr;
5445
+ private lookupPath;
4314
5446
  private registerBuiltins;
4315
5447
  private handleApi;
5448
+ private handleNavigationOpenRoute;
4316
5449
  private handleRouteRegister;
5450
+ private buildNavigationUrl;
5451
+ private buildQueryString;
5452
+ private buildFragment;
4317
5453
  static ɵfac: i0.ɵɵFactoryDeclaration<GlobalActionService, never>;
4318
5454
  static ɵprov: i0.ɵɵInjectableDeclaration<GlobalActionService>;
4319
5455
  }
@@ -4369,12 +5505,16 @@ interface SurfaceOpenPayload {
4369
5505
 
4370
5506
  declare class SurfaceBindingRuntimeService {
4371
5507
  resolveWidget(widget: WidgetDefinition, bindings: SurfaceBinding[] | undefined, actionPayload?: any, actionContext?: GlobalActionContext, explicitContext?: Record<string, any>): WidgetDefinition;
5508
+ resolveSurfacePayload<T extends SurfaceOpenPayload>(surfacePayload: T, actionContext?: GlobalActionContext, explicitContext?: Record<string, any>): T;
4372
5509
  extractByPath(obj: any, path?: string): any;
4373
- resolveTemplate(node: any, context: any): any;
5510
+ resolveTemplate(node: any, context: any, key?: string, path?: string[]): any;
5511
+ private isDeferredTemplateExpressionKey;
5512
+ private tryParseStructuredTemplate;
4374
5513
  setValueAtPath<T extends object>(obj: T, rawPath: string, value: any): T;
4375
5514
  private buildContext;
4376
5515
  private resolveBindingValue;
4377
5516
  private normalizeTargetPath;
5517
+ private normalizeWidgetTargetPath;
4378
5518
  private tokenizePath;
4379
5519
  private clone;
4380
5520
  static ɵfac: i0.ɵɵFactoryDeclaration<SurfaceBindingRuntimeService, never>;
@@ -5160,6 +6300,19 @@ interface MaterialSelectMetadata extends FieldMetadata {
5160
6300
  /** Inline/runtime compatibility for selected option icon color. */
5161
6301
  optionSelectedIconColor?: string;
5162
6302
  }
6303
+ interface MaterialEntityLookupMetadata extends Omit<MaterialSelectMetadata, 'controlType' | 'multiple' | 'maxSelections'>, EntityLookupDisplayMetadata, EntityLookupCollectionMetadata {
6304
+ controlType: typeof FieldControlType.ENTITY_LOOKUP | typeof FieldControlType.INLINE_ENTITY_LOOKUP;
6305
+ lookupIdKey?: string;
6306
+ lookupLabelKey?: string;
6307
+ lookupSubtitleKey?: string;
6308
+ lookupSeparator?: string;
6309
+ payloadMode?: EntityLookupPayloadMode;
6310
+ dialog?: LookupDialogMetadata;
6311
+ searchPlaceholder?: string;
6312
+ resetLabel?: string;
6313
+ ariaLabel?: string;
6314
+ dependencyLoadOnChange?: 'respectLoadOn' | 'immediate' | 'manual';
6315
+ }
5163
6316
  /**
5164
6317
  * Metadata for Material Autocomplete components.
5165
6318
  *
@@ -5213,9 +6366,28 @@ interface MaterialButtonToggleMetadata extends FieldMetadata {
5213
6366
  /** Toggle button options */
5214
6367
  toggleOptions?: Array<{
5215
6368
  value: any;
5216
- text: string;
6369
+ text?: string;
5217
6370
  label?: string;
6371
+ disabled?: boolean;
5218
6372
  }>;
6373
+ /** Allow multiple selected toggle buttons */
6374
+ multiple?: boolean;
6375
+ /** Maximum selected options when multiple is enabled */
6376
+ maxSelections?: number;
6377
+ /** Button toggle appearance */
6378
+ appearance?: 'legacy' | 'standard';
6379
+ /** Theme color */
6380
+ color?: ThemePalette;
6381
+ /** Backend resource for dynamic option loading */
6382
+ resourcePath?: string;
6383
+ /** Canonical metadata-driven source for derived options */
6384
+ optionSource?: OptionSourceMetadata;
6385
+ /** Additional filter criteria for backend requests */
6386
+ filterCriteria?: Record<string, any>;
6387
+ /** Key for option label when loading from backend */
6388
+ optionLabelKey?: string;
6389
+ /** Key for option value when loading from backend */
6390
+ optionValueKey?: string;
5219
6391
  }
5220
6392
  /**
5221
6393
  * Metadata for Material Transfer List component.
@@ -5392,6 +6564,12 @@ interface MaterialDatepickerMetadata extends FieldMetadata {
5392
6564
  controlType: typeof FieldControlType.DATE_PICKER;
5393
6565
  /** Date format for display */
5394
6566
  dateFormat?: string;
6567
+ /** Locale for parsing and formatting date values. */
6568
+ locale?: string;
6569
+ /** Display format hint, such as dd/MM/yyyy for day-first dates. */
6570
+ displayFormat?: string;
6571
+ /** Allows manual typing in the input. Set false to force calendar selection. */
6572
+ manualInput?: boolean;
5395
6573
  /** Minimum selectable date */
5396
6574
  minDate?: Date | string;
5397
6575
  /** Maximum selectable date */
@@ -5425,6 +6603,8 @@ interface MaterialDateRangeMetadata extends FieldMetadata {
5425
6603
  startAriaLabel?: string;
5426
6604
  /** Accessibility label for end date input */
5427
6605
  endAriaLabel?: string;
6606
+ /** Compact inline chip display mode. */
6607
+ inlineChipDisplay?: 'value' | 'label-value';
5428
6608
  /** Start view (month, year, multi-year) */
5429
6609
  startView?: 'month' | 'year' | 'multi-year';
5430
6610
  /** Enable sidebar shortcuts overlay (phase 1). */
@@ -5460,8 +6640,13 @@ interface MaterialDateRangeMetadata extends FieldMetadata {
5460
6640
  * - `confirm`: keeps selection as draft and only commits on explicit confirmation
5461
6641
  */
5462
6642
  inlineQuickPresetsApplyMode?: 'auto' | 'confirm';
5463
- /** Position of shortcuts sidebar relative to the form field. */
5464
- shortcutsPosition?: 'left' | 'right';
6643
+ /**
6644
+ * Preferred position of shortcuts panel relative to the form field.
6645
+ * Defaults to `auto`, which tries a viewport-safe below placement before
6646
+ * side placements. Explicit `left`/`right` remain preferences and may fall
6647
+ * back when there is not enough viewport space.
6648
+ */
6649
+ shortcutsPosition?: 'auto' | 'below' | 'left' | 'right';
5465
6650
  /** Apply immediately when clicking a shortcut. Defaults to true. */
5466
6651
  applyOnShortcutClick?: boolean;
5467
6652
  /** Timezone identifier (e.g., 'America/Sao_Paulo') for normalization. */
@@ -5514,6 +6699,8 @@ interface MaterialPriceRangeMetadata extends FieldMetadata {
5514
6699
  endLabel?: string;
5515
6700
  /** Hide labels for start/end sub-inputs (compact mode). */
5516
6701
  hideSubLabels?: boolean;
6702
+ /** Inline chip display when the range has a value. Defaults to value only. */
6703
+ inlineChipDisplay?: 'value' | 'label-value';
5517
6704
  /** Layout dos inputs (lado a lado ou em linhas). */
5518
6705
  layout?: 'row' | 'column';
5519
6706
  /** Espaçamento entre os inputs (px ou CSS). */
@@ -5567,6 +6754,21 @@ interface InlineRangeDistributionConfig {
5567
6754
  bins?: Array<number | InlineRangeDistributionBin> | string;
5568
6755
  /** Optional normalization ceiling; defaults to the highest bin value. */
5569
6756
  maxValue?: number;
6757
+ /**
6758
+ * Color strategy for histogram bars.
6759
+ * `selection` highlights bars covered by the current slider value/range using theme tokens.
6760
+ * `gradient` applies a configurable gradient to the selected bars.
6761
+ * `theme` keeps all bars on the neutral themed baseline.
6762
+ */
6763
+ colorMode?: 'theme' | 'selection' | 'gradient';
6764
+ /** Optional selected bar color; defaults to the app theme primary color. */
6765
+ selectedColor?: string;
6766
+ /** Optional unselected bar color; defaults to the app theme outline variant color. */
6767
+ unselectedColor?: string;
6768
+ /** Optional first color stop for selected gradient bars. */
6769
+ gradientStartColor?: string;
6770
+ /** Optional final color stop for selected gradient bars. */
6771
+ gradientEndColor?: string;
5570
6772
  /** Optional minimum visible ratio in the [0..1] range for non-zero bars. */
5571
6773
  minBarRatio?: number;
5572
6774
  /** Alias for `minBarRatio`. */
@@ -5610,6 +6812,33 @@ interface RangeSliderQuickPresetLabels {
5610
6812
  fromMid?: string;
5611
6813
  full?: string;
5612
6814
  }
6815
+ interface RangeSliderMark {
6816
+ /** Numeric value represented by this mark. */
6817
+ value: number;
6818
+ /** Optional label rendered next to the mark. */
6819
+ label?: string;
6820
+ /** Optional semantic tone for platform styling. */
6821
+ tone?: 'neutral' | 'info' | 'success' | 'warning' | 'danger';
6822
+ /** Optional disabled hint for authoring and future restricted-value mode. */
6823
+ disabled?: boolean;
6824
+ }
6825
+ type RangeSliderSemanticTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
6826
+ interface RangeSliderSemanticBand {
6827
+ /** Inclusive start value for the band. */
6828
+ start: number;
6829
+ /** Inclusive end value for the band. */
6830
+ end: number;
6831
+ /** Optional label for accessibility, reports and authoring surfaces. */
6832
+ label?: string;
6833
+ /** Semantic tone used by the platform theme. */
6834
+ tone?: RangeSliderSemanticTone;
6835
+ /** Optional explicit color for specialized domain palettes. */
6836
+ color?: string;
6837
+ }
6838
+ type RangeSliderTrackMode = 'normal' | 'inverted' | 'none';
6839
+ type RangeSliderValueLabelDisplay = 'off' | 'auto' | 'on';
6840
+ type RangeSliderScalePreset = 'linear' | 'percent' | 'log' | 'pow2';
6841
+ type RangeSliderValueFormat = 'number' | 'percent' | 'currency' | 'compact' | 'storage';
5613
6842
  interface MaterialRangeSliderMetadata extends FieldMetadata {
5614
6843
  controlType: typeof FieldControlType.RANGE_SLIDER;
5615
6844
  /** Slider mode */
@@ -5618,18 +6847,36 @@ interface MaterialRangeSliderMetadata extends FieldMetadata {
5618
6847
  min?: number;
5619
6848
  /** Maximum allowed value */
5620
6849
  max?: number;
5621
- /** Step for value increments */
5622
- step?: number;
6850
+ /** Step for value increments. `null` is reserved for mark-restricted values. */
6851
+ step?: number | null;
5623
6852
  /** Whether to show the thumb label */
5624
6853
  thumbLabel?: boolean;
6854
+ /** Controls when the value label is displayed. */
6855
+ valueLabelDisplay?: RangeSliderValueLabelDisplay;
6856
+ /** Declarative formatter for value labels when functions cannot come from metadata. */
6857
+ valueLabelFormat?: RangeSliderValueFormat | string;
5625
6858
  /** Tick configuration */
5626
6859
  showTicks?: boolean | 'auto';
6860
+ /** Rich mark labels along the slider track. */
6861
+ marks?: boolean | RangeSliderMark[] | string;
6862
+ /** Semantic bands rendered behind the slider track for domain meaning. */
6863
+ semanticBands?: RangeSliderSemanticBand[] | string;
6864
+ /** Track presentation mode. */
6865
+ track?: RangeSliderTrackMode;
6866
+ /** Keyboard acceleration step for Page Up/Down or Shift+Arrow semantics. */
6867
+ shiftStep?: number;
6868
+ /** Visual density hint. */
6869
+ size?: 'small' | 'medium' | 'large';
5627
6870
  /** Use discrete slider */
5628
6871
  discrete?: boolean;
5629
6872
  /** Display vertically */
5630
6873
  vertical?: boolean;
5631
6874
  /** Invert slider direction */
5632
6875
  invert?: boolean;
6876
+ /** Prevent active thumb swapping when range thumbs overlap. */
6877
+ disableThumbSwap?: boolean;
6878
+ /** Declarative scale preset used to format displayed values. */
6879
+ scale?: RangeSliderScalePreset | string;
5633
6880
  /** Minimum distance between start and end */
5634
6881
  minDistance?: number;
5635
6882
  /** Maximum distance between start and end */
@@ -5807,6 +7054,8 @@ interface MaterialButtonMetadata extends FieldMetadata {
5807
7054
  buttonIconPosition?: 'before' | 'after';
5808
7055
  /** Button action/command */
5809
7056
  action?: string;
7057
+ /** Structured global action executed through GlobalActionService. */
7058
+ globalAction?: GlobalActionRef;
5810
7059
  /** Disable button ripple effect */
5811
7060
  disableRipple?: boolean;
5812
7061
  /** Confirmation message for destructive actions */
@@ -5854,35 +7103,55 @@ interface MaterialSliderMetadata extends FieldMetadata {
5854
7103
  min?: number;
5855
7104
  /** Maximum value */
5856
7105
  max?: number;
5857
- /** Step increment */
5858
- step?: number;
7106
+ /** Step increment. `null` is reserved for mark-restricted values. */
7107
+ step?: number | null;
5859
7108
  /** Show value label */
5860
7109
  thumbLabel?: boolean;
7110
+ /** Controls when the value label is displayed. */
7111
+ valueLabelDisplay?: RangeSliderValueLabelDisplay;
7112
+ /** Declarative formatter for value labels when functions cannot come from metadata. */
7113
+ valueLabelFormat?: RangeSliderValueFormat | string;
7114
+ /** Rich mark labels along the slider track. */
7115
+ marks?: boolean | RangeSliderMark[] | string;
7116
+ /** Semantic bands rendered behind the slider track for domain meaning. */
7117
+ semanticBands?: RangeSliderSemanticBand[] | string;
7118
+ /**
7119
+ * Optional mini histogram/bars rendered above the slider track.
7120
+ * Accepts array shorthand, object config, or JSON string for editor compatibility.
7121
+ */
7122
+ inlineDistribution?: InlineRangeDistributionConfig | Array<number | InlineRangeDistributionBin> | string;
7123
+ /**
7124
+ * Alias accepted by slider components for compact payloads.
7125
+ */
7126
+ distribution?: InlineRangeDistributionConfig | Array<number | InlineRangeDistributionBin> | string;
7127
+ /** Track presentation mode. */
7128
+ track?: RangeSliderTrackMode;
7129
+ /** Keyboard acceleration step for Page Up/Down or Shift+Arrow semantics. */
7130
+ shiftStep?: number;
7131
+ /** Visual density hint. */
7132
+ size?: 'small' | 'medium' | 'large';
5861
7133
  /** Slider orientation */
5862
7134
  vertical?: boolean;
5863
7135
  /** Slider color theme */
5864
7136
  color?: ThemePalette;
5865
7137
  /** Display tick marks along the slider track */
5866
- showTicks?: boolean;
7138
+ showTicks?: boolean | 'auto';
5867
7139
  /** Invert slider direction */
5868
7140
  invert?: boolean;
7141
+ /** Declarative scale preset used to format displayed values. */
7142
+ scale?: RangeSliderScalePreset | string;
5869
7143
  }
5870
7144
  /**
5871
7145
  * Specialized metadata for Material Rating components.
5872
7146
  *
5873
- * ⚠️ COMPONENTE NÃO IMPLEMENTADO - Interface de planejamento
5874
- *
5875
- * Para implementar: criar MaterialRatingComponent em components/material-rating/
5876
- * e registrar no ComponentRegistryService
5877
- *
5878
7147
  * Handles star rating or numeric rating selection.
5879
7148
  */
5880
7149
  interface MaterialRatingMetadata extends FieldMetadata {
5881
7150
  controlType: typeof FieldControlType.RATING;
5882
7151
  /** Maximum rating value */
5883
7152
  max?: number;
5884
- /** Rating precision (0.1, 0.5, 1) */
5885
- precision?: number;
7153
+ /** Rating precision (`0.5` or `half` enables half-step interaction) */
7154
+ precision?: number | 'item' | 'half';
5886
7155
  /** Rating icon (default: star) */
5887
7156
  icon?: string;
5888
7157
  /** Empty icon (default: star_border) */
@@ -6502,7 +7771,7 @@ declare function buildValidatorsFromValidatorOptions(opts?: ValidatorOptions, js
6502
7771
  *
6503
7772
  * Principais responsabilidades
6504
7773
  * - Converter ValidatorOptions/FieldDefinition em ValidatorFn/AsyncValidatorFn.
6505
- * - Aplicar updateOn por campo a partir de validationTrigger (change/blur/submit).
7774
+ * - Aplicar updateOn por campo a partir de updateOn ou validationTrigger (change/blur/submit).
6506
7775
  * - Injetar validadores específicos de UI conforme o controlType:
6507
7776
  * - DATE_PICKER: minDate/maxDate (datas limites).
6508
7777
  * - DATE_RANGE: verificação de ordem (start <= end) e min/max date.
@@ -6518,7 +7787,7 @@ declare function buildValidatorsFromValidatorOptions(opts?: ValidatorOptions, js
6518
7787
  * Boas práticas
6519
7788
  * - Prefira trabalhar com FieldMetadata + ValidatorOptions (camada normalizada) no app.
6520
7789
  * - Use updateControlFromMetadata quando regras dinâmicas alterarem validators (ex.: required, min, pattern, etc.).
6521
- * - Para validação em blur/submit, configure validators.validationTrigger no metadata.
7790
+ * - Para validação em blur/submit, configure updateOn ou validators.validationTrigger no metadata.
6522
7791
  *
6523
7792
  * Exemplo de uso básico
6524
7793
  * const group = dynamicForm.createFormGroupFromMetadata(fieldMetadata);
@@ -6536,6 +7805,7 @@ declare class DynamicFormService {
6536
7805
  * @returns updateOn compatível com Angular Forms ou undefined para padrão ('change')
6537
7806
  */
6538
7807
  private toUpdateOnFromTriggers;
7808
+ private normalizeUpdateOn;
6539
7809
  /**
6540
7810
  * Obtém updateOn a partir de FieldDefinition.validationTriggers.
6541
7811
  */
@@ -6553,6 +7823,18 @@ declare class DynamicFormService {
6553
7823
  * Indica se o campo deve ser tratado como seleção múltipla (valor padrão []).
6554
7824
  */
6555
7825
  private isMultipleField;
7826
+ private isArrayMetadata;
7827
+ private getArrayConfig;
7828
+ private getArrayItemFields;
7829
+ createArrayItemGroupFromMetadata(meta: FieldMetadata, value?: Record<string, any>): FormGroup;
7830
+ private ensureArrayItemIdentityControl;
7831
+ private createArrayControlFromMetadata;
7832
+ private buildArrayValidators;
7833
+ private buildArrayCountValidator;
7834
+ private uniqueKeyForItem;
7835
+ private normalizeUniqueValue;
7836
+ private arrayValues;
7837
+ private readPath;
6556
7838
  /**
6557
7839
  * Envelopa um ValidatorFn Angular para padronizar a saída de erro com mensagem.
6558
7840
  * Útil quando deseja-se forçar uma mensagem customizada em um validador nativo.
@@ -6575,7 +7857,7 @@ declare class DynamicFormService {
6575
7857
  * - Aplica validadores específicos de UI quando aplicável.
6576
7858
  * - Valor inicial: [] para campos múltiplos quando ausente; caso contrário defaultValue.
6577
7859
  */
6578
- createControlFromField(field: FieldDefinition): FormControl;
7860
+ createControlFromField(field: FieldDefinition): AbstractControl;
6579
7861
  /**
6580
7862
  * Cria um FormControl a partir de FieldMetadata.
6581
7863
  * - Aplica ValidatorOptions (normalizados) e validadores de UI por tipo.
@@ -6587,6 +7869,11 @@ declare class DynamicFormService {
6587
7869
  defaultValue?: any;
6588
7870
  disabled?: boolean;
6589
7871
  }): FormControl;
7872
+ createAbstractControlFromMetadata(meta: FieldMetadata & {
7873
+ validators?: ValidatorOptions;
7874
+ defaultValue?: any;
7875
+ disabled?: boolean;
7876
+ }): AbstractControl;
6590
7877
  /**
6591
7878
  * Reconfigura um controle existente a partir de FieldDefinition.
6592
7879
  * Atualiza: validators, asyncValidators, estado enabled/disabled e defaultValue (com suporte a múltiplos).
@@ -6786,8 +8073,27 @@ interface ComponentDocMeta {
6786
8073
  /** Optional title shown by hosts when opening the editor. */
6787
8074
  title?: string;
6788
8075
  };
8076
+ /** Optional canonical AI authoring manifest reference published by the component owner. */
8077
+ authoringManifestRef?: {
8078
+ /** Component id used by the manifest registry/backend. */
8079
+ componentId: string;
8080
+ /** Optional manifest version when the owner can publish it statically. */
8081
+ version?: string;
8082
+ /** Stable source symbol, registry id, or manifest module name. */
8083
+ source?: string;
8084
+ /** Optional content hash when available. */
8085
+ hash?: string;
8086
+ };
6789
8087
  /** Tags or categories for search */
6790
8088
  tags?: string[];
8089
+ /** Optional insertion presets exposed by visual builders without changing the component contract. */
8090
+ insertionPresets?: Array<{
8091
+ id: string;
8092
+ label: string;
8093
+ description?: string;
8094
+ icon?: string;
8095
+ inputs?: Record<string, unknown>;
8096
+ }>;
6791
8097
  /** Source library for the component */
6792
8098
  lib?: string;
6793
8099
  /** Optional layout hints for grid placement */
@@ -6890,6 +8196,7 @@ declare class PraxisI18nService {
6890
8196
  getLocale(): string;
6891
8197
  getFallbackLocale(): string;
6892
8198
  t(key: string, params?: PraxisTranslationParams, fallback?: string, namespace?: string): string;
8199
+ tForLocale(locale: string, key: string, params?: PraxisTranslationParams, fallback?: string, namespace?: string): string;
6893
8200
  resolve(message: PraxisTextValue | null | undefined, fallback?: string, namespace?: string): string;
6894
8201
  formatDate(value: Date | string | number, options?: Intl.DateTimeFormatOptions): string;
6895
8202
  formatNumber(value: number, options?: Intl.NumberFormatOptions): string;
@@ -6999,6 +8306,52 @@ declare class TelemetryService {
6999
8306
  static ɵprov: i0.ɵɵInjectableDeclaration<TelemetryService>;
7000
8307
  }
7001
8308
 
8309
+ declare class PraxisCollectionExportService {
8310
+ private readonly provider;
8311
+ private readonly securityPolicy;
8312
+ constructor(provider: PraxisCollectionExportProvider | null, securityPolicy: PraxisExportSecurityPolicy);
8313
+ exportCollection<T = unknown>(request: PraxisCollectionExportRequest<T>): Promise<PraxisCollectionExportResult>;
8314
+ exportLocalCollection<T = unknown>(request: PraxisCollectionExportRequest<T>): PraxisCollectionExportResult;
8315
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisCollectionExportService, [{ optional: true; }, null]>;
8316
+ static ɵprov: i0.ɵɵInjectableDeclaration<PraxisCollectionExportService>;
8317
+ }
8318
+
8319
+ interface PraxisCollectionExportHttpProviderOptions {
8320
+ endpoint?: string | ((request: PraxisCollectionExportRequest<any>) => string);
8321
+ apiUrlKey?: string;
8322
+ headers?: Record<string, string | string[]>;
8323
+ withCredentials?: boolean;
8324
+ includeLoadedItems?: boolean;
8325
+ }
8326
+ declare const PRAXIS_COLLECTION_EXPORT_PROVIDER: InjectionToken<PraxisCollectionExportProvider>;
8327
+ declare const PRAXIS_COLLECTION_EXPORT_HTTP_OPTIONS: InjectionToken<PraxisCollectionExportHttpProviderOptions>;
8328
+ declare const PRAXIS_EXPORT_SECURITY_POLICY: InjectionToken<PraxisExportSecurityPolicy>;
8329
+ declare function providePraxisCollectionExportProvider(provider: PraxisCollectionExportProvider): Provider;
8330
+
8331
+ declare class PraxisHttpCollectionExportProvider implements PraxisCollectionExportProvider {
8332
+ private readonly http;
8333
+ private readonly apiUrlConfig;
8334
+ private readonly options;
8335
+ constructor(http: HttpClient, apiUrlConfig: ApiUrlConfig | null, options: PraxisCollectionExportHttpProviderOptions | null);
8336
+ exportCollection<T = unknown>(request: PraxisCollectionExportRequest<T>): Promise<PraxisCollectionExportResult>;
8337
+ private resolveEndpoint;
8338
+ private resolveUrl;
8339
+ private normalizePathForBase;
8340
+ private resolveApiBaseUrl;
8341
+ private buildHeaders;
8342
+ private buildRequestBody;
8343
+ private normalizeResponse;
8344
+ private normalizeExportHeaders;
8345
+ private isExportResultEnvelope;
8346
+ private readNumberHeader;
8347
+ private readBooleanHeader;
8348
+ private readWarningHeader;
8349
+ private mergeWarnings;
8350
+ private resolveFileName;
8351
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisHttpCollectionExportProvider, [null, { optional: true; }, { optional: true; }]>;
8352
+ static ɵprov: i0.ɵɵInjectableDeclaration<PraxisHttpCollectionExportProvider>;
8353
+ }
8354
+
7002
8355
  type FieldSelectorRegistryMap = Record<string, FieldControlType>;
7003
8356
  declare const FIELD_SELECTOR_REGISTRY_BASE: InjectionToken<FieldSelectorRegistryMap>;
7004
8357
  declare const FIELD_SELECTOR_REGISTRY_OVERRIDES: InjectionToken<FieldSelectorRegistryMap[]>;
@@ -7077,109 +8430,20 @@ declare class DefaultLoadingRenderer implements PraxisLoadingRenderer {
7077
8430
  hide(ctx: LoadingContext): void;
7078
8431
  private keyOf;
7079
8432
  private defaultLabel;
7080
- private ensureRoot;
7081
- private ensureStyles;
7082
- private getDocument;
7083
- static ɵfac: i0.ɵɵFactoryDeclaration<DefaultLoadingRenderer, never>;
7084
- static ɵprov: i0.ɵɵInjectableDeclaration<DefaultLoadingRenderer>;
7085
- }
7086
-
7087
- declare class PraxisLayerScaleStyleService {
7088
- private readonly doc;
7089
- private readonly styleId;
7090
- constructor();
7091
- ensureInstalled(): void;
7092
- static ɵfac: i0.ɵɵFactoryDeclaration<PraxisLayerScaleStyleService, never>;
7093
- static ɵprov: i0.ɵɵInjectableDeclaration<PraxisLayerScaleStyleService>;
7094
- }
7095
-
7096
- /**
7097
- * Contratos compartilhados de discovery semantico consumidos pelo runtime Angular.
7098
- *
7099
- * `resourcePath` continua sendo o endereco operacional do recurso.
7100
- * `resourceKey` representa a identidade semantica estavel devolvida pelo backend para
7101
- * surfaces, actions e capabilities.
7102
- *
7103
- * O runtime usa `resourceKey` para preservar contexto semantico e gerar ids estaveis de
7104
- * abertura, enquanto `resourcePath`, `path`, `method` e `schemaUrl` seguem responsaveis pelo
7105
- * comportamento operacional.
7106
- */
7107
- interface ResourceAvailabilityDecision {
7108
- allowed: boolean;
7109
- reason?: string | null;
7110
- metadata?: Record<string, any>;
7111
- }
7112
- type ResourceSurfaceKind = 'FORM' | 'PARTIAL_FORM' | 'VIEW' | 'READ_PROJECTION';
7113
- type ResourceSurfaceScope = 'COLLECTION' | 'ITEM';
7114
- type ResourceActionScope = 'COLLECTION' | 'ITEM';
7115
- type ResourceDiscoveryRel = 'surfaces' | 'actions' | 'capabilities';
7116
- type ResourceCrudOperationId = 'create' | 'view' | 'edit' | 'delete';
7117
- interface ResourceSurfaceCatalogItem {
7118
- id: string;
7119
- resourceKey: string;
7120
- kind: ResourceSurfaceKind;
7121
- scope: ResourceSurfaceScope;
7122
- title: string;
7123
- description?: string | null;
7124
- intent?: string | null;
7125
- operationId: string;
7126
- path: string;
7127
- method: string;
7128
- schemaId: string;
7129
- schemaUrl: string;
7130
- availability: ResourceAvailabilityDecision;
7131
- order: number;
7132
- tags: string[];
7133
- }
7134
- interface ResourceSurfaceCatalogResponse {
7135
- resourceKey: string;
7136
- resourcePath: string;
7137
- group?: string | null;
7138
- resourceId?: string | number | null;
7139
- surfaces: ResourceSurfaceCatalogItem[];
7140
- }
7141
- interface ResourceActionCatalogItem {
7142
- id: string;
7143
- resourceKey: string;
7144
- scope: ResourceActionScope;
7145
- title: string;
7146
- description?: string | null;
7147
- operationId: string;
7148
- path: string;
7149
- method: string;
7150
- requestSchemaId?: string | null;
7151
- requestSchemaUrl?: string | null;
7152
- responseSchemaId?: string | null;
7153
- responseSchemaUrl?: string | null;
7154
- availability: ResourceAvailabilityDecision;
7155
- order: number;
7156
- successMessage?: string | null;
7157
- tags: string[];
7158
- }
7159
- interface ResourceActionCatalogResponse {
7160
- resourceKey: string;
7161
- resourcePath: string;
7162
- group?: string | null;
7163
- resourceId?: string | number | null;
7164
- actions: ResourceActionCatalogItem[];
7165
- }
7166
- interface ResourceCapabilityOperation {
7167
- id: ResourceCrudOperationId;
7168
- supported: boolean;
7169
- scope: ResourceSurfaceScope;
7170
- preferredMethod?: string | null;
7171
- preferredRel?: string | null;
7172
- availability?: ResourceAvailabilityDecision | null;
8433
+ private ensureRoot;
8434
+ private ensureStyles;
8435
+ private getDocument;
8436
+ static ɵfac: i0.ɵɵFactoryDeclaration<DefaultLoadingRenderer, never>;
8437
+ static ɵprov: i0.ɵɵInjectableDeclaration<DefaultLoadingRenderer>;
7173
8438
  }
7174
- interface ResourceCapabilitySnapshot {
7175
- resourceKey: string;
7176
- resourcePath: string;
7177
- group?: string | null;
7178
- resourceId?: string | number | null;
7179
- canonicalOperations: Record<string, boolean>;
7180
- operations?: Partial<Record<ResourceCrudOperationId, ResourceCapabilityOperation>>;
7181
- surfaces: ResourceSurfaceCatalogItem[];
7182
- actions: ResourceActionCatalogItem[];
8439
+
8440
+ declare class PraxisLayerScaleStyleService {
8441
+ private readonly doc;
8442
+ private readonly styleId;
8443
+ constructor();
8444
+ ensureInstalled(): void;
8445
+ static ɵfac: i0.ɵɵFactoryDeclaration<PraxisLayerScaleStyleService, never>;
8446
+ static ɵprov: i0.ɵɵInjectableDeclaration<PraxisLayerScaleStyleService>;
7183
8447
  }
7184
8448
 
7185
8449
  interface ResourceDiscoveryRequestOptions {
@@ -7217,6 +8481,537 @@ declare class ResourceDiscoveryService {
7217
8481
  static ɵprov: i0.ɵɵInjectableDeclaration<ResourceDiscoveryService>;
7218
8482
  }
7219
8483
 
8484
+ declare const DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION: "praxis.ai.context-hints.domain-catalog/v0.2";
8485
+ interface DomainCatalogRelease {
8486
+ releaseKey: string;
8487
+ serviceKey?: string;
8488
+ status?: string;
8489
+ version?: string;
8490
+ createdAt?: string;
8491
+ resourceKey?: string;
8492
+ [key: string]: unknown;
8493
+ }
8494
+ interface DomainCatalogGovernancePayload {
8495
+ classification?: string;
8496
+ dataCategory?: string;
8497
+ complianceTags?: string[];
8498
+ aiUsage?: {
8499
+ visibility?: string;
8500
+ purpose?: string;
8501
+ restrictions?: string[];
8502
+ [key: string]: unknown;
8503
+ };
8504
+ [key: string]: unknown;
8505
+ }
8506
+ interface DomainCatalogItem<TPayload = Record<string, unknown>> {
8507
+ itemKey: string;
8508
+ type?: string;
8509
+ payload?: TPayload;
8510
+ [key: string]: unknown;
8511
+ }
8512
+ interface DomainCatalogResourceProbe {
8513
+ resourceKey: string;
8514
+ query: string;
8515
+ limit?: number;
8516
+ }
8517
+ type DomainCatalogContextHintItemType = 'context' | 'node' | 'edge' | 'binding' | 'evidence' | 'governance' | 'vocabulary' | 'relationship';
8518
+ type DomainCatalogContextHintIntent = 'authoring' | 'explain' | 'validate' | 'ai-access-control';
8519
+ type DomainCatalogRecommendedAuthoringFlow = 'shared_rule_authoring' | 'component_authoring' | 'ui_composition_authoring';
8520
+ type DomainCatalogRecommendedRuleType = 'privacy' | 'compliance' | 'validation' | 'selection_eligibility' | 'workflow_action_policy' | 'approval_policy' | string;
8521
+ interface DomainCatalogRelationshipHint {
8522
+ enabled?: boolean;
8523
+ federated?: boolean;
8524
+ serviceKey?: string | null;
8525
+ sourceNodeKey?: string | null;
8526
+ targetNodeKey?: string | null;
8527
+ edgeType?: string | null;
8528
+ query?: string | null;
8529
+ limit?: number;
8530
+ }
8531
+ interface DomainCatalogContextHint {
8532
+ schemaVersion?: typeof DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION;
8533
+ resourceKey?: string | null;
8534
+ query?: string | null;
8535
+ releaseId?: string | null;
8536
+ releaseKey?: string | null;
8537
+ serviceKey?: string | null;
8538
+ type?: DomainCatalogContextHintItemType;
8539
+ itemTypes?: DomainCatalogContextHintItemType[];
8540
+ intent?: DomainCatalogContextHintIntent | null;
8541
+ contextKey?: string | null;
8542
+ nodeType?: string | null;
8543
+ recommendedAuthoringFlow?: DomainCatalogRecommendedAuthoringFlow | null;
8544
+ recommendedRuleType?: DomainCatalogRecommendedRuleType | null;
8545
+ limit?: number;
8546
+ relationships?: DomainCatalogRelationshipHint | null;
8547
+ }
8548
+ interface DomainCatalogGovernanceContext {
8549
+ resourceKey: string;
8550
+ query: string;
8551
+ releaseKey: string | null;
8552
+ items: DomainCatalogItem<DomainCatalogGovernancePayload>[];
8553
+ }
8554
+ interface Domain360CatalogCoverage {
8555
+ resourceCount: number;
8556
+ fieldCount: number;
8557
+ capabilityCount: number;
8558
+ surfaceCount: number;
8559
+ actionCount: number;
8560
+ workflowCount: number;
8561
+ statsCount: number;
8562
+ optionSourceCount: number;
8563
+ relationshipCount: number;
8564
+ contractCount: number;
8565
+ resolutionCount: number;
8566
+ }
8567
+ interface Domain360CatalogEntry<TMetadata = Record<string, unknown> | null> {
8568
+ key: string;
8569
+ label: string;
8570
+ kind: string;
8571
+ itemType: string;
8572
+ contextKey?: string | null;
8573
+ source?: string | null;
8574
+ summary?: string | null;
8575
+ metadata?: TMetadata;
8576
+ }
8577
+ interface Domain360CatalogRoute {
8578
+ routeKey: string;
8579
+ label: string;
8580
+ kind: string;
8581
+ blueprint: string;
8582
+ recommendedComponents: string[];
8583
+ requiredInteractions: string[];
8584
+ requiredCapabilities: string[];
8585
+ promptSeed?: string | null;
8586
+ confidence?: string | null;
8587
+ }
8588
+ interface Domain360CatalogDiagnostic {
8589
+ severity: string;
8590
+ code: string;
8591
+ message: string;
8592
+ target?: string | null;
8593
+ }
8594
+ interface Domain360CatalogResponse {
8595
+ schemaVersion: string;
8596
+ tenantId?: string | null;
8597
+ environment?: string | null;
8598
+ serviceKey?: string | null;
8599
+ resourceKey?: string | null;
8600
+ query?: string | null;
8601
+ sourceMode?: string | null;
8602
+ release?: DomainCatalogRelease | null;
8603
+ retrievalGuidance?: string[];
8604
+ coverage: Domain360CatalogCoverage;
8605
+ resources: Domain360CatalogEntry[];
8606
+ fields: Domain360CatalogEntry[];
8607
+ capabilities: Domain360CatalogEntry[];
8608
+ surfaces: Domain360CatalogEntry[];
8609
+ actions: Domain360CatalogEntry[];
8610
+ workflows: Domain360CatalogEntry[];
8611
+ stats: Domain360CatalogEntry[];
8612
+ optionSources: Domain360CatalogEntry[];
8613
+ relationships: Domain360CatalogEntry[];
8614
+ contracts: Domain360CatalogEntry[];
8615
+ resolutions: Domain360CatalogEntry[];
8616
+ recommendedRoutes: Domain360CatalogRoute[];
8617
+ diagnostics: Domain360CatalogDiagnostic[];
8618
+ }
8619
+
8620
+ interface DomainCatalogRequestOptions extends ResourceDiscoveryRequestOptions {
8621
+ serviceKey?: string;
8622
+ limit?: number;
8623
+ headers?: HttpHeaders | Record<string, string | string[]>;
8624
+ }
8625
+ interface DomainCatalogGovernanceRequestOptions extends DomainCatalogRequestOptions {
8626
+ resourceKey: string;
8627
+ query: string;
8628
+ }
8629
+ interface Domain360CatalogRequestOptions extends DomainCatalogRequestOptions {
8630
+ resourceKey?: string;
8631
+ contextKey?: string;
8632
+ query?: string;
8633
+ }
8634
+ declare class DomainCatalogService {
8635
+ private readonly http;
8636
+ private readonly discovery;
8637
+ listReleases(options?: DomainCatalogRequestOptions): Observable<DomainCatalogRelease[]>;
8638
+ listItems(releaseKey: string, options?: DomainCatalogRequestOptions & {
8639
+ type?: string;
8640
+ query?: string;
8641
+ }): Observable<DomainCatalogItem[]>;
8642
+ findLatestReleaseForResource(resourceKey: string, options?: DomainCatalogRequestOptions): Observable<DomainCatalogRelease | null>;
8643
+ getGovernanceContext(options: DomainCatalogGovernanceRequestOptions): Observable<DomainCatalogGovernanceContext>;
8644
+ getDomain360Catalog(options?: Domain360CatalogRequestOptions): Observable<Domain360CatalogResponse>;
8645
+ private resolveHeaders;
8646
+ private releaseMatchesResource;
8647
+ static ɵfac: i0.ɵɵFactoryDeclaration<DomainCatalogService, never>;
8648
+ static ɵprov: i0.ɵɵInjectableDeclaration<DomainCatalogService>;
8649
+ }
8650
+
8651
+ type DomainKnowledgeAuthorType = 'human' | 'llm' | 'system' | string;
8652
+ type DomainKnowledgeChangeSetStatus = 'proposed' | 'approved' | 'rejected' | 'superseded' | 'applied' | string;
8653
+ type DomainKnowledgeValidationStatus = 'valid' | 'invalid' | 'pending' | string;
8654
+ type DomainKnowledgeOperationType = 'add_evidence' | 'update_evidence' | 'deprecate_evidence' | 'add_relationship' | 'update_concept' | string;
8655
+ interface DomainKnowledgeChangeSetTarget {
8656
+ tenantId?: string | null;
8657
+ environment?: string | null;
8658
+ subjectType?: string | null;
8659
+ conceptKey?: string | null;
8660
+ evidenceKey?: string | null;
8661
+ relationshipKey?: string | null;
8662
+ }
8663
+ interface DomainKnowledgePatchOperation {
8664
+ operationId: string;
8665
+ operationType: DomainKnowledgeOperationType;
8666
+ target?: DomainKnowledgeChangeSetTarget | null;
8667
+ reason?: string | null;
8668
+ evidenceRefs?: string[] | null;
8669
+ confidence?: number | null;
8670
+ payload?: Record<string, unknown> | null;
8671
+ }
8672
+ interface DomainKnowledgeChangeSetRequest {
8673
+ changeSetKey: string;
8674
+ status?: DomainKnowledgeChangeSetStatus | null;
8675
+ authorType?: DomainKnowledgeAuthorType | null;
8676
+ authorId?: string | null;
8677
+ intent?: string | null;
8678
+ reason?: string | null;
8679
+ patch: DomainKnowledgePatchOperation[];
8680
+ }
8681
+ interface DomainKnowledgeSafeOperationSummary {
8682
+ operationId?: string | null;
8683
+ operationType?: DomainKnowledgeOperationType | null;
8684
+ targetSubjectType?: string | null;
8685
+ targetConceptKey?: string | null;
8686
+ evidenceRefCount?: number | null;
8687
+ confidence?: number | null;
8688
+ }
8689
+ interface DomainKnowledgeChangeSet {
8690
+ id: string;
8691
+ tenantId?: string | null;
8692
+ environment?: string | null;
8693
+ changeSetKey?: string | null;
8694
+ status?: DomainKnowledgeChangeSetStatus | null;
8695
+ validationStatus?: DomainKnowledgeValidationStatus | null;
8696
+ authorType?: DomainKnowledgeAuthorType | null;
8697
+ authorId?: string | null;
8698
+ intent?: string | null;
8699
+ reason?: string | null;
8700
+ operationCount?: number | null;
8701
+ safeOperationSummary?: DomainKnowledgeSafeOperationSummary[] | null;
8702
+ reviewerId?: string | null;
8703
+ reviewedAt?: string | null;
8704
+ appliedAt?: string | null;
8705
+ createdAt?: string | null;
8706
+ updatedAt?: string | null;
8707
+ }
8708
+ interface DomainKnowledgeChangeSetFilters {
8709
+ status?: DomainKnowledgeChangeSetStatus;
8710
+ }
8711
+ interface DomainKnowledgeValidationIssue {
8712
+ operationId?: string | null;
8713
+ code?: string | null;
8714
+ message?: string | null;
8715
+ severity?: string | null;
8716
+ }
8717
+ interface DomainKnowledgeValidationResponse {
8718
+ valid: boolean;
8719
+ changeSetId?: string | null;
8720
+ validationStatus?: DomainKnowledgeValidationStatus | null;
8721
+ issues?: DomainKnowledgeValidationIssue[] | null;
8722
+ safeOperationSummary?: DomainKnowledgeSafeOperationSummary[] | null;
8723
+ }
8724
+ type DomainKnowledgeTimelineEventVisibility = 'safe' | string;
8725
+ interface DomainKnowledgeChangeSetTimelineEventResponse {
8726
+ eventType: string;
8727
+ occurredAt?: string | null;
8728
+ actorType?: string | null;
8729
+ actor?: string | null;
8730
+ summary?: string | null;
8731
+ status?: DomainKnowledgeChangeSetStatus | null;
8732
+ validationStatus?: DomainKnowledgeValidationStatus | null;
8733
+ operationCount?: number | null;
8734
+ operationTypes?: DomainKnowledgeOperationType[] | null;
8735
+ targetConceptKeys?: string[] | null;
8736
+ visibility?: DomainKnowledgeTimelineEventVisibility | null;
8737
+ }
8738
+ interface DomainKnowledgeChangeSetTimelineResponse {
8739
+ changeSetId: string;
8740
+ tenantId?: string | null;
8741
+ environment?: string | null;
8742
+ changeSetKey?: string | null;
8743
+ status?: DomainKnowledgeChangeSetStatus | null;
8744
+ authorType?: DomainKnowledgeAuthorType | null;
8745
+ authorId?: string | null;
8746
+ reviewerId?: string | null;
8747
+ events: DomainKnowledgeChangeSetTimelineEventResponse[];
8748
+ }
8749
+ interface DomainKnowledgeStatusTransitionRequest {
8750
+ status: Exclude<DomainKnowledgeChangeSetStatus, 'proposed'> | DomainKnowledgeChangeSetStatus;
8751
+ reviewerId?: string | null;
8752
+ reason?: string | null;
8753
+ }
8754
+
8755
+ interface DomainKnowledgeRequestOptions extends ResourceDiscoveryRequestOptions {
8756
+ headers?: HttpHeaders | Record<string, string | string[]>;
8757
+ }
8758
+ declare class DomainKnowledgeService {
8759
+ private readonly http;
8760
+ private readonly discovery;
8761
+ createChangeSet(request: DomainKnowledgeChangeSetRequest, options?: DomainKnowledgeRequestOptions): Observable<DomainKnowledgeChangeSet>;
8762
+ listChangeSets(filters?: DomainKnowledgeChangeSetFilters, options?: DomainKnowledgeRequestOptions): Observable<DomainKnowledgeChangeSet[]>;
8763
+ getChangeSet(changeSetId: string, options?: DomainKnowledgeRequestOptions): Observable<DomainKnowledgeChangeSet>;
8764
+ validateChangeSet(changeSetId: string, options?: DomainKnowledgeRequestOptions): Observable<DomainKnowledgeValidationResponse>;
8765
+ transitionChangeSetStatus(changeSetId: string, request: DomainKnowledgeStatusTransitionRequest, options?: DomainKnowledgeRequestOptions): Observable<DomainKnowledgeChangeSet>;
8766
+ applyChangeSet(changeSetId: string, options?: DomainKnowledgeRequestOptions): Observable<DomainKnowledgeChangeSet>;
8767
+ getChangeSetTimeline(changeSetId: string, options?: DomainKnowledgeRequestOptions): Observable<DomainKnowledgeChangeSetTimelineResponse>;
8768
+ private buildParams;
8769
+ private resolveHeaders;
8770
+ static ɵfac: i0.ɵɵFactoryDeclaration<DomainKnowledgeService, never>;
8771
+ static ɵprov: i0.ɵɵInjectableDeclaration<DomainKnowledgeService>;
8772
+ }
8773
+
8774
+ type DomainRuleStatus = 'draft' | 'active' | 'inactive' | 'deprecated' | string;
8775
+ type DomainRuleCreatedByType = 'human' | 'llm' | 'system' | string;
8776
+ type DomainRuleAppliedByType = 'human' | 'llm' | 'system' | string;
8777
+ type DomainRuleTargetLayer = 'form' | 'table' | 'api' | 'workflow' | 'workflow_action' | 'approval_policy' | 'policy' | 'option_source' | 'backend_validation' | string;
8778
+ interface DomainRuleDecisionDiagnostics extends Record<string, unknown> {
8779
+ decisionKind?: string | null;
8780
+ authoringMode?: string | null;
8781
+ decisionStage?: string | null;
8782
+ decisionSource?: string | null;
8783
+ canonicalOwner?: string | null;
8784
+ materializationModel?: string | null;
8785
+ runtimeSurfacesAreDerived?: boolean | null;
8786
+ }
8787
+ interface DomainRuleDefinitionRequest {
8788
+ ruleKey: string;
8789
+ version?: number | null;
8790
+ ruleType?: string | null;
8791
+ status?: DomainRuleStatus | null;
8792
+ contextKey?: string | null;
8793
+ resourceKey?: string | null;
8794
+ serviceKey?: string | null;
8795
+ semanticOwner?: string | null;
8796
+ steward?: string | null;
8797
+ sourceReleaseId?: string | null;
8798
+ sourceChangeSetId?: string | null;
8799
+ definition?: Record<string, unknown> | null;
8800
+ parameters?: Record<string, unknown> | null;
8801
+ condition?: Record<string, unknown> | null;
8802
+ governance?: Record<string, unknown> | null;
8803
+ validationResult?: Record<string, unknown> | null;
8804
+ createdByType?: DomainRuleCreatedByType | null;
8805
+ createdBy?: string | null;
8806
+ approvedBy?: string | null;
8807
+ }
8808
+ interface DomainRuleDefinition extends DomainRuleDefinitionRequest {
8809
+ id: string;
8810
+ tenantId?: string | null;
8811
+ environment?: string | null;
8812
+ createdAt?: string | null;
8813
+ updatedAt?: string | null;
8814
+ approvedAt?: string | null;
8815
+ activatedAt?: string | null;
8816
+ }
8817
+ interface DomainRuleDefinitionFilters {
8818
+ resourceKey?: string;
8819
+ status?: DomainRuleStatus;
8820
+ ruleType?: string;
8821
+ ruleKey?: string;
8822
+ }
8823
+ type DomainRuleTimelineEventVisibility = 'safe' | string;
8824
+ interface DomainRuleTimelineEventResponse {
8825
+ eventType: string;
8826
+ occurredAt?: string | null;
8827
+ actorType?: DomainRuleAppliedByType | null;
8828
+ actor?: string | null;
8829
+ summary?: string | null;
8830
+ targetLayer?: DomainRuleTargetLayer | null;
8831
+ targetArtifactType?: string | null;
8832
+ targetArtifactKey?: string | null;
8833
+ sourceHash?: string | null;
8834
+ visibility?: DomainRuleTimelineEventVisibility | null;
8835
+ }
8836
+ interface DomainRuleTimelineResponse {
8837
+ ruleDefinitionId: string;
8838
+ tenantId?: string | null;
8839
+ environment?: string | null;
8840
+ ruleKey?: string | null;
8841
+ ruleType?: string | null;
8842
+ resourceKey?: string | null;
8843
+ events: DomainRuleTimelineEventResponse[];
8844
+ }
8845
+ interface DomainRuleStatusTransitionRequest {
8846
+ status: DomainRuleStatus;
8847
+ decidedByType?: DomainRuleAppliedByType | null;
8848
+ decidedBy?: string | null;
8849
+ decisionNotes?: Record<string, unknown> | null;
8850
+ }
8851
+ interface DomainRuleIntakeRequest {
8852
+ prompt: string;
8853
+ assistantMessage?: string | null;
8854
+ ruleKey?: string | null;
8855
+ ruleType?: string | null;
8856
+ contextKey?: string | null;
8857
+ resourceKey?: string | null;
8858
+ serviceKey?: string | null;
8859
+ definition?: Record<string, unknown> | null;
8860
+ parameters?: Record<string, unknown> | null;
8861
+ condition?: Record<string, unknown> | null;
8862
+ governance?: Record<string, unknown> | null;
8863
+ createdByType?: DomainRuleCreatedByType | null;
8864
+ createdBy?: string | null;
8865
+ }
8866
+ interface DomainRuleIntakeResponse {
8867
+ intakeId: string;
8868
+ tenantId?: string | null;
8869
+ environment?: string | null;
8870
+ ruleKey?: string | null;
8871
+ ruleType?: string | null;
8872
+ contextKey?: string | null;
8873
+ resourceKey?: string | null;
8874
+ serviceKey?: string | null;
8875
+ status?: DomainRuleStatus | null;
8876
+ grounding?: (Record<string, unknown> & {
8877
+ decisionDiagnostics?: DomainRuleDecisionDiagnostics | null;
8878
+ }) | null;
8879
+ definition?: DomainRuleDefinition | null;
8880
+ createdAt?: string | null;
8881
+ }
8882
+ interface DomainRuleMaterializationRequest {
8883
+ ruleDefinitionId: string;
8884
+ materializationKey: string;
8885
+ targetLayer?: DomainRuleTargetLayer | null;
8886
+ targetArtifactType?: string | null;
8887
+ targetArtifactKey?: string | null;
8888
+ targetPointer?: string | null;
8889
+ targetReleaseKey?: string | null;
8890
+ materializedRuleId?: string | null;
8891
+ status?: DomainRuleStatus | null;
8892
+ materializedPayload?: Record<string, unknown> | null;
8893
+ sourceHash?: string | null;
8894
+ validationResult?: Record<string, unknown> | null;
8895
+ appliedByType?: DomainRuleAppliedByType | null;
8896
+ appliedBy?: string | null;
8897
+ }
8898
+ interface DomainRuleMaterialization extends DomainRuleMaterializationRequest {
8899
+ id: string;
8900
+ tenantId?: string | null;
8901
+ environment?: string | null;
8902
+ ruleKey?: string | null;
8903
+ ruleVersion?: number | null;
8904
+ createdAt?: string | null;
8905
+ updatedAt?: string | null;
8906
+ appliedAt?: string | null;
8907
+ decisionDiagnostics?: DomainRuleDecisionDiagnostics | null;
8908
+ }
8909
+ interface DomainRuleMaterializationFilters {
8910
+ ruleDefinitionId?: string;
8911
+ targetLayer?: DomainRuleTargetLayer;
8912
+ targetArtifactType?: string;
8913
+ targetArtifactKey?: string;
8914
+ status?: DomainRuleStatus;
8915
+ }
8916
+ interface DomainRuleSimulationRequest {
8917
+ ruleDefinitionId?: string | null;
8918
+ ruleKey?: string | null;
8919
+ ruleType?: string | null;
8920
+ contextKey?: string | null;
8921
+ resourceKey?: string | null;
8922
+ serviceKey?: string | null;
8923
+ definition?: Record<string, unknown> | null;
8924
+ parameters?: Record<string, unknown> | null;
8925
+ condition?: Record<string, unknown> | null;
8926
+ governance?: Record<string, unknown> | null;
8927
+ }
8928
+ interface DomainRuleSimulationResponse {
8929
+ simulationId: string;
8930
+ ruleDefinitionId?: string | null;
8931
+ tenantId?: string | null;
8932
+ environment?: string | null;
8933
+ ruleKey?: string | null;
8934
+ ruleVersion?: number | null;
8935
+ ruleType?: string | null;
8936
+ contextKey?: string | null;
8937
+ resourceKey?: string | null;
8938
+ serviceKey?: string | null;
8939
+ result?: string | null;
8940
+ grounding?: Record<string, unknown> | null;
8941
+ existingCoverage?: unknown[] | null;
8942
+ predictedMaterializations?: unknown[] | null;
8943
+ requiredApprovals?: unknown[] | null;
8944
+ warnings?: unknown[] | null;
8945
+ explainability?: Record<string, unknown> | null;
8946
+ simulatedAt?: string | null;
8947
+ }
8948
+ type DomainRuleMaterializationOutcomeResolution = 'created' | 'reused' | 'selected_existing' | 'selected_explicit' | 'skipped' | 'blocked' | string;
8949
+ interface DomainRulePublicationMaterializationOutcome {
8950
+ resolution?: DomainRuleMaterializationOutcomeResolution | null;
8951
+ materializationKey?: string | null;
8952
+ targetLayer?: DomainRuleTargetLayer | null;
8953
+ targetArtifactType?: string | null;
8954
+ targetArtifactKey?: string | null;
8955
+ targetPointer?: string | null;
8956
+ statusAtResolution?: DomainRuleStatus | null;
8957
+ sourceHash?: string | null;
8958
+ reason?: string | null;
8959
+ }
8960
+ interface DomainRulePublicationDiagnostics {
8961
+ materializationOutcomes?: DomainRulePublicationMaterializationOutcome[] | null;
8962
+ }
8963
+ interface DomainRuleExplainability extends Record<string, unknown> {
8964
+ decisionDiagnostics?: DomainRuleDecisionDiagnostics | null;
8965
+ publicationDiagnostics?: DomainRulePublicationDiagnostics | null;
8966
+ }
8967
+ interface DomainRulePublicationRequest {
8968
+ ruleDefinitionId: string;
8969
+ materializationIds?: string[] | null;
8970
+ applyEligibleMaterializations?: boolean | null;
8971
+ publishedByType?: DomainRuleAppliedByType | null;
8972
+ publishedBy?: string | null;
8973
+ publicationNotes?: Record<string, unknown> | null;
8974
+ }
8975
+ interface DomainRulePublicationResponse {
8976
+ publicationId: string;
8977
+ tenantId?: string | null;
8978
+ environment?: string | null;
8979
+ publicationStatus?: string | null;
8980
+ publicationReadiness?: string | null;
8981
+ ruleDefinitionId?: string | null;
8982
+ ruleKey?: string | null;
8983
+ ruleVersion?: number | null;
8984
+ ruleType?: string | null;
8985
+ resourceKey?: string | null;
8986
+ serviceKey?: string | null;
8987
+ definition?: DomainRuleDefinition | null;
8988
+ materializations?: DomainRuleMaterialization[] | null;
8989
+ explainability?: DomainRuleExplainability | null;
8990
+ processedAt?: string | null;
8991
+ }
8992
+
8993
+ interface DomainRuleRequestOptions extends ResourceDiscoveryRequestOptions {
8994
+ headers?: HttpHeaders | Record<string, string | string[]>;
8995
+ }
8996
+ declare class DomainRuleService {
8997
+ private readonly http;
8998
+ private readonly discovery;
8999
+ intake(request: DomainRuleIntakeRequest, options?: DomainRuleRequestOptions): Observable<DomainRuleIntakeResponse>;
9000
+ createDefinition(request: DomainRuleDefinitionRequest, options?: DomainRuleRequestOptions): Observable<DomainRuleDefinition>;
9001
+ listDefinitions(filters?: DomainRuleDefinitionFilters, options?: DomainRuleRequestOptions): Observable<DomainRuleDefinition[]>;
9002
+ transitionDefinitionStatus(definitionId: string, request: DomainRuleStatusTransitionRequest, options?: DomainRuleRequestOptions): Observable<DomainRuleDefinition>;
9003
+ getDefinitionTimeline(definitionId: string, options?: DomainRuleRequestOptions): Observable<DomainRuleTimelineResponse>;
9004
+ simulate(request: DomainRuleSimulationRequest, options?: DomainRuleRequestOptions): Observable<DomainRuleSimulationResponse>;
9005
+ publish(request: DomainRulePublicationRequest, options?: DomainRuleRequestOptions): Observable<DomainRulePublicationResponse>;
9006
+ createMaterialization(request: DomainRuleMaterializationRequest, options?: DomainRuleRequestOptions): Observable<DomainRuleMaterialization>;
9007
+ listMaterializations(filters?: DomainRuleMaterializationFilters, options?: DomainRuleRequestOptions): Observable<DomainRuleMaterialization[]>;
9008
+ transitionMaterializationStatus(materializationId: string, request: DomainRuleStatusTransitionRequest, options?: DomainRuleRequestOptions): Observable<DomainRuleMaterialization>;
9009
+ private buildParams;
9010
+ private resolveHeaders;
9011
+ static ɵfac: i0.ɵɵFactoryDeclaration<DomainRuleService, never>;
9012
+ static ɵprov: i0.ɵɵInjectableDeclaration<DomainRuleService>;
9013
+ }
9014
+
7220
9015
  interface ResourceActionOpenAdapterOptions {
7221
9016
  resourcePath: string;
7222
9017
  resourceId?: string | number | null;
@@ -7259,16 +9054,53 @@ declare class ResourceSurfaceOpenAdapterService {
7259
9054
  toPayload(surface: ResourceSurfaceCatalogItem, options: ResourceSurfaceOpenAdapterOptions): SurfaceOpenPayload;
7260
9055
  private buildBasePayload;
7261
9056
  private buildStableInstanceId;
9057
+ private withInputBefore;
7262
9058
  private normalizeResourcePath;
7263
9059
  private resolveFormMode;
7264
9060
  private isCollectionView;
7265
9061
  private isWritableFormSurface;
9062
+ private isReadableFormSurface;
9063
+ private isReadableItemSurface;
7266
9064
  private buildIdBinding;
7267
9065
  private clone;
7268
9066
  static ɵfac: i0.ɵɵFactoryDeclaration<ResourceSurfaceOpenAdapterService, never>;
7269
9067
  static ɵprov: i0.ɵɵInjectableDeclaration<ResourceSurfaceOpenAdapterService>;
7270
9068
  }
7271
9069
 
9070
+ type SurfaceOpenMaterializationContext = {
9071
+ payload?: unknown;
9072
+ runtime?: unknown;
9073
+ };
9074
+ declare class SurfaceOpenMaterializerService {
9075
+ private readonly discovery;
9076
+ materialize(payload: SurfaceOpenPayload, context?: SurfaceOpenMaterializationContext): Promise<SurfaceOpenPayload>;
9077
+ private projectMaterializedFormInputs;
9078
+ private buildLocalFormConfig;
9079
+ private shouldRenderMaterializedFormField;
9080
+ private inferFormControlType;
9081
+ private humanizeFieldName;
9082
+ private chunk;
9083
+ private shouldMaterializeItemReadProjection;
9084
+ private resolveResponseCardinality;
9085
+ private shouldMaterializeAsCollection;
9086
+ private shouldPreserveCollectionPresentation;
9087
+ private resolveResourceId;
9088
+ private resolveItemReadUrl;
9089
+ private resolveSchemaFields;
9090
+ private materializeArrayAsTable;
9091
+ private projectTableInputs;
9092
+ private buildLocalTableConfig;
9093
+ private inferColumnsFromData;
9094
+ private extractCollectionData;
9095
+ private mergeMaterializationContext;
9096
+ private stableSurfaceId;
9097
+ private unwrapRestData;
9098
+ private normalizeError;
9099
+ private readPath;
9100
+ static ɵfac: i0.ɵɵFactoryDeclaration<SurfaceOpenMaterializerService, never>;
9101
+ static ɵprov: i0.ɵɵInjectableDeclaration<SurfaceOpenMaterializerService>;
9102
+ }
9103
+
7272
9104
  type ResolvedCrudOperationSource = 'explicit' | 'capability' | 'surface' | 'link' | 'convention';
7273
9105
  interface ExplicitCrudResolutionContract {
7274
9106
  schemaUrl?: string | null;
@@ -7330,6 +9162,7 @@ declare class CrudOperationResolutionService {
7330
9162
  private defaultScope;
7331
9163
  private defaultMethod;
7332
9164
  private normalizeResourcePath;
9165
+ private resolveSchemaResourcePath;
7333
9166
  private resolveCanonicalResourcePath;
7334
9167
  private toDiscoveryOptions;
7335
9168
  static ɵfac: i0.ɵɵFactoryDeclaration<CrudOperationResolutionService, never>;
@@ -7339,8 +9172,8 @@ declare class CrudOperationResolutionService {
7339
9172
  type AnalyticsIntent = 'ranking' | 'trend' | 'distribution' | 'composition' | 'comparison' | 'correlation';
7340
9173
  type AnalyticsSourceKind = 'praxis.stats';
7341
9174
  type AnalyticsStatsOperation = 'group-by' | 'timeseries' | 'distribution';
7342
- type AnalyticsStatsGranularity = 'hour' | 'day' | 'week' | 'month' | 'quarter' | 'year';
7343
- type AnalyticsStatsMetricOperation = 'COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX';
9175
+ type AnalyticsStatsGranularity = 'day' | 'week' | 'month';
9176
+ type AnalyticsStatsMetricOperation = 'COUNT' | 'DISTINCT_COUNT' | 'SUM' | 'AVG' | 'MIN' | 'MAX';
7344
9177
  type AnalyticsStatsOrderBy = 'KEY_ASC' | 'KEY_DESC' | 'VALUE_ASC' | 'VALUE_DESC';
7345
9178
  type AnalyticsPresentationFamily = 'chart' | 'analytic-table' | 'kpi' | 'summary-list';
7346
9179
  interface PraxisXUiAnalytics {
@@ -7916,7 +9749,7 @@ declare function providePraxisGlobalConfigBootstrap(options?: PraxisGlobalConfig
7916
9749
  declare const PRAXIS_I18N_CONFIG: InjectionToken<Partial<PraxisI18nConfig>>;
7917
9750
  declare const PRAXIS_I18N_TRANSLATOR: InjectionToken<PraxisI18nTranslator>;
7918
9751
 
7919
- declare function providePraxisI18nConfig(config: Partial<PraxisI18nConfig>): Provider;
9752
+ declare function providePraxisI18nConfig(config: Partial<PraxisI18nConfig>): Provider[];
7920
9753
  declare const providePraxisI18n: typeof providePraxisI18nConfig;
7921
9754
  declare function providePraxisI18nTranslator(translator: PraxisI18nTranslator): Provider;
7922
9755
 
@@ -7952,8 +9785,15 @@ type GlobalActionCatalogEntry = {
7952
9785
  required?: string[];
7953
9786
  example?: any;
7954
9787
  };
9788
+ param?: {
9789
+ required?: boolean;
9790
+ label?: string;
9791
+ placeholder?: string;
9792
+ hint?: string;
9793
+ example?: string;
9794
+ };
7955
9795
  };
7956
- declare const GLOBAL_ACTION_CATALOG$1: InjectionToken<readonly GlobalActionCatalogEntry[][]>;
9796
+ declare const GLOBAL_ACTION_CATALOG: InjectionToken<readonly GlobalActionCatalogEntry[][]>;
7957
9797
  declare function provideGlobalActionCatalog(entries: GlobalActionCatalogEntry[]): Provider;
7958
9798
  declare function getGlobalActionCatalog(catalog: ReadonlyArray<GlobalActionCatalogEntry[]> | null | undefined): GlobalActionCatalogEntry[];
7959
9799
  declare const PRAXIS_GLOBAL_ACTION_CATALOG: GlobalActionCatalogEntry[];
@@ -7964,22 +9804,6 @@ interface GlobalSurfaceService {
7964
9804
  }
7965
9805
  declare const GLOBAL_SURFACE_SERVICE: InjectionToken<GlobalSurfaceService>;
7966
9806
 
7967
- type GlobalActionId = 'navigate' | 'openUrl' | 'surface.open' | 'showAlert' | 'log' | 'openDialog' | 'confirm' | 'alert' | 'prompt' | 'submitForm' | 'resetForm' | 'validateForm' | 'clearValidation' | 'saveFormDraft' | 'loadFormDraft' | 'clearFormDraft' | 'apiCall' | 'download' | 'copyToClipboard' | 'refreshOptions' | 'loadDependentData';
7968
- type GlobalActionParam = {
7969
- required?: boolean;
7970
- label?: string;
7971
- placeholder?: string;
7972
- hint?: string;
7973
- example?: string;
7974
- };
7975
- interface GlobalActionSpec {
7976
- id: GlobalActionId;
7977
- label: string;
7978
- description: string;
7979
- param?: GlobalActionParam;
7980
- }
7981
- declare const GLOBAL_ACTION_CATALOG: GlobalActionSpec[];
7982
-
7983
9807
  declare const SURFACE_OPEN_I18N_NAMESPACE = "surfaceOpen";
7984
9808
  declare const SURFACE_OPEN_I18N_CONFIG: Partial<PraxisI18nConfig>;
7985
9809
 
@@ -8082,6 +9906,8 @@ declare const DYNAMIC_PAGE_CONFIG_EDITOR: InjectionToken<Type<any>>;
8082
9906
 
8083
9907
  declare const PRAXIS_LOADING_CTX: HttpContextToken<LoadingContext | null>;
8084
9908
 
9909
+ declare function providePraxisHttpCollectionExportProvider(options?: PraxisCollectionExportHttpProviderOptions): Provider[];
9910
+
8085
9911
  declare const PRAXIS_JSON_LOGIC_OPERATORS: InjectionToken<PraxisJsonLogicOperatorDefinition[]>;
8086
9912
  declare function providePraxisJsonLogicOperator(definition: PraxisJsonLogicOperatorDefinition): Provider;
8087
9913
  declare function providePraxisJsonLogicOperatorOverride(definition: PraxisJsonLogicOperatorDefinition): Provider;
@@ -8173,8 +9999,16 @@ interface ComponentPortEndpointRef {
8173
9999
  direction: 'input' | 'output';
8174
10000
  componentType?: string;
8175
10001
  bindingPath?: string;
10002
+ nestedPath?: ComponentPortPathSegment[];
8176
10003
  };
8177
10004
  }
10005
+ interface ComponentPortPathSegment {
10006
+ kind: 'widget' | 'tab' | 'nav' | 'link' | 'expansion' | 'panel' | 'stepper' | 'step' | 'slot' | 'group';
10007
+ id?: string;
10008
+ key?: string;
10009
+ index?: number;
10010
+ componentType?: string;
10011
+ }
8178
10012
  interface StateEndpointRef {
8179
10013
  kind: 'state';
8180
10014
  ref: {
@@ -8183,7 +10017,11 @@ interface StateEndpointRef {
8183
10017
  writable?: boolean;
8184
10018
  };
8185
10019
  }
8186
- type EndpointRef = ComponentPortEndpointRef | StateEndpointRef;
10020
+ interface GlobalActionEndpointRef {
10021
+ kind: 'global-action';
10022
+ ref: GlobalActionRef;
10023
+ }
10024
+ type EndpointRef = ComponentPortEndpointRef | StateEndpointRef | GlobalActionEndpointRef;
8187
10025
  type LinkIntent = 'event-propagation' | 'state-write' | 'state-read' | 'command-dispatch' | 'selection-sync' | 'data-projection' | 'status-propagation';
8188
10026
  interface LinkPolicy {
8189
10027
  debounceMs?: number;
@@ -8214,7 +10052,7 @@ interface CompositionLink {
8214
10052
 
8215
10053
  type DiagnosticSeverity = 'info' | 'warning' | 'error' | 'fatal';
8216
10054
  type DiagnosticPhase = 'catalog-lint' | 'page-lint' | 'semantic-validation' | 'runtime-bootstrap' | 'runtime-dispatch' | 'runtime-transform' | 'runtime-state' | 'runtime-delivery' | 'runtime-diagnostic';
8217
- type DiagnosticSubjectKind = 'page' | 'widget' | 'port' | 'state' | 'derived-state' | 'link' | 'transform-step' | 'runtime-event' | 'runtime-snapshot';
10055
+ type DiagnosticSubjectKind = 'page' | 'widget' | 'port' | 'state' | 'derived-state' | 'global-action' | 'link' | 'transform-step' | 'runtime-event' | 'runtime-snapshot';
8218
10056
  interface DiagnosticSubjectRef {
8219
10057
  kind: DiagnosticSubjectKind;
8220
10058
  pageId?: string;
@@ -8222,6 +10060,7 @@ interface DiagnosticSubjectRef {
8222
10060
  widgetType?: string;
8223
10061
  portId?: string;
8224
10062
  statePath?: string;
10063
+ actionId?: string;
8225
10064
  linkId?: string;
8226
10065
  transformIndex?: number;
8227
10066
  eventId?: string;
@@ -8417,6 +10256,7 @@ interface FormActionButton {
8417
10256
  disabled?: boolean;
8418
10257
  type?: 'button' | 'submit' | 'reset';
8419
10258
  action?: string;
10259
+ globalAction?: GlobalActionRef;
8420
10260
  tooltip?: string;
8421
10261
  loading?: boolean;
8422
10262
  size?: 'small' | 'medium' | 'large';
@@ -8564,7 +10404,7 @@ interface FieldsetLayout {
8564
10404
  rows: FormRowLayout[];
8565
10405
  hiddenCondition?: JsonLogicExpression | null;
8566
10406
  }
8567
- type FormRuleTargetType = 'field' | 'section' | 'action' | 'row' | 'column';
10407
+ type FormRuleTargetType = 'field' | 'section' | 'action' | 'row' | 'column' | 'visualBlock';
8568
10408
  interface FormLayoutRule {
8569
10409
  id: string;
8570
10410
  name: string;
@@ -8703,6 +10543,29 @@ interface EditorialFormTemplateBuildOptions {
8703
10543
  */
8704
10544
  declare function buildFormConfigFromEditorialTemplate(template: EditorialFormTemplate, options?: EditorialFormTemplateBuildOptions): FormConfig;
8705
10545
 
10546
+ interface FormFieldLayoutItem {
10547
+ kind: 'field';
10548
+ id: string;
10549
+ fieldName: string;
10550
+ }
10551
+ interface FormRichContentLayoutItem {
10552
+ kind: 'richContent';
10553
+ id: string;
10554
+ document: RichContentDocument;
10555
+ layout?: 'block' | 'inline';
10556
+ rootClassName?: string | null;
10557
+ }
10558
+ type FormLayoutItem = FormFieldLayoutItem | FormRichContentLayoutItem;
10559
+ interface FormLayoutItemsColumnLike {
10560
+ fields?: unknown;
10561
+ items?: unknown;
10562
+ }
10563
+ declare function createFieldLayoutItem(fieldName: string, index?: number): FormFieldLayoutItem;
10564
+ declare function isFormLayoutItem(value: unknown): value is FormLayoutItem;
10565
+ declare function normalizeFormLayoutItems(column: FormLayoutItemsColumnLike | null | undefined): FormLayoutItem[];
10566
+ declare function getFormLayoutFieldNames(items: readonly FormLayoutItem[] | null | undefined): string[];
10567
+ declare function getFormColumnFieldNames(column: FormLayoutItemsColumnLike | null | undefined): string[];
10568
+
8706
10569
  type Breakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
8707
10570
  interface ColumnSpan {
8708
10571
  xs?: number;
@@ -8734,7 +10597,10 @@ interface ColumnHidden {
8734
10597
  }
8735
10598
  type ColumnAlign = 'start' | 'center' | 'end' | 'stretch';
8736
10599
  interface FormColumn {
10600
+ /** Legacy field-name list accepted as migration input while items becomes canonical. */
8737
10601
  fields: string[];
10602
+ /** Canonical ordered layout items for fields and visual blocks. */
10603
+ items?: FormLayoutItem[];
8738
10604
  id: string;
8739
10605
  title?: string;
8740
10606
  span?: ColumnSpan;
@@ -8808,8 +10674,10 @@ interface FormSectionHeaderAction {
8808
10674
  label: string;
8809
10675
  /** Icon rendered in the section header action slot. */
8810
10676
  icon: string;
8811
- /** Optional action name emitted by the runtime; defaults to `id` when omitted. */
10677
+ /** Optional local action name emitted by the runtime; defaults to `id` when omitted. */
8812
10678
  action?: string;
10679
+ /** Optional structured global action executed by hosts through GlobalActionService. */
10680
+ globalAction?: GlobalActionRef;
8813
10681
  /** Optional tooltip override. Falls back to `label` when omitted. */
8814
10682
  tooltip?: string;
8815
10683
  /** Optional theme color mapped to Angular Material button tones. */
@@ -8904,6 +10772,8 @@ interface FormConfig {
8904
10772
  messages?: FormMessagesLayout;
8905
10773
  /** Form rules for dynamic behavior */
8906
10774
  formRules?: FormLayoutRule[];
10775
+ /** Conditional command rules evaluated after form rule values stabilize. */
10776
+ formCommandRules?: PraxisRuntimeConditionalEffectRule<PraxisRuntimeGlobalActionEffect>[];
8907
10777
  /**
8908
10778
  * Raw state emitted by the visual rule builder.
8909
10779
  * Stored separately to allow round-trip editing without losing metadata.
@@ -9060,7 +10930,15 @@ interface ValidationError {
9060
10930
  }
9061
10931
  interface FormSubmitEvent {
9062
10932
  stage: 'before' | 'after' | 'error';
10933
+ /** Payload that will be submitted to the backend. */
9063
10934
  formData: any;
10935
+ /**
10936
+ * Full form value before submit filtering.
10937
+ *
10938
+ * Includes local/transient fields for hosts that need UI context while
10939
+ * keeping `formData` aligned with the persistence payload.
10940
+ */
10941
+ rawFormData?: any;
9064
10942
  isValid: boolean;
9065
10943
  validationErrors?: ValidationError[];
9066
10944
  entityId?: string | number;
@@ -9106,6 +10984,7 @@ interface FormInitializationError {
9106
10984
  }
9107
10985
  interface FormCustomActionEvent {
9108
10986
  actionId: string;
10987
+ globalAction?: GlobalActionRef;
9109
10988
  formData: any;
9110
10989
  isValid: boolean;
9111
10990
  source: 'button' | 'shortcut' | 'section-header';
@@ -9129,7 +11008,7 @@ interface RulePropertyDefinition {
9129
11008
  }>;
9130
11009
  category?: 'content' | 'appearance' | 'behavior' | 'layout' | 'validation';
9131
11010
  }
9132
- type RulePropertySchema = Record<'field' | 'section' | 'action' | 'row' | 'column', RulePropertyDefinition[]>;
11011
+ type RulePropertySchema = Record<'field' | 'section' | 'action' | 'row' | 'column' | 'visualBlock', RulePropertyDefinition[]>;
9133
11012
  declare const RULE_PROPERTY_SCHEMA: RulePropertySchema;
9134
11013
 
9135
11014
  type EditorialOrientation = 'horizontal' | 'vertical';
@@ -10051,6 +11930,43 @@ declare function createPersistedPage(identity: PageIdentity, page: WidgetPageDef
10051
11930
  status?: PersistedPageConfig['status'];
10052
11931
  }): PersistedPageConfig;
10053
11932
 
11933
+ type RecordRelatedSurfaceOperationId = 'dynamicPage.surface.discover' | 'dynamicPage.surface.open' | 'dynamicPage.surface.query';
11934
+ interface RecordRelatedSurfaceEndpoint {
11935
+ widget: string;
11936
+ componentType?: string;
11937
+ nestedPath?: ComponentPortPathSegment[];
11938
+ port?: string;
11939
+ childWidgetKey?: string;
11940
+ resourcePath?: string | null;
11941
+ }
11942
+ interface RecordRelatedSurfaceContext {
11943
+ id: string;
11944
+ label: string;
11945
+ relation: string;
11946
+ operationId: RecordRelatedSurfaceOperationId;
11947
+ source: RecordRelatedSurfaceEndpoint;
11948
+ target: RecordRelatedSurfaceEndpoint;
11949
+ resourceSurface?: ResourceSurfaceCatalogItem;
11950
+ statePath?: string;
11951
+ description?: string | null;
11952
+ }
11953
+ interface RecordRelatedSurfaceContextPack {
11954
+ source: 'dynamic-page-composition' | 'resource-capabilities' | 'mixed';
11955
+ surfaces: RecordRelatedSurfaceContext[];
11956
+ }
11957
+
11958
+ interface DomainKnowledgeTimelineRichContentOptions {
11959
+ title?: string;
11960
+ emptyText?: string;
11961
+ }
11962
+ declare function domainKnowledgeTimelineToRichContentDocument(timeline: DomainKnowledgeChangeSetTimelineResponse, options?: DomainKnowledgeTimelineRichContentOptions): RichContentDocument;
11963
+
11964
+ interface DomainRuleTimelineRichContentOptions {
11965
+ title?: string;
11966
+ emptyText?: string;
11967
+ }
11968
+ declare function domainRuleTimelineToRichContentDocument(timeline: DomainRuleTimelineResponse, options?: DomainRuleTimelineRichContentOptions): RichContentDocument;
11969
+
10054
11970
  /**
10055
11971
  * Navigation/back behavior configuration used by form hosts (e.g., CRUD dialogs/routes).
10056
11972
  * Moved from @praxisui/crud to @praxisui/core to avoid circular deps between
@@ -10070,16 +11986,59 @@ interface BackConfig {
10070
11986
  confirmOnDirty?: boolean;
10071
11987
  }
10072
11988
 
11989
+ declare const PRAXIS_QUERY_FILTER_EXPRESSION_SCHEMA_VERSION: "praxis.query-filter-expression.v1";
11990
+ interface PraxisDataQueryContextMeta extends Record<string, unknown> {
11991
+ domainCatalog?: DomainCatalogContextHint | null;
11992
+ }
10073
11993
  interface PraxisDataQueryContext {
10074
11994
  filters?: Record<string, unknown> | null;
11995
+ filterExpression?: PraxisQueryFilterExpression | null;
10075
11996
  sort?: string[] | null;
10076
11997
  limit?: number | null;
10077
11998
  page?: {
10078
11999
  index?: number | null;
10079
12000
  size?: number | null;
10080
12001
  } | null;
10081
- meta?: Record<string, unknown> | null;
12002
+ meta?: PraxisDataQueryContextMeta | null;
12003
+ }
12004
+ interface PraxisQueryFilterExpression {
12005
+ schemaVersion: typeof PRAXIS_QUERY_FILTER_EXPRESSION_SCHEMA_VERSION;
12006
+ root: PraxisQueryFilterNode;
12007
+ projection?: {
12008
+ filters?: Record<string, unknown> | null;
12009
+ lossless: boolean;
12010
+ reason?: string;
12011
+ } | null;
12012
+ governance?: PraxisQueryFilterGovernance | null;
12013
+ }
12014
+ interface PraxisQueryFilterGovernance extends Record<string, unknown> {
12015
+ source?: 'selected-records' | 'manual' | 'workflow' | 'ai-authored';
12016
+ decisionId?: string;
12017
+ explanation?: string;
12018
+ }
12019
+ type PraxisQueryFilterNode = PraxisQueryFilterGroup | PraxisQueryFilterPredicate;
12020
+ interface PraxisQueryFilterGroup {
12021
+ kind: 'group';
12022
+ operator: 'all' | 'any';
12023
+ clauses: PraxisQueryFilterNode[];
12024
+ }
12025
+ interface PraxisQueryFilterPredicate {
12026
+ kind: 'predicate';
12027
+ field: string;
12028
+ operator: PraxisQueryFilterPredicateOperator;
12029
+ value?: unknown;
12030
+ values?: unknown[];
12031
+ label?: string;
12032
+ source?: PraxisQueryFilterPredicateSource;
10082
12033
  }
12034
+ type PraxisQueryFilterPredicateOperator = 'equals' | 'notEquals' | 'in' | 'notIn' | 'contains' | 'startsWith' | 'between' | 'gte' | 'lte' | 'isNull' | 'isNotNull';
12035
+ interface PraxisQueryFilterPredicateSource extends Record<string, unknown> {
12036
+ kind: 'selected-records' | 'manual' | 'workflow' | 'current-context';
12037
+ field?: string;
12038
+ selectedIds?: Array<string | number>;
12039
+ }
12040
+ declare function normalizePraxisQueryFilterNode(node?: Record<string, unknown> | null): PraxisQueryFilterNode | null;
12041
+ declare function normalizePraxisQueryFilterExpression(expression?: Partial<PraxisQueryFilterExpression> | null): PraxisQueryFilterExpression | null;
10083
12042
  declare function normalizePraxisDataQueryContext(context?: PraxisDataQueryContext | null): PraxisDataQueryContext | null;
10084
12043
  declare function resolvePraxisFilterCriteria(filterCriteria?: Record<string, unknown> | null, queryContext?: PraxisDataQueryContext | null): Record<string, unknown>;
10085
12044
 
@@ -10095,6 +12054,12 @@ interface LoadingState {
10095
12054
  componentType?: string;
10096
12055
  componentId?: string;
10097
12056
  resourcePath?: string;
12057
+ totalItems?: number;
12058
+ loadedItemsCount?: number;
12059
+ page?: {
12060
+ index?: number;
12061
+ size?: number;
12062
+ };
10098
12063
  };
10099
12064
  timestamp?: string;
10100
12065
  }
@@ -10372,6 +12337,7 @@ declare const INLINE_FILTER_CONTROL_TYPES: Readonly<{
10372
12337
  readonly CURRENCY_RANGE: "inlineCurrencyRange";
10373
12338
  readonly MULTI_SELECT: "inlineMultiSelect";
10374
12339
  readonly INPUT: "inlineInput";
12340
+ readonly PHONE: "inlinePhone";
10375
12341
  readonly TOGGLE: "inlineToggle";
10376
12342
  readonly RANGE: "inlineRange";
10377
12343
  readonly PERIOD_RANGE: "inlinePeriodRange";
@@ -10418,7 +12384,7 @@ interface GlobalActionField {
10418
12384
  dependsOnValue?: string;
10419
12385
  }
10420
12386
  interface GlobalActionUiSchema {
10421
- id: GlobalActionId;
12387
+ id: string;
10422
12388
  label: string;
10423
12389
  fields: GlobalActionField[];
10424
12390
  editorMode?: 'default' | 'surface-open';
@@ -10426,6 +12392,33 @@ interface GlobalActionUiSchema {
10426
12392
  declare const GLOBAL_ACTION_UI_SCHEMAS: GlobalActionUiSchema[];
10427
12393
  declare function getGlobalActionUiSchema(id: string | undefined): GlobalActionUiSchema | undefined;
10428
12394
 
12395
+ type GlobalActionValidationCode = 'globalAction.actionId.required' | 'globalAction.payload.required' | 'globalAction.payload.type';
12396
+ interface GlobalActionValidationIssue {
12397
+ code: GlobalActionValidationCode;
12398
+ path?: string;
12399
+ actionId?: string;
12400
+ requiredKeys?: string[];
12401
+ missingKeys?: string[];
12402
+ expectedType?: string;
12403
+ actualType?: string;
12404
+ }
12405
+ interface GlobalActionValidationTarget {
12406
+ ref: GlobalActionRef | null | undefined;
12407
+ catalogEntry?: Pick<GlobalActionCatalogEntry, 'payloadSchema' | 'param'> | null;
12408
+ path?: string;
12409
+ }
12410
+ declare function normalizeGlobalActionRef(ref: GlobalActionRef | null | undefined): GlobalActionRef | null;
12411
+ declare function isGlobalActionRef(value: unknown): value is GlobalActionRef;
12412
+ declare function getRequiredGlobalActionPayloadKeys(actionId: string | undefined, catalogEntry?: Pick<GlobalActionCatalogEntry, 'payloadSchema'> | null): string[];
12413
+ declare function hasMeaningfulGlobalActionPayloadValue(value: any): boolean;
12414
+ declare function getMissingGlobalActionPayloadKeys(ref: GlobalActionRef | undefined, catalogEntry?: Pick<GlobalActionCatalogEntry, 'payloadSchema'> | null): string[];
12415
+ declare function isRequiredGlobalActionParamPayloadMissing(ref: GlobalActionRef | undefined, catalogEntry?: Pick<GlobalActionCatalogEntry, 'payloadSchema' | 'param'> | null): boolean;
12416
+ declare function isRequiredGlobalActionPayloadMissing(ref: GlobalActionRef | undefined, catalogEntry?: Pick<GlobalActionCatalogEntry, 'payloadSchema' | 'param'> | null): boolean;
12417
+ declare function getGlobalActionPayloadActualType(value: unknown): string;
12418
+ declare function getGlobalActionPayloadTypeIssue(ref: GlobalActionRef | undefined, catalogEntry?: Pick<GlobalActionCatalogEntry, 'payloadSchema'> | null): Pick<GlobalActionValidationIssue, 'expectedType' | 'actualType'> | null;
12419
+ declare function validateGlobalActionRef(ref: GlobalActionRef | null | undefined, catalogEntry?: Pick<GlobalActionCatalogEntry, 'payloadSchema' | 'param'> | null, path?: string): GlobalActionValidationIssue[];
12420
+ declare function validateGlobalActionRefs(targets: GlobalActionValidationTarget[]): GlobalActionValidationIssue[];
12421
+
10429
12422
  interface SurfaceOpenPreset {
10430
12423
  id: string;
10431
12424
  label: string;
@@ -10554,6 +12547,209 @@ interface AiConcept {
10554
12547
  }
10555
12548
  type AiConceptPack = Record<string, AiConcept>;
10556
12549
 
12550
+ /**
12551
+ * Representa o contrato canônico de authoring executável de um componente.
12552
+ */
12553
+ interface ComponentAuthoringManifest {
12554
+ /** Versão do schema do manifesto (ex: 1.0.0) */
12555
+ schemaVersion: string;
12556
+ /** Identificador único do componente no registry (ex: praxis-table) */
12557
+ componentId: string;
12558
+ /** Nome do pacote npm que possui o componente (ex: @praxisui/table) */
12559
+ ownerPackage: string;
12560
+ /** ID do schema de configuração (ex: TableConfig) */
12561
+ configSchemaId: string;
12562
+ /** Versão do manifesto específico deste componente */
12563
+ manifestVersion: string;
12564
+ /** Inputs que o componente aceita em runtime */
12565
+ runtimeInputs: ManifestInput[];
12566
+ /** Alvos que podem ser editados via AI */
12567
+ editableTargets: ManifestTarget[];
12568
+ /** Operações atômicas permitidas */
12569
+ operations: ManifestOperation[];
12570
+ /** Validadores de integridade da configuração */
12571
+ validators: ManifestValidator[];
12572
+ /** Requisitos para round-trip sem perda de informação */
12573
+ roundTripRequirements?: string[];
12574
+ /**
12575
+ * Exemplos de intenção → operação para uso em Few-Shot e evals.
12576
+ * Obrigatório: o gate de aceitação rejeita manifestos sem examples.
12577
+ * Deve conter ao menos um exemplo negativo (isPositive: false).
12578
+ */
12579
+ examples: ManifestExample[];
12580
+ /**
12581
+ * Perfis opcionais para familias de componentes que compartilham um manifesto
12582
+ * base, mas precisam expor semantica granular por componente/controlType.
12583
+ */
12584
+ controlProfiles?: ManifestControlProfile[];
12585
+ }
12586
+ interface ManifestInput {
12587
+ name: string;
12588
+ type: string;
12589
+ description?: string;
12590
+ allowedValues?: any[];
12591
+ }
12592
+ interface ManifestTarget {
12593
+ kind: string;
12594
+ resolver: string;
12595
+ description: string;
12596
+ }
12597
+ /**
12598
+ * Política de submissão para campos locais num formulário.
12599
+ * - 'omit': campo não é incluído no payload de submissão (default para campos locais).
12600
+ * - 'include': campo é sempre incluído no payload.
12601
+ * - 'includeWhenDirty': campo é incluído apenas se o valor foi alterado pelo usuário.
12602
+ * NOTA: 'transient' NÃO é um valor válido; use source:'local' + transient:true no schema de input.
12603
+ */
12604
+ type SubmitPolicy = 'omit' | 'include' | 'includeWhenDirty';
12605
+ type ManifestSubmissionImpact = 'none' | 'visual-only' | 'config-only' | 'affects-submission' | 'affects-schema-backed-data' | 'affects-remote-binding';
12606
+ interface ManifestOperation {
12607
+ operationId: string;
12608
+ title: string;
12609
+ /**
12610
+ * Escopo da operação.
12611
+ * - 'global': opera sobre a configuração raiz; target.required deve ser false.
12612
+ * - Outros valores: opera sobre um alvo específico; target.required deve ser true.
12613
+ * O valor 'target' é reservado para uso futuro e não deve ser usado.
12614
+ */
12615
+ scope: 'global' | 'column' | 'section' | 'row' | 'cell' | 'field' | 'rule' | 'itemTemplate' | 'itemAction' | 'selection' | 'layout' | 'rowLayout' | 'dataBinding' | 'interaction' | 'expansion' | 'rules' | 'meta' | 'skin' | 'templating' | 'toolbarUi' | 'export' | 'localization' | 'accessibility' | 'eventMapping' | 'controlType' | 'controlAlias' | 'editorialDescriptor' | 'selectorMapping' | 'fieldMetadataPath' | 'runtimeCoverage' | 'editorCoverage';
12616
+ /**
12617
+ * @deprecated Use `target.kind` em vez disso.
12618
+ * Mantido para compatibilidade retroativa com ferramentas que lêem o registry.
12619
+ * Deve ser igual a `target.kind` quando `target` estiver presente.
12620
+ */
12621
+ targetKind?: string;
12622
+ /**
12623
+ * Definição estruturada do alvo da operação.
12624
+ * Obrigatório para operações com scope diferente de 'global'.
12625
+ * Usado pelo backend para resolver o alvo antes de compilar o patch.
12626
+ */
12627
+ target?: {
12628
+ /** Tipo do alvo (ex: column, rule) */
12629
+ kind: string;
12630
+ /** Resolver canônico usado para localizar o alvo (ex: column-by-field) */
12631
+ resolver: string;
12632
+ /** Política para lidar com ambiguidades na resolução */
12633
+ ambiguityPolicy?: 'fail' | 'first' | 'all';
12634
+ /** Se o alvo é obrigatório para a operação */
12635
+ required: boolean;
12636
+ };
12637
+ /** Schema JSON do payload de entrada da operação */
12638
+ inputSchema: any;
12639
+ /**
12640
+ * Efeitos que a operação causa na configuração.
12641
+ * Usado pelo backend para compilar o patch de forma determinística.
12642
+ */
12643
+ effects: ManifestEffect[];
12644
+ /** Se true, a operação é destrutiva e pode causar perda de dados/configuração */
12645
+ destructive?: boolean;
12646
+ /**
12647
+ * Se true, o agente DEVE solicitar confirmação explícita antes de aplicar.
12648
+ * Obrigatório para todas as operações com destructive:true.
12649
+ */
12650
+ requiresConfirmation?: boolean;
12651
+ /** IDs dos validadores que devem ser executados para esta operação */
12652
+ validators?: string[];
12653
+ /**
12654
+ * Caminhos (JSON Path-like) na configuração afetados por esta operação.
12655
+ * Deve cobrir todos os paths tocados pelos effects.
12656
+ * Usado pelo backend para validação de acesso e auditoria de mudanças.
12657
+ */
12658
+ affectedPaths: string[];
12659
+ /**
12660
+ * Impacto declarado da operação sobre submissão, configuração visual ou binding remoto.
12661
+ * Boolean permanece aceito para manifests legados; manifests semanticamente validados devem usar
12662
+ * ManifestSubmissionImpact para evitar inferencia fragil no backend.
12663
+ */
12664
+ submissionImpact: ManifestSubmissionImpact | boolean;
12665
+ /**
12666
+ * Condições de estado que devem ser verdadeiras antes de executar a operação.
12667
+ * Usado pelo backend para validação prévia ao patch.
12668
+ * Ex: ['config-initialized', 'target-exists']
12669
+ */
12670
+ preconditions: string[];
12671
+ }
12672
+ /**
12673
+ * Efeito atômico sobre a configuração.
12674
+ * Usa discriminated union por `kind` para documentar quais campos são obrigatórios:
12675
+ *
12676
+ * - 'merge-object': path obrigatório; funde o payload no objeto no path.
12677
+ * - 'merge-by-key': path + key obrigatórios; funde pelo campo-chave em uma coleção.
12678
+ * - 'append-unique': path + key obrigatórios; adiciona item se não existir (deduplicação por key).
12679
+ * - 'remove-by-key': path + key obrigatórios; remove item da coleção pelo valor da key.
12680
+ * - 'reorder-by-key': path + key obrigatórios; reordena coleção por key.
12681
+ * - 'set-value': path obrigatório; seta o valor diretamente no path.
12682
+ * - 'compile-domain-patch': handler obrigatório; delega compilação a um handler especializado.
12683
+ */
12684
+ interface ManifestEffect {
12685
+ kind: 'merge-object' | 'merge-by-key' | 'append-unique' | 'remove-by-key' | 'reorder-by-key' | 'set-value' | 'compile-domain-patch';
12686
+ /** Path JSON-like na configuração onde o efeito é aplicado. Obrigatório para todos os kinds exceto 'compile-domain-patch'. */
12687
+ path?: string;
12688
+ /** Chave de identidade em coleções. Obrigatório para merge-by-key, append-unique, remove-by-key, reorder-by-key. */
12689
+ key?: string;
12690
+ /** Valor literal para efeitos set-value quando o valor não vem do input da operação. */
12691
+ value?: unknown;
12692
+ /** Caminho opcional dentro do input da operação usado por efeitos set-value. */
12693
+ inputPath?: string;
12694
+ /** ID do handler especializado. Obrigatório quando kind é 'compile-domain-patch'. */
12695
+ handler?: string;
12696
+ handlerContract?: ManifestDomainPatchHandlerContract;
12697
+ }
12698
+ interface ManifestDomainPatchHandlerContract {
12699
+ reads: string[];
12700
+ writes: string[];
12701
+ identityKeys: string[];
12702
+ inputSchema?: any;
12703
+ failureModes: string[];
12704
+ description: string;
12705
+ }
12706
+ interface ManifestValidator {
12707
+ validatorId: string;
12708
+ level: 'error' | 'warning' | 'info';
12709
+ code: string;
12710
+ description: string;
12711
+ }
12712
+ interface ManifestExample {
12713
+ id: string;
12714
+ request: string;
12715
+ operationId: string;
12716
+ target?: string;
12717
+ params?: any;
12718
+ isPositive?: boolean;
12719
+ }
12720
+ interface ManifestControlProfile {
12721
+ /** Identificador estavel do perfil dentro do manifesto familiar. */
12722
+ profileId: string;
12723
+ /** Nome curto usado por ferramentas de authoring. */
12724
+ title: string;
12725
+ /** Explica a semantica que este perfil adiciona sobre o manifesto base. */
12726
+ description: string;
12727
+ /** Regras deterministicas para projetar o perfil em componentes do registry. */
12728
+ appliesTo: ManifestControlProfileApplicability;
12729
+ /** Alvos adicionais ou refinados que este perfil torna editaveis. */
12730
+ editableTargets?: ManifestTarget[];
12731
+ /** Operacoes especificas do perfil/controlType. */
12732
+ operations: ManifestOperation[];
12733
+ /** Validadores especificos do perfil/controlType. */
12734
+ validators: ManifestValidator[];
12735
+ /** Exemplos/evals especificos do perfil/controlType. */
12736
+ examples: ManifestExample[];
12737
+ /** Requisitos adicionais de round-trip para este perfil. */
12738
+ roundTripRequirements?: string[];
12739
+ }
12740
+ interface ManifestControlProfileApplicability {
12741
+ /** IDs de componentes do registry que devem receber este perfil. */
12742
+ componentIds?: string[];
12743
+ /** Selectors publicos que devem receber este perfil. */
12744
+ selectors?: string[];
12745
+ /** Control types canonicos ou aliases que devem receber este perfil. */
12746
+ controlTypes?: string[];
12747
+ /** Tags de ComponentDocMeta usadas como fallback de classificacao. */
12748
+ tags?: string[];
12749
+ /** Tipos do input `metadata` usados como fallback de classificacao. */
12750
+ metadataInputTypes?: string[];
12751
+ }
12752
+
10557
12753
  /**
10558
12754
  * Catálogo de capacidades genéricas de FieldMetadata para uso da IA.
10559
12755
  * Baseado em projects/praxis-core/src/lib/models/component-metadata.interface.ts
@@ -10575,7 +12771,7 @@ declare function getFieldMetadataCapabilities(): Capability$1[];
10575
12771
  * Paths follow WidgetPageDefinition shape under "page".
10576
12772
  */
10577
12773
 
10578
- declare module "./index" {
12774
+ declare module "./praxisui-core" {
10579
12775
  interface AiCapabilityCategoryMap {
10580
12776
  page: true;
10581
12777
  layout: true;
@@ -10583,6 +12779,7 @@ declare module "./index" {
10583
12779
  shell: true;
10584
12780
  connections: true;
10585
12781
  context: true;
12782
+ state: true;
10586
12783
  }
10587
12784
  }
10588
12785
  type CapabilityCategory = AiCapabilityCategory;
@@ -10613,7 +12810,11 @@ interface ComponentActionParam {
10613
12810
  }
10614
12811
  interface ComponentContextAction {
10615
12812
  id: string;
10616
- keywords?: string[];
12813
+ /**
12814
+ * Natural-language examples for LLM grounding only.
12815
+ * Runtime code must not use these strings for keyword routing.
12816
+ */
12817
+ intentExamples?: string[];
10617
12818
  patchTemplate: any;
10618
12819
  safetyNotes?: string;
10619
12820
  /**
@@ -10669,10 +12870,14 @@ interface ComponentMergePatch<TConfig extends Record<string, unknown> = Record<s
10669
12870
 
10670
12871
  declare const DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK: ComponentContextPack;
10671
12872
 
12873
+ declare const DOMAIN_CATALOG_COMPONENT_CONTEXT_PACK: ComponentContextPack;
12874
+
10672
12875
  interface WidgetEventPathSegment {
10673
- kind: 'tabs' | 'tab' | 'nav' | 'link' | 'expansion' | 'panel' | 'stepper' | 'step' | 'slot' | 'group';
12876
+ kind: 'tabs' | 'tab' | 'nav' | 'link' | 'expansion' | 'panel' | 'stepper' | 'step' | 'slot' | 'group' | 'widget';
10674
12877
  id?: string;
12878
+ key?: string;
10675
12879
  index?: number;
12880
+ componentType?: string;
10676
12881
  }
10677
12882
  interface WidgetEventEnvelope {
10678
12883
  /** Optional top-level page widget key that owns the event tree. */
@@ -10694,6 +12899,50 @@ interface WidgetResolutionDiagnostic {
10694
12899
  error?: unknown;
10695
12900
  }
10696
12901
 
12902
+ interface WidgetEventPathNormalizeOptions {
12903
+ /** Optional owner component id used to strip only the top-level container segment. */
12904
+ ownerComponentId?: string;
12905
+ }
12906
+ interface WidgetEventPathNormalizeInput {
12907
+ path?: WidgetEventPathSegment[];
12908
+ sourceChildWidgetKey?: string;
12909
+ sourceComponentId?: string;
12910
+ }
12911
+ declare function normalizeWidgetEventPath(event: WidgetEventEnvelope | WidgetEventPathNormalizeInput, options?: WidgetEventPathNormalizeOptions): ComponentPortPathSegment[];
12912
+
12913
+ interface NestedWidgetResolution {
12914
+ ownerWidgetKey: string;
12915
+ nestedPath: ComponentPortPathSegment[];
12916
+ widget: WidgetDefinition;
12917
+ componentId: string;
12918
+ childWidgetKey: string;
12919
+ }
12920
+ interface NestedWidgetInputPatchResult {
12921
+ widget: WidgetInstance;
12922
+ changed: boolean;
12923
+ }
12924
+ declare class NestedWidgetConfigAccessor {
12925
+ listNestedWidgets(owner: WidgetInstance): NestedWidgetResolution[];
12926
+ resolveNestedWidget(owner: WidgetInstance, nestedPath: ComponentPortPathSegment[] | undefined): WidgetDefinition | undefined;
12927
+ setNestedWidgetInput(owner: WidgetInstance, nestedPath: ComponentPortPathSegment[] | undefined, inputName: string, value: unknown): NestedWidgetInputPatchResult;
12928
+ private listNestedWidgetsInDefinition;
12929
+ private resolveNestedWidgetInDefinition;
12930
+ private setNestedWidgetInputInDefinition;
12931
+ private listChildWidgetLocations;
12932
+ private listTabsWidgetLocations;
12933
+ private listExpansionWidgetLocations;
12934
+ private resolveWidgetArrayLocation;
12935
+ private resolveTabsWidgetArray;
12936
+ private resolveExpansionWidgetArray;
12937
+ private findBySegment;
12938
+ private segmentIdentity;
12939
+ private asWidgetDefinitions;
12940
+ private isWidgetDefinition;
12941
+ private resolveChildWidgetKey;
12942
+ private clone;
12943
+ private isEqual;
12944
+ }
12945
+
10697
12946
  type EditorialContentFormat = 'plain' | 'markdown';
10698
12947
  interface EditorialLinkDefinition {
10699
12948
  label: string;
@@ -10897,17 +13146,27 @@ declare class DynamicWidgetLoaderDirective implements OnInit, OnChanges, OnDestr
10897
13146
  widgetDiagnostic: EventEmitter<WidgetResolutionDiagnostic>;
10898
13147
  private compRef?;
10899
13148
  private currentId?;
13149
+ private currentUsesInitialBindings;
13150
+ private currentInitialBindingSignature;
10900
13151
  private outputSubs;
10901
13152
  /** Dispatch a shell action to the inner widget instance when supported. */
10902
13153
  dispatchAction(action: WidgetShellActionEvent): boolean;
10903
13154
  ngOnInit(): void;
10904
13155
  ngOnChanges(changes: SimpleChanges): void;
10905
13156
  ngOnDestroy(): void;
13157
+ renderNow(): void;
10906
13158
  private parseWidget;
10907
13159
  private tryRender;
10908
13160
  private createComponent;
10909
13161
  private destroyCurrent;
13162
+ private shouldUseInitialInputBindings;
10910
13163
  private bindInputs;
13164
+ private initialBindingSignature;
13165
+ private orderedInputEntries;
13166
+ private resolveAndCoerceValue;
13167
+ private withInferredIdentityInputs;
13168
+ private normalizeMaterializedRuntimeInputs;
13169
+ private inferResourcePathFromSchemaUrl;
10911
13170
  private bindOutputs;
10912
13171
  private resolveValue;
10913
13172
  private get widgetDefinition();
@@ -10915,6 +13174,8 @@ declare class DynamicWidgetLoaderDirective implements OnInit, OnChanges, OnDestr
10915
13174
  private lookup;
10916
13175
  private validateAgainstMetadata;
10917
13176
  private coercePrimitive;
13177
+ private stableStringify;
13178
+ private stableSerializableValue;
10918
13179
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetLoaderDirective, never>;
10919
13180
  static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicWidgetLoaderDirective, "[dynamicWidgetLoader]", ["dynamicWidgetLoader"], { "widget": { "alias": "dynamicWidgetLoader"; "required": false; }; "ownerWidgetKey": { "alias": "ownerWidgetKey"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoWireOutputs": { "alias": "autoWireOutputs"; "required": false; }; }, { "widgetEvent": "widgetEvent"; "widgetDiagnostic": "widgetDiagnostic"; }, never, never, true, never>;
10920
13181
  }
@@ -10924,6 +13185,8 @@ type Appearance = WidgetShellConfig['appearance'];
10924
13185
  declare const BUILTIN_SHELL_PRESETS: Record<string, NonNullable<Appearance>>;
10925
13186
  declare class WidgetShellComponent implements OnChanges {
10926
13187
  private readonly i18n;
13188
+ get hostCollapsed(): boolean;
13189
+ get dragSurfaceInteractive(): boolean;
10927
13190
  shell?: WidgetShellConfig | null;
10928
13191
  context?: Record<string, any> | null;
10929
13192
  dragSurfaceEnabled: boolean;
@@ -10936,7 +13199,10 @@ declare class WidgetShellComponent implements OnChanges {
10936
13199
  collapsed: boolean;
10937
13200
  expanded: boolean;
10938
13201
  fullscreen: boolean;
10939
- ngOnChanges(): void;
13202
+ private initializedWindowState;
13203
+ private lastWindowStateInputs?;
13204
+ ngOnChanges(changes: SimpleChanges): void;
13205
+ private syncInitialWindowState;
10940
13206
  get shellEnabled(): boolean;
10941
13207
  get showHeader(): boolean;
10942
13208
  get headerActions(): ActionList;
@@ -10955,6 +13221,8 @@ declare class WidgetShellComponent implements OnChanges {
10955
13221
  private isVisible;
10956
13222
  private resolvePresetAppearance;
10957
13223
  private mergeAppearance;
13224
+ private readWindowStateInputs;
13225
+ private areWindowStateInputsEqual;
10958
13226
  private isInteractiveHeaderTarget;
10959
13227
  private t;
10960
13228
  static ɵfac: i0.ɵɵFactoryDeclaration<WidgetShellComponent, never>;
@@ -10992,6 +13260,7 @@ declare class WidgetPageStateRuntimeService {
10992
13260
  private evaluateDerivedJsonLogic;
10993
13261
  private resolveCaseValue;
10994
13262
  private resolveTemplate;
13263
+ private isPageStateTemplatePath;
10995
13264
  private normalizeDependencyPath;
10996
13265
  private readPath;
10997
13266
  private isPlainObject;
@@ -11020,6 +13289,86 @@ interface WidgetPageComposition {
11020
13289
  context: Record<string, unknown>;
11021
13290
  }
11022
13291
 
13292
+ interface NestedPortCatalogRegistry {
13293
+ get(id: string): Pick<ComponentDocMeta, 'ports'> | undefined;
13294
+ }
13295
+ interface ResolvedNestedPort {
13296
+ ownerWidgetKey: string;
13297
+ ownerComponentId?: string;
13298
+ nestedPath: ComponentPortPathSegment[];
13299
+ containerPath?: ComponentPortPathSegment[];
13300
+ port: PortContract;
13301
+ componentId: string;
13302
+ childWidgetKey: string;
13303
+ }
13304
+ interface NestedPortCatalogDiagnostic {
13305
+ code: 'NESTED_WIDGET_METADATA_MISSING' | 'NESTED_WIDGET_KEY_MISSING';
13306
+ severity: 'warning' | 'error';
13307
+ ownerWidgetKey: string;
13308
+ nestedPath: ComponentPortPathSegment[];
13309
+ componentId?: string;
13310
+ message: string;
13311
+ }
13312
+ interface NestedPortCatalogResult {
13313
+ ports: ResolvedNestedPort[];
13314
+ diagnostics: NestedPortCatalogDiagnostic[];
13315
+ }
13316
+ declare class NestedPortCatalogService {
13317
+ private readonly accessor;
13318
+ constructor(accessor?: NestedWidgetConfigAccessor);
13319
+ resolve(page: Pick<WidgetPageDefinition, 'widgets'>, registry: NestedPortCatalogRegistry): NestedPortCatalogResult;
13320
+ resolveEndpoint(page: Pick<WidgetPageDefinition, 'widgets'>, registry: NestedPortCatalogRegistry, options: {
13321
+ ownerWidgetKey: string;
13322
+ nestedPath: ComponentPortPathSegment[];
13323
+ portId: string;
13324
+ direction: PortContract['direction'];
13325
+ }): ResolvedNestedPort | undefined;
13326
+ private hasStableTerminalKey;
13327
+ private containerPath;
13328
+ private isSamePath;
13329
+ private clone;
13330
+ }
13331
+
13332
+ type SemanticEndpointRef = EndpointRef & {
13333
+ ref: EndpointRef['ref'] & {
13334
+ semanticKind?: TransformSemanticKind;
13335
+ };
13336
+ };
13337
+ type SemanticCompositionLink = CompositionLink & {
13338
+ from: SemanticEndpointRef;
13339
+ to: SemanticEndpointRef;
13340
+ transform?: TransformPipeline;
13341
+ };
13342
+ interface CompositionValidatorContext {
13343
+ page?: Pick<WidgetPageDefinition, 'widgets'>;
13344
+ registry?: NestedPortCatalogRegistry;
13345
+ links?: SemanticCompositionLink[];
13346
+ }
13347
+ declare class CompositionValidatorService {
13348
+ private readonly nestedPortCatalog;
13349
+ private readonly jsonLogic;
13350
+ constructor(nestedPortCatalog?: NestedPortCatalogService, jsonLogic?: PraxisJsonLogicService);
13351
+ validateLink(link: SemanticCompositionLink, context?: CompositionValidatorContext): DiagnosticRecord[];
13352
+ private validateEndpointDirections;
13353
+ private validateBindingPathBridge;
13354
+ private validateNestedComponentEndpoints;
13355
+ private validateNestedPortCatalog;
13356
+ private projectCatalogDiagnostics;
13357
+ private validateNestedWidgetEventCoexistence;
13358
+ private validateStateWrites;
13359
+ private validateGlobalActionTarget;
13360
+ private validateCondition;
13361
+ private validateTransformCatalog;
13362
+ private validateSemanticCompatibility;
13363
+ private endpointSemanticKind;
13364
+ private areSemanticKindsCompatible;
13365
+ private areKindsDirectlyCompatible;
13366
+ private createDiagnostic;
13367
+ private formatNestedPath;
13368
+ private nestedEndpointSubject;
13369
+ private isSameNestedPath;
13370
+ }
13371
+
11023
13372
  interface CompositionRuntimeStoreInit {
11024
13373
  pageId?: string;
11025
13374
  status?: RuntimeSnapshotStatus;
@@ -11093,13 +13442,16 @@ interface LinkExecutionContext {
11093
13442
  lastDeliveredAt?: string;
11094
13443
  }
11095
13444
  interface LinkExecutionDelivery {
11096
- kind: 'state' | 'component-port';
13445
+ kind: 'state' | 'component-port' | 'global-action';
11097
13446
  value: unknown;
11098
13447
  statePath?: string;
11099
13448
  stateLayer?: 'values' | 'derived' | 'transient';
11100
13449
  widgetKey?: string;
11101
13450
  portId?: string;
11102
13451
  bindingPath?: string;
13452
+ nestedPath?: ComponentPortPathSegment[];
13453
+ actionId?: string;
13454
+ actionRef?: GlobalActionRef;
11103
13455
  }
11104
13456
  interface LinkExecutionResult {
11105
13457
  status: 'delivered' | 'skipped' | 'failed';
@@ -11169,6 +13521,7 @@ interface CompositionRuntimeEngineOptions {
11169
13521
  linkExecutor?: LinkExecutorService;
11170
13522
  stateRuntime?: WidgetPageStateRuntimeService;
11171
13523
  traceService?: RuntimeTraceService;
13524
+ compositionValidator?: CompositionValidatorService;
11172
13525
  }
11173
13526
  interface CompositionStateWidgetPreviewOptions {
11174
13527
  widgets?: WidgetInstance[];
@@ -11185,7 +13538,9 @@ declare class CompositionRuntimeEngine {
11185
13538
  private readonly linkExecutor;
11186
13539
  private readonly stateRuntime;
11187
13540
  private readonly traceService;
13541
+ private readonly compositionValidator;
11188
13542
  private readonly pathAccessor;
13543
+ private readonly nestedWidgetAccessor;
11189
13544
  private definition;
11190
13545
  private readonly now;
11191
13546
  constructor(options?: CompositionRuntimeEngineOptions);
@@ -11197,11 +13552,13 @@ declare class CompositionRuntimeEngine {
11197
13552
  private createLinkSnapshot;
11198
13553
  private applyBootstrapHydration;
11199
13554
  private materializeDerivedState;
13555
+ private validateComposition;
11200
13556
  private createDerivedDiagnostic;
11201
13557
  private clonePreviewWidgets;
11202
13558
  private cloneJson;
11203
13559
  private extractDerivedNodeKey;
11204
13560
  private appendDiagnosticTraceEntries;
13561
+ private createNestedWidgetEventBridgeDiagnostics;
11205
13562
  }
11206
13563
 
11207
13564
  interface CompositionRuntimeFacadeOptions {
@@ -11292,7 +13649,12 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11292
13649
  pageIdentity?: PageIdentity;
11293
13650
  /** Optional instance key for pages rendered multiple times. */
11294
13651
  componentInstanceId?: string;
13652
+ /** Enables a contextual authoring assistant entrypoint for the selected widget. */
13653
+ showWidgetAssistantButton: boolean;
11295
13654
  pageChange: EventEmitter<WidgetPageDefinition>;
13655
+ widgetEvent: EventEmitter<WidgetEventEnvelope>;
13656
+ widgetSelectionChange: EventEmitter<string | null>;
13657
+ widgetAssistantRequested: EventEmitter<string>;
11296
13658
  widgetDiagnosticsChange: EventEmitter<Record<string, WidgetResolutionDiagnostic>>;
11297
13659
  widgets: i0.WritableSignal<WidgetInstance[]>;
11298
13660
  renderedGroups: i0.WritableSignal<RenderedWidgetGroup[]>;
@@ -11311,7 +13673,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11311
13673
  private pageColumnCount;
11312
13674
  private activeTabs;
11313
13675
  private widgetDiagnostics;
11314
- private selectedCanvasWidgetKey;
13676
+ private selectedWidgetKey;
11315
13677
  private blockedCanvasWidgetKey;
11316
13678
  private canvasPreviewState;
11317
13679
  private canvasPreviewInvalidState;
@@ -11322,6 +13684,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11322
13684
  private persistenceReady;
11323
13685
  private warnedMissingKey;
11324
13686
  private runtimeEventSequence;
13687
+ private readonly widgetShellRenderCache;
11325
13688
  private readonly compositionFactory;
11326
13689
  private readonly compositionRuntime;
11327
13690
  private compositionDefinition?;
@@ -11333,6 +13696,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11333
13696
  private readonly route;
11334
13697
  private readonly conn;
11335
13698
  private readonly stateRuntime;
13699
+ private readonly nestedWidgetAccessor;
11336
13700
  private readonly settingsPanel;
11337
13701
  private readonly defaultShellEditor;
11338
13702
  private readonly defaultPageEditor;
@@ -11341,37 +13705,92 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11341
13705
  ngOnChanges(changes: SimpleChanges): void;
11342
13706
  onWidgetEvent(fromKey: string, evt: WidgetEventEnvelope): void;
11343
13707
  private applyWidgetInputPatchToPage;
13708
+ private resolveWidgetInputPatchNestedPath;
11344
13709
  private extractWidgetInputPatch;
11345
13710
  private buildStateRuntime;
11346
13711
  private bootstrapCompositionAdapter;
11347
13712
  private applyEditShellActions;
11348
- private withShellActions;
11349
13713
  private applyBootstrapCompositionHydration;
13714
+ private applyRecordRelatedSurfaceAiContext;
13715
+ private buildRecordRelatedSurfacesBySource;
13716
+ private isTableRowClickToStateLink;
13717
+ private isStateToTableQueryContextLink;
13718
+ private resolveRecordSurfaceId;
13719
+ private resolveRecordSurfaceLabel;
13720
+ private resolveRecordSurfaceTabLabel;
13721
+ private humanizeRecordSurfaceLabel;
13722
+ private resolveRecordSurfaceChildWidgetKey;
13723
+ private recordSurfaceSourceKey;
13724
+ private recordSurfaceNestedPathSignature;
13725
+ private parseRecordSurfaceNestedPathSignature;
13726
+ private stringOrNull;
13727
+ private isRecord;
13728
+ private maybeOpenRecordRelatedSurface;
13729
+ private applyRecordSurfaceSourceState;
13730
+ private findRecordSurfaceTabIndex;
13731
+ private shouldMaterializeSelectedIndexInput;
11350
13732
  private reportStateDiagnostics;
11351
13733
  private dispatchWidgetEventToComposition;
13734
+ private matchesRuntimeSourceRef;
13735
+ private matchesLegacyWidgetEventSource;
13736
+ private areNestedPathsEqual;
11352
13737
  private stateFromCompositionSnapshot;
11353
13738
  private applyCompositionWidgetDeliveries;
13739
+ private executeCompositionGlobalActionDeliveries;
13740
+ private resolveCompositionGlobalActionRef;
11354
13741
  private buildStateContext;
11355
13742
  private cloneStateValues;
11356
13743
  private cloneGrouping;
11357
13744
  private resolveShellTemplates;
13745
+ private enrichRuntimeWidgetInputs;
13746
+ private buildRichContentHostCapabilities;
13747
+ private dispatchRichContentAction;
13748
+ private isRichContentActionAvailable;
13749
+ private hasRichContentCapability;
11358
13750
  private resolveComponentBindingPath;
11359
13751
  private buildRuntimeEventId;
11360
- private shouldInjectEditShellActions;
11361
- private canOpenWidgetShellSettings;
13752
+ canOpenWidgetShellSettings(): boolean;
13753
+ canOpenWidgetComponentSettings(key: string): boolean;
13754
+ componentSettingsLabel(): string;
13755
+ componentSettingsTooltip(): string;
13756
+ widgetSettingsLabel(): string;
13757
+ widgetSettingsTooltip(): string;
13758
+ widgetAssistantLabel(): string;
13759
+ widgetAssistantTooltip(): string;
13760
+ requestWidgetAssistant(widgetKey: string): void;
13761
+ widgetRemoveLabel(): string;
13762
+ moreWidgetActionsLabel(): string;
13763
+ widgetContextToolbarLabel(widgetKey: string): string;
13764
+ widgetContextLabel(widget: WidgetInstance): string;
13765
+ widgetContextTooltip(widget: WidgetInstance): string;
13766
+ shouldRenderWidgetContextOverlay(widget: WidgetInstance): boolean;
13767
+ widgetShellForRender(widget: WidgetInstance): WidgetShellConfig | null | undefined;
13768
+ private resolveWidgetDisplayName;
13769
+ private shouldProjectWidgetHeaderActions;
13770
+ private hasVisibleWidgetShellHeader;
13771
+ private hasVisibleShellActions;
13772
+ private hasVisibleWindowActions;
13773
+ private buildProjectedWidgetShellActions;
13774
+ private widgetShellActionSignature;
13775
+ private isVisibleShellAction;
11362
13776
  private areStateValuesEqual;
11363
13777
  onWidgetDiagnostic(widgetKey: string, diagnostic: WidgetResolutionDiagnostic): void;
11364
13778
  onShellAction(fromKey: string, evt: WidgetShellActionEvent): void;
11365
13779
  private handleSetInputCommand;
11366
13780
  private mergeOrder;
11367
13781
  private maybeExecuteMappedAction;
11368
- private maybeExecuteGlobalCommand;
11369
13782
  private resolveActionPayload;
11370
13783
  private resolveTemplate;
11371
13784
  private lookup;
11372
13785
  openWidgetShellSettings(key: string): void;
11373
13786
  openWidgetComponentSettings(key: string): void;
11374
13787
  private applyWidgetComponentInputs;
13788
+ confirmAndRemoveWidget(widgetKey: string): Promise<void>;
13789
+ removeSelectedWidget(): void;
13790
+ removeSelectedCanvasWidget(): void;
13791
+ private removeWidgetReferences;
13792
+ private linkReferencesWidget;
13793
+ private endpointReferencesWidget;
11375
13794
  openPageSettings(): void;
11376
13795
  private applyWidgetShell;
11377
13796
  private applyPageLayout;
@@ -11387,6 +13806,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11387
13806
  private ensurePageDefinition;
11388
13807
  private parsePage;
11389
13808
  private resolvePagePresets;
13809
+ private resolveLayoutPresetDefinition;
11390
13810
  private mergeLayout;
11391
13811
  private applyResponsivePresentation;
11392
13812
  private resolveEffectivePresentation;
@@ -11395,8 +13815,14 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11395
13815
  private resolveDeviceKind;
11396
13816
  isCanvasMode(): boolean;
11397
13817
  shouldAutoWireOutputs(widget: WidgetInstance | RenderedWidgetInstance): boolean;
11398
- selectCanvasWidget(widgetKey: string): void;
13818
+ private hasCompositionOutputLinks;
13819
+ selectWidget(widgetKey: string): void;
13820
+ selectWidgetFromHostEvent(widgetKey: string, event: Event): void;
11399
13821
  isCanvasWidgetSelected(widgetKey: string): boolean;
13822
+ isWidgetSelected(widgetKey: string): boolean;
13823
+ private shouldPreserveInnerWidgetInteraction;
13824
+ selectCanvasWidget(widgetKey: string): void;
13825
+ getPageSnapshot(): WidgetPageDefinition;
11400
13826
  isCanvasWidgetBlocked(widgetKey: string): boolean;
11401
13827
  canvasPreviewItem(): WidgetPageCanvasItem | null;
11402
13828
  canvasPreviewGridColumn(): string | null;
@@ -11409,6 +13835,8 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11409
13835
  private applyWidgetLayoutOverrides;
11410
13836
  private applyCanvasLayoutToWidgets;
11411
13837
  private startCanvasInteraction;
13838
+ private cancelCanvasInteractionForWidget;
13839
+ private isCanvasOverlayInteraction;
11412
13840
  private currentCanvasMetrics;
11413
13841
  private currentCanvasItem;
11414
13842
  private resolveCanvasInteractionDelta;
@@ -11445,6 +13873,8 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11445
13873
  private cloneWidgets;
11446
13874
  private applyGroupingOverrides;
11447
13875
  private buildRenderedGroups;
13876
+ private buildSlotWidgetMap;
13877
+ private resolveGroupWidgets;
11448
13878
  private syncActiveTabs;
11449
13879
  activeTabId(groupId: string): string;
11450
13880
  selectGroupTab(groupId: string, tabId: string): void;
@@ -11466,7 +13896,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
11466
13896
  private sanitizeSegment;
11467
13897
  private assertNoLegacyConnections;
11468
13898
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetPageComponent, never>;
11469
- static ɵcmp: i0.ɵɵComponentDeclaration<DynamicWidgetPageComponent, "praxis-dynamic-page", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showPageSettingsButton": { "alias": "showPageSettingsButton"; "required": false; }; "shellEditorComponent": { "alias": "shellEditorComponent"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; }, { "pageChange": "pageChange"; "widgetDiagnosticsChange": "widgetDiagnosticsChange"; }, never, never, true, never>;
13899
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicWidgetPageComponent, "praxis-dynamic-page", never, { "page": { "alias": "page"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showPageSettingsButton": { "alias": "showPageSettingsButton"; "required": false; }; "shellEditorComponent": { "alias": "shellEditorComponent"; "required": false; }; "pageEditorComponent": { "alias": "pageEditorComponent"; "required": false; }; "autoPersist": { "alias": "autoPersist"; "required": false; }; "pageIdentity": { "alias": "pageIdentity"; "required": false; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "showWidgetAssistantButton": { "alias": "showWidgetAssistantButton"; "required": false; }; }, { "pageChange": "pageChange"; "widgetEvent": "widgetEvent"; "widgetSelectionChange": "widgetSelectionChange"; "widgetAssistantRequested": "widgetAssistantRequested"; "widgetDiagnosticsChange": "widgetDiagnosticsChange"; }, never, never, true, never>;
11470
13900
  }
11471
13901
 
11472
13902
  /** Metadata for Praxis Dynamic Page component */
@@ -11476,7 +13906,7 @@ declare const PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA: ComponentDocMeta;
11476
13906
  */
11477
13907
  declare function providePraxisDynamicPageMetadata(): Provider;
11478
13908
 
11479
- declare class PraxisSurfaceHostComponent {
13909
+ declare class PraxisSurfaceHostComponent implements AfterViewInit, OnChanges {
11480
13910
  title?: string;
11481
13911
  subtitle?: string;
11482
13912
  icon?: string;
@@ -11488,6 +13918,11 @@ declare class PraxisSurfaceHostComponent {
11488
13918
  * modal/drawer hosts. Inline consumers may opt into rendering it again.
11489
13919
  */
11490
13920
  renderTitleInsideBody: boolean;
13921
+ private widgetLoader?;
13922
+ private renderQueued;
13923
+ ngAfterViewInit(): void;
13924
+ ngOnChanges(changes: SimpleChanges): void;
13925
+ private scheduleWidgetRender;
11491
13926
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisSurfaceHostComponent, never>;
11492
13927
  static ɵcmp: i0.ɵɵComponentDeclaration<PraxisSurfaceHostComponent, "praxis-surface-host", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "widget": { "alias": "widget"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "renderTitleInsideBody": { "alias": "renderTitleInsideBody"; "required": false; }; }, {}, never, never, true, never>;
11493
13928
  }
@@ -11611,7 +14046,7 @@ declare function normalizeFormConfig(config: FormConfig): FormConfig;
11611
14046
 
11612
14047
  /** Minimal metadata about the backend schema source. */
11613
14048
  interface SchemaMetaInfo {
11614
- /** API path used to resolve the schema (e.g., /api/employees/all or /filter) */
14049
+ /** API path used to resolve the schema (e.g., /api/employees/filter) */
11615
14050
  path: string;
11616
14051
  /** Operation used when fetching the schema (get|post) */
11617
14052
  operation: string;
@@ -11685,6 +14120,12 @@ interface SchemaIdParams {
11685
14120
  }
11686
14121
  declare function normalizePath(p: string): string;
11687
14122
  declare function buildSchemaId(params: SchemaIdParams): string;
14123
+ /**
14124
+ * Produces a deterministic, storage-safe segment for places that impose short
14125
+ * identifier limits. This must not replace the semantic schemaId stored in
14126
+ * payloads or metadata.
14127
+ */
14128
+ declare function buildSchemaIdStorageKeySegment(schemaId: string): string;
11688
14129
 
11689
14130
  interface FetchWithEtagParams {
11690
14131
  url: string;
@@ -11864,5 +14305,5 @@ declare function provideFormHookPresets(presets: Array<FormHookPreset>): Provide
11864
14305
  /** Register a whitelist of allowed hook ids/patterns. */
11865
14306
  declare function provideHookWhitelist(allowed: Array<string | RegExp>): Provider[];
11866
14307
 
11867
- export { API_CONFIG_STORAGE_OPTIONS, API_URL, ASYNC_CONFIG_STORAGE, AllowedFileTypes, AnalyticsPresentationResolver, AnalyticsSchemaContractService, AnalyticsStatsRequestBuilderService, ApiConfigStorage, ApiEndpoint, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, BUILTIN_SHELL_PRESETS, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, CompositionRuntimeFacade, ConsoleLoggerSink, CrudOperationResolutionService, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_JSON_LOGIC_OPERATORS, DEFAULT_TABLE_CONFIG, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DynamicFormService, DynamicWidgetLoaderDirective, DynamicWidgetPageComponent, EDITORIAL_ALLOWED_CONTENT_FORMATS, EDITORIAL_COMPLIANCE_PRESETS, EDITORIAL_EXTERNAL_LINK_REL, EDITORIAL_FORM_TEMPLATE_CATALOG, EDITORIAL_HTML_ENABLED, EDITORIAL_MARKDOWN_IMAGES_ENABLED, EDITORIAL_SOLUTION_CATALOG, EDITORIAL_SOLUTION_PRESETS, EDITORIAL_THEME_PRESETS, EDITORIAL_WIDGET_CONVENTION_INPUTS, EDITORIAL_WIDGET_TAG, EMPLOYEE_ONBOARDING_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE, EVENT_REGISTRATION_EDITORIAL_SOLUTION, EVENT_REGISTRATION_EDITORIAL_TEMPLATE, EmptyStateCardComponent, ErrorMessageService, FIELD_METADATA_CAPABILITIES, FIELD_SELECTOR_REGISTRY_BASE, FIELD_SELECTOR_REGISTRY_DISABLE_DEFAULTS, FIELD_SELECTOR_REGISTRY_OVERRIDES, FORM_HOOKS, FORM_HOOKS_PRESETS, FORM_HOOKS_WHITELIST, FORM_HOOK_RESOLVERS, FieldControlType, FieldDataType, FieldSelectorRegistry, FormHooksRegistry, GLOBAL_ACTION_CATALOG$1 as GLOBAL_ACTION_CATALOG, GLOBAL_ACTION_HANDLERS, GLOBAL_ACTION_CATALOG as GLOBAL_ACTION_SPEC_CATALOG, GLOBAL_ACTION_UI_SCHEMAS, GLOBAL_ANALYTICS_SERVICE, GLOBAL_API_CLIENT, GLOBAL_CONFIG, GLOBAL_DIALOG_SERVICE, GLOBAL_ROUTE_GUARD_RESOLVER, GLOBAL_SURFACE_SERVICE, GLOBAL_TOAST_SERVICE, GenericCrudService, GlobalActionService, GlobalConfigService, INLINE_FILTER_ALIAS_TOKENS, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_SET, INLINE_FILTER_CONTROL_TYPE_VALUES, INLINE_FILTER_TOKEN_TO_BASE_CONTROL_TYPE, INLINE_FILTER_TOKEN_TO_CONTROL_TYPE, IconPickerService, IconPosition, IconSize, LOGGER_LEVEL_BY_ENV, LOGGER_LEVEL_PRIORITY, LoadingOrchestrator, LocalConnectionStorage, LocalStorageAsyncAdapter, LocalStorageCacheAdapter, LocalStorageConfigService, LoggerService, LoggerThrottleTracker, LoggerWarnOnceTracker, MemoryCacheAdapter, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_FOOTER_LINKS_METADATA, PRAXIS_GLOBAL_ACTION_CATALOG, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_OPTIONS, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_READY, PRAXIS_GLOBAL_CONFIG_TENANT_RESOLVER, PRAXIS_HERO_BANNER_METADATA, PRAXIS_I18N_CONFIG, PRAXIS_I18N_TRANSLATOR, PRAXIS_JSON_LOGIC_OPERATORS, PRAXIS_LAYER_SCALE_DEFAULTS, PRAXIS_LAYER_SCALE_VARS, PRAXIS_LEGAL_NOTICE_METADATA, PRAXIS_LOADING_CTX, PRAXIS_LOADING_RENDERER, PRAXIS_LOGGER_CONFIG, PRAXIS_LOGGER_SINKS, PRAXIS_OBSERVABILITY_DASHBOARD_OPTIONS, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisI18nService, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRichTextBlockComponent, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RemoteConfigStorage, ResourceActionOpenAdapterService, ResourceDiscoveryService, ResourceQuickConnectComponent, ResourceSurfaceOpenAdapterService, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SURFACE_DRAWER_BRIDGE, SURFACE_OPEN_I18N_CONFIG, SURFACE_OPEN_I18N_NAMESPACE, SURFACE_OPEN_PRESETS, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, SurfaceBindingRuntimeService, SurfaceOpenActionEditorComponent, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$1 as applyLocalCustomizations, applyLocalCustomizations as applyLocalFormCustomizations, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisLayerScaleCss, buildSchemaId, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createEmptyRichContentDocument, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getGlobalActionCatalog, getGlobalActionUiSchema, getReferencedFieldMetadata, getTextTransformer, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isInlineFilterControlType, isRangeValidForFilter, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldConstraints, normalizeFormConfig, normalizeFormMetadata, normalizePath, normalizePraxisDataQueryContext, normalizeResourceAvailabilityReasonCode, normalizeStart, normalizeUnknownError, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisDynamicPageMetadata, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisIconDefaults, providePraxisJsonLogicOperator, providePraxisJsonLogicOperatorOverride, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, removeDiacritics, reportTelemetryHookFactory, requiredCheckedValidator, resolveBuiltinPresets, resolveControlTypeAlias, resolveDefaultValuePresentationFormat, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisFilterCriteria, resolveResourceAvailabilityReasonKey, resolveSpan, resolveValuePresentation, resolveValuePresentationLocale, slugify, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, withMessage, withPraxisHttpLoading };
11868
- export type { AccessibilityConfig, ActionDefinition, ActionMessagesConfig, AiCapability, AiCapabilityCatalog, AiCapabilityCategory, AiCapabilityCategoryMap, AiConcept, AiConceptPack, AiValueKind, AnalyticsIntent, AnalyticsPresentationDecision, AnalyticsPresentationFamily, AnalyticsPresentationResolverOptions, AnalyticsSchemaContractRequest, AnalyticsSourceKind, AnalyticsStatsGranularity, AnalyticsStatsMetricOperation, AnalyticsStatsOperation, AnalyticsStatsOrderBy, AnimationConfig, AnnouncementConfig, ApiConfigStorageOptions, ApiUrlConfig, ApiUrlEntry, AsyncConfigStorage, BackConfig, BaseMaterialInputMetadata, BatchDeleteOptions, BatchDeleteProgress, BatchDeleteResult, BorderConfig, Breakpoint, BuiltValidators, BulkAction, BulkActionsConfig, CacheAdapter, CacheConfig, CacheEntry, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColorConfig, ColumnAlign, ColumnDefinition, ColumnHidden, ColumnOffset, ColumnOrder, ColumnSpan, ComponentActionParam, ComponentContextAction, ComponentContextOption, ComponentContextOptionMode, ComponentContextOptionsByPathEntry, ComponentContextPack, ComponentDocMeta, ComponentEditorialResolveOptions, ComponentKeyParams, ComponentMergePatch, ComponentMetadata, ComponentMetadataEditorialBindingDescriptor, ComponentMetadataEditorialDescriptor, ComponentPortEndpointRef, CompositionLink, CompositionRuntimeFacadeOptions, ConditionalValidationRule, ConfigMetadata, ConfigStorage, ConfirmationConfig, ConnectionConfigV1, ConnectionStorage, ContextAction, ContextActionsConfig, BackConfig as CoreBackConfig, CoreFieldMetadata, CorePresetDescriptor, CorePresetDiscoveryRegistry, CorePresetKind, CorePresetRef, CrudConfigureOptions, CrudOperationOptions, CrudOperationResolutionContext, CsvExportConfig, CurrencyLocaleConfig, CursorPage, CursorRequest, CustomizationLog, DataConfig, DataTransformation, DataValidationConfig, DateRangePreset, DateRangeValue, DateTimeLocaleConfig, DebounceConfig, DeviceKind, DiagnosticPhase, DiagnosticRecord, DiagnosticSeverity, DiagnosticSource, DiagnosticSubjectKind, DiagnosticSubjectRef, DraggingConfig, Capability as DynamicPageCapability, CapabilityCatalog as DynamicPageCapabilityCatalog, CapabilityCategory as DynamicPageCapabilityCategory, ValueKind as DynamicPageValueKind, EditorialBlock, EditorialBlockBase, EditorialBlockKind, EditorialBlockOverride, EditorialBlockSurface, EditorialBlockTone, EditorialBlockVisibilityRule, EditorialCompliancePreset, EditorialComponentDocMeta, EditorialConnectorStyle, EditorialContentFormat, EditorialContextFieldContract, EditorialContextSummaryBlock, EditorialCustomWidgetBlock, EditorialDataCollectionBlock, EditorialDensity, EditorialFaqAccordionBlock, EditorialFaqItem, EditorialFormCompliancePreset, EditorialFormShellPreset, EditorialFormTemplate, EditorialFormTemplateBuildOptions, EditorialFormTemplateContextField, EditorialFormTemplateDefaults, EditorialFormTemplateLayoutPreset, EditorialFormTemplateMetadata, EditorialFormTemplateReference, EditorialHeroBlock, EditorialIconSpec, EditorialInfoCardItem, EditorialInfoCardsBlock, EditorialIntroHeroBlock, EditorialIntroHeroHighlightItem, EditorialJourney, EditorialJourneyOverride, EditorialJourneyStep, EditorialLayoutConfig, EditorialLayoutSpacing, EditorialLinkDefinition, EditorialLinkItem, EditorialMetaItem, EditorialMotionConfig, EditorialOrientation, EditorialPolicyItem, EditorialPolicyListBlock, EditorialPresentationShellVariant, EditorialPresentationalAction, EditorialPresentationalVisibilityRule, EditorialProblemType, EditorialResponsiveLayoutConfig, EditorialReviewField, EditorialReviewSection, EditorialReviewSectionField, EditorialReviewSectionsBlock, EditorialReviewSummaryBlock, EditorialRichTextBlock, EditorialSelectionCardItem, EditorialSelectionCardsBlock, EditorialShellVariant, EditorialSolutionDefinition, EditorialSolutionPreset, EditorialStepKind, EditorialStepVisualConfig, EditorialStepVisualVariant, EditorialStepperConfig, EditorialStepperVariant, EditorialSuccessPanelBlock, EditorialSurfaceVariant, EditorialTemplateInstance, EditorialTemplateInstanceOverrides, EditorialTemplateRef, EditorialTemplateSource, EditorialThemeBorderWidthTokens, EditorialThemeColorTokens, EditorialThemePreset, EditorialThemeRadiusTokens, EditorialThemeShadowTokens, EditorialThemeTokens, EditorialThemeTypographyTokens, EditorialTimelineStep, EditorialTimelineStepsBlock, EditorialWidgetAppearance, EditorialWidgetDefinition, EditorialWidgetInputs, EditorialWizardPresentation, ElevationConfig, EmptyAction, EmptyStateConfig, EndpointConfig, EndpointRef, EnhancedValidationConfig, ExcelExportConfig, ExcelStylingConfig, ExplicitCrudResolutionContract, ExportConfig, ExportFormat, ExportMessagesConfig, ExportTemplate, FetchWithEtagParams, FetchWithEtagResult, FieldConflict, FieldDefinition, FieldMetadata, FieldModification, FieldOption, FieldSelectorRegistryMap, FieldsetLayout, FilterOptions, FilteringConfig, FooterLinksAppearance, FooterLinksLayout, FormActionButton, FormActionConfirmationEvent, FormActionsLayout, FormApiLayout, FormBehaviorLayout, FormColumn, FormConfig, FormConfigMetadata, FormConfigState, FormCustomActionEvent, FormEntityEvent, FormHook, FormHookContext, FormHookDeclaration, FormHookDeclarationLite, FormHookOutcome, FormHookPreset, FormHookPresetMatch, FormHookStage, FormHookStatus, FormHooksLayout, FormInitializationError, FormLayout, FormLayoutRule, FormMessagesLayout, FormMetadataLayout, FormModeHints, FormOpenMode, FormReadyEvent, FormRow, FormRowLayout, FormRuleTargetType, FormSection, FormSectionHeaderAction, FormSectionHeaderConfig, FormSectionHeaderEmptyState, FormSectionHeaderMode, FormSectionHeaderSize, FormSubmitEvent, FormValidationEvent, FormValueChangeEvent, FormattingLocaleConfig, GeneralExportConfig, GetSchemaParams, GlobalActionCatalogEntry, GlobalActionContext, GlobalActionField, GlobalActionFieldOption, GlobalActionFieldType, GlobalActionHandler, GlobalActionHandlerEntry, GlobalActionId, GlobalActionParam, GlobalActionResult, GlobalActionSpec, GlobalActionUiSchema, GlobalAiConfig, GlobalAiEmbeddingConfig, GlobalAiProvider, GlobalAnalyticsService, GlobalApiClient, GlobalCacheConfig, GlobalConfig, GlobalCrudActionDefaults, GlobalCrudConfig, GlobalCrudDefaults, GlobalDialogAction, GlobalDialogAnimation, GlobalDialogAriaRole, GlobalDialogConfig, GlobalDialogConfigEntry, GlobalDialogPosition, GlobalDialogService, GlobalDialogStyles, GlobalDynamicFieldsAsyncSelectConfig, GlobalDynamicFieldsCascadeConfig, GlobalDynamicFieldsConfig, GlobalI18nConfig, GlobalRouteGuardResolver, GlobalSurfaceService, GlobalTableConfig, GlobalToastService, HateoasLink, HeroBadge, HeroBadgeTone, HeroBannerAppearance, HeroBannerVariant, HeroMetaItem, HookResolver, InlineFilterControlType, InlineMonthRangeMetadata, InlinePeriodRangeFiscalCalendar, InlinePeriodRangeGranularity, InlinePeriodRangeMetadata, InlinePeriodRangePreset, InlineRangeDistributionBin, InlineRangeDistributionConfig, InlineYearRangeMetadata, InteractionConfig, JsonExportConfig, JsonLogicArguments, JsonLogicArray, JsonLogicDataRecord, JsonLogicDerivedValueExpression, JsonLogicExpression, JsonLogicOperationExpression, JsonLogicPrimitive, JsonLogicRecord, JsonLogicValue, JsonLogicVarExpression, JsonLogicVarReference, KeyboardAccessibilityConfig, LazyLoadingConfig, LegacyCompositionLinkInput, LegacyLinkCondition, LegacyLinkMetaPolicy, LegacyTableConfig, LegalNoticeAppearance, LegalNoticeSeverity, LinkIntent, LinkMetadata, LinkPolicy, LoadingConfig, LoadingContext, LoadingPhase$1 as LoadingPhase, LoadingScope, LoadingState, LoadingPhase as LoadingStatePhase, LocalizationConfig, LocateRequest, LoggerConfig, LoggerContext, LoggerEvent, LoggerLevel, LoggerLogOptions, LoggerNormalizedError, LoggerPIIConfig, LoggerSink, LoggerTelemetryPayload, LoggerThrottleConfig, MarginConfig, MaterialAutocompleteMetadata, MaterialButtonMetadata, MaterialButtonToggleMetadata, MaterialCheckboxMetadata, MaterialChipsMetadata, MaterialColorInputMetadata, MaterialColorPickerMetadata, MaterialCpfCnpjMetadata, MaterialCurrencyMetadata, MaterialDateInputMetadata, MaterialDateRangeMetadata, MaterialDatepickerMetadata, MaterialDatetimeLocalInputMetadata, MaterialDesignConfig, MaterialEmailInputMetadata, MaterialEmailMetadata, MaterialInputMetadata, MaterialMonthInputMetadata, MaterialMultiSelectTreeMetadata, MaterialNumericMetadata, MaterialPasswordMetadata, MaterialPhoneMetadata, MaterialPriceRangeMetadata, MaterialRadioMetadata, MaterialRangeSliderMetadata, MaterialRatingMetadata, MaterialSearchInputMetadata, MaterialSelectMetadata, MaterialSelectionListMetadata, MaterialSliderMetadata, MaterialTextareaMetadata, MaterialTimeInputMetadata, MaterialTimeRangeMetadata, MaterialTimeTrackShift, MaterialTimepickerMetadata, MaterialToggleMetadata, MaterialTransferListMetadata, MaterialTreeNode, MaterialTreeSelectMetadata, MaterialUrlInputMetadata, MaterialWeekInputMetadata, MaterialYearInputMetadata, MemoryConfig, MessageTemplate, MessagesConfig, NestedFieldsetLayout, NormalizedError, NumberLocaleConfig, ObservabilityAlert, ObservabilityAlertGroupBy, ObservabilityAlertRule, ObservabilityAlertSeverity, ObservabilityCountBucket, ObservabilityDashboardOptions, ObservabilityIngestInput, ObservabilityMetricsSnapshot, OptionDTO, OptionSourceMetadata, OptionSourceRequestOptions, OverlayDecider, OverlayDecision, OverlayDecisionContext, OverlayDecisionMatrix, OverlayPattern, OverlayRange, OverlayRule, OverlayRuleMatch, OverlayThresholds, Page, PageIdentity, PageableRequest, PaginationConfig, PartialFieldMetadata, PdfExportConfig, PerformanceConfig, PersistedPageConfig, PersistedPageDefinitionWithIds, PersistedWidgetInstance, PlainObject, PluginConfig, PollingConfig, PortCardinality, PortCompatibilityRuleSet, PortContract, PortDirection, PortExposure, PortSchemaKind, PortSchemaMode, PortSchemaRef, PortSemanticKind, PraxisAnalyticsBindings, PraxisAnalyticsDefaults, PraxisAnalyticsDimensionBinding, PraxisAnalyticsDistributionStatsRequest, PraxisAnalyticsExecutionMetric, PraxisAnalyticsGroupByStatsRequest, PraxisAnalyticsInteractions, PraxisAnalyticsMetricBinding, PraxisAnalyticsOptions, PraxisAnalyticsPresentationHints, PraxisAnalyticsProjection, PraxisAnalyticsSortRule, PraxisAnalyticsSource, PraxisAnalyticsStatsExecutionPlan, PraxisAnalyticsStatsMetricRequest, PraxisAnalyticsStatsRequest, PraxisAnalyticsTimeSeriesStatsRequest, PraxisAuthContext, PraxisBuiltinCustomRuleOperator, PraxisConditionalRule, PraxisConditionalRuleMatchInput, PraxisCustomRuleOperator, PraxisDataQueryContext, PraxisGlobalActionsOptions, PraxisGlobalConfigBootstrapOptions, PraxisHostRuleOperator, PraxisHttpLoadingOptions, PraxisI18nConfig, PraxisI18nDictionary, PraxisI18nMessageDescriptor, PraxisI18nNamespaceConfig, PraxisI18nNamespaceDictionary, PraxisI18nTranslator, PraxisIconDefaultsOptions, PraxisJsonLogicEvaluationContext, PraxisJsonLogicEvaluationOptions, PraxisJsonLogicEvaluationResult, PraxisJsonLogicIssueCode, PraxisJsonLogicOperatorDefinition, PraxisJsonLogicOperatorDescriptor, PraxisJsonLogicOperatorHelpers, PraxisJsonLogicOperatorMetadata, PraxisJsonLogicOperatorPurity, PraxisJsonLogicOperatorReturnType, PraxisJsonLogicOperatorSource, PraxisJsonLogicRuntimeValue, PraxisJsonLogicValidationIssue, PraxisJsonLogicValidationOptions, PraxisJsonLogicValidationResult, PraxisLayerScale, PraxisLoadingRenderer, PraxisLocale, PraxisLoggingEnvironment, PraxisLoggingOptions, PraxisNativeJsonLogicOperator, PraxisRuleContextDescriptor, PraxisRuleOperator, PraxisTextValue, PraxisToastOptions, PraxisTranslationParams, PraxisXUiAnalytics, PriceRangeValue, RangeSliderInlineTexts, RangeSliderQuickPreset, RangeSliderQuickPresetLabels, RangeSliderValue, RenderingConfig, ResizingConfig, ResolveCrudOperationRequest, ResolvePresetOptions, ResolvedComponentMetadataEditorialBinding, ResolvedComponentMetadataEditorialMeta, ResolvedCrudOperation, ResolvedCrudOperationSource, ResolvedValuePresentation, ResourceActionCatalogItem, ResourceActionCatalogResponse, ResourceActionOpenAdapterOptions, ResourceActionScope, ResourceAvailabilityDecision, ResourceCapabilityOperation, ResourceCapabilitySnapshot, ResourceCrudOperationId, ResourceDiscoveryRel, ResourceDiscoveryRequestOptions, ResourceLinkSource, ResourceSurfaceCatalogItem, ResourceSurfaceCatalogResponse, ResourceSurfaceKind, ResourceSurfaceOpenAdapterOptions, ResourceSurfaceScope, ResponsiveConfig, RestApiLinks, RestApiResponse, RichAvatarNode, RichBadgeNode, RichBlockBaseNode, RichBlockContextConfig, RichBlockContextScope, RichBlockHostCapabilities, RichBlockNode, RichBlockRuleSet, RichCardNode, RichComposeNode, RichContentDocument, RichIconNode, RichImageNode, RichMediaBlockNode, RichMetricNode, RichPresenterNode, RichPresetReferenceNode, RichPrimitiveNode, RichProgressNode, RichTextAppearance, RichTextNode, RichTextVariant, RichTimelineItem, RichTimelineNode, RowAction, RowActionsConfig, RuleContextRoot, RulePropertyDefinition, RulePropertySchema, RulePropertyType, RunHooksResult, RuntimeLinkSnapshot, RuntimeLinkStatus, RuntimePayloadSummary, RuntimeSnapshot, RuntimeSnapshotStatus, RuntimeStateSnapshot, RuntimeTraceEntry, RuntimeTracePhase, SchemaIdParams, SchemaMetaInfo, SchemaViewerContext, SelectionConfig, SerializableFieldMetadata, SettingsPanelBridge, SettingsPanelOpenContent, SettingsPanelOpenOptions, SettingsPanelRef, SettingsValueProvider, SortingConfig, SpacingConfig, StateEndpointRef, StateMessagesConfig, SurfaceBinding, SurfaceBindingMode, SurfaceDrawerBridge, SurfaceDrawerOpenContent, SurfaceDrawerOpenOptions, SurfaceDrawerRef, SurfaceDrawerResult, SurfaceDrawerWidthPreset, SurfaceOpenPayload, SurfaceOpenPreset, SurfacePresentation, SurfaceSizeConfig, SyncConfig, SyncResult, TableActionsConfig, TableAppearanceConfig, TableBehaviorConfig, TableConfig, TableConfigV2 as TableConfigModern, TableConfigState, TableConfigV2, TableDetailActionBarAction, TableDetailActionBarNode, TableDetailActionNode, TableDetailAllowedNode, TableDetailBaseNode, TableDetailCardGridCardNode, TableDetailCardGridNode, TableDetailCardNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, TableDetailEmbedBaseNode, TableDetailInlineSchemaDocument, TableDetailLayoutNode, TableDetailListItemAction, TableDetailListItemContextConfig, TableDetailListItemSchema, TableDetailListNode, TableDetailMediaBlockNode, TableDetailRefNode, TableDetailRichListNode, TableDetailRichTextNode, TableDetailSchemaNode, TableDetailTabNode, TableDetailTabsNode, TableDetailTemplateRefNode, TableDetailTimelineItemSchema, TableDetailTimelineNode, TableDetailTimelineStaticItem, TableDetailValueNode, TableExpansionConfig, TableLocalDataModeConfig, TelemetryEvent, TelemetryLoggerSinkOptions, TelemetryTransport, TextTransformApply, TextTransformName, ThemeConfig, ToolbarAction, ToolbarConfig, ToolbarFilterConfig, ToolbarLayoutConfig, ToolbarSettingsConfig, TransformBinding, TransformBindingSource, TransformCatalogCategory, TransformCatalogEntry, TransformKind, TransformLegacyReplacement, TransformOutputHint, TransformPhase, TransformPipeline, TransformSemanticKind, TransformStep, TypographyConfig, UserContextSource, UserContextSummaryAppearance, UserContextSummaryField, ValidationContext, ValidationError, ValidationMessagesConfig, ValidationResult, ValidationRule, ValidatorFunction, ValidatorOptions, ValueKind$1 as ValueKind, ValuePresentationConfig, ValuePresentationResolutionContext, ValuePresentationStyle, ValuePresentationType, VirtualizationConfig, WidgetDefinition, WidgetDerivedStateNode, WidgetEventEnvelope, WidgetEventPathSegment, WidgetInstance, WidgetPageCanvasCollisionPolicy, WidgetPageCanvasConstraints, WidgetPageCanvasItem, WidgetPageCanvasItemOverride, WidgetPageCanvasLayout, WidgetPageCanvasLayoutVariant, WidgetPageCompositionDefinition, WidgetPageDefinition, WidgetPageDeviceKind, WidgetPageDeviceLayouts, WidgetPageDevicePolicy, WidgetPageGroupingDefinition, WidgetPageGroupingOverride, WidgetPageGroupingTabDefinition, WidgetPageLayout, WidgetPageLayoutPresetDefinition, WidgetPageLayoutVariant, WidgetPageOrientation, WidgetPageSlotAssignments, WidgetPageSlotDefinition, WidgetPageStateDefinition, WidgetPageStateInput, WidgetPageStateRuntimeSnapshot, WidgetPageThemePresetDefinition, WidgetPageWidgetLayoutOverride, WidgetPageWidgetSuggestion, WidgetResolutionDiagnostic, WidgetResolutionPhase, WidgetShellAction, WidgetShellActionEvent, WidgetShellActionPlacement, WidgetShellBodyLayout, WidgetShellConfig, WidgetShellWindowActions, WidgetStateNode };
14308
+ export { API_CONFIG_STORAGE_OPTIONS, API_URL, ASYNC_CONFIG_STORAGE, AllowedFileTypes, AnalyticsPresentationResolver, AnalyticsSchemaContractService, AnalyticsStatsRequestBuilderService, ApiConfigStorage, ApiEndpoint, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, BUILTIN_SHELL_PRESETS, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, CompositionRuntimeFacade, ConsoleLoggerSink, CrudOperationResolutionService, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_JSON_LOGIC_OPERATORS, DEFAULT_TABLE_CONFIG, DOMAIN_CATALOG_COMPONENT_CONTEXT_PACK, DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DomainCatalogService, DomainKnowledgeService, DomainRuleService, DynamicFormService, DynamicWidgetLoaderDirective, DynamicWidgetPageComponent, EDITORIAL_ALLOWED_CONTENT_FORMATS, EDITORIAL_COMPLIANCE_PRESETS, EDITORIAL_EXTERNAL_LINK_REL, EDITORIAL_FORM_TEMPLATE_CATALOG, EDITORIAL_HTML_ENABLED, EDITORIAL_MARKDOWN_IMAGES_ENABLED, EDITORIAL_SOLUTION_CATALOG, EDITORIAL_SOLUTION_PRESETS, EDITORIAL_THEME_PRESETS, EDITORIAL_WIDGET_CONVENTION_INPUTS, EDITORIAL_WIDGET_TAG, EMPLOYEE_ONBOARDING_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE, EVENT_REGISTRATION_EDITORIAL_SOLUTION, EVENT_REGISTRATION_EDITORIAL_TEMPLATE, EmptyStateCardComponent, ErrorMessageService, FIELD_METADATA_CAPABILITIES, FIELD_SELECTOR_REGISTRY_BASE, FIELD_SELECTOR_REGISTRY_DISABLE_DEFAULTS, FIELD_SELECTOR_REGISTRY_OVERRIDES, FORM_HOOKS, FORM_HOOKS_PRESETS, FORM_HOOKS_WHITELIST, FORM_HOOK_RESOLVERS, FieldControlType, FieldDataType, FieldSelectorRegistry, FormHooksRegistry, GLOBAL_ACTION_CATALOG, GLOBAL_ACTION_HANDLERS, GLOBAL_ACTION_UI_SCHEMAS, GLOBAL_ANALYTICS_SERVICE, GLOBAL_API_CLIENT, GLOBAL_CONFIG, GLOBAL_DIALOG_SERVICE, GLOBAL_ROUTE_GUARD_RESOLVER, GLOBAL_SURFACE_SERVICE, GLOBAL_TOAST_SERVICE, GenericCrudService, GlobalActionService, GlobalConfigService, INLINE_FILTER_ALIAS_TOKENS, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_SET, INLINE_FILTER_CONTROL_TYPE_VALUES, INLINE_FILTER_TOKEN_TO_BASE_CONTROL_TYPE, INLINE_FILTER_TOKEN_TO_CONTROL_TYPE, IconPickerService, IconPosition, IconSize, LOGGER_LEVEL_BY_ENV, LOGGER_LEVEL_PRIORITY, LoadingOrchestrator, LocalConnectionStorage, LocalStorageAsyncAdapter, LocalStorageCacheAdapter, LocalStorageConfigService, LoggerService, LoggerThrottleTracker, LoggerWarnOnceTracker, MemoryCacheAdapter, NestedPortCatalogService, NestedWidgetConfigAccessor, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_COLLECTION_EXPORT_HTTP_OPTIONS, PRAXIS_COLLECTION_EXPORT_PROVIDER, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_EXPORT_SECURITY_POLICY, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_EXPORT_FORMULA_PREFIXES, PRAXIS_EXPORT_SECURITY_POLICY, PRAXIS_FOOTER_LINKS_METADATA, PRAXIS_GLOBAL_ACTION_CATALOG, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_OPTIONS, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_READY, PRAXIS_GLOBAL_CONFIG_TENANT_RESOLVER, PRAXIS_HERO_BANNER_METADATA, PRAXIS_I18N_CONFIG, PRAXIS_I18N_TRANSLATOR, PRAXIS_JSON_LOGIC_OPERATORS, PRAXIS_LAYER_SCALE_DEFAULTS, PRAXIS_LAYER_SCALE_VARS, PRAXIS_LEGAL_NOTICE_METADATA, PRAXIS_LOADING_CTX, PRAXIS_LOADING_RENDERER, PRAXIS_LOGGER_CONFIG, PRAXIS_LOGGER_SINKS, PRAXIS_OBSERVABILITY_DASHBOARD_OPTIONS, PRAXIS_QUERY_FILTER_EXPRESSION_SCHEMA_VERSION, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCollectionExportService, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisHttpCollectionExportProvider, PraxisI18nService, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRichTextBlockComponent, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RemoteConfigStorage, ResourceActionOpenAdapterService, ResourceDiscoveryService, ResourceQuickConnectComponent, ResourceSurfaceOpenAdapterService, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SURFACE_DRAWER_BRIDGE, SURFACE_OPEN_I18N_CONFIG, SURFACE_OPEN_I18N_NAMESPACE, SURFACE_OPEN_PRESETS, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, SurfaceBindingRuntimeService, SurfaceOpenActionEditorComponent, SurfaceOpenMaterializerService, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$1 as applyLocalCustomizations, applyLocalCustomizations as applyLocalFormCustomizations, assertPraxisCollectionExportArtifact, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisEffectDistinctKey, buildPraxisLayerScaleCss, buildSchemaId, buildSchemaIdStorageKeySegment, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, classifyEntityLookupResult, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createEmptyRichContentDocument, createFieldLayoutItem, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, domainKnowledgeTimelineToRichContentDocument, domainRuleTimelineToRichContentDocument, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, escapePraxisExportCell, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getFormColumnFieldNames, getFormLayoutFieldNames, getGlobalActionCatalog, getGlobalActionPayloadActualType, getGlobalActionPayloadTypeIssue, getGlobalActionUiSchema, getMissingGlobalActionPayloadKeys, getReferencedFieldMetadata, getRequiredGlobalActionPayloadKeys, getTextTransformer, hasMeaningfulGlobalActionPayloadValue, hasPraxisCollectionExportArtifact, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isEntityLookupMultiplePayloadMode, isEntityLookupPayloadMode, isEntityLookupPayloadModeCompatible, isEntityLookupResultSelectable, isEntityLookupSinglePayloadMode, isFormLayoutItem, isGlobalActionRef, isInlineFilterControlType, isLookupDialogSize, isLookupFilterFieldType, isLookupFilterOperator, isPraxisRuntimeGlobalActionEffect, isRangeValidForFilter, isRequiredGlobalActionParamPayloadMissing, isRequiredGlobalActionPayloadMissing, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldConstraints, normalizeFormConfig, normalizeFormLayoutItems, normalizeFormMetadata, normalizeGlobalActionRef, normalizeLookupFilterRequest, normalizePath, normalizePraxisDataQueryContext, normalizePraxisEffectPolicy, normalizePraxisQueryFilterExpression, normalizePraxisQueryFilterNode, normalizeResourceAvailabilityReasonCode, normalizeStart, normalizeUnknownError, normalizeWidgetEventPath, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisCollectionExportProvider, providePraxisDynamicPageMetadata, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpCollectionExportProvider, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisIconDefaults, providePraxisJsonLogicOperator, providePraxisJsonLogicOperatorOverride, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, readPraxisExportValue, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, removeDiacritics, reportTelemetryHookFactory, requiredCheckedValidator, resolveBuiltinPresets, resolveControlTypeAlias, resolveDefaultValuePresentationFormat, resolveEntityLookupPayloadMode, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisCollectionExportItems, resolvePraxisExportFields, resolvePraxisExportScope, resolvePraxisFilterCriteria, resolveResourceAvailabilityReasonKey, resolveSpan, resolveValuePresentation, resolveValuePresentationLocale, serializeEntityLookupValueForPayload, serializeOptionSourceFilterRequest, serializePraxisCollectionToCsv, serializePraxisCollectionToJson, slugify, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, validateGlobalActionRef, validateGlobalActionRefs, withMessage, withPraxisHttpLoading };
14309
+ export type { AccessibilityConfig, ActionDefinition, ActionMessagesConfig, AiCapability, AiCapabilityCatalog, AiCapabilityCategory, AiCapabilityCategoryMap, AiConcept, AiConceptPack, AiValueKind, AnalyticsIntent, AnalyticsPresentationDecision, AnalyticsPresentationFamily, AnalyticsPresentationResolverOptions, AnalyticsSchemaContractRequest, AnalyticsSourceKind, AnalyticsStatsGranularity, AnalyticsStatsMetricOperation, AnalyticsStatsOperation, AnalyticsStatsOrderBy, AnimationConfig, AnnouncementConfig, ApiConfigStorageOptions, ApiUrlConfig, ApiUrlEntry, AsyncConfigStorage, BackConfig, BaseMaterialInputMetadata, BatchDeleteOptions, BatchDeleteProgress, BatchDeleteResult, BorderConfig, Breakpoint, BuiltValidators, BulkAction, BulkActionsConfig, CacheAdapter, CacheConfig, CacheEntry, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColorConfig, ColumnAlign, ColumnDefinition, ColumnHidden, ColumnOffset, ColumnOrder, ColumnSpan, ComponentActionParam, ComponentAuthoringManifest, ComponentContextAction, ComponentContextOption, ComponentContextOptionMode, ComponentContextOptionsByPathEntry, ComponentContextPack, ComponentDocMeta, ComponentEditorialResolveOptions, ComponentKeyParams, ComponentMergePatch, ComponentMetadata, ComponentMetadataEditorialBindingDescriptor, ComponentMetadataEditorialDescriptor, ComponentPortEndpointRef, ComponentPortPathSegment, CompositionLink, CompositionRuntimeFacadeOptions, ConditionalValidationRule, ConfigMetadata, ConfigStorage, ConfirmationConfig, ConnectionConfigV1, ConnectionStorage, ContextAction, ContextActionsConfig, BackConfig as CoreBackConfig, CoreFieldMetadata, CorePresetDescriptor, CorePresetDiscoveryRegistry, CorePresetKind, CorePresetRef, CrudConfigureOptions, CrudOperationOptions, CrudOperationResolutionContext, CsvExportConfig, CurrencyLocaleConfig, CursorPage, CursorRequest, CustomizationLog, DataConfig, DataTransformation, DataValidationConfig, DateRangePreset, DateRangeValue, DateTimeLocaleConfig, DebounceConfig, DeviceKind, DiagnosticPhase, DiagnosticRecord, DiagnosticSeverity, DiagnosticSource, DiagnosticSubjectKind, DiagnosticSubjectRef, Domain360CatalogCoverage, Domain360CatalogDiagnostic, Domain360CatalogEntry, Domain360CatalogRequestOptions, Domain360CatalogResponse, Domain360CatalogRoute, DomainCatalogContextHint, DomainCatalogContextHintIntent, DomainCatalogContextHintItemType, DomainCatalogGovernanceContext, DomainCatalogGovernancePayload, DomainCatalogGovernanceRequestOptions, DomainCatalogItem, DomainCatalogRecommendedAuthoringFlow, DomainCatalogRecommendedRuleType, DomainCatalogRelationshipHint, DomainCatalogRelease, DomainCatalogRequestOptions, DomainCatalogResourceProbe, DomainKnowledgeAuthorType, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetFilters, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSetStatus, DomainKnowledgeChangeSetTarget, DomainKnowledgeChangeSetTimelineEventResponse, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeOperationType, DomainKnowledgePatchOperation, DomainKnowledgeRequestOptions, DomainKnowledgeSafeOperationSummary, DomainKnowledgeStatusTransitionRequest, DomainKnowledgeTimelineEventVisibility, DomainKnowledgeTimelineRichContentOptions, DomainKnowledgeValidationIssue, DomainKnowledgeValidationResponse, DomainKnowledgeValidationStatus, DomainRuleAppliedByType, DomainRuleCreatedByType, DomainRuleDecisionDiagnostics, DomainRuleDefinition, DomainRuleDefinitionFilters, DomainRuleDefinitionRequest, DomainRuleExplainability, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleMaterialization, DomainRuleMaterializationFilters, DomainRuleMaterializationOutcomeResolution, DomainRuleMaterializationRequest, DomainRulePublicationDiagnostics, DomainRulePublicationMaterializationOutcome, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleRequestOptions, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatus, DomainRuleStatusTransitionRequest, DomainRuleTargetLayer, DomainRuleTimelineEventResponse, DomainRuleTimelineEventVisibility, DomainRuleTimelineResponse, DomainRuleTimelineRichContentOptions, DraggingConfig, Capability as DynamicPageCapability, CapabilityCatalog as DynamicPageCapabilityCatalog, CapabilityCategory as DynamicPageCapabilityCategory, ValueKind as DynamicPageValueKind, EditorialBlock, EditorialBlockBase, EditorialBlockKind, EditorialBlockOverride, EditorialBlockSurface, EditorialBlockTone, EditorialBlockVisibilityRule, EditorialCompliancePreset, EditorialComponentDocMeta, EditorialConnectorStyle, EditorialContentFormat, EditorialContextFieldContract, EditorialContextSummaryBlock, EditorialCustomWidgetBlock, EditorialDataCollectionBlock, EditorialDensity, EditorialFaqAccordionBlock, EditorialFaqItem, EditorialFormCompliancePreset, EditorialFormShellPreset, EditorialFormTemplate, EditorialFormTemplateBuildOptions, EditorialFormTemplateContextField, EditorialFormTemplateDefaults, EditorialFormTemplateLayoutPreset, EditorialFormTemplateMetadata, EditorialFormTemplateReference, EditorialHeroBlock, EditorialIconSpec, EditorialInfoCardItem, EditorialInfoCardsBlock, EditorialIntroHeroBlock, EditorialIntroHeroHighlightItem, EditorialJourney, EditorialJourneyOverride, EditorialJourneyStep, EditorialLayoutConfig, EditorialLayoutSpacing, EditorialLinkDefinition, EditorialLinkItem, EditorialMetaItem, EditorialMotionConfig, EditorialOrientation, EditorialPolicyItem, EditorialPolicyListBlock, EditorialPresentationShellVariant, EditorialPresentationalAction, EditorialPresentationalVisibilityRule, EditorialProblemType, EditorialResponsiveLayoutConfig, EditorialReviewField, EditorialReviewSection, EditorialReviewSectionField, EditorialReviewSectionsBlock, EditorialReviewSummaryBlock, EditorialRichTextBlock, EditorialSelectionCardItem, EditorialSelectionCardsBlock, EditorialShellVariant, EditorialSolutionDefinition, EditorialSolutionPreset, EditorialStepKind, EditorialStepVisualConfig, EditorialStepVisualVariant, EditorialStepperConfig, EditorialStepperVariant, EditorialSuccessPanelBlock, EditorialSurfaceVariant, EditorialTemplateInstance, EditorialTemplateInstanceOverrides, EditorialTemplateRef, EditorialTemplateSource, EditorialThemeBorderWidthTokens, EditorialThemeColorTokens, EditorialThemePreset, EditorialThemeRadiusTokens, EditorialThemeShadowTokens, EditorialThemeTokens, EditorialThemeTypographyTokens, EditorialTimelineStep, EditorialTimelineStepsBlock, EditorialWidgetAppearance, EditorialWidgetDefinition, EditorialWidgetInputs, EditorialWizardPresentation, ElevationConfig, EmptyAction, EmptyStateConfig, EndpointConfig, EndpointRef, EnhancedValidationConfig, EntityLookupActionsMetadata, EntityLookupCollectionMetadata, EntityLookupDensity, EntityLookupDisplayFieldMetadata, EntityLookupDisplayFieldPresentation, EntityLookupDisplayMetadata, EntityLookupDisplayPreset, EntityLookupMultiplePayloadMode, EntityLookupPayloadMode, EntityLookupResult, EntityLookupResultExtra, EntityLookupResultLayout, EntityLookupResultState, EntityLookupResultStateContext, EntityLookupRichFieldMetadata, EntityLookupSelectedLayout, EntityLookupSinglePayloadMode, EntityLookupUsage, EntityRef, ExcelExportConfig, ExcelStylingConfig, ExplicitCrudResolutionContract, ExportConfig, ExportFormat, ExportMessagesConfig, ExportTemplate, FetchWithEtagParams, FetchWithEtagResult, FieldArrayCollectionValidation, FieldArrayConfig, FieldArrayOperations, FieldConflict, FieldDefinition, FieldMetadata, FieldModification, FieldOption, FieldSelectorRegistryMap, FieldSource, FieldSubmitPolicy, FieldsetLayout, FilterOptions, FilteringConfig, FooterLinksAppearance, FooterLinksLayout, FormActionButton, FormActionConfirmationEvent, FormActionsLayout, FormApiLayout, FormBehaviorLayout, FormColumn, FormConfig, FormConfigMetadata, FormConfigState, FormCustomActionEvent, FormEntityEvent, FormFieldLayoutItem, FormHook, FormHookContext, FormHookDeclaration, FormHookDeclarationLite, FormHookOutcome, FormHookPreset, FormHookPresetMatch, FormHookStage, FormHookStatus, FormHooksLayout, FormInitializationError, FormLayout, FormLayoutItem, FormLayoutItemsColumnLike, FormLayoutRule, FormMessagesLayout, FormMetadataLayout, FormModeHints, FormOpenMode, FormReadyEvent, FormRichContentLayoutItem, FormRow, FormRowLayout, FormRuleTargetType, FormSection, FormSectionHeaderAction, FormSectionHeaderConfig, FormSectionHeaderEmptyState, FormSectionHeaderMode, FormSectionHeaderSize, FormSubmitEvent, FormValidationEvent, FormValueChangeEvent, FormattingLocaleConfig, GeneralExportConfig, GetSchemaParams, GlobalActionCatalogEntry, GlobalActionContext, GlobalActionEndpointRef, GlobalActionField, GlobalActionFieldOption, GlobalActionFieldType, GlobalActionHandler, GlobalActionHandlerEntry, GlobalActionRef, GlobalActionResult, GlobalActionUiSchema, GlobalActionValidationCode, GlobalActionValidationIssue, GlobalActionValidationTarget, GlobalAiConfig, GlobalAiEmbeddingConfig, GlobalAiProvider, GlobalAnalyticsService, GlobalApiClient, GlobalCacheConfig, GlobalConfig, GlobalCrudActionDefaults, GlobalCrudConfig, GlobalCrudDefaults, GlobalDialogAction, GlobalDialogAnimation, GlobalDialogAriaRole, GlobalDialogConfig, GlobalDialogConfigEntry, GlobalDialogPosition, GlobalDialogService, GlobalDialogStyles, GlobalDynamicFieldsAsyncSelectConfig, GlobalDynamicFieldsCascadeConfig, GlobalDynamicFieldsConfig, GlobalI18nConfig, GlobalRouteGuardResolver, GlobalSurfaceService, GlobalTableConfig, GlobalToastService, GroupingConfig, HateoasLink, HeroBadge, HeroBadgeTone, HeroBannerAppearance, HeroBannerVariant, HeroMetaItem, HookResolver, InlineFilterControlType, InlineMonthRangeMetadata, InlinePeriodRangeFiscalCalendar, InlinePeriodRangeGranularity, InlinePeriodRangeMetadata, InlinePeriodRangePreset, InlineRangeDistributionBin, InlineRangeDistributionConfig, InlineYearRangeMetadata, InteractionConfig, JsonExportConfig, JsonLogicArguments, JsonLogicArray, JsonLogicDataRecord, JsonLogicDerivedValueExpression, JsonLogicExpression, JsonLogicOperationExpression, JsonLogicPrimitive, JsonLogicRecord, JsonLogicValue, JsonLogicVarExpression, JsonLogicVarReference, KeyboardAccessibilityConfig, LazyLoadingConfig, LegacyCompositionLinkInput, LegacyLinkCondition, LegacyLinkMetaPolicy, LegacyTableConfig, LegalNoticeAppearance, LegalNoticeSeverity, LinkIntent, LinkMetadata, LinkPolicy, LoadingConfig, LoadingContext, LoadingPhase$1 as LoadingPhase, LoadingScope, LoadingState, LoadingPhase as LoadingStatePhase, LocalizationConfig, LocateRequest, LoggerConfig, LoggerContext, LoggerEvent, LoggerLevel, LoggerLogOptions, LoggerNormalizedError, LoggerPIIConfig, LoggerSink, LoggerTelemetryPayload, LoggerThrottleConfig, LookupCapabilitiesMetadata, LookupCreateMetadata, LookupDetailMetadata, LookupDialogMetadata, LookupDialogSize, LookupFilterDefinitionMetadata, LookupFilterFieldType, LookupFilterOperator, LookupFilterRequest, LookupFilteringMetadata, LookupOpenDetailMode, LookupResultColumnKind, LookupResultColumnMetadata, LookupSelectionPolicyMetadata, LookupSortOptionMetadata, LookupStatusTone, ManifestControlProfile, ManifestControlProfileApplicability, ManifestDomainPatchHandlerContract, ManifestEffect, ManifestExample, ManifestInput, ManifestOperation, ManifestSubmissionImpact, ManifestTarget, ManifestValidator, MarginConfig, MaterialAutocompleteMetadata, MaterialButtonMetadata, MaterialButtonToggleMetadata, MaterialCheckboxMetadata, MaterialChipsMetadata, MaterialColorInputMetadata, MaterialColorPickerMetadata, MaterialCpfCnpjMetadata, MaterialCurrencyMetadata, MaterialDateInputMetadata, MaterialDateRangeMetadata, MaterialDatepickerMetadata, MaterialDatetimeLocalInputMetadata, MaterialDesignConfig, MaterialEmailInputMetadata, MaterialEmailMetadata, MaterialEntityLookupMetadata, MaterialInputMetadata, MaterialMonthInputMetadata, MaterialMultiSelectTreeMetadata, MaterialNumericMetadata, MaterialPasswordMetadata, MaterialPhoneMetadata, MaterialPriceRangeMetadata, MaterialRadioMetadata, MaterialRangeSliderMetadata, MaterialRatingMetadata, MaterialSearchInputMetadata, MaterialSelectMetadata, MaterialSelectionListMetadata, MaterialSliderMetadata, MaterialTextareaMetadata, MaterialTimeInputMetadata, MaterialTimeRangeMetadata, MaterialTimeTrackShift, MaterialTimepickerMetadata, MaterialToggleMetadata, MaterialTransferListMetadata, MaterialTreeNode, MaterialTreeSelectMetadata, MaterialUrlInputMetadata, MaterialWeekInputMetadata, MaterialYearInputMetadata, MemoryConfig, MessageTemplate, MessagesConfig, NavigationOpenRoutePayload, NestedFieldsetLayout, NestedPortCatalogDiagnostic, NestedPortCatalogRegistry, NestedPortCatalogResult, NestedWidgetInputPatchResult, NestedWidgetResolution, NormalizedError, NumberLocaleConfig, ObservabilityAlert, ObservabilityAlertGroupBy, ObservabilityAlertRule, ObservabilityAlertSeverity, ObservabilityCountBucket, ObservabilityDashboardOptions, ObservabilityIngestInput, ObservabilityMetricsSnapshot, OptionDTO, OptionSourceCachePolicy, OptionSourceFilterRequest, OptionSourceMetadata, OptionSourceRequestOptions, OptionSourceSearchMode, OptionSourceType, OverlayDecider, OverlayDecision, OverlayDecisionContext, OverlayDecisionMatrix, OverlayPattern, OverlayRange, OverlayRule, OverlayRuleMatch, OverlayThresholds, Page, PageIdentity, PageableRequest, PaginationConfig, PartialFieldMetadata, PdfExportConfig, PerformanceConfig, PersistedPageConfig, PersistedPageDefinitionWithIds, PersistedWidgetInstance, PlainObject, PluginConfig, PollingConfig, PortCardinality, PortCompatibilityRuleSet, PortContract, PortDirection, PortExposure, PortSchemaKind, PortSchemaMode, PortSchemaRef, PortSemanticKind, PraxisAnalyticsBindings, PraxisAnalyticsDefaults, PraxisAnalyticsDimensionBinding, PraxisAnalyticsDistributionStatsRequest, PraxisAnalyticsExecutionMetric, PraxisAnalyticsGroupByStatsRequest, PraxisAnalyticsInteractions, PraxisAnalyticsMetricBinding, PraxisAnalyticsOptions, PraxisAnalyticsPresentationHints, PraxisAnalyticsProjection, PraxisAnalyticsSortRule, PraxisAnalyticsSource, PraxisAnalyticsStatsExecutionPlan, PraxisAnalyticsStatsMetricRequest, PraxisAnalyticsStatsRequest, PraxisAnalyticsTimeSeriesStatsRequest, PraxisAuthContext, PraxisBuiltinCustomRuleOperator, PraxisCollectionComponentType, PraxisCollectionExportCsvOptions, PraxisCollectionExportExcelOptions, PraxisCollectionExportField, PraxisCollectionExportFieldPresentation, PraxisCollectionExportFormatOptions, PraxisCollectionExportHttpProviderOptions, PraxisCollectionExportLocalization, PraxisCollectionExportProvider, PraxisCollectionExportRequest, PraxisCollectionExportResult, PraxisCollectionExportSource, PraxisCollectionPaginationState, PraxisCollectionSelectionMode, PraxisCollectionSelectionState, PraxisCollectionSortDescriptor, PraxisConditionalEffectDiagnostic, PraxisConditionalRule, PraxisConditionalRuleMatchInput, PraxisCustomRuleOperator, PraxisDataQueryContext, PraxisDataQueryContextMeta, PraxisEffectDistinctKeyInput, PraxisEffectPolicy, PraxisExportFormat, PraxisExportScope, PraxisExportSecurityPolicy, PraxisExportSortDirection, PraxisGlobalActionsOptions, PraxisGlobalConfigBootstrapOptions, PraxisHostRuleOperator, PraxisHttpLoadingOptions, PraxisI18nConfig, PraxisI18nDictionary, PraxisI18nMessageDescriptor, PraxisI18nNamespaceConfig, PraxisI18nNamespaceDictionary, PraxisI18nTranslator, PraxisIconDefaultsOptions, PraxisJsonLogicEvaluationContext, PraxisJsonLogicEvaluationOptions, PraxisJsonLogicEvaluationResult, PraxisJsonLogicIssueCode, PraxisJsonLogicOperatorDefinition, PraxisJsonLogicOperatorDescriptor, PraxisJsonLogicOperatorHelpers, PraxisJsonLogicOperatorMetadata, PraxisJsonLogicOperatorPurity, PraxisJsonLogicOperatorReturnType, PraxisJsonLogicOperatorSource, PraxisJsonLogicRuntimeValue, PraxisJsonLogicValidationIssue, PraxisJsonLogicValidationOptions, PraxisJsonLogicValidationResult, PraxisLayerScale, PraxisLoadingRenderer, PraxisLocale, PraxisLoggingEnvironment, PraxisLoggingOptions, PraxisNativeJsonLogicOperator, PraxisQueryFilterExpression, PraxisQueryFilterGovernance, PraxisQueryFilterGroup, PraxisQueryFilterNode, PraxisQueryFilterPredicate, PraxisQueryFilterPredicateOperator, PraxisQueryFilterPredicateSource, PraxisRuleContextDescriptor, PraxisRuleOperator, PraxisRuntimeConditionalEffectRule, PraxisRuntimeEffectTrigger, PraxisRuntimeGlobalActionEffect, PraxisTextValue, PraxisToastOptions, PraxisTranslationParams, PraxisXUiAnalytics, PriceRangeValue, RangeSliderInlineTexts, RangeSliderMark, RangeSliderQuickPreset, RangeSliderQuickPresetLabels, RangeSliderScalePreset, RangeSliderSemanticBand, RangeSliderSemanticTone, RangeSliderTrackMode, RangeSliderValue, RangeSliderValueFormat, RangeSliderValueLabelDisplay, RecordRelatedSurfaceContext, RecordRelatedSurfaceContextPack, RecordRelatedSurfaceEndpoint, RecordRelatedSurfaceOperationId, RenderingConfig, ResizingConfig, ResolveCrudOperationRequest, ResolvePresetOptions, ResolvedComponentMetadataEditorialBinding, ResolvedComponentMetadataEditorialMeta, ResolvedCrudOperation, ResolvedCrudOperationSource, ResolvedNestedPort, ResolvedValuePresentation, ResourceActionCatalogItem, ResourceActionCatalogResponse, ResourceActionOpenAdapterOptions, ResourceActionScope, ResourceAvailabilityDecision, ResourceCapabilityDigest, ResourceCapabilityOperation, ResourceCapabilityOperationId, ResourceCapabilityOperations, ResourceCapabilitySnapshot, ResourceCrudOperationId, ResourceDiscoveryRel, ResourceDiscoveryRequestOptions, ResourceExportMaxRows, ResourceLinkSource, ResourceSurfaceCatalogItem, ResourceSurfaceCatalogResponse, ResourceSurfaceKind, ResourceSurfaceOpenAdapterOptions, ResourceSurfaceResponseCardinality, ResourceSurfaceScope, ResponsiveConfig, RestApiLinks, RestApiResponse, RichAccordionItem, RichAccordionNode, RichActionButtonNode, RichActionCardNode, RichActionRef, RichAvatarNode, RichBadgeNode, RichBlockBaseNode, RichBlockContextConfig, RichBlockContextScope, RichBlockHostCapabilities, RichBlockNode, RichBlockRuleSet, RichCalloutNode, RichCapabilityMode, RichCardAccessibility, RichCardDensity, RichCardInteraction, RichCardInteractionMode, RichCardMedia, RichCardMediaKind, RichCardMediaPlacement, RichCardNode, RichCardOrientation, RichCardSize, RichCardTone, RichCardVariant, RichCollapsibleCardNode, RichComposeNode, RichContentDocument, RichCtaGroupLayout, RichCtaGroupNode, RichDisclosureNode, RichEmptyStateNode, RichFormLauncherNode, RichIconNode, RichImageNode, RichKeyValueItem, RichKeyValueListNode, RichLinkNode, RichLookupCardNode, RichLookupResultField, RichLookupResultNode, RichLookupResultStatus, RichMediaBlockNode, RichMetricNode, RichPresenterNode, RichPresetReferenceNode, RichPrimitiveNode, RichProgressNode, RichPropertySheetColumns, RichPropertySheetItem, RichPropertySheetNode, RichPropertySheetTone, RichRecordSummaryField, RichRecordSummaryNode, RichRelatedRecordNode, RichStatGroupLayout, RichStatGroupNode, RichStatItem, RichStatTone, RichTabsAppearance, RichTabsItem, RichTabsNode, RichTextAppearance, RichTextNode, RichTextVariant, RichTimelineColor, RichTimelineConnectorVariant, RichTimelineItem, RichTimelineMarkerStyle, RichTimelineMarkerVariant, RichTimelineNode, RichTimelineOrder, RichTimelineOrientation, RichTimelinePosition, RowAction, RowActionsConfig, RuleContextRoot, RulePropertyDefinition, RulePropertySchema, RulePropertyType, RunHooksResult, RuntimeLinkSnapshot, RuntimeLinkStatus, RuntimePayloadSummary, RuntimeSnapshot, RuntimeSnapshotStatus, RuntimeStateSnapshot, RuntimeTraceEntry, RuntimeTracePhase, SchemaIdParams, SchemaMetaInfo, SchemaViewerContext, SelectionConfig, SerializableFieldMetadata, SettingsPanelBridge, SettingsPanelOpenContent, SettingsPanelOpenOptions, SettingsPanelRef, SettingsValueProvider, SortingConfig, SpacingConfig, StateEndpointRef, StateMessagesConfig, SubmitPolicy, SurfaceBinding, SurfaceBindingMode, SurfaceDrawerBridge, SurfaceDrawerOpenContent, SurfaceDrawerOpenOptions, SurfaceDrawerRef, SurfaceDrawerResult, SurfaceDrawerWidthPreset, SurfaceOpenPayload, SurfaceOpenPreset, SurfacePresentation, SurfaceSizeConfig, SyncConfig, SyncResult, TableActionsConfig, TableAppearanceConfig, TableBehaviorConfig, TableConfig, TableConfigV2 as TableConfigModern, TableConfigState, TableConfigV2, TableDetailActionBarAction, TableDetailActionBarNode, TableDetailActionNode, TableDetailAllowedNode, TableDetailBaseNode, TableDetailCardGridCardNode, TableDetailCardGridNode, TableDetailCardNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, TableDetailEmbedBaseNode, TableDetailInlineSchemaDocument, TableDetailLayoutNode, TableDetailListItemAction, TableDetailListItemContextConfig, TableDetailListItemSchema, TableDetailListNode, TableDetailMediaBlockNode, TableDetailRefNode, TableDetailRichListNode, TableDetailRichTextNode, TableDetailSchemaNode, TableDetailTabNode, TableDetailTabsNode, TableDetailTemplateRefNode, TableDetailTimelineItemSchema, TableDetailTimelineNode, TableDetailTimelineStaticItem, TableDetailValueNode, TableExpansionConfig, TableLocalDataModeConfig, TableToolbarAppearanceConfig, TableToolbarAppearanceDensity, TableToolbarAppearanceDivider, TableToolbarAppearanceShape, TableToolbarAppearanceVariant, TableToolbarTokenName, TableTooltipConfig, TelemetryEvent, TelemetryLoggerSinkOptions, TelemetryTransport, TextTransformApply, TextTransformName, ThemeConfig, ToolbarAction, ToolbarConfig, ToolbarFilterConfig, ToolbarLayoutConfig, ToolbarSettingsConfig, TransformBinding, TransformBindingSource, TransformCatalogCategory, TransformCatalogEntry, TransformKind, TransformLegacyReplacement, TransformOutputHint, TransformPhase, TransformPipeline, TransformSemanticKind, TransformStep, TypographyConfig, UserContextSource, UserContextSummaryAppearance, UserContextSummaryField, ValidationContext, ValidationError, ValidationMessagesConfig, ValidationResult, ValidationRule, ValidatorFunction, ValidatorOptions, ValueKind$1 as ValueKind, ValuePresentationConfig, ValuePresentationResolutionContext, ValuePresentationStyle, ValuePresentationType, VirtualizationConfig, WidgetDefinition, WidgetDerivedStateNode, WidgetEventEnvelope, WidgetEventPathNormalizeInput, WidgetEventPathNormalizeOptions, WidgetEventPathSegment, WidgetInstance, WidgetPageCanvasCollisionPolicy, WidgetPageCanvasConstraints, WidgetPageCanvasItem, WidgetPageCanvasItemOverride, WidgetPageCanvasLayout, WidgetPageCanvasLayoutVariant, WidgetPageCompositionDefinition, WidgetPageDefinition, WidgetPageDeviceKind, WidgetPageDeviceLayouts, WidgetPageDevicePolicy, WidgetPageGroupingDefinition, WidgetPageGroupingOverride, WidgetPageGroupingTabDefinition, WidgetPageLayout, WidgetPageLayoutPresetDefinition, WidgetPageLayoutVariant, WidgetPageOrientation, WidgetPageSlotAssignments, WidgetPageSlotDefinition, WidgetPageStateDefinition, WidgetPageStateInput, WidgetPageStateRuntimeSnapshot, WidgetPageThemePresetDefinition, WidgetPageWidgetLayoutOverride, WidgetPageWidgetSuggestion, WidgetResolutionDiagnostic, WidgetResolutionPhase, WidgetShellAction, WidgetShellActionEvent, WidgetShellActionPlacement, WidgetShellBodyLayout, WidgetShellConfig, WidgetShellWindowActions, WidgetStateNode };