@userflow-tech/react-native 0.5.0 → 0.7.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 (328) hide show
  1. package/README.md +65 -33
  2. package/docs/custom-fonts.md +36 -0
  3. package/docs/troubleshooting.md +45 -44
  4. package/expo-plugin/hostDependencyWarnings.d.ts +5 -5
  5. package/expo-plugin/hostDependencyWarnings.js +7 -7
  6. package/expo-plugin/hostDependencyWarnings.js.map +1 -1
  7. package/lib/commonjs/anchors/AnchorRegistry.js +5 -0
  8. package/lib/commonjs/anchors/AnchorRegistry.js.map +1 -1
  9. package/lib/commonjs/anchors/ScrollContainerRegistry.js +8 -0
  10. package/lib/commonjs/anchors/ScrollContainerRegistry.js.map +1 -1
  11. package/lib/commonjs/anchors/fiber/FiberScanRootStore.js +8 -0
  12. package/lib/commonjs/anchors/fiber/FiberScanRootStore.js.map +1 -1
  13. package/lib/commonjs/anchors/fiber/detectAppFontFamily.js +341 -0
  14. package/lib/commonjs/anchors/fiber/detectAppFontFamily.js.map +1 -0
  15. package/lib/commonjs/anchors/fiber/presentedModal.js +215 -0
  16. package/lib/commonjs/anchors/fiber/presentedModal.js.map +1 -0
  17. package/lib/commonjs/anchors/fiber/touchTargetFiber.js +1 -0
  18. package/lib/commonjs/anchors/fiber/touchTargetFiber.js.map +1 -1
  19. package/lib/commonjs/anchors/fiber/visibleRect.js +12 -3
  20. package/lib/commonjs/anchors/fiber/visibleRect.js.map +1 -1
  21. package/lib/commonjs/anchors/fiber/visibleScreens.js +6 -0
  22. package/lib/commonjs/anchors/fiber/visibleScreens.js.map +1 -1
  23. package/lib/commonjs/anchors/useUserflowAnchor.js.map +1 -1
  24. package/lib/commonjs/anchors/useUserflowScrollContainer.js.map +1 -1
  25. package/lib/commonjs/authoring/ElementPickerOverlay.js +197 -138
  26. package/lib/commonjs/authoring/ElementPickerOverlay.js.map +1 -1
  27. package/lib/commonjs/authoring/hitTest.js +67 -10
  28. package/lib/commonjs/authoring/hitTest.js.map +1 -1
  29. package/lib/commonjs/authoring/hostAtPoint.js +45 -21
  30. package/lib/commonjs/authoring/hostAtPoint.js.map +1 -1
  31. package/lib/commonjs/content/BannerStepButton.js +2 -1
  32. package/lib/commonjs/content/BannerStepButton.js.map +1 -1
  33. package/lib/commonjs/content/RichContentRenderer.js +27 -9
  34. package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
  35. package/lib/commonjs/content/StepButton.js +2 -1
  36. package/lib/commonjs/content/StepButton.js.map +1 -1
  37. package/lib/commonjs/content/resolveContentFontFamily.js +96 -0
  38. package/lib/commonjs/content/resolveContentFontFamily.js.map +1 -0
  39. package/lib/commonjs/deepLinking.js.map +1 -1
  40. package/lib/commonjs/deviceContext.js +39 -19
  41. package/lib/commonjs/deviceContext.js.map +1 -1
  42. package/lib/commonjs/index.js +13 -5
  43. package/lib/commonjs/index.js.map +1 -1
  44. package/lib/commonjs/installCheck.js +3 -3
  45. package/lib/commonjs/installCheck.js.map +1 -1
  46. package/lib/commonjs/lifecycle.js +2 -0
  47. package/lib/commonjs/lifecycle.js.map +1 -1
  48. package/lib/commonjs/pairing/PairingController.js.map +1 -1
  49. package/lib/commonjs/runtime/BannerHost.js +3 -3
  50. package/lib/commonjs/runtime/BannerHost.js.map +1 -1
  51. package/lib/commonjs/runtime/UserflowOverlay.js +17 -13
  52. package/lib/commonjs/runtime/UserflowOverlay.js.map +1 -1
  53. package/lib/commonjs/runtime/WindowOverlayHost.js +83 -0
  54. package/lib/commonjs/runtime/WindowOverlayHost.js.map +1 -0
  55. package/lib/commonjs/runtime/pushBannerLayoutContext.js +11 -8
  56. package/lib/commonjs/runtime/pushBannerLayoutContext.js.map +1 -1
  57. package/lib/commonjs/runtime/userflowCore.js +9 -2
  58. package/lib/commonjs/runtime/userflowCore.js.map +1 -1
  59. package/lib/commonjs/surfaces/BannerSurface.js +2 -6
  60. package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
  61. package/lib/commonjs/surfaces/ProgressBar.js +2 -1
  62. package/lib/commonjs/surfaces/ProgressBar.js.map +1 -1
  63. package/lib/commonjs/surfaces/TooltipSurface.js +114 -51
  64. package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
  65. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js +6 -4
  66. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
  67. package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js +3 -33
  68. package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -1
  69. package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js +2 -1
  70. package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -1
  71. package/lib/commonjs/surfaces/bannerWebView/bannerWebViewHeight.js +33 -0
  72. package/lib/commonjs/surfaces/bannerWebView/bannerWebViewHeight.js.map +1 -0
  73. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js +45 -12
  74. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
  75. package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js +6 -6
  76. package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js.map +1 -1
  77. package/lib/commonjs/surfaces/tooltip/targetOrigin.js +74 -0
  78. package/lib/commonjs/surfaces/tooltip/targetOrigin.js.map +1 -0
  79. package/lib/commonjs/version.js +1 -1
  80. package/lib/module/anchors/AnchorRegistry.js +5 -0
  81. package/lib/module/anchors/AnchorRegistry.js.map +1 -1
  82. package/lib/module/anchors/ScrollContainerRegistry.js +8 -0
  83. package/lib/module/anchors/ScrollContainerRegistry.js.map +1 -1
  84. package/lib/module/anchors/fiber/FiberScanRootStore.js +8 -0
  85. package/lib/module/anchors/fiber/FiberScanRootStore.js.map +1 -1
  86. package/lib/module/anchors/fiber/detectAppFontFamily.js +330 -0
  87. package/lib/module/anchors/fiber/detectAppFontFamily.js.map +1 -0
  88. package/lib/module/anchors/fiber/presentedModal.js +206 -0
  89. package/lib/module/anchors/fiber/presentedModal.js.map +1 -0
  90. package/lib/module/anchors/fiber/touchTargetFiber.js +1 -0
  91. package/lib/module/anchors/fiber/touchTargetFiber.js.map +1 -1
  92. package/lib/module/anchors/fiber/visibleRect.js +12 -3
  93. package/lib/module/anchors/fiber/visibleRect.js.map +1 -1
  94. package/lib/module/anchors/fiber/visibleScreens.js +5 -0
  95. package/lib/module/anchors/fiber/visibleScreens.js.map +1 -1
  96. package/lib/module/anchors/useUserflowAnchor.js.map +1 -1
  97. package/lib/module/anchors/useUserflowScrollContainer.js.map +1 -1
  98. package/lib/module/authoring/ElementPickerOverlay.js +199 -140
  99. package/lib/module/authoring/ElementPickerOverlay.js.map +1 -1
  100. package/lib/module/authoring/hitTest.js +67 -11
  101. package/lib/module/authoring/hitTest.js.map +1 -1
  102. package/lib/module/authoring/hostAtPoint.js +45 -21
  103. package/lib/module/authoring/hostAtPoint.js.map +1 -1
  104. package/lib/module/content/BannerStepButton.js +2 -1
  105. package/lib/module/content/BannerStepButton.js.map +1 -1
  106. package/lib/module/content/RichContentRenderer.js +27 -9
  107. package/lib/module/content/RichContentRenderer.js.map +1 -1
  108. package/lib/module/content/StepButton.js +2 -1
  109. package/lib/module/content/StepButton.js.map +1 -1
  110. package/lib/module/content/resolveContentFontFamily.js +89 -0
  111. package/lib/module/content/resolveContentFontFamily.js.map +1 -0
  112. package/lib/module/deepLinking.js.map +1 -1
  113. package/lib/module/deviceContext.js +38 -17
  114. package/lib/module/deviceContext.js.map +1 -1
  115. package/lib/module/index.js +13 -5
  116. package/lib/module/index.js.map +1 -1
  117. package/lib/module/installCheck.js +3 -3
  118. package/lib/module/installCheck.js.map +1 -1
  119. package/lib/module/lifecycle.js +2 -0
  120. package/lib/module/lifecycle.js.map +1 -1
  121. package/lib/module/pairing/PairingController.js.map +1 -1
  122. package/lib/module/runtime/BannerHost.js +3 -3
  123. package/lib/module/runtime/BannerHost.js.map +1 -1
  124. package/lib/module/runtime/UserflowOverlay.js +18 -14
  125. package/lib/module/runtime/UserflowOverlay.js.map +1 -1
  126. package/lib/module/runtime/WindowOverlayHost.js +76 -0
  127. package/lib/module/runtime/WindowOverlayHost.js.map +1 -0
  128. package/lib/module/runtime/pushBannerLayoutContext.js +11 -8
  129. package/lib/module/runtime/pushBannerLayoutContext.js.map +1 -1
  130. package/lib/module/runtime/userflowCore.js +9 -2
  131. package/lib/module/runtime/userflowCore.js.map +1 -1
  132. package/lib/module/surfaces/BannerSurface.js +2 -6
  133. package/lib/module/surfaces/BannerSurface.js.map +1 -1
  134. package/lib/module/surfaces/ProgressBar.js +2 -1
  135. package/lib/module/surfaces/ProgressBar.js.map +1 -1
  136. package/lib/module/surfaces/TooltipSurface.js +114 -51
  137. package/lib/module/surfaces/TooltipSurface.js.map +1 -1
  138. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js +6 -4
  139. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
  140. package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js +3 -31
  141. package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -1
  142. package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js +2 -1
  143. package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -1
  144. package/lib/module/surfaces/bannerWebView/bannerWebViewHeight.js +29 -0
  145. package/lib/module/surfaces/bannerWebView/bannerWebViewHeight.js.map +1 -0
  146. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js +45 -12
  147. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
  148. package/lib/module/surfaces/tooltip/TooltipHighlight.js +6 -6
  149. package/lib/module/surfaces/tooltip/TooltipHighlight.js.map +1 -1
  150. package/lib/module/surfaces/tooltip/targetOrigin.js +67 -0
  151. package/lib/module/surfaces/tooltip/targetOrigin.js.map +1 -0
  152. package/lib/module/version.js +1 -1
  153. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts +7 -0
  154. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/src/anchors/ScrollContainerRegistry.d.ts +11 -2
  156. package/lib/typescript/commonjs/src/anchors/ScrollContainerRegistry.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts +5 -0
  158. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/src/anchors/fiber/detectAppFontFamily.d.ts +30 -0
  160. package/lib/typescript/commonjs/src/anchors/fiber/detectAppFontFamily.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/src/anchors/fiber/presentedModal.d.ts +45 -0
  162. package/lib/typescript/commonjs/src/anchors/fiber/presentedModal.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/src/anchors/fiber/visibleRect.d.ts +5 -2
  164. package/lib/typescript/commonjs/src/anchors/fiber/visibleRect.d.ts.map +1 -1
  165. package/lib/typescript/commonjs/src/anchors/fiber/visibleScreens.d.ts +2 -0
  166. package/lib/typescript/commonjs/src/anchors/fiber/visibleScreens.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/src/anchors/useUserflowAnchor.d.ts +2 -2
  168. package/lib/typescript/commonjs/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  169. package/lib/typescript/commonjs/src/anchors/useUserflowScrollContainer.d.ts +3 -2
  170. package/lib/typescript/commonjs/src/anchors/useUserflowScrollContainer.d.ts.map +1 -1
  171. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts +4 -0
  172. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts.map +1 -1
  173. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts +25 -2
  174. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts.map +1 -1
  175. package/lib/typescript/commonjs/src/authoring/hostAtPoint.d.ts +6 -1
  176. package/lib/typescript/commonjs/src/authoring/hostAtPoint.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/src/content/BannerStepButton.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/src/content/StepButton.d.ts.map +1 -1
  180. package/lib/typescript/commonjs/src/content/resolveContentFontFamily.d.ts +35 -0
  181. package/lib/typescript/commonjs/src/content/resolveContentFontFamily.d.ts.map +1 -0
  182. package/lib/typescript/commonjs/src/deepLinking.d.ts +1 -1
  183. package/lib/typescript/commonjs/src/deepLinking.d.ts.map +1 -1
  184. package/lib/typescript/commonjs/src/deviceContext.d.ts +14 -5
  185. package/lib/typescript/commonjs/src/deviceContext.d.ts.map +1 -1
  186. package/lib/typescript/commonjs/src/index.d.ts +11 -5
  187. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/src/installCheck.d.ts +2 -2
  189. package/lib/typescript/commonjs/src/installCheck.d.ts.map +1 -1
  190. package/lib/typescript/commonjs/src/lifecycle.d.ts +1 -0
  191. package/lib/typescript/commonjs/src/lifecycle.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +1 -1
  193. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/src/runtime/UserflowOverlay.d.ts.map +1 -1
  195. package/lib/typescript/commonjs/src/runtime/WindowOverlayHost.d.ts +34 -0
  196. package/lib/typescript/commonjs/src/runtime/WindowOverlayHost.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts +5 -0
  198. package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts.map +1 -1
  199. package/lib/typescript/commonjs/src/runtime/userflowCore.d.ts.map +1 -1
  200. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts +1 -4
  201. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
  202. package/lib/typescript/commonjs/src/surfaces/ProgressBar.d.ts.map +1 -1
  203. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
  204. package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
  205. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts +3 -12
  206. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -1
  207. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts +13 -0
  209. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts.map +1 -0
  210. package/lib/typescript/commonjs/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
  211. package/lib/typescript/commonjs/src/surfaces/tooltip/targetOrigin.d.ts +26 -0
  212. package/lib/typescript/commonjs/src/surfaces/tooltip/targetOrigin.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  214. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts +7 -0
  215. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts.map +1 -1
  216. package/lib/typescript/module/src/anchors/ScrollContainerRegistry.d.ts +11 -2
  217. package/lib/typescript/module/src/anchors/ScrollContainerRegistry.d.ts.map +1 -1
  218. package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts +5 -0
  219. package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -1
  220. package/lib/typescript/module/src/anchors/fiber/detectAppFontFamily.d.ts +30 -0
  221. package/lib/typescript/module/src/anchors/fiber/detectAppFontFamily.d.ts.map +1 -0
  222. package/lib/typescript/module/src/anchors/fiber/presentedModal.d.ts +45 -0
  223. package/lib/typescript/module/src/anchors/fiber/presentedModal.d.ts.map +1 -0
  224. package/lib/typescript/module/src/anchors/fiber/visibleRect.d.ts +5 -2
  225. package/lib/typescript/module/src/anchors/fiber/visibleRect.d.ts.map +1 -1
  226. package/lib/typescript/module/src/anchors/fiber/visibleScreens.d.ts +2 -0
  227. package/lib/typescript/module/src/anchors/fiber/visibleScreens.d.ts.map +1 -1
  228. package/lib/typescript/module/src/anchors/useUserflowAnchor.d.ts +2 -2
  229. package/lib/typescript/module/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  230. package/lib/typescript/module/src/anchors/useUserflowScrollContainer.d.ts +3 -2
  231. package/lib/typescript/module/src/anchors/useUserflowScrollContainer.d.ts.map +1 -1
  232. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts +4 -0
  233. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts.map +1 -1
  234. package/lib/typescript/module/src/authoring/hitTest.d.ts +25 -2
  235. package/lib/typescript/module/src/authoring/hitTest.d.ts.map +1 -1
  236. package/lib/typescript/module/src/authoring/hostAtPoint.d.ts +6 -1
  237. package/lib/typescript/module/src/authoring/hostAtPoint.d.ts.map +1 -1
  238. package/lib/typescript/module/src/content/BannerStepButton.d.ts.map +1 -1
  239. package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
  240. package/lib/typescript/module/src/content/StepButton.d.ts.map +1 -1
  241. package/lib/typescript/module/src/content/resolveContentFontFamily.d.ts +35 -0
  242. package/lib/typescript/module/src/content/resolveContentFontFamily.d.ts.map +1 -0
  243. package/lib/typescript/module/src/deepLinking.d.ts +1 -1
  244. package/lib/typescript/module/src/deepLinking.d.ts.map +1 -1
  245. package/lib/typescript/module/src/deviceContext.d.ts +14 -5
  246. package/lib/typescript/module/src/deviceContext.d.ts.map +1 -1
  247. package/lib/typescript/module/src/index.d.ts +11 -5
  248. package/lib/typescript/module/src/index.d.ts.map +1 -1
  249. package/lib/typescript/module/src/installCheck.d.ts +2 -2
  250. package/lib/typescript/module/src/installCheck.d.ts.map +1 -1
  251. package/lib/typescript/module/src/lifecycle.d.ts +1 -0
  252. package/lib/typescript/module/src/lifecycle.d.ts.map +1 -1
  253. package/lib/typescript/module/src/pairing/PairingController.d.ts +1 -1
  254. package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
  255. package/lib/typescript/module/src/runtime/UserflowOverlay.d.ts.map +1 -1
  256. package/lib/typescript/module/src/runtime/WindowOverlayHost.d.ts +34 -0
  257. package/lib/typescript/module/src/runtime/WindowOverlayHost.d.ts.map +1 -0
  258. package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts +5 -0
  259. package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts.map +1 -1
  260. package/lib/typescript/module/src/runtime/userflowCore.d.ts.map +1 -1
  261. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts +1 -4
  262. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
  263. package/lib/typescript/module/src/surfaces/ProgressBar.d.ts.map +1 -1
  264. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
  265. package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
  266. package/lib/typescript/module/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts +3 -12
  267. package/lib/typescript/module/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -1
  268. package/lib/typescript/module/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -1
  269. package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts +13 -0
  270. package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts.map +1 -0
  271. package/lib/typescript/module/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
  272. package/lib/typescript/module/src/surfaces/tooltip/targetOrigin.d.ts +26 -0
  273. package/lib/typescript/module/src/surfaces/tooltip/targetOrigin.d.ts.map +1 -0
  274. package/lib/typescript/module/src/version.d.ts +1 -1
  275. package/package.json +5 -4
  276. package/src/anchors/AnchorRegistry.ts +8 -0
  277. package/src/anchors/ScrollContainerRegistry.ts +15 -3
  278. package/src/anchors/fiber/FiberScanRootStore.ts +8 -0
  279. package/src/anchors/fiber/detectAppFontFamily.ts +400 -0
  280. package/src/anchors/fiber/presentedModal.ts +203 -0
  281. package/src/anchors/fiber/touchTargetFiber.ts +2 -1
  282. package/src/anchors/fiber/visibleRect.ts +12 -3
  283. package/src/anchors/fiber/visibleScreens.ts +5 -0
  284. package/src/anchors/useUserflowAnchor.ts +4 -5
  285. package/src/anchors/useUserflowScrollContainer.ts +5 -4
  286. package/src/authoring/ElementPickerOverlay.tsx +242 -166
  287. package/src/authoring/hitTest.ts +88 -13
  288. package/src/authoring/hostAtPoint.ts +67 -21
  289. package/src/content/BannerStepButton.tsx +2 -1
  290. package/src/content/RichContentRenderer.tsx +16 -9
  291. package/src/content/StepButton.tsx +2 -1
  292. package/src/content/resolveContentFontFamily.ts +119 -0
  293. package/src/deepLinking.ts +2 -1
  294. package/src/deviceContext.ts +50 -14
  295. package/src/index.ts +13 -5
  296. package/src/installCheck.ts +3 -3
  297. package/src/lifecycle.ts +2 -1
  298. package/src/pairing/PairingController.ts +2 -1
  299. package/src/runtime/BannerHost.tsx +3 -3
  300. package/src/runtime/UserflowOverlay.tsx +29 -21
  301. package/src/runtime/WindowOverlayHost.tsx +95 -0
  302. package/src/runtime/pushBannerLayoutContext.tsx +14 -9
  303. package/src/runtime/userflowCore.ts +8 -2
  304. package/src/surfaces/BannerSurface.tsx +2 -6
  305. package/src/surfaces/ProgressBar.tsx +2 -1
  306. package/src/surfaces/TooltipSurface.tsx +118 -47
  307. package/src/surfaces/bannerWebView/BannerWebViewBar.tsx +6 -4
  308. package/src/surfaces/bannerWebView/bannerNeedsWebView.ts +4 -36
  309. package/src/surfaces/bannerWebView/bannerThemeStyles.ts +2 -1
  310. package/src/surfaces/bannerWebView/bannerWebViewHeight.ts +32 -0
  311. package/src/surfaces/bannerWebView/buildCustomBannerHtml.ts +48 -12
  312. package/src/surfaces/tooltip/TooltipHighlight.tsx +3 -5
  313. package/src/surfaces/tooltip/targetOrigin.ts +74 -0
  314. package/src/version.ts +1 -1
  315. package/vendor/core/dist/engine/UserflowCore.d.ts +7 -0
  316. package/vendor/core/dist/engine/UserflowCore.d.ts.map +1 -1
  317. package/vendor/core/dist/engine/UserflowCore.js +3 -2
  318. package/vendor/core/dist/engine/UserflowCore.js.map +1 -1
  319. package/vendor/core/dist/transport/phoenix.d.ts +12 -2
  320. package/vendor/core/dist/transport/phoenix.d.ts.map +1 -1
  321. package/vendor/core/dist/transport/phoenix.js +7 -6
  322. package/vendor/core/dist/transport/phoenix.js.map +1 -1
  323. package/vendor/core/dist/version.d.ts +1 -1
  324. package/vendor/core/dist/version.js +1 -1
  325. package/vendor/core/package.json +1 -1
  326. package/vendor/protocol/dist/flows.d.ts +2 -0
  327. package/vendor/protocol/dist/flows.d.ts.map +1 -1
  328. package/vendor/protocol/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_resolveHighlightChrome","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TooltipHighlight","targetRect","chrome","isHighlightVisible","rings","buildHighlightRings","length","jsx","View","pointerEvents","testID","children","map","ring","style","rect","width","height","inset","type","consumed","strokeWidth","frame","ringFrame","borderRadius","push","styles","borderWidth","borderColor","color","strokeGlow","radius","glowColor","blur","Math","max","glow","shadowColor","shadowOffset","shadowOpacity","min","opacity","shadowRadius","Platform","OS","boxShadow","alreadyConsumed","cornerRadius","top","left","nextWidth","nextHeight","outset","StyleSheet","create","position","backgroundColor","overflow"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipHighlight.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_resolveHighlightChrome","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TooltipHighlight","targetRect","chrome","isHighlightVisible","rings","buildHighlightRings","length","jsx","View","pointerEvents","testID","children","map","ring","style","rect","width","height","inset","type","consumed","strokeWidth","frame","ringFrame","borderRadius","push","styles","borderWidth","borderColor","color","strokeGlow","radius","glowColor","blur","Math","max","shadowColor","shadowOffset","shadowOpacity","min","opacity","shadowRadius","Platform","OS","boxShadow","alreadyConsumed","cornerRadius","top","left","nextWidth","nextHeight","outset","StyleSheet","create","position","backgroundColor","overflow"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipHighlight.tsx"],"mappings":";;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,uBAAA,GAAAF,OAAA;AAAqF,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAcrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASkB,gBAAgBA,CAAC;EAC/BC,UAAU;EACVC;AACqB,CAAC,EAA6B;EACnD,IAAI,CAAC,IAAAC,0CAAkB,EAACD,MAAM,CAAC,EAAE,OAAO,IAAI;EAE5C,MAAME,KAAK,GAAGC,mBAAmB,CAACJ,UAAU,EAAEC,MAAM,CAAC;EACrD,IAAIE,KAAK,CAACE,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAEnC,oBACE,IAAA1B,WAAA,CAAA2B,GAAA,EAAC7B,YAAA,CAAA8B,IAAI;IAACC,aAAa,EAAC,MAAM;IAACC,MAAM,EAAC,4BAA4B;IAAAC,QAAA,EAC3DP,KAAK,CAACQ,GAAG,CAAEC,IAAI,iBACd,IAAAjC,WAAA,CAAA2B,GAAA,EAAC7B,YAAA,CAAA8B,IAAI;MAAmBC,aAAa,EAAC,MAAM;MAACC,MAAM,EAAEG,IAAI,CAACH,MAAO;MAACI,KAAK,EAAED,IAAI,CAACC;IAAM,GAAzED,IAAI,CAACH,MAAsE,CACvF;EAAC,CACE,CAAC;AAEX;AAEO,SAASL,mBAAmBA,CAACU,IAAmB,EAAEb,MAAuB,EAAU;EACxF,IAAIa,IAAI,CAACC,KAAK,IAAI,CAAC,IAAID,IAAI,CAACE,MAAM,IAAI,CAAC,EAAE,OAAO,EAAE;EAElD,MAAMC,KAAK,GAAGhB,MAAM,CAACiB,IAAI,KAAK,QAAQ;EACtC,MAAMf,KAAa,GAAG,EAAE;EACxB,IAAIgB,QAAQ,GAAG,CAAC;EAEhB,IAAIlB,MAAM,CAACmB,WAAW,GAAG,CAAC,EAAE;IAC1B,MAAMC,KAAK,GAAGC,SAAS,CAACR,IAAI,EAAEb,MAAM,CAACmB,WAAW,EAAED,QAAQ,EAAEF,KAAK,EAAEhB,MAAM,CAACsB,YAAY,CAAC;IACvF,IAAIF,KAAK,EAAE;MACTlB,KAAK,CAACqB,IAAI,CAAC;QACTf,MAAM,EAAE,mCAAmC;QAC3CI,KAAK,EAAE,CACLY,MAAM,CAACb,IAAI,EACXS,KAAK,EACL;UACEK,WAAW,EAAEzB,MAAM,CAACmB,WAAW;UAC/BO,WAAW,EAAE1B,MAAM,CAAC2B,KAAK;UACzB,GAAGC,UAAU,CAAC5B,MAAM;QACtB,CAAC;MAEL,CAAC,CAAC;MACFkB,QAAQ,IAAIlB,MAAM,CAACmB,WAAW;IAChC;EACF;EAEA,IAAInB,MAAM,CAAC6B,MAAM,GAAG,CAAC,EAAE;IACrB,MAAMT,KAAK,GAAGC,SAAS,CAACR,IAAI,EAAEb,MAAM,CAAC6B,MAAM,EAAEX,QAAQ,EAAEF,KAAK,EAAEhB,MAAM,CAACsB,YAAY,CAAC;IAClF,IAAIF,KAAK,EAAE;MACTlB,KAAK,CAACqB,IAAI,CAAC;QACTf,MAAM,EAAE,iCAAiC;QACzCI,KAAK,EAAE,CACLY,MAAM,CAACb,IAAI,EACXS,KAAK,EACL;UACEK,WAAW,EAAEzB,MAAM,CAAC6B,MAAM;UAC1BH,WAAW,EAAE1B,MAAM,CAAC8B;QACtB,CAAC;MAEL,CAAC,CAAC;IACJ;EACF;EAEA,OAAO5B,KAAK;AACd;AAEA,SAAS0B,UAAUA,CAAC5B,MAAuB,EAAa;EACtD,MAAM+B,IAAI,GAAGC,IAAI,CAACC,GAAG,CAACjC,MAAM,CAAC6B,MAAM,EAAE,CAAC,CAAC;EACvC;EACA,OAAO;IACLK,WAAW,EAAElC,MAAM,CAAC2B,KAAK;IACzBQ,YAAY,EAAE;MAAErB,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCqB,aAAa,EAAEJ,IAAI,CAACK,GAAG,CAAC,IAAI,EAAErC,MAAM,CAACsC,OAAO,CAAC;IAC7CC,YAAY,EAAER,IAAI;IAClB,IAAIS,qBAAQ,EAAEC,EAAE,KAAK,KAAK,GAAG;MAAEC,SAAS,EAAE,WAAWX,IAAI,UAAU/B,MAAM,CAAC8B,SAAS;IAAG,CAAC,GAAG,IAAI;EAChG,CAAC;AACH;AAEA,SAAST,SAASA,CAChBR,IAAmB,EACnBY,WAAmB,EACnBkB,eAAuB,EACvB3B,KAAc,EACd4B,YAAoB,EACuE;EAC3F,IAAInB,WAAW,IAAI,CAAC,EAAE,OAAO,IAAI;EACjC,MAAM;IAAEoB,GAAG;IAAEC,IAAI;IAAEhC,KAAK;IAAEC;EAAO,CAAC,GAAGF,IAAI;EAEzC,IAAIG,KAAK,EAAE;IACT,MAAM+B,SAAS,GAAGjC,KAAK,GAAG6B,eAAe,GAAG,CAAC;IAC7C,MAAMK,UAAU,GAAGjC,MAAM,GAAG4B,eAAe,GAAG,CAAC;IAC/C,IAAII,SAAS,GAAGtB,WAAW,GAAG,CAAC,IAAIuB,UAAU,GAAGvB,WAAW,GAAG,CAAC,EAAE,OAAO,IAAI;IAC5E,OAAO;MACLoB,GAAG,EAAEA,GAAG,GAAGF,eAAe;MAC1BG,IAAI,EAAEA,IAAI,GAAGH,eAAe;MAC5B7B,KAAK,EAAEiC,SAAS;MAChBhC,MAAM,EAAEiC,UAAU;MAClB1B,YAAY,EAAEU,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEW,YAAY,GAAGD,eAAe;IAC1D,CAAC;EACH;EAEA,MAAMM,MAAM,GAAGN,eAAe,GAAGlB,WAAW;EAC5C,OAAO;IACLoB,GAAG,EAAEA,GAAG,GAAGI,MAAM;IACjBH,IAAI,EAAEA,IAAI,GAAGG,MAAM;IACnBnC,KAAK,EAAEA,KAAK,GAAGmC,MAAM,GAAG,CAAC;IACzBlC,MAAM,EAAEA,MAAM,GAAGkC,MAAM,GAAG,CAAC;IAC3B3B,YAAY,EAAEsB,YAAY,GAAGK;EAC/B,CAAC;AACH;AAEA,MAAMzB,MAAM,GAAG0B,uBAAU,CAACC,MAAM,CAAC;EAC/BxC,IAAI,EAAE;IACJyC,QAAQ,EAAE,UAAU;IACpBC,eAAe,EAAE,aAAa;IAC9BC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NO_MODAL_TRUST_MS = void 0;
7
+ exports.locateTargetOrigin = locateTargetOrigin;
8
+ exports.offsetRect = offsetRect;
9
+ exports.resetTargetOriginForTests = resetTargetOriginForTests;
10
+ var _FiberScanRootStore = require("../../anchors/fiber/FiberScanRootStore.js");
11
+ var _presentedModal = require("../../anchors/fiber/presentedModal.js");
12
+ var _fiberAnchorCache = require("../../anchors/fiberAnchorCache.js");
13
+ var _WindowOverlayHost = require("../../runtime/WindowOverlayHost.js");
14
+ const ZERO = {
15
+ x: 0,
16
+ y: 0
17
+ };
18
+
19
+ /**
20
+ * How long "nothing is presented" is trusted on the same screen. The lookup
21
+ * walks the whole fiber tree (1.4ms for 2,200 fibers in a debug build), and
22
+ * an anchored tooltip resolves four times a second. Expo Router and native
23
+ * stack modals change the screen, which skips this wait; a React Native
24
+ * `<Modal>` over the target is noticed within it.
25
+ */
26
+ const NO_MODAL_TRUST_MS = exports.NO_MODAL_TRUST_MS = 1000;
27
+ let noModalSince = null;
28
+
29
+ /**
30
+ * Where a tooltip target's measured rects sit in the window. `done` gets the
31
+ * window position of `(0, 0)` in the target's measure space, or null when the
32
+ * tooltip cannot point at it: a natively presented modal covers the target,
33
+ * or the target is inside a modal that cannot be placed (see
34
+ * `presentedModal.ts`). Also null when the target has no fiber to place.
35
+ *
36
+ * Without the window host, flow chrome is drawn in the root view under any
37
+ * native modal, as before, and `done` runs synchronously with zero.
38
+ */
39
+ function locateTargetOrigin(fiber, done) {
40
+ if (!(0, _WindowOverlayHost.hasWindowOverlayHost)()) {
41
+ done(ZERO);
42
+ return;
43
+ }
44
+ const screenKey = (0, _fiberAnchorCache.getFiberAnchorScreenKey)();
45
+ const now = Date.now();
46
+ if (noModalSince && noModalSince.screenKey === screenKey && now - noModalSince.at < NO_MODAL_TRUST_MS) {
47
+ done(ZERO);
48
+ return;
49
+ }
50
+ (0, _presentedModal.locatePresentedModal)(_FiberScanRootStore.fiberScanRoot.getFiber()).then(modal => {
51
+ noModalSince = modal == null ? {
52
+ at: now,
53
+ screenKey
54
+ } : null;
55
+ done(modal == null ? ZERO : fiber ? (0, _presentedModal.measureOriginOf)(fiber, modal) : null);
56
+ }, () => {
57
+ noModalSince = null;
58
+ done(null);
59
+ });
60
+ }
61
+ function offsetRect(rect, origin) {
62
+ if (origin.x === 0 && origin.y === 0) return rect;
63
+ return {
64
+ ...rect,
65
+ x: rect.x + origin.x,
66
+ y: rect.y + origin.y
67
+ };
68
+ }
69
+
70
+ /** @internal Forgets the cached "nothing is presented" between tests. */
71
+ function resetTargetOriginForTests() {
72
+ noModalSince = null;
73
+ }
74
+ //# sourceMappingURL=targetOrigin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_FiberScanRootStore","require","_presentedModal","_fiberAnchorCache","_WindowOverlayHost","ZERO","x","y","NO_MODAL_TRUST_MS","exports","noModalSince","locateTargetOrigin","fiber","done","hasWindowOverlayHost","screenKey","getFiberAnchorScreenKey","now","Date","at","locatePresentedModal","fiberScanRoot","getFiber","then","modal","measureOriginOf","offsetRect","rect","origin","resetTargetOriginForTests"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/targetOrigin.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAIA,MAAMI,IAAW,GAAG;EAAEC,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAI;AAErC,IAAIE,YAA6D,GAAG,IAAI;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAChCC,KAAsB,EACtBC,IAAoC,EAC9B;EACN,IAAI,CAAC,IAAAC,uCAAoB,EAAC,CAAC,EAAE;IAC3BD,IAAI,CAACR,IAAI,CAAC;IACV;EACF;EACA,MAAMU,SAAS,GAAG,IAAAC,yCAAuB,EAAC,CAAC;EAC3C,MAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;EACtB,IACEP,YAAY,IACZA,YAAY,CAACK,SAAS,KAAKA,SAAS,IACpCE,GAAG,GAAGP,YAAY,CAACS,EAAE,GAAGX,iBAAiB,EACzC;IACAK,IAAI,CAACR,IAAI,CAAC;IACV;EACF;EACA,IAAAe,oCAAoB,EAACC,iCAAa,CAACC,QAAQ,CAAC,CAAC,CAAC,CAACC,IAAI,CAChDC,KAAK,IAAK;IACTd,YAAY,GAAGc,KAAK,IAAI,IAAI,GAAG;MAAEL,EAAE,EAAEF,GAAG;MAAEF;IAAU,CAAC,GAAG,IAAI;IAC5DF,IAAI,CAACW,KAAK,IAAI,IAAI,GAAGnB,IAAI,GAAGO,KAAK,GAAG,IAAAa,+BAAe,EAACb,KAAK,EAAEY,KAAK,CAAC,GAAG,IAAI,CAAC;EAC3E,CAAC,EACD,MAAM;IACJd,YAAY,GAAG,IAAI;IACnBG,IAAI,CAAC,IAAI,CAAC;EACZ,CACF,CAAC;AACH;AAEO,SAASa,UAAUA,CAACC,IAAU,EAAEC,MAAa,EAAQ;EAC1D,IAAIA,MAAM,CAACtB,CAAC,KAAK,CAAC,IAAIsB,MAAM,CAACrB,CAAC,KAAK,CAAC,EAAE,OAAOoB,IAAI;EACjD,OAAO;IAAE,GAAGA,IAAI;IAAErB,CAAC,EAAEqB,IAAI,CAACrB,CAAC,GAAGsB,MAAM,CAACtB,CAAC;IAAEC,CAAC,EAAEoB,IAAI,CAACpB,CAAC,GAAGqB,MAAM,CAACrB;EAAE,CAAC;AAChE;;AAEA;AACO,SAASsB,yBAAyBA,CAAA,EAAS;EAChDnB,YAAY,GAAG,IAAI;AACrB","ignoreList":[]}
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SDK_VERSION = void 0;
7
7
  /** Generated by scripts/write-version.mjs — do not edit. */
8
- const SDK_VERSION = exports.SDK_VERSION = '0.5.0';
8
+ const SDK_VERSION = exports.SDK_VERSION = '0.7.0';
9
9
  //# sourceMappingURL=version.js.map
@@ -2,6 +2,11 @@
2
2
 
3
3
  /** Host view that can be measured in window coordinates. */
4
4
 
5
+ /**
6
+ * The view instance an anchor ref receives. Structural rather than `View`,
7
+ * which React Native 0.88 types as a function component, not an instance.
8
+ */
9
+
5
10
  /**
6
11
  * Manual-anchor registry for Phase 3 (WS6). Codeless resolution is Phase 4.
7
12
  * Multiple mounts of the same id keep a set; {@link get} returns the most
@@ -1 +1 @@
1
- {"version":3,"names":["AnchorRegistry","anchors","Map","listeners","Set","register","id","host","set","get","add","emit","unregister","delete","size","last","getAll","isAmbiguous","subscribe","listener","clear","anchorRegistry"],"sourceRoot":"../../../src","sources":["anchors/AnchorRegistry.ts"],"mappings":";;AAAA;;AAmBA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,cAAc,CAAC;EACTC,OAAO,GAAG,IAAIC,GAAG,CAA0B,CAAC;EAC5CC,SAAS,GAAG,IAAIC,GAAG,CAAW,CAAC;EAEhDC,QAAQA,CAACC,EAAU,EAAEC,IAAgB,EAAQ;IAC3C,IAAI,CAACD,EAAE,EAAE;IACT,IAAIE,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAC9B,IAAI,CAACE,GAAG,EAAE;MACRA,GAAG,GAAG,IAAIJ,GAAG,CAAC,CAAC;MACf,IAAI,CAACH,OAAO,CAACO,GAAG,CAACF,EAAE,EAAEE,GAAG,CAAC;IAC3B;IACAA,GAAG,CAACE,GAAG,CAACH,IAAI,CAAC;IACb,IAAI,CAACI,IAAI,CAAC,CAAC;EACb;EAEAC,UAAUA,CAACN,EAAU,EAAEC,IAAgB,EAAQ;IAC7C,MAAMC,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,EAAE;IACVA,GAAG,CAACK,MAAM,CAACN,IAAI,CAAC;IAChB,IAAIC,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE;MAClB,IAAI,CAACb,OAAO,CAACY,MAAM,CAACP,EAAE,CAAC;IACzB;IACA,IAAI,CAACK,IAAI,CAAC,CAAC;EACb;EAEAF,GAAGA,CAACH,EAAU,EAAqB;IACjC,MAAME,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,IAAIA,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;IACvC,IAAIC,IAAuB,GAAG,IAAI;IAClC,KAAK,MAAMR,IAAI,IAAIC,GAAG,EAAE;MACtBO,IAAI,GAAGR,IAAI;IACb;IACA,OAAOQ,IAAI;EACb;;EAEA;EACAC,MAAMA,CAACV,EAAU,EAAgB;IAC/B,MAAME,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,IAAIA,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE;IACrC,OAAO,CAAC,GAAGN,GAAG,CAAC;EACjB;;EAEA;EACAS,WAAWA,CAACX,EAAU,EAAW;IAC/B,OAAO,CAAC,IAAI,CAACL,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC,EAAEQ,IAAI,IAAI,CAAC,IAAI,CAAC;EAC9C;EAEAI,SAASA,CAACC,QAAkB,EAAc;IACxC,IAAI,CAAChB,SAAS,CAACO,GAAG,CAACS,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAAChB,SAAS,CAACU,MAAM,CAACM,QAAQ,CAAC;IACjC,CAAC;EACH;;EAEA;EACAC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACnB,OAAO,CAACmB,KAAK,CAAC,CAAC;IACpB,IAAI,CAACT,IAAI,CAAC,CAAC;EACb;EAEQA,IAAIA,CAAA,EAAS;IACnB,KAAK,MAAMQ,QAAQ,IAAI,IAAI,CAAChB,SAAS,EAAE;MACrCgB,QAAQ,CAAC,CAAC;IACZ;EACF;AACF;;AAEA;AACA,OAAO,MAAME,cAAc,GAAG,IAAIrB,cAAc,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["AnchorRegistry","anchors","Map","listeners","Set","register","id","host","set","get","add","emit","unregister","delete","size","last","getAll","isAmbiguous","subscribe","listener","clear","anchorRegistry"],"sourceRoot":"../../../src","sources":["anchors/AnchorRegistry.ts"],"mappings":";;AAAA;;AAiBA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,cAAc,CAAC;EACTC,OAAO,GAAG,IAAIC,GAAG,CAA0B,CAAC;EAC5CC,SAAS,GAAG,IAAIC,GAAG,CAAW,CAAC;EAEhDC,QAAQA,CAACC,EAAU,EAAEC,IAAgB,EAAQ;IAC3C,IAAI,CAACD,EAAE,EAAE;IACT,IAAIE,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAC9B,IAAI,CAACE,GAAG,EAAE;MACRA,GAAG,GAAG,IAAIJ,GAAG,CAAC,CAAC;MACf,IAAI,CAACH,OAAO,CAACO,GAAG,CAACF,EAAE,EAAEE,GAAG,CAAC;IAC3B;IACAA,GAAG,CAACE,GAAG,CAACH,IAAI,CAAC;IACb,IAAI,CAACI,IAAI,CAAC,CAAC;EACb;EAEAC,UAAUA,CAACN,EAAU,EAAEC,IAAgB,EAAQ;IAC7C,MAAMC,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,EAAE;IACVA,GAAG,CAACK,MAAM,CAACN,IAAI,CAAC;IAChB,IAAIC,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE;MAClB,IAAI,CAACb,OAAO,CAACY,MAAM,CAACP,EAAE,CAAC;IACzB;IACA,IAAI,CAACK,IAAI,CAAC,CAAC;EACb;EAEAF,GAAGA,CAACH,EAAU,EAAqB;IACjC,MAAME,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,IAAIA,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;IACvC,IAAIC,IAAuB,GAAG,IAAI;IAClC,KAAK,MAAMR,IAAI,IAAIC,GAAG,EAAE;MACtBO,IAAI,GAAGR,IAAI;IACb;IACA,OAAOQ,IAAI;EACb;;EAEA;EACAC,MAAMA,CAACV,EAAU,EAAgB;IAC/B,MAAME,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,IAAIA,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE;IACrC,OAAO,CAAC,GAAGN,GAAG,CAAC;EACjB;;EAEA;EACAS,WAAWA,CAACX,EAAU,EAAW;IAC/B,OAAO,CAAC,IAAI,CAACL,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC,EAAEQ,IAAI,IAAI,CAAC,IAAI,CAAC;EAC9C;EAEAI,SAASA,CAACC,QAAkB,EAAc;IACxC,IAAI,CAAChB,SAAS,CAACO,GAAG,CAACS,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAAChB,SAAS,CAACU,MAAM,CAACM,QAAQ,CAAC;IACjC,CAAC;EACH;;EAEA;EACAC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACnB,OAAO,CAACmB,KAAK,CAAC,CAAC;IACpB,IAAI,CAACT,IAAI,CAAC,CAAC;EACb;EAEQA,IAAIA,CAAA,EAAS;IACnB,KAAK,MAAMQ,QAAQ,IAAI,IAAI,CAAChB,SAAS,EAAE;MACrCgB,QAAQ,CAAC,CAAC;IACZ;EACF;AACF;;AAEA;AACA,OAAO,MAAME,cAAc,GAAG,IAAIrB,cAAc,CAAC,CAAC","ignoreList":[]}
@@ -2,6 +2,14 @@
2
2
 
3
3
  /** Padding applied when scrolling a target into the visible region of a container. */
4
4
  const INTO_VIEW_PADDING = 24;
5
+
6
+ /**
7
+ * The ScrollView instance a scroll container ref receives. Structural rather
8
+ * than `ScrollView`, which React Native 0.88 types as a function component.
9
+ * Older React Native types leave measureInWindow off the ScrollView instance,
10
+ * so it is not required here.
11
+ */
12
+
5
13
  /**
6
14
  * Registry of host {@link ScrollView}s used as an explicit override when
7
15
  * scrolling tooltip anchors into view. Prefer automatic fiber discovery for
@@ -1 +1 @@
1
- {"version":3,"names":["INTO_VIEW_PADDING","ScrollContainerRegistry","containers","Set","listeners","register","host","add","emit","unregister","delete","list","scrollTargetIntoView","target","measureInWindow","x","y","width","height","offset","getContentOffset","targetContentY","nextY","Math","max","abs","scrollTo","animated","subscribe","listener","clear","scrollContainerRegistry","createScrollContainerHost","node","measurable","callback","options"],"sourceRoot":"../../../src","sources":["anchors/ScrollContainerRegistry.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["INTO_VIEW_PADDING","ScrollContainerRegistry","containers","Set","listeners","register","host","add","emit","unregister","delete","list","scrollTargetIntoView","target","measureInWindow","x","y","width","height","offset","getContentOffset","targetContentY","nextY","Math","max","abs","scrollTo","animated","subscribe","listener","clear","scrollContainerRegistry","createScrollContainerHost","node","measurable","callback","options"],"sourceRoot":"../../../src","sources":["anchors/ScrollContainerRegistry.ts"],"mappings":";;AAMA;AACA,MAAMA,iBAAiB,GAAG,EAAE;;AAU5B;AACA;AACA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,uBAAuB,CAAC;EAClBC,UAAU,GAAG,IAAIC,GAAG,CAAsB,CAAC;EAC3CC,SAAS,GAAG,IAAID,GAAG,CAAW,CAAC;EAEhDE,QAAQA,CAACC,IAAyB,EAAQ;IACxC,IAAI,CAACJ,UAAU,CAACK,GAAG,CAACD,IAAI,CAAC;IACzB,IAAI,CAACE,IAAI,CAAC,CAAC;EACb;EAEAC,UAAUA,CAACH,IAAyB,EAAQ;IAC1C,IAAI,CAACJ,UAAU,CAACQ,MAAM,CAACJ,IAAI,CAAC;IAC5B,IAAI,CAACE,IAAI,CAAC,CAAC;EACb;;EAEA;EACAG,IAAIA,CAAA,EAA0B;IAC5B,OAAO,CAAC,GAAG,IAAI,CAACT,UAAU,CAAC;EAC7B;;EAEA;AACF;AACA;AACA;EACEU,oBAAoBA,CAACC,MAAY,EAAQ;IACvC,KAAK,MAAMP,IAAI,IAAI,IAAI,CAACJ,UAAU,EAAE;MAClCI,IAAI,CAACQ,eAAe,CAAC,CAACC,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,KAAK;QAC5C,IAAID,KAAK,IAAI,CAAC,IAAIC,MAAM,IAAI,CAAC,EAAE;QAE/B,MAAMC,MAAM,GAAGb,IAAI,CAACc,gBAAgB,CAAC,CAAC;QACtC,MAAMC,cAAc,GAAGF,MAAM,CAACH,CAAC,IAAIH,MAAM,CAACG,CAAC,GAAGA,CAAC,CAAC;QAChD,IAAIM,KAAoB,GAAG,IAAI;QAE/B,IAAIT,MAAM,CAACG,CAAC,GAAGA,CAAC,GAAGhB,iBAAiB,EAAE;UACpCsB,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,cAAc,GAAGrB,iBAAiB,CAAC;QACzD,CAAC,MAAM,IAAIa,MAAM,CAACG,CAAC,GAAGH,MAAM,CAACK,MAAM,GAAGF,CAAC,GAAGE,MAAM,GAAGlB,iBAAiB,EAAE;UACpEsB,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,cAAc,GAAGR,MAAM,CAACK,MAAM,GAAGA,MAAM,GAAGlB,iBAAiB,CAAC;QAClF;QAEA,IAAIsB,KAAK,IAAI,IAAI,IAAIC,IAAI,CAACE,GAAG,CAACH,KAAK,GAAGH,MAAM,CAACH,CAAC,CAAC,GAAG,CAAC,EAAE;QACrDV,IAAI,CAACoB,QAAQ,CAAC;UAAEV,CAAC,EAAEM,KAAK;UAAEK,QAAQ,EAAE;QAAK,CAAC,CAAC;MAC7C,CAAC,CAAC;MACF;MACA;IACF;EACF;EAEAC,SAASA,CAACC,QAAkB,EAAc;IACxC,IAAI,CAACzB,SAAS,CAACG,GAAG,CAACsB,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAACzB,SAAS,CAACM,MAAM,CAACmB,QAAQ,CAAC;IACjC,CAAC;EACH;EAEAC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAAC5B,UAAU,CAAC4B,KAAK,CAAC,CAAC;IACvB,IAAI,CAACtB,IAAI,CAAC,CAAC;EACb;EAEQA,IAAIA,CAAA,EAAS;IACnB,KAAK,MAAMqB,QAAQ,IAAI,IAAI,CAACzB,SAAS,EAAE;MACrCyB,QAAQ,CAAC,CAAC;IACZ;EACF;AACF;;AAEA;AACA,OAAO,MAAME,uBAAuB,GAAG,IAAI9B,uBAAuB,CAAC,CAAC;;AAEpE;AACA,OAAO,SAAS+B,yBAAyBA,CACvCC,IAAyB,EACzBb,gBAAgD,EAC3B;EACrB,MAAMc,UAAU,GAAGD,IAA4C;EAC/D,OAAO;IACLnB,eAAe,EAAGqB,QAAQ,IAAK;MAC7BD,UAAU,CAACpB,eAAe,CAACqB,QAAQ,CAAC;IACtC,CAAC;IACDf,gBAAgB;IAChBM,QAAQ,EAAGU,OAAO,IAAK;MACrBH,IAAI,CAACP,QAAQ,CAACU,OAAO,CAAC;IACxB;EACF,CAAC;AACH","ignoreList":[]}
@@ -24,6 +24,14 @@ class FiberScanRootStore {
24
24
  if (!fiber) return null;
25
25
  return resolveCurrentFiber(fiber);
26
26
  }
27
+
28
+ /**
29
+ * Mounted scan-root instance. Font detection caches against this identity
30
+ * so a remount scans again and an update of the same root does not.
31
+ */
32
+ getInstance() {
33
+ return this.instance;
34
+ }
27
35
  subscribe(listener) {
28
36
  this.listeners.add(listener);
29
37
  return () => {
@@ -1 +1 @@
1
- {"version":3,"names":["fiberFromPublicInstance","resolveCurrentFiber","FiberScanRootStore","instance","listeners","Set","set","emit","clear","getFiber","fiber","subscribe","listener","add","delete","resetForTests","fiberScanRoot"],"sourceRoot":"../../../../src","sources":["anchors/fiber/FiberScanRootStore.ts"],"mappings":";;AAAA,SAAwBA,uBAAuB,EAAEC,mBAAmB,QAAQ,qBAAkB;AAI9F;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,CAAC;EACfC,QAAQ,GAAY,IAAI;EACfC,SAAS,GAAG,IAAIC,GAAG,CAAW,CAAC;EAEhDC,GAAGA,CAACH,QAAiB,EAAQ;IAC3B,IAAI,CAACA,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACI,IAAI,CAAC,CAAC;EACb;EAEAC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACL,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACI,IAAI,CAAC,CAAC;EACb;;EAEA;EACAE,QAAQA,CAAA,EAAoB;IAC1B,IAAI,CAAC,IAAI,CAACN,QAAQ,EAAE,OAAO,IAAI;IAC/B,MAAMO,KAAK,GAAGV,uBAAuB,CAAC,IAAI,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACO,KAAK,EAAE,OAAO,IAAI;IACvB,OAAOT,mBAAmB,CAACS,KAAK,CAAC;EACnC;EAEAC,SAASA,CAACC,QAAkB,EAAc;IACxC,IAAI,CAACR,SAAS,CAACS,GAAG,CAACD,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAACR,SAAS,CAACU,MAAM,CAACF,QAAQ,CAAC;IACjC,CAAC;EACH;;EAEA;EACAG,aAAaA,CAAA,EAAS;IACpB,IAAI,CAACZ,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,SAAS,CAACI,KAAK,CAAC,CAAC;EACxB;EAEQD,IAAIA,CAAA,EAAS;IACnB,KAAK,MAAMK,QAAQ,IAAI,IAAI,CAACR,SAAS,EAAE;MACrCQ,QAAQ,CAAC,CAAC;IACZ;EACF;AACF;AAEA,OAAO,MAAMI,aAAa,GAAG,IAAId,kBAAkB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["fiberFromPublicInstance","resolveCurrentFiber","FiberScanRootStore","instance","listeners","Set","set","emit","clear","getFiber","fiber","getInstance","subscribe","listener","add","delete","resetForTests","fiberScanRoot"],"sourceRoot":"../../../../src","sources":["anchors/fiber/FiberScanRootStore.ts"],"mappings":";;AAAA,SAAwBA,uBAAuB,EAAEC,mBAAmB,QAAQ,qBAAkB;AAI9F;AACA;AACA;AACA;AACA,MAAMC,kBAAkB,CAAC;EACfC,QAAQ,GAAY,IAAI;EACfC,SAAS,GAAG,IAAIC,GAAG,CAAW,CAAC;EAEhDC,GAAGA,CAACH,QAAiB,EAAQ;IAC3B,IAAI,CAACA,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACI,IAAI,CAAC,CAAC;EACb;EAEAC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACL,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACI,IAAI,CAAC,CAAC;EACb;;EAEA;EACAE,QAAQA,CAAA,EAAoB;IAC1B,IAAI,CAAC,IAAI,CAACN,QAAQ,EAAE,OAAO,IAAI;IAC/B,MAAMO,KAAK,GAAGV,uBAAuB,CAAC,IAAI,CAACG,QAAQ,CAAC;IACpD,IAAI,CAACO,KAAK,EAAE,OAAO,IAAI;IACvB,OAAOT,mBAAmB,CAACS,KAAK,CAAC;EACnC;;EAEA;AACF;AACA;AACA;EACEC,WAAWA,CAAA,EAAY;IACrB,OAAO,IAAI,CAACR,QAAQ;EACtB;EAEAS,SAASA,CAACC,QAAkB,EAAc;IACxC,IAAI,CAACT,SAAS,CAACU,GAAG,CAACD,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAACT,SAAS,CAACW,MAAM,CAACF,QAAQ,CAAC;IACjC,CAAC;EACH;;EAEA;EACAG,aAAaA,CAAA,EAAS;IACpB,IAAI,CAACb,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,SAAS,CAACI,KAAK,CAAC,CAAC;EACxB;EAEQD,IAAIA,CAAA,EAAS;IACnB,KAAK,MAAMM,QAAQ,IAAI,IAAI,CAACT,SAAS,EAAE;MACrCS,QAAQ,CAAC,CAAC;IACZ;EACF;AACF;AAEA,OAAO,MAAMI,aAAa,GAAG,IAAIf,kBAAkB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,330 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Host-app font used when a theme is still on the default CSS stack.
5
+ *
6
+ * React Native does not inherit `fontFamily` from a parent view, so the family
7
+ * actually in use is the one set on `Text`. The primary font is whichever
8
+ * family appears on the most visible host text under the scan root (the SDK
9
+ * overlay is a sibling and is not walked). Embedded banners are inside that
10
+ * root; their hosts use a `userflow-` testID and are not votes, or the bar's
11
+ * own text would win. Text with no family counts as the platform font. Icon
12
+ * faces are not content. Nested text with no family does not vote: the
13
+ * ancestor text already does, and a child run must not add another vote for
14
+ * that family or for the platform font.
15
+ *
16
+ * A finished walk is cached until the visible screen changes, the reported
17
+ * screen changes, or `Userflow.reset()`. A walk that hits the node cap is not
18
+ * cached. Failures return null.
19
+ */
20
+ import { getCurrentScreenLocation } from "../../screenTracker.js";
21
+ import { fiberScanRoot } from "./FiberScanRootStore.js";
22
+ import { MAX_ANCESTOR_WALK, getHostTypeName, getLiveHostProps, getReturn, getStateNode } from "./fiberInternals.js";
23
+ import { isFiberOnVisibleScreen, isScreenHostFiber } from "./visibleScreens.js";
24
+ import { walkVisibleFibers } from "./walkVisibleFibers.js";
25
+ const TEXT_HOST_NAMES = new Set(['Text', 'RCTText', 'RCTVirtualText']);
26
+
27
+ /** SDK hosts inside the scan root (embedded banners). Not the app's font. */
28
+ const SDK_HOST_TEST_ID_PREFIX = 'userflow-';
29
+
30
+ /** Cycle guard for nested-text inheritance. Real trees are only a few levels deep. */
31
+ const MAX_FONT_ANCESTORS = 50;
32
+ 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']);
33
+
34
+ /** Short vector-icon families. Matched after stripping spaces and punctuation. */
35
+ const ICON_FONT_EXACT = new Set(['feather', 'antdesign', 'entypo', 'fontisto', 'simplelineicons', 'octicons', 'zocial', 'foundation', 'evilicons']);
36
+ let cache = null;
37
+
38
+ /** Drop the cached app font. Called from `Userflow.reset()`. */
39
+ export function resetDetectedAppFont() {
40
+ cache = null;
41
+ }
42
+
43
+ /**
44
+ * Family to apply, or null when the app font is the platform face or could
45
+ * not be read. Never throws.
46
+ */
47
+ export function detectAppFontFamily() {
48
+ try {
49
+ const instance = fiberScanRoot.getInstance();
50
+ if (!instance || typeof instance !== 'object') return null;
51
+ const root = fiberScanRoot.getFiber();
52
+ if (!root) return null;
53
+ if (cache?.instance === instance && cacheStillCurrent(cache, root)) return cache.family;
54
+ const tally = tallyHostText(root);
55
+ if (tally.truncated) {
56
+ if (!tally.voted) return null;
57
+ return pickMajority(tally.counts);
58
+ }
59
+ const family = tally.voted ? pickMajority(tally.counts) : null;
60
+ cache = {
61
+ instance,
62
+ family,
63
+ screens: tally.screens,
64
+ screenKey: reportedScreenKey()
65
+ };
66
+ return family;
67
+ } catch {
68
+ return null;
69
+ }
70
+ }
71
+
72
+ /**
73
+ * Faces that appear in the builder's default system stack. A comma-separated
74
+ * list made only of these and generic keywords is that default, not a custom
75
+ * font. A single concrete name is still kept, including `Roboto`.
76
+ */
77
+ const DEFAULT_STACK_FACES = new Set(['blinkmacsystemfont', 'segoe ui', 'roboto', 'helvetica', 'arial', 'apple color emoji', 'segoe ui emoji', 'segoe ui symbol']);
78
+
79
+ /**
80
+ * A single React Native family name. CSS stacks and generic keywords are not
81
+ * usable as a host `fontFamily` — RN treats the whole string as one face.
82
+ * Theme stacks are parsed by {@link themeConcreteFontFamily}.
83
+ */
84
+ export function concreteFontFamily(value) {
85
+ if (typeof value !== 'string') return undefined;
86
+ const name = unwrapFontName(value);
87
+ if (!name || name.includes(',') || name.startsWith('-')) return undefined;
88
+ if (CSS_GENERIC_FAMILIES.has(name.toLowerCase())) return undefined;
89
+ return name;
90
+ }
91
+
92
+ /**
93
+ * Family a theme author chose. A single concrete name is kept. A comma-separated
94
+ * list keeps the first family that is not a generic or a default-stack face,
95
+ * so `"Source Sans Pro", sans-serif` stays Source Sans Pro and the system
96
+ * stack still resolves to undefined.
97
+ */
98
+ export function themeConcreteFontFamily(value) {
99
+ if (typeof value !== 'string') return undefined;
100
+ const parts = splitCssFamilies(value);
101
+ if (parts.length === 0) return undefined;
102
+ if (parts.length === 1) return concreteFontFamily(parts[0]);
103
+ for (const part of parts) {
104
+ const name = concreteFontFamily(part);
105
+ if (!name || DEFAULT_STACK_FACES.has(name.toLowerCase())) continue;
106
+ return name;
107
+ }
108
+ return undefined;
109
+ }
110
+
111
+ /**
112
+ * Split a CSS `font-family` list. A quote that opens a family is wrapping and
113
+ * is removed; a quote inside a name stays, so `Foo"Bar` is one family.
114
+ * Commas inside wrapping quotes are not separators.
115
+ */
116
+ export function splitCssFamilies(value) {
117
+ const parts = [];
118
+ let current = '';
119
+ let quote = null;
120
+ for (const char of value) {
121
+ if (quote) {
122
+ if (char === quote) quote = null;else current += char;
123
+ continue;
124
+ }
125
+ if ((char === '"' || char === "'") && current.trim() === '') {
126
+ quote = char;
127
+ continue;
128
+ }
129
+ if (char === ',') {
130
+ const name = current.trim();
131
+ if (name) parts.push(name);
132
+ current = '';
133
+ continue;
134
+ }
135
+ current += char;
136
+ }
137
+ const name = current.trim();
138
+ if (name) parts.push(name);
139
+ return parts;
140
+ }
141
+
142
+ /** Generic keywords and vendor-prefixed faces stay unquoted in CSS. */
143
+ export function isBareCssFamily(name) {
144
+ return name.startsWith('-') || CSS_GENERIC_FAMILIES.has(name.toLowerCase());
145
+ }
146
+ export function isIconFontFamily(name) {
147
+ const key = name.toLowerCase().replace(/[^a-z0-9]/g, '');
148
+ if (ICON_FONT_EXACT.has(key)) return true;
149
+ return key.startsWith('fontawesome') || key.startsWith('ionicons') || key.startsWith('materialcommunityicons') || key.startsWith('materialicons') || key.startsWith('materialsymbols');
150
+ }
151
+ function tallyHostText(root) {
152
+ const counts = new Map();
153
+ const screens = [];
154
+ let voted = false;
155
+ const {
156
+ truncated
157
+ } = walkVisibleFibers(root, fiber => {
158
+ try {
159
+ if (isScreenHostFiber(fiber)) screens.push(fiber);
160
+ if (!isTextHost(fiber)) return;
161
+ const vote = voteFor(fiber, root);
162
+ if (vote === 'skip') return;
163
+ voted = true;
164
+ counts.set(vote, (counts.get(vote) ?? 0) + 1);
165
+ } catch {
166
+ // One unreadable node is not a vote.
167
+ }
168
+ });
169
+ return {
170
+ voted,
171
+ truncated,
172
+ screens,
173
+ counts
174
+ };
175
+ }
176
+
177
+ /** Usable family, null for the platform font, or skip for an icon face. */
178
+ function voteFor(fiber, root) {
179
+ if (isUnderSdkHost(fiber, root)) return 'skip';
180
+ const own = classifyFamily(readFontFamily(fiber));
181
+ if (own.kind === 'icon') return 'skip';
182
+ if (own.kind === 'family') return own.name;
183
+ if (own.kind === 'unusable') return null;
184
+ // No family of its own. The ancestor text node casts the vote for this run.
185
+ if (hasAncestorText(fiber, root)) return 'skip';
186
+ return null;
187
+ }
188
+ function hasAncestorText(fiber, root) {
189
+ let parent = getReturn(fiber);
190
+ for (let depth = 0; parent && parent !== root && depth < MAX_FONT_ANCESTORS; depth += 1) {
191
+ if (isTextHost(parent)) return true;
192
+ parent = getReturn(parent);
193
+ }
194
+ return false;
195
+ }
196
+ function cacheStillCurrent(cached, root) {
197
+ if (cached.screenKey !== reportedScreenKey()) return false;
198
+ if (cached.screens.length === 0) return true;
199
+ return cached.screens.every(screen => screenStillCurrent(screen, root));
200
+ }
201
+ function screenStillCurrent(screen, root) {
202
+ if (!isFiberOnVisibleScreen(screen)) return false;
203
+ let current = screen;
204
+ for (let depth = 0; current && depth < MAX_ANCESTOR_WALK; depth += 1) {
205
+ if (current === root) return true;
206
+ current = getReturn(current);
207
+ }
208
+ return false;
209
+ }
210
+ function reportedScreenKey() {
211
+ const location = getCurrentScreenLocation();
212
+ if (!location) return null;
213
+ const key = 'path' in location ? location.path : location.screen;
214
+ return key || null;
215
+ }
216
+ function classifyFamily(raw) {
217
+ if (!raw) return {
218
+ kind: 'absent'
219
+ };
220
+ if (isIconFontFamily(raw)) return {
221
+ kind: 'icon'
222
+ };
223
+ const concrete = concreteFontFamily(raw);
224
+ if (!concrete) return {
225
+ kind: 'unusable'
226
+ };
227
+ return {
228
+ kind: 'family',
229
+ name: concrete
230
+ };
231
+ }
232
+ function pickMajority(counts) {
233
+ const platform = counts.get(null) ?? 0;
234
+ let bestName = null;
235
+ let bestCount = 0;
236
+ for (const [name, count] of counts) {
237
+ if (name == null) continue;
238
+ if (bestName == null || count > bestCount || count === bestCount && name < bestName) {
239
+ bestName = name;
240
+ bestCount = count;
241
+ }
242
+ }
243
+ if (bestName == null || platform > bestCount) return null;
244
+ return bestName;
245
+ }
246
+ function isUnderSdkHost(fiber, root) {
247
+ let parent = getReturn(fiber);
248
+ for (let depth = 0; parent && parent !== root && depth < MAX_FONT_ANCESTORS; depth += 1) {
249
+ try {
250
+ const testID = getLiveHostProps(parent)?.testID;
251
+ if (typeof testID === 'string' && testID.startsWith(SDK_HOST_TEST_ID_PREFIX)) {
252
+ return true;
253
+ }
254
+ } catch {
255
+ // An unreadable ancestor is not an SDK host.
256
+ }
257
+ parent = getReturn(parent);
258
+ }
259
+ return false;
260
+ }
261
+ function isTextHost(fiber) {
262
+ const typeName = getHostTypeName(fiber);
263
+ if (typeName && TEXT_HOST_NAMES.has(typeName)) return true;
264
+ const elementType = fiber?.elementType;
265
+ if (typeof elementType === 'string' && TEXT_HOST_NAMES.has(elementType)) return true;
266
+ try {
267
+ const node = getStateNode(fiber);
268
+ const className = node?.viewConfig?.uiViewClassName ?? node?.__viewConfig?.uiViewClassName;
269
+ return typeof className === 'string' && TEXT_HOST_NAMES.has(className);
270
+ } catch {
271
+ return false;
272
+ }
273
+ }
274
+ function readFontFamily(fiber) {
275
+ try {
276
+ const flat = flattenFontStyle(getLiveHostProps(fiber)?.style);
277
+ const family = flat?.fontFamily;
278
+ if (typeof family !== 'string') return undefined;
279
+ const trimmed = family.trim();
280
+ return trimmed.length > 0 ? trimmed : undefined;
281
+ } catch {
282
+ return undefined;
283
+ }
284
+ }
285
+ function flattenFontStyle(style) {
286
+ if (style == null || style === false) return null;
287
+ if (typeof style === 'number') return flattenRegisteredStyle(style);
288
+ if (Array.isArray(style)) {
289
+ let family;
290
+ for (const entry of style) {
291
+ const flat = flattenFontStyle(entry);
292
+ if (flat && flat.fontFamily != null) family = flat.fontFamily;
293
+ }
294
+ return {
295
+ fontFamily: family
296
+ };
297
+ }
298
+ if (typeof style === 'object') return style;
299
+ return null;
300
+ }
301
+
302
+ /**
303
+ * StyleSheet ids are numbers. Resolve them only when one shows up so tests
304
+ * that pass plain style objects do not load react-native.
305
+ */
306
+ function flattenRegisteredStyle(styleId) {
307
+ try {
308
+ // Lazy require so unit tests that pass plain style objects do not load RN.
309
+ // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
310
+ const {
311
+ StyleSheet
312
+ } = require('react-native');
313
+ const flat = StyleSheet?.flatten?.(styleId);
314
+ return flat ?? null;
315
+ } catch {
316
+ return null;
317
+ }
318
+ }
319
+ function unwrapFontName(value) {
320
+ const trimmed = value.trim();
321
+ if (trimmed.length >= 2) {
322
+ const first = trimmed[0];
323
+ const last = trimmed[trimmed.length - 1];
324
+ if (first === '"' && last === '"' || first === "'" && last === "'") {
325
+ return trimmed.slice(1, -1).trim();
326
+ }
327
+ }
328
+ return trimmed;
329
+ }
330
+ //# sourceMappingURL=detectAppFontFamily.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getCurrentScreenLocation","fiberScanRoot","MAX_ANCESTOR_WALK","getHostTypeName","getLiveHostProps","getReturn","getStateNode","isFiberOnVisibleScreen","isScreenHostFiber","walkVisibleFibers","TEXT_HOST_NAMES","Set","SDK_HOST_TEST_ID_PREFIX","MAX_FONT_ANCESTORS","CSS_GENERIC_FAMILIES","ICON_FONT_EXACT","cache","resetDetectedAppFont","detectAppFontFamily","instance","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","fiber","isTextHost","vote","voteFor","set","get","isUnderSdkHost","own","classifyFamily","readFontFamily","kind","hasAncestorText","parent","depth","cached","every","screen","screenStillCurrent","location","path","raw","concrete","platform","bestName","bestCount","count","testID","typeName","elementType","node","className","viewConfig","uiViewClassName","__viewConfig","flat","flattenFontStyle","style","fontFamily","trimmed","flattenRegisteredStyle","Array","isArray","entry","styleId","StyleSheet","require","flatten","first","last","slice"],"sourceRoot":"../../../../src","sources":["anchors/fiber/detectAppFontFamily.ts"],"mappings":"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","ignoreList":[]}