@praxisui/crud 9.0.5-rc.9 → 9.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@praxisui/crud",
3
- "version": "9.0.5-rc.9",
3
+ "version": "9.0.6",
4
4
  "description": "CRUD building blocks for Praxis UI: integrates dynamic forms and tables with unified configuration and services.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
7
7
  "@angular/core": "^21.0.0",
8
- "@praxisui/dynamic-form": "^9.0.5-rc.9",
9
- "@praxisui/table": "^9.0.5-rc.9",
10
- "@praxisui/core": "^9.0.5-rc.9",
11
- "@praxisui/dynamic-fields": "^9.0.5-rc.9",
12
- "@praxisui/settings-panel": "^9.0.5-rc.9",
8
+ "@praxisui/dynamic-form": "^9.0.6",
9
+ "@praxisui/table": "^9.0.6",
10
+ "@praxisui/core": "^9.0.6",
11
+ "@praxisui/dynamic-fields": "^9.0.6",
12
+ "@praxisui/settings-panel": "^9.0.6",
13
13
  "@angular/cdk": "^21.0.0",
14
14
  "@angular/forms": "^21.0.0",
15
15
  "@angular/material": "^21.0.0",
16
16
  "@angular/router": "^21.0.0",
17
- "@praxisui/ai": "^9.0.5-rc.9",
17
+ "@praxisui/ai": "^9.0.6",
18
18
  "rxjs": "~7.8.0"
19
19
  },
20
20
  "dependencies": {
@@ -51,12 +51,37 @@ interface CrudDrawerResult {
51
51
  type: CrudDrawerResultType;
52
52
  data?: Record<string, unknown>;
53
53
  }
54
+ /** Minimal structural evidence contract kept local to the light entrypoint. */
55
+ interface CrudReactiveDeterminationExecutionEvent {
56
+ determinationId: string;
57
+ operationId: string;
58
+ status: 'pending' | 'success' | 'skipped' | 'error';
59
+ sourcePaths: string[];
60
+ targetPaths: string[];
61
+ appliedTargetPaths?: string[];
62
+ correlationId: string;
63
+ durationMs: number;
64
+ reason?: string;
65
+ provenance: {
66
+ kind: 'platform' | 'host';
67
+ source: string;
68
+ version?: string;
69
+ };
70
+ }
71
+ /** Minimal structural stability contract kept local to the light entrypoint. */
72
+ interface CrudReactiveDeterminationStabilityChange {
73
+ status: 'pending' | 'settled-satisfied' | 'settled-unsatisfied';
74
+ pending: boolean;
75
+ unsatisfied: boolean;
76
+ }
54
77
  interface CrudDrawerOpenConfig {
55
78
  action: CrudAction;
56
79
  metadata: CrudMetadata;
57
80
  inputs: Record<string, unknown>;
58
81
  /** Read-only record context for existing-record drawers. It is never part of form inputs or submit payloads. */
59
82
  resourceIdentity?: MaterializedResourceIdentity | null;
83
+ /** Presentation-only preference. Defaults to true; false hides the record identity key while preserving its title. */
84
+ showResourceIdentityKey?: boolean;
60
85
  /** Read-only task scope for related operations. It is never part of form inputs or submit payloads. */
61
86
  contextIdentity?: MaterializedResourceIdentity | null;
62
87
  /**
@@ -68,6 +93,12 @@ interface CrudDrawerOpenConfig {
68
93
  * Hosts podem propagar `save/delete/close` para sincronizar telemetria/eventos.
69
94
  */
70
95
  onResult?: (result: CrudDrawerResult) => void;
96
+ /** Bind to the child form's metadata-only determination evidence. */
97
+ onReactiveDetermination?: (event: CrudReactiveDeterminationExecutionEvent) => void;
98
+ /** Bind to pending state and refuse every adapter-owned close/submit while true. */
99
+ onReactiveDeterminationPendingChange?: (pending: boolean) => void;
100
+ /** Report aggregate success/unsatisfied stability without form values. */
101
+ onReactiveDeterminationStabilityChange?: (stability: CrudReactiveDeterminationStabilityChange) => void;
71
102
  }
72
103
  interface CrudDrawerAdapter {
73
104
  open(config: CrudDrawerOpenConfig): Promise<void> | void;
@@ -84,4 +115,4 @@ interface DialogConfig<D = any> extends MatDialogConfig<D> {
84
115
  declare const CRUD_DRAWER_ADAPTER: InjectionToken<CrudDrawerAdapter>;
85
116
 
86
117
  export { CRUD_DRAWER_ADAPTER };
87
- export type { CrudAction, CrudDefaults, CrudDrawerAdapter, CrudDrawerOpenConfig, CrudDrawerResult, CrudDrawerResultType, CrudHeaderConfig, CrudMetadata, CrudParamMapping, CrudResource, DialogConfig, FormOpenMode };
118
+ export type { CrudAction, CrudDefaults, CrudDrawerAdapter, CrudDrawerOpenConfig, CrudDrawerResult, CrudDrawerResultType, CrudHeaderConfig, CrudMetadata, CrudParamMapping, CrudReactiveDeterminationExecutionEvent, CrudReactiveDeterminationStabilityChange, CrudResource, DialogConfig, FormOpenMode };
@@ -1,8 +1,8 @@
1
- import * as _angular_core from '@angular/core';
2
- import { NgZone, OnChanges, EventEmitter, SimpleChanges, OnInit, AfterViewInit, Provider, OnDestroy } from '@angular/core';
3
1
  import * as _praxisui_core from '@praxisui/core';
4
- import { RowAction, ToolbarAction, ApiEndpoint, ApiUrlEntry, DynamicFormLayoutPolicy, BackConfig, TableConfig, PraxisDataQueryContext, FormConfig, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, MaterializedResourceIdentity, LoadingState, RestApiLinks, ResourceCapabilitySnapshot, SurfaceDrawerRef, GenericCrudService, AsyncConfigStorage, ComponentDocMeta, AiCapabilityCatalog, AiCapability, AiCapabilityCategory, AiValueKind, ComponentAuthoringManifest, SettingsValueProvider } from '@praxisui/core';
2
+ import { RowAction, ToolbarAction, ApiEndpoint, ApiUrlEntry, DynamicFormLayoutPolicy, BackConfig, TableConfig, PraxisDataQueryContext, FormConfig, ReactiveDeterminationExecutionEvent, ResourceActionCatalogItem, ResourceSurfaceCatalogItem, MaterializedResourceIdentity, PraxisResourceEvent, LoadingState, RestApiLinks, ResourceCapabilitySnapshot, SurfaceDrawerRef, GenericCrudService, AsyncConfigStorage, ComponentDocMeta, AiCapabilityCatalog, AiCapability, AiCapabilityCategory, AiValueKind, ComponentAuthoringManifest, SettingsValueProvider } from '@praxisui/core';
5
3
  export { BackConfig } from '@praxisui/core';
4
+ import * as _angular_core from '@angular/core';
5
+ import { NgZone, OnChanges, EventEmitter, SimpleChanges, OnInit, AfterViewInit, Provider, OnDestroy } from '@angular/core';
6
6
  import { TableConfigPersistenceStrategy } from '@praxisui/table';
7
7
  import { MatDialogConfig, MatDialogRef, MatDialog } from '@angular/material/dialog';
8
8
  export { MAT_DIALOG_DATA as DIALOG_DATA } from '@angular/material/dialog';
@@ -48,6 +48,17 @@ declare class DialogService {
48
48
  }
49
49
 
50
50
  type FormOpenMode = 'route' | 'modal' | 'drawer';
51
+ type CrudReactiveDeterminationStabilityStatus = 'pending' | 'settled-satisfied' | 'settled-unsatisfied';
52
+ /** Value-free stability evidence for the Dynamic Form opened by one CRUD action. */
53
+ interface CrudFormReactiveDeterminationStabilityChange {
54
+ status: CrudReactiveDeterminationStabilityStatus;
55
+ pending: boolean;
56
+ unsatisfied: boolean;
57
+ }
58
+ /** Public CRUD output enriched with the action that owns the open form. */
59
+ interface CrudReactiveDeterminationStabilityChange extends CrudFormReactiveDeterminationStabilityChange {
60
+ action: string;
61
+ }
51
62
  interface CrudParamMapping {
52
63
  from: string;
53
64
  to: 'routeParam' | 'query' | 'input';
@@ -177,6 +188,8 @@ declare class PraxisCrudComponent implements OnChanges {
177
188
  tableConfigPersistenceStrategy: TableConfigPersistenceStrategy;
178
189
  context?: Record<string, unknown>;
179
190
  enableCustomization: boolean;
191
+ /** Controls whether existing-record hosts expose the canonical identity key. */
192
+ showResourceIdentityKey: boolean;
180
193
  /** Capability publica exigida para authoring governado do CRUD e da tabela interna. */
181
194
  authoringCapability: string | null;
182
195
  configureRequested: EventEmitter<void>;
@@ -192,11 +205,23 @@ declare class PraxisCrudComponent implements OnChanges {
192
205
  afterDelete: EventEmitter<{
193
206
  id: string | number;
194
207
  }>;
208
+ /** Metadata-only Reactive Determination evidence from an open form host. */
209
+ reactiveDeterminationExecuted: EventEmitter<{
210
+ action: string;
211
+ event: ReactiveDeterminationExecutionEvent;
212
+ }>;
213
+ reactiveDeterminationPendingChange: EventEmitter<{
214
+ action: string;
215
+ pending: boolean;
216
+ }>;
217
+ reactiveDeterminationStabilityChange: EventEmitter<CrudReactiveDeterminationStabilityChange>;
195
218
  error: EventEmitter<unknown>;
196
219
  rowClick: EventEmitter<unknown>;
197
220
  /** Emits the canonical table row-action envelope before the CRUD handles its surface/action. */
198
221
  rowAction: EventEmitter<CrudActionRuntimeEvent>;
199
222
  selectionChange: EventEmitter<unknown>;
223
+ /** Forwards the canonical resource interaction envelope emitted by the internal table. */
224
+ readonly resourceEvent: _angular_core.OutputEmitterRef<PraxisResourceEvent<unknown>>;
200
225
  tableRuntimeConfigChange: EventEmitter<_praxisui_core.TableConfigModern>;
201
226
  crudAuthoringDocumentApplied: EventEmitter<CrudAuthoringWidgetPersistenceEvent>;
202
227
  crudAuthoringDocumentSaved: EventEmitter<CrudAuthoringWidgetPersistenceEvent>;
@@ -218,11 +243,13 @@ declare class PraxisCrudComponent implements OnChanges {
218
243
  private readonly snack;
219
244
  private readonly dialog;
220
245
  private readonly i18n;
246
+ private readonly logger;
221
247
  private readonly injector;
222
248
  private resourceDiscoveryInstance?;
223
249
  private actionOpenAdapterInstance?;
224
250
  private surfaceOpenAdapterInstance?;
225
251
  private materializedRefreshSequence;
252
+ private surfaceOpenAttemptSequence;
226
253
  private readonly global;
227
254
  private readonly surfaceService;
228
255
  private readonly surfaceOutlets;
@@ -230,6 +257,7 @@ declare class PraxisCrudComponent implements OnChanges {
230
257
  private readonly route;
231
258
  private warnedMissingId;
232
259
  private lastEmittedTableRuntimeConfigJson;
260
+ private lastTableRuntimeConfigSnapshot;
233
261
  private lastAssignedTableConfigJson;
234
262
  private lastAssignedTableCrudContextJson;
235
263
  private lastAppliedResourceIdentity;
@@ -249,6 +277,7 @@ declare class PraxisCrudComponent implements OnChanges {
249
277
  onResetPreferences(): void;
250
278
  onTableRowClick(event: unknown): void;
251
279
  onTableSelectionChange(event: unknown): void;
280
+ onTableResourceEvent(event: PraxisResourceEvent<unknown>): void;
252
281
  onBulkAction(event: CrudActionRuntimeEvent): Promise<void>;
253
282
  onToolbarAction(event: CrudActionRuntimeEvent): Promise<void>;
254
283
  ngOnChanges(changes: SimpleChanges): void;
@@ -258,6 +287,7 @@ declare class PraxisCrudComponent implements OnChanges {
258
287
  private resolveOpeningActionLabel;
259
288
  private hasExplicitOpenBinding;
260
289
  getCurrentTableConfigSnapshot(): TableConfig | null;
290
+ onTableConfigChange(config: TableConfig): void;
261
291
  onTableMetadataChange(): void;
262
292
  onTableLoadingStateChange(state: LoadingState): void;
263
293
  onCollectionLinksChange(links: RestApiLinks | null | undefined): void;
@@ -279,6 +309,7 @@ declare class PraxisCrudComponent implements OnChanges {
279
309
  private unwrapRestData;
280
310
  private extractCollectionData;
281
311
  private emitTableRuntimeConfigSnapshot;
312
+ private cloneTableConfigSnapshot;
282
313
  private applyResolvedCrudState;
283
314
  private assignTableConfigForBinding;
284
315
  private assignTableCrudContext;
@@ -302,6 +333,7 @@ declare class PraxisCrudComponent implements OnChanges {
302
333
  private resolveDiscoveredSurfaceCatalog;
303
334
  private tryOpenDiscoveredWorkflowAction;
304
335
  private notifySurfaceNavigationFailure;
336
+ private reportDiscoveredSurfaceOpenFailure;
305
337
  private resolveDiscoveredActionCatalog;
306
338
  private selectDiscoveredWorkflowAction;
307
339
  private resolveProvidedWorkflowAction;
@@ -351,7 +383,7 @@ declare class PraxisCrudComponent implements OnChanges {
351
383
  private txWithParams;
352
384
  private interpolateTranslationParams;
353
385
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PraxisCrudComponent, never>;
354
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisCrudComponent, "praxis-crud", never, { "metadata": { "alias": "metadata"; "required": true; }; "crudId": { "alias": "crudId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "tableConfigPersistenceStrategy": { "alias": "tableConfigPersistenceStrategy"; "required": false; }; "context": { "alias": "context"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "authoringCapability": { "alias": "authoringCapability"; "required": false; }; }, { "configureRequested": "configureRequested"; "afterOpen": "afterOpen"; "afterClose": "afterClose"; "afterSave": "afterSave"; "afterDelete": "afterDelete"; "error": "error"; "rowClick": "rowClick"; "rowAction": "rowAction"; "selectionChange": "selectionChange"; "tableRuntimeConfigChange": "tableRuntimeConfigChange"; "crudAuthoringDocumentApplied": "crudAuthoringDocumentApplied"; "crudAuthoringDocumentSaved": "crudAuthoringDocumentSaved"; }, never, never, true, never>;
386
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PraxisCrudComponent, "praxis-crud", never, { "metadata": { "alias": "metadata"; "required": true; }; "crudId": { "alias": "crudId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "tableConfigPersistenceStrategy": { "alias": "tableConfigPersistenceStrategy"; "required": false; }; "context": { "alias": "context"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; "showResourceIdentityKey": { "alias": "showResourceIdentityKey"; "required": false; }; "authoringCapability": { "alias": "authoringCapability"; "required": false; }; }, { "configureRequested": "configureRequested"; "afterOpen": "afterOpen"; "afterClose": "afterClose"; "afterSave": "afterSave"; "afterDelete": "afterDelete"; "reactiveDeterminationExecuted": "reactiveDeterminationExecuted"; "reactiveDeterminationPendingChange": "reactiveDeterminationPendingChange"; "reactiveDeterminationStabilityChange": "reactiveDeterminationStabilityChange"; "error": "error"; "rowClick": "rowClick"; "rowAction": "rowAction"; "selectionChange": "selectionChange"; "resourceEvent": "resourceEvent"; "tableRuntimeConfigChange": "tableRuntimeConfigChange"; "crudAuthoringDocumentApplied": "crudAuthoringDocumentApplied"; "crudAuthoringDocumentSaved": "crudAuthoringDocumentSaved"; }, never, never, true, never>;
355
387
  }
356
388
 
357
389
  type CrudDrawerResultType = 'save' | 'delete' | 'close';
@@ -359,12 +391,48 @@ interface CrudDrawerResult {
359
391
  type: CrudDrawerResultType;
360
392
  data?: Record<string, unknown>;
361
393
  }
394
+ interface CrudDrawerOpenConfig {
395
+ action: CrudAction;
396
+ metadata: CrudMetadata;
397
+ inputs: Record<string, unknown>;
398
+ /** Read-only record context for existing-record drawers. It is never part of form inputs or submit payloads. */
399
+ resourceIdentity?: MaterializedResourceIdentity | null;
400
+ /** Presentation-only preference. Defaults to true; false hides the record identity key while preserving its title. */
401
+ showResourceIdentityKey?: boolean;
402
+ /** Read-only task scope for related operations. It is never part of form inputs or submit payloads. */
403
+ contextIdentity?: MaterializedResourceIdentity | null;
404
+ /**
405
+ * Ephemeral focus policy resolved for this opening. A host adapter must
406
+ * forward it to its native overlay and must never persist, clone, or put it
407
+ * into form inputs or submit payloads. When a responsive render replaces a
408
+ * detached HTMLElement, an adapter should recover the matching
409
+ * `data-praxis-focus-key` element before focusing it.
410
+ */
411
+ restoreFocus?: boolean | string | HTMLElement;
412
+ /**
413
+ * Notifica fechamento do drawer (cancelamento/fechamento externo/resultado finalizado).
414
+ */
415
+ onClose?: () => void;
416
+ /**
417
+ * Notifica resultado semântico do fluxo em drawer.
418
+ * Hosts podem propagar `save/delete/close` para sincronizar telemetria/eventos.
419
+ */
420
+ onResult?: (result: CrudDrawerResult) => void;
421
+ /** Bind to the child Dynamic Form metadata-only execution event. */
422
+ onReactiveDetermination?: (event: ReactiveDeterminationExecutionEvent) => void;
423
+ /** Bind to the child pending event and guard every adapter-owned close/submit. */
424
+ onReactiveDeterminationPendingChange?: (pending: boolean) => void;
425
+ /** Report aggregate settled-success/settled-unsatisfied state without form values. */
426
+ onReactiveDeterminationStabilityChange?: (stability: CrudFormReactiveDeterminationStabilityChange) => void;
427
+ }
362
428
 
363
429
  interface CrudLaunchRuntime {
364
430
  capabilities?: ResourceCapabilitySnapshot | null;
365
431
  links?: RestApiLinks | null;
366
432
  resourceIdentity?: MaterializedResourceIdentity | null;
367
433
  contextIdentity?: MaterializedResourceIdentity | null;
434
+ /** Presentation-only preference for the existing-record identity key. */
435
+ showResourceIdentityKey?: boolean;
368
436
  /** Active runtime drawer session. It is never persisted in CRUD metadata. */
369
437
  surfaceRuntime?: SurfaceDrawerRef | null;
370
438
  /** Stable runtime trigger for restoring focus after a form overlay closes. */
@@ -383,6 +451,9 @@ declare class CrudLauncherService {
383
451
  launch(action: CrudAction, row: Record<string, unknown> | undefined, metadata: CrudMetadata, componentKeyId?: string | null, drawerCallbacks?: {
384
452
  onClose?: () => void;
385
453
  onResult?: (result: CrudDrawerResult) => void;
454
+ onReactiveDetermination?: CrudDrawerOpenConfig['onReactiveDetermination'];
455
+ onReactiveDeterminationPendingChange?: CrudDrawerOpenConfig['onReactiveDeterminationPendingChange'];
456
+ onReactiveDeterminationStabilityChange?: CrudDrawerOpenConfig['onReactiveDeterminationStabilityChange'];
386
457
  }, runtime?: CrudLaunchRuntime): Promise<{
387
458
  mode: FormOpenMode;
388
459
  ref?: DialogRef<any>;
@@ -428,6 +499,9 @@ declare class DynamicFormDialogHostComponent implements OnInit, AfterViewInit {
428
499
  private configStorage;
429
500
  private readonly surfaceRef;
430
501
  formComp?: PraxisDynamicForm;
502
+ reactiveDeterminationExecuted: EventEmitter<ReactiveDeterminationExecutionEvent>;
503
+ reactiveDeterminationPendingChange: EventEmitter<boolean>;
504
+ reactiveDeterminationStabilityChange: EventEmitter<CrudFormReactiveDeterminationStabilityChange>;
431
505
  modal: any;
432
506
  presentation: 'modal' | 'drawer' | 'surface-frame';
433
507
  maximized: boolean;
@@ -439,11 +513,13 @@ declare class DynamicFormDialogHostComponent implements OnInit, AfterViewInit {
439
513
  private terminalClose;
440
514
  private destroyRef;
441
515
  private readonly i18n;
516
+ private reactiveDeterminationStabilitySignature;
442
517
  resourcePath?: string;
443
518
  resourceId?: string | number;
444
519
  initialValue?: Record<string, unknown> | null;
445
520
  resourceIdentity: MaterializedResourceIdentity | null;
446
521
  contextIdentity: MaterializedResourceIdentity | null;
522
+ showResourceIdentityKey: boolean;
447
523
  schemaUrl?: string | null;
448
524
  submitUrl?: string | null;
449
525
  submitMethod?: string | null;
@@ -479,6 +555,10 @@ declare class DynamicFormDialogHostComponent implements OnInit, AfterViewInit {
479
555
  ngAfterViewInit(): void;
480
556
  onSave(result: unknown): void;
481
557
  onCancel(): void;
558
+ onReactiveDeterminationExecuted(event: ReactiveDeterminationExecutionEvent): void;
559
+ onReactiveDeterminationPendingChange(pending: boolean): void;
560
+ private emitReactiveDeterminationStability;
561
+ private continueCancel;
482
562
  private canLeaveSurfaceFrame;
483
563
  toggleMaximize(initial?: boolean): void;
484
564
  private resolveOverlayPane;
@@ -488,7 +568,7 @@ declare class DynamicFormDialogHostComponent implements OnInit, AfterViewInit {
488
568
  private updateHostPosition;
489
569
  private resolveMaximizedDrawerPosition;
490
570
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormDialogHostComponent, [{ optional: true; }, { optional: true; }, null, null, null, { optional: true; }, { optional: true; }]>;
491
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormDialogHostComponent, "praxis-dynamic-form-dialog-host", never, {}, {}, never, never, true, never>;
571
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormDialogHostComponent, "praxis-dynamic-form-dialog-host", never, {}, { "reactiveDeterminationExecuted": "reactiveDeterminationExecuted"; "reactiveDeterminationPendingChange": "reactiveDeterminationPendingChange"; "reactiveDeterminationStabilityChange": "reactiveDeterminationStabilityChange"; }, never, never, true, never>;
492
572
  }
493
573
 
494
574
  /** Metadata for PraxisCrudComponent */
@@ -626,6 +706,7 @@ declare class CrudMetadataEditorComponent implements SettingsValueProvider {
626
706
  actionParams(actionName: CrudEditorActionKey): CrudParamMapping[];
627
707
  actionInitialValueDraft(actionName: CrudEditorActionKey): string;
628
708
  actionLabel(actionName: CrudEditorActionKey): string;
709
+ actionUsesRoute(actionName: CrudEditorActionKey): boolean;
629
710
  actionSummary(actionName: CrudEditorActionKey): string;
630
711
  actionEffectiveBindingSummary(actionName: CrudEditorActionKey): string;
631
712
  actionSubmitSummary(actionName: CrudEditorActionKey): string;
@@ -770,4 +851,4 @@ type OpenCrudMetadataEditorOptions = {
770
851
  declare function openCrudMetadataEditor(settings: SettingsPanelService, opts?: OpenCrudMetadataEditorOptions): _praxisui_settings_panel.SettingsPanelRef;
771
852
 
772
853
  export { CRUD_AI_CAPABILITIES, CrudLauncherService, CrudMetadataEditorComponent, CrudPageHeaderComponent, DialogService, DynamicFormDialogHostComponent, PRAXIS_CRUD_AUTHORING_MANIFEST, PRAXIS_CRUD_COMPONENT_METADATA, PraxisCrudComponent, PraxisCrudWidgetConfigEditor, assertCrudMetadata, createCrudAuthoringDocument, findCrudAction, normalizeCrudAuthoringDocument, openCrudMetadataEditor, parseLegacyOrCrudDocument, providePraxisCrudMetadata, serializeCrudAuthoringDocument, validateCrudAuthoringDocument };
773
- export type { Capability, CapabilityCatalog, CapabilityCategory, CrudAction, CrudActionFormContract, CrudActionResolutionMode, CrudAuthoringDocument, CrudAuthoringWidgetPersistenceEvent, CrudDefaults, CrudEditorDiagnostic, CrudHeaderConfig, CrudHeaderVariant, CrudMetadata, CrudMetadataAssertionOptions, CrudParamMapping, CrudResource, CrudValidationContext, DialogConfig, DialogRef, FormOpenMode, OpenCrudMetadataEditorOptions, PraxisCrudWidgetEditorInputs, PraxisCrudWidgetEditorValue, ValueKind };
854
+ export type { Capability, CapabilityCatalog, CapabilityCategory, CrudAction, CrudActionFormContract, CrudActionResolutionMode, CrudAuthoringDocument, CrudAuthoringWidgetPersistenceEvent, CrudDefaults, CrudEditorDiagnostic, CrudFormReactiveDeterminationStabilityChange, CrudHeaderConfig, CrudHeaderVariant, CrudMetadata, CrudMetadataAssertionOptions, CrudParamMapping, CrudReactiveDeterminationStabilityChange, CrudReactiveDeterminationStabilityStatus, CrudResource, CrudValidationContext, DialogConfig, DialogRef, FormOpenMode, OpenCrudMetadataEditorOptions, PraxisCrudWidgetEditorInputs, PraxisCrudWidgetEditorValue, ValueKind };