@userflow-tech/react-native 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/README.md +41 -33
  2. package/docs/troubleshooting.md +38 -38
  3. package/expo-plugin/hostDependencyWarnings.d.ts +5 -5
  4. package/expo-plugin/hostDependencyWarnings.js +7 -7
  5. package/expo-plugin/hostDependencyWarnings.js.map +1 -1
  6. package/lib/commonjs/anchors/AnchorRegistry.js +5 -0
  7. package/lib/commonjs/anchors/AnchorRegistry.js.map +1 -1
  8. package/lib/commonjs/anchors/ScrollContainerRegistry.js +8 -0
  9. package/lib/commonjs/anchors/ScrollContainerRegistry.js.map +1 -1
  10. package/lib/commonjs/anchors/fiber/presentedModal.js +215 -0
  11. package/lib/commonjs/anchors/fiber/presentedModal.js.map +1 -0
  12. package/lib/commonjs/anchors/fiber/touchTargetFiber.js +1 -0
  13. package/lib/commonjs/anchors/fiber/touchTargetFiber.js.map +1 -1
  14. package/lib/commonjs/anchors/fiber/visibleRect.js +12 -3
  15. package/lib/commonjs/anchors/fiber/visibleRect.js.map +1 -1
  16. package/lib/commonjs/anchors/useUserflowAnchor.js.map +1 -1
  17. package/lib/commonjs/anchors/useUserflowScrollContainer.js.map +1 -1
  18. package/lib/commonjs/authoring/ElementPickerOverlay.js +197 -138
  19. package/lib/commonjs/authoring/ElementPickerOverlay.js.map +1 -1
  20. package/lib/commonjs/authoring/hitTest.js +67 -10
  21. package/lib/commonjs/authoring/hitTest.js.map +1 -1
  22. package/lib/commonjs/authoring/hostAtPoint.js +45 -21
  23. package/lib/commonjs/authoring/hostAtPoint.js.map +1 -1
  24. package/lib/commonjs/content/RichContentRenderer.js +19 -7
  25. package/lib/commonjs/content/RichContentRenderer.js.map +1 -1
  26. package/lib/commonjs/deepLinking.js.map +1 -1
  27. package/lib/commonjs/deviceContext.js +39 -19
  28. package/lib/commonjs/deviceContext.js.map +1 -1
  29. package/lib/commonjs/index.js +11 -5
  30. package/lib/commonjs/index.js.map +1 -1
  31. package/lib/commonjs/installCheck.js +3 -3
  32. package/lib/commonjs/installCheck.js.map +1 -1
  33. package/lib/commonjs/lifecycle.js +2 -0
  34. package/lib/commonjs/lifecycle.js.map +1 -1
  35. package/lib/commonjs/pairing/PairingController.js.map +1 -1
  36. package/lib/commonjs/runtime/UserflowOverlay.js +17 -13
  37. package/lib/commonjs/runtime/UserflowOverlay.js.map +1 -1
  38. package/lib/commonjs/runtime/WindowOverlayHost.js +83 -0
  39. package/lib/commonjs/runtime/WindowOverlayHost.js.map +1 -0
  40. package/lib/commonjs/runtime/userflowCore.js +9 -2
  41. package/lib/commonjs/runtime/userflowCore.js.map +1 -1
  42. package/lib/commonjs/surfaces/TooltipSurface.js +109 -51
  43. package/lib/commonjs/surfaces/TooltipSurface.js.map +1 -1
  44. package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js +6 -6
  45. package/lib/commonjs/surfaces/tooltip/TooltipHighlight.js.map +1 -1
  46. package/lib/commonjs/surfaces/tooltip/targetOrigin.js +74 -0
  47. package/lib/commonjs/surfaces/tooltip/targetOrigin.js.map +1 -0
  48. package/lib/commonjs/version.js +1 -1
  49. package/lib/module/anchors/AnchorRegistry.js +5 -0
  50. package/lib/module/anchors/AnchorRegistry.js.map +1 -1
  51. package/lib/module/anchors/ScrollContainerRegistry.js +8 -0
  52. package/lib/module/anchors/ScrollContainerRegistry.js.map +1 -1
  53. package/lib/module/anchors/fiber/presentedModal.js +206 -0
  54. package/lib/module/anchors/fiber/presentedModal.js.map +1 -0
  55. package/lib/module/anchors/fiber/touchTargetFiber.js +1 -0
  56. package/lib/module/anchors/fiber/touchTargetFiber.js.map +1 -1
  57. package/lib/module/anchors/fiber/visibleRect.js +12 -3
  58. package/lib/module/anchors/fiber/visibleRect.js.map +1 -1
  59. package/lib/module/anchors/useUserflowAnchor.js.map +1 -1
  60. package/lib/module/anchors/useUserflowScrollContainer.js.map +1 -1
  61. package/lib/module/authoring/ElementPickerOverlay.js +199 -140
  62. package/lib/module/authoring/ElementPickerOverlay.js.map +1 -1
  63. package/lib/module/authoring/hitTest.js +67 -11
  64. package/lib/module/authoring/hitTest.js.map +1 -1
  65. package/lib/module/authoring/hostAtPoint.js +45 -21
  66. package/lib/module/authoring/hostAtPoint.js.map +1 -1
  67. package/lib/module/content/RichContentRenderer.js +19 -7
  68. package/lib/module/content/RichContentRenderer.js.map +1 -1
  69. package/lib/module/deepLinking.js.map +1 -1
  70. package/lib/module/deviceContext.js +38 -17
  71. package/lib/module/deviceContext.js.map +1 -1
  72. package/lib/module/index.js +11 -5
  73. package/lib/module/index.js.map +1 -1
  74. package/lib/module/installCheck.js +3 -3
  75. package/lib/module/installCheck.js.map +1 -1
  76. package/lib/module/lifecycle.js +2 -0
  77. package/lib/module/lifecycle.js.map +1 -1
  78. package/lib/module/pairing/PairingController.js.map +1 -1
  79. package/lib/module/runtime/UserflowOverlay.js +18 -14
  80. package/lib/module/runtime/UserflowOverlay.js.map +1 -1
  81. package/lib/module/runtime/WindowOverlayHost.js +76 -0
  82. package/lib/module/runtime/WindowOverlayHost.js.map +1 -0
  83. package/lib/module/runtime/userflowCore.js +9 -2
  84. package/lib/module/runtime/userflowCore.js.map +1 -1
  85. package/lib/module/surfaces/TooltipSurface.js +109 -51
  86. package/lib/module/surfaces/TooltipSurface.js.map +1 -1
  87. package/lib/module/surfaces/tooltip/TooltipHighlight.js +6 -6
  88. package/lib/module/surfaces/tooltip/TooltipHighlight.js.map +1 -1
  89. package/lib/module/surfaces/tooltip/targetOrigin.js +67 -0
  90. package/lib/module/surfaces/tooltip/targetOrigin.js.map +1 -0
  91. package/lib/module/version.js +1 -1
  92. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts +7 -0
  93. package/lib/typescript/commonjs/src/anchors/AnchorRegistry.d.ts.map +1 -1
  94. package/lib/typescript/commonjs/src/anchors/ScrollContainerRegistry.d.ts +11 -2
  95. package/lib/typescript/commonjs/src/anchors/ScrollContainerRegistry.d.ts.map +1 -1
  96. package/lib/typescript/commonjs/src/anchors/fiber/presentedModal.d.ts +45 -0
  97. package/lib/typescript/commonjs/src/anchors/fiber/presentedModal.d.ts.map +1 -0
  98. package/lib/typescript/commonjs/src/anchors/fiber/visibleRect.d.ts +5 -2
  99. package/lib/typescript/commonjs/src/anchors/fiber/visibleRect.d.ts.map +1 -1
  100. package/lib/typescript/commonjs/src/anchors/useUserflowAnchor.d.ts +2 -2
  101. package/lib/typescript/commonjs/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  102. package/lib/typescript/commonjs/src/anchors/useUserflowScrollContainer.d.ts +3 -2
  103. package/lib/typescript/commonjs/src/anchors/useUserflowScrollContainer.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts +4 -0
  105. package/lib/typescript/commonjs/src/authoring/ElementPickerOverlay.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts +25 -2
  107. package/lib/typescript/commonjs/src/authoring/hitTest.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/src/authoring/hostAtPoint.d.ts +6 -1
  109. package/lib/typescript/commonjs/src/authoring/hostAtPoint.d.ts.map +1 -1
  110. package/lib/typescript/commonjs/src/deepLinking.d.ts +1 -1
  111. package/lib/typescript/commonjs/src/deepLinking.d.ts.map +1 -1
  112. package/lib/typescript/commonjs/src/deviceContext.d.ts +14 -5
  113. package/lib/typescript/commonjs/src/deviceContext.d.ts.map +1 -1
  114. package/lib/typescript/commonjs/src/index.d.ts +11 -5
  115. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  116. package/lib/typescript/commonjs/src/installCheck.d.ts +2 -2
  117. package/lib/typescript/commonjs/src/installCheck.d.ts.map +1 -1
  118. package/lib/typescript/commonjs/src/lifecycle.d.ts +1 -0
  119. package/lib/typescript/commonjs/src/lifecycle.d.ts.map +1 -1
  120. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts +1 -1
  121. package/lib/typescript/commonjs/src/pairing/PairingController.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/src/runtime/UserflowOverlay.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/src/runtime/WindowOverlayHost.d.ts +34 -0
  124. package/lib/typescript/commonjs/src/runtime/WindowOverlayHost.d.ts.map +1 -0
  125. package/lib/typescript/commonjs/src/runtime/userflowCore.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/src/surfaces/TooltipSurface.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/src/surfaces/tooltip/targetOrigin.d.ts +26 -0
  128. package/lib/typescript/commonjs/src/surfaces/tooltip/targetOrigin.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/src/version.d.ts +1 -1
  130. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts +7 -0
  131. package/lib/typescript/module/src/anchors/AnchorRegistry.d.ts.map +1 -1
  132. package/lib/typescript/module/src/anchors/ScrollContainerRegistry.d.ts +11 -2
  133. package/lib/typescript/module/src/anchors/ScrollContainerRegistry.d.ts.map +1 -1
  134. package/lib/typescript/module/src/anchors/fiber/presentedModal.d.ts +45 -0
  135. package/lib/typescript/module/src/anchors/fiber/presentedModal.d.ts.map +1 -0
  136. package/lib/typescript/module/src/anchors/fiber/visibleRect.d.ts +5 -2
  137. package/lib/typescript/module/src/anchors/fiber/visibleRect.d.ts.map +1 -1
  138. package/lib/typescript/module/src/anchors/useUserflowAnchor.d.ts +2 -2
  139. package/lib/typescript/module/src/anchors/useUserflowAnchor.d.ts.map +1 -1
  140. package/lib/typescript/module/src/anchors/useUserflowScrollContainer.d.ts +3 -2
  141. package/lib/typescript/module/src/anchors/useUserflowScrollContainer.d.ts.map +1 -1
  142. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts +4 -0
  143. package/lib/typescript/module/src/authoring/ElementPickerOverlay.d.ts.map +1 -1
  144. package/lib/typescript/module/src/authoring/hitTest.d.ts +25 -2
  145. package/lib/typescript/module/src/authoring/hitTest.d.ts.map +1 -1
  146. package/lib/typescript/module/src/authoring/hostAtPoint.d.ts +6 -1
  147. package/lib/typescript/module/src/authoring/hostAtPoint.d.ts.map +1 -1
  148. package/lib/typescript/module/src/deepLinking.d.ts +1 -1
  149. package/lib/typescript/module/src/deepLinking.d.ts.map +1 -1
  150. package/lib/typescript/module/src/deviceContext.d.ts +14 -5
  151. package/lib/typescript/module/src/deviceContext.d.ts.map +1 -1
  152. package/lib/typescript/module/src/index.d.ts +11 -5
  153. package/lib/typescript/module/src/index.d.ts.map +1 -1
  154. package/lib/typescript/module/src/installCheck.d.ts +2 -2
  155. package/lib/typescript/module/src/installCheck.d.ts.map +1 -1
  156. package/lib/typescript/module/src/lifecycle.d.ts +1 -0
  157. package/lib/typescript/module/src/lifecycle.d.ts.map +1 -1
  158. package/lib/typescript/module/src/pairing/PairingController.d.ts +1 -1
  159. package/lib/typescript/module/src/pairing/PairingController.d.ts.map +1 -1
  160. package/lib/typescript/module/src/runtime/UserflowOverlay.d.ts.map +1 -1
  161. package/lib/typescript/module/src/runtime/WindowOverlayHost.d.ts +34 -0
  162. package/lib/typescript/module/src/runtime/WindowOverlayHost.d.ts.map +1 -0
  163. package/lib/typescript/module/src/runtime/userflowCore.d.ts.map +1 -1
  164. package/lib/typescript/module/src/surfaces/TooltipSurface.d.ts.map +1 -1
  165. package/lib/typescript/module/src/surfaces/tooltip/targetOrigin.d.ts +26 -0
  166. package/lib/typescript/module/src/surfaces/tooltip/targetOrigin.d.ts.map +1 -0
  167. package/lib/typescript/module/src/version.d.ts +1 -1
  168. package/package.json +5 -4
  169. package/src/anchors/AnchorRegistry.ts +8 -0
  170. package/src/anchors/ScrollContainerRegistry.ts +15 -3
  171. package/src/anchors/fiber/presentedModal.ts +203 -0
  172. package/src/anchors/fiber/touchTargetFiber.ts +2 -1
  173. package/src/anchors/fiber/visibleRect.ts +12 -3
  174. package/src/anchors/useUserflowAnchor.ts +4 -5
  175. package/src/anchors/useUserflowScrollContainer.ts +5 -4
  176. package/src/authoring/ElementPickerOverlay.tsx +242 -166
  177. package/src/authoring/hitTest.ts +88 -13
  178. package/src/authoring/hostAtPoint.ts +67 -21
  179. package/src/content/RichContentRenderer.tsx +11 -9
  180. package/src/deepLinking.ts +2 -1
  181. package/src/deviceContext.ts +50 -14
  182. package/src/index.ts +11 -5
  183. package/src/installCheck.ts +3 -3
  184. package/src/lifecycle.ts +2 -1
  185. package/src/pairing/PairingController.ts +2 -1
  186. package/src/runtime/UserflowOverlay.tsx +29 -21
  187. package/src/runtime/WindowOverlayHost.tsx +95 -0
  188. package/src/runtime/userflowCore.ts +8 -2
  189. package/src/surfaces/TooltipSurface.tsx +103 -45
  190. package/src/surfaces/tooltip/TooltipHighlight.tsx +3 -5
  191. package/src/surfaces/tooltip/targetOrigin.ts +74 -0
  192. package/src/version.ts +1 -1
  193. package/vendor/core/dist/engine/UserflowCore.d.ts +7 -0
  194. package/vendor/core/dist/engine/UserflowCore.d.ts.map +1 -1
  195. package/vendor/core/dist/engine/UserflowCore.js +3 -2
  196. package/vendor/core/dist/engine/UserflowCore.js.map +1 -1
  197. package/vendor/core/dist/transport/phoenix.d.ts +12 -2
  198. package/vendor/core/dist/transport/phoenix.d.ts.map +1 -1
  199. package/vendor/core/dist/transport/phoenix.js +7 -6
  200. package/vendor/core/dist/transport/phoenix.js.map +1 -1
  201. package/vendor/core/dist/version.d.ts +1 -1
  202. package/vendor/core/dist/version.js +1 -1
  203. package/vendor/core/package.json +1 -1
  204. package/vendor/protocol/package.json +1 -1
@@ -71,19 +71,19 @@ function buildHighlightRings(rect, chrome) {
71
71
  }
72
72
  function strokeGlow(chrome) {
73
73
  const blur = Math.max(chrome.radius, 6);
74
- const glow = {
74
+ // Built in one literal: React Native 0.88 types ViewStyle as readonly.
75
+ return {
75
76
  shadowColor: chrome.color,
76
77
  shadowOffset: {
77
78
  width: 0,
78
79
  height: 0
79
80
  },
80
81
  shadowOpacity: Math.min(0.45, chrome.opacity),
81
- shadowRadius: blur
82
+ shadowRadius: blur,
83
+ ...(_reactNative.Platform?.OS !== 'ios' ? {
84
+ boxShadow: `0px 0px ${blur}px 0px ${chrome.glowColor}`
85
+ } : null)
82
86
  };
83
- if (_reactNative.Platform?.OS !== 'ios') {
84
- glow.boxShadow = `0px 0px ${blur}px 0px ${chrome.glowColor}`;
85
- }
86
- return glow;
87
87
  }
88
88
  function ringFrame(rect, borderWidth, alreadyConsumed, inset, cornerRadius) {
89
89
  if (borderWidth <= 0) return null;
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_resolveHighlightChrome","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TooltipHighlight","targetRect","chrome","isHighlightVisible","rings","buildHighlightRings","length","jsx","View","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","Platform","OS","boxShadow","alreadyConsumed","cornerRadius","top","left","nextWidth","nextHeight","outset","StyleSheet","create","position","backgroundColor","overflow"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipHighlight.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_reactNative","_resolveHighlightChrome","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TooltipHighlight","targetRect","chrome","isHighlightVisible","rings","buildHighlightRings","length","jsx","View","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","shadowColor","shadowOffset","shadowOpacity","min","opacity","shadowRadius","Platform","OS","boxShadow","alreadyConsumed","cornerRadius","top","left","nextWidth","nextHeight","outset","StyleSheet","create","position","backgroundColor","overflow"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/TooltipHighlight.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.NO_MODAL_TRUST_MS = void 0;
7
+ exports.locateTargetOrigin = locateTargetOrigin;
8
+ exports.offsetRect = offsetRect;
9
+ exports.resetTargetOriginForTests = resetTargetOriginForTests;
10
+ var _FiberScanRootStore = require("../../anchors/fiber/FiberScanRootStore.js");
11
+ var _presentedModal = require("../../anchors/fiber/presentedModal.js");
12
+ var _fiberAnchorCache = require("../../anchors/fiberAnchorCache.js");
13
+ var _WindowOverlayHost = require("../../runtime/WindowOverlayHost.js");
14
+ const ZERO = {
15
+ x: 0,
16
+ y: 0
17
+ };
18
+
19
+ /**
20
+ * How long "nothing is presented" is trusted on the same screen. The lookup
21
+ * walks the whole fiber tree (1.4ms for 2,200 fibers in a debug build), and
22
+ * an anchored tooltip resolves four times a second. Expo Router and native
23
+ * stack modals change the screen, which skips this wait; a React Native
24
+ * `<Modal>` over the target is noticed within it.
25
+ */
26
+ const NO_MODAL_TRUST_MS = exports.NO_MODAL_TRUST_MS = 1000;
27
+ let noModalSince = null;
28
+
29
+ /**
30
+ * Where a tooltip target's measured rects sit in the window. `done` gets the
31
+ * window position of `(0, 0)` in the target's measure space, or null when the
32
+ * tooltip cannot point at it: a natively presented modal covers the target,
33
+ * or the target is inside a modal that cannot be placed (see
34
+ * `presentedModal.ts`). Also null when the target has no fiber to place.
35
+ *
36
+ * Without the window host, flow chrome is drawn in the root view under any
37
+ * native modal, as before, and `done` runs synchronously with zero.
38
+ */
39
+ function locateTargetOrigin(fiber, done) {
40
+ if (!(0, _WindowOverlayHost.hasWindowOverlayHost)()) {
41
+ done(ZERO);
42
+ return;
43
+ }
44
+ const screenKey = (0, _fiberAnchorCache.getFiberAnchorScreenKey)();
45
+ const now = Date.now();
46
+ if (noModalSince && noModalSince.screenKey === screenKey && now - noModalSince.at < NO_MODAL_TRUST_MS) {
47
+ done(ZERO);
48
+ return;
49
+ }
50
+ (0, _presentedModal.locatePresentedModal)(_FiberScanRootStore.fiberScanRoot.getFiber()).then(modal => {
51
+ noModalSince = modal == null ? {
52
+ at: now,
53
+ screenKey
54
+ } : null;
55
+ done(modal == null ? ZERO : fiber ? (0, _presentedModal.measureOriginOf)(fiber, modal) : null);
56
+ }, () => {
57
+ noModalSince = null;
58
+ done(null);
59
+ });
60
+ }
61
+ function offsetRect(rect, origin) {
62
+ if (origin.x === 0 && origin.y === 0) return rect;
63
+ return {
64
+ ...rect,
65
+ x: rect.x + origin.x,
66
+ y: rect.y + origin.y
67
+ };
68
+ }
69
+
70
+ /** @internal Forgets the cached "nothing is presented" between tests. */
71
+ function resetTargetOriginForTests() {
72
+ noModalSince = null;
73
+ }
74
+ //# sourceMappingURL=targetOrigin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_FiberScanRootStore","require","_presentedModal","_fiberAnchorCache","_WindowOverlayHost","ZERO","x","y","NO_MODAL_TRUST_MS","exports","noModalSince","locateTargetOrigin","fiber","done","hasWindowOverlayHost","screenKey","getFiberAnchorScreenKey","now","Date","at","locatePresentedModal","fiberScanRoot","getFiber","then","modal","measureOriginOf","offsetRect","rect","origin","resetTargetOriginForTests"],"sourceRoot":"../../../../src","sources":["surfaces/tooltip/targetOrigin.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AAKA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAIA,MAAMI,IAAW,GAAG;EAAEC,CAAC,EAAE,CAAC;EAAEC,CAAC,EAAE;AAAE,CAAC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,IAAI;AAErC,IAAIE,YAA6D,GAAG,IAAI;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAChCC,KAAsB,EACtBC,IAAoC,EAC9B;EACN,IAAI,CAAC,IAAAC,uCAAoB,EAAC,CAAC,EAAE;IAC3BD,IAAI,CAACR,IAAI,CAAC;IACV;EACF;EACA,MAAMU,SAAS,GAAG,IAAAC,yCAAuB,EAAC,CAAC;EAC3C,MAAMC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC;EACtB,IACEP,YAAY,IACZA,YAAY,CAACK,SAAS,KAAKA,SAAS,IACpCE,GAAG,GAAGP,YAAY,CAACS,EAAE,GAAGX,iBAAiB,EACzC;IACAK,IAAI,CAACR,IAAI,CAAC;IACV;EACF;EACA,IAAAe,oCAAoB,EAACC,iCAAa,CAACC,QAAQ,CAAC,CAAC,CAAC,CAACC,IAAI,CAChDC,KAAK,IAAK;IACTd,YAAY,GAAGc,KAAK,IAAI,IAAI,GAAG;MAAEL,EAAE,EAAEF,GAAG;MAAEF;IAAU,CAAC,GAAG,IAAI;IAC5DF,IAAI,CAACW,KAAK,IAAI,IAAI,GAAGnB,IAAI,GAAGO,KAAK,GAAG,IAAAa,+BAAe,EAACb,KAAK,EAAEY,KAAK,CAAC,GAAG,IAAI,CAAC;EAC3E,CAAC,EACD,MAAM;IACJd,YAAY,GAAG,IAAI;IACnBG,IAAI,CAAC,IAAI,CAAC;EACZ,CACF,CAAC;AACH;AAEO,SAASa,UAAUA,CAACC,IAAU,EAAEC,MAAa,EAAQ;EAC1D,IAAIA,MAAM,CAACtB,CAAC,KAAK,CAAC,IAAIsB,MAAM,CAACrB,CAAC,KAAK,CAAC,EAAE,OAAOoB,IAAI;EACjD,OAAO;IAAE,GAAGA,IAAI;IAAErB,CAAC,EAAEqB,IAAI,CAACrB,CAAC,GAAGsB,MAAM,CAACtB,CAAC;IAAEC,CAAC,EAAEoB,IAAI,CAACpB,CAAC,GAAGqB,MAAM,CAACrB;EAAE,CAAC;AAChE;;AAEA;AACO,SAASsB,yBAAyBA,CAAA,EAAS;EAChDnB,YAAY,GAAG,IAAI;AACrB","ignoreList":[]}
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.SDK_VERSION = void 0;
7
7
  /** Generated by scripts/write-version.mjs — do not edit. */
8
- const SDK_VERSION = exports.SDK_VERSION = '0.6.0';
8
+ const SDK_VERSION = exports.SDK_VERSION = '0.7.0';
9
9
  //# sourceMappingURL=version.js.map
@@ -2,6 +2,11 @@
2
2
 
3
3
  /** Host view that can be measured in window coordinates. */
4
4
 
5
+ /**
6
+ * The view instance an anchor ref receives. Structural rather than `View`,
7
+ * which React Native 0.88 types as a function component, not an instance.
8
+ */
9
+
5
10
  /**
6
11
  * Manual-anchor registry for Phase 3 (WS6). Codeless resolution is Phase 4.
7
12
  * Multiple mounts of the same id keep a set; {@link get} returns the most
@@ -1 +1 @@
1
- {"version":3,"names":["AnchorRegistry","anchors","Map","listeners","Set","register","id","host","set","get","add","emit","unregister","delete","size","last","getAll","isAmbiguous","subscribe","listener","clear","anchorRegistry"],"sourceRoot":"../../../src","sources":["anchors/AnchorRegistry.ts"],"mappings":";;AAAA;;AAmBA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,cAAc,CAAC;EACTC,OAAO,GAAG,IAAIC,GAAG,CAA0B,CAAC;EAC5CC,SAAS,GAAG,IAAIC,GAAG,CAAW,CAAC;EAEhDC,QAAQA,CAACC,EAAU,EAAEC,IAAgB,EAAQ;IAC3C,IAAI,CAACD,EAAE,EAAE;IACT,IAAIE,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAC9B,IAAI,CAACE,GAAG,EAAE;MACRA,GAAG,GAAG,IAAIJ,GAAG,CAAC,CAAC;MACf,IAAI,CAACH,OAAO,CAACO,GAAG,CAACF,EAAE,EAAEE,GAAG,CAAC;IAC3B;IACAA,GAAG,CAACE,GAAG,CAACH,IAAI,CAAC;IACb,IAAI,CAACI,IAAI,CAAC,CAAC;EACb;EAEAC,UAAUA,CAACN,EAAU,EAAEC,IAAgB,EAAQ;IAC7C,MAAMC,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,EAAE;IACVA,GAAG,CAACK,MAAM,CAACN,IAAI,CAAC;IAChB,IAAIC,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE;MAClB,IAAI,CAACb,OAAO,CAACY,MAAM,CAACP,EAAE,CAAC;IACzB;IACA,IAAI,CAACK,IAAI,CAAC,CAAC;EACb;EAEAF,GAAGA,CAACH,EAAU,EAAqB;IACjC,MAAME,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,IAAIA,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;IACvC,IAAIC,IAAuB,GAAG,IAAI;IAClC,KAAK,MAAMR,IAAI,IAAIC,GAAG,EAAE;MACtBO,IAAI,GAAGR,IAAI;IACb;IACA,OAAOQ,IAAI;EACb;;EAEA;EACAC,MAAMA,CAACV,EAAU,EAAgB;IAC/B,MAAME,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,IAAIA,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE;IACrC,OAAO,CAAC,GAAGN,GAAG,CAAC;EACjB;;EAEA;EACAS,WAAWA,CAACX,EAAU,EAAW;IAC/B,OAAO,CAAC,IAAI,CAACL,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC,EAAEQ,IAAI,IAAI,CAAC,IAAI,CAAC;EAC9C;EAEAI,SAASA,CAACC,QAAkB,EAAc;IACxC,IAAI,CAAChB,SAAS,CAACO,GAAG,CAACS,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAAChB,SAAS,CAACU,MAAM,CAACM,QAAQ,CAAC;IACjC,CAAC;EACH;;EAEA;EACAC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACnB,OAAO,CAACmB,KAAK,CAAC,CAAC;IACpB,IAAI,CAACT,IAAI,CAAC,CAAC;EACb;EAEQA,IAAIA,CAAA,EAAS;IACnB,KAAK,MAAMQ,QAAQ,IAAI,IAAI,CAAChB,SAAS,EAAE;MACrCgB,QAAQ,CAAC,CAAC;IACZ;EACF;AACF;;AAEA;AACA,OAAO,MAAME,cAAc,GAAG,IAAIrB,cAAc,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["AnchorRegistry","anchors","Map","listeners","Set","register","id","host","set","get","add","emit","unregister","delete","size","last","getAll","isAmbiguous","subscribe","listener","clear","anchorRegistry"],"sourceRoot":"../../../src","sources":["anchors/AnchorRegistry.ts"],"mappings":";;AAAA;;AAiBA;AACA;AACA;AACA;;AAOA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,cAAc,CAAC;EACTC,OAAO,GAAG,IAAIC,GAAG,CAA0B,CAAC;EAC5CC,SAAS,GAAG,IAAIC,GAAG,CAAW,CAAC;EAEhDC,QAAQA,CAACC,EAAU,EAAEC,IAAgB,EAAQ;IAC3C,IAAI,CAACD,EAAE,EAAE;IACT,IAAIE,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAC9B,IAAI,CAACE,GAAG,EAAE;MACRA,GAAG,GAAG,IAAIJ,GAAG,CAAC,CAAC;MACf,IAAI,CAACH,OAAO,CAACO,GAAG,CAACF,EAAE,EAAEE,GAAG,CAAC;IAC3B;IACAA,GAAG,CAACE,GAAG,CAACH,IAAI,CAAC;IACb,IAAI,CAACI,IAAI,CAAC,CAAC;EACb;EAEAC,UAAUA,CAACN,EAAU,EAAEC,IAAgB,EAAQ;IAC7C,MAAMC,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,EAAE;IACVA,GAAG,CAACK,MAAM,CAACN,IAAI,CAAC;IAChB,IAAIC,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE;MAClB,IAAI,CAACb,OAAO,CAACY,MAAM,CAACP,EAAE,CAAC;IACzB;IACA,IAAI,CAACK,IAAI,CAAC,CAAC;EACb;EAEAF,GAAGA,CAACH,EAAU,EAAqB;IACjC,MAAME,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,IAAIA,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE,OAAO,IAAI;IACvC,IAAIC,IAAuB,GAAG,IAAI;IAClC,KAAK,MAAMR,IAAI,IAAIC,GAAG,EAAE;MACtBO,IAAI,GAAGR,IAAI;IACb;IACA,OAAOQ,IAAI;EACb;;EAEA;EACAC,MAAMA,CAACV,EAAU,EAAgB;IAC/B,MAAME,GAAG,GAAG,IAAI,CAACP,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC;IAChC,IAAI,CAACE,GAAG,IAAIA,GAAG,CAACM,IAAI,KAAK,CAAC,EAAE,OAAO,EAAE;IACrC,OAAO,CAAC,GAAGN,GAAG,CAAC;EACjB;;EAEA;EACAS,WAAWA,CAACX,EAAU,EAAW;IAC/B,OAAO,CAAC,IAAI,CAACL,OAAO,CAACQ,GAAG,CAACH,EAAE,CAAC,EAAEQ,IAAI,IAAI,CAAC,IAAI,CAAC;EAC9C;EAEAI,SAASA,CAACC,QAAkB,EAAc;IACxC,IAAI,CAAChB,SAAS,CAACO,GAAG,CAACS,QAAQ,CAAC;IAC5B,OAAO,MAAM;MACX,IAAI,CAAChB,SAAS,CAACU,MAAM,CAACM,QAAQ,CAAC;IACjC,CAAC;EACH;;EAEA;EACAC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACnB,OAAO,CAACmB,KAAK,CAAC,CAAC;IACpB,IAAI,CAACT,IAAI,CAAC,CAAC;EACb;EAEQA,IAAIA,CAAA,EAAS;IACnB,KAAK,MAAMQ,QAAQ,IAAI,IAAI,CAAChB,SAAS,EAAE;MACrCgB,QAAQ,CAAC,CAAC;IACZ;EACF;AACF;;AAEA;AACA,OAAO,MAAME,cAAc,GAAG,IAAIrB,cAAc,CAAC,CAAC","ignoreList":[]}
@@ -2,6 +2,14 @@
2
2
 
3
3
  /** Padding applied when scrolling a target into the visible region of a container. */
4
4
  const INTO_VIEW_PADDING = 24;
5
+
6
+ /**
7
+ * The ScrollView instance a scroll container ref receives. Structural rather
8
+ * than `ScrollView`, which React Native 0.88 types as a function component.
9
+ * Older React Native types leave measureInWindow off the ScrollView instance,
10
+ * so it is not required here.
11
+ */
12
+
5
13
  /**
6
14
  * Registry of host {@link ScrollView}s used as an explicit override when
7
15
  * scrolling tooltip anchors into view. Prefer automatic fiber discovery for
@@ -1 +1 @@
1
- {"version":3,"names":["INTO_VIEW_PADDING","ScrollContainerRegistry","containers","Set","listeners","register","host","add","emit","unregister","delete","list","scrollTargetIntoView","target","measureInWindow","x","y","width","height","offset","getContentOffset","targetContentY","nextY","Math","max","abs","scrollTo","animated","subscribe","listener","clear","scrollContainerRegistry","createScrollContainerHost","node","measurable","callback","options"],"sourceRoot":"../../../src","sources":["anchors/ScrollContainerRegistry.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["INTO_VIEW_PADDING","ScrollContainerRegistry","containers","Set","listeners","register","host","add","emit","unregister","delete","list","scrollTargetIntoView","target","measureInWindow","x","y","width","height","offset","getContentOffset","targetContentY","nextY","Math","max","abs","scrollTo","animated","subscribe","listener","clear","scrollContainerRegistry","createScrollContainerHost","node","measurable","callback","options"],"sourceRoot":"../../../src","sources":["anchors/ScrollContainerRegistry.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Where a natively presented modal sits in the window.
5
+ *
6
+ * Fabric measures and hit-tests content inside a react-native-screens modal
7
+ * screen (`RNSModalScreen`) or a React Native `<Modal>` relative to the modal,
8
+ * not the window: both shadow nodes are `RootNodeKind`, and the native side
9
+ * reports only their size. That is the window for full-screen presentations,
10
+ * but a page sheet or form sheet starts below the top of the window, so window
11
+ * points and measured rects disagree by the sheet's origin.
12
+ *
13
+ * The SDK has no native code to ask UIKit where the sheet is, so the origin is
14
+ * derived from sizes: a sheet as wide as the window is anchored to its bottom.
15
+ * Measured on iOS 17.4 and 26.5 and an iPadOS 26.5 portrait iPad: page sheets
16
+ * at 852 − 783 = 69, 874 − 812 = 62 and 1210 − 1104 = 106, a `fitToContents`
17
+ * form sheet at 852 − 424 = 428.
18
+ *
19
+ * A narrower sheet (an iPad form sheet) cannot be placed from sizes. One
20
+ * measured 580×376 on a 834×1210 window sat at y = 549, neither centered (417)
21
+ * nor bottom-anchored (834): its detent is anchored inside a taller container
22
+ * the shadow tree never sees. It gets no origin, so picks on it fail closed.
23
+ *
24
+ * Only a sheet at its full-height detent is reliably on the bottom edge. A
25
+ * shorter one is not, in two cases, and also gets no origin:
26
+ * - From iOS 26 it floats. On iOS 26.5 the `fitToContents` trade ticket
27
+ * measured 402×424 on a 402×874 window, but UIKit drew it about 8pt in from
28
+ * the sides and bottom at about 0.96 scale, so a bottom-anchored origin was
29
+ * up to 8pt off. Page sheets there stay edge to edge (origin 62, exact).
30
+ * - While the keyboard is up, a sheet that fits above the keyboard may have
31
+ * been lifted to clear it. One that is taller than the space above the
32
+ * keyboard was not: on iOS 26.5 a page sheet stayed at 62 with a 335pt
33
+ * keyboard, and on iOS 17.4 the trade ticket grew from 424 to 715 under a
34
+ * 291pt keyboard and stayed on the bottom edge (852 − 715 = 137, exact).
35
+ *
36
+ * Paper measures with UIKit, in window coordinates, so its origin is zero.
37
+ * Outside iOS the modal is measured where it sits, as before this lookup.
38
+ */
39
+ import { Dimensions, Keyboard, Platform } from 'react-native';
40
+ import { measureHostFiber } from "./measureHostFiber.js";
41
+ import { fiberIsUnder, topmostVisibleModalHost } from "./visibleRect.js";
42
+ const ZERO = {
43
+ x: 0,
44
+ y: 0
45
+ };
46
+ const MEASURE_TIMEOUT_MS = 400;
47
+
48
+ /** Layout sizes are fractional and may miss the window size by a hair. */
49
+ const SIZE_SLACK = 1;
50
+
51
+ /**
52
+ * A sheet whose top is within this fraction of the window height is at its
53
+ * full-height detent. Measured: 69/852 (iOS 17.4), 62/874 (iOS 26.5) and
54
+ * 106/1210 (iPadOS 26.5). Medium and `fitToContents` detents start far lower.
55
+ */
56
+ const FULL_HEIGHT_SHEET_MAX_TOP = 0.15;
57
+
58
+ /** First iOS release that floats sheets shorter than full height. */
59
+ const FLOATING_SHEETS_IOS = 26;
60
+ function isFabric() {
61
+ const manager = globalThis.nativeFabricUIManager;
62
+ return manager != null && typeof manager === 'object';
63
+ }
64
+ function readWindowSize() {
65
+ try {
66
+ const {
67
+ width,
68
+ height
69
+ } = Dimensions.get('window');
70
+ if (width > 0 && height > 0) return {
71
+ width,
72
+ height
73
+ };
74
+ } catch {
75
+ // Tests and odd hosts.
76
+ }
77
+ return null;
78
+ }
79
+ function floatsShortSheets() {
80
+ const major = parseInt(String(Platform.Version), 10);
81
+ return Number.isFinite(major) && major >= FLOATING_SHEETS_IOS;
82
+ }
83
+
84
+ /** Window y of the keyboard's top edge, or null when it is down. Unknown counts as up at the bottom. */
85
+ function keyboardTop(windowSize) {
86
+ try {
87
+ if (typeof Keyboard?.isVisible !== 'function' || !Keyboard.isVisible()) return null;
88
+ const metrics = typeof Keyboard.metrics === 'function' ? Keyboard.metrics() : undefined;
89
+ return metrics && metrics.height > 0 ? metrics.screenY : windowSize.height;
90
+ } catch {
91
+ return null;
92
+ }
93
+ }
94
+ function measureSize(fiber) {
95
+ return new Promise(resolve => {
96
+ let settled = false;
97
+ const timer = setTimeout(() => {
98
+ if (settled) return;
99
+ settled = true;
100
+ resolve(null);
101
+ }, MEASURE_TIMEOUT_MS);
102
+ try {
103
+ measureHostFiber(fiber, (_x, _y, width, height) => {
104
+ if (settled) return;
105
+ settled = true;
106
+ clearTimeout(timer);
107
+ resolve(width > 0 && height > 0 ? {
108
+ width,
109
+ height
110
+ } : null);
111
+ });
112
+ } catch {
113
+ if (settled) return;
114
+ settled = true;
115
+ clearTimeout(timer);
116
+ resolve(null);
117
+ }
118
+ });
119
+ }
120
+
121
+ /**
122
+ * Window origin of a presented modal of `size`, bottom-anchored. Null when it
123
+ * is narrower than the window (see above) or does not fit in it, as
124
+ * mid-rotation.
125
+ */
126
+ export function modalOriginInWindow(size, windowSize) {
127
+ if (size.width <= 0 || size.height <= 0) return null;
128
+ if (size.width > windowSize.width + SIZE_SLACK || size.height > windowSize.height + SIZE_SLACK) {
129
+ return null;
130
+ }
131
+ if (size.width < windowSize.width - SIZE_SLACK) return null;
132
+ return {
133
+ x: 0,
134
+ y: Math.max(0, windowSize.height - size.height)
135
+ };
136
+ }
137
+
138
+ /** {@link modalOriginInWindow}, or null when a short sheet may be off the bottom edge (see above). */
139
+ function placeModal(size, windowSize) {
140
+ const origin = modalOriginInWindow(size, windowSize);
141
+ if (!origin || origin.y <= windowSize.height * FULL_HEIGHT_SHEET_MAX_TOP) return origin;
142
+ if (floatsShortSheets()) return null;
143
+ const keyboard = keyboardTop(windowSize);
144
+ if (keyboard != null && size.height <= keyboard) return null;
145
+ return origin;
146
+ }
147
+
148
+ /**
149
+ * The modal drawn on top of the app and where its content space sits in the
150
+ * window, or null when nothing is presented. Look it up per tap: a
151
+ * `fitToContents` sheet resizes as its content changes.
152
+ */
153
+ export async function locatePresentedModal(root) {
154
+ const host = topmostVisibleModalHost(root);
155
+ if (!host) return null;
156
+ if (Platform.OS !== 'ios' || !isFabric()) {
157
+ return {
158
+ host,
159
+ origin: ZERO,
160
+ size: null,
161
+ modalSpace: false
162
+ };
163
+ }
164
+ const size = await measureSize(host);
165
+ const windowSize = readWindowSize();
166
+ const origin = size && windowSize ? placeModal(size, windowSize) : null;
167
+ return {
168
+ host,
169
+ origin,
170
+ size,
171
+ modalSpace: true
172
+ };
173
+ }
174
+
175
+ /** True when window point `(x, y)` is outside a placed modal, on the screen it covers. */
176
+ export function isOutsideModal(x, y, modal) {
177
+ const {
178
+ origin,
179
+ size
180
+ } = modal;
181
+ if (!origin || !size) return false;
182
+ return x < origin.x || y < origin.y || x > origin.x + size.width || y > origin.y + size.height;
183
+ }
184
+
185
+ /**
186
+ * Window position of `(0, 0)` in the space `fiber` is measured in, given what
187
+ * {@link locatePresentedModal} returned. Null when `modal` covers `fiber`, or
188
+ * `fiber` is inside a modal that cannot be placed.
189
+ */
190
+ export function measureOriginOf(fiber, modal) {
191
+ if (!modal) return ZERO;
192
+ if (!fiberIsUnder(fiber, modal.host)) return null;
193
+ return modal.origin;
194
+ }
195
+
196
+ /** `rect`, measured in `modal`'s content space, in window coordinates. */
197
+ export function rectInWindow(rect, modal) {
198
+ const origin = modal.origin ?? ZERO;
199
+ if (origin.x === 0 && origin.y === 0) return rect;
200
+ return {
201
+ ...rect,
202
+ x: rect.x + origin.x,
203
+ y: rect.y + origin.y
204
+ };
205
+ }
206
+ //# sourceMappingURL=presentedModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Dimensions","Keyboard","Platform","measureHostFiber","fiberIsUnder","topmostVisibleModalHost","ZERO","x","y","MEASURE_TIMEOUT_MS","SIZE_SLACK","FULL_HEIGHT_SHEET_MAX_TOP","FLOATING_SHEETS_IOS","isFabric","manager","globalThis","nativeFabricUIManager","readWindowSize","width","height","get","floatsShortSheets","major","parseInt","String","Version","Number","isFinite","keyboardTop","windowSize","isVisible","metrics","undefined","screenY","measureSize","fiber","Promise","resolve","settled","timer","setTimeout","_x","_y","clearTimeout","modalOriginInWindow","size","Math","max","placeModal","origin","keyboard","locatePresentedModal","root","host","OS","modalSpace","isOutsideModal","modal","measureOriginOf","rectInWindow","rect"],"sourceRoot":"../../../../src","sources":["anchors/fiber/presentedModal.ts"],"mappings":"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","ignoreList":[]}
@@ -53,6 +53,7 @@ function readTargetInst(event) {
53
53
  return event._targetInst;
54
54
  }
55
55
  function nativeTagForTouch(event, identifier) {
56
+ // Readonly: React Native 0.88 types changedTouches as a readonly array.
56
57
  const native = event.nativeEvent;
57
58
  if (identifier != null && native.changedTouches) {
58
59
  const touch = native.changedTouches.find(entry => entry.identifier === identifier);
@@ -1 +1 @@
1
- {"version":3,"names":["isHostFiber","isReactFiber","nativeTagFromHostFiber","resolveCurrentFiber","nearestHostDescendant","createLazyHostFiberIndex","lookupHostFiber","touchTargetFiber","event","identifier","tag","nativeTagForTouch","fromInst","hostFromFiber","readTargetInst","tagMatches","fromInstance","hostFromInstance","target","undefined","byNativeTag","get","touchBelongsToEvent","own","_targetInst","native","nativeEvent","changedTouches","touch","find","entry","touchTag","asTag","value","Number","isFinite","fiber","fiberTag","current"],"sourceRoot":"../../../../src","sources":["anchors/fiber/touchTargetFiber.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isHostFiber","isReactFiber","nativeTagFromHostFiber","resolveCurrentFiber","nearestHostDescendant","createLazyHostFiberIndex","lookupHostFiber","touchTargetFiber","event","identifier","tag","nativeTagForTouch","fromInst","hostFromFiber","readTargetInst","tagMatches","fromInstance","hostFromInstance","target","undefined","byNativeTag","get","touchBelongsToEvent","own","_targetInst","native","nativeEvent","changedTouches","touch","find","entry","touchTag","asTag","value","Number","isFinite","fiber","fiberTag","current"],"sourceRoot":"../../../../src","sources":["anchors/fiber/touchTargetFiber.ts"],"mappings":"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","ignoreList":[]}
@@ -11,10 +11,14 @@
11
11
  import { getChild, getHostTypeName, getMemoizedProps, getReturn, getSibling, isHostFiber } from "./fiberInternals.js";
12
12
  import { findScrollAncestors } from "./findScrollAncestors.js";
13
13
  import { measureHostFiber } from "./measureHostFiber.js";
14
+ import { isFiberOnVisibleScreen } from "./visibleScreens.js";
14
15
  const MEASURE_TIMEOUT_MS = 400;
15
16
 
16
17
  /** Paper and Fabric names for React Native's `<Modal>`. */
17
18
  const MODAL_HOST_TYPES = new Set(['RCTModalHostView', 'ModalHostView']);
19
+
20
+ /** react-native-screens' iOS host for `modal`, `transparentModal`, `formSheet` and other presented screens. */
21
+ const SCREENS_MODAL_TYPE = 'RNSModalScreen';
18
22
  function measureFiberRect(fiber) {
19
23
  return new Promise(resolve => {
20
24
  let settled = false;
@@ -87,9 +91,11 @@ export async function clipToScrollViewports(fiber, rect) {
87
91
  }
88
92
  function isModalHost(fiber) {
89
93
  const type = getHostTypeName(fiber);
90
- return type !== undefined && MODAL_HOST_TYPES.has(type);
94
+ return type !== undefined && (MODAL_HOST_TYPES.has(type) || type === SCREENS_MODAL_TYPE);
91
95
  }
92
96
  function isModalVisible(fiber) {
97
+ // A presented screen stays mounted under the next one; only the top of its stack is visible.
98
+ if (getHostTypeName(fiber) === SCREENS_MODAL_TYPE) return isFiberOnVisibleScreen(fiber);
93
99
  const props = getMemoizedProps(fiber);
94
100
  if (!props) return true;
95
101
  if (props.visible === false) return false;
@@ -97,8 +103,11 @@ function isModalVisible(fiber) {
97
103
  }
98
104
 
99
105
  /**
100
- * The visible modal host drawn on top, or null. Later siblings win: React
101
- * Native mounts a newer `<Modal>` after the previous one.
106
+ * The visible modal host drawn on top, or null: a React Native `<Modal>` or a
107
+ * screen react-native-screens presents natively. Later fibers win: React Native
108
+ * mounts a newer `<Modal>` after the previous one, a native stack's newest
109
+ * screen is its last child, and a modal presented from inside another one sits
110
+ * deeper in the tree.
102
111
  */
103
112
  export function topmostVisibleModalHost(root, maxNodes = 8_000) {
104
113
  if (!root) return null;
@@ -1 +1 @@
1
- {"version":3,"names":["getChild","getHostTypeName","getMemoizedProps","getReturn","getSibling","isHostFiber","findScrollAncestors","measureHostFiber","MEASURE_TIMEOUT_MS","MODAL_HOST_TYPES","Set","measureFiberRect","fiber","Promise","resolve","settled","timer","setTimeout","x","y","width","height","clearTimeout","intersectRects","a","b","Math","max","right","min","bottom","clipToScrollViewports","rect","ancestors","clipped","ancestor","containerFiber","viewport","isModalHost","type","undefined","has","isModalVisible","props","visible","topmostVisibleModalHost","root","maxNodes","stack","topmost","visited","length","pop","sibling","push","child","fiberIsUnder","maxDepth","current","depth","alternate"],"sourceRoot":"../../../../src","sources":["anchors/fiber/visibleRect.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getChild","getHostTypeName","getMemoizedProps","getReturn","getSibling","isHostFiber","findScrollAncestors","measureHostFiber","isFiberOnVisibleScreen","MEASURE_TIMEOUT_MS","MODAL_HOST_TYPES","Set","SCREENS_MODAL_TYPE","measureFiberRect","fiber","Promise","resolve","settled","timer","setTimeout","x","y","width","height","clearTimeout","intersectRects","a","b","Math","max","right","min","bottom","clipToScrollViewports","rect","ancestors","clipped","ancestor","containerFiber","viewport","isModalHost","type","undefined","has","isModalVisible","props","visible","topmostVisibleModalHost","root","maxNodes","stack","topmost","visited","length","pop","sibling","push","child","fiberIsUnder","maxDepth","current","depth","alternate"],"sourceRoot":"../../../../src","sources":["anchors/fiber/visibleRect.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","anchorRegistry","useUserflowAnchor","id","hostRef","useRef","idRef","useEffect","previousId","current","host","unregister","register","useCallback","node","previous","currentId","measureInWindow","callback","scrollIntoView","scrollable","block","inline"],"sourceRoot":"../../../src","sources":["anchors/useUserflowAnchor.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SAASC,cAAc,QAAyB,qBAAkB;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,EAAU,EAA2B;EACrE,MAAMC,OAAO,GAAGJ,KAAK,CAACK,MAAM,CAAoB,IAAI,CAAC;EACrD,MAAMC,KAAK,GAAGN,KAAK,CAACK,MAAM,CAACF,EAAE,CAAC;EAE9BH,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,MAAMC,UAAU,GAAGF,KAAK,CAACG,OAAO;IAChC,MAAMC,IAAI,GAAGN,OAAO,CAACK,OAAO;IAC5B,IAAID,UAAU,KAAKL,EAAE,IAAIO,IAAI,EAAE;MAC7BT,cAAc,CAACU,UAAU,CAACH,UAAU,EAAEE,IAAI,CAAC;MAC3C,IAAIP,EAAE,EAAE;QACNF,cAAc,CAACW,QAAQ,CAACT,EAAE,EAAEO,IAAI,CAAC;MACnC;IACF;IACAJ,KAAK,CAACG,OAAO,GAAGN,EAAE;EACpB,CAAC,EAAE,CAACA,EAAE,CAAC,CAAC;EAERH,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,MAAMG,IAAI,GAAGN,OAAO,CAACK,OAAO;MAC5B,IAAIC,IAAI,EAAE;QACRT,cAAc,CAACU,UAAU,CAACL,KAAK,CAACG,OAAO,EAAEC,IAAI,CAAC;QAC9CN,OAAO,CAACK,OAAO,GAAG,IAAI;MACxB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOT,KAAK,CAACa,WAAW,CAAEC,IAAiB,IAAK;IAC9C,MAAMC,QAAQ,GAAGX,OAAO,CAACK,OAAO;IAChC,MAAMO,SAAS,GAAGV,KAAK,CAACG,OAAO;IAC/B,IAAIM,QAAQ,EAAE;MACZd,cAAc,CAACU,UAAU,CAACK,SAAS,EAAED,QAAQ,CAAC;IAChD;IACA,IAAI,CAACD,IAAI,EAAE;MACTV,OAAO,CAACK,OAAO,GAAG,IAAI;MACtB;IACF;;IAEA;IACA,MAAMC,IAAgB,GAAG;MACvBO,eAAe,EAAGC,QAAQ,IAAK;QAC7BJ,IAAI,CAACG,eAAe,CAACC,QAAQ,CAAC;MAChC,CAAC;MACDJ,IAAI;MACJK,cAAc,EAAEA,CAAA,KAAM;QACpB,MAAMC,UAAU,GAAGN,IAElB;QACD,IAAI,OAAOM,UAAU,CAACD,cAAc,KAAK,UAAU,EAAE;UACnDC,UAAU,CAACD,cAAc,CAAC;YAAEE,KAAK,EAAE,SAAS;YAAEC,MAAM,EAAE;UAAU,CAAC,CAAC;QACpE;MACF;IACF,CAAC;IACDlB,OAAO,CAACK,OAAO,GAAGC,IAAI;IACtB,IAAIM,SAAS,EAAE;MACbf,cAAc,CAACW,QAAQ,CAACI,SAAS,EAAEN,IAAI,CAAC;IAC1C;EACF,CAAC,EAAE,EAAE,CAAC;AACR","ignoreList":[]}
1
+ {"version":3,"names":["React","anchorRegistry","useUserflowAnchor","id","hostRef","useRef","idRef","useEffect","previousId","current","host","unregister","register","useCallback","node","previous","currentId","measureInWindow","callback","scrollIntoView","scrollable","block","inline"],"sourceRoot":"../../../src","sources":["anchors/useUserflowAnchor.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAE9B,SAASC,cAAc,QAA8C,qBAAkB;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,EAAU,EAAqC;EAC/E,MAAMC,OAAO,GAAGJ,KAAK,CAACK,MAAM,CAAoB,IAAI,CAAC;EACrD,MAAMC,KAAK,GAAGN,KAAK,CAACK,MAAM,CAACF,EAAE,CAAC;EAE9BH,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,MAAMC,UAAU,GAAGF,KAAK,CAACG,OAAO;IAChC,MAAMC,IAAI,GAAGN,OAAO,CAACK,OAAO;IAC5B,IAAID,UAAU,KAAKL,EAAE,IAAIO,IAAI,EAAE;MAC7BT,cAAc,CAACU,UAAU,CAACH,UAAU,EAAEE,IAAI,CAAC;MAC3C,IAAIP,EAAE,EAAE;QACNF,cAAc,CAACW,QAAQ,CAACT,EAAE,EAAEO,IAAI,CAAC;MACnC;IACF;IACAJ,KAAK,CAACG,OAAO,GAAGN,EAAE;EACpB,CAAC,EAAE,CAACA,EAAE,CAAC,CAAC;EAERH,KAAK,CAACO,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,MAAMG,IAAI,GAAGN,OAAO,CAACK,OAAO;MAC5B,IAAIC,IAAI,EAAE;QACRT,cAAc,CAACU,UAAU,CAACL,KAAK,CAACG,OAAO,EAAEC,IAAI,CAAC;QAC9CN,OAAO,CAACK,OAAO,GAAG,IAAI;MACxB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOT,KAAK,CAACa,WAAW,CAAEC,IAA2B,IAAK;IACxD,MAAMC,QAAQ,GAAGX,OAAO,CAACK,OAAO;IAChC,MAAMO,SAAS,GAAGV,KAAK,CAACG,OAAO;IAC/B,IAAIM,QAAQ,EAAE;MACZd,cAAc,CAACU,UAAU,CAACK,SAAS,EAAED,QAAQ,CAAC;IAChD;IACA,IAAI,CAACD,IAAI,EAAE;MACTV,OAAO,CAACK,OAAO,GAAG,IAAI;MACtB;IACF;;IAEA;IACA,MAAMC,IAAgB,GAAG;MACvBO,eAAe,EAAGC,QAAQ,IAAK;QAC7BJ,IAAI,CAACG,eAAe,CAACC,QAAQ,CAAC;MAChC,CAAC;MACDJ,IAAI;MACJK,cAAc,EAAEA,CAAA,KAAM;QACpB,MAAMC,UAAU,GAAGN,IAElB;QACD,IAAI,OAAOM,UAAU,CAACD,cAAc,KAAK,UAAU,EAAE;UACnDC,UAAU,CAACD,cAAc,CAAC;YAAEE,KAAK,EAAE,SAAS;YAAEC,MAAM,EAAE;UAAU,CAAC,CAAC;QACpE;MACF;IACF,CAAC;IACDlB,OAAO,CAACK,OAAO,GAAGC,IAAI;IACtB,IAAIM,SAAS,EAAE;MACbf,cAAc,CAACW,QAAQ,CAACI,SAAS,EAAEN,IAAI,CAAC;IAC1C;EACF,CAAC,EAAE,EAAE,CAAC;AACR","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","createScrollContainerHost","scrollContainerRegistry","useUserflowScrollContainer","onScrollProp","hostRef","useRef","nodeRef","offsetRef","x","y","useEffect","host","current","unregister","ref","useCallback","node","previous","register","onScroll","event","contentOffset","nativeEvent","scrollEventThrottle"],"sourceRoot":"../../../src","sources":["anchors/useUserflowScrollContainer.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SACEC,yBAAyB,EACzBC,uBAAuB,QAElB,8BAA2B;AAWlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CACxCC,YAAuE,EACzC;EAC9B,MAAMC,OAAO,GAAGL,KAAK,CAACM,MAAM,CAA6B,IAAI,CAAC;EAC9D,MAAMC,OAAO,GAAGP,KAAK,CAACM,MAAM,CAAoB,IAAI,CAAC;EACrD,MAAME,SAAS,GAAGR,KAAK,CAACM,MAAM,CAAC;IAAEG,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,CAAC;EAE9CV,KAAK,CAACW,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,MAAMC,IAAI,GAAGP,OAAO,CAACQ,OAAO;MAC5B,IAAID,IAAI,EAAE;QACRV,uBAAuB,CAACY,UAAU,CAACF,IAAI,CAAC;QACxCP,OAAO,CAACQ,OAAO,GAAG,IAAI;MACxB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,GAAG,GAAGf,KAAK,CAACgB,WAAW,CAAEC,IAAuB,IAAK;IACzD,MAAMC,QAAQ,GAAGb,OAAO,CAACQ,OAAO;IAChC,IAAIK,QAAQ,EAAE;MACZhB,uBAAuB,CAACY,UAAU,CAACI,QAAQ,CAAC;MAC5Cb,OAAO,CAACQ,OAAO,GAAG,IAAI;IACxB;IACAN,OAAO,CAACM,OAAO,GAAGI,IAAI;IACtB,IAAI,CAACA,IAAI,EAAE;IAEX,MAAML,IAAI,GAAGX,yBAAyB,CAACgB,IAAI,EAAE,MAAMT,SAAS,CAACK,OAAO,CAAC;IACrER,OAAO,CAACQ,OAAO,GAAGD,IAAI;IACtBV,uBAAuB,CAACiB,QAAQ,CAACP,IAAI,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMQ,QAAQ,GAAGpB,KAAK,CAACgB,WAAW,CAC/BK,KAA8C,IAAK;IAClD,MAAM;MAAEC;IAAc,CAAC,GAAGD,KAAK,CAACE,WAAW;IAC3Cf,SAAS,CAACK,OAAO,GAAG;MAAEJ,CAAC,EAAEa,aAAa,CAACb,CAAC;MAAEC,CAAC,EAAEY,aAAa,CAACZ;IAAE,CAAC;IAC9DN,YAAY,GAAGiB,KAAK,CAAC;EACvB,CAAC,EACD,CAACjB,YAAY,CACf,CAAC;EAED,OAAO;IACLW,GAAG;IACHK,QAAQ;IACRI,mBAAmB,EAAE;EACvB,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["React","createScrollContainerHost","scrollContainerRegistry","useUserflowScrollContainer","onScrollProp","hostRef","useRef","nodeRef","offsetRef","x","y","useEffect","host","current","unregister","ref","useCallback","node","previous","register","onScroll","event","contentOffset","nativeEvent","scrollEventThrottle"],"sourceRoot":"../../../src","sources":["anchors/useUserflowScrollContainer.ts"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAG9B,SACEC,yBAAyB,EACzBC,uBAAuB,QAGlB,8BAA2B;AAWlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,0BAA0BA,CACxCC,YAAuE,EACzC;EAC9B,MAAMC,OAAO,GAAGL,KAAK,CAACM,MAAM,CAA6B,IAAI,CAAC;EAC9D,MAAMC,OAAO,GAAGP,KAAK,CAACM,MAAM,CAA6B,IAAI,CAAC;EAC9D,MAAME,SAAS,GAAGR,KAAK,CAACM,MAAM,CAAC;IAAEG,CAAC,EAAE,CAAC;IAAEC,CAAC,EAAE;EAAE,CAAC,CAAC;EAE9CV,KAAK,CAACW,SAAS,CAAC,MAAM;IACpB,OAAO,MAAM;MACX,MAAMC,IAAI,GAAGP,OAAO,CAACQ,OAAO;MAC5B,IAAID,IAAI,EAAE;QACRV,uBAAuB,CAACY,UAAU,CAACF,IAAI,CAAC;QACxCP,OAAO,CAACQ,OAAO,GAAG,IAAI;MACxB;IACF,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,GAAG,GAAGf,KAAK,CAACgB,WAAW,CAAEC,IAAgC,IAAK;IAClE,MAAMC,QAAQ,GAAGb,OAAO,CAACQ,OAAO;IAChC,IAAIK,QAAQ,EAAE;MACZhB,uBAAuB,CAACY,UAAU,CAACI,QAAQ,CAAC;MAC5Cb,OAAO,CAACQ,OAAO,GAAG,IAAI;IACxB;IACAN,OAAO,CAACM,OAAO,GAAGI,IAAI;IACtB,IAAI,CAACA,IAAI,EAAE;IAEX,MAAML,IAAI,GAAGX,yBAAyB,CAACgB,IAAI,EAAE,MAAMT,SAAS,CAACK,OAAO,CAAC;IACrER,OAAO,CAACQ,OAAO,GAAGD,IAAI;IACtBV,uBAAuB,CAACiB,QAAQ,CAACP,IAAI,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMQ,QAAQ,GAAGpB,KAAK,CAACgB,WAAW,CAC/BK,KAA8C,IAAK;IAClD,MAAM;MAAEC;IAAc,CAAC,GAAGD,KAAK,CAACE,WAAW;IAC3Cf,SAAS,CAACK,OAAO,GAAG;MAAEJ,CAAC,EAAEa,aAAa,CAACb,CAAC;MAAEC,CAAC,EAAEY,aAAa,CAACZ;IAAE,CAAC;IAC9DN,YAAY,GAAGiB,KAAK,CAAC;EACvB,CAAC,EACD,CAACjB,YAAY,CACf,CAAC;EAED,OAAO;IACLW,GAAG;IACHK,QAAQ;IACRI,mBAAmB,EAAE;EACvB,CAAC;AACH","ignoreList":[]}