@praxisui/core 9.0.53 → 9.0.54

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/README.md CHANGED
@@ -206,6 +206,11 @@ host actually supports. Omitted entries preserve full authoring for backward com
206
206
  grant controls visible authoring operations only: it is not persisted in `WidgetPageDefinition` and
207
207
  does not replace component manifests, backend capabilities, authorization or validation.
208
208
 
209
+ Hosts that maintain an authored source separately from runtime state should consume
210
+ `pageAuthoringChange`. It emits only explicit canvas, shell, page, widget-input and removal edits.
211
+ `pageChange` remains the compatibility stream for every canonical page update, including persistent
212
+ runtime state; transient composition projections remain excluded from both outputs.
213
+
209
214
  Page-owned business copy can use `page.i18n` plus explicit `PraxisTextValue`
210
215
  descriptors inside widget shells or nested widget inputs. The runtime resolves
211
216
  those descriptors only in its render projection, so the authored and persisted
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-08-31T21:15:24.814Z",
3
+ "generatedAt": "2026-09-01T03:28:13.726Z",
4
4
  "packageName": "@praxisui/core",
5
- "packageVersion": "9.0.53",
5
+ "packageVersion": "9.0.54",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 4,
@@ -528,7 +528,13 @@
528
528
  "name": "pageChange",
529
529
  "type": "WidgetPageDefinition",
530
530
  "required": false,
531
- "description": "Emitido ao alterar a definição authorada da página; projeções transitórias de composição permanecem somente no runtime."
531
+ "description": "Emitido quando a página canônica muda por authoring ou por estado runtime persistente; projeções transitórias permanecem somente no runtime."
532
+ },
533
+ {
534
+ "name": "pageAuthoringChange",
535
+ "type": "WidgetPageDefinition",
536
+ "required": false,
537
+ "description": "Emitido somente após operações explícitas de authoring, separado de mudanças de estado e composição do runtime."
532
538
  },
533
539
  {
534
540
  "name": "widgetEvent",
@@ -3000,9 +3006,9 @@
3000
3006
  {
3001
3007
  "chunkIndex": 0,
3002
3008
  "chunkKind": "summary",
3003
- "content": "Component ID: praxis-dynamic-page\nSelector: praxis-dynamic-page\nFriendly Name: Dynamic Page\nDescription: Página dinâmica com widgets e composition.links em layout responsivo, incluindo mediação runtime para rich-content hospedado.\nCategory: page\nLib/Package: @praxisui/core\nTags: widget, page, dynamic, layout\nInputs:\n - page (WidgetPageDefinition)\n - context (Record<string, any>)\n - strictValidation (boolean)\n - enableCustomization (boolean)\n - authoringCapabilities (WidgetPageAuthoringCapabilities)\n - showPageSettingsButton (boolean)\n - shellEditorComponent (Type<any>)\n - pageEditorComponent (Type<any>)\n - autoPersist (boolean)\n - pageIdentity (PageIdentity)\n - componentInstanceId (string)\nOutputs:\n - pageChange (WidgetPageDefinition)\n - widgetEvent (WidgetEventEnvelope)\n - widgetDiagnosticsChange (Record<string, WidgetResolutionDiagnostic>)\n",
3009
+ "content": "Component ID: praxis-dynamic-page\nSelector: praxis-dynamic-page\nFriendly Name: Dynamic Page\nDescription: Página dinâmica com widgets e composition.links em layout responsivo, incluindo mediação runtime para rich-content hospedado.\nCategory: page\nLib/Package: @praxisui/core\nTags: widget, page, dynamic, layout\nInputs:\n - page (WidgetPageDefinition)\n - context (Record<string, any>)\n - strictValidation (boolean)\n - enableCustomization (boolean)\n - authoringCapabilities (WidgetPageAuthoringCapabilities)\n - showPageSettingsButton (boolean)\n - shellEditorComponent (Type<any>)\n - pageEditorComponent (Type<any>)\n - autoPersist (boolean)\n - pageIdentity (PageIdentity)\n - componentInstanceId (string)\nOutputs:\n - pageChange (WidgetPageDefinition)\n - pageAuthoringChange (WidgetPageDefinition)\n - widgetEvent (WidgetEventEnvelope)\n - widgetDiagnosticsChange (Record<string, WidgetResolutionDiagnostic>)\n",
3004
3010
  "sourcePointer": "projects/praxis-core/src/lib/widgets/dynamic-widget-page.metadata.ts",
3005
- "contentHash": "27a7ae1a0c39ca506ccadd06b095f4370d5e57e34558965fbd40da1d82b3143d",
3011
+ "contentHash": "d3f9a1519379d733fb13af496aff99953cd5a37399555955cbf747457185c2e3",
3006
3012
  "sourceKind": "component_definition",
3007
3013
  "sourceId": "praxis-dynamic-page",
3008
3014
  "corpusVersion": "1.0.0"
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, InjectionToken, Injectable, inject, Inject, Optional, SkipSelf, makeEnvironmentProviders, APP_INITIALIZER, signal, computed, DestroyRef, ENVIRONMENT_INITIALIZER, ErrorHandler, Input, Directive, input, booleanAttribute, ChangeDetectionStrategy, EventEmitter, Output, SecurityContext, ViewContainerRef, SimpleChange, ContentChild, HostBinding, Injector, ElementRef, ChangeDetectorRef, afterNextRender, HostListener, ViewChildren, ViewChild, output, effect } from '@angular/core';
2
+ import { Component, InjectionToken, Injectable, inject, Inject, Optional, SkipSelf, makeEnvironmentProviders, APP_INITIALIZER, signal, computed, DestroyRef, ENVIRONMENT_INITIALIZER, ErrorHandler, Input, Directive, input, booleanAttribute, ChangeDetectionStrategy, EventEmitter, Output, SecurityContext, ViewContainerRef, SimpleChange, ContentChild, HostBinding, output, Injector, ElementRef, ChangeDetectorRef, afterNextRender, HostListener, ViewChildren, ViewChild, effect } from '@angular/core';
3
3
  import * as i1 from '@angular/common/http';
4
4
  import { HttpHeaders, HttpClient, HttpParams, HttpResponse, HttpContextToken, HTTP_INTERCEPTORS, withInterceptors } from '@angular/common/http';
5
5
  import { of, defer, throwError, from, EMPTY, BehaviorSubject, firstValueFrom, Subject, finalize as finalize$1, shareReplay as shareReplay$1, map as map$1, switchMap as switchMap$1, catchError as catchError$1, forkJoin } from 'rxjs';
@@ -16683,9 +16683,11 @@ class SurfaceOpenMaterializerService {
16683
16683
  const surfaceId = this.stableSurfaceId(payload);
16684
16684
  const relatedResource = this.resolveRelatedResource(payload);
16685
16685
  const schemaResourcePath = this.normalizeResourcePath(relatedResource?.childResourcePath || this.resolveSurfacePath(payload));
16686
- const resourcePath = this.normalizeResourcePath(readUrl);
16687
- const tableConfig = this.buildLocalTableConfig(fields, data, payload);
16688
- const operations = this.resolveRelatedChildOperations(payload);
16686
+ const resourcePath = this.resolveRelatedCommandResourcePath(payload, resourceId);
16687
+ const operations = resourcePath
16688
+ ? this.resolveRelatedChildOperations(payload)
16689
+ : new Set();
16690
+ const tableConfig = this.buildLocalTableConfig(fields, data, payload, operations);
16689
16691
  const actions = this.buildRelatedCrudActions(payload, operations, {
16690
16692
  resourcePath,
16691
16693
  schemaResourcePath,
@@ -16740,7 +16742,8 @@ class SurfaceOpenMaterializerService {
16740
16742
  materialization: {
16741
16743
  ...payload.context?.['materialization'],
16742
16744
  readUrl,
16743
- relatedResourceCrud: true,
16745
+ relatedResourceCrud: operations.size > 0,
16746
+ relatedResourceCommandPathResolved: !!resourcePath,
16744
16747
  },
16745
16748
  },
16746
16749
  enableCustomization: previousInputs['enableCustomization'] ?? false,
@@ -16870,7 +16873,7 @@ class SurfaceOpenMaterializerService {
16870
16873
  ]);
16871
16874
  return Object.fromEntries(Object.entries(inputs).filter(([key]) => supported.has(key)));
16872
16875
  }
16873
- buildLocalTableConfig(fields, data, payload) {
16876
+ buildLocalTableConfig(fields, data, payload, childOperations = this.resolveRelatedChildOperations(payload)) {
16874
16877
  const schemaColumns = fields
16875
16878
  .filter((field) => !field.hidden && !field.tableHidden && !!field.name)
16876
16879
  .map((field) => ({
@@ -16883,7 +16886,6 @@ class SurfaceOpenMaterializerService {
16883
16886
  const fallbackColumns = schemaColumns.length
16884
16887
  ? []
16885
16888
  : this.inferColumnsFromData(data);
16886
- const childOperations = this.resolveRelatedChildOperations(payload);
16887
16889
  const relatedActions = this.buildRelatedCrudActions(payload, childOperations);
16888
16890
  const previousConfig = this.objectRecord(payload.widget?.inputs?.['config']);
16889
16891
  const previousToolbar = this.objectRecord(previousConfig['toolbar']);
@@ -17159,6 +17161,22 @@ class SurfaceOpenMaterializerService {
17159
17161
  const relatedResource = payload.context?.['relatedResource'];
17160
17162
  return relatedResource;
17161
17163
  }
17164
+ resolveRelatedCommandResourcePath(payload, parentResourceId) {
17165
+ const relatedResource = this.resolveRelatedResource(payload);
17166
+ const childResourcePath = this.normalizeResourcePath(relatedResource?.childResourcePath);
17167
+ if (!childResourcePath)
17168
+ return '';
17169
+ const parentIdPathVariable = String(relatedResource?.parentIdPathVariable || '').trim();
17170
+ if (!parentIdPathVariable) {
17171
+ return /[{}]/u.test(childResourcePath) ? '' : childResourcePath;
17172
+ }
17173
+ const placeholder = `{${parentIdPathVariable}}`;
17174
+ if (!childResourcePath.includes(placeholder)) {
17175
+ return /[{}]/u.test(childResourcePath) ? '' : childResourcePath;
17176
+ }
17177
+ const resolvedPath = childResourcePath.replaceAll(placeholder, encodeURIComponent(String(parentResourceId)));
17178
+ return /[{}]/u.test(resolvedPath) ? '' : resolvedPath;
17179
+ }
17162
17180
  buildRelatedParentInitialValue(payload) {
17163
17181
  const parentField = String(this.resolveRelatedResource(payload)?.childParentField || '').trim();
17164
17182
  const resource = payload.context?.['resource'];
@@ -38437,6 +38455,8 @@ class DynamicWidgetPageComponent {
38437
38455
  /** Enables a contextual authoring assistant entrypoint for the selected widget. */
38438
38456
  showWidgetAssistantButton = false;
38439
38457
  pageChange = new EventEmitter();
38458
+ /** Emits only explicit authoring operations, never runtime state projection. */
38459
+ pageAuthoringChange = output();
38440
38460
  widgetEvent = new EventEmitter();
38441
38461
  widgetSelectionChange = new EventEmitter();
38442
38462
  widgetAssistantRequested = new EventEmitter();
@@ -40532,7 +40552,7 @@ class DynamicWidgetPageComponent {
40532
40552
  },
40533
40553
  }
40534
40554
  : w);
40535
- this.applyPageUpdate({ ...page, widgets }, persist);
40555
+ this.applyAuthoringPageUpdate({ ...page, widgets }, persist);
40536
40556
  }
40537
40557
  async confirmAndRemoveWidget(widgetKey) {
40538
40558
  if (!this.canRemoveWidgets())
@@ -40553,7 +40573,7 @@ class DynamicWidgetPageComponent {
40553
40573
  if (!confirmation.success || confirmation.data !== true) {
40554
40574
  return;
40555
40575
  }
40556
- this.applyPageUpdate(this.removeWidgetReferences(page, widgetKey), true);
40576
+ this.applyAuthoringPageUpdate(this.removeWidgetReferences(page, widgetKey), true);
40557
40577
  if (this.selectedWidgetKeyState() === widgetKey) {
40558
40578
  this.selectedWidgetKeyState.set(null);
40559
40579
  this.widgetSelectionChange.emit(null);
@@ -40715,7 +40735,7 @@ class DynamicWidgetPageComponent {
40715
40735
  ui.shell = shell;
40716
40736
  context = { ...context, ui };
40717
40737
  }
40718
- this.applyPageUpdate({ ...page, widgets, context }, persist);
40738
+ this.applyAuthoringPageUpdate({ ...page, widgets, context }, persist);
40719
40739
  }
40720
40740
  constrainWidgetShellResult(original, proposed) {
40721
40741
  const next = proposed ? { ...proposed } : {};
@@ -40756,12 +40776,12 @@ class DynamicWidgetPageComponent {
40756
40776
  if (!result)
40757
40777
  return;
40758
40778
  if ('widgets' in result) {
40759
- this.applyPageUpdate(result, persist);
40779
+ this.applyAuthoringPageUpdate(result, persist);
40760
40780
  return;
40761
40781
  }
40762
40782
  const page = this.ensurePageDefinition();
40763
40783
  if (result.fullPage) {
40764
- this.applyPageUpdate(result.fullPage, persist);
40784
+ this.applyAuthoringPageUpdate(result.fullPage, persist);
40765
40785
  return;
40766
40786
  }
40767
40787
  const layout = result.layout ?? undefined;
@@ -40777,7 +40797,7 @@ class DynamicWidgetPageComponent {
40777
40797
  context = { ...context, ui };
40778
40798
  const layoutPreset = (result.layoutPreset || '').trim();
40779
40799
  const themePreset = (result.themePreset || '').trim();
40780
- this.applyPageUpdate({
40800
+ this.applyAuthoringPageUpdate({
40781
40801
  ...page,
40782
40802
  layout,
40783
40803
  context,
@@ -40785,6 +40805,12 @@ class DynamicWidgetPageComponent {
40785
40805
  themePreset: themePreset || undefined,
40786
40806
  }, persist);
40787
40807
  }
40808
+ applyAuthoringPageUpdate(next, persist = true, runtime = this.buildStateRuntime(next.state, next.context), syncCompositionAdapter = true, skipStateWidgetProjection = false, emitUnchangedCanonicalPage = true) {
40809
+ this.applyPageUpdate(next, persist, runtime, syncCompositionAdapter, skipStateWidgetProjection, emitUnchangedCanonicalPage);
40810
+ if (this.authoredPageDefinition) {
40811
+ this.pageAuthoringChange.emit(this.clonePageDefinition(this.authoredPageDefinition));
40812
+ }
40813
+ }
40788
40814
  applyPageUpdate(next, persist = true, runtime = this.buildStateRuntime(next.state, next.context), syncCompositionAdapter = true, skipStateWidgetProjection = false, emitUnchangedCanonicalPage = true) {
40789
40815
  this.assertNoLegacyConnections(next);
40790
40816
  const normalized = { ...next, state: runtime.state };
@@ -41595,7 +41621,7 @@ class DynamicWidgetPageComponent {
41595
41621
  this.transientCanvasItemsState.set({});
41596
41622
  this.canvasPreviewState.set(null);
41597
41623
  this.canvasPreviewInvalidState.set(false);
41598
- this.applyPageUpdate(page, true);
41624
+ this.applyAuthoringPageUpdate(page, true);
41599
41625
  }
41600
41626
  else {
41601
41627
  this.transientCanvasItemsState.set(changed
@@ -42414,7 +42440,7 @@ class DynamicWidgetPageComponent {
42414
42440
  throw new Error('DynamicWidgetPageComponent no longer accepts `page.connections`. Use `composition.links` only.');
42415
42441
  }
42416
42442
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicWidgetPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42417
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetPageComponent, isStandalone: true, selector: "praxis-dynamic-page", inputs: { page: "page", context: "context", strictValidation: "strictValidation", enableCustomization: "enableCustomization", authoringCapabilities: "authoringCapabilities", showPageSettingsButton: "showPageSettingsButton", shellEditorComponent: "shellEditorComponent", pageEditorComponent: "pageEditorComponent", autoPersist: "autoPersist", pageIdentity: "pageIdentity", componentInstanceId: "componentInstanceId", showWidgetAssistantButton: "showWidgetAssistantButton" }, outputs: { pageChange: "pageChange", widgetEvent: "widgetEvent", widgetSelectionChange: "widgetSelectionChange", widgetAssistantRequested: "widgetAssistantRequested", widgetDiagnosticsChange: "widgetDiagnosticsChange" }, host: { listeners: { "window:resize": "onWindowResize()", "window:pointermove": "onCanvasPointerMove($event)", "window:pointerup": "onCanvasPointerUp($event)", "window:pointercancel": "onCanvasPointerCancel($event)" } }, providers: [providePraxisI18nConfig(DYNAMIC_WIDGET_PAGE_I18N_CONFIG)], viewQueries: [{ propertyName: "pageCanvasHost", first: true, predicate: ["pageCanvasHost"], descendants: true }, { propertyName: "widgetLoaders", predicate: ["widgetLoader"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
42443
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetPageComponent, isStandalone: true, selector: "praxis-dynamic-page", inputs: { page: "page", context: "context", strictValidation: "strictValidation", enableCustomization: "enableCustomization", authoringCapabilities: "authoringCapabilities", showPageSettingsButton: "showPageSettingsButton", shellEditorComponent: "shellEditorComponent", pageEditorComponent: "pageEditorComponent", autoPersist: "autoPersist", pageIdentity: "pageIdentity", componentInstanceId: "componentInstanceId", showWidgetAssistantButton: "showWidgetAssistantButton" }, outputs: { pageChange: "pageChange", pageAuthoringChange: "pageAuthoringChange", widgetEvent: "widgetEvent", widgetSelectionChange: "widgetSelectionChange", widgetAssistantRequested: "widgetAssistantRequested", widgetDiagnosticsChange: "widgetDiagnosticsChange" }, host: { listeners: { "window:resize": "onWindowResize()", "window:pointermove": "onCanvasPointerMove($event)", "window:pointerup": "onCanvasPointerUp($event)", "window:pointercancel": "onCanvasPointerCancel($event)" } }, providers: [providePraxisI18nConfig(DYNAMIC_WIDGET_PAGE_I18N_CONFIG)], viewQueries: [{ propertyName: "pageCanvasHost", first: true, predicate: ["pageCanvasHost"], descendants: true }, { propertyName: "widgetLoaders", predicate: ["widgetLoader"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
42418
42444
  <div
42419
42445
  class="pdx-page-wrapper"
42420
42446
  [class.editing]="enableCustomization"
@@ -43246,7 +43272,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
43246
43272
  type: Input
43247
43273
  }], pageChange: [{
43248
43274
  type: Output
43249
- }], widgetEvent: [{
43275
+ }], pageAuthoringChange: [{ type: i0.Output, args: ["pageAuthoringChange"] }], widgetEvent: [{
43250
43276
  type: Output
43251
43277
  }], widgetSelectionChange: [{
43252
43278
  type: Output
@@ -43340,7 +43366,12 @@ const PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA = {
43340
43366
  {
43341
43367
  name: 'pageChange',
43342
43368
  type: 'WidgetPageDefinition',
43343
- description: 'Emitido ao alterar a definição authorada da página; projeções transitórias de composição permanecem somente no runtime.',
43369
+ description: 'Emitido quando a página canônica muda por authoring ou por estado runtime persistente; projeções transitórias permanecem somente no runtime.',
43370
+ },
43371
+ {
43372
+ name: 'pageAuthoringChange',
43373
+ type: 'WidgetPageDefinition',
43374
+ description: 'Emitido somente após operações explícitas de authoring, separado de mudanças de estado e composição do runtime.',
43344
43375
  },
43345
43376
  {
43346
43377
  name: 'widgetEvent',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/core",
3
- "version": "9.0.53",
3
+ "version": "9.0.54",
4
4
  "description": "Core library for Praxis UI Workspace: types, tokens, services and utilities shared across @praxisui/* packages.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
@@ -11029,6 +11029,7 @@ declare class SurfaceOpenMaterializerService {
11029
11029
  private hasRelatedChildWriteOperations;
11030
11030
  private resolveRelatedChildOperations;
11031
11031
  private resolveRelatedResource;
11032
+ private resolveRelatedCommandResourcePath;
11032
11033
  private buildRelatedParentInitialValue;
11033
11034
  private buildRelatedContextFields;
11034
11035
  private resolveRelatedSelectionKeyField;
@@ -16535,6 +16536,8 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
16535
16536
  /** Enables a contextual authoring assistant entrypoint for the selected widget. */
16536
16537
  showWidgetAssistantButton: boolean;
16537
16538
  pageChange: EventEmitter<WidgetPageDefinition>;
16539
+ /** Emits only explicit authoring operations, never runtime state projection. */
16540
+ readonly pageAuthoringChange: i0.OutputEmitterRef<WidgetPageDefinition>;
16538
16541
  widgetEvent: EventEmitter<WidgetEventEnvelope>;
16539
16542
  widgetSelectionChange: EventEmitter<string | null>;
16540
16543
  widgetAssistantRequested: EventEmitter<string>;
@@ -16749,6 +16752,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
16749
16752
  private constrainWidgetShellResult;
16750
16753
  private restoreWidgetShellFields;
16751
16754
  private applyPageLayout;
16755
+ private applyAuthoringPageUpdate;
16752
16756
  private applyPageUpdate;
16753
16757
  private applyLayout;
16754
16758
  private applyCanvasLayout;
@@ -16885,7 +16889,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
16885
16889
  private sanitizeSegment;
16886
16890
  private assertNoLegacyConnections;
16887
16891
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetPageComponent, never>;
16888
- 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; }; "authoringCapabilities": { "alias": "authoringCapabilities"; "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>;
16892
+ 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; }; "authoringCapabilities": { "alias": "authoringCapabilities"; "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"; "pageAuthoringChange": "pageAuthoringChange"; "widgetEvent": "widgetEvent"; "widgetSelectionChange": "widgetSelectionChange"; "widgetAssistantRequested": "widgetAssistantRequested"; "widgetDiagnosticsChange": "widgetDiagnosticsChange"; }, never, never, true, never>;
16889
16893
  }
16890
16894
 
16891
16895
  /** Metadata for Praxis Dynamic Page component */