@userflow-tech/react-native 0.4.5 → 0.6.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 +31 -2
- package/docs/anchoring.md +6 -1
- package/docs/custom-fonts.md +36 -0
- package/docs/troubleshooting.md +33 -6
- 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/FiberScanRootStore.js +8 -0
- package/lib/commonjs/anchors/fiber/FiberScanRootStore.js.map +1 -1
- package/lib/commonjs/anchors/fiber/detectAppFontFamily.js +341 -0
- package/lib/commonjs/anchors/fiber/detectAppFontFamily.js.map +1 -0
- 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/fiber/visibleScreens.js +6 -0
- package/lib/commonjs/anchors/fiber/visibleScreens.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/BannerStepButton.js +2 -1
- package/lib/commonjs/content/BannerStepButton.js.map +1 -1
- package/lib/commonjs/content/RichContentRenderer.js +20 -14
- package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
- package/lib/commonjs/content/StepButton.js +2 -1
- package/lib/commonjs/content/StepButton.js.map +1 -1
- package/lib/commonjs/content/openSafeUrl.js +3 -1
- package/lib/commonjs/content/openSafeUrl.js.map +1 -1
- package/lib/commonjs/content/resolveContentFontFamily.js +96 -0
- package/lib/commonjs/content/resolveContentFontFamily.js.map +1 -0
- package/lib/commonjs/expo-router/useUserflowExpoRouter.js +6 -0
- package/lib/commonjs/expo-router/useUserflowExpoRouter.js.map +1 -1
- package/lib/commonjs/index.js +21 -5
- package/lib/commonjs/index.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 +101 -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 +28 -6
- package/lib/commonjs/surfaces/BannerSurface.js.map +1 -1
- package/lib/commonjs/surfaces/ProgressBar.js +2 -1
- package/lib/commonjs/surfaces/ProgressBar.js.map +1 -1
- package/lib/commonjs/surfaces/TooltipSurface.js +48 -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 +114 -63
- package/lib/commonjs/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js +3 -33
- package/lib/commonjs/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js +2 -1
- package/lib/commonjs/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -1
- package/lib/commonjs/surfaces/bannerWebView/bannerWebViewHeight.js +33 -0
- package/lib/commonjs/surfaces/bannerWebView/bannerWebViewHeight.js.map +1 -0
- package/lib/commonjs/surfaces/bannerWebView/buildCustomBannerHtml.js +104 -23
- 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/FiberScanRootStore.js +8 -0
- package/lib/module/anchors/fiber/FiberScanRootStore.js.map +1 -1
- package/lib/module/anchors/fiber/detectAppFontFamily.js +330 -0
- package/lib/module/anchors/fiber/detectAppFontFamily.js.map +1 -0
- 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/fiber/visibleScreens.js +5 -0
- package/lib/module/anchors/fiber/visibleScreens.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/BannerStepButton.js +2 -1
- package/lib/module/content/BannerStepButton.js.map +1 -1
- package/lib/module/content/RichContentRenderer.js +20 -14
- package/lib/module/content/RichContentRenderer.js.map +1 -1
- package/lib/module/content/StepButton.js +2 -1
- package/lib/module/content/StepButton.js.map +1 -1
- package/lib/module/content/openSafeUrl.js +3 -1
- package/lib/module/content/openSafeUrl.js.map +1 -1
- package/lib/module/content/resolveContentFontFamily.js +89 -0
- package/lib/module/content/resolveContentFontFamily.js.map +1 -0
- package/lib/module/expo-router/useUserflowExpoRouter.js +7 -1
- package/lib/module/expo-router/useUserflowExpoRouter.js.map +1 -1
- package/lib/module/index.js +24 -7
- package/lib/module/index.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 +94 -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 +28 -6
- package/lib/module/surfaces/BannerSurface.js.map +1 -1
- package/lib/module/surfaces/ProgressBar.js +2 -1
- package/lib/module/surfaces/ProgressBar.js.map +1 -1
- package/lib/module/surfaces/TooltipSurface.js +49 -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 +115 -64
- package/lib/module/surfaces/bannerWebView/BannerWebViewBar.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js +3 -31
- package/lib/module/surfaces/bannerWebView/bannerNeedsWebView.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js +2 -1
- package/lib/module/surfaces/bannerWebView/bannerThemeStyles.js.map +1 -1
- package/lib/module/surfaces/bannerWebView/bannerWebViewHeight.js +29 -0
- package/lib/module/surfaces/bannerWebView/bannerWebViewHeight.js.map +1 -0
- package/lib/module/surfaces/bannerWebView/buildCustomBannerHtml.js +104 -23
- 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/FiberScanRootStore.d.ts +5 -0
- package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/detectAppFontFamily.d.ts +30 -0
- package/lib/typescript/commonjs/src/anchors/fiber/detectAppFontFamily.d.ts.map +1 -0
- 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/fiber/visibleScreens.d.ts +2 -0
- package/lib/typescript/commonjs/src/anchors/fiber/visibleScreens.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/BannerStepButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/StepButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/openSafeUrl.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/resolveContentFontFamily.d.ts +35 -0
- package/lib/typescript/commonjs/src/content/resolveContentFontFamily.d.ts.map +1 -0
- 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/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 +22 -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 +6 -5
- package/lib/typescript/commonjs/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/ProgressBar.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/bannerNeedsWebView.d.ts +3 -12
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts +13 -0
- package/lib/typescript/commonjs/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts.map +1 -0
- 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/FiberScanRootStore.d.ts +5 -0
- package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/detectAppFontFamily.d.ts +30 -0
- package/lib/typescript/module/src/anchors/fiber/detectAppFontFamily.d.ts.map +1 -0
- 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/fiber/visibleScreens.d.ts +2 -0
- package/lib/typescript/module/src/anchors/fiber/visibleScreens.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/BannerStepButton.d.ts.map +1 -1
- package/lib/typescript/module/src/content/RichContentRenderer.d.ts.map +1 -1
- package/lib/typescript/module/src/content/StepButton.d.ts.map +1 -1
- package/lib/typescript/module/src/content/openSafeUrl.d.ts.map +1 -1
- package/lib/typescript/module/src/content/resolveContentFontFamily.d.ts +35 -0
- package/lib/typescript/module/src/content/resolveContentFontFamily.d.ts.map +1 -0
- 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/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 +22 -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 +6 -5
- package/lib/typescript/module/src/surfaces/BannerSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/ProgressBar.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/bannerNeedsWebView.d.ts +3 -12
- package/lib/typescript/module/src/surfaces/bannerWebView/bannerNeedsWebView.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/bannerThemeStyles.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts +13 -0
- package/lib/typescript/module/src/surfaces/bannerWebView/bannerWebViewHeight.d.ts.map +1 -0
- 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/FiberScanRootStore.ts +8 -0
- package/src/anchors/fiber/detectAppFontFamily.ts +400 -0
- 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/fiber/visibleScreens.ts +5 -0
- 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/BannerStepButton.tsx +2 -1
- package/src/content/RichContentRenderer.tsx +19 -13
- package/src/content/StepButton.tsx +2 -1
- package/src/content/openSafeUrl.ts +3 -1
- package/src/content/resolveContentFontFamily.ts +119 -0
- package/src/expo-router/useUserflowExpoRouter.ts +10 -1
- package/src/index.ts +22 -9
- 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 +126 -0
- package/src/screenTracker.ts +11 -0
- package/src/surfaces/BannerBar.tsx +93 -55
- package/src/surfaces/BannerSurface.tsx +61 -9
- package/src/surfaces/ProgressBar.tsx +2 -1
- package/src/surfaces/TooltipSurface.tsx +78 -53
- package/src/surfaces/bannerBarLayout.ts +80 -7
- package/src/surfaces/bannerWebView/BannerWebViewBar.tsx +151 -57
- package/src/surfaces/bannerWebView/bannerNeedsWebView.ts +4 -36
- package/src/surfaces/bannerWebView/bannerThemeStyles.ts +2 -1
- package/src/surfaces/bannerWebView/bannerWebViewHeight.ts +32 -0
- package/src/surfaces/bannerWebView/buildCustomBannerHtml.ts +111 -23
- 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/dist/flows.d.ts +2 -0
- package/vendor/protocol/dist/flows.d.ts.map +1 -1
- package/vendor/protocol/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { getLiveHostProps } from "./fiber/fiberInternals.js";
|
|
3
|
+
import { createCurrentFiberResolver, getLiveHostProps } from "./fiber/fiberInternals.js";
|
|
4
4
|
import { createLazyHostFiberIndex, lookupHostFiber } from "./fiber/indexHostFibers.js";
|
|
5
5
|
import { readHostPlaceholder, readHostText } from "./fiber/readHostContent.js";
|
|
6
6
|
|
|
@@ -46,6 +46,9 @@ function contentSignature(inst) {
|
|
|
46
46
|
const parts = [inst.childText, inst.accessibilityLabel, inst.iconName, inst.imageSrc].filter(part => !!part);
|
|
47
47
|
return parts.length > 0 ? parts.join('\u0000') : undefined;
|
|
48
48
|
}
|
|
49
|
+
|
|
50
|
+
/** Twin evidence for one registry group, computed once per settle. */
|
|
51
|
+
|
|
49
52
|
export class AutoAnchorRegistry {
|
|
50
53
|
instances = new Map();
|
|
51
54
|
byRegistryKey = new Map();
|
|
@@ -54,6 +57,22 @@ export class AutoAnchorRegistry {
|
|
|
54
57
|
liveContent = new Map();
|
|
55
58
|
listeners = new Set();
|
|
56
59
|
notifyScheduled = false;
|
|
60
|
+
/** Settled {@link AutoAnchorInstance.ambiguous} verdicts by instance id. */
|
|
61
|
+
ambiguity = new Map();
|
|
62
|
+
/**
|
|
63
|
+
* Groups whose verdicts are out of date: `r:` registry key, `t:` template
|
|
64
|
+
* path, `m:` manual id. Mounting a list or reading changed row labels marks
|
|
65
|
+
* a group once; it is settled once, on the next read of a verdict, instead
|
|
66
|
+
* of being recomputed for every member that changed.
|
|
67
|
+
*/
|
|
68
|
+
staleGroups = new Set();
|
|
69
|
+
/**
|
|
70
|
+
* Set instead of {@link staleGroups} once that outgrows the registry: with
|
|
71
|
+
* no flow or element condition reading verdicts, marks from list mounts
|
|
72
|
+
* would otherwise pile up for the whole session.
|
|
73
|
+
*/
|
|
74
|
+
allStale = false;
|
|
75
|
+
settling = false;
|
|
57
76
|
registerInstance(input) {
|
|
58
77
|
const instanceId = mintInstanceId();
|
|
59
78
|
const hints = input.hints ?? undefined;
|
|
@@ -122,6 +141,7 @@ export class AutoAnchorRegistry {
|
|
|
122
141
|
childInstanceIds: [],
|
|
123
142
|
ambiguous: false
|
|
124
143
|
};
|
|
144
|
+
this.defineAmbiguity(instance);
|
|
125
145
|
this.instances.set(instanceId, instance);
|
|
126
146
|
this.addIndex(this.byRegistryKey, input.registryKey, instanceId);
|
|
127
147
|
this.addIndex(this.byTemplatePath, templatePath, instanceId);
|
|
@@ -132,7 +152,7 @@ export class AutoAnchorRegistry {
|
|
|
132
152
|
const parent = this.instances.get(input.parentInstanceId);
|
|
133
153
|
if (parent) parent.childInstanceIds.push(instanceId);
|
|
134
154
|
}
|
|
135
|
-
this.
|
|
155
|
+
this.markStale(instance);
|
|
136
156
|
this.notify();
|
|
137
157
|
return {
|
|
138
158
|
instanceId,
|
|
@@ -159,7 +179,7 @@ export class AutoAnchorRegistry {
|
|
|
159
179
|
if (nextManual) inst.manualId = nextManual;else delete inst.manualId;
|
|
160
180
|
}
|
|
161
181
|
this.refreshManualIndexes(inst, prevIds);
|
|
162
|
-
this.
|
|
182
|
+
this.markStale(inst, prevIds.manualId, prevIds.userflowId, prevIds.testID);
|
|
163
183
|
this.notify();
|
|
164
184
|
}
|
|
165
185
|
getInstance(instanceId) {
|
|
@@ -220,24 +240,27 @@ export class AutoAnchorRegistry {
|
|
|
220
240
|
*
|
|
221
241
|
* Direct fiber pointers are preferred; the scan-root index is built lazily
|
|
222
242
|
* and only if some instance cannot reach its fiber that way (Paper release
|
|
223
|
-
* builds, mainly), then reused for the rest of the pass.
|
|
243
|
+
* builds, mainly), then reused for the rest of the pass. Finding which fiber
|
|
244
|
+
* of each pair is committed walks to the root; the pass shares one walk per
|
|
245
|
+
* ancestor across every instance.
|
|
224
246
|
*
|
|
225
247
|
* Silent — does not notify listeners.
|
|
226
248
|
*/
|
|
227
249
|
refreshLiveContent(instances) {
|
|
228
250
|
const list = instances ?? this.allInstances();
|
|
229
251
|
const getIndex = createLazyHostFiberIndex();
|
|
252
|
+
const resolveCurrent = createCurrentFiberResolver();
|
|
230
253
|
const seen = new Set();
|
|
231
254
|
for (const inst of list) {
|
|
232
255
|
if (seen.has(inst.instanceId)) continue;
|
|
233
256
|
seen.add(inst.instanceId);
|
|
234
|
-
this.refreshOneLiveContent(inst, getIndex);
|
|
257
|
+
this.refreshOneLiveContent(inst, getIndex, resolveCurrent);
|
|
235
258
|
}
|
|
236
259
|
}
|
|
237
|
-
refreshOneLiveContent(inst, getIndex) {
|
|
260
|
+
refreshOneLiveContent(inst, getIndex, resolveCurrent) {
|
|
238
261
|
let fiber = null;
|
|
239
262
|
try {
|
|
240
|
-
fiber = lookupHostFiber(getIndex, inst.ref.current);
|
|
263
|
+
fiber = lookupHostFiber(getIndex, inst.ref.current, resolveCurrent);
|
|
241
264
|
} catch {
|
|
242
265
|
fiber = null;
|
|
243
266
|
}
|
|
@@ -248,12 +271,18 @@ export class AutoAnchorRegistry {
|
|
|
248
271
|
} catch {
|
|
249
272
|
props = undefined;
|
|
250
273
|
}
|
|
274
|
+
|
|
275
|
+
// Same committed fiber and same props object means nothing was committed
|
|
276
|
+
// here since the last read, so the subtree walk would return what we
|
|
277
|
+
// already have. A commit that re-renders this host or anything inside it
|
|
278
|
+
// makes the other fiber of the pair current, even when the host keeps its
|
|
279
|
+
// props object. Both only change at commit, unlike Fabric's
|
|
280
|
+
// `canonical.currentProps`, which is written during render and stays the
|
|
281
|
+
// same object when only a child changed. Matters because resolution polls
|
|
282
|
+
// this for every registered instance.
|
|
251
283
|
const cached = this.liveContent.get(inst.instanceId);
|
|
252
|
-
// Same fiber and same props object means no re-render since the last read,
|
|
253
|
-
// so the subtree walk would return what we already have. Matters because
|
|
254
|
-
// resolution polls this for every registered instance.
|
|
255
284
|
if (cached && cached.fiber === fiber && props !== undefined && cached.props === props) {
|
|
256
|
-
inst.childText = cached.childText;
|
|
285
|
+
if (cached.childText !== undefined) inst.childText = cached.childText;
|
|
257
286
|
return;
|
|
258
287
|
}
|
|
259
288
|
if (props) this.applyLiveIdentity(inst, props);
|
|
@@ -263,21 +292,19 @@ export class AutoAnchorRegistry {
|
|
|
263
292
|
} catch {
|
|
264
293
|
live = undefined;
|
|
265
294
|
}
|
|
266
|
-
|
|
267
|
-
|
|
295
|
+
|
|
296
|
+
// A host with no readable text is cached too, so it is not walked again
|
|
297
|
+
// until it re-renders; its build-time hint stays.
|
|
298
|
+
this.liveContent.set(inst.instanceId, {
|
|
299
|
+
fiber,
|
|
300
|
+
props,
|
|
301
|
+
childText: live
|
|
302
|
+
});
|
|
303
|
+
if (live && inst.childText !== live) {
|
|
268
304
|
inst.childText = live;
|
|
269
|
-
this.liveContent.set(inst.instanceId, {
|
|
270
|
-
fiber,
|
|
271
|
-
props,
|
|
272
|
-
childText: live
|
|
273
|
-
});
|
|
274
305
|
// Text is what separates helper-rendered twins, so the group's ambiguity
|
|
275
306
|
// verdict is only trustworthy once it has been read.
|
|
276
|
-
|
|
277
|
-
return;
|
|
278
|
-
}
|
|
279
|
-
if (cached && cached.fiber !== fiber) {
|
|
280
|
-
this.liveContent.delete(inst.instanceId);
|
|
307
|
+
this.markStale(inst);
|
|
281
308
|
}
|
|
282
309
|
}
|
|
283
310
|
|
|
@@ -300,7 +327,7 @@ export class AutoAnchorRegistry {
|
|
|
300
327
|
inst.manualId = liveTestID;
|
|
301
328
|
}
|
|
302
329
|
this.refreshManualIndexes(inst, prev);
|
|
303
|
-
this.
|
|
330
|
+
this.markStale(inst, prev.manualId, prev.userflowId, prev.testID);
|
|
304
331
|
}
|
|
305
332
|
subscribe(listener) {
|
|
306
333
|
this.listeners.add(listener);
|
|
@@ -336,6 +363,9 @@ export class AutoAnchorRegistry {
|
|
|
336
363
|
this.byManualId.clear();
|
|
337
364
|
this.byTemplatePath.clear();
|
|
338
365
|
this.liveContent.clear();
|
|
366
|
+
this.ambiguity.clear();
|
|
367
|
+
this.staleGroups.clear();
|
|
368
|
+
this.allStale = false;
|
|
339
369
|
this.notifyScheduled = false;
|
|
340
370
|
nextInstanceSeq = 1;
|
|
341
371
|
}
|
|
@@ -354,12 +384,13 @@ export class AutoAnchorRegistry {
|
|
|
354
384
|
}
|
|
355
385
|
this.instances.delete(instanceId);
|
|
356
386
|
this.liveContent.delete(instanceId);
|
|
387
|
+
this.ambiguity.delete(instanceId);
|
|
357
388
|
this.removeIndex(this.byRegistryKey, inst.registryKey, instanceId);
|
|
358
389
|
this.removeIndex(this.byTemplatePath, inst.templatePath, instanceId);
|
|
359
390
|
if (inst.manualId) this.removeIndex(this.byManualId, inst.manualId, instanceId);
|
|
360
391
|
if (inst.userflowId) this.removeIndex(this.byManualId, inst.userflowId, instanceId);
|
|
361
392
|
if (inst.testID) this.removeIndex(this.byManualId, inst.testID, instanceId);
|
|
362
|
-
this.
|
|
393
|
+
this.markStale(inst);
|
|
363
394
|
this.notify();
|
|
364
395
|
}
|
|
365
396
|
refreshManualIndexes(inst, prev) {
|
|
@@ -391,25 +422,104 @@ export class AutoAnchorRegistry {
|
|
|
391
422
|
return false;
|
|
392
423
|
}
|
|
393
424
|
|
|
425
|
+
/**
|
|
426
|
+
* Back {@link AutoAnchorInstance.ambiguous} with a verdict that is settled on
|
|
427
|
+
* read, so callers holding an instance always see the current value.
|
|
428
|
+
*/
|
|
429
|
+
defineAmbiguity(inst) {
|
|
430
|
+
const id = inst.instanceId;
|
|
431
|
+
Object.defineProperty(inst, 'ambiguous', {
|
|
432
|
+
configurable: true,
|
|
433
|
+
enumerable: true,
|
|
434
|
+
get: () => {
|
|
435
|
+
this.settleAmbiguity();
|
|
436
|
+
return this.ambiguity.get(id) ?? false;
|
|
437
|
+
},
|
|
438
|
+
set: value => {
|
|
439
|
+
this.ambiguity.set(id, value);
|
|
440
|
+
}
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/** Every group `inst` belongs to, plus ids it was indexed under before a change. */
|
|
445
|
+
markStale(inst, ...previousIds) {
|
|
446
|
+
if (this.allStale) return;
|
|
447
|
+
this.staleGroups.add(`r:${inst.registryKey}`);
|
|
448
|
+
this.staleGroups.add(`t:${inst.templatePath}`);
|
|
449
|
+
for (const id of [inst.manualId, inst.userflowId, inst.testID, ...previousIds]) {
|
|
450
|
+
if (id) this.staleGroups.add(`m:${id}`);
|
|
451
|
+
}
|
|
452
|
+
// Settling every instance is linear in the registry, so past this size
|
|
453
|
+
// tracking groups no longer saves work.
|
|
454
|
+
if (this.staleGroups.size > this.instances.size) {
|
|
455
|
+
this.allStale = true;
|
|
456
|
+
this.staleGroups.clear();
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
groupIds(groupKey) {
|
|
460
|
+
const value = groupKey.slice(2);
|
|
461
|
+
if (groupKey.startsWith('r:')) return this.byRegistryKey.get(value);
|
|
462
|
+
if (groupKey.startsWith('t:')) return this.byTemplatePath.get(value);
|
|
463
|
+
return this.byManualId.get(value);
|
|
464
|
+
}
|
|
465
|
+
|
|
394
466
|
/**
|
|
395
467
|
* Instances sharing a template path are only twins while they look alike.
|
|
396
468
|
* Four rows from one `field()` helper are indistinguishable at register time
|
|
397
469
|
* and separate once their labels are read, so ambiguity is decided on
|
|
398
470
|
* content, not on the shared path alone. An instance stays ambiguous when it
|
|
399
471
|
* carries no content of its own, or when a peer carries the same content.
|
|
472
|
+
* An instance with a manual id is ambiguous only when another shares the id.
|
|
473
|
+
*
|
|
474
|
+
* Each stale group is settled once, in time linear in its size: recomputing
|
|
475
|
+
* a whole group for every member that changed made a list whose labels all
|
|
476
|
+
* changed cost the cube of its length.
|
|
400
477
|
*/
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
478
|
+
settleAmbiguity() {
|
|
479
|
+
if (this.staleGroups.size === 0 && !this.allStale || this.settling) return;
|
|
480
|
+
this.settling = true;
|
|
481
|
+
try {
|
|
482
|
+
const affected = new Set(this.allStale ? this.instances.keys() : []);
|
|
483
|
+
for (const groupKey of this.staleGroups) {
|
|
484
|
+
const ids = this.groupIds(groupKey);
|
|
485
|
+
if (ids) for (const id of ids) affected.add(id);
|
|
405
486
|
}
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
487
|
+
this.staleGroups.clear();
|
|
488
|
+
this.allStale = false;
|
|
489
|
+
const twinGroups = new Map();
|
|
490
|
+
for (const id of affected) {
|
|
491
|
+
const inst = this.instances.get(id);
|
|
492
|
+
if (!inst) continue;
|
|
493
|
+
this.ambiguity.set(id, this.computeAmbiguous(inst, twinGroups));
|
|
494
|
+
}
|
|
495
|
+
} finally {
|
|
496
|
+
this.settling = false;
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
computeAmbiguous(inst, twinGroups) {
|
|
500
|
+
if (inst.manualId) return (this.byManualId.get(inst.manualId)?.size ?? 0) > 1;
|
|
501
|
+
return this.isTwinInGroup(inst, `r:${inst.registryKey}`, twinGroups) || this.isTwinInGroup(inst, `t:${inst.templatePath}`, twinGroups);
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
/** {@link isTwinWithin} against a whole registry group, with the group's evidence memoized. */
|
|
505
|
+
isTwinInGroup(inst, groupKey, twinGroups) {
|
|
506
|
+
let group = twinGroups.get(groupKey);
|
|
507
|
+
if (!group) {
|
|
508
|
+
const members = this.idsToInstances(this.groupIds(groupKey));
|
|
509
|
+
const signatures = new Map();
|
|
510
|
+
for (const member of members) {
|
|
511
|
+
const sig = contentSignature(member);
|
|
512
|
+
if (sig) signatures.set(sig, (signatures.get(sig) ?? 0) + 1);
|
|
513
|
+
}
|
|
514
|
+
group = {
|
|
515
|
+
unlabelled: members.length > 1 && members.every(member => !member.manualId),
|
|
516
|
+
signatures
|
|
517
|
+
};
|
|
518
|
+
twinGroups.set(groupKey, group);
|
|
412
519
|
}
|
|
520
|
+
if (!group.unlabelled) return false;
|
|
521
|
+
const sig = contentSignature(inst);
|
|
522
|
+
return !sig || (group.signatures.get(sig) ?? 0) > 1;
|
|
413
523
|
}
|
|
414
524
|
addIndex(map, key, instanceId) {
|
|
415
525
|
let set = map.get(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getLiveHostProps","createLazyHostFiberIndex","lookupHostFiber","readHostPlaceholder","readHostText","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","seen","add","refreshOneLiveContent","fiber","current","props","cached","applyLiveIdentity","live","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","autoAnchorRegistry"],"sourceRoot":"../../../src","sources":["anchors/AutoAnchorRegistry.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createCurrentFiberResolver","getLiveHostProps","createLazyHostFiberIndex","lookupHostFiber","readHostPlaceholder","readHostText","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","resolveCurrent","seen","add","refreshOneLiveContent","fiber","current","props","cached","applyLiveIdentity","live","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","autoAnchorRegistry"],"sourceRoot":"../../../src","sources":["anchors/AutoAnchorRegistry.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,11 +3,18 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Shared requestAnimationFrame hub so multiple surfaces never stack loops.
|
|
5
5
|
* Mirrors web userflowjs `util/animation-frame.tsx`.
|
|
6
|
+
*
|
|
7
|
+
* Paused while the app is not active. In bridgeless React Native,
|
|
8
|
+
* `requestAnimationFrame` is a 0 ms timer, and once the app is backgrounded
|
|
9
|
+
* iOS fires timers from an NSTimer instead of the display link, so a loop that
|
|
10
|
+
* kept going would spin as fast as the JS thread allows.
|
|
6
11
|
*/
|
|
7
|
-
|
|
12
|
+
import { isAppActive, subscribeAppActive } from "./appActive.js";
|
|
8
13
|
const callbacks = [];
|
|
9
14
|
let rafHandle = null;
|
|
10
15
|
let active = false;
|
|
16
|
+
let appActive = true;
|
|
17
|
+
let unsubscribeAppActive = null;
|
|
11
18
|
|
|
12
19
|
/**
|
|
13
20
|
* `callback` runs on every animation frame. Starts the shared loop when the
|
|
@@ -18,6 +25,7 @@ export function addAnimationFrameCallback(callback) {
|
|
|
18
25
|
callbacks.push(callback);
|
|
19
26
|
if (callbacks.length === 1) {
|
|
20
27
|
active = true;
|
|
28
|
+
watchAppState();
|
|
21
29
|
requestNext();
|
|
22
30
|
}
|
|
23
31
|
}
|
|
@@ -33,6 +41,7 @@ export function removeAnimationFrameCallback(callback) {
|
|
|
33
41
|
if (callbacks.length === 0) {
|
|
34
42
|
active = false;
|
|
35
43
|
cancelPending();
|
|
44
|
+
unwatchAppState();
|
|
36
45
|
}
|
|
37
46
|
}
|
|
38
47
|
|
|
@@ -41,6 +50,7 @@ export function resetAnimationFrameForTests() {
|
|
|
41
50
|
callbacks.length = 0;
|
|
42
51
|
active = false;
|
|
43
52
|
cancelPending();
|
|
53
|
+
unwatchAppState();
|
|
44
54
|
}
|
|
45
55
|
|
|
46
56
|
/** Test helper — number of active subscribers. */
|
|
@@ -60,8 +70,25 @@ function onAnimationFrame() {
|
|
|
60
70
|
}
|
|
61
71
|
requestNext();
|
|
62
72
|
}
|
|
73
|
+
function watchAppState() {
|
|
74
|
+
if (unsubscribeAppActive) return;
|
|
75
|
+
appActive = isAppActive();
|
|
76
|
+
unsubscribeAppActive = subscribeAppActive(next => {
|
|
77
|
+
appActive = next;
|
|
78
|
+
if (!next) {
|
|
79
|
+
cancelPending();
|
|
80
|
+
} else if (rafHandle == null) {
|
|
81
|
+
requestNext();
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function unwatchAppState() {
|
|
86
|
+
unsubscribeAppActive?.();
|
|
87
|
+
unsubscribeAppActive = null;
|
|
88
|
+
appActive = true;
|
|
89
|
+
}
|
|
63
90
|
function requestNext() {
|
|
64
|
-
if (!active) return;
|
|
91
|
+
if (!active || !appActive) return;
|
|
65
92
|
const raf = typeof globalThis.requestAnimationFrame === 'function' ? globalThis.requestAnimationFrame.bind(globalThis) : null;
|
|
66
93
|
if (raf) {
|
|
67
94
|
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":";;AAAA;AACA;AACA;AACA
|
|
1
|
+
{"version":3,"names":["isAppActive","subscribeAppActive","callbacks","rafHandle","active","appActive","unsubscribeAppActive","addAnimationFrameCallback","callback","includes","push","length","watchAppState","requestNext","removeAnimationFrameCallback","idx","indexOf","splice","cancelPending","unwatchAppState","resetAnimationFrameForTests","animationFrameSubscriberCount","onAnimationFrame","snapshot","slice","next","raf","globalThis","requestAnimationFrame","bind","setTimeout","cancelAnimationFrame","clearTimeout"],"sourceRoot":"../../../src","sources":["anchors/animationFrame.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { AppState } from 'react-native';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Foreground signal for the anchoring loops (animation-frame tracking and the
|
|
7
|
+
* tooltip target search).
|
|
8
|
+
*
|
|
9
|
+
* Anything other than `background` / `inactive` counts as active, including
|
|
10
|
+
* `unknown` before the first native report. Hosts or test doubles without
|
|
11
|
+
* `AppState` always read as active and never notify.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
function appState() {
|
|
15
|
+
const candidate = AppState;
|
|
16
|
+
return candidate && typeof candidate === 'object' ? candidate : null;
|
|
17
|
+
}
|
|
18
|
+
function isActiveState(state) {
|
|
19
|
+
return state !== 'background' && state !== 'inactive';
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Whether the app is in the foreground right now. */
|
|
23
|
+
export function isAppActive() {
|
|
24
|
+
try {
|
|
25
|
+
return isActiveState(appState()?.currentState);
|
|
26
|
+
} catch {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* `listener(active)` runs when the app moves between foreground and anything
|
|
33
|
+
* else. Repeated reports of the same side are dropped. Returns an unsubscribe.
|
|
34
|
+
*/
|
|
35
|
+
export function subscribeAppActive(listener) {
|
|
36
|
+
const state = appState();
|
|
37
|
+
if (!state || typeof state.addEventListener !== 'function') return () => {};
|
|
38
|
+
let active = isAppActive();
|
|
39
|
+
try {
|
|
40
|
+
const subscription = state.addEventListener('change', next => {
|
|
41
|
+
const nextActive = isActiveState(next);
|
|
42
|
+
if (nextActive === active) return;
|
|
43
|
+
active = nextActive;
|
|
44
|
+
listener(nextActive);
|
|
45
|
+
});
|
|
46
|
+
return () => {
|
|
47
|
+
try {
|
|
48
|
+
subscription?.remove();
|
|
49
|
+
} catch {
|
|
50
|
+
// Teardown is best-effort.
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
} catch {
|
|
54
|
+
return () => {};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=appActive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AppState","appState","candidate","isActiveState","state","isAppActive","currentState","subscribeAppActive","listener","addEventListener","active","subscription","next","nextActive","remove"],"sourceRoot":"../../../src","sources":["anchors/appActive.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,SAASC,QAAQA,CAAA,EAAwB;EACvC,MAAMC,SAAS,GAAGF,QAAoC;EACtD,OAAOE,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,GAAGA,SAAS,GAAG,IAAI;AACtE;AAEA,SAASC,aAAaA,CAACC,KAAc,EAAW;EAC9C,OAAOA,KAAK,KAAK,YAAY,IAAIA,KAAK,KAAK,UAAU;AACvD;;AAEA;AACA,OAAO,SAASC,WAAWA,CAAA,EAAY;EACrC,IAAI;IACF,OAAOF,aAAa,CAACF,QAAQ,CAAC,CAAC,EAAEK,YAAY,CAAC;EAChD,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASC,kBAAkBA,CAACC,QAAmC,EAAc;EAClF,MAAMJ,KAAK,GAAGH,QAAQ,CAAC,CAAC;EACxB,IAAI,CAACG,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":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { decodeMobileAutoData } from '@userflow-tech/protocol';
|
|
4
4
|
import { anchorChangeTicker } from "./anchorChangeTicker.js";
|
|
5
5
|
import { elementTapMonitor } from "./elementTapMonitor.js";
|
|
6
|
-
import { fiberIsUnder, tapPathDisabled } from "./elementTargetMatch.js";
|
|
6
|
+
import { fiberBearingAnchorId, fiberIsUnder, tapPathDisabled } from "./elementTargetMatch.js";
|
|
7
7
|
import { resolveElementTargets, tapMayHitSelector } from "./resolveElementTargets.js";
|
|
8
8
|
import { resolveManualAnchorId } from "./resolveManualAnchorId.js";
|
|
9
9
|
|
|
@@ -149,20 +149,37 @@ function trackClick(condition, elementState, report, context, warnOnce) {
|
|
|
149
149
|
const subscription = {
|
|
150
150
|
unsubscribe: () => {}
|
|
151
151
|
};
|
|
152
|
-
|
|
153
|
-
if (latched) return;
|
|
154
|
-
if (!tapMayHitSelector(condition.selector, tap)) return;
|
|
155
|
-
const resolution = resolveElementTargets(condition.selector);
|
|
156
|
-
if (resolution.status !== 'found') return;
|
|
157
|
-
const matched = resolution.targets.find(target => target.fiber != null && fiberIsUnder(tap.targetFiber, target.fiber));
|
|
158
|
-
if (!matched?.fiber) return;
|
|
159
|
-
if (tapPathDisabled(tap.targetFiber, matched.fiber)) return;
|
|
152
|
+
const latch = () => {
|
|
160
153
|
latched = true;
|
|
161
154
|
report(valueWhenOccurred, {
|
|
162
155
|
immediate: true
|
|
163
156
|
});
|
|
164
157
|
subscription.unsubscribe();
|
|
165
158
|
stopWatchingResolution();
|
|
159
|
+
};
|
|
160
|
+
subscription.unsubscribe = elementTapMonitor.subscribe(tap => {
|
|
161
|
+
if (latched) return;
|
|
162
|
+
if (!tapMayHitSelector(condition.selector, tap)) return;
|
|
163
|
+
const resolution = resolveElementTargets(condition.selector);
|
|
164
|
+
if (resolution.status === 'found') {
|
|
165
|
+
const matched = resolution.targets.find(target => target.fiber != null && fiberIsUnder(tap.targetFiber, target.fiber));
|
|
166
|
+
if (!matched?.fiber) return;
|
|
167
|
+
if (tapPathDisabled(tap.targetFiber, matched.fiber)) return;
|
|
168
|
+
latch();
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// The press may already have navigated away, so the live scan is absent.
|
|
173
|
+
// The fiber captured at touch start still carries the manual id. This is
|
|
174
|
+
// only the fallback: a target that is still on screen keeps the registry
|
|
175
|
+
// and prop-tier precedence of the live scan.
|
|
176
|
+
if (resolution.status !== 'absent') return;
|
|
177
|
+
if (condition.selector?.type === 'AUTO') return;
|
|
178
|
+
const anchorId = resolveManualAnchorId(condition.selector?.css);
|
|
179
|
+
const capturedHost = anchorId ? fiberBearingAnchorId(tap.targetFiber, anchorId) : null;
|
|
180
|
+
if (!capturedHost) return;
|
|
181
|
+
if (tapPathDisabled(tap.targetFiber, capturedHost)) return;
|
|
182
|
+
latch();
|
|
166
183
|
});
|
|
167
184
|
return () => {
|
|
168
185
|
subscription.unsubscribe();
|