@userflow-tech/react-native 0.4.5 → 0.6.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 (502) hide show
  1. package/README.md +31 -2
  2. package/docs/anchoring.md +6 -1
  3. package/docs/custom-fonts.md +36 -0
  4. package/docs/troubleshooting.md +33 -6
  5. package/lib/commonjs/anchors/AutoAnchorRegistry.js +144 -34
  6. package/lib/commonjs/anchors/AutoAnchorRegistry.js.map +1 -1
  7. package/lib/commonjs/anchors/animationFrame.js +29 -1
  8. package/lib/commonjs/anchors/animationFrame.js.map +1 -1
  9. package/lib/commonjs/anchors/appActive.js +61 -0
  10. package/lib/commonjs/anchors/appActive.js.map +1 -0
  11. package/lib/commonjs/anchors/elementConditionEvaluator.js +25 -8
  12. package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
  13. package/lib/commonjs/anchors/elementTapMonitor.js +67 -12
  14. package/lib/commonjs/anchors/elementTapMonitor.js.map +1 -1
  15. package/lib/commonjs/anchors/elementTargetMatch.js +33 -7
  16. package/lib/commonjs/anchors/elementTargetMatch.js.map +1 -1
  17. package/lib/commonjs/anchors/fiber/FiberScanRootStore.js +8 -0
  18. package/lib/commonjs/anchors/fiber/FiberScanRootStore.js.map +1 -1
  19. package/lib/commonjs/anchors/fiber/detectAppFontFamily.js +341 -0
  20. package/lib/commonjs/anchors/fiber/detectAppFontFamily.js.map +1 -0
  21. package/lib/commonjs/anchors/fiber/fiberInternals.js +66 -0
  22. package/lib/commonjs/anchors/fiber/fiberInternals.js.map +1 -1
  23. package/lib/commonjs/anchors/fiber/indexHostFibers.js +4 -3
  24. package/lib/commonjs/anchors/fiber/indexHostFibers.js.map +1 -1
  25. package/lib/commonjs/anchors/fiber/resolveFiberPath.js +30 -15
  26. package/lib/commonjs/anchors/fiber/resolveFiberPath.js.map +1 -1
  27. package/lib/commonjs/anchors/fiber/visibleScreens.js +6 -0
  28. package/lib/commonjs/anchors/fiber/visibleScreens.js.map +1 -1
  29. package/lib/commonjs/anchors/fiberAnchorCache.js +20 -0
  30. package/lib/commonjs/anchors/fiberAnchorCache.js.map +1 -1
  31. package/lib/commonjs/anchors/gestureHandlerHandoff.js +304 -0
  32. package/lib/commonjs/anchors/gestureHandlerHandoff.js.map +1 -0
  33. package/lib/commonjs/anchors/resolveAnchorHost.js +6 -0
  34. package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
  35. package/lib/commonjs/anchors/resolveAutoAnchorHost.js +11 -6
  36. package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -1
  37. package/lib/commonjs/anchors/resolveElementTargets.js +63 -8
  38. package/lib/commonjs/anchors/resolveElementTargets.js.map +1 -1
  39. package/lib/commonjs/anchors/semanticMatcher.js +43 -21
  40. package/lib/commonjs/anchors/semanticMatcher.js.map +1 -1
  41. package/lib/commonjs/anchors/tapSlop.js +16 -0
  42. package/lib/commonjs/anchors/tapSlop.js.map +1 -0
  43. package/lib/commonjs/anchors/targetPressMonitor.js +66 -12
  44. package/lib/commonjs/anchors/targetPressMonitor.js.map +1 -1
  45. package/lib/commonjs/authoring/fingerprintFromInstance.js +5 -9
  46. package/lib/commonjs/authoring/fingerprintFromInstance.js.map +1 -1
  47. package/lib/commonjs/content/BannerStepButton.js +2 -1
  48. package/lib/commonjs/content/BannerStepButton.js.map +1 -1
  49. package/lib/commonjs/content/RichContentRenderer.js +20 -14
  50. package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
  51. package/lib/commonjs/content/StepButton.js +2 -1
  52. package/lib/commonjs/content/StepButton.js.map +1 -1
  53. package/lib/commonjs/content/openSafeUrl.js +3 -1
  54. package/lib/commonjs/content/openSafeUrl.js.map +1 -1
  55. package/lib/commonjs/content/resolveContentFontFamily.js +96 -0
  56. package/lib/commonjs/content/resolveContentFontFamily.js.map +1 -0
  57. package/lib/commonjs/expo-router/useUserflowExpoRouter.js +6 -0
  58. package/lib/commonjs/expo-router/useUserflowExpoRouter.js.map +1 -1
  59. package/lib/commonjs/index.js +21 -5
  60. package/lib/commonjs/index.js.map +1 -1
  61. package/lib/commonjs/navigation/navigateUrlUtils.js +105 -0
  62. package/lib/commonjs/navigation/navigateUrlUtils.js.map +1 -0
  63. package/lib/commonjs/navigation/openExternalNavigateUrl.js +14 -0
  64. package/lib/commonjs/navigation/openExternalNavigateUrl.js.map +1 -0
  65. package/lib/commonjs/navigation/openFlowNavigateUrl.js +47 -41
  66. package/lib/commonjs/navigation/openFlowNavigateUrl.js.map +1 -1
  67. package/lib/commonjs/pairing/PairingController.js +3 -1
  68. package/lib/commonjs/pairing/PairingController.js.map +1 -1
  69. package/lib/commonjs/runtime/BannerHost.js +38 -29
  70. package/lib/commonjs/runtime/BannerHost.js.map +1 -1
  71. package/lib/commonjs/runtime/TargetPressBridge.js +55 -7
  72. package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
  73. package/lib/commonjs/runtime/UserflowOverlay.js +5 -11
  74. package/lib/commonjs/runtime/UserflowOverlay.js.map +1 -1
  75. package/lib/commonjs/runtime/UserflowProvider.js +66 -40
  76. package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
  77. package/lib/commonjs/runtime/bannerEngine.js +8 -2
  78. package/lib/commonjs/runtime/bannerEngine.js.map +1 -1
  79. package/lib/commonjs/runtime/bannerFlowSpacer.js +71 -0
  80. package/lib/commonjs/runtime/bannerFlowSpacer.js.map +1 -0
  81. package/lib/commonjs/runtime/flowEngine.js +11 -0
  82. package/lib/commonjs/runtime/flowEngine.js.map +1 -1
  83. package/lib/commonjs/runtime/previewStart.js +39 -0
  84. package/lib/commonjs/runtime/previewStart.js.map +1 -0
  85. package/lib/commonjs/runtime/pushBannerLayoutContext.js +101 -0
  86. package/lib/commonjs/runtime/pushBannerLayoutContext.js.map +1 -0
  87. package/lib/commonjs/screenTracker.js +12 -0
  88. package/lib/commonjs/screenTracker.js.map +1 -1
  89. package/lib/commonjs/surfaces/BannerBar.js +79 -61
  90. package/lib/commonjs/surfaces/BannerBar.js.map +1 -1
  91. package/lib/commonjs/surfaces/BannerSurface.js +28 -6
  92. package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
  93. package/lib/commonjs/surfaces/ProgressBar.js +2 -1
  94. package/lib/commonjs/surfaces/ProgressBar.js.map +1 -1
  95. package/lib/commonjs/surfaces/TooltipSurface.js +48 -41
  96. package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
  97. package/lib/commonjs/surfaces/bannerBarLayout.js +77 -10
  98. package/lib/commonjs/surfaces/bannerBarLayout.js.map +1 -1
  99. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js +114 -63
  100. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
  101. package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js +3 -33
  102. package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -1
  103. package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js +2 -1
  104. package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -1
  105. package/lib/commonjs/surfaces/bannerWebView/bannerWebViewHeight.js +33 -0
  106. package/lib/commonjs/surfaces/bannerWebView/bannerWebViewHeight.js.map +1 -0
  107. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js +104 -23
  108. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
  109. package/lib/commonjs/surfaces/hostAccessibilityTrap.js +28 -0
  110. package/lib/commonjs/surfaces/hostAccessibilityTrap.js.map +1 -0
  111. package/lib/commonjs/surfaces/resolveBannerTheme.js +6 -3
  112. package/lib/commonjs/surfaces/resolveBannerTheme.js.map +1 -1
  113. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js +3 -2
  114. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js.map +1 -1
  115. package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js +134 -0
  116. package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
  117. package/lib/commonjs/version.js +1 -1
  118. package/lib/module/anchors/AutoAnchorRegistry.js +145 -35
  119. package/lib/module/anchors/AutoAnchorRegistry.js.map +1 -1
  120. package/lib/module/anchors/animationFrame.js +29 -2
  121. package/lib/module/anchors/animationFrame.js.map +1 -1
  122. package/lib/module/anchors/appActive.js +57 -0
  123. package/lib/module/anchors/appActive.js.map +1 -0
  124. package/lib/module/anchors/elementConditionEvaluator.js +26 -9
  125. package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
  126. package/lib/module/anchors/elementTapMonitor.js +67 -12
  127. package/lib/module/anchors/elementTapMonitor.js.map +1 -1
  128. package/lib/module/anchors/elementTargetMatch.js +32 -7
  129. package/lib/module/anchors/elementTargetMatch.js.map +1 -1
  130. package/lib/module/anchors/fiber/FiberScanRootStore.js +8 -0
  131. package/lib/module/anchors/fiber/FiberScanRootStore.js.map +1 -1
  132. package/lib/module/anchors/fiber/detectAppFontFamily.js +330 -0
  133. package/lib/module/anchors/fiber/detectAppFontFamily.js.map +1 -0
  134. package/lib/module/anchors/fiber/fiberInternals.js +65 -0
  135. package/lib/module/anchors/fiber/fiberInternals.js.map +1 -1
  136. package/lib/module/anchors/fiber/indexHostFibers.js +4 -3
  137. package/lib/module/anchors/fiber/indexHostFibers.js.map +1 -1
  138. package/lib/module/anchors/fiber/resolveFiberPath.js +30 -15
  139. package/lib/module/anchors/fiber/resolveFiberPath.js.map +1 -1
  140. package/lib/module/anchors/fiber/visibleScreens.js +5 -0
  141. package/lib/module/anchors/fiber/visibleScreens.js.map +1 -1
  142. package/lib/module/anchors/fiberAnchorCache.js +19 -0
  143. package/lib/module/anchors/fiberAnchorCache.js.map +1 -1
  144. package/lib/module/anchors/gestureHandlerHandoff.js +298 -0
  145. package/lib/module/anchors/gestureHandlerHandoff.js.map +1 -0
  146. package/lib/module/anchors/resolveAnchorHost.js +1 -0
  147. package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
  148. package/lib/module/anchors/resolveAutoAnchorHost.js +11 -6
  149. package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -1
  150. package/lib/module/anchors/resolveElementTargets.js +63 -8
  151. package/lib/module/anchors/resolveElementTargets.js.map +1 -1
  152. package/lib/module/anchors/semanticMatcher.js +43 -21
  153. package/lib/module/anchors/semanticMatcher.js.map +1 -1
  154. package/lib/module/anchors/tapSlop.js +11 -0
  155. package/lib/module/anchors/tapSlop.js.map +1 -0
  156. package/lib/module/anchors/targetPressMonitor.js +53 -8
  157. package/lib/module/anchors/targetPressMonitor.js.map +1 -1
  158. package/lib/module/authoring/fingerprintFromInstance.js +6 -10
  159. package/lib/module/authoring/fingerprintFromInstance.js.map +1 -1
  160. package/lib/module/content/BannerStepButton.js +2 -1
  161. package/lib/module/content/BannerStepButton.js.map +1 -1
  162. package/lib/module/content/RichContentRenderer.js +20 -14
  163. package/lib/module/content/RichContentRenderer.js.map +1 -1
  164. package/lib/module/content/StepButton.js +2 -1
  165. package/lib/module/content/StepButton.js.map +1 -1
  166. package/lib/module/content/openSafeUrl.js +3 -1
  167. package/lib/module/content/openSafeUrl.js.map +1 -1
  168. package/lib/module/content/resolveContentFontFamily.js +89 -0
  169. package/lib/module/content/resolveContentFontFamily.js.map +1 -0
  170. package/lib/module/expo-router/useUserflowExpoRouter.js +7 -1
  171. package/lib/module/expo-router/useUserflowExpoRouter.js.map +1 -1
  172. package/lib/module/index.js +24 -7
  173. package/lib/module/index.js.map +1 -1
  174. package/lib/module/navigation/navigateUrlUtils.js +94 -0
  175. package/lib/module/navigation/navigateUrlUtils.js.map +1 -0
  176. package/lib/module/navigation/openExternalNavigateUrl.js +11 -0
  177. package/lib/module/navigation/openExternalNavigateUrl.js.map +1 -0
  178. package/lib/module/navigation/openFlowNavigateUrl.js +22 -36
  179. package/lib/module/navigation/openFlowNavigateUrl.js.map +1 -1
  180. package/lib/module/pairing/PairingController.js +3 -1
  181. package/lib/module/pairing/PairingController.js.map +1 -1
  182. package/lib/module/runtime/BannerHost.js +38 -29
  183. package/lib/module/runtime/BannerHost.js.map +1 -1
  184. package/lib/module/runtime/TargetPressBridge.js +56 -8
  185. package/lib/module/runtime/TargetPressBridge.js.map +1 -1
  186. package/lib/module/runtime/UserflowOverlay.js +5 -11
  187. package/lib/module/runtime/UserflowOverlay.js.map +1 -1
  188. package/lib/module/runtime/UserflowProvider.js +66 -40
  189. package/lib/module/runtime/UserflowProvider.js.map +1 -1
  190. package/lib/module/runtime/bannerEngine.js +7 -2
  191. package/lib/module/runtime/bannerEngine.js.map +1 -1
  192. package/lib/module/runtime/bannerFlowSpacer.js +65 -0
  193. package/lib/module/runtime/bannerFlowSpacer.js.map +1 -0
  194. package/lib/module/runtime/flowEngine.js +11 -0
  195. package/lib/module/runtime/flowEngine.js.map +1 -1
  196. package/lib/module/runtime/previewStart.js +35 -0
  197. package/lib/module/runtime/previewStart.js.map +1 -0
  198. package/lib/module/runtime/pushBannerLayoutContext.js +94 -0
  199. package/lib/module/runtime/pushBannerLayoutContext.js.map +1 -0
  200. package/lib/module/screenTracker.js +11 -0
  201. package/lib/module/screenTracker.js.map +1 -1
  202. package/lib/module/surfaces/BannerBar.js +80 -62
  203. package/lib/module/surfaces/BannerBar.js.map +1 -1
  204. package/lib/module/surfaces/BannerSurface.js +28 -6
  205. package/lib/module/surfaces/BannerSurface.js.map +1 -1
  206. package/lib/module/surfaces/ProgressBar.js +2 -1
  207. package/lib/module/surfaces/ProgressBar.js.map +1 -1
  208. package/lib/module/surfaces/TooltipSurface.js +49 -42
  209. package/lib/module/surfaces/TooltipSurface.js.map +1 -1
  210. package/lib/module/surfaces/bannerBarLayout.js +72 -11
  211. package/lib/module/surfaces/bannerBarLayout.js.map +1 -1
  212. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js +115 -64
  213. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
  214. package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js +3 -31
  215. package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -1
  216. package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js +2 -1
  217. package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -1
  218. package/lib/module/surfaces/bannerWebView/bannerWebViewHeight.js +29 -0
  219. package/lib/module/surfaces/bannerWebView/bannerWebViewHeight.js.map +1 -0
  220. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js +104 -23
  221. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
  222. package/lib/module/surfaces/hostAccessibilityTrap.js +24 -0
  223. package/lib/module/surfaces/hostAccessibilityTrap.js.map +1 -0
  224. package/lib/module/surfaces/resolveBannerTheme.js +6 -3
  225. package/lib/module/surfaces/resolveBannerTheme.js.map +1 -1
  226. package/lib/module/surfaces/tooltip/TooltipBubble.js +3 -2
  227. package/lib/module/surfaces/tooltip/TooltipBubble.js.map +1 -1
  228. package/lib/module/surfaces/tooltip/targetSearchSchedule.js +128 -0
  229. package/lib/module/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
  230. package/lib/module/version.js +1 -1
  231. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts +36 -2
  232. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts +0 -4
  234. package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/src/anchors/appActive.d.ts +8 -0
  236. package/lib/typescript/commonjs/src/anchors/appActive.d.ts.map +1 -0
  237. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts +17 -0
  238. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts +7 -0
  240. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts +5 -0
  242. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/src/anchors/fiber/detectAppFontFamily.d.ts +30 -0
  244. package/lib/typescript/commonjs/src/anchors/fiber/detectAppFontFamily.d.ts.map +1 -0
  245. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts +7 -0
  246. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts +3 -2
  248. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
  250. package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/src/anchors/fiber/visibleScreens.d.ts +2 -0
  252. package/lib/typescript/commonjs/src/anchors/fiber/visibleScreens.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts +5 -0
  254. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts +70 -0
  256. package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
  257. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +1 -0
  258. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
  260. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts +2 -0
  263. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts +9 -0
  265. package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts.map +1 -0
  266. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts +13 -8
  267. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/src/content/BannerStepButton.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/src/content/StepButton.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/src/content/openSafeUrl.d.ts.map +1 -1
  273. package/lib/typescript/commonjs/src/content/resolveContentFontFamily.d.ts +35 -0
  274. package/lib/typescript/commonjs/src/content/resolveContentFontFamily.d.ts.map +1 -0
  275. package/lib/typescript/commonjs/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  276. package/lib/typescript/commonjs/src/index.d.ts +6 -5
  277. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts +15 -0
  279. package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts.map +1 -0
  280. package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts +3 -0
  281. package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
  282. package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts +2 -5
  283. package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +6 -0
  285. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/src/runtime/BannerHost.d.ts.map +1 -1
  287. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +3 -0
  288. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
  289. package/lib/typescript/commonjs/src/runtime/UserflowOverlay.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
  291. package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts +5 -1
  292. package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts.map +1 -1
  293. package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts +15 -0
  294. package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
  295. package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/src/runtime/previewStart.d.ts +13 -0
  297. package/lib/typescript/commonjs/src/runtime/previewStart.d.ts.map +1 -0
  298. package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts +22 -0
  299. package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
  300. package/lib/typescript/commonjs/src/screenTracker.d.ts +6 -0
  301. package/lib/typescript/commonjs/src/screenTracker.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts +3 -1
  303. package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts +6 -5
  305. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/src/surfaces/ProgressBar.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts +1 -1
  308. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts +17 -0
  310. package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
  312. package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts +3 -12
  314. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -1
  315. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts +13 -0
  317. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts.map +1 -0
  318. package/lib/typescript/commonjs/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
  319. package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
  320. package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
  321. package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts +4 -1
  322. package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
  323. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
  324. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  325. package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
  326. package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
  327. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  328. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts +36 -2
  329. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  330. package/lib/typescript/module/src/anchors/animationFrame.d.ts +0 -4
  331. package/lib/typescript/module/src/anchors/animationFrame.d.ts.map +1 -1
  332. package/lib/typescript/module/src/anchors/appActive.d.ts +8 -0
  333. package/lib/typescript/module/src/anchors/appActive.d.ts.map +1 -0
  334. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts +17 -0
  335. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts.map +1 -1
  336. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts +7 -0
  337. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts.map +1 -1
  338. package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts +5 -0
  339. package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -1
  340. package/lib/typescript/module/src/anchors/fiber/detectAppFontFamily.d.ts +30 -0
  341. package/lib/typescript/module/src/anchors/fiber/detectAppFontFamily.d.ts.map +1 -0
  342. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts +7 -0
  343. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  344. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts +3 -2
  345. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
  346. package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
  347. package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
  348. package/lib/typescript/module/src/anchors/fiber/visibleScreens.d.ts +2 -0
  349. package/lib/typescript/module/src/anchors/fiber/visibleScreens.d.ts.map +1 -1
  350. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts +5 -0
  351. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts.map +1 -1
  352. package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts +70 -0
  353. package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
  354. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +1 -0
  355. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  356. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
  357. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  358. package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts.map +1 -1
  359. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts +2 -0
  360. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts.map +1 -1
  361. package/lib/typescript/module/src/anchors/tapSlop.d.ts +9 -0
  362. package/lib/typescript/module/src/anchors/tapSlop.d.ts.map +1 -0
  363. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts +13 -8
  364. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts.map +1 -1
  365. package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
  366. package/lib/typescript/module/src/content/BannerStepButton.d.ts.map +1 -1
  367. package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
  368. package/lib/typescript/module/src/content/StepButton.d.ts.map +1 -1
  369. package/lib/typescript/module/src/content/openSafeUrl.d.ts.map +1 -1
  370. package/lib/typescript/module/src/content/resolveContentFontFamily.d.ts +35 -0
  371. package/lib/typescript/module/src/content/resolveContentFontFamily.d.ts.map +1 -0
  372. package/lib/typescript/module/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  373. package/lib/typescript/module/src/index.d.ts +6 -5
  374. package/lib/typescript/module/src/index.d.ts.map +1 -1
  375. package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts +15 -0
  376. package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts.map +1 -0
  377. package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts +3 -0
  378. package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
  379. package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts +2 -5
  380. package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
  381. package/lib/typescript/module/src/pairing/PairingController.d.ts +6 -0
  382. package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
  383. package/lib/typescript/module/src/runtime/BannerHost.d.ts.map +1 -1
  384. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +3 -0
  385. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
  386. package/lib/typescript/module/src/runtime/UserflowOverlay.d.ts.map +1 -1
  387. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
  388. package/lib/typescript/module/src/runtime/bannerEngine.d.ts +5 -1
  389. package/lib/typescript/module/src/runtime/bannerEngine.d.ts.map +1 -1
  390. package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts +15 -0
  391. package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
  392. package/lib/typescript/module/src/runtime/flowEngine.d.ts.map +1 -1
  393. package/lib/typescript/module/src/runtime/previewStart.d.ts +13 -0
  394. package/lib/typescript/module/src/runtime/previewStart.d.ts.map +1 -0
  395. package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts +22 -0
  396. package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
  397. package/lib/typescript/module/src/screenTracker.d.ts +6 -0
  398. package/lib/typescript/module/src/screenTracker.d.ts.map +1 -1
  399. package/lib/typescript/module/src/surfaces/BannerBar.d.ts +3 -1
  400. package/lib/typescript/module/src/surfaces/BannerBar.d.ts.map +1 -1
  401. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts +6 -5
  402. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
  403. package/lib/typescript/module/src/surfaces/ProgressBar.d.ts.map +1 -1
  404. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts +1 -1
  405. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
  406. package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts +17 -0
  407. package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts.map +1 -1
  408. package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
  409. package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
  410. package/lib/typescript/module/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts +3 -12
  411. package/lib/typescript/module/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -1
  412. package/lib/typescript/module/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -1
  413. package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts +13 -0
  414. package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts.map +1 -0
  415. package/lib/typescript/module/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
  416. package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
  417. package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
  418. package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts +4 -1
  419. package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
  420. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
  421. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  422. package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
  423. package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
  424. package/lib/typescript/module/src/version.d.ts +1 -1
  425. package/package.json +1 -1
  426. package/src/anchors/AutoAnchorRegistry.ts +166 -35
  427. package/src/anchors/animationFrame.ts +31 -1
  428. package/src/anchors/appActive.ts +63 -0
  429. package/src/anchors/elementConditionEvaluator.ts +29 -12
  430. package/src/anchors/elementTapMonitor.ts +68 -10
  431. package/src/anchors/elementTargetMatch.ts +34 -7
  432. package/src/anchors/fiber/FiberScanRootStore.ts +8 -0
  433. package/src/anchors/fiber/detectAppFontFamily.ts +400 -0
  434. package/src/anchors/fiber/fiberInternals.ts +68 -0
  435. package/src/anchors/fiber/indexHostFibers.ts +8 -3
  436. package/src/anchors/fiber/resolveFiberPath.ts +25 -16
  437. package/src/anchors/fiber/visibleScreens.ts +5 -0
  438. package/src/anchors/fiberAnchorCache.ts +19 -0
  439. package/src/anchors/gestureHandlerHandoff.ts +356 -0
  440. package/src/anchors/resolveAnchorHost.ts +2 -0
  441. package/src/anchors/resolveAutoAnchorHost.ts +18 -8
  442. package/src/anchors/resolveElementTargets.ts +64 -7
  443. package/src/anchors/semanticMatcher.ts +48 -27
  444. package/src/anchors/tapSlop.ts +18 -0
  445. package/src/anchors/targetPressMonitor.ts +56 -19
  446. package/src/authoring/fingerprintFromInstance.ts +4 -5
  447. package/src/content/BannerStepButton.tsx +2 -1
  448. package/src/content/RichContentRenderer.tsx +19 -13
  449. package/src/content/StepButton.tsx +2 -1
  450. package/src/content/openSafeUrl.ts +3 -1
  451. package/src/content/resolveContentFontFamily.ts +119 -0
  452. package/src/expo-router/useUserflowExpoRouter.ts +10 -1
  453. package/src/index.ts +22 -9
  454. package/src/navigation/navigateUrlUtils.ts +100 -0
  455. package/src/navigation/openExternalNavigateUrl.ts +9 -0
  456. package/src/navigation/openFlowNavigateUrl.ts +36 -36
  457. package/src/pairing/PairingController.ts +9 -1
  458. package/src/runtime/BannerHost.tsx +41 -23
  459. package/src/runtime/TargetPressBridge.tsx +66 -9
  460. package/src/runtime/UserflowOverlay.tsx +7 -9
  461. package/src/runtime/UserflowProvider.tsx +56 -32
  462. package/src/runtime/bannerEngine.ts +10 -2
  463. package/src/runtime/bannerFlowSpacer.tsx +70 -0
  464. package/src/runtime/flowEngine.ts +11 -0
  465. package/src/runtime/previewStart.ts +49 -0
  466. package/src/runtime/pushBannerLayoutContext.tsx +126 -0
  467. package/src/screenTracker.ts +11 -0
  468. package/src/surfaces/BannerBar.tsx +93 -55
  469. package/src/surfaces/BannerSurface.tsx +61 -9
  470. package/src/surfaces/ProgressBar.tsx +2 -1
  471. package/src/surfaces/TooltipSurface.tsx +78 -53
  472. package/src/surfaces/bannerBarLayout.ts +80 -7
  473. package/src/surfaces/bannerWebView/BannerWebViewBar.tsx +151 -57
  474. package/src/surfaces/bannerWebView/bannerNeedsWebView.ts +4 -36
  475. package/src/surfaces/bannerWebView/bannerThemeStyles.ts +2 -1
  476. package/src/surfaces/bannerWebView/bannerWebViewHeight.ts +32 -0
  477. package/src/surfaces/bannerWebView/buildCustomBannerHtml.ts +111 -23
  478. package/src/surfaces/hostAccessibilityTrap.ts +25 -0
  479. package/src/surfaces/resolveBannerTheme.ts +14 -3
  480. package/src/surfaces/tooltip/TooltipBubble.tsx +8 -1
  481. package/src/surfaces/tooltip/targetSearchSchedule.ts +140 -0
  482. package/src/version.ts +1 -1
  483. package/vendor/core/dist/engine/BannerSessionEngine.d.ts +29 -2
  484. package/vendor/core/dist/engine/BannerSessionEngine.d.ts.map +1 -1
  485. package/vendor/core/dist/engine/BannerSessionEngine.js +87 -6
  486. package/vendor/core/dist/engine/BannerSessionEngine.js.map +1 -1
  487. package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -1
  488. package/vendor/core/dist/engine/ClientConditionEngine.js +30 -7
  489. package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -1
  490. package/vendor/core/dist/engine/PairingEngine.d.ts +6 -1
  491. package/vendor/core/dist/engine/PairingEngine.d.ts.map +1 -1
  492. package/vendor/core/dist/engine/PairingEngine.js +23 -3
  493. package/vendor/core/dist/engine/PairingEngine.js.map +1 -1
  494. package/vendor/core/dist/engine/handleActions.d.ts.map +1 -1
  495. package/vendor/core/dist/engine/handleActions.js +67 -2
  496. package/vendor/core/dist/engine/handleActions.js.map +1 -1
  497. package/vendor/core/dist/version.d.ts +1 -1
  498. package/vendor/core/dist/version.js +1 -1
  499. package/vendor/core/package.json +1 -1
  500. package/vendor/protocol/dist/flows.d.ts +2 -0
  501. package/vendor/protocol/dist/flows.d.ts.map +1 -1
  502. package/vendor/protocol/package.json +1 -1
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Taps that react-native-gesture-handler takes away from React Native.
5
+ *
6
+ * When a gesture-handler control activates, it cancels RN's touch stream, so
7
+ * the bridge sees `touchcancel` instead of `touchend`. The handler tag is read
8
+ * off the touched fiber (no import of gesture-handler), and the touch counts
9
+ * as a tap only if that handler later ends from ACTIVE on
10
+ * `onGestureHandlerStateChange`. Apps that never hit this path never subscribe.
11
+ *
12
+ * State numbers are gesture-handler's `State` enum. A future major that
13
+ * renumbers them degrades to "no tap", which is today's behavior.
14
+ */
15
+
16
+ import { getMemoizedProps, getReturn, getStateNode, MAX_ANCESTOR_WALK } from "./fiber/fiberInternals.js";
17
+ import { withinTapSlop } from "./tapSlop.js";
18
+
19
+ /** gesture-handler `State` values this hand-off acts on. */
20
+ export const GESTURE_HANDLER_STATE = {
21
+ FAILED: 1,
22
+ CANCELLED: 3,
23
+ ACTIVE: 4,
24
+ END: 5
25
+ };
26
+
27
+ /** Drop a handed-off touch that never reaches a terminal state. */
28
+ export const GESTURE_HANDLER_HANDOFF_TIMEOUT_MS = 10_000;
29
+ const STATE_CHANGE_EVENT = 'onGestureHandlerStateChange';
30
+ /**
31
+ * Handler tags for the control under `fiber`.
32
+ *
33
+ * Old-API buttons keep `handlerTag` on the class instance. `GestureDetector`
34
+ * keeps a `gesture` prop whose `toGestureArray()` entries each have one.
35
+ * Negative tags (gesture-handler's own root helper) are ignored.
36
+ *
37
+ * The walk stops at the nearest fiber that has a tag. A native handler with
38
+ * `disallowInterruption` (gesture-handler `ScrollView`, `FlatList`,
39
+ * `RefreshControl`) is a container, not a tap, so a scroll that starts inside
40
+ * it is dropped instead of latching the row. Never throws.
41
+ */
42
+ export function collectGestureHandlerTags(fiber) {
43
+ if (fiber == null) return [];
44
+ try {
45
+ let current = fiber;
46
+ let steps = 0;
47
+ while (current && steps < MAX_ANCESTOR_WALK) {
48
+ steps += 1;
49
+ const found = tagsOnFiber(current);
50
+ if (found.pressable.length > 0) return found.pressable;
51
+ // The nearest handler is a scroll container. An outer control did not
52
+ // receive this touch.
53
+ if (found.container) return [];
54
+ current = getReturn(current);
55
+ }
56
+ } catch {
57
+ return [];
58
+ }
59
+ return [];
60
+ }
61
+ export class GestureHandlerHandoff {
62
+ pending = new Map();
63
+ nextId = 1;
64
+ subscription = null;
65
+
66
+ /**
67
+ * Keep `touch` until its handler finishes or it expires.
68
+ * Returns a stop function; calling it drops the touch without a tap.
69
+ */
70
+ track(touch) {
71
+ if (touch.handlerTags.length === 0) return () => {};
72
+ const id = this.nextId;
73
+ this.nextId += 1;
74
+ const pending = {
75
+ ...touch,
76
+ id,
77
+ settled: false,
78
+ finishedTags: new Set(),
79
+ timer: setTimeout(() => {
80
+ this.drop(id);
81
+ }, GESTURE_HANDLER_HANDOFF_TIMEOUT_MS)
82
+ };
83
+ this.pending.set(id, pending);
84
+ this.ensureListening();
85
+ return () => this.drop(id);
86
+ }
87
+
88
+ /** Test helper. Drops every pending touch and unsubscribes. */
89
+ resetForTests() {
90
+ for (const touch of this.pending.values()) {
91
+ touch.settled = true;
92
+ clearTimeout(touch.timer);
93
+ }
94
+ this.pending.clear();
95
+ this.stopListeningIfIdle();
96
+ }
97
+
98
+ /** @internal Test hook: how many touches are still waiting. */
99
+ get pendingCount() {
100
+ return this.pending.size;
101
+ }
102
+ ensureListening() {
103
+ if (this.subscription || this.pending.size === 0) return;
104
+ const emitter = deviceEventEmitter();
105
+ if (!emitter) return;
106
+ this.subscription = emitter.addListener(STATE_CHANGE_EVENT, payload => {
107
+ try {
108
+ this.handleStateChange(payload);
109
+ } catch {
110
+ // A bad payload must not break the next gesture.
111
+ }
112
+ });
113
+ }
114
+ stopListeningIfIdle() {
115
+ if (this.pending.size > 0 || !this.subscription) return;
116
+ this.subscription.remove();
117
+ this.subscription = null;
118
+ }
119
+ handleStateChange(event) {
120
+ const payload = asPayload(event);
121
+ if (!payload) return;
122
+ const matching = [...this.pending.values()].filter(touch => !touch.settled && touch.handlerTags.includes(payload.handlerTag));
123
+ for (const touch of matching) {
124
+ this.apply(touch, payload);
125
+ }
126
+ }
127
+ apply(touch, payload) {
128
+ if (touch.settled || !isTerminal(payload.state)) return;
129
+ if (isCompletedTap(touch, payload)) {
130
+ this.resolve(touch, endPoint(payload));
131
+ return;
132
+ }
133
+ touch.finishedTags.add(payload.handlerTag);
134
+ const allDone = touch.handlerTags.every(tag => touch.finishedTags.has(tag));
135
+ if (allDone) this.drop(touch.id);
136
+ }
137
+ resolve(touch, end) {
138
+ const notify = touch.onResolve;
139
+ this.drop(touch.id);
140
+ try {
141
+ notify(end);
142
+ } catch {
143
+ // One monitor's failure must not skip the other touch on this event.
144
+ }
145
+ }
146
+ drop(id) {
147
+ const touch = this.pending.get(id);
148
+ if (!touch || touch.settled) return;
149
+ touch.settled = true;
150
+ clearTimeout(touch.timer);
151
+ this.pending.delete(id);
152
+ this.stopListeningIfIdle();
153
+ }
154
+ }
155
+
156
+ /** Shared singleton used by the tap monitors. */
157
+ export const gestureHandlerHandoff = new GestureHandlerHandoff();
158
+ function tagsOnFiber(fiber) {
159
+ try {
160
+ const pressable = [];
161
+ const seen = new Set();
162
+ let container = false;
163
+ const add = (tag, isContainer) => {
164
+ if (tag === undefined) return;
165
+ if (isContainer) {
166
+ container = true;
167
+ return;
168
+ }
169
+ if (seen.has(tag)) return;
170
+ seen.add(tag);
171
+ pressable.push(tag);
172
+ };
173
+ const props = getMemoizedProps(fiber);
174
+ add(handlerTagOf(getStateNode(fiber)), props?.disallowInterruption === true);
175
+ const gesture = props?.gesture;
176
+ if (gesture && typeof gesture === 'object' && 'toGestureArray' in gesture) {
177
+ const toArray = gesture.toGestureArray;
178
+ if (typeof toArray === 'function') {
179
+ const list = toArray.call(gesture);
180
+ if (Array.isArray(list)) {
181
+ for (const item of list) {
182
+ const tag = handlerTagOf(item) ?? handlerTagOf(readHandlers(item));
183
+ add(tag, disallowsInterruption(item));
184
+ }
185
+ }
186
+ }
187
+ }
188
+ return {
189
+ pressable,
190
+ container: container && pressable.length === 0
191
+ };
192
+ } catch {
193
+ return {
194
+ pressable: [],
195
+ container: false
196
+ };
197
+ }
198
+ }
199
+
200
+ /** Gesture-handler scroll containers set this so a drag is not stolen. */
201
+ function disallowsInterruption(value) {
202
+ if (!value || typeof value !== 'object' || !('config' in value)) return false;
203
+ const config = value.config;
204
+ if (!config || typeof config !== 'object' || !('disallowInterruption' in config)) return false;
205
+ return config.disallowInterruption === true;
206
+ }
207
+ function readHandlers(value) {
208
+ if (!value || typeof value !== 'object' || !('handlers' in value)) return undefined;
209
+ return value.handlers;
210
+ }
211
+
212
+ /** A mounted gesture-handler tag. `-1` means "not attached yet". */
213
+ function handlerTagOf(value) {
214
+ if (!value || typeof value !== 'object' || !('handlerTag' in value)) return undefined;
215
+ const tag = value.handlerTag;
216
+ if (typeof tag !== 'number' || !Number.isFinite(tag) || tag < 0) return undefined;
217
+ return tag;
218
+ }
219
+ function deviceEventEmitter() {
220
+ try {
221
+ // Lazy so a tap that is never cancelled does not load React Native's emitter
222
+ // into unit tests that only exercise the monitors.
223
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
224
+ const reactNative = require('react-native');
225
+ const emitter = reactNative.DeviceEventEmitter;
226
+ if (!emitter || typeof emitter.addListener !== 'function') return null;
227
+ return emitter;
228
+ } catch {
229
+ return null;
230
+ }
231
+ }
232
+ function asPayload(event) {
233
+ if (!event || typeof event !== 'object') return null;
234
+ const raw = event;
235
+ const body = raw.nativeEvent && typeof raw.nativeEvent === 'object' ? raw.nativeEvent : raw;
236
+ if (typeof body.handlerTag !== 'number' || typeof body.state !== 'number') return null;
237
+ return {
238
+ handlerTag: body.handlerTag,
239
+ state: body.state,
240
+ ...(typeof body.oldState === 'number' ? {
241
+ oldState: body.oldState
242
+ } : {}),
243
+ ...(typeof body.pointerInside === 'boolean' ? {
244
+ pointerInside: body.pointerInside
245
+ } : {}),
246
+ ...(typeof body.translationX === 'number' ? {
247
+ translationX: body.translationX
248
+ } : {}),
249
+ ...(typeof body.translationY === 'number' ? {
250
+ translationY: body.translationY
251
+ } : {}),
252
+ ...(typeof body.absoluteX === 'number' ? {
253
+ absoluteX: body.absoluteX
254
+ } : {}),
255
+ ...(typeof body.absoluteY === 'number' ? {
256
+ absoluteY: body.absoluteY
257
+ } : {}),
258
+ hasDuration: 'duration' in body && body.duration != null
259
+ };
260
+ }
261
+ function isTerminal(state) {
262
+ return state === GESTURE_HANDLER_STATE.FAILED || state === GESTURE_HANDLER_STATE.CANCELLED || state === GESTURE_HANDLER_STATE.END;
263
+ }
264
+ function isCompletedTap(touch, payload) {
265
+ if (payload.state !== GESTURE_HANDLER_STATE.END) return false;
266
+ if (payload.oldState !== GESTURE_HANDLER_STATE.ACTIVE) return false;
267
+ if (payload.pointerInside === false) return false;
268
+ if (payload.hasDuration) return false;
269
+ if (payload.translationX !== undefined && payload.translationY !== undefined && !withinTapSlop({
270
+ pageX: 0,
271
+ pageY: 0
272
+ }, {
273
+ pageX: payload.translationX,
274
+ pageY: payload.translationY
275
+ })) {
276
+ return false;
277
+ }
278
+ if (payload.absoluteX !== undefined && payload.absoluteY !== undefined) {
279
+ if (!withinTapSlop({
280
+ pageX: touch.pageX,
281
+ pageY: touch.pageY
282
+ }, {
283
+ pageX: payload.absoluteX,
284
+ pageY: payload.absoluteY
285
+ })) {
286
+ return false;
287
+ }
288
+ }
289
+ return true;
290
+ }
291
+ function endPoint(payload) {
292
+ if (payload.absoluteX === undefined || payload.absoluteY === undefined) return null;
293
+ return {
294
+ pageX: payload.absoluteX,
295
+ pageY: payload.absoluteY
296
+ };
297
+ }
298
+ //# sourceMappingURL=gestureHandlerHandoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getMemoizedProps","getReturn","getStateNode","MAX_ANCESTOR_WALK","withinTapSlop","GESTURE_HANDLER_STATE","FAILED","CANCELLED","ACTIVE","END","GESTURE_HANDLER_HANDOFF_TIMEOUT_MS","STATE_CHANGE_EVENT","collectGestureHandlerTags","fiber","current","steps","found","tagsOnFiber","pressable","length","container","GestureHandlerHandoff","pending","Map","nextId","subscription","track","touch","handlerTags","id","settled","finishedTags","Set","timer","setTimeout","drop","set","ensureListening","resetForTests","values","clearTimeout","clear","stopListeningIfIdle","pendingCount","size","emitter","deviceEventEmitter","addListener","payload","handleStateChange","remove","event","asPayload","matching","filter","includes","handlerTag","apply","isTerminal","state","isCompletedTap","resolve","endPoint","add","allDone","every","tag","has","end","notify","onResolve","get","delete","gestureHandlerHandoff","seen","isContainer","undefined","push","props","handlerTagOf","disallowInterruption","gesture","toArray","toGestureArray","list","call","Array","isArray","item","readHandlers","disallowsInterruption","value","config","handlers","Number","isFinite","reactNative","require","DeviceEventEmitter","raw","body","nativeEvent","oldState","pointerInside","translationX","translationY","absoluteX","absoluteY","hasDuration","duration","pageX","pageY"],"sourceRoot":"../../../src","sources":["anchors/gestureHandlerHandoff.ts"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ import { findAnchorFiber } from "./fiber/findAnchorFiber.js";
7
7
  import { createFiberMeasureInWindow } from "./fiber/measureHostFiber.js";
8
8
  import { isFiberOnVisibleScreen } from "./fiber/visibleScreens.js";
9
9
  import { clearFiberAnchorCache as clearCache, deleteCachedFiberAnchor, getCachedFiberAnchor, getFiberAnchorScreenKey, invalidateFiberAnchor as dropCachedFiberAnchor, notifyAnchorScreenChange as onAnchorScreenChange, setCachedFiberAnchor } from "./fiberAnchorCache.js";
10
+ export { subscribeAnchorScreenChange } from "./fiberAnchorCache.js";
10
11
  /** Invalidate fiber-resolved anchors when the active screen changes. */
11
12
  export function notifyAnchorScreenChange(screenKey) {
12
13
  onAnchorScreenChange(screenKey);
@@ -1 +1 @@
1
- {"version":3,"names":["anchorRegistry","fiberScanRoot","isFiberMounted","findAnchorFiber","createFiberMeasureInWindow","isFiberOnVisibleScreen","clearFiberAnchorCache","clearCache","deleteCachedFiberAnchor","getCachedFiberAnchor","getFiberAnchorScreenKey","invalidateFiberAnchor","dropCachedFiberAnchor","notifyAnchorScreenChange","onAnchorScreenChange","setCachedFiberAnchor","screenKey","id","resolveAnchorHost","status","isAmbiguous","registered","get","host","cached","currentScreenKey","fiber","measureInWindow","root","getFiber","result"],"sourceRoot":"../../../src","sources":["anchors/resolveAnchorHost.ts"],"mappings":";;AAAA,SAA0BA,cAAc,QAAQ,qBAAkB;AAClE,SAASC,aAAa,QAAQ,0BAAuB;AAErD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,eAAe,QAAQ,4BAAyB;AACzD,SAASC,0BAA0B,QAAQ,6BAA0B;AACrE,SAASC,sBAAsB,QAAQ,2BAAwB;AAC/D,SACEC,qBAAqB,IAAIC,UAAU,EACnCC,uBAAuB,EACvBC,oBAAoB,EACpBC,uBAAuB,EACvBC,qBAAqB,IAAIC,qBAAqB,EAC9CC,wBAAwB,IAAIC,oBAAoB,EAChDC,oBAAoB,QACf,uBAAoB;AAO3B;AACA,OAAO,SAASF,wBAAwBA,CAACG,SAAwB,EAAQ;EACvEF,oBAAoB,CAACE,SAAS,CAAC;AACjC;;AAEA;AACA,OAAO,SAASV,qBAAqBA,CAAA,EAAS;EAC5CC,UAAU,CAAC,CAAC;AACd;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASI,qBAAqBA,CAACM,EAAU,EAAQ;EACtDL,qBAAqB,CAACK,EAAE,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACD,EAAU,EAAoB;EAC9D,IAAI,CAACA,EAAE,EAAE,OAAO;IAAEE,MAAM,EAAE;EAAU,CAAC;;EAErC;EACA,IAAInB,cAAc,CAACoB,WAAW,CAACH,EAAE,CAAC,EAAE;IAClC,OAAO;MAAEE,MAAM,EAAE;IAAY,CAAC;EAChC;EACA,MAAME,UAAU,GAAGrB,cAAc,CAACsB,GAAG,CAACL,EAAE,CAAC;EACzC,IAAII,UAAU,EAAE;IACd,OAAO;MAAEF,MAAM,EAAE,OAAO;MAAEI,IAAI,EAAEF;IAAW,CAAC;EAC9C;;EAEA;EACA;EACA,MAAMG,MAAM,GAAGf,oBAAoB,CAACQ,EAAE,CAAC;EACvC,MAAMQ,gBAAgB,GAAGf,uBAAuB,CAAC,CAAC;EAClD,IACEc,MAAM,IACNA,MAAM,CAACR,SAAS,KAAKS,gBAAgB,IACrCvB,cAAc,CAACsB,MAAM,CAACE,KAAK,CAAC,IAC5BrB,sBAAsB,CAACmB,MAAM,CAACE,KAAK,CAAC,EACpC;IACA,OAAO;MACLP,MAAM,EAAE,OAAO;MACfI,IAAI,EAAE;QAAEI,eAAe,EAAEvB,0BAA0B,CAACoB,MAAM,CAACE,KAAK;MAAE,CAAC;MACnEA,KAAK,EAAEF,MAAM,CAACE;IAChB,CAAC;EACH;EACA,IAAIF,MAAM,EAAE;IACVhB,uBAAuB,CAACS,EAAE,CAAC;EAC7B;EAEA,MAAMW,IAAI,GAAG3B,aAAa,CAAC4B,QAAQ,CAAC,CAAC;EACrC,IAAI,CAACD,IAAI,EAAE;IACT,OAAO;MAAET,MAAM,EAAE;IAAU,CAAC;EAC9B;EAEA,MAAMW,MAAM,GAAG3B,eAAe,CAACyB,IAAI,EAAEX,EAAE,CAAC;EACxC,IAAIa,MAAM,CAACX,MAAM,KAAK,WAAW,EAAE;IACjC,OAAO;MAAEA,MAAM,EAAE;IAAY,CAAC;EAChC;EACA,IAAIW,MAAM,CAACX,MAAM,KAAK,SAAS,EAAE;IAC/B,OAAO;MAAEA,MAAM,EAAE;IAAU,CAAC;EAC9B;EAEAJ,oBAAoB,CAACE,EAAE,EAAEa,MAAM,CAACJ,KAAK,CAAC;EACtC,OAAO;IACLP,MAAM,EAAE,OAAO;IACfI,IAAI,EAAE;MAAEI,eAAe,EAAEvB,0BAA0B,CAAC0B,MAAM,CAACJ,KAAK;IAAE,CAAC;IACnEA,KAAK,EAAEI,MAAM,CAACJ;EAChB,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["anchorRegistry","fiberScanRoot","isFiberMounted","findAnchorFiber","createFiberMeasureInWindow","isFiberOnVisibleScreen","clearFiberAnchorCache","clearCache","deleteCachedFiberAnchor","getCachedFiberAnchor","getFiberAnchorScreenKey","invalidateFiberAnchor","dropCachedFiberAnchor","notifyAnchorScreenChange","onAnchorScreenChange","setCachedFiberAnchor","subscribeAnchorScreenChange","screenKey","id","resolveAnchorHost","status","isAmbiguous","registered","get","host","cached","currentScreenKey","fiber","measureInWindow","root","getFiber","result"],"sourceRoot":"../../../src","sources":["anchors/resolveAnchorHost.ts"],"mappings":"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","ignoreList":[]}
@@ -103,7 +103,10 @@ export function resolveScoredAutoAnchor(fp) {
103
103
  });
104
104
  if (visible.instance) return mapMatch(visible);
105
105
  if (visible.reason === 'no-candidates') {
106
- const any = matchFingerprint(fp);
106
+ // Nothing can commit between the two matches, so the first read stands.
107
+ const any = matchFingerprint(fp, {
108
+ liveContentFresh: true
109
+ });
107
110
  if (any.instance) return {
108
111
  status: 'absent',
109
112
  match: any
@@ -120,10 +123,11 @@ export function resolveScoredAutoAnchor(fp) {
120
123
  * carries a real `testID` / `userflowId` / non-`uf_` `nativeID` still resolves
121
124
  * under Babel `stampOnly: true` (no auto-registry population).
122
125
  *
123
- * Scored matches run over `autoAnchorRegistry` and fail closed: weak or
124
- * non-unique evidence is `unknown`, not `absent`, so ELEMENT gates stay blocked
125
- * rather than inventing a truth value. Hosts on a covered navigator screen
126
- * are skipped the same way the fiber scan skips them.
126
+ * Scored matches run over `autoAnchorRegistry`. A covered screen and a
127
+ * contradicted fingerprint are `absent`. Weak, missing, or tied evidence stays
128
+ * `unknown` here; element conditions decide which of those count as absent.
129
+ * Hosts on a covered navigator screen are skipped the same way the fiber scan
130
+ * skips them.
127
131
  */
128
132
  export function resolveAutoAnchorHost(autoData) {
129
133
  const decoded = decodeInput(autoData);
@@ -147,7 +151,8 @@ export function resolveAutoAnchorHost(autoData) {
147
151
  status: 'ambiguous'
148
152
  };
149
153
  return {
150
- status: 'unknown'
154
+ status: 'unknown',
155
+ fiberMiss: fiberHit.reason
151
156
  };
152
157
  }
153
158
  const exactId = exactIdFromFingerprint(fp);
@@ -1 +1 @@
1
- {"version":3,"names":["decodeMobileAutoData","fiberFromPublicInstance","createFiberMeasureInWindow","resolveFiberPath","createVisibleInstanceFilter","resolveAnchorHost","matchFingerprint","isMeasurableNode","value","measureInWindow","hostFromInstance","inst","node","ref","current","callback","scrollIntoView","fiber","fiberFromInstance","exactIdFromFingerprint","fp","userflowId","testID","nativeID","startsWith","decodeInput","autoData","trim","mapMatch","match","instance","host","status","reason","resolveScoredAutoAnchor","visible","instanceFilter","any","resolveAutoAnchorHost","decoded","fingerprint","resolver","fiberPath","fiberHit","fiberCacheId","cacheId","exactId","exact"],"sourceRoot":"../../../src","sources":["anchors/resolveAutoAnchorHost.ts"],"mappings":";;AAAA,SACEA,oBAAoB,QAGf,yBAAyB;AAKhC,SAASC,uBAAuB,QAAQ,2BAAwB;AAChE,SAASC,0BAA0B,QAAQ,6BAA0B;AACrE,SAASC,gBAAgB,QAAQ,6BAA0B;AAC3D,SAASC,2BAA2B,QAAQ,gCAA6B;AACzE,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,gBAAgB,QAA0B,sBAAmB;AAyBtE,SAASC,gBAAgBA,CAACC,KAAc,EAA2B;EACjE,OACE,OAAOA,KAAK,KAAK,QAAQ,IACzBA,KAAK,KAAK,IAAI,IACd,OAAQA,KAAK,CAAmCC,eAAe,KAAK,UAAU;AAElF;;AAEA;AACA;AACA;AACA;AACA,SAASC,gBAAgBA,CAACC,IAAwB,EAAqB;EACrE,MAAMC,IAAI,GAAGD,IAAI,CAACE,GAAG,CAACC,OAAO;EAC7B,IAAIP,gBAAgB,CAACK,IAAI,CAAC,EAAE;IAC1B,OAAO;MACLH,eAAe,EAAGM,QAAQ,IAAK;QAC7BH,IAAI,CAACH,eAAe,CAACM,QAAQ,CAAC;MAChC,CAAC;MACD,IAAI,OAAOH,IAAI,CAACI,cAAc,KAAK,UAAU,GACzC;QACEA,cAAc,EAAEA,CAAA,KAAM;UACpBJ,IAAI,CAACI,cAAc,GAAG,CAAC;QACzB;MACF,CAAC,GACD,CAAC,CAAC;IACR,CAAC;EACH;EACA,MAAMC,KAAK,GAAGC,iBAAiB,CAACP,IAAI,CAAC;EACrC,IAAI,CAACM,KAAK,EAAE,OAAO,IAAI;EACvB,OAAO;IAAER,eAAe,EAAEP,0BAA0B,CAACe,KAAK;EAAE,CAAC;AAC/D;AAEA,SAASC,iBAAiBA,CAACP,IAAwB,EAAmB;EACpE,OAAOV,uBAAuB,CAACU,IAAI,CAACE,GAAG,CAACC,OAAO,CAAC;AAClD;;AAEA;AACA,OAAO,SAASK,sBAAsBA,CAACC,EAAqB,EAAiB;EAC3E,IAAIA,EAAE,CAACC,UAAU,EAAE,OAAOD,EAAE,CAACC,UAAU;EACvC,IAAID,EAAE,CAACE,MAAM,EAAE,OAAOF,EAAE,CAACE,MAAM;EAC/B,IAAIF,EAAE,CAACG,QAAQ,IAAI,CAACH,EAAE,CAACG,QAAQ,CAACC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAOJ,EAAE,CAACG,QAAQ;EACrE,OAAO,IAAI;AACb;AAEA,SAASE,WAAWA,CAACC,QAAoD,EAAyB;EAChG,IAAIA,QAAQ,IAAI,IAAI,EAAE,OAAO,IAAI;EACjC,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;IAChC,IAAI,CAACA,QAAQ,CAACC,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI;IACjC,OAAO3B,oBAAoB,CAAC0B,QAAQ,CAAC;EACvC;EACA,OAAOA,QAAQ;AACjB;AAEA,SAASE,QAAQA,CAACC,KAAkB,EAAwB;EAC1D,IAAIA,KAAK,CAACC,QAAQ,EAAE;IAClB,MAAMC,IAAI,GAAGrB,gBAAgB,CAACmB,KAAK,CAACC,QAAQ,CAAC;IAC7C,IAAI,CAACC,IAAI,EAAE,OAAO;MAAEC,MAAM,EAAE,SAAS;MAAEH;IAAM,CAAC;IAC9C,MAAMZ,KAAK,GAAGC,iBAAiB,CAACW,KAAK,CAACC,QAAQ,CAAC;IAC/C,OAAO;MAAEE,MAAM,EAAE,OAAO;MAAED,IAAI;MAAEF,KAAK;MAAE,IAAIZ,KAAK,GAAG;QAAEA;MAAM,CAAC,GAAG,CAAC,CAAC;IAAE,CAAC;EACtE;EAEA,QAAQY,KAAK,CAACI,MAAM;IAClB,KAAK,uBAAuB;MAC1B,OAAO;QAAED,MAAM,EAAE,WAAW;QAAEH;MAAM,CAAC;IACvC,KAAK,kBAAkB;MACrB,OAAO;QAAEG,MAAM,EAAE,QAAQ;QAAEH;MAAM,CAAC;IACpC;MACE;MACA,OAAO;QAAEG,MAAM,EAAE,SAAS;QAAEH;MAAM,CAAC;EACvC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,uBAAuBA,CAACd,EAAqB,EAAwB;EACnF,MAAMe,OAAO,GAAG7B,gBAAgB,CAACc,EAAE,EAAE;IAAEgB,cAAc,EAAEhC,2BAA2B,CAAC;EAAE,CAAC,CAAC;EACvF,IAAI+B,OAAO,CAACL,QAAQ,EAAE,OAAOF,QAAQ,CAACO,OAAO,CAAC;EAE9C,IAAIA,OAAO,CAACF,MAAM,KAAK,eAAe,EAAE;IACtC,MAAMI,GAAG,GAAG/B,gBAAgB,CAACc,EAAE,CAAC;IAChC,IAAIiB,GAAG,CAACP,QAAQ,EAAE,OAAO;MAAEE,MAAM,EAAE,QAAQ;MAAEH,KAAK,EAAEQ;IAAI,CAAC;IACzD,IAAIA,GAAG,CAACJ,MAAM,KAAK,kBAAkB,EAAE,OAAOL,QAAQ,CAACS,GAAG,CAAC;EAC7D;EAEA,OAAOT,QAAQ,CAACO,OAAO,CAAC;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,qBAAqBA,CACnCZ,QAAoD,EAC9B;EACtB,MAAMa,OAAO,GAAGd,WAAW,CAACC,QAAQ,CAAC;EACrC,MAAMN,EAAE,GAAGmB,OAAO,EAAEC,WAAW;EAC/B,IAAI,CAACpB,EAAE,EAAE,OAAO;IAAEY,MAAM,EAAE;EAAU,CAAC;EAErC,IAAIO,OAAO,CAACE,QAAQ,KAAK,OAAO,IAAIF,OAAO,CAACG,SAAS,EAAE;IACrD,MAAMC,QAAQ,GAAGxC,gBAAgB,CAACoC,OAAO,CAACG,SAAS,CAAC;IACpD,IAAIC,QAAQ,CAACX,MAAM,KAAK,OAAO,EAAE;MAC/B,OAAO;QACLA,MAAM,EAAE,OAAO;QACfD,IAAI,EAAE;UAAEtB,eAAe,EAAEP,0BAA0B,CAACyC,QAAQ,CAAC1B,KAAK;QAAE,CAAC;QACrEA,KAAK,EAAE0B,QAAQ,CAAC1B,KAAK;QACrB2B,YAAY,EAAED,QAAQ,CAACE;MACzB,CAAC;IACH;IACA,IAAIF,QAAQ,CAACX,MAAM,KAAK,WAAW,EAAE,OAAO;MAAEA,MAAM,EAAE;IAAY,CAAC;IACnE,OAAO;MAAEA,MAAM,EAAE;IAAU,CAAC;EAC9B;EAEA,MAAMc,OAAO,GAAG3B,sBAAsB,CAACC,EAAE,CAAC;EAC1C,IAAI0B,OAAO,EAAE;IACX,MAAMC,KAAK,GAAG1C,iBAAiB,CAACyC,OAAO,CAAC;IACxC,IAAIC,KAAK,CAACf,MAAM,KAAK,OAAO,EAAE;MAC5B,OAAO;QACLA,MAAM,EAAE,OAAO;QACfD,IAAI,EAAEgB,KAAK,CAAChB,IAAI;QAChBa,YAAY,EAAEE,OAAO;QACrB,IAAIC,KAAK,CAAC9B,KAAK,GAAG;UAAEA,KAAK,EAAE8B,KAAK,CAAC9B;QAAM,CAAC,GAAG,CAAC,CAAC;MAC/C,CAAC;IACH;IACA,IAAI8B,KAAK,CAACf,MAAM,KAAK,WAAW,EAAE;MAChC,OAAO;QAAEA,MAAM,EAAE;MAAY,CAAC;IAChC;EACF;EAEA,OAAOE,uBAAuB,CAACd,EAAE,CAAC;AACpC","ignoreList":[]}
1
+ {"version":3,"names":["decodeMobileAutoData","fiberFromPublicInstance","createFiberMeasureInWindow","resolveFiberPath","createVisibleInstanceFilter","resolveAnchorHost","matchFingerprint","isMeasurableNode","value","measureInWindow","hostFromInstance","inst","node","ref","current","callback","scrollIntoView","fiber","fiberFromInstance","exactIdFromFingerprint","fp","userflowId","testID","nativeID","startsWith","decodeInput","autoData","trim","mapMatch","match","instance","host","status","reason","resolveScoredAutoAnchor","visible","instanceFilter","any","liveContentFresh","resolveAutoAnchorHost","decoded","fingerprint","resolver","fiberPath","fiberHit","fiberCacheId","cacheId","fiberMiss","exactId","exact"],"sourceRoot":"../../../src","sources":["anchors/resolveAutoAnchorHost.ts"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,9 @@
9
9
  * through to scoring only when nothing matched.
10
10
  */
11
11
  import { decodeMobileAutoData } from '@userflow-tech/protocol';
12
+ import { screenIdFromLocation, getCurrentScreenLocation } from "../screenTracker.js";
12
13
  import { anchorRegistry } from "./AnchorRegistry.js";
14
+ import { autoAnchorRegistry } from "./AutoAnchorRegistry.js";
13
15
  import { anchorIdsAboveTap } from "./elementTargetMatch.js";
14
16
  import { fiberScanRoot } from "./fiber/FiberScanRoot.js";
15
17
  import { publicInstanceFromHostFiber } from "./fiber/fiberInternals.js";
@@ -54,19 +56,33 @@ function resolveAutoTargets(autoData) {
54
56
  status: 'unknown'
55
57
  };
56
58
  if (decoded.resolver === 'fiber' && decoded.fiberPath) {
57
- return fromAutoResolution(resolveAutoAnchorHost(decoded));
59
+ return conditionVerdict(resolveAutoAnchorHost(decoded), decoded);
58
60
  }
59
61
  const exactId = exactIdFromFingerprint(fingerprint);
62
+ let exactIdAbsent = false;
60
63
  if (exactId) {
61
64
  const manual = resolveManualTargets(exactId);
62
65
  if (manual.status === 'found') return manual;
66
+ // "Absent" before a scan root exists only means we have not looked yet.
67
+ exactIdAbsent = fiberScanRoot.getFiber() != null;
63
68
  }
64
69
 
65
70
  // The exact id already missed above, so go straight to scoring rather than
66
71
  // letting resolveAutoAnchorHost scan for it again.
67
- return fromAutoResolution(resolveScoredAutoAnchor(fingerprint));
72
+ return conditionVerdict(resolveScoredAutoAnchor(fingerprint), decoded, exactIdAbsent);
68
73
  }
69
- function fromAutoResolution(resolution) {
74
+
75
+ /**
76
+ * Turn an AUTO resolution into the value an element condition can report.
77
+ *
78
+ * A miss (nothing scored, or an exact id that a scan did not find) is absent,
79
+ * matching web. A tie stays unknown on the screen where the element was picked,
80
+ * because the target may be one of the look-alikes, and is absent on any other
81
+ * screen. An empty registry with no exact id, a missing scan root, and a
82
+ * missing fingerprint stay unknown so `stampOnly` cannot open a "not present"
83
+ * gate.
84
+ */
85
+ function conditionVerdict(resolution, decoded, exactIdAbsent = false) {
70
86
  if (resolution.status === 'found') {
71
87
  // Scored matches only try the direct ref pointer, which Paper release
72
88
  // builds null out. Without the index fallback a tap could never match.
@@ -84,16 +100,55 @@ function fromAutoResolution(resolution) {
84
100
  if (resolution.status === 'absent') return {
85
101
  status: 'absent'
86
102
  };
87
- // Ambiguous and unknown both fail closed. Ambiguous is a real tie, not a
88
- // broken selector, so it does not warn.
89
- if (resolution.status === 'ambiguous') return {
90
- status: 'unknown',
91
- silent: true
103
+ if (resolution.status === 'unknown') {
104
+ if (resolution.fiberMiss === 'no-root' || resolution.fiberMiss === 'empty') {
105
+ return {
106
+ status: 'unknown'
107
+ };
108
+ }
109
+ if (resolution.fiberMiss === 'no-match') return {
110
+ status: 'absent'
111
+ };
112
+ }
113
+ const reason = resolution.match?.reason;
114
+ const tie = resolution.status === 'ambiguous' || reason === 'not-unique' || reason === 'ambiguous-explicit-id';
115
+ if (tie) {
116
+ if (offPickedScreen(decoded.screenId)) return {
117
+ status: 'absent'
118
+ };
119
+ // A real tie is not a broken selector, so it does not warn. A weak
120
+ // not-unique miss still does, matching the previous unknown report.
121
+ return reason === 'not-unique' ? {
122
+ status: 'unknown'
123
+ } : {
124
+ status: 'unknown',
125
+ silent: true
126
+ };
127
+ }
128
+ if (reason === 'below-threshold') return {
129
+ status: 'absent'
92
130
  };
131
+ if (reason === 'no-candidates') {
132
+ const nothingToMatch = autoAnchorRegistry.allInstances().length === 0 && !exactIdAbsent;
133
+ if (nothingToMatch) return {
134
+ status: 'unknown'
135
+ };
136
+ return {
137
+ status: 'absent'
138
+ };
139
+ }
93
140
  return {
94
141
  status: 'unknown'
95
142
  };
96
143
  }
144
+
145
+ /** True when the picked screen is known and the app is on a different one. */
146
+ function offPickedScreen(pickedScreenId) {
147
+ if (!pickedScreenId || pickedScreenId === 'unknown') return false;
148
+ const current = screenIdFromLocation(getCurrentScreenLocation());
149
+ if (current === 'unknown') return false;
150
+ return current !== pickedScreenId;
151
+ }
97
152
  function resolveManualTargets(id) {
98
153
  const registered = anchorRegistry.getAll(id);
99
154
  if (registered.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"names":["decodeMobileAutoData","anchorRegistry","anchorIdsAboveTap","fiberScanRoot","publicInstanceFromHostFiber","findAnchorFibers","createLazyHostFiberIndex","lookupHostFiber","createFiberMeasureInWindow","isFiberOnVisibleScreen","exactIdFromFingerprint","resolveAutoAnchorHost","resolveScoredAutoAnchor","resolveManualAnchorId","resolveElementTargets","selector","status","type","resolveAutoTargets","autoData","anchorId","css","resolveManualTargets","tapMayHitSelector","tap","get","has","decoded","fingerprint","resolver","fiberPath","fromAutoResolution","exactId","manual","resolution","fiber","fiberForNode","match","instance","ref","current","targets","host","silent","id","registered","getAll","length","index","map","node","filter","target","root","getFiber","found","fibers","measureInWindow","undefined"],"sourceRoot":"../../../src","sources":["anchors/resolveElementTargets.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["decodeMobileAutoData","screenIdFromLocation","getCurrentScreenLocation","anchorRegistry","autoAnchorRegistry","anchorIdsAboveTap","fiberScanRoot","publicInstanceFromHostFiber","findAnchorFibers","createLazyHostFiberIndex","lookupHostFiber","createFiberMeasureInWindow","isFiberOnVisibleScreen","exactIdFromFingerprint","resolveAutoAnchorHost","resolveScoredAutoAnchor","resolveManualAnchorId","resolveElementTargets","selector","status","type","resolveAutoTargets","autoData","anchorId","css","resolveManualTargets","tapMayHitSelector","tap","get","has","decoded","fingerprint","resolver","fiberPath","conditionVerdict","exactId","exactIdAbsent","manual","getFiber","resolution","fiber","fiberForNode","match","instance","ref","current","targets","host","fiberMiss","reason","tie","offPickedScreen","screenId","silent","nothingToMatch","allInstances","length","pickedScreenId","id","registered","getAll","index","map","node","filter","target","root","found","fibers","measureInWindow","undefined"],"sourceRoot":"../../../src","sources":["anchors/resolveElementTargets.ts"],"mappings":"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","ignoreList":[]}