@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
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+ export interface WindowOverlayHostProps {
3
+ children: React.ReactNode;
4
+ /**
5
+ * Hide everything outside the host from VoiceOver, natively presented
6
+ * modals included. Defaults to false.
7
+ */
8
+ accessibilityModal?: boolean;
9
+ }
10
+ /** True when {@link WindowOverlayHost} draws above natively presented modals. */
11
+ export declare function hasWindowOverlayHost(): boolean;
12
+ /**
13
+ * Hosts SDK chrome above everything else in the app window.
14
+ *
15
+ * On iOS, react-native-screens presents `modal`, `transparentModal`,
16
+ * `formSheet` and `fullScreenModal` screens, and React Native presents
17
+ * `<Modal>`, as view controllers above the React Native root view, so chrome
18
+ * rendered in `UserflowProvider`'s overlay is drawn beneath them and never
19
+ * receives touches there. `FullWindowOverlay` moves its children into a
20
+ * container on the window itself. Measured on iOS 17.4 and 26.5 with
21
+ * react-native-screens 4.16, that container stays above sheets whether they are
22
+ * presented before or after it mounts.
23
+ *
24
+ * Each host is its own container, stacked by when it was attached rather than
25
+ * by React order, so chrome that has to keep a paint order shares one host.
26
+ *
27
+ * Touches inside the host arrive in window coordinates, as they do in the root
28
+ * view. Children render in place when the overlay is unavailable: on Android,
29
+ * and in apps without react-native-screens.
30
+ */
31
+ export declare function WindowOverlayHost({ children, accessibilityModal, }: WindowOverlayHostProps): React.ReactElement;
32
+ /** @internal Clears the cached `FullWindowOverlay` lookup between tests. */
33
+ export declare function resetWindowOverlayHostForTests(): void;
34
+ //# sourceMappingURL=WindowOverlayHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WindowOverlayHost.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/WindowOverlayHost.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA6C/B,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,kBAA0B,GAC3B,EAAE,sBAAsB,GAAG,KAAK,CAAC,YAAY,CAQ7C;AAED,4EAA4E;AAC5E,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
@@ -1 +1 @@
1
- {"version":3,"file":"userflowCore.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/userflowCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,wBAAgB,eAAe,IAAI,YAAY,CAE9C"}
1
+ {"version":3,"file":"userflowCore.d.ts","sourceRoot":"","sources":["../../../../../src/runtime/userflowCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWnD,wBAAgB,eAAe,IAAI,YAAY,CAE9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipSurface.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/TooltipSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA8CxD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;GAGG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAuCzC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,WAAW,EACX,KAAK,EACL,eAAe,EACf,UAAc,GACf,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAk5BjD"}
1
+ {"version":3,"file":"TooltipSurface.d.ts","sourceRoot":"","sources":["../../../../../src/surfaces/TooltipSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA+CxD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,EAAE,aAAa,CAAC;IACrB,eAAe,EAAE,eAAe,CAAC;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;GAGG;AACH,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAuCzC;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,WAAW,EACX,KAAK,EACL,eAAe,EACf,UAAc,GACf,EAAE,mBAAmB,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA08BjD"}
@@ -0,0 +1,26 @@
1
+ import type { AnyFiber } from '../../anchors/fiber/fiberInternals';
2
+ import { type Point } from '../../anchors/fiber/presentedModal';
3
+ import type { Rect } from './inferTooltipPlacement';
4
+ /**
5
+ * How long "nothing is presented" is trusted on the same screen. The lookup
6
+ * walks the whole fiber tree (1.4ms for 2,200 fibers in a debug build), and
7
+ * an anchored tooltip resolves four times a second. Expo Router and native
8
+ * stack modals change the screen, which skips this wait; a React Native
9
+ * `<Modal>` over the target is noticed within it.
10
+ */
11
+ export declare const NO_MODAL_TRUST_MS = 1000;
12
+ /**
13
+ * Where a tooltip target's measured rects sit in the window. `done` gets the
14
+ * window position of `(0, 0)` in the target's measure space, or null when the
15
+ * tooltip cannot point at it: a natively presented modal covers the target,
16
+ * or the target is inside a modal that cannot be placed (see
17
+ * `presentedModal.ts`). Also null when the target has no fiber to place.
18
+ *
19
+ * Without the window host, flow chrome is drawn in the root view under any
20
+ * native modal, as before, and `done` runs synchronously with zero.
21
+ */
22
+ export declare function locateTargetOrigin(fiber: AnyFiber | null, done: (origin: Point | null) => void): void;
23
+ export declare function offsetRect(rect: Rect, origin: Point): Rect;
24
+ /** @internal Forgets the cached "nothing is presented" between tests. */
25
+ export declare function resetTargetOriginForTests(): void;
26
+ //# sourceMappingURL=targetOrigin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targetOrigin.d.ts","sourceRoot":"","sources":["../../../../../../src/surfaces/tooltip/targetOrigin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAGL,KAAK,KAAK,EACX,MAAM,oCAAoC,CAAC;AAI5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAIpD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAItC;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,QAAQ,GAAG,IAAI,EACtB,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,KAAK,IAAI,GACnC,IAAI,CAyBN;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI,CAG1D;AAED,yEAAyE;AACzE,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
@@ -1,3 +1,3 @@
1
1
  /** Generated by scripts/write-version.mjs — do not edit. */
2
- export declare const SDK_VERSION = "0.6.0";
2
+ export declare const SDK_VERSION = "0.7.0";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -12,6 +12,13 @@ export interface AnchorHost {
12
12
  */
13
13
  node?: object | null;
14
14
  }
15
+ /**
16
+ * The view instance an anchor ref receives. Structural rather than `View`,
17
+ * which React Native 0.88 types as a function component, not an instance.
18
+ */
19
+ export interface MeasurableNode {
20
+ measureInWindow: AnchorHost['measureInWindow'];
21
+ }
15
22
  type Listener = () => void;
16
23
  /**
17
24
  * Manual-anchor registry for Phase 3 (WS6). Codeless resolution is Phase 4.
@@ -1 +1 @@
1
- {"version":3,"file":"AnchorRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/AnchorRegistry.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,CACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;IACV;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IAEjD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAW5C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAU9C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAUlC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE;IAMhC,kEAAkE;IAClE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAOzC,uCAAuC;IACvC,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,IAAI;CAKb;AAED,6EAA6E;AAC7E,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"AnchorRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/AnchorRegistry.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,CACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;IACV;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;CAChD;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsC;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IAEjD,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAW5C,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAU9C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAUlC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,EAAE;IAMhC,kEAAkE;IAClE,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIhC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAOzC,uCAAuC;IACvC,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,IAAI;CAKb;AAED,6EAA6E;AAC7E,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { NativeScrollEvent, NativeSyntheticEvent, ScrollView } from 'react-native';
1
+ import type { NativeScrollEvent, NativeSyntheticEvent } from 'react-native';
2
2
  import type { Rect } from '../surfaces/tooltip/inferTooltipPlacement';
3
3
  export interface ScrollContainerHost {
4
4
  measureInWindow: (callback: (x: number, y: number, width: number, height: number) => void) => void;
@@ -12,6 +12,15 @@ export interface ScrollContainerHost {
12
12
  animated?: boolean;
13
13
  }) => void;
14
14
  }
15
+ /**
16
+ * The ScrollView instance a scroll container ref receives. Structural rather
17
+ * than `ScrollView`, which React Native 0.88 types as a function component.
18
+ * Older React Native types leave measureInWindow off the ScrollView instance,
19
+ * so it is not required here.
20
+ */
21
+ export interface ScrollContainerNode {
22
+ scrollTo: ScrollContainerHost['scrollTo'];
23
+ }
15
24
  type Listener = () => void;
16
25
  /**
17
26
  * Registry of host {@link ScrollView}s used as an explicit override when
@@ -37,7 +46,7 @@ export declare class ScrollContainerRegistry {
37
46
  /** Module singleton used by {@link useUserflowScrollContainer} and TooltipSurface. */
38
47
  export declare const scrollContainerRegistry: ScrollContainerRegistry;
39
48
  /** Build a host from a live ScrollView + tracked content offset. */
40
- export declare function createScrollContainerHost(node: ScrollView, getContentOffset: () => {
49
+ export declare function createScrollContainerHost(node: ScrollContainerNode, getContentOffset: () => {
41
50
  x: number;
42
51
  y: number;
43
52
  }): ScrollContainerHost;
@@ -1 +1 @@
1
- {"version":3,"file":"ScrollContainerRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/ScrollContainerRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,EAAQ,MAAM,cAAc,CAAC;AAE9F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,2CAA2C,CAAC;AAKtE,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,CACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;IACV,gBAAgB,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7E;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IAEjD,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAKzC,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAK3C,yEAAyE;IACzE,IAAI,IAAI,mBAAmB,EAAE;IAI7B;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAuBxC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAOzC,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,IAAI;CAKb;AAED,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,yBAAgC,CAAC;AAErE,oEAAoE;AACpE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,UAAU,EAChB,gBAAgB,EAAE,MAAM;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,mBAAmB,CAWrB;AAED,MAAM,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"ScrollContainerRegistry.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/ScrollContainerRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,2CAA2C,CAAC;AAOtE,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,CACf,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,KACpE,IAAI,CAAC;IACV,gBAAgB,EAAE,MAAM;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,QAAQ,EAAE,CAAC,OAAO,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7E;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;CAC3C;AAED,KAAK,QAAQ,GAAG,MAAM,IAAI,CAAC;AAE3B;;;;GAIG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IAEjD,QAAQ,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAKzC,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAK3C,yEAAyE;IACzE,IAAI,IAAI,mBAAmB,EAAE;IAI7B;;;OAGG;IACH,oBAAoB,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI;IAuBxC,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAOzC,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,IAAI;CAKb;AAED,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,yBAAgC,CAAC;AAErE,oEAAoE;AACpE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,mBAAmB,EACzB,gBAAgB,EAAE,MAAM;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,mBAAmB,CAWrB;AAED,MAAM,MAAM,4BAA4B,GAAG,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC"}
@@ -0,0 +1,45 @@
1
+ import type { AnyFiber } from './fiberInternals';
2
+ export interface Point {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ export interface Size {
7
+ width: number;
8
+ height: number;
9
+ }
10
+ export interface PresentedModal {
11
+ /** `RNSModalScreen`, or React Native's `ModalHostView`. */
12
+ host: AnyFiber;
13
+ /**
14
+ * Window position of `(0, 0)` in the space the modal's content is measured
15
+ * and hit-tested in. Null when the modal cannot be placed.
16
+ */
17
+ origin: Point | null;
18
+ /** The modal's size, when it was measured (iOS Fabric only). */
19
+ size: Size | null;
20
+ /** True on iOS Fabric, where that space is the modal's own rather than the window's. */
21
+ modalSpace: boolean;
22
+ }
23
+ /**
24
+ * Window origin of a presented modal of `size`, bottom-anchored. Null when it
25
+ * is narrower than the window (see above) or does not fit in it, as
26
+ * mid-rotation.
27
+ */
28
+ export declare function modalOriginInWindow(size: Size, windowSize: Size): Point | null;
29
+ /**
30
+ * The modal drawn on top of the app and where its content space sits in the
31
+ * window, or null when nothing is presented. Look it up per tap: a
32
+ * `fitToContents` sheet resizes as its content changes.
33
+ */
34
+ export declare function locatePresentedModal(root: AnyFiber | null): Promise<PresentedModal | null>;
35
+ /** True when window point `(x, y)` is outside a placed modal, on the screen it covers. */
36
+ export declare function isOutsideModal(x: number, y: number, modal: PresentedModal): boolean;
37
+ /**
38
+ * Window position of `(0, 0)` in the space `fiber` is measured in, given what
39
+ * {@link locatePresentedModal} returned. Null when `modal` covers `fiber`, or
40
+ * `fiber` is inside a modal that cannot be placed.
41
+ */
42
+ export declare function measureOriginOf(fiber: AnyFiber, modal: PresentedModal | null): Point | null;
43
+ /** `rect`, measured in `modal`'s content space, in window coordinates. */
44
+ export declare function rectInWindow<T extends Point>(rect: T, modal: PresentedModal): T;
45
+ //# sourceMappingURL=presentedModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presentedModal.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/presentedModal.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,IAAI;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,IAAI,EAAE,QAAQ,CAAC;IACf;;;OAGG;IACH,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC;IACrB,gEAAgE;IAChE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,wFAAwF;IACxF,UAAU,EAAE,OAAO,CAAC;CACrB;AA0ED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,GAAG,KAAK,GAAG,IAAI,CAO9E;AAYD;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAUhG;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAInF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,CAI3F;AAED,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,CAAC,CAI/E"}
@@ -22,8 +22,11 @@ export declare function intersectRects(a: VisibleRect, b: VisibleRect): VisibleR
22
22
  */
23
23
  export declare function clipToScrollViewports(fiber: AnyFiber | null, rect: VisibleRect): Promise<VisibleRect | null>;
24
24
  /**
25
- * The visible modal host drawn on top, or null. Later siblings win: React
26
- * Native mounts a newer `<Modal>` after the previous one.
25
+ * The visible modal host drawn on top, or null: a React Native `<Modal>` or a
26
+ * screen react-native-screens presents natively. Later fibers win: React Native
27
+ * mounts a newer `<Modal>` after the previous one, a native stack's newest
28
+ * screen is its last child, and a modal presented from inside another one sits
29
+ * deeper in the tree.
27
30
  */
28
31
  export declare function topmostVisibleModalHost(root: AnyFiber | null, maxNodes?: number): AnyFiber | null;
29
32
  /** True when `fiber` is `ancestor` or sits under it. */
@@ -1 +1 @@
1
- {"version":3,"file":"visibleRect.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/visibleRect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,kBAAkB,CAAC;AAI1B,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAOD,KAAK,eAAe,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AA8BrF,wBAAgB,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CASjF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,QAAQ,GAAG,IAAI,EACtB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAgB7B;AAcD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,SAAQ,GAAG,QAAQ,GAAG,IAAI,CAwBhG;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,SAAS,GAAG,OAAO,CAQ5F;AAED,YAAY,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"visibleRect.d.ts","sourceRoot":"","sources":["../../../../../../src/anchors/fiber/visibleRect.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EACL,KAAK,QAAQ,EAOd,MAAM,kBAAkB,CAAC;AAK1B,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAUD,KAAK,eAAe,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AA8BrF,wBAAgB,cAAc,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CASjF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,QAAQ,GAAG,IAAI,EACtB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAgB7B;AAgBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,SAAQ,GAAG,QAAQ,GAAG,IAAI,CAwBhG;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,SAAS,GAAG,OAAO,CAQ5F;AAED,YAAY,EAAE,eAAe,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import type { View } from 'react-native';
2
+ import { type MeasurableNode } from './AnchorRegistry';
3
3
  /**
4
4
  * Register a view as a manual Userflow tooltip / embed target.
5
5
  *
@@ -26,5 +26,5 @@ import type { View } from 'react-native';
26
26
  *
27
27
  * Phase 3 resolves targets via `step.selector.css` (leading `#` stripped).
28
28
  */
29
- export declare function useUserflowAnchor(id: string): React.RefCallback<View>;
29
+ export declare function useUserflowAnchor(id: string): React.RefCallback<MeasurableNode>;
30
30
  //# sourceMappingURL=useUserflowAnchor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUserflowAnchor.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/useUserflowAnchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAyDrE"}
1
+ {"version":3,"file":"useUserflowAnchor.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/useUserflowAnchor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAmC,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAExF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAyD/E"}
@@ -1,8 +1,9 @@
1
1
  import * as React from 'react';
2
- import type { NativeScrollEvent, NativeSyntheticEvent, ScrollView } from 'react-native';
2
+ import type { NativeScrollEvent, NativeSyntheticEvent } from 'react-native';
3
+ import { type ScrollContainerNode } from './ScrollContainerRegistry';
3
4
  export interface UserflowScrollContainerProps {
4
5
  /** Attach to the host ScrollView (or merge with an existing ref). */
5
- ref: React.RefCallback<ScrollView>;
6
+ ref: React.RefCallback<ScrollContainerNode>;
6
7
  /** Forward to ScrollView so content offsets stay in sync for scroll-into-view. */
7
8
  onScroll: (event: NativeSyntheticEvent<NativeScrollEvent>) => void;
8
9
  /** Required for frequent offset updates while scrolling. */
@@ -1 +1 @@
1
- {"version":3,"file":"useUserflowScrollContainer.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/useUserflowScrollContainer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQxF,MAAM,WAAW,4BAA4B;IAC3C,qEAAqE;IACrE,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACnC,kFAAkF;IAClF,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,4DAA4D;IAC5D,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,GACtE,4BAA4B,CA2C9B"}
1
+ {"version":3,"file":"useUserflowScrollContainer.d.ts","sourceRoot":"","sources":["../../../../../src/anchors/useUserflowScrollContainer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,4BAA4B;IAC3C,qEAAqE;IACrE,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAC5C,kFAAkF;IAClF,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACnE,4DAA4D;IAC5D,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,IAAI,GACtE,4BAA4B,CA2C9B"}
@@ -3,6 +3,10 @@ import * as React from 'react';
3
3
  * Overlay chrome for in-app element picking. Mounted by UserflowProvider;
4
4
  * renders nothing until {@link elementPickerController.beginSelection}.
5
5
  * Every pick shows the menu and onboarding tooltip.
6
+ *
7
+ * Drawn in {@link WindowOverlayHost} so native modal screens on iOS cannot
8
+ * cover it. It mounts only while there is something to show, so the window
9
+ * container exists only for the pick.
6
10
  */
7
11
  export declare function ElementPickerOverlay(): React.ReactElement | null;
8
12
  //# sourceMappingURL=ElementPickerOverlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElementPickerOverlay.d.ts","sourceRoot":"","sources":["../../../../../src/authoring/ElementPickerOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoF/B;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CA2hBhE"}
1
+ {"version":3,"file":"ElementPickerOverlay.d.ts","sourceRoot":"","sources":["../../../../../src/authoring/ElementPickerOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwH/B;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CA+jBhE"}
@@ -1,6 +1,7 @@
1
1
  import type { SemanticRole } from '@userflow-tech/protocol';
2
2
  import { type AutoAnchorInstance } from '../anchors/AutoAnchorRegistry';
3
3
  import { type AnyFiber } from '../anchors/fiber/fiberInternals';
4
+ import { type PresentedModal } from '../anchors/fiber/presentedModal';
4
5
  export interface HitRect {
5
6
  x: number;
6
7
  y: number;
@@ -32,7 +33,12 @@ export interface HitCandidate {
32
33
  }
33
34
  export type MeasureInstance = (inst: AutoAnchorInstance) => Promise<HitRect | null>;
34
35
  export type InstanceFilter = (inst: AutoAnchorInstance) => boolean;
35
- export type HostAtPoint = (x: number, y: number) => Promise<AnyFiber | null>;
36
+ /**
37
+ * Why a tap on a presented modal found nothing: the modal cannot be placed in
38
+ * the window, or the tap was outside it.
39
+ */
40
+ export type ModalMiss = 'unplaceable' | 'outside';
41
+ export type HostAtPoint = (x: number, y: number, presented?: PresentedModal | null) => Promise<AnyFiber | null>;
36
42
  /**
37
43
  * Measure a live auto-anchor instance in window coordinates. Prefers the
38
44
  * public instance's `measureInWindow`, then the fiber host path.
@@ -48,8 +54,11 @@ export declare function fiberTargetDescriptor(fiber: AnyFiber): FiberTargetDescr
48
54
  * {@link FiberScanRoot}. Hosts above it (the provider's own wrappers) are never
49
55
  * resolvable at play time. Empty when `host` is on a covered screen: its
50
56
  * ancestors above the navigator are not what was tapped.
57
+ *
58
+ * The walk also stops at `boundary`, a presented modal: hosts above it are
59
+ * drawn beneath the modal, not around what was tapped.
51
60
  */
52
- export declare function candidateChain(host: AnyFiber, byFiber: Map<AnyFiber, AutoAnchorInstance>): PickTarget[];
61
+ export declare function candidateChain(host: AnyFiber, byFiber: Map<AnyFiber, AutoAnchorInstance>, boundary?: AnyFiber | null): PickTarget[];
53
62
  /**
54
63
  * First control-sized pressable in an innermost-first list, else 0. A
55
64
  * screen-sized pressable ancestor would select an invisible full-screen rect.
@@ -63,13 +72,27 @@ export declare function defaultCandidateIndex(candidates: HitCandidate[]): numbe
63
72
  * lands on a covered screen. A visible native hit with no identifiable
64
73
  * ancestor returns no candidates: geometry ignores stacking order and would
65
74
  * offer whatever lies underneath the tap.
75
+ *
76
+ * While a modal is presented, only its content is a candidate, and candidate
77
+ * rects come back in window coordinates. A modal that cannot be placed in the
78
+ * window yields no candidates rather than a guess, and so does a tap outside
79
+ * the modal, on the screen it covers. Both call `onModalMiss` so the caller
80
+ * can say why.
66
81
  */
67
82
  export declare function hitTestAt(x: number, y: number, opts?: {
68
83
  instanceFilter?: InstanceFilter;
69
84
  measure?: MeasureInstance;
70
85
  instances?: AutoAnchorInstance[];
71
86
  hostAtPoint?: HostAtPoint;
87
+ onModalMiss?: (miss: ModalMiss) => void;
72
88
  }): Promise<HitCandidate[]>;
89
+ /**
90
+ * `candidates` measured again, for when the screen may have moved under a
91
+ * selection: the keyboard opening or closing resizes or moves a sheet. Null
92
+ * when one can no longer be measured, or its modal can no longer be placed,
93
+ * so the caller drops the selection rather than keep a stale rect.
94
+ */
95
+ export declare function remeasureCandidates(candidates: HitCandidate[], measure?: MeasureInstance): Promise<HitCandidate[] | null>;
73
96
  /** Cycle to the next-larger containing candidate (wraps). */
74
97
  export declare function nextContainingIndex(candidates: HitCandidate[], currentIndex: number): number;
75
98
  //# sourceMappingURL=hitTest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hitTest.d.ts","sourceRoot":"","sources":["../../../../../src/authoring/hitTest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,iCAAiC,CAAC;AAiBzC,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4EAA4E;AAC5E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,kBAAkB,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAE5E,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACpF,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,OAAO,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAqF7E;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAcrF;AAYD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,qBAAqB,GAAG,IAAI,CA2CnF;AA+BD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GACzC,UAAU,EAAE,CAqBd;AAmCD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,CAUxE;AAYD;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE;IACL,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,SAAS,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,GACA,OAAO,CAAC,YAAY,EAAE,CAAC,CAqBzB;AAkDD,6DAA6D;AAC7D,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAG5F"}
1
+ {"version":3,"file":"hitTest.d.ts","sourceRoot":"","sources":["../../../../../src/authoring/hitTest.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  import { type AnyFiber } from '../anchors/fiber/fiberInternals';
2
+ import { type PresentedModal } from '../anchors/fiber/presentedModal';
2
3
  /**
3
4
  * Host fiber drawn on top at window coordinates, or null when neither Fabric
4
5
  * nor Paper hit-testing is available.
6
+ *
7
+ * While a modal is presented, only its content can be hit, and nothing is
8
+ * when the modal cannot be placed in the window. Pass `presented` when the
9
+ * caller has already looked it up.
5
10
  */
6
- export declare function hostAtPoint(x: number, y: number): Promise<AnyFiber | null>;
11
+ export declare function hostAtPoint(x: number, y: number, presented?: PresentedModal | null): Promise<AnyFiber | null>;
7
12
  //# sourceMappingURL=hostAtPoint.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hostAtPoint.d.ts","sourceRoot":"","sources":["../../../../../src/authoring/hostAtPoint.ts"],"names":[],"mappings":"AAwBA,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,iCAAiC,CAAC;AAqMzC;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAchF"}
1
+ {"version":3,"file":"hostAtPoint.d.ts","sourceRoot":"","sources":["../../../../../src/authoring/hostAtPoint.ts"],"names":[],"mappings":"AAyBA,OAAO,EACL,KAAK,QAAQ,EAMd,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAC;AA8NzC;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,GAChC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAkB1B"}
@@ -21,7 +21,7 @@ export interface DeepLinkingDeps {
21
21
  startFlowWithToken: DeepLinkStartFlowWithToken;
22
22
  /** Optional Linking overrides for tests. */
23
23
  linking?: {
24
- getInitialURL: () => Promise<string | null>;
24
+ getInitialURL: () => Promise<string | null | undefined>;
25
25
  addEventListener: (type: 'url', handler: (event: {
26
26
  url: string;
27
27
  }) => void) => {
@@ -1 +1 @@
1
- {"version":3,"file":"deepLinking.d.ts","sourceRoot":"","sources":["../../../../src/deepLinking.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C,4CAA4C;IAC5C,OAAO,CAAC,EAAE;QACR,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;QAC5C,gBAAgB,EAAE,CAChB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,CAAC,KAAK,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,KACtC;YAAE,MAAM,EAAE,MAAM,IAAI,CAAA;SAAE,CAAC;KAC7B,CAAC;CACH;AAiBD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CA0C9E;AAmBD;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE;AAED,sFAAsF;AACtF,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ9D;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAiBhE;AAED,uDAAuD;AACvD,wBAAgB,eAAe,IAAI,IAAI,CAOtC;AAED,4DAA4D;AAC5D,wBAAgB,gCAAgC,IAAI,MAAM,GAAG,IAAI,CAEhE;AAED,sDAAsD;AACtD,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
1
+ {"version":3,"file":"deepLinking.d.ts","sourceRoot":"","sources":["../../../../src/deepLinking.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,gFAAgF;AAChF,eAAO,MAAM,0BAA0B,cAAc,CAAC;AAEtD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,+CAA+C;IAC/C,kBAAkB,EAAE,0BAA0B,CAAC;IAC/C,4CAA4C;IAC5C,OAAO,CAAC,EAAE;QAER,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;QACxD,gBAAgB,EAAE,CAChB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,CAAC,KAAK,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,KAAK,IAAI,KACtC;YAAE,MAAM,EAAE,MAAM,IAAI,CAAA;SAAE,CAAC;KAC7B,CAAC;CACH;AAiBD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CA0C9E;AAmBD;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE;AAED,sFAAsF;AACtF,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ9D;AAED,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAiBhE;AAED,uDAAuD;AACvD,wBAAgB,eAAe,IAAI,IAAI,CAOtC;AAED,4DAA4D;AAC5D,wBAAgB,gCAAgC,IAAI,MAAM,GAAG,IAAI,CAEhE;AAED,sDAAsD;AACtD,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
@@ -1,5 +1,6 @@
1
1
  /**
2
- * Resolve mobile platform metadata for Userflow user attributes.
2
+ * Resolve mobile platform metadata and the running SDK version for Userflow
3
+ * user attributes.
3
4
  *
4
5
  * Cached once during {@link Userflow.init} and merged into identify attributes
5
6
  * (same lifecycle as {@link hostAppVersion.ts}).
@@ -9,12 +10,18 @@ export type DeviceOs = 'ios' | 'android';
9
10
  export type DeviceType = 'phone' | 'tablet';
10
11
  export interface DeviceContext {
11
12
  sdk: SdkPlatform;
13
+ /**
14
+ * Published `@userflow-tech/react-native` version, e.g. `0.4.6`. Always set by
15
+ * the SDK; optional so context objects built by host code (mocks) stay valid.
16
+ */
17
+ sdkVersion?: string;
12
18
  deviceOs?: DeviceOs;
13
19
  deviceType?: DeviceType;
14
20
  }
15
21
  /** Android `smallestScreenWidthDp` tablet threshold (sw600dp). */
16
22
  export declare const ANDROID_TABLET_SMALLEST_WIDTH_DP = 600;
17
23
  export declare const SDK_USER_ATTRIBUTE = "sdk";
24
+ export declare const SDK_VERSION_USER_ATTRIBUTE = "sdk_version";
18
25
  export declare const DEVICE_OS_USER_ATTRIBUTE = "device_os";
19
26
  export declare const DEVICE_TYPE_USER_ATTRIBUTE = "device_type";
20
27
  interface PlatformShape {
@@ -47,20 +54,22 @@ export declare function resolveDeviceContext(): DeviceContext;
47
54
  export declare function cacheDeviceContextAtInit(): DeviceContext;
48
55
  /** Returns the context cached at init, or `null` before init. */
49
56
  export declare function getCachedDeviceContext(): DeviceContext | null;
50
- /** Returns cached device fields for UpsertUser, or `{}` before init. */
51
- export declare function deviceContextUserAttributes(): Record<string, string>;
52
57
  /** Optional user-attribute keys added by {@link mergeDeviceContextUserAttributes}. */
53
58
  export type DeviceContextUserAttributeMap = Partial<{
54
59
  [SDK_USER_ATTRIBUTE]: SdkPlatform;
60
+ [SDK_VERSION_USER_ATTRIBUTE]: string;
55
61
  [DEVICE_OS_USER_ATTRIBUTE]: DeviceOs;
56
62
  [DEVICE_TYPE_USER_ATTRIBUTE]: DeviceType;
57
63
  }>;
58
- /** Merges cached device attrs into identify attributes; caller values win on key conflicts. */
64
+ /**
65
+ * Merges cached device attrs into identify attributes. Caller values win on key
66
+ * conflicts, except `sdk_version`, which always reports the running SDK.
67
+ */
59
68
  export declare function mergeDeviceContextUserAttributes<T extends Record<string, unknown>>(attributes?: T): (T & DeviceContextUserAttributeMap) | undefined;
60
69
  export declare function formatDeviceContextLog(resolved: DeviceContext | null): string;
61
70
  /** Log cached user-attribute values. Requires {@link cacheDeviceContextAtInit}. */
62
71
  export declare function logDeviceContext(): void;
63
- /** @internal Resets init cache between tests. */
72
+ /** @internal Resets init cache and the one-time override warning between tests. */
64
73
  export declare function resetCachedDeviceContextForTests(): void;
65
74
  export {};
66
75
  //# sourceMappingURL=deviceContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deviceContext.d.ts","sourceRoot":"","sources":["../../../../src/deviceContext.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC;AACzC,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AACzC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,kEAAkE;AAClE,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,wBAAwB,cAAc,CAAC;AACpD,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AAExD,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAIpF;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEjE;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,UAAU,GAAG,SAAS,CAWzB;AAED,gFAAgF;AAChF,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,aAAa,CAQhB;AAwBD,wBAAgB,oBAAoB,IAAI,aAAa,CAEpD;AAKD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CAGxD;AAED,iEAAiE;AACjE,wBAAgB,sBAAsB,IAAI,aAAa,GAAG,IAAI,CAE7D;AAED,wEAAwE;AACxE,wBAAgB,2BAA2B,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQpE;AAED,sFAAsF;AACtF,MAAM,MAAM,6BAA6B,GAAG,OAAO,CAAC;IAClD,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAClC,CAAC,wBAAwB,CAAC,EAAE,QAAQ,CAAC;IACrC,CAAC,0BAA0B,CAAC,EAAE,UAAU,CAAC;CAC1C,CAAC,CAAC;AAEH,+FAA+F;AAC/F,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChF,UAAU,CAAC,EAAE,CAAC,GACb,CAAC,CAAC,GAAG,6BAA6B,CAAC,GAAG,SAAS,CAMjD;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,MAAM,CAO7E;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,iDAAiD;AACjD,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD"}
1
+ {"version":3,"file":"deviceContext.d.ts","sourceRoot":"","sources":["../../../../src/deviceContext.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC;AACzC,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AACzC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,WAAW,CAAC;IACjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,kEAAkE;AAClE,eAAO,MAAM,gCAAgC,MAAM,CAAC;AAEpD,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AACxD,eAAO,MAAM,wBAAwB,cAAc,CAAC;AACpD,eAAO,MAAM,0BAA0B,gBAAgB,CAAC;AAExD,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,WAAW;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAIpF;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAEjE;AAED,4EAA4E;AAC5E,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,UAAU,GAAG,SAAS,CAWzB;AAED,gFAAgF;AAChF,wBAAgB,+BAA+B,CAAC,OAAO,EAAE;IACvD,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,aAAa,CAShB;AAwBD,wBAAgB,oBAAoB,IAAI,aAAa,CAEpD;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,aAAa,CAGxD;AAED,iEAAiE;AACjE,wBAAgB,sBAAsB,IAAI,aAAa,GAAG,IAAI,CAE7D;AAWD,sFAAsF;AACtF,MAAM,MAAM,6BAA6B,GAAG,OAAO,CAAC;IAClD,CAAC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IAClC,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACrC,CAAC,wBAAwB,CAAC,EAAE,QAAQ,CAAC;IACrC,CAAC,0BAA0B,CAAC,EAAE,UAAU,CAAC;CAC1C,CAAC,CAAC;AAmBH;;;GAGG;AACH,wBAAgB,gCAAgC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChF,UAAU,CAAC,EAAE,CAAC,GACb,CAAC,CAAC,GAAG,6BAA6B,CAAC,GAAG,SAAS,CAWjD;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,MAAM,CAO7E;AAED,mFAAmF;AACnF,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,mFAAmF;AACnF,wBAAgB,gCAAgC,IAAI,IAAI,CAGvD"}
@@ -73,9 +73,15 @@ export declare const Userflow: {
73
73
  * `init({ onNavigate })`). Wins over React Navigation / Expo Router / Linking.
74
74
  */
75
75
  setOnNavigate(handler: FlowNavigateHandler | null | undefined): void;
76
- /** Identify the current user and upsert their attributes. */
76
+ /**
77
+ * Identify the current user and upsert their attributes. The SDK adds `sdk_version`
78
+ * itself; a value passed for it here is ignored.
79
+ */
77
80
  identify(userId: string, attributes?: UserflowAttributes, options?: UserflowIdentifyOptions): Promise<void>;
78
- /** Identify an anonymous user with a stable auto-generated id stored on device. */
81
+ /**
82
+ * Identify an anonymous user with a stable auto-generated id stored on device. Like
83
+ * {@link identify}, the SDK sets `sdk_version` itself.
84
+ */
79
85
  identifyAnonymous(attributes?: UserflowAttributes, options?: UserflowIdentifyOptions): Promise<void>;
80
86
  /**
81
87
  * Handle an inbound URL. Returns `true` when it was a Userflow preview deep
@@ -114,8 +120,8 @@ export declare const Userflow: {
114
120
  */
115
121
  getHostAppVersion(): HostAppVersion | null;
116
122
  /**
117
- * Platform metadata cached during {@link init} (`sdk`, `deviceOs`, `deviceType`),
118
- * or `null` before init.
123
+ * Platform metadata cached during {@link init} (`sdk`, `sdkVersion`, `deviceOs`,
124
+ * `deviceType`), or `null` before init.
119
125
  */
120
126
  getDeviceContext(): DeviceContext | null;
121
127
  /** The flow session engine (created lazily; attach runs after identify). */
@@ -171,7 +177,7 @@ export declare const Userflow: {
171
177
  */
172
178
  logHostAppVersion(): void;
173
179
  /**
174
- * Log cached user-attribute values (`sdk`, `device_os`, `device_type`).
180
+ * Log cached user-attribute values (`sdk`, `sdk_version`, `device_os`, `device_type`).
175
181
  * Requires {@link init}; before init, logs that init is required.
176
182
  */
177
183
  logDeviceContext(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export declare const INSTALL_CHECK_HEADER = "[Userflow] Native setup is incomplete. Flows may not run until you fix the following, then rebuild the app (a Metro reload is not enough):";
2
2
  export declare const INSTALL_ASYNC_STORAGE_LINE = "- @react-native-async-storage/async-storage is not linked. Anonymous users and Builder pairing will not persist. Add it to the app package.json (npx expo install @react-native-async-storage/async-storage), run pod install on iOS, and rebuild.";
3
- export declare const INSTALL_VIEW_SHOT_LINE = "- react-native-view-shot is not linked, so Builder element selection gets no screenshot. Install it and rebuild. On Expo SDK 56 and 57, run npx expo install react-native-view-shot unpinned, with no expo.install.exclude entry for it. Otherwise install react-native-view-shot@^5.0.0; on Expo SDK 55 and older, an unpinned npx expo install resolves 4.0.3.";
3
+ export declare const INSTALL_VIEW_SHOT_LINE = "- react-native-view-shot is not linked, so Builder element selection gets no screenshot. Install it and rebuild. On Expo SDK 56 to 58, run npx expo install react-native-view-shot unpinned, with no expo.install.exclude entry for it. Otherwise install react-native-view-shot@^5.0.0; on Expo SDK 55 and older, an unpinned npx expo install resolves 4.0.3.";
4
4
  export declare const INSTALL_WEBVIEW_LINE = "- react-native-webview is not linked. Evaluate JavaScript and WebView banners will not run. Install it (npx expo install react-native-webview) and rebuild.";
5
5
  export declare const INSTALL_DEVICE_INFO_LINE = "- react-native-device-info is not linked, so app_version and app_build are not sent. npm install react-native-device-info, then rebuild.";
6
6
  export declare const INSTALL_CHECK_FOOTER = "See node_modules/@userflow-tech/react-native/docs/troubleshooting.md.";
@@ -16,7 +16,7 @@ export declare const INSTALL_SAFE_AREA_WARNING: string;
16
16
  export declare function formatViewShotVersionWarning(version: string): string;
17
17
  export declare const EXPO_GO_WARNING = "[Userflow] This app is running in Expo Go, which cannot load the SDK native modules. Builder preview links will not open the app. Use a development build (npx expo run:ios / npx expo run:android).";
18
18
  export declare const INIT_OPTIONS_IGNORED_WARNING = "[Userflow] Userflow.init() already ran with different options. The new clientToken, serverEndpoint, and pairingEndpoint are ignored because init runs once per process. Userflow.reset() does not apply new credentials. Restart the app to change them.";
19
- /** Dev warning when view-shot 4.x is installed. Null on 5.x or when it is absent. */
19
+ /** Dev warning when view-shot 4.x is installed. Null on 5.x and later, or when it is absent. */
20
20
  export declare function viewShotVersionWarning(): string | null;
21
21
  /** Lines for missing native modules. Empty when the build looks complete. */
22
22
  export declare function collectInstallFindings(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"installCheck.d.ts","sourceRoot":"","sources":["../../../../src/installCheck.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,+IAC6G,CAAC;AAE/I,eAAO,MAAM,0BAA0B,uPAC+M,CAAC;AAEvP,eAAO,MAAM,sBAAsB,qWACiU,CAAC;AAErW,eAAO,MAAM,oBAAoB,gKAC8H,CAAC;AAEhK,eAAO,MAAM,wBAAwB,6IACuG,CAAC;AAE7I,eAAO,MAAM,oBAAoB,0EACwC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,QAEhB,CAAC;AAEvB;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQpE;AAED,eAAO,MAAM,eAAe,yMAC4K,CAAC;AAEzM,eAAO,MAAM,4BAA4B,6PACmN,CAAC;AA0C7P,qFAAqF;AACrF,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAOtD;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAWjD;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAI7C;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CA0B9C;AAED,gBAAgB;AAChB,wBAAgB,yBAAyB,IAAI,IAAI,CAIhD;AAwBD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,IAAI,CAgBP;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C"}
1
+ {"version":3,"file":"installCheck.d.ts","sourceRoot":"","sources":["../../../../src/installCheck.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,+IAC6G,CAAC;AAE/I,eAAO,MAAM,0BAA0B,uPAC+M,CAAC;AAEvP,eAAO,MAAM,sBAAsB,oWACgU,CAAC;AAEpW,eAAO,MAAM,oBAAoB,gKAC8H,CAAC;AAEhK,eAAO,MAAM,wBAAwB,6IACuG,CAAC;AAE7I,eAAO,MAAM,oBAAoB,0EACwC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,yBAAyB,QAEhB,CAAC;AAEvB;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQpE;AAED,eAAO,MAAM,eAAe,yMAC4K,CAAC;AAEzM,eAAO,MAAM,4BAA4B,6PACmN,CAAC;AA0C7P,gGAAgG;AAChG,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAOtD;AAED,6EAA6E;AAC7E,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAWjD;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAI7C;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CA0B9C;AAED,gBAAgB;AAChB,wBAAgB,yBAAyB,IAAI,IAAI,CAIhD;AAwBD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,IAAI,CAgBP;AAED,wEAAwE;AACxE,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C"}
@@ -75,6 +75,7 @@ export declare class LifecycleController {
75
75
  private readonly scheduler;
76
76
  private readonly now;
77
77
  private readonly suspendGraceMs;
78
+ /** Wider than AppStateStatus: React Native 0.88 types currentState as `string | null | undefined`. */
78
79
  private readonly getCurrentAppState;
79
80
  private readonly subscribeAppState;
80
81
  private unsubscribeAppState;
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,cAAc,CAAC;AAE5E,2FAA2F;AAC3F,eAAO,MAAM,qBAAqB,QAAgB,CAAC;AAEnD,wEAAwE;AACxE,eAAO,MAAM,iCAAiC,QAAgB,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AAEtC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC;IACzD,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B;;;;;OAKG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,cAAc,CAAC;IAC1C,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CAC/E;AAYD;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAa;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuB;IAC1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4D;IAE9F,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,iFAAiF;IACjF,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,uBAAuB;IAczC,KAAK,IAAI,IAAI;IAYb,IAAI,IAAI,IAAI;IAWZ;;;OAGG;IACH,cAAc,IAAI,IAAI;IAOtB,yBAAyB;IACzB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAalD,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,cAAc;CAMvB"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAA2B,MAAM,cAAc,CAAC;AAE5E,2FAA2F;AAC3F,eAAO,MAAM,qBAAqB,QAAgB,CAAC;AAEnD,wEAAwE;AACxE,eAAO,MAAM,iCAAiC,QAAgB,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AAEtC,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,CAAC;IACzD,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B;;;;;OAKG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,OAAO,CAAC;IAChC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,MAAM,cAAc,CAAC;IAC1C,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CAC/E;AAYD;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAa;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,sGAAsG;IACtG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAkC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA4D;IAE9F,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,iFAAiF;IACjF,OAAO,CAAC,SAAS,CAAS;gBAEd,IAAI,EAAE,uBAAuB;IAczC,KAAK,IAAI,IAAI;IAYb,IAAI,IAAI,IAAI;IAWZ;;;OAGG;IACH,cAAc,IAAI,IAAI;IAOtB,yBAAyB;IACzB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAalD,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,YAAY;IAqCpB,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,cAAc;CAMvB"}
@@ -23,7 +23,7 @@ export interface PairingControllerOptions {
23
23
  */
24
24
  cancelPendingDraftEnd?: () => void;
25
25
  LinkingModule?: {
26
- getInitialURL(): Promise<string | null>;
26
+ getInitialURL(): Promise<string | null | undefined>;
27
27
  addEventListener(type: 'url', handler: (event: {
28
28
  url: string;
29
29
  }) => void): {