@userflow-tech/react-native 0.1.0 → 0.2.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 (850) hide show
  1. package/README.md +114 -68
  2. package/app.plugin.js +13 -0
  3. package/babel-plugin/index.d.ts +43 -0
  4. package/babel-plugin/index.d.ts.map +1 -0
  5. package/babel-plugin/index.js +862 -0
  6. package/babel-plugin/index.js.map +1 -0
  7. package/babel-plugin.js +13 -0
  8. package/docs/anchoring.md +141 -13
  9. package/docs/deep-linking.md +20 -17
  10. package/docs/theme-mapping.md +44 -15
  11. package/docs/troubleshooting.md +37 -30
  12. package/expo-plugin/withUserflow.d.ts +17 -0
  13. package/expo-plugin/withUserflow.d.ts.map +1 -0
  14. package/expo-plugin/withUserflow.js +99 -0
  15. package/expo-plugin/withUserflow.js.map +1 -0
  16. package/lib/commonjs/anchors/AutoAnchorRegistry.js +125 -3
  17. package/lib/commonjs/anchors/AutoAnchorRegistry.js.map +1 -1
  18. package/lib/commonjs/anchors/anchorChangeTicker.js +10 -0
  19. package/lib/commonjs/anchors/anchorChangeTicker.js.map +1 -1
  20. package/lib/commonjs/anchors/autoAnchor.js +1 -1
  21. package/lib/commonjs/anchors/elementConditionEvaluator.js +25 -12
  22. package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
  23. package/lib/commonjs/anchors/fiber/FiberScanRoot.js +11 -47
  24. package/lib/commonjs/anchors/fiber/FiberScanRoot.js.map +1 -1
  25. package/lib/commonjs/anchors/fiber/FiberScanRootStore.js +50 -0
  26. package/lib/commonjs/anchors/fiber/FiberScanRootStore.js.map +1 -0
  27. package/lib/commonjs/anchors/fiber/fiberInternals.js +145 -3
  28. package/lib/commonjs/anchors/fiber/fiberInternals.js.map +1 -1
  29. package/lib/commonjs/anchors/fiber/indexHostFibers.js +129 -0
  30. package/lib/commonjs/anchors/fiber/indexHostFibers.js.map +1 -0
  31. package/lib/commonjs/anchors/fiber/readHostContent.js +131 -0
  32. package/lib/commonjs/anchors/fiber/readHostContent.js.map +1 -0
  33. package/lib/commonjs/anchors/fiberAnchorCache.js +50 -0
  34. package/lib/commonjs/anchors/fiberAnchorCache.js.map +1 -0
  35. package/lib/commonjs/anchors/hintsCodec.js +1 -1
  36. package/lib/commonjs/anchors/resolveAnchorHost.js +15 -21
  37. package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
  38. package/lib/commonjs/anchors/resolveAutoAnchorHost.js +171 -0
  39. package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -0
  40. package/lib/commonjs/anchors/semanticMatcher.js +285 -0
  41. package/lib/commonjs/anchors/semanticMatcher.js.map +1 -0
  42. package/lib/commonjs/authoring/ElementPickerOverlay.js +490 -0
  43. package/lib/commonjs/authoring/ElementPickerOverlay.js.map +1 -0
  44. package/lib/commonjs/authoring/capturePickerScreenshot.js +73 -0
  45. package/lib/commonjs/authoring/capturePickerScreenshot.js.map +1 -0
  46. package/lib/commonjs/authoring/chrome/ChromeBarTransition.js +94 -0
  47. package/lib/commonjs/authoring/chrome/ChromeBarTransition.js.map +1 -0
  48. package/lib/commonjs/authoring/chrome/ChromeBottomSheet.js +64 -0
  49. package/lib/commonjs/authoring/chrome/ChromeBottomSheet.js.map +1 -0
  50. package/lib/commonjs/authoring/chrome/ChromeButton.js +94 -0
  51. package/lib/commonjs/authoring/chrome/ChromeButton.js.map +1 -0
  52. package/lib/commonjs/authoring/chrome/ChromeDialog.js +131 -0
  53. package/lib/commonjs/authoring/chrome/ChromeDialog.js.map +1 -0
  54. package/lib/commonjs/authoring/chrome/ChromeIcon.js +39 -0
  55. package/lib/commonjs/authoring/chrome/ChromeIcon.js.map +1 -0
  56. package/lib/commonjs/authoring/chrome/ChromeTooltip.js +88 -0
  57. package/lib/commonjs/authoring/chrome/ChromeTooltip.js.map +1 -0
  58. package/lib/commonjs/authoring/chrome/ChromeTopBar.js +110 -0
  59. package/lib/commonjs/authoring/chrome/ChromeTopBar.js.map +1 -0
  60. package/lib/commonjs/authoring/chrome/DoubleTapBridge.js +57 -0
  61. package/lib/commonjs/authoring/chrome/DoubleTapBridge.js.map +1 -0
  62. package/lib/commonjs/authoring/chrome/doubleTapMonitor.js +80 -0
  63. package/lib/commonjs/authoring/chrome/doubleTapMonitor.js.map +1 -0
  64. package/lib/commonjs/authoring/chrome/icons/arrow-left-from-bracket.png +0 -0
  65. package/lib/commonjs/authoring/chrome/icons/arrow-left-from-bracket@2x.png +0 -0
  66. package/lib/commonjs/authoring/chrome/icons/arrow-left-from-bracket@3x.png +0 -0
  67. package/lib/commonjs/authoring/chrome/icons/arrow-rotate-left.png +0 -0
  68. package/lib/commonjs/authoring/chrome/icons/arrow-rotate-left@2x.png +0 -0
  69. package/lib/commonjs/authoring/chrome/icons/arrow-rotate-left@3x.png +0 -0
  70. package/lib/commonjs/authoring/chrome/icons/userflow-logomark.png +0 -0
  71. package/lib/commonjs/authoring/chrome/icons/userflow-logomark@2x.png +0 -0
  72. package/lib/commonjs/authoring/chrome/icons/userflow-logomark@3x.png +0 -0
  73. package/lib/commonjs/authoring/chrome/icons/xmark.png +0 -0
  74. package/lib/commonjs/authoring/chrome/icons/xmark@2x.png +0 -0
  75. package/lib/commonjs/authoring/chrome/icons/xmark@3x.png +0 -0
  76. package/lib/commonjs/authoring/chrome/tokens.js +150 -0
  77. package/lib/commonjs/authoring/chrome/tokens.js.map +1 -0
  78. package/lib/commonjs/authoring/doubleTap.js +23 -0
  79. package/lib/commonjs/authoring/doubleTap.js.map +1 -0
  80. package/lib/commonjs/authoring/elementPickerController.js +102 -0
  81. package/lib/commonjs/authoring/elementPickerController.js.map +1 -0
  82. package/lib/commonjs/authoring/fingerprintFromInstance.js +195 -0
  83. package/lib/commonjs/authoring/fingerprintFromInstance.js.map +1 -0
  84. package/lib/commonjs/authoring/hitTest.js +106 -0
  85. package/lib/commonjs/authoring/hitTest.js.map +1 -0
  86. package/lib/commonjs/content/RichContentRenderer.js +12 -2
  87. package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
  88. package/lib/commonjs/content/StepButton.js +19 -4
  89. package/lib/commonjs/content/StepButton.js.map +1 -1
  90. package/lib/commonjs/content/resolveStepButtonChrome.js +8 -6
  91. package/lib/commonjs/content/resolveStepButtonChrome.js.map +1 -1
  92. package/lib/commonjs/content/themeColor.js +11 -0
  93. package/lib/commonjs/content/themeColor.js.map +1 -1
  94. package/lib/commonjs/deviceContext.js +158 -0
  95. package/lib/commonjs/deviceContext.js.map +1 -0
  96. package/lib/commonjs/expo-router/useUserflowExpoRouter.js +40 -4
  97. package/lib/commonjs/expo-router/useUserflowExpoRouter.js.map +1 -1
  98. package/lib/commonjs/hostAppVersion.js +242 -0
  99. package/lib/commonjs/hostAppVersion.js.map +1 -0
  100. package/lib/commonjs/index.js +118 -5
  101. package/lib/commonjs/index.js.map +1 -1
  102. package/lib/commonjs/lifecycle.js +2 -0
  103. package/lib/commonjs/lifecycle.js.map +1 -1
  104. package/lib/commonjs/navigation/WithUserflowReactNavigation.js +17 -8
  105. package/lib/commonjs/navigation/WithUserflowReactNavigation.js.map +1 -1
  106. package/lib/commonjs/navigation/isOverlayPresentation.js +64 -0
  107. package/lib/commonjs/navigation/isOverlayPresentation.js.map +1 -0
  108. package/lib/commonjs/pairing/PairingController.js +29 -2
  109. package/lib/commonjs/pairing/PairingController.js.map +1 -1
  110. package/lib/commonjs/pairing/PreviewModeBanner.js +211 -84
  111. package/lib/commonjs/pairing/PreviewModeBanner.js.map +1 -1
  112. package/lib/commonjs/pairing/diagnostics.js +11 -2
  113. package/lib/commonjs/pairing/diagnostics.js.map +1 -1
  114. package/lib/commonjs/pairing/elementPickerRelay.js +91 -0
  115. package/lib/commonjs/pairing/elementPickerRelay.js.map +1 -0
  116. package/lib/commonjs/pairing/resolvePreviewChrome.js +52 -0
  117. package/lib/commonjs/pairing/resolvePreviewChrome.js.map +1 -0
  118. package/lib/commonjs/pairing/tokenStorage.js +25 -2
  119. package/lib/commonjs/pairing/tokenStorage.js.map +1 -1
  120. package/lib/commonjs/pairing/usePairingState.js +3 -1
  121. package/lib/commonjs/pairing/usePairingState.js.map +1 -1
  122. package/lib/commonjs/runtime/FlowRenderer.js +45 -21
  123. package/lib/commonjs/runtime/FlowRenderer.js.map +1 -1
  124. package/lib/commonjs/runtime/FlowSurfaceFade.js +47 -24
  125. package/lib/commonjs/runtime/FlowSurfaceFade.js.map +1 -1
  126. package/lib/commonjs/runtime/TargetPressBridge.js +13 -44
  127. package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
  128. package/lib/commonjs/runtime/UserflowProvider.js +74 -20
  129. package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
  130. package/lib/commonjs/runtime/changedTouchPoints.js +48 -0
  131. package/lib/commonjs/runtime/changedTouchPoints.js.map +1 -0
  132. package/lib/commonjs/runtime/flowEngine.js +3 -1
  133. package/lib/commonjs/runtime/flowEngine.js.map +1 -1
  134. package/lib/commonjs/runtime/flowSessionViewState.js +32 -7
  135. package/lib/commonjs/runtime/flowSessionViewState.js.map +1 -1
  136. package/lib/commonjs/runtime/useFlowSessionState.js +2 -1
  137. package/lib/commonjs/runtime/useFlowSessionState.js.map +1 -1
  138. package/lib/commonjs/screenTracker.js +46 -4
  139. package/lib/commonjs/screenTracker.js.map +1 -1
  140. package/lib/commonjs/surfaces/CardFade.js +31 -0
  141. package/lib/commonjs/surfaces/CardFade.js.map +1 -0
  142. package/lib/commonjs/surfaces/CloseButton.js +11 -6
  143. package/lib/commonjs/surfaces/CloseButton.js.map +1 -1
  144. package/lib/commonjs/surfaces/ModalSurface.js +50 -34
  145. package/lib/commonjs/surfaces/ModalSurface.js.map +1 -1
  146. package/lib/commonjs/surfaces/TooltipSurface.js +366 -87
  147. package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
  148. package/lib/commonjs/surfaces/cardTransition.js +70 -0
  149. package/lib/commonjs/surfaces/cardTransition.js.map +1 -0
  150. package/lib/commonjs/surfaces/resolveHighlightChrome.js +109 -0
  151. package/lib/commonjs/surfaces/resolveHighlightChrome.js.map +1 -0
  152. package/lib/commonjs/surfaces/resolveModalLayout.js +7 -3
  153. package/lib/commonjs/surfaces/resolveModalLayout.js.map +1 -1
  154. package/lib/commonjs/surfaces/resolveTooltipLayout.js +0 -4
  155. package/lib/commonjs/surfaces/resolveTooltipLayout.js.map +1 -1
  156. package/lib/commonjs/surfaces/surfaceInteractionConfig.js +33 -0
  157. package/lib/commonjs/surfaces/surfaceInteractionConfig.js.map +1 -0
  158. package/lib/commonjs/surfaces/surfaceLayoutInsets.js +128 -0
  159. package/lib/commonjs/surfaces/surfaceLayoutInsets.js.map +1 -0
  160. package/lib/commonjs/surfaces/themeChrome.js +4 -1
  161. package/lib/commonjs/surfaces/themeChrome.js.map +1 -1
  162. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js +142 -21
  163. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js.map +1 -1
  164. package/lib/commonjs/surfaces/tooltip/TooltipCutout.js +100 -47
  165. package/lib/commonjs/surfaces/tooltip/TooltipCutout.js.map +1 -1
  166. package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js +124 -0
  167. package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js.map +1 -0
  168. package/lib/commonjs/surfaces/tooltip/computeTooltipPosition.js +67 -13
  169. package/lib/commonjs/surfaces/tooltip/computeTooltipPosition.js.map +1 -1
  170. package/lib/commonjs/surfaces/tooltip/inferTooltipPlacement.js +88 -19
  171. package/lib/commonjs/surfaces/tooltip/inferTooltipPlacement.js.map +1 -1
  172. package/lib/commonjs/surfaces/tooltip/placementDiagnostics.js +52 -0
  173. package/lib/commonjs/surfaces/tooltip/placementDiagnostics.js.map +1 -0
  174. package/lib/commonjs/surfaces/tooltip/rect.js +12 -0
  175. package/lib/commonjs/surfaces/tooltip/rect.js.map +1 -1
  176. package/lib/commonjs/surfaces/tooltip/resolveSideCardWidth.js +103 -0
  177. package/lib/commonjs/surfaces/tooltip/resolveSideCardWidth.js.map +1 -0
  178. package/lib/commonjs/version.js +1 -1
  179. package/lib/module/anchors/AutoAnchorRegistry.js +126 -3
  180. package/lib/module/anchors/AutoAnchorRegistry.js.map +1 -1
  181. package/lib/module/anchors/anchorChangeTicker.js +10 -0
  182. package/lib/module/anchors/anchorChangeTicker.js.map +1 -1
  183. package/lib/module/anchors/autoAnchor.js +1 -1
  184. package/lib/module/anchors/elementConditionEvaluator.js +25 -12
  185. package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
  186. package/lib/module/anchors/fiber/FiberScanRoot.js +2 -43
  187. package/lib/module/anchors/fiber/FiberScanRoot.js.map +1 -1
  188. package/lib/module/anchors/fiber/FiberScanRootStore.js +46 -0
  189. package/lib/module/anchors/fiber/FiberScanRootStore.js.map +1 -0
  190. package/lib/module/anchors/fiber/fiberInternals.js +139 -3
  191. package/lib/module/anchors/fiber/fiberInternals.js.map +1 -1
  192. package/lib/module/anchors/fiber/indexHostFibers.js +122 -0
  193. package/lib/module/anchors/fiber/indexHostFibers.js.map +1 -0
  194. package/lib/module/anchors/fiber/readHostContent.js +127 -0
  195. package/lib/module/anchors/fiber/readHostContent.js.map +1 -0
  196. package/lib/module/anchors/fiberAnchorCache.js +40 -0
  197. package/lib/module/anchors/fiberAnchorCache.js.map +1 -0
  198. package/lib/module/anchors/hintsCodec.js +1 -1
  199. package/lib/module/anchors/resolveAnchorHost.js +15 -21
  200. package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
  201. package/lib/module/anchors/resolveAutoAnchorHost.js +167 -0
  202. package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -0
  203. package/lib/module/anchors/semanticMatcher.js +280 -0
  204. package/lib/module/anchors/semanticMatcher.js.map +1 -0
  205. package/lib/module/authoring/ElementPickerOverlay.js +485 -0
  206. package/lib/module/authoring/ElementPickerOverlay.js.map +1 -0
  207. package/lib/module/authoring/capturePickerScreenshot.js +68 -0
  208. package/lib/module/authoring/capturePickerScreenshot.js.map +1 -0
  209. package/lib/module/authoring/chrome/ChromeBarTransition.js +88 -0
  210. package/lib/module/authoring/chrome/ChromeBarTransition.js.map +1 -0
  211. package/lib/module/authoring/chrome/ChromeBottomSheet.js +59 -0
  212. package/lib/module/authoring/chrome/ChromeBottomSheet.js.map +1 -0
  213. package/lib/module/authoring/chrome/ChromeButton.js +89 -0
  214. package/lib/module/authoring/chrome/ChromeButton.js.map +1 -0
  215. package/lib/module/authoring/chrome/ChromeDialog.js +126 -0
  216. package/lib/module/authoring/chrome/ChromeDialog.js.map +1 -0
  217. package/lib/module/authoring/chrome/ChromeIcon.js +33 -0
  218. package/lib/module/authoring/chrome/ChromeIcon.js.map +1 -0
  219. package/lib/module/authoring/chrome/ChromeTooltip.js +82 -0
  220. package/lib/module/authoring/chrome/ChromeTooltip.js.map +1 -0
  221. package/lib/module/authoring/chrome/ChromeTopBar.js +104 -0
  222. package/lib/module/authoring/chrome/ChromeTopBar.js.map +1 -0
  223. package/lib/module/authoring/chrome/DoubleTapBridge.js +52 -0
  224. package/lib/module/authoring/chrome/DoubleTapBridge.js.map +1 -0
  225. package/lib/module/authoring/chrome/doubleTapMonitor.js +75 -0
  226. package/lib/module/authoring/chrome/doubleTapMonitor.js.map +1 -0
  227. package/lib/module/authoring/chrome/icons/arrow-left-from-bracket.png +0 -0
  228. package/lib/module/authoring/chrome/icons/arrow-left-from-bracket@2x.png +0 -0
  229. package/lib/module/authoring/chrome/icons/arrow-left-from-bracket@3x.png +0 -0
  230. package/lib/module/authoring/chrome/icons/arrow-rotate-left.png +0 -0
  231. package/lib/module/authoring/chrome/icons/arrow-rotate-left@2x.png +0 -0
  232. package/lib/module/authoring/chrome/icons/arrow-rotate-left@3x.png +0 -0
  233. package/lib/module/authoring/chrome/icons/userflow-logomark.png +0 -0
  234. package/lib/module/authoring/chrome/icons/userflow-logomark@2x.png +0 -0
  235. package/lib/module/authoring/chrome/icons/userflow-logomark@3x.png +0 -0
  236. package/lib/module/authoring/chrome/icons/xmark.png +0 -0
  237. package/lib/module/authoring/chrome/icons/xmark@2x.png +0 -0
  238. package/lib/module/authoring/chrome/icons/xmark@3x.png +0 -0
  239. package/lib/module/authoring/chrome/tokens.js +146 -0
  240. package/lib/module/authoring/chrome/tokens.js.map +1 -0
  241. package/lib/module/authoring/doubleTap.js +18 -0
  242. package/lib/module/authoring/doubleTap.js.map +1 -0
  243. package/lib/module/authoring/elementPickerController.js +97 -0
  244. package/lib/module/authoring/elementPickerController.js.map +1 -0
  245. package/lib/module/authoring/fingerprintFromInstance.js +187 -0
  246. package/lib/module/authoring/fingerprintFromInstance.js.map +1 -0
  247. package/lib/module/authoring/hitTest.js +100 -0
  248. package/lib/module/authoring/hitTest.js.map +1 -0
  249. package/lib/module/content/RichContentRenderer.js +12 -2
  250. package/lib/module/content/RichContentRenderer.js.map +1 -1
  251. package/lib/module/content/StepButton.js +19 -4
  252. package/lib/module/content/StepButton.js.map +1 -1
  253. package/lib/module/content/resolveStepButtonChrome.js +8 -6
  254. package/lib/module/content/resolveStepButtonChrome.js.map +1 -1
  255. package/lib/module/content/themeColor.js +10 -0
  256. package/lib/module/content/themeColor.js.map +1 -1
  257. package/lib/module/deviceContext.js +142 -0
  258. package/lib/module/deviceContext.js.map +1 -0
  259. package/lib/module/expo-router/useUserflowExpoRouter.js +42 -6
  260. package/lib/module/expo-router/useUserflowExpoRouter.js.map +1 -1
  261. package/lib/module/hostAppVersion.js +225 -0
  262. package/lib/module/hostAppVersion.js.map +1 -0
  263. package/lib/module/index.js +119 -6
  264. package/lib/module/index.js.map +1 -1
  265. package/lib/module/lifecycle.js +2 -0
  266. package/lib/module/lifecycle.js.map +1 -1
  267. package/lib/module/navigation/WithUserflowReactNavigation.js +18 -9
  268. package/lib/module/navigation/WithUserflowReactNavigation.js.map +1 -1
  269. package/lib/module/navigation/isOverlayPresentation.js +58 -0
  270. package/lib/module/navigation/isOverlayPresentation.js.map +1 -0
  271. package/lib/module/pairing/PairingController.js +30 -3
  272. package/lib/module/pairing/PairingController.js.map +1 -1
  273. package/lib/module/pairing/PreviewModeBanner.js +212 -85
  274. package/lib/module/pairing/PreviewModeBanner.js.map +1 -1
  275. package/lib/module/pairing/diagnostics.js +10 -2
  276. package/lib/module/pairing/diagnostics.js.map +1 -1
  277. package/lib/module/pairing/elementPickerRelay.js +87 -0
  278. package/lib/module/pairing/elementPickerRelay.js.map +1 -0
  279. package/lib/module/pairing/resolvePreviewChrome.js +48 -0
  280. package/lib/module/pairing/resolvePreviewChrome.js.map +1 -0
  281. package/lib/module/pairing/tokenStorage.js +24 -2
  282. package/lib/module/pairing/tokenStorage.js.map +1 -1
  283. package/lib/module/pairing/usePairingState.js +3 -1
  284. package/lib/module/pairing/usePairingState.js.map +1 -1
  285. package/lib/module/runtime/FlowRenderer.js +45 -21
  286. package/lib/module/runtime/FlowRenderer.js.map +1 -1
  287. package/lib/module/runtime/FlowSurfaceFade.js +49 -26
  288. package/lib/module/runtime/FlowSurfaceFade.js.map +1 -1
  289. package/lib/module/runtime/TargetPressBridge.js +12 -43
  290. package/lib/module/runtime/TargetPressBridge.js.map +1 -1
  291. package/lib/module/runtime/UserflowProvider.js +74 -20
  292. package/lib/module/runtime/UserflowProvider.js.map +1 -1
  293. package/lib/module/runtime/changedTouchPoints.js +43 -0
  294. package/lib/module/runtime/changedTouchPoints.js.map +1 -0
  295. package/lib/module/runtime/flowEngine.js +3 -1
  296. package/lib/module/runtime/flowEngine.js.map +1 -1
  297. package/lib/module/runtime/flowSessionViewState.js +32 -7
  298. package/lib/module/runtime/flowSessionViewState.js.map +1 -1
  299. package/lib/module/runtime/useFlowSessionState.js +2 -1
  300. package/lib/module/runtime/useFlowSessionState.js.map +1 -1
  301. package/lib/module/screenTracker.js +42 -4
  302. package/lib/module/screenTracker.js.map +1 -1
  303. package/lib/module/surfaces/CardFade.js +26 -0
  304. package/lib/module/surfaces/CardFade.js.map +1 -0
  305. package/lib/module/surfaces/CloseButton.js +10 -6
  306. package/lib/module/surfaces/CloseButton.js.map +1 -1
  307. package/lib/module/surfaces/ModalSurface.js +52 -36
  308. package/lib/module/surfaces/ModalSurface.js.map +1 -1
  309. package/lib/module/surfaces/TooltipSurface.js +368 -90
  310. package/lib/module/surfaces/TooltipSurface.js.map +1 -1
  311. package/lib/module/surfaces/cardTransition.js +64 -0
  312. package/lib/module/surfaces/cardTransition.js.map +1 -0
  313. package/lib/module/surfaces/resolveHighlightChrome.js +102 -0
  314. package/lib/module/surfaces/resolveHighlightChrome.js.map +1 -0
  315. package/lib/module/surfaces/resolveModalLayout.js +7 -3
  316. package/lib/module/surfaces/resolveModalLayout.js.map +1 -1
  317. package/lib/module/surfaces/resolveTooltipLayout.js +1 -4
  318. package/lib/module/surfaces/resolveTooltipLayout.js.map +1 -1
  319. package/lib/module/surfaces/surfaceInteractionConfig.js +27 -0
  320. package/lib/module/surfaces/surfaceInteractionConfig.js.map +1 -0
  321. package/lib/module/surfaces/surfaceLayoutInsets.js +119 -0
  322. package/lib/module/surfaces/surfaceLayoutInsets.js.map +1 -0
  323. package/lib/module/surfaces/themeChrome.js +3 -1
  324. package/lib/module/surfaces/themeChrome.js.map +1 -1
  325. package/lib/module/surfaces/tooltip/TooltipBubble.js +143 -22
  326. package/lib/module/surfaces/tooltip/TooltipBubble.js.map +1 -1
  327. package/lib/module/surfaces/tooltip/TooltipCutout.js +100 -47
  328. package/lib/module/surfaces/tooltip/TooltipCutout.js.map +1 -1
  329. package/lib/module/surfaces/tooltip/TooltipHighlight.js +118 -0
  330. package/lib/module/surfaces/tooltip/TooltipHighlight.js.map +1 -0
  331. package/lib/module/surfaces/tooltip/computeTooltipPosition.js +67 -13
  332. package/lib/module/surfaces/tooltip/computeTooltipPosition.js.map +1 -1
  333. package/lib/module/surfaces/tooltip/inferTooltipPlacement.js +87 -19
  334. package/lib/module/surfaces/tooltip/inferTooltipPlacement.js.map +1 -1
  335. package/lib/module/surfaces/tooltip/placementDiagnostics.js +43 -0
  336. package/lib/module/surfaces/tooltip/placementDiagnostics.js.map +1 -0
  337. package/lib/module/surfaces/tooltip/rect.js +11 -0
  338. package/lib/module/surfaces/tooltip/rect.js.map +1 -1
  339. package/lib/module/surfaces/tooltip/resolveSideCardWidth.js +96 -0
  340. package/lib/module/surfaces/tooltip/resolveSideCardWidth.js.map +1 -0
  341. package/lib/module/version.js +1 -1
  342. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts +27 -1
  343. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/src/anchors/anchorChangeTicker.d.ts +2 -0
  345. package/lib/typescript/commonjs/src/anchors/anchorChangeTicker.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/src/anchors/autoAnchor.d.ts +1 -1
  347. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts +14 -10
  348. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRoot.d.ts +1 -20
  350. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRoot.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts +21 -0
  352. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -0
  353. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts +42 -1
  354. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts +42 -0
  356. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/src/anchors/fiber/readHostContent.d.ts +17 -0
  358. package/lib/typescript/commonjs/src/anchors/fiber/readHostContent.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts +20 -0
  360. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/src/anchors/hintsCodec.d.ts +1 -1
  362. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +5 -5
  363. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +38 -0
  365. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -0
  366. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts +48 -0
  367. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts.map +1 -0
  368. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts +7 -0
  369. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts.map +1 -0
  370. package/lib/typescript/commonjs/src/authoring/capturePickerScreenshot.d.ts +11 -0
  371. package/lib/typescript/commonjs/src/authoring/capturePickerScreenshot.d.ts.map +1 -0
  372. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBarTransition.d.ts +32 -0
  373. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBarTransition.d.ts.map +1 -0
  374. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBottomSheet.d.ts +13 -0
  375. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBottomSheet.d.ts.map +1 -0
  376. package/lib/typescript/commonjs/src/authoring/chrome/ChromeButton.d.ts +20 -0
  377. package/lib/typescript/commonjs/src/authoring/chrome/ChromeButton.d.ts.map +1 -0
  378. package/lib/typescript/commonjs/src/authoring/chrome/ChromeDialog.d.ts +14 -0
  379. package/lib/typescript/commonjs/src/authoring/chrome/ChromeDialog.d.ts.map +1 -0
  380. package/lib/typescript/commonjs/src/authoring/chrome/ChromeIcon.d.ts +13 -0
  381. package/lib/typescript/commonjs/src/authoring/chrome/ChromeIcon.d.ts.map +1 -0
  382. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTooltip.d.ts +17 -0
  383. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTooltip.d.ts.map +1 -0
  384. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTopBar.d.ts +25 -0
  385. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTopBar.d.ts.map +1 -0
  386. package/lib/typescript/commonjs/src/authoring/chrome/DoubleTapBridge.d.ts +12 -0
  387. package/lib/typescript/commonjs/src/authoring/chrome/DoubleTapBridge.d.ts.map +1 -0
  388. package/lib/typescript/commonjs/src/authoring/chrome/doubleTapMonitor.d.ts +26 -0
  389. package/lib/typescript/commonjs/src/authoring/chrome/doubleTapMonitor.d.ts.map +1 -0
  390. package/lib/typescript/commonjs/src/authoring/chrome/tokens.d.ts +141 -0
  391. package/lib/typescript/commonjs/src/authoring/chrome/tokens.d.ts.map +1 -0
  392. package/lib/typescript/commonjs/src/authoring/doubleTap.d.ts +14 -0
  393. package/lib/typescript/commonjs/src/authoring/doubleTap.d.ts.map +1 -0
  394. package/lib/typescript/commonjs/src/authoring/elementPickerController.d.ts +59 -0
  395. package/lib/typescript/commonjs/src/authoring/elementPickerController.d.ts.map +1 -0
  396. package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts +26 -0
  397. package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts.map +1 -0
  398. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts +31 -0
  399. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts.map +1 -0
  400. package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts +6 -1
  401. package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
  402. package/lib/typescript/commonjs/src/content/StepButton.d.ts.map +1 -1
  403. package/lib/typescript/commonjs/src/content/resolveStepButtonChrome.d.ts.map +1 -1
  404. package/lib/typescript/commonjs/src/content/themeColor.d.ts +5 -0
  405. package/lib/typescript/commonjs/src/content/themeColor.d.ts.map +1 -1
  406. package/lib/typescript/commonjs/src/deviceContext.d.ts +66 -0
  407. package/lib/typescript/commonjs/src/deviceContext.d.ts.map +1 -0
  408. package/lib/typescript/commonjs/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  409. package/lib/typescript/commonjs/src/hostAppVersion.d.ts +69 -0
  410. package/lib/typescript/commonjs/src/hostAppVersion.d.ts.map +1 -0
  411. package/lib/typescript/commonjs/src/index.d.ts +53 -2
  412. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  413. package/lib/typescript/commonjs/src/lifecycle.d.ts +6 -0
  414. package/lib/typescript/commonjs/src/lifecycle.d.ts.map +1 -1
  415. package/lib/typescript/commonjs/src/navigation/WithUserflowReactNavigation.d.ts.map +1 -1
  416. package/lib/typescript/commonjs/src/navigation/isOverlayPresentation.d.ts +14 -0
  417. package/lib/typescript/commonjs/src/navigation/isOverlayPresentation.d.ts.map +1 -0
  418. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +7 -0
  419. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
  420. package/lib/typescript/commonjs/src/pairing/PreviewModeBanner.d.ts +6 -1
  421. package/lib/typescript/commonjs/src/pairing/PreviewModeBanner.d.ts.map +1 -1
  422. package/lib/typescript/commonjs/src/pairing/diagnostics.d.ts +5 -0
  423. package/lib/typescript/commonjs/src/pairing/diagnostics.d.ts.map +1 -1
  424. package/lib/typescript/commonjs/src/pairing/elementPickerRelay.d.ts +11 -0
  425. package/lib/typescript/commonjs/src/pairing/elementPickerRelay.d.ts.map +1 -0
  426. package/lib/typescript/commonjs/src/pairing/resolvePreviewChrome.d.ts +16 -0
  427. package/lib/typescript/commonjs/src/pairing/resolvePreviewChrome.d.ts.map +1 -0
  428. package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts +2 -0
  429. package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts.map +1 -1
  430. package/lib/typescript/commonjs/src/pairing/usePairingState.d.ts.map +1 -1
  431. package/lib/typescript/commonjs/src/runtime/FlowRenderer.d.ts +6 -3
  432. package/lib/typescript/commonjs/src/runtime/FlowRenderer.d.ts.map +1 -1
  433. package/lib/typescript/commonjs/src/runtime/FlowSurfaceFade.d.ts +20 -7
  434. package/lib/typescript/commonjs/src/runtime/FlowSurfaceFade.d.ts.map +1 -1
  435. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +5 -1
  436. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
  437. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts +6 -4
  438. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
  439. package/lib/typescript/commonjs/src/runtime/changedTouchPoints.d.ts +10 -0
  440. package/lib/typescript/commonjs/src/runtime/changedTouchPoints.d.ts.map +1 -0
  441. package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts.map +1 -1
  442. package/lib/typescript/commonjs/src/runtime/flowSessionViewState.d.ts +12 -3
  443. package/lib/typescript/commonjs/src/runtime/flowSessionViewState.d.ts.map +1 -1
  444. package/lib/typescript/commonjs/src/runtime/useFlowSessionState.d.ts +1 -0
  445. package/lib/typescript/commonjs/src/runtime/useFlowSessionState.d.ts.map +1 -1
  446. package/lib/typescript/commonjs/src/screenTracker.d.ts +21 -3
  447. package/lib/typescript/commonjs/src/screenTracker.d.ts.map +1 -1
  448. package/lib/typescript/commonjs/src/surfaces/CardFade.d.ts +12 -0
  449. package/lib/typescript/commonjs/src/surfaces/CardFade.d.ts.map +1 -0
  450. package/lib/typescript/commonjs/src/surfaces/CloseButton.d.ts +8 -2
  451. package/lib/typescript/commonjs/src/surfaces/CloseButton.d.ts.map +1 -1
  452. package/lib/typescript/commonjs/src/surfaces/MadeWithUserflow.d.ts +1 -1
  453. package/lib/typescript/commonjs/src/surfaces/ModalSurface.d.ts +1 -1
  454. package/lib/typescript/commonjs/src/surfaces/ModalSurface.d.ts.map +1 -1
  455. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts +12 -1
  456. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/src/surfaces/cardTransition.d.ts +31 -0
  458. package/lib/typescript/commonjs/src/surfaces/cardTransition.d.ts.map +1 -0
  459. package/lib/typescript/commonjs/src/surfaces/resolveHighlightChrome.d.ts +44 -0
  460. package/lib/typescript/commonjs/src/surfaces/resolveHighlightChrome.d.ts.map +1 -0
  461. package/lib/typescript/commonjs/src/surfaces/resolveModalLayout.d.ts +1 -1
  462. package/lib/typescript/commonjs/src/surfaces/resolveModalLayout.d.ts.map +1 -1
  463. package/lib/typescript/commonjs/src/surfaces/resolveTooltipLayout.d.ts +0 -7
  464. package/lib/typescript/commonjs/src/surfaces/resolveTooltipLayout.d.ts.map +1 -1
  465. package/lib/typescript/commonjs/src/surfaces/surfaceInteractionConfig.d.ts +15 -0
  466. package/lib/typescript/commonjs/src/surfaces/surfaceInteractionConfig.d.ts.map +1 -0
  467. package/lib/typescript/commonjs/src/surfaces/surfaceLayoutInsets.d.ts +38 -0
  468. package/lib/typescript/commonjs/src/surfaces/surfaceLayoutInsets.d.ts.map +1 -0
  469. package/lib/typescript/commonjs/src/surfaces/themeChrome.d.ts +3 -1
  470. package/lib/typescript/commonjs/src/surfaces/themeChrome.d.ts.map +1 -1
  471. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts +21 -6
  472. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  473. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipCutout.d.ts +18 -10
  474. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipCutout.d.ts.map +1 -1
  475. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipHighlight.d.ts +25 -0
  476. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipHighlight.d.ts.map +1 -0
  477. package/lib/typescript/commonjs/src/surfaces/tooltip/computeTooltipPosition.d.ts +23 -0
  478. package/lib/typescript/commonjs/src/surfaces/tooltip/computeTooltipPosition.d.ts.map +1 -1
  479. package/lib/typescript/commonjs/src/surfaces/tooltip/inferTooltipPlacement.d.ts +47 -1
  480. package/lib/typescript/commonjs/src/surfaces/tooltip/inferTooltipPlacement.d.ts.map +1 -1
  481. package/lib/typescript/commonjs/src/surfaces/tooltip/placementDiagnostics.d.ts +39 -0
  482. package/lib/typescript/commonjs/src/surfaces/tooltip/placementDiagnostics.d.ts.map +1 -0
  483. package/lib/typescript/commonjs/src/surfaces/tooltip/rect.d.ts +2 -0
  484. package/lib/typescript/commonjs/src/surfaces/tooltip/rect.d.ts.map +1 -1
  485. package/lib/typescript/commonjs/src/surfaces/tooltip/resolveSideCardWidth.d.ts +76 -0
  486. package/lib/typescript/commonjs/src/surfaces/tooltip/resolveSideCardWidth.d.ts.map +1 -0
  487. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  488. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts +27 -1
  489. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  490. package/lib/typescript/module/src/anchors/anchorChangeTicker.d.ts +2 -0
  491. package/lib/typescript/module/src/anchors/anchorChangeTicker.d.ts.map +1 -1
  492. package/lib/typescript/module/src/anchors/autoAnchor.d.ts +1 -1
  493. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts +14 -10
  494. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  495. package/lib/typescript/module/src/anchors/fiber/FiberScanRoot.d.ts +1 -20
  496. package/lib/typescript/module/src/anchors/fiber/FiberScanRoot.d.ts.map +1 -1
  497. package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts +21 -0
  498. package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -0
  499. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts +42 -1
  500. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  501. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts +42 -0
  502. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts.map +1 -0
  503. package/lib/typescript/module/src/anchors/fiber/readHostContent.d.ts +17 -0
  504. package/lib/typescript/module/src/anchors/fiber/readHostContent.d.ts.map +1 -0
  505. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts +20 -0
  506. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts.map +1 -0
  507. package/lib/typescript/module/src/anchors/hintsCodec.d.ts +1 -1
  508. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +5 -5
  509. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  510. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +38 -0
  511. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -0
  512. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts +48 -0
  513. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts.map +1 -0
  514. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts +7 -0
  515. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts.map +1 -0
  516. package/lib/typescript/module/src/authoring/capturePickerScreenshot.d.ts +11 -0
  517. package/lib/typescript/module/src/authoring/capturePickerScreenshot.d.ts.map +1 -0
  518. package/lib/typescript/module/src/authoring/chrome/ChromeBarTransition.d.ts +32 -0
  519. package/lib/typescript/module/src/authoring/chrome/ChromeBarTransition.d.ts.map +1 -0
  520. package/lib/typescript/module/src/authoring/chrome/ChromeBottomSheet.d.ts +13 -0
  521. package/lib/typescript/module/src/authoring/chrome/ChromeBottomSheet.d.ts.map +1 -0
  522. package/lib/typescript/module/src/authoring/chrome/ChromeButton.d.ts +20 -0
  523. package/lib/typescript/module/src/authoring/chrome/ChromeButton.d.ts.map +1 -0
  524. package/lib/typescript/module/src/authoring/chrome/ChromeDialog.d.ts +14 -0
  525. package/lib/typescript/module/src/authoring/chrome/ChromeDialog.d.ts.map +1 -0
  526. package/lib/typescript/module/src/authoring/chrome/ChromeIcon.d.ts +13 -0
  527. package/lib/typescript/module/src/authoring/chrome/ChromeIcon.d.ts.map +1 -0
  528. package/lib/typescript/module/src/authoring/chrome/ChromeTooltip.d.ts +17 -0
  529. package/lib/typescript/module/src/authoring/chrome/ChromeTooltip.d.ts.map +1 -0
  530. package/lib/typescript/module/src/authoring/chrome/ChromeTopBar.d.ts +25 -0
  531. package/lib/typescript/module/src/authoring/chrome/ChromeTopBar.d.ts.map +1 -0
  532. package/lib/typescript/module/src/authoring/chrome/DoubleTapBridge.d.ts +12 -0
  533. package/lib/typescript/module/src/authoring/chrome/DoubleTapBridge.d.ts.map +1 -0
  534. package/lib/typescript/module/src/authoring/chrome/doubleTapMonitor.d.ts +26 -0
  535. package/lib/typescript/module/src/authoring/chrome/doubleTapMonitor.d.ts.map +1 -0
  536. package/lib/typescript/module/src/authoring/chrome/tokens.d.ts +141 -0
  537. package/lib/typescript/module/src/authoring/chrome/tokens.d.ts.map +1 -0
  538. package/lib/typescript/module/src/authoring/doubleTap.d.ts +14 -0
  539. package/lib/typescript/module/src/authoring/doubleTap.d.ts.map +1 -0
  540. package/lib/typescript/module/src/authoring/elementPickerController.d.ts +59 -0
  541. package/lib/typescript/module/src/authoring/elementPickerController.d.ts.map +1 -0
  542. package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts +26 -0
  543. package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts.map +1 -0
  544. package/lib/typescript/module/src/authoring/hitTest.d.ts +31 -0
  545. package/lib/typescript/module/src/authoring/hitTest.d.ts.map +1 -0
  546. package/lib/typescript/module/src/content/RichContentRenderer.d.ts +6 -1
  547. package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
  548. package/lib/typescript/module/src/content/StepButton.d.ts.map +1 -1
  549. package/lib/typescript/module/src/content/resolveStepButtonChrome.d.ts.map +1 -1
  550. package/lib/typescript/module/src/content/themeColor.d.ts +5 -0
  551. package/lib/typescript/module/src/content/themeColor.d.ts.map +1 -1
  552. package/lib/typescript/module/src/deviceContext.d.ts +66 -0
  553. package/lib/typescript/module/src/deviceContext.d.ts.map +1 -0
  554. package/lib/typescript/module/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  555. package/lib/typescript/module/src/hostAppVersion.d.ts +69 -0
  556. package/lib/typescript/module/src/hostAppVersion.d.ts.map +1 -0
  557. package/lib/typescript/module/src/index.d.ts +53 -2
  558. package/lib/typescript/module/src/index.d.ts.map +1 -1
  559. package/lib/typescript/module/src/lifecycle.d.ts +6 -0
  560. package/lib/typescript/module/src/lifecycle.d.ts.map +1 -1
  561. package/lib/typescript/module/src/navigation/WithUserflowReactNavigation.d.ts.map +1 -1
  562. package/lib/typescript/module/src/navigation/isOverlayPresentation.d.ts +14 -0
  563. package/lib/typescript/module/src/navigation/isOverlayPresentation.d.ts.map +1 -0
  564. package/lib/typescript/module/src/pairing/PairingController.d.ts +7 -0
  565. package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
  566. package/lib/typescript/module/src/pairing/PreviewModeBanner.d.ts +6 -1
  567. package/lib/typescript/module/src/pairing/PreviewModeBanner.d.ts.map +1 -1
  568. package/lib/typescript/module/src/pairing/diagnostics.d.ts +5 -0
  569. package/lib/typescript/module/src/pairing/diagnostics.d.ts.map +1 -1
  570. package/lib/typescript/module/src/pairing/elementPickerRelay.d.ts +11 -0
  571. package/lib/typescript/module/src/pairing/elementPickerRelay.d.ts.map +1 -0
  572. package/lib/typescript/module/src/pairing/resolvePreviewChrome.d.ts +16 -0
  573. package/lib/typescript/module/src/pairing/resolvePreviewChrome.d.ts.map +1 -0
  574. package/lib/typescript/module/src/pairing/tokenStorage.d.ts +2 -0
  575. package/lib/typescript/module/src/pairing/tokenStorage.d.ts.map +1 -1
  576. package/lib/typescript/module/src/pairing/usePairingState.d.ts.map +1 -1
  577. package/lib/typescript/module/src/runtime/FlowRenderer.d.ts +6 -3
  578. package/lib/typescript/module/src/runtime/FlowRenderer.d.ts.map +1 -1
  579. package/lib/typescript/module/src/runtime/FlowSurfaceFade.d.ts +20 -7
  580. package/lib/typescript/module/src/runtime/FlowSurfaceFade.d.ts.map +1 -1
  581. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +5 -1
  582. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
  583. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts +6 -4
  584. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
  585. package/lib/typescript/module/src/runtime/changedTouchPoints.d.ts +10 -0
  586. package/lib/typescript/module/src/runtime/changedTouchPoints.d.ts.map +1 -0
  587. package/lib/typescript/module/src/runtime/flowEngine.d.ts.map +1 -1
  588. package/lib/typescript/module/src/runtime/flowSessionViewState.d.ts +12 -3
  589. package/lib/typescript/module/src/runtime/flowSessionViewState.d.ts.map +1 -1
  590. package/lib/typescript/module/src/runtime/useFlowSessionState.d.ts +1 -0
  591. package/lib/typescript/module/src/runtime/useFlowSessionState.d.ts.map +1 -1
  592. package/lib/typescript/module/src/screenTracker.d.ts +21 -3
  593. package/lib/typescript/module/src/screenTracker.d.ts.map +1 -1
  594. package/lib/typescript/module/src/surfaces/CardFade.d.ts +12 -0
  595. package/lib/typescript/module/src/surfaces/CardFade.d.ts.map +1 -0
  596. package/lib/typescript/module/src/surfaces/CloseButton.d.ts +8 -2
  597. package/lib/typescript/module/src/surfaces/CloseButton.d.ts.map +1 -1
  598. package/lib/typescript/module/src/surfaces/MadeWithUserflow.d.ts +1 -1
  599. package/lib/typescript/module/src/surfaces/ModalSurface.d.ts +1 -1
  600. package/lib/typescript/module/src/surfaces/ModalSurface.d.ts.map +1 -1
  601. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts +12 -1
  602. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
  603. package/lib/typescript/module/src/surfaces/cardTransition.d.ts +31 -0
  604. package/lib/typescript/module/src/surfaces/cardTransition.d.ts.map +1 -0
  605. package/lib/typescript/module/src/surfaces/resolveHighlightChrome.d.ts +44 -0
  606. package/lib/typescript/module/src/surfaces/resolveHighlightChrome.d.ts.map +1 -0
  607. package/lib/typescript/module/src/surfaces/resolveModalLayout.d.ts +1 -1
  608. package/lib/typescript/module/src/surfaces/resolveModalLayout.d.ts.map +1 -1
  609. package/lib/typescript/module/src/surfaces/resolveTooltipLayout.d.ts +0 -7
  610. package/lib/typescript/module/src/surfaces/resolveTooltipLayout.d.ts.map +1 -1
  611. package/lib/typescript/module/src/surfaces/surfaceInteractionConfig.d.ts +15 -0
  612. package/lib/typescript/module/src/surfaces/surfaceInteractionConfig.d.ts.map +1 -0
  613. package/lib/typescript/module/src/surfaces/surfaceLayoutInsets.d.ts +38 -0
  614. package/lib/typescript/module/src/surfaces/surfaceLayoutInsets.d.ts.map +1 -0
  615. package/lib/typescript/module/src/surfaces/themeChrome.d.ts +3 -1
  616. package/lib/typescript/module/src/surfaces/themeChrome.d.ts.map +1 -1
  617. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts +21 -6
  618. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  619. package/lib/typescript/module/src/surfaces/tooltip/TooltipCutout.d.ts +18 -10
  620. package/lib/typescript/module/src/surfaces/tooltip/TooltipCutout.d.ts.map +1 -1
  621. package/lib/typescript/module/src/surfaces/tooltip/TooltipHighlight.d.ts +25 -0
  622. package/lib/typescript/module/src/surfaces/tooltip/TooltipHighlight.d.ts.map +1 -0
  623. package/lib/typescript/module/src/surfaces/tooltip/computeTooltipPosition.d.ts +23 -0
  624. package/lib/typescript/module/src/surfaces/tooltip/computeTooltipPosition.d.ts.map +1 -1
  625. package/lib/typescript/module/src/surfaces/tooltip/inferTooltipPlacement.d.ts +47 -1
  626. package/lib/typescript/module/src/surfaces/tooltip/inferTooltipPlacement.d.ts.map +1 -1
  627. package/lib/typescript/module/src/surfaces/tooltip/placementDiagnostics.d.ts +39 -0
  628. package/lib/typescript/module/src/surfaces/tooltip/placementDiagnostics.d.ts.map +1 -0
  629. package/lib/typescript/module/src/surfaces/tooltip/rect.d.ts +2 -0
  630. package/lib/typescript/module/src/surfaces/tooltip/rect.d.ts.map +1 -1
  631. package/lib/typescript/module/src/surfaces/tooltip/resolveSideCardWidth.d.ts +76 -0
  632. package/lib/typescript/module/src/surfaces/tooltip/resolveSideCardWidth.d.ts.map +1 -0
  633. package/lib/typescript/module/src/version.d.ts +1 -1
  634. package/package.json +32 -18
  635. package/src/anchors/AutoAnchorRegistry.ts +140 -3
  636. package/src/anchors/anchorChangeTicker.ts +10 -0
  637. package/src/anchors/autoAnchor.ts +1 -1
  638. package/src/anchors/elementConditionEvaluator.ts +29 -16
  639. package/src/anchors/fiber/FiberScanRoot.tsx +2 -50
  640. package/src/anchors/fiber/FiberScanRootStore.ts +51 -0
  641. package/src/anchors/fiber/fiberInternals.ts +166 -3
  642. package/src/anchors/fiber/indexHostFibers.ts +136 -0
  643. package/src/anchors/fiber/readHostContent.ts +146 -0
  644. package/src/anchors/fiberAnchorCache.ts +45 -0
  645. package/src/anchors/hintsCodec.ts +1 -1
  646. package/src/anchors/resolveAnchorHost.ts +23 -23
  647. package/src/anchors/resolveAutoAnchorHost.ts +180 -0
  648. package/src/anchors/semanticMatcher.ts +361 -0
  649. package/src/authoring/ElementPickerOverlay.tsx +553 -0
  650. package/src/authoring/capturePickerScreenshot.ts +90 -0
  651. package/src/authoring/chrome/ChromeBarTransition.tsx +106 -0
  652. package/src/authoring/chrome/ChromeBottomSheet.tsx +69 -0
  653. package/src/authoring/chrome/ChromeButton.tsx +103 -0
  654. package/src/authoring/chrome/ChromeDialog.tsx +121 -0
  655. package/src/authoring/chrome/ChromeIcon.tsx +40 -0
  656. package/src/authoring/chrome/ChromeTooltip.tsx +89 -0
  657. package/src/authoring/chrome/ChromeTopBar.tsx +126 -0
  658. package/src/authoring/chrome/DoubleTapBridge.tsx +60 -0
  659. package/src/authoring/chrome/doubleTapMonitor.ts +80 -0
  660. package/src/authoring/chrome/icons/arrow-left-from-bracket.png +0 -0
  661. package/src/authoring/chrome/icons/arrow-left-from-bracket@2x.png +0 -0
  662. package/src/authoring/chrome/icons/arrow-left-from-bracket@3x.png +0 -0
  663. package/src/authoring/chrome/icons/arrow-rotate-left.png +0 -0
  664. package/src/authoring/chrome/icons/arrow-rotate-left@2x.png +0 -0
  665. package/src/authoring/chrome/icons/arrow-rotate-left@3x.png +0 -0
  666. package/src/authoring/chrome/icons/userflow-logomark.png +0 -0
  667. package/src/authoring/chrome/icons/userflow-logomark@2x.png +0 -0
  668. package/src/authoring/chrome/icons/userflow-logomark@3x.png +0 -0
  669. package/src/authoring/chrome/icons/xmark.png +0 -0
  670. package/src/authoring/chrome/icons/xmark@2x.png +0 -0
  671. package/src/authoring/chrome/icons/xmark@3x.png +0 -0
  672. package/src/authoring/chrome/tokens.ts +106 -0
  673. package/src/authoring/doubleTap.ts +27 -0
  674. package/src/authoring/elementPickerController.ts +135 -0
  675. package/src/authoring/fingerprintFromInstance.ts +152 -0
  676. package/src/authoring/hitTest.ts +133 -0
  677. package/src/content/RichContentRenderer.tsx +22 -1
  678. package/src/content/StepButton.tsx +17 -2
  679. package/src/content/resolveStepButtonChrome.ts +12 -6
  680. package/src/content/themeColor.ts +10 -0
  681. package/src/deviceContext.ts +168 -0
  682. package/src/expo-router/useUserflowExpoRouter.ts +47 -4
  683. package/src/hostAppVersion.ts +258 -0
  684. package/src/index.ts +148 -4
  685. package/src/lifecycle.ts +8 -0
  686. package/src/navigation/WithUserflowReactNavigation.tsx +23 -7
  687. package/src/navigation/isOverlayPresentation.ts +76 -0
  688. package/src/pairing/PairingController.ts +32 -3
  689. package/src/pairing/PreviewModeBanner.tsx +250 -94
  690. package/src/pairing/diagnostics.ts +10 -2
  691. package/src/pairing/elementPickerRelay.ts +100 -0
  692. package/src/pairing/resolvePreviewChrome.ts +57 -0
  693. package/src/pairing/tokenStorage.ts +31 -2
  694. package/src/pairing/usePairingState.ts +2 -0
  695. package/src/runtime/FlowRenderer.tsx +55 -27
  696. package/src/runtime/FlowSurfaceFade.tsx +51 -30
  697. package/src/runtime/TargetPressBridge.tsx +14 -32
  698. package/src/runtime/UserflowProvider.tsx +76 -13
  699. package/src/runtime/changedTouchPoints.ts +34 -0
  700. package/src/runtime/flowEngine.ts +2 -0
  701. package/src/runtime/flowSessionViewState.ts +42 -4
  702. package/src/runtime/useFlowSessionState.ts +2 -0
  703. package/src/screenTracker.ts +46 -4
  704. package/src/surfaces/CardFade.tsx +18 -0
  705. package/src/surfaces/CloseButton.tsx +17 -7
  706. package/src/surfaces/MadeWithUserflow.tsx +1 -1
  707. package/src/surfaces/ModalSurface.tsx +48 -35
  708. package/src/surfaces/TooltipSurface.tsx +406 -86
  709. package/src/surfaces/cardTransition.ts +67 -0
  710. package/src/surfaces/resolveHighlightChrome.ts +139 -0
  711. package/src/surfaces/resolveModalLayout.ts +16 -8
  712. package/src/surfaces/resolveTooltipLayout.ts +1 -14
  713. package/src/surfaces/surfaceInteractionConfig.ts +25 -0
  714. package/src/surfaces/surfaceLayoutInsets.tsx +135 -0
  715. package/src/surfaces/themeChrome.ts +5 -3
  716. package/src/surfaces/tooltip/TooltipBubble.tsx +154 -19
  717. package/src/surfaces/tooltip/TooltipCutout.tsx +106 -49
  718. package/src/surfaces/tooltip/TooltipHighlight.tsx +144 -0
  719. package/src/surfaces/tooltip/computeTooltipPosition.ts +98 -12
  720. package/src/surfaces/tooltip/inferTooltipPlacement.ts +107 -18
  721. package/src/surfaces/tooltip/placementDiagnostics.ts +70 -0
  722. package/src/surfaces/tooltip/rect.ts +11 -0
  723. package/src/surfaces/tooltip/resolveSideCardWidth.ts +121 -0
  724. package/src/version.ts +1 -1
  725. package/vendor/core/LICENSE +76 -0
  726. package/vendor/core/README.md +9 -0
  727. package/vendor/core/dist/attributes.d.ts +15 -0
  728. package/vendor/core/dist/attributes.d.ts.map +1 -0
  729. package/vendor/core/dist/attributes.js +55 -0
  730. package/vendor/core/dist/attributes.js.map +1 -0
  731. package/vendor/core/dist/constants.d.ts +21 -0
  732. package/vendor/core/dist/constants.d.ts.map +1 -0
  733. package/vendor/core/dist/constants.js +21 -0
  734. package/vendor/core/dist/constants.js.map +1 -0
  735. package/vendor/core/dist/engine/ClientConditionEngine.d.ts +68 -0
  736. package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -0
  737. package/vendor/core/dist/engine/ClientConditionEngine.js +197 -0
  738. package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -0
  739. package/vendor/core/dist/engine/FlowSessionEngine.d.ts +160 -0
  740. package/vendor/core/dist/engine/FlowSessionEngine.d.ts.map +1 -0
  741. package/vendor/core/dist/engine/FlowSessionEngine.js +571 -0
  742. package/vendor/core/dist/engine/FlowSessionEngine.js.map +1 -0
  743. package/vendor/core/dist/engine/PairingEngine.d.ts +135 -0
  744. package/vendor/core/dist/engine/PairingEngine.d.ts.map +1 -0
  745. package/vendor/core/dist/engine/PairingEngine.js +396 -0
  746. package/vendor/core/dist/engine/PairingEngine.js.map +1 -0
  747. package/vendor/core/dist/engine/UserflowCore.d.ts +145 -0
  748. package/vendor/core/dist/engine/UserflowCore.d.ts.map +1 -0
  749. package/vendor/core/dist/engine/UserflowCore.js +329 -0
  750. package/vendor/core/dist/engine/UserflowCore.js.map +1 -0
  751. package/vendor/core/dist/engine/conditionOperators.d.ts +16 -0
  752. package/vendor/core/dist/engine/conditionOperators.d.ts.map +1 -0
  753. package/vendor/core/dist/engine/conditionOperators.js +168 -0
  754. package/vendor/core/dist/engine/conditionOperators.js.map +1 -0
  755. package/vendor/core/dist/engine/handleActions.d.ts +42 -0
  756. package/vendor/core/dist/engine/handleActions.d.ts.map +1 -0
  757. package/vendor/core/dist/engine/handleActions.js +198 -0
  758. package/vendor/core/dist/engine/handleActions.js.map +1 -0
  759. package/vendor/core/dist/engine/interpolateSessionData.d.ts +7 -0
  760. package/vendor/core/dist/engine/interpolateSessionData.d.ts.map +1 -0
  761. package/vendor/core/dist/engine/interpolateSessionData.js +29 -0
  762. package/vendor/core/dist/engine/interpolateSessionData.js.map +1 -0
  763. package/vendor/core/dist/engine/simpleObservable.d.ts +13 -0
  764. package/vendor/core/dist/engine/simpleObservable.d.ts.map +1 -0
  765. package/vendor/core/dist/engine/simpleObservable.js +29 -0
  766. package/vendor/core/dist/engine/simpleObservable.js.map +1 -0
  767. package/vendor/core/dist/engine/trackCondition.d.ts +25 -0
  768. package/vendor/core/dist/engine/trackCondition.d.ts.map +1 -0
  769. package/vendor/core/dist/engine/trackCondition.js +177 -0
  770. package/vendor/core/dist/engine/trackCondition.js.map +1 -0
  771. package/vendor/core/dist/engine/trackStepTriggers.d.ts +21 -0
  772. package/vendor/core/dist/engine/trackStepTriggers.d.ts.map +1 -0
  773. package/vendor/core/dist/engine/trackStepTriggers.js +49 -0
  774. package/vendor/core/dist/engine/trackStepTriggers.js.map +1 -0
  775. package/vendor/core/dist/errors.d.ts +9 -0
  776. package/vendor/core/dist/errors.d.ts.map +1 -0
  777. package/vendor/core/dist/errors.js +15 -0
  778. package/vendor/core/dist/errors.js.map +1 -0
  779. package/vendor/core/dist/eventAttributes.d.ts +7 -0
  780. package/vendor/core/dist/eventAttributes.d.ts.map +1 -0
  781. package/vendor/core/dist/eventAttributes.js +31 -0
  782. package/vendor/core/dist/eventAttributes.js.map +1 -0
  783. package/vendor/core/dist/index.d.ts +31 -0
  784. package/vendor/core/dist/index.d.ts.map +1 -0
  785. package/vendor/core/dist/index.js +22 -0
  786. package/vendor/core/dist/index.js.map +1 -0
  787. package/vendor/core/dist/normalizeAttributes.d.ts +8 -0
  788. package/vendor/core/dist/normalizeAttributes.d.ts.map +1 -0
  789. package/vendor/core/dist/normalizeAttributes.js +127 -0
  790. package/vendor/core/dist/normalizeAttributes.js.map +1 -0
  791. package/vendor/core/dist/transport/backoff.d.ts +11 -0
  792. package/vendor/core/dist/transport/backoff.d.ts.map +1 -0
  793. package/vendor/core/dist/transport/backoff.js +17 -0
  794. package/vendor/core/dist/transport/backoff.js.map +1 -0
  795. package/vendor/core/dist/transport/pairing.d.ts +121 -0
  796. package/vendor/core/dist/transport/pairing.d.ts.map +1 -0
  797. package/vendor/core/dist/transport/pairing.js +551 -0
  798. package/vendor/core/dist/transport/pairing.js.map +1 -0
  799. package/vendor/core/dist/transport/phoenix.d.ts +228 -0
  800. package/vendor/core/dist/transport/phoenix.d.ts.map +1 -0
  801. package/vendor/core/dist/transport/phoenix.js +811 -0
  802. package/vendor/core/dist/transport/phoenix.js.map +1 -0
  803. package/vendor/core/dist/transport/rateLimiter.d.ts +17 -0
  804. package/vendor/core/dist/transport/rateLimiter.d.ts.map +1 -0
  805. package/vendor/core/dist/transport/rateLimiter.js +30 -0
  806. package/vendor/core/dist/transport/rateLimiter.js.map +1 -0
  807. package/vendor/core/dist/transport/scheduler.d.ts +12 -0
  808. package/vendor/core/dist/transport/scheduler.d.ts.map +1 -0
  809. package/vendor/core/dist/transport/scheduler.js +11 -0
  810. package/vendor/core/dist/transport/scheduler.js.map +1 -0
  811. package/vendor/core/dist/types.d.ts +60 -0
  812. package/vendor/core/dist/types.d.ts.map +1 -0
  813. package/vendor/core/dist/types.js +2 -0
  814. package/vendor/core/dist/types.js.map +1 -0
  815. package/vendor/core/dist/version.d.ts +3 -0
  816. package/vendor/core/dist/version.d.ts.map +1 -0
  817. package/vendor/core/dist/version.js +3 -0
  818. package/vendor/core/dist/version.js.map +1 -0
  819. package/vendor/core/package.json +20 -0
  820. package/vendor/protocol/LICENSE +76 -0
  821. package/vendor/protocol/README.md +8 -0
  822. package/vendor/protocol/dist/attributes.d.ts +43 -0
  823. package/vendor/protocol/dist/attributes.d.ts.map +1 -0
  824. package/vendor/protocol/dist/attributes.js +15 -0
  825. package/vendor/protocol/dist/attributes.js.map +1 -0
  826. package/vendor/protocol/dist/autoData.d.ts +232 -0
  827. package/vendor/protocol/dist/autoData.d.ts.map +1 -0
  828. package/vendor/protocol/dist/autoData.js +78 -0
  829. package/vendor/protocol/dist/autoData.js.map +1 -0
  830. package/vendor/protocol/dist/events.d.ts +24 -0
  831. package/vendor/protocol/dist/events.d.ts.map +1 -0
  832. package/vendor/protocol/dist/events.js +8 -0
  833. package/vendor/protocol/dist/events.js.map +1 -0
  834. package/vendor/protocol/dist/flows.d.ts +360 -0
  835. package/vendor/protocol/dist/flows.d.ts.map +1 -0
  836. package/vendor/protocol/dist/flows.js +201 -0
  837. package/vendor/protocol/dist/flows.js.map +1 -0
  838. package/vendor/protocol/dist/index.d.ts +25 -0
  839. package/vendor/protocol/dist/index.d.ts.map +1 -0
  840. package/vendor/protocol/dist/index.js +17 -0
  841. package/vendor/protocol/dist/index.js.map +1 -0
  842. package/vendor/protocol/dist/messages.d.ts +187 -0
  843. package/vendor/protocol/dist/messages.d.ts.map +1 -0
  844. package/vendor/protocol/dist/messages.js +61 -0
  845. package/vendor/protocol/dist/messages.js.map +1 -0
  846. package/vendor/protocol/dist/pairing.d.ts +82 -0
  847. package/vendor/protocol/dist/pairing.d.ts.map +1 -0
  848. package/vendor/protocol/dist/pairing.js +146 -0
  849. package/vendor/protocol/dist/pairing.js.map +1 -0
  850. package/vendor/protocol/package.json +17 -0
@@ -3,7 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.BUBBLE_CONTENT_PADDING = void 0;
6
7
  exports.resolveBubbleChrome = resolveBubbleChrome;
8
+ /** Mobile modal/tooltip inset — tighter than web `modalPadding` (default 40). */
9
+ const BUBBLE_CONTENT_PADDING = exports.BUBBLE_CONTENT_PADDING = 24;
7
10
  function readNumber(theme, key, fallback) {
8
11
  const value = theme[key];
9
12
  if (typeof value === 'number' && Number.isFinite(value)) return value;
@@ -31,7 +34,7 @@ function resolveBubbleChrome(theme, kind = 'modal') {
31
34
  const borderColor = readString(theme, 'bubbleBorderColor', 'transparent');
32
35
  // Web default tooltipNotchSize is 10.
33
36
  const notchSize = Math.max(0, readNumber(theme, 'tooltipNotchSize', 10));
34
- const contentPadding = kind === 'tooltip' ? 24 : Math.max(0, readNumber(theme, 'modalPadding', 32));
37
+ const contentPadding = BUBBLE_CONTENT_PADDING;
35
38
 
36
39
  // Web often leaves `backgroundColor` empty and paints via `mainBackgroundColor`.
37
40
  // An empty string makes RN cards fully transparent (missing-target UI looks broken).
@@ -1 +1 @@
1
- {"version":3,"names":["readNumber","theme","key","fallback","value","Number","isFinite","parsed","parseFloat","readString","length","resolveBubbleChrome","kind","borderRadius","borderWidth","Math","max","borderColor","notchSize","contentPadding","backgroundColor","borderStyle","shadowStyle","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","fillStyle","overflow","cardStyle"],"sourceRoot":"../../../src","sources":["surfaces/themeChrome.ts"],"mappings":";;;;;;AA8BA,SAASA,UAAUA,CAACC,KAAoB,EAAEC,GAAW,EAAEC,QAAgB,EAAU;EAC/E,MAAMC,KAAK,GAAGH,KAAK,CAACC,GAAG,CAAC;EACxB,IAAI,OAAOE,KAAK,KAAK,QAAQ,IAAIC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,EAAE,OAAOA,KAAK;EACrE,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,MAAMG,MAAM,GAAGC,UAAU,CAACJ,KAAK,CAAC;IAChC,IAAIC,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAC,EAAE,OAAOA,MAAM;EAC5C;EACA,OAAOJ,QAAQ;AACjB;AAEA,SAASM,UAAUA,CAACR,KAAoB,EAAEC,GAAW,EAAEC,QAAgB,EAAU;EAC/E,MAAMC,KAAK,GAAGH,KAAK,CAACC,GAAG,CAAC;EACxB,OAAO,OAAOE,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACM,MAAM,GAAG,CAAC,GAAGN,KAAK,GAAGD,QAAQ;AACzE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASQ,mBAAmBA,CACjCV,KAAoB,EACpBW,IAAsB,GAAG,OAAO,EAClB;EACd,MAAMC,YAAY,GAAGb,UAAU,CAACC,KAAK,EAAE,oBAAoB,EAAE,EAAE,CAAC;EAChE,MAAMa,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEhB,UAAU,CAACC,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;EAC1E,MAAMgB,WAAW,GAAGR,UAAU,CAACR,KAAK,EAAE,mBAAmB,EAAE,aAAa,CAAC;EACzE;EACA,MAAMiB,SAAS,GAAGH,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEhB,UAAU,CAACC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;EACxE,MAAMkB,cAAc,GAClBP,IAAI,KAAK,SAAS,GAAG,EAAE,GAAGG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEhB,UAAU,CAACC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;;EAE9E;EACA;EACA,MAAMmB,eAAe,GACnBX,UAAU,CAACR,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC,IACxCQ,UAAU,CAACR,KAAK,EAAE,qBAAqB,EAAE,EAAE,CAAC,IAC5C,SAAS;;EAEX;EACA,MAAMoB,WAAsB,GAC1BP,WAAW,GAAG,CAAC,GACX;IACEA,WAAW;IACXG;EACF,CAAC,GACD,CAAC,CAAC;;EAER;EACA;EACA,MAAMK,WAAsB,GAAG;IAC7BC,WAAW,EAAE,SAAS;IACtBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EAED,MAAMC,SAAoB,GAAG;IAC3BV,eAAe;IACfP,YAAY;IACZ,GAAGQ,WAAW;IACdU,QAAQ,EAAE;EACZ,CAAC;EAED,MAAMC,SAAoB,GAAG;IAC3B;IACA;IACA;IACA,IAAIpB,IAAI,KAAK,OAAO,GAChB;MACE,GAAGU,WAAW;MACdT,YAAY;MACZO,eAAe,EAAE,aAAa;MAC9BW,QAAQ,EAAE;IACZ,CAAC,GACD;MACEX,eAAe,EAAE,aAAa;MAC9BW,QAAQ,EAAE;IACZ,CAAC;EACP,CAAC;EAED,OAAO;IACLX,eAAe;IACfP,YAAY;IACZC,WAAW;IACXG,WAAW;IACXC,SAAS;IACTC,cAAc;IACda,SAAS;IACTF,SAAS;IACTR;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["BUBBLE_CONTENT_PADDING","exports","readNumber","theme","key","fallback","value","Number","isFinite","parsed","parseFloat","readString","length","resolveBubbleChrome","kind","borderRadius","borderWidth","Math","max","borderColor","notchSize","contentPadding","backgroundColor","borderStyle","shadowStyle","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","fillStyle","overflow","cardStyle"],"sourceRoot":"../../../src","sources":["surfaces/themeChrome.ts"],"mappings":";;;;;;;AAKA;AACO,MAAMA,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG,EAAE;AA2BxC,SAASE,UAAUA,CAACC,KAAoB,EAAEC,GAAW,EAAEC,QAAgB,EAAU;EAC/E,MAAMC,KAAK,GAAGH,KAAK,CAACC,GAAG,CAAC;EACxB,IAAI,OAAOE,KAAK,KAAK,QAAQ,IAAIC,MAAM,CAACC,QAAQ,CAACF,KAAK,CAAC,EAAE,OAAOA,KAAK;EACrE,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,MAAMG,MAAM,GAAGC,UAAU,CAACJ,KAAK,CAAC;IAChC,IAAIC,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAC,EAAE,OAAOA,MAAM;EAC5C;EACA,OAAOJ,QAAQ;AACjB;AAEA,SAASM,UAAUA,CAACR,KAAoB,EAAEC,GAAW,EAAEC,QAAgB,EAAU;EAC/E,MAAMC,KAAK,GAAGH,KAAK,CAACC,GAAG,CAAC;EACxB,OAAO,OAAOE,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACM,MAAM,GAAG,CAAC,GAAGN,KAAK,GAAGD,QAAQ;AACzE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASQ,mBAAmBA,CACjCV,KAAoB,EACpBW,IAAsB,GAAG,OAAO,EAClB;EACd,MAAMC,YAAY,GAAGb,UAAU,CAACC,KAAK,EAAE,oBAAoB,EAAE,EAAE,CAAC;EAChE,MAAMa,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEhB,UAAU,CAACC,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;EAC1E,MAAMgB,WAAW,GAAGR,UAAU,CAACR,KAAK,EAAE,mBAAmB,EAAE,aAAa,CAAC;EACzE;EACA,MAAMiB,SAAS,GAAGH,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEhB,UAAU,CAACC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;EACxE,MAAMkB,cAAc,GAAGrB,sBAAsB;;EAE7C;EACA;EACA,MAAMsB,eAAe,GACnBX,UAAU,CAACR,KAAK,EAAE,iBAAiB,EAAE,EAAE,CAAC,IACxCQ,UAAU,CAACR,KAAK,EAAE,qBAAqB,EAAE,EAAE,CAAC,IAC5C,SAAS;;EAEX;EACA,MAAMoB,WAAsB,GAC1BP,WAAW,GAAG,CAAC,GACX;IACEA,WAAW;IACXG;EACF,CAAC,GACD,CAAC,CAAC;;EAER;EACA;EACA,MAAMK,WAAsB,GAAG;IAC7BC,WAAW,EAAE,SAAS;IACtBC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE;EACb,CAAC;EAED,MAAMC,SAAoB,GAAG;IAC3BV,eAAe;IACfP,YAAY;IACZ,GAAGQ,WAAW;IACdU,QAAQ,EAAE;EACZ,CAAC;EAED,MAAMC,SAAoB,GAAG;IAC3B;IACA;IACA;IACA,IAAIpB,IAAI,KAAK,OAAO,GAChB;MACE,GAAGU,WAAW;MACdT,YAAY;MACZO,eAAe,EAAE,aAAa;MAC9BW,QAAQ,EAAE;IACZ,CAAC,GACD;MACEX,eAAe,EAAE,aAAa;MAC9BW,QAAQ,EAAE;IACZ,CAAC;EACP,CAAC;EAED,OAAO;IACLX,eAAe;IACfP,YAAY;IACZC,WAAW;IACXG,WAAW;IACXC,SAAS;IACTC,cAAc;IACda,SAAS;IACTF,SAAS;IACTR;EACF,CAAC;AACH","ignoreList":[]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.TooltipBubble = TooltipBubble;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
+ var _CardFade = require("../CardFade.js");
9
10
  var _absoluteFill = require("../absoluteFill.js");
10
11
  var _TooltipNotch = require("./TooltipNotch.js");
11
12
  var _jsxRuntime = require("react/jsx-runtime");
@@ -14,27 +15,66 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r
14
15
  * Tooltip chrome shell: diamond notch + card fill sharing one shadow family.
15
16
  *
16
17
  * Web draws card and notch as a single silhouette under `filter: drop-shadow`.
17
- * RN has no silhouette filter, so the card uses a dedicated shadow layer and
18
- * `elevation` on the fill (Android). The notch itself is not shadowed — a
19
- * second blurred shadow on the rotated square leaves a gray band at the pointer
20
- * base when it points up into the anchor. An inset fill diamond on top erases
21
- * that seam (and bordered stroke gaps) without clipping the outer tip.
18
+ * RN has no silhouette filter — on both platforms a view's shadow is derived
19
+ * from that view's own bounds, and the notch hangs at a negative offset
20
+ * *outside* the card's bounds. No shadow cast by the card or by the shell can
21
+ * ever reach it, so the diamond has to cast its own, and the two shadows
22
+ * together trace the card + tip outline.
23
+ *
24
+ * The order is what keeps that honest. A shadow is painted with its own layer,
25
+ * so only a layer drawn *before* the notch may cast a card-sized shadow —
26
+ * otherwise it lands on the exposed tip as a gray band. Hence: shadow layer,
27
+ * then notch, then the fill and seam cover, both silent.
28
+ *
29
+ * iOS gets `shadow*` on the notch (`elevation` is inert there); Android gets
30
+ * `elevation`, which is the only shadow it honors on a rotated view.
22
31
  */
23
32
  function TooltipBubble({
24
33
  chrome,
25
34
  notchPosition,
26
35
  style,
27
36
  onLayout,
28
- children
37
+ children,
38
+ maxHeight,
39
+ showNotch: showNotchProp = true
29
40
  }) {
30
- const showNotch = chrome.notchSize > 0;
41
+ const showNotch = showNotchProp && chrome.notchSize > 0;
31
42
  const bordered = chrome.borderWidth > 0;
43
+ // Only bordered themes need the diamond seam cover, to keep the stroke even
44
+ // where the notch meets the card. It is opaque and sits above the fill, so
45
+ // borderless themes must skip it or it paints over the card's own text.
46
+ const showSeamCover = showNotch && bordered;
47
+ // Borderless: a 2pt strip of fill color on the pointer edge covers the iOS
48
+ // hairline where `overflow: hidden` anti-aliases the card against the dim.
49
+ // Inset by the radius so it does not square off the corners. Bordered cards
50
+ // already have a stroke there — painting fill over it would hide the border.
51
+ const notchEdge = showNotch && !bordered ? protrudingNotchEdge(notchPosition) : null;
32
52
  // Web paints the notch with border color when bordered, otherwise the card
33
53
  // fill. Never use literal `transparent` — that hides the pointer entirely.
34
54
  const notchColor = bordered && chrome.borderColor !== 'transparent' ? chrome.borderColor : chrome.backgroundColor;
35
- // Android draws by elevation, so every layer above the card shadow has to be
55
+ // Android draws by elevation, so every layer above the shadow layer has to be
36
56
  // raised with it or the opaque shadow layer paints over the card body.
37
57
  const elevation = chrome.shadowStyle.elevation ?? 0;
58
+ // Raising a layer on Android also makes it cast its own elevation shadow,
59
+ // painted directly beneath that layer, so anything above the notch has to
60
+ // give its shadow up. `shadowColor: 'transparent'` does that on both
61
+ // platforms — it is the one shadow prop Android honors (API 28+), and on iOS
62
+ // it cancels the shadow outright — so this needs no platform split.
63
+ const raisedSilent = {
64
+ elevation,
65
+ shadowColor: 'transparent'
66
+ };
67
+ // The one caster above the shadow layer. iOS reads this diamond's own
68
+ // bounds, and the 45° layer rotation carries the shadow with it, so the tip
69
+ // gets a shadow shaped like the tip.
70
+ const notchShadow = _reactNative.Platform.OS === 'ios' ? {
71
+ shadowColor: chrome.shadowStyle.shadowColor,
72
+ shadowOffset: chrome.shadowStyle.shadowOffset,
73
+ shadowOpacity: chrome.shadowStyle.shadowOpacity,
74
+ shadowRadius: chrome.shadowStyle.shadowRadius
75
+ } : {
76
+ elevation
77
+ };
38
78
  const notchProps = {
39
79
  notchSize: chrome.notchSize,
40
80
  ...(notchPosition.top !== undefined ? {
@@ -50,7 +90,7 @@ function TooltipBubble({
50
90
  right: notchPosition.right
51
91
  } : {})
52
92
  };
53
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
93
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_CardFade.CardFade, {
54
94
  testID: "userflow-tooltip-card",
55
95
  accessibilityViewIsModal: true,
56
96
  pointerEvents: "auto",
@@ -58,37 +98,106 @@ function TooltipBubble({
58
98
  style: [styles.shell, style],
59
99
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
60
100
  pointerEvents: "none",
101
+ testID: "userflow-tooltip-card-shadow",
61
102
  style: [styles.cardShadow, chrome.shadowStyle, {
62
- elevation: 0,
63
103
  borderRadius: chrome.borderRadius,
64
104
  backgroundColor: chrome.backgroundColor
65
105
  }]
66
106
  }), showNotch ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipNotch.TooltipNotch, {
67
107
  ...notchProps,
68
108
  notchColor: notchColor,
69
- style: styles.notchLayer
109
+ style: [styles.notchLayer, notchShadow]
70
110
  }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
71
- style: [chrome.fillStyle, styles.fill, {
72
- elevation
73
- }],
74
- children: children
75
- }), showNotch ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipNotch.TooltipNotch, {
111
+ testID: "userflow-tooltip-card-fill",
112
+ style: [chrome.fillStyle, styles.fill,
113
+ // Keep the opaque rounded skin unclipped so its top edge composites
114
+ // onto this layer instead of the dim. Content still clips inside.
115
+ styles.fillSkin, raisedSilent, maxHeight != null ? {
116
+ maxHeight
117
+ } : null],
118
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
119
+ testID: "userflow-tooltip-card-fill-clip",
120
+ style: [styles.fillClip, {
121
+ borderRadius: chrome.borderRadius
122
+ }, maxHeight != null ? {
123
+ maxHeight
124
+ } : null],
125
+ children: children
126
+ })
127
+ }), notchEdge ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
128
+ pointerEvents: "none",
129
+ testID: "userflow-tooltip-notch-edge-cap",
130
+ style: [styles.notchSeamCover, edgeCapStyle(notchEdge, chrome.borderRadius, chrome.backgroundColor), raisedSilent]
131
+ }) : null, showSeamCover ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_TooltipNotch.TooltipNotch, {
76
132
  ...notchProps,
77
133
  notchColor: chrome.backgroundColor,
78
134
  inset: Math.max(chrome.borderWidth, 1),
79
- style: [styles.notchSeamCover, {
80
- elevation
81
- }],
135
+ style: [styles.notchSeamCover, raisedSilent],
82
136
  testID: "userflow-tooltip-notch-seam"
83
137
  }) : null]
84
138
  });
85
139
  }
140
+
141
+ /** Pixel-thick cover for the fill hairline on the pointer's card edge. */
142
+ const EDGE_CAP_THICKNESS = 2;
143
+
144
+ /**
145
+ * The pointer hangs *outside* the card, so its edge offset is negative.
146
+ * Along-edge alignment (the other axis) is positive and must be ignored.
147
+ */
148
+ function protrudingNotchEdge(position) {
149
+ if (position.top != null && position.top < 0) return 'top';
150
+ if (position.bottom != null && position.bottom < 0) return 'bottom';
151
+ if (position.left != null && position.left < 0) return 'left';
152
+ if (position.right != null && position.right < 0) return 'right';
153
+ return null;
154
+ }
155
+ function edgeCapStyle(edge, borderRadius, backgroundColor) {
156
+ const inset = borderRadius;
157
+ const along = {
158
+ position: 'absolute',
159
+ backgroundColor
160
+ };
161
+ switch (edge) {
162
+ case 'top':
163
+ return {
164
+ ...along,
165
+ top: 0,
166
+ left: inset,
167
+ right: inset,
168
+ height: EDGE_CAP_THICKNESS
169
+ };
170
+ case 'bottom':
171
+ return {
172
+ ...along,
173
+ bottom: 0,
174
+ left: inset,
175
+ right: inset,
176
+ height: EDGE_CAP_THICKNESS
177
+ };
178
+ case 'left':
179
+ return {
180
+ ...along,
181
+ left: 0,
182
+ top: inset,
183
+ bottom: inset,
184
+ width: EDGE_CAP_THICKNESS
185
+ };
186
+ case 'right':
187
+ return {
188
+ ...along,
189
+ right: 0,
190
+ top: inset,
191
+ bottom: inset,
192
+ width: EDGE_CAP_THICKNESS
193
+ };
194
+ }
195
+ }
86
196
  const styles = _reactNative.StyleSheet.create({
87
197
  shell: {
88
198
  position: 'relative',
89
199
  backgroundColor: 'transparent',
90
200
  overflow: 'visible',
91
- maxHeight: '80%',
92
201
  flexShrink: 1
93
202
  },
94
203
  cardShadow: {
@@ -99,7 +208,19 @@ const styles = _reactNative.StyleSheet.create({
99
208
  zIndex: 1
100
209
  },
101
210
  fill: {
102
- zIndex: 2
211
+ zIndex: 2,
212
+ minHeight: 0,
213
+ flexShrink: 1
214
+ },
215
+ fillSkin: {
216
+ overflow: 'visible'
217
+ },
218
+ fillClip: {
219
+ overflow: 'hidden',
220
+ minHeight: 0,
221
+ flexShrink: 1
222
+ // Do not set flexGrow / flex: 1. The card sizes to its content; grow in an
223
+ // auto-height parent collapses the fill to 0 and leaves only the notch.
103
224
  },
104
225
  notchSeamCover: {
105
226
  zIndex: 3
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_absoluteFill","_TooltipNotch","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TooltipBubble","chrome","notchPosition","style","onLayout","children","showNotch","notchSize","bordered","borderWidth","notchColor","borderColor","backgroundColor","elevation","shadowStyle","notchProps","top","undefined","bottom","left","right","jsxs","View","testID","accessibilityViewIsModal","pointerEvents","styles","shell","jsx","cardShadow","borderRadius","TooltipNotch","notchLayer","fillStyle","fill","inset","Math","max","notchSeamCover","StyleSheet","create","position","overflow","maxHeight","flexShrink","ABSOLUTE_FILL","zIndex"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipBubble.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_CardFade","_absoluteFill","_TooltipNotch","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TooltipBubble","chrome","notchPosition","style","onLayout","children","maxHeight","showNotch","showNotchProp","notchSize","bordered","borderWidth","showSeamCover","notchEdge","protrudingNotchEdge","notchColor","borderColor","backgroundColor","elevation","shadowStyle","raisedSilent","shadowColor","notchShadow","Platform","OS","shadowOffset","shadowOpacity","shadowRadius","notchProps","top","undefined","bottom","left","right","jsxs","CardFade","testID","accessibilityViewIsModal","pointerEvents","styles","shell","jsx","View","cardShadow","borderRadius","TooltipNotch","notchLayer","fillStyle","fill","fillSkin","fillClip","notchSeamCover","edgeCapStyle","inset","Math","max","EDGE_CAP_THICKNESS","position","edge","along","height","width","StyleSheet","create","overflow","flexShrink","ABSOLUTE_FILL","zIndex","minHeight"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipBubble.tsx"],"mappings":"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","ignoreList":[]}
@@ -7,19 +7,62 @@ exports.TooltipCutout = TooltipCutout;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
9
  var _absoluteFill = require("../absoluteFill.js");
10
+ var _surfaceInteractionConfig = require("../surfaceInteractionConfig.js");
10
11
  var _jsxRuntime = require("react/jsx-runtime");
11
12
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ /** No hole yet: collapses the top/left/right bands, leaving one full-screen band. */
14
+ const NO_HOLE = {
15
+ top: 0,
16
+ left: 0,
17
+ width: 0,
18
+ height: 0
19
+ };
20
+
21
+ /**
22
+ * Intersect the hole with the screen, or drop it when the target is off-screen.
23
+ *
24
+ * Targets are measured before `scrollAnchorIntoView` has brought them in, so an
25
+ * unclamped rect can sit above the viewport. The bands then disagree — the top
26
+ * one collapses while the side ones still paint at y=0 — and leave phantom dim
27
+ * blocks pinned to the top edge that reflow as the scroll settles.
28
+ */
29
+ function clampToScreen(rect, screenWidth, screenHeight) {
30
+ if (rect == null) {
31
+ return null;
32
+ }
33
+ const top = Math.max(0, rect.top);
34
+ const left = Math.max(0, rect.left);
35
+ const bottom = Math.min(screenHeight, rect.top + rect.height);
36
+ const right = Math.min(screenWidth, rect.left + rect.width);
37
+ if (bottom <= top || right <= left) {
38
+ return null;
39
+ }
40
+ return {
41
+ top,
42
+ left,
43
+ width: right - left,
44
+ height: bottom - top
45
+ };
46
+ }
47
+
12
48
  /**
13
49
  * Four-block dimmed cutout around the padded target (web tooltip backdrop).
14
50
  *
15
- * Dim bands use `pointerEvents="none"` so touches reach the app — React Native
16
- * cannot block taps while allowing scroll the way web's `mousedown`-only
17
- * swallow does. When `targetBlocked`, only the hole (target) is covered with a
18
- * transparent `pointerEvents="auto"` layer.
51
+ * When surface interaction blocking is enabled (default), dim bands use
52
+ * `pointerEvents="auto"` so taps outside the hole are swallowed. The target
53
+ * hole stays open for guided-tour taps unless `targetBlocked` seals it.
54
+ *
55
+ * When blocking is disabled (`Userflow.setSurfaceInteractionBlocking(false)`),
56
+ * bands revert to `pointerEvents="none"` so the host app stays scrollable and
57
+ * tappable — legacy pass-through behavior. The `targetBlocked` hole seal is
58
+ * unchanged and still mounts when set.
19
59
  *
20
- * MVP note: each block uses its own translucent opacity. That matches non-overlapping
21
- * tiles well, but can look slightly uneven vs web’s single shadow-hole when other
22
- * translucent overlays stack. Acceptable for Phase 3; a single masked layer can come later.
60
+ * The bands are opaque and share one translucent parent, so the dim is composited
61
+ * once. Per-band opacity looks identical while the tiles truly abut, but any frame
62
+ * where two of them overlap darkens twice: going from no hole to a measured one
63
+ * grows the top band while the bottom band still covers the screen, which painted a
64
+ * doubled rectangle over the upper screen until the geometry settled. Group opacity
65
+ * makes overlap invisible instead of relying on the four rects always agreeing.
23
66
  */
24
67
  function TooltipCutout({
25
68
  targetRect,
@@ -31,59 +74,69 @@ function TooltipCutout({
31
74
  width: sw,
32
75
  height: sh
33
76
  } = _reactNative.Dimensions.get('window');
77
+ const hole = clampToScreen(targetRect, sw, sh);
34
78
  const {
35
79
  top,
36
80
  left,
37
81
  width,
38
82
  height
39
- } = targetRect;
83
+ } = hole ?? NO_HOLE;
40
84
  const right = left + width;
41
85
  const bottom = top + height;
42
86
  const blockStyle = {
43
- backgroundColor: backdropColor,
44
- opacity: backdropOpacity
87
+ backgroundColor: backdropColor
45
88
  };
89
+ const blockInteraction = (0, _surfaceInteractionConfig.getSurfaceInteractionBlocking)();
90
+ const bandPointerEvents = blockInteraction ? 'auto' : 'none';
91
+ const dimPointerEvents = blockInteraction ? 'box-none' : 'none';
46
92
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
47
93
  style: _absoluteFill.ABSOLUTE_FILL,
48
94
  pointerEvents: "box-none",
49
95
  testID: "userflow-tooltip-cutout",
50
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
51
- pointerEvents: "none",
52
- testID: "userflow-tooltip-cutout-top",
53
- style: [styles.block, blockStyle, {
54
- top: 0,
55
- left: 0,
56
- width: sw,
57
- height: Math.max(0, top)
58
- }]
59
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
60
- pointerEvents: "none",
61
- testID: "userflow-tooltip-cutout-left",
62
- style: [styles.block, blockStyle, {
63
- top: Math.max(0, top),
64
- left: 0,
65
- width: Math.max(0, left),
66
- height: Math.max(0, height)
67
- }]
68
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
69
- pointerEvents: "none",
70
- testID: "userflow-tooltip-cutout-right",
71
- style: [styles.block, blockStyle, {
72
- top: Math.max(0, top),
73
- left: Math.max(0, right),
74
- width: Math.max(0, sw - right),
75
- height: Math.max(0, height)
76
- }]
77
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
78
- pointerEvents: "none",
79
- testID: "userflow-tooltip-cutout-bottom",
80
- style: [styles.block, blockStyle, {
81
- top: Math.max(0, bottom),
82
- left: 0,
83
- width: sw,
84
- height: Math.max(0, sh - bottom)
85
- }]
86
- }), targetBlocked ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
96
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
97
+ pointerEvents: dimPointerEvents,
98
+ testID: "userflow-tooltip-cutout-dim",
99
+ style: [_absoluteFill.ABSOLUTE_FILL, {
100
+ opacity: backdropOpacity
101
+ }],
102
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
103
+ pointerEvents: bandPointerEvents,
104
+ testID: "userflow-tooltip-cutout-top",
105
+ style: [styles.block, blockStyle, {
106
+ top: 0,
107
+ left: 0,
108
+ width: sw,
109
+ height: Math.max(0, top)
110
+ }]
111
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
112
+ pointerEvents: bandPointerEvents,
113
+ testID: "userflow-tooltip-cutout-left",
114
+ style: [styles.block, blockStyle, {
115
+ top: Math.max(0, top),
116
+ left: 0,
117
+ width: Math.max(0, left),
118
+ height: Math.max(0, height)
119
+ }]
120
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
121
+ pointerEvents: bandPointerEvents,
122
+ testID: "userflow-tooltip-cutout-right",
123
+ style: [styles.block, blockStyle, {
124
+ top: Math.max(0, top),
125
+ left: Math.max(0, right),
126
+ width: Math.max(0, sw - right),
127
+ height: Math.max(0, height)
128
+ }]
129
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
130
+ pointerEvents: bandPointerEvents,
131
+ testID: "userflow-tooltip-cutout-bottom",
132
+ style: [styles.block, blockStyle, {
133
+ top: Math.max(0, bottom),
134
+ left: 0,
135
+ width: sw,
136
+ height: Math.max(0, sh - bottom)
137
+ }]
138
+ })]
139
+ }), targetBlocked && hole != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
87
140
  pointerEvents: "auto",
88
141
  testID: "userflow-tooltip-target-block",
89
142
  style: [styles.block, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_absoluteFill","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TooltipCutout","targetRect","backdropColor","backdropOpacity","targetBlocked","width","sw","height","sh","Dimensions","top","left","right","bottom","blockStyle","backgroundColor","opacity","jsxs","View","style","ABSOLUTE_FILL","pointerEvents","testID","children","jsx","styles","block","Math","max","StyleSheet","create","position"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipCutout.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_absoluteFill","_surfaceInteractionConfig","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","NO_HOLE","top","left","width","height","clampToScreen","rect","screenWidth","screenHeight","Math","max","bottom","min","right","TooltipCutout","targetRect","backdropColor","backdropOpacity","targetBlocked","sw","sh","Dimensions","hole","blockStyle","backgroundColor","blockInteraction","getSurfaceInteractionBlocking","bandPointerEvents","dimPointerEvents","jsxs","View","style","ABSOLUTE_FILL","pointerEvents","testID","children","opacity","jsx","styles","block","StyleSheet","create","position"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipCutout.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TooltipHighlight = TooltipHighlight;
7
+ exports.buildHighlightRings = buildHighlightRings;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _reactNative = require("react-native");
10
+ var _resolveHighlightChrome = require("../resolveHighlightChrome.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ /**
14
+ * Mobile focus ring for the tooltip hole (mockup: thin brand stroke + soft
15
+ * halo). Web uses one CSS `box-shadow`; RN approximates that with a 2px
16
+ * stroke, one translucent band, and a real blur where the platform can
17
+ * paint a colored shadow (`shadow*` on iOS, `boxShadow` on RN 0.76+).
18
+ *
19
+ * Ring chrome is passed as a style array so `StyleSheet.create` numeric IDs
20
+ * are not object-spread (that drops `position: 'absolute'` on device).
21
+ */
22
+ function TooltipHighlight({
23
+ targetRect,
24
+ chrome
25
+ }) {
26
+ if (!(0, _resolveHighlightChrome.isHighlightVisible)(chrome)) return null;
27
+ const rings = buildHighlightRings(targetRect, chrome);
28
+ if (rings.length === 0) return null;
29
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
30
+ pointerEvents: "none",
31
+ testID: "userflow-tooltip-highlight",
32
+ children: rings.map(ring => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
33
+ pointerEvents: "none",
34
+ testID: ring.testID,
35
+ style: ring.style
36
+ }, ring.testID))
37
+ });
38
+ }
39
+ function buildHighlightRings(rect, chrome) {
40
+ if (rect.width <= 0 || rect.height <= 0) return [];
41
+ const inset = chrome.type === 'INSIDE';
42
+ const rings = [];
43
+ let consumed = 0;
44
+ if (chrome.strokeWidth > 0) {
45
+ const frame = ringFrame(rect, chrome.strokeWidth, consumed, inset, chrome.borderRadius);
46
+ if (frame) {
47
+ rings.push({
48
+ testID: 'userflow-tooltip-highlight-stroke',
49
+ style: [styles.ring, frame, {
50
+ borderWidth: chrome.strokeWidth,
51
+ borderColor: chrome.color,
52
+ ...strokeGlow(chrome)
53
+ }]
54
+ });
55
+ consumed += chrome.strokeWidth;
56
+ }
57
+ }
58
+ if (chrome.radius > 0) {
59
+ const frame = ringFrame(rect, chrome.radius, consumed, inset, chrome.borderRadius);
60
+ if (frame) {
61
+ rings.push({
62
+ testID: 'userflow-tooltip-highlight-glow',
63
+ style: [styles.ring, frame, {
64
+ borderWidth: chrome.radius,
65
+ borderColor: chrome.glowColor
66
+ }]
67
+ });
68
+ }
69
+ }
70
+ return rings;
71
+ }
72
+ function strokeGlow(chrome) {
73
+ const blur = Math.max(chrome.radius, 6);
74
+ const glow = {
75
+ shadowColor: chrome.color,
76
+ shadowOffset: {
77
+ width: 0,
78
+ height: 0
79
+ },
80
+ shadowOpacity: Math.min(0.45, chrome.opacity),
81
+ shadowRadius: blur
82
+ };
83
+ if (_reactNative.Platform?.OS !== 'ios') {
84
+ glow.boxShadow = `0px 0px ${blur}px 0px ${chrome.glowColor}`;
85
+ }
86
+ return glow;
87
+ }
88
+ function ringFrame(rect, borderWidth, alreadyConsumed, inset, cornerRadius) {
89
+ if (borderWidth <= 0) return null;
90
+ const {
91
+ top,
92
+ left,
93
+ width,
94
+ height
95
+ } = rect;
96
+ if (inset) {
97
+ const nextWidth = width - alreadyConsumed * 2;
98
+ const nextHeight = height - alreadyConsumed * 2;
99
+ if (nextWidth < borderWidth * 2 || nextHeight < borderWidth * 2) return null;
100
+ return {
101
+ top: top + alreadyConsumed,
102
+ left: left + alreadyConsumed,
103
+ width: nextWidth,
104
+ height: nextHeight,
105
+ borderRadius: Math.max(0, cornerRadius - alreadyConsumed)
106
+ };
107
+ }
108
+ const outset = alreadyConsumed + borderWidth;
109
+ return {
110
+ top: top - outset,
111
+ left: left - outset,
112
+ width: width + outset * 2,
113
+ height: height + outset * 2,
114
+ borderRadius: cornerRadius + outset
115
+ };
116
+ }
117
+ const styles = _reactNative.StyleSheet.create({
118
+ ring: {
119
+ position: 'absolute',
120
+ backgroundColor: 'transparent',
121
+ overflow: 'visible'
122
+ }
123
+ });
124
+ //# sourceMappingURL=TooltipHighlight.js.map