@userflow-tech/react-native 0.4.4 → 0.5.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 (431) hide show
  1. package/README.md +124 -34
  2. package/docs/anchoring.md +6 -1
  3. package/docs/deep-linking.md +26 -0
  4. package/docs/troubleshooting.md +50 -23
  5. package/expo-plugin/hostDependencyWarnings.d.ts +6 -4
  6. package/expo-plugin/hostDependencyWarnings.d.ts.map +1 -1
  7. package/expo-plugin/hostDependencyWarnings.js +8 -6
  8. package/expo-plugin/hostDependencyWarnings.js.map +1 -1
  9. package/lib/commonjs/anchors/AutoAnchorRegistry.js +144 -34
  10. package/lib/commonjs/anchors/AutoAnchorRegistry.js.map +1 -1
  11. package/lib/commonjs/anchors/animationFrame.js +29 -1
  12. package/lib/commonjs/anchors/animationFrame.js.map +1 -1
  13. package/lib/commonjs/anchors/appActive.js +61 -0
  14. package/lib/commonjs/anchors/appActive.js.map +1 -0
  15. package/lib/commonjs/anchors/elementConditionEvaluator.js +25 -8
  16. package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
  17. package/lib/commonjs/anchors/elementTapMonitor.js +67 -12
  18. package/lib/commonjs/anchors/elementTapMonitor.js.map +1 -1
  19. package/lib/commonjs/anchors/elementTargetMatch.js +33 -7
  20. package/lib/commonjs/anchors/elementTargetMatch.js.map +1 -1
  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/fiberAnchorCache.js +20 -0
  28. package/lib/commonjs/anchors/fiberAnchorCache.js.map +1 -1
  29. package/lib/commonjs/anchors/gestureHandlerHandoff.js +304 -0
  30. package/lib/commonjs/anchors/gestureHandlerHandoff.js.map +1 -0
  31. package/lib/commonjs/anchors/resolveAnchorHost.js +6 -0
  32. package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
  33. package/lib/commonjs/anchors/resolveAutoAnchorHost.js +11 -6
  34. package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -1
  35. package/lib/commonjs/anchors/resolveElementTargets.js +63 -8
  36. package/lib/commonjs/anchors/resolveElementTargets.js.map +1 -1
  37. package/lib/commonjs/anchors/semanticMatcher.js +43 -21
  38. package/lib/commonjs/anchors/semanticMatcher.js.map +1 -1
  39. package/lib/commonjs/anchors/tapSlop.js +16 -0
  40. package/lib/commonjs/anchors/tapSlop.js.map +1 -0
  41. package/lib/commonjs/anchors/targetPressMonitor.js +66 -12
  42. package/lib/commonjs/anchors/targetPressMonitor.js.map +1 -1
  43. package/lib/commonjs/authoring/fingerprintFromInstance.js +5 -9
  44. package/lib/commonjs/authoring/fingerprintFromInstance.js.map +1 -1
  45. package/lib/commonjs/content/RichContentRenderer.js +3 -3
  46. package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
  47. package/lib/commonjs/content/openSafeUrl.js +3 -1
  48. package/lib/commonjs/content/openSafeUrl.js.map +1 -1
  49. package/lib/commonjs/expo-router/useUserflowExpoRouter.js +6 -0
  50. package/lib/commonjs/expo-router/useUserflowExpoRouter.js.map +1 -1
  51. package/lib/commonjs/index.js +19 -5
  52. package/lib/commonjs/index.js.map +1 -1
  53. package/lib/commonjs/installCheck.js +2 -2
  54. package/lib/commonjs/installCheck.js.map +1 -1
  55. package/lib/commonjs/navigation/navigateUrlUtils.js +105 -0
  56. package/lib/commonjs/navigation/navigateUrlUtils.js.map +1 -0
  57. package/lib/commonjs/navigation/openExternalNavigateUrl.js +14 -0
  58. package/lib/commonjs/navigation/openExternalNavigateUrl.js.map +1 -0
  59. package/lib/commonjs/navigation/openFlowNavigateUrl.js +47 -41
  60. package/lib/commonjs/navigation/openFlowNavigateUrl.js.map +1 -1
  61. package/lib/commonjs/pairing/PairingController.js +3 -1
  62. package/lib/commonjs/pairing/PairingController.js.map +1 -1
  63. package/lib/commonjs/runtime/BannerHost.js +38 -29
  64. package/lib/commonjs/runtime/BannerHost.js.map +1 -1
  65. package/lib/commonjs/runtime/TargetPressBridge.js +55 -7
  66. package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
  67. package/lib/commonjs/runtime/UserflowOverlay.js +5 -11
  68. package/lib/commonjs/runtime/UserflowOverlay.js.map +1 -1
  69. package/lib/commonjs/runtime/UserflowProvider.js +66 -40
  70. package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
  71. package/lib/commonjs/runtime/bannerEngine.js +8 -2
  72. package/lib/commonjs/runtime/bannerEngine.js.map +1 -1
  73. package/lib/commonjs/runtime/bannerFlowSpacer.js +71 -0
  74. package/lib/commonjs/runtime/bannerFlowSpacer.js.map +1 -0
  75. package/lib/commonjs/runtime/flowEngine.js +11 -0
  76. package/lib/commonjs/runtime/flowEngine.js.map +1 -1
  77. package/lib/commonjs/runtime/previewStart.js +39 -0
  78. package/lib/commonjs/runtime/previewStart.js.map +1 -0
  79. package/lib/commonjs/runtime/pushBannerLayoutContext.js +98 -0
  80. package/lib/commonjs/runtime/pushBannerLayoutContext.js.map +1 -0
  81. package/lib/commonjs/screenTracker.js +12 -0
  82. package/lib/commonjs/screenTracker.js.map +1 -1
  83. package/lib/commonjs/surfaces/BannerBar.js +79 -61
  84. package/lib/commonjs/surfaces/BannerBar.js.map +1 -1
  85. package/lib/commonjs/surfaces/BannerSurface.js +26 -0
  86. package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
  87. package/lib/commonjs/surfaces/TooltipSurface.js +43 -41
  88. package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
  89. package/lib/commonjs/surfaces/bannerBarLayout.js +77 -10
  90. package/lib/commonjs/surfaces/bannerBarLayout.js.map +1 -1
  91. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js +112 -63
  92. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
  93. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js +59 -11
  94. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
  95. package/lib/commonjs/surfaces/hostAccessibilityTrap.js +28 -0
  96. package/lib/commonjs/surfaces/hostAccessibilityTrap.js.map +1 -0
  97. package/lib/commonjs/surfaces/resolveBannerTheme.js +6 -3
  98. package/lib/commonjs/surfaces/resolveBannerTheme.js.map +1 -1
  99. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js +3 -2
  100. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js.map +1 -1
  101. package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js +134 -0
  102. package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
  103. package/lib/commonjs/version.js +1 -1
  104. package/lib/module/anchors/AutoAnchorRegistry.js +145 -35
  105. package/lib/module/anchors/AutoAnchorRegistry.js.map +1 -1
  106. package/lib/module/anchors/animationFrame.js +29 -2
  107. package/lib/module/anchors/animationFrame.js.map +1 -1
  108. package/lib/module/anchors/appActive.js +57 -0
  109. package/lib/module/anchors/appActive.js.map +1 -0
  110. package/lib/module/anchors/elementConditionEvaluator.js +26 -9
  111. package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
  112. package/lib/module/anchors/elementTapMonitor.js +67 -12
  113. package/lib/module/anchors/elementTapMonitor.js.map +1 -1
  114. package/lib/module/anchors/elementTargetMatch.js +32 -7
  115. package/lib/module/anchors/elementTargetMatch.js.map +1 -1
  116. package/lib/module/anchors/fiber/fiberInternals.js +65 -0
  117. package/lib/module/anchors/fiber/fiberInternals.js.map +1 -1
  118. package/lib/module/anchors/fiber/indexHostFibers.js +4 -3
  119. package/lib/module/anchors/fiber/indexHostFibers.js.map +1 -1
  120. package/lib/module/anchors/fiber/resolveFiberPath.js +30 -15
  121. package/lib/module/anchors/fiber/resolveFiberPath.js.map +1 -1
  122. package/lib/module/anchors/fiberAnchorCache.js +19 -0
  123. package/lib/module/anchors/fiberAnchorCache.js.map +1 -1
  124. package/lib/module/anchors/gestureHandlerHandoff.js +298 -0
  125. package/lib/module/anchors/gestureHandlerHandoff.js.map +1 -0
  126. package/lib/module/anchors/resolveAnchorHost.js +1 -0
  127. package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
  128. package/lib/module/anchors/resolveAutoAnchorHost.js +11 -6
  129. package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -1
  130. package/lib/module/anchors/resolveElementTargets.js +63 -8
  131. package/lib/module/anchors/resolveElementTargets.js.map +1 -1
  132. package/lib/module/anchors/semanticMatcher.js +43 -21
  133. package/lib/module/anchors/semanticMatcher.js.map +1 -1
  134. package/lib/module/anchors/tapSlop.js +11 -0
  135. package/lib/module/anchors/tapSlop.js.map +1 -0
  136. package/lib/module/anchors/targetPressMonitor.js +53 -8
  137. package/lib/module/anchors/targetPressMonitor.js.map +1 -1
  138. package/lib/module/authoring/fingerprintFromInstance.js +6 -10
  139. package/lib/module/authoring/fingerprintFromInstance.js.map +1 -1
  140. package/lib/module/content/RichContentRenderer.js +3 -3
  141. package/lib/module/content/RichContentRenderer.js.map +1 -1
  142. package/lib/module/content/openSafeUrl.js +3 -1
  143. package/lib/module/content/openSafeUrl.js.map +1 -1
  144. package/lib/module/expo-router/useUserflowExpoRouter.js +7 -1
  145. package/lib/module/expo-router/useUserflowExpoRouter.js.map +1 -1
  146. package/lib/module/index.js +22 -7
  147. package/lib/module/index.js.map +1 -1
  148. package/lib/module/installCheck.js +2 -2
  149. package/lib/module/installCheck.js.map +1 -1
  150. package/lib/module/navigation/navigateUrlUtils.js +94 -0
  151. package/lib/module/navigation/navigateUrlUtils.js.map +1 -0
  152. package/lib/module/navigation/openExternalNavigateUrl.js +11 -0
  153. package/lib/module/navigation/openExternalNavigateUrl.js.map +1 -0
  154. package/lib/module/navigation/openFlowNavigateUrl.js +22 -36
  155. package/lib/module/navigation/openFlowNavigateUrl.js.map +1 -1
  156. package/lib/module/pairing/PairingController.js +3 -1
  157. package/lib/module/pairing/PairingController.js.map +1 -1
  158. package/lib/module/runtime/BannerHost.js +38 -29
  159. package/lib/module/runtime/BannerHost.js.map +1 -1
  160. package/lib/module/runtime/TargetPressBridge.js +56 -8
  161. package/lib/module/runtime/TargetPressBridge.js.map +1 -1
  162. package/lib/module/runtime/UserflowOverlay.js +5 -11
  163. package/lib/module/runtime/UserflowOverlay.js.map +1 -1
  164. package/lib/module/runtime/UserflowProvider.js +66 -40
  165. package/lib/module/runtime/UserflowProvider.js.map +1 -1
  166. package/lib/module/runtime/bannerEngine.js +7 -2
  167. package/lib/module/runtime/bannerEngine.js.map +1 -1
  168. package/lib/module/runtime/bannerFlowSpacer.js +65 -0
  169. package/lib/module/runtime/bannerFlowSpacer.js.map +1 -0
  170. package/lib/module/runtime/flowEngine.js +11 -0
  171. package/lib/module/runtime/flowEngine.js.map +1 -1
  172. package/lib/module/runtime/previewStart.js +35 -0
  173. package/lib/module/runtime/previewStart.js.map +1 -0
  174. package/lib/module/runtime/pushBannerLayoutContext.js +91 -0
  175. package/lib/module/runtime/pushBannerLayoutContext.js.map +1 -0
  176. package/lib/module/screenTracker.js +11 -0
  177. package/lib/module/screenTracker.js.map +1 -1
  178. package/lib/module/surfaces/BannerBar.js +80 -62
  179. package/lib/module/surfaces/BannerBar.js.map +1 -1
  180. package/lib/module/surfaces/BannerSurface.js +26 -0
  181. package/lib/module/surfaces/BannerSurface.js.map +1 -1
  182. package/lib/module/surfaces/TooltipSurface.js +44 -42
  183. package/lib/module/surfaces/TooltipSurface.js.map +1 -1
  184. package/lib/module/surfaces/bannerBarLayout.js +72 -11
  185. package/lib/module/surfaces/bannerBarLayout.js.map +1 -1
  186. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js +113 -64
  187. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
  188. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js +59 -11
  189. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
  190. package/lib/module/surfaces/hostAccessibilityTrap.js +24 -0
  191. package/lib/module/surfaces/hostAccessibilityTrap.js.map +1 -0
  192. package/lib/module/surfaces/resolveBannerTheme.js +6 -3
  193. package/lib/module/surfaces/resolveBannerTheme.js.map +1 -1
  194. package/lib/module/surfaces/tooltip/TooltipBubble.js +3 -2
  195. package/lib/module/surfaces/tooltip/TooltipBubble.js.map +1 -1
  196. package/lib/module/surfaces/tooltip/targetSearchSchedule.js +128 -0
  197. package/lib/module/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
  198. package/lib/module/version.js +1 -1
  199. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts +36 -2
  200. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  201. package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts +0 -4
  202. package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts.map +1 -1
  203. package/lib/typescript/commonjs/src/anchors/appActive.d.ts +8 -0
  204. package/lib/typescript/commonjs/src/anchors/appActive.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts +17 -0
  206. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts.map +1 -1
  207. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts +7 -0
  208. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts.map +1 -1
  209. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts +7 -0
  210. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  211. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts +3 -2
  212. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
  213. package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
  214. package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts +5 -0
  216. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts +70 -0
  218. package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +1 -0
  220. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
  222. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  223. package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts.map +1 -1
  224. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts +2 -0
  225. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts.map +1 -1
  226. package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts +9 -0
  227. package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts.map +1 -0
  228. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts +13 -8
  229. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts.map +1 -1
  230. package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
  231. package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
  232. package/lib/typescript/commonjs/src/content/openSafeUrl.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  234. package/lib/typescript/commonjs/src/index.d.ts +6 -5
  235. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  236. package/lib/typescript/commonjs/src/installCheck.d.ts +1 -1
  237. package/lib/typescript/commonjs/src/installCheck.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts +15 -0
  239. package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts.map +1 -0
  240. package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts +3 -0
  241. package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
  242. package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts +2 -5
  243. package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
  244. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +6 -0
  245. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
  246. package/lib/typescript/commonjs/src/runtime/BannerHost.d.ts.map +1 -1
  247. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +3 -0
  248. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
  249. package/lib/typescript/commonjs/src/runtime/UserflowOverlay.d.ts.map +1 -1
  250. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts +5 -1
  252. package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts +15 -0
  254. package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
  255. package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts.map +1 -1
  256. package/lib/typescript/commonjs/src/runtime/previewStart.d.ts +13 -0
  257. package/lib/typescript/commonjs/src/runtime/previewStart.d.ts.map +1 -0
  258. package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts +17 -0
  259. package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
  260. package/lib/typescript/commonjs/src/screenTracker.d.ts +6 -0
  261. package/lib/typescript/commonjs/src/screenTracker.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts +3 -1
  263. package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts +5 -1
  265. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts +1 -1
  267. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts +17 -0
  269. package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
  271. package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
  273. package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
  274. package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
  275. package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts +4 -1
  276. package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
  278. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
  280. package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
  281. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  282. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts +36 -2
  283. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  284. package/lib/typescript/module/src/anchors/animationFrame.d.ts +0 -4
  285. package/lib/typescript/module/src/anchors/animationFrame.d.ts.map +1 -1
  286. package/lib/typescript/module/src/anchors/appActive.d.ts +8 -0
  287. package/lib/typescript/module/src/anchors/appActive.d.ts.map +1 -0
  288. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts +17 -0
  289. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts.map +1 -1
  290. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts +7 -0
  291. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts.map +1 -1
  292. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts +7 -0
  293. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  294. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts +3 -2
  295. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
  296. package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
  297. package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
  298. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts +5 -0
  299. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts.map +1 -1
  300. package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts +70 -0
  301. package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
  302. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +1 -0
  303. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  304. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
  305. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  306. package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts.map +1 -1
  307. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts +2 -0
  308. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts.map +1 -1
  309. package/lib/typescript/module/src/anchors/tapSlop.d.ts +9 -0
  310. package/lib/typescript/module/src/anchors/tapSlop.d.ts.map +1 -0
  311. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts +13 -8
  312. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts.map +1 -1
  313. package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
  314. package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
  315. package/lib/typescript/module/src/content/openSafeUrl.d.ts.map +1 -1
  316. package/lib/typescript/module/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  317. package/lib/typescript/module/src/index.d.ts +6 -5
  318. package/lib/typescript/module/src/index.d.ts.map +1 -1
  319. package/lib/typescript/module/src/installCheck.d.ts +1 -1
  320. package/lib/typescript/module/src/installCheck.d.ts.map +1 -1
  321. package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts +15 -0
  322. package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts.map +1 -0
  323. package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts +3 -0
  324. package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
  325. package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts +2 -5
  326. package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
  327. package/lib/typescript/module/src/pairing/PairingController.d.ts +6 -0
  328. package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
  329. package/lib/typescript/module/src/runtime/BannerHost.d.ts.map +1 -1
  330. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +3 -0
  331. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
  332. package/lib/typescript/module/src/runtime/UserflowOverlay.d.ts.map +1 -1
  333. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
  334. package/lib/typescript/module/src/runtime/bannerEngine.d.ts +5 -1
  335. package/lib/typescript/module/src/runtime/bannerEngine.d.ts.map +1 -1
  336. package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts +15 -0
  337. package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
  338. package/lib/typescript/module/src/runtime/flowEngine.d.ts.map +1 -1
  339. package/lib/typescript/module/src/runtime/previewStart.d.ts +13 -0
  340. package/lib/typescript/module/src/runtime/previewStart.d.ts.map +1 -0
  341. package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts +17 -0
  342. package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
  343. package/lib/typescript/module/src/screenTracker.d.ts +6 -0
  344. package/lib/typescript/module/src/screenTracker.d.ts.map +1 -1
  345. package/lib/typescript/module/src/surfaces/BannerBar.d.ts +3 -1
  346. package/lib/typescript/module/src/surfaces/BannerBar.d.ts.map +1 -1
  347. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts +5 -1
  348. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
  349. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts +1 -1
  350. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
  351. package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts +17 -0
  352. package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts.map +1 -1
  353. package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
  354. package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
  355. package/lib/typescript/module/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
  356. package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
  357. package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
  358. package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts +4 -1
  359. package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
  360. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
  361. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  362. package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
  363. package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
  364. package/lib/typescript/module/src/version.d.ts +1 -1
  365. package/package.json +1 -1
  366. package/src/anchors/AutoAnchorRegistry.ts +166 -35
  367. package/src/anchors/animationFrame.ts +31 -1
  368. package/src/anchors/appActive.ts +63 -0
  369. package/src/anchors/elementConditionEvaluator.ts +29 -12
  370. package/src/anchors/elementTapMonitor.ts +68 -10
  371. package/src/anchors/elementTargetMatch.ts +34 -7
  372. package/src/anchors/fiber/fiberInternals.ts +68 -0
  373. package/src/anchors/fiber/indexHostFibers.ts +8 -3
  374. package/src/anchors/fiber/resolveFiberPath.ts +25 -16
  375. package/src/anchors/fiberAnchorCache.ts +19 -0
  376. package/src/anchors/gestureHandlerHandoff.ts +356 -0
  377. package/src/anchors/resolveAnchorHost.ts +2 -0
  378. package/src/anchors/resolveAutoAnchorHost.ts +18 -8
  379. package/src/anchors/resolveElementTargets.ts +64 -7
  380. package/src/anchors/semanticMatcher.ts +48 -27
  381. package/src/anchors/tapSlop.ts +18 -0
  382. package/src/anchors/targetPressMonitor.ts +56 -19
  383. package/src/authoring/fingerprintFromInstance.ts +4 -5
  384. package/src/content/RichContentRenderer.tsx +4 -3
  385. package/src/content/openSafeUrl.ts +3 -1
  386. package/src/expo-router/useUserflowExpoRouter.ts +10 -1
  387. package/src/index.ts +20 -9
  388. package/src/installCheck.ts +4 -4
  389. package/src/navigation/navigateUrlUtils.ts +100 -0
  390. package/src/navigation/openExternalNavigateUrl.ts +9 -0
  391. package/src/navigation/openFlowNavigateUrl.ts +36 -36
  392. package/src/pairing/PairingController.ts +9 -1
  393. package/src/runtime/BannerHost.tsx +41 -23
  394. package/src/runtime/TargetPressBridge.tsx +66 -9
  395. package/src/runtime/UserflowOverlay.tsx +7 -9
  396. package/src/runtime/UserflowProvider.tsx +56 -32
  397. package/src/runtime/bannerEngine.ts +10 -2
  398. package/src/runtime/bannerFlowSpacer.tsx +70 -0
  399. package/src/runtime/flowEngine.ts +11 -0
  400. package/src/runtime/previewStart.ts +49 -0
  401. package/src/runtime/pushBannerLayoutContext.tsx +121 -0
  402. package/src/screenTracker.ts +11 -0
  403. package/src/surfaces/BannerBar.tsx +93 -55
  404. package/src/surfaces/BannerSurface.tsx +59 -3
  405. package/src/surfaces/TooltipSurface.tsx +63 -51
  406. package/src/surfaces/bannerBarLayout.ts +80 -7
  407. package/src/surfaces/bannerWebView/BannerWebViewBar.tsx +149 -57
  408. package/src/surfaces/bannerWebView/buildCustomBannerHtml.ts +63 -11
  409. package/src/surfaces/hostAccessibilityTrap.ts +25 -0
  410. package/src/surfaces/resolveBannerTheme.ts +14 -3
  411. package/src/surfaces/tooltip/TooltipBubble.tsx +8 -1
  412. package/src/surfaces/tooltip/targetSearchSchedule.ts +140 -0
  413. package/src/version.ts +1 -1
  414. package/vendor/core/dist/engine/BannerSessionEngine.d.ts +29 -2
  415. package/vendor/core/dist/engine/BannerSessionEngine.d.ts.map +1 -1
  416. package/vendor/core/dist/engine/BannerSessionEngine.js +87 -6
  417. package/vendor/core/dist/engine/BannerSessionEngine.js.map +1 -1
  418. package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -1
  419. package/vendor/core/dist/engine/ClientConditionEngine.js +30 -7
  420. package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -1
  421. package/vendor/core/dist/engine/PairingEngine.d.ts +6 -1
  422. package/vendor/core/dist/engine/PairingEngine.d.ts.map +1 -1
  423. package/vendor/core/dist/engine/PairingEngine.js +23 -3
  424. package/vendor/core/dist/engine/PairingEngine.js.map +1 -1
  425. package/vendor/core/dist/engine/handleActions.d.ts.map +1 -1
  426. package/vendor/core/dist/engine/handleActions.js +67 -2
  427. package/vendor/core/dist/engine/handleActions.js.map +1 -1
  428. package/vendor/core/dist/version.d.ts +1 -1
  429. package/vendor/core/dist/version.js +1 -1
  430. package/vendor/core/package.json +1 -1
  431. package/vendor/protocol/package.json +1 -1
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * When TooltipSurface looks for its target.
5
+ *
6
+ * - Anchored: a steady poll, so a covered or remounted host is noticed quickly.
7
+ * Each search is a cache hit for the resolved host.
8
+ * - Missing: exponential backoff. A miss walks the tree and scores registered
9
+ * hosts, so a target on another screen must not cost a full search every
10
+ * second for as long as the flow stays open.
11
+ * - Registry churn (list rows mounting while the user scrolls) pulls the next
12
+ * missing search forward, never closer than {@link MISSING_TRIGGER_GAP_MS}
13
+ * to the previous one.
14
+ * - A screen change or a return to the foreground starts the backoff over.
15
+ * - Nothing runs while paused (app not active).
16
+ */
17
+
18
+ /** Poll while the target is anchored. */
19
+ export const ANCHORED_POLL_MS = 250;
20
+ /** First retry after a miss; doubles per consecutive miss. */
21
+ export const MISSING_BACKOFF_BASE_MS = 250;
22
+ /** Ceiling for the missing-target backoff. */
23
+ export const MISSING_BACKOFF_MAX_MS = 4000;
24
+ /** Closest a registry change can pull a missing search to the previous one. */
25
+ export const MISSING_TRIGGER_GAP_MS = 500;
26
+ const defaultClock = {
27
+ now: () => Date.now(),
28
+ setTimeout: (handler, ms) => setTimeout(handler, ms),
29
+ clearTimeout: handle => clearTimeout(handle)
30
+ };
31
+
32
+ /** Delay before the next search after `misses` consecutive missing searches. */
33
+ export function missingBackoffDelay(misses) {
34
+ const exponent = Math.max(0, misses - 1);
35
+ return Math.min(MISSING_BACKOFF_MAX_MS, MISSING_BACKOFF_BASE_MS * 2 ** exponent);
36
+ }
37
+ export class TargetSearchSchedule {
38
+ mode = 'missing';
39
+ /** Searches run since the target was last anchored (or the backoff restarted). */
40
+ misses = 0;
41
+ lastRunAt = Number.NEGATIVE_INFINITY;
42
+ handle = null;
43
+ dueAt = Number.POSITIVE_INFINITY;
44
+ paused = false;
45
+ disposed = false;
46
+ constructor(search, clock = defaultClock) {
47
+ this.search = search;
48
+ this.clock = clock;
49
+ }
50
+
51
+ /** Search now and schedule the next one. No-op while paused. */
52
+ runNow() {
53
+ if (this.disposed || this.paused) return;
54
+ this.cancel();
55
+ this.lastRunAt = this.clock.now();
56
+ if (this.mode === 'missing') this.misses += 1;
57
+ try {
58
+ this.search();
59
+ } finally {
60
+ if (!this.disposed && !this.paused && this.handle == null) {
61
+ this.scheduleIn(this.nextDelay());
62
+ }
63
+ }
64
+ }
65
+
66
+ /** The target was found or lost. Starts the matching cadence from now. */
67
+ setMode(mode) {
68
+ if (this.disposed || mode === this.mode) return;
69
+ this.mode = mode;
70
+ this.misses = 0;
71
+ if (this.paused) return;
72
+ this.scheduleIn(mode === 'anchored' ? ANCHORED_POLL_MS : MISSING_BACKOFF_BASE_MS);
73
+ }
74
+
75
+ /** Something the target may depend on changed (a registry mount / unmount). */
76
+ trigger() {
77
+ if (this.disposed || this.paused || this.mode !== 'missing') return;
78
+ const now = this.clock.now();
79
+ const dueAt = Math.max(now, this.lastRunAt + MISSING_TRIGGER_GAP_MS);
80
+ if (dueAt >= this.dueAt) return;
81
+ this.scheduleIn(dueAt - now);
82
+ }
83
+
84
+ /** Restart the backoff and search now (screen change, foreground). */
85
+ rearm() {
86
+ if (this.disposed) return;
87
+ this.misses = 0;
88
+ this.runNow();
89
+ }
90
+
91
+ /** Stop searching until {@link resume}. */
92
+ pause() {
93
+ if (this.disposed || this.paused) return;
94
+ this.paused = true;
95
+ this.cancel();
96
+ }
97
+
98
+ /** Leave the paused state and search right away. */
99
+ resume() {
100
+ if (this.disposed || !this.paused) return;
101
+ this.paused = false;
102
+ this.rearm();
103
+ }
104
+ dispose() {
105
+ this.cancel();
106
+ this.disposed = true;
107
+ }
108
+ nextDelay() {
109
+ return this.mode === 'anchored' ? ANCHORED_POLL_MS : missingBackoffDelay(this.misses);
110
+ }
111
+ scheduleIn(ms) {
112
+ this.cancel();
113
+ this.dueAt = this.clock.now() + ms;
114
+ this.handle = this.clock.setTimeout(() => {
115
+ this.handle = null;
116
+ this.dueAt = Number.POSITIVE_INFINITY;
117
+ this.runNow();
118
+ }, ms);
119
+ }
120
+ cancel() {
121
+ if (this.handle != null) {
122
+ this.clock.clearTimeout(this.handle);
123
+ this.handle = null;
124
+ }
125
+ this.dueAt = Number.POSITIVE_INFINITY;
126
+ }
127
+ }
128
+ //# sourceMappingURL=targetSearchSchedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ANCHORED_POLL_MS","MISSING_BACKOFF_BASE_MS","MISSING_BACKOFF_MAX_MS","MISSING_TRIGGER_GAP_MS","defaultClock","now","Date","setTimeout","handler","ms","clearTimeout","handle","missingBackoffDelay","misses","exponent","Math","max","min","TargetSearchSchedule","mode","lastRunAt","Number","NEGATIVE_INFINITY","dueAt","POSITIVE_INFINITY","paused","disposed","constructor","search","clock","runNow","cancel","scheduleIn","nextDelay","setMode","trigger","rearm","pause","resume","dispose"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/targetSearchSchedule.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  /** Generated by scripts/write-version.mjs — do not edit. */
4
- export const SDK_VERSION = '0.4.4';
4
+ export const SDK_VERSION = '0.5.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -83,6 +83,22 @@ export declare class AutoAnchorRegistry {
83
83
  private readonly liveContent;
84
84
  private readonly listeners;
85
85
  private notifyScheduled;
86
+ /** Settled {@link AutoAnchorInstance.ambiguous} verdicts by instance id. */
87
+ private readonly ambiguity;
88
+ /**
89
+ * Groups whose verdicts are out of date: `r:` registry key, `t:` template
90
+ * path, `m:` manual id. Mounting a list or reading changed row labels marks
91
+ * a group once; it is settled once, on the next read of a verdict, instead
92
+ * of being recomputed for every member that changed.
93
+ */
94
+ private readonly staleGroups;
95
+ /**
96
+ * Set instead of {@link staleGroups} once that outgrows the registry: with
97
+ * no flow or element condition reading verdicts, marks from list mounts
98
+ * would otherwise pile up for the whole session.
99
+ */
100
+ private allStale;
101
+ private settling;
86
102
  registerInstance(input: RegisterInstanceInput): {
87
103
  instanceId: string;
88
104
  dispose: () => void;
@@ -104,7 +120,9 @@ export declare class AutoAnchorRegistry {
104
120
  *
105
121
  * Direct fiber pointers are preferred; the scan-root index is built lazily
106
122
  * and only if some instance cannot reach its fiber that way (Paper release
107
- * builds, mainly), then reused for the rest of the pass.
123
+ * builds, mainly), then reused for the rest of the pass. Finding which fiber
124
+ * of each pair is committed walks to the root; the pass shares one walk per
125
+ * ancestor across every instance.
108
126
  *
109
127
  * Silent — does not notify listeners.
110
128
  */
@@ -136,14 +154,30 @@ export declare class AutoAnchorRegistry {
136
154
  * peer shares.
137
155
  */
138
156
  private isTwinWithin;
157
+ /**
158
+ * Back {@link AutoAnchorInstance.ambiguous} with a verdict that is settled on
159
+ * read, so callers holding an instance always see the current value.
160
+ */
161
+ private defineAmbiguity;
162
+ /** Every group `inst` belongs to, plus ids it was indexed under before a change. */
163
+ private markStale;
164
+ private groupIds;
139
165
  /**
140
166
  * Instances sharing a template path are only twins while they look alike.
141
167
  * Four rows from one `field()` helper are indistinguishable at register time
142
168
  * and separate once their labels are read, so ambiguity is decided on
143
169
  * content, not on the shared path alone. An instance stays ambiguous when it
144
170
  * carries no content of its own, or when a peer carries the same content.
171
+ * An instance with a manual id is ambiguous only when another shares the id.
172
+ *
173
+ * Each stale group is settled once, in time linear in its size: recomputing
174
+ * a whole group for every member that changed made a list whose labels all
175
+ * changed cost the cube of its length.
145
176
  */
146
- private recomputeAmbiguity;
177
+ private settleAmbiguity;
178
+ private computeAmbiguous;
179
+ /** {@link isTwinWithin} against a whole registry group, with the group's evidence memoized. */
180
+ private isTwinInGroup;
147
181
  private addIndex;
148
182
  private removeIndex;
149
183
  private idsToInstances;
@@ -1 +1 @@
1
- {"version":3,"file":"AutoAnchorRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/AutoAnchorRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoAnchorRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/AutoAnchorRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- /**
2
- * Shared requestAnimationFrame hub so multiple surfaces never stack loops.
3
- * Mirrors web userflowjs `util/animation-frame.tsx`.
4
- */
5
1
  type Callback = () => void;
6
2
  /**
7
3
  * `callback` runs on every animation frame. Starts the shared loop when the
@@ -1 +1 @@
1
- {"version":3,"file":"animationFrame.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/animationFrame.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAM3B;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAOlE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAQrE;AAED,uEAAuE;AACvE,wBAAgB,2BAA2B,IAAI,IAAI,CAIlD;AAED,kDAAkD;AAClD,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD"}
1
+ {"version":3,"file":"animationFrame.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/animationFrame.ts"],"names":[],"mappings":"AAWA,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAQ3B;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAQlE;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CASrE;AAED,uEAAuE;AACvE,wBAAgB,2BAA2B,IAAI,IAAI,CAKlD;AAED,kDAAkD;AAClD,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD"}
@@ -0,0 +1,8 @@
1
+ /** Whether the app is in the foreground right now. */
2
+ export declare function isAppActive(): boolean;
3
+ /**
4
+ * `listener(active)` runs when the app moves between foreground and anything
5
+ * else. Repeated reports of the same side are dropped. Returns an unsubscribe.
6
+ */
7
+ export declare function subscribeAppActive(listener: (active: boolean) => void): () => void;
8
+ //# sourceMappingURL=appActive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appActive.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/appActive.ts"],"names":[],"mappings":"AA4BA,sDAAsD;AACtD,wBAAgB,WAAW,IAAI,OAAO,CAMrC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAqBlF"}
@@ -6,6 +6,9 @@
6
6
  * tooltip target-press monitor uses. The host fiber is the one captured at
7
7
  * touch start, before the press's setState commits a new tree.
8
8
  *
9
+ * A touch that gesture-handler cancels is handed off instead of dropped: the
10
+ * same fiber is emitted if that handler later ends as a tap.
11
+ *
9
12
  * With no subscribers the monitor stores nothing, so the bridge can skip the
10
13
  * fiber lookup entirely.
11
14
  */
@@ -18,18 +21,32 @@ export type ElementTapListener = (tap: ElementTap) => void;
18
21
  export declare class ElementTapMonitor {
19
22
  private readonly listeners;
20
23
  private readonly touchStarts;
24
+ private readonly handoffStops;
21
25
  get subscriberCount(): number;
22
26
  subscribe(listener: ElementTapListener): () => void;
27
+ /** Fingers with a recorded start that have not ended, cancelled, or been handed off. */
28
+ inProgressIdentifiers(): TouchIdentifier[];
29
+ hasTouch(identifier: TouchIdentifier): boolean;
30
+ /** Fiber captured at touch start, or null when this finger is not in progress. */
31
+ startFiber(identifier: TouchIdentifier): AnyFiber | null;
23
32
  handleTouchStart(identifier: TouchIdentifier, pageX: number, pageY: number, targetFiber: AnyFiber | null): void;
24
33
  /**
25
34
  * Emit a tap when this finger started and ended within slop on a resolved
26
35
  * host. Never claims the responder.
27
36
  */
28
37
  handleTouchEnd(identifier: TouchIdentifier, pageX: number, pageY: number): void;
38
+ /**
39
+ * Gesture-handler cancelled this finger. Forget the RN touch and emit the
40
+ * start fiber if that handler later ends as a tap. A start with no fiber
41
+ * cannot latch, so it is dropped.
42
+ */
43
+ handOffTouch(identifier: TouchIdentifier, handlerTags: readonly number[]): void;
29
44
  /** Drop in-progress gesture(s). Omit `identifier` to clear every finger. */
30
45
  cancelTouch(identifier?: TouchIdentifier): void;
31
46
  /** Test helper. */
32
47
  resetForTests(): void;
48
+ private emit;
49
+ private dropHandoffs;
33
50
  }
34
51
  /** Shared singleton used by TargetPressBridge and the element-condition evaluator. */
35
52
  export declare const elementTapMonitor: ElementTapMonitor;
@@ -1 +1 @@
1
- {"version":3,"file":"elementTapMonitor.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/elementTapMonitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,eAAe,EAAkC,MAAM,sBAAsB,CAAC;AAE5F,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,QAAQ,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;AAM3D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;IAEtE,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAUnD,gBAAgB,CACd,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,QAAQ,GAAG,IAAI,GAC3B,IAAI;IAQP;;;OAGG;IACH,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkB/E,4EAA4E;IAC5E,WAAW,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI;IAQ/C,mBAAmB;IACnB,aAAa,IAAI,IAAI;CAItB;AAED,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
1
+ {"version":3,"file":"elementTapMonitor.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/elementTapMonitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAkC,MAAM,sBAAsB,CAAC;AAE5F,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,QAAQ,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;AAM3D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;IACtE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0C;IAEvE,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAWnD,wFAAwF;IACxF,qBAAqB,IAAI,eAAe,EAAE;IAI1C,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO;IAI9C,kFAAkF;IAClF,UAAU,CAAC,UAAU,EAAE,eAAe,GAAG,QAAQ,GAAG,IAAI;IAIxD,gBAAgB,CACd,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,QAAQ,GAAG,IAAI,GAC3B,IAAI;IAQP;;;OAGG;IACH,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAS/E;;;;OAIG;IACH,YAAY,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAoB/E,4EAA4E;IAC5E,WAAW,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI;IAU/C,mBAAmB;IACnB,aAAa,IAAI,IAAI;IAMrB,OAAO,CAAC,IAAI;IAcZ,OAAO,CAAC,YAAY;CAIrB;AAED,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -9,6 +9,13 @@ import { type AnyFiber } from './fiber/fiberInternals';
9
9
  * shared by every click condition it is delivered to.
10
10
  */
11
11
  export declare function anchorIdsAboveTap(tap: ElementTap): ReadonlySet<string>;
12
+ /**
13
+ * The fiber on `start` (or an ancestor) that carries `anchorId`.
14
+ *
15
+ * The touch-start fiber is kept after the press navigates away, so a click can
16
+ * still match when a live scan of the new screen no longer finds the id.
17
+ */
18
+ export declare function fiberBearingAnchorId(start: AnyFiber, anchorId: string): AnyFiber | null;
12
19
  export declare function sameFiber(a: AnyFiber, b: AnyFiber): boolean;
13
20
  /** True when `node` is `host` or a descendant of it. */
14
21
  export declare function fiberIsUnder(node: AnyFiber, host: AnyFiber): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"elementTargetMatch.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/elementTargetMatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,wBAAwB,CAAC;AAKhC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAkBtE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAM3D;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAOpE;AAoBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAQzE"}
1
+ {"version":3,"file":"elementTargetMatch.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/elementTargetMatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,wBAAwB,CAAC;AAKhC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAYtE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAOvF;AAoBD,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAM3D;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAOpE;AAoBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAQzE"}
@@ -81,6 +81,13 @@ export declare function fiberFromPublicInstance(instance: unknown): AnyFiber | n
81
81
  * Returns the input fiber when the root cannot be resolved (best-effort).
82
82
  */
83
83
  export declare function resolveCurrentFiber(fiber: AnyFiber): AnyFiber;
84
+ /**
85
+ * {@link resolveCurrentFiber} for many fibers in one synchronous pass. Where
86
+ * each ancestor sits is remembered, so the pass walks every ancestor once
87
+ * instead of once per fiber below it. Discard it when the pass ends: a render
88
+ * moves `return` pointers.
89
+ */
90
+ export declare function createCurrentFiberResolver(): (fiber: AnyFiber) => AnyFiber;
84
91
  /**
85
92
  * True when a previously-resolved fiber is still attached to a live tree
86
93
  * (has a return path, or is itself a HostRoot).
@@ -1 +1 @@
1
- {"version":3,"file":"fiberInternals.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/fiberInternals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC;AAQ3B;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAaxC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAEzD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAE3D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAE1D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAGrF;AAkCD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAY9D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAkB7D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAgBpE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAuB1E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAWrF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAErD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAG/D;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAGnE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAiBpD;AAaD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAe1E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAuB7D;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CASvD"}
1
+ {"version":3,"file":"fiberInternals.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/fiberInternals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC;AAQ3B;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAaxC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAEzD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAE3D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAE1D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAE7D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAGrF;AAkCD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAY9D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAkB7D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAgBpE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAE1E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAuB1E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAWrF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAErD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAG/D;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAGnE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAiBpD;AAaD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAe1E;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAuB7D;AAQD;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAsD1E;AAWD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CASvD"}
@@ -36,7 +36,8 @@ export type HostFiberIndexSource = HostFiberIndex | (() => HostFiberIndex);
36
36
  export declare function createLazyHostFiberIndex(build?: () => HostFiberIndex): () => HostFiberIndex;
37
37
  /**
38
38
  * Fiber for a public instance: direct pointer first, then the scan-root index
39
- * by identity / native tag.
39
+ * by identity / native tag. Pass a `createCurrentFiberResolver()` resolver when
40
+ * looking up many instances in one pass.
40
41
  */
41
- export declare function lookupHostFiber(index: HostFiberIndexSource, instance: unknown): AnyFiber | null;
42
+ export declare function lookupHostFiber(index: HostFiberIndexSource, instance: unknown, resolveCurrent?: (fiber: AnyFiber) => AnyFiber): AnyFiber | null;
42
43
  //# sourceMappingURL=indexHostFibers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexHostFibers.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/indexHostFibers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,KAAK,QAAQ,EASd,MAAM,kBAAkB,CAAC;AAK1B,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACvC;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,CAmCtF;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAED,yDAAyD;AACzD,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,GAAE,MAAM,cAAoC,GAChD,MAAM,cAAc,CAYtB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAoB/F"}
1
+ {"version":3,"file":"indexHostFibers.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/indexHostFibers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,KAAK,QAAQ,EASd,MAAM,kBAAkB,CAAC;AAK1B,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CACvC;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,CAmCtF;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAEpD;AAED,yDAAyD;AACzD,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,GAAE,MAAM,cAAoC,GAChD,MAAM,cAAc,CAYtB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,OAAO,EACjB,cAAc,GAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,QAA8B,GAClE,QAAQ,GAAG,IAAI,CAoBjB"}
@@ -5,6 +5,8 @@
5
5
  */
6
6
  import type { MobileFiberPath } from '@userflow-tech/protocol';
7
7
  import { type AnyFiber } from './fiberInternals';
8
+ /** Why a fiber path did not resolve. Element conditions map these differently. */
9
+ export type FiberPathMissReason = 'empty' | 'no-root' | 'no-match';
8
10
  export type FiberPathResolution = {
9
11
  status: 'found';
10
12
  fiber: AnyFiber;
@@ -14,6 +16,7 @@ export type FiberPathResolution = {
14
16
  status: 'ambiguous';
15
17
  } | {
16
18
  status: 'unknown';
19
+ reason: FiberPathMissReason;
17
20
  };
18
21
  /**
19
22
  * Resolve `path` to the live host it describes. A leaf `testID` is authoritative
@@ -1 +1 @@
1
- {"version":3,"file":"resolveFiberPath.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/resolveFiberPath.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAWnF,OAAO,EACL,KAAK,QAAQ,EAQd,MAAM,kBAAkB,CAAC;AAQ1B,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9E;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAwI1B;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAAG,mBAAmB,CAkC9F;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAE7D"}
1
+ {"version":3,"file":"resolveFiberPath.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/resolveFiberPath.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAWnF,OAAO,EACL,KAAK,QAAQ,EAQd,MAAM,kBAAkB,CAAC;AAQ1B,kFAAkF;AAClF,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEnE,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9E;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AA8IvD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAAG,mBAAmB,CAkC9F;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAE7D"}
@@ -6,6 +6,11 @@ interface FiberCacheEntry {
6
6
  export declare function getFiberAnchorScreenKey(): string | null;
7
7
  /** Invalidate fiber-resolved anchors when the active screen changes. */
8
8
  export declare function notifyAnchorScreenChange(screenKey: string | null): void;
9
+ /**
10
+ * `listener` runs after the active screen changes, once the cache above is
11
+ * cleared. Searches that back off while a target is missing restart from here.
12
+ */
13
+ export declare function subscribeAnchorScreenChange(listener: () => void): () => void;
9
14
  /** Drop the fiber cache (preview restart / tests). */
10
15
  export declare function clearFiberAnchorCache(): void;
11
16
  export declare function getCachedFiberAnchor(id: string): FiberCacheEntry | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"fiberAnchorCache.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/fiberAnchorCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,UAAU,eAAe;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAKD,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAIvE;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE5E;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAExD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtD"}
1
+ {"version":3,"file":"fiberAnchorCache.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/fiberAnchorCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,UAAU,eAAe;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAMD,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAEvD;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAWvE;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAK5E;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAE5E;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAExD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtD"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Taps that react-native-gesture-handler takes away from React Native.
3
+ *
4
+ * When a gesture-handler control activates, it cancels RN's touch stream, so
5
+ * the bridge sees `touchcancel` instead of `touchend`. The handler tag is read
6
+ * off the touched fiber (no import of gesture-handler), and the touch counts
7
+ * as a tap only if that handler later ends from ACTIVE on
8
+ * `onGestureHandlerStateChange`. Apps that never hit this path never subscribe.
9
+ *
10
+ * State numbers are gesture-handler's `State` enum. A future major that
11
+ * renumbers them degrades to "no tap", which is today's behavior.
12
+ */
13
+ import type { AnyFiber } from './fiber/fiberInternals';
14
+ import { type TouchPoint } from './tapSlop';
15
+ /** gesture-handler `State` values this hand-off acts on. */
16
+ export declare const GESTURE_HANDLER_STATE: {
17
+ readonly FAILED: 1;
18
+ readonly CANCELLED: 3;
19
+ readonly ACTIVE: 4;
20
+ readonly END: 5;
21
+ };
22
+ /** Drop a handed-off touch that never reaches a terminal state. */
23
+ export declare const GESTURE_HANDLER_HANDOFF_TIMEOUT_MS = 10000;
24
+ export interface HandedOffTouch {
25
+ identifier: number | string;
26
+ pageX: number;
27
+ pageY: number;
28
+ handlerTags: readonly number[];
29
+ /**
30
+ * The gesture completed as a tap. `end` is set when the payload carried
31
+ * window coordinates; otherwise only the start point is known.
32
+ */
33
+ onResolve: (end: TouchPoint | null) => void;
34
+ }
35
+ /**
36
+ * Handler tags for the control under `fiber`.
37
+ *
38
+ * Old-API buttons keep `handlerTag` on the class instance. `GestureDetector`
39
+ * keeps a `gesture` prop whose `toGestureArray()` entries each have one.
40
+ * Negative tags (gesture-handler's own root helper) are ignored.
41
+ *
42
+ * The walk stops at the nearest fiber that has a tag. A native handler with
43
+ * `disallowInterruption` (gesture-handler `ScrollView`, `FlatList`,
44
+ * `RefreshControl`) is a container, not a tap, so a scroll that starts inside
45
+ * it is dropped instead of latching the row. Never throws.
46
+ */
47
+ export declare function collectGestureHandlerTags(fiber: AnyFiber | null): number[];
48
+ export declare class GestureHandlerHandoff {
49
+ private readonly pending;
50
+ private nextId;
51
+ private subscription;
52
+ /**
53
+ * Keep `touch` until its handler finishes or it expires.
54
+ * Returns a stop function; calling it drops the touch without a tap.
55
+ */
56
+ track(touch: HandedOffTouch): () => void;
57
+ /** Test helper. Drops every pending touch and unsubscribes. */
58
+ resetForTests(): void;
59
+ /** @internal Test hook: how many touches are still waiting. */
60
+ get pendingCount(): number;
61
+ private ensureListening;
62
+ private stopListeningIfIdle;
63
+ private handleStateChange;
64
+ private apply;
65
+ private resolve;
66
+ private drop;
67
+ }
68
+ /** Shared singleton used by the tap monitors. */
69
+ export declare const gestureHandlerHandoff: GestureHandlerHandoff;
70
+ //# sourceMappingURL=gestureHandlerHandoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gestureHandlerHandoff.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/gestureHandlerHandoff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAOvD,OAAO,EAAE,KAAK,UAAU,EAAiB,MAAM,WAAW,CAAC;AAE3D,4DAA4D;AAC5D,eAAO,MAAM,qBAAqB;;;;;CAKxB,CAAC;AAEX,mEAAmE;AACnE,eAAO,MAAM,kCAAkC,QAAS,CAAC;AAIzD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B;;;OAGG;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7C;AA+BD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,EAAE,CAkB1E;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,YAAY,CAAwC;IAE5D;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,IAAI;IAkBxC,+DAA+D;IAC/D,aAAa,IAAI,IAAI;IASrB,+DAA+D;IAC/D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,IAAI;CAQb;AAED,iDAAiD;AACjD,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { type AnchorHost } from './AnchorRegistry';
2
2
  import type { AnyFiber } from './fiber/fiberInternals';
3
+ export { subscribeAnchorScreenChange } from './fiberAnchorCache';
3
4
  export type AnchorResolution = {
4
5
  status: 'found';
5
6
  host: AnchorHost;
@@ -1 +1 @@
1
- {"version":3,"file":"resolveAnchorHost.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/resolveAnchorHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAevD,MAAM,MAAM,gBAAgB,GACxB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;CAAE,GACvD;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAE1B,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEvE;AAED,0CAA0C;AAC1C,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAmD9D"}
1
+ {"version":3,"file":"resolveAnchorHost.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/resolveAnchorHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAevD,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GACxB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,QAAQ,CAAA;CAAE,GACvD;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAE1B,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEvE;AAED,0CAA0C;AAC1C,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEtD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,CAmD9D"}
@@ -1,6 +1,7 @@
1
1
  import { type MobileAutoData, type MobileFingerprint } from '@userflow-tech/protocol';
2
2
  import type { AnchorHost } from './AnchorRegistry';
3
3
  import type { AnyFiber } from './fiber/fiberInternals';
4
+ import { type FiberPathMissReason } from './fiber/resolveFiberPath';
4
5
  import { type MatchResult } from './semanticMatcher';
5
6
  export type AutoAnchorResolution = {
6
7
  status: 'found';
@@ -21,6 +22,11 @@ export type AutoAnchorResolution = {
21
22
  } | {
22
23
  status: 'unknown';
23
24
  match?: MatchResult;
25
+ /**
26
+ * Set when a fiber path did not resolve. Element conditions treat
27
+ * `no-match` as absent and `no-root` / `empty` as unknown.
28
+ */
29
+ fiberMiss?: FiberPathMissReason;
24
30
  };
25
31
  /** Authoritative id that the existing fiber / manual resolver can look up. */
26
32
  export declare function exactIdFromFingerprint(fp: MobileFingerprint): string | null;
@@ -38,10 +44,11 @@ export declare function resolveScoredAutoAnchor(fp: MobileFingerprint): AutoAnch
38
44
  * carries a real `testID` / `userflowId` / non-`uf_` `nativeID` still resolves
39
45
  * under Babel `stampOnly: true` (no auto-registry population).
40
46
  *
41
- * Scored matches run over `autoAnchorRegistry` and fail closed: weak or
42
- * non-unique evidence is `unknown`, not `absent`, so ELEMENT gates stay blocked
43
- * rather than inventing a truth value. Hosts on a covered navigator screen
44
- * are skipped the same way the fiber scan skips them.
47
+ * Scored matches run over `autoAnchorRegistry`. A covered screen and a
48
+ * contradicted fingerprint are `absent`. Weak, missing, or tied evidence stays
49
+ * `unknown` here; element conditions decide which of those count as absent.
50
+ * Hosts on a covered navigator screen are skipped the same way the fiber scan
51
+ * skips them.
45
52
  */
46
53
  export declare function resolveAutoAnchorHost(autoData: string | MobileAutoData | null | undefined): AutoAnchorResolution;
47
54
  //# sourceMappingURL=resolveAutoAnchorHost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveAutoAnchorHost.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/resolveAutoAnchorHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAMvD,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAC5B;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,GACD;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,CAAC;AA8C/C,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAK3E;AA8BD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,iBAAiB,GAAG,oBAAoB,CAWnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,GAAG,SAAS,GACnD,oBAAoB,CAoCtB"}
1
+ {"version":3,"file":"resolveAutoAnchorHost.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/resolveAutoAnchorHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,EAAoB,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAC5B;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,GACD;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,GACzC;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AA8CN,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAK3E;AA8BD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,iBAAiB,GAAG,oBAAoB,CAYnF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,GAAG,SAAS,GACnD,oBAAoB,CAoCtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolveElementTargets.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/resolveElementTargets.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAwB,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,KAAK,QAAQ,EAA+B,MAAM,wBAAwB,CAAC;AAiBpF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,aAAa,EAAE,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IACE,MAAM,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEN,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAChD,uBAAuB,CAUzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EACjD,GAAG,EAAE,UAAU,GACd,OAAO,CAOT"}
1
+ {"version":3,"file":"resolveElementTargets.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/resolveElementTargets.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,KAAK,QAAQ,EAA+B,MAAM,wBAAwB,CAAC;AAiBpF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,aAAa,EAAE,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GACpB;IACE,MAAM,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEN,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAChD,uBAAuB,CAUzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EACjD,GAAG,EAAE,UAAU,GACd,OAAO,CAOT"}
@@ -34,6 +34,8 @@ export declare function textsAgree(a: string | undefined, b: string | undefined)
34
34
  type InstanceFilter = (inst: AutoAnchorInstance) => boolean;
35
35
  interface MatchOptions {
36
36
  instanceFilter?: InstanceFilter;
37
+ /** The caller refreshed live content earlier in this same synchronous call. */
38
+ liveContentFresh?: boolean;
37
39
  }
38
40
  /**
39
41
  * Resolve a recorded fingerprint against the live auto-anchor registry.
@@ -1 +1 @@
1
- {"version":3,"file":"semanticMatcher.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/semanticMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAGvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEnF;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,YAAY,GACZ,uBAAuB,GACvB,gBAAgB,CAAC;AAErB,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAiH1C,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGhF;AA+ED,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,OAAO,CAAC;AAE5D,UAAU,YAAY;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAmHD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CAIxF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CAM9F"}
1
+ {"version":3,"file":"semanticMatcher.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/semanticMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAGvB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEnF;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,kBAAkB,GAClB,iBAAiB,GACjB,YAAY,GACZ,uBAAuB,GACvB,gBAAgB,CAAC;AAErB,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAiH1C,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAGhF;AAqFD,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,OAAO,CAAC;AAE5D,UAAU,YAAY;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+EAA+E;IAC/E,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAgID;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CAIxF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,WAAW,CAM9F"}
@@ -0,0 +1,9 @@
1
+ /** Max finger travel (px) between start and end to count as a tap, not a scroll. */
2
+ export declare const TARGET_PRESS_TAP_SLOP = 10;
3
+ export interface TouchPoint {
4
+ pageX: number;
5
+ pageY: number;
6
+ }
7
+ /** True when the finger moved no more than `slop` between start and end. */
8
+ export declare function withinTapSlop(start: TouchPoint, end: TouchPoint, slop?: number): boolean;
9
+ //# sourceMappingURL=tapSlop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tapSlop.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/tapSlop.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAC3B,KAAK,EAAE,UAAU,EACjB,GAAG,EAAE,UAAU,EACf,IAAI,GAAE,MAA8B,GACnC,OAAO,CAIT"}