@symbiote-native/angular 3.0.1 → 3.1.0

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.
Files changed (61) hide show
  1. package/build/angular/callback-host.d.ts +2 -5
  2. package/build/angular/callback-host.js +11 -36
  3. package/build/angular/callback-host.js.map +1 -1
  4. package/build/angular/change-detection-flush.d.ts +1 -0
  5. package/build/angular/change-detection-flush.js +58 -14
  6. package/build/angular/change-detection-flush.js.map +1 -1
  7. package/build/angular/components/flat-list/index.d.ts +4 -2
  8. package/build/angular/components/flat-list/index.js +28 -78
  9. package/build/angular/components/flat-list/index.js.map +1 -1
  10. package/build/angular/components/image-shared.d.ts +8 -2
  11. package/build/angular/components/modal/index.d.ts +1 -0
  12. package/build/angular/components/modal/index.js +23 -16
  13. package/build/angular/components/modal/index.js.map +1 -1
  14. package/build/angular/components/section-list/index.d.ts +3 -1
  15. package/build/angular/components/section-list/index.js +10 -2
  16. package/build/angular/components/section-list/index.js.map +1 -1
  17. package/build/angular/components/virtualized-list/directives.js +7 -4
  18. package/build/angular/components/virtualized-list/directives.js.map +1 -1
  19. package/build/angular/components/virtualized-list/index.d.ts +10 -2
  20. package/build/angular/components/virtualized-list/index.js +45 -25
  21. package/build/angular/components/virtualized-list/index.js.map +1 -1
  22. package/build/angular/components/virtualized-section-list/index.d.ts +5 -1
  23. package/build/angular/components/virtualized-section-list/index.js +10 -2
  24. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  25. package/build/angular/descriptor-to-angular/index.js +6 -3
  26. package/build/angular/descriptor-to-angular/index.js.map +1 -1
  27. package/build/angular/element-props.d.ts +16 -5
  28. package/build/angular/elements.d.ts +5 -21
  29. package/build/angular/elements.js +18 -26
  30. package/build/angular/elements.js.map +1 -1
  31. package/build/angular/index.d.ts +0 -1
  32. package/build/angular/index.js +5 -7
  33. package/build/angular/index.js.map +1 -1
  34. package/build/angular/primitives/shared.js +5 -1
  35. package/build/angular/primitives/shared.js.map +1 -1
  36. package/build/angular/renderer/index.d.ts +11 -0
  37. package/build/angular/renderer/index.js +97 -12
  38. package/build/angular/renderer/index.js.map +1 -1
  39. package/build/angular/runtime-matching.d.ts +0 -1
  40. package/build/angular/runtime-matching.js +6 -29
  41. package/build/angular/runtime-matching.js.map +1 -1
  42. package/package.json +6 -6
  43. package/src/callback-host.ts +10 -43
  44. package/src/change-detection-flush.ts +67 -14
  45. package/src/components/flat-list/index.ts +22 -54
  46. package/src/components/modal/index.ts +22 -16
  47. package/src/components/section-list/index.ts +4 -0
  48. package/src/components/virtualized-list/directives.ts +10 -8
  49. package/src/components/virtualized-list/index.ts +38 -13
  50. package/src/components/virtualized-section-list/index.ts +6 -0
  51. package/src/descriptor-to-angular/index.ts +6 -3
  52. package/src/element-props.ts +22 -13
  53. package/src/elements.ts +21 -56
  54. package/src/index.ts +5 -7
  55. package/src/primitives/shared.ts +5 -1
  56. package/src/renderer/index.ts +107 -11
  57. package/src/runtime-matching.ts +6 -30
  58. package/build/angular/style-host.d.ts +0 -11
  59. package/build/angular/style-host.js +0 -86
  60. package/build/angular/style-host.js.map +0 -1
  61. package/src/style-host.ts +0 -94
@@ -32,7 +32,18 @@ function isRecord(value) {
32
32
  // same fold as the function prop `onValueChange`. See `listen()`. The two names live in a leaf
33
33
  // module so `elements.ts`'s ControlValueAccessor can name them without importing this cyclic file.
34
34
  import { VALUE_CHANGE_EVENT, VALUE_CHANGE_PROP } from './value-change';
35
- import { createCallbackWrapper, flushViewFor, isWrappableCallback, } from '../change-detection-flush';
35
+ import { createCallbackWrapper, flushViewFor, isWrappableCallback, markReadBackNode, } from '../change-detection-flush';
36
+ // The tags whose behavior reads the app's answer back inside the event's own turn - the three
37
+ // behaviors `../change-detection-flush` names, plus the multiline spelling of the input. Marked at
38
+ // creation so a flush finds their view lazily instead of a directive instance per element.
39
+ const READ_BACK_TAGS = new Set([
40
+ 'text-input',
41
+ 'text-input-multiline',
42
+ 'switch',
43
+ 'refresh-control',
44
+ ]);
45
+ // The property binding an RN StyleProp travels as; see `SymbioteElement.style`.
46
+ const STYLE_PROP_BINDING = 'styleProp';
36
47
  // The app callbacks an engine behavior READS BACK inside the same microtask turn, as an Angular
37
48
  // `(event)` binding — `valueChange` is handled in `listen` on its own, since it also needs the field
38
49
  // unwrapped. Zoneless change detection is a macrotask, so without a flush the behavior reads the
@@ -164,6 +175,8 @@ export class SymbioteRenderer {
164
175
  // render.ts (unmount), so per-node cleanup is a no-op.
165
176
  this.destroyNode = null;
166
177
  this.pendingStyle = {};
178
+ this.matchCandidateSize = 0;
179
+ this.matchedKeys = [];
167
180
  /**
168
181
  * Style objects this renderer has already published, so a list of identical rows sends ONE.
169
182
  *
@@ -183,6 +196,11 @@ export class SymbioteRenderer {
183
196
  * this simply stops sharing — it never stops being correct.
184
197
  */
185
198
  this.publishedStyles = [];
199
+ // Key count of each entry above, index for index: how a key-by-key match knows it is complete.
200
+ this.publishedSizes = [];
201
+ // The FIRST key picks the candidate: a row alternates styles (row, cell, cell, input), so the
202
+ // front entry is usually the neighbour's.
203
+ this.isChoosingCandidate = false;
186
204
  // Ivy compiles every class= / [class.foo] / [ngClass] form down to per-token addClass/
187
205
  // removeClass calls (never a single setAttribute('class', ...) call), so a per-node token set
188
206
  // is accumulated here and re-joined into one string on every change, then handed to
@@ -239,10 +257,19 @@ export class SymbioteRenderer {
239
257
  flushStyling() {
240
258
  const styled = this.pendingStyleNode;
241
259
  if (styled !== undefined) {
242
- const style = this.pendingStyle;
243
260
  this.pendingStyleNode = undefined;
244
- this.pendingStyle = {};
245
- routeProp(styled, 'style', this.canonicalStyle(style));
261
+ const candidate = this.matchCandidate;
262
+ if (candidate !== undefined &&
263
+ this.matchedKeys.length === this.matchCandidateSize) {
264
+ this.matchCandidate = undefined;
265
+ routeProp(styled, 'style', candidate);
266
+ }
267
+ else {
268
+ this.materializeMatch();
269
+ const style = this.pendingStyle;
270
+ this.pendingStyle = {};
271
+ routeProp(styled, 'style', this.canonicalStyle(style));
272
+ }
246
273
  }
247
274
  const classed = this.pendingClassNode;
248
275
  if (classed !== undefined) {
@@ -285,26 +312,78 @@ export class SymbioteRenderer {
285
312
  if (at > 0) {
286
313
  this.publishedStyles.splice(at, 1);
287
314
  this.publishedStyles.unshift(known);
315
+ this.publishedSizes.unshift(this.publishedSizes.splice(at, 1)[0]);
288
316
  }
289
317
  return known;
290
318
  }
291
319
  this.publishedStyles.unshift(style);
292
- if (this.publishedStyles.length > STYLE_CACHE)
320
+ this.publishedSizes.unshift(Object.keys(style).length);
321
+ if (this.publishedStyles.length > STYLE_CACHE) {
293
322
  this.publishedStyles.pop();
323
+ this.publishedSizes.pop();
324
+ }
294
325
  return style;
295
326
  }
296
- /** The accumulator for this node's style run, opening one (and closing any other) if needed. */
297
- openStyleRun(el) {
327
+ /** Open this node's style run (closing any other); a no-op when it is already the open one. */
328
+ openRun(el) {
298
329
  if (this.pendingStyleNode === el)
299
- return this.pendingStyle;
330
+ return;
300
331
  this.flushStyling();
332
+ this.pendingStyleNode = el;
301
333
  // Seeded from what is STANDING, because Angular sends only the keys that changed — an update
302
334
  // that moves one key must not drop the rest.
303
335
  const current = getExplicitStyle(el);
304
- this.pendingStyle = isRecord(current) ? { ...current } : {};
305
- this.pendingStyleNode = el;
336
+ if (isRecord(current)) {
337
+ this.pendingStyle = { ...current };
338
+ return;
339
+ }
340
+ this.isChoosingCandidate = true;
341
+ this.matchedKeys.length = 0;
342
+ }
343
+ chooseCandidate(key, value) {
344
+ this.isChoosingCandidate = false;
345
+ if (value === undefined)
346
+ return;
347
+ for (let at = 0; at < this.publishedStyles.length; at += 1) {
348
+ const known = this.publishedStyles[at];
349
+ if (!Object.is(known[key], value))
350
+ continue;
351
+ this.matchCandidate = known;
352
+ this.matchCandidateSize = this.publishedSizes[at] ?? 0;
353
+ return;
354
+ }
355
+ }
356
+ /** Stop matching: write the keys matched so far into the accumulator the run goes on with. */
357
+ materializeMatch() {
358
+ this.isChoosingCandidate = false;
359
+ const candidate = this.matchCandidate;
360
+ if (candidate === undefined)
361
+ return;
362
+ this.matchCandidate = undefined;
363
+ for (const key of this.matchedKeys)
364
+ this.pendingStyle[key] = candidate[key];
365
+ }
366
+ /** The accumulator for this node's style run, opening one (and closing any other) if needed. */
367
+ openStyleRun(el) {
368
+ this.openRun(el);
369
+ this.materializeMatch();
306
370
  return this.pendingStyle;
307
371
  }
372
+ writeStyle(el, key, value) {
373
+ this.openRun(el);
374
+ if (this.isChoosingCandidate)
375
+ this.chooseCandidate(key, value);
376
+ const candidate = this.matchCandidate;
377
+ if (candidate !== undefined &&
378
+ value !== undefined &&
379
+ Object.is(candidate[key], value) &&
380
+ !this.matchedKeys.includes(key)) {
381
+ this.matchedKeys.push(key);
382
+ return;
383
+ }
384
+ this.materializeMatch();
385
+ this.pendingStyle[key] = value;
386
+ }
308
387
  createElement(name) {
309
388
  // `name` is the component's host tag — a symbiote intrinsic (`view`,
310
389
  // `text`, …), a public ergonomic alias (`View`, `Text`), or a raw Fabric view
@@ -344,6 +423,8 @@ export class SymbioteRenderer {
344
423
  if (isDebug()) {
345
424
  dlog(`angular createElement ${name} -> ${descriptor.component}`);
346
425
  }
426
+ if (READ_BACK_TAGS.has(engineName))
427
+ markReadBackNode(node);
347
428
  return toPublicInstance(node);
348
429
  }
349
430
  createComment() {
@@ -526,7 +607,7 @@ export class SymbioteRenderer {
526
607
  return;
527
608
  countAngular('rendererWrites');
528
609
  noteAngularStyleWrite(style);
529
- this.openStyleRun(el)[style] = value;
610
+ this.writeStyle(el, style, value);
530
611
  this.surface.requestCommit();
531
612
  }
532
613
  removeStyle(el, style) {
@@ -582,7 +663,11 @@ export class SymbioteRenderer {
582
663
  }
583
664
  }
584
665
  this.flushStyling();
585
- routeProp(el, name, this.wrapCallback(el, name, value));
666
+ // `[styleProp]` IS `style`, carried as a plain property so an RN array or press-state callback
667
+ // reaches the engine whole instead of Angular's styling engine. Binding it beside `[style]` on one
668
+ // element makes the later write win - they are one prop.
669
+ const propName = name === STYLE_PROP_BINDING ? 'style' : name;
670
+ routeProp(el, propName, this.wrapCallback(el, propName, value));
586
671
  this.surface.requestCommit();
587
672
  }
588
673
  // AN `on*` PROP IS CALLED BY THE ENGINE, so Angular is told nothing and a plain field mutation
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/renderer/index.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,3 @@
6
6
  * that never compiled it, which fails far louder elsewhere.
7
7
  */
8
8
  export declare function withholdFromRuntimeMatching(types: readonly unknown[]): void;
9
- export declare function tagsWithheldFromRuntimeMatching(): ReadonlySet<string>;
@@ -27,15 +27,13 @@
27
27
  // something marks the view. That moved to `SymbioteRenderer.setProperty`, which
28
28
  // every path reaches whether a directive claimed the binding or not.
29
29
  // the style shadow `[style]` and `[class]` are no longer claimed by an input, so `ɵɵstyleMap` and
30
- // `ɵɵclassMap` resolve them per KEY again ~7 000 renderer calls on the bench
31
- // row where the shadow made 4 000. That is a REGRESSION and it is accepted: the
32
- // bare bench arm already pays it and is still ~86 ms ahead of the matched one.
30
+ // `ɵɵclassMap` resolve them per KEY, as on a DOM element. An RN array or
31
+ // press-state callback travels as `[styleProp]` instead (`SymbioteElement.style`).
32
+ // the view flush the read-back tags' synchronous re-check finds the node's view lazily
33
+ // (`change-detection-flush.ts`) instead of injecting a `ChangeDetectorRef`.
33
34
  //
34
- // WHICH IS WHY THE LIST IS NOT "ALL OF THEM". A directive with real runtime behaviour must go on
35
- // matching, and here that is the `ValueChangeElement` chain (`text-input`, `switch` they listen for
36
- // the engine's value event and register a view flush) and `refresh-control`. `SymbioteCallbackHost`
37
- // and the two form accessors match on ATTRIBUTES rather than on a tag, so they land only where they
38
- // are needed and are never withheld.
35
+ // Every tag directive is withheld. `SymbioteCallbackHost` and the two form accessors match on
36
+ // ATTRIBUTES rather than on a tag, so they land only where they are needed and are never withheld.
39
37
  /**
40
38
  * Take these directives out of Angular's runtime matcher, leaving ngtsc's view of them untouched.
41
39
  *
@@ -53,30 +51,9 @@ export function withholdFromRuntimeMatching(types) {
53
51
  const selectors = Reflect.get(definition, 'selectors');
54
52
  if (!Array.isArray(selectors))
55
53
  continue;
56
- // Ivy holds a `CssSelectorList` — one array per alternative, whose first entry is the tag name
57
- // when the alternative names one. Recorded before the emptying, because afterwards there is
58
- // nothing to read and the guard below would have no subject.
59
- for (const alternative of selectors)
60
- if (Array.isArray(alternative)) {
61
- const tag = alternative[0];
62
- if (typeof tag === 'string' && tag.length > 0)
63
- withheldTags.add(tag);
64
- }
65
54
  // Emptied in place rather than replaced: the def holds this array, and reading `ɵdir` under JIT
66
55
  // is what compiles the directive, so the object in hand is the one the matcher will walk.
67
56
  selectors.length = 0;
68
57
  }
69
58
  }
70
- /**
71
- * Every TAG that lost its directive, for the guard that keeps `SymbioteStyleHost` covering them.
72
- *
73
- * A withheld tag whose style is claimed by nothing sends an RN style ARRAY into Angular's styling
74
- * engine, which throws inside change detection — a device failure with no compile-time tell. So the
75
- * set is recorded here at the moment it is emptied rather than maintained as a second list, and
76
- * `style-host-covers-withheld-tags.test.ts` reads it.
77
- */
78
- const withheldTags = new Set();
79
- export function tagsWithheldFromRuntimeMatching() {
80
- return withheldTags;
81
- }
82
59
  //# sourceMappingURL=runtime-matching.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-matching.js","sourceRoot":"","sources":["../../src/runtime-matching.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,2FAA2F;AAC3F,kGAAkG;AAClG,oGAAoG;AACpG,uFAAuF;AACvF,sGAAsG;AACtG,2DAA2D;AAC3D,EAAE;AACF,oFAAoF;AACpF,qGAAqG;AACrG,gGAAgG;AAChG,EAAE;AACF,uGAAuG;AACvG,sGAAsG;AACtG,+FAA+F;AAC/F,sGAAsG;AACtG,sGAAsG;AACtG,8DAA8D;AAC9D,EAAE;AACF,+FAA+F;AAC/F,EAAE;AACF,gGAAgG;AAChG,oGAAoG;AACpG,6FAA6F;AAC7F,8FAA8F;AAC9F,oGAAoG;AACpG,yFAAyF;AACzF,qGAAqG;AACrG,mGAAmG;AACnG,oGAAoG;AACpG,mGAAmG;AACnG,EAAE;AACF,iGAAiG;AACjG,sGAAsG;AACtG,oGAAoG;AACpG,oGAAoG;AACpG,qCAAqC;AAErC;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAyB;IACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,UAAU;YAAE,SAAS;QACzC,MAAM,UAAU,GAAY,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QACpE,MAAM,SAAS,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,SAAS;QACxC,+FAA+F;QAC/F,4FAA4F;QAC5F,6DAA6D;QAC7D,KAAK,MAAM,WAAW,IAAI,SAAS;YACjC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAY,WAAW,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;oBAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvE,CAAC;QACH,gGAAgG;QAChG,0FAA0F;QAC1F,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;AAEvC,MAAM,UAAU,+BAA+B;IAC7C,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"runtime-matching.js","sourceRoot":"","sources":["../../src/runtime-matching.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,2FAA2F;AAC3F,kGAAkG;AAClG,oGAAoG;AACpG,uFAAuF;AACvF,sGAAsG;AACtG,2DAA2D;AAC3D,EAAE;AACF,oFAAoF;AACpF,qGAAqG;AACrG,gGAAgG;AAChG,EAAE;AACF,uGAAuG;AACvG,sGAAsG;AACtG,+FAA+F;AAC/F,sGAAsG;AACtG,sGAAsG;AACtG,8DAA8D;AAC9D,EAAE;AACF,+FAA+F;AAC/F,EAAE;AACF,gGAAgG;AAChG,oGAAoG;AACpG,6FAA6F;AAC7F,8FAA8F;AAC9F,oGAAoG;AACpG,yFAAyF;AACzF,qGAAqG;AACrG,6FAA6F;AAC7F,uGAAuG;AACvG,4FAA4F;AAC5F,gGAAgG;AAChG,EAAE;AACF,8FAA8F;AAC9F,mGAAmG;AAEnG;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAyB;IACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,KAAK,UAAU;YAAE,SAAS;QACzC,MAAM,UAAU,GAAY,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS;QACpE,MAAM,SAAS,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,SAAS;QACxC,gGAAgG;QAChG,0FAA0F;QAC1F,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symbiote-native/angular",
3
- "version": "3.0.1",
3
+ "version": "3.1.0",
4
4
  "description": "SymbioteNative's Angular adapter — a Renderer2/RendererFactory2 with DOM-less bootstrap driving real native iOS/Android views through the same engine as the other adapters.",
5
5
  "keywords": [
6
6
  "react-native",
@@ -66,14 +66,14 @@
66
66
  "dependencies": {
67
67
  "@angular/compiler-cli": "~22.0.8",
68
68
  "@react-native/typescript-config": "0.86.0",
69
- "@symbiote-native/css-parser": "0.5.0",
70
- "@symbiote-native/components": "3.0.0"
69
+ "@symbiote-native/components": "3.1.0",
70
+ "@symbiote-native/css-parser": "0.5.0"
71
71
  },
72
72
  "peerDependencies": {
73
73
  "@angular/core": ">=20",
74
74
  "@angular/forms": ">=20",
75
75
  "react-native": ">=0.86",
76
- "@symbiote-native/engine": "^1.1.0"
76
+ "@symbiote-native/engine": "^1.2.0"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@angular/compiler": "~22.0.8",
@@ -83,8 +83,8 @@
83
83
  "@types/babel__core": "^7.20.5",
84
84
  "@types/node": "^26.0.0",
85
85
  "typescript": "~6.0.0",
86
- "@symbiote-native/engine": "1.1.0",
87
- "@symbiote-native/test-utils": "0.4.0"
86
+ "@symbiote-native/test-utils": "0.4.1",
87
+ "@symbiote-native/engine": "1.2.0"
88
88
  },
89
89
  "scripts": {
90
90
  "clean": "rm -rf build",
@@ -1,29 +1,14 @@
1
- // The directive that owns a `ChangeDetectorRef` for the elements that actually need one.
1
+ // The directive that CLAIMS an `on*` prop binding on a tag, and nothing more.
2
2
  //
3
- // An `on*` PROP is forwarded to the engine node, and the ENGINE calls it — Angular is told nothing,
4
- // so a plain field mutation inside the app's handler dirties no view. `createCallbackWrapper` fixes
5
- // that with `markForCheck`, and until 2026-09-18 the ref it marked came from `SymbioteElement`
6
- // injecting one on EVERY element, because any element MAY carry a callback.
3
+ // Unclaimed, `[onPress]="fn"` on an element is NG0306 in dev mode (`setDomProperty` refuses `on*`
4
+ // DOM properties, `render3/instructions/shared.ts:296-298`), so something has to own the name. The
5
+ // renderer wraps the value on its way through and marks the view with `markForCheck` when the engine
6
+ // calls it. That view is found from the node when the callback FIRES (`change-detection-flush.ts`),
7
+ // so this directive injects no `ChangeDetectorRef`.
7
8
  //
8
- // Almost none does. Priced on JavaScriptCore, an injection is ~1.0-2.4 us per element 10-24 ms
9
- // over the ten thousand of a thousand-row screen, all of it to build `ViewRef`s nothing reads
10
- // (`core/engine/cpp/tests/js/angular-directive-cost.itest.ts`, the `ChangeDetectorRef` row).
11
- //
12
- // MATCHING IS THE CHEAPER QUESTION THAN INJECTING, and that had to be measured rather than assumed,
13
- // because the selector below is dozens of alternatives and Angular tries a component's whole
14
- // directive list against every element it creates. The ladder's `cb-probe` arm carries this exact
15
- // string WITHOUT matching anything — the state of every element on the benchmark row — so the two
16
- // halves are priced against each other in one process, rotated, with a resolution bar:
17
- //
18
- // carrying the selector 4.3 5.9 -2.0 5.7 -1.5 ms inside the bar in four of five
19
- // the ChangeDetectorRef 9.7 23.5 13.6 31.3 23.8 ms
20
- // the CALLBACK HOST -3.9 -9.3 -25.5 -25.6 -25.3 ms all five negative, three outside
21
- //
22
- // WHAT IS NOT VERIFIED, said plainly: the ladder's arm carries ONE element directive beside this one,
23
- // where a real screen carries two dozen, and the `ng-elements` bench arm could not confirm the change
24
- // at app scale — the machine it was measured on swung its untouched CONTROL from 229 to 566 ms, so
25
- // nothing quoted off it would have carried a verdict either way. The controlled A/B is the evidence
26
- // here; the bench-arm confirmation is owed.
9
+ // Carrying the selector is free: Angular tries it against every element it creates, and the
10
+ // ladder's `cb-probe` arm priced that inside the resolution bar in four runs of five
11
+ // (`core/engine/cpp/tests/js/angular-directive-cost.itest.ts`).
27
12
  //
28
13
  // IT HOLDS NO INPUTS, which is what keeps the change off the public surface. The `on*` props stay
29
14
  // declared on `SymbioteElement` and its subclasses, so every type and every forward is unchanged;
@@ -35,19 +20,13 @@
35
20
  // here would close a cycle, since that file is what puts this directive in `SYMBIOTE_ELEMENTS`.
36
21
 
37
22
  import {
38
- ChangeDetectorRef,
39
23
  Directive,
40
24
  ElementRef,
41
25
  Renderer2,
42
26
  type OnChanges,
43
- type OnDestroy,
44
27
  type SimpleChanges,
45
28
  inject,
46
29
  } from '@angular/core';
47
- import {
48
- registerViewMarker,
49
- unregisterViewMarker,
50
- } from './change-detection-flush';
51
30
 
52
31
  /**
53
32
  * Every `on*` input any element directive declares, except the one that fires per FRAME.
@@ -200,16 +179,9 @@ export const CALLBACK_INPUT_NAMES: readonly string[] = CALLBACK_INPUTS;
200
179
  ],
201
180
  standalone: true,
202
181
  })
203
- export class SymbioteCallbackHost implements OnChanges, OnDestroy {
182
+ export class SymbioteCallbackHost implements OnChanges {
204
183
  private readonly renderer = inject(Renderer2);
205
184
  private readonly host = inject(ElementRef);
206
- private readonly detector = inject(ChangeDetectorRef);
207
-
208
- constructor() {
209
- const node: unknown = this.host.nativeElement;
210
- if (typeof node === 'object' && node !== null)
211
- registerViewMarker(node, this.detector);
212
- }
213
185
 
214
186
  ngOnChanges(changes: SimpleChanges): void {
215
187
  // The renderer wraps the value on its way through, so this forwards it raw — same shape as the
@@ -221,9 +193,4 @@ export class SymbioteCallbackHost implements OnChanges, OnDestroy {
221
193
  changes[name]?.currentValue,
222
194
  );
223
195
  }
224
-
225
- ngOnDestroy(): void {
226
- const node: unknown = this.host.nativeElement;
227
- if (typeof node === 'object' && node !== null) unregisterViewMarker(node);
228
- }
229
196
  }
@@ -32,17 +32,62 @@
32
32
  // notification, so it cannot open that window at all. It is also the narrower answer — the only
33
33
  // view that has to be re-checked is the one holding the binding.
34
34
  //
35
- // The flush is registered by the element DIRECTIVE, which is the only thing here that owns a
36
- // `ChangeDetectorRef` for that view. A tag written under `CUSTOM_ELEMENTS_SCHEMA` with no directive
37
- // matched therefore gets no flush and keeps the stale-read behaviour the directive is the
38
- // supported route (`[(value)]` is NG8007 without it), and this leaf has no way to reach a view it
39
- // was never handed.
35
+ // THE VIEW IS FOUND FROM THE NODE, at the moment an event needs it, not injected per element. Ivy
36
+ // patches `__ngContext__` onto every view's root elements and every directive host, so the nearest
37
+ // patched ancestor names the LView that declares the element - the one holding its `[value]`. A
38
+ // `ViewRef` over that LView is what `inject(ChangeDetectorRef)` would have handed out, built only
39
+ // for the element that fired, which is what let the read-back tags drop their directive instance
40
+ // (`element-directive-free.test.ts`). Projected content resolves to the view it is PROJECTED into,
41
+ // Angular's own discovery limit; the listener's `markForCheck` still reaches the declaring view.
40
42
  //
41
43
  // When a fourth behavior starts reading an app value back, it needs a name in the renderer's
42
44
  // `READ_BACK_*` sets — the census is `queueMicrotask` / `afterCommit` in
43
45
  // `core/components/src/behaviors`.
46
+ import {
47
+ ɵViewRef as ViewRef,
48
+ ɵgetLContext as getLContext,
49
+ } from '@angular/core';
50
+ import {
51
+ isSymbioteNode,
52
+ parentOf,
53
+ reportUncaughtError,
54
+ } from '@symbiote-native/engine';
55
+
44
56
  const viewFlushes = new WeakMap<object, () => void>();
45
57
 
58
+ // Nodes whose view is found lazily when they flush. Anything else keeps the no-op an unregistered
59
+ // node always had - `flushViewFor` also runs after every wrapped `on*` prop, and a press must not
60
+ // start paying a synchronous re-check it never needed.
61
+ const readBackNodes = new WeakSet<object>();
62
+
63
+ export function markReadBackNode(node: object): void {
64
+ readBackNodes.add(node);
65
+ }
66
+
67
+ // Ivy's monkey-patch key (`render3/interfaces/context.ts`, `MONKEY_PATCH_KEY_NAME`).
68
+ const NG_CONTEXT = '__ngContext__';
69
+
70
+ /** The LView-backed ref for the view that declares `node`, or undefined outside any view. */
71
+ function viewRefOf(node: object): ViewRef<unknown> | undefined {
72
+ let patched: object | undefined = node;
73
+ while (patched !== undefined && !(NG_CONTEXT in patched))
74
+ patched = isSymbioteNode(patched) ? parentOf(patched) : undefined;
75
+ if (patched === undefined) return undefined;
76
+ const lView = getLContext(patched)?.lView;
77
+ return lView === undefined || lView === null ? undefined : new ViewRef(lView);
78
+ }
79
+
80
+ // REPORTED, NOT RETHROWN: this is the one change detection outside `ApplicationRef.tick()`'s error
81
+ // boundary, called from inside a native event dispatch where a throw becomes `RCTFatal`. Same
82
+ // channel `SymbioteErrorHandler` reports through.
83
+ function detectChangesReported(view: ViewRef<unknown>): void {
84
+ try {
85
+ view.detectChanges();
86
+ } catch (error: unknown) {
87
+ reportUncaughtError(error, { origin: 'angular flush' });
88
+ }
89
+ }
90
+
46
91
  const ON_PREFIX = /^on[A-Z]/;
47
92
 
48
93
  // The one `onX` that fires per FRAME rather than per gesture — with sticky headers RN pins
@@ -135,14 +180,12 @@ export function createCallbackWrapper(node: unknown): ICallbackWrapper {
135
180
  * element on JavaScriptCore (`core/engine/cpp/tests/js/angular-directive-cost.itest.ts`), so a
136
181
  * thousand-row screen paid for ten thousand `ViewRef`s to serve none.
137
182
  *
138
- * `SymbioteCallbackHost` registers here instead, and it MATCHES on the callback attributes rather
139
- * than being injected so an element with no `on*` binding neither instantiates it nor pays for it.
140
- * Measured as the whole trade, selector included: -3.9 / -9.3 / -25.5 ms over ten thousand elements.
183
+ * Only a composed component's host directive registers here (`primitives/shared.ts`); a TAG's
184
+ * view is found from the node when its callback fires (`markViewFor`), so no element pays an
185
+ * injection for a callback it may never carry.
141
186
  *
142
- * Separate from `viewFlushes` deliberately. They come from different directives, on overlapping but
143
- * different sets of tags, and they are not the same instruction: this one SCHEDULES and reaches every
144
- * ancestor, that one re-checks ONE view synchronously. Collapsing them into a single entry would make
145
- * whichever directive registered last decide which of the two an element gets.
187
+ * Separate from `viewFlushes` deliberately: this one SCHEDULES and reaches every ancestor, that one
188
+ * re-checks ONE view synchronously.
146
189
  */
147
190
  const viewMarkers = new WeakMap<object, IViewMarker>();
148
191
 
@@ -156,7 +199,10 @@ export function unregisterViewMarker(node: object): void {
156
199
 
157
200
  export function markViewFor(node: unknown): void {
158
201
  if (typeof node !== 'object' || node === null) return;
159
- viewMarkers.get(node)?.markForCheck();
202
+ // A composed component's host directive registers its own ref; a TAG registers nothing and has its
203
+ // view found here, only when a callback actually fires (see the header).
204
+ const marker = viewMarkers.get(node) ?? viewRefOf(node);
205
+ marker?.markForCheck();
160
206
  }
161
207
 
162
208
  export function registerViewFlush(node: object, flush: () => void): void {
@@ -169,5 +215,12 @@ export function unregisterViewFlush(node: object): void {
169
215
 
170
216
  export function flushViewFor(node: unknown): void {
171
217
  if (typeof node !== 'object' || node === null) return;
172
- viewFlushes.get(node)?.();
218
+ const registered = viewFlushes.get(node);
219
+ if (registered !== undefined) {
220
+ registered();
221
+ return;
222
+ }
223
+ if (!readBackNodes.has(node)) return;
224
+ const view = viewRefOf(node);
225
+ if (view !== undefined) detectChangesReported(view);
173
226
  }