@userflow-tech/react-native 0.2.0 → 0.3.1

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 (966) hide show
  1. package/README.md +435 -134
  2. package/app.plugin.js +11 -3
  3. package/babel-plugin/index.d.ts.map +1 -1
  4. package/babel-plugin/index.js +53 -6
  5. package/babel-plugin/index.js.map +1 -1
  6. package/babel-plugin.js +11 -3
  7. package/docs/anchoring.md +58 -42
  8. package/docs/deep-linking.md +70 -33
  9. package/docs/isolation.md +75 -0
  10. package/docs/troubleshooting.md +103 -44
  11. package/docs/webview-custom-banner-poc.md +64 -0
  12. package/expo-plugin/hostDependencyWarnings.d.ts +18 -0
  13. package/expo-plugin/hostDependencyWarnings.d.ts.map +1 -0
  14. package/expo-plugin/hostDependencyWarnings.js +91 -0
  15. package/expo-plugin/hostDependencyWarnings.js.map +1 -0
  16. package/expo-plugin/withUserflow.d.ts +3 -2
  17. package/expo-plugin/withUserflow.d.ts.map +1 -1
  18. package/expo-plugin/withUserflow.js +30 -8
  19. package/expo-plugin/withUserflow.js.map +1 -1
  20. package/lib/commonjs/anchors/AnchorRegistry.js +7 -0
  21. package/lib/commonjs/anchors/AnchorRegistry.js.map +1 -1
  22. package/lib/commonjs/anchors/AutoAnchorRegistry.js +37 -11
  23. package/lib/commonjs/anchors/AutoAnchorRegistry.js.map +1 -1
  24. package/lib/commonjs/anchors/elementConditionEvaluator.js +189 -55
  25. package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
  26. package/lib/commonjs/anchors/elementTapMonitor.js +92 -0
  27. package/lib/commonjs/anchors/elementTapMonitor.js.map +1 -0
  28. package/lib/commonjs/anchors/elementTargetMatch.js +85 -0
  29. package/lib/commonjs/anchors/elementTargetMatch.js.map +1 -0
  30. package/lib/commonjs/anchors/fiber/fiberPath.js +122 -0
  31. package/lib/commonjs/anchors/fiber/fiberPath.js.map +1 -0
  32. package/lib/commonjs/anchors/fiber/findAnchorFiber.js +122 -87
  33. package/lib/commonjs/anchors/fiber/findAnchorFiber.js.map +1 -1
  34. package/lib/commonjs/anchors/fiber/resolveFiberPath.js +220 -0
  35. package/lib/commonjs/anchors/fiber/resolveFiberPath.js.map +1 -0
  36. package/lib/commonjs/anchors/fiber/touchTargetFiber.js +105 -0
  37. package/lib/commonjs/anchors/fiber/touchTargetFiber.js.map +1 -0
  38. package/lib/commonjs/anchors/fiber/visibleRect.js +147 -0
  39. package/lib/commonjs/anchors/fiber/visibleRect.js.map +1 -0
  40. package/lib/commonjs/anchors/fiber/visibleScreens.js +73 -36
  41. package/lib/commonjs/anchors/fiber/visibleScreens.js.map +1 -1
  42. package/lib/commonjs/anchors/fiber/walkVisibleFibers.js +66 -0
  43. package/lib/commonjs/anchors/fiber/walkVisibleFibers.js.map +1 -0
  44. package/lib/commonjs/anchors/isInstanceOnVisibleScreen.js +51 -0
  45. package/lib/commonjs/anchors/isInstanceOnVisibleScreen.js.map +1 -0
  46. package/lib/commonjs/anchors/resolveAnchorHost.js +2 -1
  47. package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
  48. package/lib/commonjs/anchors/resolveAutoAnchorHost.js +26 -17
  49. package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -1
  50. package/lib/commonjs/anchors/resolveElementTargets.js +158 -0
  51. package/lib/commonjs/anchors/resolveElementTargets.js.map +1 -0
  52. package/lib/commonjs/anchors/semanticMatcher.js +26 -8
  53. package/lib/commonjs/anchors/semanticMatcher.js.map +1 -1
  54. package/lib/commonjs/anchors/targetPressMonitor.js +9 -3
  55. package/lib/commonjs/anchors/targetPressMonitor.js.map +1 -1
  56. package/lib/commonjs/anchors/useUserflowAnchor.js +1 -0
  57. package/lib/commonjs/anchors/useUserflowAnchor.js.map +1 -1
  58. package/lib/commonjs/anonymousId.js +19 -7
  59. package/lib/commonjs/anonymousId.js.map +1 -1
  60. package/lib/commonjs/authoring/ElementPickerOverlay.js +126 -50
  61. package/lib/commonjs/authoring/ElementPickerOverlay.js.map +1 -1
  62. package/lib/commonjs/authoring/chrome/ChromeBottomSheet.js +32 -10
  63. package/lib/commonjs/authoring/chrome/ChromeBottomSheet.js.map +1 -1
  64. package/lib/commonjs/authoring/chrome/ChromeButton.js +8 -3
  65. package/lib/commonjs/authoring/chrome/ChromeButton.js.map +1 -1
  66. package/lib/commonjs/authoring/chrome/ChromeIcon.js +4 -0
  67. package/lib/commonjs/authoring/chrome/ChromeIcon.js.map +1 -1
  68. package/lib/commonjs/authoring/chrome/ChromeTopBar.js +23 -10
  69. package/lib/commonjs/authoring/chrome/ChromeTopBar.js.map +1 -1
  70. package/lib/commonjs/authoring/chrome/DoubleTapBridge.js +19 -12
  71. package/lib/commonjs/authoring/chrome/DoubleTapBridge.js.map +1 -1
  72. package/lib/commonjs/authoring/chrome/doubleTapMonitor.js +10 -0
  73. package/lib/commonjs/authoring/chrome/doubleTapMonitor.js.map +1 -1
  74. package/lib/commonjs/authoring/chrome/icons/circle-exclamation.png +0 -0
  75. package/lib/commonjs/authoring/chrome/icons/circle-exclamation@2x.png +0 -0
  76. package/lib/commonjs/authoring/chrome/icons/circle-exclamation@3x.png +0 -0
  77. package/lib/commonjs/authoring/chrome/icons/triangle-exclamation.png +0 -0
  78. package/lib/commonjs/authoring/chrome/icons/triangle-exclamation@2x.png +0 -0
  79. package/lib/commonjs/authoring/chrome/icons/triangle-exclamation@3x.png +0 -0
  80. package/lib/commonjs/authoring/chrome/tokens.js +7 -6
  81. package/lib/commonjs/authoring/chrome/tokens.js.map +1 -1
  82. package/lib/commonjs/authoring/elementPickerController.js.map +1 -1
  83. package/lib/commonjs/authoring/fingerprintFromInstance.js +204 -4
  84. package/lib/commonjs/authoring/fingerprintFromInstance.js.map +1 -1
  85. package/lib/commonjs/authoring/hitTest.js +264 -16
  86. package/lib/commonjs/authoring/hitTest.js.map +1 -1
  87. package/lib/commonjs/authoring/hostAtPoint.js +204 -0
  88. package/lib/commonjs/authoring/hostAtPoint.js.map +1 -0
  89. package/lib/commonjs/content/BannerStepButton.js +68 -0
  90. package/lib/commonjs/content/BannerStepButton.js.map +1 -0
  91. package/lib/commonjs/content/buttonAppearance.js +16 -0
  92. package/lib/commonjs/content/buttonAppearance.js.map +1 -1
  93. package/lib/commonjs/content/resolveBannerButtonChrome.js +44 -0
  94. package/lib/commonjs/content/resolveBannerButtonChrome.js.map +1 -0
  95. package/lib/commonjs/content/themeColor.js +15 -0
  96. package/lib/commonjs/content/themeColor.js.map +1 -1
  97. package/lib/commonjs/deepLinking.js +4 -4
  98. package/lib/commonjs/evalJs/EvalJsHost.js +244 -0
  99. package/lib/commonjs/evalJs/EvalJsHost.js.map +1 -0
  100. package/lib/commonjs/evalJs/bootstrap.js +84 -0
  101. package/lib/commonjs/evalJs/bootstrap.js.map +1 -0
  102. package/lib/commonjs/evalJs/bridgeMessages.js +143 -0
  103. package/lib/commonjs/evalJs/bridgeMessages.js.map +1 -0
  104. package/lib/commonjs/evalJs/evalJsBridge.js +31 -0
  105. package/lib/commonjs/evalJs/evalJsBridge.js.map +1 -0
  106. package/lib/commonjs/evalJs/evalJsController.js +124 -0
  107. package/lib/commonjs/evalJs/evalJsController.js.map +1 -0
  108. package/lib/commonjs/evalJs/getWebView.js +81 -0
  109. package/lib/commonjs/evalJs/getWebView.js.map +1 -0
  110. package/lib/commonjs/evalJs/injectEvalPending.js +19 -0
  111. package/lib/commonjs/evalJs/injectEvalPending.js.map +1 -0
  112. package/lib/commonjs/evalJs/types.js +2 -0
  113. package/lib/commonjs/evalJs/types.js.map +1 -0
  114. package/lib/commonjs/evalJs/useEvalJsWebViewInjection.js +40 -0
  115. package/lib/commonjs/evalJs/useEvalJsWebViewInjection.js.map +1 -0
  116. package/lib/commonjs/expo-router/index.js +19 -0
  117. package/lib/commonjs/expo-router/index.js.map +1 -1
  118. package/lib/commonjs/expo-router/redirectSystemPath.js +75 -0
  119. package/lib/commonjs/expo-router/redirectSystemPath.js.map +1 -0
  120. package/lib/commonjs/expo-router/useUserflowExpoRouter.js +2 -2
  121. package/lib/commonjs/index.js +123 -43
  122. package/lib/commonjs/index.js.map +1 -1
  123. package/lib/commonjs/installCheck.js +151 -0
  124. package/lib/commonjs/installCheck.js.map +1 -0
  125. package/lib/commonjs/lifecycle.js.map +1 -1
  126. package/lib/commonjs/navigation/WithUserflowReactNavigation.js +14 -11
  127. package/lib/commonjs/navigation/WithUserflowReactNavigation.js.map +1 -1
  128. package/lib/commonjs/navigation/openFlowNavigateUrl.js +12 -5
  129. package/lib/commonjs/navigation/openFlowNavigateUrl.js.map +1 -1
  130. package/lib/commonjs/pairing/PairingController.js +245 -27
  131. package/lib/commonjs/pairing/PairingController.js.map +1 -1
  132. package/lib/commonjs/pairing/PreviewModeBanner.js +55 -16
  133. package/lib/commonjs/pairing/PreviewModeBanner.js.map +1 -1
  134. package/lib/commonjs/pairing/deepLink.js +22 -5
  135. package/lib/commonjs/pairing/deepLink.js.map +1 -1
  136. package/lib/commonjs/pairing/deviceId.js +50 -0
  137. package/lib/commonjs/pairing/deviceId.js.map +1 -0
  138. package/lib/commonjs/pairing/diagnostics.js +5 -4
  139. package/lib/commonjs/pairing/diagnostics.js.map +1 -1
  140. package/lib/commonjs/pairing/tokenStorage.js +47 -7
  141. package/lib/commonjs/pairing/tokenStorage.js.map +1 -1
  142. package/lib/commonjs/pairing/usePairingState.js +3 -1
  143. package/lib/commonjs/pairing/usePairingState.js.map +1 -1
  144. package/lib/commonjs/pairing/usePreviewBarHold.js +139 -0
  145. package/lib/commonjs/pairing/usePreviewBarHold.js.map +1 -0
  146. package/lib/commonjs/runtime/BannerHost.js +96 -0
  147. package/lib/commonjs/runtime/BannerHost.js.map +1 -0
  148. package/lib/commonjs/runtime/EmbedBannerPlaceholder.js +99 -0
  149. package/lib/commonjs/runtime/EmbedBannerPlaceholder.js.map +1 -0
  150. package/lib/commonjs/runtime/SdkErrorBoundary.js +61 -0
  151. package/lib/commonjs/runtime/SdkErrorBoundary.js.map +1 -0
  152. package/lib/commonjs/runtime/TargetPressBridge.js +31 -13
  153. package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
  154. package/lib/commonjs/runtime/UserflowOverlay.js +97 -0
  155. package/lib/commonjs/runtime/UserflowOverlay.js.map +1 -0
  156. package/lib/commonjs/runtime/UserflowProvider.js +138 -65
  157. package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
  158. package/lib/commonjs/runtime/bannerEngine.js +63 -0
  159. package/lib/commonjs/runtime/bannerEngine.js.map +1 -0
  160. package/lib/commonjs/runtime/bannerEngineContext.js +11 -0
  161. package/lib/commonjs/runtime/bannerEngineContext.js.map +1 -0
  162. package/lib/commonjs/runtime/bannerPlacement.js +37 -0
  163. package/lib/commonjs/runtime/bannerPlacement.js.map +1 -0
  164. package/lib/commonjs/runtime/embedBannerRegistry.js +30 -0
  165. package/lib/commonjs/runtime/embedBannerRegistry.js.map +1 -0
  166. package/lib/commonjs/runtime/flowEngine.js +75 -3
  167. package/lib/commonjs/runtime/flowEngine.js.map +1 -1
  168. package/lib/commonjs/runtime/isolateCall.js +48 -0
  169. package/lib/commonjs/runtime/isolateCall.js.map +1 -0
  170. package/lib/commonjs/runtime/reportSdkError.js +19 -0
  171. package/lib/commonjs/runtime/reportSdkError.js.map +1 -0
  172. package/lib/commonjs/runtime/useBannerSession.js +37 -0
  173. package/lib/commonjs/runtime/useBannerSession.js.map +1 -0
  174. package/lib/commonjs/screenTracker.js +34 -9
  175. package/lib/commonjs/screenTracker.js.map +1 -1
  176. package/lib/commonjs/storage/asyncStorage.js +67 -0
  177. package/lib/commonjs/storage/asyncStorage.js.map +1 -0
  178. package/lib/commonjs/surfaces/BannerBar.js +160 -0
  179. package/lib/commonjs/surfaces/BannerBar.js.map +1 -0
  180. package/lib/commonjs/surfaces/BannerSurface.js +78 -0
  181. package/lib/commonjs/surfaces/BannerSurface.js.map +1 -0
  182. package/lib/commonjs/surfaces/MadeWithUserflow.js +12 -8
  183. package/lib/commonjs/surfaces/MadeWithUserflow.js.map +1 -1
  184. package/lib/commonjs/surfaces/ModalSurface.js +1 -1
  185. package/lib/commonjs/surfaces/ModalSurface.js.map +1 -1
  186. package/lib/commonjs/surfaces/TooltipSurface.js +17 -1
  187. package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
  188. package/lib/commonjs/surfaces/bannerBarLayout.js +88 -0
  189. package/lib/commonjs/surfaces/bannerBarLayout.js.map +1 -0
  190. package/lib/commonjs/surfaces/bannerBarTokens.js +42 -0
  191. package/lib/commonjs/surfaces/bannerBarTokens.js.map +1 -0
  192. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js +277 -0
  193. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -0
  194. package/lib/commonjs/surfaces/bannerWebView/bannerAutoRunEvalJs.js +46 -0
  195. package/lib/commonjs/surfaces/bannerWebView/bannerAutoRunEvalJs.js.map +1 -0
  196. package/lib/commonjs/surfaces/bannerWebView/bannerAutoRunSession.js +26 -0
  197. package/lib/commonjs/surfaces/bannerWebView/bannerAutoRunSession.js.map +1 -0
  198. package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js +41 -0
  199. package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -0
  200. package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js +74 -0
  201. package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -0
  202. package/lib/commonjs/surfaces/bannerWebView/bannerWebFrameCss.js +152 -0
  203. package/lib/commonjs/surfaces/bannerWebView/bannerWebFrameCss.js.map +1 -0
  204. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js +148 -0
  205. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -0
  206. package/lib/commonjs/surfaces/bannerWebView/buttonClassName.js +13 -0
  207. package/lib/commonjs/surfaces/bannerWebView/buttonClassName.js.map +1 -0
  208. package/lib/commonjs/surfaces/bannerWebView/resolveCdnHost.js +49 -0
  209. package/lib/commonjs/surfaces/bannerWebView/resolveCdnHost.js.map +1 -0
  210. package/lib/commonjs/surfaces/bannerWebView/richContentDocToHtml.js +83 -0
  211. package/lib/commonjs/surfaces/bannerWebView/richContentDocToHtml.js.map +1 -0
  212. package/lib/commonjs/surfaces/resolveBannerTheme.js +22 -0
  213. package/lib/commonjs/surfaces/resolveBannerTheme.js.map +1 -0
  214. package/lib/commonjs/surfaces/safeArea.js +76 -13
  215. package/lib/commonjs/surfaces/safeArea.js.map +1 -1
  216. package/lib/commonjs/version.js +1 -1
  217. package/lib/module/anchors/AnchorRegistry.js +7 -0
  218. package/lib/module/anchors/AnchorRegistry.js.map +1 -1
  219. package/lib/module/anchors/AutoAnchorRegistry.js +37 -11
  220. package/lib/module/anchors/AutoAnchorRegistry.js.map +1 -1
  221. package/lib/module/anchors/elementConditionEvaluator.js +189 -55
  222. package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
  223. package/lib/module/anchors/elementTapMonitor.js +87 -0
  224. package/lib/module/anchors/elementTapMonitor.js.map +1 -0
  225. package/lib/module/anchors/elementTargetMatch.js +78 -0
  226. package/lib/module/anchors/elementTargetMatch.js.map +1 -0
  227. package/lib/module/anchors/fiber/fiberPath.js +118 -0
  228. package/lib/module/anchors/fiber/fiberPath.js.map +1 -0
  229. package/lib/module/anchors/fiber/findAnchorFiber.js +120 -87
  230. package/lib/module/anchors/fiber/findAnchorFiber.js.map +1 -1
  231. package/lib/module/anchors/fiber/resolveFiberPath.js +215 -0
  232. package/lib/module/anchors/fiber/resolveFiberPath.js.map +1 -0
  233. package/lib/module/anchors/fiber/touchTargetFiber.js +100 -0
  234. package/lib/module/anchors/fiber/touchTargetFiber.js.map +1 -0
  235. package/lib/module/anchors/fiber/visibleRect.js +139 -0
  236. package/lib/module/anchors/fiber/visibleRect.js.map +1 -0
  237. package/lib/module/anchors/fiber/visibleScreens.js +73 -37
  238. package/lib/module/anchors/fiber/visibleScreens.js.map +1 -1
  239. package/lib/module/anchors/fiber/walkVisibleFibers.js +61 -0
  240. package/lib/module/anchors/fiber/walkVisibleFibers.js.map +1 -0
  241. package/lib/module/anchors/isInstanceOnVisibleScreen.js +46 -0
  242. package/lib/module/anchors/isInstanceOnVisibleScreen.js.map +1 -0
  243. package/lib/module/anchors/resolveAnchorHost.js +2 -1
  244. package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
  245. package/lib/module/anchors/resolveAutoAnchorHost.js +25 -18
  246. package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -1
  247. package/lib/module/anchors/resolveElementTargets.js +152 -0
  248. package/lib/module/anchors/resolveElementTargets.js.map +1 -0
  249. package/lib/module/anchors/semanticMatcher.js +26 -9
  250. package/lib/module/anchors/semanticMatcher.js.map +1 -1
  251. package/lib/module/anchors/targetPressMonitor.js +8 -3
  252. package/lib/module/anchors/targetPressMonitor.js.map +1 -1
  253. package/lib/module/anchors/useUserflowAnchor.js +1 -0
  254. package/lib/module/anchors/useUserflowAnchor.js.map +1 -1
  255. package/lib/module/anonymousId.js +18 -6
  256. package/lib/module/anonymousId.js.map +1 -1
  257. package/lib/module/authoring/ElementPickerOverlay.js +128 -52
  258. package/lib/module/authoring/ElementPickerOverlay.js.map +1 -1
  259. package/lib/module/authoring/chrome/ChromeBottomSheet.js +32 -10
  260. package/lib/module/authoring/chrome/ChromeBottomSheet.js.map +1 -1
  261. package/lib/module/authoring/chrome/ChromeButton.js +8 -3
  262. package/lib/module/authoring/chrome/ChromeButton.js.map +1 -1
  263. package/lib/module/authoring/chrome/ChromeIcon.js +4 -0
  264. package/lib/module/authoring/chrome/ChromeIcon.js.map +1 -1
  265. package/lib/module/authoring/chrome/ChromeTopBar.js +23 -10
  266. package/lib/module/authoring/chrome/ChromeTopBar.js.map +1 -1
  267. package/lib/module/authoring/chrome/DoubleTapBridge.js +19 -12
  268. package/lib/module/authoring/chrome/DoubleTapBridge.js.map +1 -1
  269. package/lib/module/authoring/chrome/doubleTapMonitor.js +10 -0
  270. package/lib/module/authoring/chrome/doubleTapMonitor.js.map +1 -1
  271. package/lib/module/authoring/chrome/icons/circle-exclamation.png +0 -0
  272. package/lib/module/authoring/chrome/icons/circle-exclamation@2x.png +0 -0
  273. package/lib/module/authoring/chrome/icons/circle-exclamation@3x.png +0 -0
  274. package/lib/module/authoring/chrome/icons/triangle-exclamation.png +0 -0
  275. package/lib/module/authoring/chrome/icons/triangle-exclamation@2x.png +0 -0
  276. package/lib/module/authoring/chrome/icons/triangle-exclamation@3x.png +0 -0
  277. package/lib/module/authoring/chrome/tokens.js +7 -6
  278. package/lib/module/authoring/chrome/tokens.js.map +1 -1
  279. package/lib/module/authoring/elementPickerController.js.map +1 -1
  280. package/lib/module/authoring/fingerprintFromInstance.js +198 -4
  281. package/lib/module/authoring/fingerprintFromInstance.js.map +1 -1
  282. package/lib/module/authoring/hitTest.js +264 -18
  283. package/lib/module/authoring/hitTest.js.map +1 -1
  284. package/lib/module/authoring/hostAtPoint.js +199 -0
  285. package/lib/module/authoring/hostAtPoint.js.map +1 -0
  286. package/lib/module/content/BannerStepButton.js +63 -0
  287. package/lib/module/content/BannerStepButton.js.map +1 -0
  288. package/lib/module/content/buttonAppearance.js +14 -0
  289. package/lib/module/content/buttonAppearance.js.map +1 -1
  290. package/lib/module/content/resolveBannerButtonChrome.js +41 -0
  291. package/lib/module/content/resolveBannerButtonChrome.js.map +1 -0
  292. package/lib/module/content/themeColor.js +14 -0
  293. package/lib/module/content/themeColor.js.map +1 -1
  294. package/lib/module/deepLinking.js +4 -4
  295. package/lib/module/evalJs/EvalJsHost.js +239 -0
  296. package/lib/module/evalJs/EvalJsHost.js.map +1 -0
  297. package/lib/module/evalJs/bootstrap.js +76 -0
  298. package/lib/module/evalJs/bootstrap.js.map +1 -0
  299. package/lib/module/evalJs/bridgeMessages.js +139 -0
  300. package/lib/module/evalJs/bridgeMessages.js.map +1 -0
  301. package/lib/module/evalJs/evalJsBridge.js +25 -0
  302. package/lib/module/evalJs/evalJsBridge.js.map +1 -0
  303. package/lib/module/evalJs/evalJsController.js +119 -0
  304. package/lib/module/evalJs/evalJsController.js.map +1 -0
  305. package/lib/module/evalJs/getWebView.js +76 -0
  306. package/lib/module/evalJs/getWebView.js.map +1 -0
  307. package/lib/module/evalJs/injectEvalPending.js +15 -0
  308. package/lib/module/evalJs/injectEvalPending.js.map +1 -0
  309. package/lib/module/evalJs/types.js +2 -0
  310. package/lib/module/evalJs/types.js.map +1 -0
  311. package/lib/module/evalJs/useEvalJsWebViewInjection.js +35 -0
  312. package/lib/module/evalJs/useEvalJsWebViewInjection.js.map +1 -0
  313. package/lib/module/expo-router/index.js +1 -0
  314. package/lib/module/expo-router/index.js.map +1 -1
  315. package/lib/module/expo-router/redirectSystemPath.js +70 -0
  316. package/lib/module/expo-router/redirectSystemPath.js.map +1 -0
  317. package/lib/module/expo-router/useUserflowExpoRouter.js +2 -2
  318. package/lib/module/index.js +119 -45
  319. package/lib/module/index.js.map +1 -1
  320. package/lib/module/installCheck.js +139 -0
  321. package/lib/module/installCheck.js.map +1 -0
  322. package/lib/module/lifecycle.js.map +1 -1
  323. package/lib/module/navigation/WithUserflowReactNavigation.js +14 -11
  324. package/lib/module/navigation/WithUserflowReactNavigation.js.map +1 -1
  325. package/lib/module/navigation/openFlowNavigateUrl.js +12 -5
  326. package/lib/module/navigation/openFlowNavigateUrl.js.map +1 -1
  327. package/lib/module/pairing/PairingController.js +245 -27
  328. package/lib/module/pairing/PairingController.js.map +1 -1
  329. package/lib/module/pairing/PreviewModeBanner.js +54 -16
  330. package/lib/module/pairing/PreviewModeBanner.js.map +1 -1
  331. package/lib/module/pairing/deepLink.js +21 -5
  332. package/lib/module/pairing/deepLink.js.map +1 -1
  333. package/lib/module/pairing/deviceId.js +45 -0
  334. package/lib/module/pairing/deviceId.js.map +1 -0
  335. package/lib/module/pairing/diagnostics.js +5 -4
  336. package/lib/module/pairing/diagnostics.js.map +1 -1
  337. package/lib/module/pairing/tokenStorage.js +47 -7
  338. package/lib/module/pairing/tokenStorage.js.map +1 -1
  339. package/lib/module/pairing/usePairingState.js +3 -1
  340. package/lib/module/pairing/usePairingState.js.map +1 -1
  341. package/lib/module/pairing/usePreviewBarHold.js +134 -0
  342. package/lib/module/pairing/usePreviewBarHold.js.map +1 -0
  343. package/lib/module/runtime/BannerHost.js +92 -0
  344. package/lib/module/runtime/BannerHost.js.map +1 -0
  345. package/lib/module/runtime/EmbedBannerPlaceholder.js +94 -0
  346. package/lib/module/runtime/EmbedBannerPlaceholder.js.map +1 -0
  347. package/lib/module/runtime/SdkErrorBoundary.js +55 -0
  348. package/lib/module/runtime/SdkErrorBoundary.js.map +1 -0
  349. package/lib/module/runtime/TargetPressBridge.js +31 -13
  350. package/lib/module/runtime/TargetPressBridge.js.map +1 -1
  351. package/lib/module/runtime/UserflowOverlay.js +92 -0
  352. package/lib/module/runtime/UserflowOverlay.js.map +1 -0
  353. package/lib/module/runtime/UserflowProvider.js +139 -66
  354. package/lib/module/runtime/UserflowProvider.js.map +1 -1
  355. package/lib/module/runtime/bannerEngine.js +55 -0
  356. package/lib/module/runtime/bannerEngine.js.map +1 -0
  357. package/lib/module/runtime/bannerEngineContext.js +7 -0
  358. package/lib/module/runtime/bannerEngineContext.js.map +1 -0
  359. package/lib/module/runtime/bannerPlacement.js +30 -0
  360. package/lib/module/runtime/bannerPlacement.js.map +1 -0
  361. package/lib/module/runtime/embedBannerRegistry.js +24 -0
  362. package/lib/module/runtime/embedBannerRegistry.js.map +1 -0
  363. package/lib/module/runtime/flowEngine.js +72 -3
  364. package/lib/module/runtime/flowEngine.js.map +1 -1
  365. package/lib/module/runtime/isolateCall.js +43 -0
  366. package/lib/module/runtime/isolateCall.js.map +1 -0
  367. package/lib/module/runtime/reportSdkError.js +15 -0
  368. package/lib/module/runtime/reportSdkError.js.map +1 -0
  369. package/lib/module/runtime/useBannerSession.js +33 -0
  370. package/lib/module/runtime/useBannerSession.js.map +1 -0
  371. package/lib/module/screenTracker.js +33 -9
  372. package/lib/module/screenTracker.js.map +1 -1
  373. package/lib/module/storage/asyncStorage.js +61 -0
  374. package/lib/module/storage/asyncStorage.js.map +1 -0
  375. package/lib/module/surfaces/BannerBar.js +155 -0
  376. package/lib/module/surfaces/BannerBar.js.map +1 -0
  377. package/lib/module/surfaces/BannerSurface.js +72 -0
  378. package/lib/module/surfaces/BannerSurface.js.map +1 -0
  379. package/lib/module/surfaces/MadeWithUserflow.js +11 -7
  380. package/lib/module/surfaces/MadeWithUserflow.js.map +1 -1
  381. package/lib/module/surfaces/ModalSurface.js +1 -1
  382. package/lib/module/surfaces/ModalSurface.js.map +1 -1
  383. package/lib/module/surfaces/TooltipSurface.js +17 -1
  384. package/lib/module/surfaces/TooltipSurface.js.map +1 -1
  385. package/lib/module/surfaces/bannerBarLayout.js +69 -0
  386. package/lib/module/surfaces/bannerBarLayout.js.map +1 -0
  387. package/lib/module/surfaces/bannerBarTokens.js +37 -0
  388. package/lib/module/surfaces/bannerBarTokens.js.map +1 -0
  389. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js +272 -0
  390. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -0
  391. package/lib/module/surfaces/bannerWebView/bannerAutoRunEvalJs.js +42 -0
  392. package/lib/module/surfaces/bannerWebView/bannerAutoRunEvalJs.js.map +1 -0
  393. package/lib/module/surfaces/bannerWebView/bannerAutoRunSession.js +19 -0
  394. package/lib/module/surfaces/bannerWebView/bannerAutoRunSession.js.map +1 -0
  395. package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js +35 -0
  396. package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -0
  397. package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js +69 -0
  398. package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -0
  399. package/lib/module/surfaces/bannerWebView/bannerWebFrameCss.js +148 -0
  400. package/lib/module/surfaces/bannerWebView/bannerWebFrameCss.js.map +1 -0
  401. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js +143 -0
  402. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -0
  403. package/lib/module/surfaces/bannerWebView/buttonClassName.js +9 -0
  404. package/lib/module/surfaces/bannerWebView/buttonClassName.js.map +1 -0
  405. package/lib/module/surfaces/bannerWebView/resolveCdnHost.js +42 -0
  406. package/lib/module/surfaces/bannerWebView/resolveCdnHost.js.map +1 -0
  407. package/lib/module/surfaces/bannerWebView/richContentDocToHtml.js +79 -0
  408. package/lib/module/surfaces/bannerWebView/richContentDocToHtml.js.map +1 -0
  409. package/lib/module/surfaces/resolveBannerTheme.js +16 -0
  410. package/lib/module/surfaces/resolveBannerTheme.js.map +1 -0
  411. package/lib/module/surfaces/safeArea.js +72 -13
  412. package/lib/module/surfaces/safeArea.js.map +1 -1
  413. package/lib/module/version.js +1 -1
  414. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts +7 -0
  415. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts.map +1 -1
  416. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts +14 -0
  417. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  418. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts +12 -16
  419. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  420. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts +36 -0
  421. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts.map +1 -0
  422. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts +20 -0
  423. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts.map +1 -0
  424. package/lib/typescript/commonjs/src/anchors/fiber/fiberPath.d.ts +12 -0
  425. package/lib/typescript/commonjs/src/anchors/fiber/fiberPath.d.ts.map +1 -0
  426. package/lib/typescript/commonjs/src/anchors/fiber/findAnchorFiber.d.ts +21 -8
  427. package/lib/typescript/commonjs/src/anchors/fiber/findAnchorFiber.d.ts.map +1 -1
  428. package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts +24 -0
  429. package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -0
  430. package/lib/typescript/commonjs/src/anchors/fiber/touchTargetFiber.d.ts +24 -0
  431. package/lib/typescript/commonjs/src/anchors/fiber/touchTargetFiber.d.ts.map +1 -0
  432. package/lib/typescript/commonjs/src/anchors/fiber/visibleRect.d.ts +32 -0
  433. package/lib/typescript/commonjs/src/anchors/fiber/visibleRect.d.ts.map +1 -0
  434. package/lib/typescript/commonjs/src/anchors/fiber/visibleScreens.d.ts +6 -1
  435. package/lib/typescript/commonjs/src/anchors/fiber/visibleScreens.d.ts.map +1 -1
  436. package/lib/typescript/commonjs/src/anchors/fiber/walkVisibleFibers.d.ts +20 -0
  437. package/lib/typescript/commonjs/src/anchors/fiber/walkVisibleFibers.d.ts.map +1 -0
  438. package/lib/typescript/commonjs/src/anchors/isInstanceOnVisibleScreen.d.ts +19 -0
  439. package/lib/typescript/commonjs/src/anchors/isInstanceOnVisibleScreen.d.ts.map +1 -0
  440. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +2 -1
  441. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  442. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +10 -1
  443. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  444. package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts +39 -0
  445. package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts.map +1 -0
  446. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts +6 -4
  447. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts.map +1 -1
  448. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts +2 -0
  449. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts.map +1 -1
  450. package/lib/typescript/commonjs/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  451. package/lib/typescript/commonjs/src/anonymousId.d.ts +3 -0
  452. package/lib/typescript/commonjs/src/anonymousId.d.ts.map +1 -1
  453. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts +1 -0
  454. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts.map +1 -1
  455. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBottomSheet.d.ts +14 -3
  456. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBottomSheet.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/src/authoring/chrome/ChromeButton.d.ts.map +1 -1
  458. package/lib/typescript/commonjs/src/authoring/chrome/ChromeIcon.d.ts +1 -1
  459. package/lib/typescript/commonjs/src/authoring/chrome/ChromeIcon.d.ts.map +1 -1
  460. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTopBar.d.ts +12 -4
  461. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTopBar.d.ts.map +1 -1
  462. package/lib/typescript/commonjs/src/authoring/chrome/DoubleTapBridge.d.ts.map +1 -1
  463. package/lib/typescript/commonjs/src/authoring/chrome/doubleTapMonitor.d.ts +5 -0
  464. package/lib/typescript/commonjs/src/authoring/chrome/doubleTapMonitor.d.ts.map +1 -1
  465. package/lib/typescript/commonjs/src/authoring/chrome/tokens.d.ts +7 -6
  466. package/lib/typescript/commonjs/src/authoring/chrome/tokens.d.ts.map +1 -1
  467. package/lib/typescript/commonjs/src/authoring/elementPickerController.d.ts +2 -3
  468. package/lib/typescript/commonjs/src/authoring/elementPickerController.d.ts.map +1 -1
  469. package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts +57 -2
  470. package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
  471. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts +47 -3
  472. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts.map +1 -1
  473. package/lib/typescript/commonjs/src/authoring/hostAtPoint.d.ts +7 -0
  474. package/lib/typescript/commonjs/src/authoring/hostAtPoint.d.ts.map +1 -0
  475. package/lib/typescript/commonjs/src/content/BannerStepButton.d.ts +14 -0
  476. package/lib/typescript/commonjs/src/content/BannerStepButton.d.ts.map +1 -0
  477. package/lib/typescript/commonjs/src/content/buttonAppearance.d.ts +4 -0
  478. package/lib/typescript/commonjs/src/content/buttonAppearance.d.ts.map +1 -1
  479. package/lib/typescript/commonjs/src/content/resolveBannerButtonChrome.d.ts +8 -0
  480. package/lib/typescript/commonjs/src/content/resolveBannerButtonChrome.d.ts.map +1 -0
  481. package/lib/typescript/commonjs/src/content/themeColor.d.ts +2 -0
  482. package/lib/typescript/commonjs/src/content/themeColor.d.ts.map +1 -1
  483. package/lib/typescript/commonjs/src/content/types.d.ts +1 -0
  484. package/lib/typescript/commonjs/src/content/types.d.ts.map +1 -1
  485. package/lib/typescript/commonjs/src/deepLinking.d.ts +4 -4
  486. package/lib/typescript/commonjs/src/evalJs/EvalJsHost.d.ts +14 -0
  487. package/lib/typescript/commonjs/src/evalJs/EvalJsHost.d.ts.map +1 -0
  488. package/lib/typescript/commonjs/src/evalJs/bootstrap.d.ts +18 -0
  489. package/lib/typescript/commonjs/src/evalJs/bootstrap.d.ts.map +1 -0
  490. package/lib/typescript/commonjs/src/evalJs/bridgeMessages.d.ts +37 -0
  491. package/lib/typescript/commonjs/src/evalJs/bridgeMessages.d.ts.map +1 -0
  492. package/lib/typescript/commonjs/src/evalJs/evalJsBridge.d.ts +16 -0
  493. package/lib/typescript/commonjs/src/evalJs/evalJsBridge.d.ts.map +1 -0
  494. package/lib/typescript/commonjs/src/evalJs/evalJsController.d.ts +24 -0
  495. package/lib/typescript/commonjs/src/evalJs/evalJsController.d.ts.map +1 -0
  496. package/lib/typescript/commonjs/src/evalJs/getWebView.d.ts +64 -0
  497. package/lib/typescript/commonjs/src/evalJs/getWebView.d.ts.map +1 -0
  498. package/lib/typescript/commonjs/src/evalJs/injectEvalPending.d.ts +4 -0
  499. package/lib/typescript/commonjs/src/evalJs/injectEvalPending.d.ts.map +1 -0
  500. package/lib/typescript/commonjs/src/evalJs/types.d.ts +53 -0
  501. package/lib/typescript/commonjs/src/evalJs/types.d.ts.map +1 -0
  502. package/lib/typescript/commonjs/src/evalJs/useEvalJsWebViewInjection.d.ts +12 -0
  503. package/lib/typescript/commonjs/src/evalJs/useEvalJsWebViewInjection.d.ts.map +1 -0
  504. package/lib/typescript/commonjs/src/expo-router/index.d.ts +1 -0
  505. package/lib/typescript/commonjs/src/expo-router/index.d.ts.map +1 -1
  506. package/lib/typescript/commonjs/src/expo-router/redirectSystemPath.d.ts +50 -0
  507. package/lib/typescript/commonjs/src/expo-router/redirectSystemPath.d.ts.map +1 -0
  508. package/lib/typescript/commonjs/src/expo-router/useUserflowExpoRouter.d.ts +2 -2
  509. package/lib/typescript/commonjs/src/index.d.ts +16 -1
  510. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  511. package/lib/typescript/commonjs/src/installCheck.d.ts +33 -0
  512. package/lib/typescript/commonjs/src/installCheck.d.ts.map +1 -0
  513. package/lib/typescript/commonjs/src/lifecycle.d.ts +4 -1
  514. package/lib/typescript/commonjs/src/lifecycle.d.ts.map +1 -1
  515. package/lib/typescript/commonjs/src/navigation/WithUserflowReactNavigation.d.ts.map +1 -1
  516. package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
  517. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +71 -4
  518. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
  519. package/lib/typescript/commonjs/src/pairing/PreviewModeBanner.d.ts +9 -1
  520. package/lib/typescript/commonjs/src/pairing/PreviewModeBanner.d.ts.map +1 -1
  521. package/lib/typescript/commonjs/src/pairing/deepLink.d.ts +6 -2
  522. package/lib/typescript/commonjs/src/pairing/deepLink.d.ts.map +1 -1
  523. package/lib/typescript/commonjs/src/pairing/deviceId.d.ts +12 -0
  524. package/lib/typescript/commonjs/src/pairing/deviceId.d.ts.map +1 -0
  525. package/lib/typescript/commonjs/src/pairing/diagnostics.d.ts +3 -2
  526. package/lib/typescript/commonjs/src/pairing/diagnostics.d.ts.map +1 -1
  527. package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts +14 -2
  528. package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts.map +1 -1
  529. package/lib/typescript/commonjs/src/pairing/usePairingState.d.ts.map +1 -1
  530. package/lib/typescript/commonjs/src/pairing/usePreviewBarHold.d.ts +19 -0
  531. package/lib/typescript/commonjs/src/pairing/usePreviewBarHold.d.ts.map +1 -0
  532. package/lib/typescript/commonjs/src/runtime/BannerHost.d.ts +16 -0
  533. package/lib/typescript/commonjs/src/runtime/BannerHost.d.ts.map +1 -0
  534. package/lib/typescript/commonjs/src/runtime/EmbedBannerPlaceholder.d.ts +18 -0
  535. package/lib/typescript/commonjs/src/runtime/EmbedBannerPlaceholder.d.ts.map +1 -0
  536. package/lib/typescript/commonjs/src/runtime/SdkErrorBoundary.d.ts +34 -0
  537. package/lib/typescript/commonjs/src/runtime/SdkErrorBoundary.d.ts.map +1 -0
  538. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +2 -1
  539. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
  540. package/lib/typescript/commonjs/src/runtime/UserflowOverlay.d.ts +15 -0
  541. package/lib/typescript/commonjs/src/runtime/UserflowOverlay.d.ts.map +1 -0
  542. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts +9 -3
  543. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
  544. package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts +12 -0
  545. package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts.map +1 -0
  546. package/lib/typescript/commonjs/src/runtime/bannerEngineContext.d.ts +5 -0
  547. package/lib/typescript/commonjs/src/runtime/bannerEngineContext.d.ts.map +1 -0
  548. package/lib/typescript/commonjs/src/runtime/bannerPlacement.d.ts +12 -0
  549. package/lib/typescript/commonjs/src/runtime/bannerPlacement.d.ts.map +1 -0
  550. package/lib/typescript/commonjs/src/runtime/embedBannerRegistry.d.ts +5 -0
  551. package/lib/typescript/commonjs/src/runtime/embedBannerRegistry.d.ts.map +1 -0
  552. package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts +25 -1
  553. package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts.map +1 -1
  554. package/lib/typescript/commonjs/src/runtime/isolateCall.d.ts +20 -0
  555. package/lib/typescript/commonjs/src/runtime/isolateCall.d.ts.map +1 -0
  556. package/lib/typescript/commonjs/src/runtime/reportSdkError.d.ts +10 -0
  557. package/lib/typescript/commonjs/src/runtime/reportSdkError.d.ts.map +1 -0
  558. package/lib/typescript/commonjs/src/runtime/useBannerSession.d.ts +5 -0
  559. package/lib/typescript/commonjs/src/runtime/useBannerSession.d.ts.map +1 -0
  560. package/lib/typescript/commonjs/src/screenTracker.d.ts +7 -3
  561. package/lib/typescript/commonjs/src/screenTracker.d.ts.map +1 -1
  562. package/lib/typescript/commonjs/src/storage/asyncStorage.d.ts +15 -0
  563. package/lib/typescript/commonjs/src/storage/asyncStorage.d.ts.map +1 -0
  564. package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts +14 -0
  565. package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts.map +1 -0
  566. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts +15 -0
  567. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -0
  568. package/lib/typescript/commonjs/src/surfaces/MadeWithUserflow.d.ts +10 -6
  569. package/lib/typescript/commonjs/src/surfaces/MadeWithUserflow.d.ts.map +1 -1
  570. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
  571. package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts +15 -0
  572. package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts.map +1 -0
  573. package/lib/typescript/commonjs/src/surfaces/bannerBarTokens.d.ts +20 -0
  574. package/lib/typescript/commonjs/src/surfaces/bannerBarTokens.d.ts.map +1 -0
  575. package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +10 -0
  576. package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -0
  577. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerAutoRunEvalJs.d.ts +7 -0
  578. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerAutoRunEvalJs.d.ts.map +1 -0
  579. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerAutoRunSession.d.ts +6 -0
  580. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerAutoRunSession.d.ts.map +1 -0
  581. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts +13 -0
  582. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -0
  583. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerThemeStyles.d.ts +5 -0
  584. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -0
  585. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebFrameCss.d.ts +6 -0
  586. package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebFrameCss.d.ts.map +1 -0
  587. package/lib/typescript/commonjs/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts +9 -0
  588. package/lib/typescript/commonjs/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -0
  589. package/lib/typescript/commonjs/src/surfaces/bannerWebView/buttonClassName.d.ts +3 -0
  590. package/lib/typescript/commonjs/src/surfaces/bannerWebView/buttonClassName.d.ts.map +1 -0
  591. package/lib/typescript/commonjs/src/surfaces/bannerWebView/resolveCdnHost.d.ts +10 -0
  592. package/lib/typescript/commonjs/src/surfaces/bannerWebView/resolveCdnHost.d.ts.map +1 -0
  593. package/lib/typescript/commonjs/src/surfaces/bannerWebView/richContentDocToHtml.d.ts +3 -0
  594. package/lib/typescript/commonjs/src/surfaces/bannerWebView/richContentDocToHtml.d.ts.map +1 -0
  595. package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts +7 -0
  596. package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts.map +1 -0
  597. package/lib/typescript/commonjs/src/surfaces/safeArea.d.ts +9 -1
  598. package/lib/typescript/commonjs/src/surfaces/safeArea.d.ts.map +1 -1
  599. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  600. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts +7 -0
  601. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts.map +1 -1
  602. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts +14 -0
  603. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  604. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts +12 -16
  605. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  606. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts +36 -0
  607. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts.map +1 -0
  608. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts +20 -0
  609. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts.map +1 -0
  610. package/lib/typescript/module/src/anchors/fiber/fiberPath.d.ts +12 -0
  611. package/lib/typescript/module/src/anchors/fiber/fiberPath.d.ts.map +1 -0
  612. package/lib/typescript/module/src/anchors/fiber/findAnchorFiber.d.ts +21 -8
  613. package/lib/typescript/module/src/anchors/fiber/findAnchorFiber.d.ts.map +1 -1
  614. package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts +24 -0
  615. package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -0
  616. package/lib/typescript/module/src/anchors/fiber/touchTargetFiber.d.ts +24 -0
  617. package/lib/typescript/module/src/anchors/fiber/touchTargetFiber.d.ts.map +1 -0
  618. package/lib/typescript/module/src/anchors/fiber/visibleRect.d.ts +32 -0
  619. package/lib/typescript/module/src/anchors/fiber/visibleRect.d.ts.map +1 -0
  620. package/lib/typescript/module/src/anchors/fiber/visibleScreens.d.ts +6 -1
  621. package/lib/typescript/module/src/anchors/fiber/visibleScreens.d.ts.map +1 -1
  622. package/lib/typescript/module/src/anchors/fiber/walkVisibleFibers.d.ts +20 -0
  623. package/lib/typescript/module/src/anchors/fiber/walkVisibleFibers.d.ts.map +1 -0
  624. package/lib/typescript/module/src/anchors/isInstanceOnVisibleScreen.d.ts +19 -0
  625. package/lib/typescript/module/src/anchors/isInstanceOnVisibleScreen.d.ts.map +1 -0
  626. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +2 -1
  627. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  628. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +10 -1
  629. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  630. package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts +39 -0
  631. package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts.map +1 -0
  632. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts +6 -4
  633. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts.map +1 -1
  634. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts +2 -0
  635. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts.map +1 -1
  636. package/lib/typescript/module/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  637. package/lib/typescript/module/src/anonymousId.d.ts +3 -0
  638. package/lib/typescript/module/src/anonymousId.d.ts.map +1 -1
  639. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts +1 -0
  640. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts.map +1 -1
  641. package/lib/typescript/module/src/authoring/chrome/ChromeBottomSheet.d.ts +14 -3
  642. package/lib/typescript/module/src/authoring/chrome/ChromeBottomSheet.d.ts.map +1 -1
  643. package/lib/typescript/module/src/authoring/chrome/ChromeButton.d.ts.map +1 -1
  644. package/lib/typescript/module/src/authoring/chrome/ChromeIcon.d.ts +1 -1
  645. package/lib/typescript/module/src/authoring/chrome/ChromeIcon.d.ts.map +1 -1
  646. package/lib/typescript/module/src/authoring/chrome/ChromeTopBar.d.ts +12 -4
  647. package/lib/typescript/module/src/authoring/chrome/ChromeTopBar.d.ts.map +1 -1
  648. package/lib/typescript/module/src/authoring/chrome/DoubleTapBridge.d.ts.map +1 -1
  649. package/lib/typescript/module/src/authoring/chrome/doubleTapMonitor.d.ts +5 -0
  650. package/lib/typescript/module/src/authoring/chrome/doubleTapMonitor.d.ts.map +1 -1
  651. package/lib/typescript/module/src/authoring/chrome/tokens.d.ts +7 -6
  652. package/lib/typescript/module/src/authoring/chrome/tokens.d.ts.map +1 -1
  653. package/lib/typescript/module/src/authoring/elementPickerController.d.ts +2 -3
  654. package/lib/typescript/module/src/authoring/elementPickerController.d.ts.map +1 -1
  655. package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts +57 -2
  656. package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
  657. package/lib/typescript/module/src/authoring/hitTest.d.ts +47 -3
  658. package/lib/typescript/module/src/authoring/hitTest.d.ts.map +1 -1
  659. package/lib/typescript/module/src/authoring/hostAtPoint.d.ts +7 -0
  660. package/lib/typescript/module/src/authoring/hostAtPoint.d.ts.map +1 -0
  661. package/lib/typescript/module/src/content/BannerStepButton.d.ts +14 -0
  662. package/lib/typescript/module/src/content/BannerStepButton.d.ts.map +1 -0
  663. package/lib/typescript/module/src/content/buttonAppearance.d.ts +4 -0
  664. package/lib/typescript/module/src/content/buttonAppearance.d.ts.map +1 -1
  665. package/lib/typescript/module/src/content/resolveBannerButtonChrome.d.ts +8 -0
  666. package/lib/typescript/module/src/content/resolveBannerButtonChrome.d.ts.map +1 -0
  667. package/lib/typescript/module/src/content/themeColor.d.ts +2 -0
  668. package/lib/typescript/module/src/content/themeColor.d.ts.map +1 -1
  669. package/lib/typescript/module/src/content/types.d.ts +1 -0
  670. package/lib/typescript/module/src/content/types.d.ts.map +1 -1
  671. package/lib/typescript/module/src/deepLinking.d.ts +4 -4
  672. package/lib/typescript/module/src/evalJs/EvalJsHost.d.ts +14 -0
  673. package/lib/typescript/module/src/evalJs/EvalJsHost.d.ts.map +1 -0
  674. package/lib/typescript/module/src/evalJs/bootstrap.d.ts +18 -0
  675. package/lib/typescript/module/src/evalJs/bootstrap.d.ts.map +1 -0
  676. package/lib/typescript/module/src/evalJs/bridgeMessages.d.ts +37 -0
  677. package/lib/typescript/module/src/evalJs/bridgeMessages.d.ts.map +1 -0
  678. package/lib/typescript/module/src/evalJs/evalJsBridge.d.ts +16 -0
  679. package/lib/typescript/module/src/evalJs/evalJsBridge.d.ts.map +1 -0
  680. package/lib/typescript/module/src/evalJs/evalJsController.d.ts +24 -0
  681. package/lib/typescript/module/src/evalJs/evalJsController.d.ts.map +1 -0
  682. package/lib/typescript/module/src/evalJs/getWebView.d.ts +64 -0
  683. package/lib/typescript/module/src/evalJs/getWebView.d.ts.map +1 -0
  684. package/lib/typescript/module/src/evalJs/injectEvalPending.d.ts +4 -0
  685. package/lib/typescript/module/src/evalJs/injectEvalPending.d.ts.map +1 -0
  686. package/lib/typescript/module/src/evalJs/types.d.ts +53 -0
  687. package/lib/typescript/module/src/evalJs/types.d.ts.map +1 -0
  688. package/lib/typescript/module/src/evalJs/useEvalJsWebViewInjection.d.ts +12 -0
  689. package/lib/typescript/module/src/evalJs/useEvalJsWebViewInjection.d.ts.map +1 -0
  690. package/lib/typescript/module/src/expo-router/index.d.ts +1 -0
  691. package/lib/typescript/module/src/expo-router/index.d.ts.map +1 -1
  692. package/lib/typescript/module/src/expo-router/redirectSystemPath.d.ts +50 -0
  693. package/lib/typescript/module/src/expo-router/redirectSystemPath.d.ts.map +1 -0
  694. package/lib/typescript/module/src/expo-router/useUserflowExpoRouter.d.ts +2 -2
  695. package/lib/typescript/module/src/index.d.ts +16 -1
  696. package/lib/typescript/module/src/index.d.ts.map +1 -1
  697. package/lib/typescript/module/src/installCheck.d.ts +33 -0
  698. package/lib/typescript/module/src/installCheck.d.ts.map +1 -0
  699. package/lib/typescript/module/src/lifecycle.d.ts +4 -1
  700. package/lib/typescript/module/src/lifecycle.d.ts.map +1 -1
  701. package/lib/typescript/module/src/navigation/WithUserflowReactNavigation.d.ts.map +1 -1
  702. package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
  703. package/lib/typescript/module/src/pairing/PairingController.d.ts +71 -4
  704. package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
  705. package/lib/typescript/module/src/pairing/PreviewModeBanner.d.ts +9 -1
  706. package/lib/typescript/module/src/pairing/PreviewModeBanner.d.ts.map +1 -1
  707. package/lib/typescript/module/src/pairing/deepLink.d.ts +6 -2
  708. package/lib/typescript/module/src/pairing/deepLink.d.ts.map +1 -1
  709. package/lib/typescript/module/src/pairing/deviceId.d.ts +12 -0
  710. package/lib/typescript/module/src/pairing/deviceId.d.ts.map +1 -0
  711. package/lib/typescript/module/src/pairing/diagnostics.d.ts +3 -2
  712. package/lib/typescript/module/src/pairing/diagnostics.d.ts.map +1 -1
  713. package/lib/typescript/module/src/pairing/tokenStorage.d.ts +14 -2
  714. package/lib/typescript/module/src/pairing/tokenStorage.d.ts.map +1 -1
  715. package/lib/typescript/module/src/pairing/usePairingState.d.ts.map +1 -1
  716. package/lib/typescript/module/src/pairing/usePreviewBarHold.d.ts +19 -0
  717. package/lib/typescript/module/src/pairing/usePreviewBarHold.d.ts.map +1 -0
  718. package/lib/typescript/module/src/runtime/BannerHost.d.ts +16 -0
  719. package/lib/typescript/module/src/runtime/BannerHost.d.ts.map +1 -0
  720. package/lib/typescript/module/src/runtime/EmbedBannerPlaceholder.d.ts +18 -0
  721. package/lib/typescript/module/src/runtime/EmbedBannerPlaceholder.d.ts.map +1 -0
  722. package/lib/typescript/module/src/runtime/SdkErrorBoundary.d.ts +34 -0
  723. package/lib/typescript/module/src/runtime/SdkErrorBoundary.d.ts.map +1 -0
  724. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +2 -1
  725. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
  726. package/lib/typescript/module/src/runtime/UserflowOverlay.d.ts +15 -0
  727. package/lib/typescript/module/src/runtime/UserflowOverlay.d.ts.map +1 -0
  728. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts +9 -3
  729. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
  730. package/lib/typescript/module/src/runtime/bannerEngine.d.ts +12 -0
  731. package/lib/typescript/module/src/runtime/bannerEngine.d.ts.map +1 -0
  732. package/lib/typescript/module/src/runtime/bannerEngineContext.d.ts +5 -0
  733. package/lib/typescript/module/src/runtime/bannerEngineContext.d.ts.map +1 -0
  734. package/lib/typescript/module/src/runtime/bannerPlacement.d.ts +12 -0
  735. package/lib/typescript/module/src/runtime/bannerPlacement.d.ts.map +1 -0
  736. package/lib/typescript/module/src/runtime/embedBannerRegistry.d.ts +5 -0
  737. package/lib/typescript/module/src/runtime/embedBannerRegistry.d.ts.map +1 -0
  738. package/lib/typescript/module/src/runtime/flowEngine.d.ts +25 -1
  739. package/lib/typescript/module/src/runtime/flowEngine.d.ts.map +1 -1
  740. package/lib/typescript/module/src/runtime/isolateCall.d.ts +20 -0
  741. package/lib/typescript/module/src/runtime/isolateCall.d.ts.map +1 -0
  742. package/lib/typescript/module/src/runtime/reportSdkError.d.ts +10 -0
  743. package/lib/typescript/module/src/runtime/reportSdkError.d.ts.map +1 -0
  744. package/lib/typescript/module/src/runtime/useBannerSession.d.ts +5 -0
  745. package/lib/typescript/module/src/runtime/useBannerSession.d.ts.map +1 -0
  746. package/lib/typescript/module/src/screenTracker.d.ts +7 -3
  747. package/lib/typescript/module/src/screenTracker.d.ts.map +1 -1
  748. package/lib/typescript/module/src/storage/asyncStorage.d.ts +15 -0
  749. package/lib/typescript/module/src/storage/asyncStorage.d.ts.map +1 -0
  750. package/lib/typescript/module/src/surfaces/BannerBar.d.ts +14 -0
  751. package/lib/typescript/module/src/surfaces/BannerBar.d.ts.map +1 -0
  752. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts +15 -0
  753. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -0
  754. package/lib/typescript/module/src/surfaces/MadeWithUserflow.d.ts +10 -6
  755. package/lib/typescript/module/src/surfaces/MadeWithUserflow.d.ts.map +1 -1
  756. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
  757. package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts +15 -0
  758. package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts.map +1 -0
  759. package/lib/typescript/module/src/surfaces/bannerBarTokens.d.ts +20 -0
  760. package/lib/typescript/module/src/surfaces/bannerBarTokens.d.ts.map +1 -0
  761. package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +10 -0
  762. package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -0
  763. package/lib/typescript/module/src/surfaces/bannerWebView/bannerAutoRunEvalJs.d.ts +7 -0
  764. package/lib/typescript/module/src/surfaces/bannerWebView/bannerAutoRunEvalJs.d.ts.map +1 -0
  765. package/lib/typescript/module/src/surfaces/bannerWebView/bannerAutoRunSession.d.ts +6 -0
  766. package/lib/typescript/module/src/surfaces/bannerWebView/bannerAutoRunSession.d.ts.map +1 -0
  767. package/lib/typescript/module/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts +13 -0
  768. package/lib/typescript/module/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -0
  769. package/lib/typescript/module/src/surfaces/bannerWebView/bannerThemeStyles.d.ts +5 -0
  770. package/lib/typescript/module/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -0
  771. package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebFrameCss.d.ts +6 -0
  772. package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebFrameCss.d.ts.map +1 -0
  773. package/lib/typescript/module/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts +9 -0
  774. package/lib/typescript/module/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -0
  775. package/lib/typescript/module/src/surfaces/bannerWebView/buttonClassName.d.ts +3 -0
  776. package/lib/typescript/module/src/surfaces/bannerWebView/buttonClassName.d.ts.map +1 -0
  777. package/lib/typescript/module/src/surfaces/bannerWebView/resolveCdnHost.d.ts +10 -0
  778. package/lib/typescript/module/src/surfaces/bannerWebView/resolveCdnHost.d.ts.map +1 -0
  779. package/lib/typescript/module/src/surfaces/bannerWebView/richContentDocToHtml.d.ts +3 -0
  780. package/lib/typescript/module/src/surfaces/bannerWebView/richContentDocToHtml.d.ts.map +1 -0
  781. package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts +7 -0
  782. package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts.map +1 -0
  783. package/lib/typescript/module/src/surfaces/safeArea.d.ts +9 -1
  784. package/lib/typescript/module/src/surfaces/safeArea.d.ts.map +1 -1
  785. package/lib/typescript/module/src/version.d.ts +1 -1
  786. package/package.json +16 -3
  787. package/src/anchors/AnchorRegistry.ts +12 -0
  788. package/src/anchors/AutoAnchorRegistry.ts +41 -11
  789. package/src/anchors/elementConditionEvaluator.ts +235 -70
  790. package/src/anchors/elementTapMonitor.ts +95 -0
  791. package/src/anchors/elementTargetMatch.ts +90 -0
  792. package/src/anchors/fiber/fiberPath.ts +117 -0
  793. package/src/anchors/fiber/findAnchorFiber.ts +121 -80
  794. package/src/anchors/fiber/resolveFiberPath.ts +215 -0
  795. package/src/anchors/fiber/touchTargetFiber.ts +125 -0
  796. package/src/anchors/fiber/visibleRect.ts +153 -0
  797. package/src/anchors/fiber/visibleScreens.ts +74 -36
  798. package/src/anchors/fiber/walkVisibleFibers.ts +65 -0
  799. package/src/anchors/isInstanceOnVisibleScreen.ts +55 -0
  800. package/src/anchors/resolveAnchorHost.ts +2 -1
  801. package/src/anchors/resolveAutoAnchorHost.ts +20 -18
  802. package/src/anchors/resolveElementTargets.ts +165 -0
  803. package/src/anchors/semanticMatcher.ts +38 -14
  804. package/src/anchors/targetPressMonitor.ts +12 -3
  805. package/src/anchors/useUserflowAnchor.ts +1 -0
  806. package/src/anonymousId.ts +20 -8
  807. package/src/authoring/ElementPickerOverlay.tsx +168 -59
  808. package/src/authoring/chrome/ChromeBottomSheet.tsx +49 -8
  809. package/src/authoring/chrome/ChromeButton.tsx +9 -4
  810. package/src/authoring/chrome/ChromeIcon.tsx +10 -1
  811. package/src/authoring/chrome/ChromeTopBar.tsx +39 -15
  812. package/src/authoring/chrome/DoubleTapBridge.tsx +19 -12
  813. package/src/authoring/chrome/doubleTapMonitor.ts +10 -0
  814. package/src/authoring/chrome/icons/circle-exclamation.png +0 -0
  815. package/src/authoring/chrome/icons/circle-exclamation@2x.png +0 -0
  816. package/src/authoring/chrome/icons/circle-exclamation@3x.png +0 -0
  817. package/src/authoring/chrome/icons/triangle-exclamation.png +0 -0
  818. package/src/authoring/chrome/icons/triangle-exclamation@2x.png +0 -0
  819. package/src/authoring/chrome/icons/triangle-exclamation@3x.png +0 -0
  820. package/src/authoring/chrome/tokens.ts +7 -2
  821. package/src/authoring/elementPickerController.ts +2 -4
  822. package/src/authoring/fingerprintFromInstance.ts +170 -4
  823. package/src/authoring/hitTest.ts +324 -16
  824. package/src/authoring/hostAtPoint.ts +247 -0
  825. package/src/content/BannerStepButton.tsx +91 -0
  826. package/src/content/buttonAppearance.ts +16 -0
  827. package/src/content/resolveBannerButtonChrome.ts +49 -0
  828. package/src/content/themeColor.ts +15 -0
  829. package/src/content/types.ts +1 -0
  830. package/src/deepLinking.ts +4 -4
  831. package/src/evalJs/EvalJsHost.tsx +255 -0
  832. package/src/evalJs/bootstrap.ts +83 -0
  833. package/src/evalJs/bridgeMessages.ts +134 -0
  834. package/src/evalJs/evalJsBridge.ts +42 -0
  835. package/src/evalJs/evalJsController.ts +127 -0
  836. package/src/evalJs/getWebView.ts +124 -0
  837. package/src/evalJs/injectEvalPending.ts +14 -0
  838. package/src/evalJs/types.ts +56 -0
  839. package/src/evalJs/useEvalJsWebViewInjection.ts +37 -0
  840. package/src/expo-router/index.ts +8 -0
  841. package/src/expo-router/redirectSystemPath.ts +86 -0
  842. package/src/expo-router/useUserflowExpoRouter.ts +2 -2
  843. package/src/index.ts +139 -45
  844. package/src/installCheck.ts +191 -0
  845. package/src/lifecycle.ts +4 -1
  846. package/src/navigation/WithUserflowReactNavigation.tsx +13 -10
  847. package/src/navigation/openFlowNavigateUrl.ts +12 -5
  848. package/src/pairing/PairingController.ts +283 -29
  849. package/src/pairing/PreviewModeBanner.tsx +71 -14
  850. package/src/pairing/deepLink.ts +23 -5
  851. package/src/pairing/deviceId.ts +46 -0
  852. package/src/pairing/diagnostics.ts +6 -4
  853. package/src/pairing/tokenStorage.ts +60 -7
  854. package/src/pairing/usePairingState.ts +2 -0
  855. package/src/pairing/usePreviewBarHold.ts +160 -0
  856. package/src/runtime/BannerHost.tsx +102 -0
  857. package/src/runtime/EmbedBannerPlaceholder.tsx +115 -0
  858. package/src/runtime/SdkErrorBoundary.tsx +77 -0
  859. package/src/runtime/TargetPressBridge.tsx +36 -13
  860. package/src/runtime/UserflowOverlay.tsx +118 -0
  861. package/src/runtime/UserflowProvider.tsx +146 -64
  862. package/src/runtime/bannerEngine.ts +55 -0
  863. package/src/runtime/bannerEngineContext.ts +5 -0
  864. package/src/runtime/bannerPlacement.ts +36 -0
  865. package/src/runtime/embedBannerRegistry.ts +28 -0
  866. package/src/runtime/flowEngine.ts +76 -3
  867. package/src/runtime/isolateCall.ts +53 -0
  868. package/src/runtime/reportSdkError.ts +12 -0
  869. package/src/runtime/useBannerSession.ts +35 -0
  870. package/src/screenTracker.ts +34 -8
  871. package/src/storage/asyncStorage.ts +88 -0
  872. package/src/surfaces/BannerBar.tsx +176 -0
  873. package/src/surfaces/BannerSurface.tsx +82 -0
  874. package/src/surfaces/MadeWithUserflow.tsx +15 -10
  875. package/src/surfaces/ModalSurface.tsx +1 -1
  876. package/src/surfaces/TooltipSurface.tsx +17 -1
  877. package/src/surfaces/bannerBarLayout.ts +74 -0
  878. package/src/surfaces/bannerBarTokens.ts +34 -0
  879. package/src/surfaces/bannerWebView/BannerWebViewBar.tsx +312 -0
  880. package/src/surfaces/bannerWebView/bannerAutoRunEvalJs.ts +44 -0
  881. package/src/surfaces/bannerWebView/bannerAutoRunSession.ts +19 -0
  882. package/src/surfaces/bannerWebView/bannerNeedsWebView.ts +38 -0
  883. package/src/surfaces/bannerWebView/bannerThemeStyles.ts +91 -0
  884. package/src/surfaces/bannerWebView/bannerWebFrameCss.ts +145 -0
  885. package/src/surfaces/bannerWebView/buildCustomBannerHtml.ts +178 -0
  886. package/src/surfaces/bannerWebView/buttonClassName.ts +15 -0
  887. package/src/surfaces/bannerWebView/resolveCdnHost.ts +47 -0
  888. package/src/surfaces/bannerWebView/richContentDocToHtml.ts +99 -0
  889. package/src/surfaces/resolveBannerTheme.ts +18 -0
  890. package/src/surfaces/safeArea.ts +88 -19
  891. package/src/version.ts +1 -1
  892. package/vendor/core/dist/attributes.d.ts.map +1 -1
  893. package/vendor/core/dist/attributes.js +4 -4
  894. package/vendor/core/dist/attributes.js.map +1 -1
  895. package/vendor/core/dist/constants.d.ts +2 -0
  896. package/vendor/core/dist/constants.d.ts.map +1 -1
  897. package/vendor/core/dist/constants.js +2 -0
  898. package/vendor/core/dist/constants.js.map +1 -1
  899. package/vendor/core/dist/engine/BannerSessionEngine.d.ts +73 -0
  900. package/vendor/core/dist/engine/BannerSessionEngine.d.ts.map +1 -0
  901. package/vendor/core/dist/engine/BannerSessionEngine.js +236 -0
  902. package/vendor/core/dist/engine/BannerSessionEngine.js.map +1 -0
  903. package/vendor/core/dist/engine/ClientConditionEngine.d.ts +20 -1
  904. package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -1
  905. package/vendor/core/dist/engine/ClientConditionEngine.js +13 -10
  906. package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -1
  907. package/vendor/core/dist/engine/FlowSessionEngine.d.ts +41 -1
  908. package/vendor/core/dist/engine/FlowSessionEngine.d.ts.map +1 -1
  909. package/vendor/core/dist/engine/FlowSessionEngine.js +167 -28
  910. package/vendor/core/dist/engine/FlowSessionEngine.js.map +1 -1
  911. package/vendor/core/dist/engine/PairingEngine.d.ts +38 -2
  912. package/vendor/core/dist/engine/PairingEngine.d.ts.map +1 -1
  913. package/vendor/core/dist/engine/PairingEngine.js +19 -2
  914. package/vendor/core/dist/engine/PairingEngine.js.map +1 -1
  915. package/vendor/core/dist/engine/UserflowCore.d.ts +10 -1
  916. package/vendor/core/dist/engine/UserflowCore.d.ts.map +1 -1
  917. package/vendor/core/dist/engine/UserflowCore.js +68 -29
  918. package/vendor/core/dist/engine/UserflowCore.js.map +1 -1
  919. package/vendor/core/dist/engine/handleActions.d.ts +17 -3
  920. package/vendor/core/dist/engine/handleActions.d.ts.map +1 -1
  921. package/vendor/core/dist/engine/handleActions.js +17 -14
  922. package/vendor/core/dist/engine/handleActions.js.map +1 -1
  923. package/vendor/core/dist/engine/trackCondition.d.ts +2 -0
  924. package/vendor/core/dist/engine/trackCondition.d.ts.map +1 -1
  925. package/vendor/core/dist/engine/trackCondition.js +4 -2
  926. package/vendor/core/dist/engine/trackCondition.js.map +1 -1
  927. package/vendor/core/dist/engine/trackStepTriggers.d.ts +11 -1
  928. package/vendor/core/dist/engine/trackStepTriggers.d.ts.map +1 -1
  929. package/vendor/core/dist/engine/trackStepTriggers.js +42 -16
  930. package/vendor/core/dist/engine/trackStepTriggers.js.map +1 -1
  931. package/vendor/core/dist/errors.d.ts +11 -1
  932. package/vendor/core/dist/errors.d.ts.map +1 -1
  933. package/vendor/core/dist/errors.js +2 -1
  934. package/vendor/core/dist/errors.js.map +1 -1
  935. package/vendor/core/dist/eventAttributes.d.ts.map +1 -1
  936. package/vendor/core/dist/eventAttributes.js +4 -2
  937. package/vendor/core/dist/eventAttributes.js.map +1 -1
  938. package/vendor/core/dist/index.d.ts +5 -2
  939. package/vendor/core/dist/index.d.ts.map +1 -1
  940. package/vendor/core/dist/index.js +1 -0
  941. package/vendor/core/dist/index.js.map +1 -1
  942. package/vendor/core/dist/normalizeAttributes.js +9 -7
  943. package/vendor/core/dist/normalizeAttributes.js.map +1 -1
  944. package/vendor/core/dist/transport/pairing.d.ts +5 -0
  945. package/vendor/core/dist/transport/pairing.d.ts.map +1 -1
  946. package/vendor/core/dist/transport/pairing.js +69 -2
  947. package/vendor/core/dist/transport/pairing.js.map +1 -1
  948. package/vendor/core/dist/transport/phoenix.d.ts +8 -0
  949. package/vendor/core/dist/transport/phoenix.d.ts.map +1 -1
  950. package/vendor/core/dist/transport/phoenix.js +16 -2
  951. package/vendor/core/dist/transport/phoenix.js.map +1 -1
  952. package/vendor/core/dist/version.d.ts +1 -1
  953. package/vendor/core/dist/version.js +1 -1
  954. package/vendor/core/package.json +1 -1
  955. package/vendor/protocol/dist/autoData.d.ts +8 -15
  956. package/vendor/protocol/dist/autoData.d.ts.map +1 -1
  957. package/vendor/protocol/dist/autoData.js.map +1 -1
  958. package/vendor/protocol/dist/flows.d.ts +58 -2
  959. package/vendor/protocol/dist/flows.d.ts.map +1 -1
  960. package/vendor/protocol/dist/flows.js +20 -2
  961. package/vendor/protocol/dist/flows.js.map +1 -1
  962. package/vendor/protocol/dist/messages.d.ts +22 -12
  963. package/vendor/protocol/dist/messages.d.ts.map +1 -1
  964. package/vendor/protocol/dist/messages.js +5 -2
  965. package/vendor/protocol/dist/messages.js.map +1 -1
  966. package/vendor/protocol/package.json +1 -1
@@ -0,0 +1,20 @@
1
+ import type { ViewStyle } from 'react-native';
2
+ /**
3
+ * End-user banner chrome from Figma `Userflow - React native`
4
+ * (`BojC6qdlFUytdD1bRsNLV8`, node `1551-1208` — SDK Embed Banner) and web
5
+ * `userflowjs-banner-*` in bubble-frame.styl. Layout numbers match web
6
+ * `$padding-*` at 1rem = 16px.
7
+ */
8
+ export declare const BANNER_ROOT_PADDING = 8;
9
+ export declare const BANNER_INNER_MARGIN_HORIZONTAL = 8;
10
+ export declare const BANNER_INNER_COLUMN_GAP = 16;
11
+ export declare const BANNER_INNER_ROW_GAP = 8;
12
+ export declare const BANNER_BUTTON_GAP = 8;
13
+ export declare const BANNER_BUTTON_PADDING_HORIZONTAL = 12;
14
+ /** Web `--userflow-button-height` default (36). Close control is square at this size. */
15
+ export declare const BANNER_CLOSE_SLOT_SIZE = 36;
16
+ export declare const BANNER_CLOSE_BORDER_RADIUS = 4;
17
+ /** Overlay embed: horizontal inset from screen edges (Figma; excludes builder outer margin). */
18
+ export declare const BANNER_OVERLAY_SCREEN_INSET_HORIZONTAL = 16;
19
+ export declare function bannerOverlayShadowStyle(edge: 'top' | 'bottom'): ViewStyle;
20
+ //# sourceMappingURL=bannerBarTokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerBarTokens.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/bannerBarTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;GAKG;AAEH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,gGAAgG;AAChG,eAAO,MAAM,sCAAsC,KAAK,CAAC;AAIzD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAS1E"}
@@ -0,0 +1,10 @@
1
+ import type { FlowActionFragment } from '@userflow-tech/protocol';
2
+ import { EndFlowReasonInput, type BannerSessionFragment } from '@userflow-tech/protocol';
3
+ import * as React from 'react';
4
+ export interface BannerWebViewBarProps {
5
+ session: BannerSessionFragment;
6
+ onActions: (actions: FlowActionFragment[]) => void | Promise<void>;
7
+ onDismiss: (endReason: EndFlowReasonInput) => void;
8
+ }
9
+ export declare function BannerWebViewBar({ session, onActions, onDismiss, }: BannerWebViewBarProps): React.ReactElement | null;
10
+ //# sourceMappingURL=BannerWebViewBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BannerWebViewBar.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/BannerWebViewBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAEL,kBAAkB,EAClB,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgC/B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,SAAS,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,SAAS,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACpD;AAyBD,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,EACP,SAAS,EACT,SAAS,GACV,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA+OnD"}
@@ -0,0 +1,7 @@
1
+ import type { BannerFragment } from '@userflow-tech/protocol';
2
+ /**
3
+ * Evaluate JavaScript bodies from buttons whose **only** actions are EVAL_JS.
4
+ * Auto-run once when the WebView loads; click still runs the button action list.
5
+ */
6
+ export declare function collectBannerAutoRunEvalCodes(banner: BannerFragment, lookupAttribute: (fqn: string) => string | null): string[];
7
+ //# sourceMappingURL=bannerAutoRunEvalJs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerAutoRunEvalJs.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/bannerAutoRunEvalJs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAW9D;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAC9C,MAAM,EAAE,CAwBV"}
@@ -0,0 +1,6 @@
1
+ export declare function shouldSkipBannerAutoRunEval(sessionId: string): boolean;
2
+ export declare function markBannerAutoRunEvalComplete(sessionId: string): void;
3
+ export declare function clearBannerAutoRunEvalSession(sessionId: string): void;
4
+ /** @internal */
5
+ export declare function resetBannerAutoRunSessionsForTests(): void;
6
+ //# sourceMappingURL=bannerAutoRunSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerAutoRunSession.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/bannerAutoRunSession.ts"],"names":[],"mappings":"AAGA,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEtE;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAErE;AAED,gBAAgB;AAChB,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD"}
@@ -0,0 +1,13 @@
1
+ import type { BannerFragment, ThemeFragment } from '@userflow-tech/protocol';
2
+ /** POC / local testing when the builder flag is not on the wire yet. */
3
+ export declare function setDebugForceWebViewBanner(enabled: boolean): void;
4
+ /** @internal */
5
+ export declare function resetDebugForceWebViewBannerForTests(): void;
6
+ /**
7
+ * Use the WebView banner renderer when any button runs Evaluate JavaScript
8
+ * (needs the shared eval page), when the theme has published custom CSS
9
+ * (`.userflow-custom-container-*` / `.userflow-custom-button-*` via CDN),
10
+ * or when {@link setDebugForceWebViewBanner} is true.
11
+ */
12
+ export declare function bannerNeedsWebView(banner: BannerFragment, theme?: ThemeFragment | null): boolean;
13
+ //# sourceMappingURL=bannerNeedsWebView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerNeedsWebView.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/bannerNeedsWebView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAO7E,wEAAwE;AACxE,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEjE;AAED,gBAAgB;AAChB,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D;AAQD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAQhG"}
@@ -0,0 +1,5 @@
1
+ import type { ThemeFragment } from '@userflow-tech/protocol';
2
+ /** Inline CSS custom properties for banner WebView (subset of web `getThemeRootStyles`). */
3
+ export declare function bannerThemeInlineStyles(theme: ThemeFragment): Record<string, string>;
4
+ export declare function bannerThemeStyleAttribute(theme: ThemeFragment): string;
5
+ //# sourceMappingURL=bannerThemeStyles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerThemeStyles.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/bannerThemeStyles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAyC7D,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyCpF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAKtE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Banner + bubble-button subset of web `bubble-frame.styl` for custom-banner WebViews.
3
+ * Custom theme CSS targets the same class names as userflow.js.
4
+ */
5
+ export declare const BANNER_WEB_FRAME_CSS = "\n.userflowjs-theme-root {\n line-height: var(--userflow-line-height, 24px);\n color: var(--userflow-main-foreground-color, inherit);\n font-weight: var(--userflow-font-weight-normal, 400);\n}\n.userflowjs-theme-root, .userflowjs-theme-root button {\n font-family: var(--userflow-font-family, system-ui, sans-serif);\n font-size: var(--userflow-font-size, 16px);\n}\n.userflowjs-theme-root b, .userflowjs-theme-root strong {\n font-weight: var(--userflow-font-weight-bold, 600);\n}\n.userflowjs-theme-root a {\n color: var(--userflow-link-color, inherit);\n text-decoration: underline;\n}\n.userflowjs-theme-root h1 {\n font-size: var(--userflow-h1-font-size, 1.25em);\n font-weight: var(--userflow-font-weight-bold, 600);\n margin: 0 0 16px;\n}\n.userflowjs-theme-root h2 {\n font-size: var(--userflow-h2-font-size, 1.125em);\n font-weight: var(--userflow-font-weight-bold, 600);\n margin: 0 0 16px;\n}\n.userflowjs-theme-root p {\n margin: 0 0 16px;\n}\n.userflowjs-button-reset {\n outline: 0;\n border: 0;\n padding: 0;\n margin: 0;\n background-color: transparent;\n cursor: pointer;\n}\n.userflowjs-bubble-button-base {\n display: inline-block;\n padding: calc((var(--userflow-button-height, 32px) - var(--userflow-line-height, 24px)) / 2) var(--userflow-font-size, 16px);\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n border-radius: 0.375em;\n font-size: var(--userflow-font-size, 16px);\n font-weight: var(--userflow-font-weight-bold, 600);\n height: var(--userflow-button-height, 32px);\n line-height: var(--userflow-line-height, 24px);\n border: 0;\n cursor: pointer;\n}\n.userflowjs-bubble-button {\n display: inline-flex;\n align-items: center;\n}\n.userflowjs-bubble-button--primary,\n.userflowjs-bubble-button--default,\n.userflowjs-bubble-button--banner-primary,\n.userflowjs-bubble-button--banner-secondary {\n font-family: var(--userflow-font-family, system-ui, sans-serif);\n border-radius: var(--userflow-button-border-radius, 0.375em);\n min-width: var(--userflow-button-min-width, 0);\n white-space: normal;\n max-width: 100%;\n}\n.userflowjs-bubble-button--banner-primary {\n background-color: var(--userflow-banner-foreground-color);\n color: var(--userflow-banner-background-color);\n padding-left: 12px;\n padding-right: 12px;\n}\n.userflowjs-bubble-button--banner-secondary {\n background-color: var(--userflow-banner-background-color);\n color: var(--userflow-banner-foreground-color);\n border: 1px solid var(--userflow-banner-foreground-color);\n padding-left: 12px;\n padding-right: 12px;\n}\n.userflowjs-banner-root {\n position: relative;\n background: var(--userflow-banner-background-color);\n color: var(--userflow-banner-foreground-color);\n padding: 8px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n}\n.userflowjs-banner-root--content-layout-START .userflowjs-banner-inner {\n justify-content: flex-start;\n}\n.userflowjs-banner-root--content-layout-CENTER .userflowjs-banner-inner {\n justify-content: center;\n}\n.userflowjs-banner-root--content-layout-SPACE_BETWEEN .userflowjs-banner-inner {\n justify-content: space-between;\n}\n.userflowjs-banner-inner {\n flex: 1 1 auto;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n column-gap: 16px;\n row-gap: 8px;\n margin: 0 8px;\n min-width: 0;\n}\n.userflowjs-banner-content {\n white-space: pre-wrap;\n overflow-wrap: break-word;\n flex-shrink: 1;\n min-width: 0;\n}\n.userflowjs-banner-buttons {\n display: flex;\n gap: 8px;\n flex-shrink: 0;\n}\n.userflowjs-banner-start-spacer {\n flex: 1 1 0;\n max-width: var(--userflow-button-height, 32px);\n height: var(--userflow-button-height, 32px);\n}\n.userflowjs-banner-close {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--userflow-button-height, 32px);\n height: var(--userflow-button-height, 32px);\n color: var(--userflow-banner-foreground-color);\n background: transparent;\n padding: 0;\n border-radius: 4px;\n}\n.userflowjs-banner-close:hover {\n background-color: var(--userflow-banner-hover-background-color, rgba(0,0,0,0.08));\n}\n";
6
+ //# sourceMappingURL=bannerWebFrameCss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerWebFrameCss.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/bannerWebFrameCss.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,oBAAoB,mpIA4IhC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { BannerSessionFragment } from '@userflow-tech/protocol';
2
+ import type { EvalJsContext } from '../../evalJs/types';
3
+ export interface BuildCustomBannerBodyOptions {
4
+ /** When true, omit eval-only auto-run (e.g. WebView remount while session is still active). */
5
+ skipAutoRunEval?: boolean;
6
+ }
7
+ export declare function buildCustomBannerBodyHtml(session: BannerSessionFragment, lookupAttribute: (fqn: string) => string | null, serverEndpoint: string, options?: BuildCustomBannerBodyOptions): string;
8
+ export declare function buildCustomBannerHtml(context: EvalJsContext, session: BannerSessionFragment, lookupAttribute: (fqn: string) => string | null, serverEndpoint: string, options?: BuildCustomBannerBodyOptions): string;
9
+ //# sourceMappingURL=buildCustomBannerHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildCustomBannerHtml.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/buildCustomBannerHtml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAIrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA8GxD,MAAM,WAAW,4BAA4B;IAC3C,+FAA+F;IAC/F,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,qBAAqB,EAC9B,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,EAC/C,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,4BAA4B,GACrC,MAAM,CAqCR;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,qBAAqB,EAC9B,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,EAC/C,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,4BAA4B,GACrC,MAAM,CAGR"}
@@ -0,0 +1,3 @@
1
+ /** Mirrors web `TreeDoc.buttonClassName`. */
2
+ export declare function buttonClassName(appearance: string | null | undefined): string;
3
+ //# sourceMappingURL=buttonClassName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buttonClassName.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/buttonClassName.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAa7E"}
@@ -0,0 +1,10 @@
1
+ import type { ThemeFragment } from '@userflow-tech/protocol';
2
+ /**
3
+ * Map the end-user websocket host to the theme stylesheet CDN host
4
+ * (same convention as web userflow.js).
5
+ */
6
+ export declare function resolveCdnHost(serverEndpoint: string): string;
7
+ export declare function themePublishedCssVersion(theme: ThemeFragment): string | null;
8
+ export declare function themeHasPublishedCustomCss(theme: ThemeFragment): boolean;
9
+ export declare function resolveCustomStylesheetUrl(serverEndpoint: string, theme: ThemeFragment): string | null;
10
+ //# sourceMappingURL=resolveCdnHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveCdnHost.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/resolveCdnHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAe7D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAO5E;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAExE;AAED,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,aAAa,GACnB,MAAM,GAAG,IAAI,CAOf"}
@@ -0,0 +1,3 @@
1
+ import type { LookupAttribute, RichContentDoc } from '../../content/types';
2
+ export declare function richContentDocToHtml(content: string | RichContentDoc | null | undefined, lookupAttribute: LookupAttribute): string;
3
+ //# sourceMappingURL=richContentDocToHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"richContentDocToHtml.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/bannerWebView/richContentDocToHtml.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EAEf,cAAc,EAEf,MAAM,qBAAqB,CAAC;AA+E7B,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,GAAG,SAAS,EACnD,eAAe,EAAE,eAAe,GAC/B,MAAM,CAIR"}
@@ -0,0 +1,7 @@
1
+ import type { ThemeFragment } from '@userflow-tech/protocol';
2
+ /** Default banner chrome when theme banner tokens are unset (matches product / web debugger palette). */
3
+ export declare const DEFAULT_BANNER_BACKGROUND_COLOR = "#0A1A24";
4
+ export declare const DEFAULT_BANNER_FOREGROUND_COLOR = "#FFFFFF";
5
+ export declare function resolveBannerBackgroundColor(theme: ThemeFragment): string;
6
+ export declare function resolveBannerForegroundColor(theme: ThemeFragment): string;
7
+ //# sourceMappingURL=resolveBannerTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveBannerTheme.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/resolveBannerTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,yGAAyG;AACzG,eAAO,MAAM,+BAA+B,YAAY,CAAC;AACzD,eAAO,MAAM,+BAA+B,YAAY,CAAC;AAOzD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAEzE;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAEzE"}
@@ -1,11 +1,19 @@
1
+ import { type Context } from 'react';
1
2
  export interface EdgeInsets {
2
3
  top: number;
3
4
  right: number;
4
5
  bottom: number;
5
6
  left: number;
6
7
  }
7
- /** Safe-area insets with a zero fallback when the optional peer is missing. */
8
+ export declare const MISSING_SAFE_AREA_PROVIDER_WARNING: string;
9
+ /** Value from the nearest provider, or `null` when the peer or provider is absent. */
10
+ export declare function useParentSafeAreaInsets(): EdgeInsets | null;
8
11
  export declare function useUserflowSafeAreaInsets(): EdgeInsets;
12
+ /**
13
+ * `SafeAreaInsetsContext` from the optional peer, or `null` when it is not installed.
14
+ * In-flow banners override this so host screens do not add the inset the banner already consumed.
15
+ */
16
+ export declare function getSafeAreaInsetsContext(): Context<EdgeInsets | null> | null;
9
17
  /** @internal */
10
18
  export declare function resetSafeAreaInsetsCacheForTests(): void;
11
19
  //# sourceMappingURL=safeArea.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safeArea.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/safeArea.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAkCD,+EAA+E;AAC/E,wBAAgB,yBAAyB,IAAI,UAAU,CAEtD;AAED,gBAAgB;AAChB,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD"}
1
+ {"version":3,"file":"safeArea.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/safeArea.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,OAAO,EAAE,MAAM,OAAO,CAAC;AAE5C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAUD,eAAO,MAAM,kCAAkC,QAGZ,CAAC;AAuEpC,sFAAsF;AACtF,wBAAgB,uBAAuB,IAAI,UAAU,GAAG,IAAI,CAE3D;AAED,wBAAgB,yBAAyB,IAAI,UAAU,CAMtD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,CAE5E;AAED,gBAAgB;AAChB,wBAAgB,gCAAgC,IAAI,IAAI,CAGvD"}
@@ -1,3 +1,3 @@
1
1
  /** Generated by scripts/write-version.mjs — do not edit. */
2
- export declare const SDK_VERSION = "0.2.0";
2
+ export declare const SDK_VERSION = "0.3.1";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -6,6 +6,11 @@ export interface AnchorHost {
6
6
  * Called when the measured rect is not fully visible (bounded retries per step).
7
7
  */
8
8
  scrollIntoView?: () => void;
9
+ /**
10
+ * Public instance this host was registered from, when known. Element click
11
+ * conditions use it to match a tap to this anchor.
12
+ */
13
+ node?: object | null;
9
14
  }
10
15
  type Listener = () => void;
11
16
  /**
@@ -19,6 +24,8 @@ export declare class AnchorRegistry {
19
24
  register(id: string, host: AnchorHost): void;
20
25
  unregister(id: string, host: AnchorHost): void;
21
26
  get(id: string): AnchorHost | null;
27
+ /** Every host registered for `id`, in registration order. */
28
+ getAll(id: string): AnchorHost[];
22
29
  /** True when more than one host is registered for the same id. */
23
30
  isAmbiguous(id: string): boolean;
24
31
  subscribe(listener: Listener): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"AnchorRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/AnchorRegistry.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,CACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;IACV;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IAEjD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAW5C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAU9C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAUlC,kEAAkE;IAClE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAOzC,uCAAuC;IACvC,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,IAAI;CAKb;AAED,6EAA6E;AAC7E,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"AnchorRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/AnchorRegistry.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,CACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;IACV;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IAEjD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAW5C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAU9C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAUlC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE;IAMhC,kEAAkE;IAClE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAOzC,uCAAuC;IACvC,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,IAAI;CAKb;AAED,6EAA6E;AAC7E,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -118,10 +118,24 @@ export declare class AutoAnchorRegistry {
118
118
  private applyLiveIdentity;
119
119
  subscribe(listener: AutoAnchorListener): () => void;
120
120
  isAmbiguousKey(key: string): boolean;
121
+ /**
122
+ * Whether `inst` still has a look-alike inside `include`.
123
+ *
124
+ * The stored {@link AutoAnchorInstance.ambiguous} flag is registry-wide, so a
125
+ * copy on a covered screen keeps it set. Visibility can only clear that, never
126
+ * add ambiguity: an instance the registry considers unique stays unique.
127
+ */
128
+ isAmbiguousAmong(inst: AutoAnchorInstance, include: (i: AutoAnchorInstance) => boolean): boolean;
121
129
  /** Test helper — drop every instance and reset ids. */
122
130
  clear(): void;
123
131
  private unregisterInstance;
124
132
  private refreshManualIndexes;
133
+ /**
134
+ * True when `inst` cannot be told apart from another instance in `list`.
135
+ * An unlabelled group only: no content of its own, or a content signature a
136
+ * peer shares.
137
+ */
138
+ private isTwinWithin;
125
139
  /**
126
140
  * Instances sharing a template path are only twins while they look alike.
127
141
  * Four rows from one `field()` helper are indistinguishable at register time
@@ -1 +1 @@
1
- {"version":3,"file":"AutoAnchorRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/AutoAnchorRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AutoAnchorRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/AutoAnchorRegistry.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,21 @@
1
1
  import type { ConditionEvaluator } from '@userflow-tech/core';
2
2
  /**
3
3
  * Evaluate ELEMENT client conditions against manual anchors, fiber-resolved
4
- * `testID` / `nativeID` / `accessibilityLabel` targets, and AUTO (codeless)
5
- * selectors.
4
+ * `userflowId` / `testID` / `nativeID` / `accessibilityLabel` targets, and AUTO
5
+ * (codeless) selectors.
6
6
  *
7
- * Supports PRESENT / NOT_PRESENT for MANUAL selectors (`css` → anchor id) and
8
- * AUTO selectors (`autoData` → {@link resolveAutoAnchorHost}). AUTO fails
9
- * closed: `unknown` / `ambiguous` stay `null` so a gated flow never starts
10
- * just because the auto-anchor registry is empty. Web-interaction states
11
- * (CLICK, DISABLED, …) still report unknown.
7
+ * PRESENT / NOT_PRESENT: any uniquely-or-not host on a visible navigator screen
8
+ * counts (web parity — duplicates are present). A measured 0×0 host counts as
9
+ * absent. AUTO `unknown` / `ambiguous` stay `null`.
12
10
  *
13
- * "Present" means a unique host on a **visible** navigator screen. MANUAL
14
- * goes through `resolveAnchorHost`; AUTO through `resolveAutoAnchorHost`.
15
- * Both skip screens covered by another navigator screen, so an id on a
16
- * pushed-under screen counts as absent. Pixel visibility (off-screen inside a
17
- * ScrollView, opacity 0, etc.) would need async `measureInWindow` and is out
18
- * of scope.
11
+ * CLICK / NOT_CLICK: latch from the first matching tap, including a tap on a
12
+ * descendant. The latch survives re-attach via `previousIsTrue` and is cleared
13
+ * when the server untracks. Disabled hosts are ignored. Until it latches, an
14
+ * AUTO selector that does not resolve reports `null`, like presence.
19
15
  *
20
- * Note: compares string literals rather than importing protocol enums so Jest
21
- * (which cannot resolve the ESM-only `@userflow-tech/protocol` package) stays
22
- * hermetic. Wire values match `FlowConditionElementState` / `FlowSelectorType`.
16
+ * Element states are compared as string literals rather than protocol enums so
17
+ * the wire values stay obvious next to the branches. They match
18
+ * `FlowConditionElementState`.
23
19
  */
24
20
  export declare function createElementConditionEvaluator(warn?: (message: string) => void): ConditionEvaluator;
25
21
  //# sourceMappingURL=elementConditionEvaluator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"elementConditionEvaluator.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/elementConditionEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAW9D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAK1B,GACA,kBAAkB,CAkBpB"}
1
+ {"version":3,"file":"elementConditionEvaluator.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/elementConditionEvaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAGnB,MAAM,qBAAqB,CAAC;AAmB7B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,+BAA+B,CAC7C,IAAI,GAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAK1B,GACA,kBAAkB,CA2BpB"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Pass-through tap observation for ELEMENT CLICK / NOT_CLICK conditions.
3
+ *
4
+ * Many conditions can subscribe at once. Touch start/end are paired per finger
5
+ * and a tap is emitted only when movement stays within the same slop the
6
+ * tooltip target-press monitor uses. The host fiber is the one captured at
7
+ * touch start, before the press's setState commits a new tree.
8
+ *
9
+ * With no subscribers the monitor stores nothing, so the bridge can skip the
10
+ * fiber lookup entirely.
11
+ */
12
+ import type { AnyFiber } from './fiber/fiberInternals';
13
+ import { type TouchIdentifier } from './targetPressMonitor';
14
+ export interface ElementTap {
15
+ targetFiber: AnyFiber;
16
+ }
17
+ export type ElementTapListener = (tap: ElementTap) => void;
18
+ export declare class ElementTapMonitor {
19
+ private readonly listeners;
20
+ private readonly touchStarts;
21
+ get subscriberCount(): number;
22
+ subscribe(listener: ElementTapListener): () => void;
23
+ handleTouchStart(identifier: TouchIdentifier, pageX: number, pageY: number, targetFiber: AnyFiber | null): void;
24
+ /**
25
+ * Emit a tap when this finger started and ended within slop on a resolved
26
+ * host. Never claims the responder.
27
+ */
28
+ handleTouchEnd(identifier: TouchIdentifier, pageX: number, pageY: number): void;
29
+ /** Drop in-progress gesture(s). Omit `identifier` to clear every finger. */
30
+ cancelTouch(identifier?: TouchIdentifier): void;
31
+ /** Test helper. */
32
+ resetForTests(): void;
33
+ }
34
+ /** Shared singleton used by TargetPressBridge and the element-condition evaluator. */
35
+ export declare const elementTapMonitor: ElementTapMonitor;
36
+ //# sourceMappingURL=elementTapMonitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementTapMonitor.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/elementTapMonitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,eAAe,EAAkC,MAAM,sBAAsB,CAAC;AAE5F,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,QAAQ,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;AAM3D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;IAEtE,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAUnD,gBAAgB,CACd,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,QAAQ,GAAG,IAAI,GAC3B,IAAI;IAQP;;;OAGG;IACH,cAAc,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAkB/E,4EAA4E;IAC5E,WAAW,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI;IAQ/C,mBAAmB;IACnB,aAAa,IAAI,IAAI;CAItB;AAED,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Compare a touch-start fiber with a host resolved later, tolerating the
3
+ * alternate swap a Pressable `pressed` re-render does mid-gesture.
4
+ */
5
+ import type { ElementTap } from './elementTapMonitor';
6
+ import { type AnyFiber } from './fiber/fiberInternals';
7
+ /**
8
+ * Anchor ids on the tapped fiber and its ancestors, built once per tap and
9
+ * shared by every click condition it is delivered to.
10
+ */
11
+ export declare function anchorIdsAboveTap(tap: ElementTap): ReadonlySet<string>;
12
+ export declare function sameFiber(a: AnyFiber, b: AnyFiber): boolean;
13
+ /** True when `node` is `host` or a descendant of it. */
14
+ export declare function fiberIsUnder(node: AnyFiber, host: AnyFiber): boolean;
15
+ /**
16
+ * True when the tapped fiber, the matched host, or a fiber between them is
17
+ * disabled. Browsers do not fire `click` on a disabled control.
18
+ */
19
+ export declare function tapPathDisabled(tapped: AnyFiber, host: AnyFiber): boolean;
20
+ //# sourceMappingURL=elementTargetMatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementTargetMatch.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/elementTargetMatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,wBAAwB,CAAC;AAKhC;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAkBtE;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAM3D;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAOpE;AAoBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAQzE"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Capture a release-stable fiber path for a host the Babel plugin never
3
+ * registered. `hostKind` and ids survive minification; `displayName` is only
4
+ * a tiebreaker at resolve time.
5
+ */
6
+ import type { MobileFiberPath } from '@userflow-tech/protocol';
7
+ import { type AnyFiber } from './fiberInternals';
8
+ /**
9
+ * Root → leaf path from the enclosing screen (or the walk root) down to `host`.
10
+ */
11
+ export declare function fiberPathFromHost(host: AnyFiber): MobileFiberPath | null;
12
+ //# sourceMappingURL=fiberPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fiberPath.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/fiberPath.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,kBAAkB,CAAC;AAiE1B;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI,CAiCxE"}
@@ -1,5 +1,7 @@
1
1
  import { type AnyFiber } from './fiberInternals';
2
- export type AnchorPropTier = 'testID' | 'nativeID' | 'accessibilityLabel';
2
+ export type AnchorPropTier = 'userflowId' | 'testID' | 'nativeID' | 'accessibilityLabel';
3
+ /** Props an anchor id can sit on, strongest first. */
4
+ export declare const ANCHOR_PROP_TIERS: readonly AnchorPropTier[];
3
5
  export type FindAnchorFiberResult = {
4
6
  status: 'found';
5
7
  fiber: AnyFiber;
@@ -10,20 +12,31 @@ export type FindAnchorFiberResult = {
10
12
  } | {
11
13
  status: 'missing';
12
14
  };
15
+ /** Every collapsed host of the winning tier. Duplicates stay in the list. */
16
+ export type FindAnchorFibersResult = {
17
+ status: 'found';
18
+ fibers: AnyFiber[];
19
+ tier: AnchorPropTier;
20
+ } | {
21
+ status: 'missing';
22
+ };
13
23
  /**
14
24
  * Bounded DFS under `rootFiber` looking for fibers whose memoizedProps match
15
- * `id` on testID, then nativeID, then accessibilityLabel. Uses the highest
16
- * tier that has any match so a testID hit is never made ambiguous by an
17
- * unrelated accessibilityLabel.
25
+ * `id` on userflowId, then testID, then nativeID, then accessibilityLabel.
26
+ * Uses the highest tier that has any match so a testID hit is never made
27
+ * ambiguous by an unrelated accessibilityLabel.
18
28
  *
19
- * Composite matches descend to the shallowest host descendant. Multiple
20
- * matches on a single root-to-leaf chain (e.g. Pressable forwarding testID to
21
- * its inner View) collapse to the outermost host. Disjoint matches fail closed
22
- * as ambiguous.
29
+ * A composite match resolves to the host beneath it that carries the same id
30
+ * (e.g. a tab item that wraps its button in a View and forwards testID to the
31
+ * button), else to its shallowest host descendant. Multiple matches on a single
32
+ * root-to-leaf chain (e.g. Pressable forwarding testID to its inner View)
33
+ * collapse to the outermost host. Disjoint matches stay in the list returned by
34
+ * {@link findAnchorFibers}; {@link findAnchorFiber} fails closed on those.
23
35
  *
24
36
  * The walk never follows `rootFiber.sibling` so the Userflow overlay (a sibling
25
37
  * of {@link FiberScanRoot} in UserflowProvider) cannot self-match SDK testIDs.
26
38
  */
39
+ export declare function findAnchorFibers(rootFiber: AnyFiber, id: string): FindAnchorFibersResult;
27
40
  export declare function findAnchorFiber(rootFiber: AnyFiber, id: string): FindAnchorFiberResult;
28
41
  /**
29
42
  * BFS under `fiber` for the shallowest host descendant. Returns `fiber` itself
@@ -1 +1 @@
1
- {"version":3,"file":"findAnchorFiber.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/findAnchorFiber.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,kBAAkB,CAAC;AAa1B,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,oBAAoB,CAAC;AAI1E,MAAM,MAAM,qBAAqB,GAC7B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAC1D;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAE1B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,qBAAqB,CAkGtF;AAsBD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,SAAQ,GAAG,QAAQ,GAAG,IAAI,CAkBxF"}
1
+ {"version":3,"file":"findAnchorFiber.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/findAnchorFiber.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,kBAAkB,CAAC;AAa1B,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,oBAAoB,CAAC;AAEzF,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAKtD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAC1D;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAE1B,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAC9B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,GAC7D;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAE1B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,sBAAsB,CAKxF;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,qBAAqB,CAOtF;AAsID;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,SAAQ,GAAG,QAAQ,GAAG,IAAI,CAkBxF"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Re-resolve a fiber path captured from library UI the Babel plugin never
3
+ * stamped. Explicit leaf ids win. Otherwise score host kind, label, role, and
4
+ * path alignment, and fail closed when the best hit is weak or tied.
5
+ */
6
+ import type { MobileFiberPath } from '@userflow-tech/protocol';
7
+ import { type AnyFiber } from './fiberInternals';
8
+ export type FiberPathResolution = {
9
+ status: 'found';
10
+ fiber: AnyFiber;
11
+ cacheId: string;
12
+ textDisagreed?: boolean;
13
+ } | {
14
+ status: 'ambiguous';
15
+ } | {
16
+ status: 'unknown';
17
+ };
18
+ /**
19
+ * Resolve `path` to the live host it describes. A leaf `testID` is authoritative
20
+ * and reuses the manual fiber scan.
21
+ */
22
+ export declare function resolveFiberPath(path: MobileFiberPath | null | undefined): FiberPathResolution;
23
+ export declare function fibersMatch(a: AnyFiber, b: AnyFiber): boolean;
24
+ //# sourceMappingURL=resolveFiberPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveFiberPath.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/resolveFiberPath.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAWnF,OAAO,EACL,KAAK,QAAQ,EAQd,MAAM,kBAAkB,CAAC;AAQ1B,MAAM,MAAM,mBAAmB,GAC3B;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9E;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAwI1B;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAAG,mBAAmB,CAkC9F;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAE7D"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Host fiber under a touch, resolved synchronously from the responder event.
3
+ *
4
+ * Feature-detected and never throws. A renderer that does not expose any of
5
+ * these pointers degrades to "no target", so a click condition simply does not
6
+ * latch.
7
+ *
8
+ * Order:
9
+ * 1. `event._targetInst` (React's fiber for the touched component)
10
+ * 2. `event.target` public instance via {@link lookupHostFiber}
11
+ * 3. The touch's native tag (`changedTouches[].target`, else `nativeEvent.target`)
12
+ * via the scan-root host index
13
+ */
14
+ import type { GestureResponderEvent } from 'react-native';
15
+ import { type AnyFiber } from './fiberInternals';
16
+ export declare function touchTargetFiber(event: GestureResponderEvent, identifier?: number | string): AnyFiber | null;
17
+ /**
18
+ * Fabric sends one touch event per touched view, and each lists every finger
19
+ * that changed. True when `identifier`'s finger is on this event's own view,
20
+ * so a caller can record each finger once, from its own event, instead of
21
+ * overwriting it from another finger's. Unreadable tags count as this event's.
22
+ */
23
+ export declare function touchBelongsToEvent(event: GestureResponderEvent, identifier: number | string): boolean;
24
+ //# sourceMappingURL=touchTargetFiber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touchTargetFiber.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/touchTargetFiber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,EACL,KAAK,QAAQ,EAKd,MAAM,kBAAkB,CAAC;AAI1B,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,EAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAC3B,QAAQ,GAAG,IAAI,CAiBjB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,qBAAqB,EAC5B,UAAU,EAAE,MAAM,GAAG,MAAM,GAC1B,OAAO,CAST"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Geometry helpers for "what the user can actually see".
3
+ *
4
+ * `measureInWindow` reports a view's full layout rect, including the part
5
+ * scrolled under a tab bar or clipped by a ScrollView. Native hit-testing
6
+ * already accounts for that; the JS fallback and the tooltip tap rect do not,
7
+ * so they clip against scroll viewports and the topmost modal.
8
+ */
9
+ import { type AnyFiber } from './fiberInternals';
10
+ export interface VisibleRect {
11
+ x: number;
12
+ y: number;
13
+ width: number;
14
+ height: number;
15
+ }
16
+ type MeasureCallback = (x: number, y: number, width: number, height: number) => void;
17
+ export declare function intersectRects(a: VisibleRect, b: VisibleRect): VisibleRect | null;
18
+ /**
19
+ * Intersect `rect` with every scroll viewport above `fiber` (innermost first).
20
+ * Returns null when the rect is entirely outside a viewport. No scroll ancestor
21
+ * leaves `rect` unchanged.
22
+ */
23
+ export declare function clipToScrollViewports(fiber: AnyFiber | null, rect: VisibleRect): Promise<VisibleRect | null>;
24
+ /**
25
+ * The visible modal host drawn on top, or null. Later siblings win: React
26
+ * Native mounts a newer `<Modal>` after the previous one.
27
+ */
28
+ export declare function topmostVisibleModalHost(root: AnyFiber | null, maxNodes?: number): AnyFiber | null;
29
+ /** True when `fiber` is `ancestor` or sits under it. */
30
+ export declare function fiberIsUnder(fiber: AnyFiber, ancestor: AnyFiber, maxDepth?: number): boolean;
31
+ export type { MeasureCallback };
32
+ //# sourceMappingURL=visibleRect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibleRect.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/visibleRect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,kBAAkB,CAAC;AAI1B,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,KAAK,eAAe,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AA8BrF,wBAAgB,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CASjF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,QAAQ,GAAG,IAAI,EACtB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAgB7B;AAcD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,SAAQ,GAAG,QAAQ,GAAG,IAAI,CAwBhG;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,SAAS,GAAG,OAAO,CAQ5F;AAED,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -36,7 +36,12 @@ export declare function coveredScreenBranches(container: AnyFiber): Set<AnyFiber
36
36
  *
37
37
  * Needed in addition to scan-time pruning: a resolved anchor is cached, and the
38
38
  * cache would otherwise keep serving a host after its screen was covered by a
39
- * newly pushed one. Walks outward so nested navigators are handled.
39
+ * newly pushed one.
40
40
  */
41
41
  export declare function isFiberOnVisibleScreen(fiber: AnyFiber): boolean;
42
+ /**
43
+ * When `fiber` is on a covered screen, the visible screens of the navigator
44
+ * that covers it, topmost first. Empty when `fiber` is visible.
45
+ */
46
+ export declare function screensCoveringFiber(fiber: AnyFiber): AnyFiber[];
42
47
  //# sourceMappingURL=visibleScreens.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"visibleScreens.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/visibleScreens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EACL,KAAK,QAAQ,EAQd,MAAM,kBAAkB,CAAC;AAqB1B,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAG/D;AA0CD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAiCxE;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAyB/D"}
1
+ {"version":3,"file":"visibleScreens.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/visibleScreens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EACL,KAAK,QAAQ,EASd,MAAM,kBAAkB,CAAC;AAqB1B,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAG/D;AA8ED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,CAUxE;AA0BD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAQ/D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAWhE"}