@praxisui/core 9.0.27 → 9.0.28

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
@@ -193,6 +193,13 @@ export class PageComponent {
193
193
 
194
194
  Use `page.composition.links` for persisted wiring. `page.connections` is legacy/residual and should not be used for new pages or examples. Nested component ports should use `component-port` endpoints with `ref.nestedPath`.
195
195
 
196
+ When a host enables dynamic-page customization, it can pass a transient
197
+ `WidgetPageAuthoringCapabilities` grant through `authoringCapabilities` to expose only the canvas,
198
+ page settings, widget shell, component-input, removal and child-customization operations that the
199
+ host actually supports. Omitted entries preserve full authoring for backward compatibility. This
200
+ grant controls visible authoring operations only: it is not persisted in `WidgetPageDefinition` and
201
+ does not replace component manifests, backend capabilities, authorization or validation.
202
+
196
203
  Page-owned business copy can use `page.i18n` plus explicit `PraxisTextValue`
197
204
  descriptors inside widget shells or nested widget inputs. The runtime resolves
198
205
  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-28T01:18:20.814Z",
3
+ "generatedAt": "2026-08-28T04:22:11.708Z",
4
4
  "packageName": "@praxisui/core",
5
- "packageVersion": "9.0.27",
5
+ "packageVersion": "9.0.28",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 4,
@@ -480,6 +480,12 @@
480
480
  "required": false,
481
481
  "description": "Habilita affordances de edição na página."
482
482
  },
483
+ {
484
+ "name": "authoringCapabilities",
485
+ "type": "WidgetPageAuthoringCapabilities",
486
+ "required": false,
487
+ "description": "Restringe granularmente as operações de authoring permitidas pelo host."
488
+ },
483
489
  {
484
490
  "name": "showPageSettingsButton",
485
491
  "type": "boolean",
@@ -1938,6 +1944,7 @@
1938
1944
  "Nao gere links nested via owner.widgetEvent, bindingPath profundo, page.connections ou wrappers host-specific. widgetEvent e bridge legada/avancada, nao contrato principal de authoring.",
1939
1945
  "Payloads legados de layout ainda podem ser ingeridos, mas sao normalizados para canvas e nao devem ser reemitidos.",
1940
1946
  "pageIdentity identifica o escopo de persistencia e nao pertence ao objeto page.",
1947
+ "authoringCapabilities é um grant transitório do host para limitar affordances visíveis; não integra WidgetPageDefinition, não é persistido e não concede autoridade de edição à IA.",
1941
1948
  "Este catálogo é específico para o runtime praxis-dynamic-page; operações de authoring/mutação pertencem ao manifesto do praxis-page-builder.",
1942
1949
  "WidgetPageDefinition e o contrato canonico persistido: widgets, composition.links, state, context, i18n, layout, canvas, presets, grouping, slotAssignments, deviceLayouts e themePreset.",
1943
1950
  "Widgets e page.composition.links sao arrays; ferramentas de patch legadas fazem merge por key estavel e id estavel.",
@@ -2981,9 +2988,9 @@
2981
2988
  {
2982
2989
  "chunkIndex": 0,
2983
2990
  "chunkKind": "summary",
2984
- "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 - 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",
2991
+ "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",
2985
2992
  "sourcePointer": "projects/praxis-core/src/lib/widgets/dynamic-widget-page.metadata.ts",
2986
- "contentHash": "7575dbf241f37111a9acc2367fc82ced61f9ddf28586125b3a3b346d35a1fb7a",
2993
+ "contentHash": "27a7ae1a0c39ca506ccadd06b095f4370d5e57e34558965fbd40da1d82b3143d",
2987
2994
  "sourceKind": "component_definition",
2988
2995
  "sourceId": "praxis-dynamic-page",
2989
2996
  "corpusVersion": "1.0.0"
@@ -3041,9 +3048,9 @@
3041
3048
  {
3042
3049
  "chunkIndex": 6,
3043
3050
  "chunkKind": "capabilities",
3044
- "content": "Component Capability:\n - Path: page.deviceLayouts.mobile.widgetOverrides.<widgetKey>.hidden\n Category: layout\n Kind: boolean\n Description: Oculta o widget em mobile.\n\nCapability Note:\n - page segue o modelo canonico WidgetPageDefinition (widgets, composition.links, context e state opcional); composition.links tambem pode despachar actions globais via to.kind = global-action.\n\nCapability Note:\n - Conteudo editorial rico deve ser modelado como widget praxis-rich-content com definition.inputs.document: RichContentDocument, nao como DSL local do page-builder.\n\nCapability Note:\n - Quando definition.id = praxis-rich-content em uma pagina dinamica, definition.inputs.document continua sendo o contrato persistido; hostCapabilities e mediado em runtime pelo host praxis-dynamic-page e nao deve ser serializado no JSON da pagina.\n\nCapability Note:\n - Edicao visual de inputs de widget deve usar ComponentDocMeta.configEditor ou ComponentDocMeta.authoringManifestRef publicado pela lib dona do componente; nao criar editor local no page-builder para semantica de outro pacote.\n\nCapability Note:\n - Canvas e o modelo espacial canonico da pagina quando houver posicionamento explicito.\n\nCapability Note:\n - Taxonomia editorial: condition usa Json Logic canonico; transform usa pipeline declarativo; policy cobre apenas comportamento operacional.\n\nCapability Note:\n - Para criacao agentic de paginas, o preview pode trazer uiCompositionPlan como plano intermediario validavel; o page-builder compila esse plano para WidgetPageDefinition antes de aplicar.\n\nCapability Note:\n - UiCompositionPlan usa widgets[].componentId e bindings declarativos. UiCompositionPlanTemplateReference pode piná-lo por registryKey + configSha256, mas precisa ser resolvido pelo backend governado antes da compilação. O JSON persistido continua sendo page.widgets[].definition.id e page.composition.links.\n\nCapability Note:\n - Nested component ports usam endpoint component-port com nestedPath. O owner em ref.widget ou bindings[].*.widget continua sendo o widget top-level; a porta real do filho fica em port/direction e o caminho ate o filho fica em nestedPath.\n\nCapability Note:\n - Nao gere links nested via owner.widgetEvent, bindingPath profundo, page.connections ou wrappers host-specific. widgetEvent e bridge legada/avancada, nao contrato principal de authoring.\n\nCapability Note:\n - Payloads legados de layout ainda podem ser ingeridos, mas sao normalizados para canvas e nao devem ser reemitidos.\n\nCapability Note:\n - pageIdentity identifica o escopo de persistencia e nao pertence ao objeto page.\n\nCapability Note:\n - Este catálogo é específico para o runtime praxis-dynamic-page; operações de authoring/mutação pertencem ao manifesto do praxis-page-builder.\n\nCapability Note:\n - WidgetPageDefinition e o contrato canonico persistido: widgets, composition.links, state, context, i18n, layout, canvas, presets, grouping, slotAssignments, deviceLayouts e themePreset.\n\nCapability Note:\n - Widgets e page.composition.links sao arrays; ferramentas de patch legadas fazem merge por key estavel e id estavel.\n\nCapability Note:\n - page.canvas.items é um mapa por widget key; não modele canvas.items como array.\n\nCapability Note:\n - Taxonomia editorial: condition usa Json Logic canônico; transform usa pipeline declarativo; não trate ambos como a mesma \"expression\".\n\nCapability Note:\n - Para remocao/replace, use flags {_remove:true} ou {_replace:true} no item.\n\nCapability Note:\n - Para renomear um link, inclua {_beforeKey:\"link-id-anterior\"} no item.\n\nCapability Note:\n - Inputs de widgets dependem do componente (ex: praxis-table, praxis-dynamic-form). Evite inventar campos; prefira pedir confirmação.\n\nCapability Note:\n - Quando page.widgets[].definition.id for praxis-rich-content, o host praxis-dynamic-page injeta hostCapabilities em runtime para actions e capability gating; não serialize funções nem tente persistir page.widgets[].definition.inputs.hostCapabilities.\n\nCapability Note:\n - Use ids estaveis para links e keys estaveis para widgets.\n\nCapability Note:\n - Nested component ports usam endpoint component-port com nestedPath; o owner em ref.widget continua sendo o widget top-level.\n\nCapability Note:\n - Objetivo: compor widgets e relacionamentos canonicos (ex.: master-detail).\n\nCapability Note:\n - Link tipico de master-detail: component-port(table.rowClick) -> component-port(form.resourceId) com transform map payload.row.id.",
3051
+ "content": "Component Capability:\n - Path: page.deviceLayouts.mobile.widgetOverrides.<widgetKey>.hidden\n Category: layout\n Kind: boolean\n Description: Oculta o widget em mobile.\n\nCapability Note:\n - page segue o modelo canonico WidgetPageDefinition (widgets, composition.links, context e state opcional); composition.links tambem pode despachar actions globais via to.kind = global-action.\n\nCapability Note:\n - Conteudo editorial rico deve ser modelado como widget praxis-rich-content com definition.inputs.document: RichContentDocument, nao como DSL local do page-builder.\n\nCapability Note:\n - Quando definition.id = praxis-rich-content em uma pagina dinamica, definition.inputs.document continua sendo o contrato persistido; hostCapabilities e mediado em runtime pelo host praxis-dynamic-page e nao deve ser serializado no JSON da pagina.\n\nCapability Note:\n - Edicao visual de inputs de widget deve usar ComponentDocMeta.configEditor ou ComponentDocMeta.authoringManifestRef publicado pela lib dona do componente; nao criar editor local no page-builder para semantica de outro pacote.\n\nCapability Note:\n - Canvas e o modelo espacial canonico da pagina quando houver posicionamento explicito.\n\nCapability Note:\n - Taxonomia editorial: condition usa Json Logic canonico; transform usa pipeline declarativo; policy cobre apenas comportamento operacional.\n\nCapability Note:\n - Para criacao agentic de paginas, o preview pode trazer uiCompositionPlan como plano intermediario validavel; o page-builder compila esse plano para WidgetPageDefinition antes de aplicar.\n\nCapability Note:\n - UiCompositionPlan usa widgets[].componentId e bindings declarativos. UiCompositionPlanTemplateReference pode piná-lo por registryKey + configSha256, mas precisa ser resolvido pelo backend governado antes da compilação. O JSON persistido continua sendo page.widgets[].definition.id e page.composition.links.\n\nCapability Note:\n - Nested component ports usam endpoint component-port com nestedPath. O owner em ref.widget ou bindings[].*.widget continua sendo o widget top-level; a porta real do filho fica em port/direction e o caminho ate o filho fica em nestedPath.\n\nCapability Note:\n - Nao gere links nested via owner.widgetEvent, bindingPath profundo, page.connections ou wrappers host-specific. widgetEvent e bridge legada/avancada, nao contrato principal de authoring.\n\nCapability Note:\n - Payloads legados de layout ainda podem ser ingeridos, mas sao normalizados para canvas e nao devem ser reemitidos.\n\nCapability Note:\n - pageIdentity identifica o escopo de persistencia e nao pertence ao objeto page.\n\nCapability Note:\n - authoringCapabilities é um grant transitório do host para limitar affordances visíveis; não integra WidgetPageDefinition, não é persistido e não concede autoridade de edição à IA.\n\nCapability Note:\n - Este catálogo é específico para o runtime praxis-dynamic-page; operações de authoring/mutação pertencem ao manifesto do praxis-page-builder.\n\nCapability Note:\n - WidgetPageDefinition e o contrato canonico persistido: widgets, composition.links, state, context, i18n, layout, canvas, presets, grouping, slotAssignments, deviceLayouts e themePreset.\n\nCapability Note:\n - Widgets e page.composition.links sao arrays; ferramentas de patch legadas fazem merge por key estavel e id estavel.\n\nCapability Note:\n - page.canvas.items é um mapa por widget key; não modele canvas.items como array.\n\nCapability Note:\n - Taxonomia editorial: condition usa Json Logic canônico; transform usa pipeline declarativo; não trate ambos como a mesma \"expression\".\n\nCapability Note:\n - Para remocao/replace, use flags {_remove:true} ou {_replace:true} no item.\n\nCapability Note:\n - Para renomear um link, inclua {_beforeKey:\"link-id-anterior\"} no item.\n\nCapability Note:\n - Inputs de widgets dependem do componente (ex: praxis-table, praxis-dynamic-form). Evite inventar campos; prefira pedir confirmação.\n\nCapability Note:\n - Quando page.widgets[].definition.id for praxis-rich-content, o host praxis-dynamic-page injeta hostCapabilities em runtime para actions e capability gating; não serialize funções nem tente persistir page.widgets[].definition.inputs.hostCapabilities.\n\nCapability Note:\n - Use ids estaveis para links e keys estaveis para widgets.\n\nCapability Note:\n - Nested component ports usam endpoint component-port com nestedPath; o owner em ref.widget continua sendo o widget top-level.\n\nCapability Note:\n - Objetivo: compor widgets e relacionamentos canonicos (ex.: master-detail).\n\nCapability Note:\n - Link tipico de master-detail: component-port(table.rowClick) -> component-port(form.resourceId) com transform map payload.row.id.",
3045
3052
  "sourcePointer": "projects/praxis-core/src/lib/ai/dynamic-page-ai-capabilities.ts",
3046
- "contentHash": "8c2505b24e90fa2a568ab51e9ba82bd22360fb10f9deee8e2ff18f50a0caaed0",
3053
+ "contentHash": "56c5c10d5c3f63e96f2da523775d1549bf1fa8d0f6ab49007ab76d1731520138",
3047
3054
  "sourceKind": "component_definition",
3048
3055
  "sourceId": "praxis-dynamic-page",
3049
3056
  "corpusVersion": "1.0.0"
@@ -37066,6 +37066,7 @@ class DynamicWidgetContextToolbarComponent {
37066
37066
  showShellSettings = false;
37067
37067
  shellSettingsLabel = '';
37068
37068
  shellSettingsTooltip = '';
37069
+ showRemove = true;
37069
37070
  moreActionsLabel = '';
37070
37071
  removeLabel = '';
37071
37072
  assistant = new EventEmitter();
@@ -37073,7 +37074,7 @@ class DynamicWidgetContextToolbarComponent {
37073
37074
  shellSettings = new EventEmitter();
37074
37075
  remove = new EventEmitter();
37075
37076
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicWidgetContextToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37076
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetContextToolbarComponent, isStandalone: true, selector: "praxis-dynamic-widget-context-toolbar", inputs: { toolbarLabel: "toolbarLabel", contextLabel: "contextLabel", contextTooltip: "contextTooltip", showAssistant: "showAssistant", assistantLabel: "assistantLabel", assistantTooltip: "assistantTooltip", showComponentSettings: "showComponentSettings", componentSettingsLabel: "componentSettingsLabel", componentSettingsTooltip: "componentSettingsTooltip", showShellSettings: "showShellSettings", shellSettingsLabel: "shellSettingsLabel", shellSettingsTooltip: "shellSettingsTooltip", moreActionsLabel: "moreActionsLabel", removeLabel: "removeLabel" }, outputs: { assistant: "assistant", componentSettings: "componentSettings", shellSettings: "shellSettings", remove: "remove" }, ngImport: i0, template: `
37077
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.14", type: DynamicWidgetContextToolbarComponent, isStandalone: true, selector: "praxis-dynamic-widget-context-toolbar", inputs: { toolbarLabel: "toolbarLabel", contextLabel: "contextLabel", contextTooltip: "contextTooltip", showAssistant: "showAssistant", assistantLabel: "assistantLabel", assistantTooltip: "assistantTooltip", showComponentSettings: "showComponentSettings", componentSettingsLabel: "componentSettingsLabel", componentSettingsTooltip: "componentSettingsTooltip", showShellSettings: "showShellSettings", shellSettingsLabel: "shellSettingsLabel", shellSettingsTooltip: "shellSettingsTooltip", showRemove: "showRemove", moreActionsLabel: "moreActionsLabel", removeLabel: "removeLabel" }, outputs: { assistant: "assistant", componentSettings: "componentSettings", shellSettings: "shellSettings", remove: "remove" }, ngImport: i0, template: `
37077
37078
  <div
37078
37079
  class="pdx-widget-context-toolbar"
37079
37080
  [class.pdx-widget-context-toolbar--with-context]="!!contextLabel"
@@ -37125,21 +37126,23 @@ class DynamicWidgetContextToolbarComponent {
37125
37126
  (click)="shellSettings.emit()"
37126
37127
  ></button>
37127
37128
  }
37128
- <button
37129
- praxisIconButton="ms:more_horiz"
37130
- size="dense"
37131
- type="button"
37132
- data-testid="dynamic-widget-more-actions"
37133
- [matTooltip]="moreActionsLabel"
37134
- [attr.aria-label]="moreActionsLabel"
37135
- [matMenuTriggerFor]="widgetContextMenu"
37136
- ></button>
37137
- <mat-menu #widgetContextMenu="matMenu">
37138
- <button mat-menu-item type="button" data-testid="dynamic-widget-remove" (click)="remove.emit()">
37139
- <mat-icon [praxisIcon]="'delete'"></mat-icon>
37140
- <span>{{ removeLabel }}</span>
37141
- </button>
37142
- </mat-menu>
37129
+ @if (showRemove) {
37130
+ <button
37131
+ praxisIconButton="ms:more_horiz"
37132
+ size="dense"
37133
+ type="button"
37134
+ data-testid="dynamic-widget-more-actions"
37135
+ [matTooltip]="moreActionsLabel"
37136
+ [attr.aria-label]="moreActionsLabel"
37137
+ [matMenuTriggerFor]="widgetContextMenu"
37138
+ ></button>
37139
+ <mat-menu #widgetContextMenu="matMenu">
37140
+ <button mat-menu-item type="button" data-testid="dynamic-widget-remove" (click)="remove.emit()">
37141
+ <mat-icon [praxisIcon]="'delete'"></mat-icon>
37142
+ <span>{{ removeLabel }}</span>
37143
+ </button>
37144
+ </mat-menu>
37145
+ }
37143
37146
  </div>
37144
37147
  `, isInline: true, styles: [".pdx-widget-context-toolbar{position:absolute;top:-19px;right:12px;z-index:4;display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:2px 4px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 28%,var(--md-sys-color-outline-variant));border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 88%,transparent);box-shadow:0 10px 28px #0f172a38,0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pdx-widget-context-toolbar--with-context{border-radius:18px}.pdx-widget-context-toolbar__context{display:inline-flex;align-items:center;align-self:stretch;max-width:180px;padding:0 8px 0 10px;border-right:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 64%,transparent);color:var(--md-sys-color-on-surface-variant);font-size:11px;font-weight:700;letter-spacing:.01em;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: PraxisIconDirective, selector: "mat-icon[praxisIcon]", inputs: ["praxisIcon"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37145
37148
  }
@@ -37203,21 +37206,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
37203
37206
  (click)="shellSettings.emit()"
37204
37207
  ></button>
37205
37208
  }
37206
- <button
37207
- praxisIconButton="ms:more_horiz"
37208
- size="dense"
37209
- type="button"
37210
- data-testid="dynamic-widget-more-actions"
37211
- [matTooltip]="moreActionsLabel"
37212
- [attr.aria-label]="moreActionsLabel"
37213
- [matMenuTriggerFor]="widgetContextMenu"
37214
- ></button>
37215
- <mat-menu #widgetContextMenu="matMenu">
37216
- <button mat-menu-item type="button" data-testid="dynamic-widget-remove" (click)="remove.emit()">
37217
- <mat-icon [praxisIcon]="'delete'"></mat-icon>
37218
- <span>{{ removeLabel }}</span>
37219
- </button>
37220
- </mat-menu>
37209
+ @if (showRemove) {
37210
+ <button
37211
+ praxisIconButton="ms:more_horiz"
37212
+ size="dense"
37213
+ type="button"
37214
+ data-testid="dynamic-widget-more-actions"
37215
+ [matTooltip]="moreActionsLabel"
37216
+ [attr.aria-label]="moreActionsLabel"
37217
+ [matMenuTriggerFor]="widgetContextMenu"
37218
+ ></button>
37219
+ <mat-menu #widgetContextMenu="matMenu">
37220
+ <button mat-menu-item type="button" data-testid="dynamic-widget-remove" (click)="remove.emit()">
37221
+ <mat-icon [praxisIcon]="'delete'"></mat-icon>
37222
+ <span>{{ removeLabel }}</span>
37223
+ </button>
37224
+ </mat-menu>
37225
+ }
37221
37226
  </div>
37222
37227
  `, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".pdx-widget-context-toolbar{position:absolute;top:-19px;right:12px;z-index:4;display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:2px 4px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 28%,var(--md-sys-color-outline-variant));border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-surface-container-high) 88%,transparent);box-shadow:0 10px 28px #0f172a38,0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.pdx-widget-context-toolbar--with-context{border-radius:18px}.pdx-widget-context-toolbar__context{display:inline-flex;align-items:center;align-self:stretch;max-width:180px;padding:0 8px 0 10px;border-right:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 64%,transparent);color:var(--md-sys-color-on-surface-variant);font-size:11px;font-weight:700;letter-spacing:.01em;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
37223
37228
  }], propDecorators: { toolbarLabel: [{
@@ -37244,6 +37249,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
37244
37249
  type: Input
37245
37250
  }], shellSettingsTooltip: [{
37246
37251
  type: Input
37252
+ }], showRemove: [{
37253
+ type: Input
37247
37254
  }], moreActionsLabel: [{
37248
37255
  type: Input
37249
37256
  }], removeLabel: [{
@@ -37483,6 +37490,8 @@ class DynamicWidgetPageComponent {
37483
37490
  strictValidation = true;
37484
37491
  /** Enables lightweight editing affordances (shell + page layout). */
37485
37492
  enableCustomization = false;
37493
+ /** Optional host grant that narrows the available authoring operations. */
37494
+ authoringCapabilities;
37486
37495
  /** Shows page settings button when edit mode is enabled. */
37487
37496
  showPageSettingsButton = true;
37488
37497
  /** Optional editor component override for widget shell settings. */
@@ -37598,6 +37607,7 @@ class DynamicWidgetPageComponent {
37598
37607
  if (changes['page'] ||
37599
37608
  changes['context'] ||
37600
37609
  changes['enableCustomization'] ||
37610
+ changes['authoringCapabilities'] ||
37601
37611
  changes['pageIdentity']) {
37602
37612
  this.widgetShellRenderCache.clear();
37603
37613
  const parsed = this.parsePage(this.page);
@@ -38866,10 +38876,21 @@ class DynamicWidgetPageComponent {
38866
38876
  }
38867
38877
  return `widget:${fromKey}:${output}:${timestamp}:${sequence}`;
38868
38878
  }
38879
+ canCustomizeCanvas() {
38880
+ return this.isAuthoringCapabilityEnabled('canvas');
38881
+ }
38882
+ canOpenPageSettings() {
38883
+ return this.isAuthoringCapabilityEnabled('pageSettings')
38884
+ && this.showPageSettingsButton
38885
+ && !!(this.pageEditorComponent || this.defaultPageEditor);
38886
+ }
38869
38887
  canOpenWidgetShellSettings() {
38870
- return !!(this.shellEditorComponent || this.defaultShellEditor);
38888
+ return this.isWidgetShellCapabilityEnabled()
38889
+ && !!(this.shellEditorComponent || this.defaultShellEditor);
38871
38890
  }
38872
38891
  canOpenWidgetComponentSettings(key) {
38892
+ if (!this.isAuthoringCapabilityEnabled('widgetInputs'))
38893
+ return false;
38873
38894
  const page = this.pageDefinition || this.parsePage(this.page);
38874
38895
  const widget = page?.widgets?.find((candidate) => candidate.key === key);
38875
38896
  if (!widget)
@@ -38877,6 +38898,38 @@ class DynamicWidgetPageComponent {
38877
38898
  const metadata = this.componentMetadata?.get(widget.definition?.id || '');
38878
38899
  return !!metadata?.configEditor?.component;
38879
38900
  }
38901
+ canRemoveWidgets() {
38902
+ return this.isAuthoringCapabilityEnabled('widgetRemoval');
38903
+ }
38904
+ canRequestWidgetAssistant() {
38905
+ return this.enableCustomization && this.showWidgetAssistantButton;
38906
+ }
38907
+ canSelectWidgets() {
38908
+ return this.enableCustomization && (this.canCustomizeCanvas()
38909
+ || this.canOpenWidgetShellSettings()
38910
+ || this.isAuthoringCapabilityEnabled('widgetInputs')
38911
+ || this.canRemoveWidgets()
38912
+ || this.canRequestWidgetAssistant());
38913
+ }
38914
+ isAuthoringCapabilityEnabled(capability) {
38915
+ return this.enableCustomization
38916
+ && this.authoringCapabilities?.[capability] !== false;
38917
+ }
38918
+ isWidgetShellCapabilityEnabled() {
38919
+ return this.isWidgetShellCapabilityEnabledFor('identity')
38920
+ || this.isWidgetShellCapabilityEnabledFor('appearance')
38921
+ || this.isWidgetShellCapabilityEnabledFor('actions');
38922
+ }
38923
+ isWidgetShellCapabilityEnabledFor(capability) {
38924
+ if (!this.enableCustomization)
38925
+ return false;
38926
+ const widgetShell = this.authoringCapabilities?.widgetShell;
38927
+ if (widgetShell === false)
38928
+ return false;
38929
+ if (!widgetShell || widgetShell === true)
38930
+ return true;
38931
+ return widgetShell[capability] !== false;
38932
+ }
38880
38933
  componentSettingsLabel() {
38881
38934
  return this.t('controls.componentSettings', 'Configurar conteúdo');
38882
38935
  }
@@ -38896,6 +38949,8 @@ class DynamicWidgetPageComponent {
38896
38949
  return this.t('controls.widgetAssistantTooltip', 'Abrir o assistente Praxis com contexto deste widget');
38897
38950
  }
38898
38951
  requestWidgetAssistant(widgetKey) {
38952
+ if (!this.canRequestWidgetAssistant())
38953
+ return;
38899
38954
  this.selectWidget(widgetKey);
38900
38955
  this.widgetAssistantRequested.emit(widgetKey);
38901
38956
  }
@@ -38920,7 +38975,8 @@ class DynamicWidgetPageComponent {
38920
38975
  });
38921
38976
  }
38922
38977
  shouldRenderWidgetContextOverlay(widget) {
38923
- return (this.enableCustomization && !this.hasVisibleWidgetShellHeader(widget));
38978
+ return (this.hasWidgetContextAuthoringActions(widget)
38979
+ && !this.hasVisibleWidgetShellHeader(widget));
38924
38980
  }
38925
38981
  widgetShellForRender(widget) {
38926
38982
  if (!this.shouldProjectWidgetHeaderActions(widget)) {
@@ -38964,7 +39020,14 @@ class DynamicWidgetPageComponent {
38964
39020
  return metadata?.friendlyName || componentId || widget.key;
38965
39021
  }
38966
39022
  shouldProjectWidgetHeaderActions(widget) {
38967
- return this.enableCustomization && this.hasVisibleWidgetShellHeader(widget);
39023
+ return this.hasWidgetContextAuthoringActions(widget)
39024
+ && this.hasVisibleWidgetShellHeader(widget);
39025
+ }
39026
+ hasWidgetContextAuthoringActions(widget) {
39027
+ return this.canRequestWidgetAssistant()
39028
+ || this.canOpenWidgetComponentSettings(widget.key)
39029
+ || this.canOpenWidgetShellSettings()
39030
+ || this.canRemoveWidgets();
38968
39031
  }
38969
39032
  hasVisibleWidgetShellHeader(widget) {
38970
39033
  const shell = widget.shell;
@@ -38989,7 +39052,7 @@ class DynamicWidgetPageComponent {
38989
39052
  }
38990
39053
  buildProjectedWidgetShellActions(widget) {
38991
39054
  const actions = [];
38992
- if (this.showWidgetAssistantButton) {
39055
+ if (this.canRequestWidgetAssistant()) {
38993
39056
  actions.push({
38994
39057
  id: 'widget-assistant',
38995
39058
  label: this.widgetAssistantLabel(),
@@ -39019,14 +39082,16 @@ class DynamicWidgetPageComponent {
39019
39082
  placement: 'header',
39020
39083
  });
39021
39084
  }
39022
- actions.push({
39023
- id: 'widget-remove',
39024
- label: this.widgetRemoveLabel(),
39025
- tooltip: this.widgetRemoveLabel(),
39026
- icon: 'delete',
39027
- variant: 'icon',
39028
- placement: 'header',
39029
- });
39085
+ if (this.canRemoveWidgets()) {
39086
+ actions.push({
39087
+ id: 'widget-remove',
39088
+ label: this.widgetRemoveLabel(),
39089
+ tooltip: this.widgetRemoveLabel(),
39090
+ icon: 'delete',
39091
+ variant: 'icon',
39092
+ placement: 'header',
39093
+ });
39094
+ }
39030
39095
  return actions;
39031
39096
  }
39032
39097
  widgetShellActionSignature(actions) {
@@ -39084,6 +39149,8 @@ class DynamicWidgetPageComponent {
39084
39149
  this.cancelCanvasInteractionForWidget(fromKey);
39085
39150
  }
39086
39151
  if (evt.id === 'widget-assistant') {
39152
+ if (!this.canRequestWidgetAssistant())
39153
+ return;
39087
39154
  this.requestWidgetAssistant(fromKey);
39088
39155
  return;
39089
39156
  }
@@ -39239,6 +39306,8 @@ class DynamicWidgetPageComponent {
39239
39306
  return path.split('.').reduce((acc, key) => acc?.[key], ctx);
39240
39307
  }
39241
39308
  openWidgetShellSettings(key) {
39309
+ if (!this.canOpenWidgetShellSettings())
39310
+ return;
39242
39311
  if (!this.settingsPanel)
39243
39312
  return;
39244
39313
  const editor = this.shellEditorComponent || this.defaultShellEditor;
@@ -39260,6 +39329,7 @@ class DynamicWidgetPageComponent {
39260
39329
  widgetType: widget.definition?.id,
39261
39330
  presets: uiShell?.presets || null,
39262
39331
  pagePreset: uiShell?.preset || null,
39332
+ authoringCapabilities: this.authoringCapabilities,
39263
39333
  },
39264
39334
  },
39265
39335
  });
@@ -39267,6 +39337,8 @@ class DynamicWidgetPageComponent {
39267
39337
  ref.saved$.subscribe((result) => this.applyWidgetShell(key, result, true));
39268
39338
  }
39269
39339
  async openWidgetComponentSettings(key) {
39340
+ if (!this.canOpenWidgetComponentSettings(key))
39341
+ return;
39270
39342
  if (!this.settingsPanel) {
39271
39343
  this.dispatchWidgetComponentSettingsToRuntime(key);
39272
39344
  return;
@@ -39423,6 +39495,8 @@ class DynamicWidgetPageComponent {
39423
39495
  this.applyPageUpdate({ ...page, widgets }, persist);
39424
39496
  }
39425
39497
  async confirmAndRemoveWidget(widgetKey) {
39498
+ if (!this.canRemoveWidgets())
39499
+ return;
39426
39500
  const page = this.ensurePageDefinition();
39427
39501
  const widget = page.widgets.find((item) => item.key === widgetKey);
39428
39502
  if (!widget) {
@@ -39551,6 +39625,8 @@ class DynamicWidgetPageComponent {
39551
39625
  return (endpoint.kind === 'component-port' && endpoint.ref.widget === widgetKey);
39552
39626
  }
39553
39627
  openPageSettings() {
39628
+ if (!this.canOpenPageSettings())
39629
+ return;
39554
39630
  if (!this.settingsPanel)
39555
39631
  return;
39556
39632
  const editor = this.pageEditorComponent || this.defaultPageEditor;
@@ -39568,6 +39644,7 @@ class DynamicWidgetPageComponent {
39568
39644
  layout: page.layout || null,
39569
39645
  presets: uiShell?.presets || null,
39570
39646
  pagePreset: uiShell?.preset || null,
39647
+ authoringCapabilities: this.authoringCapabilities,
39571
39648
  },
39572
39649
  },
39573
39650
  });
@@ -39578,9 +39655,16 @@ class DynamicWidgetPageComponent {
39578
39655
  if (!result)
39579
39656
  return;
39580
39657
  const page = this.ensurePageDefinition();
39581
- const widgets = page.widgets.map((w) => w.key === key ? { ...w, shell: result.shell ?? null } : w);
39658
+ const widgets = page.widgets.map((w) => w.key === key
39659
+ ? {
39660
+ ...w,
39661
+ shell: this.constrainWidgetShellResult(w.shell, result.shell),
39662
+ }
39663
+ : w);
39582
39664
  let context = page.context || {};
39583
- if (result.applyToAll && result.pagePreset) {
39665
+ if (this.isWidgetShellCapabilityEnabledFor('pagePreset') &&
39666
+ result.applyToAll &&
39667
+ result.pagePreset) {
39584
39668
  const ui = { ...context.ui };
39585
39669
  const shell = { ...(ui?.shell || {}) };
39586
39670
  shell.preset = result.pagePreset;
@@ -39589,6 +39673,41 @@ class DynamicWidgetPageComponent {
39589
39673
  }
39590
39674
  this.applyPageUpdate({ ...page, widgets, context }, persist);
39591
39675
  }
39676
+ constrainWidgetShellResult(original, proposed) {
39677
+ const next = proposed ? { ...proposed } : {};
39678
+ if (!this.isWidgetShellCapabilityEnabledFor('identity')) {
39679
+ this.restoreWidgetShellFields(next, original, [
39680
+ 'kind',
39681
+ 'preset',
39682
+ 'icon',
39683
+ 'title',
39684
+ 'subtitle',
39685
+ 'showHeader',
39686
+ 'windowActions',
39687
+ 'collapsed',
39688
+ 'expanded',
39689
+ 'fullscreen',
39690
+ ]);
39691
+ }
39692
+ if (!this.isWidgetShellCapabilityEnabledFor('appearance')) {
39693
+ this.restoreWidgetShellFields(next, original, [
39694
+ 'bodyLayout',
39695
+ 'appearance',
39696
+ ]);
39697
+ }
39698
+ if (!this.isWidgetShellCapabilityEnabledFor('actions')) {
39699
+ this.restoreWidgetShellFields(next, original, ['actions']);
39700
+ }
39701
+ return Object.keys(next).length ? next : undefined;
39702
+ }
39703
+ restoreWidgetShellFields(target, source, fields) {
39704
+ for (const field of fields) {
39705
+ delete target[field];
39706
+ if (source && Object.prototype.hasOwnProperty.call(source, field)) {
39707
+ Object.assign(target, { [field]: source[field] });
39708
+ }
39709
+ }
39710
+ }
39592
39711
  applyPageLayout(result, persist) {
39593
39712
  if (!result)
39594
39713
  return;
@@ -40082,7 +40201,7 @@ class DynamicWidgetPageComponent {
40082
40201
  link.from.ref.direction === 'output');
40083
40202
  }
40084
40203
  selectWidget(widgetKey) {
40085
- if (!this.enableCustomization)
40204
+ if (!this.canSelectWidgets())
40086
40205
  return;
40087
40206
  if (this.selectedWidgetKeyState() !== widgetKey) {
40088
40207
  this.selectedWidgetKeyState.set(widgetKey);
@@ -40132,13 +40251,17 @@ class DynamicWidgetPageComponent {
40132
40251
  return this.canvasPreviewInvalidState();
40133
40252
  }
40134
40253
  startCanvasDrag(widgetKey, event) {
40254
+ if (!this.canCustomizeCanvas())
40255
+ return;
40135
40256
  this.startCanvasInteraction(widgetKey, event, 'drag');
40136
40257
  }
40137
40258
  startCanvasResize(widgetKey, handle, event) {
40259
+ if (!this.canCustomizeCanvas())
40260
+ return;
40138
40261
  this.startCanvasInteraction(widgetKey, event, 'resize', handle);
40139
40262
  }
40140
40263
  onCanvasHandleKeydown(widgetKey, kind, event) {
40141
- if (!this.enableCustomization || !this.isCanvasMode())
40264
+ if (!this.canCustomizeCanvas() || !this.isCanvasMode())
40142
40265
  return;
40143
40266
  this.selectCanvasWidget(widgetKey);
40144
40267
  const horizontal = event.key === 'ArrowLeft' || event.key === 'ArrowRight';
@@ -40156,7 +40279,7 @@ class DynamicWidgetPageComponent {
40156
40279
  }, true, this.canvasAnnouncement(kind, widgetKey), this.blockedCanvasAnnouncement(kind), kind);
40157
40280
  }
40158
40281
  onCanvasResizeHandleKeydown(widgetKey, handle, event) {
40159
- if (!this.enableCustomization || !this.isCanvasMode())
40282
+ if (!this.canCustomizeCanvas() || !this.isCanvasMode())
40160
40283
  return;
40161
40284
  this.selectCanvasWidget(widgetKey);
40162
40285
  const horizontal = event.key === 'ArrowLeft' || event.key === 'ArrowRight';
@@ -40231,7 +40354,7 @@ class DynamicWidgetPageComponent {
40231
40354
  });
40232
40355
  }
40233
40356
  startCanvasInteraction(widgetKey, event, kind, resizeHandle) {
40234
- if (!this.enableCustomization || !this.isCanvasMode())
40357
+ if (!this.canCustomizeCanvas() || !this.isCanvasMode())
40235
40358
  return;
40236
40359
  if (this.isCanvasOverlayInteraction(event))
40237
40360
  return;
@@ -41011,7 +41134,7 @@ class DynamicWidgetPageComponent {
41011
41134
  throw new Error('DynamicWidgetPageComponent no longer accepts `page.connections`. Use `composition.links` only.');
41012
41135
  }
41013
41136
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicWidgetPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41014
- 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", 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: `
41137
+ 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: `
41015
41138
  <div
41016
41139
  class="pdx-page-wrapper"
41017
41140
  [class.editing]="enableCustomization"
@@ -41020,7 +41143,7 @@ class DynamicWidgetPageComponent {
41020
41143
  [attr.data-motion]="pageThemeMotion"
41021
41144
  [ngStyle]="pageThemeTokenStyle"
41022
41145
  >
41023
- @if (enableCustomization && showPageSettingsButton) {
41146
+ @if (canOpenPageSettings()) {
41024
41147
  <button
41025
41148
  class="pdx-page-settings"
41026
41149
  praxisIconButton="ms:settings"
@@ -41045,15 +41168,15 @@ class DynamicWidgetPageComponent {
41045
41168
  <div
41046
41169
  class="pdx-widget pdx-widget--canvas"
41047
41170
  [attr.data-widget-key]="w.key"
41048
- [class.pdx-widget--interactive]="enableCustomization"
41171
+ [class.pdx-widget--interactive]="canSelectWidgets()"
41049
41172
  [class.pdx-widget--selected]="
41050
- enableCustomization && isWidgetSelected(w.key)
41173
+ canSelectWidgets() && isWidgetSelected(w.key)
41051
41174
  "
41052
41175
  [class.pdx-widget--canvas-selected]="
41053
- enableCustomization && isWidgetSelected(w.key)
41176
+ canCustomizeCanvas() && isWidgetSelected(w.key)
41054
41177
  "
41055
41178
  [class.pdx-widget--canvas-blocked]="
41056
- enableCustomization && isCanvasWidgetBlocked(w.key)
41179
+ canCustomizeCanvas() && isCanvasWidgetBlocked(w.key)
41057
41180
  "
41058
41181
  [class]="widgetClassName(w)"
41059
41182
  [style.gridColumn]="widgetGridColumn(w)"
@@ -41063,7 +41186,7 @@ class DynamicWidgetPageComponent {
41063
41186
  (click)="selectWidgetFromHostEvent(w.key, $event)"
41064
41187
  (focusin)="selectWidgetFromHostEvent(w.key, $event)"
41065
41188
  >
41066
- @if (enableCustomization) {
41189
+ @if (canCustomizeCanvas()) {
41067
41190
  @for (handle of canvasResizeHandles; track handle.id) {
41068
41191
  <button
41069
41192
  class="pdx-canvas-resize"
@@ -41084,7 +41207,7 @@ class DynamicWidgetPageComponent {
41084
41207
  <praxis-widget-shell
41085
41208
  [shell]="widgetShellForRender(w)"
41086
41209
  [context]="mergedContext"
41087
- [dragSurfaceEnabled]="enableCustomization && isCanvasMode()"
41210
+ [dragSurfaceEnabled]="canCustomizeCanvas() && isCanvasMode()"
41088
41211
  [dragSurfaceLabel]="dragWidgetLabel()"
41089
41212
  (action)="onShellAction(w.key, $event)"
41090
41213
  (dragSurfacePointerDown)="startCanvasDrag(w.key, $event)"
@@ -41108,7 +41231,7 @@ class DynamicWidgetPageComponent {
41108
41231
  [toolbarLabel]="widgetContextToolbarLabel(w.key)"
41109
41232
  [contextLabel]="widgetContextLabel(w)"
41110
41233
  [contextTooltip]="widgetContextTooltip(w)"
41111
- [showAssistant]="showWidgetAssistantButton"
41234
+ [showAssistant]="canRequestWidgetAssistant()"
41112
41235
  [assistantLabel]="widgetAssistantLabel()"
41113
41236
  [assistantTooltip]="widgetAssistantTooltip()"
41114
41237
  [showComponentSettings]="
@@ -41120,6 +41243,7 @@ class DynamicWidgetPageComponent {
41120
41243
  [shellSettingsLabel]="widgetSettingsLabel()"
41121
41244
  [shellSettingsTooltip]="widgetSettingsTooltip()"
41122
41245
  [moreActionsLabel]="moreWidgetActionsLabel()"
41246
+ [showRemove]="canRemoveWidgets()"
41123
41247
  [removeLabel]="widgetRemoveLabel()"
41124
41248
  (assistant)="requestWidgetAssistant(w.key)"
41125
41249
  (componentSettings)="openWidgetComponentSettings(w.key)"
@@ -41186,11 +41310,9 @@ class DynamicWidgetPageComponent {
41186
41310
  <div
41187
41311
  class="pdx-widget"
41188
41312
  [attr.data-widget-key]="w.key"
41189
- [class.pdx-widget--interactive]="
41190
- enableCustomization
41191
- "
41313
+ [class.pdx-widget--interactive]="canSelectWidgets()"
41192
41314
  [class.pdx-widget--selected]="
41193
- enableCustomization && isWidgetSelected(w.key)
41315
+ canSelectWidgets() && isWidgetSelected(w.key)
41194
41316
  "
41195
41317
  [class]="w.renderClassName || w.className || ''"
41196
41318
  [style.gridColumn]="widgetGridColumn(w)"
@@ -41223,7 +41345,7 @@ class DynamicWidgetPageComponent {
41223
41345
  "
41224
41346
  [contextLabel]="widgetContextLabel(w)"
41225
41347
  [contextTooltip]="widgetContextTooltip(w)"
41226
- [showAssistant]="showWidgetAssistantButton"
41348
+ [showAssistant]="canRequestWidgetAssistant()"
41227
41349
  [assistantLabel]="widgetAssistantLabel()"
41228
41350
  [assistantTooltip]="widgetAssistantTooltip()"
41229
41351
  [showComponentSettings]="
@@ -41241,6 +41363,7 @@ class DynamicWidgetPageComponent {
41241
41363
  [shellSettingsLabel]="widgetSettingsLabel()"
41242
41364
  [shellSettingsTooltip]="widgetSettingsTooltip()"
41243
41365
  [moreActionsLabel]="moreWidgetActionsLabel()"
41366
+ [showRemove]="canRemoveWidgets()"
41244
41367
  [removeLabel]="widgetRemoveLabel()"
41245
41368
  (assistant)="requestWidgetAssistant(w.key)"
41246
41369
  (componentSettings)="
@@ -41267,9 +41390,9 @@ class DynamicWidgetPageComponent {
41267
41390
  <div
41268
41391
  class="pdx-widget"
41269
41392
  [attr.data-widget-key]="w.key"
41270
- [class.pdx-widget--interactive]="enableCustomization"
41393
+ [class.pdx-widget--interactive]="canSelectWidgets()"
41271
41394
  [class.pdx-widget--selected]="
41272
- enableCustomization && isWidgetSelected(w.key)
41395
+ canSelectWidgets() && isWidgetSelected(w.key)
41273
41396
  "
41274
41397
  [class]="widgetClassName(w)"
41275
41398
  [style.gridColumn]="widgetGridColumn(w)"
@@ -41298,7 +41421,7 @@ class DynamicWidgetPageComponent {
41298
41421
  [toolbarLabel]="widgetContextToolbarLabel(w.key)"
41299
41422
  [contextLabel]="widgetContextLabel(w)"
41300
41423
  [contextTooltip]="widgetContextTooltip(w)"
41301
- [showAssistant]="showWidgetAssistantButton"
41424
+ [showAssistant]="canRequestWidgetAssistant()"
41302
41425
  [assistantLabel]="widgetAssistantLabel()"
41303
41426
  [assistantTooltip]="widgetAssistantTooltip()"
41304
41427
  [showComponentSettings]="
@@ -41312,6 +41435,7 @@ class DynamicWidgetPageComponent {
41312
41435
  [shellSettingsLabel]="widgetSettingsLabel()"
41313
41436
  [shellSettingsTooltip]="widgetSettingsTooltip()"
41314
41437
  [moreActionsLabel]="moreWidgetActionsLabel()"
41438
+ [showRemove]="canRemoveWidgets()"
41315
41439
  [removeLabel]="widgetRemoveLabel()"
41316
41440
  (assistant)="requestWidgetAssistant(w.key)"
41317
41441
  (componentSettings)="
@@ -41332,9 +41456,9 @@ class DynamicWidgetPageComponent {
41332
41456
  <div
41333
41457
  class="pdx-widget"
41334
41458
  [attr.data-widget-key]="w.key"
41335
- [class.pdx-widget--interactive]="enableCustomization"
41459
+ [class.pdx-widget--interactive]="canSelectWidgets()"
41336
41460
  [class.pdx-widget--selected]="
41337
- enableCustomization && isWidgetSelected(w.key)
41461
+ canSelectWidgets() && isWidgetSelected(w.key)
41338
41462
  "
41339
41463
  [class]="widgetClassName(w)"
41340
41464
  [style.gridColumn]="widgetGridColumn(w)"
@@ -41363,7 +41487,7 @@ class DynamicWidgetPageComponent {
41363
41487
  [toolbarLabel]="widgetContextToolbarLabel(w.key)"
41364
41488
  [contextLabel]="widgetContextLabel(w)"
41365
41489
  [contextTooltip]="widgetContextTooltip(w)"
41366
- [showAssistant]="showWidgetAssistantButton"
41490
+ [showAssistant]="canRequestWidgetAssistant()"
41367
41491
  [assistantLabel]="widgetAssistantLabel()"
41368
41492
  [assistantTooltip]="widgetAssistantTooltip()"
41369
41493
  [showComponentSettings]="
@@ -41375,6 +41499,7 @@ class DynamicWidgetPageComponent {
41375
41499
  [shellSettingsLabel]="widgetSettingsLabel()"
41376
41500
  [shellSettingsTooltip]="widgetSettingsTooltip()"
41377
41501
  [moreActionsLabel]="moreWidgetActionsLabel()"
41502
+ [showRemove]="canRemoveWidgets()"
41378
41503
  [removeLabel]="widgetRemoveLabel()"
41379
41504
  (assistant)="requestWidgetAssistant(w.key)"
41380
41505
  (componentSettings)="openWidgetComponentSettings(w.key)"
@@ -41392,7 +41517,7 @@ class DynamicWidgetPageComponent {
41392
41517
  </div>
41393
41518
  }
41394
41519
  </div>
41395
- `, isInline: true, styles: [":host{display:block;min-width:0}.pdx-page-wrapper{position:relative;display:block;background:var(--pdx-page-bg, transparent);color:var(--pdx-page-color, inherit)}.pdx-page{display:grid;gap:var(--pdx-page-gap, 12px);grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-wrapper.editing .pdx-page--canvas{padding-block-start:var(--pdx-canvas-context-toolbar-safe-area, 22px);padding-block-end:22px;padding-inline:22px;box-sizing:border-box}.pdx-page-settings{position:sticky;top:8px;z-index:2;color:inherit;margin-bottom:6px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:6px;min-width:0;min-height:0}.pdx-widget--interactive{cursor:pointer}.pdx-widget--selected:before{content:\"\";position:absolute;inset:0;border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);border-radius:14px;pointer-events:none;z-index:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent),0 8px 20px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent)}.pdx-widget--canvas{align-self:stretch;--pdx-resize-gradient-horizontal: linear-gradient( 90deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-vertical: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-se: linear-gradient( 135deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-sw: linear-gradient( 225deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-widget--canvas:after{content:\"\";position:absolute;inset:0;padding:2px;border-radius:14px;background:var(--pdx-active-resize-gradient);opacity:0;pointer-events:none;transition:opacity .14s ease,filter .14s ease;filter:saturate(1.02) drop-shadow(0 0 5px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.pdx-widget--canvas-selected:before,.pdx-widget--canvas-blocked:before{content:\"\";position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:1;transition:opacity .14s ease,box-shadow .14s ease,border-color .14s ease}.pdx-widget--canvas-blocked:before{border:1px solid color-mix(in srgb,var(--md-sys-color-error) 74%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 20%,transparent),0 10px 24px color-mix(in srgb,var(--md-sys-color-error) 12%,transparent)}.pdx-widget--canvas:has(.pdx-canvas-resize:hover):after,.pdx-widget--canvas:has(.pdx-canvas-resize:focus-visible):after{opacity:.82}.pdx-widget--canvas:has(.pdx-canvas-resize--north:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-horizontal)}.pdx-widget--canvas:has(.pdx-canvas-resize--east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-vertical)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-sw)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize{position:absolute;z-index:7;border:0;padding:0;margin:0;background:transparent;touch-action:none;cursor:pointer;opacity:0;pointer-events:none;transform:scale(.94);transition:opacity .14s ease,transform .14s ease,filter .14s ease;filter:saturate(.9)}.pdx-widget--canvas:hover .pdx-canvas-resize,.pdx-widget--canvas:focus-within .pdx-canvas-resize,.pdx-widget--canvas-selected .pdx-canvas-resize{opacity:.88;pointer-events:auto;transform:scale(1);filter:saturate(1)}.pdx-widget--canvas:has(.pdx-shell.expanded) .pdx-canvas-resize,.pdx-widget--canvas:has(.pdx-shell.fullscreen) .pdx-canvas-resize{opacity:0;pointer-events:none;transform:scale(.94)}.pdx-canvas-resize-grip{display:block;width:9px;height:9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 42%,var(--md-sys-color-outline-variant) 58%);background:color-mix(in srgb,var(--md-sys-color-surface) 92%,var(--md-sys-color-primary) 8%);box-shadow:0 1px 4px color-mix(in srgb,var(--md-sys-color-shadow) 10%,transparent);transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:color-mix(in srgb,var(--md-sys-color-primary) 58%,var(--md-sys-color-outline-variant) 42%);background:color-mix(in srgb,var(--md-sys-color-surface) 84%,var(--md-sys-color-primary) 16%);box-shadow:0 2px 7px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent);transform:scale(1.04)}.pdx-canvas-resize--north,.pdx-canvas-resize--south{left:50%;width:52px;height:44px;margin-left:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-22px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-22px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:44px;height:52px;margin-top:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-22px;cursor:ew-resize}.pdx-canvas-resize--west{left:-22px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-22px;right:-22px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-22px;left:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-22px;right:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-22px;left:-22px;cursor:nesw-resize}.pdx-canvas-snap-preview{position:relative;align-self:stretch;border-radius:12px;pointer-events:none;z-index:0;background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent),color-mix(in srgb,var(--md-sys-color-tertiary) 12%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 42%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 55%,transparent);animation:pdx-snap-preview-pulse .48s ease-out infinite alternate}.pdx-canvas-snap-preview:before,.pdx-canvas-snap-preview:after{content:\"\";position:absolute;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-primary) 82%,var(--md-sys-color-tertiary) 18%);opacity:.72}.pdx-canvas-snap-preview:before{inset:0 auto 0 0;width:3px}.pdx-canvas-snap-preview:after{inset:0 0 auto;height:3px}.pdx-canvas-snap-preview--invalid{background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-error) 18%,transparent),color-mix(in srgb,var(--md-sys-color-error-container) 22%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 58%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 40%,transparent)}.pdx-canvas-snap-preview--invalid:before,.pdx-canvas-snap-preview--invalid:after{background:color-mix(in srgb,var(--md-sys-color-error) 86%,var(--md-sys-color-error-container) 14%)}.pdx-canvas-resize:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:transparent;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 20%,transparent),var(--mat-elevation-level3)}.pdx-canvas-resize--north:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-horizontal)}.pdx-canvas-resize--east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-vertical)}.pdx-canvas-resize--north-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-sw)}.pdx-canvas-resize--north-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-west:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{transform:scale(1.08)}@keyframes pdx-snap-preview-pulse{0%{opacity:.72;transform:scale(.996)}to{opacity:1;transform:scale(1)}}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pdx-group{display:grid;gap:12px;grid-column:1 / -1;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low) 76%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent)}.pdx-group--hero{padding:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--md-sys-color-primary-container) 42%,transparent),color-mix(in srgb,var(--md-sys-color-surface-container-low) 86%,transparent))}.pdx-group--rail{align-self:start}.pdx-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.pdx-group-title{font-size:.95rem;font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-group-content{display:grid;gap:12px}.pdx-group-content--stack{grid-template-columns:minmax(0,1fr)}.pdx-group-content--row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.pdx-group-content--grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.pdx-group-tabs{display:grid;gap:12px}.pdx-tabs-header{display:flex;flex-wrap:wrap;gap:8px}.pdx-tab-chip{appearance:none;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-lowest);color:var(--md-sys-color-on-surface);border-radius:999px;padding:8px 12px;font:inherit;cursor:pointer}.pdx-tab-chip.active{border-color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary-container) 78%,transparent);color:var(--md-sys-color-on-primary-container)}.pdx-page-wrapper.editing .pdx-widget-settings{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { kind: "component", type: DynamicWidgetContextToolbarComponent, selector: "praxis-dynamic-widget-context-toolbar", inputs: ["toolbarLabel", "contextLabel", "contextTooltip", "showAssistant", "assistantLabel", "assistantTooltip", "showComponentSettings", "componentSettingsLabel", "componentSettingsTooltip", "showShellSettings", "shellSettingsLabel", "shellSettingsTooltip", "moreActionsLabel", "removeLabel"], outputs: ["assistant", "componentSettings", "shellSettings", "remove"] }, { kind: "directive", type: DynamicWidgetLoaderDirective, selector: "[dynamicWidgetLoader]", inputs: ["dynamicWidgetLoader", "ownerWidgetKey", "context", "strictValidation", "autoWireOutputs"], outputs: ["widgetEvent", "widgetDiagnostic"], exportAs: ["dynamicWidgetLoader"] }, { kind: "component", type: WidgetShellComponent, selector: "praxis-widget-shell", inputs: ["shell", "context", "dragSurfaceEnabled", "dragSurfaceLabel"], outputs: ["action", "dragSurfacePointerDown", "dragSurfaceKeydown"] }] });
41520
+ `, isInline: true, styles: [":host{display:block;min-width:0}.pdx-page-wrapper{position:relative;display:block;background:var(--pdx-page-bg, transparent);color:var(--pdx-page-color, inherit)}.pdx-page{display:grid;gap:var(--pdx-page-gap, 12px);grid-template-columns:minmax(0,1fr)}.pdx-page--canvas{align-items:start;grid-auto-flow:dense}.pdx-page-wrapper.editing .pdx-page--canvas{padding-block-start:var(--pdx-canvas-context-toolbar-safe-area, 22px);padding-block-end:22px;padding-inline:22px;box-sizing:border-box}.pdx-page-settings{position:sticky;top:8px;z-index:2;color:inherit;margin-bottom:6px}.pdx-widget{position:relative;background:var(--pfx-surface, transparent);border-radius:6px;min-width:0;min-height:0}.pdx-widget--interactive{cursor:pointer}.pdx-widget--selected:before{content:\"\";position:absolute;inset:0;border:1px dashed color-mix(in srgb,var(--md-sys-color-primary) 34%,transparent);border-radius:14px;pointer-events:none;z-index:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent),0 8px 20px color-mix(in srgb,var(--md-sys-color-primary) 6%,transparent)}.pdx-widget--canvas{align-self:stretch;--pdx-resize-gradient-horizontal: linear-gradient( 90deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-vertical: linear-gradient( 180deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-se: linear-gradient( 135deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-resize-gradient-diagonal-sw: linear-gradient( 225deg, color-mix(in srgb, var(--md-sys-color-primary) 94%, white 6%), color-mix(in srgb, var(--md-sys-color-tertiary) 90%, white 10%), color-mix(in srgb, var(--md-sys-color-secondary) 88%, white 12%) );--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-widget--canvas:after{content:\"\";position:absolute;inset:0;padding:2px;border-radius:14px;background:var(--pdx-active-resize-gradient);opacity:0;pointer-events:none;transition:opacity .14s ease,filter .14s ease;filter:saturate(1.02) drop-shadow(0 0 5px color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude}.pdx-widget--canvas-selected:before,.pdx-widget--canvas-blocked:before{content:\"\";position:absolute;inset:0;border-radius:14px;pointer-events:none;z-index:1;transition:opacity .14s ease,box-shadow .14s ease,border-color .14s ease}.pdx-widget--canvas-blocked:before{border:1px solid color-mix(in srgb,var(--md-sys-color-error) 74%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 20%,transparent),0 10px 24px color-mix(in srgb,var(--md-sys-color-error) 12%,transparent)}.pdx-widget--canvas:has(.pdx-canvas-resize:hover):after,.pdx-widget--canvas:has(.pdx-canvas-resize:focus-visible):after{opacity:.82}.pdx-widget--canvas:has(.pdx-canvas-resize--north:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-horizontal)}.pdx-widget--canvas:has(.pdx-canvas-resize--east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-vertical)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-east:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-west:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-sw)}.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--north-west:focus-visible),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:hover),.pdx-widget--canvas:has(.pdx-canvas-resize--south-east:focus-visible){--pdx-active-resize-gradient: var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize{position:absolute;z-index:7;border:0;padding:0;margin:0;background:transparent;touch-action:none;cursor:pointer;opacity:0;pointer-events:none;transform:scale(.94);transition:opacity .14s ease,transform .14s ease,filter .14s ease;filter:saturate(.9)}.pdx-widget--canvas:hover .pdx-canvas-resize,.pdx-widget--canvas:focus-within .pdx-canvas-resize,.pdx-widget--canvas-selected .pdx-canvas-resize{opacity:.88;pointer-events:auto;transform:scale(1);filter:saturate(1)}.pdx-widget--canvas:has(.pdx-shell.expanded) .pdx-canvas-resize,.pdx-widget--canvas:has(.pdx-shell.fullscreen) .pdx-canvas-resize{opacity:0;pointer-events:none;transform:scale(.94)}.pdx-canvas-resize-grip{display:block;width:9px;height:9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--md-sys-color-primary) 42%,var(--md-sys-color-outline-variant) 58%);background:color-mix(in srgb,var(--md-sys-color-surface) 92%,var(--md-sys-color-primary) 8%);box-shadow:0 1px 4px color-mix(in srgb,var(--md-sys-color-shadow) 10%,transparent);transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:color-mix(in srgb,var(--md-sys-color-primary) 58%,var(--md-sys-color-outline-variant) 42%);background:color-mix(in srgb,var(--md-sys-color-surface) 84%,var(--md-sys-color-primary) 16%);box-shadow:0 2px 7px color-mix(in srgb,var(--md-sys-color-primary) 14%,transparent);transform:scale(1.04)}.pdx-canvas-resize--north,.pdx-canvas-resize--south{left:50%;width:52px;height:44px;margin-left:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north{top:-22px;cursor:ns-resize}.pdx-canvas-resize--south{bottom:-22px;cursor:ns-resize}.pdx-canvas-resize--east,.pdx-canvas-resize--west{top:50%;width:44px;height:52px;margin-top:-26px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--east{right:-22px;cursor:ew-resize}.pdx-canvas-resize--west{left:-22px;cursor:ew-resize}.pdx-canvas-resize--north-east,.pdx-canvas-resize--north-west,.pdx-canvas-resize--south-east,.pdx-canvas-resize--south-west{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.pdx-canvas-resize--north-east{top:-22px;right:-22px;cursor:nesw-resize}.pdx-canvas-resize--north-west{top:-22px;left:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-east{bottom:-22px;right:-22px;cursor:nwse-resize}.pdx-canvas-resize--south-west{bottom:-22px;left:-22px;cursor:nesw-resize}.pdx-canvas-snap-preview{position:relative;align-self:stretch;border-radius:12px;pointer-events:none;z-index:0;background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-primary) 10%,transparent),color-mix(in srgb,var(--md-sys-color-tertiary) 12%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 42%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 55%,transparent);animation:pdx-snap-preview-pulse .48s ease-out infinite alternate}.pdx-canvas-snap-preview:before,.pdx-canvas-snap-preview:after{content:\"\";position:absolute;border-radius:999px;background:color-mix(in srgb,var(--md-sys-color-primary) 82%,var(--md-sys-color-tertiary) 18%);opacity:.72}.pdx-canvas-snap-preview:before{inset:0 auto 0 0;width:3px}.pdx-canvas-snap-preview:after{inset:0 0 auto;height:3px}.pdx-canvas-snap-preview--invalid{background:linear-gradient(135deg,color-mix(in srgb,var(--md-sys-color-error) 18%,transparent),color-mix(in srgb,var(--md-sys-color-error-container) 22%,transparent));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--md-sys-color-error) 58%,transparent),inset 0 0 0 2px color-mix(in srgb,var(--md-sys-color-surface) 40%,transparent)}.pdx-canvas-snap-preview--invalid:before,.pdx-canvas-snap-preview--invalid:after{background:color-mix(in srgb,var(--md-sys-color-error) 86%,var(--md-sys-color-error-container) 14%)}.pdx-canvas-resize:focus-visible{outline:2px solid var(--md-sys-color-primary);outline-offset:2px}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{border-color:transparent;box-shadow:0 0 0 1px color-mix(in srgb,var(--md-sys-color-primary) 20%,transparent),var(--mat-elevation-level3)}.pdx-canvas-resize--north:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-horizontal)}.pdx-canvas-resize--east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-vertical)}.pdx-canvas-resize--north-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-east:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-west:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-sw)}.pdx-canvas-resize--north-west:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--north-west:focus-visible .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:hover .pdx-canvas-resize-grip,.pdx-canvas-resize--south-east:focus-visible .pdx-canvas-resize-grip{background:var(--pdx-resize-gradient-diagonal-se)}.pdx-canvas-resize:hover .pdx-canvas-resize-grip,.pdx-canvas-resize:focus-visible .pdx-canvas-resize-grip{transform:scale(1.08)}@keyframes pdx-snap-preview-pulse{0%{opacity:.72;transform:scale(.996)}to{opacity:1;transform:scale(1)}}.pdx-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.pdx-group{display:grid;gap:12px;grid-column:1 / -1;padding:12px;border-radius:16px;background:color-mix(in srgb,var(--md-sys-color-surface-container-low) 76%,transparent);border:1px solid color-mix(in srgb,var(--md-sys-color-outline-variant) 72%,transparent)}.pdx-group--hero{padding:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--md-sys-color-primary-container) 42%,transparent),color-mix(in srgb,var(--md-sys-color-surface-container-low) 86%,transparent))}.pdx-group--rail{align-self:start}.pdx-group-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.pdx-group-title{font-size:.95rem;font-weight:600;color:var(--md-sys-color-on-surface)}.pdx-group-content{display:grid;gap:12px}.pdx-group-content--stack{grid-template-columns:minmax(0,1fr)}.pdx-group-content--row{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.pdx-group-content--grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.pdx-group-tabs{display:grid;gap:12px}.pdx-tabs-header{display:flex;flex-wrap:wrap;gap:8px}.pdx-tab-chip{appearance:none;border:1px solid var(--md-sys-color-outline-variant);background:var(--md-sys-color-surface-container-lowest);color:var(--md-sys-color-on-surface);border-radius:999px;padding:8px 12px;font:inherit;cursor:pointer}.pdx-tab-chip.active{border-color:var(--md-sys-color-primary);background:color-mix(in srgb,var(--md-sys-color-primary-container) 78%,transparent);color:var(--md-sys-color-on-primary-container)}.pdx-page-wrapper.editing .pdx-widget-settings{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: PraxisIconButtonComponent, selector: "button[praxisIconButton]", inputs: ["praxisIconButton", "size", "appearance", "presentation", "pressed", "busy"] }, { kind: "component", type: DynamicWidgetContextToolbarComponent, selector: "praxis-dynamic-widget-context-toolbar", inputs: ["toolbarLabel", "contextLabel", "contextTooltip", "showAssistant", "assistantLabel", "assistantTooltip", "showComponentSettings", "componentSettingsLabel", "componentSettingsTooltip", "showShellSettings", "shellSettingsLabel", "shellSettingsTooltip", "showRemove", "moreActionsLabel", "removeLabel"], outputs: ["assistant", "componentSettings", "shellSettings", "remove"] }, { kind: "directive", type: DynamicWidgetLoaderDirective, selector: "[dynamicWidgetLoader]", inputs: ["dynamicWidgetLoader", "ownerWidgetKey", "context", "strictValidation", "autoWireOutputs"], outputs: ["widgetEvent", "widgetDiagnostic"], exportAs: ["dynamicWidgetLoader"] }, { kind: "component", type: WidgetShellComponent, selector: "praxis-widget-shell", inputs: ["shell", "context", "dragSurfaceEnabled", "dragSurfaceLabel"], outputs: ["action", "dragSurfacePointerDown", "dragSurfaceKeydown"] }] });
41396
41521
  }
41397
41522
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImport: i0, type: DynamicWidgetPageComponent, decorators: [{
41398
41523
  type: Component,
@@ -41413,7 +41538,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41413
41538
  [attr.data-motion]="pageThemeMotion"
41414
41539
  [ngStyle]="pageThemeTokenStyle"
41415
41540
  >
41416
- @if (enableCustomization && showPageSettingsButton) {
41541
+ @if (canOpenPageSettings()) {
41417
41542
  <button
41418
41543
  class="pdx-page-settings"
41419
41544
  praxisIconButton="ms:settings"
@@ -41438,15 +41563,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41438
41563
  <div
41439
41564
  class="pdx-widget pdx-widget--canvas"
41440
41565
  [attr.data-widget-key]="w.key"
41441
- [class.pdx-widget--interactive]="enableCustomization"
41566
+ [class.pdx-widget--interactive]="canSelectWidgets()"
41442
41567
  [class.pdx-widget--selected]="
41443
- enableCustomization && isWidgetSelected(w.key)
41568
+ canSelectWidgets() && isWidgetSelected(w.key)
41444
41569
  "
41445
41570
  [class.pdx-widget--canvas-selected]="
41446
- enableCustomization && isWidgetSelected(w.key)
41571
+ canCustomizeCanvas() && isWidgetSelected(w.key)
41447
41572
  "
41448
41573
  [class.pdx-widget--canvas-blocked]="
41449
- enableCustomization && isCanvasWidgetBlocked(w.key)
41574
+ canCustomizeCanvas() && isCanvasWidgetBlocked(w.key)
41450
41575
  "
41451
41576
  [class]="widgetClassName(w)"
41452
41577
  [style.gridColumn]="widgetGridColumn(w)"
@@ -41456,7 +41581,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41456
41581
  (click)="selectWidgetFromHostEvent(w.key, $event)"
41457
41582
  (focusin)="selectWidgetFromHostEvent(w.key, $event)"
41458
41583
  >
41459
- @if (enableCustomization) {
41584
+ @if (canCustomizeCanvas()) {
41460
41585
  @for (handle of canvasResizeHandles; track handle.id) {
41461
41586
  <button
41462
41587
  class="pdx-canvas-resize"
@@ -41477,7 +41602,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41477
41602
  <praxis-widget-shell
41478
41603
  [shell]="widgetShellForRender(w)"
41479
41604
  [context]="mergedContext"
41480
- [dragSurfaceEnabled]="enableCustomization && isCanvasMode()"
41605
+ [dragSurfaceEnabled]="canCustomizeCanvas() && isCanvasMode()"
41481
41606
  [dragSurfaceLabel]="dragWidgetLabel()"
41482
41607
  (action)="onShellAction(w.key, $event)"
41483
41608
  (dragSurfacePointerDown)="startCanvasDrag(w.key, $event)"
@@ -41501,7 +41626,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41501
41626
  [toolbarLabel]="widgetContextToolbarLabel(w.key)"
41502
41627
  [contextLabel]="widgetContextLabel(w)"
41503
41628
  [contextTooltip]="widgetContextTooltip(w)"
41504
- [showAssistant]="showWidgetAssistantButton"
41629
+ [showAssistant]="canRequestWidgetAssistant()"
41505
41630
  [assistantLabel]="widgetAssistantLabel()"
41506
41631
  [assistantTooltip]="widgetAssistantTooltip()"
41507
41632
  [showComponentSettings]="
@@ -41513,6 +41638,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41513
41638
  [shellSettingsLabel]="widgetSettingsLabel()"
41514
41639
  [shellSettingsTooltip]="widgetSettingsTooltip()"
41515
41640
  [moreActionsLabel]="moreWidgetActionsLabel()"
41641
+ [showRemove]="canRemoveWidgets()"
41516
41642
  [removeLabel]="widgetRemoveLabel()"
41517
41643
  (assistant)="requestWidgetAssistant(w.key)"
41518
41644
  (componentSettings)="openWidgetComponentSettings(w.key)"
@@ -41579,11 +41705,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41579
41705
  <div
41580
41706
  class="pdx-widget"
41581
41707
  [attr.data-widget-key]="w.key"
41582
- [class.pdx-widget--interactive]="
41583
- enableCustomization
41584
- "
41708
+ [class.pdx-widget--interactive]="canSelectWidgets()"
41585
41709
  [class.pdx-widget--selected]="
41586
- enableCustomization && isWidgetSelected(w.key)
41710
+ canSelectWidgets() && isWidgetSelected(w.key)
41587
41711
  "
41588
41712
  [class]="w.renderClassName || w.className || ''"
41589
41713
  [style.gridColumn]="widgetGridColumn(w)"
@@ -41616,7 +41740,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41616
41740
  "
41617
41741
  [contextLabel]="widgetContextLabel(w)"
41618
41742
  [contextTooltip]="widgetContextTooltip(w)"
41619
- [showAssistant]="showWidgetAssistantButton"
41743
+ [showAssistant]="canRequestWidgetAssistant()"
41620
41744
  [assistantLabel]="widgetAssistantLabel()"
41621
41745
  [assistantTooltip]="widgetAssistantTooltip()"
41622
41746
  [showComponentSettings]="
@@ -41634,6 +41758,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41634
41758
  [shellSettingsLabel]="widgetSettingsLabel()"
41635
41759
  [shellSettingsTooltip]="widgetSettingsTooltip()"
41636
41760
  [moreActionsLabel]="moreWidgetActionsLabel()"
41761
+ [showRemove]="canRemoveWidgets()"
41637
41762
  [removeLabel]="widgetRemoveLabel()"
41638
41763
  (assistant)="requestWidgetAssistant(w.key)"
41639
41764
  (componentSettings)="
@@ -41660,9 +41785,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41660
41785
  <div
41661
41786
  class="pdx-widget"
41662
41787
  [attr.data-widget-key]="w.key"
41663
- [class.pdx-widget--interactive]="enableCustomization"
41788
+ [class.pdx-widget--interactive]="canSelectWidgets()"
41664
41789
  [class.pdx-widget--selected]="
41665
- enableCustomization && isWidgetSelected(w.key)
41790
+ canSelectWidgets() && isWidgetSelected(w.key)
41666
41791
  "
41667
41792
  [class]="widgetClassName(w)"
41668
41793
  [style.gridColumn]="widgetGridColumn(w)"
@@ -41691,7 +41816,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41691
41816
  [toolbarLabel]="widgetContextToolbarLabel(w.key)"
41692
41817
  [contextLabel]="widgetContextLabel(w)"
41693
41818
  [contextTooltip]="widgetContextTooltip(w)"
41694
- [showAssistant]="showWidgetAssistantButton"
41819
+ [showAssistant]="canRequestWidgetAssistant()"
41695
41820
  [assistantLabel]="widgetAssistantLabel()"
41696
41821
  [assistantTooltip]="widgetAssistantTooltip()"
41697
41822
  [showComponentSettings]="
@@ -41705,6 +41830,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41705
41830
  [shellSettingsLabel]="widgetSettingsLabel()"
41706
41831
  [shellSettingsTooltip]="widgetSettingsTooltip()"
41707
41832
  [moreActionsLabel]="moreWidgetActionsLabel()"
41833
+ [showRemove]="canRemoveWidgets()"
41708
41834
  [removeLabel]="widgetRemoveLabel()"
41709
41835
  (assistant)="requestWidgetAssistant(w.key)"
41710
41836
  (componentSettings)="
@@ -41725,9 +41851,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41725
41851
  <div
41726
41852
  class="pdx-widget"
41727
41853
  [attr.data-widget-key]="w.key"
41728
- [class.pdx-widget--interactive]="enableCustomization"
41854
+ [class.pdx-widget--interactive]="canSelectWidgets()"
41729
41855
  [class.pdx-widget--selected]="
41730
- enableCustomization && isWidgetSelected(w.key)
41856
+ canSelectWidgets() && isWidgetSelected(w.key)
41731
41857
  "
41732
41858
  [class]="widgetClassName(w)"
41733
41859
  [style.gridColumn]="widgetGridColumn(w)"
@@ -41756,7 +41882,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41756
41882
  [toolbarLabel]="widgetContextToolbarLabel(w.key)"
41757
41883
  [contextLabel]="widgetContextLabel(w)"
41758
41884
  [contextTooltip]="widgetContextTooltip(w)"
41759
- [showAssistant]="showWidgetAssistantButton"
41885
+ [showAssistant]="canRequestWidgetAssistant()"
41760
41886
  [assistantLabel]="widgetAssistantLabel()"
41761
41887
  [assistantTooltip]="widgetAssistantTooltip()"
41762
41888
  [showComponentSettings]="
@@ -41768,6 +41894,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41768
41894
  [shellSettingsLabel]="widgetSettingsLabel()"
41769
41895
  [shellSettingsTooltip]="widgetSettingsTooltip()"
41770
41896
  [moreActionsLabel]="moreWidgetActionsLabel()"
41897
+ [showRemove]="canRemoveWidgets()"
41771
41898
  [removeLabel]="widgetRemoveLabel()"
41772
41899
  (assistant)="requestWidgetAssistant(w.key)"
41773
41900
  (componentSettings)="openWidgetComponentSettings(w.key)"
@@ -41797,6 +41924,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.14", ngImpo
41797
41924
  type: Input
41798
41925
  }], enableCustomization: [{
41799
41926
  type: Input
41927
+ }], authoringCapabilities: [{
41928
+ type: Input
41800
41929
  }], showPageSettingsButton: [{
41801
41930
  type: Input
41802
41931
  }], shellEditorComponent: [{
@@ -41867,6 +41996,11 @@ const PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA = {
41867
41996
  type: 'boolean',
41868
41997
  description: 'Habilita affordances de edição na página.',
41869
41998
  },
41999
+ {
42000
+ name: 'authoringCapabilities',
42001
+ type: 'WidgetPageAuthoringCapabilities',
42002
+ description: 'Restringe granularmente as operações de authoring permitidas pelo host.',
42003
+ },
41870
42004
  {
41871
42005
  name: 'showPageSettingsButton',
41872
42006
  type: 'boolean',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/core",
3
- "version": "9.0.27",
3
+ "version": "9.0.28",
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",
@@ -14047,6 +14047,38 @@ interface WidgetInstance {
14047
14047
  /** Optional shell config for standardized widget framing. */
14048
14048
  shell?: WidgetShellConfig;
14049
14049
  }
14050
+ /**
14051
+ * Governs which visual authoring operations a dynamic page host exposes.
14052
+ *
14053
+ * The capability document is an authoring-time host contract only. It is not
14054
+ * persisted in `WidgetPageDefinition`. Omitted capabilities preserve the
14055
+ * historical full-authoring behavior when `enableCustomization` is enabled.
14056
+ */
14057
+ interface WidgetPageAuthoringCapabilities {
14058
+ /** Allows direct canvas selection, movement and resize operations. */
14059
+ canvas?: boolean;
14060
+ /** Allows opening the page settings editor. */
14061
+ pageSettings?: boolean;
14062
+ /** Controls shell authoring. `false` removes the shell editor entrypoint. */
14063
+ widgetShell?: boolean | WidgetShellAuthoringCapabilities;
14064
+ /** Allows opening the owning component's canonical input editor. */
14065
+ widgetInputs?: boolean;
14066
+ /** Allows removing widgets from the page. */
14067
+ widgetRemoval?: boolean;
14068
+ /** Allows nested components to receive authoring-only customization inputs. */
14069
+ childCustomization?: boolean;
14070
+ }
14071
+ /** Fine-grained shell capabilities used by the canonical shell editor. */
14072
+ interface WidgetShellAuthoringCapabilities {
14073
+ /** Title, subtitle, icon, shell kind, preset, header and window controls. */
14074
+ identity?: boolean;
14075
+ /** Visual appearance overrides for card, header, body and typography. */
14076
+ appearance?: boolean;
14077
+ /** Header/window actions and component input shortcuts. */
14078
+ actions?: boolean;
14079
+ /** Promotes the selected widget preset to the page-wide shell preset. */
14080
+ pagePreset?: boolean;
14081
+ }
14050
14082
  type WidgetPageOrientation = 'vertical' | 'columns';
14051
14083
  type WidgetPageDeviceKind = 'desktop' | 'tablet' | 'mobile';
14052
14084
  interface WidgetPageSlotDefinition {
@@ -16348,6 +16380,8 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
16348
16380
  strictValidation: boolean;
16349
16381
  /** Enables lightweight editing affordances (shell + page layout). */
16350
16382
  enableCustomization: boolean;
16383
+ /** Optional host grant that narrows the available authoring operations. */
16384
+ authoringCapabilities?: WidgetPageAuthoringCapabilities | null;
16351
16385
  /** Shows page settings button when edit mode is enabled. */
16352
16386
  showPageSettingsButton: boolean;
16353
16387
  /** Optional editor component override for widget shell settings. */
@@ -16493,8 +16527,16 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
16493
16527
  private hasRichContentCapability;
16494
16528
  private resolveComponentBindingPath;
16495
16529
  private buildRuntimeEventId;
16530
+ canCustomizeCanvas(): boolean;
16531
+ canOpenPageSettings(): boolean;
16496
16532
  canOpenWidgetShellSettings(): boolean;
16497
16533
  canOpenWidgetComponentSettings(key: string): boolean;
16534
+ canRemoveWidgets(): boolean;
16535
+ canRequestWidgetAssistant(): boolean;
16536
+ canSelectWidgets(): boolean;
16537
+ private isAuthoringCapabilityEnabled;
16538
+ private isWidgetShellCapabilityEnabled;
16539
+ private isWidgetShellCapabilityEnabledFor;
16498
16540
  componentSettingsLabel(): string;
16499
16541
  componentSettingsTooltip(): string;
16500
16542
  widgetSettingsLabel(): string;
@@ -16511,6 +16553,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
16511
16553
  widgetShellForRender(widget: WidgetInstance): WidgetShellConfig | null | undefined;
16512
16554
  private resolveWidgetDisplayName;
16513
16555
  private shouldProjectWidgetHeaderActions;
16556
+ private hasWidgetContextAuthoringActions;
16514
16557
  private hasVisibleWidgetShellHeader;
16515
16558
  private hasVisibleShellActions;
16516
16559
  private hasVisibleWindowActions;
@@ -16548,6 +16591,8 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
16548
16591
  private endpointReferencesWidget;
16549
16592
  openPageSettings(): void;
16550
16593
  private applyWidgetShell;
16594
+ private constrainWidgetShellResult;
16595
+ private restoreWidgetShellFields;
16551
16596
  private applyPageLayout;
16552
16597
  private applyPageUpdate;
16553
16598
  private applyLayout;
@@ -16658,7 +16703,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
16658
16703
  private sanitizeSegment;
16659
16704
  private assertNoLegacyConnections;
16660
16705
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetPageComponent, never>;
16661
- 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>;
16706
+ 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>;
16662
16707
  }
16663
16708
 
16664
16709
  /** Metadata for Praxis Dynamic Page component */
@@ -17218,4 +17263,4 @@ declare function provideFormHookPresets(presets: Array<FormHookPreset>): Provide
17218
17263
  declare function provideHookWhitelist(allowed: Array<string | RegExp>): Provider[];
17219
17264
 
17220
17265
  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, COMPONENT_METADATA_REGISTRY_I18N_CONFIG, COMPONENT_METADATA_REGISTRY_I18N_NAMESPACE, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, ComponentRuntimeProfileService, 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, EnterpriseRuntimeContextService, 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_ACTION_CONTROL_DEFAULTS, PRAXIS_ACTION_CONTROL_VARS, PRAXIS_COLLECTION_EXPORT_HTTP_OPTIONS, PRAXIS_COLLECTION_EXPORT_PROVIDER, PRAXIS_COLLECTION_SEARCH_DEFAULTS, PRAXIS_COLLECTION_SEARCH_VARS, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_EXPORT_SECURITY_POLICY, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_OPTIONS, PRAXIS_ENTERPRISE_RUNTIME_CONTEXT_READY, 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_RELATED_RESOURCE_OUTLET_COMPONENT_METADATA, PRAXIS_RELATED_RESOURCE_OUTLET_PORTS, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TABLE_DETAIL_INLINE_NODE_RESOLVERS, PRAXIS_TABLE_DETAIL_INLINE_RENDERERS, PRAXIS_TABLE_DETAIL_RESOURCE_RESOLVER, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_THEME_SURFACE_DEFAULTS, PRAXIS_THEME_SURFACE_VARS, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCollectionExportService, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisHttpCollectionExportProvider, PraxisI18nService, PraxisIconButtonComponent, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRelatedResourceOutletComponent, PraxisResourceIdentityComponent, PraxisRichTextBlockComponent, PraxisRuntimeComponentObservationRegistryService, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RelatedResourceSurfaceResolverService, RemoteConfigStorage, ResourceActionOpenAdapterService, ResourceDiscoveryService, ResourceQuickConnectComponent, ResourceRecordOpenError, ResourceRecordOpenService, ResourceSurfaceOpenAdapterService, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SURFACE_DRAWER_BRIDGE, SURFACE_DRAWER_CONTENT_DATA, SURFACE_DRAWER_REF, SURFACE_NAVIGATION_I18N_CONFIG, SURFACE_NAVIGATION_I18N_NAMESPACE, SURFACE_OPEN_I18N_CONFIG, SURFACE_OPEN_I18N_NAMESPACE, SURFACE_OPEN_PRESETS, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, SurfaceBindingRuntimeService, SurfaceNavigationError, SurfaceOpenActionEditorComponent, SurfaceOpenMaterializerService, SurfaceOutletRegistryService, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$1 as applyLocalCustomizations, applyLocalCustomizations as applyLocalFormCustomizations, assertPraxisCollectionExportArtifact, assertPraxisRuntimeComponentObservationSerializable, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisActionControlCss, buildPraxisCollectionSearchCss, buildPraxisEffectDistinctKey, buildPraxisLayerScaleCss, buildPraxisThemeSurfaceCss, buildSchemaId, buildSchemaIdStorageKeySegment, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, classifyEntityLookupResult, clonePraxisRuntimeComponentObservation, 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, evaluateFieldAccess, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getFormColumnFieldNames, getFormLayoutFieldNames, getGlobalActionCatalog, getGlobalActionPayloadActualType, getGlobalActionPayloadTypeIssue, getGlobalActionUiSchema, getMissingGlobalActionPayloadKeys, getPraxisTableCellVisualizationConstraint, getPraxisTableCellVisualizationGuidance, getReferencedFieldMetadata, getRequiredGlobalActionPayloadKeys, getTextTransformer, hasMeaningfulGlobalActionPayloadValue, hasPraxisCollectionExportArtifact, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isDomainRuleSnapshotProblemResponse, isEditorialComponentMeta, isEntityLookupMultiplePayloadMode, isEntityLookupPayloadMode, isEntityLookupPayloadModeCompatible, isEntityLookupResultSelectable, isEntityLookupSinglePayloadMode, isFormLayoutItem, isGlobalActionRef, isInlineFilterControlType, isLookupDialogSize, isLookupFilterFieldType, isLookupFilterOperator, isPraxisI18nMessageDescriptor, isPraxisPresentationVisualizationTableSafe, isPraxisRuntimeGlobalActionEffect, isProgrammaticDateRangePreset, isRangeValidForFilter, isRequiredGlobalActionParamPayloadMissing, isRequiredGlobalActionPayloadMissing, isStaticDateRangePreset, isSurfaceNavigationError, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, materializeFormLayoutFromMetadata, materializeResourceIdentity, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldAccessMetadata, normalizeFieldConstraints, normalizeFieldPresentation, normalizeFormConfig, normalizeFormLayoutItems, normalizeFormMetadata, normalizeGlobalActionRef, normalizeLayoutPolicy, normalizeLookupFilterRequest, normalizePath, normalizePraxisDataQueryContext, normalizePraxisEffectPolicy, normalizePraxisPresentationVisualization, normalizePraxisQueryFilterExpression, normalizePraxisQueryFilterNode, normalizeReactiveDeterminations, normalizeResourceAvailabilityReasonCode, normalizeResourceIdentityContract, normalizeStart, normalizeSurfaceOperationContext, normalizeUnknownError, normalizeWidgetEventPath, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, projectGroupedCommandPartialRows, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisCollectionExportProvider, providePraxisDynamicPageMetadata, providePraxisEnterpriseRuntimeContext, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpCollectionExportProvider, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisIconDefaults, providePraxisJsonLogicOperator, providePraxisJsonLogicOperatorOverride, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRelatedResourceOutletMetadata, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, readPraxisExportValue, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, registerPraxisRuntimeComponentObservation, removeDiacritics, renderPraxisPresentationVisualizationHtml, reportTelemetryHookFactory, requiredCheckedValidator, requiredPresenceValidator, resolveBuiltinPresets, resolveColumnTypeFromFieldDefinition, resolveControlTypeAlias, resolveDateRangeShortcutPreset, resolveDateRangeShortcutPresets, resolveDefaultValuePresentationFormat, resolveEntityLookupPayloadMode, resolveFieldPresentation, resolveGroupedCommandPartialRowSpans, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisCollectionExportItems, resolvePraxisExportFields, resolvePraxisExportScope, resolvePraxisFilterCriteria, resolvePraxisI18nDocument, resolveResourceAvailabilityReasonKey, resolveResourceIdentityContract, resolveSpan, resolveTextMaskFormat, resolveTextMaskFormatFromFieldDefinition, resolveValuePresentation, resolveValuePresentationLocale, serializeEntityLookupValueForPayload, serializeOptionSourceFilterRequest, serializePraxisCollectionToCsv, serializePraxisCollectionToExcel, serializePraxisCollectionToJson, slugify, staticDateRangePresetToPreset, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateSurfaceNavigationRejected, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, validateGlobalActionRef, validateGlobalActionRefs, withFormConfigSections, withMessage, withPraxisHttpLoading };
17221
- export type { AccessibilityConfig, ActionDefinition, ActionMessagesConfig, AiCapability, AiCapabilityCatalog, AiCapabilityCategory, AiCapabilityCategoryMap, AiConcept, AiConceptPack, AiValueKind, AnalyticsComparisonPeriodMode, AnalyticsComparisonPeriodPreset, 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, CollectionActionsConfig, ColorConfig, ColumnAlign, ColumnDefinition, ColumnHidden, ColumnOffset, ColumnOrder, ColumnSpan, ComponentActionParam, ComponentAuthoringManifest, ComponentConfigEditorContextRequest, ComponentConfigEditorContextResolver, ComponentConfigEditorContextResult, ComponentContextAction, ComponentContextOption, ComponentContextOptionMode, ComponentContextOptionsByPathEntry, ComponentContextPack, ComponentDocMeta, ComponentEditorialResolveOptions, ComponentKeyParams, ComponentMergePatch, ComponentMetadata, ComponentMetadataEditorialBindingDescriptor, ComponentMetadataEditorialDescriptor, ComponentPortEndpointRef, ComponentPortPathSegment, ComponentRuntimeEffect, ComponentRuntimeProfile, ComponentRuntimeProfileConstraint, ComponentRuntimeProfileConstraintOperator, ComponentRuntimeProfileMatch, ComponentRuntimeProfileMismatch, ComponentRuntimeProfileResolution, ComponentRuntimeResourceReadEffect, ComponentRuntimeResourceReadOperation, CompositionLink, CompositionRuntimeFacadeOptions, ConditionalValidationRule, ConfigMetadata, ConfigStorage, ConfirmationConfig, ConnectionConfigV1, ConnectionStorage, ContextAction, ContextActionsConfig, BackConfig as CoreBackConfig, CoreFieldMetadata, CorePresetDescriptor, CorePresetDiscoveryRegistry, CorePresetKind, CorePresetRef, CrudConfigureOptions, CrudOperationOptions, CrudOperationResolutionContext, CrudSchemaOptions, CsvExportConfig, CurrencyLocaleConfig, CursorPage, CursorRequest, CustomizationLog, DataConfig, DataTransformation, DataValidationConfig, DateRangePreset, DateRangeShortcutPreset, 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, DomainRuleCatalogCandidate, DomainRuleCatalogFilters, DomainRuleCatalogPage, DomainRuleChangeWorkspace, DomainRuleChangeWorkspaceCreateRequest, DomainRuleChangeWorkspaceUpdateRequest, DomainRuleCompositionApproval, DomainRuleCompositionManifest, DomainRuleCreatedByType, DomainRuleDecision, DomainRuleDecisionDiagnostics, DomainRuleDefinition, DomainRuleDefinitionAction, DomainRuleDefinitionCapabilities, DomainRuleDefinitionCapability, DomainRuleDefinitionFilters, DomainRuleDefinitionRequest, DomainRuleExecutionSummary, DomainRuleExplainability, DomainRuleFactCatalog, DomainRuleFactDescriptor, DomainRuleFactRedaction, DomainRuleFactSensitivity, DomainRuleFactValueType, DomainRuleHostStatusSummary, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleMaterialization, DomainRuleMaterializationFilters, DomainRuleMaterializationOutcomeResolution, DomainRuleMaterializationRequest, DomainRuleOperationalTestEvidence, DomainRulePublicationDiagnostics, DomainRulePublicationMaterializationOutcome, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleRequestOptions, DomainRuleRollout, DomainRuleRolloutAvailableAction, DomainRuleRolloutCatalog, DomainRuleRolloutCatalogAction, DomainRuleRolloutCatalogItem, DomainRuleRolloutCreateRequest, DomainRuleRolloutEnforcementMode, DomainRuleRolloutPolicy, DomainRuleRolloutPolicyAction, DomainRuleRolloutPolicyCatalog, DomainRuleRolloutPolicyCatalogAction, DomainRuleRolloutPolicyCreateRequest, DomainRuleRolloutPolicyEvent, DomainRuleRolloutPolicyMutation, DomainRuleRolloutPolicyStatus, DomainRuleRolloutReadiness, DomainRuleRolloutStatus, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleSnapshotActivation, DomainRuleSnapshotAvailableAction, DomainRuleSnapshotBlocker, DomainRuleSnapshotCompositionRequest, DomainRuleSnapshotGovernanceState, DomainRuleSnapshotHeadStatus, DomainRuleSnapshotProblemResponse, DomainRuleSnapshotPublicationRequest, DomainRuleSnapshotVersion, DomainRuleStatus, DomainRuleStatusTransitionRequest, DomainRuleTargetLayer, DomainRuleTestBaselineAuthority, DomainRuleTestBaselineEvidence, DomainRuleTestComparison, DomainRuleTestEvidenceEligibility, DomainRuleTestRun, DomainRuleTestRunResult, DomainRuleTestScenario, DomainRuleTestScenarioRequest, DomainRuleTimelineEventResponse, DomainRuleTimelineEventVisibility, DomainRuleTimelineResponse, DomainRuleTimelineRichContentOptions, DomainRuleWorkspaceAction, DomainRuleWorkspaceBlocker, DomainRuleWorkspaceCapabilities, DomainRuleWorkspaceLifecycleInspection, DomainRuleWorkspaceReview, DomainRuleWorkspaceReviewRequest, DomainRuleWorkspaceStatus, DraggingConfig, DynamicFormDetailSummaryPolicy, DynamicFormDetailSummaryWidthPrecedence, DynamicFormGroupedCommandOrphanFieldExpansion, DynamicFormGroupedCommandPartialRowProjection, DynamicFormGroupedCommandPartialRowStrategy, DynamicFormGroupedCommandPolicy, DynamicFormGroupedCommandSpanCandidate, DynamicFormGroupedCommandVisualRowProjection, DynamicFormLayoutDetachBehavior, DynamicFormLayoutIntent, DynamicFormLayoutLifecycle, DynamicFormLayoutPersistence, DynamicFormLayoutPolicy, DynamicFormLayoutSource, DynamicFormResponsiveBreakpoint, DynamicFormResponsiveColumns, DynamicFormSchemaLayoutPreset, DynamicFormSchemaOperation, DynamicFormSchemaType, 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, EmptyStateAlignment, EmptyStateConfig, EmptyStateDensity, EmptyStateIconContainer, EmptyStateTone, EmptyStateVariant, EndpointConfig, EndpointRef, EnhancedValidationConfig, EnterpriseRuntimeContext, EnterpriseRuntimeContextHeaders, EnterpriseRuntimeContextSwitchCommand, EnterpriseRuntimeContextSwitchResponse, EnterpriseRuntimeNavigationNode, EnterpriseRuntimeNavigationResponse, EnterpriseRuntimeSecurityEvent, EnterpriseRuntimeSecurityEventsResponse, EnterpriseRuntimeTenant, EnterpriseRuntimeTenantsResponse, EnterpriseRuntimeUser, 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, FieldAccessEvaluationContext, FieldAccessEvaluationResult, FieldAccessMetadata, FieldArrayCollectionValidation, FieldArrayConfig, FieldArrayOperations, FieldConflict, FieldDefinition, FieldMetadata, FieldModification, FieldOption, FieldPresentationAppearance, FieldPresentationConfig, FieldPresentationInteractions, FieldPresentationJsonLogicEvaluator, FieldPresentationRule, FieldPresentationTone, FieldPresenterKind, FieldSelectorRegistryMap, FieldSource, FieldSubmitPolicy, FieldsetLayout, FilterOptions, FilteringConfig, FooterLinksAppearance, FooterLinksLayout, FormActionButton, FormActionConfirmationEvent, FormActionsLayout, FormApiLayout, FormBehaviorLayout, FormColumn, FormConfig, FormConfigMetadata, FormConfigState, FormConfigWithSections, FormCustomActionEvent, FormEntityEvent, FormFieldHelpDisplay, FormFieldLayoutItem, FormHelpPresentationConfig, FormHook, FormHookContext, FormHookDeclaration, FormHookDeclarationLite, FormHookOutcome, FormHookPreset, FormHookPresetMatch, FormHookStage, FormHookStatus, FormHooksLayout, FormInitializationError, FormLayout, FormLayoutItem, FormLayoutItemsColumnLike, FormLayoutRule, FormMessagesLayout, FormMetadataLayout, FormModeHints, FormOpenMode, FormPresentationConfig, 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, HeroVisualSummary, HeroVisualSummaryEvent, HeroVisualSummaryItem, HeroVisualTone, HookResolver, InlineFilterControlType, InlineMonthRangeMetadata, InlineOverlayActionAppearance, InlineOverlayActionColorRole, InlineOverlayActionMetadata, InlineOverlayActionsMetadata, InlineOverlayApplyMode, InlineOverlayMetadata, 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, LookupSearchInputFormat, LookupSearchStrategyKind, LookupSearchStrategyMetadata, LookupSelectionPolicyMetadata, LookupSortOptionMetadata, LookupStatusTone, ManifestControlProfile, ManifestControlProfileApplicability, ManifestDomainPatchHandlerContract, ManifestEffect, ManifestExample, ManifestInput, ManifestOperation, ManifestPresentationAffordance, ManifestPresentationAffordanceCatalog, 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, MaterializeFormLayoutOptions, MaterializedResourceIdentity, MemoryConfig, MessageTemplate, MessagesConfig, NavigationOpenRoutePayload, NestedFieldsetLayout, NestedPortCatalogDiagnostic, NestedPortCatalogRegistry, NestedPortCatalogResult, NestedWidgetInputPatchResult, NestedWidgetResolution, NormalizedError, NumberLocaleConfig, ObservabilityAgenticTurnMetricBucket, ObservabilityAgenticTurnMetrics, ObservabilityAlert, ObservabilityAlertGroupBy, ObservabilityAlertRule, ObservabilityAlertSeverity, ObservabilityCountBucket, ObservabilityDashboardOptions, ObservabilityIngestInput, ObservabilityMetricsSnapshot, OptionDTO, OptionSourceByIdsRequestOptions, OptionSourceCachePolicy, OptionSourceFilterRequest, OptionSourceInvalidSortPolicy, OptionSourceMetadata, OptionSourceRequestOptions, OptionSourceSearchMode, OptionSourceSelectedReloadPolicy, 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, PraxisActionControlTokens, PraxisAnalyticsBindings, PraxisAnalyticsComparisonBucket, PraxisAnalyticsComparisonBucketKey, PraxisAnalyticsComparisonMetricValue, PraxisAnalyticsComparisonPeriodBinding, PraxisAnalyticsComparisonPeriodWindow, PraxisAnalyticsComparisonStatsRequest, PraxisAnalyticsComparisonStatsResponse, 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, PraxisCollectionSearchTokens, PraxisCollectionSelectionMode, PraxisCollectionSelectionState, PraxisCollectionSortDescriptor, PraxisConditionalEffectDiagnostic, PraxisConditionalRule, PraxisConditionalRuleMatchInput, PraxisCustomRuleOperator, PraxisDataQueryContext, PraxisDataQueryContextMeta, PraxisEffectDistinctKeyInput, PraxisEffectPolicy, PraxisEnterpriseRuntimeContextOptions, PraxisEnterpriseRuntimeEndpoints, PraxisExportFormat, PraxisExportScope, PraxisExportSecurityPolicy, PraxisExportSortDirection, PraxisGlobalActionsOptions, PraxisGlobalConfigBootstrapOptions, PraxisHostRuleOperator, PraxisHttpLoadingOptions, PraxisI18nConfig, PraxisI18nDictionary, PraxisI18nDocumentResolveOptions, PraxisI18nMessageDescriptor, PraxisI18nNamespaceConfig, PraxisI18nNamespaceDictionary, PraxisI18nTranslator, PraxisIconButtonAppearance, PraxisIconButtonPresentation, PraxisIconButtonSize, PraxisIconDefaultsOptions, PraxisJsonLogicEvaluationContext, PraxisJsonLogicEvaluationOptions, PraxisJsonLogicEvaluationResult, PraxisJsonLogicIssueCode, PraxisJsonLogicLimits, PraxisJsonLogicOperatorDefinition, PraxisJsonLogicOperatorDescriptor, PraxisJsonLogicOperatorHelpers, PraxisJsonLogicOperatorMetadata, PraxisJsonLogicOperatorPurity, PraxisJsonLogicOperatorReturnType, PraxisJsonLogicOperatorSource, PraxisJsonLogicRuntimeValue, PraxisJsonLogicValidationIssue, PraxisJsonLogicValidationOptions, PraxisJsonLogicValidationResult, PraxisLayerScale, PraxisLoadingRenderer, PraxisLocale, PraxisLoggingEnvironment, PraxisLoggingOptions, PraxisNativeJsonLogicOperator, PraxisPresentationVisualizationConfig, PraxisPresentationVisualizationHtmlOptions, PraxisPresentationVisualizationItem, PraxisPresentationVisualizationKind, PraxisPresentationVisualizationPoint, PraxisPresentationVisualizationSegment, PraxisPresentationVisualizationSize, PraxisPresentationVisualizationSurface, PraxisPresentationVisualizationThreshold, PraxisPresentationVisualizationTone, PraxisQueryFilterExpression, PraxisQueryFilterGovernance, PraxisQueryFilterGroup, PraxisQueryFilterNode, PraxisQueryFilterPredicate, PraxisQueryFilterPredicateOperator, PraxisQueryFilterPredicateSource, PraxisResourceEvent, PraxisResourceEventKind, PraxisResourceRowClickPayload, PraxisResourceSelectionPayload, PraxisRuleContextDescriptor, PraxisRuleOperator, PraxisRuntimeComponentAffordanceHints, PraxisRuntimeComponentAuthoringManifestRef, PraxisRuntimeComponentIdentity, PraxisRuntimeComponentLifecycle, PraxisRuntimeComponentObservationClaim, PraxisRuntimeComponentObservationClaimKind, PraxisRuntimeComponentObservationDiagnostics, PraxisRuntimeComponentObservationEnvelope, PraxisRuntimeComponentObservationProvider, PraxisRuntimeComponentObservationRegisterOptions, PraxisRuntimeComponentObservationRegistry, PraxisRuntimeComponentObservationSchemaVersion, PraxisRuntimeComponentRefs, PraxisRuntimeComponentRegistration, PraxisRuntimeComponentSchemaFieldDescriptor, PraxisRuntimeComponentSnapshotDigest, PraxisRuntimeConditionalEffectRule, PraxisRuntimeEffectTrigger, PraxisRuntimeGlobalActionEffect, PraxisRuntimeVisualMaterializationCapability, PraxisRuntimeVisualMaterializationStatus, PraxisSubmitError, PraxisSubmitErrorDetail, PraxisTableCellVisualizationConstraint, PraxisTableCellVisualizationGuidance, PraxisTextValue, PraxisThemeSurfaceTokens, PraxisToastOptions, PraxisTranslationParams, PraxisXUiAnalytics, PriceRangeValue, RangeSliderInlineTexts, RangeSliderMark, RangeSliderQuickPreset, RangeSliderQuickPresetLabels, RangeSliderScalePreset, RangeSliderSemanticBand, RangeSliderSemanticTone, RangeSliderTrackMode, RangeSliderValue, RangeSliderValueFormat, RangeSliderValueLabelDisplay, ReactiveDeterminationCapability, ReactiveDeterminationDefinition, ReactiveDeterminationExecutionEvent, ReactiveDeterminationExecutionStatus, ReactiveDeterminationFormMode, ReactiveDeterminationInputBinding, ReactiveDeterminationOutputBinding, ReactiveDeterminationProvenance, ReactiveDeterminationProvenanceKind, ReactiveDeterminationScope, ReactiveDeterminationTrigger, ReactiveDeterminationTriggerMode, RecordRelatedSurfaceContext, RecordRelatedSurfaceContextPack, RecordRelatedSurfaceEndpoint, RecordRelatedSurfaceOperationId, RelatedResourceChildOperation, RelatedResourceOutletMode, RelatedResourceQueryContext, RelatedResourceResolutionState, RelatedResourceSurface, RelatedResourceSurfaceResolution, RelatedResourceSurfaceResolverRequest, RenderingConfig, ResizingConfig, ResolveCrudOperationRequest, ResolveFieldPresentationOptions, ResolvePresetOptions, ResolveResourceIdentityOptions, ResolvedComponentMetadataEditorialBinding, ResolvedComponentMetadataEditorialMeta, ResolvedCrudOperation, ResolvedCrudOperationSource, ResolvedFieldPresentation, ResolvedNestedPort, ResolvedPraxisPresentationVisualizationConfig, ResolvedResourceIdentityContract, ResolvedValuePresentation, ResourceActionCatalogItem, ResourceActionCatalogResponse, ResourceActionCollectionAtomicity, ResourceActionExecutionContract, ResourceActionInteractionMode, ResourceActionOpenAdapterOptions, ResourceActionOutcomeMode, ResourceActionRequirement, ResourceActionRiskLevel, ResourceActionScope, ResourceActionVersionTransport, ResourceAvailabilityDecision, ResourceCanonicalCapabilityOperationId, ResourceCapabilityDigest, ResourceCapabilityOperation, ResourceCapabilityOperationId, ResourceCapabilityOperations, ResourceCapabilitySnapshot, ResourceCrudOperationId, ResourceDiscoveryRel, ResourceDiscoveryRequestOptions, ResourceExportMaxRows, ResourceIdentityContract, ResourceIdentityDiagnostic, ResourceIdentityFieldMetadata, ResourceIdentityPart, ResourceIdentitySource, ResourceKnownCapabilityOperationId, ResourceLinkSource, ResourceRecordOpenFailureCode, ResourceRecordOpenRef, ResourceRecordOpenResolution, ResourceRecordOpenResolveOptions, ResourceSchemaCatalogEndpoint, ResourceSchemaCatalogExample, ResourceSchemaCatalogField, ResourceSchemaCatalogHttpMethod, ResourceSchemaCatalogOperationExamples, ResourceSchemaCatalogParameter, ResourceSchemaCatalogQuery, ResourceSchemaCatalogRelation, ResourceSchemaCatalogResponse, ResourceSchemaCatalogSchemaLinks, ResourceSchemaCatalogSchemaRef, ResourceSchemaCatalogVisual, ResourceSchemaCatalogVisualSource, ResourceStatsCapability, ResourceStatsFieldCapability, ResourceStatsMetric, ResourceStatsMode, 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, RichDecisionGovernanceStatus, RichDecisionPackageEvidence, RichDecisionPackageNode, RichDecisionRisk, 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, RichTimelineDensity, RichTimelineEmphasis, RichTimelineItem, RichTimelineMarkerStyle, RichTimelineMarkerVariant, RichTimelineNode, RichTimelineOrder, RichTimelineOrientation, RichTimelinePosition, RichTimelineTextAppearance, 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, StaticDateRangePreset, StaticDateRangePresetTone, StaticPresetResolutionOptions, SubmitPolicy, SurfaceBinding, SurfaceBindingMode, SurfaceDrawerBridge, SurfaceDrawerFrameRef, SurfaceDrawerNavigationFrame, SurfaceDrawerNavigationGuard, SurfaceDrawerNavigationState, SurfaceDrawerOpenContent, SurfaceDrawerOpenOptions, SurfaceDrawerRef, SurfaceDrawerResult, SurfaceDrawerWidthPreset, SurfaceLifecycleCondition, SurfaceLifecycleOutcomeBinding, SurfaceLifecyclePolicy, SurfaceNavigationFailureCode, SurfaceNavigationOperation, SurfaceOpenPayload, SurfaceOpenPreset, SurfaceOperationContext, SurfaceOperationRelationship, SurfaceOperationResourceRef, SurfaceOutcome, SurfaceOutcomeKind, SurfaceOutletRegistration, SurfacePresentation, SurfaceSizeConfig, SyncConfig, SyncResult, TableActionsConfig, TableAiAssistantConfig, TableAiConfig, TableAppearanceConfig, TableBehaviorConfig, TableConfig, TableConfigV2 as TableConfigModern, TableConfigState, TableConfigV2, TableDetailActionBarAction, TableDetailActionBarNode, TableDetailActionNode, TableDetailAllowedNode, TableDetailBaseNode, TableDetailCardGridCardNode, TableDetailCardGridNode, TableDetailCardNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, TableDetailEmbedBaseNode, TableDetailInlineNodeResolverDefinition, TableDetailInlineRendererContext, TableDetailInlineRendererDefinition, TableDetailInlineSchemaDocument, TableDetailLayoutNode, TableDetailListItemAction, TableDetailListItemContextConfig, TableDetailListItemSchema, TableDetailListNode, TableDetailMediaBlockNode, TableDetailRefNode, TableDetailResourceDocument, TableDetailResourceResolver, TableDetailResourceResolverRequest, TableDetailResourceResolverResult, TableDetailRichListNode, TableDetailRichTextNode, TableDetailSchemaNode, TableDetailTabNode, TableDetailTabsNode, TableDetailTemplateRefNode, TableDetailTimelineItemSchema, TableDetailTimelineNode, TableDetailTimelineStaticItem, TableDetailValueNode, TableExpansionConfig, TableLocalDataModeConfig, TableSchemaColumnProjectionConfig, TableToolbarAppearanceConfig, TableToolbarAppearanceDensity, TableToolbarAppearanceDivider, TableToolbarAppearanceShape, TableToolbarAppearanceVariant, TableToolbarTokenName, TableTooltipConfig, TelemetryEvent, TelemetryLoggerSinkOptions, TelemetryTransport, TextTransformApply, TextTransformName, ThemeConfig, ToolbarAction, ToolbarActionEvent, ToolbarActionTarget, ToolbarActionTargetCardinality, ToolbarActionTargetScope, 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 };
17266
+ export type { AccessibilityConfig, ActionDefinition, ActionMessagesConfig, AiCapability, AiCapabilityCatalog, AiCapabilityCategory, AiCapabilityCategoryMap, AiConcept, AiConceptPack, AiValueKind, AnalyticsComparisonPeriodMode, AnalyticsComparisonPeriodPreset, 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, CollectionActionsConfig, ColorConfig, ColumnAlign, ColumnDefinition, ColumnHidden, ColumnOffset, ColumnOrder, ColumnSpan, ComponentActionParam, ComponentAuthoringManifest, ComponentConfigEditorContextRequest, ComponentConfigEditorContextResolver, ComponentConfigEditorContextResult, ComponentContextAction, ComponentContextOption, ComponentContextOptionMode, ComponentContextOptionsByPathEntry, ComponentContextPack, ComponentDocMeta, ComponentEditorialResolveOptions, ComponentKeyParams, ComponentMergePatch, ComponentMetadata, ComponentMetadataEditorialBindingDescriptor, ComponentMetadataEditorialDescriptor, ComponentPortEndpointRef, ComponentPortPathSegment, ComponentRuntimeEffect, ComponentRuntimeProfile, ComponentRuntimeProfileConstraint, ComponentRuntimeProfileConstraintOperator, ComponentRuntimeProfileMatch, ComponentRuntimeProfileMismatch, ComponentRuntimeProfileResolution, ComponentRuntimeResourceReadEffect, ComponentRuntimeResourceReadOperation, CompositionLink, CompositionRuntimeFacadeOptions, ConditionalValidationRule, ConfigMetadata, ConfigStorage, ConfirmationConfig, ConnectionConfigV1, ConnectionStorage, ContextAction, ContextActionsConfig, BackConfig as CoreBackConfig, CoreFieldMetadata, CorePresetDescriptor, CorePresetDiscoveryRegistry, CorePresetKind, CorePresetRef, CrudConfigureOptions, CrudOperationOptions, CrudOperationResolutionContext, CrudSchemaOptions, CsvExportConfig, CurrencyLocaleConfig, CursorPage, CursorRequest, CustomizationLog, DataConfig, DataTransformation, DataValidationConfig, DateRangePreset, DateRangeShortcutPreset, 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, DomainRuleCatalogCandidate, DomainRuleCatalogFilters, DomainRuleCatalogPage, DomainRuleChangeWorkspace, DomainRuleChangeWorkspaceCreateRequest, DomainRuleChangeWorkspaceUpdateRequest, DomainRuleCompositionApproval, DomainRuleCompositionManifest, DomainRuleCreatedByType, DomainRuleDecision, DomainRuleDecisionDiagnostics, DomainRuleDefinition, DomainRuleDefinitionAction, DomainRuleDefinitionCapabilities, DomainRuleDefinitionCapability, DomainRuleDefinitionFilters, DomainRuleDefinitionRequest, DomainRuleExecutionSummary, DomainRuleExplainability, DomainRuleFactCatalog, DomainRuleFactDescriptor, DomainRuleFactRedaction, DomainRuleFactSensitivity, DomainRuleFactValueType, DomainRuleHostStatusSummary, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleMaterialization, DomainRuleMaterializationFilters, DomainRuleMaterializationOutcomeResolution, DomainRuleMaterializationRequest, DomainRuleOperationalTestEvidence, DomainRulePublicationDiagnostics, DomainRulePublicationMaterializationOutcome, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleRequestOptions, DomainRuleRollout, DomainRuleRolloutAvailableAction, DomainRuleRolloutCatalog, DomainRuleRolloutCatalogAction, DomainRuleRolloutCatalogItem, DomainRuleRolloutCreateRequest, DomainRuleRolloutEnforcementMode, DomainRuleRolloutPolicy, DomainRuleRolloutPolicyAction, DomainRuleRolloutPolicyCatalog, DomainRuleRolloutPolicyCatalogAction, DomainRuleRolloutPolicyCreateRequest, DomainRuleRolloutPolicyEvent, DomainRuleRolloutPolicyMutation, DomainRuleRolloutPolicyStatus, DomainRuleRolloutReadiness, DomainRuleRolloutStatus, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleSnapshotActivation, DomainRuleSnapshotAvailableAction, DomainRuleSnapshotBlocker, DomainRuleSnapshotCompositionRequest, DomainRuleSnapshotGovernanceState, DomainRuleSnapshotHeadStatus, DomainRuleSnapshotProblemResponse, DomainRuleSnapshotPublicationRequest, DomainRuleSnapshotVersion, DomainRuleStatus, DomainRuleStatusTransitionRequest, DomainRuleTargetLayer, DomainRuleTestBaselineAuthority, DomainRuleTestBaselineEvidence, DomainRuleTestComparison, DomainRuleTestEvidenceEligibility, DomainRuleTestRun, DomainRuleTestRunResult, DomainRuleTestScenario, DomainRuleTestScenarioRequest, DomainRuleTimelineEventResponse, DomainRuleTimelineEventVisibility, DomainRuleTimelineResponse, DomainRuleTimelineRichContentOptions, DomainRuleWorkspaceAction, DomainRuleWorkspaceBlocker, DomainRuleWorkspaceCapabilities, DomainRuleWorkspaceLifecycleInspection, DomainRuleWorkspaceReview, DomainRuleWorkspaceReviewRequest, DomainRuleWorkspaceStatus, DraggingConfig, DynamicFormDetailSummaryPolicy, DynamicFormDetailSummaryWidthPrecedence, DynamicFormGroupedCommandOrphanFieldExpansion, DynamicFormGroupedCommandPartialRowProjection, DynamicFormGroupedCommandPartialRowStrategy, DynamicFormGroupedCommandPolicy, DynamicFormGroupedCommandSpanCandidate, DynamicFormGroupedCommandVisualRowProjection, DynamicFormLayoutDetachBehavior, DynamicFormLayoutIntent, DynamicFormLayoutLifecycle, DynamicFormLayoutPersistence, DynamicFormLayoutPolicy, DynamicFormLayoutSource, DynamicFormResponsiveBreakpoint, DynamicFormResponsiveColumns, DynamicFormSchemaLayoutPreset, DynamicFormSchemaOperation, DynamicFormSchemaType, 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, EmptyStateAlignment, EmptyStateConfig, EmptyStateDensity, EmptyStateIconContainer, EmptyStateTone, EmptyStateVariant, EndpointConfig, EndpointRef, EnhancedValidationConfig, EnterpriseRuntimeContext, EnterpriseRuntimeContextHeaders, EnterpriseRuntimeContextSwitchCommand, EnterpriseRuntimeContextSwitchResponse, EnterpriseRuntimeNavigationNode, EnterpriseRuntimeNavigationResponse, EnterpriseRuntimeSecurityEvent, EnterpriseRuntimeSecurityEventsResponse, EnterpriseRuntimeTenant, EnterpriseRuntimeTenantsResponse, EnterpriseRuntimeUser, 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, FieldAccessEvaluationContext, FieldAccessEvaluationResult, FieldAccessMetadata, FieldArrayCollectionValidation, FieldArrayConfig, FieldArrayOperations, FieldConflict, FieldDefinition, FieldMetadata, FieldModification, FieldOption, FieldPresentationAppearance, FieldPresentationConfig, FieldPresentationInteractions, FieldPresentationJsonLogicEvaluator, FieldPresentationRule, FieldPresentationTone, FieldPresenterKind, FieldSelectorRegistryMap, FieldSource, FieldSubmitPolicy, FieldsetLayout, FilterOptions, FilteringConfig, FooterLinksAppearance, FooterLinksLayout, FormActionButton, FormActionConfirmationEvent, FormActionsLayout, FormApiLayout, FormBehaviorLayout, FormColumn, FormConfig, FormConfigMetadata, FormConfigState, FormConfigWithSections, FormCustomActionEvent, FormEntityEvent, FormFieldHelpDisplay, FormFieldLayoutItem, FormHelpPresentationConfig, FormHook, FormHookContext, FormHookDeclaration, FormHookDeclarationLite, FormHookOutcome, FormHookPreset, FormHookPresetMatch, FormHookStage, FormHookStatus, FormHooksLayout, FormInitializationError, FormLayout, FormLayoutItem, FormLayoutItemsColumnLike, FormLayoutRule, FormMessagesLayout, FormMetadataLayout, FormModeHints, FormOpenMode, FormPresentationConfig, 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, HeroVisualSummary, HeroVisualSummaryEvent, HeroVisualSummaryItem, HeroVisualTone, HookResolver, InlineFilterControlType, InlineMonthRangeMetadata, InlineOverlayActionAppearance, InlineOverlayActionColorRole, InlineOverlayActionMetadata, InlineOverlayActionsMetadata, InlineOverlayApplyMode, InlineOverlayMetadata, 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, LookupSearchInputFormat, LookupSearchStrategyKind, LookupSearchStrategyMetadata, LookupSelectionPolicyMetadata, LookupSortOptionMetadata, LookupStatusTone, ManifestControlProfile, ManifestControlProfileApplicability, ManifestDomainPatchHandlerContract, ManifestEffect, ManifestExample, ManifestInput, ManifestOperation, ManifestPresentationAffordance, ManifestPresentationAffordanceCatalog, 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, MaterializeFormLayoutOptions, MaterializedResourceIdentity, MemoryConfig, MessageTemplate, MessagesConfig, NavigationOpenRoutePayload, NestedFieldsetLayout, NestedPortCatalogDiagnostic, NestedPortCatalogRegistry, NestedPortCatalogResult, NestedWidgetInputPatchResult, NestedWidgetResolution, NormalizedError, NumberLocaleConfig, ObservabilityAgenticTurnMetricBucket, ObservabilityAgenticTurnMetrics, ObservabilityAlert, ObservabilityAlertGroupBy, ObservabilityAlertRule, ObservabilityAlertSeverity, ObservabilityCountBucket, ObservabilityDashboardOptions, ObservabilityIngestInput, ObservabilityMetricsSnapshot, OptionDTO, OptionSourceByIdsRequestOptions, OptionSourceCachePolicy, OptionSourceFilterRequest, OptionSourceInvalidSortPolicy, OptionSourceMetadata, OptionSourceRequestOptions, OptionSourceSearchMode, OptionSourceSelectedReloadPolicy, 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, PraxisActionControlTokens, PraxisAnalyticsBindings, PraxisAnalyticsComparisonBucket, PraxisAnalyticsComparisonBucketKey, PraxisAnalyticsComparisonMetricValue, PraxisAnalyticsComparisonPeriodBinding, PraxisAnalyticsComparisonPeriodWindow, PraxisAnalyticsComparisonStatsRequest, PraxisAnalyticsComparisonStatsResponse, 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, PraxisCollectionSearchTokens, PraxisCollectionSelectionMode, PraxisCollectionSelectionState, PraxisCollectionSortDescriptor, PraxisConditionalEffectDiagnostic, PraxisConditionalRule, PraxisConditionalRuleMatchInput, PraxisCustomRuleOperator, PraxisDataQueryContext, PraxisDataQueryContextMeta, PraxisEffectDistinctKeyInput, PraxisEffectPolicy, PraxisEnterpriseRuntimeContextOptions, PraxisEnterpriseRuntimeEndpoints, PraxisExportFormat, PraxisExportScope, PraxisExportSecurityPolicy, PraxisExportSortDirection, PraxisGlobalActionsOptions, PraxisGlobalConfigBootstrapOptions, PraxisHostRuleOperator, PraxisHttpLoadingOptions, PraxisI18nConfig, PraxisI18nDictionary, PraxisI18nDocumentResolveOptions, PraxisI18nMessageDescriptor, PraxisI18nNamespaceConfig, PraxisI18nNamespaceDictionary, PraxisI18nTranslator, PraxisIconButtonAppearance, PraxisIconButtonPresentation, PraxisIconButtonSize, PraxisIconDefaultsOptions, PraxisJsonLogicEvaluationContext, PraxisJsonLogicEvaluationOptions, PraxisJsonLogicEvaluationResult, PraxisJsonLogicIssueCode, PraxisJsonLogicLimits, PraxisJsonLogicOperatorDefinition, PraxisJsonLogicOperatorDescriptor, PraxisJsonLogicOperatorHelpers, PraxisJsonLogicOperatorMetadata, PraxisJsonLogicOperatorPurity, PraxisJsonLogicOperatorReturnType, PraxisJsonLogicOperatorSource, PraxisJsonLogicRuntimeValue, PraxisJsonLogicValidationIssue, PraxisJsonLogicValidationOptions, PraxisJsonLogicValidationResult, PraxisLayerScale, PraxisLoadingRenderer, PraxisLocale, PraxisLoggingEnvironment, PraxisLoggingOptions, PraxisNativeJsonLogicOperator, PraxisPresentationVisualizationConfig, PraxisPresentationVisualizationHtmlOptions, PraxisPresentationVisualizationItem, PraxisPresentationVisualizationKind, PraxisPresentationVisualizationPoint, PraxisPresentationVisualizationSegment, PraxisPresentationVisualizationSize, PraxisPresentationVisualizationSurface, PraxisPresentationVisualizationThreshold, PraxisPresentationVisualizationTone, PraxisQueryFilterExpression, PraxisQueryFilterGovernance, PraxisQueryFilterGroup, PraxisQueryFilterNode, PraxisQueryFilterPredicate, PraxisQueryFilterPredicateOperator, PraxisQueryFilterPredicateSource, PraxisResourceEvent, PraxisResourceEventKind, PraxisResourceRowClickPayload, PraxisResourceSelectionPayload, PraxisRuleContextDescriptor, PraxisRuleOperator, PraxisRuntimeComponentAffordanceHints, PraxisRuntimeComponentAuthoringManifestRef, PraxisRuntimeComponentIdentity, PraxisRuntimeComponentLifecycle, PraxisRuntimeComponentObservationClaim, PraxisRuntimeComponentObservationClaimKind, PraxisRuntimeComponentObservationDiagnostics, PraxisRuntimeComponentObservationEnvelope, PraxisRuntimeComponentObservationProvider, PraxisRuntimeComponentObservationRegisterOptions, PraxisRuntimeComponentObservationRegistry, PraxisRuntimeComponentObservationSchemaVersion, PraxisRuntimeComponentRefs, PraxisRuntimeComponentRegistration, PraxisRuntimeComponentSchemaFieldDescriptor, PraxisRuntimeComponentSnapshotDigest, PraxisRuntimeConditionalEffectRule, PraxisRuntimeEffectTrigger, PraxisRuntimeGlobalActionEffect, PraxisRuntimeVisualMaterializationCapability, PraxisRuntimeVisualMaterializationStatus, PraxisSubmitError, PraxisSubmitErrorDetail, PraxisTableCellVisualizationConstraint, PraxisTableCellVisualizationGuidance, PraxisTextValue, PraxisThemeSurfaceTokens, PraxisToastOptions, PraxisTranslationParams, PraxisXUiAnalytics, PriceRangeValue, RangeSliderInlineTexts, RangeSliderMark, RangeSliderQuickPreset, RangeSliderQuickPresetLabels, RangeSliderScalePreset, RangeSliderSemanticBand, RangeSliderSemanticTone, RangeSliderTrackMode, RangeSliderValue, RangeSliderValueFormat, RangeSliderValueLabelDisplay, ReactiveDeterminationCapability, ReactiveDeterminationDefinition, ReactiveDeterminationExecutionEvent, ReactiveDeterminationExecutionStatus, ReactiveDeterminationFormMode, ReactiveDeterminationInputBinding, ReactiveDeterminationOutputBinding, ReactiveDeterminationProvenance, ReactiveDeterminationProvenanceKind, ReactiveDeterminationScope, ReactiveDeterminationTrigger, ReactiveDeterminationTriggerMode, RecordRelatedSurfaceContext, RecordRelatedSurfaceContextPack, RecordRelatedSurfaceEndpoint, RecordRelatedSurfaceOperationId, RelatedResourceChildOperation, RelatedResourceOutletMode, RelatedResourceQueryContext, RelatedResourceResolutionState, RelatedResourceSurface, RelatedResourceSurfaceResolution, RelatedResourceSurfaceResolverRequest, RenderingConfig, ResizingConfig, ResolveCrudOperationRequest, ResolveFieldPresentationOptions, ResolvePresetOptions, ResolveResourceIdentityOptions, ResolvedComponentMetadataEditorialBinding, ResolvedComponentMetadataEditorialMeta, ResolvedCrudOperation, ResolvedCrudOperationSource, ResolvedFieldPresentation, ResolvedNestedPort, ResolvedPraxisPresentationVisualizationConfig, ResolvedResourceIdentityContract, ResolvedValuePresentation, ResourceActionCatalogItem, ResourceActionCatalogResponse, ResourceActionCollectionAtomicity, ResourceActionExecutionContract, ResourceActionInteractionMode, ResourceActionOpenAdapterOptions, ResourceActionOutcomeMode, ResourceActionRequirement, ResourceActionRiskLevel, ResourceActionScope, ResourceActionVersionTransport, ResourceAvailabilityDecision, ResourceCanonicalCapabilityOperationId, ResourceCapabilityDigest, ResourceCapabilityOperation, ResourceCapabilityOperationId, ResourceCapabilityOperations, ResourceCapabilitySnapshot, ResourceCrudOperationId, ResourceDiscoveryRel, ResourceDiscoveryRequestOptions, ResourceExportMaxRows, ResourceIdentityContract, ResourceIdentityDiagnostic, ResourceIdentityFieldMetadata, ResourceIdentityPart, ResourceIdentitySource, ResourceKnownCapabilityOperationId, ResourceLinkSource, ResourceRecordOpenFailureCode, ResourceRecordOpenRef, ResourceRecordOpenResolution, ResourceRecordOpenResolveOptions, ResourceSchemaCatalogEndpoint, ResourceSchemaCatalogExample, ResourceSchemaCatalogField, ResourceSchemaCatalogHttpMethod, ResourceSchemaCatalogOperationExamples, ResourceSchemaCatalogParameter, ResourceSchemaCatalogQuery, ResourceSchemaCatalogRelation, ResourceSchemaCatalogResponse, ResourceSchemaCatalogSchemaLinks, ResourceSchemaCatalogSchemaRef, ResourceSchemaCatalogVisual, ResourceSchemaCatalogVisualSource, ResourceStatsCapability, ResourceStatsFieldCapability, ResourceStatsMetric, ResourceStatsMode, 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, RichDecisionGovernanceStatus, RichDecisionPackageEvidence, RichDecisionPackageNode, RichDecisionRisk, 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, RichTimelineDensity, RichTimelineEmphasis, RichTimelineItem, RichTimelineMarkerStyle, RichTimelineMarkerVariant, RichTimelineNode, RichTimelineOrder, RichTimelineOrientation, RichTimelinePosition, RichTimelineTextAppearance, 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, StaticDateRangePreset, StaticDateRangePresetTone, StaticPresetResolutionOptions, SubmitPolicy, SurfaceBinding, SurfaceBindingMode, SurfaceDrawerBridge, SurfaceDrawerFrameRef, SurfaceDrawerNavigationFrame, SurfaceDrawerNavigationGuard, SurfaceDrawerNavigationState, SurfaceDrawerOpenContent, SurfaceDrawerOpenOptions, SurfaceDrawerRef, SurfaceDrawerResult, SurfaceDrawerWidthPreset, SurfaceLifecycleCondition, SurfaceLifecycleOutcomeBinding, SurfaceLifecyclePolicy, SurfaceNavigationFailureCode, SurfaceNavigationOperation, SurfaceOpenPayload, SurfaceOpenPreset, SurfaceOperationContext, SurfaceOperationRelationship, SurfaceOperationResourceRef, SurfaceOutcome, SurfaceOutcomeKind, SurfaceOutletRegistration, SurfacePresentation, SurfaceSizeConfig, SyncConfig, SyncResult, TableActionsConfig, TableAiAssistantConfig, TableAiConfig, TableAppearanceConfig, TableBehaviorConfig, TableConfig, TableConfigV2 as TableConfigModern, TableConfigState, TableConfigV2, TableDetailActionBarAction, TableDetailActionBarNode, TableDetailActionNode, TableDetailAllowedNode, TableDetailBaseNode, TableDetailCardGridCardNode, TableDetailCardGridNode, TableDetailCardNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, TableDetailEmbedBaseNode, TableDetailInlineNodeResolverDefinition, TableDetailInlineRendererContext, TableDetailInlineRendererDefinition, TableDetailInlineSchemaDocument, TableDetailLayoutNode, TableDetailListItemAction, TableDetailListItemContextConfig, TableDetailListItemSchema, TableDetailListNode, TableDetailMediaBlockNode, TableDetailRefNode, TableDetailResourceDocument, TableDetailResourceResolver, TableDetailResourceResolverRequest, TableDetailResourceResolverResult, TableDetailRichListNode, TableDetailRichTextNode, TableDetailSchemaNode, TableDetailTabNode, TableDetailTabsNode, TableDetailTemplateRefNode, TableDetailTimelineItemSchema, TableDetailTimelineNode, TableDetailTimelineStaticItem, TableDetailValueNode, TableExpansionConfig, TableLocalDataModeConfig, TableSchemaColumnProjectionConfig, TableToolbarAppearanceConfig, TableToolbarAppearanceDensity, TableToolbarAppearanceDivider, TableToolbarAppearanceShape, TableToolbarAppearanceVariant, TableToolbarTokenName, TableTooltipConfig, TelemetryEvent, TelemetryLoggerSinkOptions, TelemetryTransport, TextTransformApply, TextTransformName, ThemeConfig, ToolbarAction, ToolbarActionEvent, ToolbarActionTarget, ToolbarActionTargetCardinality, ToolbarActionTargetScope, 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, WidgetPageAuthoringCapabilities, 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, WidgetShellAuthoringCapabilities, WidgetShellBodyLayout, WidgetShellConfig, WidgetShellWindowActions, WidgetStateNode };