@praxisui/core 9.0.0-rc.4 → 9.0.0-rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-07-26T03:19:30.955Z",
3
+ "generatedAt": "2026-07-26T09:50:32.318Z",
4
4
  "packageName": "@praxisui/core",
5
- "packageVersion": "9.0.0-rc.4",
5
+ "packageVersion": "9.0.0-rc.6",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 4,
@@ -29304,7 +29304,7 @@ class DynamicWidgetLoaderDirective {
29304
29304
  }
29305
29305
  bindInputs(compRef, id, inputs, bindingOrder, meta) {
29306
29306
  const prioritized = this.orderedInputEntries(id, inputs, bindingOrder);
29307
- const changes = {};
29307
+ const manualChanges = {};
29308
29308
  let changed = false;
29309
29309
  const apply = (key, raw) => {
29310
29310
  const value = this.resolveAndCoerceValue(key, raw, meta);
@@ -29315,39 +29315,34 @@ class DynamicWidgetLoaderDirective {
29315
29315
  && this.areInputValuesEquivalent(previousValue, value)) {
29316
29316
  return;
29317
29317
  }
29318
- if (this.isSignalInput(compRef.instance, key)) {
29318
+ if (this.hasDeclaredInput(compRef, key)) {
29319
29319
  compRef.setInput(key, value);
29320
29320
  }
29321
29321
  else {
29322
29322
  compRef.instance[key] = value;
29323
+ manualChanges[key] = new SimpleChange(previousValue, value, !hadPreviousValue);
29323
29324
  }
29324
29325
  this.boundInputValues[key] = value;
29325
- changes[key] = new SimpleChange(previousValue, value, !hadPreviousValue);
29326
29326
  changed = true;
29327
29327
  }
29328
29328
  catch (e) {
29329
29329
  console.warn(`[DynamicWidgetLoader] Failed to set input ${key}`, e);
29330
29330
  }
29331
29331
  };
29332
- // Apply every input before the final detectChanges so ngOnChanges never observes
29333
- // a partial bindingOrder state, especially during existing component updates.
29332
+ // Apply every input before the final detectChanges. ComponentRef.setInput marks
29333
+ // OnPush views for checking and lets Angular deliver one coherent ngOnChanges cycle.
29334
29334
  for (const [key, raw] of prioritized) {
29335
29335
  apply(key, raw);
29336
29336
  }
29337
- if (changed && typeof compRef.instance?.ngOnChanges === 'function') {
29338
- compRef.instance.ngOnChanges(changes);
29337
+ if (Object.keys(manualChanges).length
29338
+ && typeof compRef.instance?.ngOnChanges === 'function') {
29339
+ compRef.instance.ngOnChanges(manualChanges);
29339
29340
  }
29340
29341
  return changed;
29341
29342
  }
29342
- isSignalInput(instance, key) {
29343
- try {
29344
- const candidate = instance?.[key];
29345
- return typeof candidate === 'function'
29346
- && candidate.length === 0;
29347
- }
29348
- catch {
29349
- return false;
29350
- }
29343
+ hasDeclaredInput(compRef, key) {
29344
+ const inputs = compRef.componentType?.ɵcmp?.inputs;
29345
+ return !!inputs && Object.prototype.hasOwnProperty.call(inputs, key);
29351
29346
  }
29352
29347
  initialBindingSignature(id, inputs, bindingOrder, meta) {
29353
29348
  const resolvedEntries = this.orderedInputEntries(id, inputs, bindingOrder)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@praxisui/core",
3
- "version": "9.0.0-rc.4",
3
+ "version": "9.0.0-rc.6",
4
4
  "description": "Core library for Praxis UI Workspace: types, tokens, services and utilities shared across @praxisui/* packages.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
@@ -14719,7 +14719,7 @@ declare class DynamicWidgetLoaderDirective implements OnInit, OnChanges, OnDestr
14719
14719
  private cloneValue;
14720
14720
  private shouldUseInitialInputBindings;
14721
14721
  private bindInputs;
14722
- private isSignalInput;
14722
+ private hasDeclaredInput;
14723
14723
  private initialBindingSignature;
14724
14724
  private orderedInputEntries;
14725
14725
  private resolveAndCoerceValue;