@userflow-tech/react-native 0.4.5 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/README.md +7 -2
  2. package/docs/anchoring.md +6 -1
  3. package/docs/troubleshooting.md +26 -0
  4. package/lib/commonjs/anchors/AutoAnchorRegistry.js +144 -34
  5. package/lib/commonjs/anchors/AutoAnchorRegistry.js.map +1 -1
  6. package/lib/commonjs/anchors/animationFrame.js +29 -1
  7. package/lib/commonjs/anchors/animationFrame.js.map +1 -1
  8. package/lib/commonjs/anchors/appActive.js +61 -0
  9. package/lib/commonjs/anchors/appActive.js.map +1 -0
  10. package/lib/commonjs/anchors/elementConditionEvaluator.js +25 -8
  11. package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
  12. package/lib/commonjs/anchors/elementTapMonitor.js +67 -12
  13. package/lib/commonjs/anchors/elementTapMonitor.js.map +1 -1
  14. package/lib/commonjs/anchors/elementTargetMatch.js +33 -7
  15. package/lib/commonjs/anchors/elementTargetMatch.js.map +1 -1
  16. package/lib/commonjs/anchors/fiber/fiberInternals.js +66 -0
  17. package/lib/commonjs/anchors/fiber/fiberInternals.js.map +1 -1
  18. package/lib/commonjs/anchors/fiber/indexHostFibers.js +4 -3
  19. package/lib/commonjs/anchors/fiber/indexHostFibers.js.map +1 -1
  20. package/lib/commonjs/anchors/fiber/resolveFiberPath.js +30 -15
  21. package/lib/commonjs/anchors/fiber/resolveFiberPath.js.map +1 -1
  22. package/lib/commonjs/anchors/fiberAnchorCache.js +20 -0
  23. package/lib/commonjs/anchors/fiberAnchorCache.js.map +1 -1
  24. package/lib/commonjs/anchors/gestureHandlerHandoff.js +304 -0
  25. package/lib/commonjs/anchors/gestureHandlerHandoff.js.map +1 -0
  26. package/lib/commonjs/anchors/resolveAnchorHost.js +6 -0
  27. package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
  28. package/lib/commonjs/anchors/resolveAutoAnchorHost.js +11 -6
  29. package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -1
  30. package/lib/commonjs/anchors/resolveElementTargets.js +63 -8
  31. package/lib/commonjs/anchors/resolveElementTargets.js.map +1 -1
  32. package/lib/commonjs/anchors/semanticMatcher.js +43 -21
  33. package/lib/commonjs/anchors/semanticMatcher.js.map +1 -1
  34. package/lib/commonjs/anchors/tapSlop.js +16 -0
  35. package/lib/commonjs/anchors/tapSlop.js.map +1 -0
  36. package/lib/commonjs/anchors/targetPressMonitor.js +66 -12
  37. package/lib/commonjs/anchors/targetPressMonitor.js.map +1 -1
  38. package/lib/commonjs/authoring/fingerprintFromInstance.js +5 -9
  39. package/lib/commonjs/authoring/fingerprintFromInstance.js.map +1 -1
  40. package/lib/commonjs/content/RichContentRenderer.js +3 -3
  41. package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
  42. package/lib/commonjs/content/openSafeUrl.js +3 -1
  43. package/lib/commonjs/content/openSafeUrl.js.map +1 -1
  44. package/lib/commonjs/expo-router/useUserflowExpoRouter.js +6 -0
  45. package/lib/commonjs/expo-router/useUserflowExpoRouter.js.map +1 -1
  46. package/lib/commonjs/index.js +19 -5
  47. package/lib/commonjs/index.js.map +1 -1
  48. package/lib/commonjs/navigation/navigateUrlUtils.js +105 -0
  49. package/lib/commonjs/navigation/navigateUrlUtils.js.map +1 -0
  50. package/lib/commonjs/navigation/openExternalNavigateUrl.js +14 -0
  51. package/lib/commonjs/navigation/openExternalNavigateUrl.js.map +1 -0
  52. package/lib/commonjs/navigation/openFlowNavigateUrl.js +47 -41
  53. package/lib/commonjs/navigation/openFlowNavigateUrl.js.map +1 -1
  54. package/lib/commonjs/pairing/PairingController.js +3 -1
  55. package/lib/commonjs/pairing/PairingController.js.map +1 -1
  56. package/lib/commonjs/runtime/BannerHost.js +38 -29
  57. package/lib/commonjs/runtime/BannerHost.js.map +1 -1
  58. package/lib/commonjs/runtime/TargetPressBridge.js +55 -7
  59. package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
  60. package/lib/commonjs/runtime/UserflowOverlay.js +5 -11
  61. package/lib/commonjs/runtime/UserflowOverlay.js.map +1 -1
  62. package/lib/commonjs/runtime/UserflowProvider.js +66 -40
  63. package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
  64. package/lib/commonjs/runtime/bannerEngine.js +8 -2
  65. package/lib/commonjs/runtime/bannerEngine.js.map +1 -1
  66. package/lib/commonjs/runtime/bannerFlowSpacer.js +71 -0
  67. package/lib/commonjs/runtime/bannerFlowSpacer.js.map +1 -0
  68. package/lib/commonjs/runtime/flowEngine.js +11 -0
  69. package/lib/commonjs/runtime/flowEngine.js.map +1 -1
  70. package/lib/commonjs/runtime/previewStart.js +39 -0
  71. package/lib/commonjs/runtime/previewStart.js.map +1 -0
  72. package/lib/commonjs/runtime/pushBannerLayoutContext.js +98 -0
  73. package/lib/commonjs/runtime/pushBannerLayoutContext.js.map +1 -0
  74. package/lib/commonjs/screenTracker.js +12 -0
  75. package/lib/commonjs/screenTracker.js.map +1 -1
  76. package/lib/commonjs/surfaces/BannerBar.js +79 -61
  77. package/lib/commonjs/surfaces/BannerBar.js.map +1 -1
  78. package/lib/commonjs/surfaces/BannerSurface.js +26 -0
  79. package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
  80. package/lib/commonjs/surfaces/TooltipSurface.js +43 -41
  81. package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
  82. package/lib/commonjs/surfaces/bannerBarLayout.js +77 -10
  83. package/lib/commonjs/surfaces/bannerBarLayout.js.map +1 -1
  84. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js +112 -63
  85. package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
  86. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js +59 -11
  87. package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
  88. package/lib/commonjs/surfaces/hostAccessibilityTrap.js +28 -0
  89. package/lib/commonjs/surfaces/hostAccessibilityTrap.js.map +1 -0
  90. package/lib/commonjs/surfaces/resolveBannerTheme.js +6 -3
  91. package/lib/commonjs/surfaces/resolveBannerTheme.js.map +1 -1
  92. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js +3 -2
  93. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js.map +1 -1
  94. package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js +134 -0
  95. package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
  96. package/lib/commonjs/version.js +1 -1
  97. package/lib/module/anchors/AutoAnchorRegistry.js +145 -35
  98. package/lib/module/anchors/AutoAnchorRegistry.js.map +1 -1
  99. package/lib/module/anchors/animationFrame.js +29 -2
  100. package/lib/module/anchors/animationFrame.js.map +1 -1
  101. package/lib/module/anchors/appActive.js +57 -0
  102. package/lib/module/anchors/appActive.js.map +1 -0
  103. package/lib/module/anchors/elementConditionEvaluator.js +26 -9
  104. package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
  105. package/lib/module/anchors/elementTapMonitor.js +67 -12
  106. package/lib/module/anchors/elementTapMonitor.js.map +1 -1
  107. package/lib/module/anchors/elementTargetMatch.js +32 -7
  108. package/lib/module/anchors/elementTargetMatch.js.map +1 -1
  109. package/lib/module/anchors/fiber/fiberInternals.js +65 -0
  110. package/lib/module/anchors/fiber/fiberInternals.js.map +1 -1
  111. package/lib/module/anchors/fiber/indexHostFibers.js +4 -3
  112. package/lib/module/anchors/fiber/indexHostFibers.js.map +1 -1
  113. package/lib/module/anchors/fiber/resolveFiberPath.js +30 -15
  114. package/lib/module/anchors/fiber/resolveFiberPath.js.map +1 -1
  115. package/lib/module/anchors/fiberAnchorCache.js +19 -0
  116. package/lib/module/anchors/fiberAnchorCache.js.map +1 -1
  117. package/lib/module/anchors/gestureHandlerHandoff.js +298 -0
  118. package/lib/module/anchors/gestureHandlerHandoff.js.map +1 -0
  119. package/lib/module/anchors/resolveAnchorHost.js +1 -0
  120. package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
  121. package/lib/module/anchors/resolveAutoAnchorHost.js +11 -6
  122. package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -1
  123. package/lib/module/anchors/resolveElementTargets.js +63 -8
  124. package/lib/module/anchors/resolveElementTargets.js.map +1 -1
  125. package/lib/module/anchors/semanticMatcher.js +43 -21
  126. package/lib/module/anchors/semanticMatcher.js.map +1 -1
  127. package/lib/module/anchors/tapSlop.js +11 -0
  128. package/lib/module/anchors/tapSlop.js.map +1 -0
  129. package/lib/module/anchors/targetPressMonitor.js +53 -8
  130. package/lib/module/anchors/targetPressMonitor.js.map +1 -1
  131. package/lib/module/authoring/fingerprintFromInstance.js +6 -10
  132. package/lib/module/authoring/fingerprintFromInstance.js.map +1 -1
  133. package/lib/module/content/RichContentRenderer.js +3 -3
  134. package/lib/module/content/RichContentRenderer.js.map +1 -1
  135. package/lib/module/content/openSafeUrl.js +3 -1
  136. package/lib/module/content/openSafeUrl.js.map +1 -1
  137. package/lib/module/expo-router/useUserflowExpoRouter.js +7 -1
  138. package/lib/module/expo-router/useUserflowExpoRouter.js.map +1 -1
  139. package/lib/module/index.js +22 -7
  140. package/lib/module/index.js.map +1 -1
  141. package/lib/module/navigation/navigateUrlUtils.js +94 -0
  142. package/lib/module/navigation/navigateUrlUtils.js.map +1 -0
  143. package/lib/module/navigation/openExternalNavigateUrl.js +11 -0
  144. package/lib/module/navigation/openExternalNavigateUrl.js.map +1 -0
  145. package/lib/module/navigation/openFlowNavigateUrl.js +22 -36
  146. package/lib/module/navigation/openFlowNavigateUrl.js.map +1 -1
  147. package/lib/module/pairing/PairingController.js +3 -1
  148. package/lib/module/pairing/PairingController.js.map +1 -1
  149. package/lib/module/runtime/BannerHost.js +38 -29
  150. package/lib/module/runtime/BannerHost.js.map +1 -1
  151. package/lib/module/runtime/TargetPressBridge.js +56 -8
  152. package/lib/module/runtime/TargetPressBridge.js.map +1 -1
  153. package/lib/module/runtime/UserflowOverlay.js +5 -11
  154. package/lib/module/runtime/UserflowOverlay.js.map +1 -1
  155. package/lib/module/runtime/UserflowProvider.js +66 -40
  156. package/lib/module/runtime/UserflowProvider.js.map +1 -1
  157. package/lib/module/runtime/bannerEngine.js +7 -2
  158. package/lib/module/runtime/bannerEngine.js.map +1 -1
  159. package/lib/module/runtime/bannerFlowSpacer.js +65 -0
  160. package/lib/module/runtime/bannerFlowSpacer.js.map +1 -0
  161. package/lib/module/runtime/flowEngine.js +11 -0
  162. package/lib/module/runtime/flowEngine.js.map +1 -1
  163. package/lib/module/runtime/previewStart.js +35 -0
  164. package/lib/module/runtime/previewStart.js.map +1 -0
  165. package/lib/module/runtime/pushBannerLayoutContext.js +91 -0
  166. package/lib/module/runtime/pushBannerLayoutContext.js.map +1 -0
  167. package/lib/module/screenTracker.js +11 -0
  168. package/lib/module/screenTracker.js.map +1 -1
  169. package/lib/module/surfaces/BannerBar.js +80 -62
  170. package/lib/module/surfaces/BannerBar.js.map +1 -1
  171. package/lib/module/surfaces/BannerSurface.js +26 -0
  172. package/lib/module/surfaces/BannerSurface.js.map +1 -1
  173. package/lib/module/surfaces/TooltipSurface.js +44 -42
  174. package/lib/module/surfaces/TooltipSurface.js.map +1 -1
  175. package/lib/module/surfaces/bannerBarLayout.js +72 -11
  176. package/lib/module/surfaces/bannerBarLayout.js.map +1 -1
  177. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js +113 -64
  178. package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
  179. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js +59 -11
  180. package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
  181. package/lib/module/surfaces/hostAccessibilityTrap.js +24 -0
  182. package/lib/module/surfaces/hostAccessibilityTrap.js.map +1 -0
  183. package/lib/module/surfaces/resolveBannerTheme.js +6 -3
  184. package/lib/module/surfaces/resolveBannerTheme.js.map +1 -1
  185. package/lib/module/surfaces/tooltip/TooltipBubble.js +3 -2
  186. package/lib/module/surfaces/tooltip/TooltipBubble.js.map +1 -1
  187. package/lib/module/surfaces/tooltip/targetSearchSchedule.js +128 -0
  188. package/lib/module/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
  189. package/lib/module/version.js +1 -1
  190. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts +36 -2
  191. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  192. package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts +0 -4
  193. package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts.map +1 -1
  194. package/lib/typescript/commonjs/src/anchors/appActive.d.ts +8 -0
  195. package/lib/typescript/commonjs/src/anchors/appActive.d.ts.map +1 -0
  196. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts +17 -0
  197. package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts.map +1 -1
  198. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts +7 -0
  199. package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts.map +1 -1
  200. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts +7 -0
  201. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  202. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts +3 -2
  203. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
  204. package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
  205. package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
  206. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts +5 -0
  207. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts.map +1 -1
  208. package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts +70 -0
  209. package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
  210. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +1 -0
  211. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  212. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
  213. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  214. package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts +2 -0
  216. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts.map +1 -1
  217. package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts +9 -0
  218. package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts +13 -8
  220. package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts.map +1 -1
  221. package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
  222. package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
  223. package/lib/typescript/commonjs/src/content/openSafeUrl.d.ts.map +1 -1
  224. package/lib/typescript/commonjs/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  225. package/lib/typescript/commonjs/src/index.d.ts +6 -5
  226. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  227. package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts +15 -0
  228. package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts.map +1 -0
  229. package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts +3 -0
  230. package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
  231. package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts +2 -5
  232. package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
  233. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +6 -0
  234. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/src/runtime/BannerHost.d.ts.map +1 -1
  236. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +3 -0
  237. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/src/runtime/UserflowOverlay.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
  240. package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts +5 -1
  241. package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts.map +1 -1
  242. package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts +15 -0
  243. package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
  244. package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/src/runtime/previewStart.d.ts +13 -0
  246. package/lib/typescript/commonjs/src/runtime/previewStart.d.ts.map +1 -0
  247. package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts +17 -0
  248. package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
  249. package/lib/typescript/commonjs/src/screenTracker.d.ts +6 -0
  250. package/lib/typescript/commonjs/src/screenTracker.d.ts.map +1 -1
  251. package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts +3 -1
  252. package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts +5 -1
  254. package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts +1 -1
  256. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
  257. package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts +17 -0
  258. package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
  260. package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
  263. package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
  264. package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts +4 -1
  265. package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
  267. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
  269. package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
  270. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  271. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts +36 -2
  272. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  273. package/lib/typescript/module/src/anchors/animationFrame.d.ts +0 -4
  274. package/lib/typescript/module/src/anchors/animationFrame.d.ts.map +1 -1
  275. package/lib/typescript/module/src/anchors/appActive.d.ts +8 -0
  276. package/lib/typescript/module/src/anchors/appActive.d.ts.map +1 -0
  277. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts +17 -0
  278. package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts.map +1 -1
  279. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts +7 -0
  280. package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts.map +1 -1
  281. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts +7 -0
  282. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  283. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts +3 -2
  284. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
  285. package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
  286. package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
  287. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts +5 -0
  288. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts.map +1 -1
  289. package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts +70 -0
  290. package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
  291. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +1 -0
  292. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  293. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
  294. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
  295. package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts.map +1 -1
  296. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts +2 -0
  297. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts.map +1 -1
  298. package/lib/typescript/module/src/anchors/tapSlop.d.ts +9 -0
  299. package/lib/typescript/module/src/anchors/tapSlop.d.ts.map +1 -0
  300. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts +13 -8
  301. package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts.map +1 -1
  302. package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
  303. package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
  304. package/lib/typescript/module/src/content/openSafeUrl.d.ts.map +1 -1
  305. package/lib/typescript/module/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  306. package/lib/typescript/module/src/index.d.ts +6 -5
  307. package/lib/typescript/module/src/index.d.ts.map +1 -1
  308. package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts +15 -0
  309. package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts.map +1 -0
  310. package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts +3 -0
  311. package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
  312. package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts +2 -5
  313. package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
  314. package/lib/typescript/module/src/pairing/PairingController.d.ts +6 -0
  315. package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
  316. package/lib/typescript/module/src/runtime/BannerHost.d.ts.map +1 -1
  317. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +3 -0
  318. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
  319. package/lib/typescript/module/src/runtime/UserflowOverlay.d.ts.map +1 -1
  320. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
  321. package/lib/typescript/module/src/runtime/bannerEngine.d.ts +5 -1
  322. package/lib/typescript/module/src/runtime/bannerEngine.d.ts.map +1 -1
  323. package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts +15 -0
  324. package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
  325. package/lib/typescript/module/src/runtime/flowEngine.d.ts.map +1 -1
  326. package/lib/typescript/module/src/runtime/previewStart.d.ts +13 -0
  327. package/lib/typescript/module/src/runtime/previewStart.d.ts.map +1 -0
  328. package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts +17 -0
  329. package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
  330. package/lib/typescript/module/src/screenTracker.d.ts +6 -0
  331. package/lib/typescript/module/src/screenTracker.d.ts.map +1 -1
  332. package/lib/typescript/module/src/surfaces/BannerBar.d.ts +3 -1
  333. package/lib/typescript/module/src/surfaces/BannerBar.d.ts.map +1 -1
  334. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts +5 -1
  335. package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
  336. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts +1 -1
  337. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
  338. package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts +17 -0
  339. package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts.map +1 -1
  340. package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
  341. package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
  342. package/lib/typescript/module/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
  343. package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
  344. package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
  345. package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts +4 -1
  346. package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
  347. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
  348. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  349. package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
  350. package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
  351. package/lib/typescript/module/src/version.d.ts +1 -1
  352. package/package.json +1 -1
  353. package/src/anchors/AutoAnchorRegistry.ts +166 -35
  354. package/src/anchors/animationFrame.ts +31 -1
  355. package/src/anchors/appActive.ts +63 -0
  356. package/src/anchors/elementConditionEvaluator.ts +29 -12
  357. package/src/anchors/elementTapMonitor.ts +68 -10
  358. package/src/anchors/elementTargetMatch.ts +34 -7
  359. package/src/anchors/fiber/fiberInternals.ts +68 -0
  360. package/src/anchors/fiber/indexHostFibers.ts +8 -3
  361. package/src/anchors/fiber/resolveFiberPath.ts +25 -16
  362. package/src/anchors/fiberAnchorCache.ts +19 -0
  363. package/src/anchors/gestureHandlerHandoff.ts +356 -0
  364. package/src/anchors/resolveAnchorHost.ts +2 -0
  365. package/src/anchors/resolveAutoAnchorHost.ts +18 -8
  366. package/src/anchors/resolveElementTargets.ts +64 -7
  367. package/src/anchors/semanticMatcher.ts +48 -27
  368. package/src/anchors/tapSlop.ts +18 -0
  369. package/src/anchors/targetPressMonitor.ts +56 -19
  370. package/src/authoring/fingerprintFromInstance.ts +4 -5
  371. package/src/content/RichContentRenderer.tsx +4 -3
  372. package/src/content/openSafeUrl.ts +3 -1
  373. package/src/expo-router/useUserflowExpoRouter.ts +10 -1
  374. package/src/index.ts +20 -9
  375. package/src/navigation/navigateUrlUtils.ts +100 -0
  376. package/src/navigation/openExternalNavigateUrl.ts +9 -0
  377. package/src/navigation/openFlowNavigateUrl.ts +36 -36
  378. package/src/pairing/PairingController.ts +9 -1
  379. package/src/runtime/BannerHost.tsx +41 -23
  380. package/src/runtime/TargetPressBridge.tsx +66 -9
  381. package/src/runtime/UserflowOverlay.tsx +7 -9
  382. package/src/runtime/UserflowProvider.tsx +56 -32
  383. package/src/runtime/bannerEngine.ts +10 -2
  384. package/src/runtime/bannerFlowSpacer.tsx +70 -0
  385. package/src/runtime/flowEngine.ts +11 -0
  386. package/src/runtime/previewStart.ts +49 -0
  387. package/src/runtime/pushBannerLayoutContext.tsx +121 -0
  388. package/src/screenTracker.ts +11 -0
  389. package/src/surfaces/BannerBar.tsx +93 -55
  390. package/src/surfaces/BannerSurface.tsx +59 -3
  391. package/src/surfaces/TooltipSurface.tsx +63 -51
  392. package/src/surfaces/bannerBarLayout.ts +80 -7
  393. package/src/surfaces/bannerWebView/BannerWebViewBar.tsx +149 -57
  394. package/src/surfaces/bannerWebView/buildCustomBannerHtml.ts +63 -11
  395. package/src/surfaces/hostAccessibilityTrap.ts +25 -0
  396. package/src/surfaces/resolveBannerTheme.ts +14 -3
  397. package/src/surfaces/tooltip/TooltipBubble.tsx +8 -1
  398. package/src/surfaces/tooltip/targetSearchSchedule.ts +140 -0
  399. package/src/version.ts +1 -1
  400. package/vendor/core/dist/engine/BannerSessionEngine.d.ts +29 -2
  401. package/vendor/core/dist/engine/BannerSessionEngine.d.ts.map +1 -1
  402. package/vendor/core/dist/engine/BannerSessionEngine.js +87 -6
  403. package/vendor/core/dist/engine/BannerSessionEngine.js.map +1 -1
  404. package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -1
  405. package/vendor/core/dist/engine/ClientConditionEngine.js +30 -7
  406. package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -1
  407. package/vendor/core/dist/engine/PairingEngine.d.ts +6 -1
  408. package/vendor/core/dist/engine/PairingEngine.d.ts.map +1 -1
  409. package/vendor/core/dist/engine/PairingEngine.js +23 -3
  410. package/vendor/core/dist/engine/PairingEngine.js.map +1 -1
  411. package/vendor/core/dist/engine/handleActions.d.ts.map +1 -1
  412. package/vendor/core/dist/engine/handleActions.js +67 -2
  413. package/vendor/core/dist/engine/handleActions.js.map +1 -1
  414. package/vendor/core/dist/version.d.ts +1 -1
  415. package/vendor/core/dist/version.js +1 -1
  416. package/vendor/core/package.json +1 -1
  417. package/vendor/protocol/package.json +1 -1
@@ -7,6 +7,8 @@ import type { EvalJsContext } from '../../evalJs/types';
7
7
 
8
8
  import { collectBannerAutoRunEvalCodes } from './bannerAutoRunEvalJs';
9
9
  import { bannerThemeStyleAttribute } from './bannerThemeStyles';
10
+ import { resolveBannerInnerMaxWidth } from '../bannerBarLayout';
11
+
10
12
  import { BANNER_WEB_FRAME_CSS } from './bannerWebFrameCss';
11
13
  import { buttonClassName } from './buttonClassName';
12
14
  import { resolveCustomStylesheetUrl } from './resolveCdnHost';
@@ -58,30 +60,71 @@ function layoutMeasureScript(): string {
58
60
  `;
59
61
  }
60
62
 
61
- function bannerInteractionScript(): string {
63
+ function bannerInteractionScript(buttonsJson: string): string {
62
64
  return `
63
65
  (function(){
66
+ var __userflowBannerButtons=${buttonsJson};
64
67
  function post(msg){
65
68
  if(window.ReactNativeWebView&&window.ReactNativeWebView.postMessage){
66
69
  window.ReactNativeWebView.postMessage(JSON.stringify(Object.assign({__userflow:1},msg)));
67
70
  }
68
71
  }
69
- document.addEventListener('click',function(ev){
72
+ function resolveButtonId(el){
73
+ if(!el||!el.closest)return null;
74
+ var tagged=el.closest('[data-userflow-banner-button]');
75
+ if(tagged){
76
+ return tagged.getAttribute('data-userflow-banner-button');
77
+ }
78
+ function hasClass(el,token){
79
+ if(!token)return false;
80
+ var cls=el.className||'';
81
+ var parts=cls.split(/\\s+/);
82
+ for(var p=0;p<parts.length;p++){
83
+ if(parts[p]===token)return true;
84
+ }
85
+ return false;
86
+ }
87
+ function appearanceClass(appearance){
88
+ if(!appearance)return '';
89
+ var value=appearance;
90
+ var known=value==='primary'||value==='PRIMARY'||value==='default'||value==='DEFAULT'||value==='banner-primary'||value==='banner-secondary';
91
+ return known?'userflowjs-bubble-button--'+value.toLowerCase():value;
92
+ }
93
+ var bubble=el.closest('.userflowjs-bubble-button,button.userflowjs-bubble-button');
94
+ if(bubble){
95
+ var id=bubble.getAttribute('data-userflow-banner-button');
96
+ if(id)return id;
97
+ for(var i=0;i<__userflowBannerButtons.length;i++){
98
+ var meta=__userflowBannerButtons[i];
99
+ if(meta.appearance&&hasClass(bubble,appearanceClass(meta.appearance)))return meta.id;
100
+ }
101
+ }
102
+ var custom=el.closest('[class*="userflow-custom-button"]');
103
+ if(custom){
104
+ for(var j=0;j<__userflowBannerButtons.length;j++){
105
+ var entry=__userflowBannerButtons[j];
106
+ if(entry.appearance&&hasClass(custom,appearanceClass(entry.appearance)))return entry.id;
107
+ }
108
+ }
109
+ return null;
110
+ }
111
+ function onActivate(ev){
70
112
  var t=ev.target;
71
113
  if(!t||!t.closest)return;
72
- var btn=t.closest('[data-userflow-banner-button]');
73
- if(btn){
74
- ev.preventDefault();
75
- post({type:'bannerButton',buttonId:btn.getAttribute('data-userflow-banner-button')});
76
- return;
77
- }
78
114
  var close=t.closest('[data-userflow-banner-dismiss]');
79
115
  if(close){
80
116
  ev.preventDefault();
81
117
  window.__userflowBannerEvalDismissed=true;
82
118
  post({type:'bannerDismiss'});
119
+ return;
83
120
  }
84
- });
121
+ var buttonId=resolveButtonId(t);
122
+ if(buttonId){
123
+ ev.preventDefault();
124
+ post({type:'bannerButton',buttonId:buttonId});
125
+ }
126
+ }
127
+ document.addEventListener('click',onActivate,true);
85
128
  })();
86
129
  `;
87
130
  }
@@ -129,8 +172,9 @@ export function buildCustomBannerBodyHtml(
129
172
  const layoutClass = contentLayoutClass(banner.contentLayout);
130
173
  const themeStyle = bannerThemeStyleAttribute(theme);
131
174
  const customCssUrl = resolveCustomStylesheetUrl(serverEndpoint, theme);
175
+ const innerMaxWidth = resolveBannerInnerMaxWidth(banner);
132
176
  const maxInner =
133
- banner.maxContentWidth != null ? ` style="max-width:${banner.maxContentWidth}px"` : '';
177
+ innerMaxWidth != null && innerMaxWidth > 0 ? ` style="max-width:${innerMaxWidth}px"` : '';
134
178
  const contentHtml = richContentDocToHtml(banner.content, lookupAttribute);
135
179
  const buttonsHtml = banner.buttons
136
180
  .map((button) => {
@@ -143,6 +187,14 @@ export function buildCustomBannerBodyHtml(
143
187
  ? '<div class="userflowjs-banner-start-spacer"></div>'
144
188
  : '<button type="button" class="userflowjs-banner-close userflowjs-button-reset" data-userflow-banner-dismiss="1" aria-label="Dismiss">×</button>';
145
189
 
190
+ const buttonMetaJson = JSON.stringify(
191
+ banner.buttons.map((button) => ({
192
+ id: button.id,
193
+ cvid: button.cvid,
194
+ appearance: button.appearance ?? '',
195
+ })),
196
+ ).replace(/</g, '\\u003c');
197
+
146
198
  const customLink = customCssUrl
147
199
  ? `<link rel="stylesheet" href="${escapeAttr(customCssUrl)}" />`
148
200
  : '';
@@ -158,7 +210,7 @@ ${customLink}
158
210
  </div>
159
211
  ${closeHtml}
160
212
  </div>
161
- <script>${layoutMeasureScript()}${bannerInteractionScript()}${options?.skipAutoRunEval ? '' : bannerAutoRunEvalScript(banner, lookupAttribute)}</script>
213
+ <script>${layoutMeasureScript()}${bannerInteractionScript(buttonMetaJson)}${options?.skipAutoRunEval ? '' : bannerAutoRunEvalScript(banner, lookupAttribute)}</script>
162
214
  `;
163
215
  }
164
216
 
@@ -0,0 +1,25 @@
1
+ import type { FlowStepFragment } from '@userflow-tech/protocol';
2
+
3
+ /**
4
+ * Whether a step hides host app content from the accessibility tree.
5
+ *
6
+ * Modals always do. A tooltip does only when `tooltipTargetBlocked` seals its
7
+ * target too — otherwise the target is the control the step asks the user to
8
+ * press, so a screen reader has to be able to reach it.
9
+ *
10
+ * `UserflowOverlay` traps the host with this, and tooltip cards gate
11
+ * `accessibilityViewIsModal` on it: on iOS that flag alone drops the host app,
12
+ * target included, out of VoiceOver's reach.
13
+ */
14
+ export function stepTrapsHostAccessibility(
15
+ step: Pick<FlowStepFragment, 'appearance' | 'tooltipTargetBlocked'>,
16
+ ): boolean {
17
+ const appearance = String(step.appearance).toUpperCase();
18
+ if (appearance === 'HIDDEN') {
19
+ return false;
20
+ }
21
+ if (appearance !== 'TOOLTIP') {
22
+ return true;
23
+ }
24
+ return step.tooltipTargetBlocked;
25
+ }
@@ -1,6 +1,9 @@
1
1
  import type { ThemeFragment } from '@userflow-tech/protocol';
2
2
 
3
- /** Default banner chrome when theme banner tokens are unset (matches product / web debugger palette). */
3
+ /**
4
+ * Last-resort banner chrome when neither banner nor brand tokens are set on the
5
+ * wire (web `applyThemeDefaults` falls back to brand first).
6
+ */
4
7
  export const DEFAULT_BANNER_BACKGROUND_COLOR = '#0A1A24';
5
8
  export const DEFAULT_BANNER_FOREGROUND_COLOR = '#FFFFFF';
6
9
 
@@ -10,9 +13,17 @@ function readThemeColor(theme: ThemeFragment, key: string): string | undefined {
10
13
  }
11
14
 
12
15
  export function resolveBannerBackgroundColor(theme: ThemeFragment): string {
13
- return readThemeColor(theme, 'bannerBackgroundColor') ?? DEFAULT_BANNER_BACKGROUND_COLOR;
16
+ return (
17
+ readThemeColor(theme, 'bannerBackgroundColor') ??
18
+ readThemeColor(theme, 'brandBackgroundColor') ??
19
+ DEFAULT_BANNER_BACKGROUND_COLOR
20
+ );
14
21
  }
15
22
 
16
23
  export function resolveBannerForegroundColor(theme: ThemeFragment): string {
17
- return readThemeColor(theme, 'bannerForegroundColor') ?? DEFAULT_BANNER_FOREGROUND_COLOR;
24
+ return (
25
+ readThemeColor(theme, 'bannerForegroundColor') ??
26
+ readThemeColor(theme, 'brandForegroundColor') ??
27
+ DEFAULT_BANNER_FOREGROUND_COLOR
28
+ );
18
29
  }
@@ -28,6 +28,12 @@ export interface TooltipBubbleProps {
28
28
  * target. Defaults to true so isolated chrome tests keep the diamond.
29
29
  */
30
30
  showNotch?: boolean;
31
+ /**
32
+ * iOS: confine VoiceOver to this card. VoiceOver then skips the host app,
33
+ * including the target, so set it only while the host is hidden from
34
+ * accessibility anyway. Defaults to false.
35
+ */
36
+ accessibilityViewIsModal?: boolean;
31
37
  }
32
38
 
33
39
  /**
@@ -56,6 +62,7 @@ export function TooltipBubble({
56
62
  children,
57
63
  maxHeight,
58
64
  showNotch: showNotchProp = true,
65
+ accessibilityViewIsModal = false,
59
66
  }: TooltipBubbleProps): React.ReactElement {
60
67
  const showNotch = showNotchProp && chrome.notchSize > 0;
61
68
  const bordered = chrome.borderWidth > 0;
@@ -104,7 +111,7 @@ export function TooltipBubble({
104
111
  return (
105
112
  <CardFade
106
113
  testID="userflow-tooltip-card"
107
- accessibilityViewIsModal
114
+ accessibilityViewIsModal={accessibilityViewIsModal}
108
115
  pointerEvents="auto"
109
116
  onLayout={onLayout}
110
117
  style={[styles.shell, style]}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * When TooltipSurface looks for its target.
3
+ *
4
+ * - Anchored: a steady poll, so a covered or remounted host is noticed quickly.
5
+ * Each search is a cache hit for the resolved host.
6
+ * - Missing: exponential backoff. A miss walks the tree and scores registered
7
+ * hosts, so a target on another screen must not cost a full search every
8
+ * second for as long as the flow stays open.
9
+ * - Registry churn (list rows mounting while the user scrolls) pulls the next
10
+ * missing search forward, never closer than {@link MISSING_TRIGGER_GAP_MS}
11
+ * to the previous one.
12
+ * - A screen change or a return to the foreground starts the backoff over.
13
+ * - Nothing runs while paused (app not active).
14
+ */
15
+
16
+ /** Poll while the target is anchored. */
17
+ export const ANCHORED_POLL_MS = 250;
18
+ /** First retry after a miss; doubles per consecutive miss. */
19
+ export const MISSING_BACKOFF_BASE_MS = 250;
20
+ /** Ceiling for the missing-target backoff. */
21
+ export const MISSING_BACKOFF_MAX_MS = 4000;
22
+ /** Closest a registry change can pull a missing search to the previous one. */
23
+ export const MISSING_TRIGGER_GAP_MS = 500;
24
+
25
+ export type TargetSearchMode = 'anchored' | 'missing';
26
+
27
+ export interface TargetSearchClock {
28
+ now(): number;
29
+ setTimeout(handler: () => void, ms: number): ReturnType<typeof setTimeout>;
30
+ clearTimeout(handle: ReturnType<typeof setTimeout>): void;
31
+ }
32
+
33
+ const defaultClock: TargetSearchClock = {
34
+ now: () => Date.now(),
35
+ setTimeout: (handler, ms) => setTimeout(handler, ms),
36
+ clearTimeout: (handle) => clearTimeout(handle),
37
+ };
38
+
39
+ /** Delay before the next search after `misses` consecutive missing searches. */
40
+ export function missingBackoffDelay(misses: number): number {
41
+ const exponent = Math.max(0, misses - 1);
42
+ return Math.min(MISSING_BACKOFF_MAX_MS, MISSING_BACKOFF_BASE_MS * 2 ** exponent);
43
+ }
44
+
45
+ export class TargetSearchSchedule {
46
+ private mode: TargetSearchMode = 'missing';
47
+ /** Searches run since the target was last anchored (or the backoff restarted). */
48
+ private misses = 0;
49
+ private lastRunAt = Number.NEGATIVE_INFINITY;
50
+ private handle: ReturnType<typeof setTimeout> | null = null;
51
+ private dueAt = Number.POSITIVE_INFINITY;
52
+ private paused = false;
53
+ private disposed = false;
54
+
55
+ constructor(
56
+ private readonly search: () => void,
57
+ private readonly clock: TargetSearchClock = defaultClock,
58
+ ) {}
59
+
60
+ /** Search now and schedule the next one. No-op while paused. */
61
+ runNow(): void {
62
+ if (this.disposed || this.paused) return;
63
+ this.cancel();
64
+ this.lastRunAt = this.clock.now();
65
+ if (this.mode === 'missing') this.misses += 1;
66
+ try {
67
+ this.search();
68
+ } finally {
69
+ if (!this.disposed && !this.paused && this.handle == null) {
70
+ this.scheduleIn(this.nextDelay());
71
+ }
72
+ }
73
+ }
74
+
75
+ /** The target was found or lost. Starts the matching cadence from now. */
76
+ setMode(mode: TargetSearchMode): void {
77
+ if (this.disposed || mode === this.mode) return;
78
+ this.mode = mode;
79
+ this.misses = 0;
80
+ if (this.paused) return;
81
+ this.scheduleIn(mode === 'anchored' ? ANCHORED_POLL_MS : MISSING_BACKOFF_BASE_MS);
82
+ }
83
+
84
+ /** Something the target may depend on changed (a registry mount / unmount). */
85
+ trigger(): void {
86
+ if (this.disposed || this.paused || this.mode !== 'missing') return;
87
+ const now = this.clock.now();
88
+ const dueAt = Math.max(now, this.lastRunAt + MISSING_TRIGGER_GAP_MS);
89
+ if (dueAt >= this.dueAt) return;
90
+ this.scheduleIn(dueAt - now);
91
+ }
92
+
93
+ /** Restart the backoff and search now (screen change, foreground). */
94
+ rearm(): void {
95
+ if (this.disposed) return;
96
+ this.misses = 0;
97
+ this.runNow();
98
+ }
99
+
100
+ /** Stop searching until {@link resume}. */
101
+ pause(): void {
102
+ if (this.disposed || this.paused) return;
103
+ this.paused = true;
104
+ this.cancel();
105
+ }
106
+
107
+ /** Leave the paused state and search right away. */
108
+ resume(): void {
109
+ if (this.disposed || !this.paused) return;
110
+ this.paused = false;
111
+ this.rearm();
112
+ }
113
+
114
+ dispose(): void {
115
+ this.cancel();
116
+ this.disposed = true;
117
+ }
118
+
119
+ private nextDelay(): number {
120
+ return this.mode === 'anchored' ? ANCHORED_POLL_MS : missingBackoffDelay(this.misses);
121
+ }
122
+
123
+ private scheduleIn(ms: number): void {
124
+ this.cancel();
125
+ this.dueAt = this.clock.now() + ms;
126
+ this.handle = this.clock.setTimeout(() => {
127
+ this.handle = null;
128
+ this.dueAt = Number.POSITIVE_INFINITY;
129
+ this.runNow();
130
+ }, ms);
131
+ }
132
+
133
+ private cancel(): void {
134
+ if (this.handle != null) {
135
+ this.clock.clearTimeout(this.handle);
136
+ this.handle = null;
137
+ }
138
+ this.dueAt = Number.POSITIVE_INFINITY;
139
+ }
140
+ }
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** Generated by scripts/write-version.mjs — do not edit. */
2
- export const SDK_VERSION = '0.4.5';
2
+ export const SDK_VERSION = '0.5.0';
@@ -38,6 +38,12 @@ export declare class BannerSessionEngine {
38
38
  private readonly listeners;
39
39
  private readonly pendingSends;
40
40
  private session;
41
+ /**
42
+ * Draft banner cleared locally without a server `EndFlow` (exit preview,
43
+ * background clear). {@link endDraftBannerForPreview} ends this id before
44
+ * the next Builder preview start.
45
+ */
46
+ private deferredDraftBannerSessionId;
41
47
  private unsubscribe;
42
48
  private flushingPending;
43
49
  constructor(deps: BannerSessionEngineDeps);
@@ -45,17 +51,38 @@ export declare class BannerSessionEngine {
45
51
  detach(): void;
46
52
  on(listener: () => void): () => void;
47
53
  getBannerSession(): BannerSessionFragment | null;
54
+ /** Draft banner session id dropped locally without ending on the server. */
55
+ getDeferredDraftBannerSessionId(): string | null;
48
56
  handleServerMessage(message: ServerMessage): void;
49
57
  /** Dismiss the banner. Does not touch a tour session held elsewhere. */
50
58
  endBanner(endReason: EndFlowReasonInput): Promise<void>;
59
+ /**
60
+ * End a draft banner on the server before a Builder preview start. Uses a
61
+ * held session or {@link deferredDraftBannerSessionId}. Throws when
62
+ * `EndFlow` cannot be delivered so the caller does not start a new preview
63
+ * against a still-active draft (the server dedupes an unchanged
64
+ * `SetBannerSession`).
65
+ */
66
+ endDraftBannerForPreview(endReason: EndFlowReasonInput): Promise<void>;
67
+ /**
68
+ * Best-effort draft banner end (preview exit). Queues `EndFlow` on send
69
+ * failure like {@link endBanner}.
70
+ */
71
+ endDraftBannerSession(endReason: EndFlowReasonInput): Promise<void>;
51
72
  endFlow(endReason: EndFlowReasonInput): Promise<void>;
52
73
  handleActions(actions: FlowActionFragment[]): Promise<void>;
53
- /** Drop the local banner without detaching from transport (preview / user switch). */
54
- clearLocalSession(): void;
74
+ /**
75
+ * Drop the local banner without detaching from transport (preview exit,
76
+ * background clear, user switch).
77
+ */
78
+ clearLocalSession(options?: {
79
+ rememberDraftForPreviewEnd?: boolean;
80
+ }): void;
55
81
  reset(): void;
56
82
  flushPendingSends(): Promise<void>;
57
83
  private actionDeps;
58
84
  private setSession;
85
+ private clearDeferredDraftIf;
59
86
  /**
60
87
  * Banner `CLOSE_FLOW` ends this session. Other actions delegate to the tour
61
88
  * engine when one was provided, so `START_FLOW` replaces the tour.
@@ -1 +1 @@
1
- {"version":3,"file":"BannerSessionEngine.d.ts","sourceRoot":"","sources":["../../src/engine/BannerSessionEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BannerSessionEngine.d.ts","sourceRoot":"","sources":["../../src/engine/BannerSessionEngine.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,12 @@ export class BannerSessionEngine {
42
42
  this.listeners = new Set();
43
43
  this.pendingSends = [];
44
44
  this.session = null;
45
+ /**
46
+ * Draft banner cleared locally without a server `EndFlow` (exit preview,
47
+ * background clear). {@link endDraftBannerForPreview} ends this id before
48
+ * the next Builder preview start.
49
+ */
50
+ this.deferredDraftBannerSessionId = null;
45
51
  this.unsubscribe = null;
46
52
  this.flushingPending = false;
47
53
  this.transport = deps.transport;
@@ -53,11 +59,11 @@ export class BannerSessionEngine {
53
59
  this.warn = deps.warn ?? ((message) => console.warn(message));
54
60
  }
55
61
  attach() {
56
- if (this.unsubscribe)
57
- return;
62
+ this.detach();
58
63
  this.unsubscribe = this.transport.onServerMessage((message) => {
59
64
  this.handleServerMessage(message);
60
65
  });
66
+ void this.flushPendingSends();
61
67
  }
62
68
  detach() {
63
69
  this.unsubscribe?.();
@@ -72,6 +78,10 @@ export class BannerSessionEngine {
72
78
  getBannerSession() {
73
79
  return this.session;
74
80
  }
81
+ /** Draft banner session id dropped locally without ending on the server. */
82
+ getDeferredDraftBannerSessionId() {
83
+ return this.deferredDraftBannerSessionId;
84
+ }
75
85
  handleServerMessage(message) {
76
86
  switch (message.kind) {
77
87
  case 'SetBannerSession': {
@@ -99,12 +109,61 @@ export class BannerSessionEngine {
99
109
  return;
100
110
  const sessionId = current.id;
101
111
  this.setSession(null);
112
+ this.clearDeferredDraftIf(sessionId);
102
113
  await this.sendTracked({
103
114
  kind: 'EndFlow',
104
115
  sessionId,
105
116
  endReason,
106
117
  });
107
118
  }
119
+ /**
120
+ * End a draft banner on the server before a Builder preview start. Uses a
121
+ * held session or {@link deferredDraftBannerSessionId}. Throws when
122
+ * `EndFlow` cannot be delivered so the caller does not start a new preview
123
+ * against a still-active draft (the server dedupes an unchanged
124
+ * `SetBannerSession`).
125
+ */
126
+ async endDraftBannerForPreview(endReason) {
127
+ const current = this.session;
128
+ let sessionId = null;
129
+ if (current?.draftMode) {
130
+ sessionId = current.id;
131
+ this.setSession(null);
132
+ }
133
+ else {
134
+ sessionId = this.deferredDraftBannerSessionId;
135
+ if (sessionId === null)
136
+ return;
137
+ }
138
+ // Keep the id until EndFlow is delivered so a failed attempt can retry.
139
+ this.deferredDraftBannerSessionId = sessionId;
140
+ await this.sendTracked({
141
+ kind: 'EndFlow',
142
+ sessionId,
143
+ endReason,
144
+ }, { requireDelivery: true });
145
+ this.deferredDraftBannerSessionId = null;
146
+ }
147
+ /**
148
+ * Best-effort draft banner end (preview exit). Queues `EndFlow` on send
149
+ * failure like {@link endBanner}.
150
+ */
151
+ async endDraftBannerSession(endReason) {
152
+ const current = this.session;
153
+ if (current?.draftMode) {
154
+ await this.endBanner(endReason);
155
+ return;
156
+ }
157
+ const deferred = this.deferredDraftBannerSessionId;
158
+ if (deferred === null)
159
+ return;
160
+ this.deferredDraftBannerSessionId = null;
161
+ await this.sendTracked({
162
+ kind: 'EndFlow',
163
+ sessionId: deferred,
164
+ endReason,
165
+ });
166
+ }
108
167
  endFlow(endReason) {
109
168
  return this.endBanner(endReason);
110
169
  }
@@ -117,13 +176,24 @@ export class BannerSessionEngine {
117
176
  this.warn(`Userflow: banner actions failed: ${detail}`);
118
177
  });
119
178
  }
120
- /** Drop the local banner without detaching from transport (preview / user switch). */
121
- clearLocalSession() {
179
+ /**
180
+ * Drop the local banner without detaching from transport (preview exit,
181
+ * background clear, user switch).
182
+ */
183
+ clearLocalSession(options = {}) {
184
+ const rememberDraft = options.rememberDraftForPreviewEnd ?? true;
185
+ if (!rememberDraft) {
186
+ this.deferredDraftBannerSessionId = null;
187
+ }
188
+ else if (this.session?.draftMode === true) {
189
+ this.deferredDraftBannerSessionId = this.session.id;
190
+ }
122
191
  this.setSession(null);
123
192
  }
124
193
  reset() {
125
194
  this.detach();
126
195
  this.pendingSends.length = 0;
196
+ this.deferredDraftBannerSessionId = null;
127
197
  this.setSession(null);
128
198
  }
129
199
  async flushPendingSends() {
@@ -158,11 +228,19 @@ export class BannerSessionEngine {
158
228
  }
159
229
  setSession(session) {
160
230
  this.session = session;
231
+ if (session?.draftMode === true) {
232
+ this.clearDeferredDraftIf(session.id);
233
+ }
161
234
  this.transport.setBannerSessionId(session?.id ?? null);
162
235
  for (const listener of this.listeners) {
163
236
  listener();
164
237
  }
165
238
  }
239
+ clearDeferredDraftIf(sessionId) {
240
+ if (this.deferredDraftBannerSessionId === sessionId) {
241
+ this.deferredDraftBannerSessionId = null;
242
+ }
243
+ }
166
244
  /**
167
245
  * Banner `CLOSE_FLOW` ends this session. Other actions delegate to the tour
168
246
  * engine when one was provided, so `START_FLOW` replaces the tour.
@@ -222,12 +300,15 @@ export class BannerSessionEngine {
222
300
  }
223
301
  this.pendingSends.push(message);
224
302
  }
225
- async sendTracked(message) {
303
+ async sendTracked(message, options = {}) {
226
304
  try {
227
305
  await this.transport.send(message);
228
306
  void this.flushPendingSends();
229
307
  }
230
- catch {
308
+ catch (error) {
309
+ if (options.requireDelivery) {
310
+ throw error;
311
+ }
231
312
  this.enqueuePendingSend(message);
232
313
  this.warn(`Userflow: failed to send ${message.kind}; queued for retry on reconnect`);
233
314
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BannerSessionEngine.js","sourceRoot":"","sources":["../../src/engine/BannerSessionEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BannerSessionEngine.js","sourceRoot":"","sources":["../../src/engine/BannerSessionEngine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ClientConditionEngine.d.ts","sourceRoot":"","sources":["../../src/engine/ClientConditionEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,EACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAoB,KAAK,SAAS,EAAoB,MAAM,2BAA2B,CAAC;AAK/F,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,eAAe,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACvE,mBAAmB,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;CAC3E;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAEjG;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,SAAS,EAAE,qBAAqB,EAChC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,yBAAyB,KAC/B,MAAM,IAAI,CAAC;AAEhB,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,wBAAwB,CAAC;IACpC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAWD;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyD;IACpF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;IACrE,OAAO,CAAC,yBAAyB,CAA6B;gBAElD,IAAI,EAAE,yBAAyB;IAQ3C;;;OAGG;IACH,MAAM,IAAI,MAAM,IAAI;IAapB;;;OAGG;IACH,MAAM,IAAI,IAAI;IAWd,oEAAoE;IACpE,KAAK,IAAI,IAAI;IASb,yEAAyE;IACzE,WAAW,IAAI,0BAA0B,EAAE;IAO3C,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,MAAM;IAqDd,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;CAMtB"}
1
+ {"version":3,"file":"ClientConditionEngine.d.ts","sourceRoot":"","sources":["../../src/engine/ClientConditionEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,aAAa,EACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAoB,KAAK,SAAS,EAAoB,MAAM,2BAA2B,CAAC;AAK/F,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,eAAe,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACvE,mBAAmB,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,GAAG,IAAI,CAAC;CAC3E;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAEjG;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,SAAS,EAAE,qBAAqB,EAChC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,yBAAyB,KAC/B,MAAM,IAAI,CAAC;AAEhB,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,wBAAwB,CAAC;IACpC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAkBD;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyD;IACpF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;IACrE,OAAO,CAAC,yBAAyB,CAA6B;gBAElD,IAAI,EAAE,yBAAyB;IAQ3C;;;OAGG;IACH,MAAM,IAAI,MAAM,IAAI;IAapB;;;OAGG;IACH,MAAM,IAAI,IAAI;IAWd,oEAAoE;IACpE,KAAK,IAAI,IAAI;IASb,yEAAyE;IACzE,WAAW,IAAI,0BAA0B,EAAE;IAO3C,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,MAAM;IAuEd,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;CAMtB"}