@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
package/README.md
CHANGED
|
@@ -354,6 +354,30 @@ watches navigation state, so overlays that do not change the pathname are
|
|
|
354
354
|
skipped too). Returning from background past the lifecycle grace window
|
|
355
355
|
re-fires the current screen.
|
|
356
356
|
|
|
357
|
+
### Current screen auto-start
|
|
358
|
+
|
|
359
|
+
A React Native flow can auto-start when the current screen matches or does not
|
|
360
|
+
match a pattern. The pattern is compared to the same `screenName` this section
|
|
361
|
+
already sends. Matching is case-sensitive. A screen that has not been reported,
|
|
362
|
+
or an empty name, never matches — including "does not match".
|
|
363
|
+
|
|
364
|
+
- Expo Router: match the pathname (`/settings`, `/projects/123`). Route groups
|
|
365
|
+
are omitted, so `app/(tabs)/settings.tsx` is `/settings` and a pattern of
|
|
366
|
+
`/(tabs)/settings` never matches. Dynamic segments are filled in; `*` crosses
|
|
367
|
+
them (`/projects/*` matches `/projects/123` and `/projects/123/edit`, and does
|
|
368
|
+
not match `/projects`). `:name` matches exactly one segment
|
|
369
|
+
(`/projects/:id/edit` matches `/projects/123/edit`, not `/projects/123`).
|
|
370
|
+
- React Navigation and `Userflow.updateScreen`: match the route name
|
|
371
|
+
(`BillingSettings`). `Settings*` matches `SettingsProfile`.
|
|
372
|
+
- An app reports one of those values, not both. Write the pattern for the value
|
|
373
|
+
your integration sends.
|
|
374
|
+
- Modal and sheet presentations are not reported, so a pattern cannot target
|
|
375
|
+
them.
|
|
376
|
+
- The condition is offered on flow auto-start only. Banners, step triggers,
|
|
377
|
+
button conditions, and "hide flow when" do not use it.
|
|
378
|
+
- Leaving the screen does not stop a flow that already started. A "once"
|
|
379
|
+
frequency does not start it again.
|
|
380
|
+
|
|
357
381
|
### Expo Router
|
|
358
382
|
|
|
359
383
|
Mount `UserflowExpoRouterScreenTracker` from the `@userflow-tech/react-native/expo-router`
|
|
@@ -524,12 +548,17 @@ heartbeat or foreground return.
|
|
|
524
548
|
|
|
525
549
|
## NAVIGATE actions
|
|
526
550
|
|
|
527
|
-
Flow
|
|
551
|
+
Flow and banner **Navigate to page** button actions (and in-content links) open
|
|
552
|
+
URLs in this order:
|
|
528
553
|
|
|
529
554
|
1. Host `onNavigate` from `Userflow.init({ onNavigate })` / `Userflow.setOnNavigate` (wins)
|
|
530
555
|
2. http(s) / mailto / tel → Linking
|
|
531
556
|
3. Path-like in-app URLs → Expo Router `push` or React Navigation `navigate`
|
|
532
|
-
4. Otherwise
|
|
557
|
+
4. Otherwise allowlisted http(s) / mailto / tel via Linking
|
|
558
|
+
|
|
559
|
+
In the builder **Navigate to page** action, use a full URL such as
|
|
560
|
+
`https://example.com` to open the system browser, a React Navigation screen
|
|
561
|
+
name such as `Profile`, or an Expo Router path such as `/settings`.
|
|
533
562
|
|
|
534
563
|
Screen tracking ≠ action routing. React Navigation apps need
|
|
535
564
|
`WithUserflowReactNavigation` for in-app NAVIGATE. Expo Router apps need
|
package/docs/anchoring.md
CHANGED
|
@@ -354,7 +354,7 @@ When a tooltip cannot resolve / measure its target:
|
|
|
354
354
|
|
|
355
355
|
| Behavior | After tolerance |
|
|
356
356
|
| ---------------- | ------------------------------------------------------------------------------ |
|
|
357
|
-
| `FLAG` (default) | Centered “Target not found” card; keeps
|
|
357
|
+
| `FLAG` (default) | Centered “Target not found” card; keeps looking for the target to recover |
|
|
358
358
|
| `ERROR` | Same missing UI as `FLAG` |
|
|
359
359
|
| `BUBBLE` | Centered card with normal step content (modal-like fallback) |
|
|
360
360
|
| `END` | Hides the flow UI (`null`); in draft/preview mode shows the missing UI instead |
|
|
@@ -362,6 +362,11 @@ When a tooltip cannot resolve / measure its target:
|
|
|
362
362
|
Ambiguous ids, missing hosts, and zero-width/height measures all count as
|
|
363
363
|
missing.
|
|
364
364
|
|
|
365
|
+
While the target is missing, the SDK keeps looking with a backoff (up to every
|
|
366
|
+
4 s), looks again right away when the screen changes or the app returns to the
|
|
367
|
+
foreground, and within ~500 ms when a registered element mounts. Nothing runs
|
|
368
|
+
while the app is in the background.
|
|
369
|
+
|
|
365
370
|
## ELEMENT client conditions
|
|
366
371
|
|
|
367
372
|
`PRESENT` / `NOT_PRESENT` / `CLICK` / `NOT_CLICK` resolve through
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Custom fonts (investigation)
|
|
2
|
+
|
|
3
|
+
Part 1 makes SDK content use the font the host app is already drawing when the theme is still on Userflow's default stack. This note is how a later ticket could let a customer choose a font the app does not already use. No loader is implemented here.
|
|
4
|
+
|
|
5
|
+
## Where it would be configured
|
|
6
|
+
|
|
7
|
+
The Builder theme, the same place web already configures fonts:
|
|
8
|
+
|
|
9
|
+
- **System font** — the default CSS stack. On React Native this is the Part 1 behavior: the detected app font, or the platform font when nothing is detected.
|
|
10
|
+
- **Google font** (`builtinFontFamily`) — the family web loads from `fonts.googleapis.com`.
|
|
11
|
+
- **Custom family** — a family name the customer installs with theme custom CSS (`@font-face`). `fontCssUrl` is the legacy locked field for that stylesheet.
|
|
12
|
+
|
|
13
|
+
SDK init is only an escape hatch for a face already linked in the app binary, for example `fontFamily` passed at `Userflow.init` when the file cannot be downloaded. It is not the customer-facing control. The dashboard does not run on device, so a builder-only name still has to be resolved by the SDK.
|
|
14
|
+
|
|
15
|
+
## How the SDK would load a face the app does not have
|
|
16
|
+
|
|
17
|
+
React Native `fontFamily` is one family name, not a CSS stack, and it only resolves a face registered in the process.
|
|
18
|
+
|
|
19
|
+
- **Already registered in the app.** Pass the PostScript name (iOS) or the file name without extension (Android). Part 1 detects this from host `Text` and does not download anything.
|
|
20
|
+
- **Bundled in the SDK.** Not viable for arbitrary customer fonts. There is nothing to ship ahead of time except faces Userflow itself hosts.
|
|
21
|
+
- **Hosted `ttf` or `otf`.** Download the file and register it the way `expo-font` does: `CTFontManager` on iOS, `ReactFontManager` on Android. The registered name has to match the font's internal family name. Web Google CSS is `woff2` and cannot be assigned to RN `fontFamily`. A follow-up should host the `ttf`/`otf` files, not reuse the Google CSS URL. Standard faces in the builder list (Arial, Georgia, and the rest in `backend/lib/userflow/videos/font_family.ex`) exist as web fallbacks and generally do not exist on iOS or Android, so they are not a mobile default.
|
|
22
|
+
- **WebView banners.** Native registration is not enough on Android. The banner HTML needs its own `@font-face` (file URL or a data URI). iOS `WKWebView` often sees fonts registered with `CTFontManager`, but that should not be the only path.
|
|
23
|
+
|
|
24
|
+
## Platform constraints
|
|
25
|
+
|
|
26
|
+
- iOS and Android both require the font file to be registered before `Text` can use the name. A missing name logs an unrecognized-font warning and falls back to the platform face.
|
|
27
|
+
- RN does not synthesize bold or italic for a custom face. A follow-up must register the weight files the theme actually uses (`fontWeightNormal`, `fontWeightBold`, and the button weights). Part 1 does not copy the app's weight or style; size, weight, and color stay on the theme.
|
|
28
|
+
- Family names differ by platform for the same file. The loader has to record the name each platform registered, not assume the Google family string matches both.
|
|
29
|
+
|
|
30
|
+
## Recommended follow-up
|
|
31
|
+
|
|
32
|
+
Medium effort, and it is a backend-then-SDK change if the theme gains a font-file URL.
|
|
33
|
+
|
|
34
|
+
1. Host `ttf`/`otf` for the builtin Google families (the name list already lives in `backend/lib/userflow/videos/font_family.ex`), including the weights the theme uses.
|
|
35
|
+
2. When `builtinFontFamily` is set, the SDK downloads and registers those files, then sets `fontFamily` to the registered name. Until that load finishes, keep the Part 1 app font so text never renders with a missing face.
|
|
36
|
+
3. Leave custom `@font-face` CSS web-only until the theme has a real file URL the SDK can download. Do not parse arbitrary customer CSS for font files.
|
package/docs/troubleshooting.md
CHANGED
|
@@ -78,6 +78,32 @@ evaluated. `DISABLED`, `NOT_DISABLED`, and `MOUSEDOWN` are not.
|
|
|
78
78
|
the four supported states, and tag the target with matching `userflowId`,
|
|
79
79
|
`testID`, or `nativeID` (or `useUserflowAnchor('…')`). See [anchoring.md](anchoring.md).
|
|
80
80
|
|
|
81
|
+
### Click conditions and gesture-handler controls
|
|
82
|
+
|
|
83
|
+
`RectButton`, `BorderlessButton`, `BaseButton`, the older gesture-handler
|
|
84
|
+
touchables, and a `GestureDetector` gesture with `.runOnJS(true)` still count
|
|
85
|
+
as a tap, including when they cancel React Native's touch. A plain React Native
|
|
86
|
+
`Pressable`, including one inside a `Modal`, counts through the normal touch
|
|
87
|
+
stream. A manual id on the view touched at the start of the press still matches
|
|
88
|
+
after that press navigates away, once a live scan no longer finds that id.
|
|
89
|
+
|
|
90
|
+
On-device checks of these controls (iOS 26, Android API 35) saw a normal touch
|
|
91
|
+
end, so that is the path those runs exercised. A control that instead cancels
|
|
92
|
+
the touch is counted when its handler later ends from `ACTIVE`. That hand-off
|
|
93
|
+
is covered by unit tests.
|
|
94
|
+
|
|
95
|
+
These do **not** count. `CLICK` stays false and `NOT_CLICK` stays true:
|
|
96
|
+
|
|
97
|
+
| Control | Why |
|
|
98
|
+
| --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
99
|
+
| A scroll in a gesture-handler `ScrollView`, `FlatList`, or `RefreshControl` | Those handlers set `disallowInterruption` and report no finger position, so a scroll must not latch the row it started on. A button inside the container still counts. |
|
|
100
|
+
| A worklet `GestureDetector` gesture that also cancels React Native's touch | The end stays on the UI thread and never arrives as `onGestureHandlerStateChange`. Add `.runOnJS(true)` if you can. A worklet gesture that leaves the touch stream alone still counts through the normal touch end. |
|
|
101
|
+
| The same controls on the old architecture (Paper) | That architecture does not deliver the state-change event this watches. React Native 0.86 is new-architecture only. |
|
|
102
|
+
|
|
103
|
+
A drag that starts on the control, a long press, and a finger that slides off
|
|
104
|
+
it are not taps. A tap in the first half-second after a flow closes can also
|
|
105
|
+
miss: the server has not re-tracked the condition yet.
|
|
106
|
+
|
|
81
107
|
### 2. Anchor / tooltip placement
|
|
82
108
|
|
|
83
109
|
| Symptom | Likely cause |
|
|
@@ -94,12 +120,13 @@ Id matching: dashboard `#invite-teammates` ↔ `userflowId="invite-teammates"`,
|
|
|
94
120
|
|
|
95
121
|
### 3. Screen / provider
|
|
96
122
|
|
|
97
|
-
| Symptom
|
|
98
|
-
|
|
|
99
|
-
| No overlay at all
|
|
100
|
-
| Wrong screen / flow never qualifies
|
|
101
|
-
|
|
|
102
|
-
|
|
|
123
|
+
| Symptom | Likely cause |
|
|
124
|
+
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
125
|
+
| No overlay at all | Missing `UserflowProvider` above the tree |
|
|
126
|
+
| Wrong screen / flow never qualifies | Screen not reported — Expo Router needs `UserflowExpoRouterScreenTracker` under the provider; React Navigation needs `WithUserflowReactNavigation`; or call `updateScreen` / `useUserflowScreen` |
|
|
127
|
+
| "Current screen" auto-start never matches | Pattern does not equal the reported value: route groups are dropped (`/(tabs)/settings` is `/settings`), Expo Router sends a path while React Navigation sends a route name, or the focused route is a modal/sheet (not reported). `*` or `:name` covers dynamic segments (`/projects/*`, `/projects/:id`). An unreported or empty screen never matches, including "does not match". Matching is case-sensitive |
|
|
128
|
+
| Works only after identify | Expected for server-driven sessions; `updateScreen` before identify only buffers |
|
|
129
|
+
| No `screen_viewed` events | Identify has not run, or an overlay (modal/sheet) is focused — overlays are not screen views |
|
|
103
130
|
|
|
104
131
|
### 4. Connection
|
|
105
132
|
|
|
@@ -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":";;;;;;;AAGA,IAAAA,eAAA,GAAAC,OAAA;AAKA,IAAAC,gBAAA,GAAAD,OAAA;AAKA,IAAAE,gBAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;;AAoEA,MAAMG,eAAe,GAAG,IAAIC,GAAG,CAAS,CACtC,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,CAC1B,CAAC;AAEK,SAASC,WAAWA,CAACC,IAAY,EAAgB;EACtD,IAAIH,eAAe,CAACI,GAAG,CAACD,IAAI,CAAC,EAAE,OAAO,QAAQ;EAC9C,IAAIA,IAAI,KAAK,MAAM,EAAE,OAAO,MAAM;EAClC,IAAIA,IAAI,KAAK,OAAO,EAAE,OAAO,OAAO;EACpC,IAAIA,IAAI,KAAK,WAAW,IAAIA,IAAI,KAAK,WAAW,EAAE,OAAO,OAAO;EAChE,IAAIA,IAAI,KAAK,MAAM,IAAIA,IAAI,KAAK,YAAY,IAAIA,IAAI,KAAK,cAAc,EAAE,OAAO,OAAO;EACvF,OAAO,OAAO;AAChB;AAEA,IAAIE,eAAe,GAAG,CAAC;AAEvB,SAASC,cAAcA,CAAA,EAAW;EAChC,MAAMC,EAAE,GAAG,QAAQF,eAAe,CAACG,QAAQ,CAAC,EAAE,CAAC,EAAE;EACjDH,eAAe,IAAI,CAAC;EACpB,OAAOE,EAAE;AACX;;AAEA;AACA,SAASE,eAAeA,CAACC,IAAwB,EAAU;EACzD,MAAMC,IAAI,GAAGD,IAAI,CAACE,YAAY,IAAIF,IAAI,CAACG,cAAc;EACrD,MAAMC,GAAG,GAAGH,IAAI,CAACI,WAAW,CAAC,KAAK,CAAC;EACnC,OAAOD,GAAG,KAAK,CAAC,CAAC,GAAGH,IAAI,GAAGA,IAAI,CAACK,KAAK,CAAC,CAAC,EAAEF,GAAG,CAAC;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA,SAASG,gBAAgBA,CAACP,IAAwB,EAAsB;EACtE,MAAMQ,KAAK,GAAG,CAACR,IAAI,CAACS,SAAS,EAAET,IAAI,CAACU,kBAAkB,EAAEV,IAAI,CAACW,QAAQ,EAAEX,IAAI,CAACY,QAAQ,CAAC,CAACC,MAAM,CACzFC,IAAI,IAAqB,CAAC,CAACA,IAC9B,CAAC;EACD,OAAON,KAAK,CAACO,MAAM,GAAG,CAAC,GAAGP,KAAK,CAACQ,IAAI,CAAC,QAAQ,CAAC,GAAGC,SAAS;AAC5D;;AAWA;;AAQO,MAAMC,kBAAkB,CAAC;EACbC,SAAS,GAAG,IAAIC,GAAG,CAA6B,CAAC;EACjDC,aAAa,GAAG,IAAID,GAAG,CAAsB,CAAC;EAC9CE,UAAU,GAAG,IAAIF,GAAG,CAAsB,CAAC;EAC3CG,cAAc,GAAG,IAAIH,GAAG,CAAsB,CAAC;EAC/CI,WAAW,GAAG,IAAIJ,GAAG,CAA2B,CAAC;EACjDK,SAAS,GAAG,IAAIlC,GAAG,CAAqB,CAAC;EAClDmC,eAAe,GAAG,KAAK;EAC/B;EACiBC,SAAS,GAAG,IAAIP,GAAG,CAAkB,CAAC;EACvD;AACF;AACA;AACA;AACA;AACA;EACmBQ,WAAW,GAAG,IAAIrC,GAAG,CAAS,CAAC;EAChD;AACF;AACA;AACA;AACA;EACUsC,QAAQ,GAAG,KAAK;EAChBC,QAAQ,GAAG,KAAK;EAExBC,gBAAgBA,CAACC,KAA4B,EAA+C;IAC1F,MAAMC,UAAU,GAAGrC,cAAc,CAAC,CAAC;IACnC,MAAMsC,KAAK,GAAGF,KAAK,CAACE,KAAK,IAAIjB,SAAS;IACtC,MAAMxB,IAAI,GAAGuC,KAAK,CAACvC,IAAI;IACvB,MAAM0C,IAAI,GAAGD,KAAK,EAAEC,IAAI,IAAI3C,WAAW,CAACC,IAAI,CAAC;IAC7C,MAAMS,YAAY,GAAGgC,KAAK,EAAEhC,YAAY,IAAIgC,KAAK,EAAEE,IAAI,IAAIJ,KAAK,CAACK,WAAW;IAC5E,MAAMlC,cAAc,GAAG+B,KAAK,EAAE/B,cAAc,IAAI+B,KAAK,EAAEE,IAAI,IAAIlC,YAAY;IAC3E,MAAMoC,OAAO,GAAGN,KAAK,CAACM,OAAO,IAAI,CAAC,CAAC;IAEnC,MAAMC,QAAQ,GACZD,OAAO,CAACC,QAAQ,IAChBD,OAAO,CAACE,UAAU,IAClBN,KAAK,EAAEO,iBAAiB,IACxBH,OAAO,CAACI,MAAM,IACdR,KAAK,EAAES,aAAa,KACnBL,OAAO,CAACM,QAAQ,IAAI,CAACN,OAAO,CAACM,QAAQ,CAACC,UAAU,CAAC,KAAK,CAAC,GAAGP,OAAO,CAACM,QAAQ,GAAG3B,SAAS,CAAC;IAE1F,MAAMuB,UAAU,GAAGF,OAAO,CAACE,UAAU,IAAIN,KAAK,EAAEO,iBAAiB;IACjE,MAAMC,MAAM,GAAGJ,OAAO,CAACI,MAAM,IAAIR,KAAK,EAAES,aAAa;IACrD,MAAMC,QAAQ,GAAGN,OAAO,CAACM,QAAQ,IAAIV,KAAK,EAAEY,QAAQ;IACpD,MAAMrC,SAAS,GAAG6B,OAAO,CAAC7B,SAAS,IAAIyB,KAAK,EAAEzB,SAAS;IACvD,MAAMC,kBAAkB,GAAG4B,OAAO,CAAC5B,kBAAkB,IAAIwB,KAAK,EAAEa,YAAY;IAC5E,MAAMpC,QAAQ,GAAG2B,OAAO,CAAC3B,QAAQ,IAAIuB,KAAK,EAAEvB,QAAQ;IACpD,MAAMC,QAAQ,GAAG0B,OAAO,CAAC1B,QAAQ,IAAIsB,KAAK,EAAEtB,QAAQ;IAEpD,MAAMoC,QAA4B,GAAG;MACnCf,UAAU;MACVI,WAAW,EAAEL,KAAK,CAACK,WAAW;MAC9BY,GAAG,EAAEjB,KAAK,CAACiB,GAAG;MACdxD,IAAI;MACJ0C,IAAI;MACJe,WAAW,EAAE5D,eAAe,CAACI,GAAG,CAACD,IAAI,CAAC;MACtCS,YAAY;MACZC,cAAc;MACd,IAAI6B,KAAK,CAACmB,aAAa,GAAG;QAAEA,aAAa,EAAEnB,KAAK,CAACmB;MAAc,CAAC,GAAG,CAAC,CAAC,CAAC;MACtE,IAAIZ,QAAQ,GAAG;QAAEA;MAAS,CAAC,GAAG,CAAC,CAAC,CAAC;MACjC,IAAIC,UAAU,GAAG;QAAEA;MAAW,CAAC,GAAG,CAAC,CAAC,CAAC;MACrC,IAAIE,MAAM,GAAG;QAAEA;MAAO,CAAC,GAAG,CAAC,CAAC,CAAC;MAC7B,IAAIE,QAAQ,GAAG;QAAEA;MAAS,CAAC,GAAG,CAAC,CAAC,CAAC;MACjC,IAAInC,SAAS,GAAG;QAAEA;MAAU,CAAC,GAAG,CAAC,CAAC,CAAC;MACnC,IAAIC,kBAAkB,GAAG;QAAEA;MAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;MACrD,IAAIwB,KAAK,EAAEkB,UAAU,GAAG;QAAEA,UAAU,EAAElB,KAAK,CAACkB;MAAW,CAAC,GAAG,CAAC,CAAC,CAAC;MAC9D,IAAIzC,QAAQ,GAAG;QAAEA;MAAS,CAAC,GAAG,CAAC,CAAC,CAAC;MACjC,IAAIC,QAAQ,GAAG;QAAEA;MAAS,CAAC,GAAG,CAAC,CAAC,CAAC;MACjCyC,SAAS,EAAEnB,KAAK,EAAEmB,SAAS,GAAG,CAAC,GAAGnB,KAAK,CAACmB,SAAS,CAAC,GAAG,EAAE;MACvD,IAAInB,KAAK,EAAEoB,OAAO,KAAKrC,SAAS,GAAG;QAAEqC,OAAO,EAAEpB,KAAK,CAACoB;MAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;MACnE,IAAIpB,KAAK,EAAEqB,YAAY,KAAKtC,SAAS,GAAG;QAAEsC,YAAY,EAAErB,KAAK,CAACqB;MAAa,CAAC,GAAG,CAAC,CAAC,CAAC;MAClF,IAAIvB,KAAK,CAACwB,gBAAgB,GAAG;QAAEA,gBAAgB,EAAExB,KAAK,CAACwB;MAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;MAC/EC,gBAAgB,EAAE,EAAE;MACpBC,SAAS,EAAE;IACb,CAAC;IACD,IAAI,CAACC,eAAe,CAACX,QAAQ,CAAC;IAE9B,IAAI,CAAC7B,SAAS,CAACyC,GAAG,CAAC3B,UAAU,EAAEe,QAAQ,CAAC;IACxC,IAAI,CAACa,QAAQ,CAAC,IAAI,CAACxC,aAAa,EAAEW,KAAK,CAACK,WAAW,EAAEJ,UAAU,CAAC;IAChE,IAAI,CAAC4B,QAAQ,CAAC,IAAI,CAACtC,cAAc,EAAErB,YAAY,EAAE+B,UAAU,CAAC;IAC5D,IAAIM,QAAQ,EAAE,IAAI,CAACsB,QAAQ,CAAC,IAAI,CAACvC,UAAU,EAAEiB,QAAQ,EAAEN,UAAU,CAAC;IAClE,IAAIe,QAAQ,CAACR,UAAU,EAAE,IAAI,CAACqB,QAAQ,CAAC,IAAI,CAACvC,UAAU,EAAE0B,QAAQ,CAACR,UAAU,EAAEP,UAAU,CAAC;IACxF,IAAIe,QAAQ,CAACN,MAAM,EAAE,IAAI,CAACmB,QAAQ,CAAC,IAAI,CAACvC,UAAU,EAAE0B,QAAQ,CAACN,MAAM,EAAET,UAAU,CAAC;IAEhF,IAAID,KAAK,CAACwB,gBAAgB,EAAE;MAC1B,MAAMM,MAAM,GAAG,IAAI,CAAC3C,SAAS,CAAC4C,GAAG,CAAC/B,KAAK,CAACwB,gBAAgB,CAAC;MACzD,IAAIM,MAAM,EAAEA,MAAM,CAACL,gBAAgB,CAACO,IAAI,CAAC/B,UAAU,CAAC;IACtD;IAEA,IAAI,CAACgC,SAAS,CAACjB,QAAQ,CAAC;IACxB,IAAI,CAACkB,MAAM,CAAC,CAAC;IAEb,OAAO;MACLjC,UAAU;MACVkC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACC,kBAAkB,CAACnC,UAAU,CAAC;MACrC;IACF,CAAC;EACH;EAEAoC,cAAcA,CACZpC,UAAkB,EAClBqC,KAiBC,EACK;IACN,MAAMtE,IAAI,GAAG,IAAI,CAACmB,SAAS,CAAC4C,GAAG,CAAC9B,UAAU,CAAC;IAC3C,IAAI,CAACjC,IAAI,EAAE;IACX;IACA;IACA,MAAMuE,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACD,KAAK,CAA2B;IACzD,IAAIC,IAAI,CAACE,KAAK,CAAEC,GAAG,IAAKF,MAAM,CAACG,EAAE,CAAC3E,IAAI,CAAC0E,GAAG,CAAC,EAAEJ,KAAK,CAACI,GAAG,CAAC,CAAC,CAAC,EAAE;IAE3D,MAAME,OAAO,GAAG;MACdrC,QAAQ,EAAEvC,IAAI,CAACuC,QAAQ;MACvBC,UAAU,EAAExC,IAAI,CAACwC,UAAU;MAC3BE,MAAM,EAAE1C,IAAI,CAAC0C;IACf,CAAC;IACD8B,MAAM,CAACK,MAAM,CAAC7E,IAAI,EAAEsE,KAAK,CAAC;IAC1B,IACEA,KAAK,CAAC/B,QAAQ,KAAKtB,SAAS,IAC5BqD,KAAK,CAAC9B,UAAU,KAAKvB,SAAS,IAC9BqD,KAAK,CAAC5B,MAAM,KAAKzB,SAAS,EAC1B;MACA,MAAM6D,UAAU,GACdR,KAAK,CAAC/B,QAAQ,IACdvC,IAAI,CAACwC,UAAU,IACfxC,IAAI,CAAC0C,MAAM,KACV1C,IAAI,CAAC4C,QAAQ,IAAI,CAAC5C,IAAI,CAAC4C,QAAQ,CAACC,UAAU,CAAC,KAAK,CAAC,GAAG7C,IAAI,CAAC4C,QAAQ,GAAG3B,SAAS,CAAC;MACjF,IAAI6D,UAAU,EAAE9E,IAAI,CAACuC,QAAQ,GAAGuC,UAAU,CAAC,KACtC,OAAO9E,IAAI,CAACuC,QAAQ;IAC3B;IACA,IAAI,CAACwC,oBAAoB,CAAC/E,IAAI,EAAE4E,OAAO,CAAC;IACxC,IAAI,CAACX,SAAS,CAACjE,IAAI,EAAE4E,OAAO,CAACrC,QAAQ,EAAEqC,OAAO,CAACpC,UAAU,EAAEoC,OAAO,CAAClC,MAAM,CAAC;IAC1E,IAAI,CAACwB,MAAM,CAAC,CAAC;EACf;EAEAc,WAAWA,CAAC/C,UAAkB,EAAkC;IAC9D,OAAO,IAAI,CAACd,SAAS,CAAC4C,GAAG,CAAC9B,UAAU,CAAC;EACvC;EAEAgD,yBAAyBA,CAACP,GAAW,EAAwB;IAC3D,OAAO,IAAI,CAACQ,cAAc,CAAC,IAAI,CAAC7D,aAAa,CAAC0C,GAAG,CAACW,GAAG,CAAC,CAAC;EACzD;EAEAS,sBAAsBA,CAACtF,EAAU,EAAwB;IACvD,OAAO,IAAI,CAACqF,cAAc,CAAC,IAAI,CAAC5D,UAAU,CAACyC,GAAG,CAAClE,EAAE,CAAC,CAAC;EACrD;EAEAuF,0BAA0BA,CAACnF,IAAY,EAAwB;IAC7D,OAAO,IAAI,CAACiF,cAAc,CAAC,IAAI,CAAC3D,cAAc,CAACwC,GAAG,CAAC9D,IAAI,CAAC,CAAC;EAC3D;EAEAoF,YAAYA,CAAA,EAAyB;IACnC,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACpE,SAAS,CAACqE,MAAM,CAAC,CAAC,CAAC;EAC5C;EAEAC,4BAA4BA,CAACxD,UAAkB,EAAwB;IACrE,MAAMjC,IAAI,GAAG,IAAI,CAACmB,SAAS,CAAC4C,GAAG,CAAC9B,UAAU,CAAC;IAC3C,IAAI,CAACjC,IAAI,EAAE,OAAO,EAAE;IACpB,IAAI,CAACA,IAAI,CAACwD,gBAAgB,EAAE;MAC1B,MAAMkC,KAAK,GAAG3F,eAAe,CAACC,IAAI,CAAC;MACnC,OAAO,IAAI,CAACqF,YAAY,CAAC,CAAC,CACvBxE,MAAM,CAAE8E,CAAC,IAAK,CAACA,CAAC,CAACnC,gBAAgB,IAAIzD,eAAe,CAAC4F,CAAC,CAAC,KAAKD,KAAK,CAAC,CAClEE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK,CAACD,CAAC,CAACtC,YAAY,IAAI,CAAC,KAAKuC,CAAC,CAACvC,YAAY,IAAI,CAAC,CAAC,CAAC;IAClE;IACA,MAAMO,MAAM,GAAG,IAAI,CAAC3C,SAAS,CAAC4C,GAAG,CAAC/D,IAAI,CAACwD,gBAAgB,CAAC;IACxD,IAAI,CAACM,MAAM,EAAE,OAAO,CAAC9D,IAAI,CAAC;IAC1B,OAAO8D,MAAM,CAACL,gBAAgB,CAC3BsC,GAAG,CAAElG,EAAE,IAAK,IAAI,CAACsB,SAAS,CAAC4C,GAAG,CAAClE,EAAE,CAAC,CAAC,CACnCgB,MAAM,CAAE8E,CAAC,IAA8B,CAAC,CAACA,CAAC,CAAC,CAC3CC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK,CAACD,CAAC,CAACtC,YAAY,IAAI,CAAC,KAAKuC,CAAC,CAACvC,YAAY,IAAI,CAAC,CAAC,CAAC;EAClE;EAEAyC,aAAaA,CACX/D,UAAkB,EAClBgE,UAAU,GAAG,CAAC,EACgD;IAC9D,MAAMC,OAAO,GAAG,IAAI,CAACT,4BAA4B,CAACxD,UAAU,CAAC;IAC7D,MAAM7B,GAAG,GAAG8F,OAAO,CAACC,SAAS,CAAER,CAAC,IAAKA,CAAC,CAAC1D,UAAU,KAAKA,UAAU,CAAC;IACjE,IAAI7B,GAAG,GAAG,CAAC,EAAE,OAAO;MAAEgG,QAAQ,EAAE,EAAE;MAAEC,IAAI,EAAE;IAAG,CAAC;IAC9C,MAAMC,MAAM,GAAIX,CAAqB,KAAyB;MAC5DlG,IAAI,EAAEkG,CAAC,CAAClG,IAAI;MACZ0C,IAAI,EAAEwD,CAAC,CAACxD,IAAI;MACZ,IAAIwD,CAAC,CAAClF,SAAS,GAAG;QAAE8F,IAAI,EAAEZ,CAAC,CAAClF;MAAU,CAAC,GAAG,CAAC,CAAC,CAAC;MAC7C,IAAIkF,CAAC,CAACjD,MAAM,GAAG;QAAEA,MAAM,EAAEiD,CAAC,CAACjD;MAAO,CAAC,GAAG,CAAC,CAAC,CAAC;MACzC,IAAIiD,CAAC,CAACnD,UAAU,GAAG;QAAEA,UAAU,EAAEmD,CAAC,CAACnD;MAAW,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC,CAAC;IACF,OAAO;MACL4D,QAAQ,EAAEF,OAAO,CAAC5F,KAAK,CAACkG,IAAI,CAACC,GAAG,CAAC,CAAC,EAAErG,GAAG,GAAG6F,UAAU,CAAC,EAAE7F,GAAG,CAAC,CAAC2F,GAAG,CAACO,MAAM,CAAC;MACvED,IAAI,EAAEH,OAAO,CAAC5F,KAAK,CAACF,GAAG,GAAG,CAAC,EAAEA,GAAG,GAAG,CAAC,GAAG6F,UAAU,CAAC,CAACF,GAAG,CAACO,MAAM;IAC/D,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEI,kBAAkBA,CAACvF,SAAgC,EAAQ;IACzD,MAAMwF,IAAI,GAAGxF,SAAS,IAAI,IAAI,CAACkE,YAAY,CAAC,CAAC;IAC7C,MAAMuB,QAAQ,GAAG,IAAAC,yCAAwB,EAAC,CAAC;IAC3C,MAAMC,cAAc,GAAG,IAAAC,0CAA0B,EAAC,CAAC;IACnD,MAAMC,IAAI,GAAG,IAAIzH,GAAG,CAAS,CAAC;IAC9B,KAAK,MAAMS,IAAI,IAAI2G,IAAI,EAAE;MACvB,IAAIK,IAAI,CAACtH,GAAG,CAACM,IAAI,CAACiC,UAAU,CAAC,EAAE;MAC/B+E,IAAI,CAACC,GAAG,CAACjH,IAAI,CAACiC,UAAU,CAAC;MACzB,IAAI,CAACiF,qBAAqB,CAAClH,IAAI,EAAE4G,QAAQ,EAAEE,cAAc,CAAC;IAC5D;EACF;EAEQI,qBAAqBA,CAC3BlH,IAAwB,EACxB4G,QAA8B,EAC9BE,cAA6C,EACvC;IACN,IAAIK,KAAsB,GAAG,IAAI;IACjC,IAAI;MACFA,KAAK,GAAG,IAAAC,gCAAe,EAACR,QAAQ,EAAE5G,IAAI,CAACiD,GAAG,CAACoE,OAAO,EAAEP,cAAc,CAAC;IACrE,CAAC,CAAC,MAAM;MACNK,KAAK,GAAG,IAAI;IACd;IACA,IAAI,CAACA,KAAK,EAAE;IAEZ,IAAIG,KAA0C;IAC9C,IAAI;MACFA,KAAK,GAAG,IAAAC,gCAAgB,EAACJ,KAAK,CAAC;IACjC,CAAC,CAAC,MAAM;MACNG,KAAK,GAAGrG,SAAS;IACnB;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMuG,MAAM,GAAG,IAAI,CAAChG,WAAW,CAACuC,GAAG,CAAC/D,IAAI,CAACiC,UAAU,CAAC;IACpD,IAAIuF,MAAM,IAAIA,MAAM,CAACL,KAAK,KAAKA,KAAK,IAAIG,KAAK,KAAKrG,SAAS,IAAIuG,MAAM,CAACF,KAAK,KAAKA,KAAK,EAAE;MACrF,IAAIE,MAAM,CAAC/G,SAAS,KAAKQ,SAAS,EAAEjB,IAAI,CAACS,SAAS,GAAG+G,MAAM,CAAC/G,SAAS;MACrE;IACF;IAEA,IAAI6G,KAAK,EAAE,IAAI,CAACG,iBAAiB,CAACzH,IAAI,EAAEsH,KAAK,CAAC;IAE9C,IAAII,IAAwB;IAC5B,IAAI;MACFA,IAAI,GACF1H,IAAI,CAACmC,IAAI,KAAK,OAAO,GAChB,IAAAwF,oCAAmB,EAACR,KAAK,CAAC,IAAI,IAAAS,6BAAY,EAACT,KAAK,CAAC,GAClD,IAAAS,6BAAY,EAACT,KAAK,CAAC;IAC3B,CAAC,CAAC,MAAM;MACNO,IAAI,GAAGzG,SAAS;IAClB;;IAEA;IACA;IACA,IAAI,CAACO,WAAW,CAACoC,GAAG,CAAC5D,IAAI,CAACiC,UAAU,EAAE;MAAEkF,KAAK;MAAEG,KAAK;MAAE7G,SAAS,EAAEiH;IAAK,CAAC,CAAC;IACxE,IAAIA,IAAI,IAAI1H,IAAI,CAACS,SAAS,KAAKiH,IAAI,EAAE;MACnC1H,IAAI,CAACS,SAAS,GAAGiH,IAAI;MACrB;MACA;MACA,IAAI,CAACzD,SAAS,CAACjE,IAAI,CAAC;IACtB;EACF;;EAEA;AACF;AACA;AACA;AACA;EACUyH,iBAAiBA,CAACzH,IAAwB,EAAEsH,KAA8B,EAAQ;IACxF,MAAMO,GAAG,GAAGP,KAAK,CAAC5E,MAAM;IACxB,MAAMoF,UAAU,GAAG,OAAOD,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACE,IAAI,CAAC,CAAC,GAAGF,GAAG,CAACE,IAAI,CAAC,CAAC,GAAG9G,SAAS;IACjF,IAAI,CAAC6G,UAAU,IAAIA,UAAU,KAAK9H,IAAI,CAAC0C,MAAM,EAAE;IAE/C,MAAMsF,IAAI,GAAG;MAAEzF,QAAQ,EAAEvC,IAAI,CAACuC,QAAQ;MAAEC,UAAU,EAAExC,IAAI,CAACwC,UAAU;MAAEE,MAAM,EAAE1C,IAAI,CAAC0C;IAAO,CAAC;IAC1F1C,IAAI,CAAC0C,MAAM,GAAGoF,UAAU;IACxB,IAAI,CAAC9H,IAAI,CAACwC,UAAU,KAAK,CAACxC,IAAI,CAACuC,QAAQ,IAAIvC,IAAI,CAACuC,QAAQ,KAAKyF,IAAI,CAACtF,MAAM,CAAC,EAAE;MACzE1C,IAAI,CAACuC,QAAQ,GAAGuF,UAAU;IAC5B;IACA,IAAI,CAAC/C,oBAAoB,CAAC/E,IAAI,EAAEgI,IAAI,CAAC;IACrC,IAAI,CAAC/D,SAAS,CAACjE,IAAI,EAAEgI,IAAI,CAACzF,QAAQ,EAAEyF,IAAI,CAACxF,UAAU,EAAEwF,IAAI,CAACtF,MAAM,CAAC;EACnE;EAEAuF,SAASA,CAACC,QAA4B,EAAc;IAClD,IAAI,CAACzG,SAAS,CAACwF,GAAG,CAACiB,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAACzG,SAAS,CAAC0G,MAAM,CAACD,QAAQ,CAAC;IACjC,CAAC;EACH;EAEAE,cAAcA,CAAC1D,GAAW,EAAW;IACnC,MAAM2D,KAAK,GAAG,IAAI,CAACpD,yBAAyB,CAACP,GAAG,CAAC;IACjD,IAAI2D,KAAK,CAACtH,MAAM,GAAG,CAAC,EAAE,OAAOsH,KAAK,CAACC,IAAI,CAAE3C,CAAC,IAAKA,CAAC,CAACjC,SAAS,CAAC;IAC3D,MAAM6E,QAAQ,GAAG,IAAI,CAACpD,sBAAsB,CAACT,GAAG,CAAC;IACjD,OAAO6D,QAAQ,CAACxH,MAAM,GAAG,CAAC,IAAIwH,QAAQ,CAACD,IAAI,CAAE3C,CAAC,IAAKA,CAAC,CAACjC,SAAS,CAAC;EACjE;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE8E,gBAAgBA,CAACxI,IAAwB,EAAEyI,OAA2C,EAAW;IAC/F,IAAI,CAACzI,IAAI,CAAC0D,SAAS,EAAE,OAAO,KAAK;IACjC,MAAMgF,KAAK,GAAI/B,IAA0B,IAAKA,IAAI,CAAC9F,MAAM,CAAE8E,CAAC,IAAKA,CAAC,KAAK3F,IAAI,IAAIyI,OAAO,CAAC9C,CAAC,CAAC,CAAC;IAC1F,IAAI3F,IAAI,CAACuC,QAAQ,EAAE,OAAOmG,KAAK,CAAC,IAAI,CAACvD,sBAAsB,CAACnF,IAAI,CAACuC,QAAQ,CAAC,CAAC,CAACxB,MAAM,GAAG,CAAC;IACtF,OACE,IAAI,CAAC4H,YAAY,CAAC3I,IAAI,EAAE0I,KAAK,CAAC,IAAI,CAACtD,0BAA0B,CAACpF,IAAI,CAACE,YAAY,CAAC,CAAC,CAAC,IAClF,IAAI,CAACyI,YAAY,CAAC3I,IAAI,EAAE0I,KAAK,CAAC,IAAI,CAACzD,yBAAyB,CAACjF,IAAI,CAACqC,WAAW,CAAC,CAAC,CAAC;EAEpF;;EAEA;EACAuG,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACzH,SAAS,CAACyH,KAAK,CAAC,CAAC;IACtB,IAAI,CAACvH,aAAa,CAACuH,KAAK,CAAC,CAAC;IAC1B,IAAI,CAACtH,UAAU,CAACsH,KAAK,CAAC,CAAC;IACvB,IAAI,CAACrH,cAAc,CAACqH,KAAK,CAAC,CAAC;IAC3B,IAAI,CAACpH,WAAW,CAACoH,KAAK,CAAC,CAAC;IACxB,IAAI,CAACjH,SAAS,CAACiH,KAAK,CAAC,CAAC;IACtB,IAAI,CAAChH,WAAW,CAACgH,KAAK,CAAC,CAAC;IACxB,IAAI,CAAC/G,QAAQ,GAAG,KAAK;IACrB,IAAI,CAACH,eAAe,GAAG,KAAK;IAC5B/B,eAAe,GAAG,CAAC;EACrB;EAEQyE,kBAAkBA,CAACnC,UAAkB,EAAQ;IACnD,MAAMjC,IAAI,GAAG,IAAI,CAACmB,SAAS,CAAC4C,GAAG,CAAC9B,UAAU,CAAC;IAC3C,IAAI,CAACjC,IAAI,EAAE;IAEX,IAAIA,IAAI,CAACwD,gBAAgB,EAAE;MACzB,MAAMM,MAAM,GAAG,IAAI,CAAC3C,SAAS,CAAC4C,GAAG,CAAC/D,IAAI,CAACwD,gBAAgB,CAAC;MACxD,IAAIM,MAAM,EAAE;QACVA,MAAM,CAACL,gBAAgB,GAAGK,MAAM,CAACL,gBAAgB,CAAC5C,MAAM,CAAEhB,EAAE,IAAKA,EAAE,KAAKoC,UAAU,CAAC;MACrF;IACF;IACA,KAAK,MAAM4G,OAAO,IAAI,CAAC,GAAG7I,IAAI,CAACyD,gBAAgB,CAAC,EAAE;MAChD,MAAMqF,KAAK,GAAG,IAAI,CAAC3H,SAAS,CAAC4C,GAAG,CAAC8E,OAAO,CAAC;MACzC,IAAIC,KAAK,EAAE,OAAOA,KAAK,CAACtF,gBAAgB;IAC1C;IAEA,IAAI,CAACrC,SAAS,CAACgH,MAAM,CAAClG,UAAU,CAAC;IACjC,IAAI,CAACT,WAAW,CAAC2G,MAAM,CAAClG,UAAU,CAAC;IACnC,IAAI,CAACN,SAAS,CAACwG,MAAM,CAAClG,UAAU,CAAC;IACjC,IAAI,CAAC8G,WAAW,CAAC,IAAI,CAAC1H,aAAa,EAAErB,IAAI,CAACqC,WAAW,EAAEJ,UAAU,CAAC;IAClE,IAAI,CAAC8G,WAAW,CAAC,IAAI,CAACxH,cAAc,EAAEvB,IAAI,CAACE,YAAY,EAAE+B,UAAU,CAAC;IACpE,IAAIjC,IAAI,CAACuC,QAAQ,EAAE,IAAI,CAACwG,WAAW,CAAC,IAAI,CAACzH,UAAU,EAAEtB,IAAI,CAACuC,QAAQ,EAAEN,UAAU,CAAC;IAC/E,IAAIjC,IAAI,CAACwC,UAAU,EAAE,IAAI,CAACuG,WAAW,CAAC,IAAI,CAACzH,UAAU,EAAEtB,IAAI,CAACwC,UAAU,EAAEP,UAAU,CAAC;IACnF,IAAIjC,IAAI,CAAC0C,MAAM,EAAE,IAAI,CAACqG,WAAW,CAAC,IAAI,CAACzH,UAAU,EAAEtB,IAAI,CAAC0C,MAAM,EAAET,UAAU,CAAC;IAE3E,IAAI,CAACgC,SAAS,CAACjE,IAAI,CAAC;IACpB,IAAI,CAACkE,MAAM,CAAC,CAAC;EACf;EAEQa,oBAAoBA,CAC1B/E,IAAwB,EACxBgI,IAIC,EACK;IACN,MAAMgB,QAAQ,GAAG,IAAIzJ,GAAG,CACtB,CAACyI,IAAI,CAACzF,QAAQ,EAAEyF,IAAI,CAACxF,UAAU,EAAEwF,IAAI,CAACtF,MAAM,CAAC,CAAC7B,MAAM,CAAEoI,CAAC,IAAkB,CAAC,CAACA,CAAC,CAC9E,CAAC;IACD,MAAMC,QAAQ,GAAG,IAAI3J,GAAG,CACtB,CAACS,IAAI,CAACuC,QAAQ,EAAEvC,IAAI,CAACwC,UAAU,EAAExC,IAAI,CAAC0C,MAAM,CAAC,CAAC7B,MAAM,CAAEoI,CAAC,IAAkB,CAAC,CAACA,CAAC,CAC9E,CAAC;IACD,KAAK,MAAMvE,GAAG,IAAIsE,QAAQ,EAAE;MAC1B,IAAI,CAACE,QAAQ,CAACxJ,GAAG,CAACgF,GAAG,CAAC,EAAE,IAAI,CAACqE,WAAW,CAAC,IAAI,CAACzH,UAAU,EAAEoD,GAAG,EAAE1E,IAAI,CAACiC,UAAU,CAAC;IACjF;IACA,KAAK,MAAMyC,GAAG,IAAIwE,QAAQ,EAAE;MAC1B,IAAI,CAACF,QAAQ,CAACtJ,GAAG,CAACgF,GAAG,CAAC,EAAE,IAAI,CAACb,QAAQ,CAAC,IAAI,CAACvC,UAAU,EAAEoD,GAAG,EAAE1E,IAAI,CAACiC,UAAU,CAAC;IAC9E;EACF;;EAEA;AACF;AACA;AACA;AACA;EACU0G,YAAYA,CAAC3I,IAAwB,EAAE2G,IAA0B,EAAW;IAClF,MAAMwC,UAAU,GAAGxC,IAAI,CAAC5F,MAAM,GAAG,CAAC,IAAI4F,IAAI,CAAClC,KAAK,CAAEkB,CAAC,IAAK,CAACA,CAAC,CAACpD,QAAQ,CAAC;IACpE,IAAI,CAAC4G,UAAU,EAAE,OAAO,KAAK;IAC7B,MAAMC,GAAG,GAAG7I,gBAAgB,CAACP,IAAI,CAAC;IAClC,IAAI,CAACoJ,GAAG,EAAE,OAAO,IAAI;IACrB,IAAIC,KAAK,GAAG,CAAC;IACb,KAAK,MAAMC,IAAI,IAAI3C,IAAI,EAAE;MACvB,IAAIpG,gBAAgB,CAAC+I,IAAI,CAAC,KAAKF,GAAG,EAAEC,KAAK,IAAI,CAAC;MAC9C,IAAIA,KAAK,GAAG,CAAC,EAAE,OAAO,IAAI;IAC5B;IACA,OAAO,KAAK;EACd;;EAEA;AACF;AACA;AACA;EACU1F,eAAeA,CAAC3D,IAAwB,EAAQ;IACtD,MAAMH,EAAE,GAAGG,IAAI,CAACiC,UAAU;IAC1BuC,MAAM,CAAC+E,cAAc,CAACvJ,IAAI,EAAE,WAAW,EAAE;MACvCwJ,YAAY,EAAE,IAAI;MAClBC,UAAU,EAAE,IAAI;MAChB1F,GAAG,EAAEA,CAAA,KAAM;QACT,IAAI,CAAC2F,eAAe,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC/H,SAAS,CAACoC,GAAG,CAAClE,EAAE,CAAC,IAAI,KAAK;MACxC,CAAC;MACD+D,GAAG,EAAG+F,KAAc,IAAK;QACvB,IAAI,CAAChI,SAAS,CAACiC,GAAG,CAAC/D,EAAE,EAAE8J,KAAK,CAAC;MAC/B;IACF,CAAC,CAAC;EACJ;;EAEA;EACQ1F,SAASA,CAACjE,IAAwB,EAAE,GAAG4J,WAAsC,EAAQ;IAC3F,IAAI,IAAI,CAAC/H,QAAQ,EAAE;IACnB,IAAI,CAACD,WAAW,CAACqF,GAAG,CAAC,KAAKjH,IAAI,CAACqC,WAAW,EAAE,CAAC;IAC7C,IAAI,CAACT,WAAW,CAACqF,GAAG,CAAC,KAAKjH,IAAI,CAACE,YAAY,EAAE,CAAC;IAC9C,KAAK,MAAML,EAAE,IAAI,CAACG,IAAI,CAACuC,QAAQ,EAAEvC,IAAI,CAACwC,UAAU,EAAExC,IAAI,CAAC0C,MAAM,EAAE,GAAGkH,WAAW,CAAC,EAAE;MAC9E,IAAI/J,EAAE,EAAE,IAAI,CAAC+B,WAAW,CAACqF,GAAG,CAAC,KAAKpH,EAAE,EAAE,CAAC;IACzC;IACA;IACA;IACA,IAAI,IAAI,CAAC+B,WAAW,CAACiI,IAAI,GAAG,IAAI,CAAC1I,SAAS,CAAC0I,IAAI,EAAE;MAC/C,IAAI,CAAChI,QAAQ,GAAG,IAAI;MACpB,IAAI,CAACD,WAAW,CAACgH,KAAK,CAAC,CAAC;IAC1B;EACF;EAEQkB,QAAQA,CAACC,QAAgB,EAA2B;IAC1D,MAAMJ,KAAK,GAAGI,QAAQ,CAACzJ,KAAK,CAAC,CAAC,CAAC;IAC/B,IAAIyJ,QAAQ,CAAClH,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,CAACxB,aAAa,CAAC0C,GAAG,CAAC4F,KAAK,CAAC;IACnE,IAAII,QAAQ,CAAClH,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI,CAACtB,cAAc,CAACwC,GAAG,CAAC4F,KAAK,CAAC;IACpE,OAAO,IAAI,CAACrI,UAAU,CAACyC,GAAG,CAAC4F,KAAK,CAAC;EACnC;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACUD,eAAeA,CAAA,EAAS;IAC9B,IAAK,IAAI,CAAC9H,WAAW,CAACiI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAChI,QAAQ,IAAK,IAAI,CAACC,QAAQ,EAAE;IACtE,IAAI,CAACA,QAAQ,GAAG,IAAI;IACpB,IAAI;MACF,MAAMkI,QAAQ,GAAG,IAAIzK,GAAG,CAAS,IAAI,CAACsC,QAAQ,GAAG,IAAI,CAACV,SAAS,CAACoD,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;MAC5E,KAAK,MAAMwF,QAAQ,IAAI,IAAI,CAACnI,WAAW,EAAE;QACvC,MAAMqI,GAAG,GAAG,IAAI,CAACH,QAAQ,CAACC,QAAQ,CAAC;QACnC,IAAIE,GAAG,EAAE,KAAK,MAAMpK,EAAE,IAAIoK,GAAG,EAAED,QAAQ,CAAC/C,GAAG,CAACpH,EAAE,CAAC;MACjD;MACA,IAAI,CAAC+B,WAAW,CAACgH,KAAK,CAAC,CAAC;MACxB,IAAI,CAAC/G,QAAQ,GAAG,KAAK;MAErB,MAAMqI,UAAU,GAAG,IAAI9I,GAAG,CAAoB,CAAC;MAC/C,KAAK,MAAMvB,EAAE,IAAImK,QAAQ,EAAE;QACzB,MAAMhK,IAAI,GAAG,IAAI,CAACmB,SAAS,CAAC4C,GAAG,CAAClE,EAAE,CAAC;QACnC,IAAI,CAACG,IAAI,EAAE;QACX,IAAI,CAAC2B,SAAS,CAACiC,GAAG,CAAC/D,EAAE,EAAE,IAAI,CAACsK,gBAAgB,CAACnK,IAAI,EAAEkK,UAAU,CAAC,CAAC;MACjE;IACF,CAAC,SAAS;MACR,IAAI,CAACpI,QAAQ,GAAG,KAAK;IACvB;EACF;EAEQqI,gBAAgBA,CAACnK,IAAwB,EAAEkK,UAAkC,EAAW;IAC9F,IAAIlK,IAAI,CAACuC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAACjB,UAAU,CAACyC,GAAG,CAAC/D,IAAI,CAACuC,QAAQ,CAAC,EAAEsH,IAAI,IAAI,CAAC,IAAI,CAAC;IAC7E,OACE,IAAI,CAACO,aAAa,CAACpK,IAAI,EAAE,KAAKA,IAAI,CAACqC,WAAW,EAAE,EAAE6H,UAAU,CAAC,IAC7D,IAAI,CAACE,aAAa,CAACpK,IAAI,EAAE,KAAKA,IAAI,CAACE,YAAY,EAAE,EAAEgK,UAAU,CAAC;EAElE;;EAEA;EACQE,aAAaA,CACnBpK,IAAwB,EACxB+J,QAAgB,EAChBG,UAAkC,EACzB;IACT,IAAIxE,KAAK,GAAGwE,UAAU,CAACnG,GAAG,CAACgG,QAAQ,CAAC;IACpC,IAAI,CAACrE,KAAK,EAAE;MACV,MAAM2E,OAAO,GAAG,IAAI,CAACnF,cAAc,CAAC,IAAI,CAAC4E,QAAQ,CAACC,QAAQ,CAAC,CAAC;MAC5D,MAAMO,UAAU,GAAG,IAAIlJ,GAAG,CAAiB,CAAC;MAC5C,KAAK,MAAMmJ,MAAM,IAAIF,OAAO,EAAE;QAC5B,MAAMjB,GAAG,GAAG7I,gBAAgB,CAACgK,MAAM,CAAC;QACpC,IAAInB,GAAG,EAAEkB,UAAU,CAAC1G,GAAG,CAACwF,GAAG,EAAE,CAACkB,UAAU,CAACvG,GAAG,CAACqF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;MAC9D;MACA1D,KAAK,GAAG;QACNyD,UAAU,EAAEkB,OAAO,CAACtJ,MAAM,GAAG,CAAC,IAAIsJ,OAAO,CAAC5F,KAAK,CAAE8F,MAAM,IAAK,CAACA,MAAM,CAAChI,QAAQ,CAAC;QAC7E+H;MACF,CAAC;MACDJ,UAAU,CAACtG,GAAG,CAACmG,QAAQ,EAAErE,KAAK,CAAC;IACjC;IACA,IAAI,CAACA,KAAK,CAACyD,UAAU,EAAE,OAAO,KAAK;IACnC,MAAMC,GAAG,GAAG7I,gBAAgB,CAACP,IAAI,CAAC;IAClC,OAAO,CAACoJ,GAAG,IAAI,CAAC1D,KAAK,CAAC4E,UAAU,CAACvG,GAAG,CAACqF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;EACrD;EAEQvF,QAAQA,CAACkC,GAA6B,EAAErB,GAAW,EAAEzC,UAAkB,EAAQ;IACrF,IAAI2B,GAAG,GAAGmC,GAAG,CAAChC,GAAG,CAACW,GAAG,CAAC;IACtB,IAAI,CAACd,GAAG,EAAE;MACRA,GAAG,GAAG,IAAIrE,GAAG,CAAC,CAAC;MACfwG,GAAG,CAACnC,GAAG,CAACc,GAAG,EAAEd,GAAG,CAAC;IACnB;IACAA,GAAG,CAACqD,GAAG,CAAChF,UAAU,CAAC;EACrB;EAEQ8G,WAAWA,CAAChD,GAA6B,EAAErB,GAAW,EAAEzC,UAAkB,EAAQ;IACxF,MAAM2B,GAAG,GAAGmC,GAAG,CAAChC,GAAG,CAACW,GAAG,CAAC;IACxB,IAAI,CAACd,GAAG,EAAE;IACVA,GAAG,CAACuE,MAAM,CAAClG,UAAU,CAAC;IACtB,IAAI2B,GAAG,CAACiG,IAAI,KAAK,CAAC,EAAE9D,GAAG,CAACoC,MAAM,CAACzD,GAAG,CAAC;EACrC;EAEQQ,cAAcA,CAACtB,GAA4B,EAAwB;IACzE,IAAI,CAACA,GAAG,EAAE,OAAO,EAAE;IACnB,MAAM4G,GAAyB,GAAG,EAAE;IACpC,KAAK,MAAM3K,EAAE,IAAI+D,GAAG,EAAE;MACpB,MAAM5D,IAAI,GAAG,IAAI,CAACmB,SAAS,CAAC4C,GAAG,CAAClE,EAAE,CAAC;MACnC,IAAIG,IAAI,EAAEwK,GAAG,CAACxG,IAAI,CAAChE,IAAI,CAAC;IAC1B;IACA,OAAOwK,GAAG;EACZ;EAEQtG,MAAMA,CAAA,EAAS;IACrB,IAAI,IAAI,CAACxC,eAAe,EAAE;IAC1B,IAAI,CAACA,eAAe,GAAG,IAAI;IAC3B,MAAM+I,KAAK,GAAGA,CAAA,KAAM;MAClB,IAAI,CAAC/I,eAAe,GAAG,KAAK;MAC5B,KAAK,MAAMgJ,CAAC,IAAI,IAAI,CAACjJ,SAAS,EAAE;QAC9B,IAAI;UACFiJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,MAAM;UACN;QAAA;MAEJ;IACF,CAAC;IACD,IAAI,OAAOC,cAAc,KAAK,UAAU,EAAE;MACxCA,cAAc,CAACF,KAAK,CAAC;IACvB,CAAC,MAAM;MACL,KAAKG,OAAO,CAACC,OAAO,CAAC,CAAC,CAACC,IAAI,CAACL,KAAK,CAAC;IACpC;EACF;AACF;AAACM,OAAA,CAAA7J,kBAAA,GAAAA,kBAAA;AAEM,MAAM8J,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,IAAI9J,kBAAkB,CAAC,CAAC","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);
|