@praxisui/core 8.0.0-beta.26 → 8.0.0-beta.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
@@ -348,7 +348,21 @@ Para `RESOURCE_ENTITY`, o `SchemaNormalizerService` mantém a semântica enrique
348
348
  - filtro rico: `filtering.availableFilters`, `defaultFilters`, `sortOptions`, `defaultSort`, `quickFilterFields`, `searchPlaceholder`
349
349
  - seleção: `selectionPolicy.allowedStatuses`, `blockedStatuses`, `allowRetainInvalidExistingValue`
350
350
  - operação: `capabilities.byIds`, `navigateToDetail`, `create`, `auditSnapshot`
351
- - navegação: `detail.hrefTemplate`, `routeTemplate`, `openDetailMode`
351
+ - detalhe governado: `detail.kind = surface`, `surfaceId`, `presentation`, `preferredWidget`, `mode`
352
+ - UX de referência: `display.preset`, `usage`, `density`, `selectedLayout`, `resultLayout`, `fields`, `secondaryPropertyPaths`, `badgePropertyPaths`
353
+
354
+ O bloco `display` descreve intenção de apresentação, não implementação visual local.
355
+ Presets como `directory`, `reference`, `status`, `hierarchical`, `rich` e
356
+ `compact` permitem que a mesma option-source seja usada em formulário, filtro,
357
+ tabela editável, dashboard ou revisão sem duplicar regras no host. O runtime
358
+ pode aplicar overrides locais quando o contexto exigir, mas a semântica
359
+ preferencial continua no `optionSource`.
360
+ Use `display.fields[]` para publicar subinformações ricas do resultado, como
361
+ `cargo`, `departamento`, `dataAdmissao`, `status` ou métricas. Cada campo carrega
362
+ `propertyPath`, `label`, `icon`, `presentation`, `tone` e `format`; o endpoint de
363
+ option-source pode materializar esses campos em `OptionDTO.extra.richFields[]`
364
+ para que runtimes exibam ícones, chips, badges ou valores formatados sem
365
+ heurística local.
352
366
 
353
367
  O helper `serializeOptionSourceFilterRequest(...)` monta o envelope canônico de
354
368
  Cut B para `POST /option-sources/{sourceKey}/options/filter`, preservando um
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, InjectionToken, Injectable, inject, Inject, Optional, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, APP_INITIALIZER, ErrorHandler, EventEmitter, Output, Input, ChangeDetectionStrategy, Directive, SecurityContext, ViewContainerRef, ContentChild, HostBinding, signal, HostListener, ViewChild, computed } from '@angular/core';
2
+ import { Component, InjectionToken, Injectable, inject, Inject, Optional, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, APP_INITIALIZER, ErrorHandler, EventEmitter, Output, Input, ChangeDetectionStrategy, Directive, SecurityContext, ViewContainerRef, inputBinding, ContentChild, HostBinding, signal, HostListener, ViewChild, computed } from '@angular/core';
3
3
  import * as i1 from '@angular/common/http';
4
4
  import { HttpHeaders, HttpClient, HttpParams, HttpResponse, HttpContextToken, HTTP_INTERCEPTORS, withInterceptors } from '@angular/common/http';
5
5
  import { of, defer, throwError, from, EMPTY, BehaviorSubject, firstValueFrom, Subject, map as map$1, switchMap as switchMap$1 } from 'rxjs';
@@ -1124,8 +1124,87 @@ class SchemaNormalizerService {
1124
1124
  detail.openDetailMode = openDetailMode;
1125
1125
  }
1126
1126
  }
1127
+ if (value.kind !== undefined) {
1128
+ detail.kind = String(value.kind);
1129
+ }
1130
+ if (value.surfaceId !== undefined) {
1131
+ detail.surfaceId = String(value.surfaceId);
1132
+ }
1133
+ if (value.presentation !== undefined) {
1134
+ detail.presentation = String(value.presentation);
1135
+ }
1136
+ if (value.preferredWidget !== undefined) {
1137
+ detail.preferredWidget = String(value.preferredWidget);
1138
+ }
1139
+ if (value.mode !== undefined) {
1140
+ detail.mode = String(value.mode);
1141
+ }
1127
1142
  return Object.keys(detail).length ? detail : undefined;
1128
1143
  }
1144
+ parseLookupDisplay(value) {
1145
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
1146
+ return undefined;
1147
+ }
1148
+ const display = {};
1149
+ const stringKeys = [
1150
+ 'preset',
1151
+ 'usage',
1152
+ 'density',
1153
+ 'selectedLayout',
1154
+ 'resultLayout',
1155
+ 'primaryPropertyPath',
1156
+ 'avatarPropertyPath',
1157
+ ];
1158
+ stringKeys.forEach((key) => {
1159
+ if (value[key] !== undefined) {
1160
+ display[key] = String(value[key]);
1161
+ }
1162
+ });
1163
+ if (Array.isArray(value.fields)) {
1164
+ const fields = value.fields
1165
+ .map((field) => this.parseLookupDisplayField(field))
1166
+ .filter((field) => !!field);
1167
+ if (fields.length) {
1168
+ display.fields = fields;
1169
+ }
1170
+ }
1171
+ if (value.secondaryPropertyPaths !== undefined) {
1172
+ display.secondaryPropertyPaths = this.parseStringArray(value.secondaryPropertyPaths);
1173
+ }
1174
+ if (value.badgePropertyPaths !== undefined) {
1175
+ display.badgePropertyPaths = this.parseStringArray(value.badgePropertyPaths);
1176
+ }
1177
+ const booleanKeys = [
1178
+ 'showAvatar',
1179
+ 'showCode',
1180
+ 'showDescription',
1181
+ 'showStatus',
1182
+ 'showBadges',
1183
+ 'showDisabledReason',
1184
+ 'showResultCount',
1185
+ ];
1186
+ booleanKeys.forEach((key) => {
1187
+ if (value[key] !== undefined) {
1188
+ display[key] = this.parseBoolean(value[key]);
1189
+ }
1190
+ });
1191
+ if (value.maxVisibleBadges !== undefined && !Number.isNaN(Number(value.maxVisibleBadges))) {
1192
+ display.maxVisibleBadges = Number(value.maxVisibleBadges);
1193
+ }
1194
+ return Object.keys(display).length ? display : undefined;
1195
+ }
1196
+ parseLookupDisplayField(value) {
1197
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
1198
+ return undefined;
1199
+ }
1200
+ const field = {};
1201
+ ['key', 'propertyPath', 'label', 'icon', 'presentation', 'tone', 'format'].forEach((key) => {
1202
+ if (value[key] !== undefined && String(value[key]).trim().length) {
1203
+ field[key] = String(value[key]);
1204
+ }
1205
+ });
1206
+ return Object.keys(field).length ? field : undefined;
1207
+ }
1129
1208
  parseLookupCreate(value) {
1130
1209
  if (!value || typeof value !== 'object' || Array.isArray(value)) {
1131
1210
  return undefined;
@@ -1477,6 +1556,10 @@ class SchemaNormalizerService {
1477
1556
  if (detail) {
1478
1557
  optionSource.detail = detail;
1479
1558
  }
1559
+ const display = this.parseLookupDisplay(value.display);
1560
+ if (display) {
1561
+ optionSource.display = display;
1562
+ }
1480
1563
  const create = this.parseLookupCreate(value.create);
1481
1564
  if (create) {
1482
1565
  optionSource.create = create;
@@ -3307,7 +3390,9 @@ class GenericCrudService {
3307
3390
  // Angular HttpClient treats 304 as error; also handle status 0 (CORS/network) by reusing cache
3308
3391
  catchError((err) => {
3309
3392
  if (err?.status === 404) {
3310
- GenericCrudService.unavailableFilteredSchemaUrls.add(filteredUrl);
3393
+ if (this.shouldRememberFilteredSchemaEndpointUnavailable(err)) {
3394
+ GenericCrudService.unavailableFilteredSchemaUrls.add(filteredUrl);
3395
+ }
3311
3396
  return this.fetchDirectSchema(url, schemaId, apiOrigin, entry, locale, tenant, options?.httpContext);
3312
3397
  }
3313
3398
  if (err?.status === 304 || err?.status === 0) {
@@ -3366,6 +3451,30 @@ class GenericCrudService {
3366
3451
  return this.handleError(err);
3367
3452
  }))), shareReplay(1));
3368
3453
  }
3454
+ shouldRememberFilteredSchemaEndpointUnavailable(err) {
3455
+ const payload = err?.error;
3456
+ if (!payload || typeof payload !== 'object') {
3457
+ return true;
3458
+ }
3459
+ const message = String(payload.message || '').toLowerCase();
3460
+ const errors = Array.isArray(payload.errors)
3461
+ ? (payload.errors || [])
3462
+ : [];
3463
+ const hasFilteredPathMiss = errors.some((item) => {
3464
+ if (!item || typeof item !== 'object')
3465
+ return false;
3466
+ const record = item;
3467
+ const type = String(record['type'] || '').toLowerCase();
3468
+ const category = String(record['category'] || '').toLowerCase();
3469
+ const itemMessage = String(record['message'] || '').toLowerCase();
3470
+ return type.includes('resource-not-found')
3471
+ || category === 'business_logic'
3472
+ || itemMessage.includes('path or operation was not found');
3473
+ });
3474
+ // A structured business miss means /schemas/filtered is alive; only the requested
3475
+ // resource operation was not present in the catalog. Do not poison later resources.
3476
+ return !hasFilteredPathMiss && !message.includes('path or operation was not found');
3477
+ }
3369
3478
  fetchDirectSchema(url, schemaId, apiOrigin, entry, locale, tenant, httpContext) {
3370
3479
  return from(this.ensureSchemaCacheReady()).pipe(concatMap(() => from(this._schemaCache.get(schemaId)).pipe(concatMap((cached) => {
3371
3480
  const baseHeaders = composeHeadersWithVersion(entry);
@@ -12885,7 +12994,7 @@ function normalizeUnknownError(rawError) {
12885
12994
  if (typeof candidate === 'string') {
12886
12995
  return normalizeFromParts('Error', candidate);
12887
12996
  }
12888
- if (isRecord(candidate)) {
12997
+ if (isRecord$1(candidate)) {
12889
12998
  const name = toText(candidate['name'], 'Error');
12890
12999
  const message = toText(candidate['message'], safeStringify(candidate));
12891
13000
  const stack = toStack(candidate['stack']);
@@ -12904,7 +13013,7 @@ function extractErrorCandidate(data) {
12904
13013
  if (data instanceof Error || typeof data === 'string') {
12905
13014
  return data;
12906
13015
  }
12907
- if (!isRecord(data)) {
13016
+ if (!isRecord$1(data)) {
12908
13017
  return undefined;
12909
13018
  }
12910
13019
  if ('error' in data) {
@@ -12922,7 +13031,7 @@ function extractErrorCandidate(data) {
12922
13031
  return undefined;
12923
13032
  }
12924
13033
  function unwrapRejection(error) {
12925
- if (!isRecord(error)) {
13034
+ if (!isRecord$1(error)) {
12926
13035
  return error;
12927
13036
  }
12928
13037
  if ('rejection' in error) {
@@ -12982,7 +13091,7 @@ function safeStringify(value) {
12982
13091
  return UNKNOWN_ERROR_MESSAGE;
12983
13092
  }
12984
13093
  }
12985
- function isRecord(value) {
13094
+ function isRecord$1(value) {
12986
13095
  return !!value && typeof value === 'object';
12987
13096
  }
12988
13097
 
@@ -15283,6 +15392,11 @@ function stripLocalSubmitSemantics$1(field) {
15283
15392
  void submitPolicy;
15284
15393
  return rest;
15285
15394
  }
15395
+ function stripLocalServerOwnedSemantics$1(field) {
15396
+ const { defaultValue, ...rest } = stripLocalSubmitSemantics$1(field);
15397
+ void defaultValue;
15398
+ return rest;
15399
+ }
15286
15400
  /**
15287
15401
  * Synchronizes local config with server metadata
15288
15402
  * Detects additions, removals, and modifications
@@ -15307,7 +15421,7 @@ function syncWithServerMetadata(localConfig, serverMetadata) {
15307
15421
  return; // handled later
15308
15422
  // Deep-ish merge with special handling for validators/options
15309
15423
  const base = { ...serverField };
15310
- const loc = { ...stripLocalSubmitSemantics$1(localField) };
15424
+ const loc = { ...stripLocalServerOwnedSemantics$1(localField) };
15311
15425
  const mergedValidators = { ...serverField.validators, ...localField.validators };
15312
15426
  // Options/nodes family: keep local options if provided, else server
15313
15427
  const pick = (k) => (loc[k] !== undefined ? loc[k] : base[k]);
@@ -23001,6 +23115,13 @@ function providePraxisUserContextSummaryMetadata() {
23001
23115
  };
23002
23116
  }
23003
23117
 
23118
+ const MATERIALIZATION_METADATA_INPUTS = [
23119
+ 'schemaVerification',
23120
+ 'schemaEvidenceSource',
23121
+ 'schemaEvidenceUrl',
23122
+ 'schemaUrl',
23123
+ 'kpis',
23124
+ ];
23004
23125
  /**
23005
23126
  * Carrega dinamicamente um componente "widget" (de página) a partir de um id registrado
23006
23127
  * no ComponentMetadataRegistry e aplica bindings declarados em JSON (WidgetDefinition).
@@ -23019,6 +23140,8 @@ class DynamicWidgetLoaderDirective {
23019
23140
  widgetDiagnostic = new EventEmitter();
23020
23141
  compRef;
23021
23142
  currentId;
23143
+ currentUsesInitialBindings = false;
23144
+ currentInitialBindingSignature = null;
23022
23145
  outputSubs = [];
23023
23146
  /** Dispatch a shell action to the inner widget instance when supported. */
23024
23147
  dispatchAction(action) {
@@ -23044,13 +23167,16 @@ class DynamicWidgetLoaderDirective {
23044
23167
  this.tryRender();
23045
23168
  }
23046
23169
  ngOnChanges(changes) {
23047
- if (changes['widget'] || changes['context']) {
23170
+ if (changes['widget'] || changes['context'] || changes['autoWireOutputs']) {
23048
23171
  this.tryRender();
23049
23172
  }
23050
23173
  }
23051
23174
  ngOnDestroy() {
23052
23175
  this.destroyCurrent();
23053
23176
  }
23177
+ renderNow() {
23178
+ this.tryRender();
23179
+ }
23054
23180
  parseWidget(input) {
23055
23181
  if (!input)
23056
23182
  return null;
@@ -23069,26 +23195,36 @@ class DynamicWidgetLoaderDirective {
23069
23195
  const def = this.parseWidget(this.widget);
23070
23196
  if (!def || !def.id)
23071
23197
  return;
23198
+ const meta = this.registry.get(def.id);
23199
+ const inputs = this.withInferredIdentityInputs(def.id, def.inputs || {}, def.childWidgetKey);
23200
+ this.normalizeMaterializedRuntimeInputs(def.id, inputs, meta || undefined);
23201
+ const outputs = def.outputs || {};
23202
+ try {
23203
+ // Valida e ajusta tipos conforme metadata (pode atualizar inputs)
23204
+ this.validateAgainstMetadata(def.id, inputs, outputs, meta || undefined);
23205
+ }
23206
+ catch (error) {
23207
+ this.emitDiagnostic(def.id, 'validation-error', error);
23208
+ throw error;
23209
+ }
23072
23210
  // New component type? recreate; else just update inputs
23073
- const needsRecreate = !this.compRef || def.id !== this.currentId;
23211
+ const useInitialBindings = this.shouldUseInitialInputBindings(def.id, meta || undefined);
23212
+ const initialBindingSignature = useInitialBindings
23213
+ ? this.initialBindingSignature(def.id, inputs, def.bindingOrder, meta || undefined)
23214
+ : null;
23215
+ const needsRecreate = !this.compRef
23216
+ || def.id !== this.currentId
23217
+ || (useInitialBindings
23218
+ && initialBindingSignature !== this.currentInitialBindingSignature);
23074
23219
  if (needsRecreate) {
23075
- this.createComponent(def.id);
23220
+ this.createComponent(def.id, inputs, def.bindingOrder, meta || undefined, useInitialBindings, initialBindingSignature);
23076
23221
  }
23077
23222
  if (this.compRef) {
23078
- const meta = this.registry.get(def.id);
23079
- const inputs = def.inputs || {};
23080
- const outputs = def.outputs || {};
23081
- try {
23082
- // Valida e ajusta tipos conforme metadata (pode atualizar inputs)
23083
- this.validateAgainstMetadata(def.id, inputs, outputs, meta || undefined);
23084
- }
23085
- catch (error) {
23086
- this.emitDiagnostic(def.id, 'validation-error', error);
23087
- throw error;
23088
- }
23089
23223
  try {
23090
23224
  // Faz o binding com coerção de tipos quando possível
23091
- this.bindInputs(this.compRef, def.id, inputs, def.bindingOrder, meta || undefined);
23225
+ if (!this.currentUsesInitialBindings) {
23226
+ this.bindInputs(this.compRef, def.id, inputs, def.bindingOrder, meta || undefined);
23227
+ }
23092
23228
  this.bindOutputs(this.compRef.instance, def.id, outputs, meta || undefined);
23093
23229
  this.compRef.changeDetectorRef.detectChanges();
23094
23230
  this.widgetDiagnostic.emit({
@@ -23103,7 +23239,7 @@ class DynamicWidgetLoaderDirective {
23103
23239
  }
23104
23240
  }
23105
23241
  }
23106
- createComponent(id) {
23242
+ createComponent(id, inputs, bindingOrder, metaForInputs, useInitialBindings = false, initialBindingSignature = null) {
23107
23243
  this.destroyCurrent();
23108
23244
  const meta = this.registry.get(id);
23109
23245
  if (!meta) {
@@ -23135,8 +23271,14 @@ class DynamicWidgetLoaderDirective {
23135
23271
  return;
23136
23272
  }
23137
23273
  this.vcRef.clear();
23138
- this.compRef = this.vcRef.createComponent(cmp);
23274
+ const initialBindings = useInitialBindings
23275
+ ? this.orderedInputEntries(id, inputs, bindingOrder)
23276
+ .map(([key, raw]) => inputBinding(key, () => this.resolveAndCoerceValue(key, raw, metaForInputs)))
23277
+ : [];
23278
+ this.compRef = this.vcRef.createComponent(cmp, initialBindings.length ? { bindings: initialBindings } : undefined);
23139
23279
  this.currentId = id;
23280
+ this.currentUsesInitialBindings = useInitialBindings;
23281
+ this.currentInitialBindingSignature = useInitialBindings ? initialBindingSignature : null;
23140
23282
  }
23141
23283
  destroyCurrent() {
23142
23284
  this.outputSubs.forEach((u) => u());
@@ -23145,16 +23287,49 @@ class DynamicWidgetLoaderDirective {
23145
23287
  this.compRef.destroy();
23146
23288
  this.compRef = undefined;
23147
23289
  this.currentId = undefined;
23290
+ this.currentUsesInitialBindings = false;
23291
+ this.currentInitialBindingSignature = null;
23148
23292
  }
23149
23293
  this.vcRef.clear();
23150
23294
  }
23295
+ shouldUseInitialInputBindings(id, meta) {
23296
+ return meta?.requiresInitialInputs === true
23297
+ || id === 'praxis-chart';
23298
+ }
23151
23299
  bindInputs(compRef, id, inputs, bindingOrder, meta) {
23152
- // Derive priority order
23300
+ const prioritized = this.orderedInputEntries(id, inputs, bindingOrder);
23301
+ const apply = (key, raw) => {
23302
+ const value = this.resolveAndCoerceValue(key, raw, meta);
23303
+ try {
23304
+ if (typeof compRef.setInput === 'function') {
23305
+ compRef.setInput(key, value);
23306
+ }
23307
+ else {
23308
+ // Fallback assignment when setInput is unavailable
23309
+ compRef.instance[key] = value;
23310
+ }
23311
+ }
23312
+ catch (e) {
23313
+ console.warn(`[DynamicWidgetLoader] Failed to set input ${key}`, e);
23314
+ }
23315
+ };
23316
+ // Apply every input before the final detectChanges so ngOnChanges never observes
23317
+ // a partial bindingOrder state, especially during existing component updates.
23318
+ for (const [key, raw] of prioritized) {
23319
+ apply(key, raw);
23320
+ }
23321
+ }
23322
+ initialBindingSignature(id, inputs, bindingOrder, meta) {
23323
+ const resolvedEntries = this.orderedInputEntries(id, inputs, bindingOrder)
23324
+ .map(([key, raw]) => [key, this.resolveAndCoerceValue(key, raw, meta)]);
23325
+ return this.stableStringify(resolvedEntries);
23326
+ }
23327
+ orderedInputEntries(id, inputs, bindingOrder) {
23153
23328
  const defaultOrderMap = {
23154
23329
  'praxis-table': ['tableId', 'componentInstanceId', 'resourcePath', 'data', 'config'],
23155
23330
  'praxis-crud': ['crudId', 'componentInstanceId', 'metadata'],
23156
23331
  'praxis-dynamic-form': ['formId', 'componentInstanceId', 'resourcePath'],
23157
- 'praxis-tabs': ['tabsId', 'componentInstanceId', 'config'],
23332
+ 'praxis-tabs': ['tabsId', 'componentInstanceId', 'configPersistenceStrategy', 'config'],
23158
23333
  'praxis-list': ['listId', 'componentInstanceId', 'config'],
23159
23334
  'praxis-expansion': ['expansionId', 'componentInstanceId', 'config'],
23160
23335
  'praxis-stepper': ['stepperId', 'componentInstanceId', 'config'],
@@ -23173,44 +23348,88 @@ class DynamicWidgetLoaderDirective {
23173
23348
  }
23174
23349
  }
23175
23350
  const others = Array.from(entriesMap.entries());
23176
- const apply = (key, raw) => {
23177
- let value = this.resolveValue(raw);
23178
- // Coerção leve baseada em metadata, quando disponível
23179
- if (meta?.inputs?.length) {
23180
- const metaInput = meta.inputs.find((i) => i.name === key);
23181
- if (metaInput?.type) {
23182
- value = this.coercePrimitive(value, (metaInput.type || '').toLowerCase());
23183
- }
23351
+ return [...prioritized, ...others];
23352
+ }
23353
+ resolveAndCoerceValue(key, raw, meta) {
23354
+ let value = this.resolveValue(raw);
23355
+ // Coerção leve baseada em metadata, quando disponível
23356
+ if (meta?.inputs?.length) {
23357
+ const metaInput = meta.inputs.find((i) => i.name === key);
23358
+ if (metaInput?.type) {
23359
+ value = this.coercePrimitive(value, (metaInput.type || '').toLowerCase());
23184
23360
  }
23185
- try {
23186
- if (typeof compRef.setInput === 'function') {
23187
- compRef.setInput(key, value);
23188
- }
23189
- else {
23190
- // Fallback assignment when setInput is unavailable
23191
- compRef.instance[key] = value;
23192
- }
23361
+ }
23362
+ return value;
23363
+ }
23364
+ withInferredIdentityInputs(id, inputs, childWidgetKey) {
23365
+ const identityInputByComponent = {
23366
+ 'praxis-table': 'tableId',
23367
+ 'praxis-crud': 'crudId',
23368
+ 'praxis-dynamic-form': 'formId',
23369
+ 'praxis-tabs': 'tabsId',
23370
+ 'praxis-list': 'listId',
23371
+ 'praxis-expansion': 'expansionId',
23372
+ 'praxis-stepper': 'stepperId',
23373
+ 'praxis-files-upload': 'filesUploadId',
23374
+ };
23375
+ const identityInput = identityInputByComponent[id];
23376
+ const fallbackId = String(childWidgetKey || '').trim();
23377
+ if (!identityInput || !fallbackId) {
23378
+ return { ...inputs };
23379
+ }
23380
+ return {
23381
+ ...inputs,
23382
+ [identityInput]: inputs[identityInput] || fallbackId,
23383
+ componentInstanceId: inputs['componentInstanceId'] || fallbackId,
23384
+ };
23385
+ }
23386
+ normalizeMaterializedRuntimeInputs(id, inputs, meta) {
23387
+ const allowedInputs = new Set((meta?.inputs || []).map((input) => input.name));
23388
+ const accepts = (key) => !allowedInputs.size || allowedInputs.has(key);
23389
+ if (id === 'praxis-rich-content' && inputs['kpis'] !== undefined && accepts('document')) {
23390
+ const document = isRecord(inputs['document']) ? inputs['document'] : {};
23391
+ inputs['document'] = {
23392
+ ...document,
23393
+ kpis: document['kpis'] ?? inputs['kpis'],
23394
+ };
23395
+ if (!accepts('resourcePath')) {
23396
+ delete inputs['resourcePath'];
23193
23397
  }
23194
- catch (e) {
23195
- console.warn(`[DynamicWidgetLoader] Failed to set input ${key}`, e);
23398
+ }
23399
+ if (id === 'praxis-filter' && !String(inputs['resourcePath'] || '').trim()) {
23400
+ const inferredResourcePath = this.inferResourcePathFromSchemaUrl(inputs['schemaUrl']);
23401
+ if (inferredResourcePath) {
23402
+ inputs['resourcePath'] = inferredResourcePath;
23196
23403
  }
23197
- };
23198
- // Apply every input before the final detectChanges so ngOnChanges never observes
23199
- // a partial bindingOrder state, especially during existing component updates.
23200
- for (const [key, raw] of prioritized) {
23201
- apply(key, raw);
23202
23404
  }
23203
- // Apply remaining inputs
23204
- for (const [key, raw] of others) {
23205
- apply(key, raw);
23405
+ for (const key of MATERIALIZATION_METADATA_INPUTS) {
23406
+ if (!accepts(key)) {
23407
+ delete inputs[key];
23408
+ }
23206
23409
  }
23207
23410
  }
23411
+ inferResourcePathFromSchemaUrl(schemaUrl) {
23412
+ const raw = String(schemaUrl || '').trim();
23413
+ if (!raw)
23414
+ return undefined;
23415
+ try {
23416
+ const url = new URL(raw, 'http://praxis.local');
23417
+ const path = url.searchParams.get('path') || url.searchParams.get('resourcePath');
23418
+ if (path)
23419
+ return path;
23420
+ }
23421
+ catch {
23422
+ // Fall back to the lightweight parser below for schema URL fragments.
23423
+ }
23424
+ const match = raw.match(/[?&](?:path|resourcePath)=([^&]+)/);
23425
+ return match?.[1] ? decodeURIComponent(match[1]) : undefined;
23426
+ }
23208
23427
  bindOutputs(instance, id, outputs, meta) {
23209
23428
  // Clean existing subscriptions
23210
23429
  this.outputSubs.forEach((u) => u());
23211
23430
  this.outputSubs = [];
23212
23431
  let keys = Object.keys(outputs || {});
23213
- if ((this.autoWireOutputs || keys.length === 0) && meta?.outputs?.length) {
23432
+ if (this.autoWireOutputs && keys.length === 0 && meta?.outputs?.length) {
23214
23433
  keys = meta.outputs.map((o) => o.name);
23215
23434
  }
23216
23435
  if (!keys.includes('widgetEvent') && isSubscribableOutput(instance?.widgetEvent)) {
@@ -23364,6 +23583,26 @@ class DynamicWidgetLoaderDirective {
23364
23583
  catch { }
23365
23584
  return value;
23366
23585
  }
23586
+ stableStringify(value) {
23587
+ return JSON.stringify(this.stableSerializableValue(value));
23588
+ }
23589
+ stableSerializableValue(value) {
23590
+ if (Array.isArray(value)) {
23591
+ return value.map((entry) => this.stableSerializableValue(entry));
23592
+ }
23593
+ if (isRecord(value)) {
23594
+ return Object.keys(value)
23595
+ .sort()
23596
+ .reduce((acc, key) => {
23597
+ acc[key] = this.stableSerializableValue(value[key]);
23598
+ return acc;
23599
+ }, {});
23600
+ }
23601
+ if (typeof value === 'function') {
23602
+ return '[function]';
23603
+ }
23604
+ return value;
23605
+ }
23367
23606
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: DynamicWidgetLoaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
23368
23607
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.17", type: DynamicWidgetLoaderDirective, isStandalone: true, selector: "[dynamicWidgetLoader]", inputs: { widget: ["dynamicWidgetLoader", "widget"], ownerWidgetKey: "ownerWidgetKey", context: "context", strictValidation: "strictValidation", autoWireOutputs: "autoWireOutputs" }, outputs: { widgetEvent: "widgetEvent", widgetDiagnostic: "widgetDiagnostic" }, exportAs: ["dynamicWidgetLoader"], usesOnChanges: true, ngImport: i0 });
23369
23608
  }
@@ -23401,6 +23640,9 @@ function isWidgetEventEnvelope(value) {
23401
23640
  function isSubscribableOutput(value) {
23402
23641
  return !!value && typeof value.subscribe === 'function';
23403
23642
  }
23643
+ function isRecord(value) {
23644
+ return !!value && typeof value === 'object' && !Array.isArray(value);
23645
+ }
23404
23646
 
23405
23647
  const WIDGET_SHELL_I18N_NAMESPACE = 'widgetShell';
23406
23648
  const WIDGET_SHELL_I18N_CONFIG = {
@@ -28101,7 +28343,7 @@ class DynamicWidgetPageComponent {
28101
28343
  return;
28102
28344
  }
28103
28345
  const page = this.ensurePageDefinition();
28104
- const widgetInputPatchResult = this.applyWidgetInputPatchToPage(page, fromKey, evt?.payload);
28346
+ const widgetInputPatchResult = this.applyWidgetInputPatchToPage(page, fromKey, evt);
28105
28347
  const pageWithPatchedInputs = widgetInputPatchResult.page;
28106
28348
  const cycle = this.dispatchWidgetEventToComposition(pageWithPatchedInputs, fromKey, evt);
28107
28349
  if (!cycle || !cycle.matchedLinkIds.length) {
@@ -28137,7 +28379,8 @@ class DynamicWidgetPageComponent {
28137
28379
  }
28138
28380
  this.applyPageUpdate({ ...pageWithPatchedInputs, widgets, state }, true, nextRuntime, false);
28139
28381
  }
28140
- applyWidgetInputPatchToPage(page, widgetKey, payload) {
28382
+ applyWidgetInputPatchToPage(page, widgetKey, evt) {
28383
+ const payload = evt?.payload;
28141
28384
  const inputPatch = this.extractWidgetInputPatch(payload);
28142
28385
  if (!inputPatch) {
28143
28386
  return { page, changed: false };
@@ -28147,6 +28390,31 @@ class DynamicWidgetPageComponent {
28147
28390
  if (widgetIndex < 0) {
28148
28391
  return { page, changed: false };
28149
28392
  }
28393
+ const nestedPath = this.resolveWidgetInputPatchNestedPath(widgets[widgetIndex], evt);
28394
+ if (nestedPath?.length) {
28395
+ let owner = widgets[widgetIndex];
28396
+ let patchChanged = false;
28397
+ for (const [path, value] of Object.entries(inputPatch)) {
28398
+ const normalizedPath = typeof path === 'string' ? path.trim() : '';
28399
+ if (!normalizedPath) {
28400
+ continue;
28401
+ }
28402
+ const result = this.nestedWidgetAccessor.setNestedWidgetInput(owner, nestedPath, normalizedPath, this.cloneStateValues(value));
28403
+ owner = result.widget;
28404
+ patchChanged = patchChanged || result.changed;
28405
+ }
28406
+ if (!patchChanged) {
28407
+ return { page, changed: false };
28408
+ }
28409
+ widgets[widgetIndex] = owner;
28410
+ return {
28411
+ page: {
28412
+ ...page,
28413
+ widgets,
28414
+ },
28415
+ changed: true,
28416
+ };
28417
+ }
28150
28418
  const currentInputs = this.cloneStateValues(widgets[widgetIndex].definition.inputs || {});
28151
28419
  let nextInputs = currentInputs;
28152
28420
  let patchChanged = false;
@@ -28179,6 +28447,22 @@ class DynamicWidgetPageComponent {
28179
28447
  changed: true,
28180
28448
  };
28181
28449
  }
28450
+ resolveWidgetInputPatchNestedPath(owner, evt) {
28451
+ const nestedPath = normalizeWidgetEventPath(evt, {
28452
+ ownerComponentId: owner.definition.id,
28453
+ });
28454
+ if (nestedPath.length && this.nestedWidgetAccessor.resolveNestedWidget(owner, nestedPath)) {
28455
+ return nestedPath;
28456
+ }
28457
+ const sourceChildWidgetKey = String(evt?.sourceChildWidgetKey || '').trim();
28458
+ if (!sourceChildWidgetKey) {
28459
+ return null;
28460
+ }
28461
+ const sourceComponentId = String(evt?.sourceComponentId || '').trim();
28462
+ const match = this.nestedWidgetAccessor.listNestedWidgets(owner).find((candidate) => candidate.childWidgetKey === sourceChildWidgetKey
28463
+ && (!sourceComponentId || candidate.componentId === sourceComponentId));
28464
+ return match?.nestedPath || null;
28465
+ }
28182
28466
  extractWidgetInputPatch(payload) {
28183
28467
  if (!payload || typeof payload !== 'object' || Array.isArray(payload)) {
28184
28468
  return null;
@@ -29483,8 +29767,20 @@ class DynamicWidgetPageComponent {
29483
29767
  if (this.enableCustomization) {
29484
29768
  return true;
29485
29769
  }
29770
+ if (this.hasCompositionOutputLinks(widget?.key)) {
29771
+ return true;
29772
+ }
29486
29773
  return widget?.definition?.inputs?.['enableCustomization'] === true;
29487
29774
  }
29775
+ hasCompositionOutputLinks(widgetKey) {
29776
+ const normalizedWidgetKey = String(widgetKey || '').trim();
29777
+ if (!normalizedWidgetKey) {
29778
+ return false;
29779
+ }
29780
+ return !!this.ensurePageDefinition().composition?.links?.some((link) => link.from.kind === 'component-port'
29781
+ && link.from.ref.widget === normalizedWidgetKey
29782
+ && link.from.ref.direction === 'output');
29783
+ }
29488
29784
  selectWidget(widgetKey) {
29489
29785
  if (!this.enableCustomization)
29490
29786
  return;
@@ -29497,15 +29793,65 @@ class DynamicWidgetPageComponent {
29497
29793
  this.blockedCanvasWidgetKey = null;
29498
29794
  }
29499
29795
  }
29796
+ selectWidgetFromHostEvent(widgetKey, event) {
29797
+ if (this.shouldPreserveInnerWidgetInteraction(event)) {
29798
+ return;
29799
+ }
29800
+ this.selectWidget(widgetKey);
29801
+ }
29500
29802
  isCanvasWidgetSelected(widgetKey) {
29501
29803
  return this.isWidgetSelected(widgetKey);
29502
29804
  }
29503
29805
  isWidgetSelected(widgetKey) {
29504
29806
  return this.selectedWidgetKey === widgetKey;
29505
29807
  }
29808
+ shouldPreserveInnerWidgetInteraction(event) {
29809
+ if (!this.enableCustomization)
29810
+ return false;
29811
+ const target = event.target;
29812
+ const currentTarget = event.currentTarget;
29813
+ if (!(target instanceof HTMLElement) || !(currentTarget instanceof HTMLElement)) {
29814
+ return false;
29815
+ }
29816
+ if (target === currentTarget) {
29817
+ return false;
29818
+ }
29819
+ if (event.type === 'focusin') {
29820
+ return true;
29821
+ }
29822
+ const shellHeader = target.closest('.pdx-shell-header');
29823
+ if (shellHeader && currentTarget.contains(shellHeader)) {
29824
+ return false;
29825
+ }
29826
+ return !!target.closest([
29827
+ 'button',
29828
+ 'a',
29829
+ 'input',
29830
+ 'select',
29831
+ 'textarea',
29832
+ '[contenteditable="true"]',
29833
+ '[role="button"]',
29834
+ '[role="tab"]',
29835
+ '[role="menuitem"]',
29836
+ '[role="option"]',
29837
+ '[role="checkbox"]',
29838
+ '[role="radio"]',
29839
+ '[role="row"]',
29840
+ '[role="gridcell"]',
29841
+ '[mat-menu-trigger-for]',
29842
+ '.mat-mdc-row',
29843
+ '.mat-mdc-cell',
29844
+ '.mat-mdc-header-cell',
29845
+ '.pdx-widget-context-toolbar',
29846
+ '.pdx-canvas-resize',
29847
+ ].join(','));
29848
+ }
29506
29849
  selectCanvasWidget(widgetKey) {
29507
29850
  this.selectWidget(widgetKey);
29508
29851
  }
29852
+ getPageSnapshot() {
29853
+ return this.clonePageDefinition(this.ensurePageDefinition());
29854
+ }
29509
29855
  isCanvasWidgetBlocked(widgetKey) {
29510
29856
  return this.blockedCanvasWidgetKey === widgetKey;
29511
29857
  }
@@ -30393,8 +30739,8 @@ class DynamicWidgetPageComponent {
30393
30739
  [style.gridColumn]="widgetGridColumn(w)"
30394
30740
  [style.gridRow]="widgetGridRow(w)"
30395
30741
  [style.zIndex]="widgetZIndex(w)"
30396
- (click)="selectWidget(w.key)"
30397
- (focusin)="selectWidget(w.key)"
30742
+ (click)="selectWidgetFromHostEvent(w.key, $event)"
30743
+ (focusin)="selectWidgetFromHostEvent(w.key, $event)"
30398
30744
  >
30399
30745
  @if (enableCustomization) {
30400
30746
  @for (handle of canvasResizeHandles; track handle.id) {
@@ -30521,8 +30867,8 @@ class DynamicWidgetPageComponent {
30521
30867
  "
30522
30868
  [class]="w.renderClassName || w.className || ''"
30523
30869
  [style.gridColumn]="widgetGridColumn(w)"
30524
- (click)="selectWidget(w.key)"
30525
- (focusin)="selectWidget(w.key)"
30870
+ (click)="selectWidgetFromHostEvent(w.key, $event)"
30871
+ (focusin)="selectWidgetFromHostEvent(w.key, $event)"
30526
30872
  >
30527
30873
  <praxis-widget-shell
30528
30874
  [shell]="widgetShellForRender(w)"
@@ -30585,8 +30931,8 @@ class DynamicWidgetPageComponent {
30585
30931
  "
30586
30932
  [class]="widgetClassName(w)"
30587
30933
  [style.gridColumn]="widgetGridColumn(w)"
30588
- (click)="selectWidget(w.key)"
30589
- (focusin)="selectWidget(w.key)"
30934
+ (click)="selectWidgetFromHostEvent(w.key, $event)"
30935
+ (focusin)="selectWidgetFromHostEvent(w.key, $event)"
30590
30936
  >
30591
30937
  <praxis-widget-shell
30592
30938
  [shell]="widgetShellForRender(w)"
@@ -30641,8 +30987,8 @@ class DynamicWidgetPageComponent {
30641
30987
  "
30642
30988
  [class]="widgetClassName(w)"
30643
30989
  [style.gridColumn]="widgetGridColumn(w)"
30644
- (click)="selectWidget(w.key)"
30645
- (focusin)="selectWidget(w.key)"
30990
+ (click)="selectWidgetFromHostEvent(w.key, $event)"
30991
+ (focusin)="selectWidgetFromHostEvent(w.key, $event)"
30646
30992
  >
30647
30993
  <praxis-widget-shell
30648
30994
  [shell]="widgetShellForRender(w)"
@@ -30744,8 +31090,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
30744
31090
  [style.gridColumn]="widgetGridColumn(w)"
30745
31091
  [style.gridRow]="widgetGridRow(w)"
30746
31092
  [style.zIndex]="widgetZIndex(w)"
30747
- (click)="selectWidget(w.key)"
30748
- (focusin)="selectWidget(w.key)"
31093
+ (click)="selectWidgetFromHostEvent(w.key, $event)"
31094
+ (focusin)="selectWidgetFromHostEvent(w.key, $event)"
30749
31095
  >
30750
31096
  @if (enableCustomization) {
30751
31097
  @for (handle of canvasResizeHandles; track handle.id) {
@@ -30872,8 +31218,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
30872
31218
  "
30873
31219
  [class]="w.renderClassName || w.className || ''"
30874
31220
  [style.gridColumn]="widgetGridColumn(w)"
30875
- (click)="selectWidget(w.key)"
30876
- (focusin)="selectWidget(w.key)"
31221
+ (click)="selectWidgetFromHostEvent(w.key, $event)"
31222
+ (focusin)="selectWidgetFromHostEvent(w.key, $event)"
30877
31223
  >
30878
31224
  <praxis-widget-shell
30879
31225
  [shell]="widgetShellForRender(w)"
@@ -30936,8 +31282,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
30936
31282
  "
30937
31283
  [class]="widgetClassName(w)"
30938
31284
  [style.gridColumn]="widgetGridColumn(w)"
30939
- (click)="selectWidget(w.key)"
30940
- (focusin)="selectWidget(w.key)"
31285
+ (click)="selectWidgetFromHostEvent(w.key, $event)"
31286
+ (focusin)="selectWidgetFromHostEvent(w.key, $event)"
30941
31287
  >
30942
31288
  <praxis-widget-shell
30943
31289
  [shell]="widgetShellForRender(w)"
@@ -30992,8 +31338,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
30992
31338
  "
30993
31339
  [class]="widgetClassName(w)"
30994
31340
  [style.gridColumn]="widgetGridColumn(w)"
30995
- (click)="selectWidget(w.key)"
30996
- (focusin)="selectWidget(w.key)"
31341
+ (click)="selectWidgetFromHostEvent(w.key, $event)"
31342
+ (focusin)="selectWidgetFromHostEvent(w.key, $event)"
30997
31343
  >
30998
31344
  <praxis-widget-shell
30999
31345
  [shell]="widgetShellForRender(w)"
@@ -31146,8 +31492,35 @@ class PraxisSurfaceHostComponent {
31146
31492
  * modal/drawer hosts. Inline consumers may opt into rendering it again.
31147
31493
  */
31148
31494
  renderTitleInsideBody = false;
31495
+ widgetLoader;
31496
+ renderQueued = false;
31497
+ ngAfterViewInit() {
31498
+ this.scheduleWidgetRender();
31499
+ }
31500
+ ngOnChanges(changes) {
31501
+ if (changes['widget']
31502
+ || changes['context']
31503
+ || changes['strictValidation']) {
31504
+ this.scheduleWidgetRender();
31505
+ }
31506
+ }
31507
+ scheduleWidgetRender() {
31508
+ if (this.renderQueued)
31509
+ return;
31510
+ this.renderQueued = true;
31511
+ queueMicrotask(() => {
31512
+ this.renderQueued = false;
31513
+ const loader = this.widgetLoader;
31514
+ if (!loader)
31515
+ return;
31516
+ loader.widget = this.widget;
31517
+ loader.context = this.context;
31518
+ loader.strictValidation = this.strictValidation;
31519
+ loader.renderNow();
31520
+ });
31521
+ }
31149
31522
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: PraxisSurfaceHostComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31150
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: PraxisSurfaceHostComponent, isStandalone: true, selector: "praxis-surface-host", inputs: { title: "title", subtitle: "subtitle", icon: "icon", widget: "widget", context: "context", strictValidation: "strictValidation", renderTitleInsideBody: "renderTitleInsideBody" }, ngImport: i0, template: `
31523
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.17", type: PraxisSurfaceHostComponent, isStandalone: true, selector: "praxis-surface-host", inputs: { title: "title", subtitle: "subtitle", icon: "icon", widget: "widget", context: "context", strictValidation: "strictValidation", renderTitleInsideBody: "renderTitleInsideBody" }, viewQueries: [{ propertyName: "widgetLoader", first: true, predicate: DynamicWidgetLoaderDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
31151
31524
  <div class="pdx-surface-host">
31152
31525
  @if (subtitle || (title && renderTitleInsideBody)) {
31153
31526
  <header class="pdx-surface-host__header">
@@ -31166,11 +31539,13 @@ class PraxisSurfaceHostComponent {
31166
31539
  }
31167
31540
 
31168
31541
  <section class="pdx-surface-host__body">
31169
- <ng-container
31170
- [dynamicWidgetLoader]="widget"
31171
- [context]="context"
31172
- [strictValidation]="strictValidation"
31173
- ></ng-container>
31542
+ @if (widget) {
31543
+ <ng-container
31544
+ [dynamicWidgetLoader]="widget"
31545
+ [context]="context"
31546
+ [strictValidation]="strictValidation"
31547
+ ></ng-container>
31548
+ }
31174
31549
  </section>
31175
31550
  </div>
31176
31551
  `, isInline: true, styles: [":host{display:block;min-width:0}.pdx-surface-host{display:grid;gap:16px;min-width:0}.pdx-surface-host__header{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.pdx-surface-host__icon{font-size:20px;line-height:20px;color:var(--md-sys-color-primary, currentColor)}.pdx-surface-host__copy{display:grid;gap:4px;min-width:0}.pdx-surface-host__title,.pdx-surface-host__subtitle{margin:0}.pdx-surface-host__title{font-size:1rem;font-weight:600}.pdx-surface-host__subtitle{color:var(--md-sys-color-on-surface-variant, rgba(0, 0, 0, .64));font-size:.9375rem}.pdx-surface-host__body{min-width:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: DynamicWidgetLoaderDirective, selector: "[dynamicWidgetLoader]", inputs: ["dynamicWidgetLoader", "ownerWidgetKey", "context", "strictValidation", "autoWireOutputs"], outputs: ["widgetEvent", "widgetDiagnostic"], exportAs: ["dynamicWidgetLoader"] }] });
@@ -31196,11 +31571,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
31196
31571
  }
31197
31572
 
31198
31573
  <section class="pdx-surface-host__body">
31199
- <ng-container
31200
- [dynamicWidgetLoader]="widget"
31201
- [context]="context"
31202
- [strictValidation]="strictValidation"
31203
- ></ng-container>
31574
+ @if (widget) {
31575
+ <ng-container
31576
+ [dynamicWidgetLoader]="widget"
31577
+ [context]="context"
31578
+ [strictValidation]="strictValidation"
31579
+ ></ng-container>
31580
+ }
31204
31581
  </section>
31205
31582
  </div>
31206
31583
  `, styles: [":host{display:block;min-width:0}.pdx-surface-host{display:grid;gap:16px;min-width:0}.pdx-surface-host__header{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}.pdx-surface-host__icon{font-size:20px;line-height:20px;color:var(--md-sys-color-primary, currentColor)}.pdx-surface-host__copy{display:grid;gap:4px;min-width:0}.pdx-surface-host__title,.pdx-surface-host__subtitle{margin:0}.pdx-surface-host__title{font-size:1rem;font-weight:600}.pdx-surface-host__subtitle{color:var(--md-sys-color-on-surface-variant, rgba(0, 0, 0, .64));font-size:.9375rem}.pdx-surface-host__body{min-width:0}\n"] }]
@@ -31218,6 +31595,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImpo
31218
31595
  type: Input
31219
31596
  }], renderTitleInsideBody: [{
31220
31597
  type: Input
31598
+ }], widgetLoader: [{
31599
+ type: ViewChild,
31600
+ args: [DynamicWidgetLoaderDirective]
31221
31601
  }] } });
31222
31602
 
31223
31603
  class EmptyStateCardComponent {
@@ -32051,7 +32431,7 @@ function buildBaseFormField(def) {
32051
32431
  }
32052
32432
  function applyLocalCustomizations$1(base, local) {
32053
32433
  const typeChanged = (base.controlType || '') !== (local.controlType || '');
32054
- const serverBackedLocal = stripLocalSubmitSemantics(local);
32434
+ const serverBackedLocal = stripLocalServerOwnedSemantics(local);
32055
32435
  // Server authority on identity/core props
32056
32436
  const authoritative = {
32057
32437
  name: base.name,
@@ -32108,6 +32488,11 @@ function stripLocalSubmitSemantics(field) {
32108
32488
  void submitPolicy;
32109
32489
  return rest;
32110
32490
  }
32491
+ function stripLocalServerOwnedSemantics(field) {
32492
+ const { defaultValue, ...rest } = stripLocalSubmitSemantics(field);
32493
+ void defaultValue;
32494
+ return rest;
32495
+ }
32111
32496
  function isLocalField(field) {
32112
32497
  return field.source === 'local';
32113
32498
  }
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, Type, Provider, ErrorHandler, EnvironmentProviders, OnChanges, EventEmitter, SimpleChanges, OnInit, OnDestroy, ElementRef, Renderer2 } from '@angular/core';
2
+ import { InjectionToken, Type, Provider, ErrorHandler, EnvironmentProviders, OnChanges, EventEmitter, SimpleChanges, OnInit, OnDestroy, ElementRef, AfterViewInit, Renderer2 } from '@angular/core';
3
3
  import * as rxjs from 'rxjs';
4
4
  import { Observable, BehaviorSubject } from 'rxjs';
5
5
  import { HttpHeaders, HttpContext, HttpClient, HttpParams, HttpInterceptorFn, HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpFeature, HttpFeatureKind, HttpContextToken } from '@angular/common/http';
@@ -86,6 +86,22 @@ type LookupFilterFieldType = 'text' | 'enum' | 'date' | 'number' | 'reference';
86
86
  type LookupFilterOperator = 'contains' | 'startsWith' | 'equals' | 'in' | 'before' | 'after' | 'between' | 'gt' | 'gte' | 'lt' | 'lte';
87
87
  type EntityLookupSelectedLayout = 'card' | 'inline' | 'compact' | 'token';
88
88
  type EntityLookupResultLayout = 'list' | 'denseList' | 'table' | 'card';
89
+ type EntityLookupDisplayPreset = 'compact' | 'rich' | 'directory' | 'status' | 'reference' | 'hierarchical';
90
+ type EntityLookupUsage = 'form' | 'filter' | 'table-cell' | 'dashboard' | 'wizard' | 'review';
91
+ type EntityLookupDensity = 'compact' | 'comfortable' | 'rich';
92
+ type EntityLookupDisplayFieldPresentation = 'text' | 'chip' | 'badge' | 'date' | 'currency' | 'metric';
93
+ interface EntityLookupDisplayFieldMetadata {
94
+ key?: string;
95
+ propertyPath?: string;
96
+ label?: string;
97
+ icon?: string;
98
+ presentation?: EntityLookupDisplayFieldPresentation | string;
99
+ tone?: LookupStatusTone | 'info' | string;
100
+ format?: string;
101
+ }
102
+ interface EntityLookupRichFieldMetadata extends EntityLookupDisplayFieldMetadata {
103
+ value?: unknown;
104
+ }
89
105
  type EntityLookupSinglePayloadMode = 'id' | 'entityRef';
90
106
  type EntityLookupMultiplePayloadMode = 'ids' | 'entityRefs';
91
107
  type EntityLookupPayloadMode = EntityLookupSinglePayloadMode | EntityLookupMultiplePayloadMode;
@@ -118,6 +134,11 @@ interface LookupDetailMetadata {
118
134
  hrefTemplate?: string;
119
135
  routeTemplate?: string;
120
136
  openDetailMode?: LookupOpenDetailMode;
137
+ kind?: 'surface' | 'route' | 'href' | string;
138
+ surfaceId?: string;
139
+ presentation?: 'modal' | 'drawer' | string;
140
+ preferredWidget?: string;
141
+ mode?: 'view' | 'edit' | 'create' | string;
121
142
  }
122
143
  interface LookupCreateMetadata {
123
144
  hrefTemplate?: string;
@@ -188,8 +209,16 @@ interface EntityLookupActionsMetadata {
188
209
  showClear?: boolean;
189
210
  }
190
211
  interface EntityLookupDisplayMetadata {
212
+ preset?: EntityLookupDisplayPreset | string;
213
+ usage?: EntityLookupUsage | string;
214
+ density?: EntityLookupDensity | string;
191
215
  selectedLayout?: EntityLookupSelectedLayout;
192
216
  resultLayout?: EntityLookupResultLayout;
217
+ primaryPropertyPath?: string;
218
+ fields?: EntityLookupDisplayFieldMetadata[];
219
+ secondaryPropertyPaths?: string[];
220
+ badgePropertyPaths?: string[];
221
+ avatarPropertyPath?: string;
193
222
  showCode?: boolean;
194
223
  showDescription?: boolean;
195
224
  showStatus?: boolean;
@@ -224,6 +253,7 @@ interface EntityLookupResultExtra {
224
253
  detailRoute?: string;
225
254
  resourcePath?: string;
226
255
  entityKey?: string;
256
+ richFields?: EntityLookupRichFieldMetadata[];
227
257
  badges?: string[];
228
258
  tags?: string[];
229
259
  riskLevel?: string;
@@ -260,6 +290,7 @@ interface OptionSourceMetadata {
260
290
  capabilities?: LookupCapabilitiesMetadata;
261
291
  detail?: LookupDetailMetadata;
262
292
  create?: LookupCreateMetadata;
293
+ display?: EntityLookupDisplayMetadata;
263
294
  filtering?: LookupFilteringMetadata;
264
295
  excludeSelfField?: boolean;
265
296
  searchMode?: OptionSourceSearchMode;
@@ -1417,6 +1448,8 @@ interface ColumnDefinition {
1417
1448
  };
1418
1449
  /** Overrides condicionais do renderer por linha (first‑match wins) */
1419
1450
  conditionalRenderers?: Array<{
1451
+ /** Identificador estável usado para reconciliação e deduplicação de regras authoradas. */
1452
+ id?: string;
1420
1453
  condition: JsonLogicExpression | null;
1421
1454
  renderer?: Partial<ColumnDefinition['renderer']>;
1422
1455
  /** Efeitos visuais canonicos que podem produzir renderer, tooltip ou animacao. */
@@ -1429,6 +1462,8 @@ interface ColumnDefinition {
1429
1462
  * Cada regra contém uma expressão canônica em `condition` e o efeito visual a aplicar.
1430
1463
  */
1431
1464
  conditionalStyles?: Array<{
1465
+ /** Identificador estável usado para reconciliação e deduplicação de regras authoradas. */
1466
+ id?: string;
1432
1467
  condition: JsonLogicExpression | null;
1433
1468
  /** Efeitos visuais canonicos produzidos pelo editor de regras da Table. */
1434
1469
  effects?: Array<Record<string, unknown>>;
@@ -1436,6 +1471,7 @@ interface ColumnDefinition {
1436
1471
  style?: {
1437
1472
  [key: string]: string;
1438
1473
  };
1474
+ tooltip?: Record<string, unknown>;
1439
1475
  description?: string;
1440
1476
  }>;
1441
1477
  /** Estado serializado do construtor visual de regras (round‑trip) */
@@ -3086,6 +3122,8 @@ interface TableConfigV2 {
3086
3122
  }>;
3087
3123
  /** Regras condicionais de linha para tooltip e animacao derivados de efeitos visuais. */
3088
3124
  rowConditionalRenderers?: Array<{
3125
+ /** Identificador estável usado para reconciliação e deduplicação de regras authoradas. */
3126
+ id?: string;
3089
3127
  condition: JsonLogicExpression | null;
3090
3128
  tooltip?: Record<string, unknown>;
3091
3129
  animation?: Record<string, unknown>;
@@ -4060,6 +4098,8 @@ declare class SchemaNormalizerService {
4060
4098
  private parseSelectionPolicy;
4061
4099
  private parseLookupCapabilities;
4062
4100
  private parseLookupDetail;
4101
+ private parseLookupDisplay;
4102
+ private parseLookupDisplayField;
4063
4103
  private parseLookupCreate;
4064
4104
  private parseLookupFilterOperatorArray;
4065
4105
  private parseLookupSortDirection;
@@ -4591,6 +4631,7 @@ declare class GenericCrudService<T, ID extends string | number = string | number
4591
4631
  * ```
4592
4632
  */
4593
4633
  getSchema(options?: CrudOperationOptions): Observable<FieldDefinition[]>;
4634
+ private shouldRememberFilteredSchemaEndpointUnavailable;
4594
4635
  private fetchDirectSchema;
4595
4636
  /** Retorna o campo identificador do recurso (ex.: 'id', 'codigo'), quando derivado do schema. */
4596
4637
  getResourceIdField(): string | undefined;
@@ -12354,6 +12395,10 @@ interface ManifestEffect {
12354
12395
  path?: string;
12355
12396
  /** Chave de identidade em coleções. Obrigatório para merge-by-key, append-unique, remove-by-key, reorder-by-key. */
12356
12397
  key?: string;
12398
+ /** Valor literal para efeitos set-value quando o valor não vem do input da operação. */
12399
+ value?: unknown;
12400
+ /** Caminho opcional dentro do input da operação usado por efeitos set-value. */
12401
+ inputPath?: string;
12357
12402
  /** ID do handler especializado. Obrigatório quando kind é 'compile-domain-patch'. */
12358
12403
  handler?: string;
12359
12404
  handlerContract?: ManifestDomainPatchHandlerContract;
@@ -12805,17 +12850,27 @@ declare class DynamicWidgetLoaderDirective implements OnInit, OnChanges, OnDestr
12805
12850
  widgetDiagnostic: EventEmitter<WidgetResolutionDiagnostic>;
12806
12851
  private compRef?;
12807
12852
  private currentId?;
12853
+ private currentUsesInitialBindings;
12854
+ private currentInitialBindingSignature;
12808
12855
  private outputSubs;
12809
12856
  /** Dispatch a shell action to the inner widget instance when supported. */
12810
12857
  dispatchAction(action: WidgetShellActionEvent): boolean;
12811
12858
  ngOnInit(): void;
12812
12859
  ngOnChanges(changes: SimpleChanges): void;
12813
12860
  ngOnDestroy(): void;
12861
+ renderNow(): void;
12814
12862
  private parseWidget;
12815
12863
  private tryRender;
12816
12864
  private createComponent;
12817
12865
  private destroyCurrent;
12866
+ private shouldUseInitialInputBindings;
12818
12867
  private bindInputs;
12868
+ private initialBindingSignature;
12869
+ private orderedInputEntries;
12870
+ private resolveAndCoerceValue;
12871
+ private withInferredIdentityInputs;
12872
+ private normalizeMaterializedRuntimeInputs;
12873
+ private inferResourcePathFromSchemaUrl;
12819
12874
  private bindOutputs;
12820
12875
  private resolveValue;
12821
12876
  private get widgetDefinition();
@@ -12823,6 +12878,8 @@ declare class DynamicWidgetLoaderDirective implements OnInit, OnChanges, OnDestr
12823
12878
  private lookup;
12824
12879
  private validateAgainstMetadata;
12825
12880
  private coercePrimitive;
12881
+ private stableStringify;
12882
+ private stableSerializableValue;
12826
12883
  static ɵfac: i0.ɵɵFactoryDeclaration<DynamicWidgetLoaderDirective, never>;
12827
12884
  static ɵdir: i0.ɵɵDirectiveDeclaration<DynamicWidgetLoaderDirective, "[dynamicWidgetLoader]", ["dynamicWidgetLoader"], { "widget": { "alias": "dynamicWidgetLoader"; "required": false; }; "ownerWidgetKey": { "alias": "ownerWidgetKey"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "autoWireOutputs": { "alias": "autoWireOutputs"; "required": false; }; }, { "widgetEvent": "widgetEvent"; "widgetDiagnostic": "widgetDiagnostic"; }, never, never, true, never>;
12828
12885
  }
@@ -13346,6 +13403,7 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
13346
13403
  ngOnChanges(changes: SimpleChanges): void;
13347
13404
  onWidgetEvent(fromKey: string, evt: WidgetEventEnvelope): void;
13348
13405
  private applyWidgetInputPatchToPage;
13406
+ private resolveWidgetInputPatchNestedPath;
13349
13407
  private extractWidgetInputPatch;
13350
13408
  private buildStateRuntime;
13351
13409
  private bootstrapCompositionAdapter;
@@ -13436,10 +13494,14 @@ declare class DynamicWidgetPageComponent implements OnChanges, OnDestroy {
13436
13494
  private resolveDeviceKind;
13437
13495
  isCanvasMode(): boolean;
13438
13496
  shouldAutoWireOutputs(widget: WidgetInstance | RenderedWidgetInstance): boolean;
13497
+ private hasCompositionOutputLinks;
13439
13498
  selectWidget(widgetKey: string): void;
13499
+ selectWidgetFromHostEvent(widgetKey: string, event: Event): void;
13440
13500
  isCanvasWidgetSelected(widgetKey: string): boolean;
13441
13501
  isWidgetSelected(widgetKey: string): boolean;
13502
+ private shouldPreserveInnerWidgetInteraction;
13442
13503
  selectCanvasWidget(widgetKey: string): void;
13504
+ getPageSnapshot(): WidgetPageDefinition;
13443
13505
  isCanvasWidgetBlocked(widgetKey: string): boolean;
13444
13506
  canvasPreviewItem(): WidgetPageCanvasItem | null;
13445
13507
  canvasPreviewGridColumn(): string | null;
@@ -13519,7 +13581,7 @@ declare const PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA: ComponentDocMeta;
13519
13581
  */
13520
13582
  declare function providePraxisDynamicPageMetadata(): Provider;
13521
13583
 
13522
- declare class PraxisSurfaceHostComponent {
13584
+ declare class PraxisSurfaceHostComponent implements AfterViewInit, OnChanges {
13523
13585
  title?: string;
13524
13586
  subtitle?: string;
13525
13587
  icon?: string;
@@ -13531,6 +13593,11 @@ declare class PraxisSurfaceHostComponent {
13531
13593
  * modal/drawer hosts. Inline consumers may opt into rendering it again.
13532
13594
  */
13533
13595
  renderTitleInsideBody: boolean;
13596
+ private widgetLoader?;
13597
+ private renderQueued;
13598
+ ngAfterViewInit(): void;
13599
+ ngOnChanges(changes: SimpleChanges): void;
13600
+ private scheduleWidgetRender;
13534
13601
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisSurfaceHostComponent, never>;
13535
13602
  static ɵcmp: i0.ɵɵComponentDeclaration<PraxisSurfaceHostComponent, "praxis-surface-host", never, { "title": { "alias": "title"; "required": false; }; "subtitle": { "alias": "subtitle"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "widget": { "alias": "widget"; "required": false; }; "context": { "alias": "context"; "required": false; }; "strictValidation": { "alias": "strictValidation"; "required": false; }; "renderTitleInsideBody": { "alias": "renderTitleInsideBody"; "required": false; }; }, {}, never, never, true, never>;
13536
13603
  }
@@ -13914,4 +13981,4 @@ declare function provideFormHookPresets(presets: Array<FormHookPreset>): Provide
13914
13981
  declare function provideHookWhitelist(allowed: Array<string | RegExp>): Provider[];
13915
13982
 
13916
13983
  export { API_CONFIG_STORAGE_OPTIONS, API_URL, ASYNC_CONFIG_STORAGE, AllowedFileTypes, AnalyticsPresentationResolver, AnalyticsSchemaContractService, AnalyticsStatsRequestBuilderService, ApiConfigStorage, ApiEndpoint, BUILTIN_PAGE_LAYOUT_PRESETS, BUILTIN_PAGE_THEME_PRESETS, BUILTIN_SHELL_PRESETS, CONFIG_STORAGE, CONNECTION_STORAGE, ComponentKeyService, ComponentMetadataRegistry, CompositionRuntimeFacade, ConsoleLoggerSink, CrudOperationResolutionService, DEFAULT_FIELD_SELECTOR_CONTROL_TYPE_MAP, DEFAULT_JSON_LOGIC_OPERATORS, DEFAULT_TABLE_CONFIG, DOMAIN_CATALOG_COMPONENT_CONTEXT_PACK, DOMAIN_CATALOG_CONTEXT_HINT_SCHEMA_VERSION, DYNAMIC_PAGE_AI_CAPABILITIES, DYNAMIC_PAGE_COMPONENT_CONTEXT_PACK, DYNAMIC_PAGE_CONFIG_EDITOR, DYNAMIC_PAGE_SHELL_EDITOR, DefaultLoadingRenderer, DeferredAsyncConfigStorage, DomainCatalogService, DomainKnowledgeService, DomainRuleService, DynamicFormService, DynamicWidgetLoaderDirective, DynamicWidgetPageComponent, EDITORIAL_ALLOWED_CONTENT_FORMATS, EDITORIAL_COMPLIANCE_PRESETS, EDITORIAL_EXTERNAL_LINK_REL, EDITORIAL_FORM_TEMPLATE_CATALOG, EDITORIAL_HTML_ENABLED, EDITORIAL_MARKDOWN_IMAGES_ENABLED, EDITORIAL_SOLUTION_CATALOG, EDITORIAL_SOLUTION_PRESETS, EDITORIAL_THEME_PRESETS, EDITORIAL_WIDGET_CONVENTION_INPUTS, EDITORIAL_WIDGET_TAG, EMPLOYEE_ONBOARDING_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_EDITORIAL_TEMPLATE, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_SOLUTION, EMPLOYEE_ONBOARDING_GUIDED_EDITORIAL_TEMPLATE, EVENT_REGISTRATION_EDITORIAL_SOLUTION, EVENT_REGISTRATION_EDITORIAL_TEMPLATE, EmptyStateCardComponent, ErrorMessageService, FIELD_METADATA_CAPABILITIES, FIELD_SELECTOR_REGISTRY_BASE, FIELD_SELECTOR_REGISTRY_DISABLE_DEFAULTS, FIELD_SELECTOR_REGISTRY_OVERRIDES, FORM_HOOKS, FORM_HOOKS_PRESETS, FORM_HOOKS_WHITELIST, FORM_HOOK_RESOLVERS, FieldControlType, FieldDataType, FieldSelectorRegistry, FormHooksRegistry, GLOBAL_ACTION_CATALOG, GLOBAL_ACTION_HANDLERS, GLOBAL_ACTION_UI_SCHEMAS, GLOBAL_ANALYTICS_SERVICE, GLOBAL_API_CLIENT, GLOBAL_CONFIG, GLOBAL_DIALOG_SERVICE, GLOBAL_ROUTE_GUARD_RESOLVER, GLOBAL_SURFACE_SERVICE, GLOBAL_TOAST_SERVICE, GenericCrudService, GlobalActionService, GlobalConfigService, INLINE_FILTER_ALIAS_TOKENS, INLINE_FILTER_CONTROL_TYPES, INLINE_FILTER_CONTROL_TYPE_SET, INLINE_FILTER_CONTROL_TYPE_VALUES, INLINE_FILTER_TOKEN_TO_BASE_CONTROL_TYPE, INLINE_FILTER_TOKEN_TO_CONTROL_TYPE, IconPickerService, IconPosition, IconSize, LOGGER_LEVEL_BY_ENV, LOGGER_LEVEL_PRIORITY, LoadingOrchestrator, LocalConnectionStorage, LocalStorageAsyncAdapter, LocalStorageCacheAdapter, LocalStorageConfigService, LoggerService, LoggerThrottleTracker, LoggerWarnOnceTracker, MemoryCacheAdapter, NestedPortCatalogService, NestedWidgetConfigAccessor, NumericFormat, OVERLAY_DECIDER_DEBUG, OVERLAY_DECISION_MATRIX, ObservabilityDashboardService, OverlayDeciderService, PRAXIS_COLLECTION_EXPORT_HTTP_OPTIONS, PRAXIS_COLLECTION_EXPORT_PROVIDER, PRAXIS_CORPORATE_SENSITIVE_KEYS, PRAXIS_DEFAULT_EXPORT_SECURITY_POLICY, PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES, PRAXIS_DYNAMIC_PAGE_COMPONENT_METADATA, PRAXIS_EXPORT_FORMULA_PREFIXES, PRAXIS_EXPORT_SECURITY_POLICY, PRAXIS_FOOTER_LINKS_METADATA, PRAXIS_GLOBAL_ACTION_CATALOG, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_OPTIONS, PRAXIS_GLOBAL_CONFIG_BOOTSTRAP_READY, PRAXIS_GLOBAL_CONFIG_TENANT_RESOLVER, PRAXIS_HERO_BANNER_METADATA, PRAXIS_I18N_CONFIG, PRAXIS_I18N_TRANSLATOR, PRAXIS_JSON_LOGIC_OPERATORS, PRAXIS_LAYER_SCALE_DEFAULTS, PRAXIS_LAYER_SCALE_VARS, PRAXIS_LEGAL_NOTICE_METADATA, PRAXIS_LOADING_CTX, PRAXIS_LOADING_RENDERER, PRAXIS_LOGGER_CONFIG, PRAXIS_LOGGER_SINKS, PRAXIS_OBSERVABILITY_DASHBOARD_OPTIONS, PRAXIS_RICH_TEXT_BLOCK_METADATA, PRAXIS_TELEMETRY_TRANSPORT, PRAXIS_USER_CONTEXT_SUMMARY_METADATA, PRIVACY_CONSENT_EDITORIAL_SOLUTION, PRIVACY_CONSENT_EDITORIAL_TEMPLATE, PraxisCollectionExportService, PraxisCore, PraxisFooterLinksComponent, PraxisGlobalErrorHandler, PraxisHeroBannerComponent, PraxisHttpCollectionExportProvider, PraxisI18nService, PraxisIconDirective, PraxisIconPickerComponent, PraxisJsonLogicError, PraxisJsonLogicService, PraxisLayerScaleStyleService, PraxisLegalNoticeComponent, PraxisLoadingInterceptor, PraxisRichTextBlockComponent, PraxisSurfaceHostComponent, PraxisUserContextSummaryComponent, RESOURCE_DISCOVERY_I18N_CONFIG, RESOURCE_DISCOVERY_I18N_NAMESPACE, RULE_PROPERTY_SCHEMA, RemoteConfigStorage, ResourceActionOpenAdapterService, ResourceDiscoveryService, ResourceQuickConnectComponent, ResourceSurfaceOpenAdapterService, SCHEMA_VIEWER_CONTEXT, SETTINGS_PANEL_BRIDGE, SETTINGS_PANEL_DATA, STEPPER_CONFIG_EDITOR, SURFACE_DRAWER_BRIDGE, SURFACE_OPEN_I18N_CONFIG, SURFACE_OPEN_I18N_NAMESPACE, SURFACE_OPEN_PRESETS, SchemaMetadataClient, SchemaNormalizerService, SchemaViewerComponent, SurfaceBindingRuntimeService, SurfaceOpenActionEditorComponent, TABLE_CONFIG_EDITOR, TableConfigService, TelemetryLoggerSink, TelemetryService, ValidationPattern, WidgetPageStateRuntimeService, WidgetShellComponent, applyLocalCustomizations$1 as applyLocalCustomizations, applyLocalCustomizations as applyLocalFormCustomizations, assertPraxisCollectionExportArtifact, buildAngularValidators, buildApiUrl, buildBaseColumnFromDef, buildBaseFormField, buildFormConfigFromEditorialTemplate, buildHeaders, buildPageKey, buildPraxisEffectDistinctKey, buildPraxisLayerScaleCss, buildSchemaId, buildSchemaIdStorageKeySegment, buildValidatorsFromValidatorOptions, cancelIfCpfInvalidHook, clampRange, classifyEntityLookupResult, cloneTableConfig, cnpjAlphaValidator, collapseWhitespace, composeHeadersWithVersion, conditionalAsyncValidator, convertFormLayoutToConfig, createCorporateLoggerConfig, createCorporateObservabilityOptions, createCpfCnpjValidator, createDefaultFormConfig, createDefaultTableConfig, createEmptyFormConfig, createEmptyRichContentDocument, createFieldLayoutItem, createPersistedPage, customAsyncValidatorFn, customValidatorFn, debounceAsyncValidator, deepMerge, domainKnowledgeTimelineToRichContentDocument, domainRuleTimelineToRichContentDocument, ensureIds, ensureNoConflictsHookFactory, ensurePageIds, escapePraxisExportCell, extractNormalizedError, fetchWithETag, fileTypeValidator, fillUndefined, generateId, getDefaultFormHints, getEditorialCompliancePresetById, getEditorialFormTemplateById, getEditorialFormTemplateCatalog, getEditorialSolutionById, getEditorialSolutionCatalog, getEditorialSolutionPresetById, getEditorialThemePresetById, getEssentialConfig, getFieldMetadataCapabilities, getFormColumnFieldNames, getFormLayoutFieldNames, getGlobalActionCatalog, getGlobalActionPayloadActualType, getGlobalActionPayloadTypeIssue, getGlobalActionUiSchema, getMissingGlobalActionPayloadKeys, getReferencedFieldMetadata, getRequiredGlobalActionPayloadKeys, getTextTransformer, hasMeaningfulGlobalActionPayloadValue, hasPraxisCollectionExportArtifact, interpolatePraxisTranslation, isAllowedEditorialContentFormat, isAllowedEditorialHref, isCssTextTransform, isEditorialComponentMeta, isEntityLookupMultiplePayloadMode, isEntityLookupPayloadMode, isEntityLookupPayloadModeCompatible, isEntityLookupResultSelectable, isEntityLookupSinglePayloadMode, isFormLayoutItem, isGlobalActionRef, isInlineFilterControlType, isLookupDialogSize, isLookupFilterFieldType, isLookupFilterOperator, isPraxisRuntimeGlobalActionEffect, isRangeValidForFilter, isRequiredGlobalActionParamPayloadMissing, isRequiredGlobalActionPayloadMissing, isTableConfigV2, isValidFormConfig, isValidTableConfig, legacyCnpjValidator, legacyCpfValidator, logOnErrorHook, mapFieldDefinitionToMetadata, mapFieldDefinitionsToMetadata, matchFieldValidator, maxFileSizeValidator, mergeFieldMetadata, mergePraxisI18nConfigs, mergeTableConfigs, migrateFormLayoutRule, migrateLegacyCompositionLink, migrateLegacyCompositionLinks, minWordsValidator, normalizeControlTypeKey, normalizeControlTypeToken, normalizeEditorialLink, normalizeEnd, normalizeFieldConstraints, normalizeFormConfig, normalizeFormLayoutItems, normalizeFormMetadata, normalizeGlobalActionRef, normalizeLookupFilterRequest, normalizePath, normalizePraxisDataQueryContext, normalizePraxisEffectPolicy, normalizeResourceAvailabilityReasonCode, normalizeStart, normalizeUnknownError, normalizeWidgetEventPath, notifySuccessHook, parseJsonResponseOrEmpty, praxisLoadingInterceptorFn, prefillFromContextHook, provideDefaultFormHooks, provideFieldSelectorRegistryBase, provideFieldSelectorRegistryOverride, provideFieldSelectorRegistryRuntime, provideFormHookPresets, provideFormHooks, provideGlobalActionCatalog, provideGlobalActionHandler, provideGlobalConfig, provideGlobalConfigReady, provideGlobalConfigSeed, provideGlobalConfigTenant, provideHookResolvers, provideHookWhitelist, provideOverlayDecisionMatrix, providePraxisAnalyticsGlobalActions, providePraxisCollectionExportProvider, providePraxisDynamicPageMetadata, providePraxisFooterLinksMetadata, providePraxisGlobalActionCatalog, providePraxisGlobalActions, providePraxisGlobalConfigBootstrap, providePraxisHeroBannerMetadata, providePraxisHttpCollectionExportProvider, providePraxisHttpLoading, providePraxisI18n, providePraxisI18nConfig, providePraxisI18nTranslator, providePraxisIconDefaults, providePraxisJsonLogicOperator, providePraxisJsonLogicOperatorOverride, providePraxisLegalNoticeMetadata, providePraxisLoadingDefaults, providePraxisLogging, providePraxisRichTextBlockMetadata, providePraxisToastGlobalActions, providePraxisUserContextSummaryMetadata, provideRemoteGlobalConfig, readPraxisExportValue, reconcileFilterConfig, reconcileFormConfig, reconcileTableConfig, removeDiacritics, reportTelemetryHookFactory, requiredCheckedValidator, resolveBuiltinPresets, resolveControlTypeAlias, resolveDefaultValuePresentationFormat, resolveEntityLookupPayloadMode, resolveHidden, resolveInlineFilterControlType, resolveInlineFilterControlTypeToBaseControlType, resolveLoggerConfig, resolveObservabilityOptions, resolveOffset, resolveOrder, resolvePraxisCollectionExportItems, resolvePraxisExportFields, resolvePraxisExportScope, resolvePraxisFilterCriteria, resolveResourceAvailabilityReasonKey, resolveSpan, resolveValuePresentation, resolveValuePresentationLocale, serializeEntityLookupValueForPayload, serializeOptionSourceFilterRequest, serializePraxisCollectionToCsv, serializePraxisCollectionToJson, slugify, stripMasksHook, supportsImplicitValuePresentation, syncWithServerMetadata, toCamel, toCapitalize, toKebab, toPascal, toSentenceCase, toSnake, toTitleCase, translateResourceAvailabilityReason, translateResourceDiscoveryText, translateUnavailableWorkflowMessage, trim, uniqueAsyncValidator, urlValidator, validateGlobalActionRef, validateGlobalActionRefs, withMessage, withPraxisHttpLoading };
13917
- export type { AccessibilityConfig, ActionDefinition, ActionMessagesConfig, AiCapability, AiCapabilityCatalog, AiCapabilityCategory, AiCapabilityCategoryMap, AiConcept, AiConceptPack, AiValueKind, AnalyticsIntent, AnalyticsPresentationDecision, AnalyticsPresentationFamily, AnalyticsPresentationResolverOptions, AnalyticsSchemaContractRequest, AnalyticsSourceKind, AnalyticsStatsGranularity, AnalyticsStatsMetricOperation, AnalyticsStatsOperation, AnalyticsStatsOrderBy, AnimationConfig, AnnouncementConfig, ApiConfigStorageOptions, ApiUrlConfig, ApiUrlEntry, AsyncConfigStorage, BackConfig, BaseMaterialInputMetadata, BatchDeleteOptions, BatchDeleteProgress, BatchDeleteResult, BorderConfig, Breakpoint, BuiltValidators, BulkAction, BulkActionsConfig, CacheAdapter, CacheConfig, CacheEntry, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColorConfig, ColumnAlign, ColumnDefinition, ColumnHidden, ColumnOffset, ColumnOrder, ColumnSpan, ComponentActionParam, ComponentAuthoringManifest, ComponentContextAction, ComponentContextOption, ComponentContextOptionMode, ComponentContextOptionsByPathEntry, ComponentContextPack, ComponentDocMeta, ComponentEditorialResolveOptions, ComponentKeyParams, ComponentMergePatch, ComponentMetadata, ComponentMetadataEditorialBindingDescriptor, ComponentMetadataEditorialDescriptor, ComponentPortEndpointRef, ComponentPortPathSegment, CompositionLink, CompositionRuntimeFacadeOptions, ConditionalValidationRule, ConfigMetadata, ConfigStorage, ConfirmationConfig, ConnectionConfigV1, ConnectionStorage, ContextAction, ContextActionsConfig, BackConfig as CoreBackConfig, CoreFieldMetadata, CorePresetDescriptor, CorePresetDiscoveryRegistry, CorePresetKind, CorePresetRef, CrudConfigureOptions, CrudOperationOptions, CrudOperationResolutionContext, CsvExportConfig, CurrencyLocaleConfig, CursorPage, CursorRequest, CustomizationLog, DataConfig, DataTransformation, DataValidationConfig, DateRangePreset, DateRangeValue, DateTimeLocaleConfig, DebounceConfig, DeviceKind, DiagnosticPhase, DiagnosticRecord, DiagnosticSeverity, DiagnosticSource, DiagnosticSubjectKind, DiagnosticSubjectRef, DomainCatalogContextHint, DomainCatalogContextHintIntent, DomainCatalogContextHintItemType, DomainCatalogGovernanceContext, DomainCatalogGovernancePayload, DomainCatalogGovernanceRequestOptions, DomainCatalogItem, DomainCatalogRecommendedAuthoringFlow, DomainCatalogRecommendedRuleType, DomainCatalogRelationshipHint, DomainCatalogRelease, DomainCatalogRequestOptions, DomainCatalogResourceProbe, DomainKnowledgeAuthorType, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetFilters, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSetStatus, DomainKnowledgeChangeSetTarget, DomainKnowledgeChangeSetTimelineEventResponse, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeOperationType, DomainKnowledgePatchOperation, DomainKnowledgeRequestOptions, DomainKnowledgeSafeOperationSummary, DomainKnowledgeStatusTransitionRequest, DomainKnowledgeTimelineEventVisibility, DomainKnowledgeTimelineRichContentOptions, DomainKnowledgeValidationIssue, DomainKnowledgeValidationResponse, DomainKnowledgeValidationStatus, DomainRuleAppliedByType, DomainRuleCreatedByType, DomainRuleDecisionDiagnostics, DomainRuleDefinition, DomainRuleDefinitionFilters, DomainRuleDefinitionRequest, DomainRuleExplainability, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleMaterialization, DomainRuleMaterializationFilters, DomainRuleMaterializationOutcomeResolution, DomainRuleMaterializationRequest, DomainRulePublicationDiagnostics, DomainRulePublicationMaterializationOutcome, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleRequestOptions, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatus, DomainRuleStatusTransitionRequest, DomainRuleTargetLayer, DomainRuleTimelineEventResponse, DomainRuleTimelineEventVisibility, DomainRuleTimelineResponse, DomainRuleTimelineRichContentOptions, DraggingConfig, Capability as DynamicPageCapability, CapabilityCatalog as DynamicPageCapabilityCatalog, CapabilityCategory as DynamicPageCapabilityCategory, ValueKind as DynamicPageValueKind, EditorialBlock, EditorialBlockBase, EditorialBlockKind, EditorialBlockOverride, EditorialBlockSurface, EditorialBlockTone, EditorialBlockVisibilityRule, EditorialCompliancePreset, EditorialComponentDocMeta, EditorialConnectorStyle, EditorialContentFormat, EditorialContextFieldContract, EditorialContextSummaryBlock, EditorialCustomWidgetBlock, EditorialDataCollectionBlock, EditorialDensity, EditorialFaqAccordionBlock, EditorialFaqItem, EditorialFormCompliancePreset, EditorialFormShellPreset, EditorialFormTemplate, EditorialFormTemplateBuildOptions, EditorialFormTemplateContextField, EditorialFormTemplateDefaults, EditorialFormTemplateLayoutPreset, EditorialFormTemplateMetadata, EditorialFormTemplateReference, EditorialHeroBlock, EditorialIconSpec, EditorialInfoCardItem, EditorialInfoCardsBlock, EditorialIntroHeroBlock, EditorialIntroHeroHighlightItem, EditorialJourney, EditorialJourneyOverride, EditorialJourneyStep, EditorialLayoutConfig, EditorialLayoutSpacing, EditorialLinkDefinition, EditorialLinkItem, EditorialMetaItem, EditorialMotionConfig, EditorialOrientation, EditorialPolicyItem, EditorialPolicyListBlock, EditorialPresentationShellVariant, EditorialPresentationalAction, EditorialPresentationalVisibilityRule, EditorialProblemType, EditorialResponsiveLayoutConfig, EditorialReviewField, EditorialReviewSection, EditorialReviewSectionField, EditorialReviewSectionsBlock, EditorialReviewSummaryBlock, EditorialRichTextBlock, EditorialSelectionCardItem, EditorialSelectionCardsBlock, EditorialShellVariant, EditorialSolutionDefinition, EditorialSolutionPreset, EditorialStepKind, EditorialStepVisualConfig, EditorialStepVisualVariant, EditorialStepperConfig, EditorialStepperVariant, EditorialSuccessPanelBlock, EditorialSurfaceVariant, EditorialTemplateInstance, EditorialTemplateInstanceOverrides, EditorialTemplateRef, EditorialTemplateSource, EditorialThemeBorderWidthTokens, EditorialThemeColorTokens, EditorialThemePreset, EditorialThemeRadiusTokens, EditorialThemeShadowTokens, EditorialThemeTokens, EditorialThemeTypographyTokens, EditorialTimelineStep, EditorialTimelineStepsBlock, EditorialWidgetAppearance, EditorialWidgetDefinition, EditorialWidgetInputs, EditorialWizardPresentation, ElevationConfig, EmptyAction, EmptyStateConfig, EndpointConfig, EndpointRef, EnhancedValidationConfig, EntityLookupActionsMetadata, EntityLookupCollectionMetadata, EntityLookupDisplayMetadata, EntityLookupMultiplePayloadMode, EntityLookupPayloadMode, EntityLookupResult, EntityLookupResultExtra, EntityLookupResultLayout, EntityLookupResultState, EntityLookupResultStateContext, EntityLookupSelectedLayout, EntityLookupSinglePayloadMode, EntityRef, ExcelExportConfig, ExcelStylingConfig, ExplicitCrudResolutionContract, ExportConfig, ExportFormat, ExportMessagesConfig, ExportTemplate, FetchWithEtagParams, FetchWithEtagResult, FieldArrayCollectionValidation, FieldArrayConfig, FieldArrayOperations, FieldConflict, FieldDefinition, FieldMetadata, FieldModification, FieldOption, FieldSelectorRegistryMap, FieldSource, FieldSubmitPolicy, FieldsetLayout, FilterOptions, FilteringConfig, FooterLinksAppearance, FooterLinksLayout, FormActionButton, FormActionConfirmationEvent, FormActionsLayout, FormApiLayout, FormBehaviorLayout, FormColumn, FormConfig, FormConfigMetadata, FormConfigState, FormCustomActionEvent, FormEntityEvent, FormFieldLayoutItem, FormHook, FormHookContext, FormHookDeclaration, FormHookDeclarationLite, FormHookOutcome, FormHookPreset, FormHookPresetMatch, FormHookStage, FormHookStatus, FormHooksLayout, FormInitializationError, FormLayout, FormLayoutItem, FormLayoutItemsColumnLike, FormLayoutRule, FormMessagesLayout, FormMetadataLayout, FormModeHints, FormOpenMode, FormReadyEvent, FormRichContentLayoutItem, FormRow, FormRowLayout, FormRuleTargetType, FormSection, FormSectionHeaderAction, FormSectionHeaderConfig, FormSectionHeaderEmptyState, FormSectionHeaderMode, FormSectionHeaderSize, FormSubmitEvent, FormValidationEvent, FormValueChangeEvent, FormattingLocaleConfig, GeneralExportConfig, GetSchemaParams, GlobalActionCatalogEntry, GlobalActionContext, GlobalActionEndpointRef, GlobalActionField, GlobalActionFieldOption, GlobalActionFieldType, GlobalActionHandler, GlobalActionHandlerEntry, GlobalActionRef, GlobalActionResult, GlobalActionUiSchema, GlobalActionValidationCode, GlobalActionValidationIssue, GlobalActionValidationTarget, GlobalAiConfig, GlobalAiEmbeddingConfig, GlobalAiProvider, GlobalAnalyticsService, GlobalApiClient, GlobalCacheConfig, GlobalConfig, GlobalCrudActionDefaults, GlobalCrudConfig, GlobalCrudDefaults, GlobalDialogAction, GlobalDialogAnimation, GlobalDialogAriaRole, GlobalDialogConfig, GlobalDialogConfigEntry, GlobalDialogPosition, GlobalDialogService, GlobalDialogStyles, GlobalDynamicFieldsAsyncSelectConfig, GlobalDynamicFieldsCascadeConfig, GlobalDynamicFieldsConfig, GlobalI18nConfig, GlobalRouteGuardResolver, GlobalSurfaceService, GlobalTableConfig, GlobalToastService, GroupingConfig, HateoasLink, HeroBadge, HeroBadgeTone, HeroBannerAppearance, HeroBannerVariant, HeroMetaItem, HookResolver, InlineFilterControlType, InlineMonthRangeMetadata, InlinePeriodRangeFiscalCalendar, InlinePeriodRangeGranularity, InlinePeriodRangeMetadata, InlinePeriodRangePreset, InlineRangeDistributionBin, InlineRangeDistributionConfig, InlineYearRangeMetadata, InteractionConfig, JsonExportConfig, JsonLogicArguments, JsonLogicArray, JsonLogicDataRecord, JsonLogicDerivedValueExpression, JsonLogicExpression, JsonLogicOperationExpression, JsonLogicPrimitive, JsonLogicRecord, JsonLogicValue, JsonLogicVarExpression, JsonLogicVarReference, KeyboardAccessibilityConfig, LazyLoadingConfig, LegacyCompositionLinkInput, LegacyLinkCondition, LegacyLinkMetaPolicy, LegacyTableConfig, LegalNoticeAppearance, LegalNoticeSeverity, LinkIntent, LinkMetadata, LinkPolicy, LoadingConfig, LoadingContext, LoadingPhase$1 as LoadingPhase, LoadingScope, LoadingState, LoadingPhase as LoadingStatePhase, LocalizationConfig, LocateRequest, LoggerConfig, LoggerContext, LoggerEvent, LoggerLevel, LoggerLogOptions, LoggerNormalizedError, LoggerPIIConfig, LoggerSink, LoggerTelemetryPayload, LoggerThrottleConfig, LookupCapabilitiesMetadata, LookupCreateMetadata, LookupDetailMetadata, LookupDialogMetadata, LookupDialogSize, LookupFilterDefinitionMetadata, LookupFilterFieldType, LookupFilterOperator, LookupFilterRequest, LookupFilteringMetadata, LookupOpenDetailMode, LookupResultColumnKind, LookupResultColumnMetadata, LookupSelectionPolicyMetadata, LookupSortOptionMetadata, LookupStatusTone, ManifestControlProfile, ManifestControlProfileApplicability, ManifestDomainPatchHandlerContract, ManifestEffect, ManifestExample, ManifestInput, ManifestOperation, ManifestSubmissionImpact, ManifestTarget, ManifestValidator, MarginConfig, MaterialAutocompleteMetadata, MaterialButtonMetadata, MaterialButtonToggleMetadata, MaterialCheckboxMetadata, MaterialChipsMetadata, MaterialColorInputMetadata, MaterialColorPickerMetadata, MaterialCpfCnpjMetadata, MaterialCurrencyMetadata, MaterialDateInputMetadata, MaterialDateRangeMetadata, MaterialDatepickerMetadata, MaterialDatetimeLocalInputMetadata, MaterialDesignConfig, MaterialEmailInputMetadata, MaterialEmailMetadata, MaterialEntityLookupMetadata, MaterialInputMetadata, MaterialMonthInputMetadata, MaterialMultiSelectTreeMetadata, MaterialNumericMetadata, MaterialPasswordMetadata, MaterialPhoneMetadata, MaterialPriceRangeMetadata, MaterialRadioMetadata, MaterialRangeSliderMetadata, MaterialRatingMetadata, MaterialSearchInputMetadata, MaterialSelectMetadata, MaterialSelectionListMetadata, MaterialSliderMetadata, MaterialTextareaMetadata, MaterialTimeInputMetadata, MaterialTimeRangeMetadata, MaterialTimeTrackShift, MaterialTimepickerMetadata, MaterialToggleMetadata, MaterialTransferListMetadata, MaterialTreeNode, MaterialTreeSelectMetadata, MaterialUrlInputMetadata, MaterialWeekInputMetadata, MaterialYearInputMetadata, MemoryConfig, MessageTemplate, MessagesConfig, NavigationOpenRoutePayload, NestedFieldsetLayout, NestedPortCatalogDiagnostic, NestedPortCatalogRegistry, NestedPortCatalogResult, NestedWidgetInputPatchResult, NestedWidgetResolution, NormalizedError, NumberLocaleConfig, ObservabilityAlert, ObservabilityAlertGroupBy, ObservabilityAlertRule, ObservabilityAlertSeverity, ObservabilityCountBucket, ObservabilityDashboardOptions, ObservabilityIngestInput, ObservabilityMetricsSnapshot, OptionDTO, OptionSourceCachePolicy, OptionSourceFilterRequest, OptionSourceMetadata, OptionSourceRequestOptions, OptionSourceSearchMode, OptionSourceType, OverlayDecider, OverlayDecision, OverlayDecisionContext, OverlayDecisionMatrix, OverlayPattern, OverlayRange, OverlayRule, OverlayRuleMatch, OverlayThresholds, Page, PageIdentity, PageableRequest, PaginationConfig, PartialFieldMetadata, PdfExportConfig, PerformanceConfig, PersistedPageConfig, PersistedPageDefinitionWithIds, PersistedWidgetInstance, PlainObject, PluginConfig, PollingConfig, PortCardinality, PortCompatibilityRuleSet, PortContract, PortDirection, PortExposure, PortSchemaKind, PortSchemaMode, PortSchemaRef, PortSemanticKind, PraxisAnalyticsBindings, PraxisAnalyticsDefaults, PraxisAnalyticsDimensionBinding, PraxisAnalyticsDistributionStatsRequest, PraxisAnalyticsExecutionMetric, PraxisAnalyticsGroupByStatsRequest, PraxisAnalyticsInteractions, PraxisAnalyticsMetricBinding, PraxisAnalyticsOptions, PraxisAnalyticsPresentationHints, PraxisAnalyticsProjection, PraxisAnalyticsSortRule, PraxisAnalyticsSource, PraxisAnalyticsStatsExecutionPlan, PraxisAnalyticsStatsMetricRequest, PraxisAnalyticsStatsRequest, PraxisAnalyticsTimeSeriesStatsRequest, PraxisAuthContext, PraxisBuiltinCustomRuleOperator, PraxisCollectionComponentType, PraxisCollectionExportField, PraxisCollectionExportHttpProviderOptions, PraxisCollectionExportProvider, PraxisCollectionExportRequest, PraxisCollectionExportResult, PraxisCollectionExportSource, PraxisCollectionPaginationState, PraxisCollectionSelectionMode, PraxisCollectionSelectionState, PraxisCollectionSortDescriptor, PraxisConditionalEffectDiagnostic, PraxisConditionalRule, PraxisConditionalRuleMatchInput, PraxisCustomRuleOperator, PraxisDataQueryContext, PraxisDataQueryContextMeta, PraxisEffectDistinctKeyInput, PraxisEffectPolicy, PraxisExportFormat, PraxisExportScope, PraxisExportSecurityPolicy, PraxisExportSortDirection, PraxisGlobalActionsOptions, PraxisGlobalConfigBootstrapOptions, PraxisHostRuleOperator, PraxisHttpLoadingOptions, PraxisI18nConfig, PraxisI18nDictionary, PraxisI18nMessageDescriptor, PraxisI18nNamespaceConfig, PraxisI18nNamespaceDictionary, PraxisI18nTranslator, PraxisIconDefaultsOptions, PraxisJsonLogicEvaluationContext, PraxisJsonLogicEvaluationOptions, PraxisJsonLogicEvaluationResult, PraxisJsonLogicIssueCode, PraxisJsonLogicOperatorDefinition, PraxisJsonLogicOperatorDescriptor, PraxisJsonLogicOperatorHelpers, PraxisJsonLogicOperatorMetadata, PraxisJsonLogicOperatorPurity, PraxisJsonLogicOperatorReturnType, PraxisJsonLogicOperatorSource, PraxisJsonLogicRuntimeValue, PraxisJsonLogicValidationIssue, PraxisJsonLogicValidationOptions, PraxisJsonLogicValidationResult, PraxisLayerScale, PraxisLoadingRenderer, PraxisLocale, PraxisLoggingEnvironment, PraxisLoggingOptions, PraxisNativeJsonLogicOperator, PraxisRuleContextDescriptor, PraxisRuleOperator, PraxisRuntimeConditionalEffectRule, PraxisRuntimeEffectTrigger, PraxisRuntimeGlobalActionEffect, PraxisTextValue, PraxisToastOptions, PraxisTranslationParams, PraxisXUiAnalytics, PriceRangeValue, RangeSliderInlineTexts, RangeSliderMark, RangeSliderQuickPreset, RangeSliderQuickPresetLabels, RangeSliderScalePreset, RangeSliderSemanticBand, RangeSliderSemanticTone, RangeSliderTrackMode, RangeSliderValue, RangeSliderValueFormat, RangeSliderValueLabelDisplay, RenderingConfig, ResizingConfig, ResolveCrudOperationRequest, ResolvePresetOptions, ResolvedComponentMetadataEditorialBinding, ResolvedComponentMetadataEditorialMeta, ResolvedCrudOperation, ResolvedCrudOperationSource, ResolvedNestedPort, ResolvedValuePresentation, ResourceActionCatalogItem, ResourceActionCatalogResponse, ResourceActionOpenAdapterOptions, ResourceActionScope, ResourceAvailabilityDecision, ResourceCapabilityOperation, ResourceCapabilityOperationId, ResourceCapabilityOperations, ResourceCapabilitySnapshot, ResourceCrudOperationId, ResourceDiscoveryRel, ResourceDiscoveryRequestOptions, ResourceExportMaxRows, ResourceLinkSource, ResourceSurfaceCatalogItem, ResourceSurfaceCatalogResponse, ResourceSurfaceKind, ResourceSurfaceOpenAdapterOptions, ResourceSurfaceScope, ResponsiveConfig, RestApiLinks, RestApiResponse, RichAccordionItem, RichAccordionNode, RichActionButtonNode, RichActionCardNode, RichActionRef, RichAvatarNode, RichBadgeNode, RichBlockBaseNode, RichBlockContextConfig, RichBlockContextScope, RichBlockHostCapabilities, RichBlockNode, RichBlockRuleSet, RichCalloutNode, RichCapabilityMode, RichCardAccessibility, RichCardDensity, RichCardInteraction, RichCardInteractionMode, RichCardMedia, RichCardMediaKind, RichCardMediaPlacement, RichCardNode, RichCardOrientation, RichCardSize, RichCardTone, RichCardVariant, RichCollapsibleCardNode, RichComposeNode, RichContentDocument, RichCtaGroupLayout, RichCtaGroupNode, RichDisclosureNode, RichEmptyStateNode, RichFormLauncherNode, RichIconNode, RichImageNode, RichKeyValueItem, RichKeyValueListNode, RichLinkNode, RichLookupCardNode, RichLookupResultField, RichLookupResultNode, RichLookupResultStatus, RichMediaBlockNode, RichMetricNode, RichPresenterNode, RichPresetReferenceNode, RichPrimitiveNode, RichProgressNode, RichPropertySheetColumns, RichPropertySheetItem, RichPropertySheetNode, RichPropertySheetTone, RichRecordSummaryField, RichRecordSummaryNode, RichRelatedRecordNode, RichStatGroupLayout, RichStatGroupNode, RichStatItem, RichStatTone, RichTabsAppearance, RichTabsItem, RichTabsNode, RichTextAppearance, RichTextNode, RichTextVariant, RichTimelineColor, RichTimelineConnectorVariant, RichTimelineItem, RichTimelineMarkerStyle, RichTimelineMarkerVariant, RichTimelineNode, RichTimelineOrder, RichTimelineOrientation, RichTimelinePosition, RowAction, RowActionsConfig, RuleContextRoot, RulePropertyDefinition, RulePropertySchema, RulePropertyType, RunHooksResult, RuntimeLinkSnapshot, RuntimeLinkStatus, RuntimePayloadSummary, RuntimeSnapshot, RuntimeSnapshotStatus, RuntimeStateSnapshot, RuntimeTraceEntry, RuntimeTracePhase, SchemaIdParams, SchemaMetaInfo, SchemaViewerContext, SelectionConfig, SerializableFieldMetadata, SettingsPanelBridge, SettingsPanelOpenContent, SettingsPanelOpenOptions, SettingsPanelRef, SettingsValueProvider, SortingConfig, SpacingConfig, StateEndpointRef, StateMessagesConfig, SubmitPolicy, SurfaceBinding, SurfaceBindingMode, SurfaceDrawerBridge, SurfaceDrawerOpenContent, SurfaceDrawerOpenOptions, SurfaceDrawerRef, SurfaceDrawerResult, SurfaceDrawerWidthPreset, SurfaceOpenPayload, SurfaceOpenPreset, SurfacePresentation, SurfaceSizeConfig, SyncConfig, SyncResult, TableActionsConfig, TableAppearanceConfig, TableBehaviorConfig, TableConfig, TableConfigV2 as TableConfigModern, TableConfigState, TableConfigV2, TableDetailActionBarAction, TableDetailActionBarNode, TableDetailActionNode, TableDetailAllowedNode, TableDetailBaseNode, TableDetailCardGridCardNode, TableDetailCardGridNode, TableDetailCardNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, TableDetailEmbedBaseNode, TableDetailInlineSchemaDocument, TableDetailLayoutNode, TableDetailListItemAction, TableDetailListItemContextConfig, TableDetailListItemSchema, TableDetailListNode, TableDetailMediaBlockNode, TableDetailRefNode, TableDetailRichListNode, TableDetailRichTextNode, TableDetailSchemaNode, TableDetailTabNode, TableDetailTabsNode, TableDetailTemplateRefNode, TableDetailTimelineItemSchema, TableDetailTimelineNode, TableDetailTimelineStaticItem, TableDetailValueNode, TableExpansionConfig, TableLocalDataModeConfig, TelemetryEvent, TelemetryLoggerSinkOptions, TelemetryTransport, TextTransformApply, TextTransformName, ThemeConfig, ToolbarAction, ToolbarConfig, ToolbarFilterConfig, ToolbarLayoutConfig, ToolbarSettingsConfig, TransformBinding, TransformBindingSource, TransformCatalogCategory, TransformCatalogEntry, TransformKind, TransformLegacyReplacement, TransformOutputHint, TransformPhase, TransformPipeline, TransformSemanticKind, TransformStep, TypographyConfig, UserContextSource, UserContextSummaryAppearance, UserContextSummaryField, ValidationContext, ValidationError, ValidationMessagesConfig, ValidationResult, ValidationRule, ValidatorFunction, ValidatorOptions, ValueKind$1 as ValueKind, ValuePresentationConfig, ValuePresentationResolutionContext, ValuePresentationStyle, ValuePresentationType, VirtualizationConfig, WidgetDefinition, WidgetDerivedStateNode, WidgetEventEnvelope, WidgetEventPathNormalizeInput, WidgetEventPathNormalizeOptions, WidgetEventPathSegment, WidgetInstance, WidgetPageCanvasCollisionPolicy, WidgetPageCanvasConstraints, WidgetPageCanvasItem, WidgetPageCanvasItemOverride, WidgetPageCanvasLayout, WidgetPageCanvasLayoutVariant, WidgetPageCompositionDefinition, WidgetPageDefinition, WidgetPageDeviceKind, WidgetPageDeviceLayouts, WidgetPageDevicePolicy, WidgetPageGroupingDefinition, WidgetPageGroupingOverride, WidgetPageGroupingTabDefinition, WidgetPageLayout, WidgetPageLayoutPresetDefinition, WidgetPageLayoutVariant, WidgetPageOrientation, WidgetPageSlotAssignments, WidgetPageSlotDefinition, WidgetPageStateDefinition, WidgetPageStateInput, WidgetPageStateRuntimeSnapshot, WidgetPageThemePresetDefinition, WidgetPageWidgetLayoutOverride, WidgetPageWidgetSuggestion, WidgetResolutionDiagnostic, WidgetResolutionPhase, WidgetShellAction, WidgetShellActionEvent, WidgetShellActionPlacement, WidgetShellBodyLayout, WidgetShellConfig, WidgetShellWindowActions, WidgetStateNode };
13984
+ export type { AccessibilityConfig, ActionDefinition, ActionMessagesConfig, AiCapability, AiCapabilityCatalog, AiCapabilityCategory, AiCapabilityCategoryMap, AiConcept, AiConceptPack, AiValueKind, AnalyticsIntent, AnalyticsPresentationDecision, AnalyticsPresentationFamily, AnalyticsPresentationResolverOptions, AnalyticsSchemaContractRequest, AnalyticsSourceKind, AnalyticsStatsGranularity, AnalyticsStatsMetricOperation, AnalyticsStatsOperation, AnalyticsStatsOrderBy, AnimationConfig, AnnouncementConfig, ApiConfigStorageOptions, ApiUrlConfig, ApiUrlEntry, AsyncConfigStorage, BackConfig, BaseMaterialInputMetadata, BatchDeleteOptions, BatchDeleteProgress, BatchDeleteResult, BorderConfig, Breakpoint, BuiltValidators, BulkAction, BulkActionsConfig, CacheAdapter, CacheConfig, CacheEntry, Capability$1 as Capability, CapabilityCatalog$1 as CapabilityCatalog, CapabilityCategory$1 as CapabilityCategory, ColorConfig, ColumnAlign, ColumnDefinition, ColumnHidden, ColumnOffset, ColumnOrder, ColumnSpan, ComponentActionParam, ComponentAuthoringManifest, ComponentContextAction, ComponentContextOption, ComponentContextOptionMode, ComponentContextOptionsByPathEntry, ComponentContextPack, ComponentDocMeta, ComponentEditorialResolveOptions, ComponentKeyParams, ComponentMergePatch, ComponentMetadata, ComponentMetadataEditorialBindingDescriptor, ComponentMetadataEditorialDescriptor, ComponentPortEndpointRef, ComponentPortPathSegment, CompositionLink, CompositionRuntimeFacadeOptions, ConditionalValidationRule, ConfigMetadata, ConfigStorage, ConfirmationConfig, ConnectionConfigV1, ConnectionStorage, ContextAction, ContextActionsConfig, BackConfig as CoreBackConfig, CoreFieldMetadata, CorePresetDescriptor, CorePresetDiscoveryRegistry, CorePresetKind, CorePresetRef, CrudConfigureOptions, CrudOperationOptions, CrudOperationResolutionContext, CsvExportConfig, CurrencyLocaleConfig, CursorPage, CursorRequest, CustomizationLog, DataConfig, DataTransformation, DataValidationConfig, DateRangePreset, DateRangeValue, DateTimeLocaleConfig, DebounceConfig, DeviceKind, DiagnosticPhase, DiagnosticRecord, DiagnosticSeverity, DiagnosticSource, DiagnosticSubjectKind, DiagnosticSubjectRef, DomainCatalogContextHint, DomainCatalogContextHintIntent, DomainCatalogContextHintItemType, DomainCatalogGovernanceContext, DomainCatalogGovernancePayload, DomainCatalogGovernanceRequestOptions, DomainCatalogItem, DomainCatalogRecommendedAuthoringFlow, DomainCatalogRecommendedRuleType, DomainCatalogRelationshipHint, DomainCatalogRelease, DomainCatalogRequestOptions, DomainCatalogResourceProbe, DomainKnowledgeAuthorType, DomainKnowledgeChangeSet, DomainKnowledgeChangeSetFilters, DomainKnowledgeChangeSetRequest, DomainKnowledgeChangeSetStatus, DomainKnowledgeChangeSetTarget, DomainKnowledgeChangeSetTimelineEventResponse, DomainKnowledgeChangeSetTimelineResponse, DomainKnowledgeOperationType, DomainKnowledgePatchOperation, DomainKnowledgeRequestOptions, DomainKnowledgeSafeOperationSummary, DomainKnowledgeStatusTransitionRequest, DomainKnowledgeTimelineEventVisibility, DomainKnowledgeTimelineRichContentOptions, DomainKnowledgeValidationIssue, DomainKnowledgeValidationResponse, DomainKnowledgeValidationStatus, DomainRuleAppliedByType, DomainRuleCreatedByType, DomainRuleDecisionDiagnostics, DomainRuleDefinition, DomainRuleDefinitionFilters, DomainRuleDefinitionRequest, DomainRuleExplainability, DomainRuleIntakeRequest, DomainRuleIntakeResponse, DomainRuleMaterialization, DomainRuleMaterializationFilters, DomainRuleMaterializationOutcomeResolution, DomainRuleMaterializationRequest, DomainRulePublicationDiagnostics, DomainRulePublicationMaterializationOutcome, DomainRulePublicationRequest, DomainRulePublicationResponse, DomainRuleRequestOptions, DomainRuleSimulationRequest, DomainRuleSimulationResponse, DomainRuleStatus, DomainRuleStatusTransitionRequest, DomainRuleTargetLayer, DomainRuleTimelineEventResponse, DomainRuleTimelineEventVisibility, DomainRuleTimelineResponse, DomainRuleTimelineRichContentOptions, DraggingConfig, Capability as DynamicPageCapability, CapabilityCatalog as DynamicPageCapabilityCatalog, CapabilityCategory as DynamicPageCapabilityCategory, ValueKind as DynamicPageValueKind, EditorialBlock, EditorialBlockBase, EditorialBlockKind, EditorialBlockOverride, EditorialBlockSurface, EditorialBlockTone, EditorialBlockVisibilityRule, EditorialCompliancePreset, EditorialComponentDocMeta, EditorialConnectorStyle, EditorialContentFormat, EditorialContextFieldContract, EditorialContextSummaryBlock, EditorialCustomWidgetBlock, EditorialDataCollectionBlock, EditorialDensity, EditorialFaqAccordionBlock, EditorialFaqItem, EditorialFormCompliancePreset, EditorialFormShellPreset, EditorialFormTemplate, EditorialFormTemplateBuildOptions, EditorialFormTemplateContextField, EditorialFormTemplateDefaults, EditorialFormTemplateLayoutPreset, EditorialFormTemplateMetadata, EditorialFormTemplateReference, EditorialHeroBlock, EditorialIconSpec, EditorialInfoCardItem, EditorialInfoCardsBlock, EditorialIntroHeroBlock, EditorialIntroHeroHighlightItem, EditorialJourney, EditorialJourneyOverride, EditorialJourneyStep, EditorialLayoutConfig, EditorialLayoutSpacing, EditorialLinkDefinition, EditorialLinkItem, EditorialMetaItem, EditorialMotionConfig, EditorialOrientation, EditorialPolicyItem, EditorialPolicyListBlock, EditorialPresentationShellVariant, EditorialPresentationalAction, EditorialPresentationalVisibilityRule, EditorialProblemType, EditorialResponsiveLayoutConfig, EditorialReviewField, EditorialReviewSection, EditorialReviewSectionField, EditorialReviewSectionsBlock, EditorialReviewSummaryBlock, EditorialRichTextBlock, EditorialSelectionCardItem, EditorialSelectionCardsBlock, EditorialShellVariant, EditorialSolutionDefinition, EditorialSolutionPreset, EditorialStepKind, EditorialStepVisualConfig, EditorialStepVisualVariant, EditorialStepperConfig, EditorialStepperVariant, EditorialSuccessPanelBlock, EditorialSurfaceVariant, EditorialTemplateInstance, EditorialTemplateInstanceOverrides, EditorialTemplateRef, EditorialTemplateSource, EditorialThemeBorderWidthTokens, EditorialThemeColorTokens, EditorialThemePreset, EditorialThemeRadiusTokens, EditorialThemeShadowTokens, EditorialThemeTokens, EditorialThemeTypographyTokens, EditorialTimelineStep, EditorialTimelineStepsBlock, EditorialWidgetAppearance, EditorialWidgetDefinition, EditorialWidgetInputs, EditorialWizardPresentation, ElevationConfig, EmptyAction, EmptyStateConfig, EndpointConfig, EndpointRef, EnhancedValidationConfig, EntityLookupActionsMetadata, EntityLookupCollectionMetadata, EntityLookupDensity, EntityLookupDisplayFieldMetadata, EntityLookupDisplayFieldPresentation, EntityLookupDisplayMetadata, EntityLookupDisplayPreset, EntityLookupMultiplePayloadMode, EntityLookupPayloadMode, EntityLookupResult, EntityLookupResultExtra, EntityLookupResultLayout, EntityLookupResultState, EntityLookupResultStateContext, EntityLookupRichFieldMetadata, EntityLookupSelectedLayout, EntityLookupSinglePayloadMode, EntityLookupUsage, EntityRef, ExcelExportConfig, ExcelStylingConfig, ExplicitCrudResolutionContract, ExportConfig, ExportFormat, ExportMessagesConfig, ExportTemplate, FetchWithEtagParams, FetchWithEtagResult, FieldArrayCollectionValidation, FieldArrayConfig, FieldArrayOperations, FieldConflict, FieldDefinition, FieldMetadata, FieldModification, FieldOption, FieldSelectorRegistryMap, FieldSource, FieldSubmitPolicy, FieldsetLayout, FilterOptions, FilteringConfig, FooterLinksAppearance, FooterLinksLayout, FormActionButton, FormActionConfirmationEvent, FormActionsLayout, FormApiLayout, FormBehaviorLayout, FormColumn, FormConfig, FormConfigMetadata, FormConfigState, FormCustomActionEvent, FormEntityEvent, FormFieldLayoutItem, FormHook, FormHookContext, FormHookDeclaration, FormHookDeclarationLite, FormHookOutcome, FormHookPreset, FormHookPresetMatch, FormHookStage, FormHookStatus, FormHooksLayout, FormInitializationError, FormLayout, FormLayoutItem, FormLayoutItemsColumnLike, FormLayoutRule, FormMessagesLayout, FormMetadataLayout, FormModeHints, FormOpenMode, FormReadyEvent, FormRichContentLayoutItem, FormRow, FormRowLayout, FormRuleTargetType, FormSection, FormSectionHeaderAction, FormSectionHeaderConfig, FormSectionHeaderEmptyState, FormSectionHeaderMode, FormSectionHeaderSize, FormSubmitEvent, FormValidationEvent, FormValueChangeEvent, FormattingLocaleConfig, GeneralExportConfig, GetSchemaParams, GlobalActionCatalogEntry, GlobalActionContext, GlobalActionEndpointRef, GlobalActionField, GlobalActionFieldOption, GlobalActionFieldType, GlobalActionHandler, GlobalActionHandlerEntry, GlobalActionRef, GlobalActionResult, GlobalActionUiSchema, GlobalActionValidationCode, GlobalActionValidationIssue, GlobalActionValidationTarget, GlobalAiConfig, GlobalAiEmbeddingConfig, GlobalAiProvider, GlobalAnalyticsService, GlobalApiClient, GlobalCacheConfig, GlobalConfig, GlobalCrudActionDefaults, GlobalCrudConfig, GlobalCrudDefaults, GlobalDialogAction, GlobalDialogAnimation, GlobalDialogAriaRole, GlobalDialogConfig, GlobalDialogConfigEntry, GlobalDialogPosition, GlobalDialogService, GlobalDialogStyles, GlobalDynamicFieldsAsyncSelectConfig, GlobalDynamicFieldsCascadeConfig, GlobalDynamicFieldsConfig, GlobalI18nConfig, GlobalRouteGuardResolver, GlobalSurfaceService, GlobalTableConfig, GlobalToastService, GroupingConfig, HateoasLink, HeroBadge, HeroBadgeTone, HeroBannerAppearance, HeroBannerVariant, HeroMetaItem, HookResolver, InlineFilterControlType, InlineMonthRangeMetadata, InlinePeriodRangeFiscalCalendar, InlinePeriodRangeGranularity, InlinePeriodRangeMetadata, InlinePeriodRangePreset, InlineRangeDistributionBin, InlineRangeDistributionConfig, InlineYearRangeMetadata, InteractionConfig, JsonExportConfig, JsonLogicArguments, JsonLogicArray, JsonLogicDataRecord, JsonLogicDerivedValueExpression, JsonLogicExpression, JsonLogicOperationExpression, JsonLogicPrimitive, JsonLogicRecord, JsonLogicValue, JsonLogicVarExpression, JsonLogicVarReference, KeyboardAccessibilityConfig, LazyLoadingConfig, LegacyCompositionLinkInput, LegacyLinkCondition, LegacyLinkMetaPolicy, LegacyTableConfig, LegalNoticeAppearance, LegalNoticeSeverity, LinkIntent, LinkMetadata, LinkPolicy, LoadingConfig, LoadingContext, LoadingPhase$1 as LoadingPhase, LoadingScope, LoadingState, LoadingPhase as LoadingStatePhase, LocalizationConfig, LocateRequest, LoggerConfig, LoggerContext, LoggerEvent, LoggerLevel, LoggerLogOptions, LoggerNormalizedError, LoggerPIIConfig, LoggerSink, LoggerTelemetryPayload, LoggerThrottleConfig, LookupCapabilitiesMetadata, LookupCreateMetadata, LookupDetailMetadata, LookupDialogMetadata, LookupDialogSize, LookupFilterDefinitionMetadata, LookupFilterFieldType, LookupFilterOperator, LookupFilterRequest, LookupFilteringMetadata, LookupOpenDetailMode, LookupResultColumnKind, LookupResultColumnMetadata, LookupSelectionPolicyMetadata, LookupSortOptionMetadata, LookupStatusTone, ManifestControlProfile, ManifestControlProfileApplicability, ManifestDomainPatchHandlerContract, ManifestEffect, ManifestExample, ManifestInput, ManifestOperation, ManifestSubmissionImpact, ManifestTarget, ManifestValidator, MarginConfig, MaterialAutocompleteMetadata, MaterialButtonMetadata, MaterialButtonToggleMetadata, MaterialCheckboxMetadata, MaterialChipsMetadata, MaterialColorInputMetadata, MaterialColorPickerMetadata, MaterialCpfCnpjMetadata, MaterialCurrencyMetadata, MaterialDateInputMetadata, MaterialDateRangeMetadata, MaterialDatepickerMetadata, MaterialDatetimeLocalInputMetadata, MaterialDesignConfig, MaterialEmailInputMetadata, MaterialEmailMetadata, MaterialEntityLookupMetadata, MaterialInputMetadata, MaterialMonthInputMetadata, MaterialMultiSelectTreeMetadata, MaterialNumericMetadata, MaterialPasswordMetadata, MaterialPhoneMetadata, MaterialPriceRangeMetadata, MaterialRadioMetadata, MaterialRangeSliderMetadata, MaterialRatingMetadata, MaterialSearchInputMetadata, MaterialSelectMetadata, MaterialSelectionListMetadata, MaterialSliderMetadata, MaterialTextareaMetadata, MaterialTimeInputMetadata, MaterialTimeRangeMetadata, MaterialTimeTrackShift, MaterialTimepickerMetadata, MaterialToggleMetadata, MaterialTransferListMetadata, MaterialTreeNode, MaterialTreeSelectMetadata, MaterialUrlInputMetadata, MaterialWeekInputMetadata, MaterialYearInputMetadata, MemoryConfig, MessageTemplate, MessagesConfig, NavigationOpenRoutePayload, NestedFieldsetLayout, NestedPortCatalogDiagnostic, NestedPortCatalogRegistry, NestedPortCatalogResult, NestedWidgetInputPatchResult, NestedWidgetResolution, NormalizedError, NumberLocaleConfig, ObservabilityAlert, ObservabilityAlertGroupBy, ObservabilityAlertRule, ObservabilityAlertSeverity, ObservabilityCountBucket, ObservabilityDashboardOptions, ObservabilityIngestInput, ObservabilityMetricsSnapshot, OptionDTO, OptionSourceCachePolicy, OptionSourceFilterRequest, OptionSourceMetadata, OptionSourceRequestOptions, OptionSourceSearchMode, OptionSourceType, OverlayDecider, OverlayDecision, OverlayDecisionContext, OverlayDecisionMatrix, OverlayPattern, OverlayRange, OverlayRule, OverlayRuleMatch, OverlayThresholds, Page, PageIdentity, PageableRequest, PaginationConfig, PartialFieldMetadata, PdfExportConfig, PerformanceConfig, PersistedPageConfig, PersistedPageDefinitionWithIds, PersistedWidgetInstance, PlainObject, PluginConfig, PollingConfig, PortCardinality, PortCompatibilityRuleSet, PortContract, PortDirection, PortExposure, PortSchemaKind, PortSchemaMode, PortSchemaRef, PortSemanticKind, PraxisAnalyticsBindings, PraxisAnalyticsDefaults, PraxisAnalyticsDimensionBinding, PraxisAnalyticsDistributionStatsRequest, PraxisAnalyticsExecutionMetric, PraxisAnalyticsGroupByStatsRequest, PraxisAnalyticsInteractions, PraxisAnalyticsMetricBinding, PraxisAnalyticsOptions, PraxisAnalyticsPresentationHints, PraxisAnalyticsProjection, PraxisAnalyticsSortRule, PraxisAnalyticsSource, PraxisAnalyticsStatsExecutionPlan, PraxisAnalyticsStatsMetricRequest, PraxisAnalyticsStatsRequest, PraxisAnalyticsTimeSeriesStatsRequest, PraxisAuthContext, PraxisBuiltinCustomRuleOperator, PraxisCollectionComponentType, PraxisCollectionExportField, PraxisCollectionExportHttpProviderOptions, PraxisCollectionExportProvider, PraxisCollectionExportRequest, PraxisCollectionExportResult, PraxisCollectionExportSource, PraxisCollectionPaginationState, PraxisCollectionSelectionMode, PraxisCollectionSelectionState, PraxisCollectionSortDescriptor, PraxisConditionalEffectDiagnostic, PraxisConditionalRule, PraxisConditionalRuleMatchInput, PraxisCustomRuleOperator, PraxisDataQueryContext, PraxisDataQueryContextMeta, PraxisEffectDistinctKeyInput, PraxisEffectPolicy, PraxisExportFormat, PraxisExportScope, PraxisExportSecurityPolicy, PraxisExportSortDirection, PraxisGlobalActionsOptions, PraxisGlobalConfigBootstrapOptions, PraxisHostRuleOperator, PraxisHttpLoadingOptions, PraxisI18nConfig, PraxisI18nDictionary, PraxisI18nMessageDescriptor, PraxisI18nNamespaceConfig, PraxisI18nNamespaceDictionary, PraxisI18nTranslator, PraxisIconDefaultsOptions, PraxisJsonLogicEvaluationContext, PraxisJsonLogicEvaluationOptions, PraxisJsonLogicEvaluationResult, PraxisJsonLogicIssueCode, PraxisJsonLogicOperatorDefinition, PraxisJsonLogicOperatorDescriptor, PraxisJsonLogicOperatorHelpers, PraxisJsonLogicOperatorMetadata, PraxisJsonLogicOperatorPurity, PraxisJsonLogicOperatorReturnType, PraxisJsonLogicOperatorSource, PraxisJsonLogicRuntimeValue, PraxisJsonLogicValidationIssue, PraxisJsonLogicValidationOptions, PraxisJsonLogicValidationResult, PraxisLayerScale, PraxisLoadingRenderer, PraxisLocale, PraxisLoggingEnvironment, PraxisLoggingOptions, PraxisNativeJsonLogicOperator, PraxisRuleContextDescriptor, PraxisRuleOperator, PraxisRuntimeConditionalEffectRule, PraxisRuntimeEffectTrigger, PraxisRuntimeGlobalActionEffect, PraxisTextValue, PraxisToastOptions, PraxisTranslationParams, PraxisXUiAnalytics, PriceRangeValue, RangeSliderInlineTexts, RangeSliderMark, RangeSliderQuickPreset, RangeSliderQuickPresetLabels, RangeSliderScalePreset, RangeSliderSemanticBand, RangeSliderSemanticTone, RangeSliderTrackMode, RangeSliderValue, RangeSliderValueFormat, RangeSliderValueLabelDisplay, RenderingConfig, ResizingConfig, ResolveCrudOperationRequest, ResolvePresetOptions, ResolvedComponentMetadataEditorialBinding, ResolvedComponentMetadataEditorialMeta, ResolvedCrudOperation, ResolvedCrudOperationSource, ResolvedNestedPort, ResolvedValuePresentation, ResourceActionCatalogItem, ResourceActionCatalogResponse, ResourceActionOpenAdapterOptions, ResourceActionScope, ResourceAvailabilityDecision, ResourceCapabilityOperation, ResourceCapabilityOperationId, ResourceCapabilityOperations, ResourceCapabilitySnapshot, ResourceCrudOperationId, ResourceDiscoveryRel, ResourceDiscoveryRequestOptions, ResourceExportMaxRows, ResourceLinkSource, ResourceSurfaceCatalogItem, ResourceSurfaceCatalogResponse, ResourceSurfaceKind, ResourceSurfaceOpenAdapterOptions, ResourceSurfaceScope, ResponsiveConfig, RestApiLinks, RestApiResponse, RichAccordionItem, RichAccordionNode, RichActionButtonNode, RichActionCardNode, RichActionRef, RichAvatarNode, RichBadgeNode, RichBlockBaseNode, RichBlockContextConfig, RichBlockContextScope, RichBlockHostCapabilities, RichBlockNode, RichBlockRuleSet, RichCalloutNode, RichCapabilityMode, RichCardAccessibility, RichCardDensity, RichCardInteraction, RichCardInteractionMode, RichCardMedia, RichCardMediaKind, RichCardMediaPlacement, RichCardNode, RichCardOrientation, RichCardSize, RichCardTone, RichCardVariant, RichCollapsibleCardNode, RichComposeNode, RichContentDocument, RichCtaGroupLayout, RichCtaGroupNode, RichDisclosureNode, RichEmptyStateNode, RichFormLauncherNode, RichIconNode, RichImageNode, RichKeyValueItem, RichKeyValueListNode, RichLinkNode, RichLookupCardNode, RichLookupResultField, RichLookupResultNode, RichLookupResultStatus, RichMediaBlockNode, RichMetricNode, RichPresenterNode, RichPresetReferenceNode, RichPrimitiveNode, RichProgressNode, RichPropertySheetColumns, RichPropertySheetItem, RichPropertySheetNode, RichPropertySheetTone, RichRecordSummaryField, RichRecordSummaryNode, RichRelatedRecordNode, RichStatGroupLayout, RichStatGroupNode, RichStatItem, RichStatTone, RichTabsAppearance, RichTabsItem, RichTabsNode, RichTextAppearance, RichTextNode, RichTextVariant, RichTimelineColor, RichTimelineConnectorVariant, RichTimelineItem, RichTimelineMarkerStyle, RichTimelineMarkerVariant, RichTimelineNode, RichTimelineOrder, RichTimelineOrientation, RichTimelinePosition, RowAction, RowActionsConfig, RuleContextRoot, RulePropertyDefinition, RulePropertySchema, RulePropertyType, RunHooksResult, RuntimeLinkSnapshot, RuntimeLinkStatus, RuntimePayloadSummary, RuntimeSnapshot, RuntimeSnapshotStatus, RuntimeStateSnapshot, RuntimeTraceEntry, RuntimeTracePhase, SchemaIdParams, SchemaMetaInfo, SchemaViewerContext, SelectionConfig, SerializableFieldMetadata, SettingsPanelBridge, SettingsPanelOpenContent, SettingsPanelOpenOptions, SettingsPanelRef, SettingsValueProvider, SortingConfig, SpacingConfig, StateEndpointRef, StateMessagesConfig, SubmitPolicy, SurfaceBinding, SurfaceBindingMode, SurfaceDrawerBridge, SurfaceDrawerOpenContent, SurfaceDrawerOpenOptions, SurfaceDrawerRef, SurfaceDrawerResult, SurfaceDrawerWidthPreset, SurfaceOpenPayload, SurfaceOpenPreset, SurfacePresentation, SurfaceSizeConfig, SyncConfig, SyncResult, TableActionsConfig, TableAppearanceConfig, TableBehaviorConfig, TableConfig, TableConfigV2 as TableConfigModern, TableConfigState, TableConfigV2, TableDetailActionBarAction, TableDetailActionBarNode, TableDetailActionNode, TableDetailAllowedNode, TableDetailBaseNode, TableDetailCardGridCardNode, TableDetailCardGridNode, TableDetailCardNode, TableDetailDiagramEmbedNode, TableDetailEmbedAction, TableDetailEmbedBaseNode, TableDetailInlineSchemaDocument, TableDetailLayoutNode, TableDetailListItemAction, TableDetailListItemContextConfig, TableDetailListItemSchema, TableDetailListNode, TableDetailMediaBlockNode, TableDetailRefNode, TableDetailRichListNode, TableDetailRichTextNode, TableDetailSchemaNode, TableDetailTabNode, TableDetailTabsNode, TableDetailTemplateRefNode, TableDetailTimelineItemSchema, TableDetailTimelineNode, TableDetailTimelineStaticItem, TableDetailValueNode, TableExpansionConfig, TableLocalDataModeConfig, TelemetryEvent, TelemetryLoggerSinkOptions, TelemetryTransport, TextTransformApply, TextTransformName, ThemeConfig, ToolbarAction, ToolbarConfig, ToolbarFilterConfig, ToolbarLayoutConfig, ToolbarSettingsConfig, TransformBinding, TransformBindingSource, TransformCatalogCategory, TransformCatalogEntry, TransformKind, TransformLegacyReplacement, TransformOutputHint, TransformPhase, TransformPipeline, TransformSemanticKind, TransformStep, TypographyConfig, UserContextSource, UserContextSummaryAppearance, UserContextSummaryField, ValidationContext, ValidationError, ValidationMessagesConfig, ValidationResult, ValidationRule, ValidatorFunction, ValidatorOptions, ValueKind$1 as ValueKind, ValuePresentationConfig, ValuePresentationResolutionContext, ValuePresentationStyle, ValuePresentationType, VirtualizationConfig, WidgetDefinition, WidgetDerivedStateNode, WidgetEventEnvelope, WidgetEventPathNormalizeInput, WidgetEventPathNormalizeOptions, WidgetEventPathSegment, WidgetInstance, WidgetPageCanvasCollisionPolicy, WidgetPageCanvasConstraints, WidgetPageCanvasItem, WidgetPageCanvasItemOverride, WidgetPageCanvasLayout, WidgetPageCanvasLayoutVariant, WidgetPageCompositionDefinition, WidgetPageDefinition, WidgetPageDeviceKind, WidgetPageDeviceLayouts, WidgetPageDevicePolicy, WidgetPageGroupingDefinition, WidgetPageGroupingOverride, WidgetPageGroupingTabDefinition, WidgetPageLayout, WidgetPageLayoutPresetDefinition, WidgetPageLayoutVariant, WidgetPageOrientation, WidgetPageSlotAssignments, WidgetPageSlotDefinition, WidgetPageStateDefinition, WidgetPageStateInput, WidgetPageStateRuntimeSnapshot, WidgetPageThemePresetDefinition, WidgetPageWidgetLayoutOverride, WidgetPageWidgetSuggestion, WidgetResolutionDiagnostic, WidgetResolutionPhase, WidgetShellAction, WidgetShellActionEvent, WidgetShellActionPlacement, WidgetShellBodyLayout, WidgetShellConfig, WidgetShellWindowActions, WidgetStateNode };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/core",
3
- "version": "8.0.0-beta.26",
3
+ "version": "8.0.0-beta.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": "^20.0.0",