@symbiote-native/angular 0.8.0 → 2.0.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 (256) hide show
  1. package/README.md +13 -10
  2. package/babel-register-composed.cjs +58 -18
  3. package/bin/symbiote-angular-dev.cjs +16 -4
  4. package/build/angular/anchor-host-registry.js +1 -15
  5. package/build/angular/anchor-host-registry.js.map +1 -1
  6. package/build/angular/change-detection-flush.d.ts +31 -0
  7. package/build/angular/change-detection-flush.js +110 -0
  8. package/build/angular/change-detection-flush.js.map +1 -0
  9. package/build/angular/components/activity-indicator-props.d.ts +2 -0
  10. package/build/angular/components/activity-indicator-props.js +2 -0
  11. package/build/angular/components/activity-indicator-props.js.map +1 -0
  12. package/build/angular/components/button-props.d.ts +2 -0
  13. package/build/angular/components/button-props.js +2 -0
  14. package/build/angular/components/button-props.js.map +1 -0
  15. package/build/angular/components/flat-list/index.d.ts +2 -1
  16. package/build/angular/components/flat-list/index.js +22 -10
  17. package/build/angular/components/flat-list/index.js.map +1 -1
  18. package/build/angular/components/image-background-props.d.ts +6 -0
  19. package/build/angular/components/image-background-props.js +2 -0
  20. package/build/angular/components/image-background-props.js.map +1 -0
  21. package/build/angular/components/{image/shared.d.ts → image-shared.d.ts} +4 -4
  22. package/build/angular/components/{image/shared.js → image-shared.js} +39 -28
  23. package/build/angular/components/image-shared.js.map +1 -0
  24. package/build/angular/components/input-accessory-view-props.d.ts +7 -0
  25. package/build/angular/components/input-accessory-view-props.js +9 -0
  26. package/build/angular/components/input-accessory-view-props.js.map +1 -0
  27. package/build/angular/components/keyboard-avoiding-view/index.d.ts +2 -1
  28. package/build/angular/components/keyboard-avoiding-view/index.js +28 -27
  29. package/build/angular/components/keyboard-avoiding-view/index.js.map +1 -1
  30. package/build/angular/components/modal/index.d.ts +2 -0
  31. package/build/angular/components/modal/index.js +33 -20
  32. package/build/angular/components/modal/index.js.map +1 -1
  33. package/build/angular/components/pressable-props.d.ts +32 -0
  34. package/build/angular/components/pressable-props.js +11 -0
  35. package/build/angular/components/pressable-props.js.map +1 -0
  36. package/build/angular/components/refresh-control-props.d.ts +16 -0
  37. package/build/angular/components/refresh-control-props.js +14 -0
  38. package/build/angular/components/refresh-control-props.js.map +1 -0
  39. package/build/angular/components/safe-area-view-props.d.ts +7 -0
  40. package/build/angular/components/safe-area-view-props.js +11 -0
  41. package/build/angular/components/safe-area-view-props.js.map +1 -0
  42. package/build/angular/components/scroll-view-props.d.ts +76 -0
  43. package/build/angular/components/scroll-view-props.js +18 -0
  44. package/build/angular/components/scroll-view-props.js.map +1 -0
  45. package/build/angular/components/section-list/index.d.ts +3 -0
  46. package/build/angular/components/section-list/index.js +10 -1
  47. package/build/angular/components/section-list/index.js.map +1 -1
  48. package/build/angular/components/text-input-props.d.ts +45 -0
  49. package/build/angular/components/text-input-props.js +18 -0
  50. package/build/angular/components/text-input-props.js.map +1 -0
  51. package/build/angular/components/touchable-native-feedback/touchable-native-feedback-props.d.ts +6 -0
  52. package/build/angular/components/touchable-native-feedback/touchable-native-feedback-props.js +2 -0
  53. package/build/angular/components/touchable-native-feedback/touchable-native-feedback-props.js.map +1 -0
  54. package/build/angular/components/touchable-props.d.ts +14 -0
  55. package/build/angular/components/touchable-props.js +13 -0
  56. package/build/angular/components/touchable-props.js.map +1 -0
  57. package/build/angular/components/touchable-without-feedback/touchable-without-feedback-props.d.ts +3 -0
  58. package/build/angular/components/touchable-without-feedback/touchable-without-feedback-props.js +2 -0
  59. package/build/angular/components/touchable-without-feedback/touchable-without-feedback-props.js.map +1 -0
  60. package/build/angular/components/virtualized-list/index.d.ts +8 -1
  61. package/build/angular/components/virtualized-list/index.js +373 -278
  62. package/build/angular/components/virtualized-list/index.js.map +1 -1
  63. package/build/angular/components/virtualized-section-list/index.d.ts +3 -0
  64. package/build/angular/components/virtualized-section-list/index.js +10 -1
  65. package/build/angular/components/virtualized-section-list/index.js.map +1 -1
  66. package/build/angular/components.d.ts +21 -27
  67. package/build/angular/components.js +13 -15
  68. package/build/angular/components.js.map +1 -1
  69. package/build/angular/create-portal/index.d.ts +11 -2
  70. package/build/angular/create-portal/index.js +37 -11
  71. package/build/angular/create-portal/index.js.map +1 -1
  72. package/build/angular/create-tunnel/index.js +1 -1
  73. package/build/angular/element-props.d.ts +53 -0
  74. package/build/angular/element-props.js +2 -0
  75. package/build/angular/element-props.js.map +1 -0
  76. package/build/angular/elements.d.ts +528 -0
  77. package/build/angular/elements.js +1444 -0
  78. package/build/angular/elements.js.map +1 -0
  79. package/build/angular/gate-demand.d.ts +37 -0
  80. package/build/angular/gate-demand.js +84 -0
  81. package/build/angular/gate-demand.js.map +1 -0
  82. package/build/angular/host-instance/index.js +1 -1
  83. package/build/angular/index.d.ts +5 -2
  84. package/build/angular/index.js +16 -1
  85. package/build/angular/index.js.map +1 -1
  86. package/build/angular/modules/animated/create-animated-component.d.ts +6 -6
  87. package/build/angular/modules/animated/create-animated-component.js +73 -81
  88. package/build/angular/modules/animated/create-animated-component.js.map +1 -1
  89. package/build/angular/modules/animated/index.js +1 -1
  90. package/build/angular/modules/animated/index.js.map +1 -1
  91. package/build/angular/modules/image/index.d.ts +3 -0
  92. package/build/angular/modules/image/index.js +16 -0
  93. package/build/angular/modules/image/index.js.map +1 -0
  94. package/build/angular/primitives/index.d.ts +28 -16
  95. package/build/angular/primitives/index.js +77 -31
  96. package/build/angular/primitives/index.js.map +1 -1
  97. package/build/angular/primitives/shared.d.ts +2 -3
  98. package/build/angular/primitives/shared.js +8 -53
  99. package/build/angular/primitives/shared.js.map +1 -1
  100. package/build/angular/register.d.ts +1 -0
  101. package/build/angular/register.js +16 -0
  102. package/build/angular/register.js.map +1 -0
  103. package/build/angular/render/index.js +4 -2
  104. package/build/angular/render/index.js.map +1 -1
  105. package/build/angular/renderer/index.js +207 -60
  106. package/build/angular/renderer/index.js.map +1 -1
  107. package/build/angular/renderer/value-change.d.ts +2 -0
  108. package/build/angular/renderer/value-change.js +9 -0
  109. package/build/angular/renderer/value-change.js.map +1 -0
  110. package/metro-config.cjs +23 -5
  111. package/metro-css-parser.cjs +2 -1
  112. package/package.json +17 -7
  113. package/src/anchor-host-registry.ts +1 -15
  114. package/src/change-detection-flush.ts +120 -0
  115. package/src/components/activity-indicator-props.ts +21 -0
  116. package/src/components/button-props.ts +26 -0
  117. package/src/components/flat-list/index.ts +12 -4
  118. package/src/components/image-background-props.ts +24 -0
  119. package/src/components/{image/shared.ts → image-shared.ts} +57 -26
  120. package/src/components/input-accessory-view-props.ts +21 -0
  121. package/src/components/keyboard-avoiding-view/index.ts +27 -16
  122. package/src/components/modal/index.ts +32 -11
  123. package/src/components/pressable-props.ts +73 -0
  124. package/src/components/refresh-control-props.ts +43 -0
  125. package/src/components/safe-area-view-props.ts +28 -0
  126. package/src/components/scroll-view-props.ts +109 -0
  127. package/src/components/section-list/index.ts +18 -0
  128. package/src/components/text-input-props.ts +72 -0
  129. package/src/components/touchable-native-feedback/touchable-native-feedback-props.ts +23 -0
  130. package/src/components/touchable-props.ts +30 -0
  131. package/src/components/touchable-without-feedback/touchable-without-feedback-props.ts +21 -0
  132. package/src/components/virtualized-list/index.ts +254 -153
  133. package/src/components/virtualized-section-list/index.ts +18 -0
  134. package/src/components.ts +86 -35
  135. package/src/create-portal/index.ts +39 -9
  136. package/src/create-tunnel/index.ts +1 -1
  137. package/src/diagnostics.ts +1 -1
  138. package/src/element-props.ts +90 -0
  139. package/src/elements.ts +919 -0
  140. package/src/gate-demand.ts +109 -0
  141. package/src/host-instance/index.ts +1 -1
  142. package/src/index.ts +54 -15
  143. package/src/modules/animated/create-animated-component.ts +73 -59
  144. package/src/modules/animated/index.ts +1 -1
  145. package/src/modules/image/index.ts +18 -0
  146. package/src/primitives/index.ts +47 -16
  147. package/src/primitives/shared.ts +11 -44
  148. package/src/register.ts +15 -0
  149. package/src/render/index.ts +4 -2
  150. package/src/renderer/index.ts +239 -80
  151. package/src/renderer/value-change.ts +8 -0
  152. package/build/angular/components/activity-indicator/index.android.d.ts +0 -13
  153. package/build/angular/components/activity-indicator/index.android.js +0 -29
  154. package/build/angular/components/activity-indicator/index.android.js.map +0 -1
  155. package/build/angular/components/activity-indicator/index.d.ts +0 -1
  156. package/build/angular/components/activity-indicator/index.ios.d.ts +0 -9
  157. package/build/angular/components/activity-indicator/index.ios.js +0 -26
  158. package/build/angular/components/activity-indicator/index.ios.js.map +0 -1
  159. package/build/angular/components/activity-indicator/index.js +0 -4
  160. package/build/angular/components/activity-indicator/index.js.map +0 -1
  161. package/build/angular/components/activity-indicator/shared.d.ts +0 -67
  162. package/build/angular/components/activity-indicator/shared.js +0 -260
  163. package/build/angular/components/activity-indicator/shared.js.map +0 -1
  164. package/build/angular/components/button.d.ts +0 -65
  165. package/build/angular/components/button.js +0 -351
  166. package/build/angular/components/button.js.map +0 -1
  167. package/build/angular/components/image/index.android.d.ts +0 -15
  168. package/build/angular/components/image/index.android.js +0 -91
  169. package/build/angular/components/image/index.android.js.map +0 -1
  170. package/build/angular/components/image/index.d.ts +0 -1
  171. package/build/angular/components/image/index.ios.d.ts +0 -15
  172. package/build/angular/components/image/index.ios.js +0 -91
  173. package/build/angular/components/image/index.ios.js.map +0 -1
  174. package/build/angular/components/image/index.js +0 -3
  175. package/build/angular/components/image/index.js.map +0 -1
  176. package/build/angular/components/image/shared.js.map +0 -1
  177. package/build/angular/components/image-background.d.ts +0 -82
  178. package/build/angular/components/image-background.js +0 -434
  179. package/build/angular/components/image-background.js.map +0 -1
  180. package/build/angular/components/input-accessory-view/index.d.ts +0 -65
  181. package/build/angular/components/input-accessory-view/index.js +0 -290
  182. package/build/angular/components/input-accessory-view/index.js.map +0 -1
  183. package/build/angular/components/pressable/index.d.ts +0 -129
  184. package/build/angular/components/pressable/index.js +0 -473
  185. package/build/angular/components/pressable/index.js.map +0 -1
  186. package/build/angular/components/refresh-control/index.d.ts +0 -90
  187. package/build/angular/components/refresh-control/index.js +0 -380
  188. package/build/angular/components/refresh-control/index.js.map +0 -1
  189. package/build/angular/components/safe-area-view/index.d.ts +0 -62
  190. package/build/angular/components/safe-area-view/index.js +0 -287
  191. package/build/angular/components/safe-area-view/index.js.map +0 -1
  192. package/build/angular/components/scroll-view/index.android.d.ts +0 -20
  193. package/build/angular/components/scroll-view/index.android.js +0 -262
  194. package/build/angular/components/scroll-view/index.android.js.map +0 -1
  195. package/build/angular/components/scroll-view/index.d.ts +0 -3
  196. package/build/angular/components/scroll-view/index.ios.d.ts +0 -8
  197. package/build/angular/components/scroll-view/index.ios.js +0 -92
  198. package/build/angular/components/scroll-view/index.ios.js.map +0 -1
  199. package/build/angular/components/scroll-view/index.js +0 -6
  200. package/build/angular/components/scroll-view/index.js.map +0 -1
  201. package/build/angular/components/scroll-view/projection.d.ts +0 -67
  202. package/build/angular/components/scroll-view/projection.js +0 -560
  203. package/build/angular/components/scroll-view/projection.js.map +0 -1
  204. package/build/angular/components/scroll-view/shared.d.ts +0 -239
  205. package/build/angular/components/scroll-view/shared.js +0 -832
  206. package/build/angular/components/scroll-view/shared.js.map +0 -1
  207. package/build/angular/components/scroll-view/sticky-header.d.ts +0 -40
  208. package/build/angular/components/scroll-view/sticky-header.js +0 -224
  209. package/build/angular/components/scroll-view/sticky-header.js.map +0 -1
  210. package/build/angular/components/switch/index.android.d.ts +0 -24
  211. package/build/angular/components/switch/index.android.js +0 -112
  212. package/build/angular/components/switch/index.android.js.map +0 -1
  213. package/build/angular/components/switch/index.d.ts +0 -1
  214. package/build/angular/components/switch/index.ios.d.ts +0 -23
  215. package/build/angular/components/switch/index.ios.js +0 -111
  216. package/build/angular/components/switch/index.ios.js.map +0 -1
  217. package/build/angular/components/switch/index.js +0 -4
  218. package/build/angular/components/switch/index.js.map +0 -1
  219. package/build/angular/components/switch/shared.d.ts +0 -49
  220. package/build/angular/components/switch/shared.js +0 -191
  221. package/build/angular/components/switch/shared.js.map +0 -1
  222. package/build/angular/components/text-input.d.ts +0 -161
  223. package/build/angular/components/text-input.js +0 -659
  224. package/build/angular/components/text-input.js.map +0 -1
  225. package/build/angular/components/touchable/index.d.ts +0 -276
  226. package/build/angular/components/touchable/index.js +0 -1422
  227. package/build/angular/components/touchable/index.js.map +0 -1
  228. package/build/angular/components/touchable-native-feedback/index.d.ts +0 -86
  229. package/build/angular/components/touchable-native-feedback/index.js +0 -407
  230. package/build/angular/components/touchable-native-feedback/index.js.map +0 -1
  231. package/src/components/activity-indicator/index.android.ts +0 -23
  232. package/src/components/activity-indicator/index.ios.ts +0 -21
  233. package/src/components/activity-indicator/index.ts +0 -4
  234. package/src/components/activity-indicator/shared.ts +0 -225
  235. package/src/components/button.ts +0 -220
  236. package/src/components/image/index.android.ts +0 -99
  237. package/src/components/image/index.ios.ts +0 -99
  238. package/src/components/image/index.ts +0 -3
  239. package/src/components/image-background.ts +0 -290
  240. package/src/components/input-accessory-view/index.ts +0 -240
  241. package/src/components/pressable/index.ts +0 -462
  242. package/src/components/refresh-control/index.ts +0 -340
  243. package/src/components/safe-area-view/index.ts +0 -231
  244. package/src/components/scroll-view/index.android.ts +0 -205
  245. package/src/components/scroll-view/index.ios.ts +0 -81
  246. package/src/components/scroll-view/index.ts +0 -7
  247. package/src/components/scroll-view/projection.ts +0 -713
  248. package/src/components/scroll-view/shared.ts +0 -1066
  249. package/src/components/scroll-view/sticky-header.ts +0 -267
  250. package/src/components/switch/index.android.ts +0 -113
  251. package/src/components/switch/index.ios.ts +0 -112
  252. package/src/components/switch/index.ts +0 -4
  253. package/src/components/switch/shared.ts +0 -284
  254. package/src/components/text-input.ts +0 -613
  255. package/src/components/touchable/index.ts +0 -913
  256. package/src/components/touchable-native-feedback/index.ts +0 -317
package/README.md CHANGED
@@ -52,24 +52,27 @@ RNAppRegistry.registerRunnable(appName, ({ rootTag }) => {
52
52
  });
53
53
  ```
54
54
 
55
- The app is ordinary standalone Angular it just imports primitives from `@symbiote-native/angular`
56
- instead of `react-native`. A tap→increment counter:
55
+ The app is ordinary standalone Angular. The native primitives are lowercase intrinsic tags, same as
56
+ every other adapter — Angular still needs them declared in the component's `imports:` array (an
57
+ Angular "element directive" is what makes `ngtsc` accept the tag with typed props), so
58
+ `SYMBIOTE_ELEMENTS` from `@symbiote-native/angular` covers the whole primitive surface in one import.
59
+ A tap→increment counter:
57
60
 
58
61
  ```ts
59
62
  import { Component, signal } from '@angular/core';
60
- import { View, Text, Pressable } from '@symbiote-native/angular';
63
+ import { SYMBIOTE_ELEMENTS } from '@symbiote-native/angular';
61
64
 
62
65
  @Component({
63
66
  selector: 'app-root',
64
67
  standalone: true,
65
- imports: [View, Text, Pressable],
68
+ imports: [SYMBIOTE_ELEMENTS],
66
69
  template: `
67
- <View [style]="{ padding: 24 }">
68
- <Text>Taps: {{ count() }}</Text>
69
- <Pressable (press)="count.set(count() + 1)">
70
- <Text>Tap me</Text>
71
- </Pressable>
72
- </View>
70
+ <view [style]="{ padding: 24 }">
71
+ <text>Taps: {{ count() }}</text>
72
+ <pressable (press)="count.set(count() + 1)">
73
+ <text>Tap me</text>
74
+ </pressable>
75
+ </view>
73
76
  `,
74
77
  })
75
78
  export class AppComponent {
@@ -10,21 +10,53 @@
10
10
  // truth: core/components/src/component-names/index.ios.ts's ISymbioteIntrinsic union. Kept in
11
11
  // sync by the drift-protection test in babel-register-composed.test.ts.
12
12
  const PRIMITIVE_SELECTORS = new Set([
13
- 'symbiote-view',
14
- 'symbiote-text',
15
- 'symbiote-image',
16
- 'symbiote-scroll-view',
17
- 'symbiote-scroll-content',
18
- 'symbiote-horizontal-scroll-view',
19
- 'symbiote-horizontal-scroll-content',
20
- 'symbiote-text-input',
21
- 'symbiote-text-input-multiline',
22
- 'symbiote-switch',
23
- 'symbiote-activity-indicator',
24
- 'symbiote-safe-area-view',
25
- 'symbiote-modal',
26
- 'symbiote-refresh-control',
27
- 'symbiote-input-accessory-view',
13
+ 'view',
14
+ // Same RCTView as a plain view; the tag exists so the host-behavior registry can key on it.
15
+ 'pressable',
16
+ // RN's TouchableOpacity is ONE Animated.View, so this is the same RCTView again — the tag
17
+ // carries the press machine plus the engine-side opacity fade.
18
+ 'touchable-opacity',
19
+ // Same RCTView again, plus the underlay show/hide machine on the engine node.
20
+ 'touchable-highlight',
21
+ // The one primitive that resolves to NO Fabric view: RN's TouchableNativeFeedback clones onto
22
+ // its single child and renders nothing (TouchableNativeFeedback.js:339). It is still a PRIMITIVE
23
+ // here — what this Set decides is "not a composed Angular component", and an anchor-backed
24
+ // primitive is exactly that.
25
+ 'touchable-native-feedback',
26
+ // The second anchor-backed primitive, same shape (TouchableWithoutFeedback.js:286).
27
+ 'touchable-without-feedback',
28
+ 'button',
29
+ 'text',
30
+ 'image',
31
+ // The box RN wraps the background image in — the tag an app writes. The image itself is built by
32
+ // the behavior and never named in a template, so it needs no entry.
33
+ 'image-background',
34
+ 'scroll-view',
35
+ 'scroll-content',
36
+ 'horizontal-scroll-view',
37
+ 'horizontal-scroll-content',
38
+ 'text-input',
39
+ 'text-input-multiline',
40
+ // The COMPONENT path's pair. Only a lowering transform may emit the plain tags above — those
41
+ // carry the engine's TextInput machine, and this adapter's own component runs that state in
42
+ // its template. See `core/components/src/component-names/shared.ts`.
43
+ 'text-input-managed',
44
+ 'text-input-multiline-managed',
45
+ 'switch',
46
+ // The component path's spelling — same native view, a tag the engine's Switch behavior does
47
+ // not carry. See `core/components/src/component-names/shared.ts`.
48
+ 'switch-managed',
49
+ // The centering RCTView RN wraps the spinner in — the tag an app writes — plus the native
50
+ // spinner the ActivityIndicator behavior builds under it.
51
+ 'activity-indicator',
52
+ 'activity-indicator-spinner',
53
+ 'safe-area-view',
54
+ 'modal',
55
+ 'refresh-control',
56
+ // RN's JS sticky wrapper as a tag: the same RCTView again, carrying the pin the engine's
57
+ // ScrollView behavior drives.
58
+ 'sticky-header',
59
+ 'input-accessory-view',
28
60
  ]);
29
61
 
30
62
  // Inject from the package barrel — the ONE resolution route every consumer already uses, so the
@@ -95,7 +127,8 @@ module.exports = function registerComposedPlugin({ types: t }) {
95
127
  programPath.traverse({
96
128
  CallExpression(path) {
97
129
  if (isNgDeclareComponentCall(path.node)) {
98
- for (const selector of composedSelectorsFromCall(path.node)) selectors.add(selector);
130
+ for (const selector of composedSelectorsFromCall(path.node))
131
+ selectors.add(selector);
99
132
  }
100
133
  },
101
134
  });
@@ -103,14 +136,21 @@ module.exports = function registerComposedPlugin({ types: t }) {
103
136
 
104
137
  const statements = [...selectors].map(selector =>
105
138
  t.expressionStatement(
106
- t.callExpression(t.identifier(HELPER_NAME), [t.stringLiteral(selector)]),
139
+ t.callExpression(t.identifier(HELPER_NAME), [
140
+ t.stringLiteral(selector),
141
+ ]),
107
142
  ),
108
143
  );
109
144
 
110
145
  if (!hasComposedImport(programPath.node)) {
111
146
  statements.unshift(
112
147
  t.importDeclaration(
113
- [t.importSpecifier(t.identifier(HELPER_NAME), t.identifier(HELPER_NAME))],
148
+ [
149
+ t.importSpecifier(
150
+ t.identifier(HELPER_NAME),
151
+ t.identifier(HELPER_NAME),
152
+ ),
153
+ ],
114
154
  t.stringLiteral(IMPORT_SOURCE),
115
155
  ),
116
156
  );
@@ -37,7 +37,10 @@ function resolveWatchTsconfig(tsconfigName) {
37
37
  // broke `@types/node` resolution (TS2688) even though the extended real config was found fine.
38
38
  const buildDir = path.resolve(projectRoot, 'build');
39
39
  fs.mkdirSync(buildDir, { recursive: true });
40
- const watchConfigPath = path.join(buildDir, `symbiote-angular-dev-watch-${process.pid}.json`);
40
+ const watchConfigPath = path.join(
41
+ buildDir,
42
+ `symbiote-angular-dev-watch-${process.pid}.json`,
43
+ );
41
44
  fs.writeFileSync(
42
45
  watchConfigPath,
43
46
  JSON.stringify({
@@ -53,7 +56,10 @@ function resolveWatchTsconfig(tsconfigName) {
53
56
  // reliably blows past macOS's per-process fd limit (EMFILE) — doubly likely here since ngc
54
57
  // --watch adds a second watcher on top of Metro's own. Warn instead of letting everyone
55
58
  // individually debug a native stack trace down to this one missing binary.
56
- const watchmanCheck = spawnSync('watchman', ['--version'], { stdio: 'ignore', shell: true });
59
+ const watchmanCheck = spawnSync('watchman', ['--version'], {
60
+ stdio: 'ignore',
61
+ shell: true,
62
+ });
57
63
  if (watchmanCheck.status !== 0) {
58
64
  console.warn(
59
65
  '[symbiote-angular-dev] watchman not found on PATH. Metro will fall back to watching files ' +
@@ -62,7 +68,10 @@ if (watchmanCheck.status !== 0) {
62
68
  );
63
69
  }
64
70
 
65
- const initialBuild = spawnSync('ngc', ['-p', TSCONFIG], { stdio: 'inherit', shell: true });
71
+ const initialBuild = spawnSync('ngc', ['-p', TSCONFIG], {
72
+ stdio: 'inherit',
73
+ shell: true,
74
+ });
66
75
  if (initialBuild.status !== 0) {
67
76
  process.exit(initialBuild.status ?? 1);
68
77
  }
@@ -72,7 +81,10 @@ const ngcWatch = spawn('ngc', ['-p', watchTsconfigPath, '--watch'], {
72
81
  stdio: 'inherit',
73
82
  shell: true,
74
83
  });
75
- const metro = spawn('react-native', ['start', ...metroArgs], { stdio: 'inherit', shell: true });
84
+ const metro = spawn('react-native', ['start', ...metroArgs], {
85
+ stdio: 'inherit',
86
+ shell: true,
87
+ });
76
88
 
77
89
  function stopNgcWatch() {
78
90
  ngcWatch.kill();
@@ -32,7 +32,6 @@ const ANCHOR_HOST_COMPONENTS = new Set([
32
32
  // view instead (a real device-visible bug, not a silent no-op). This Set holds only
33
33
  // adapter/engine-owned selectors; app code and third-party packages self-register their own
34
34
  // composed components through registerComposedComponent instead of being hardcoded here.
35
- 'ActivityIndicator',
36
35
  'Button',
37
36
  'FlatList',
38
37
  'AnimatedView',
@@ -46,28 +45,15 @@ const ANCHOR_HOST_COMPONENTS = new Set([
46
45
  'symbiote-descriptor-outlet',
47
46
  'tunnel-out',
48
47
  'Image',
49
- 'ImageBackground',
50
- 'InputAccessoryView',
51
48
  'KeyboardAvoidingView',
52
49
  'Modal',
53
- 'Pressable',
54
- 'RefreshControl',
55
- 'SafeAreaView',
56
- 'ScrollView',
57
- 'ScrollViewStickyHeader',
58
50
  'SectionList',
59
- 'symbiote-sticky-header',
51
+ 'sticky-header',
60
52
  'StatusBar',
61
53
  'Switch',
62
54
  'Text',
63
- 'TextInput',
64
- 'TouchableHighlight',
65
- 'TouchableNativeFeedback',
66
- 'TouchableOpacity',
67
- 'TouchableWithoutFeedback',
68
55
  'VirtualizedList',
69
56
  'VirtualizedSectionList',
70
- 'symbiote-pressable',
71
57
  ].map(selector => selector.toLowerCase()));
72
58
  // A composed component's selector must be registered so createElement gives it a non-painting
73
59
  // anchor host (see the Set comment above). Tests register their own child-component selectors
@@ -1 +1 @@
1
- {"version":3,"file":"anchor-host-registry.js","sourceRoot":"","sources":["../../src/anchor-host-registry.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,EAAE;AACF,sFAAsF;AACtF,8FAA8F;AAC9F,iGAAiG;AACjG,6FAA6F;AAC7F,gGAAgG;AAChG,8FAA8F;AAC9F,yCAAyC;AACzC,EAAE;AACF,kGAAkG;AAClG,4FAA4F;AAC5F,gGAAgG;AAChG,6FAA6F;AAC7F,iGAAiG;AACjG,6FAA6F;AAC7F,4FAA4F;AAC5F,wBAAwB;AAExB,kGAAkG;AAClG,8FAA8F;AAC9F,+FAA+F;AAC/F,kGAAkG;AAClG,kGAAkG;AAClG,yBAAyB;AACzB,MAAM,sBAAsB,GAAgB,IAAI,GAAG,CACjD;IACE,0FAA0F;IAC1F,2FAA2F;IAC3F,2FAA2F;IAC3F,uFAAuF;IACvF,4FAA4F;IAC5F,6FAA6F;IAC7F,oFAAoF;IACpF,4FAA4F;IAC5F,yFAAyF;IACzF,mBAAmB;IACnB,QAAQ;IACR,UAAU;IACV,cAAc;IACd,wBAAwB;IACxB,cAAc;IACd,wBAAwB;IACxB,eAAe;IACf,yBAAyB;IACzB,oBAAoB;IACpB,+BAA+B;IAC/B,4BAA4B;IAC5B,YAAY;IACZ,OAAO;IACP,iBAAiB;IACjB,oBAAoB;IACpB,sBAAsB;IACtB,OAAO;IACP,WAAW;IACX,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,wBAAwB;IACxB,aAAa;IACb,wBAAwB;IACxB,WAAW;IACX,QAAQ;IACR,MAAM;IACN,WAAW;IACX,oBAAoB;IACpB,yBAAyB;IACzB,kBAAkB;IAClB,0BAA0B;IAC1B,iBAAiB;IACjB,wBAAwB;IACxB,oBAAoB;CACrB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAC1C,CAAC;AAEF,8FAA8F;AAC9F,8FAA8F;AAC9F,+FAA+F;AAC/F,sCAAsC;AACtC,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACxD,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,yFAAyF;AACzF,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"anchor-host-registry.js","sourceRoot":"","sources":["../../src/anchor-host-registry.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,EAAE;AACF,sFAAsF;AACtF,8FAA8F;AAC9F,iGAAiG;AACjG,6FAA6F;AAC7F,gGAAgG;AAChG,8FAA8F;AAC9F,yCAAyC;AACzC,EAAE;AACF,kGAAkG;AAClG,4FAA4F;AAC5F,gGAAgG;AAChG,6FAA6F;AAC7F,iGAAiG;AACjG,6FAA6F;AAC7F,4FAA4F;AAC5F,wBAAwB;AAExB,kGAAkG;AAClG,8FAA8F;AAC9F,+FAA+F;AAC/F,kGAAkG;AAClG,kGAAkG;AAClG,yBAAyB;AACzB,MAAM,sBAAsB,GAAgB,IAAI,GAAG,CACjD;IACE,0FAA0F;IAC1F,2FAA2F;IAC3F,2FAA2F;IAC3F,uFAAuF;IACvF,4FAA4F;IAC5F,6FAA6F;IAC7F,oFAAoF;IACpF,4FAA4F;IAC5F,yFAAyF;IACzF,QAAQ;IACR,UAAU;IACV,cAAc;IACd,wBAAwB;IACxB,cAAc;IACd,wBAAwB;IACxB,eAAe;IACf,yBAAyB;IACzB,oBAAoB;IACpB,+BAA+B;IAC/B,4BAA4B;IAC5B,YAAY;IACZ,OAAO;IACP,sBAAsB;IACtB,OAAO;IACP,aAAa;IACb,eAAe;IACf,WAAW;IACX,QAAQ;IACR,MAAM;IACN,iBAAiB;IACjB,wBAAwB;CACzB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAC1C,CAAC;AAEF,8FAA8F;AAC9F,8FAA8F;AAC9F,+FAA+F;AAC/F,sCAAsC;AACtC,MAAM,UAAU,yBAAyB,CAAC,QAAgB;IACxD,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,yFAAyF;AACzF,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,OAAO,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,31 @@
1
+ interface IViewMarker {
2
+ markForCheck(): void;
3
+ }
4
+ type ICallbackWrapper = (key: string, value: unknown) => unknown;
5
+ /**
6
+ * Makes an app callback handed to the engine as a PROP re-enter Angular's update loop.
7
+ *
8
+ * An `(event)` binding is wrapped by Angular's own `wrapListenerIn_markDirtyAndPreventDefault` and
9
+ * notifies on its own. A `[onPressMove]="fn"` prop is an `@Input` forwarded to the node, and the
10
+ * ENGINE calls it on event dispatch — Angular is told NOTHING, so a plain field mutation inside it
11
+ * dirties no view and the template reading it stays stale until something unrelated ticks.
12
+ * Device-reported 2026-09-11: a pan readout stuck at `dx 0 · dy 0` for a whole gesture, its real
13
+ * numbers arriving on the next button press.
14
+ *
15
+ * `markForCheck()` is one of the two notification sources Angular sanctions for an event source
16
+ * outside the framework (the other is writing a signal the template reads, which an ADAPTER cannot
17
+ * choose on the app's behalf). It flags the INJECTING view and every ancestor with RefreshView —
18
+ * the reach `detectChanges()` does not have — and notifies the scheduler.
19
+ *
20
+ * `flushViewFor` is the second, narrower half: three behaviors read the app's answer back inside
21
+ * the SAME microtask turn, and `markForCheck` only SCHEDULES. It is a no-op on a node that
22
+ * registered no flush.
23
+ *
24
+ * ONE wrapper per original handler, for the caller's lifetime. A fresh closure per push would make
25
+ * the engine store a new listener every time and would defeat every downstream identity check.
26
+ */
27
+ export declare function createCallbackWrapper(view: IViewMarker, node: unknown): ICallbackWrapper;
28
+ export declare function registerViewFlush(node: object, flush: () => void): void;
29
+ export declare function unregisterViewFlush(node: object): void;
30
+ export declare function flushViewFor(node: unknown): void;
31
+ export {};
@@ -0,0 +1,110 @@
1
+ // A dependency-free LEAF so `renderer/index.ts` can ask a view to re-check itself without importing
2
+ // the element directives, which import the renderer (same reasoning as `renderer/value-change.ts`
3
+ // and `anchor-host-registry.ts`).
4
+ //
5
+ // WHY ANYTHING IS NEEDED. Zoneless change detection is scheduled on a
6
+ // requestAnimationFrame/setTimeout RACE (`ChangeDetectionSchedulerImpl`, upstream
7
+ // `zoneless_scheduling_impl.ts`), so an app's state update from a native event lands a whole
8
+ // MACROTASK later. A bound template listener DOES notify Angular — that is one of the documented
9
+ // notification sources — so nothing is missing; what is wrong is the TIMING. Three engine behaviors
10
+ // read the app's answer back within the same MICROTASK turn:
11
+ //
12
+ // behaviors/text-input.ts `afterCommit` re-commands the native text from `props.value`
13
+ // behaviors/switch.ts `queueMicrotask` snap-back reads `props.value`
14
+ // behaviors/refresh-control.ts `queueMicrotask` snap-back reads `props.refreshing`
15
+ //
16
+ // Every other adapter's state update lands inside that turn; zoneless Angular cannot, so all three
17
+ // read the PRE-event value and UNDO the user. Device-reported 2026-09-11: `[(value)]` on a
18
+ // `<text-input>` commanded the stale text back after one keystroke, a `[(value)]` `<switch>` snapped
19
+ // straight off again, and pull-to-refresh stopped itself.
20
+ //
21
+ // WHY `ChangeDetectorRef.detectChanges()` AND NOT `ApplicationRef.tick()`. Both re-evaluate the
22
+ // binding; only one of them is safe to call from a native event. `tick()` emits `afterTick`
23
+ // UNCONDITIONALLY — `dirtyFlags === 0` included — and the scheduler's `afterTick` subscriber runs
24
+ // `switchToMicrotaskScheduler`, which sets `useMicrotaskScheduler` for the rest of the turn. Every
25
+ // notification raised while that flag is set is counted by `trackMicrotaskNotificationForDebugging`
26
+ // against `CONSECUTIVE_MICROTASK_NOTIFICATION_LIMIT` (100), and the ONLY reset is a notification
27
+ // raised while it is clear. A commit can dispatch further events (`onLayout`), each of which
28
+ // notifies, so forcing a tick per native event turns that into NG0103, "Angular could not stabilize
29
+ // because there were endless change notifications" — device-reported the same day, on the first fix
30
+ // for the paragraph above. `ViewRef.detectChanges()` sets `RefreshView` and calls
31
+ // `detectChangesInternal` (upstream `render3/view_ref.ts`): no `afterTick`, no scheduler
32
+ // notification, so it cannot open that window at all. It is also the narrower answer — the only
33
+ // view that has to be re-checked is the one holding the binding.
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.
40
+ //
41
+ // When a fourth behavior starts reading an app value back, it needs a name in the renderer's
42
+ // `READ_BACK_*` sets — the census is `queueMicrotask` / `afterCommit` in
43
+ // `core/components/src/behaviors`.
44
+ const viewFlushes = new WeakMap();
45
+ const ON_PREFIX = /^on[A-Z]/;
46
+ // The one `onX` that fires per FRAME rather than per gesture — with sticky headers RN pins
47
+ // `scrollEventThrottle` to 1, i.e. 60 times a second. `markForCheck` walks to the ROOT, so wrapping
48
+ // it costs a full ancestor-screen template execution per frame: measured as the canary's ~37fps
49
+ // scroll (`components/virtualized-list/scroll-cost.test.ts`). Nothing loses its refresh — the list
50
+ // marks itself when its window moves, sticky rides the native driver, and a caller's own handler is
51
+ // typically an Animated.event touching no Angular state. Drag and momentum begin/end stay wrapped;
52
+ // once per gesture is not a hot path.
53
+ const PER_FRAME_CALLBACK = 'onScroll';
54
+ /**
55
+ * Makes an app callback handed to the engine as a PROP re-enter Angular's update loop.
56
+ *
57
+ * An `(event)` binding is wrapped by Angular's own `wrapListenerIn_markDirtyAndPreventDefault` and
58
+ * notifies on its own. A `[onPressMove]="fn"` prop is an `@Input` forwarded to the node, and the
59
+ * ENGINE calls it on event dispatch — Angular is told NOTHING, so a plain field mutation inside it
60
+ * dirties no view and the template reading it stays stale until something unrelated ticks.
61
+ * Device-reported 2026-09-11: a pan readout stuck at `dx 0 · dy 0` for a whole gesture, its real
62
+ * numbers arriving on the next button press.
63
+ *
64
+ * `markForCheck()` is one of the two notification sources Angular sanctions for an event source
65
+ * outside the framework (the other is writing a signal the template reads, which an ADAPTER cannot
66
+ * choose on the app's behalf). It flags the INJECTING view and every ancestor with RefreshView —
67
+ * the reach `detectChanges()` does not have — and notifies the scheduler.
68
+ *
69
+ * `flushViewFor` is the second, narrower half: three behaviors read the app's answer back inside
70
+ * the SAME microtask turn, and `markForCheck` only SCHEDULES. It is a no-op on a node that
71
+ * registered no flush.
72
+ *
73
+ * ONE wrapper per original handler, for the caller's lifetime. A fresh closure per push would make
74
+ * the engine store a new listener every time and would defeat every downstream identity check.
75
+ */
76
+ export function createCallbackWrapper(view, node) {
77
+ const wrappers = new WeakMap();
78
+ return (key, value) => {
79
+ if (!ON_PREFIX.test(key) || typeof value !== 'function')
80
+ return value;
81
+ if (key === PER_FRAME_CALLBACK)
82
+ return value;
83
+ const cached = wrappers.get(value);
84
+ if (cached !== undefined)
85
+ return cached;
86
+ // Reflect.apply rather than a cast-to-signature local: `typeof value === 'function'` narrows to
87
+ // `Function`, which carries no call signature, and this repo does not use `as` to paper over it.
88
+ // `undefined` as the receiver preserves the previous unbound call.
89
+ const wrapper = (...args) => {
90
+ const result = Reflect.apply(value, undefined, args);
91
+ view.markForCheck();
92
+ flushViewFor(node);
93
+ return result;
94
+ };
95
+ wrappers.set(value, wrapper);
96
+ return wrapper;
97
+ };
98
+ }
99
+ export function registerViewFlush(node, flush) {
100
+ viewFlushes.set(node, flush);
101
+ }
102
+ export function unregisterViewFlush(node) {
103
+ viewFlushes.delete(node);
104
+ }
105
+ export function flushViewFor(node) {
106
+ if (typeof node !== 'object' || node === null)
107
+ return;
108
+ viewFlushes.get(node)?.();
109
+ }
110
+ //# sourceMappingURL=change-detection-flush.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-detection-flush.js","sourceRoot":"","sources":["../../src/change-detection-flush.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,kGAAkG;AAClG,kCAAkC;AAClC,EAAE;AACF,sEAAsE;AACtE,kFAAkF;AAClF,6FAA6F;AAC7F,iGAAiG;AACjG,oGAAoG;AACpG,6DAA6D;AAC7D,EAAE;AACF,+FAA+F;AAC/F,iFAAiF;AACjF,sFAAsF;AACtF,EAAE;AACF,mGAAmG;AACnG,2FAA2F;AAC3F,qGAAqG;AACrG,0DAA0D;AAC1D,EAAE;AACF,gGAAgG;AAChG,4FAA4F;AAC5F,kGAAkG;AAClG,mGAAmG;AACnG,oGAAoG;AACpG,iGAAiG;AACjG,6FAA6F;AAC7F,oGAAoG;AACpG,oGAAoG;AACpG,kFAAkF;AAClF,yFAAyF;AACzF,gGAAgG;AAChG,iEAAiE;AACjE,EAAE;AACF,6FAA6F;AAC7F,oGAAoG;AACpG,4FAA4F;AAC5F,kGAAkG;AAClG,oBAAoB;AACpB,EAAE;AACF,6FAA6F;AAC7F,yEAAyE;AACzE,mCAAmC;AACnC,MAAM,WAAW,GAAG,IAAI,OAAO,EAAsB,CAAC;AAEtD,MAAM,SAAS,GAAG,UAAU,CAAC;AAE7B,2FAA2F;AAC3F,oGAAoG;AACpG,gGAAgG;AAChG,mGAAmG;AACnG,oGAAoG;AACpG,mGAAmG;AACnG,sCAAsC;AACtC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAQtC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAiB,EACjB,IAAa;IAEb,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA2C,CAAC;IACxE,OAAO,CAAC,GAAW,EAAE,KAAc,EAAW,EAAE;QAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,GAAG,KAAK,kBAAkB;YAAE,OAAO,KAAK,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACxC,gGAAgG;QAChG,iGAAiG;QACjG,mEAAmE;QACnE,MAAM,OAAO,GAAG,CAAC,GAAG,IAAe,EAAW,EAAE;YAC9C,MAAM,MAAM,GAAY,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAiB;IAC/D,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAa;IACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IACtD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { IActivityIndicatorProps as ICoreActivityIndicatorProps } from '@symbiote-native/components';
2
+ export type IActivityIndicatorProps = Omit<ICoreActivityIndicatorProps, 'onLayout' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=activity-indicator-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-indicator-props.js","sourceRoot":"","sources":["../../../src/components/activity-indicator-props.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import type { IButtonProps as ICoreButtonProps } from '@symbiote-native/components';
2
+ export type IButtonProps = Omit<ICoreButtonProps, 'onPress' | 'onAccessibilityAction' | 'onAccessibilityTap' | 'onMagicTap' | 'onAccessibilityEscape'>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=button-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-props.js","sourceRoot":"","sources":["../../../src/components/button-props.ts"],"names":[],"mappings":""}
@@ -29,6 +29,7 @@ export declare class FlatList<ItemT = unknown> implements IFlatListInputs<ItemT>
29
29
  averageItemLength: number;
30
30
  }>;
31
31
  data: readonly ItemT[];
32
+ testID?: string;
32
33
  numColumns?: number;
33
34
  columnWrapperStyle?: IStyleProp<IViewStyle> | string;
34
35
  keyExtractor?: (item: ItemT, index: number) => string;
@@ -120,5 +121,5 @@ export declare class FlatList<ItemT = unknown> implements IFlatListInputs<ItemT>
120
121
  getScrollNode(): ISymbioteNode | null;
121
122
  recordInteraction(): void;
122
123
  static ɵfac: i0.ɵɵFactoryDeclaration<FlatList<any>, never>;
123
- static ɵcmp: i0.ɵɵComponentDeclaration<FlatList<any>, "FlatList", never, { "data": { "alias": "data"; "required": true; }; "numColumns": { "alias": "numColumns"; "required": false; }; "columnWrapperStyle": { "alias": "columnWrapperStyle"; "required": false; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "getItemLayout": { "alias": "getItemLayout"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "onEndReachedThreshold": { "alias": "onEndReachedThreshold"; "required": false; }; "onStartReachedThreshold": { "alias": "onStartReachedThreshold"; "required": false; }; "refreshing": { "alias": "refreshing"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "viewabilityConfig": { "alias": "viewabilityConfig"; "required": false; }; "viewabilityConfigCallbackPairs": { "alias": "viewabilityConfigCallbackPairs"; "required": false; }; "initialNumToRender": { "alias": "initialNumToRender"; "required": false; }; "initialScrollIndex": { "alias": "initialScrollIndex"; "required": false; }; "maxToRenderPerBatch": { "alias": "maxToRenderPerBatch"; "required": false; }; "updateCellsBatchingPeriod": { "alias": "updateCellsBatchingPeriod"; "required": false; }; "windowSize": { "alias": "windowSize"; "required": false; }; "stickyHeaderIndices": { "alias": "stickyHeaderIndices"; "required": false; }; "maintainVisibleContentPosition": { "alias": "maintainVisibleContentPosition"; "required": false; }; "onScroll": { "alias": "onScroll"; "required": false; }; "onScrollBeginDrag": { "alias": "onScrollBeginDrag"; "required": false; }; "onScrollEndDrag": { "alias": "onScrollEndDrag"; "required": false; }; "onMomentumScrollBegin": { "alias": "onMomentumScrollBegin"; "required": false; }; "onMomentumScrollEnd": { "alias": "onMomentumScrollEnd"; "required": false; }; "scrollEventThrottle": { "alias": "scrollEventThrottle"; "required": false; }; "keyboardShouldPersistTaps": { "alias": "keyboardShouldPersistTaps"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "viewableItemsChanged": "viewableItemsChanged"; "scrollToIndexFailed": "scrollToIndexFailed"; }, ["itemDir", "headerDir", "footerDir", "emptyDir", "separatorDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
124
+ static ɵcmp: i0.ɵɵComponentDeclaration<FlatList<any>, "FlatList", never, { "data": { "alias": "data"; "required": true; }; "testID": { "alias": "testID"; "required": false; }; "numColumns": { "alias": "numColumns"; "required": false; }; "columnWrapperStyle": { "alias": "columnWrapperStyle"; "required": false; }; "keyExtractor": { "alias": "keyExtractor"; "required": false; }; "getItemLayout": { "alias": "getItemLayout"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "inverted": { "alias": "inverted"; "required": false; }; "extraData": { "alias": "extraData"; "required": false; }; "onEndReachedThreshold": { "alias": "onEndReachedThreshold"; "required": false; }; "onStartReachedThreshold": { "alias": "onStartReachedThreshold"; "required": false; }; "refreshing": { "alias": "refreshing"; "required": false; }; "progressViewOffset": { "alias": "progressViewOffset"; "required": false; }; "viewabilityConfig": { "alias": "viewabilityConfig"; "required": false; }; "viewabilityConfigCallbackPairs": { "alias": "viewabilityConfigCallbackPairs"; "required": false; }; "initialNumToRender": { "alias": "initialNumToRender"; "required": false; }; "initialScrollIndex": { "alias": "initialScrollIndex"; "required": false; }; "maxToRenderPerBatch": { "alias": "maxToRenderPerBatch"; "required": false; }; "updateCellsBatchingPeriod": { "alias": "updateCellsBatchingPeriod"; "required": false; }; "windowSize": { "alias": "windowSize"; "required": false; }; "stickyHeaderIndices": { "alias": "stickyHeaderIndices"; "required": false; }; "maintainVisibleContentPosition": { "alias": "maintainVisibleContentPosition"; "required": false; }; "onScroll": { "alias": "onScroll"; "required": false; }; "onScrollBeginDrag": { "alias": "onScrollBeginDrag"; "required": false; }; "onScrollEndDrag": { "alias": "onScrollEndDrag"; "required": false; }; "onMomentumScrollBegin": { "alias": "onMomentumScrollBegin"; "required": false; }; "onMomentumScrollEnd": { "alias": "onMomentumScrollEnd"; "required": false; }; "scrollEventThrottle": { "alias": "scrollEventThrottle"; "required": false; }; "keyboardShouldPersistTaps": { "alias": "keyboardShouldPersistTaps"; "required": false; }; "keyboardDismissMode": { "alias": "keyboardDismissMode"; "required": false; }; "style": { "alias": "style"; "required": false; }; "contentContainerStyle": { "alias": "contentContainerStyle"; "required": false; }; }, { "endReached": "endReached"; "startReached": "startReached"; "refresh": "refresh"; "viewableItemsChanged": "viewableItemsChanged"; "scrollToIndexFailed": "scrollToIndexFailed"; }, ["itemDir", "headerDir", "footerDir", "emptyDir", "separatorDir"], never, true, [{ directive: typeof i1.SymbioteStyleInputDirective; inputs: { "style": "style"; }; outputs: {}; }]>;
124
125
  }
@@ -77,6 +77,12 @@ export class FlatList {
77
77
  viewableItemsChanged = new EventEmitter();
78
78
  scrollToIndexFailed = new EventEmitter();
79
79
  data;
80
+ // RN's FlatList spreads its props onto the VirtualizedList it renders, so `testID` lands on the
81
+ // scroll view. Angular has no spread, and this one was simply missing: `<FlatList testID="x">`
82
+ // compiled (a static attribute on a component tag is never checked), reached the non-painting
83
+ // anchor host, and committed nowhere — so the list was untargetable by a test or an e2e selector
84
+ // while looking perfectly healthy on screen. VirtualizedList has always declared it.
85
+ testID;
80
86
  numColumns;
81
87
  columnWrapperStyle;
82
88
  keyExtractor;
@@ -265,7 +271,7 @@ export class FlatList {
265
271
  this.listRef?.recordInteraction();
266
272
  }
267
273
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FlatList, deps: [], target: i0.ɵɵFactoryTarget.Component });
268
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FlatList, isStandalone: true, selector: "FlatList", inputs: { data: "data", numColumns: "numColumns", columnWrapperStyle: "columnWrapperStyle", keyExtractor: "keyExtractor", getItemLayout: "getItemLayout", horizontal: "horizontal", inverted: "inverted", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", viewabilityConfig: "viewabilityConfig", viewabilityConfigCallbackPairs: "viewabilityConfigCallbackPairs", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", stickyHeaderIndices: "stickyHeaderIndices", maintainVisibleContentPosition: "maintainVisibleContentPosition", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", scrollEventThrottle: "scrollEventThrottle", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", keyboardDismissMode: "keyboardDismissMode", style: "style", contentContainerStyle: "contentContainerStyle" }, outputs: { endReached: "endReached", startReached: "startReached", refresh: "refresh", viewableItemsChanged: "viewableItemsChanged", scrollToIndexFailed: "scrollToIndexFailed" }, queries: [{ propertyName: "itemDir", first: true, predicate: VListItemDirective, descendants: true }, { propertyName: "headerDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "footerDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "emptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "separatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "listRef", first: true, predicate: VirtualizedList, descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
274
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: FlatList, isStandalone: true, selector: "FlatList", inputs: { data: "data", testID: "testID", numColumns: "numColumns", columnWrapperStyle: "columnWrapperStyle", keyExtractor: "keyExtractor", getItemLayout: "getItemLayout", horizontal: "horizontal", inverted: "inverted", extraData: "extraData", onEndReachedThreshold: "onEndReachedThreshold", onStartReachedThreshold: "onStartReachedThreshold", refreshing: "refreshing", progressViewOffset: "progressViewOffset", viewabilityConfig: "viewabilityConfig", viewabilityConfigCallbackPairs: "viewabilityConfigCallbackPairs", initialNumToRender: "initialNumToRender", initialScrollIndex: "initialScrollIndex", maxToRenderPerBatch: "maxToRenderPerBatch", updateCellsBatchingPeriod: "updateCellsBatchingPeriod", windowSize: "windowSize", stickyHeaderIndices: "stickyHeaderIndices", maintainVisibleContentPosition: "maintainVisibleContentPosition", onScroll: "onScroll", onScrollBeginDrag: "onScrollBeginDrag", onScrollEndDrag: "onScrollEndDrag", onMomentumScrollBegin: "onMomentumScrollBegin", onMomentumScrollEnd: "onMomentumScrollEnd", scrollEventThrottle: "scrollEventThrottle", keyboardShouldPersistTaps: "keyboardShouldPersistTaps", keyboardDismissMode: "keyboardDismissMode", style: "style", contentContainerStyle: "contentContainerStyle" }, outputs: { endReached: "endReached", startReached: "startReached", refresh: "refresh", viewableItemsChanged: "viewableItemsChanged", scrollToIndexFailed: "scrollToIndexFailed" }, queries: [{ propertyName: "itemDir", first: true, predicate: VListItemDirective, descendants: true }, { propertyName: "headerDir", first: true, predicate: VListHeaderDirective, descendants: true }, { propertyName: "footerDir", first: true, predicate: VListFooterDirective, descendants: true }, { propertyName: "emptyDir", first: true, predicate: VListEmptyDirective, descendants: true }, { propertyName: "separatorDir", first: true, predicate: VListSeparatorDirective, descendants: true }], viewQueries: [{ propertyName: "listRef", first: true, predicate: VirtualizedList, descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i1.SymbioteStyleInputDirective, inputs: ["style", "style"] }], ngImport: i0, template: `
269
275
  @if (isMultiColumn) {
270
276
  <VirtualizedList
271
277
  [data]="rows"
@@ -303,20 +309,21 @@ export class FlatList {
303
309
  [scrollEventThrottle]="scrollEventThrottle"
304
310
  [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
305
311
  [keyboardDismissMode]="keyboardDismissMode"
312
+ [testID]="testID"
306
313
  [style]="resolvedStyle"
307
314
  [contentContainerStyle]="contentContainerStyle"
308
315
  >
309
316
  <ng-template vListItem let-row let-separators="separators">
310
- <symbiote-view [style]="rowStyle">
317
+ <view [style]="rowStyle">
311
318
  @for (cell of rowCells(row, separators); track cell.key) {
312
- <symbiote-view [style]="columnCellStyle">
319
+ <view [style]="columnCellStyle">
313
320
  <ng-container
314
321
  [vListOutlet]="itemDir?.templateRef"
315
322
  [vListOutletContext]="cell.context"
316
323
  ></ng-container>
317
- </symbiote-view>
324
+ </view>
318
325
  }
319
- </symbiote-view>
326
+ </view>
320
327
  </ng-template>
321
328
  @if (headerDir !== undefined) {
322
329
  <ng-template vListHeader>
@@ -386,6 +393,7 @@ export class FlatList {
386
393
  [scrollEventThrottle]="scrollEventThrottle"
387
394
  [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
388
395
  [keyboardDismissMode]="keyboardDismissMode"
396
+ [testID]="testID"
389
397
  [style]="resolvedStyle"
390
398
  [contentContainerStyle]="contentContainerStyle"
391
399
  >
@@ -432,7 +440,7 @@ export class FlatList {
432
440
  }
433
441
  </VirtualizedList>
434
442
  }
435
- `, isInline: true, dependencies: [{ kind: "component", type: VirtualizedList, selector: "VirtualizedList", inputs: ["data", "getItem", "getItemCount", "keyExtractor", "getItemLayout", "horizontal", "inverted", "extraData", "onEndReachedThreshold", "onStartReachedThreshold", "refreshing", "progressViewOffset", "refreshRequested", "viewabilityConfig", "viewabilityConfigCallbackPairs", "initialNumToRender", "initialScrollIndex", "maxToRenderPerBatch", "updateCellsBatchingPeriod", "windowSize", "stickyHeaderIndices", "maintainVisibleContentPosition", "onScroll", "onScrollBeginDrag", "onScrollEndDrag", "onMomentumScrollBegin", "onMomentumScrollEnd", "scrollEventThrottle", "keyboardShouldPersistTaps", "keyboardDismissMode", "style", "contentContainerStyle", "testID", "nativeID", "accessible", "accessibilityLabel", "accessibilityHint", "accessibilityRole", "accessibilityState", "accessibilityValue", "accessibilityActions", "accessibilityLabelledBy", "importantForAccessibility", "accessibilityLiveRegion", "screenReaderFocusable", "accessibilityViewIsModal", "accessibilityElementsHidden", "accessibilityIgnoresInvertColors", "accessibilityLanguage", "accessibilityRespondsToUserInteraction", "accessibilityShowsLargeContentViewer", "accessibilityLargeContentTitle", "role", "ariaLabel", "ariaLabelledBy", "ariaLive", "ariaHidden", "ariaBusy", "ariaChecked", "ariaDisabled", "ariaExpanded", "ariaSelected", "ariaModal", "ariaValueMax", "ariaValueMin", "ariaValueNow", "ariaValueText"], outputs: ["endReached", "startReached", "refresh", "viewableItemsChanged", "scrollToIndexFailed", "accessibilityAction", "accessibilityTap", "magicTap", "accessibilityEscape"] }, { kind: "directive", type: VListItemDirective, selector: "[vListItem]" }, { kind: "directive", type: VListHeaderDirective, selector: "[vListHeader]" }, { kind: "directive", type: VListFooterDirective, selector: "[vListFooter]" }, { kind: "directive", type: VListEmptyDirective, selector: "[vListEmpty]" }, { kind: "directive", type: VListSeparatorDirective, selector: "[vListSeparator]" }, { kind: "directive", type: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext"] }, { kind: "component", type: ViewHost, selector: "symbiote-view, View" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
443
+ `, isInline: true, dependencies: [{ kind: "component", type: VirtualizedList, selector: "VirtualizedList", inputs: ["data", "getItem", "getItemCount", "keyExtractor", "getItemLayout", "horizontal", "inverted", "extraData", "onEndReachedThreshold", "onStartReachedThreshold", "refreshing", "progressViewOffset", "refreshRequested", "viewabilityConfig", "viewabilityConfigCallbackPairs", "initialNumToRender", "initialScrollIndex", "maxToRenderPerBatch", "updateCellsBatchingPeriod", "windowSize", "stickyHeaderIndices", "maintainVisibleContentPosition", "onScroll", "onScrollBeginDrag", "onScrollEndDrag", "onMomentumScrollBegin", "onMomentumScrollEnd", "scrollEventThrottle", "keyboardShouldPersistTaps", "keyboardDismissMode", "style", "contentContainerStyle", "testID", "nativeID", "accessible", "accessibilityLabel", "accessibilityHint", "accessibilityRole", "accessibilityState", "accessibilityValue", "accessibilityActions", "accessibilityLabelledBy", "importantForAccessibility", "accessibilityLiveRegion", "screenReaderFocusable", "accessibilityViewIsModal", "accessibilityElementsHidden", "accessibilityIgnoresInvertColors", "accessibilityLanguage", "accessibilityRespondsToUserInteraction", "accessibilityShowsLargeContentViewer", "accessibilityLargeContentTitle", "role", "ariaLabel", "ariaLabelledBy", "ariaLive", "ariaHidden", "ariaBusy", "ariaChecked", "ariaDisabled", "ariaExpanded", "ariaSelected", "ariaModal", "ariaValueMax", "ariaValueMin", "ariaValueNow", "ariaValueText"], outputs: ["endReached", "startReached", "refresh", "viewableItemsChanged", "scrollToIndexFailed", "accessibilityAction", "accessibilityTap", "magicTap", "accessibilityEscape"] }, { kind: "directive", type: VListItemDirective, selector: "[vListItem]" }, { kind: "directive", type: VListHeaderDirective, selector: "[vListHeader]" }, { kind: "directive", type: VListFooterDirective, selector: "[vListFooter]" }, { kind: "directive", type: VListEmptyDirective, selector: "[vListEmpty]" }, { kind: "directive", type: VListSeparatorDirective, selector: "[vListSeparator]" }, { kind: "directive", type: VListOutletDirective, selector: "[vListOutlet]", inputs: ["vListOutlet", "vListOutletContext"] }, { kind: "component", type: ViewHost, selector: "view" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
436
444
  }
437
445
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: FlatList, decorators: [{
438
446
  type: Component,
@@ -492,20 +500,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
492
500
  [scrollEventThrottle]="scrollEventThrottle"
493
501
  [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
494
502
  [keyboardDismissMode]="keyboardDismissMode"
503
+ [testID]="testID"
495
504
  [style]="resolvedStyle"
496
505
  [contentContainerStyle]="contentContainerStyle"
497
506
  >
498
507
  <ng-template vListItem let-row let-separators="separators">
499
- <symbiote-view [style]="rowStyle">
508
+ <view [style]="rowStyle">
500
509
  @for (cell of rowCells(row, separators); track cell.key) {
501
- <symbiote-view [style]="columnCellStyle">
510
+ <view [style]="columnCellStyle">
502
511
  <ng-container
503
512
  [vListOutlet]="itemDir?.templateRef"
504
513
  [vListOutletContext]="cell.context"
505
514
  ></ng-container>
506
- </symbiote-view>
515
+ </view>
507
516
  }
508
- </symbiote-view>
517
+ </view>
509
518
  </ng-template>
510
519
  @if (headerDir !== undefined) {
511
520
  <ng-template vListHeader>
@@ -575,6 +584,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
575
584
  [scrollEventThrottle]="scrollEventThrottle"
576
585
  [keyboardShouldPersistTaps]="keyboardShouldPersistTaps"
577
586
  [keyboardDismissMode]="keyboardDismissMode"
587
+ [testID]="testID"
578
588
  [style]="resolvedStyle"
579
589
  [contentContainerStyle]="contentContainerStyle"
580
590
  >
@@ -636,6 +646,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
636
646
  }], data: [{
637
647
  type: Input,
638
648
  args: [{ required: true }]
649
+ }], testID: [{
650
+ type: Input
639
651
  }], numColumns: [{
640
652
  type: Input
641
653
  }], columnWrapperStyle: [{
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/flat-list/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/flat-list/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { IImageProps } from '@symbiote-native/components';
2
+ import type { IStyleProp, IViewStyle } from '@symbiote-native/engine';
3
+ export interface IAngularImageBackgroundProps extends Omit<IImageProps, 'style'> {
4
+ style?: IStyleProp<IViewStyle>;
5
+ imageStyle?: IStyleProp<IViewStyle> | string;
6
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=image-background-props.js.map