@userflow-tech/react-native 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +114 -68
- package/app.plugin.js +13 -0
- package/babel-plugin/index.d.ts +43 -0
- package/babel-plugin/index.d.ts.map +1 -0
- package/babel-plugin/index.js +862 -0
- package/babel-plugin/index.js.map +1 -0
- package/babel-plugin.js +13 -0
- package/docs/anchoring.md +141 -13
- package/docs/deep-linking.md +20 -17
- package/docs/theme-mapping.md +44 -15
- package/docs/troubleshooting.md +37 -30
- package/expo-plugin/withUserflow.d.ts +17 -0
- package/expo-plugin/withUserflow.d.ts.map +1 -0
- package/expo-plugin/withUserflow.js +99 -0
- package/expo-plugin/withUserflow.js.map +1 -0
- package/lib/commonjs/anchors/AutoAnchorRegistry.js +125 -3
- package/lib/commonjs/anchors/AutoAnchorRegistry.js.map +1 -1
- package/lib/commonjs/anchors/anchorChangeTicker.js +10 -0
- package/lib/commonjs/anchors/anchorChangeTicker.js.map +1 -1
- package/lib/commonjs/anchors/autoAnchor.js +1 -1
- package/lib/commonjs/anchors/elementConditionEvaluator.js +25 -12
- package/lib/commonjs/anchors/elementConditionEvaluator.js.map +1 -1
- package/lib/commonjs/anchors/fiber/FiberScanRoot.js +11 -47
- package/lib/commonjs/anchors/fiber/FiberScanRoot.js.map +1 -1
- package/lib/commonjs/anchors/fiber/FiberScanRootStore.js +50 -0
- package/lib/commonjs/anchors/fiber/FiberScanRootStore.js.map +1 -0
- package/lib/commonjs/anchors/fiber/fiberInternals.js +145 -3
- package/lib/commonjs/anchors/fiber/fiberInternals.js.map +1 -1
- package/lib/commonjs/anchors/fiber/indexHostFibers.js +129 -0
- package/lib/commonjs/anchors/fiber/indexHostFibers.js.map +1 -0
- package/lib/commonjs/anchors/fiber/readHostContent.js +131 -0
- package/lib/commonjs/anchors/fiber/readHostContent.js.map +1 -0
- package/lib/commonjs/anchors/fiberAnchorCache.js +50 -0
- package/lib/commonjs/anchors/fiberAnchorCache.js.map +1 -0
- package/lib/commonjs/anchors/hintsCodec.js +1 -1
- package/lib/commonjs/anchors/resolveAnchorHost.js +15 -21
- package/lib/commonjs/anchors/resolveAnchorHost.js.map +1 -1
- package/lib/commonjs/anchors/resolveAutoAnchorHost.js +171 -0
- package/lib/commonjs/anchors/resolveAutoAnchorHost.js.map +1 -0
- package/lib/commonjs/anchors/semanticMatcher.js +285 -0
- package/lib/commonjs/anchors/semanticMatcher.js.map +1 -0
- package/lib/commonjs/authoring/ElementPickerOverlay.js +490 -0
- package/lib/commonjs/authoring/ElementPickerOverlay.js.map +1 -0
- package/lib/commonjs/authoring/capturePickerScreenshot.js +73 -0
- package/lib/commonjs/authoring/capturePickerScreenshot.js.map +1 -0
- package/lib/commonjs/authoring/chrome/ChromeBarTransition.js +94 -0
- package/lib/commonjs/authoring/chrome/ChromeBarTransition.js.map +1 -0
- package/lib/commonjs/authoring/chrome/ChromeBottomSheet.js +64 -0
- package/lib/commonjs/authoring/chrome/ChromeBottomSheet.js.map +1 -0
- package/lib/commonjs/authoring/chrome/ChromeButton.js +94 -0
- package/lib/commonjs/authoring/chrome/ChromeButton.js.map +1 -0
- package/lib/commonjs/authoring/chrome/ChromeDialog.js +131 -0
- package/lib/commonjs/authoring/chrome/ChromeDialog.js.map +1 -0
- package/lib/commonjs/authoring/chrome/ChromeIcon.js +39 -0
- package/lib/commonjs/authoring/chrome/ChromeIcon.js.map +1 -0
- package/lib/commonjs/authoring/chrome/ChromeTooltip.js +88 -0
- package/lib/commonjs/authoring/chrome/ChromeTooltip.js.map +1 -0
- package/lib/commonjs/authoring/chrome/ChromeTopBar.js +110 -0
- package/lib/commonjs/authoring/chrome/ChromeTopBar.js.map +1 -0
- package/lib/commonjs/authoring/chrome/DoubleTapBridge.js +57 -0
- package/lib/commonjs/authoring/chrome/DoubleTapBridge.js.map +1 -0
- package/lib/commonjs/authoring/chrome/doubleTapMonitor.js +80 -0
- package/lib/commonjs/authoring/chrome/doubleTapMonitor.js.map +1 -0
- package/lib/commonjs/authoring/chrome/icons/arrow-left-from-bracket.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/arrow-left-from-bracket@2x.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/arrow-left-from-bracket@3x.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/arrow-rotate-left.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/arrow-rotate-left@2x.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/arrow-rotate-left@3x.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/userflow-logomark.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/userflow-logomark@2x.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/userflow-logomark@3x.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/xmark.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/xmark@2x.png +0 -0
- package/lib/commonjs/authoring/chrome/icons/xmark@3x.png +0 -0
- package/lib/commonjs/authoring/chrome/tokens.js +150 -0
- package/lib/commonjs/authoring/chrome/tokens.js.map +1 -0
- package/lib/commonjs/authoring/doubleTap.js +23 -0
- package/lib/commonjs/authoring/doubleTap.js.map +1 -0
- package/lib/commonjs/authoring/elementPickerController.js +102 -0
- package/lib/commonjs/authoring/elementPickerController.js.map +1 -0
- package/lib/commonjs/authoring/fingerprintFromInstance.js +195 -0
- package/lib/commonjs/authoring/fingerprintFromInstance.js.map +1 -0
- package/lib/commonjs/authoring/hitTest.js +106 -0
- package/lib/commonjs/authoring/hitTest.js.map +1 -0
- package/lib/commonjs/content/RichContentRenderer.js +12 -2
- package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
- package/lib/commonjs/content/StepButton.js +19 -4
- package/lib/commonjs/content/StepButton.js.map +1 -1
- package/lib/commonjs/content/resolveStepButtonChrome.js +8 -6
- package/lib/commonjs/content/resolveStepButtonChrome.js.map +1 -1
- package/lib/commonjs/content/themeColor.js +11 -0
- package/lib/commonjs/content/themeColor.js.map +1 -1
- package/lib/commonjs/deviceContext.js +158 -0
- package/lib/commonjs/deviceContext.js.map +1 -0
- package/lib/commonjs/expo-router/useUserflowExpoRouter.js +40 -4
- package/lib/commonjs/expo-router/useUserflowExpoRouter.js.map +1 -1
- package/lib/commonjs/hostAppVersion.js +242 -0
- package/lib/commonjs/hostAppVersion.js.map +1 -0
- package/lib/commonjs/index.js +118 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/lifecycle.js +2 -0
- package/lib/commonjs/lifecycle.js.map +1 -1
- package/lib/commonjs/navigation/WithUserflowReactNavigation.js +17 -8
- package/lib/commonjs/navigation/WithUserflowReactNavigation.js.map +1 -1
- package/lib/commonjs/navigation/isOverlayPresentation.js +64 -0
- package/lib/commonjs/navigation/isOverlayPresentation.js.map +1 -0
- package/lib/commonjs/pairing/PairingController.js +29 -2
- package/lib/commonjs/pairing/PairingController.js.map +1 -1
- package/lib/commonjs/pairing/PreviewModeBanner.js +211 -84
- package/lib/commonjs/pairing/PreviewModeBanner.js.map +1 -1
- package/lib/commonjs/pairing/diagnostics.js +11 -2
- package/lib/commonjs/pairing/diagnostics.js.map +1 -1
- package/lib/commonjs/pairing/elementPickerRelay.js +91 -0
- package/lib/commonjs/pairing/elementPickerRelay.js.map +1 -0
- package/lib/commonjs/pairing/resolvePreviewChrome.js +52 -0
- package/lib/commonjs/pairing/resolvePreviewChrome.js.map +1 -0
- package/lib/commonjs/pairing/tokenStorage.js +25 -2
- package/lib/commonjs/pairing/tokenStorage.js.map +1 -1
- package/lib/commonjs/pairing/usePairingState.js +3 -1
- package/lib/commonjs/pairing/usePairingState.js.map +1 -1
- package/lib/commonjs/runtime/FlowRenderer.js +45 -21
- package/lib/commonjs/runtime/FlowRenderer.js.map +1 -1
- package/lib/commonjs/runtime/FlowSurfaceFade.js +47 -24
- package/lib/commonjs/runtime/FlowSurfaceFade.js.map +1 -1
- package/lib/commonjs/runtime/TargetPressBridge.js +13 -44
- package/lib/commonjs/runtime/TargetPressBridge.js.map +1 -1
- package/lib/commonjs/runtime/UserflowProvider.js +74 -20
- package/lib/commonjs/runtime/UserflowProvider.js.map +1 -1
- package/lib/commonjs/runtime/changedTouchPoints.js +48 -0
- package/lib/commonjs/runtime/changedTouchPoints.js.map +1 -0
- package/lib/commonjs/runtime/flowEngine.js +3 -1
- package/lib/commonjs/runtime/flowEngine.js.map +1 -1
- package/lib/commonjs/runtime/flowSessionViewState.js +32 -7
- package/lib/commonjs/runtime/flowSessionViewState.js.map +1 -1
- package/lib/commonjs/runtime/useFlowSessionState.js +2 -1
- package/lib/commonjs/runtime/useFlowSessionState.js.map +1 -1
- package/lib/commonjs/screenTracker.js +46 -4
- package/lib/commonjs/screenTracker.js.map +1 -1
- package/lib/commonjs/surfaces/CardFade.js +31 -0
- package/lib/commonjs/surfaces/CardFade.js.map +1 -0
- package/lib/commonjs/surfaces/CloseButton.js +11 -6
- package/lib/commonjs/surfaces/CloseButton.js.map +1 -1
- package/lib/commonjs/surfaces/ModalSurface.js +50 -34
- package/lib/commonjs/surfaces/ModalSurface.js.map +1 -1
- package/lib/commonjs/surfaces/TooltipSurface.js +366 -87
- package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
- package/lib/commonjs/surfaces/cardTransition.js +70 -0
- package/lib/commonjs/surfaces/cardTransition.js.map +1 -0
- package/lib/commonjs/surfaces/resolveHighlightChrome.js +109 -0
- package/lib/commonjs/surfaces/resolveHighlightChrome.js.map +1 -0
- package/lib/commonjs/surfaces/resolveModalLayout.js +7 -3
- package/lib/commonjs/surfaces/resolveModalLayout.js.map +1 -1
- package/lib/commonjs/surfaces/resolveTooltipLayout.js +0 -4
- package/lib/commonjs/surfaces/resolveTooltipLayout.js.map +1 -1
- package/lib/commonjs/surfaces/surfaceInteractionConfig.js +33 -0
- package/lib/commonjs/surfaces/surfaceInteractionConfig.js.map +1 -0
- package/lib/commonjs/surfaces/surfaceLayoutInsets.js +128 -0
- package/lib/commonjs/surfaces/surfaceLayoutInsets.js.map +1 -0
- package/lib/commonjs/surfaces/themeChrome.js +4 -1
- package/lib/commonjs/surfaces/themeChrome.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/TooltipBubble.js +142 -21
- package/lib/commonjs/surfaces/tooltip/TooltipBubble.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/TooltipCutout.js +100 -47
- package/lib/commonjs/surfaces/tooltip/TooltipCutout.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js +124 -0
- package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js.map +1 -0
- package/lib/commonjs/surfaces/tooltip/computeTooltipPosition.js +67 -13
- package/lib/commonjs/surfaces/tooltip/computeTooltipPosition.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/inferTooltipPlacement.js +88 -19
- package/lib/commonjs/surfaces/tooltip/inferTooltipPlacement.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/placementDiagnostics.js +52 -0
- package/lib/commonjs/surfaces/tooltip/placementDiagnostics.js.map +1 -0
- package/lib/commonjs/surfaces/tooltip/rect.js +12 -0
- package/lib/commonjs/surfaces/tooltip/rect.js.map +1 -1
- package/lib/commonjs/surfaces/tooltip/resolveSideCardWidth.js +103 -0
- package/lib/commonjs/surfaces/tooltip/resolveSideCardWidth.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/module/anchors/AutoAnchorRegistry.js +126 -3
- package/lib/module/anchors/AutoAnchorRegistry.js.map +1 -1
- package/lib/module/anchors/anchorChangeTicker.js +10 -0
- package/lib/module/anchors/anchorChangeTicker.js.map +1 -1
- package/lib/module/anchors/autoAnchor.js +1 -1
- package/lib/module/anchors/elementConditionEvaluator.js +25 -12
- package/lib/module/anchors/elementConditionEvaluator.js.map +1 -1
- package/lib/module/anchors/fiber/FiberScanRoot.js +2 -43
- package/lib/module/anchors/fiber/FiberScanRoot.js.map +1 -1
- package/lib/module/anchors/fiber/FiberScanRootStore.js +46 -0
- package/lib/module/anchors/fiber/FiberScanRootStore.js.map +1 -0
- package/lib/module/anchors/fiber/fiberInternals.js +139 -3
- package/lib/module/anchors/fiber/fiberInternals.js.map +1 -1
- package/lib/module/anchors/fiber/indexHostFibers.js +122 -0
- package/lib/module/anchors/fiber/indexHostFibers.js.map +1 -0
- package/lib/module/anchors/fiber/readHostContent.js +127 -0
- package/lib/module/anchors/fiber/readHostContent.js.map +1 -0
- package/lib/module/anchors/fiberAnchorCache.js +40 -0
- package/lib/module/anchors/fiberAnchorCache.js.map +1 -0
- package/lib/module/anchors/hintsCodec.js +1 -1
- package/lib/module/anchors/resolveAnchorHost.js +15 -21
- package/lib/module/anchors/resolveAnchorHost.js.map +1 -1
- package/lib/module/anchors/resolveAutoAnchorHost.js +167 -0
- package/lib/module/anchors/resolveAutoAnchorHost.js.map +1 -0
- package/lib/module/anchors/semanticMatcher.js +280 -0
- package/lib/module/anchors/semanticMatcher.js.map +1 -0
- package/lib/module/authoring/ElementPickerOverlay.js +485 -0
- package/lib/module/authoring/ElementPickerOverlay.js.map +1 -0
- package/lib/module/authoring/capturePickerScreenshot.js +68 -0
- package/lib/module/authoring/capturePickerScreenshot.js.map +1 -0
- package/lib/module/authoring/chrome/ChromeBarTransition.js +88 -0
- package/lib/module/authoring/chrome/ChromeBarTransition.js.map +1 -0
- package/lib/module/authoring/chrome/ChromeBottomSheet.js +59 -0
- package/lib/module/authoring/chrome/ChromeBottomSheet.js.map +1 -0
- package/lib/module/authoring/chrome/ChromeButton.js +89 -0
- package/lib/module/authoring/chrome/ChromeButton.js.map +1 -0
- package/lib/module/authoring/chrome/ChromeDialog.js +126 -0
- package/lib/module/authoring/chrome/ChromeDialog.js.map +1 -0
- package/lib/module/authoring/chrome/ChromeIcon.js +33 -0
- package/lib/module/authoring/chrome/ChromeIcon.js.map +1 -0
- package/lib/module/authoring/chrome/ChromeTooltip.js +82 -0
- package/lib/module/authoring/chrome/ChromeTooltip.js.map +1 -0
- package/lib/module/authoring/chrome/ChromeTopBar.js +104 -0
- package/lib/module/authoring/chrome/ChromeTopBar.js.map +1 -0
- package/lib/module/authoring/chrome/DoubleTapBridge.js +52 -0
- package/lib/module/authoring/chrome/DoubleTapBridge.js.map +1 -0
- package/lib/module/authoring/chrome/doubleTapMonitor.js +75 -0
- package/lib/module/authoring/chrome/doubleTapMonitor.js.map +1 -0
- package/lib/module/authoring/chrome/icons/arrow-left-from-bracket.png +0 -0
- package/lib/module/authoring/chrome/icons/arrow-left-from-bracket@2x.png +0 -0
- package/lib/module/authoring/chrome/icons/arrow-left-from-bracket@3x.png +0 -0
- package/lib/module/authoring/chrome/icons/arrow-rotate-left.png +0 -0
- package/lib/module/authoring/chrome/icons/arrow-rotate-left@2x.png +0 -0
- package/lib/module/authoring/chrome/icons/arrow-rotate-left@3x.png +0 -0
- package/lib/module/authoring/chrome/icons/userflow-logomark.png +0 -0
- package/lib/module/authoring/chrome/icons/userflow-logomark@2x.png +0 -0
- package/lib/module/authoring/chrome/icons/userflow-logomark@3x.png +0 -0
- package/lib/module/authoring/chrome/icons/xmark.png +0 -0
- package/lib/module/authoring/chrome/icons/xmark@2x.png +0 -0
- package/lib/module/authoring/chrome/icons/xmark@3x.png +0 -0
- package/lib/module/authoring/chrome/tokens.js +146 -0
- package/lib/module/authoring/chrome/tokens.js.map +1 -0
- package/lib/module/authoring/doubleTap.js +18 -0
- package/lib/module/authoring/doubleTap.js.map +1 -0
- package/lib/module/authoring/elementPickerController.js +97 -0
- package/lib/module/authoring/elementPickerController.js.map +1 -0
- package/lib/module/authoring/fingerprintFromInstance.js +187 -0
- package/lib/module/authoring/fingerprintFromInstance.js.map +1 -0
- package/lib/module/authoring/hitTest.js +100 -0
- package/lib/module/authoring/hitTest.js.map +1 -0
- package/lib/module/content/RichContentRenderer.js +12 -2
- package/lib/module/content/RichContentRenderer.js.map +1 -1
- package/lib/module/content/StepButton.js +19 -4
- package/lib/module/content/StepButton.js.map +1 -1
- package/lib/module/content/resolveStepButtonChrome.js +8 -6
- package/lib/module/content/resolveStepButtonChrome.js.map +1 -1
- package/lib/module/content/themeColor.js +10 -0
- package/lib/module/content/themeColor.js.map +1 -1
- package/lib/module/deviceContext.js +142 -0
- package/lib/module/deviceContext.js.map +1 -0
- package/lib/module/expo-router/useUserflowExpoRouter.js +42 -6
- package/lib/module/expo-router/useUserflowExpoRouter.js.map +1 -1
- package/lib/module/hostAppVersion.js +225 -0
- package/lib/module/hostAppVersion.js.map +1 -0
- package/lib/module/index.js +119 -6
- package/lib/module/index.js.map +1 -1
- package/lib/module/lifecycle.js +2 -0
- package/lib/module/lifecycle.js.map +1 -1
- package/lib/module/navigation/WithUserflowReactNavigation.js +18 -9
- package/lib/module/navigation/WithUserflowReactNavigation.js.map +1 -1
- package/lib/module/navigation/isOverlayPresentation.js +58 -0
- package/lib/module/navigation/isOverlayPresentation.js.map +1 -0
- package/lib/module/pairing/PairingController.js +30 -3
- package/lib/module/pairing/PairingController.js.map +1 -1
- package/lib/module/pairing/PreviewModeBanner.js +212 -85
- package/lib/module/pairing/PreviewModeBanner.js.map +1 -1
- package/lib/module/pairing/diagnostics.js +10 -2
- package/lib/module/pairing/diagnostics.js.map +1 -1
- package/lib/module/pairing/elementPickerRelay.js +87 -0
- package/lib/module/pairing/elementPickerRelay.js.map +1 -0
- package/lib/module/pairing/resolvePreviewChrome.js +48 -0
- package/lib/module/pairing/resolvePreviewChrome.js.map +1 -0
- package/lib/module/pairing/tokenStorage.js +24 -2
- package/lib/module/pairing/tokenStorage.js.map +1 -1
- package/lib/module/pairing/usePairingState.js +3 -1
- package/lib/module/pairing/usePairingState.js.map +1 -1
- package/lib/module/runtime/FlowRenderer.js +45 -21
- package/lib/module/runtime/FlowRenderer.js.map +1 -1
- package/lib/module/runtime/FlowSurfaceFade.js +49 -26
- package/lib/module/runtime/FlowSurfaceFade.js.map +1 -1
- package/lib/module/runtime/TargetPressBridge.js +12 -43
- package/lib/module/runtime/TargetPressBridge.js.map +1 -1
- package/lib/module/runtime/UserflowProvider.js +74 -20
- package/lib/module/runtime/UserflowProvider.js.map +1 -1
- package/lib/module/runtime/changedTouchPoints.js +43 -0
- package/lib/module/runtime/changedTouchPoints.js.map +1 -0
- package/lib/module/runtime/flowEngine.js +3 -1
- package/lib/module/runtime/flowEngine.js.map +1 -1
- package/lib/module/runtime/flowSessionViewState.js +32 -7
- package/lib/module/runtime/flowSessionViewState.js.map +1 -1
- package/lib/module/runtime/useFlowSessionState.js +2 -1
- package/lib/module/runtime/useFlowSessionState.js.map +1 -1
- package/lib/module/screenTracker.js +42 -4
- package/lib/module/screenTracker.js.map +1 -1
- package/lib/module/surfaces/CardFade.js +26 -0
- package/lib/module/surfaces/CardFade.js.map +1 -0
- package/lib/module/surfaces/CloseButton.js +10 -6
- package/lib/module/surfaces/CloseButton.js.map +1 -1
- package/lib/module/surfaces/ModalSurface.js +52 -36
- package/lib/module/surfaces/ModalSurface.js.map +1 -1
- package/lib/module/surfaces/TooltipSurface.js +368 -90
- package/lib/module/surfaces/TooltipSurface.js.map +1 -1
- package/lib/module/surfaces/cardTransition.js +64 -0
- package/lib/module/surfaces/cardTransition.js.map +1 -0
- package/lib/module/surfaces/resolveHighlightChrome.js +102 -0
- package/lib/module/surfaces/resolveHighlightChrome.js.map +1 -0
- package/lib/module/surfaces/resolveModalLayout.js +7 -3
- package/lib/module/surfaces/resolveModalLayout.js.map +1 -1
- package/lib/module/surfaces/resolveTooltipLayout.js +1 -4
- package/lib/module/surfaces/resolveTooltipLayout.js.map +1 -1
- package/lib/module/surfaces/surfaceInteractionConfig.js +27 -0
- package/lib/module/surfaces/surfaceInteractionConfig.js.map +1 -0
- package/lib/module/surfaces/surfaceLayoutInsets.js +119 -0
- package/lib/module/surfaces/surfaceLayoutInsets.js.map +1 -0
- package/lib/module/surfaces/themeChrome.js +3 -1
- package/lib/module/surfaces/themeChrome.js.map +1 -1
- package/lib/module/surfaces/tooltip/TooltipBubble.js +143 -22
- package/lib/module/surfaces/tooltip/TooltipBubble.js.map +1 -1
- package/lib/module/surfaces/tooltip/TooltipCutout.js +100 -47
- package/lib/module/surfaces/tooltip/TooltipCutout.js.map +1 -1
- package/lib/module/surfaces/tooltip/TooltipHighlight.js +118 -0
- package/lib/module/surfaces/tooltip/TooltipHighlight.js.map +1 -0
- package/lib/module/surfaces/tooltip/computeTooltipPosition.js +67 -13
- package/lib/module/surfaces/tooltip/computeTooltipPosition.js.map +1 -1
- package/lib/module/surfaces/tooltip/inferTooltipPlacement.js +87 -19
- package/lib/module/surfaces/tooltip/inferTooltipPlacement.js.map +1 -1
- package/lib/module/surfaces/tooltip/placementDiagnostics.js +43 -0
- package/lib/module/surfaces/tooltip/placementDiagnostics.js.map +1 -0
- package/lib/module/surfaces/tooltip/rect.js +11 -0
- package/lib/module/surfaces/tooltip/rect.js.map +1 -1
- package/lib/module/surfaces/tooltip/resolveSideCardWidth.js +96 -0
- package/lib/module/surfaces/tooltip/resolveSideCardWidth.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts +27 -1
- package/lib/typescript/commonjs/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/anchorChangeTicker.d.ts +2 -0
- package/lib/typescript/commonjs/src/anchors/anchorChangeTicker.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/autoAnchor.d.ts +1 -1
- package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts +14 -10
- package/lib/typescript/commonjs/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRoot.d.ts +1 -20
- package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRoot.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts +21 -0
- package/lib/typescript/commonjs/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts +42 -1
- package/lib/typescript/commonjs/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts +42 -0
- package/lib/typescript/commonjs/src/anchors/fiber/indexHostFibers.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/fiber/readHostContent.d.ts +17 -0
- package/lib/typescript/commonjs/src/anchors/fiber/readHostContent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts +20 -0
- package/lib/typescript/commonjs/src/anchors/fiberAnchorCache.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/hintsCodec.d.ts +1 -1
- package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts +5 -5
- package/lib/typescript/commonjs/src/anchors/resolveAnchorHost.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts +38 -0
- package/lib/typescript/commonjs/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts +48 -0
- package/lib/typescript/commonjs/src/anchors/semanticMatcher.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts +7 -0
- package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/capturePickerScreenshot.d.ts +11 -0
- package/lib/typescript/commonjs/src/authoring/capturePickerScreenshot.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeBarTransition.d.ts +32 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeBarTransition.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeBottomSheet.d.ts +13 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeBottomSheet.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeButton.d.ts +20 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeDialog.d.ts +14 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeDialog.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeIcon.d.ts +13 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeIcon.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeTooltip.d.ts +17 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeTooltip.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeTopBar.d.ts +25 -0
- package/lib/typescript/commonjs/src/authoring/chrome/ChromeTopBar.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/DoubleTapBridge.d.ts +12 -0
- package/lib/typescript/commonjs/src/authoring/chrome/DoubleTapBridge.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/doubleTapMonitor.d.ts +26 -0
- package/lib/typescript/commonjs/src/authoring/chrome/doubleTapMonitor.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/chrome/tokens.d.ts +141 -0
- package/lib/typescript/commonjs/src/authoring/chrome/tokens.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/doubleTap.d.ts +14 -0
- package/lib/typescript/commonjs/src/authoring/doubleTap.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/elementPickerController.d.ts +59 -0
- package/lib/typescript/commonjs/src/authoring/elementPickerController.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts +26 -0
- package/lib/typescript/commonjs/src/authoring/fingerprintFromInstance.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/authoring/hitTest.d.ts +31 -0
- package/lib/typescript/commonjs/src/authoring/hitTest.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/content/RichContentRenderer.d.ts +6 -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/resolveStepButtonChrome.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/content/themeColor.d.ts +5 -0
- package/lib/typescript/commonjs/src/content/themeColor.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/deviceContext.d.ts +66 -0
- package/lib/typescript/commonjs/src/deviceContext.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/hostAppVersion.d.ts +69 -0
- package/lib/typescript/commonjs/src/hostAppVersion.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +53 -2
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/lifecycle.d.ts +6 -0
- package/lib/typescript/commonjs/src/lifecycle.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/navigation/WithUserflowReactNavigation.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/navigation/isOverlayPresentation.d.ts +14 -0
- package/lib/typescript/commonjs/src/navigation/isOverlayPresentation.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +7 -0
- package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/pairing/PreviewModeBanner.d.ts +6 -1
- package/lib/typescript/commonjs/src/pairing/PreviewModeBanner.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/pairing/diagnostics.d.ts +5 -0
- package/lib/typescript/commonjs/src/pairing/diagnostics.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/pairing/elementPickerRelay.d.ts +11 -0
- package/lib/typescript/commonjs/src/pairing/elementPickerRelay.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/pairing/resolvePreviewChrome.d.ts +16 -0
- package/lib/typescript/commonjs/src/pairing/resolvePreviewChrome.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts +2 -0
- package/lib/typescript/commonjs/src/pairing/tokenStorage.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/pairing/usePairingState.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/FlowRenderer.d.ts +6 -3
- package/lib/typescript/commonjs/src/runtime/FlowRenderer.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/FlowSurfaceFade.d.ts +20 -7
- package/lib/typescript/commonjs/src/runtime/FlowSurfaceFade.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts +5 -1
- package/lib/typescript/commonjs/src/runtime/TargetPressBridge.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts +6 -4
- package/lib/typescript/commonjs/src/runtime/UserflowProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/changedTouchPoints.d.ts +10 -0
- package/lib/typescript/commonjs/src/runtime/changedTouchPoints.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/runtime/flowEngine.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/flowSessionViewState.d.ts +12 -3
- package/lib/typescript/commonjs/src/runtime/flowSessionViewState.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/runtime/useFlowSessionState.d.ts +1 -0
- package/lib/typescript/commonjs/src/runtime/useFlowSessionState.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/screenTracker.d.ts +21 -3
- package/lib/typescript/commonjs/src/screenTracker.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/CardFade.d.ts +12 -0
- package/lib/typescript/commonjs/src/surfaces/CardFade.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/CloseButton.d.ts +8 -2
- package/lib/typescript/commonjs/src/surfaces/CloseButton.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/MadeWithUserflow.d.ts +1 -1
- package/lib/typescript/commonjs/src/surfaces/ModalSurface.d.ts +1 -1
- package/lib/typescript/commonjs/src/surfaces/ModalSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts +12 -1
- package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/cardTransition.d.ts +31 -0
- package/lib/typescript/commonjs/src/surfaces/cardTransition.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/resolveHighlightChrome.d.ts +44 -0
- package/lib/typescript/commonjs/src/surfaces/resolveHighlightChrome.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/resolveModalLayout.d.ts +1 -1
- package/lib/typescript/commonjs/src/surfaces/resolveModalLayout.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/resolveTooltipLayout.d.ts +0 -7
- package/lib/typescript/commonjs/src/surfaces/resolveTooltipLayout.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/surfaceInteractionConfig.d.ts +15 -0
- package/lib/typescript/commonjs/src/surfaces/surfaceInteractionConfig.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/surfaceLayoutInsets.d.ts +38 -0
- package/lib/typescript/commonjs/src/surfaces/surfaceLayoutInsets.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/themeChrome.d.ts +3 -1
- package/lib/typescript/commonjs/src/surfaces/themeChrome.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts +21 -6
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipCutout.d.ts +18 -10
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipCutout.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipHighlight.d.ts +25 -0
- package/lib/typescript/commonjs/src/surfaces/tooltip/TooltipHighlight.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/tooltip/computeTooltipPosition.d.ts +23 -0
- package/lib/typescript/commonjs/src/surfaces/tooltip/computeTooltipPosition.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/inferTooltipPlacement.d.ts +47 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/inferTooltipPlacement.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/placementDiagnostics.d.ts +39 -0
- package/lib/typescript/commonjs/src/surfaces/tooltip/placementDiagnostics.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/surfaces/tooltip/rect.d.ts +2 -0
- package/lib/typescript/commonjs/src/surfaces/tooltip/rect.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/surfaces/tooltip/resolveSideCardWidth.d.ts +76 -0
- package/lib/typescript/commonjs/src/surfaces/tooltip/resolveSideCardWidth.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/version.d.ts +1 -1
- package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts +27 -1
- package/lib/typescript/module/src/anchors/AutoAnchorRegistry.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/anchorChangeTicker.d.ts +2 -0
- package/lib/typescript/module/src/anchors/anchorChangeTicker.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/autoAnchor.d.ts +1 -1
- package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts +14 -10
- package/lib/typescript/module/src/anchors/elementConditionEvaluator.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/FiberScanRoot.d.ts +1 -20
- package/lib/typescript/module/src/anchors/fiber/FiberScanRoot.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts +21 -0
- package/lib/typescript/module/src/anchors/fiber/FiberScanRootStore.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts +42 -1
- package/lib/typescript/module/src/anchors/fiber/fiberInternals.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts +42 -0
- package/lib/typescript/module/src/anchors/fiber/indexHostFibers.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/fiber/readHostContent.d.ts +17 -0
- package/lib/typescript/module/src/anchors/fiber/readHostContent.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts +20 -0
- package/lib/typescript/module/src/anchors/fiberAnchorCache.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/hintsCodec.d.ts +1 -1
- package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts +5 -5
- package/lib/typescript/module/src/anchors/resolveAnchorHost.d.ts.map +1 -1
- package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts +38 -0
- package/lib/typescript/module/src/anchors/resolveAutoAnchorHost.d.ts.map +1 -0
- package/lib/typescript/module/src/anchors/semanticMatcher.d.ts +48 -0
- package/lib/typescript/module/src/anchors/semanticMatcher.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts +7 -0
- package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/capturePickerScreenshot.d.ts +11 -0
- package/lib/typescript/module/src/authoring/capturePickerScreenshot.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeBarTransition.d.ts +32 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeBarTransition.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeBottomSheet.d.ts +13 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeBottomSheet.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeButton.d.ts +20 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeButton.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeDialog.d.ts +14 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeDialog.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeIcon.d.ts +13 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeIcon.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeTooltip.d.ts +17 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeTooltip.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeTopBar.d.ts +25 -0
- package/lib/typescript/module/src/authoring/chrome/ChromeTopBar.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/DoubleTapBridge.d.ts +12 -0
- package/lib/typescript/module/src/authoring/chrome/DoubleTapBridge.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/doubleTapMonitor.d.ts +26 -0
- package/lib/typescript/module/src/authoring/chrome/doubleTapMonitor.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/chrome/tokens.d.ts +141 -0
- package/lib/typescript/module/src/authoring/chrome/tokens.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/doubleTap.d.ts +14 -0
- package/lib/typescript/module/src/authoring/doubleTap.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/elementPickerController.d.ts +59 -0
- package/lib/typescript/module/src/authoring/elementPickerController.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts +26 -0
- package/lib/typescript/module/src/authoring/fingerprintFromInstance.d.ts.map +1 -0
- package/lib/typescript/module/src/authoring/hitTest.d.ts +31 -0
- package/lib/typescript/module/src/authoring/hitTest.d.ts.map +1 -0
- package/lib/typescript/module/src/content/RichContentRenderer.d.ts +6 -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/resolveStepButtonChrome.d.ts.map +1 -1
- package/lib/typescript/module/src/content/themeColor.d.ts +5 -0
- package/lib/typescript/module/src/content/themeColor.d.ts.map +1 -1
- package/lib/typescript/module/src/deviceContext.d.ts +66 -0
- package/lib/typescript/module/src/deviceContext.d.ts.map +1 -0
- package/lib/typescript/module/src/expo-router/useUserflowExpoRouter.d.ts.map +1 -1
- package/lib/typescript/module/src/hostAppVersion.d.ts +69 -0
- package/lib/typescript/module/src/hostAppVersion.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +53 -2
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/lifecycle.d.ts +6 -0
- package/lib/typescript/module/src/lifecycle.d.ts.map +1 -1
- package/lib/typescript/module/src/navigation/WithUserflowReactNavigation.d.ts.map +1 -1
- package/lib/typescript/module/src/navigation/isOverlayPresentation.d.ts +14 -0
- package/lib/typescript/module/src/navigation/isOverlayPresentation.d.ts.map +1 -0
- package/lib/typescript/module/src/pairing/PairingController.d.ts +7 -0
- package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
- package/lib/typescript/module/src/pairing/PreviewModeBanner.d.ts +6 -1
- package/lib/typescript/module/src/pairing/PreviewModeBanner.d.ts.map +1 -1
- package/lib/typescript/module/src/pairing/diagnostics.d.ts +5 -0
- package/lib/typescript/module/src/pairing/diagnostics.d.ts.map +1 -1
- package/lib/typescript/module/src/pairing/elementPickerRelay.d.ts +11 -0
- package/lib/typescript/module/src/pairing/elementPickerRelay.d.ts.map +1 -0
- package/lib/typescript/module/src/pairing/resolvePreviewChrome.d.ts +16 -0
- package/lib/typescript/module/src/pairing/resolvePreviewChrome.d.ts.map +1 -0
- package/lib/typescript/module/src/pairing/tokenStorage.d.ts +2 -0
- package/lib/typescript/module/src/pairing/tokenStorage.d.ts.map +1 -1
- package/lib/typescript/module/src/pairing/usePairingState.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/FlowRenderer.d.ts +6 -3
- package/lib/typescript/module/src/runtime/FlowRenderer.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/FlowSurfaceFade.d.ts +20 -7
- package/lib/typescript/module/src/runtime/FlowSurfaceFade.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts +5 -1
- package/lib/typescript/module/src/runtime/TargetPressBridge.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/UserflowProvider.d.ts +6 -4
- package/lib/typescript/module/src/runtime/UserflowProvider.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/changedTouchPoints.d.ts +10 -0
- package/lib/typescript/module/src/runtime/changedTouchPoints.d.ts.map +1 -0
- package/lib/typescript/module/src/runtime/flowEngine.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/flowSessionViewState.d.ts +12 -3
- package/lib/typescript/module/src/runtime/flowSessionViewState.d.ts.map +1 -1
- package/lib/typescript/module/src/runtime/useFlowSessionState.d.ts +1 -0
- package/lib/typescript/module/src/runtime/useFlowSessionState.d.ts.map +1 -1
- package/lib/typescript/module/src/screenTracker.d.ts +21 -3
- package/lib/typescript/module/src/screenTracker.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/CardFade.d.ts +12 -0
- package/lib/typescript/module/src/surfaces/CardFade.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/CloseButton.d.ts +8 -2
- package/lib/typescript/module/src/surfaces/CloseButton.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/MadeWithUserflow.d.ts +1 -1
- package/lib/typescript/module/src/surfaces/ModalSurface.d.ts +1 -1
- package/lib/typescript/module/src/surfaces/ModalSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts +12 -1
- package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/cardTransition.d.ts +31 -0
- package/lib/typescript/module/src/surfaces/cardTransition.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/resolveHighlightChrome.d.ts +44 -0
- package/lib/typescript/module/src/surfaces/resolveHighlightChrome.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/resolveModalLayout.d.ts +1 -1
- package/lib/typescript/module/src/surfaces/resolveModalLayout.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/resolveTooltipLayout.d.ts +0 -7
- package/lib/typescript/module/src/surfaces/resolveTooltipLayout.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/surfaceInteractionConfig.d.ts +15 -0
- package/lib/typescript/module/src/surfaces/surfaceInteractionConfig.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/surfaceLayoutInsets.d.ts +38 -0
- package/lib/typescript/module/src/surfaces/surfaceLayoutInsets.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/themeChrome.d.ts +3 -1
- package/lib/typescript/module/src/surfaces/themeChrome.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts +21 -6
- package/lib/typescript/module/src/surfaces/tooltip/TooltipBubble.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/TooltipCutout.d.ts +18 -10
- package/lib/typescript/module/src/surfaces/tooltip/TooltipCutout.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/TooltipHighlight.d.ts +25 -0
- package/lib/typescript/module/src/surfaces/tooltip/TooltipHighlight.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/tooltip/computeTooltipPosition.d.ts +23 -0
- package/lib/typescript/module/src/surfaces/tooltip/computeTooltipPosition.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/inferTooltipPlacement.d.ts +47 -1
- package/lib/typescript/module/src/surfaces/tooltip/inferTooltipPlacement.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/placementDiagnostics.d.ts +39 -0
- package/lib/typescript/module/src/surfaces/tooltip/placementDiagnostics.d.ts.map +1 -0
- package/lib/typescript/module/src/surfaces/tooltip/rect.d.ts +2 -0
- package/lib/typescript/module/src/surfaces/tooltip/rect.d.ts.map +1 -1
- package/lib/typescript/module/src/surfaces/tooltip/resolveSideCardWidth.d.ts +76 -0
- package/lib/typescript/module/src/surfaces/tooltip/resolveSideCardWidth.d.ts.map +1 -0
- package/lib/typescript/module/src/version.d.ts +1 -1
- package/package.json +32 -18
- package/src/anchors/AutoAnchorRegistry.ts +140 -3
- package/src/anchors/anchorChangeTicker.ts +10 -0
- package/src/anchors/autoAnchor.ts +1 -1
- package/src/anchors/elementConditionEvaluator.ts +29 -16
- package/src/anchors/fiber/FiberScanRoot.tsx +2 -50
- package/src/anchors/fiber/FiberScanRootStore.ts +51 -0
- package/src/anchors/fiber/fiberInternals.ts +166 -3
- package/src/anchors/fiber/indexHostFibers.ts +136 -0
- package/src/anchors/fiber/readHostContent.ts +146 -0
- package/src/anchors/fiberAnchorCache.ts +45 -0
- package/src/anchors/hintsCodec.ts +1 -1
- package/src/anchors/resolveAnchorHost.ts +23 -23
- package/src/anchors/resolveAutoAnchorHost.ts +180 -0
- package/src/anchors/semanticMatcher.ts +361 -0
- package/src/authoring/ElementPickerOverlay.tsx +553 -0
- package/src/authoring/capturePickerScreenshot.ts +90 -0
- package/src/authoring/chrome/ChromeBarTransition.tsx +106 -0
- package/src/authoring/chrome/ChromeBottomSheet.tsx +69 -0
- package/src/authoring/chrome/ChromeButton.tsx +103 -0
- package/src/authoring/chrome/ChromeDialog.tsx +121 -0
- package/src/authoring/chrome/ChromeIcon.tsx +40 -0
- package/src/authoring/chrome/ChromeTooltip.tsx +89 -0
- package/src/authoring/chrome/ChromeTopBar.tsx +126 -0
- package/src/authoring/chrome/DoubleTapBridge.tsx +60 -0
- package/src/authoring/chrome/doubleTapMonitor.ts +80 -0
- package/src/authoring/chrome/icons/arrow-left-from-bracket.png +0 -0
- package/src/authoring/chrome/icons/arrow-left-from-bracket@2x.png +0 -0
- package/src/authoring/chrome/icons/arrow-left-from-bracket@3x.png +0 -0
- package/src/authoring/chrome/icons/arrow-rotate-left.png +0 -0
- package/src/authoring/chrome/icons/arrow-rotate-left@2x.png +0 -0
- package/src/authoring/chrome/icons/arrow-rotate-left@3x.png +0 -0
- package/src/authoring/chrome/icons/userflow-logomark.png +0 -0
- package/src/authoring/chrome/icons/userflow-logomark@2x.png +0 -0
- package/src/authoring/chrome/icons/userflow-logomark@3x.png +0 -0
- package/src/authoring/chrome/icons/xmark.png +0 -0
- package/src/authoring/chrome/icons/xmark@2x.png +0 -0
- package/src/authoring/chrome/icons/xmark@3x.png +0 -0
- package/src/authoring/chrome/tokens.ts +106 -0
- package/src/authoring/doubleTap.ts +27 -0
- package/src/authoring/elementPickerController.ts +135 -0
- package/src/authoring/fingerprintFromInstance.ts +152 -0
- package/src/authoring/hitTest.ts +133 -0
- package/src/content/RichContentRenderer.tsx +22 -1
- package/src/content/StepButton.tsx +17 -2
- package/src/content/resolveStepButtonChrome.ts +12 -6
- package/src/content/themeColor.ts +10 -0
- package/src/deviceContext.ts +168 -0
- package/src/expo-router/useUserflowExpoRouter.ts +47 -4
- package/src/hostAppVersion.ts +258 -0
- package/src/index.ts +148 -4
- package/src/lifecycle.ts +8 -0
- package/src/navigation/WithUserflowReactNavigation.tsx +23 -7
- package/src/navigation/isOverlayPresentation.ts +76 -0
- package/src/pairing/PairingController.ts +32 -3
- package/src/pairing/PreviewModeBanner.tsx +250 -94
- package/src/pairing/diagnostics.ts +10 -2
- package/src/pairing/elementPickerRelay.ts +100 -0
- package/src/pairing/resolvePreviewChrome.ts +57 -0
- package/src/pairing/tokenStorage.ts +31 -2
- package/src/pairing/usePairingState.ts +2 -0
- package/src/runtime/FlowRenderer.tsx +55 -27
- package/src/runtime/FlowSurfaceFade.tsx +51 -30
- package/src/runtime/TargetPressBridge.tsx +14 -32
- package/src/runtime/UserflowProvider.tsx +76 -13
- package/src/runtime/changedTouchPoints.ts +34 -0
- package/src/runtime/flowEngine.ts +2 -0
- package/src/runtime/flowSessionViewState.ts +42 -4
- package/src/runtime/useFlowSessionState.ts +2 -0
- package/src/screenTracker.ts +46 -4
- package/src/surfaces/CardFade.tsx +18 -0
- package/src/surfaces/CloseButton.tsx +17 -7
- package/src/surfaces/MadeWithUserflow.tsx +1 -1
- package/src/surfaces/ModalSurface.tsx +48 -35
- package/src/surfaces/TooltipSurface.tsx +406 -86
- package/src/surfaces/cardTransition.ts +67 -0
- package/src/surfaces/resolveHighlightChrome.ts +139 -0
- package/src/surfaces/resolveModalLayout.ts +16 -8
- package/src/surfaces/resolveTooltipLayout.ts +1 -14
- package/src/surfaces/surfaceInteractionConfig.ts +25 -0
- package/src/surfaces/surfaceLayoutInsets.tsx +135 -0
- package/src/surfaces/themeChrome.ts +5 -3
- package/src/surfaces/tooltip/TooltipBubble.tsx +154 -19
- package/src/surfaces/tooltip/TooltipCutout.tsx +106 -49
- package/src/surfaces/tooltip/TooltipHighlight.tsx +144 -0
- package/src/surfaces/tooltip/computeTooltipPosition.ts +98 -12
- package/src/surfaces/tooltip/inferTooltipPlacement.ts +107 -18
- package/src/surfaces/tooltip/placementDiagnostics.ts +70 -0
- package/src/surfaces/tooltip/rect.ts +11 -0
- package/src/surfaces/tooltip/resolveSideCardWidth.ts +121 -0
- package/src/version.ts +1 -1
- package/vendor/core/LICENSE +76 -0
- package/vendor/core/README.md +9 -0
- package/vendor/core/dist/attributes.d.ts +15 -0
- package/vendor/core/dist/attributes.d.ts.map +1 -0
- package/vendor/core/dist/attributes.js +55 -0
- package/vendor/core/dist/attributes.js.map +1 -0
- package/vendor/core/dist/constants.d.ts +21 -0
- package/vendor/core/dist/constants.d.ts.map +1 -0
- package/vendor/core/dist/constants.js +21 -0
- package/vendor/core/dist/constants.js.map +1 -0
- package/vendor/core/dist/engine/ClientConditionEngine.d.ts +68 -0
- package/vendor/core/dist/engine/ClientConditionEngine.d.ts.map +1 -0
- package/vendor/core/dist/engine/ClientConditionEngine.js +197 -0
- package/vendor/core/dist/engine/ClientConditionEngine.js.map +1 -0
- package/vendor/core/dist/engine/FlowSessionEngine.d.ts +160 -0
- package/vendor/core/dist/engine/FlowSessionEngine.d.ts.map +1 -0
- package/vendor/core/dist/engine/FlowSessionEngine.js +571 -0
- package/vendor/core/dist/engine/FlowSessionEngine.js.map +1 -0
- package/vendor/core/dist/engine/PairingEngine.d.ts +135 -0
- package/vendor/core/dist/engine/PairingEngine.d.ts.map +1 -0
- package/vendor/core/dist/engine/PairingEngine.js +396 -0
- package/vendor/core/dist/engine/PairingEngine.js.map +1 -0
- package/vendor/core/dist/engine/UserflowCore.d.ts +145 -0
- package/vendor/core/dist/engine/UserflowCore.d.ts.map +1 -0
- package/vendor/core/dist/engine/UserflowCore.js +329 -0
- package/vendor/core/dist/engine/UserflowCore.js.map +1 -0
- package/vendor/core/dist/engine/conditionOperators.d.ts +16 -0
- package/vendor/core/dist/engine/conditionOperators.d.ts.map +1 -0
- package/vendor/core/dist/engine/conditionOperators.js +168 -0
- package/vendor/core/dist/engine/conditionOperators.js.map +1 -0
- package/vendor/core/dist/engine/handleActions.d.ts +42 -0
- package/vendor/core/dist/engine/handleActions.d.ts.map +1 -0
- package/vendor/core/dist/engine/handleActions.js +198 -0
- package/vendor/core/dist/engine/handleActions.js.map +1 -0
- package/vendor/core/dist/engine/interpolateSessionData.d.ts +7 -0
- package/vendor/core/dist/engine/interpolateSessionData.d.ts.map +1 -0
- package/vendor/core/dist/engine/interpolateSessionData.js +29 -0
- package/vendor/core/dist/engine/interpolateSessionData.js.map +1 -0
- package/vendor/core/dist/engine/simpleObservable.d.ts +13 -0
- package/vendor/core/dist/engine/simpleObservable.d.ts.map +1 -0
- package/vendor/core/dist/engine/simpleObservable.js +29 -0
- package/vendor/core/dist/engine/simpleObservable.js.map +1 -0
- package/vendor/core/dist/engine/trackCondition.d.ts +25 -0
- package/vendor/core/dist/engine/trackCondition.d.ts.map +1 -0
- package/vendor/core/dist/engine/trackCondition.js +177 -0
- package/vendor/core/dist/engine/trackCondition.js.map +1 -0
- package/vendor/core/dist/engine/trackStepTriggers.d.ts +21 -0
- package/vendor/core/dist/engine/trackStepTriggers.d.ts.map +1 -0
- package/vendor/core/dist/engine/trackStepTriggers.js +49 -0
- package/vendor/core/dist/engine/trackStepTriggers.js.map +1 -0
- package/vendor/core/dist/errors.d.ts +9 -0
- package/vendor/core/dist/errors.d.ts.map +1 -0
- package/vendor/core/dist/errors.js +15 -0
- package/vendor/core/dist/errors.js.map +1 -0
- package/vendor/core/dist/eventAttributes.d.ts +7 -0
- package/vendor/core/dist/eventAttributes.d.ts.map +1 -0
- package/vendor/core/dist/eventAttributes.js +31 -0
- package/vendor/core/dist/eventAttributes.js.map +1 -0
- package/vendor/core/dist/index.d.ts +31 -0
- package/vendor/core/dist/index.d.ts.map +1 -0
- package/vendor/core/dist/index.js +22 -0
- package/vendor/core/dist/index.js.map +1 -0
- package/vendor/core/dist/normalizeAttributes.d.ts +8 -0
- package/vendor/core/dist/normalizeAttributes.d.ts.map +1 -0
- package/vendor/core/dist/normalizeAttributes.js +127 -0
- package/vendor/core/dist/normalizeAttributes.js.map +1 -0
- package/vendor/core/dist/transport/backoff.d.ts +11 -0
- package/vendor/core/dist/transport/backoff.d.ts.map +1 -0
- package/vendor/core/dist/transport/backoff.js +17 -0
- package/vendor/core/dist/transport/backoff.js.map +1 -0
- package/vendor/core/dist/transport/pairing.d.ts +121 -0
- package/vendor/core/dist/transport/pairing.d.ts.map +1 -0
- package/vendor/core/dist/transport/pairing.js +551 -0
- package/vendor/core/dist/transport/pairing.js.map +1 -0
- package/vendor/core/dist/transport/phoenix.d.ts +228 -0
- package/vendor/core/dist/transport/phoenix.d.ts.map +1 -0
- package/vendor/core/dist/transport/phoenix.js +811 -0
- package/vendor/core/dist/transport/phoenix.js.map +1 -0
- package/vendor/core/dist/transport/rateLimiter.d.ts +17 -0
- package/vendor/core/dist/transport/rateLimiter.d.ts.map +1 -0
- package/vendor/core/dist/transport/rateLimiter.js +30 -0
- package/vendor/core/dist/transport/rateLimiter.js.map +1 -0
- package/vendor/core/dist/transport/scheduler.d.ts +12 -0
- package/vendor/core/dist/transport/scheduler.d.ts.map +1 -0
- package/vendor/core/dist/transport/scheduler.js +11 -0
- package/vendor/core/dist/transport/scheduler.js.map +1 -0
- package/vendor/core/dist/types.d.ts +60 -0
- package/vendor/core/dist/types.d.ts.map +1 -0
- package/vendor/core/dist/types.js +2 -0
- package/vendor/core/dist/types.js.map +1 -0
- package/vendor/core/dist/version.d.ts +3 -0
- package/vendor/core/dist/version.d.ts.map +1 -0
- package/vendor/core/dist/version.js +3 -0
- package/vendor/core/dist/version.js.map +1 -0
- package/vendor/core/package.json +20 -0
- package/vendor/protocol/LICENSE +76 -0
- package/vendor/protocol/README.md +8 -0
- package/vendor/protocol/dist/attributes.d.ts +43 -0
- package/vendor/protocol/dist/attributes.d.ts.map +1 -0
- package/vendor/protocol/dist/attributes.js +15 -0
- package/vendor/protocol/dist/attributes.js.map +1 -0
- package/vendor/protocol/dist/autoData.d.ts +232 -0
- package/vendor/protocol/dist/autoData.d.ts.map +1 -0
- package/vendor/protocol/dist/autoData.js +78 -0
- package/vendor/protocol/dist/autoData.js.map +1 -0
- package/vendor/protocol/dist/events.d.ts +24 -0
- package/vendor/protocol/dist/events.d.ts.map +1 -0
- package/vendor/protocol/dist/events.js +8 -0
- package/vendor/protocol/dist/events.js.map +1 -0
- package/vendor/protocol/dist/flows.d.ts +360 -0
- package/vendor/protocol/dist/flows.d.ts.map +1 -0
- package/vendor/protocol/dist/flows.js +201 -0
- package/vendor/protocol/dist/flows.js.map +1 -0
- package/vendor/protocol/dist/index.d.ts +25 -0
- package/vendor/protocol/dist/index.d.ts.map +1 -0
- package/vendor/protocol/dist/index.js +17 -0
- package/vendor/protocol/dist/index.js.map +1 -0
- package/vendor/protocol/dist/messages.d.ts +187 -0
- package/vendor/protocol/dist/messages.d.ts.map +1 -0
- package/vendor/protocol/dist/messages.js +61 -0
- package/vendor/protocol/dist/messages.js.map +1 -0
- package/vendor/protocol/dist/pairing.d.ts +82 -0
- package/vendor/protocol/dist/pairing.d.ts.map +1 -0
- package/vendor/protocol/dist/pairing.js +146 -0
- package/vendor/protocol/dist/pairing.js.map +1 -0
- package/vendor/protocol/package.json +17 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import { StyleSheet, View } from 'react-native';
|
|
4
|
+
import { Platform, StyleSheet, View } from 'react-native';
|
|
5
|
+
import { CardFade } from "../CardFade.js";
|
|
5
6
|
import { ABSOLUTE_FILL } from "../absoluteFill.js";
|
|
6
7
|
import { TooltipNotch } from "./TooltipNotch.js";
|
|
7
8
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -9,27 +10,66 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
9
10
|
* Tooltip chrome shell: diamond notch + card fill sharing one shadow family.
|
|
10
11
|
*
|
|
11
12
|
* Web draws card and notch as a single silhouette under `filter: drop-shadow`.
|
|
12
|
-
* RN has no silhouette filter
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
13
|
+
* RN has no silhouette filter — on both platforms a view's shadow is derived
|
|
14
|
+
* from that view's own bounds, and the notch hangs at a negative offset
|
|
15
|
+
* *outside* the card's bounds. No shadow cast by the card or by the shell can
|
|
16
|
+
* ever reach it, so the diamond has to cast its own, and the two shadows
|
|
17
|
+
* together trace the card + tip outline.
|
|
18
|
+
*
|
|
19
|
+
* The order is what keeps that honest. A shadow is painted with its own layer,
|
|
20
|
+
* so only a layer drawn *before* the notch may cast a card-sized shadow —
|
|
21
|
+
* otherwise it lands on the exposed tip as a gray band. Hence: shadow layer,
|
|
22
|
+
* then notch, then the fill and seam cover, both silent.
|
|
23
|
+
*
|
|
24
|
+
* iOS gets `shadow*` on the notch (`elevation` is inert there); Android gets
|
|
25
|
+
* `elevation`, which is the only shadow it honors on a rotated view.
|
|
17
26
|
*/
|
|
18
27
|
export function TooltipBubble({
|
|
19
28
|
chrome,
|
|
20
29
|
notchPosition,
|
|
21
30
|
style,
|
|
22
31
|
onLayout,
|
|
23
|
-
children
|
|
32
|
+
children,
|
|
33
|
+
maxHeight,
|
|
34
|
+
showNotch: showNotchProp = true
|
|
24
35
|
}) {
|
|
25
|
-
const showNotch = chrome.notchSize > 0;
|
|
36
|
+
const showNotch = showNotchProp && chrome.notchSize > 0;
|
|
26
37
|
const bordered = chrome.borderWidth > 0;
|
|
38
|
+
// Only bordered themes need the diamond seam cover, to keep the stroke even
|
|
39
|
+
// where the notch meets the card. It is opaque and sits above the fill, so
|
|
40
|
+
// borderless themes must skip it or it paints over the card's own text.
|
|
41
|
+
const showSeamCover = showNotch && bordered;
|
|
42
|
+
// Borderless: a 2pt strip of fill color on the pointer edge covers the iOS
|
|
43
|
+
// hairline where `overflow: hidden` anti-aliases the card against the dim.
|
|
44
|
+
// Inset by the radius so it does not square off the corners. Bordered cards
|
|
45
|
+
// already have a stroke there — painting fill over it would hide the border.
|
|
46
|
+
const notchEdge = showNotch && !bordered ? protrudingNotchEdge(notchPosition) : null;
|
|
27
47
|
// Web paints the notch with border color when bordered, otherwise the card
|
|
28
48
|
// fill. Never use literal `transparent` — that hides the pointer entirely.
|
|
29
49
|
const notchColor = bordered && chrome.borderColor !== 'transparent' ? chrome.borderColor : chrome.backgroundColor;
|
|
30
|
-
// Android draws by elevation, so every layer above the
|
|
50
|
+
// Android draws by elevation, so every layer above the shadow layer has to be
|
|
31
51
|
// raised with it or the opaque shadow layer paints over the card body.
|
|
32
52
|
const elevation = chrome.shadowStyle.elevation ?? 0;
|
|
53
|
+
// Raising a layer on Android also makes it cast its own elevation shadow,
|
|
54
|
+
// painted directly beneath that layer, so anything above the notch has to
|
|
55
|
+
// give its shadow up. `shadowColor: 'transparent'` does that on both
|
|
56
|
+
// platforms — it is the one shadow prop Android honors (API 28+), and on iOS
|
|
57
|
+
// it cancels the shadow outright — so this needs no platform split.
|
|
58
|
+
const raisedSilent = {
|
|
59
|
+
elevation,
|
|
60
|
+
shadowColor: 'transparent'
|
|
61
|
+
};
|
|
62
|
+
// The one caster above the shadow layer. iOS reads this diamond's own
|
|
63
|
+
// bounds, and the 45° layer rotation carries the shadow with it, so the tip
|
|
64
|
+
// gets a shadow shaped like the tip.
|
|
65
|
+
const notchShadow = Platform.OS === 'ios' ? {
|
|
66
|
+
shadowColor: chrome.shadowStyle.shadowColor,
|
|
67
|
+
shadowOffset: chrome.shadowStyle.shadowOffset,
|
|
68
|
+
shadowOpacity: chrome.shadowStyle.shadowOpacity,
|
|
69
|
+
shadowRadius: chrome.shadowStyle.shadowRadius
|
|
70
|
+
} : {
|
|
71
|
+
elevation
|
|
72
|
+
};
|
|
33
73
|
const notchProps = {
|
|
34
74
|
notchSize: chrome.notchSize,
|
|
35
75
|
...(notchPosition.top !== undefined ? {
|
|
@@ -45,7 +85,7 @@ export function TooltipBubble({
|
|
|
45
85
|
right: notchPosition.right
|
|
46
86
|
} : {})
|
|
47
87
|
};
|
|
48
|
-
return /*#__PURE__*/_jsxs(
|
|
88
|
+
return /*#__PURE__*/_jsxs(CardFade, {
|
|
49
89
|
testID: "userflow-tooltip-card",
|
|
50
90
|
accessibilityViewIsModal: true,
|
|
51
91
|
pointerEvents: "auto",
|
|
@@ -53,37 +93,106 @@ export function TooltipBubble({
|
|
|
53
93
|
style: [styles.shell, style],
|
|
54
94
|
children: [/*#__PURE__*/_jsx(View, {
|
|
55
95
|
pointerEvents: "none",
|
|
96
|
+
testID: "userflow-tooltip-card-shadow",
|
|
56
97
|
style: [styles.cardShadow, chrome.shadowStyle, {
|
|
57
|
-
elevation: 0,
|
|
58
98
|
borderRadius: chrome.borderRadius,
|
|
59
99
|
backgroundColor: chrome.backgroundColor
|
|
60
100
|
}]
|
|
61
101
|
}), showNotch ? /*#__PURE__*/_jsx(TooltipNotch, {
|
|
62
102
|
...notchProps,
|
|
63
103
|
notchColor: notchColor,
|
|
64
|
-
style: styles.notchLayer
|
|
104
|
+
style: [styles.notchLayer, notchShadow]
|
|
65
105
|
}) : null, /*#__PURE__*/_jsx(View, {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
106
|
+
testID: "userflow-tooltip-card-fill",
|
|
107
|
+
style: [chrome.fillStyle, styles.fill,
|
|
108
|
+
// Keep the opaque rounded skin unclipped so its top edge composites
|
|
109
|
+
// onto this layer instead of the dim. Content still clips inside.
|
|
110
|
+
styles.fillSkin, raisedSilent, maxHeight != null ? {
|
|
111
|
+
maxHeight
|
|
112
|
+
} : null],
|
|
113
|
+
children: /*#__PURE__*/_jsx(View, {
|
|
114
|
+
testID: "userflow-tooltip-card-fill-clip",
|
|
115
|
+
style: [styles.fillClip, {
|
|
116
|
+
borderRadius: chrome.borderRadius
|
|
117
|
+
}, maxHeight != null ? {
|
|
118
|
+
maxHeight
|
|
119
|
+
} : null],
|
|
120
|
+
children: children
|
|
121
|
+
})
|
|
122
|
+
}), notchEdge ? /*#__PURE__*/_jsx(View, {
|
|
123
|
+
pointerEvents: "none",
|
|
124
|
+
testID: "userflow-tooltip-notch-edge-cap",
|
|
125
|
+
style: [styles.notchSeamCover, edgeCapStyle(notchEdge, chrome.borderRadius, chrome.backgroundColor), raisedSilent]
|
|
126
|
+
}) : null, showSeamCover ? /*#__PURE__*/_jsx(TooltipNotch, {
|
|
71
127
|
...notchProps,
|
|
72
128
|
notchColor: chrome.backgroundColor,
|
|
73
129
|
inset: Math.max(chrome.borderWidth, 1),
|
|
74
|
-
style: [styles.notchSeamCover,
|
|
75
|
-
elevation
|
|
76
|
-
}],
|
|
130
|
+
style: [styles.notchSeamCover, raisedSilent],
|
|
77
131
|
testID: "userflow-tooltip-notch-seam"
|
|
78
132
|
}) : null]
|
|
79
133
|
});
|
|
80
134
|
}
|
|
135
|
+
|
|
136
|
+
/** Pixel-thick cover for the fill hairline on the pointer's card edge. */
|
|
137
|
+
const EDGE_CAP_THICKNESS = 2;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* The pointer hangs *outside* the card, so its edge offset is negative.
|
|
141
|
+
* Along-edge alignment (the other axis) is positive and must be ignored.
|
|
142
|
+
*/
|
|
143
|
+
function protrudingNotchEdge(position) {
|
|
144
|
+
if (position.top != null && position.top < 0) return 'top';
|
|
145
|
+
if (position.bottom != null && position.bottom < 0) return 'bottom';
|
|
146
|
+
if (position.left != null && position.left < 0) return 'left';
|
|
147
|
+
if (position.right != null && position.right < 0) return 'right';
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
function edgeCapStyle(edge, borderRadius, backgroundColor) {
|
|
151
|
+
const inset = borderRadius;
|
|
152
|
+
const along = {
|
|
153
|
+
position: 'absolute',
|
|
154
|
+
backgroundColor
|
|
155
|
+
};
|
|
156
|
+
switch (edge) {
|
|
157
|
+
case 'top':
|
|
158
|
+
return {
|
|
159
|
+
...along,
|
|
160
|
+
top: 0,
|
|
161
|
+
left: inset,
|
|
162
|
+
right: inset,
|
|
163
|
+
height: EDGE_CAP_THICKNESS
|
|
164
|
+
};
|
|
165
|
+
case 'bottom':
|
|
166
|
+
return {
|
|
167
|
+
...along,
|
|
168
|
+
bottom: 0,
|
|
169
|
+
left: inset,
|
|
170
|
+
right: inset,
|
|
171
|
+
height: EDGE_CAP_THICKNESS
|
|
172
|
+
};
|
|
173
|
+
case 'left':
|
|
174
|
+
return {
|
|
175
|
+
...along,
|
|
176
|
+
left: 0,
|
|
177
|
+
top: inset,
|
|
178
|
+
bottom: inset,
|
|
179
|
+
width: EDGE_CAP_THICKNESS
|
|
180
|
+
};
|
|
181
|
+
case 'right':
|
|
182
|
+
return {
|
|
183
|
+
...along,
|
|
184
|
+
right: 0,
|
|
185
|
+
top: inset,
|
|
186
|
+
bottom: inset,
|
|
187
|
+
width: EDGE_CAP_THICKNESS
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
}
|
|
81
191
|
const styles = StyleSheet.create({
|
|
82
192
|
shell: {
|
|
83
193
|
position: 'relative',
|
|
84
194
|
backgroundColor: 'transparent',
|
|
85
195
|
overflow: 'visible',
|
|
86
|
-
maxHeight: '80%',
|
|
87
196
|
flexShrink: 1
|
|
88
197
|
},
|
|
89
198
|
cardShadow: {
|
|
@@ -94,7 +203,19 @@ const styles = StyleSheet.create({
|
|
|
94
203
|
zIndex: 1
|
|
95
204
|
},
|
|
96
205
|
fill: {
|
|
97
|
-
zIndex: 2
|
|
206
|
+
zIndex: 2,
|
|
207
|
+
minHeight: 0,
|
|
208
|
+
flexShrink: 1
|
|
209
|
+
},
|
|
210
|
+
fillSkin: {
|
|
211
|
+
overflow: 'visible'
|
|
212
|
+
},
|
|
213
|
+
fillClip: {
|
|
214
|
+
overflow: 'hidden',
|
|
215
|
+
minHeight: 0,
|
|
216
|
+
flexShrink: 1
|
|
217
|
+
// Do not set flexGrow / flex: 1. The card sizes to its content; grow in an
|
|
218
|
+
// auto-height parent collapses the fill to 0 and leaves only the notch.
|
|
98
219
|
},
|
|
99
220
|
notchSeamCover: {
|
|
100
221
|
zIndex: 3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","ABSOLUTE_FILL","TooltipNotch","jsx","_jsx","jsxs","_jsxs","TooltipBubble","chrome","notchPosition","style","onLayout","children","showNotch","notchSize","bordered","borderWidth","notchColor","borderColor","backgroundColor","elevation","shadowStyle","notchProps","top","undefined","bottom","left","right","testID","accessibilityViewIsModal","pointerEvents","styles","shell","cardShadow","borderRadius","notchLayer","fillStyle","fill","inset","Math","max","
|
|
1
|
+
{"version":3,"names":["React","Platform","StyleSheet","View","CardFade","ABSOLUTE_FILL","TooltipNotch","jsx","_jsx","jsxs","_jsxs","TooltipBubble","chrome","notchPosition","style","onLayout","children","maxHeight","showNotch","showNotchProp","notchSize","bordered","borderWidth","showSeamCover","notchEdge","protrudingNotchEdge","notchColor","borderColor","backgroundColor","elevation","shadowStyle","raisedSilent","shadowColor","notchShadow","OS","shadowOffset","shadowOpacity","shadowRadius","notchProps","top","undefined","bottom","left","right","testID","accessibilityViewIsModal","pointerEvents","styles","shell","cardShadow","borderRadius","notchLayer","fillStyle","fill","fillSkin","fillClip","notchSeamCover","edgeCapStyle","inset","Math","max","EDGE_CAP_THICKNESS","position","edge","along","height","width","create","overflow","flexShrink","zIndex","minHeight"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipBubble.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,18 +3,61 @@
|
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { Dimensions, StyleSheet, View } from 'react-native';
|
|
5
5
|
import { ABSOLUTE_FILL } from "../absoluteFill.js";
|
|
6
|
+
import { getSurfaceInteractionBlocking } from "../surfaceInteractionConfig.js";
|
|
6
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
/** No hole yet: collapses the top/left/right bands, leaving one full-screen band. */
|
|
9
|
+
const NO_HOLE = {
|
|
10
|
+
top: 0,
|
|
11
|
+
left: 0,
|
|
12
|
+
width: 0,
|
|
13
|
+
height: 0
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Intersect the hole with the screen, or drop it when the target is off-screen.
|
|
18
|
+
*
|
|
19
|
+
* Targets are measured before `scrollAnchorIntoView` has brought them in, so an
|
|
20
|
+
* unclamped rect can sit above the viewport. The bands then disagree — the top
|
|
21
|
+
* one collapses while the side ones still paint at y=0 — and leave phantom dim
|
|
22
|
+
* blocks pinned to the top edge that reflow as the scroll settles.
|
|
23
|
+
*/
|
|
24
|
+
function clampToScreen(rect, screenWidth, screenHeight) {
|
|
25
|
+
if (rect == null) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
const top = Math.max(0, rect.top);
|
|
29
|
+
const left = Math.max(0, rect.left);
|
|
30
|
+
const bottom = Math.min(screenHeight, rect.top + rect.height);
|
|
31
|
+
const right = Math.min(screenWidth, rect.left + rect.width);
|
|
32
|
+
if (bottom <= top || right <= left) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
top,
|
|
37
|
+
left,
|
|
38
|
+
width: right - left,
|
|
39
|
+
height: bottom - top
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
7
43
|
/**
|
|
8
44
|
* Four-block dimmed cutout around the padded target (web tooltip backdrop).
|
|
9
45
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
46
|
+
* When surface interaction blocking is enabled (default), dim bands use
|
|
47
|
+
* `pointerEvents="auto"` so taps outside the hole are swallowed. The target
|
|
48
|
+
* hole stays open for guided-tour taps unless `targetBlocked` seals it.
|
|
49
|
+
*
|
|
50
|
+
* When blocking is disabled (`Userflow.setSurfaceInteractionBlocking(false)`),
|
|
51
|
+
* bands revert to `pointerEvents="none"` so the host app stays scrollable and
|
|
52
|
+
* tappable — legacy pass-through behavior. The `targetBlocked` hole seal is
|
|
53
|
+
* unchanged and still mounts when set.
|
|
14
54
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
55
|
+
* The bands are opaque and share one translucent parent, so the dim is composited
|
|
56
|
+
* once. Per-band opacity looks identical while the tiles truly abut, but any frame
|
|
57
|
+
* where two of them overlap darkens twice: going from no hole to a measured one
|
|
58
|
+
* grows the top band while the bottom band still covers the screen, which painted a
|
|
59
|
+
* doubled rectangle over the upper screen until the geometry settled. Group opacity
|
|
60
|
+
* makes overlap invisible instead of relying on the four rects always agreeing.
|
|
18
61
|
*/
|
|
19
62
|
export function TooltipCutout({
|
|
20
63
|
targetRect,
|
|
@@ -26,59 +69,69 @@ export function TooltipCutout({
|
|
|
26
69
|
width: sw,
|
|
27
70
|
height: sh
|
|
28
71
|
} = Dimensions.get('window');
|
|
72
|
+
const hole = clampToScreen(targetRect, sw, sh);
|
|
29
73
|
const {
|
|
30
74
|
top,
|
|
31
75
|
left,
|
|
32
76
|
width,
|
|
33
77
|
height
|
|
34
|
-
} =
|
|
78
|
+
} = hole ?? NO_HOLE;
|
|
35
79
|
const right = left + width;
|
|
36
80
|
const bottom = top + height;
|
|
37
81
|
const blockStyle = {
|
|
38
|
-
backgroundColor: backdropColor
|
|
39
|
-
opacity: backdropOpacity
|
|
82
|
+
backgroundColor: backdropColor
|
|
40
83
|
};
|
|
84
|
+
const blockInteraction = getSurfaceInteractionBlocking();
|
|
85
|
+
const bandPointerEvents = blockInteraction ? 'auto' : 'none';
|
|
86
|
+
const dimPointerEvents = blockInteraction ? 'box-none' : 'none';
|
|
41
87
|
return /*#__PURE__*/_jsxs(View, {
|
|
42
88
|
style: ABSOLUTE_FILL,
|
|
43
89
|
pointerEvents: "box-none",
|
|
44
90
|
testID: "userflow-tooltip-cutout",
|
|
45
|
-
children: [/*#__PURE__*/
|
|
46
|
-
pointerEvents:
|
|
47
|
-
testID: "userflow-tooltip-cutout-
|
|
48
|
-
style: [
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
91
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
92
|
+
pointerEvents: dimPointerEvents,
|
|
93
|
+
testID: "userflow-tooltip-cutout-dim",
|
|
94
|
+
style: [ABSOLUTE_FILL, {
|
|
95
|
+
opacity: backdropOpacity
|
|
96
|
+
}],
|
|
97
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
98
|
+
pointerEvents: bandPointerEvents,
|
|
99
|
+
testID: "userflow-tooltip-cutout-top",
|
|
100
|
+
style: [styles.block, blockStyle, {
|
|
101
|
+
top: 0,
|
|
102
|
+
left: 0,
|
|
103
|
+
width: sw,
|
|
104
|
+
height: Math.max(0, top)
|
|
105
|
+
}]
|
|
106
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
107
|
+
pointerEvents: bandPointerEvents,
|
|
108
|
+
testID: "userflow-tooltip-cutout-left",
|
|
109
|
+
style: [styles.block, blockStyle, {
|
|
110
|
+
top: Math.max(0, top),
|
|
111
|
+
left: 0,
|
|
112
|
+
width: Math.max(0, left),
|
|
113
|
+
height: Math.max(0, height)
|
|
114
|
+
}]
|
|
115
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
116
|
+
pointerEvents: bandPointerEvents,
|
|
117
|
+
testID: "userflow-tooltip-cutout-right",
|
|
118
|
+
style: [styles.block, blockStyle, {
|
|
119
|
+
top: Math.max(0, top),
|
|
120
|
+
left: Math.max(0, right),
|
|
121
|
+
width: Math.max(0, sw - right),
|
|
122
|
+
height: Math.max(0, height)
|
|
123
|
+
}]
|
|
124
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
125
|
+
pointerEvents: bandPointerEvents,
|
|
126
|
+
testID: "userflow-tooltip-cutout-bottom",
|
|
127
|
+
style: [styles.block, blockStyle, {
|
|
128
|
+
top: Math.max(0, bottom),
|
|
129
|
+
left: 0,
|
|
130
|
+
width: sw,
|
|
131
|
+
height: Math.max(0, sh - bottom)
|
|
132
|
+
}]
|
|
133
|
+
})]
|
|
134
|
+
}), targetBlocked && hole != null ? /*#__PURE__*/_jsx(View, {
|
|
82
135
|
pointerEvents: "auto",
|
|
83
136
|
testID: "userflow-tooltip-target-block",
|
|
84
137
|
style: [styles.block, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Dimensions","StyleSheet","View","ABSOLUTE_FILL","jsx","_jsx","jsxs","_jsxs","
|
|
1
|
+
{"version":3,"names":["React","Dimensions","StyleSheet","View","ABSOLUTE_FILL","getSurfaceInteractionBlocking","jsx","_jsx","jsxs","_jsxs","NO_HOLE","top","left","width","height","clampToScreen","rect","screenWidth","screenHeight","Math","max","bottom","min","right","TooltipCutout","targetRect","backdropColor","backdropOpacity","targetBlocked","sw","sh","get","hole","blockStyle","backgroundColor","blockInteraction","bandPointerEvents","dimPointerEvents","style","pointerEvents","testID","children","opacity","styles","block","create","position"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipCutout.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Platform, StyleSheet, View } from 'react-native';
|
|
5
|
+
import { isHighlightVisible } from "../resolveHighlightChrome.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
/**
|
|
8
|
+
* Mobile focus ring for the tooltip hole (mockup: thin brand stroke + soft
|
|
9
|
+
* halo). Web uses one CSS `box-shadow`; RN approximates that with a 2px
|
|
10
|
+
* stroke, one translucent band, and a real blur where the platform can
|
|
11
|
+
* paint a colored shadow (`shadow*` on iOS, `boxShadow` on RN 0.76+).
|
|
12
|
+
*
|
|
13
|
+
* Ring chrome is passed as a style array so `StyleSheet.create` numeric IDs
|
|
14
|
+
* are not object-spread (that drops `position: 'absolute'` on device).
|
|
15
|
+
*/
|
|
16
|
+
export function TooltipHighlight({
|
|
17
|
+
targetRect,
|
|
18
|
+
chrome
|
|
19
|
+
}) {
|
|
20
|
+
if (!isHighlightVisible(chrome)) return null;
|
|
21
|
+
const rings = buildHighlightRings(targetRect, chrome);
|
|
22
|
+
if (rings.length === 0) return null;
|
|
23
|
+
return /*#__PURE__*/_jsx(View, {
|
|
24
|
+
pointerEvents: "none",
|
|
25
|
+
testID: "userflow-tooltip-highlight",
|
|
26
|
+
children: rings.map(ring => /*#__PURE__*/_jsx(View, {
|
|
27
|
+
pointerEvents: "none",
|
|
28
|
+
testID: ring.testID,
|
|
29
|
+
style: ring.style
|
|
30
|
+
}, ring.testID))
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export function buildHighlightRings(rect, chrome) {
|
|
34
|
+
if (rect.width <= 0 || rect.height <= 0) return [];
|
|
35
|
+
const inset = chrome.type === 'INSIDE';
|
|
36
|
+
const rings = [];
|
|
37
|
+
let consumed = 0;
|
|
38
|
+
if (chrome.strokeWidth > 0) {
|
|
39
|
+
const frame = ringFrame(rect, chrome.strokeWidth, consumed, inset, chrome.borderRadius);
|
|
40
|
+
if (frame) {
|
|
41
|
+
rings.push({
|
|
42
|
+
testID: 'userflow-tooltip-highlight-stroke',
|
|
43
|
+
style: [styles.ring, frame, {
|
|
44
|
+
borderWidth: chrome.strokeWidth,
|
|
45
|
+
borderColor: chrome.color,
|
|
46
|
+
...strokeGlow(chrome)
|
|
47
|
+
}]
|
|
48
|
+
});
|
|
49
|
+
consumed += chrome.strokeWidth;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (chrome.radius > 0) {
|
|
53
|
+
const frame = ringFrame(rect, chrome.radius, consumed, inset, chrome.borderRadius);
|
|
54
|
+
if (frame) {
|
|
55
|
+
rings.push({
|
|
56
|
+
testID: 'userflow-tooltip-highlight-glow',
|
|
57
|
+
style: [styles.ring, frame, {
|
|
58
|
+
borderWidth: chrome.radius,
|
|
59
|
+
borderColor: chrome.glowColor
|
|
60
|
+
}]
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return rings;
|
|
65
|
+
}
|
|
66
|
+
function strokeGlow(chrome) {
|
|
67
|
+
const blur = Math.max(chrome.radius, 6);
|
|
68
|
+
const glow = {
|
|
69
|
+
shadowColor: chrome.color,
|
|
70
|
+
shadowOffset: {
|
|
71
|
+
width: 0,
|
|
72
|
+
height: 0
|
|
73
|
+
},
|
|
74
|
+
shadowOpacity: Math.min(0.45, chrome.opacity),
|
|
75
|
+
shadowRadius: blur
|
|
76
|
+
};
|
|
77
|
+
if (Platform?.OS !== 'ios') {
|
|
78
|
+
glow.boxShadow = `0px 0px ${blur}px 0px ${chrome.glowColor}`;
|
|
79
|
+
}
|
|
80
|
+
return glow;
|
|
81
|
+
}
|
|
82
|
+
function ringFrame(rect, borderWidth, alreadyConsumed, inset, cornerRadius) {
|
|
83
|
+
if (borderWidth <= 0) return null;
|
|
84
|
+
const {
|
|
85
|
+
top,
|
|
86
|
+
left,
|
|
87
|
+
width,
|
|
88
|
+
height
|
|
89
|
+
} = rect;
|
|
90
|
+
if (inset) {
|
|
91
|
+
const nextWidth = width - alreadyConsumed * 2;
|
|
92
|
+
const nextHeight = height - alreadyConsumed * 2;
|
|
93
|
+
if (nextWidth < borderWidth * 2 || nextHeight < borderWidth * 2) return null;
|
|
94
|
+
return {
|
|
95
|
+
top: top + alreadyConsumed,
|
|
96
|
+
left: left + alreadyConsumed,
|
|
97
|
+
width: nextWidth,
|
|
98
|
+
height: nextHeight,
|
|
99
|
+
borderRadius: Math.max(0, cornerRadius - alreadyConsumed)
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const outset = alreadyConsumed + borderWidth;
|
|
103
|
+
return {
|
|
104
|
+
top: top - outset,
|
|
105
|
+
left: left - outset,
|
|
106
|
+
width: width + outset * 2,
|
|
107
|
+
height: height + outset * 2,
|
|
108
|
+
borderRadius: cornerRadius + outset
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const styles = StyleSheet.create({
|
|
112
|
+
ring: {
|
|
113
|
+
position: 'absolute',
|
|
114
|
+
backgroundColor: 'transparent',
|
|
115
|
+
overflow: 'visible'
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=TooltipHighlight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Platform","StyleSheet","View","isHighlightVisible","jsx","_jsx","TooltipHighlight","targetRect","chrome","rings","buildHighlightRings","length","pointerEvents","testID","children","map","ring","style","rect","width","height","inset","type","consumed","strokeWidth","frame","ringFrame","borderRadius","push","styles","borderWidth","borderColor","color","strokeGlow","radius","glowColor","blur","Math","max","glow","shadowColor","shadowOffset","shadowOpacity","min","opacity","shadowRadius","OS","boxShadow","alreadyConsumed","cornerRadius","top","left","nextWidth","nextHeight","outset","create","position","backgroundColor","overflow"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipHighlight.tsx"],"mappings":"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","ignoreList":[]}
|