@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bannerFlowSpacer.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/bannerFlowSpacer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,KAAK,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAC;AAWnC,gBAAgB;AAChB,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOhF;AAaD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,MAAM,EACN,IAAI,GACL,EAAE;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,IAAI,EAAE,UAAU,CAAC;CAClB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAoB5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"flowEngine.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/flowEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAa3E,+FAA+F;AAC/F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,CAsB1E;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,CAI7E;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQzD;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAkBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzF;AAED,oEAAoE;AACpE,wBAAgB,gCAAgC,IAAI,IAAI,CAIvD"}
1
+ {"version":3,"file":"flowEngine.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/flowEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAa3E,+FAA+F;AAC/F,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,CAiC1E;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,YAAY,GAAG,iBAAiB,CAI7E;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQzD;AAED,qFAAqF;AACrF,wBAAgB,qBAAqB,IAAI,IAAI,CAI5C;AAkBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzF;AAED,oEAAoE;AACpE,wBAAgB,gCAAgC,IAAI,IAAI,CAIvD"}
@@ -0,0 +1,13 @@
1
+ import type { UserflowCore } from '@userflow-tech/core';
2
+ /**
3
+ * Drop local tour state and reset eval before a Builder `startFlowWithToken`.
4
+ *
5
+ * When a draft banner is still active, end it on the server first. The channel
6
+ * dedupes an unchanged `SetBannerSession`, so clearing the banner locally
7
+ * without ending the draft leaves nothing visible on a second preview of the
8
+ * same banner.
9
+ */
10
+ export declare function prepareForBuilderPreviewStart(core: UserflowCore): Promise<void>;
11
+ /** End tour and banner Builder drafts on the server (preview exit). */
12
+ export declare function endDraftPreviewSessions(): Promise<void>;
13
+ //# sourceMappingURL=previewStart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"previewStart.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/previewStart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAgBxD;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBrF;AAED,uEAAuE;AACvE,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG7D"}
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import type { LayoutChangeEvent } from 'react-native';
3
+ export type PushBannerLayoutEdge = 'top' | 'bottom';
4
+ export declare function PushBannerLayoutProvider({ children, onActiveEdgeChange, }: {
5
+ children: React.ReactNode;
6
+ onActiveEdgeChange: (edge: PushBannerLayoutEdge | null) => void;
7
+ }): React.ReactElement;
8
+ /** @internal */
9
+ export declare function usePushBannerLayoutRegistration(edge: PushBannerLayoutEdge | null | undefined, sessionId: string | undefined): void;
10
+ /**
11
+ * Clears the host top/bottom safe-area override only after push-layout chrome
12
+ * has laid out, so a session without visible chrome cannot leave a white strip.
13
+ *
14
+ * @internal
15
+ */
16
+ export declare function usePushBannerHostInsetRegistration(edge: PushBannerLayoutEdge | null | undefined, sessionId: string, enabled: boolean): (event: LayoutChangeEvent) => void;
17
+ //# sourceMappingURL=pushBannerLayoutContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pushBannerLayoutContext.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/pushBannerLayoutContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,QAAQ,CAAC;AA8BpD,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,EACR,kBAAkB,GACnB,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kBAAkB,EAAE,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,KAAK,IAAI,CAAC;CACjE,GAAG,KAAK,CAAC,YAAY,CA+BrB;AAED,gBAAgB;AAChB,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAC7C,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,IAAI,CAYN;AAED;;;;;GAKG;AACH,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,EAC7C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAoBpC"}
@@ -7,6 +7,12 @@ export type HandleScreenChangeOptions = {
7
7
  /** Re-run the reporter even when the location matches the last report. */
8
8
  force?: boolean;
9
9
  };
10
+ /**
11
+ * The screen id stored on an AUTO envelope (`path` for Expo Router, `screen`
12
+ * otherwise). Missing or blank locations are `'unknown'`, the same sentinel
13
+ * the element picker writes when it has not seen a screen yet.
14
+ */
15
+ export declare function screenIdFromLocation(location: ClientLocationUpdate | null | undefined): string;
10
16
  /** Event attributes for `screen_viewed`, or `null` when the location has no identity. */
11
17
  export declare function screenViewedAttributes(location: ClientLocationUpdate): {
12
18
  screen_name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"screenTracker.d.ts","sourceRoot":"","sources":["../../../../src/screenTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD,sEAAsE;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAE5E,MAAM,MAAM,yBAAyB,GAAG;IACtC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAeF,yFAAyF;AACzF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,oBAAoB,GAC7B;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIhC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAalF;AAeD,kFAAkF;AAClF,wBAAgB,wBAAwB,IAAI,oBAAoB,GAAG,IAAI,CAEtE;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,IAAI,IAAI,CAS3C;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAgBN;AAED,sFAAsF;AACtF,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,IAAI,IAAI,CAMjD"}
1
+ {"version":3,"file":"screenTracker.d.ts","sourceRoot":"","sources":["../../../../src/screenTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD,sEAAsE;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAE5E,MAAM,MAAM,yBAAyB,GAAG;IACtC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAeF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAI9F;AAED,yFAAyF;AACzF,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,oBAAoB,GAC7B;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIhC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAE/E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,IAAI,CAalF;AAeD,kFAAkF;AAClF,wBAAgB,wBAAwB,IAAI,oBAAoB,GAAG,IAAI,CAEtE;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,IAAI,IAAI,CAS3C;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,oBAAoB,GAAG,SAAS,EAC1C,OAAO,CAAC,EAAE,yBAAyB,GAClC,IAAI,CAgBN;AAED,sFAAsF;AACtF,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,IAAI,IAAI,CAMjD"}
@@ -3,6 +3,8 @@ import { EndFlowReasonInput, type BannerSessionFragment } from '@userflow-tech/p
3
3
  import * as React from 'react';
4
4
  export interface BannerBarProps {
5
5
  session: BannerSessionFragment;
6
+ pushLayoutEdge?: 'top' | 'bottom' | null;
7
+ overlaySafeEdge?: 'top' | 'bottom' | null;
6
8
  onActions: (actions: FlowActionFragment[]) => void;
7
9
  onDismiss: (endReason: EndFlowReasonInput) => void;
8
10
  }
@@ -10,5 +12,5 @@ export interface BannerBarProps {
10
12
  * Banner chrome. An overlay parent floats this over the host. A flow parent
11
13
  * keeps it in layout so the app is pushed instead of covered.
12
14
  */
13
- export declare function BannerBar({ session, onActions, onDismiss, }: BannerBarProps): React.ReactElement | null;
15
+ export declare function BannerBar({ session, pushLayoutEdge, overlaySafeEdge, onActions, onDismiss, }: BannerBarProps): React.ReactElement | null;
14
16
  //# sourceMappingURL=BannerBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerBar.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/BannerBar.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;AAqB/B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,SAAS,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACpD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,SAAS,EACT,SAAS,GACV,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAgG5C"}
1
+ {"version":3,"file":"BannerBar.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/BannerBar.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;AAyB/B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IACnD,SAAS,EAAE,CAAC,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACpD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EACxB,OAAO,EACP,cAAqB,EACrB,eAAsB,EACtB,SAAS,EACT,SAAS,GACV,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA8H5C"}
@@ -2,6 +2,10 @@ import type { BannerSessionFragment, EndFlowReasonInput, FlowActionFragment } fr
2
2
  import * as React from 'react';
3
3
  export interface BannerSurfaceProps {
4
4
  session: BannerSessionFragment;
5
+ /** When set, the banner pushes host layout and fills the safe-area inset on this edge. */
6
+ pushLayoutEdge?: 'top' | 'bottom' | null;
7
+ /** Overlay host edge — paints safe-area padding without pushing layout. */
8
+ overlaySafeEdge?: 'top' | 'bottom' | null;
5
9
  onActions: (actions: FlowActionFragment[]) => void | Promise<void>;
6
10
  onDismiss: (endReason: EndFlowReasonInput) => void;
7
11
  }
@@ -9,7 +13,7 @@ export interface BannerSurfaceProps {
9
13
  * Native banner bar, or a WebView when a button runs Evaluate JavaScript or the
10
14
  * theme has published custom CSS (same CDN stylesheet as userflow.js iframes).
11
15
  */
12
- export declare function BannerSurface({ session, onActions, onDismiss, }: BannerSurfaceProps): React.ReactElement | null;
16
+ export declare function BannerSurface({ session, pushLayoutEdge, overlaySafeEdge, onActions, onDismiss, }: BannerSurfaceProps): React.ReactElement | null;
13
17
  /** @internal */
14
18
  export declare function resetBannerSurfaceWarningsForTests(): void;
15
19
  //# sourceMappingURL=BannerSurface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BannerSurface.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/BannerSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,WAAW,kBAAkB;IACjC,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;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,SAAS,EACT,SAAS,GACV,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA+ChD;AAED,gBAAgB;AAChB,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD"}
1
+ {"version":3,"file":"BannerSurface.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/BannerSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,0FAA0F;IAC1F,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IACzC,2EAA2E;IAC3E,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC1C,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;AAID;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,cAAqB,EACrB,eAAsB,EACtB,SAAS,EACT,SAAS,GACV,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAiGhD;AAED,gBAAgB;AAChB,wBAAgB,kCAAkC,IAAI,IAAI,CAEzD"}
@@ -1,5 +1,5 @@
1
1
  import type { FlowSessionEngine } from '@userflow-tech/core';
2
- import type { FlowSessionFragment, FlowStepFragment, ThemeFragment } from '@userflow-tech/protocol';
2
+ import { type FlowSessionFragment, type FlowStepFragment, type ThemeFragment } from '@userflow-tech/protocol';
3
3
  import * as React from 'react';
4
4
  import type { LookupAttribute } from '../content/types';
5
5
  export interface TooltipSurfaceProps {
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipSurface.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/TooltipSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAEV,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6B/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA4CxD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAQD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAuCzC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,WAAW,EACX,KAAK,EACL,eAAe,EACf,UAAc,GACf,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA23BjD"}
1
+ {"version":3,"file":"TooltipSurface.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/TooltipSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+B/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA8CxD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;GAGG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAuCzC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,WAAW,EACX,KAAK,EACL,eAAe,EACf,UAAc,GACf,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAs4BjD"}
@@ -3,6 +3,16 @@ import { BannerContentLayout } from '@userflow-tech/protocol';
3
3
  import type { ViewStyle } from 'react-native';
4
4
  import type { EdgeInsets } from './safeArea';
5
5
  export { BANNER_CLOSE_SLOT_SIZE, BANNER_ROOT_PADDING } from './bannerBarTokens';
6
+ /** Fixed horizontal chrome inside the embed width (padding, close/spacer slots, inner margins). */
7
+ export declare function bannerHorizontalChromeWidth(): number;
8
+ /** Outer bar cap — max embed width only (max content width limits the inner row on web). */
9
+ export declare function resolveBannerFrameMaxWidth(banner: BannerFragment): number | null;
10
+ export declare function bannerHasMaxContentWidth(banner: BannerFragment): boolean;
11
+ /**
12
+ * Cap for the native inner row and WebView HTML `.userflowjs-banner-inner` only.
13
+ * Returns null when max content width is unset. May be 0 when embed width is narrower than chrome.
14
+ */
15
+ export declare function resolveBannerInnerMaxWidth(banner: BannerFragment): number | null;
6
16
  /** Outer frame: max embed width and builder outer margin (web `userflowjs-banner-frame`). */
7
17
  export declare function bannerFrameStyle(banner: BannerFragment): ViewStyle;
8
18
  /** Corner radius on the painted bar when configured in the builder. */
@@ -11,5 +21,12 @@ export declare function resolveBannerBarBorderRadius(banner: BannerFragment): nu
11
21
  export declare function bannerOverlayHostPadding(insets: EdgeInsets): ViewStyle;
12
22
  /** Flex justification for the inner row (web content-layout modifiers). */
13
23
  export declare function bannerInnerJustifyContent(layout: BannerContentLayout): ViewStyle['justifyContent'];
24
+ /**
25
+ * Push-layout chrome: safe-area pad + bar background on the same node as the
26
+ * fade so an animated banner does not leave a visible status-bar strip at opacity 0.
27
+ */
28
+ export declare function bannerPushLayoutChrome(edge: 'top' | 'bottom', insets: EdgeInsets, backgroundColor: string): ViewStyle;
29
+ /** Painted bar (`userflow-banner`) — fill the frame so max embed width clips chrome, not just margins. */
30
+ export declare function bannerBarRootStyle(banner: BannerFragment): ViewStyle;
14
31
  export declare function bannerInnerStyle(banner: BannerFragment): ViewStyle;
15
32
  //# sourceMappingURL=bannerBarLayout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bannerBarLayout.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/bannerBarLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQ9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAMhF,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAWlE;AAED,uEAAuE;AACvE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAEvF;AAED,2FAA2F;AAC3F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAGtE;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,GAC1B,SAAS,CAAC,gBAAgB,CAAC,CAU7B;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAelE"}
1
+ {"version":3,"file":"bannerBarLayout.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/bannerBarLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAU9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAMhF,mGAAmG;AACnG,wBAAgB,2BAA2B,IAAI,MAAM,CAEpD;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAEhF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAExE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAUhF;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAkBlE;AAED,uEAAuE;AACvE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAEvF;AAED,2FAA2F;AAC3F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAGtE;AAED,2EAA2E;AAC3E,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,GAC1B,SAAS,CAAC,gBAAgB,CAAC,CAU7B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,KAAK,GAAG,QAAQ,EACtB,MAAM,EAAE,UAAU,EAClB,eAAe,EAAE,MAAM,GACtB,SAAS,CAMX;AAKD,0GAA0G;AAC1G,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAQpE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CAmBlE"}
@@ -3,8 +3,10 @@ import { EndFlowReasonInput, type BannerSessionFragment } from '@userflow-tech/p
3
3
  import * as React from 'react';
4
4
  export interface BannerWebViewBarProps {
5
5
  session: BannerSessionFragment;
6
+ pushLayoutEdge?: 'top' | 'bottom' | null;
7
+ overlaySafeEdge?: 'top' | 'bottom' | null;
6
8
  onActions: (actions: FlowActionFragment[]) => void | Promise<void>;
7
9
  onDismiss: (endReason: EndFlowReasonInput) => void;
8
10
  }
9
- export declare function BannerWebViewBar({ session, onActions, onDismiss, }: BannerWebViewBarProps): React.ReactElement | null;
11
+ export declare function BannerWebViewBar({ session, pushLayoutEdge, overlaySafeEdge, onActions, onDismiss, }: BannerWebViewBarProps): React.ReactElement | null;
10
12
  //# sourceMappingURL=BannerWebViewBar.d.ts.map
@@ -1 +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"}
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;AAoC/B,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,cAAc,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC1C,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,cAAqB,EACrB,eAAsB,EACtB,SAAS,EACT,SAAS,GACV,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAmUnD"}
@@ -1 +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"}
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;AAyJxD,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,CA8CR;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,14 @@
1
+ import type { FlowStepFragment } from '@userflow-tech/protocol';
2
+ /**
3
+ * Whether a step hides host app content from the accessibility tree.
4
+ *
5
+ * Modals always do. A tooltip does only when `tooltipTargetBlocked` seals its
6
+ * target too — otherwise the target is the control the step asks the user to
7
+ * press, so a screen reader has to be able to reach it.
8
+ *
9
+ * `UserflowOverlay` traps the host with this, and tooltip cards gate
10
+ * `accessibilityViewIsModal` on it: on iOS that flag alone drops the host app,
11
+ * target included, out of VoiceOver's reach.
12
+ */
13
+ export declare function stepTrapsHostAccessibility(step: Pick<FlowStepFragment, 'appearance' | 'tooltipTargetBlocked'>): boolean;
14
+ //# sourceMappingURL=hostAccessibilityTrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostAccessibilityTrap.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/hostAccessibilityTrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,GAAG,sBAAsB,CAAC,GAClE,OAAO,CAST"}
@@ -1,5 +1,8 @@
1
1
  import type { ThemeFragment } from '@userflow-tech/protocol';
2
- /** Default banner chrome when theme banner tokens are unset (matches product / web debugger palette). */
2
+ /**
3
+ * Last-resort banner chrome when neither banner nor brand tokens are set on the
4
+ * wire (web `applyThemeDefaults` falls back to brand first).
5
+ */
3
6
  export declare const DEFAULT_BANNER_BACKGROUND_COLOR = "#0A1A24";
4
7
  export declare const DEFAULT_BANNER_FOREGROUND_COLOR = "#FFFFFF";
5
8
  export declare function resolveBannerBackgroundColor(theme: ThemeFragment): string;
@@ -1 +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
+ {"version":3,"file":"resolveBannerTheme.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/resolveBannerTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,+BAA+B,YAAY,CAAC;AACzD,eAAO,MAAM,+BAA+B,YAAY,CAAC;AAOzD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAMzE;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAMzE"}
@@ -15,6 +15,12 @@ export interface TooltipBubbleProps {
15
15
  * target. Defaults to true so isolated chrome tests keep the diamond.
16
16
  */
17
17
  showNotch?: boolean;
18
+ /**
19
+ * iOS: confine VoiceOver to this card. VoiceOver then skips the host app,
20
+ * including the target, so set it only while the host is hidden from
21
+ * accessibility anyway. Defaults to false.
22
+ */
23
+ accessibilityViewIsModal?: boolean;
18
24
  }
19
25
  /**
20
26
  * Tooltip chrome shell: diamond notch + card fill sharing one shadow family.
@@ -34,5 +40,5 @@ export interface TooltipBubbleProps {
34
40
  * iOS gets `shadow*` on the notch (`elevation` is inert there); Android gets
35
41
  * `elevation`, which is the only shadow it honors on a rotated view.
36
42
  */
37
- export declare function TooltipBubble({ chrome, notchPosition, style, onLayout, children, maxHeight, showNotch: showNotchProp, }: TooltipBubbleProps): React.ReactElement;
43
+ export declare function TooltipBubble({ chrome, notchPosition, style, onLayout, children, maxHeight, showNotch: showNotchProp, accessibilityViewIsModal, }: TooltipBubbleProps): React.ReactElement;
38
44
  //# sourceMappingURL=TooltipBubble.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipBubble.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/tooltip/TooltipBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,aAAa,EACb,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EAAE,aAAoB,GAChC,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAgIzC"}
1
+ {"version":3,"file":"TooltipBubble.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/tooltip/TooltipBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAItB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4FAA4F;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,aAAa,EACb,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EAAE,aAAoB,EAC/B,wBAAgC,GACjC,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAgIzC"}
@@ -0,0 +1,60 @@
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
+ /** Poll while the target is anchored. */
16
+ export declare const ANCHORED_POLL_MS = 250;
17
+ /** First retry after a miss; doubles per consecutive miss. */
18
+ export declare const MISSING_BACKOFF_BASE_MS = 250;
19
+ /** Ceiling for the missing-target backoff. */
20
+ export declare const MISSING_BACKOFF_MAX_MS = 4000;
21
+ /** Closest a registry change can pull a missing search to the previous one. */
22
+ export declare const MISSING_TRIGGER_GAP_MS = 500;
23
+ export type TargetSearchMode = 'anchored' | 'missing';
24
+ export interface TargetSearchClock {
25
+ now(): number;
26
+ setTimeout(handler: () => void, ms: number): ReturnType<typeof setTimeout>;
27
+ clearTimeout(handle: ReturnType<typeof setTimeout>): void;
28
+ }
29
+ /** Delay before the next search after `misses` consecutive missing searches. */
30
+ export declare function missingBackoffDelay(misses: number): number;
31
+ export declare class TargetSearchSchedule {
32
+ private readonly search;
33
+ private readonly clock;
34
+ private mode;
35
+ /** Searches run since the target was last anchored (or the backoff restarted). */
36
+ private misses;
37
+ private lastRunAt;
38
+ private handle;
39
+ private dueAt;
40
+ private paused;
41
+ private disposed;
42
+ constructor(search: () => void, clock?: TargetSearchClock);
43
+ /** Search now and schedule the next one. No-op while paused. */
44
+ runNow(): void;
45
+ /** The target was found or lost. Starts the matching cadence from now. */
46
+ setMode(mode: TargetSearchMode): void;
47
+ /** Something the target may depend on changed (a registry mount / unmount). */
48
+ trigger(): void;
49
+ /** Restart the backoff and search now (screen change, foreground). */
50
+ rearm(): void;
51
+ /** Stop searching until {@link resume}. */
52
+ pause(): void;
53
+ /** Leave the paused state and search right away. */
54
+ resume(): void;
55
+ dispose(): void;
56
+ private nextDelay;
57
+ private scheduleIn;
58
+ private cancel;
59
+ }
60
+ //# sourceMappingURL=targetSearchSchedule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targetSearchSchedule.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/tooltip/targetSearchSchedule.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,yCAAyC;AACzC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,8DAA8D;AAC9D,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAC3C,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,GAAG,IAAI,MAAM,CAAC;IACd,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC3E,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;CAC3D;AAQD,gFAAgF;AAChF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,qBAAa,oBAAoB;IAW7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAXxB,OAAO,CAAC,IAAI,CAA+B;IAC3C,kFAAkF;IAClF,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAA8C;IAC5D,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;gBAGN,MAAM,EAAE,MAAM,IAAI,EAClB,KAAK,GAAE,iBAAgC;IAG1D,gEAAgE;IAChE,MAAM,IAAI,IAAI;IAcd,0EAA0E;IAC1E,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAQrC,+EAA+E;IAC/E,OAAO,IAAI,IAAI;IAQf,sEAAsE;IACtE,KAAK,IAAI,IAAI;IAMb,2CAA2C;IAC3C,KAAK,IAAI,IAAI;IAMb,oDAAoD;IACpD,MAAM,IAAI,IAAI;IAMd,OAAO,IAAI,IAAI;IAKf,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,MAAM;CAOf"}
@@ -1,3 +1,3 @@
1
1
  /** Generated by scripts/write-version.mjs — do not edit. */
2
- export declare const SDK_VERSION = "0.4.5";
2
+ export declare const SDK_VERSION = "0.5.0";
3
3
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@userflow-tech/react-native",
3
- "version": "0.4.5",
3
+ "version": "0.5.0",
4
4
  "description": "Userflow SDK for React Native — onboarding flows, tooltips, and modals.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "main": "./lib/commonjs/index.js",