@praxisui/core 8.0.0-beta.7 → 8.0.0-beta.8

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.
@@ -5088,15 +5088,18 @@ class SurfaceBindingRuntimeService {
5088
5088
  .split('.')
5089
5089
  .reduce((acc, key) => acc?.[key], obj);
5090
5090
  }
5091
- resolveTemplate(node, context) {
5091
+ resolveTemplate(node, context, key) {
5092
5092
  if (node == null)
5093
5093
  return node;
5094
+ if (this.isDeferredTemplateExpressionKey(key) && typeof node === 'string') {
5095
+ return node;
5096
+ }
5094
5097
  if (Array.isArray(node))
5095
- return node.map((value) => this.resolveTemplate(value, context));
5098
+ return node.map((value) => this.resolveTemplate(value, context, key));
5096
5099
  if (typeof node === 'object') {
5097
5100
  const out = {};
5098
5101
  for (const [key, value] of Object.entries(node)) {
5099
- out[key] = this.resolveTemplate(value, context);
5102
+ out[key] = this.resolveTemplate(value, context, key);
5100
5103
  }
5101
5104
  return out;
5102
5105
  }
@@ -5112,6 +5115,11 @@ class SurfaceBindingRuntimeService {
5112
5115
  }
5113
5116
  return node;
5114
5117
  }
5118
+ isDeferredTemplateExpressionKey(key) {
5119
+ if (!key)
5120
+ return false;
5121
+ return key === 'expr' || key.endsWith('Expr');
5122
+ }
5115
5123
  setValueAtPath(obj, rawPath, value) {
5116
5124
  const path = this.tokenizePath(rawPath);
5117
5125
  if (!path.length)
package/index.d.ts CHANGED
@@ -4398,7 +4398,8 @@ interface SurfaceOpenPayload {
4398
4398
  declare class SurfaceBindingRuntimeService {
4399
4399
  resolveWidget(widget: WidgetDefinition, bindings: SurfaceBinding[] | undefined, actionPayload?: any, actionContext?: GlobalActionContext, explicitContext?: Record<string, any>): WidgetDefinition;
4400
4400
  extractByPath(obj: any, path?: string): any;
4401
- resolveTemplate(node: any, context: any): any;
4401
+ resolveTemplate(node: any, context: any, key?: string): any;
4402
+ private isDeferredTemplateExpressionKey;
4402
4403
  setValueAtPath<T extends object>(obj: T, rawPath: string, value: any): T;
4403
4404
  private buildContext;
4404
4405
  private resolveBindingValue;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/core",
3
- "version": "8.0.0-beta.7",
3
+ "version": "8.0.0-beta.8",
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",