@userflow-tech/react-native 0.1.1 → 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 (788) hide show
  1. package/README.md +97 -61
  2. package/app.plugin.js +11 -1
  3. package/babel-plugin/index.d.ts +8 -8
  4. package/babel-plugin/index.d.ts.map +1 -1
  5. package/babel-plugin/index.js +17 -9
  6. package/babel-plugin/index.js.map +1 -1
  7. package/babel-plugin.js +13 -0
  8. package/docs/anchoring.md +141 -13
  9. package/docs/deep-linking.md +18 -15
  10. package/docs/theme-mapping.md +44 -15
  11. package/docs/troubleshooting.md +36 -29
  12. package/expo-plugin/withUserflow.js +1 -1
  13. package/expo-plugin/withUserflow.js.map +1 -1
  14. package/lib/commonjs/anchors/AutoAnchorRegistry.js +124 -2
  15. package/lib/commonjs/anchors/AutoAnchorRegistry.js.map +1 -1
  16. package/lib/commonjs/anchors/anchorChangeTicker.js +10 -0
  17. package/lib/commonjs/anchors/anchorChangeTicker.js.map +1 -1
  18. package/lib/commonjs/anchors/elementConditionEvaluator.js +25 -12
  19. package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
  20. package/lib/commonjs/anchors/fiber/FiberScanRoot.js +11 -47
  21. package/lib/commonjs/anchors/fiber/FiberScanRoot.js.map +1 -1
  22. package/lib/commonjs/anchors/fiber/FiberScanRootStore.js +50 -0
  23. package/lib/commonjs/anchors/fiber/FiberScanRootStore.js.map +1 -0
  24. package/lib/commonjs/anchors/fiber/fiberInternals.js +145 -3
  25. package/lib/commonjs/anchors/fiber/fiberInternals.js.map +1 -1
  26. package/lib/commonjs/anchors/fiber/indexHostFibers.js +129 -0
  27. package/lib/commonjs/anchors/fiber/indexHostFibers.js.map +1 -0
  28. package/lib/commonjs/anchors/fiber/readHostContent.js +131 -0
  29. package/lib/commonjs/anchors/fiber/readHostContent.js.map +1 -0
  30. package/lib/commonjs/anchors/fiberAnchorCache.js +50 -0
  31. package/lib/commonjs/anchors/fiberAnchorCache.js.map +1 -0
  32. package/lib/commonjs/anchors/resolveAnchorHost.js +15 -21
  33. package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
  34. package/lib/commonjs/anchors/resolveAutoAnchorHost.js +171 -0
  35. package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -0
  36. package/lib/commonjs/anchors/semanticMatcher.js +285 -0
  37. package/lib/commonjs/anchors/semanticMatcher.js.map +1 -0
  38. package/lib/commonjs/authoring/ElementPickerOverlay.js +490 -0
  39. package/lib/commonjs/authoring/ElementPickerOverlay.js.map +1 -0
  40. package/lib/commonjs/authoring/capturePickerScreenshot.js +73 -0
  41. package/lib/commonjs/authoring/capturePickerScreenshot.js.map +1 -0
  42. package/lib/commonjs/authoring/chrome/ChromeBarTransition.js +94 -0
  43. package/lib/commonjs/authoring/chrome/ChromeBarTransition.js.map +1 -0
  44. package/lib/commonjs/authoring/chrome/ChromeBottomSheet.js +64 -0
  45. package/lib/commonjs/authoring/chrome/ChromeBottomSheet.js.map +1 -0
  46. package/lib/commonjs/authoring/chrome/ChromeButton.js +94 -0
  47. package/lib/commonjs/authoring/chrome/ChromeButton.js.map +1 -0
  48. package/lib/commonjs/authoring/chrome/ChromeDialog.js +131 -0
  49. package/lib/commonjs/authoring/chrome/ChromeDialog.js.map +1 -0
  50. package/lib/commonjs/authoring/chrome/ChromeIcon.js +39 -0
  51. package/lib/commonjs/authoring/chrome/ChromeIcon.js.map +1 -0
  52. package/lib/commonjs/authoring/chrome/ChromeTooltip.js +88 -0
  53. package/lib/commonjs/authoring/chrome/ChromeTooltip.js.map +1 -0
  54. package/lib/commonjs/authoring/chrome/ChromeTopBar.js +110 -0
  55. package/lib/commonjs/authoring/chrome/ChromeTopBar.js.map +1 -0
  56. package/lib/commonjs/authoring/chrome/DoubleTapBridge.js +57 -0
  57. package/lib/commonjs/authoring/chrome/DoubleTapBridge.js.map +1 -0
  58. package/lib/commonjs/authoring/chrome/doubleTapMonitor.js +80 -0
  59. package/lib/commonjs/authoring/chrome/doubleTapMonitor.js.map +1 -0
  60. package/lib/commonjs/authoring/chrome/icons/arrow-left-from-bracket.png +0 -0
  61. package/lib/commonjs/authoring/chrome/icons/arrow-left-from-bracket@2x.png +0 -0
  62. package/lib/commonjs/authoring/chrome/icons/arrow-left-from-bracket@3x.png +0 -0
  63. package/lib/commonjs/authoring/chrome/icons/arrow-rotate-left.png +0 -0
  64. package/lib/commonjs/authoring/chrome/icons/arrow-rotate-left@2x.png +0 -0
  65. package/lib/commonjs/authoring/chrome/icons/arrow-rotate-left@3x.png +0 -0
  66. package/lib/commonjs/authoring/chrome/icons/userflow-logomark.png +0 -0
  67. package/lib/commonjs/authoring/chrome/icons/userflow-logomark@2x.png +0 -0
  68. package/lib/commonjs/authoring/chrome/icons/userflow-logomark@3x.png +0 -0
  69. package/lib/commonjs/authoring/chrome/icons/xmark.png +0 -0
  70. package/lib/commonjs/authoring/chrome/icons/xmark@2x.png +0 -0
  71. package/lib/commonjs/authoring/chrome/icons/xmark@3x.png +0 -0
  72. package/lib/commonjs/authoring/chrome/tokens.js +150 -0
  73. package/lib/commonjs/authoring/chrome/tokens.js.map +1 -0
  74. package/lib/commonjs/authoring/doubleTap.js +23 -0
  75. package/lib/commonjs/authoring/doubleTap.js.map +1 -0
  76. package/lib/commonjs/authoring/elementPickerController.js +102 -0
  77. package/lib/commonjs/authoring/elementPickerController.js.map +1 -0
  78. package/lib/commonjs/authoring/fingerprintFromInstance.js +195 -0
  79. package/lib/commonjs/authoring/fingerprintFromInstance.js.map +1 -0
  80. package/lib/commonjs/authoring/hitTest.js +106 -0
  81. package/lib/commonjs/authoring/hitTest.js.map +1 -0
  82. package/lib/commonjs/content/RichContentRenderer.js +12 -2
  83. package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
  84. package/lib/commonjs/content/StepButton.js +19 -4
  85. package/lib/commonjs/content/StepButton.js.map +1 -1
  86. package/lib/commonjs/content/resolveStepButtonChrome.js +8 -6
  87. package/lib/commonjs/content/resolveStepButtonChrome.js.map +1 -1
  88. package/lib/commonjs/content/themeColor.js +11 -0
  89. package/lib/commonjs/content/themeColor.js.map +1 -1
  90. package/lib/commonjs/deviceContext.js +158 -0
  91. package/lib/commonjs/deviceContext.js.map +1 -0
  92. package/lib/commonjs/expo-router/useUserflowExpoRouter.js +40 -4
  93. package/lib/commonjs/expo-router/useUserflowExpoRouter.js.map +1 -1
  94. package/lib/commonjs/hostAppVersion.js +242 -0
  95. package/lib/commonjs/hostAppVersion.js.map +1 -0
  96. package/lib/commonjs/index.js +118 -5
  97. package/lib/commonjs/index.js.map +1 -1
  98. package/lib/commonjs/lifecycle.js +2 -0
  99. package/lib/commonjs/lifecycle.js.map +1 -1
  100. package/lib/commonjs/navigation/WithUserflowReactNavigation.js +17 -8
  101. package/lib/commonjs/navigation/WithUserflowReactNavigation.js.map +1 -1
  102. package/lib/commonjs/navigation/isOverlayPresentation.js +64 -0
  103. package/lib/commonjs/navigation/isOverlayPresentation.js.map +1 -0
  104. package/lib/commonjs/pairing/PairingController.js +29 -2
  105. package/lib/commonjs/pairing/PairingController.js.map +1 -1
  106. package/lib/commonjs/pairing/PreviewModeBanner.js +211 -84
  107. package/lib/commonjs/pairing/PreviewModeBanner.js.map +1 -1
  108. package/lib/commonjs/pairing/diagnostics.js +9 -0
  109. package/lib/commonjs/pairing/diagnostics.js.map +1 -1
  110. package/lib/commonjs/pairing/elementPickerRelay.js +91 -0
  111. package/lib/commonjs/pairing/elementPickerRelay.js.map +1 -0
  112. package/lib/commonjs/pairing/resolvePreviewChrome.js +52 -0
  113. package/lib/commonjs/pairing/resolvePreviewChrome.js.map +1 -0
  114. package/lib/commonjs/pairing/tokenStorage.js +25 -2
  115. package/lib/commonjs/pairing/tokenStorage.js.map +1 -1
  116. package/lib/commonjs/pairing/usePairingState.js +3 -1
  117. package/lib/commonjs/pairing/usePairingState.js.map +1 -1
  118. package/lib/commonjs/runtime/FlowRenderer.js +45 -21
  119. package/lib/commonjs/runtime/FlowRenderer.js.map +1 -1
  120. package/lib/commonjs/runtime/FlowSurfaceFade.js +47 -24
  121. package/lib/commonjs/runtime/FlowSurfaceFade.js.map +1 -1
  122. package/lib/commonjs/runtime/TargetPressBridge.js +13 -44
  123. package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
  124. package/lib/commonjs/runtime/UserflowProvider.js +74 -20
  125. package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
  126. package/lib/commonjs/runtime/changedTouchPoints.js +48 -0
  127. package/lib/commonjs/runtime/changedTouchPoints.js.map +1 -0
  128. package/lib/commonjs/runtime/flowEngine.js +3 -1
  129. package/lib/commonjs/runtime/flowEngine.js.map +1 -1
  130. package/lib/commonjs/runtime/flowSessionViewState.js +32 -7
  131. package/lib/commonjs/runtime/flowSessionViewState.js.map +1 -1
  132. package/lib/commonjs/runtime/useFlowSessionState.js +2 -1
  133. package/lib/commonjs/runtime/useFlowSessionState.js.map +1 -1
  134. package/lib/commonjs/screenTracker.js +46 -4
  135. package/lib/commonjs/screenTracker.js.map +1 -1
  136. package/lib/commonjs/surfaces/CardFade.js +31 -0
  137. package/lib/commonjs/surfaces/CardFade.js.map +1 -0
  138. package/lib/commonjs/surfaces/CloseButton.js +11 -6
  139. package/lib/commonjs/surfaces/CloseButton.js.map +1 -1
  140. package/lib/commonjs/surfaces/ModalSurface.js +50 -34
  141. package/lib/commonjs/surfaces/ModalSurface.js.map +1 -1
  142. package/lib/commonjs/surfaces/TooltipSurface.js +366 -87
  143. package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
  144. package/lib/commonjs/surfaces/cardTransition.js +70 -0
  145. package/lib/commonjs/surfaces/cardTransition.js.map +1 -0
  146. package/lib/commonjs/surfaces/resolveHighlightChrome.js +109 -0
  147. package/lib/commonjs/surfaces/resolveHighlightChrome.js.map +1 -0
  148. package/lib/commonjs/surfaces/resolveModalLayout.js +7 -3
  149. package/lib/commonjs/surfaces/resolveModalLayout.js.map +1 -1
  150. package/lib/commonjs/surfaces/resolveTooltipLayout.js +0 -4
  151. package/lib/commonjs/surfaces/resolveTooltipLayout.js.map +1 -1
  152. package/lib/commonjs/surfaces/surfaceInteractionConfig.js +33 -0
  153. package/lib/commonjs/surfaces/surfaceInteractionConfig.js.map +1 -0
  154. package/lib/commonjs/surfaces/surfaceLayoutInsets.js +128 -0
  155. package/lib/commonjs/surfaces/surfaceLayoutInsets.js.map +1 -0
  156. package/lib/commonjs/surfaces/themeChrome.js +4 -1
  157. package/lib/commonjs/surfaces/themeChrome.js.map +1 -1
  158. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js +142 -21
  159. package/lib/commonjs/surfaces/tooltip/TooltipBubble.js.map +1 -1
  160. package/lib/commonjs/surfaces/tooltip/TooltipCutout.js +100 -47
  161. package/lib/commonjs/surfaces/tooltip/TooltipCutout.js.map +1 -1
  162. package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js +124 -0
  163. package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js.map +1 -0
  164. package/lib/commonjs/surfaces/tooltip/computeTooltipPosition.js +67 -13
  165. package/lib/commonjs/surfaces/tooltip/computeTooltipPosition.js.map +1 -1
  166. package/lib/commonjs/surfaces/tooltip/inferTooltipPlacement.js +88 -19
  167. package/lib/commonjs/surfaces/tooltip/inferTooltipPlacement.js.map +1 -1
  168. package/lib/commonjs/surfaces/tooltip/placementDiagnostics.js +52 -0
  169. package/lib/commonjs/surfaces/tooltip/placementDiagnostics.js.map +1 -0
  170. package/lib/commonjs/surfaces/tooltip/rect.js +12 -0
  171. package/lib/commonjs/surfaces/tooltip/rect.js.map +1 -1
  172. package/lib/commonjs/surfaces/tooltip/resolveSideCardWidth.js +103 -0
  173. package/lib/commonjs/surfaces/tooltip/resolveSideCardWidth.js.map +1 -0
  174. package/lib/commonjs/version.js +1 -1
  175. package/lib/module/anchors/AutoAnchorRegistry.js +125 -2
  176. package/lib/module/anchors/AutoAnchorRegistry.js.map +1 -1
  177. package/lib/module/anchors/anchorChangeTicker.js +10 -0
  178. package/lib/module/anchors/anchorChangeTicker.js.map +1 -1
  179. package/lib/module/anchors/elementConditionEvaluator.js +25 -12
  180. package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
  181. package/lib/module/anchors/fiber/FiberScanRoot.js +2 -43
  182. package/lib/module/anchors/fiber/FiberScanRoot.js.map +1 -1
  183. package/lib/module/anchors/fiber/FiberScanRootStore.js +46 -0
  184. package/lib/module/anchors/fiber/FiberScanRootStore.js.map +1 -0
  185. package/lib/module/anchors/fiber/fiberInternals.js +139 -3
  186. package/lib/module/anchors/fiber/fiberInternals.js.map +1 -1
  187. package/lib/module/anchors/fiber/indexHostFibers.js +122 -0
  188. package/lib/module/anchors/fiber/indexHostFibers.js.map +1 -0
  189. package/lib/module/anchors/fiber/readHostContent.js +127 -0
  190. package/lib/module/anchors/fiber/readHostContent.js.map +1 -0
  191. package/lib/module/anchors/fiberAnchorCache.js +40 -0
  192. package/lib/module/anchors/fiberAnchorCache.js.map +1 -0
  193. package/lib/module/anchors/resolveAnchorHost.js +15 -21
  194. package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
  195. package/lib/module/anchors/resolveAutoAnchorHost.js +167 -0
  196. package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -0
  197. package/lib/module/anchors/semanticMatcher.js +280 -0
  198. package/lib/module/anchors/semanticMatcher.js.map +1 -0
  199. package/lib/module/authoring/ElementPickerOverlay.js +485 -0
  200. package/lib/module/authoring/ElementPickerOverlay.js.map +1 -0
  201. package/lib/module/authoring/capturePickerScreenshot.js +68 -0
  202. package/lib/module/authoring/capturePickerScreenshot.js.map +1 -0
  203. package/lib/module/authoring/chrome/ChromeBarTransition.js +88 -0
  204. package/lib/module/authoring/chrome/ChromeBarTransition.js.map +1 -0
  205. package/lib/module/authoring/chrome/ChromeBottomSheet.js +59 -0
  206. package/lib/module/authoring/chrome/ChromeBottomSheet.js.map +1 -0
  207. package/lib/module/authoring/chrome/ChromeButton.js +89 -0
  208. package/lib/module/authoring/chrome/ChromeButton.js.map +1 -0
  209. package/lib/module/authoring/chrome/ChromeDialog.js +126 -0
  210. package/lib/module/authoring/chrome/ChromeDialog.js.map +1 -0
  211. package/lib/module/authoring/chrome/ChromeIcon.js +33 -0
  212. package/lib/module/authoring/chrome/ChromeIcon.js.map +1 -0
  213. package/lib/module/authoring/chrome/ChromeTooltip.js +82 -0
  214. package/lib/module/authoring/chrome/ChromeTooltip.js.map +1 -0
  215. package/lib/module/authoring/chrome/ChromeTopBar.js +104 -0
  216. package/lib/module/authoring/chrome/ChromeTopBar.js.map +1 -0
  217. package/lib/module/authoring/chrome/DoubleTapBridge.js +52 -0
  218. package/lib/module/authoring/chrome/DoubleTapBridge.js.map +1 -0
  219. package/lib/module/authoring/chrome/doubleTapMonitor.js +75 -0
  220. package/lib/module/authoring/chrome/doubleTapMonitor.js.map +1 -0
  221. package/lib/module/authoring/chrome/icons/arrow-left-from-bracket.png +0 -0
  222. package/lib/module/authoring/chrome/icons/arrow-left-from-bracket@2x.png +0 -0
  223. package/lib/module/authoring/chrome/icons/arrow-left-from-bracket@3x.png +0 -0
  224. package/lib/module/authoring/chrome/icons/arrow-rotate-left.png +0 -0
  225. package/lib/module/authoring/chrome/icons/arrow-rotate-left@2x.png +0 -0
  226. package/lib/module/authoring/chrome/icons/arrow-rotate-left@3x.png +0 -0
  227. package/lib/module/authoring/chrome/icons/userflow-logomark.png +0 -0
  228. package/lib/module/authoring/chrome/icons/userflow-logomark@2x.png +0 -0
  229. package/lib/module/authoring/chrome/icons/userflow-logomark@3x.png +0 -0
  230. package/lib/module/authoring/chrome/icons/xmark.png +0 -0
  231. package/lib/module/authoring/chrome/icons/xmark@2x.png +0 -0
  232. package/lib/module/authoring/chrome/icons/xmark@3x.png +0 -0
  233. package/lib/module/authoring/chrome/tokens.js +146 -0
  234. package/lib/module/authoring/chrome/tokens.js.map +1 -0
  235. package/lib/module/authoring/doubleTap.js +18 -0
  236. package/lib/module/authoring/doubleTap.js.map +1 -0
  237. package/lib/module/authoring/elementPickerController.js +97 -0
  238. package/lib/module/authoring/elementPickerController.js.map +1 -0
  239. package/lib/module/authoring/fingerprintFromInstance.js +187 -0
  240. package/lib/module/authoring/fingerprintFromInstance.js.map +1 -0
  241. package/lib/module/authoring/hitTest.js +100 -0
  242. package/lib/module/authoring/hitTest.js.map +1 -0
  243. package/lib/module/content/RichContentRenderer.js +12 -2
  244. package/lib/module/content/RichContentRenderer.js.map +1 -1
  245. package/lib/module/content/StepButton.js +19 -4
  246. package/lib/module/content/StepButton.js.map +1 -1
  247. package/lib/module/content/resolveStepButtonChrome.js +8 -6
  248. package/lib/module/content/resolveStepButtonChrome.js.map +1 -1
  249. package/lib/module/content/themeColor.js +10 -0
  250. package/lib/module/content/themeColor.js.map +1 -1
  251. package/lib/module/deviceContext.js +142 -0
  252. package/lib/module/deviceContext.js.map +1 -0
  253. package/lib/module/expo-router/useUserflowExpoRouter.js +42 -6
  254. package/lib/module/expo-router/useUserflowExpoRouter.js.map +1 -1
  255. package/lib/module/hostAppVersion.js +225 -0
  256. package/lib/module/hostAppVersion.js.map +1 -0
  257. package/lib/module/index.js +119 -6
  258. package/lib/module/index.js.map +1 -1
  259. package/lib/module/lifecycle.js +2 -0
  260. package/lib/module/lifecycle.js.map +1 -1
  261. package/lib/module/navigation/WithUserflowReactNavigation.js +18 -9
  262. package/lib/module/navigation/WithUserflowReactNavigation.js.map +1 -1
  263. package/lib/module/navigation/isOverlayPresentation.js +58 -0
  264. package/lib/module/navigation/isOverlayPresentation.js.map +1 -0
  265. package/lib/module/pairing/PairingController.js +30 -3
  266. package/lib/module/pairing/PairingController.js.map +1 -1
  267. package/lib/module/pairing/PreviewModeBanner.js +212 -85
  268. package/lib/module/pairing/PreviewModeBanner.js.map +1 -1
  269. package/lib/module/pairing/diagnostics.js +8 -0
  270. package/lib/module/pairing/diagnostics.js.map +1 -1
  271. package/lib/module/pairing/elementPickerRelay.js +87 -0
  272. package/lib/module/pairing/elementPickerRelay.js.map +1 -0
  273. package/lib/module/pairing/resolvePreviewChrome.js +48 -0
  274. package/lib/module/pairing/resolvePreviewChrome.js.map +1 -0
  275. package/lib/module/pairing/tokenStorage.js +24 -2
  276. package/lib/module/pairing/tokenStorage.js.map +1 -1
  277. package/lib/module/pairing/usePairingState.js +3 -1
  278. package/lib/module/pairing/usePairingState.js.map +1 -1
  279. package/lib/module/runtime/FlowRenderer.js +45 -21
  280. package/lib/module/runtime/FlowRenderer.js.map +1 -1
  281. package/lib/module/runtime/FlowSurfaceFade.js +49 -26
  282. package/lib/module/runtime/FlowSurfaceFade.js.map +1 -1
  283. package/lib/module/runtime/TargetPressBridge.js +12 -43
  284. package/lib/module/runtime/TargetPressBridge.js.map +1 -1
  285. package/lib/module/runtime/UserflowProvider.js +74 -20
  286. package/lib/module/runtime/UserflowProvider.js.map +1 -1
  287. package/lib/module/runtime/changedTouchPoints.js +43 -0
  288. package/lib/module/runtime/changedTouchPoints.js.map +1 -0
  289. package/lib/module/runtime/flowEngine.js +3 -1
  290. package/lib/module/runtime/flowEngine.js.map +1 -1
  291. package/lib/module/runtime/flowSessionViewState.js +32 -7
  292. package/lib/module/runtime/flowSessionViewState.js.map +1 -1
  293. package/lib/module/runtime/useFlowSessionState.js +2 -1
  294. package/lib/module/runtime/useFlowSessionState.js.map +1 -1
  295. package/lib/module/screenTracker.js +42 -4
  296. package/lib/module/screenTracker.js.map +1 -1
  297. package/lib/module/surfaces/CardFade.js +26 -0
  298. package/lib/module/surfaces/CardFade.js.map +1 -0
  299. package/lib/module/surfaces/CloseButton.js +10 -6
  300. package/lib/module/surfaces/CloseButton.js.map +1 -1
  301. package/lib/module/surfaces/ModalSurface.js +52 -36
  302. package/lib/module/surfaces/ModalSurface.js.map +1 -1
  303. package/lib/module/surfaces/TooltipSurface.js +368 -90
  304. package/lib/module/surfaces/TooltipSurface.js.map +1 -1
  305. package/lib/module/surfaces/cardTransition.js +64 -0
  306. package/lib/module/surfaces/cardTransition.js.map +1 -0
  307. package/lib/module/surfaces/resolveHighlightChrome.js +102 -0
  308. package/lib/module/surfaces/resolveHighlightChrome.js.map +1 -0
  309. package/lib/module/surfaces/resolveModalLayout.js +7 -3
  310. package/lib/module/surfaces/resolveModalLayout.js.map +1 -1
  311. package/lib/module/surfaces/resolveTooltipLayout.js +1 -4
  312. package/lib/module/surfaces/resolveTooltipLayout.js.map +1 -1
  313. package/lib/module/surfaces/surfaceInteractionConfig.js +27 -0
  314. package/lib/module/surfaces/surfaceInteractionConfig.js.map +1 -0
  315. package/lib/module/surfaces/surfaceLayoutInsets.js +119 -0
  316. package/lib/module/surfaces/surfaceLayoutInsets.js.map +1 -0
  317. package/lib/module/surfaces/themeChrome.js +3 -1
  318. package/lib/module/surfaces/themeChrome.js.map +1 -1
  319. package/lib/module/surfaces/tooltip/TooltipBubble.js +143 -22
  320. package/lib/module/surfaces/tooltip/TooltipBubble.js.map +1 -1
  321. package/lib/module/surfaces/tooltip/TooltipCutout.js +100 -47
  322. package/lib/module/surfaces/tooltip/TooltipCutout.js.map +1 -1
  323. package/lib/module/surfaces/tooltip/TooltipHighlight.js +118 -0
  324. package/lib/module/surfaces/tooltip/TooltipHighlight.js.map +1 -0
  325. package/lib/module/surfaces/tooltip/computeTooltipPosition.js +67 -13
  326. package/lib/module/surfaces/tooltip/computeTooltipPosition.js.map +1 -1
  327. package/lib/module/surfaces/tooltip/inferTooltipPlacement.js +87 -19
  328. package/lib/module/surfaces/tooltip/inferTooltipPlacement.js.map +1 -1
  329. package/lib/module/surfaces/tooltip/placementDiagnostics.js +43 -0
  330. package/lib/module/surfaces/tooltip/placementDiagnostics.js.map +1 -0
  331. package/lib/module/surfaces/tooltip/rect.js +11 -0
  332. package/lib/module/surfaces/tooltip/rect.js.map +1 -1
  333. package/lib/module/surfaces/tooltip/resolveSideCardWidth.js +96 -0
  334. package/lib/module/surfaces/tooltip/resolveSideCardWidth.js.map +1 -0
  335. package/lib/module/version.js +1 -1
  336. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts +26 -0
  337. package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  338. package/lib/typescript/commonjs/src/anchors/anchorChangeTicker.d.ts +2 -0
  339. package/lib/typescript/commonjs/src/anchors/anchorChangeTicker.d.ts.map +1 -1
  340. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts +14 -10
  341. package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRoot.d.ts +1 -20
  343. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRoot.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts +21 -0
  345. package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -0
  346. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts +42 -1
  347. package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  348. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts +42 -0
  349. package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts.map +1 -0
  350. package/lib/typescript/commonjs/src/anchors/fiber/readHostContent.d.ts +17 -0
  351. package/lib/typescript/commonjs/src/anchors/fiber/readHostContent.d.ts.map +1 -0
  352. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts +20 -0
  353. package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts.map +1 -0
  354. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +5 -5
  355. package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  356. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +38 -0
  357. package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -0
  358. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts +48 -0
  359. package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts.map +1 -0
  360. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts +7 -0
  361. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts.map +1 -0
  362. package/lib/typescript/commonjs/src/authoring/capturePickerScreenshot.d.ts +11 -0
  363. package/lib/typescript/commonjs/src/authoring/capturePickerScreenshot.d.ts.map +1 -0
  364. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBarTransition.d.ts +32 -0
  365. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBarTransition.d.ts.map +1 -0
  366. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBottomSheet.d.ts +13 -0
  367. package/lib/typescript/commonjs/src/authoring/chrome/ChromeBottomSheet.d.ts.map +1 -0
  368. package/lib/typescript/commonjs/src/authoring/chrome/ChromeButton.d.ts +20 -0
  369. package/lib/typescript/commonjs/src/authoring/chrome/ChromeButton.d.ts.map +1 -0
  370. package/lib/typescript/commonjs/src/authoring/chrome/ChromeDialog.d.ts +14 -0
  371. package/lib/typescript/commonjs/src/authoring/chrome/ChromeDialog.d.ts.map +1 -0
  372. package/lib/typescript/commonjs/src/authoring/chrome/ChromeIcon.d.ts +13 -0
  373. package/lib/typescript/commonjs/src/authoring/chrome/ChromeIcon.d.ts.map +1 -0
  374. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTooltip.d.ts +17 -0
  375. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTooltip.d.ts.map +1 -0
  376. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTopBar.d.ts +25 -0
  377. package/lib/typescript/commonjs/src/authoring/chrome/ChromeTopBar.d.ts.map +1 -0
  378. package/lib/typescript/commonjs/src/authoring/chrome/DoubleTapBridge.d.ts +12 -0
  379. package/lib/typescript/commonjs/src/authoring/chrome/DoubleTapBridge.d.ts.map +1 -0
  380. package/lib/typescript/commonjs/src/authoring/chrome/doubleTapMonitor.d.ts +26 -0
  381. package/lib/typescript/commonjs/src/authoring/chrome/doubleTapMonitor.d.ts.map +1 -0
  382. package/lib/typescript/commonjs/src/authoring/chrome/tokens.d.ts +141 -0
  383. package/lib/typescript/commonjs/src/authoring/chrome/tokens.d.ts.map +1 -0
  384. package/lib/typescript/commonjs/src/authoring/doubleTap.d.ts +14 -0
  385. package/lib/typescript/commonjs/src/authoring/doubleTap.d.ts.map +1 -0
  386. package/lib/typescript/commonjs/src/authoring/elementPickerController.d.ts +59 -0
  387. package/lib/typescript/commonjs/src/authoring/elementPickerController.d.ts.map +1 -0
  388. package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts +26 -0
  389. package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts.map +1 -0
  390. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts +31 -0
  391. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts.map +1 -0
  392. package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts +6 -1
  393. package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
  394. package/lib/typescript/commonjs/src/content/StepButton.d.ts.map +1 -1
  395. package/lib/typescript/commonjs/src/content/resolveStepButtonChrome.d.ts.map +1 -1
  396. package/lib/typescript/commonjs/src/content/themeColor.d.ts +5 -0
  397. package/lib/typescript/commonjs/src/content/themeColor.d.ts.map +1 -1
  398. package/lib/typescript/commonjs/src/deviceContext.d.ts +66 -0
  399. package/lib/typescript/commonjs/src/deviceContext.d.ts.map +1 -0
  400. package/lib/typescript/commonjs/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  401. package/lib/typescript/commonjs/src/hostAppVersion.d.ts +69 -0
  402. package/lib/typescript/commonjs/src/hostAppVersion.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/index.d.ts +53 -2
  404. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  405. package/lib/typescript/commonjs/src/lifecycle.d.ts +6 -0
  406. package/lib/typescript/commonjs/src/lifecycle.d.ts.map +1 -1
  407. package/lib/typescript/commonjs/src/navigation/WithUserflowReactNavigation.d.ts.map +1 -1
  408. package/lib/typescript/commonjs/src/navigation/isOverlayPresentation.d.ts +14 -0
  409. package/lib/typescript/commonjs/src/navigation/isOverlayPresentation.d.ts.map +1 -0
  410. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +7 -0
  411. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
  412. package/lib/typescript/commonjs/src/pairing/PreviewModeBanner.d.ts +6 -1
  413. package/lib/typescript/commonjs/src/pairing/PreviewModeBanner.d.ts.map +1 -1
  414. package/lib/typescript/commonjs/src/pairing/diagnostics.d.ts +5 -0
  415. package/lib/typescript/commonjs/src/pairing/diagnostics.d.ts.map +1 -1
  416. package/lib/typescript/commonjs/src/pairing/elementPickerRelay.d.ts +11 -0
  417. package/lib/typescript/commonjs/src/pairing/elementPickerRelay.d.ts.map +1 -0
  418. package/lib/typescript/commonjs/src/pairing/resolvePreviewChrome.d.ts +16 -0
  419. package/lib/typescript/commonjs/src/pairing/resolvePreviewChrome.d.ts.map +1 -0
  420. package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts +2 -0
  421. package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts.map +1 -1
  422. package/lib/typescript/commonjs/src/pairing/usePairingState.d.ts.map +1 -1
  423. package/lib/typescript/commonjs/src/runtime/FlowRenderer.d.ts +6 -3
  424. package/lib/typescript/commonjs/src/runtime/FlowRenderer.d.ts.map +1 -1
  425. package/lib/typescript/commonjs/src/runtime/FlowSurfaceFade.d.ts +20 -7
  426. package/lib/typescript/commonjs/src/runtime/FlowSurfaceFade.d.ts.map +1 -1
  427. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +5 -1
  428. package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
  429. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts +6 -4
  430. package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
  431. package/lib/typescript/commonjs/src/runtime/changedTouchPoints.d.ts +10 -0
  432. package/lib/typescript/commonjs/src/runtime/changedTouchPoints.d.ts.map +1 -0
  433. package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts.map +1 -1
  434. package/lib/typescript/commonjs/src/runtime/flowSessionViewState.d.ts +12 -3
  435. package/lib/typescript/commonjs/src/runtime/flowSessionViewState.d.ts.map +1 -1
  436. package/lib/typescript/commonjs/src/runtime/useFlowSessionState.d.ts +1 -0
  437. package/lib/typescript/commonjs/src/runtime/useFlowSessionState.d.ts.map +1 -1
  438. package/lib/typescript/commonjs/src/screenTracker.d.ts +21 -3
  439. package/lib/typescript/commonjs/src/screenTracker.d.ts.map +1 -1
  440. package/lib/typescript/commonjs/src/surfaces/CardFade.d.ts +12 -0
  441. package/lib/typescript/commonjs/src/surfaces/CardFade.d.ts.map +1 -0
  442. package/lib/typescript/commonjs/src/surfaces/CloseButton.d.ts +8 -2
  443. package/lib/typescript/commonjs/src/surfaces/CloseButton.d.ts.map +1 -1
  444. package/lib/typescript/commonjs/src/surfaces/MadeWithUserflow.d.ts +1 -1
  445. package/lib/typescript/commonjs/src/surfaces/ModalSurface.d.ts +1 -1
  446. package/lib/typescript/commonjs/src/surfaces/ModalSurface.d.ts.map +1 -1
  447. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts +12 -1
  448. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
  449. package/lib/typescript/commonjs/src/surfaces/cardTransition.d.ts +31 -0
  450. package/lib/typescript/commonjs/src/surfaces/cardTransition.d.ts.map +1 -0
  451. package/lib/typescript/commonjs/src/surfaces/resolveHighlightChrome.d.ts +44 -0
  452. package/lib/typescript/commonjs/src/surfaces/resolveHighlightChrome.d.ts.map +1 -0
  453. package/lib/typescript/commonjs/src/surfaces/resolveModalLayout.d.ts +1 -1
  454. package/lib/typescript/commonjs/src/surfaces/resolveModalLayout.d.ts.map +1 -1
  455. package/lib/typescript/commonjs/src/surfaces/resolveTooltipLayout.d.ts +0 -7
  456. package/lib/typescript/commonjs/src/surfaces/resolveTooltipLayout.d.ts.map +1 -1
  457. package/lib/typescript/commonjs/src/surfaces/surfaceInteractionConfig.d.ts +15 -0
  458. package/lib/typescript/commonjs/src/surfaces/surfaceInteractionConfig.d.ts.map +1 -0
  459. package/lib/typescript/commonjs/src/surfaces/surfaceLayoutInsets.d.ts +38 -0
  460. package/lib/typescript/commonjs/src/surfaces/surfaceLayoutInsets.d.ts.map +1 -0
  461. package/lib/typescript/commonjs/src/surfaces/themeChrome.d.ts +3 -1
  462. package/lib/typescript/commonjs/src/surfaces/themeChrome.d.ts.map +1 -1
  463. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts +21 -6
  464. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  465. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipCutout.d.ts +18 -10
  466. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipCutout.d.ts.map +1 -1
  467. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipHighlight.d.ts +25 -0
  468. package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipHighlight.d.ts.map +1 -0
  469. package/lib/typescript/commonjs/src/surfaces/tooltip/computeTooltipPosition.d.ts +23 -0
  470. package/lib/typescript/commonjs/src/surfaces/tooltip/computeTooltipPosition.d.ts.map +1 -1
  471. package/lib/typescript/commonjs/src/surfaces/tooltip/inferTooltipPlacement.d.ts +47 -1
  472. package/lib/typescript/commonjs/src/surfaces/tooltip/inferTooltipPlacement.d.ts.map +1 -1
  473. package/lib/typescript/commonjs/src/surfaces/tooltip/placementDiagnostics.d.ts +39 -0
  474. package/lib/typescript/commonjs/src/surfaces/tooltip/placementDiagnostics.d.ts.map +1 -0
  475. package/lib/typescript/commonjs/src/surfaces/tooltip/rect.d.ts +2 -0
  476. package/lib/typescript/commonjs/src/surfaces/tooltip/rect.d.ts.map +1 -1
  477. package/lib/typescript/commonjs/src/surfaces/tooltip/resolveSideCardWidth.d.ts +76 -0
  478. package/lib/typescript/commonjs/src/surfaces/tooltip/resolveSideCardWidth.d.ts.map +1 -0
  479. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  480. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts +26 -0
  481. package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
  482. package/lib/typescript/module/src/anchors/anchorChangeTicker.d.ts +2 -0
  483. package/lib/typescript/module/src/anchors/anchorChangeTicker.d.ts.map +1 -1
  484. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts +14 -10
  485. package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
  486. package/lib/typescript/module/src/anchors/fiber/FiberScanRoot.d.ts +1 -20
  487. package/lib/typescript/module/src/anchors/fiber/FiberScanRoot.d.ts.map +1 -1
  488. package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts +21 -0
  489. package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -0
  490. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts +42 -1
  491. package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
  492. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts +42 -0
  493. package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts.map +1 -0
  494. package/lib/typescript/module/src/anchors/fiber/readHostContent.d.ts +17 -0
  495. package/lib/typescript/module/src/anchors/fiber/readHostContent.d.ts.map +1 -0
  496. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts +20 -0
  497. package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts.map +1 -0
  498. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +5 -5
  499. package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
  500. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +38 -0
  501. package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -0
  502. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts +48 -0
  503. package/lib/typescript/module/src/anchors/semanticMatcher.d.ts.map +1 -0
  504. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts +7 -0
  505. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts.map +1 -0
  506. package/lib/typescript/module/src/authoring/capturePickerScreenshot.d.ts +11 -0
  507. package/lib/typescript/module/src/authoring/capturePickerScreenshot.d.ts.map +1 -0
  508. package/lib/typescript/module/src/authoring/chrome/ChromeBarTransition.d.ts +32 -0
  509. package/lib/typescript/module/src/authoring/chrome/ChromeBarTransition.d.ts.map +1 -0
  510. package/lib/typescript/module/src/authoring/chrome/ChromeBottomSheet.d.ts +13 -0
  511. package/lib/typescript/module/src/authoring/chrome/ChromeBottomSheet.d.ts.map +1 -0
  512. package/lib/typescript/module/src/authoring/chrome/ChromeButton.d.ts +20 -0
  513. package/lib/typescript/module/src/authoring/chrome/ChromeButton.d.ts.map +1 -0
  514. package/lib/typescript/module/src/authoring/chrome/ChromeDialog.d.ts +14 -0
  515. package/lib/typescript/module/src/authoring/chrome/ChromeDialog.d.ts.map +1 -0
  516. package/lib/typescript/module/src/authoring/chrome/ChromeIcon.d.ts +13 -0
  517. package/lib/typescript/module/src/authoring/chrome/ChromeIcon.d.ts.map +1 -0
  518. package/lib/typescript/module/src/authoring/chrome/ChromeTooltip.d.ts +17 -0
  519. package/lib/typescript/module/src/authoring/chrome/ChromeTooltip.d.ts.map +1 -0
  520. package/lib/typescript/module/src/authoring/chrome/ChromeTopBar.d.ts +25 -0
  521. package/lib/typescript/module/src/authoring/chrome/ChromeTopBar.d.ts.map +1 -0
  522. package/lib/typescript/module/src/authoring/chrome/DoubleTapBridge.d.ts +12 -0
  523. package/lib/typescript/module/src/authoring/chrome/DoubleTapBridge.d.ts.map +1 -0
  524. package/lib/typescript/module/src/authoring/chrome/doubleTapMonitor.d.ts +26 -0
  525. package/lib/typescript/module/src/authoring/chrome/doubleTapMonitor.d.ts.map +1 -0
  526. package/lib/typescript/module/src/authoring/chrome/tokens.d.ts +141 -0
  527. package/lib/typescript/module/src/authoring/chrome/tokens.d.ts.map +1 -0
  528. package/lib/typescript/module/src/authoring/doubleTap.d.ts +14 -0
  529. package/lib/typescript/module/src/authoring/doubleTap.d.ts.map +1 -0
  530. package/lib/typescript/module/src/authoring/elementPickerController.d.ts +59 -0
  531. package/lib/typescript/module/src/authoring/elementPickerController.d.ts.map +1 -0
  532. package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts +26 -0
  533. package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts.map +1 -0
  534. package/lib/typescript/module/src/authoring/hitTest.d.ts +31 -0
  535. package/lib/typescript/module/src/authoring/hitTest.d.ts.map +1 -0
  536. package/lib/typescript/module/src/content/RichContentRenderer.d.ts +6 -1
  537. package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
  538. package/lib/typescript/module/src/content/StepButton.d.ts.map +1 -1
  539. package/lib/typescript/module/src/content/resolveStepButtonChrome.d.ts.map +1 -1
  540. package/lib/typescript/module/src/content/themeColor.d.ts +5 -0
  541. package/lib/typescript/module/src/content/themeColor.d.ts.map +1 -1
  542. package/lib/typescript/module/src/deviceContext.d.ts +66 -0
  543. package/lib/typescript/module/src/deviceContext.d.ts.map +1 -0
  544. package/lib/typescript/module/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
  545. package/lib/typescript/module/src/hostAppVersion.d.ts +69 -0
  546. package/lib/typescript/module/src/hostAppVersion.d.ts.map +1 -0
  547. package/lib/typescript/module/src/index.d.ts +53 -2
  548. package/lib/typescript/module/src/index.d.ts.map +1 -1
  549. package/lib/typescript/module/src/lifecycle.d.ts +6 -0
  550. package/lib/typescript/module/src/lifecycle.d.ts.map +1 -1
  551. package/lib/typescript/module/src/navigation/WithUserflowReactNavigation.d.ts.map +1 -1
  552. package/lib/typescript/module/src/navigation/isOverlayPresentation.d.ts +14 -0
  553. package/lib/typescript/module/src/navigation/isOverlayPresentation.d.ts.map +1 -0
  554. package/lib/typescript/module/src/pairing/PairingController.d.ts +7 -0
  555. package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
  556. package/lib/typescript/module/src/pairing/PreviewModeBanner.d.ts +6 -1
  557. package/lib/typescript/module/src/pairing/PreviewModeBanner.d.ts.map +1 -1
  558. package/lib/typescript/module/src/pairing/diagnostics.d.ts +5 -0
  559. package/lib/typescript/module/src/pairing/diagnostics.d.ts.map +1 -1
  560. package/lib/typescript/module/src/pairing/elementPickerRelay.d.ts +11 -0
  561. package/lib/typescript/module/src/pairing/elementPickerRelay.d.ts.map +1 -0
  562. package/lib/typescript/module/src/pairing/resolvePreviewChrome.d.ts +16 -0
  563. package/lib/typescript/module/src/pairing/resolvePreviewChrome.d.ts.map +1 -0
  564. package/lib/typescript/module/src/pairing/tokenStorage.d.ts +2 -0
  565. package/lib/typescript/module/src/pairing/tokenStorage.d.ts.map +1 -1
  566. package/lib/typescript/module/src/pairing/usePairingState.d.ts.map +1 -1
  567. package/lib/typescript/module/src/runtime/FlowRenderer.d.ts +6 -3
  568. package/lib/typescript/module/src/runtime/FlowRenderer.d.ts.map +1 -1
  569. package/lib/typescript/module/src/runtime/FlowSurfaceFade.d.ts +20 -7
  570. package/lib/typescript/module/src/runtime/FlowSurfaceFade.d.ts.map +1 -1
  571. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +5 -1
  572. package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
  573. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts +6 -4
  574. package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
  575. package/lib/typescript/module/src/runtime/changedTouchPoints.d.ts +10 -0
  576. package/lib/typescript/module/src/runtime/changedTouchPoints.d.ts.map +1 -0
  577. package/lib/typescript/module/src/runtime/flowEngine.d.ts.map +1 -1
  578. package/lib/typescript/module/src/runtime/flowSessionViewState.d.ts +12 -3
  579. package/lib/typescript/module/src/runtime/flowSessionViewState.d.ts.map +1 -1
  580. package/lib/typescript/module/src/runtime/useFlowSessionState.d.ts +1 -0
  581. package/lib/typescript/module/src/runtime/useFlowSessionState.d.ts.map +1 -1
  582. package/lib/typescript/module/src/screenTracker.d.ts +21 -3
  583. package/lib/typescript/module/src/screenTracker.d.ts.map +1 -1
  584. package/lib/typescript/module/src/surfaces/CardFade.d.ts +12 -0
  585. package/lib/typescript/module/src/surfaces/CardFade.d.ts.map +1 -0
  586. package/lib/typescript/module/src/surfaces/CloseButton.d.ts +8 -2
  587. package/lib/typescript/module/src/surfaces/CloseButton.d.ts.map +1 -1
  588. package/lib/typescript/module/src/surfaces/MadeWithUserflow.d.ts +1 -1
  589. package/lib/typescript/module/src/surfaces/ModalSurface.d.ts +1 -1
  590. package/lib/typescript/module/src/surfaces/ModalSurface.d.ts.map +1 -1
  591. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts +12 -1
  592. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
  593. package/lib/typescript/module/src/surfaces/cardTransition.d.ts +31 -0
  594. package/lib/typescript/module/src/surfaces/cardTransition.d.ts.map +1 -0
  595. package/lib/typescript/module/src/surfaces/resolveHighlightChrome.d.ts +44 -0
  596. package/lib/typescript/module/src/surfaces/resolveHighlightChrome.d.ts.map +1 -0
  597. package/lib/typescript/module/src/surfaces/resolveModalLayout.d.ts +1 -1
  598. package/lib/typescript/module/src/surfaces/resolveModalLayout.d.ts.map +1 -1
  599. package/lib/typescript/module/src/surfaces/resolveTooltipLayout.d.ts +0 -7
  600. package/lib/typescript/module/src/surfaces/resolveTooltipLayout.d.ts.map +1 -1
  601. package/lib/typescript/module/src/surfaces/surfaceInteractionConfig.d.ts +15 -0
  602. package/lib/typescript/module/src/surfaces/surfaceInteractionConfig.d.ts.map +1 -0
  603. package/lib/typescript/module/src/surfaces/surfaceLayoutInsets.d.ts +38 -0
  604. package/lib/typescript/module/src/surfaces/surfaceLayoutInsets.d.ts.map +1 -0
  605. package/lib/typescript/module/src/surfaces/themeChrome.d.ts +3 -1
  606. package/lib/typescript/module/src/surfaces/themeChrome.d.ts.map +1 -1
  607. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts +21 -6
  608. package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
  609. package/lib/typescript/module/src/surfaces/tooltip/TooltipCutout.d.ts +18 -10
  610. package/lib/typescript/module/src/surfaces/tooltip/TooltipCutout.d.ts.map +1 -1
  611. package/lib/typescript/module/src/surfaces/tooltip/TooltipHighlight.d.ts +25 -0
  612. package/lib/typescript/module/src/surfaces/tooltip/TooltipHighlight.d.ts.map +1 -0
  613. package/lib/typescript/module/src/surfaces/tooltip/computeTooltipPosition.d.ts +23 -0
  614. package/lib/typescript/module/src/surfaces/tooltip/computeTooltipPosition.d.ts.map +1 -1
  615. package/lib/typescript/module/src/surfaces/tooltip/inferTooltipPlacement.d.ts +47 -1
  616. package/lib/typescript/module/src/surfaces/tooltip/inferTooltipPlacement.d.ts.map +1 -1
  617. package/lib/typescript/module/src/surfaces/tooltip/placementDiagnostics.d.ts +39 -0
  618. package/lib/typescript/module/src/surfaces/tooltip/placementDiagnostics.d.ts.map +1 -0
  619. package/lib/typescript/module/src/surfaces/tooltip/rect.d.ts +2 -0
  620. package/lib/typescript/module/src/surfaces/tooltip/rect.d.ts.map +1 -1
  621. package/lib/typescript/module/src/surfaces/tooltip/resolveSideCardWidth.d.ts +76 -0
  622. package/lib/typescript/module/src/surfaces/tooltip/resolveSideCardWidth.d.ts.map +1 -0
  623. package/lib/typescript/module/src/version.d.ts +1 -1
  624. package/package.json +22 -16
  625. package/src/anchors/AutoAnchorRegistry.ts +139 -2
  626. package/src/anchors/anchorChangeTicker.ts +10 -0
  627. package/src/anchors/elementConditionEvaluator.ts +29 -16
  628. package/src/anchors/fiber/FiberScanRoot.tsx +2 -50
  629. package/src/anchors/fiber/FiberScanRootStore.ts +51 -0
  630. package/src/anchors/fiber/fiberInternals.ts +166 -3
  631. package/src/anchors/fiber/indexHostFibers.ts +136 -0
  632. package/src/anchors/fiber/readHostContent.ts +146 -0
  633. package/src/anchors/fiberAnchorCache.ts +45 -0
  634. package/src/anchors/resolveAnchorHost.ts +23 -23
  635. package/src/anchors/resolveAutoAnchorHost.ts +180 -0
  636. package/src/anchors/semanticMatcher.ts +361 -0
  637. package/src/authoring/ElementPickerOverlay.tsx +553 -0
  638. package/src/authoring/capturePickerScreenshot.ts +90 -0
  639. package/src/authoring/chrome/ChromeBarTransition.tsx +106 -0
  640. package/src/authoring/chrome/ChromeBottomSheet.tsx +69 -0
  641. package/src/authoring/chrome/ChromeButton.tsx +103 -0
  642. package/src/authoring/chrome/ChromeDialog.tsx +121 -0
  643. package/src/authoring/chrome/ChromeIcon.tsx +40 -0
  644. package/src/authoring/chrome/ChromeTooltip.tsx +89 -0
  645. package/src/authoring/chrome/ChromeTopBar.tsx +126 -0
  646. package/src/authoring/chrome/DoubleTapBridge.tsx +60 -0
  647. package/src/authoring/chrome/doubleTapMonitor.ts +80 -0
  648. package/src/authoring/chrome/icons/arrow-left-from-bracket.png +0 -0
  649. package/src/authoring/chrome/icons/arrow-left-from-bracket@2x.png +0 -0
  650. package/src/authoring/chrome/icons/arrow-left-from-bracket@3x.png +0 -0
  651. package/src/authoring/chrome/icons/arrow-rotate-left.png +0 -0
  652. package/src/authoring/chrome/icons/arrow-rotate-left@2x.png +0 -0
  653. package/src/authoring/chrome/icons/arrow-rotate-left@3x.png +0 -0
  654. package/src/authoring/chrome/icons/userflow-logomark.png +0 -0
  655. package/src/authoring/chrome/icons/userflow-logomark@2x.png +0 -0
  656. package/src/authoring/chrome/icons/userflow-logomark@3x.png +0 -0
  657. package/src/authoring/chrome/icons/xmark.png +0 -0
  658. package/src/authoring/chrome/icons/xmark@2x.png +0 -0
  659. package/src/authoring/chrome/icons/xmark@3x.png +0 -0
  660. package/src/authoring/chrome/tokens.ts +106 -0
  661. package/src/authoring/doubleTap.ts +27 -0
  662. package/src/authoring/elementPickerController.ts +135 -0
  663. package/src/authoring/fingerprintFromInstance.ts +152 -0
  664. package/src/authoring/hitTest.ts +133 -0
  665. package/src/content/RichContentRenderer.tsx +22 -1
  666. package/src/content/StepButton.tsx +17 -2
  667. package/src/content/resolveStepButtonChrome.ts +12 -6
  668. package/src/content/themeColor.ts +10 -0
  669. package/src/deviceContext.ts +168 -0
  670. package/src/expo-router/useUserflowExpoRouter.ts +47 -4
  671. package/src/hostAppVersion.ts +258 -0
  672. package/src/index.ts +148 -4
  673. package/src/lifecycle.ts +8 -0
  674. package/src/navigation/WithUserflowReactNavigation.tsx +23 -7
  675. package/src/navigation/isOverlayPresentation.ts +76 -0
  676. package/src/pairing/PairingController.ts +32 -3
  677. package/src/pairing/PreviewModeBanner.tsx +250 -94
  678. package/src/pairing/diagnostics.ts +8 -0
  679. package/src/pairing/elementPickerRelay.ts +100 -0
  680. package/src/pairing/resolvePreviewChrome.ts +57 -0
  681. package/src/pairing/tokenStorage.ts +31 -2
  682. package/src/pairing/usePairingState.ts +2 -0
  683. package/src/runtime/FlowRenderer.tsx +55 -27
  684. package/src/runtime/FlowSurfaceFade.tsx +51 -30
  685. package/src/runtime/TargetPressBridge.tsx +14 -32
  686. package/src/runtime/UserflowProvider.tsx +76 -13
  687. package/src/runtime/changedTouchPoints.ts +34 -0
  688. package/src/runtime/flowEngine.ts +2 -0
  689. package/src/runtime/flowSessionViewState.ts +42 -4
  690. package/src/runtime/useFlowSessionState.ts +2 -0
  691. package/src/screenTracker.ts +46 -4
  692. package/src/surfaces/CardFade.tsx +18 -0
  693. package/src/surfaces/CloseButton.tsx +17 -7
  694. package/src/surfaces/MadeWithUserflow.tsx +1 -1
  695. package/src/surfaces/ModalSurface.tsx +48 -35
  696. package/src/surfaces/TooltipSurface.tsx +406 -86
  697. package/src/surfaces/cardTransition.ts +67 -0
  698. package/src/surfaces/resolveHighlightChrome.ts +139 -0
  699. package/src/surfaces/resolveModalLayout.ts +16 -8
  700. package/src/surfaces/resolveTooltipLayout.ts +1 -14
  701. package/src/surfaces/surfaceInteractionConfig.ts +25 -0
  702. package/src/surfaces/surfaceLayoutInsets.tsx +135 -0
  703. package/src/surfaces/themeChrome.ts +5 -3
  704. package/src/surfaces/tooltip/TooltipBubble.tsx +154 -19
  705. package/src/surfaces/tooltip/TooltipCutout.tsx +106 -49
  706. package/src/surfaces/tooltip/TooltipHighlight.tsx +144 -0
  707. package/src/surfaces/tooltip/computeTooltipPosition.ts +98 -12
  708. package/src/surfaces/tooltip/inferTooltipPlacement.ts +107 -18
  709. package/src/surfaces/tooltip/placementDiagnostics.ts +70 -0
  710. package/src/surfaces/tooltip/rect.ts +11 -0
  711. package/src/surfaces/tooltip/resolveSideCardWidth.ts +121 -0
  712. package/src/version.ts +1 -1
  713. package/vendor/core/dist/attributes.d.ts +1 -2
  714. package/vendor/core/dist/attributes.d.ts.map +1 -1
  715. package/vendor/core/dist/attributes.js.map +1 -1
  716. package/vendor/core/dist/engine/FlowSessionEngine.d.ts +69 -1
  717. package/vendor/core/dist/engine/FlowSessionEngine.d.ts.map +1 -1
  718. package/vendor/core/dist/engine/FlowSessionEngine.js +268 -7
  719. package/vendor/core/dist/engine/FlowSessionEngine.js.map +1 -1
  720. package/vendor/core/dist/engine/PairingEngine.d.ts +44 -1
  721. package/vendor/core/dist/engine/PairingEngine.d.ts.map +1 -1
  722. package/vendor/core/dist/engine/PairingEngine.js +103 -9
  723. package/vendor/core/dist/engine/PairingEngine.js.map +1 -1
  724. package/vendor/core/dist/engine/UserflowCore.d.ts +23 -4
  725. package/vendor/core/dist/engine/UserflowCore.d.ts.map +1 -1
  726. package/vendor/core/dist/engine/UserflowCore.js +64 -1
  727. package/vendor/core/dist/engine/UserflowCore.js.map +1 -1
  728. package/vendor/core/dist/engine/conditionOperators.d.ts +16 -0
  729. package/vendor/core/dist/engine/conditionOperators.d.ts.map +1 -0
  730. package/vendor/core/dist/engine/conditionOperators.js +168 -0
  731. package/vendor/core/dist/engine/conditionOperators.js.map +1 -0
  732. package/vendor/core/dist/engine/handleActions.d.ts +27 -4
  733. package/vendor/core/dist/engine/handleActions.d.ts.map +1 -1
  734. package/vendor/core/dist/engine/handleActions.js +140 -13
  735. package/vendor/core/dist/engine/handleActions.js.map +1 -1
  736. package/vendor/core/dist/engine/simpleObservable.d.ts +13 -0
  737. package/vendor/core/dist/engine/simpleObservable.d.ts.map +1 -0
  738. package/vendor/core/dist/engine/simpleObservable.js +29 -0
  739. package/vendor/core/dist/engine/simpleObservable.js.map +1 -0
  740. package/vendor/core/dist/engine/trackCondition.d.ts +25 -0
  741. package/vendor/core/dist/engine/trackCondition.d.ts.map +1 -0
  742. package/vendor/core/dist/engine/trackCondition.js +177 -0
  743. package/vendor/core/dist/engine/trackCondition.js.map +1 -0
  744. package/vendor/core/dist/engine/trackStepTriggers.d.ts +21 -0
  745. package/vendor/core/dist/engine/trackStepTriggers.d.ts.map +1 -0
  746. package/vendor/core/dist/engine/trackStepTriggers.js +49 -0
  747. package/vendor/core/dist/engine/trackStepTriggers.js.map +1 -0
  748. package/vendor/core/dist/index.d.ts +4 -3
  749. package/vendor/core/dist/index.d.ts.map +1 -1
  750. package/vendor/core/dist/index.js +2 -1
  751. package/vendor/core/dist/index.js.map +1 -1
  752. package/vendor/core/dist/normalizeAttributes.d.ts +8 -0
  753. package/vendor/core/dist/normalizeAttributes.d.ts.map +1 -0
  754. package/vendor/core/dist/normalizeAttributes.js +127 -0
  755. package/vendor/core/dist/normalizeAttributes.js.map +1 -0
  756. package/vendor/core/dist/transport/phoenix.d.ts +11 -6
  757. package/vendor/core/dist/transport/phoenix.d.ts.map +1 -1
  758. package/vendor/core/dist/transport/phoenix.js +59 -5
  759. package/vendor/core/dist/transport/phoenix.js.map +1 -1
  760. package/vendor/core/dist/types.d.ts +26 -1
  761. package/vendor/core/dist/types.d.ts.map +1 -1
  762. package/vendor/core/dist/version.d.ts +1 -1
  763. package/vendor/core/dist/version.js +1 -1
  764. package/vendor/core/package.json +1 -1
  765. package/vendor/protocol/dist/attributes.d.ts +43 -0
  766. package/vendor/protocol/dist/attributes.d.ts.map +1 -0
  767. package/vendor/protocol/dist/attributes.js +15 -0
  768. package/vendor/protocol/dist/attributes.js.map +1 -0
  769. package/vendor/protocol/dist/autoData.d.ts +2 -2
  770. package/vendor/protocol/dist/autoData.js +2 -2
  771. package/vendor/protocol/dist/events.d.ts +8 -0
  772. package/vendor/protocol/dist/events.d.ts.map +1 -1
  773. package/vendor/protocol/dist/flows.d.ts +66 -4
  774. package/vendor/protocol/dist/flows.d.ts.map +1 -1
  775. package/vendor/protocol/dist/flows.js +50 -3
  776. package/vendor/protocol/dist/flows.js.map +1 -1
  777. package/vendor/protocol/dist/index.d.ts +1 -0
  778. package/vendor/protocol/dist/index.d.ts.map +1 -1
  779. package/vendor/protocol/dist/index.js +1 -0
  780. package/vendor/protocol/dist/index.js.map +1 -1
  781. package/vendor/protocol/dist/messages.d.ts +25 -4
  782. package/vendor/protocol/dist/messages.d.ts.map +1 -1
  783. package/vendor/protocol/dist/messages.js +4 -0
  784. package/vendor/protocol/dist/messages.js.map +1 -1
  785. package/vendor/protocol/dist/pairing.d.ts +26 -0
  786. package/vendor/protocol/dist/pairing.d.ts.map +1 -1
  787. package/vendor/protocol/dist/pairing.js.map +1 -1
  788. package/vendor/protocol/package.json +1 -1
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ import * as React from 'react';
4
+ import { StyleSheet, View } from 'react-native';
5
+ import { changedTouchPoints, forEachChangedTouch } from "../../runtime/changedTouchPoints.js";
6
+ import { doubleTapMonitor } from "./doubleTapMonitor.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ /**
9
+ * Observes screen-wide touches for {@link doubleTapMonitor} without claiming
10
+ * the responder. Must wrap **both** host app content and authoring chrome —
11
+ * preview-bar taps never bubble through `TargetPressBridge`, which only
12
+ * wraps the app tree.
13
+ */
14
+ export function DoubleTapBridge({
15
+ children
16
+ }) {
17
+ const onTouchStart = React.useCallback(event => {
18
+ forEachChangedTouch(event, (identifier, pageX, pageY) => {
19
+ doubleTapMonitor.handleTouchStart(identifier, pageX, pageY);
20
+ });
21
+ }, []);
22
+ const onTouchEnd = React.useCallback(event => {
23
+ forEachChangedTouch(event, (identifier, pageX, pageY) => {
24
+ doubleTapMonitor.handleTouchEnd(identifier, pageX, pageY);
25
+ });
26
+ }, []);
27
+ const onTouchCancel = React.useCallback(event => {
28
+ const points = changedTouchPoints(event);
29
+ if (points.length === 0) {
30
+ doubleTapMonitor.cancelTouch();
31
+ return;
32
+ }
33
+ for (const touch of points) {
34
+ doubleTapMonitor.cancelTouch(touch.identifier);
35
+ }
36
+ }, []);
37
+ return /*#__PURE__*/_jsx(View, {
38
+ style: styles.root,
39
+ collapsable: false,
40
+ onTouchStart: onTouchStart,
41
+ onTouchEnd: onTouchEnd,
42
+ onTouchCancel: onTouchCancel,
43
+ testID: "userflow-double-tap-bridge",
44
+ children: children
45
+ });
46
+ }
47
+ const styles = StyleSheet.create({
48
+ root: {
49
+ flex: 1
50
+ }
51
+ });
52
+ //# sourceMappingURL=DoubleTapBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","StyleSheet","View","changedTouchPoints","forEachChangedTouch","doubleTapMonitor","jsx","_jsx","DoubleTapBridge","children","onTouchStart","useCallback","event","identifier","pageX","pageY","handleTouchStart","onTouchEnd","handleTouchEnd","onTouchCancel","points","length","cancelTouch","touch","style","styles","root","collapsable","testID","create","flex"],"sourceRoot":"../../../../src","sources":["authoring/chrome/DoubleTapBridge.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,EAAEC,IAAI,QAAoC,cAAc;AAE3E,SAASC,kBAAkB,EAAEC,mBAAmB,QAAQ,qCAAkC;AAE1F,SAASC,gBAAgB,QAAQ,uBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMtD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAC;EAAEC;AAA+B,CAAC,EAAsB;EACtF,MAAMC,YAAY,GAAGV,KAAK,CAACW,WAAW,CAAEC,KAA4B,IAAK;IACvER,mBAAmB,CAACQ,KAAK,EAAE,CAACC,UAAU,EAAEC,KAAK,EAAEC,KAAK,KAAK;MACvDV,gBAAgB,CAACW,gBAAgB,CAACH,UAAU,EAAEC,KAAK,EAAEC,KAAK,CAAC;IAC7D,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,UAAU,GAAGjB,KAAK,CAACW,WAAW,CAAEC,KAA4B,IAAK;IACrER,mBAAmB,CAACQ,KAAK,EAAE,CAACC,UAAU,EAAEC,KAAK,EAAEC,KAAK,KAAK;MACvDV,gBAAgB,CAACa,cAAc,CAACL,UAAU,EAAEC,KAAK,EAAEC,KAAK,CAAC;IAC3D,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMI,aAAa,GAAGnB,KAAK,CAACW,WAAW,CAAEC,KAA4B,IAAK;IACxE,MAAMQ,MAAM,GAAGjB,kBAAkB,CAACS,KAAK,CAAC;IACxC,IAAIQ,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;MACvBhB,gBAAgB,CAACiB,WAAW,CAAC,CAAC;MAC9B;IACF;IACA,KAAK,MAAMC,KAAK,IAAIH,MAAM,EAAE;MAC1Bf,gBAAgB,CAACiB,WAAW,CAACC,KAAK,CAACV,UAAU,CAAC;IAChD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEN,IAAA,CAACL,IAAI;IACHsB,KAAK,EAAEC,MAAM,CAACC,IAAK;IACnBC,WAAW,EAAE,KAAM;IACnBjB,YAAY,EAAEA,YAAa;IAC3BO,UAAU,EAAEA,UAAW;IACvBE,aAAa,EAAEA,aAAc;IAC7BS,MAAM,EAAC,4BAA4B;IAAAnB,QAAA,EAElCA;EAAQ,CACL,CAAC;AAEX;AAEA,MAAMgB,MAAM,GAAGxB,UAAU,CAAC4B,MAAM,CAAC;EAC/BH,IAAI,EAAE;IACJI,IAAI,EAAE;EACR;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ import { TARGET_PRESS_TAP_SLOP } from "../../anchors/targetPressMonitor.js";
4
+ import { isDoubleTap } from "../doubleTap.js";
5
+ /**
6
+ * Screen-wide double-tap observer. Never claims the responder — the host app
7
+ * keeps scrolling and tapping. Used by preview-mode chrome, which has no
8
+ * capture layer of its own.
9
+ *
10
+ * Distinct from `targetPressMonitor`: that singleton is bound to a tooltip
11
+ * target rect and fires `onPress`, not a double-tap toggle.
12
+ */
13
+ export class DoubleTapMonitor {
14
+ subscription = null;
15
+ touchStarts = new Map();
16
+ lastTap = null;
17
+ set(subscription) {
18
+ this.subscription = subscription;
19
+ if (!subscription) {
20
+ this.touchStarts.clear();
21
+ this.lastTap = null;
22
+ }
23
+ }
24
+ handleTouchStart(identifier, pageX, pageY) {
25
+ if (!this.subscription) {
26
+ this.touchStarts.clear();
27
+ return;
28
+ }
29
+ this.touchStarts.set(identifier, {
30
+ pageX,
31
+ pageY
32
+ });
33
+ }
34
+ handleTouchEnd(identifier, pageX, pageY) {
35
+ const start = this.touchStarts.get(identifier) ?? null;
36
+ this.touchStarts.delete(identifier);
37
+ const sub = this.subscription;
38
+ if (!start || !sub) return;
39
+ const dx = pageX - start.pageX;
40
+ const dy = pageY - start.pageY;
41
+ if (dx * dx + dy * dy > TARGET_PRESS_TAP_SLOP * TARGET_PRESS_TAP_SLOP) {
42
+ this.lastTap = null;
43
+ return;
44
+ }
45
+ const sample = {
46
+ pageX,
47
+ pageY,
48
+ timestamp: Date.now()
49
+ };
50
+ if (isDoubleTap(this.lastTap, sample)) {
51
+ this.lastTap = null;
52
+ sub.onDoubleTap();
53
+ return;
54
+ }
55
+ this.lastTap = sample;
56
+ }
57
+ cancelTouch(identifier) {
58
+ if (identifier == null) {
59
+ this.touchStarts.clear();
60
+ return;
61
+ }
62
+ this.touchStarts.delete(identifier);
63
+ }
64
+
65
+ /** Test helper. */
66
+ resetForTests() {
67
+ this.subscription = null;
68
+ this.touchStarts.clear();
69
+ this.lastTap = null;
70
+ }
71
+ }
72
+
73
+ /** Shared singleton used by PreviewModeBanner and DoubleTapBridge. */
74
+ export const doubleTapMonitor = new DoubleTapMonitor();
75
+ //# sourceMappingURL=doubleTapMonitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TARGET_PRESS_TAP_SLOP","isDoubleTap","DoubleTapMonitor","subscription","touchStarts","Map","lastTap","set","clear","handleTouchStart","identifier","pageX","pageY","handleTouchEnd","start","get","delete","sub","dx","dy","sample","timestamp","Date","now","onDoubleTap","cancelTouch","resetForTests","doubleTapMonitor"],"sourceRoot":"../../../../src","sources":["authoring/chrome/doubleTapMonitor.ts"],"mappings":";;AAAA,SACEA,qBAAqB,QAGhB,qCAAkC;AACzC,SAASC,WAAW,QAAwB,iBAAc;AAM1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,CAAC;EACpBC,YAAY,GAAiC,IAAI;EACjDC,WAAW,GAAG,IAAIC,GAAG,CAA8B,CAAC;EACpDC,OAAO,GAAqB,IAAI;EAExCC,GAAGA,CAACJ,YAA0C,EAAQ;IACpD,IAAI,CAACA,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACA,YAAY,EAAE;MACjB,IAAI,CAACC,WAAW,CAACI,KAAK,CAAC,CAAC;MACxB,IAAI,CAACF,OAAO,GAAG,IAAI;IACrB;EACF;EAEAG,gBAAgBA,CAACC,UAA2B,EAAEC,KAAa,EAAEC,KAAa,EAAQ;IAChF,IAAI,CAAC,IAAI,CAACT,YAAY,EAAE;MACtB,IAAI,CAACC,WAAW,CAACI,KAAK,CAAC,CAAC;MACxB;IACF;IACA,IAAI,CAACJ,WAAW,CAACG,GAAG,CAACG,UAAU,EAAE;MAAEC,KAAK;MAAEC;IAAM,CAAC,CAAC;EACpD;EAEAC,cAAcA,CAACH,UAA2B,EAAEC,KAAa,EAAEC,KAAa,EAAQ;IAC9E,MAAME,KAAK,GAAG,IAAI,CAACV,WAAW,CAACW,GAAG,CAACL,UAAU,CAAC,IAAI,IAAI;IACtD,IAAI,CAACN,WAAW,CAACY,MAAM,CAACN,UAAU,CAAC;IACnC,MAAMO,GAAG,GAAG,IAAI,CAACd,YAAY;IAC7B,IAAI,CAACW,KAAK,IAAI,CAACG,GAAG,EAAE;IAEpB,MAAMC,EAAE,GAAGP,KAAK,GAAGG,KAAK,CAACH,KAAK;IAC9B,MAAMQ,EAAE,GAAGP,KAAK,GAAGE,KAAK,CAACF,KAAK;IAC9B,IAAIM,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,GAAGnB,qBAAqB,GAAGA,qBAAqB,EAAE;MACrE,IAAI,CAACM,OAAO,GAAG,IAAI;MACnB;IACF;IAEA,MAAMc,MAAiB,GAAG;MAAET,KAAK;MAAEC,KAAK;MAAES,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC;IAAE,CAAC;IACjE,IAAItB,WAAW,CAAC,IAAI,CAACK,OAAO,EAAEc,MAAM,CAAC,EAAE;MACrC,IAAI,CAACd,OAAO,GAAG,IAAI;MACnBW,GAAG,CAACO,WAAW,CAAC,CAAC;MACjB;IACF;IACA,IAAI,CAAClB,OAAO,GAAGc,MAAM;EACvB;EAEAK,WAAWA,CAACf,UAA4B,EAAQ;IAC9C,IAAIA,UAAU,IAAI,IAAI,EAAE;MACtB,IAAI,CAACN,WAAW,CAACI,KAAK,CAAC,CAAC;MACxB;IACF;IACA,IAAI,CAACJ,WAAW,CAACY,MAAM,CAACN,UAAU,CAAC;EACrC;;EAEA;EACAgB,aAAaA,CAAA,EAAS;IACpB,IAAI,CAACvB,YAAY,GAAG,IAAI;IACxB,IAAI,CAACC,WAAW,CAACI,KAAK,CAAC,CAAC;IACxB,IAAI,CAACF,OAAO,GAAG,IAAI;EACrB;AACF;;AAEA;AACA,OAAO,MAAMqB,gBAAgB,GAAG,IAAIzB,gBAAgB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Authoring-chrome tokens from the Userflow React Native Figma file
5
+ * (`BojC6qdlFUytdD1bRsNLV8`). These are independent of end-user flow
6
+ * `ThemeFragment` — pairing / picker UI is not themed by the server.
7
+ *
8
+ * Typography omits `fontFamily` so RN uses SF Pro / Roboto.
9
+ */
10
+
11
+ export const chromeColors = {
12
+ primaryText: '#132b39',
13
+ invertedText: '#ffffff',
14
+ blue500: '#1a57e6',
15
+ overlay: 'rgba(0, 0, 0, 0.2)',
16
+ /** Figma Colors/Effect/Focus Ring (`#2f69ee59`). */
17
+ focusRing: 'rgba(47, 105, 238, 0.35)',
18
+ bgMiddle: '#f4f8fb',
19
+ danger: '#57000e',
20
+ white: '#ffffff',
21
+ /** Figma Shadow/Button. Opacity is applied in `chromeShadows`. */
22
+ shadowButton: 'rgb(54, 107, 214)'
23
+ };
24
+
25
+ /**
26
+ * `chromeColors.overlay` split for TooltipCutout's composite-once contract
27
+ * (`backdropColor` + `backdropOpacity` rather than a single rgba string).
28
+ */
29
+ export const chromeOverlay = {
30
+ color: '#000000',
31
+ opacity: 0.2
32
+ };
33
+ export const chromeSpace = {
34
+ 0: 0,
35
+ 8: 8,
36
+ 12: 12,
37
+ 16: 16,
38
+ 20: 20,
39
+ 24: 24
40
+ };
41
+ export const chromeRadius = {
42
+ md: 4,
43
+ lg: 8,
44
+ fullyRounded: 9999
45
+ };
46
+ export const chromeText = {
47
+ barTitle: {
48
+ fontSize: 16,
49
+ fontWeight: '600',
50
+ lineHeight: 20
51
+ },
52
+ buttonLabel: {
53
+ fontSize: 16,
54
+ fontWeight: '600',
55
+ lineHeight: 20
56
+ },
57
+ /** Figma Labels/SM Bold — bottom-sheet helper copy (3869:521). */
58
+ labelSmBold: {
59
+ fontSize: 14,
60
+ fontWeight: '600',
61
+ lineHeight: 16
62
+ },
63
+ dialogTitle: {
64
+ fontSize: 18,
65
+ fontWeight: '500',
66
+ lineHeight: 24
67
+ },
68
+ dialogBody: {
69
+ fontSize: 16,
70
+ fontWeight: '400',
71
+ lineHeight: 24
72
+ },
73
+ tooltip: {
74
+ fontSize: 14,
75
+ fontWeight: '500',
76
+ lineHeight: 16
77
+ }
78
+ };
79
+
80
+ /**
81
+ * Figma drop shadows approximated as RN `shadow*` + Android `elevation`.
82
+ * There is no shared chrome shadow helper — TooltipBubble's elevation pairing
83
+ * is tooltip-specific and is not reused here.
84
+ */
85
+ export const chromeShadows = {
86
+ /** Shadow/Button — primary pill. */
87
+ button: {
88
+ shadowColor: chromeColors.shadowButton,
89
+ shadowOffset: {
90
+ width: 0,
91
+ height: 4
92
+ },
93
+ shadowOpacity: 0.5,
94
+ shadowRadius: 8,
95
+ elevation: 4
96
+ },
97
+ /** Shadow/Button (Subtle) — secondary / icon pills. */
98
+ buttonSubtle: {
99
+ shadowColor: chromeColors.shadowButton,
100
+ shadowOffset: {
101
+ width: 0,
102
+ height: 2
103
+ },
104
+ shadowOpacity: 0.5,
105
+ shadowRadius: 4,
106
+ elevation: 2
107
+ },
108
+ /** Shadow/Card — full-bleed top/bottom bars. */
109
+ card: {
110
+ shadowColor: chromeColors.primaryText,
111
+ shadowOffset: {
112
+ width: 0,
113
+ height: 4
114
+ },
115
+ shadowOpacity: 0.1,
116
+ shadowRadius: 12,
117
+ elevation: 8
118
+ },
119
+ /** Shadow/Default (Subtle) — onboarding tooltip. */
120
+ tooltip: {
121
+ shadowColor: chromeColors.primaryText,
122
+ shadowOffset: {
123
+ width: 0,
124
+ height: 4
125
+ },
126
+ shadowOpacity: 0.1,
127
+ shadowRadius: 12,
128
+ elevation: 4
129
+ },
130
+ /**
131
+ * Dialog card. Carries the values ChromeDialog shipped with (shadowRadius 6 /
132
+ * elevation 6). Figma names this Shadow/Default (Subtle) — the same token as
133
+ * `tooltip` — but the radius-convention audit across chrome shadows is Phase 6.
134
+ */
135
+ dialog: {
136
+ shadowColor: chromeColors.primaryText,
137
+ shadowOffset: {
138
+ width: 0,
139
+ height: 4
140
+ },
141
+ shadowOpacity: 0.1,
142
+ shadowRadius: 6,
143
+ elevation: 6
144
+ }
145
+ };
146
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["chromeColors","primaryText","invertedText","blue500","overlay","focusRing","bgMiddle","danger","white","shadowButton","chromeOverlay","color","opacity","chromeSpace","chromeRadius","md","lg","fullyRounded","chromeText","barTitle","fontSize","fontWeight","lineHeight","buttonLabel","labelSmBold","dialogTitle","dialogBody","tooltip","chromeShadows","button","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","buttonSubtle","card","dialog"],"sourceRoot":"../../../../src","sources":["authoring/chrome/tokens.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ export const DOUBLE_TAP_WINDOW_MS = 300;
4
+ export const DOUBLE_TAP_SLOP = 40;
5
+ /**
6
+ * True when `next` lands close enough in space and time to `prev` to count as
7
+ * the second half of a double tap. Inclusive on both the time window and slop
8
+ * so a tap at exactly the boundary still toggles chrome rather than selecting.
9
+ */
10
+ export function isDoubleTap(prev, next, windowMs = DOUBLE_TAP_WINDOW_MS, slop = DOUBLE_TAP_SLOP) {
11
+ if (prev == null) return false;
12
+ const dt = next.timestamp - prev.timestamp;
13
+ if (dt < 0 || dt > windowMs) return false;
14
+ const dx = next.pageX - prev.pageX;
15
+ const dy = next.pageY - prev.pageY;
16
+ return dx * dx + dy * dy <= slop * slop;
17
+ }
18
+ //# sourceMappingURL=doubleTap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DOUBLE_TAP_WINDOW_MS","DOUBLE_TAP_SLOP","isDoubleTap","prev","next","windowMs","slop","dt","timestamp","dx","pageX","dy","pageY"],"sourceRoot":"../../../src","sources":["authoring/doubleTap.ts"],"mappings":";;AAAA,OAAO,MAAMA,oBAAoB,GAAG,GAAG;AACvC,OAAO,MAAMC,eAAe,GAAG,EAAE;AAQjC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CACzBC,IAAsB,EACtBC,IAAe,EACfC,QAAgB,GAAGL,oBAAoB,EACvCM,IAAY,GAAGL,eAAe,EACrB;EACT,IAAIE,IAAI,IAAI,IAAI,EAAE,OAAO,KAAK;EAC9B,MAAMI,EAAE,GAAGH,IAAI,CAACI,SAAS,GAAGL,IAAI,CAACK,SAAS;EAC1C,IAAID,EAAE,GAAG,CAAC,IAAIA,EAAE,GAAGF,QAAQ,EAAE,OAAO,KAAK;EACzC,MAAMI,EAAE,GAAGL,IAAI,CAACM,KAAK,GAAGP,IAAI,CAACO,KAAK;EAClC,MAAMC,EAAE,GAAGP,IAAI,CAACQ,KAAK,GAAGT,IAAI,CAACS,KAAK;EAClC,OAAOH,EAAE,GAAGA,EAAE,GAAGE,EAAE,GAAGA,EAAE,IAAIL,IAAI,GAAGA,IAAI;AACzC","ignoreList":[]}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ const IDLE = {
4
+ active: false
5
+ };
6
+ /**
7
+ * Module singleton for the in-app element picker. Pairing glue (and the QA
8
+ * harness) call {@link beginSelection}; {@link ElementPickerOverlay} reads
9
+ * state and commits/cancels.
10
+ */
11
+ export class ElementPickerController {
12
+ request = null;
13
+ nextId = 1;
14
+ listeners = new Set();
15
+ getState() {
16
+ if (!this.request) return {
17
+ ...IDLE
18
+ };
19
+ return {
20
+ active: true,
21
+ requestId: this.request.requestId,
22
+ ...(this.request.elementType != null ? {
23
+ elementType: this.request.elementType
24
+ } : {})
25
+ };
26
+ }
27
+ subscribe(listener) {
28
+ this.listeners.add(listener);
29
+ listener(this.getState());
30
+ return () => {
31
+ this.listeners.delete(listener);
32
+ };
33
+ }
34
+ beginSelection(request) {
35
+ if (this.request) {
36
+ this.request.onCancel?.();
37
+ }
38
+ const requestId = request.requestId ?? `pick-${this.nextId++}`;
39
+ this.request = {
40
+ ...request,
41
+ requestId
42
+ };
43
+ this.emit();
44
+ }
45
+
46
+ /**
47
+ * Deliver `result` to the active request. When `expectedId` is passed, a
48
+ * mismatch (stale Confirm after a newer `beginSelection`) is a no-op.
49
+ * Omitting `expectedId` is for synchronous tests/QA.
50
+ *
51
+ * If `onResult` returns a rejected promise (e.g. relay not connected), the
52
+ * request stays active so the overlay can retry. Ack timeouts should be
53
+ * swallowed by the caller of `onResult`, not thrown here.
54
+ */
55
+ async commit(result, expectedId) {
56
+ const req = this.request;
57
+ if (!req) return false;
58
+ if (expectedId != null && req.requestId !== expectedId) return false;
59
+ try {
60
+ await req.onResult(result);
61
+ } catch {
62
+ return this.request === req ? false : true;
63
+ }
64
+ if (this.request !== req) return true;
65
+ this.request = null;
66
+ this.emit();
67
+ return true;
68
+ }
69
+ cancel() {
70
+ const req = this.request;
71
+ this.request = null;
72
+ this.emit();
73
+ if (!req) return;
74
+ try {
75
+ req.onCancel?.();
76
+ } catch {
77
+ // Authoring callbacks must not break the host.
78
+ }
79
+ }
80
+ resetForTests() {
81
+ this.request = null;
82
+ this.nextId = 1;
83
+ this.listeners.clear();
84
+ }
85
+ emit() {
86
+ const state = this.getState();
87
+ for (const listener of this.listeners) {
88
+ try {
89
+ listener(state);
90
+ } catch {
91
+ // listeners are infrastructure
92
+ }
93
+ }
94
+ }
95
+ }
96
+ export const elementPickerController = new ElementPickerController();
97
+ //# sourceMappingURL=elementPickerController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IDLE","active","ElementPickerController","request","nextId","listeners","Set","getState","requestId","elementType","subscribe","listener","add","delete","beginSelection","onCancel","emit","commit","result","expectedId","req","onResult","cancel","resetForTests","clear","state","elementPickerController"],"sourceRoot":"../../../src","sources":["authoring/elementPickerController.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+
3
+ import { encodeMobileAutoData, MOBILE_AUTODATA_VERSION, MOBILE_FINGERPRINT_VERSION } from '@userflow-tech/protocol';
4
+ import { Dimensions, Platform } from 'react-native';
5
+ import { autoAnchorRegistry } from "../anchors/AutoAnchorRegistry.js";
6
+ import * as semanticMatcher from "../anchors/semanticMatcher.js";
7
+ import { getCurrentScreenLocation } from "../screenTracker.js";
8
+ function deriveIdentityStrength(inst) {
9
+ const hasId = !!(inst.userflowId || inst.testID || inst.manualId || inst.nativeID && !inst.nativeID.startsWith('uf_'));
10
+ if (hasId) return 'id';
11
+ if (inst.childText || inst.accessibilityLabel || inst.iconName || inst.imageSrc) {
12
+ return 'content';
13
+ }
14
+ return 'structural';
15
+ }
16
+ function screenFromLocation() {
17
+ const location = getCurrentScreenLocation();
18
+ if (!location) return {
19
+ screenId: 'unknown'
20
+ };
21
+ if ('path' in location) return {
22
+ screenId: location.path,
23
+ screenName: location.path
24
+ };
25
+ return {
26
+ screenId: location.screen,
27
+ screenName: location.screen
28
+ };
29
+ }
30
+ function deviceMetadata() {
31
+ try {
32
+ const window = Dimensions.get('window');
33
+ return {
34
+ screenWidth: window.width,
35
+ screenHeight: window.height,
36
+ scale: window.scale,
37
+ platform: Platform.OS === 'android' ? 'android' : 'ios'
38
+ };
39
+ } catch {
40
+ return undefined;
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Inverse of `scoreInstance` field-reads: snapshot a live registry instance
46
+ * into the fingerprint the scored matcher consumes at play time.
47
+ */
48
+ export function fingerprintFromInstance(inst) {
49
+ autoAnchorRegistry.refreshLiveContent([inst, ...autoAnchorRegistry.orderedSiblingsIncludingSelf(inst.instanceId)]);
50
+ const window = autoAnchorRegistry.siblingWindow(inst.instanceId, 2);
51
+ return {
52
+ version: MOBILE_FINGERPRINT_VERSION,
53
+ structuralPath: inst.structuralPath,
54
+ templatePath: inst.templatePath,
55
+ ...(inst.instanceScope ? {
56
+ instanceScope: inst.instanceScope
57
+ } : {}),
58
+ kind: inst.kind,
59
+ role: inst.role,
60
+ ...(inst.manualId ? {
61
+ manualId: inst.manualId
62
+ } : {}),
63
+ ...(inst.userflowId ? {
64
+ userflowId: inst.userflowId
65
+ } : {}),
66
+ ...(inst.testID ? {
67
+ testID: inst.testID
68
+ } : {}),
69
+ ...(inst.nativeID ? {
70
+ nativeID: inst.nativeID
71
+ } : {}),
72
+ ...(inst.childText ? {
73
+ childText: inst.childText
74
+ } : {}),
75
+ ...(inst.accessibilityLabel ? {
76
+ accessibilityLabel: inst.accessibilityLabel
77
+ } : {}),
78
+ ...(inst.childShape ? {
79
+ childShape: inst.childShape
80
+ } : {}),
81
+ ...(inst.iconName ? {
82
+ iconName: inst.iconName
83
+ } : {}),
84
+ ...(inst.imageSrc ? {
85
+ imageSrc: inst.imageSrc
86
+ } : {}),
87
+ ancestors: inst.ancestors ? [...inst.ancestors] : [],
88
+ previousSiblings: window.previous,
89
+ nextSiblings: window.next,
90
+ ...(inst.ordinal !== undefined ? {
91
+ ordinal: inst.ordinal
92
+ } : {}),
93
+ ...(inst.siblingIndex !== undefined ? {
94
+ siblingIndex: inst.siblingIndex
95
+ } : {}),
96
+ isPressable: inst.isPressable,
97
+ ambiguous: inst.ambiguous,
98
+ identityStrength: deriveIdentityStrength(inst)
99
+ };
100
+ }
101
+
102
+ /** Wrap a live instance in the `FlowSelector.autoData` envelope. */
103
+ export function autoDataFromInstance(inst) {
104
+ const fingerprint = fingerprintFromInstance(inst);
105
+ const {
106
+ screenId,
107
+ screenName
108
+ } = screenFromLocation();
109
+ const device = deviceMetadata();
110
+ const selector = inst.structuralPath || inst.templatePath || inst.registryKey;
111
+ return {
112
+ version: MOBILE_AUTODATA_VERSION,
113
+ platform: 'react-native',
114
+ selector,
115
+ displayName: inst.kind,
116
+ ...(inst.manualId ? {
117
+ anchorId: inst.manualId,
118
+ manualId: inst.manualId
119
+ } : {}),
120
+ primary: {
121
+ ufid: inst.structuralPath || inst.registryKey,
122
+ ...(inst.nativeID ? {
123
+ nativeId: inst.nativeID
124
+ } : {})
125
+ },
126
+ fingerprint,
127
+ screenId,
128
+ ...(screenName ? {
129
+ screenName
130
+ } : {}),
131
+ platformData: {
132
+ ...(inst.testID ? {
133
+ testID: inst.testID
134
+ } : {}),
135
+ ...(inst.accessibilityLabel ? {
136
+ accessibilityLabel: inst.accessibilityLabel
137
+ } : {}),
138
+ ...(inst.childText ? {
139
+ childText: inst.childText
140
+ } : {}),
141
+ ...(inst.childShape ? {
142
+ childShape: inst.childShape
143
+ } : {}),
144
+ ...(inst.structuralPath ? {
145
+ structuralPath: inst.structuralPath
146
+ } : {}),
147
+ ...(inst.templatePath ? {
148
+ templatePath: inst.templatePath
149
+ } : {}),
150
+ ...(inst.instanceScope ? {
151
+ instanceScope: inst.instanceScope
152
+ } : {}),
153
+ isPressable: inst.isPressable
154
+ },
155
+ ...(device ? {
156
+ device
157
+ } : {})
158
+ };
159
+ }
160
+ export function encodeInstanceAutoData(inst) {
161
+ return encodeMobileAutoData(autoDataFromInstance(inst));
162
+ }
163
+ /**
164
+ * Encode `inst` and run the play-time matcher. Confirm may proceed only on a
165
+ * unique hit of this same instance.
166
+ */
167
+ export function validatePickerFingerprint(inst) {
168
+ const autoData = encodeInstanceAutoData(inst);
169
+ const match = semanticMatcher.matchAutoData(autoData);
170
+ if (!match.instance) {
171
+ return {
172
+ ok: false,
173
+ reason: match.reason ?? 'no-candidates'
174
+ };
175
+ }
176
+ if (match.instance.instanceId !== inst.instanceId) {
177
+ return {
178
+ ok: false,
179
+ reason: 'wrong-instance'
180
+ };
181
+ }
182
+ return {
183
+ ok: true,
184
+ autoData
185
+ };
186
+ }
187
+ //# sourceMappingURL=fingerprintFromInstance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["encodeMobileAutoData","MOBILE_AUTODATA_VERSION","MOBILE_FINGERPRINT_VERSION","Dimensions","Platform","autoAnchorRegistry","semanticMatcher","getCurrentScreenLocation","deriveIdentityStrength","inst","hasId","userflowId","testID","manualId","nativeID","startsWith","childText","accessibilityLabel","iconName","imageSrc","screenFromLocation","location","screenId","path","screenName","screen","deviceMetadata","window","get","screenWidth","width","screenHeight","height","scale","platform","OS","undefined","fingerprintFromInstance","refreshLiveContent","orderedSiblingsIncludingSelf","instanceId","siblingWindow","version","structuralPath","templatePath","instanceScope","kind","role","childShape","ancestors","previousSiblings","previous","nextSiblings","next","ordinal","siblingIndex","isPressable","ambiguous","identityStrength","autoDataFromInstance","fingerprint","device","selector","registryKey","displayName","anchorId","primary","ufid","nativeId","platformData","encodeInstanceAutoData","validatePickerFingerprint","autoData","match","matchAutoData","instance","ok","reason"],"sourceRoot":"../../../src","sources":["authoring/fingerprintFromInstance.ts"],"mappings":";;AAAA,SACEA,oBAAoB,EACpBC,uBAAuB,EACvBC,0BAA0B,QAKrB,yBAAyB;AAChC,SAASC,UAAU,EAAEC,QAAQ,QAAQ,cAAc;AAEnD,SAASC,kBAAkB,QAAiC,kCAA+B;AAC3F,OAAO,KAAKC,eAAe,MAAM,+BAA4B;AAE7D,SAASC,wBAAwB,QAAQ,qBAAkB;AAE3D,SAASC,sBAAsBA,CAACC,IAAwB,EAAoB;EAC1E,MAAMC,KAAK,GAAG,CAAC,EACbD,IAAI,CAACE,UAAU,IACfF,IAAI,CAACG,MAAM,IACXH,IAAI,CAACI,QAAQ,IACZJ,IAAI,CAACK,QAAQ,IAAI,CAACL,IAAI,CAACK,QAAQ,CAACC,UAAU,CAAC,KAAK,CAAE,CACpD;EACD,IAAIL,KAAK,EAAE,OAAO,IAAI;EACtB,IAAID,IAAI,CAACO,SAAS,IAAIP,IAAI,CAACQ,kBAAkB,IAAIR,IAAI,CAACS,QAAQ,IAAIT,IAAI,CAACU,QAAQ,EAAE;IAC/E,OAAO,SAAS;EAClB;EACA,OAAO,YAAY;AACrB;AAEA,SAASC,kBAAkBA,CAAA,EAA8C;EACvE,MAAMC,QAAQ,GAAGd,wBAAwB,CAAC,CAAC;EAC3C,IAAI,CAACc,QAAQ,EAAE,OAAO;IAAEC,QAAQ,EAAE;EAAU,CAAC;EAC7C,IAAI,MAAM,IAAID,QAAQ,EAAE,OAAO;IAAEC,QAAQ,EAAED,QAAQ,CAACE,IAAI;IAAEC,UAAU,EAAEH,QAAQ,CAACE;EAAK,CAAC;EACrF,OAAO;IAAED,QAAQ,EAAED,QAAQ,CAACI,MAAM;IAAED,UAAU,EAAEH,QAAQ,CAACI;EAAO,CAAC;AACnE;AAEA,SAASC,cAAcA,CAAA,EAA+B;EACpD,IAAI;IACF,MAAMC,MAAM,GAAGxB,UAAU,CAACyB,GAAG,CAAC,QAAQ,CAAC;IACvC,OAAO;MACLC,WAAW,EAAEF,MAAM,CAACG,KAAK;MACzBC,YAAY,EAAEJ,MAAM,CAACK,MAAM;MAC3BC,KAAK,EAAEN,MAAM,CAACM,KAAK;MACnBC,QAAQ,EAAE9B,QAAQ,CAAC+B,EAAE,KAAK,SAAS,GAAG,SAAS,GAAG;IACpD,CAAC;EACH,CAAC,CAAC,MAAM;IACN,OAAOC,SAAS;EAClB;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CAAC5B,IAAwB,EAAqB;EACnFJ,kBAAkB,CAACiC,kBAAkB,CAAC,CACpC7B,IAAI,EACJ,GAAGJ,kBAAkB,CAACkC,4BAA4B,CAAC9B,IAAI,CAAC+B,UAAU,CAAC,CACpE,CAAC;EACF,MAAMb,MAAM,GAAGtB,kBAAkB,CAACoC,aAAa,CAAChC,IAAI,CAAC+B,UAAU,EAAE,CAAC,CAAC;EACnE,OAAO;IACLE,OAAO,EAAExC,0BAA0B;IACnCyC,cAAc,EAAElC,IAAI,CAACkC,cAAc;IACnCC,YAAY,EAAEnC,IAAI,CAACmC,YAAY;IAC/B,IAAInC,IAAI,CAACoC,aAAa,GAAG;MAAEA,aAAa,EAAEpC,IAAI,CAACoC;IAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IACpEC,IAAI,EAAErC,IAAI,CAACqC,IAAI;IACfC,IAAI,EAAEtC,IAAI,CAACsC,IAAI;IACf,IAAItC,IAAI,CAACI,QAAQ,GAAG;MAAEA,QAAQ,EAAEJ,IAAI,CAACI;IAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,IAAIJ,IAAI,CAACE,UAAU,GAAG;MAAEA,UAAU,EAAEF,IAAI,CAACE;IAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,IAAIF,IAAI,CAACG,MAAM,GAAG;MAAEA,MAAM,EAAEH,IAAI,CAACG;IAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,IAAIH,IAAI,CAACK,QAAQ,GAAG;MAAEA,QAAQ,EAAEL,IAAI,CAACK;IAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,IAAIL,IAAI,CAACO,SAAS,GAAG;MAAEA,SAAS,EAAEP,IAAI,CAACO;IAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,IAAIP,IAAI,CAACQ,kBAAkB,GAAG;MAAEA,kBAAkB,EAAER,IAAI,CAACQ;IAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IACnF,IAAIR,IAAI,CAACuC,UAAU,GAAG;MAAEA,UAAU,EAAEvC,IAAI,CAACuC;IAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,IAAIvC,IAAI,CAACS,QAAQ,GAAG;MAAEA,QAAQ,EAAET,IAAI,CAACS;IAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,IAAIT,IAAI,CAACU,QAAQ,GAAG;MAAEA,QAAQ,EAAEV,IAAI,CAACU;IAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD8B,SAAS,EAAExC,IAAI,CAACwC,SAAS,GAAG,CAAC,GAAGxC,IAAI,CAACwC,SAAS,CAAC,GAAG,EAAE;IACpDC,gBAAgB,EAAEvB,MAAM,CAACwB,QAAQ;IACjCC,YAAY,EAAEzB,MAAM,CAAC0B,IAAI;IACzB,IAAI5C,IAAI,CAAC6C,OAAO,KAAKlB,SAAS,GAAG;MAAEkB,OAAO,EAAE7C,IAAI,CAAC6C;IAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI7C,IAAI,CAAC8C,YAAY,KAAKnB,SAAS,GAAG;MAAEmB,YAAY,EAAE9C,IAAI,CAAC8C;IAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/EC,WAAW,EAAE/C,IAAI,CAAC+C,WAAW;IAC7BC,SAAS,EAAEhD,IAAI,CAACgD,SAAS;IACzBC,gBAAgB,EAAElD,sBAAsB,CAACC,IAAI;EAC/C,CAAC;AACH;;AAEA;AACA,OAAO,SAASkD,oBAAoBA,CAAClD,IAAwB,EAAkB;EAC7E,MAAMmD,WAAW,GAAGvB,uBAAuB,CAAC5B,IAAI,CAAC;EACjD,MAAM;IAAEa,QAAQ;IAAEE;EAAW,CAAC,GAAGJ,kBAAkB,CAAC,CAAC;EACrD,MAAMyC,MAAM,GAAGnC,cAAc,CAAC,CAAC;EAC/B,MAAMoC,QAAQ,GAAGrD,IAAI,CAACkC,cAAc,IAAIlC,IAAI,CAACmC,YAAY,IAAInC,IAAI,CAACsD,WAAW;EAC7E,OAAO;IACLrB,OAAO,EAAEzC,uBAAuB;IAChCiC,QAAQ,EAAE,cAAc;IACxB4B,QAAQ;IACRE,WAAW,EAAEvD,IAAI,CAACqC,IAAI;IACtB,IAAIrC,IAAI,CAACI,QAAQ,GAAG;MAAEoD,QAAQ,EAAExD,IAAI,CAACI,QAAQ;MAAEA,QAAQ,EAAEJ,IAAI,CAACI;IAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9EqD,OAAO,EAAE;MACPC,IAAI,EAAE1D,IAAI,CAACkC,cAAc,IAAIlC,IAAI,CAACsD,WAAW;MAC7C,IAAItD,IAAI,CAACK,QAAQ,GAAG;QAAEsD,QAAQ,EAAE3D,IAAI,CAACK;MAAS,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IACD8C,WAAW;IACXtC,QAAQ;IACR,IAAIE,UAAU,GAAG;MAAEA;IAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC6C,YAAY,EAAE;MACZ,IAAI5D,IAAI,CAACG,MAAM,GAAG;QAAEA,MAAM,EAAEH,IAAI,CAACG;MAAO,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/C,IAAIH,IAAI,CAACQ,kBAAkB,GAAG;QAAEA,kBAAkB,EAAER,IAAI,CAACQ;MAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;MACnF,IAAIR,IAAI,CAACO,SAAS,GAAG;QAAEA,SAAS,EAAEP,IAAI,CAACO;MAAU,CAAC,GAAG,CAAC,CAAC,CAAC;MACxD,IAAIP,IAAI,CAACuC,UAAU,GAAG;QAAEA,UAAU,EAAEvC,IAAI,CAACuC;MAAW,CAAC,GAAG,CAAC,CAAC,CAAC;MAC3D,IAAIvC,IAAI,CAACkC,cAAc,GAAG;QAAEA,cAAc,EAAElC,IAAI,CAACkC;MAAe,CAAC,GAAG,CAAC,CAAC,CAAC;MACvE,IAAIlC,IAAI,CAACmC,YAAY,GAAG;QAAEA,YAAY,EAAEnC,IAAI,CAACmC;MAAa,CAAC,GAAG,CAAC,CAAC,CAAC;MACjE,IAAInC,IAAI,CAACoC,aAAa,GAAG;QAAEA,aAAa,EAAEpC,IAAI,CAACoC;MAAc,CAAC,GAAG,CAAC,CAAC,CAAC;MACpEW,WAAW,EAAE/C,IAAI,CAAC+C;IACpB,CAAC;IACD,IAAIK,MAAM,GAAG;MAAEA;IAAO,CAAC,GAAG,CAAC,CAAC;EAC9B,CAAC;AACH;AAEA,OAAO,SAASS,sBAAsBA,CAAC7D,IAAwB,EAAU;EACvE,OAAOT,oBAAoB,CAAC2D,oBAAoB,CAAClD,IAAI,CAAC,CAAC;AACzD;AAcA;AACA;AACA;AACA;AACA,OAAO,SAAS8D,yBAAyBA,CAAC9D,IAAwB,EAA+B;EAC/F,MAAM+D,QAAQ,GAAGF,sBAAsB,CAAC7D,IAAI,CAAC;EAC7C,MAAMgE,KAAK,GAAGnE,eAAe,CAACoE,aAAa,CAACF,QAAQ,CAAC;EACrD,IAAI,CAACC,KAAK,CAACE,QAAQ,EAAE;IACnB,OAAO;MAAEC,EAAE,EAAE,KAAK;MAAEC,MAAM,EAAEJ,KAAK,CAACI,MAAM,IAAI;IAAgB,CAAC;EAC/D;EACA,IAAIJ,KAAK,CAACE,QAAQ,CAACnC,UAAU,KAAK/B,IAAI,CAAC+B,UAAU,EAAE;IACjD,OAAO;MAAEoC,EAAE,EAAE,KAAK;MAAEC,MAAM,EAAE;IAAiB,CAAC;EAChD;EACA,OAAO;IAAED,EAAE,EAAE,IAAI;IAAEJ;EAAS,CAAC;AAC/B","ignoreList":[]}