@userflow-tech/react-native 0.4.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +124 -34
- package/docs/anchoring.md +6 -1
- package/docs/deep-linking.md +26 -0
- package/docs/troubleshooting.md +50 -23
- package/expo-plugin/hostDependencyWarnings.d.ts +6 -4
- package/expo-plugin/hostDependencyWarnings.d.ts.map +1 -1
- package/expo-plugin/hostDependencyWarnings.js +8 -6
- package/expo-plugin/hostDependencyWarnings.js.map +1 -1
- package/lib/commonjs/anchors/AutoAnchorRegistry.js +144 -34
- package/lib/commonjs/anchors/AutoAnchorRegistry.js.map +1 -1
- package/lib/commonjs/anchors/animationFrame.js +29 -1
- package/lib/commonjs/anchors/animationFrame.js.map +1 -1
- package/lib/commonjs/anchors/appActive.js +61 -0
- package/lib/commonjs/anchors/appActive.js.map +1 -0
- package/lib/commonjs/anchors/elementConditionEvaluator.js +25 -8
- package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
- package/lib/commonjs/anchors/elementTapMonitor.js +67 -12
- package/lib/commonjs/anchors/elementTapMonitor.js.map +1 -1
- package/lib/commonjs/anchors/elementTargetMatch.js +33 -7
- package/lib/commonjs/anchors/elementTargetMatch.js.map +1 -1
- package/lib/commonjs/anchors/fiber/fiberInternals.js +66 -0
- package/lib/commonjs/anchors/fiber/fiberInternals.js.map +1 -1
- package/lib/commonjs/anchors/fiber/indexHostFibers.js +4 -3
- package/lib/commonjs/anchors/fiber/indexHostFibers.js.map +1 -1
- package/lib/commonjs/anchors/fiber/resolveFiberPath.js +30 -15
- package/lib/commonjs/anchors/fiber/resolveFiberPath.js.map +1 -1
- package/lib/commonjs/anchors/fiberAnchorCache.js +20 -0
- package/lib/commonjs/anchors/fiberAnchorCache.js.map +1 -1
- package/lib/commonjs/anchors/gestureHandlerHandoff.js +304 -0
- package/lib/commonjs/anchors/gestureHandlerHandoff.js.map +1 -0
- package/lib/commonjs/anchors/resolveAnchorHost.js +6 -0
- package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
- package/lib/commonjs/anchors/resolveAutoAnchorHost.js +11 -6
- package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -1
- package/lib/commonjs/anchors/resolveElementTargets.js +63 -8
- package/lib/commonjs/anchors/resolveElementTargets.js.map +1 -1
- package/lib/commonjs/anchors/semanticMatcher.js +43 -21
- package/lib/commonjs/anchors/semanticMatcher.js.map +1 -1
- package/lib/commonjs/anchors/tapSlop.js +16 -0
- package/lib/commonjs/anchors/tapSlop.js.map +1 -0
- package/lib/commonjs/anchors/targetPressMonitor.js +66 -12
- package/lib/commonjs/anchors/targetPressMonitor.js.map +1 -1
- package/lib/commonjs/authoring/fingerprintFromInstance.js +5 -9
- package/lib/commonjs/authoring/fingerprintFromInstance.js.map +1 -1
- package/lib/commonjs/content/RichContentRenderer.js +3 -3
- package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
- package/lib/commonjs/content/openSafeUrl.js +3 -1
- package/lib/commonjs/content/openSafeUrl.js.map +1 -1
- package/lib/commonjs/expo-router/useUserflowExpoRouter.js +6 -0
- package/lib/commonjs/expo-router/useUserflowExpoRouter.js.map +1 -1
- package/lib/commonjs/index.js +19 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/installCheck.js +2 -2
- package/lib/commonjs/installCheck.js.map +1 -1
- package/lib/commonjs/navigation/navigateUrlUtils.js +105 -0
- package/lib/commonjs/navigation/navigateUrlUtils.js.map +1 -0
- package/lib/commonjs/navigation/openExternalNavigateUrl.js +14 -0
- package/lib/commonjs/navigation/openExternalNavigateUrl.js.map +1 -0
- package/lib/commonjs/navigation/openFlowNavigateUrl.js +47 -41
- package/lib/commonjs/navigation/openFlowNavigateUrl.js.map +1 -1
- package/lib/commonjs/pairing/PairingController.js +3 -1
- package/lib/commonjs/pairing/PairingController.js.map +1 -1
- package/lib/commonjs/runtime/BannerHost.js +38 -29
- package/lib/commonjs/runtime/BannerHost.js.map +1 -1
- package/lib/commonjs/runtime/TargetPressBridge.js +55 -7
- package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
- package/lib/commonjs/runtime/UserflowOverlay.js +5 -11
- package/lib/commonjs/runtime/UserflowOverlay.js.map +1 -1
- package/lib/commonjs/runtime/UserflowProvider.js +66 -40
- package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
- package/lib/commonjs/runtime/bannerEngine.js +8 -2
- package/lib/commonjs/runtime/bannerEngine.js.map +1 -1
- package/lib/commonjs/runtime/bannerFlowSpacer.js +71 -0
- package/lib/commonjs/runtime/bannerFlowSpacer.js.map +1 -0
- package/lib/commonjs/runtime/flowEngine.js +11 -0
- package/lib/commonjs/runtime/flowEngine.js.map +1 -1
- package/lib/commonjs/runtime/previewStart.js +39 -0
- package/lib/commonjs/runtime/previewStart.js.map +1 -0
- package/lib/commonjs/runtime/pushBannerLayoutContext.js +98 -0
- package/lib/commonjs/runtime/pushBannerLayoutContext.js.map +1 -0
- package/lib/commonjs/screenTracker.js +12 -0
- package/lib/commonjs/screenTracker.js.map +1 -1
- package/lib/commonjs/surfaces/BannerBar.js +79 -61
- package/lib/commonjs/surfaces/BannerBar.js.map +1 -1
- package/lib/commonjs/surfaces/BannerSurface.js +26 -0
- package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
- package/lib/commonjs/surfaces/TooltipSurface.js +43 -41
- package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
- package/lib/commonjs/surfaces/bannerBarLayout.js +77 -10
- package/lib/commonjs/surfaces/bannerBarLayout.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js +112 -63
- package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js +59 -11
- package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
- package/lib/commonjs/surfaces/hostAccessibilityTrap.js +28 -0
- package/lib/commonjs/surfaces/hostAccessibilityTrap.js.map +1 -0
- package/lib/commonjs/surfaces/resolveBannerTheme.js +6 -3
- package/lib/commonjs/surfaces/resolveBannerTheme.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/TooltipBubble.js +3 -2
- package/lib/commonjs/surfaces/tooltip/TooltipBubble.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js +134 -0
- package/lib/commonjs/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/module/anchors/AutoAnchorRegistry.js +145 -35
- package/lib/module/anchors/AutoAnchorRegistry.js.map +1 -1
- package/lib/module/anchors/animationFrame.js +29 -2
- package/lib/module/anchors/animationFrame.js.map +1 -1
- package/lib/module/anchors/appActive.js +57 -0
- package/lib/module/anchors/appActive.js.map +1 -0
- package/lib/module/anchors/elementConditionEvaluator.js +26 -9
- package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
- package/lib/module/anchors/elementTapMonitor.js +67 -12
- package/lib/module/anchors/elementTapMonitor.js.map +1 -1
- package/lib/module/anchors/elementTargetMatch.js +32 -7
- package/lib/module/anchors/elementTargetMatch.js.map +1 -1
- package/lib/module/anchors/fiber/fiberInternals.js +65 -0
- package/lib/module/anchors/fiber/fiberInternals.js.map +1 -1
- package/lib/module/anchors/fiber/indexHostFibers.js +4 -3
- package/lib/module/anchors/fiber/indexHostFibers.js.map +1 -1
- package/lib/module/anchors/fiber/resolveFiberPath.js +30 -15
- package/lib/module/anchors/fiber/resolveFiberPath.js.map +1 -1
- package/lib/module/anchors/fiberAnchorCache.js +19 -0
- package/lib/module/anchors/fiberAnchorCache.js.map +1 -1
- package/lib/module/anchors/gestureHandlerHandoff.js +298 -0
- package/lib/module/anchors/gestureHandlerHandoff.js.map +1 -0
- package/lib/module/anchors/resolveAnchorHost.js +1 -0
- package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
- package/lib/module/anchors/resolveAutoAnchorHost.js +11 -6
- package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -1
- package/lib/module/anchors/resolveElementTargets.js +63 -8
- package/lib/module/anchors/resolveElementTargets.js.map +1 -1
- package/lib/module/anchors/semanticMatcher.js +43 -21
- package/lib/module/anchors/semanticMatcher.js.map +1 -1
- package/lib/module/anchors/tapSlop.js +11 -0
- package/lib/module/anchors/tapSlop.js.map +1 -0
- package/lib/module/anchors/targetPressMonitor.js +53 -8
- package/lib/module/anchors/targetPressMonitor.js.map +1 -1
- package/lib/module/authoring/fingerprintFromInstance.js +6 -10
- package/lib/module/authoring/fingerprintFromInstance.js.map +1 -1
- package/lib/module/content/RichContentRenderer.js +3 -3
- package/lib/module/content/RichContentRenderer.js.map +1 -1
- package/lib/module/content/openSafeUrl.js +3 -1
- package/lib/module/content/openSafeUrl.js.map +1 -1
- package/lib/module/expo-router/useUserflowExpoRouter.js +7 -1
- package/lib/module/expo-router/useUserflowExpoRouter.js.map +1 -1
- package/lib/module/index.js +22 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/installCheck.js +2 -2
- package/lib/module/installCheck.js.map +1 -1
- package/lib/module/navigation/navigateUrlUtils.js +94 -0
- package/lib/module/navigation/navigateUrlUtils.js.map +1 -0
- package/lib/module/navigation/openExternalNavigateUrl.js +11 -0
- package/lib/module/navigation/openExternalNavigateUrl.js.map +1 -0
- package/lib/module/navigation/openFlowNavigateUrl.js +22 -36
- package/lib/module/navigation/openFlowNavigateUrl.js.map +1 -1
- package/lib/module/pairing/PairingController.js +3 -1
- package/lib/module/pairing/PairingController.js.map +1 -1
- package/lib/module/runtime/BannerHost.js +38 -29
- package/lib/module/runtime/BannerHost.js.map +1 -1
- package/lib/module/runtime/TargetPressBridge.js +56 -8
- package/lib/module/runtime/TargetPressBridge.js.map +1 -1
- package/lib/module/runtime/UserflowOverlay.js +5 -11
- package/lib/module/runtime/UserflowOverlay.js.map +1 -1
- package/lib/module/runtime/UserflowProvider.js +66 -40
- package/lib/module/runtime/UserflowProvider.js.map +1 -1
- package/lib/module/runtime/bannerEngine.js +7 -2
- package/lib/module/runtime/bannerEngine.js.map +1 -1
- package/lib/module/runtime/bannerFlowSpacer.js +65 -0
- package/lib/module/runtime/bannerFlowSpacer.js.map +1 -0
- package/lib/module/runtime/flowEngine.js +11 -0
- package/lib/module/runtime/flowEngine.js.map +1 -1
- package/lib/module/runtime/previewStart.js +35 -0
- package/lib/module/runtime/previewStart.js.map +1 -0
- package/lib/module/runtime/pushBannerLayoutContext.js +91 -0
- package/lib/module/runtime/pushBannerLayoutContext.js.map +1 -0
- package/lib/module/screenTracker.js +11 -0
- package/lib/module/screenTracker.js.map +1 -1
- package/lib/module/surfaces/BannerBar.js +80 -62
- package/lib/module/surfaces/BannerBar.js.map +1 -1
- package/lib/module/surfaces/BannerSurface.js +26 -0
- package/lib/module/surfaces/BannerSurface.js.map +1 -1
- package/lib/module/surfaces/TooltipSurface.js +44 -42
- package/lib/module/surfaces/TooltipSurface.js.map +1 -1
- package/lib/module/surfaces/bannerBarLayout.js +72 -11
- package/lib/module/surfaces/bannerBarLayout.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js +113 -64
- package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js +59 -11
- package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js.map +1 -1
- package/lib/module/surfaces/hostAccessibilityTrap.js +24 -0
- package/lib/module/surfaces/hostAccessibilityTrap.js.map +1 -0
- package/lib/module/surfaces/resolveBannerTheme.js +6 -3
- package/lib/module/surfaces/resolveBannerTheme.js.map +1 -1
- package/lib/module/surfaces/tooltip/TooltipBubble.js +3 -2
- package/lib/module/surfaces/tooltip/TooltipBubble.js.map +1 -1
- package/lib/module/surfaces/tooltip/targetSearchSchedule.js +128 -0
- package/lib/module/surfaces/tooltip/targetSearchSchedule.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts +36 -2
- package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts +0 -4
- package/lib/typescript/commonjs/src/anchors/animationFrame.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/appActive.d.ts +8 -0
- package/lib/typescript/commonjs/src/anchors/appActive.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts +17 -0
- package/lib/typescript/commonjs/src/anchors/elementTapMonitor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts +7 -0
- package/lib/typescript/commonjs/src/anchors/elementTargetMatch.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts +7 -0
- package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts +3 -2
- package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
- package/lib/typescript/commonjs/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts +5 -0
- package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts +70 -0
- package/lib/typescript/commonjs/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +1 -0
- package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
- package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/resolveElementTargets.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts +2 -0
- package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts +9 -0
- package/lib/typescript/commonjs/src/anchors/tapSlop.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts +13 -8
- package/lib/typescript/commonjs/src/anchors/targetPressMonitor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/openSafeUrl.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +6 -5
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/installCheck.d.ts +1 -1
- package/lib/typescript/commonjs/src/installCheck.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts +15 -0
- package/lib/typescript/commonjs/src/navigation/navigateUrlUtils.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts +3 -0
- package/lib/typescript/commonjs/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts +2 -5
- package/lib/typescript/commonjs/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +6 -0
- package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/BannerHost.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +3 -0
- package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/UserflowOverlay.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts +5 -1
- package/lib/typescript/commonjs/src/runtime/bannerEngine.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts +15 -0
- package/lib/typescript/commonjs/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/previewStart.d.ts +13 -0
- package/lib/typescript/commonjs/src/runtime/previewStart.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts +17 -0
- package/lib/typescript/commonjs/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/screenTracker.d.ts +6 -0
- package/lib/typescript/commonjs/src/screenTracker.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts +3 -1
- package/lib/typescript/commonjs/src/surfaces/BannerBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts +5 -1
- package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts +1 -1
- package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts +17 -0
- package/lib/typescript/commonjs/src/surfaces/bannerBarLayout.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
- package/lib/typescript/commonjs/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts +4 -1
- package/lib/typescript/commonjs/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
- package/lib/typescript/commonjs/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/version.d.ts +1 -1
- package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts +36 -2
- package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/animationFrame.d.ts +0 -4
- package/lib/typescript/module/src/anchors/animationFrame.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/appActive.d.ts +8 -0
- package/lib/typescript/module/src/anchors/appActive.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts +17 -0
- package/lib/typescript/module/src/anchors/elementTapMonitor.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts +7 -0
- package/lib/typescript/module/src/anchors/elementTargetMatch.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts +7 -0
- package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts +3 -2
- package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts +3 -0
- package/lib/typescript/module/src/anchors/fiber/resolveFiberPath.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts +5 -0
- package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts +70 -0
- package/lib/typescript/module/src/anchors/gestureHandlerHandoff.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +1 -0
- package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +11 -4
- package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/resolveElementTargets.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/semanticMatcher.d.ts +2 -0
- package/lib/typescript/module/src/anchors/semanticMatcher.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/tapSlop.d.ts +9 -0
- package/lib/typescript/module/src/anchors/tapSlop.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts +13 -8
- package/lib/typescript/module/src/anchors/targetPressMonitor.d.ts.map +1 -1
- package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts.map +1 -1
- package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
- package/lib/typescript/module/src/content/openSafeUrl.d.ts.map +1 -1
- package/lib/typescript/module/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +6 -5
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/installCheck.d.ts +1 -1
- package/lib/typescript/module/src/installCheck.d.ts.map +1 -1
- package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts +15 -0
- package/lib/typescript/module/src/navigation/navigateUrlUtils.d.ts.map +1 -0
- package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts +3 -0
- package/lib/typescript/module/src/navigation/openExternalNavigateUrl.d.ts.map +1 -0
- package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts +2 -5
- package/lib/typescript/module/src/navigation/openFlowNavigateUrl.d.ts.map +1 -1
- package/lib/typescript/module/src/pairing/PairingController.d.ts +6 -0
- package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/BannerHost.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +3 -0
- package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/UserflowOverlay.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/bannerEngine.d.ts +5 -1
- package/lib/typescript/module/src/runtime/bannerEngine.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts +15 -0
- package/lib/typescript/module/src/runtime/bannerFlowSpacer.d.ts.map +1 -0
- package/lib/typescript/module/src/runtime/flowEngine.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/previewStart.d.ts +13 -0
- package/lib/typescript/module/src/runtime/previewStart.d.ts.map +1 -0
- package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts +17 -0
- package/lib/typescript/module/src/runtime/pushBannerLayoutContext.d.ts.map +1 -0
- package/lib/typescript/module/src/screenTracker.d.ts +6 -0
- package/lib/typescript/module/src/screenTracker.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/BannerBar.d.ts +3 -1
- package/lib/typescript/module/src/surfaces/BannerBar.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/BannerSurface.d.ts +5 -1
- package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts +1 -1
- package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts +17 -0
- package/lib/typescript/module/src/surfaces/bannerBarLayout.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts +3 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/BannerWebViewBar.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/buildCustomBannerHtml.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts +14 -0
- package/lib/typescript/module/src/surfaces/hostAccessibilityTrap.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts +4 -1
- package/lib/typescript/module/src/surfaces/resolveBannerTheme.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts +7 -1
- package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts +60 -0
- package/lib/typescript/module/src/surfaces/tooltip/targetSearchSchedule.d.ts.map +1 -0
- package/lib/typescript/module/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/src/anchors/AutoAnchorRegistry.ts +166 -35
- package/src/anchors/animationFrame.ts +31 -1
- package/src/anchors/appActive.ts +63 -0
- package/src/anchors/elementConditionEvaluator.ts +29 -12
- package/src/anchors/elementTapMonitor.ts +68 -10
- package/src/anchors/elementTargetMatch.ts +34 -7
- package/src/anchors/fiber/fiberInternals.ts +68 -0
- package/src/anchors/fiber/indexHostFibers.ts +8 -3
- package/src/anchors/fiber/resolveFiberPath.ts +25 -16
- package/src/anchors/fiberAnchorCache.ts +19 -0
- package/src/anchors/gestureHandlerHandoff.ts +356 -0
- package/src/anchors/resolveAnchorHost.ts +2 -0
- package/src/anchors/resolveAutoAnchorHost.ts +18 -8
- package/src/anchors/resolveElementTargets.ts +64 -7
- package/src/anchors/semanticMatcher.ts +48 -27
- package/src/anchors/tapSlop.ts +18 -0
- package/src/anchors/targetPressMonitor.ts +56 -19
- package/src/authoring/fingerprintFromInstance.ts +4 -5
- package/src/content/RichContentRenderer.tsx +4 -3
- package/src/content/openSafeUrl.ts +3 -1
- package/src/expo-router/useUserflowExpoRouter.ts +10 -1
- package/src/index.ts +20 -9
- package/src/installCheck.ts +4 -4
- package/src/navigation/navigateUrlUtils.ts +100 -0
- package/src/navigation/openExternalNavigateUrl.ts +9 -0
- package/src/navigation/openFlowNavigateUrl.ts +36 -36
- package/src/pairing/PairingController.ts +9 -1
- package/src/runtime/BannerHost.tsx +41 -23
- package/src/runtime/TargetPressBridge.tsx +66 -9
- package/src/runtime/UserflowOverlay.tsx +7 -9
- package/src/runtime/UserflowProvider.tsx +56 -32
- package/src/runtime/bannerEngine.ts +10 -2
- package/src/runtime/bannerFlowSpacer.tsx +70 -0
- package/src/runtime/flowEngine.ts +11 -0
- package/src/runtime/previewStart.ts +49 -0
- package/src/runtime/pushBannerLayoutContext.tsx +121 -0
- package/src/screenTracker.ts +11 -0
- package/src/surfaces/BannerBar.tsx +93 -55
- package/src/surfaces/BannerSurface.tsx +59 -3
- package/src/surfaces/TooltipSurface.tsx +63 -51
- package/src/surfaces/bannerBarLayout.ts +80 -7
- package/src/surfaces/bannerWebView/BannerWebViewBar.tsx +149 -57
- package/src/surfaces/bannerWebView/buildCustomBannerHtml.ts +63 -11
- package/src/surfaces/hostAccessibilityTrap.ts +25 -0
- package/src/surfaces/resolveBannerTheme.ts +14 -3
- package/src/surfaces/tooltip/TooltipBubble.tsx +8 -1
- package/src/surfaces/tooltip/targetSearchSchedule.ts +140 -0
- package/src/version.ts +1 -1
- package/vendor/core/dist/engine/BannerSessionEngine.d.ts +29 -2
- package/vendor/core/dist/engine/BannerSessionEngine.d.ts.map +1 -1
- package/vendor/core/dist/engine/BannerSessionEngine.js +87 -6
- package/vendor/core/dist/engine/BannerSessionEngine.js.map +1 -1
- package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -1
- package/vendor/core/dist/engine/ClientConditionEngine.js +30 -7
- package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -1
- package/vendor/core/dist/engine/PairingEngine.d.ts +6 -1
- package/vendor/core/dist/engine/PairingEngine.d.ts.map +1 -1
- package/vendor/core/dist/engine/PairingEngine.js +23 -3
- package/vendor/core/dist/engine/PairingEngine.js.map +1 -1
- package/vendor/core/dist/engine/handleActions.d.ts.map +1 -1
- package/vendor/core/dist/engine/handleActions.js +67 -2
- package/vendor/core/dist/engine/handleActions.js.map +1 -1
- package/vendor/core/dist/version.d.ts +1 -1
- package/vendor/core/dist/version.js +1 -1
- package/vendor/core/package.json +1 -1
- package/vendor/protocol/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hostDependencyWarnings.js","sourceRoot":"","sources":["../plugin/hostDependencyWarnings.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"hostDependencyWarnings.js","sourceRoot":"","sources":["../plugin/hostDependencyWarnings.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,6 +50,9 @@ function contentSignature(inst) {
|
|
|
50
50
|
const parts = [inst.childText, inst.accessibilityLabel, inst.iconName, inst.imageSrc].filter(part => !!part);
|
|
51
51
|
return parts.length > 0 ? parts.join('\u0000') : undefined;
|
|
52
52
|
}
|
|
53
|
+
|
|
54
|
+
/** Twin evidence for one registry group, computed once per settle. */
|
|
55
|
+
|
|
53
56
|
class AutoAnchorRegistry {
|
|
54
57
|
instances = new Map();
|
|
55
58
|
byRegistryKey = new Map();
|
|
@@ -58,6 +61,22 @@ class AutoAnchorRegistry {
|
|
|
58
61
|
liveContent = new Map();
|
|
59
62
|
listeners = new Set();
|
|
60
63
|
notifyScheduled = false;
|
|
64
|
+
/** Settled {@link AutoAnchorInstance.ambiguous} verdicts by instance id. */
|
|
65
|
+
ambiguity = new Map();
|
|
66
|
+
/**
|
|
67
|
+
* Groups whose verdicts are out of date: `r:` registry key, `t:` template
|
|
68
|
+
* path, `m:` manual id. Mounting a list or reading changed row labels marks
|
|
69
|
+
* a group once; it is settled once, on the next read of a verdict, instead
|
|
70
|
+
* of being recomputed for every member that changed.
|
|
71
|
+
*/
|
|
72
|
+
staleGroups = new Set();
|
|
73
|
+
/**
|
|
74
|
+
* Set instead of {@link staleGroups} once that outgrows the registry: with
|
|
75
|
+
* no flow or element condition reading verdicts, marks from list mounts
|
|
76
|
+
* would otherwise pile up for the whole session.
|
|
77
|
+
*/
|
|
78
|
+
allStale = false;
|
|
79
|
+
settling = false;
|
|
61
80
|
registerInstance(input) {
|
|
62
81
|
const instanceId = mintInstanceId();
|
|
63
82
|
const hints = input.hints ?? undefined;
|
|
@@ -126,6 +145,7 @@ class AutoAnchorRegistry {
|
|
|
126
145
|
childInstanceIds: [],
|
|
127
146
|
ambiguous: false
|
|
128
147
|
};
|
|
148
|
+
this.defineAmbiguity(instance);
|
|
129
149
|
this.instances.set(instanceId, instance);
|
|
130
150
|
this.addIndex(this.byRegistryKey, input.registryKey, instanceId);
|
|
131
151
|
this.addIndex(this.byTemplatePath, templatePath, instanceId);
|
|
@@ -136,7 +156,7 @@ class AutoAnchorRegistry {
|
|
|
136
156
|
const parent = this.instances.get(input.parentInstanceId);
|
|
137
157
|
if (parent) parent.childInstanceIds.push(instanceId);
|
|
138
158
|
}
|
|
139
|
-
this.
|
|
159
|
+
this.markStale(instance);
|
|
140
160
|
this.notify();
|
|
141
161
|
return {
|
|
142
162
|
instanceId,
|
|
@@ -163,7 +183,7 @@ class AutoAnchorRegistry {
|
|
|
163
183
|
if (nextManual) inst.manualId = nextManual;else delete inst.manualId;
|
|
164
184
|
}
|
|
165
185
|
this.refreshManualIndexes(inst, prevIds);
|
|
166
|
-
this.
|
|
186
|
+
this.markStale(inst, prevIds.manualId, prevIds.userflowId, prevIds.testID);
|
|
167
187
|
this.notify();
|
|
168
188
|
}
|
|
169
189
|
getInstance(instanceId) {
|
|
@@ -224,24 +244,27 @@ class AutoAnchorRegistry {
|
|
|
224
244
|
*
|
|
225
245
|
* Direct fiber pointers are preferred; the scan-root index is built lazily
|
|
226
246
|
* and only if some instance cannot reach its fiber that way (Paper release
|
|
227
|
-
* builds, mainly), then reused for the rest of the pass.
|
|
247
|
+
* builds, mainly), then reused for the rest of the pass. Finding which fiber
|
|
248
|
+
* of each pair is committed walks to the root; the pass shares one walk per
|
|
249
|
+
* ancestor across every instance.
|
|
228
250
|
*
|
|
229
251
|
* Silent — does not notify listeners.
|
|
230
252
|
*/
|
|
231
253
|
refreshLiveContent(instances) {
|
|
232
254
|
const list = instances ?? this.allInstances();
|
|
233
255
|
const getIndex = (0, _indexHostFibers.createLazyHostFiberIndex)();
|
|
256
|
+
const resolveCurrent = (0, _fiberInternals.createCurrentFiberResolver)();
|
|
234
257
|
const seen = new Set();
|
|
235
258
|
for (const inst of list) {
|
|
236
259
|
if (seen.has(inst.instanceId)) continue;
|
|
237
260
|
seen.add(inst.instanceId);
|
|
238
|
-
this.refreshOneLiveContent(inst, getIndex);
|
|
261
|
+
this.refreshOneLiveContent(inst, getIndex, resolveCurrent);
|
|
239
262
|
}
|
|
240
263
|
}
|
|
241
|
-
refreshOneLiveContent(inst, getIndex) {
|
|
264
|
+
refreshOneLiveContent(inst, getIndex, resolveCurrent) {
|
|
242
265
|
let fiber = null;
|
|
243
266
|
try {
|
|
244
|
-
fiber = (0, _indexHostFibers.lookupHostFiber)(getIndex, inst.ref.current);
|
|
267
|
+
fiber = (0, _indexHostFibers.lookupHostFiber)(getIndex, inst.ref.current, resolveCurrent);
|
|
245
268
|
} catch {
|
|
246
269
|
fiber = null;
|
|
247
270
|
}
|
|
@@ -252,12 +275,18 @@ class AutoAnchorRegistry {
|
|
|
252
275
|
} catch {
|
|
253
276
|
props = undefined;
|
|
254
277
|
}
|
|
278
|
+
|
|
279
|
+
// Same committed fiber and same props object means nothing was committed
|
|
280
|
+
// here since the last read, so the subtree walk would return what we
|
|
281
|
+
// already have. A commit that re-renders this host or anything inside it
|
|
282
|
+
// makes the other fiber of the pair current, even when the host keeps its
|
|
283
|
+
// props object. Both only change at commit, unlike Fabric's
|
|
284
|
+
// `canonical.currentProps`, which is written during render and stays the
|
|
285
|
+
// same object when only a child changed. Matters because resolution polls
|
|
286
|
+
// this for every registered instance.
|
|
255
287
|
const cached = this.liveContent.get(inst.instanceId);
|
|
256
|
-
// Same fiber and same props object means no re-render since the last read,
|
|
257
|
-
// so the subtree walk would return what we already have. Matters because
|
|
258
|
-
// resolution polls this for every registered instance.
|
|
259
288
|
if (cached && cached.fiber === fiber && props !== undefined && cached.props === props) {
|
|
260
|
-
inst.childText = cached.childText;
|
|
289
|
+
if (cached.childText !== undefined) inst.childText = cached.childText;
|
|
261
290
|
return;
|
|
262
291
|
}
|
|
263
292
|
if (props) this.applyLiveIdentity(inst, props);
|
|
@@ -267,21 +296,19 @@ class AutoAnchorRegistry {
|
|
|
267
296
|
} catch {
|
|
268
297
|
live = undefined;
|
|
269
298
|
}
|
|
270
|
-
|
|
271
|
-
|
|
299
|
+
|
|
300
|
+
// A host with no readable text is cached too, so it is not walked again
|
|
301
|
+
// until it re-renders; its build-time hint stays.
|
|
302
|
+
this.liveContent.set(inst.instanceId, {
|
|
303
|
+
fiber,
|
|
304
|
+
props,
|
|
305
|
+
childText: live
|
|
306
|
+
});
|
|
307
|
+
if (live && inst.childText !== live) {
|
|
272
308
|
inst.childText = live;
|
|
273
|
-
this.liveContent.set(inst.instanceId, {
|
|
274
|
-
fiber,
|
|
275
|
-
props,
|
|
276
|
-
childText: live
|
|
277
|
-
});
|
|
278
309
|
// Text is what separates helper-rendered twins, so the group's ambiguity
|
|
279
310
|
// verdict is only trustworthy once it has been read.
|
|
280
|
-
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
if (cached && cached.fiber !== fiber) {
|
|
284
|
-
this.liveContent.delete(inst.instanceId);
|
|
311
|
+
this.markStale(inst);
|
|
285
312
|
}
|
|
286
313
|
}
|
|
287
314
|
|
|
@@ -304,7 +331,7 @@ class AutoAnchorRegistry {
|
|
|
304
331
|
inst.manualId = liveTestID;
|
|
305
332
|
}
|
|
306
333
|
this.refreshManualIndexes(inst, prev);
|
|
307
|
-
this.
|
|
334
|
+
this.markStale(inst, prev.manualId, prev.userflowId, prev.testID);
|
|
308
335
|
}
|
|
309
336
|
subscribe(listener) {
|
|
310
337
|
this.listeners.add(listener);
|
|
@@ -340,6 +367,9 @@ class AutoAnchorRegistry {
|
|
|
340
367
|
this.byManualId.clear();
|
|
341
368
|
this.byTemplatePath.clear();
|
|
342
369
|
this.liveContent.clear();
|
|
370
|
+
this.ambiguity.clear();
|
|
371
|
+
this.staleGroups.clear();
|
|
372
|
+
this.allStale = false;
|
|
343
373
|
this.notifyScheduled = false;
|
|
344
374
|
nextInstanceSeq = 1;
|
|
345
375
|
}
|
|
@@ -358,12 +388,13 @@ class AutoAnchorRegistry {
|
|
|
358
388
|
}
|
|
359
389
|
this.instances.delete(instanceId);
|
|
360
390
|
this.liveContent.delete(instanceId);
|
|
391
|
+
this.ambiguity.delete(instanceId);
|
|
361
392
|
this.removeIndex(this.byRegistryKey, inst.registryKey, instanceId);
|
|
362
393
|
this.removeIndex(this.byTemplatePath, inst.templatePath, instanceId);
|
|
363
394
|
if (inst.manualId) this.removeIndex(this.byManualId, inst.manualId, instanceId);
|
|
364
395
|
if (inst.userflowId) this.removeIndex(this.byManualId, inst.userflowId, instanceId);
|
|
365
396
|
if (inst.testID) this.removeIndex(this.byManualId, inst.testID, instanceId);
|
|
366
|
-
this.
|
|
397
|
+
this.markStale(inst);
|
|
367
398
|
this.notify();
|
|
368
399
|
}
|
|
369
400
|
refreshManualIndexes(inst, prev) {
|
|
@@ -395,25 +426,104 @@ class AutoAnchorRegistry {
|
|
|
395
426
|
return false;
|
|
396
427
|
}
|
|
397
428
|
|
|
429
|
+
/**
|
|
430
|
+
* Back {@link AutoAnchorInstance.ambiguous} with a verdict that is settled on
|
|
431
|
+
* read, so callers holding an instance always see the current value.
|
|
432
|
+
*/
|
|
433
|
+
defineAmbiguity(inst) {
|
|
434
|
+
const id = inst.instanceId;
|
|
435
|
+
Object.defineProperty(inst, 'ambiguous', {
|
|
436
|
+
configurable: true,
|
|
437
|
+
enumerable: true,
|
|
438
|
+
get: () => {
|
|
439
|
+
this.settleAmbiguity();
|
|
440
|
+
return this.ambiguity.get(id) ?? false;
|
|
441
|
+
},
|
|
442
|
+
set: value => {
|
|
443
|
+
this.ambiguity.set(id, value);
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
/** Every group `inst` belongs to, plus ids it was indexed under before a change. */
|
|
449
|
+
markStale(inst, ...previousIds) {
|
|
450
|
+
if (this.allStale) return;
|
|
451
|
+
this.staleGroups.add(`r:${inst.registryKey}`);
|
|
452
|
+
this.staleGroups.add(`t:${inst.templatePath}`);
|
|
453
|
+
for (const id of [inst.manualId, inst.userflowId, inst.testID, ...previousIds]) {
|
|
454
|
+
if (id) this.staleGroups.add(`m:${id}`);
|
|
455
|
+
}
|
|
456
|
+
// Settling every instance is linear in the registry, so past this size
|
|
457
|
+
// tracking groups no longer saves work.
|
|
458
|
+
if (this.staleGroups.size > this.instances.size) {
|
|
459
|
+
this.allStale = true;
|
|
460
|
+
this.staleGroups.clear();
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
groupIds(groupKey) {
|
|
464
|
+
const value = groupKey.slice(2);
|
|
465
|
+
if (groupKey.startsWith('r:')) return this.byRegistryKey.get(value);
|
|
466
|
+
if (groupKey.startsWith('t:')) return this.byTemplatePath.get(value);
|
|
467
|
+
return this.byManualId.get(value);
|
|
468
|
+
}
|
|
469
|
+
|
|
398
470
|
/**
|
|
399
471
|
* Instances sharing a template path are only twins while they look alike.
|
|
400
472
|
* Four rows from one `field()` helper are indistinguishable at register time
|
|
401
473
|
* and separate once their labels are read, so ambiguity is decided on
|
|
402
474
|
* content, not on the shared path alone. An instance stays ambiguous when it
|
|
403
475
|
* carries no content of its own, or when a peer carries the same content.
|
|
476
|
+
* An instance with a manual id is ambiguous only when another shares the id.
|
|
477
|
+
*
|
|
478
|
+
* Each stale group is settled once, in time linear in its size: recomputing
|
|
479
|
+
* a whole group for every member that changed made a list whose labels all
|
|
480
|
+
* changed cost the cube of its length.
|
|
404
481
|
*/
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
482
|
+
settleAmbiguity() {
|
|
483
|
+
if (this.staleGroups.size === 0 && !this.allStale || this.settling) return;
|
|
484
|
+
this.settling = true;
|
|
485
|
+
try {
|
|
486
|
+
const affected = new Set(this.allStale ? this.instances.keys() : []);
|
|
487
|
+
for (const groupKey of this.staleGroups) {
|
|
488
|
+
const ids = this.groupIds(groupKey);
|
|
489
|
+
if (ids) for (const id of ids) affected.add(id);
|
|
409
490
|
}
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
491
|
+
this.staleGroups.clear();
|
|
492
|
+
this.allStale = false;
|
|
493
|
+
const twinGroups = new Map();
|
|
494
|
+
for (const id of affected) {
|
|
495
|
+
const inst = this.instances.get(id);
|
|
496
|
+
if (!inst) continue;
|
|
497
|
+
this.ambiguity.set(id, this.computeAmbiguous(inst, twinGroups));
|
|
498
|
+
}
|
|
499
|
+
} finally {
|
|
500
|
+
this.settling = false;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
computeAmbiguous(inst, twinGroups) {
|
|
504
|
+
if (inst.manualId) return (this.byManualId.get(inst.manualId)?.size ?? 0) > 1;
|
|
505
|
+
return this.isTwinInGroup(inst, `r:${inst.registryKey}`, twinGroups) || this.isTwinInGroup(inst, `t:${inst.templatePath}`, twinGroups);
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
/** {@link isTwinWithin} against a whole registry group, with the group's evidence memoized. */
|
|
509
|
+
isTwinInGroup(inst, groupKey, twinGroups) {
|
|
510
|
+
let group = twinGroups.get(groupKey);
|
|
511
|
+
if (!group) {
|
|
512
|
+
const members = this.idsToInstances(this.groupIds(groupKey));
|
|
513
|
+
const signatures = new Map();
|
|
514
|
+
for (const member of members) {
|
|
515
|
+
const sig = contentSignature(member);
|
|
516
|
+
if (sig) signatures.set(sig, (signatures.get(sig) ?? 0) + 1);
|
|
517
|
+
}
|
|
518
|
+
group = {
|
|
519
|
+
unlabelled: members.length > 1 && members.every(member => !member.manualId),
|
|
520
|
+
signatures
|
|
521
|
+
};
|
|
522
|
+
twinGroups.set(groupKey, group);
|
|
416
523
|
}
|
|
524
|
+
if (!group.unlabelled) return false;
|
|
525
|
+
const sig = contentSignature(inst);
|
|
526
|
+
return !sig || (group.signatures.get(sig) ?? 0) > 1;
|
|
417
527
|
}
|
|
418
528
|
addIndex(map, key, instanceId) {
|
|
419
529
|
let set = map.get(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_fiberInternals","require","_indexHostFibers","_readHostContent","PRESSABLE_KINDS","Set","roleForKind","kind","has","nextInstanceSeq","mintInstanceId","id","toString","siblingGroupKey","inst","path","templatePath","structuralPath","idx","lastIndexOf","slice","contentSignature","parts","childText","accessibilityLabel","iconName","imageSrc","filter","part","length","join","undefined","AutoAnchorRegistry","instances","Map","byRegistryKey","byManualId","byTemplatePath","liveContent","listeners","notifyScheduled","registerInstance","input","instanceId","hints","role","ufid","registryKey","runtime","manualId","userflowId","literalUserflowId","testID","literalTestId","nativeID","startsWith","nativeId","literalLabel","instance","ref","isPressable","instanceScope","childShape","ancestors","ordinal","siblingIndex","parentInstanceId","childInstanceIds","ambiguous","set","addIndex","parent","get","push","recomputeAmbiguity","notify","dispose","unregisterInstance","updateInstance","patch","keys","Object","every","key","is","prevIds","assign","nextManual","refreshManualIndexes","getInstance","getInstancesByRegistryKey","idsToInstances","getInstancesByManualId","getInstancesByTemplatePath","allInstances","Array","from","values","orderedSiblingsIncludingSelf","group","i","sort","a","b","map","siblingWindow","windowSize","ordered","findIndex","previous","next","toDesc","text","Math","max","refreshLiveContent","list","getIndex","createLazyHostFiberIndex","seen","add","refreshOneLiveContent","fiber","lookupHostFiber","current","props","getLiveHostProps","cached","applyLiveIdentity","live","readHostPlaceholder","readHostText","changed","delete","raw","liveTestID","trim","prev","subscribe","listener","isAmbiguousKey","byKey","some","byManual","isAmbiguousAmong","include","peers","isTwinWithin","clear","childId","child","removeIndex","prevKeys","k","nextKeys","unlabelled","sig","count","peer","mark","size","out","flush","l","queueMicrotask","Promise","resolve","then","exports","autoAnchorRegistry"],"sourceRoot":"../../../src","sources":["anchors/AutoAnchorRegistry.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_fiberInternals","require","_indexHostFibers","_readHostContent","PRESSABLE_KINDS","Set","roleForKind","kind","has","nextInstanceSeq","mintInstanceId","id","toString","siblingGroupKey","inst","path","templatePath","structuralPath","idx","lastIndexOf","slice","contentSignature","parts","childText","accessibilityLabel","iconName","imageSrc","filter","part","length","join","undefined","AutoAnchorRegistry","instances","Map","byRegistryKey","byManualId","byTemplatePath","liveContent","listeners","notifyScheduled","ambiguity","staleGroups","allStale","settling","registerInstance","input","instanceId","hints","role","ufid","registryKey","runtime","manualId","userflowId","literalUserflowId","testID","literalTestId","nativeID","startsWith","nativeId","literalLabel","instance","ref","isPressable","instanceScope","childShape","ancestors","ordinal","siblingIndex","parentInstanceId","childInstanceIds","ambiguous","defineAmbiguity","set","addIndex","parent","get","push","markStale","notify","dispose","unregisterInstance","updateInstance","patch","keys","Object","every","key","is","prevIds","assign","nextManual","refreshManualIndexes","getInstance","getInstancesByRegistryKey","idsToInstances","getInstancesByManualId","getInstancesByTemplatePath","allInstances","Array","from","values","orderedSiblingsIncludingSelf","group","i","sort","a","b","map","siblingWindow","windowSize","ordered","findIndex","previous","next","toDesc","text","Math","max","refreshLiveContent","list","getIndex","createLazyHostFiberIndex","resolveCurrent","createCurrentFiberResolver","seen","add","refreshOneLiveContent","fiber","lookupHostFiber","current","props","getLiveHostProps","cached","applyLiveIdentity","live","readHostPlaceholder","readHostText","raw","liveTestID","trim","prev","subscribe","listener","delete","isAmbiguousKey","byKey","some","byManual","isAmbiguousAmong","include","peers","isTwinWithin","clear","childId","child","removeIndex","prevKeys","k","nextKeys","unlabelled","sig","count","peer","defineProperty","configurable","enumerable","settleAmbiguity","value","previousIds","size","groupIds","groupKey","affected","ids","twinGroups","computeAmbiguous","isTwinInGroup","members","signatures","member","out","flush","l","queueMicrotask","Promise","resolve","then","exports","autoAnchorRegistry"],"sourceRoot":"../../../src","sources":["anchors/AutoAnchorRegistry.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,14 +7,22 @@ exports.addAnimationFrameCallback = addAnimationFrameCallback;
|
|
|
7
7
|
exports.animationFrameSubscriberCount = animationFrameSubscriberCount;
|
|
8
8
|
exports.removeAnimationFrameCallback = removeAnimationFrameCallback;
|
|
9
9
|
exports.resetAnimationFrameForTests = resetAnimationFrameForTests;
|
|
10
|
+
var _appActive = require("./appActive.js");
|
|
10
11
|
/**
|
|
11
12
|
* Shared requestAnimationFrame hub so multiple surfaces never stack loops.
|
|
12
13
|
* Mirrors web userflowjs `util/animation-frame.tsx`.
|
|
14
|
+
*
|
|
15
|
+
* Paused while the app is not active. In bridgeless React Native,
|
|
16
|
+
* `requestAnimationFrame` is a 0 ms timer, and once the app is backgrounded
|
|
17
|
+
* iOS fires timers from an NSTimer instead of the display link, so a loop that
|
|
18
|
+
* kept going would spin as fast as the JS thread allows.
|
|
13
19
|
*/
|
|
14
20
|
|
|
15
21
|
const callbacks = [];
|
|
16
22
|
let rafHandle = null;
|
|
17
23
|
let active = false;
|
|
24
|
+
let appActive = true;
|
|
25
|
+
let unsubscribeAppActive = null;
|
|
18
26
|
|
|
19
27
|
/**
|
|
20
28
|
* `callback` runs on every animation frame. Starts the shared loop when the
|
|
@@ -25,6 +33,7 @@ function addAnimationFrameCallback(callback) {
|
|
|
25
33
|
callbacks.push(callback);
|
|
26
34
|
if (callbacks.length === 1) {
|
|
27
35
|
active = true;
|
|
36
|
+
watchAppState();
|
|
28
37
|
requestNext();
|
|
29
38
|
}
|
|
30
39
|
}
|
|
@@ -40,6 +49,7 @@ function removeAnimationFrameCallback(callback) {
|
|
|
40
49
|
if (callbacks.length === 0) {
|
|
41
50
|
active = false;
|
|
42
51
|
cancelPending();
|
|
52
|
+
unwatchAppState();
|
|
43
53
|
}
|
|
44
54
|
}
|
|
45
55
|
|
|
@@ -48,6 +58,7 @@ function resetAnimationFrameForTests() {
|
|
|
48
58
|
callbacks.length = 0;
|
|
49
59
|
active = false;
|
|
50
60
|
cancelPending();
|
|
61
|
+
unwatchAppState();
|
|
51
62
|
}
|
|
52
63
|
|
|
53
64
|
/** Test helper — number of active subscribers. */
|
|
@@ -67,8 +78,25 @@ function onAnimationFrame() {
|
|
|
67
78
|
}
|
|
68
79
|
requestNext();
|
|
69
80
|
}
|
|
81
|
+
function watchAppState() {
|
|
82
|
+
if (unsubscribeAppActive) return;
|
|
83
|
+
appActive = (0, _appActive.isAppActive)();
|
|
84
|
+
unsubscribeAppActive = (0, _appActive.subscribeAppActive)(next => {
|
|
85
|
+
appActive = next;
|
|
86
|
+
if (!next) {
|
|
87
|
+
cancelPending();
|
|
88
|
+
} else if (rafHandle == null) {
|
|
89
|
+
requestNext();
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
function unwatchAppState() {
|
|
94
|
+
unsubscribeAppActive?.();
|
|
95
|
+
unsubscribeAppActive = null;
|
|
96
|
+
appActive = true;
|
|
97
|
+
}
|
|
70
98
|
function requestNext() {
|
|
71
|
-
if (!active) return;
|
|
99
|
+
if (!active || !appActive) return;
|
|
72
100
|
const raf = typeof globalThis.requestAnimationFrame === 'function' ? globalThis.requestAnimationFrame.bind(globalThis) : null;
|
|
73
101
|
if (raf) {
|
|
74
102
|
rafHandle = raf(onAnimationFrame);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["callbacks","rafHandle","active","addAnimationFrameCallback","callback","includes","push","length","requestNext","removeAnimationFrameCallback","idx","indexOf","splice","cancelPending","resetAnimationFrameForTests","animationFrameSubscriberCount","onAnimationFrame","snapshot","slice","raf","globalThis","requestAnimationFrame","bind","setTimeout","cancelAnimationFrame","clearTimeout"],"sourceRoot":"../../../src","sources":["anchors/animationFrame.ts"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"names":["_appActive","require","callbacks","rafHandle","active","appActive","unsubscribeAppActive","addAnimationFrameCallback","callback","includes","push","length","watchAppState","requestNext","removeAnimationFrameCallback","idx","indexOf","splice","cancelPending","unwatchAppState","resetAnimationFrameForTests","animationFrameSubscriberCount","onAnimationFrame","snapshot","slice","isAppActive","subscribeAppActive","next","raf","globalThis","requestAnimationFrame","bind","setTimeout","cancelAnimationFrame","clearTimeout"],"sourceRoot":"../../../src","sources":["anchors/animationFrame.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isAppActive = isAppActive;
|
|
7
|
+
exports.subscribeAppActive = subscribeAppActive;
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
/**
|
|
10
|
+
* Foreground signal for the anchoring loops (animation-frame tracking and the
|
|
11
|
+
* tooltip target search).
|
|
12
|
+
*
|
|
13
|
+
* Anything other than `background` / `inactive` counts as active, including
|
|
14
|
+
* `unknown` before the first native report. Hosts or test doubles without
|
|
15
|
+
* `AppState` always read as active and never notify.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
function appState() {
|
|
19
|
+
const candidate = _reactNative.AppState;
|
|
20
|
+
return candidate && typeof candidate === 'object' ? candidate : null;
|
|
21
|
+
}
|
|
22
|
+
function isActiveState(state) {
|
|
23
|
+
return state !== 'background' && state !== 'inactive';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Whether the app is in the foreground right now. */
|
|
27
|
+
function isAppActive() {
|
|
28
|
+
try {
|
|
29
|
+
return isActiveState(appState()?.currentState);
|
|
30
|
+
} catch {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* `listener(active)` runs when the app moves between foreground and anything
|
|
37
|
+
* else. Repeated reports of the same side are dropped. Returns an unsubscribe.
|
|
38
|
+
*/
|
|
39
|
+
function subscribeAppActive(listener) {
|
|
40
|
+
const state = appState();
|
|
41
|
+
if (!state || typeof state.addEventListener !== 'function') return () => {};
|
|
42
|
+
let active = isAppActive();
|
|
43
|
+
try {
|
|
44
|
+
const subscription = state.addEventListener('change', next => {
|
|
45
|
+
const nextActive = isActiveState(next);
|
|
46
|
+
if (nextActive === active) return;
|
|
47
|
+
active = nextActive;
|
|
48
|
+
listener(nextActive);
|
|
49
|
+
});
|
|
50
|
+
return () => {
|
|
51
|
+
try {
|
|
52
|
+
subscription?.remove();
|
|
53
|
+
} catch {
|
|
54
|
+
// Teardown is best-effort.
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
} catch {
|
|
58
|
+
return () => {};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=appActive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","appState","candidate","AppState","isActiveState","state","isAppActive","currentState","subscribeAppActive","listener","addEventListener","active","subscription","next","nextActive","remove"],"sourceRoot":"../../../src","sources":["anchors/appActive.ts"],"mappings":";;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,SAASC,QAAQA,CAAA,EAAwB;EACvC,MAAMC,SAAS,GAAGC,qBAAoC;EACtD,OAAOD,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAG,IAAI;AACtE;AAEA,SAASE,aAAaA,CAACC,KAAc,EAAW;EAC9C,OAAOA,KAAK,KAAK,YAAY,IAAIA,KAAK,KAAK,UAAU;AACvD;;AAEA;AACO,SAASC,WAAWA,CAAA,EAAY;EACrC,IAAI;IACF,OAAOF,aAAa,CAACH,QAAQ,CAAC,CAAC,EAAEM,YAAY,CAAC;EAChD,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;;AAEA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,QAAmC,EAAc;EAClF,MAAMJ,KAAK,GAAGJ,QAAQ,CAAC,CAAC;EACxB,IAAI,CAACI,KAAK,IAAI,OAAOA,KAAK,CAACK,gBAAgB,KAAK,UAAU,EAAE,OAAO,MAAM,CAAC,CAAC;EAC3E,IAAIC,MAAM,GAAGL,WAAW,CAAC,CAAC;EAC1B,IAAI;IACF,MAAMM,YAAY,GAAGP,KAAK,CAACK,gBAAgB,CAAC,QAAQ,EAAGG,IAAI,IAAK;MAC9D,MAAMC,UAAU,GAAGV,aAAa,CAACS,IAAI,CAAC;MACtC,IAAIC,UAAU,KAAKH,MAAM,EAAE;MAC3BA,MAAM,GAAGG,UAAU;MACnBL,QAAQ,CAACK,UAAU,CAAC;IACtB,CAAC,CAAC;IACF,OAAO,MAAM;MACX,IAAI;QACFF,YAAY,EAAEG,MAAM,CAAC,CAAC;MACxB,CAAC,CAAC,MAAM;QACN;MAAA;IAEJ,CAAC;EACH,CAAC,CAAC,MAAM;IACN,OAAO,MAAM,CAAC,CAAC;EACjB;AACF","ignoreList":[]}
|
|
@@ -152,20 +152,37 @@ function trackClick(condition, elementState, report, context, warnOnce) {
|
|
|
152
152
|
const subscription = {
|
|
153
153
|
unsubscribe: () => {}
|
|
154
154
|
};
|
|
155
|
-
|
|
156
|
-
if (latched) return;
|
|
157
|
-
if (!(0, _resolveElementTargets.tapMayHitSelector)(condition.selector, tap)) return;
|
|
158
|
-
const resolution = (0, _resolveElementTargets.resolveElementTargets)(condition.selector);
|
|
159
|
-
if (resolution.status !== 'found') return;
|
|
160
|
-
const matched = resolution.targets.find(target => target.fiber != null && (0, _elementTargetMatch.fiberIsUnder)(tap.targetFiber, target.fiber));
|
|
161
|
-
if (!matched?.fiber) return;
|
|
162
|
-
if ((0, _elementTargetMatch.tapPathDisabled)(tap.targetFiber, matched.fiber)) return;
|
|
155
|
+
const latch = () => {
|
|
163
156
|
latched = true;
|
|
164
157
|
report(valueWhenOccurred, {
|
|
165
158
|
immediate: true
|
|
166
159
|
});
|
|
167
160
|
subscription.unsubscribe();
|
|
168
161
|
stopWatchingResolution();
|
|
162
|
+
};
|
|
163
|
+
subscription.unsubscribe = _elementTapMonitor.elementTapMonitor.subscribe(tap => {
|
|
164
|
+
if (latched) return;
|
|
165
|
+
if (!(0, _resolveElementTargets.tapMayHitSelector)(condition.selector, tap)) return;
|
|
166
|
+
const resolution = (0, _resolveElementTargets.resolveElementTargets)(condition.selector);
|
|
167
|
+
if (resolution.status === 'found') {
|
|
168
|
+
const matched = resolution.targets.find(target => target.fiber != null && (0, _elementTargetMatch.fiberIsUnder)(tap.targetFiber, target.fiber));
|
|
169
|
+
if (!matched?.fiber) return;
|
|
170
|
+
if ((0, _elementTargetMatch.tapPathDisabled)(tap.targetFiber, matched.fiber)) return;
|
|
171
|
+
latch();
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// The press may already have navigated away, so the live scan is absent.
|
|
176
|
+
// The fiber captured at touch start still carries the manual id. This is
|
|
177
|
+
// only the fallback: a target that is still on screen keeps the registry
|
|
178
|
+
// and prop-tier precedence of the live scan.
|
|
179
|
+
if (resolution.status !== 'absent') return;
|
|
180
|
+
if (condition.selector?.type === 'AUTO') return;
|
|
181
|
+
const anchorId = (0, _resolveManualAnchorId.resolveManualAnchorId)(condition.selector?.css);
|
|
182
|
+
const capturedHost = anchorId ? (0, _elementTargetMatch.fiberBearingAnchorId)(tap.targetFiber, anchorId) : null;
|
|
183
|
+
if (!capturedHost) return;
|
|
184
|
+
if ((0, _elementTargetMatch.tapPathDisabled)(tap.targetFiber, capturedHost)) return;
|
|
185
|
+
latch();
|
|
169
186
|
});
|
|
170
187
|
return () => {
|
|
171
188
|
subscription.unsubscribe();
|