@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,341 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.concreteFontFamily = concreteFontFamily;
7
+ exports.detectAppFontFamily = detectAppFontFamily;
8
+ exports.isBareCssFamily = isBareCssFamily;
9
+ exports.isIconFontFamily = isIconFontFamily;
10
+ exports.resetDetectedAppFont = resetDetectedAppFont;
11
+ exports.splitCssFamilies = splitCssFamilies;
12
+ exports.themeConcreteFontFamily = themeConcreteFontFamily;
13
+ var _screenTracker = require("../../screenTracker.js");
14
+ var _FiberScanRootStore = require("./FiberScanRootStore.js");
15
+ var _fiberInternals = require("./fiberInternals.js");
16
+ var _visibleScreens = require("./visibleScreens.js");
17
+ var _walkVisibleFibers = require("./walkVisibleFibers.js");
18
+ /**
19
+ * Host-app font used when a theme is still on the default CSS stack.
20
+ *
21
+ * React Native does not inherit `fontFamily` from a parent view, so the family
22
+ * actually in use is the one set on `Text`. The primary font is whichever
23
+ * family appears on the most visible host text under the scan root (the SDK
24
+ * overlay is a sibling and is not walked). Embedded banners are inside that
25
+ * root; their hosts use a `userflow-` testID and are not votes, or the bar's
26
+ * own text would win. Text with no family counts as the platform font. Icon
27
+ * faces are not content. Nested text with no family does not vote: the
28
+ * ancestor text already does, and a child run must not add another vote for
29
+ * that family or for the platform font.
30
+ *
31
+ * A finished walk is cached until the visible screen changes, the reported
32
+ * screen changes, or `Userflow.reset()`. A walk that hits the node cap is not
33
+ * cached. Failures return null.
34
+ */
35
+
36
+ const TEXT_HOST_NAMES = new Set(['Text', 'RCTText', 'RCTVirtualText']);
37
+
38
+ /** SDK hosts inside the scan root (embedded banners). Not the app's font. */
39
+ const SDK_HOST_TEST_ID_PREFIX = 'userflow-';
40
+
41
+ /** Cycle guard for nested-text inheritance. Real trees are only a few levels deep. */
42
+ const MAX_FONT_ANCESTORS = 50;
43
+ const CSS_GENERIC_FAMILIES = new Set(['sans-serif', 'serif', 'monospace', 'system-ui', 'ui-sans-serif', 'ui-serif', 'ui-monospace', 'ui-rounded', 'cursive', 'fantasy', 'emoji', 'math', 'fangsong', 'inherit', 'initial', 'unset']);
44
+
45
+ /** Short vector-icon families. Matched after stripping spaces and punctuation. */
46
+ const ICON_FONT_EXACT = new Set(['feather', 'antdesign', 'entypo', 'fontisto', 'simplelineicons', 'octicons', 'zocial', 'foundation', 'evilicons']);
47
+ let cache = null;
48
+
49
+ /** Drop the cached app font. Called from `Userflow.reset()`. */
50
+ function resetDetectedAppFont() {
51
+ cache = null;
52
+ }
53
+
54
+ /**
55
+ * Family to apply, or null when the app font is the platform face or could
56
+ * not be read. Never throws.
57
+ */
58
+ function detectAppFontFamily() {
59
+ try {
60
+ const instance = _FiberScanRootStore.fiberScanRoot.getInstance();
61
+ if (!instance || typeof instance !== 'object') return null;
62
+ const root = _FiberScanRootStore.fiberScanRoot.getFiber();
63
+ if (!root) return null;
64
+ if (cache?.instance === instance && cacheStillCurrent(cache, root)) return cache.family;
65
+ const tally = tallyHostText(root);
66
+ if (tally.truncated) {
67
+ if (!tally.voted) return null;
68
+ return pickMajority(tally.counts);
69
+ }
70
+ const family = tally.voted ? pickMajority(tally.counts) : null;
71
+ cache = {
72
+ instance,
73
+ family,
74
+ screens: tally.screens,
75
+ screenKey: reportedScreenKey()
76
+ };
77
+ return family;
78
+ } catch {
79
+ return null;
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Faces that appear in the builder's default system stack. A comma-separated
85
+ * list made only of these and generic keywords is that default, not a custom
86
+ * font. A single concrete name is still kept, including `Roboto`.
87
+ */
88
+ const DEFAULT_STACK_FACES = new Set(['blinkmacsystemfont', 'segoe ui', 'roboto', 'helvetica', 'arial', 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol']);
89
+
90
+ /**
91
+ * A single React Native family name. CSS stacks and generic keywords are not
92
+ * usable as a host `fontFamily` — RN treats the whole string as one face.
93
+ * Theme stacks are parsed by {@link themeConcreteFontFamily}.
94
+ */
95
+ function concreteFontFamily(value) {
96
+ if (typeof value !== 'string') return undefined;
97
+ const name = unwrapFontName(value);
98
+ if (!name || name.includes(',') || name.startsWith('-')) return undefined;
99
+ if (CSS_GENERIC_FAMILIES.has(name.toLowerCase())) return undefined;
100
+ return name;
101
+ }
102
+
103
+ /**
104
+ * Family a theme author chose. A single concrete name is kept. A comma-separated
105
+ * list keeps the first family that is not a generic or a default-stack face,
106
+ * so `"Source Sans Pro", sans-serif` stays Source Sans Pro and the system
107
+ * stack still resolves to undefined.
108
+ */
109
+ function themeConcreteFontFamily(value) {
110
+ if (typeof value !== 'string') return undefined;
111
+ const parts = splitCssFamilies(value);
112
+ if (parts.length === 0) return undefined;
113
+ if (parts.length === 1) return concreteFontFamily(parts[0]);
114
+ for (const part of parts) {
115
+ const name = concreteFontFamily(part);
116
+ if (!name || DEFAULT_STACK_FACES.has(name.toLowerCase())) continue;
117
+ return name;
118
+ }
119
+ return undefined;
120
+ }
121
+
122
+ /**
123
+ * Split a CSS `font-family` list. A quote that opens a family is wrapping and
124
+ * is removed; a quote inside a name stays, so `Foo"Bar` is one family.
125
+ * Commas inside wrapping quotes are not separators.
126
+ */
127
+ function splitCssFamilies(value) {
128
+ const parts = [];
129
+ let current = '';
130
+ let quote = null;
131
+ for (const char of value) {
132
+ if (quote) {
133
+ if (char === quote) quote = null;else current += char;
134
+ continue;
135
+ }
136
+ if ((char === '"' || char === "'") && current.trim() === '') {
137
+ quote = char;
138
+ continue;
139
+ }
140
+ if (char === ',') {
141
+ const name = current.trim();
142
+ if (name) parts.push(name);
143
+ current = '';
144
+ continue;
145
+ }
146
+ current += char;
147
+ }
148
+ const name = current.trim();
149
+ if (name) parts.push(name);
150
+ return parts;
151
+ }
152
+
153
+ /** Generic keywords and vendor-prefixed faces stay unquoted in CSS. */
154
+ function isBareCssFamily(name) {
155
+ return name.startsWith('-') || CSS_GENERIC_FAMILIES.has(name.toLowerCase());
156
+ }
157
+ function isIconFontFamily(name) {
158
+ const key = name.toLowerCase().replace(/[^a-z0-9]/g, '');
159
+ if (ICON_FONT_EXACT.has(key)) return true;
160
+ return key.startsWith('fontawesome') || key.startsWith('ionicons') || key.startsWith('materialcommunityicons') || key.startsWith('materialicons') || key.startsWith('materialsymbols');
161
+ }
162
+ function tallyHostText(root) {
163
+ const counts = new Map();
164
+ const screens = [];
165
+ let voted = false;
166
+ const {
167
+ truncated
168
+ } = (0, _walkVisibleFibers.walkVisibleFibers)(root, fiber => {
169
+ try {
170
+ if ((0, _visibleScreens.isScreenHostFiber)(fiber)) screens.push(fiber);
171
+ if (!isTextHost(fiber)) return;
172
+ const vote = voteFor(fiber, root);
173
+ if (vote === 'skip') return;
174
+ voted = true;
175
+ counts.set(vote, (counts.get(vote) ?? 0) + 1);
176
+ } catch {
177
+ // One unreadable node is not a vote.
178
+ }
179
+ });
180
+ return {
181
+ voted,
182
+ truncated,
183
+ screens,
184
+ counts
185
+ };
186
+ }
187
+
188
+ /** Usable family, null for the platform font, or skip for an icon face. */
189
+ function voteFor(fiber, root) {
190
+ if (isUnderSdkHost(fiber, root)) return 'skip';
191
+ const own = classifyFamily(readFontFamily(fiber));
192
+ if (own.kind === 'icon') return 'skip';
193
+ if (own.kind === 'family') return own.name;
194
+ if (own.kind === 'unusable') return null;
195
+ // No family of its own. The ancestor text node casts the vote for this run.
196
+ if (hasAncestorText(fiber, root)) return 'skip';
197
+ return null;
198
+ }
199
+ function hasAncestorText(fiber, root) {
200
+ let parent = (0, _fiberInternals.getReturn)(fiber);
201
+ for (let depth = 0; parent && parent !== root && depth < MAX_FONT_ANCESTORS; depth += 1) {
202
+ if (isTextHost(parent)) return true;
203
+ parent = (0, _fiberInternals.getReturn)(parent);
204
+ }
205
+ return false;
206
+ }
207
+ function cacheStillCurrent(cached, root) {
208
+ if (cached.screenKey !== reportedScreenKey()) return false;
209
+ if (cached.screens.length === 0) return true;
210
+ return cached.screens.every(screen => screenStillCurrent(screen, root));
211
+ }
212
+ function screenStillCurrent(screen, root) {
213
+ if (!(0, _visibleScreens.isFiberOnVisibleScreen)(screen)) return false;
214
+ let current = screen;
215
+ for (let depth = 0; current && depth < _fiberInternals.MAX_ANCESTOR_WALK; depth += 1) {
216
+ if (current === root) return true;
217
+ current = (0, _fiberInternals.getReturn)(current);
218
+ }
219
+ return false;
220
+ }
221
+ function reportedScreenKey() {
222
+ const location = (0, _screenTracker.getCurrentScreenLocation)();
223
+ if (!location) return null;
224
+ const key = 'path' in location ? location.path : location.screen;
225
+ return key || null;
226
+ }
227
+ function classifyFamily(raw) {
228
+ if (!raw) return {
229
+ kind: 'absent'
230
+ };
231
+ if (isIconFontFamily(raw)) return {
232
+ kind: 'icon'
233
+ };
234
+ const concrete = concreteFontFamily(raw);
235
+ if (!concrete) return {
236
+ kind: 'unusable'
237
+ };
238
+ return {
239
+ kind: 'family',
240
+ name: concrete
241
+ };
242
+ }
243
+ function pickMajority(counts) {
244
+ const platform = counts.get(null) ?? 0;
245
+ let bestName = null;
246
+ let bestCount = 0;
247
+ for (const [name, count] of counts) {
248
+ if (name == null) continue;
249
+ if (bestName == null || count > bestCount || count === bestCount && name < bestName) {
250
+ bestName = name;
251
+ bestCount = count;
252
+ }
253
+ }
254
+ if (bestName == null || platform > bestCount) return null;
255
+ return bestName;
256
+ }
257
+ function isUnderSdkHost(fiber, root) {
258
+ let parent = (0, _fiberInternals.getReturn)(fiber);
259
+ for (let depth = 0; parent && parent !== root && depth < MAX_FONT_ANCESTORS; depth += 1) {
260
+ try {
261
+ const testID = (0, _fiberInternals.getLiveHostProps)(parent)?.testID;
262
+ if (typeof testID === 'string' && testID.startsWith(SDK_HOST_TEST_ID_PREFIX)) {
263
+ return true;
264
+ }
265
+ } catch {
266
+ // An unreadable ancestor is not an SDK host.
267
+ }
268
+ parent = (0, _fiberInternals.getReturn)(parent);
269
+ }
270
+ return false;
271
+ }
272
+ function isTextHost(fiber) {
273
+ const typeName = (0, _fiberInternals.getHostTypeName)(fiber);
274
+ if (typeName && TEXT_HOST_NAMES.has(typeName)) return true;
275
+ const elementType = fiber?.elementType;
276
+ if (typeof elementType === 'string' && TEXT_HOST_NAMES.has(elementType)) return true;
277
+ try {
278
+ const node = (0, _fiberInternals.getStateNode)(fiber);
279
+ const className = node?.viewConfig?.uiViewClassName ?? node?.__viewConfig?.uiViewClassName;
280
+ return typeof className === 'string' && TEXT_HOST_NAMES.has(className);
281
+ } catch {
282
+ return false;
283
+ }
284
+ }
285
+ function readFontFamily(fiber) {
286
+ try {
287
+ const flat = flattenFontStyle((0, _fiberInternals.getLiveHostProps)(fiber)?.style);
288
+ const family = flat?.fontFamily;
289
+ if (typeof family !== 'string') return undefined;
290
+ const trimmed = family.trim();
291
+ return trimmed.length > 0 ? trimmed : undefined;
292
+ } catch {
293
+ return undefined;
294
+ }
295
+ }
296
+ function flattenFontStyle(style) {
297
+ if (style == null || style === false) return null;
298
+ if (typeof style === 'number') return flattenRegisteredStyle(style);
299
+ if (Array.isArray(style)) {
300
+ let family;
301
+ for (const entry of style) {
302
+ const flat = flattenFontStyle(entry);
303
+ if (flat && flat.fontFamily != null) family = flat.fontFamily;
304
+ }
305
+ return {
306
+ fontFamily: family
307
+ };
308
+ }
309
+ if (typeof style === 'object') return style;
310
+ return null;
311
+ }
312
+
313
+ /**
314
+ * StyleSheet ids are numbers. Resolve them only when one shows up so tests
315
+ * that pass plain style objects do not load react-native.
316
+ */
317
+ function flattenRegisteredStyle(styleId) {
318
+ try {
319
+ // Lazy require so unit tests that pass plain style objects do not load RN.
320
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
321
+ const {
322
+ StyleSheet
323
+ } = require('react-native');
324
+ const flat = StyleSheet?.flatten?.(styleId);
325
+ return flat ?? null;
326
+ } catch {
327
+ return null;
328
+ }
329
+ }
330
+ function unwrapFontName(value) {
331
+ const trimmed = value.trim();
332
+ if (trimmed.length >= 2) {
333
+ const first = trimmed[0];
334
+ const last = trimmed[trimmed.length - 1];
335
+ if (first === '"' && last === '"' || first === "'" && last === "'") {
336
+ return trimmed.slice(1, -1).trim();
337
+ }
338
+ }
339
+ return trimmed;
340
+ }
341
+ //# sourceMappingURL=detectAppFontFamily.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_screenTracker","require","_FiberScanRootStore","_fiberInternals","_visibleScreens","_walkVisibleFibers","TEXT_HOST_NAMES","Set","SDK_HOST_TEST_ID_PREFIX","MAX_FONT_ANCESTORS","CSS_GENERIC_FAMILIES","ICON_FONT_EXACT","cache","resetDetectedAppFont","detectAppFontFamily","instance","fiberScanRoot","getInstance","root","getFiber","cacheStillCurrent","family","tally","tallyHostText","truncated","voted","pickMajority","counts","screens","screenKey","reportedScreenKey","DEFAULT_STACK_FACES","concreteFontFamily","value","undefined","name","unwrapFontName","includes","startsWith","has","toLowerCase","themeConcreteFontFamily","parts","splitCssFamilies","length","part","current","quote","char","trim","push","isBareCssFamily","isIconFontFamily","key","replace","Map","walkVisibleFibers","fiber","isScreenHostFiber","isTextHost","vote","voteFor","set","get","isUnderSdkHost","own","classifyFamily","readFontFamily","kind","hasAncestorText","parent","getReturn","depth","cached","every","screen","screenStillCurrent","isFiberOnVisibleScreen","MAX_ANCESTOR_WALK","location","getCurrentScreenLocation","path","raw","concrete","platform","bestName","bestCount","count","testID","getLiveHostProps","typeName","getHostTypeName","elementType","node","getStateNode","className","viewConfig","uiViewClassName","__viewConfig","flat","flattenFontStyle","style","fontFamily","trimmed","flattenRegisteredStyle","Array","isArray","entry","styleId","StyleSheet","flatten","first","last","slice"],"sourceRoot":"../../../../src","sources":["anchors/fiber/detectAppFontFamily.ts"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.MAX_ANCESTOR_WALK = void 0;
7
7
  exports.coerceToFiber = coerceToFiber;
8
+ exports.createCurrentFiberResolver = createCurrentFiberResolver;
8
9
  exports.fiberFromPublicInstance = fiberFromPublicInstance;
9
10
  exports.getAlternate = getAlternate;
10
11
  exports.getChild = getChild;
@@ -296,6 +297,71 @@ function resolveCurrentFiber(fiber) {
296
297
  }
297
298
  return fiber;
298
299
  }
300
+
301
+ /** Where a fiber sits: its tree's current fiber, and whether it is under it. */
302
+
303
+ /**
304
+ * {@link resolveCurrentFiber} for many fibers in one synchronous pass. Where
305
+ * each ancestor sits is remembered, so the pass walks every ancestor once
306
+ * instead of once per fiber below it. Discard it when the pass ends: a render
307
+ * moves `return` pointers.
308
+ */
309
+ function createCurrentFiberResolver() {
310
+ const placeOf = new Map();
311
+ const locate = fiber => {
312
+ const path = [];
313
+ let above = null;
314
+ let cur = fiber;
315
+ for (let depth = 0; cur && depth < MAX_ANCESTOR_WALK; depth += 1) {
316
+ const known = placeOf.get(cur);
317
+ if (known !== undefined) {
318
+ above = known;
319
+ break;
320
+ }
321
+ path.push(cur);
322
+ // Only a HostRoot (or a detached fiber) has no parent, so the tag is
323
+ // read once, at the top, not at every step.
324
+ const parent = getReturn(cur);
325
+ if (!parent) {
326
+ const rootState = getFiberTag(cur) === HOST_ROOT_TAG ? getStateNode(cur) : null;
327
+ above = rootState?.current ? {
328
+ current: rootState.current,
329
+ inTree: false
330
+ } : null;
331
+ break;
332
+ }
333
+ cur = parent;
334
+ }
335
+ // Top down: a fiber is in the current tree when the current fiber is it
336
+ // or one of its ancestors.
337
+ let place = above;
338
+ for (let i = path.length - 1; i >= 0; i -= 1) {
339
+ if (place && !place.inTree && path[i] === place.current) {
340
+ place = {
341
+ current: place.current,
342
+ inTree: true
343
+ };
344
+ }
345
+ placeOf.set(path[i], place);
346
+ }
347
+ return place;
348
+ };
349
+ return fiber => {
350
+ if (!fiber) return fiber;
351
+ try {
352
+ const alternate = getAlternate(fiber);
353
+ if (!alternate) return fiber;
354
+ const own = locate(fiber);
355
+ if (!own || own.inTree) return fiber;
356
+ const other = locate(alternate);
357
+ // Two trees for one pair only happens on a corrupt graph.
358
+ if (!other || other.current !== own.current) return resolveCurrentFiber(fiber);
359
+ return other.inTree ? alternate : fiber;
360
+ } catch {
361
+ return fiber;
362
+ }
363
+ };
364
+ }
299
365
  function isInTree(fiber, root) {
300
366
  let cur = fiber;
301
367
  for (let depth = 0; cur && depth < MAX_ANCESTOR_WALK; depth += 1) {
@@ -1 +1 @@
1
- {"version":3,"names":["HOST_COMPONENT_TAG","HOST_ROOT_TAG","MAX_ANCESTOR_WALK","exports","HOST_STATE_NODE_KEYS","getChild","fiber","child","getSibling","sibling","getReturn","return","getAlternate","alternate","getMemoizedProps","p","memoizedProps","undefined","MAX_REACT_FIBER_TAG","FIBER_STRUCTURAL_KEYS","looksLikeHostNode","value","v","__nativeTag","_nativeTag","isReactFiber","tag","Number","isInteger","some","key","coerceToFiber","candidates","canonical","internalInstanceHandle","_internalInstanceHandle","candidate","nativeTagFromNode","nativeTag","isFinite","nativeTagFromHostFiber","getStateNode","publicInstanceFromHostFiber","node","n","pub","publicInstance","measureInWindow","measure","getLiveHostProps","memo","current","currentProps","stateNode","getFiberTag","t","getHostTypeName","type","isHostFiber","k","measureLayout","INSTANCE_FIBER_KEYS","fiberFromPublicInstance","instance","inst","fromCanonical","resolveCurrentFiber","cur","depth","rootState","currentRoot","isInTree","root","isFiberMounted"],"sourceRoot":"../../../../src","sources":["anchors/fiber/fiberInternals.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["HOST_COMPONENT_TAG","HOST_ROOT_TAG","MAX_ANCESTOR_WALK","exports","HOST_STATE_NODE_KEYS","getChild","fiber","child","getSibling","sibling","getReturn","return","getAlternate","alternate","getMemoizedProps","p","memoizedProps","undefined","MAX_REACT_FIBER_TAG","FIBER_STRUCTURAL_KEYS","looksLikeHostNode","value","v","__nativeTag","_nativeTag","isReactFiber","tag","Number","isInteger","some","key","coerceToFiber","candidates","canonical","internalInstanceHandle","_internalInstanceHandle","candidate","nativeTagFromNode","nativeTag","isFinite","nativeTagFromHostFiber","getStateNode","publicInstanceFromHostFiber","node","n","pub","publicInstance","measureInWindow","measure","getLiveHostProps","memo","current","currentProps","stateNode","getFiberTag","t","getHostTypeName","type","isHostFiber","k","measureLayout","INSTANCE_FIBER_KEYS","fiberFromPublicInstance","instance","inst","fromCanonical","resolveCurrentFiber","cur","depth","rootState","currentRoot","isInTree","createCurrentFiberResolver","placeOf","Map","locate","path","above","known","get","push","parent","inTree","place","i","length","set","own","other","root","isFiberMounted"],"sourceRoot":"../../../../src","sources":["anchors/fiber/fiberInternals.ts"],"mappings":"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","ignoreList":[]}
@@ -103,13 +103,14 @@ function createLazyHostFiberIndex(build = indexLiveHostFibers) {
103
103
 
104
104
  /**
105
105
  * Fiber for a public instance: direct pointer first, then the scan-root index
106
- * by identity / native tag.
106
+ * by identity / native tag. Pass a `createCurrentFiberResolver()` resolver when
107
+ * looking up many instances in one pass.
107
108
  */
108
- function lookupHostFiber(index, instance) {
109
+ function lookupHostFiber(index, instance, resolveCurrent = _fiberInternals.resolveCurrentFiber) {
109
110
  const direct = (0, _fiberInternals.fiberFromPublicInstance)(instance);
110
111
  if (direct) {
111
112
  try {
112
- return (0, _fiberInternals.resolveCurrentFiber)(direct);
113
+ return resolveCurrent(direct);
113
114
  } catch {
114
115
  return direct;
115
116
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_FiberScanRootStore","require","_fiberInternals","MAX_INDEX_NODES","emptyHostFiberIndex","byNativeTag","Map","byInstance","WeakMap","createHostFiberIndex","root","index","stack","visited","length","fiber","pop","isHostFiber","tag","nativeTagFromHostFiber","undefined","has","set","pub","publicInstanceFromHostFiber","sibling","getSibling","push","child","getChild","indexLiveHostFibers","fiberScanRoot","getFiber","createLazyHostFiberIndex","build","cached","lookupHostFiber","instance","direct","fiberFromPublicInstance","resolveCurrentFiber","resolved","fromMap","get","nativeTagFromNode"],"sourceRoot":"../../../../src","sources":["anchors/fiber/indexHostFibers.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_FiberScanRootStore","require","_fiberInternals","MAX_INDEX_NODES","emptyHostFiberIndex","byNativeTag","Map","byInstance","WeakMap","createHostFiberIndex","root","index","stack","visited","length","fiber","pop","isHostFiber","tag","nativeTagFromHostFiber","undefined","has","set","pub","publicInstanceFromHostFiber","sibling","getSibling","push","child","getChild","indexLiveHostFibers","fiberScanRoot","getFiber","createLazyHostFiberIndex","build","cached","lookupHostFiber","instance","resolveCurrent","resolveCurrentFiber","direct","fiberFromPublicInstance","resolved","fromMap","get","nativeTagFromNode"],"sourceRoot":"../../../../src","sources":["anchors/fiber/indexHostFibers.ts"],"mappings":"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","ignoreList":[]}
@@ -21,6 +21,9 @@ var _walkVisibleFibers = require("./walkVisibleFibers.js");
21
21
 
22
22
  const MIN_SCORE = 40;
23
23
  const UNIQUENESS_MARGIN = 12;
24
+
25
+ /** Why a fiber path did not resolve. Element conditions map these differently. */
26
+
24
27
  function stringProp(value) {
25
28
  return typeof value === 'string' && value.trim() ? value.trim() : undefined;
26
29
  }
@@ -32,17 +35,13 @@ function sameFiber(a, b) {
32
35
  const alt = (0, _fiberInternals.getAlternate)(a);
33
36
  return alt != null && alt === b;
34
37
  }
35
- function liveSegment(fiber) {
38
+
39
+ /** The live segment without its text, which needs a subtree walk. */
40
+ function liveIdentity(fiber) {
36
41
  const props = (0, _fiberInternals.getLiveHostProps)(fiber);
37
42
  const role = stringProp(props?.accessibilityRole) ?? stringProp(props?.role);
38
43
  const testID = stringProp(props?.testID);
39
44
  const accessibilityLabel = stringProp(props?.accessibilityLabel) ?? stringProp(props?.['aria-label']);
40
- let text;
41
- try {
42
- text = (0, _readHostContent.readHostText)(fiber, 1);
43
- } catch {
44
- text = undefined;
45
- }
46
45
  const hostKind = (0, _fiberInternals.getHostTypeName)(fiber);
47
46
  return {
48
47
  displayName: typeof fiber?.type === 'string' ? fiber.type : '',
@@ -57,7 +56,18 @@ function liveSegment(fiber) {
57
56
  } : {}),
58
57
  ...(accessibilityLabel ? {
59
58
  accessibilityLabel
60
- } : {}),
59
+ } : {})
60
+ };
61
+ }
62
+ function liveSegment(fiber) {
63
+ let text;
64
+ try {
65
+ text = (0, _readHostContent.readHostText)(fiber, 1);
66
+ } catch {
67
+ text = undefined;
68
+ }
69
+ return {
70
+ ...liveIdentity(fiber),
61
71
  ...(text ? {
62
72
  text
63
73
  } : {})
@@ -79,7 +89,8 @@ function scoreAlignment(expected, actual) {
79
89
  let kindAligned = 0;
80
90
  for (let i = 0; i < n; i += 1) {
81
91
  const exp = expected[expected.length - 1 - i];
82
- const live = liveSegment(actual[actual.length - 1 - i]);
92
+ // Alignment never compares text, so skip the subtree walk for every ancestor.
93
+ const live = liveIdentity(actual[actual.length - 1 - i]);
83
94
  const expKind = exp.hostKind ?? exp.displayName;
84
95
  const liveKind = live.hostKind ?? live.displayName;
85
96
  if (expKind && liveKind && expKind !== liveKind) break;
@@ -92,16 +103,17 @@ function scoreAlignment(expected, actual) {
92
103
  return score + kindAligned * 6;
93
104
  }
94
105
  function scoreHost(path, fiber) {
95
- const live = liveSegment(fiber);
96
106
  const leaf = path.segments[path.segments.length - 1];
97
107
  const leafKind = leaf?.hostKind ?? path.leafKind;
98
- const liveKind = live.hostKind ?? '';
108
+ // Kind first: most hosts fail here, before any props or text are read.
109
+ const liveKind = (0, _fiberInternals.getHostTypeName)(fiber) ?? '';
99
110
  if (leafKind && liveKind && leafKind !== liveKind) {
100
111
  return {
101
112
  score: -Infinity,
102
113
  textDisagreed: false
103
114
  };
104
115
  }
116
+ const live = liveSegment(fiber);
105
117
  let score = 20;
106
118
  if (leaf?.role && live.role === leaf.role) score += 15;
107
119
  if (leaf?.testID && live.testID === leaf.testID) score += 90;
@@ -135,9 +147,9 @@ function scoreHost(path, fiber) {
135
147
  }
136
148
  function resolveScored(path, root) {
137
149
  const scored = [];
150
+ // The walk already skips covered screens, so no per-host visibility walk.
138
151
  (0, _walkVisibleFibers.walkVisibleFibers)(root, fiber => {
139
152
  if (!(0, _fiberInternals.isHostFiber)(fiber)) return;
140
- if (!(0, _visibleScreens.isFiberOnVisibleScreen)(fiber)) return;
141
153
  const {
142
154
  score,
143
155
  textDisagreed
@@ -151,7 +163,8 @@ function resolveScored(path, root) {
151
163
  scored.sort((a, b) => b.score - a.score);
152
164
  const best = scored[0];
153
165
  if (!best || best.score < MIN_SCORE) return {
154
- status: 'unknown'
166
+ status: 'unknown',
167
+ reason: 'no-match'
155
168
  };
156
169
  const second = scored[1];
157
170
  if (second && best.score - second.score < UNIQUENESS_MARGIN) return {
@@ -173,7 +186,8 @@ function resolveScored(path, root) {
173
186
  */
174
187
  function resolveFiberPath(path) {
175
188
  if (!path || path.segments.length === 0) return {
176
- status: 'unknown'
189
+ status: 'unknown',
190
+ reason: 'empty'
177
191
  };
178
192
  const leaf = path.segments[path.segments.length - 1];
179
193
  const exactId = leaf?.testID;
@@ -202,7 +216,8 @@ function resolveFiberPath(path) {
202
216
  }
203
217
  const root = _FiberScanRoot.fiberScanRoot.getFiber();
204
218
  if (!root) return {
205
- status: 'unknown'
219
+ status: 'unknown',
220
+ reason: 'no-root'
206
221
  };
207
222
  const resolved = resolveScored(path, root);
208
223
  if (resolved.status === 'found') {