react-native-screen-transitions 3.11.0 → 3.11.2

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 (157) hide show
  1. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +27 -15
  2. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  3. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js +3 -1
  4. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -1
  5. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js +3 -5
  6. package/lib/commonjs/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  7. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js +5 -4
  8. package/lib/commonjs/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  9. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/components/host.js +1 -1
  10. package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/components/host.js.map +1 -1
  11. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +4 -15
  12. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  13. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +22 -24
  14. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -1
  15. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +3 -36
  16. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  17. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +1 -1
  18. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  19. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -1
  20. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
  21. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js +8 -4
  22. package/lib/commonjs/shared/components/boundary/utils/destination-signals.js.map +1 -1
  23. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js +2 -4
  24. package/lib/commonjs/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  25. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +3 -7
  26. package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  27. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +1 -3
  28. package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  29. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +3 -20
  30. package/lib/commonjs/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  31. package/lib/commonjs/shared/providers/screen/styles/helpers/create-interpolator-scope.js +40 -0
  32. package/lib/commonjs/shared/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -0
  33. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +15 -14
  34. package/lib/commonjs/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -1
  35. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +22 -27
  36. package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  37. package/lib/commonjs/shared/stores/bounds/internals/entries.js +27 -0
  38. package/lib/commonjs/shared/stores/bounds/internals/entries.js.map +1 -1
  39. package/lib/commonjs/shared/stores/bounds/internals/links.js +25 -0
  40. package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
  41. package/lib/commonjs/shared/stores/bounds/internals/resolver.js +2 -12
  42. package/lib/commonjs/shared/stores/bounds/internals/resolver.js.map +1 -1
  43. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js +2 -2
  44. package/lib/commonjs/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  45. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js +30 -18
  46. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.js.map +1 -1
  47. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js +3 -1
  48. package/lib/module/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.js.map +1 -1
  49. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js +3 -5
  50. package/lib/module/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.js.map +1 -1
  51. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js +5 -4
  52. package/lib/module/shared/components/boundary/hooks/use-boundary-measurement.js.map +1 -1
  53. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js +1 -1
  54. package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/components/host.js.map +1 -1
  55. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js +4 -15
  56. package/lib/module/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.js.map +1 -1
  57. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js +22 -24
  58. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.js.map +1 -1
  59. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +3 -36
  60. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
  61. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js +2 -2
  62. package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.js.map +1 -1
  63. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js +1 -1
  64. package/lib/module/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.js.map +1 -1
  65. package/lib/module/shared/components/boundary/utils/destination-signals.js +8 -4
  66. package/lib/module/shared/components/boundary/utils/destination-signals.js.map +1 -1
  67. package/lib/module/shared/components/boundary/utils/refresh-signals.js +2 -4
  68. package/lib/module/shared/components/boundary/utils/refresh-signals.js.map +1 -1
  69. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +4 -8
  70. package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
  71. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +1 -3
  72. package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
  73. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js +3 -19
  74. package/lib/module/shared/providers/screen/descriptors/helpers/get-ancestor-keys.js.map +1 -1
  75. package/lib/module/shared/providers/screen/styles/helpers/create-interpolator-scope.js +35 -0
  76. package/lib/module/shared/providers/screen/styles/helpers/create-interpolator-scope.js.map +1 -0
  77. package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js +15 -14
  78. package/lib/module/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.js.map +1 -1
  79. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +22 -27
  80. package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
  81. package/lib/module/shared/stores/bounds/internals/entries.js +27 -1
  82. package/lib/module/shared/stores/bounds/internals/entries.js.map +1 -1
  83. package/lib/module/shared/stores/bounds/internals/links.js +25 -2
  84. package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
  85. package/lib/module/shared/stores/bounds/internals/resolver.js +3 -13
  86. package/lib/module/shared/stores/bounds/internals/resolver.js.map +1 -1
  87. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js +3 -3
  88. package/lib/module/shared/utils/bounds/helpers/create-link-accessor.js.map +1 -1
  89. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.d.ts.map +1 -1
  90. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.d.ts.map +1 -1
  91. package/lib/typescript/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.d.ts.map +1 -1
  92. package/lib/typescript/shared/components/boundary/hooks/use-boundary-measurement.d.ts.map +1 -1
  93. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.d.ts.map +1 -1
  94. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts +1 -5
  95. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.d.ts.map +1 -1
  96. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
  97. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.d.ts.map +1 -1
  98. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts +0 -2
  99. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.d.ts.map +1 -1
  100. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts +2 -3
  101. package/lib/typescript/shared/components/boundary/utils/destination-signals.d.ts.map +1 -1
  102. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts +0 -2
  103. package/lib/typescript/shared/components/boundary/utils/refresh-signals.d.ts.map +1 -1
  104. package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
  105. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts +1 -3
  106. package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts.map +1 -1
  107. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts +0 -8
  108. package/lib/typescript/shared/providers/screen/descriptors/helpers/get-ancestor-keys.d.ts.map +1 -1
  109. package/lib/typescript/shared/providers/screen/styles/helpers/create-interpolator-scope.d.ts +9 -0
  110. package/lib/typescript/shared/providers/screen/styles/helpers/create-interpolator-scope.d.ts.map +1 -0
  111. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts +1 -3
  112. package/lib/typescript/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.d.ts.map +1 -1
  113. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts +4 -4
  114. package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
  115. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts +2 -1
  116. package/lib/typescript/shared/stores/bounds/internals/entries.d.ts.map +1 -1
  117. package/lib/typescript/shared/stores/bounds/internals/links.d.ts +3 -1
  118. package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
  119. package/lib/typescript/shared/stores/bounds/internals/resolver.d.ts.map +1 -1
  120. package/lib/typescript/shared/utils/bounds/helpers/create-link-accessor.d.ts.map +1 -1
  121. package/package.json +1 -1
  122. package/src/shared/components/boundary/hooks/lifecycles/use-initial-destination-measurement.ts +67 -24
  123. package/src/shared/components/boundary/hooks/lifecycles/use-initial-source-measurement.ts +6 -1
  124. package/src/shared/components/boundary/hooks/lifecycles/use-refresh-boundary.ts +8 -9
  125. package/src/shared/components/boundary/hooks/use-boundary-measurement.ts +5 -4
  126. package/src/shared/components/boundary/portal/components/boundary-content-portal/components/host.tsx +1 -1
  127. package/src/shared/components/boundary/portal/components/boundary-portal/components/portal-boundary-host.tsx +4 -20
  128. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-active-portal-boundary-host.ts +27 -37
  129. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +10 -57
  130. package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-host-measurement.ts +1 -8
  131. package/src/shared/components/boundary/portal/components/boundary-portal/stores/portal-boundary-host.store.ts +0 -3
  132. package/src/shared/components/boundary/utils/destination-signals.ts +8 -8
  133. package/src/shared/components/boundary/utils/refresh-signals.ts +2 -10
  134. package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +4 -11
  135. package/src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts +0 -4
  136. package/src/shared/providers/screen/descriptors/helpers/get-ancestor-keys.ts +3 -30
  137. package/src/shared/providers/screen/styles/helpers/create-interpolator-scope.ts +45 -0
  138. package/src/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.ts +16 -16
  139. package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +28 -35
  140. package/src/shared/stores/bounds/internals/entries.ts +38 -1
  141. package/src/shared/stores/bounds/internals/links.ts +36 -0
  142. package/src/shared/stores/bounds/internals/resolver.ts +7 -21
  143. package/src/shared/utils/bounds/helpers/create-link-accessor.ts +9 -3
  144. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js +0 -18
  145. package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +0 -1
  146. package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +0 -21
  147. package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +0 -1
  148. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js +0 -13
  149. package/lib/module/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.js.map +0 -1
  150. package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js +0 -16
  151. package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.js.map +0 -1
  152. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts +0 -3
  153. package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.d.ts.map +0 -1
  154. package/lib/typescript/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts +0 -2
  155. package/lib/typescript/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.d.ts.map +0 -1
  156. package/src/shared/components/boundary/portal/components/boundary-portal/helpers/has-local-slot.ts +0 -16
  157. package/src/shared/providers/screen/animation/helpers/accessors/use-build-bounds-accessor.tsx +0 -15
@@ -8,8 +8,6 @@ export declare const getRefreshBoundarySignal: (params: {
8
8
  currentScreenKey: string;
9
9
  sourcePairKey?: ScreenPairKey;
10
10
  destinationPairKey?: ScreenPairKey;
11
- ancestorDestinationPairKey?: ScreenPairKey;
12
- nextScreenKey?: string;
13
11
  linkId: string;
14
12
  group?: string;
15
13
  shouldRefresh: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"refresh-signals.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/components/boundary/utils/refresh-signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,cAAc,EACd,aAAa,EACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAK9C,KAAK,qBAAqB,GAAG,aAAa,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAiBF,eAAO,MAAM,wBAAwB,GAAI,QAAQ;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACnC,0BAA0B,CAAC,EAAE,aAAa,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC3B,KAAG,qBAAqB,GAAG,IAkG3B,CAAC"}
1
+ {"version":3,"file":"refresh-signals.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/components/boundary/utils/refresh-signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,cAAc,EACd,aAAa,EACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAK9C,KAAK,qBAAqB,GAAG,aAAa,GAAG;IAC5C,MAAM,EAAE,MAAM,CAAC;CACf,CAAC;AAiBF,eAAO,MAAM,wBAAwB,GAAI,QAAQ;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC3B,KAAG,qBAAqB,GAAG,IA4F3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"descriptors.provider.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/providers/screen/descriptors/descriptors.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAIrF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAEjD,MAAM,WAAW,uBAAuB,CACvC,WAAW,SAAS,cAAc,GAAG,cAAc;IAEnD,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,MAAM,iCAAiC,GAAG,qBAAqB,CAAC;AAEtE,UAAU,oBAAoB,CAC7B,WAAW,SAAS,cAAc,GAAG,cAAc,CAClD,SAAQ,uBAAuB,CAAC,WAAW,CAAC;IAC7C,WAAW,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAClD,WAAW,EAAE,iCAAiC,CAAC;IAC/C,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CAChC;AAED,KAAK,wBAAwB,GAAG;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAQ,mBAAmB,gDAAE,mBAAmB;;;CA8EtD,CAAC"}
1
+ {"version":3,"file":"descriptors.provider.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/providers/screen/descriptors/descriptors.provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAIrF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,mBAAmB,CAAC;AAEjD,MAAM,WAAW,uBAAuB,CACvC,WAAW,SAAS,cAAc,GAAG,cAAc;IAEnD,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,MAAM,iCAAiC,GAAG,qBAAqB,CAAC;AAEtE,UAAU,oBAAoB,CAC7B,WAAW,SAAS,cAAc,GAAG,cAAc,CAClD,SAAQ,uBAAuB,CAAC,WAAW,CAAC;IAC7C,WAAW,EAAE,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAClD,WAAW,EAAE,iCAAiC,CAAC;IAC/C,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CAChC;AAED,KAAK,wBAAwB,GAAG;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAQ,mBAAmB,gDAAE,mBAAmB;;;CAuEtD,CAAC"}
@@ -6,7 +6,6 @@ export interface DescriptorDerivations {
6
6
  nextScreenKey?: string;
7
7
  sourcePairKey?: ScreenPairKey;
8
8
  destinationPairKey?: ScreenPairKey;
9
- ancestorDestinationPairKey?: ScreenPairKey;
10
9
  parentScreenKey?: string;
11
10
  isFirstKey: boolean;
12
11
  isTopMostScreen: boolean;
@@ -18,8 +17,7 @@ interface Params {
18
17
  current: BaseStackDescriptor;
19
18
  next?: BaseStackDescriptor;
20
19
  ancestorKeys: string[];
21
- ancestorDestinationPairKey?: ScreenPairKey;
22
20
  }
23
- export declare function deriveDescriptorDerivations({ previous, current, next, ancestorKeys, ancestorDestinationPairKey, }: Params): DescriptorDerivations;
21
+ export declare function deriveDescriptorDerivations({ previous, current, next, ancestorKeys, }: Params): DescriptorDerivations;
24
22
  export {};
25
23
  //# sourceMappingURL=derive-descriptor-derivations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"derive-descriptor-derivations.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACnC,0BAA0B,CAAC,EAAE,aAAa,CAAC;IAC3C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;CACnC;AAED,UAAU,MAAM;IACf,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0BAA0B,CAAC,EAAE,aAAa,CAAC;CAC3C;AAED,wBAAgB,2BAA2B,CAAC,EAC3C,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,0BAA0B,GAC1B,EAAE,MAAM,GAAG,qBAAqB,CAiChC"}
1
+ {"version":3,"file":"derive-descriptor-derivations.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,yBAAyB,EAAE,OAAO,CAAC;CACnC;AAED,UAAU,MAAM;IACf,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,2BAA2B,CAAC,EAC3C,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,YAAY,GACZ,EAAE,MAAM,GAAG,qBAAqB,CAgChC"}
@@ -1,14 +1,6 @@
1
- import type { ScreenPairKey } from "../../../../stores/bounds/types";
2
1
  import type { BaseStackDescriptor } from "../../../../types/stack.types";
3
- export interface AncestorKeyState {
4
- ancestorKeys: string[];
5
- ancestorDestinationPairKey?: ScreenPairKey;
6
- }
7
2
  /**
8
3
  * Builds nested navigator ancestor keys from immediate parent to root.
9
- * The nearest ancestor destination pair lets child routes attach measurements
10
- * to the transition owned by the parent stack.
11
4
  */
12
- export declare function getAncestorKeyState(current: BaseStackDescriptor): AncestorKeyState;
13
5
  export declare function getAncestorKeys(current: BaseStackDescriptor): string[];
14
6
  //# sourceMappingURL=get-ancestor-keys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-ancestor-keys.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/descriptors/helpers/get-ancestor-keys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,MAAM,WAAW,gBAAgB;IAChC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0BAA0B,CAAC,EAAE,aAAa,CAAC;CAC3C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,mBAAmB,GAC1B,gBAAgB,CAkClB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAEtE"}
1
+ {"version":3,"file":"get-ancestor-keys.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/descriptors/helpers/get-ancestor-keys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAsBtE"}
@@ -0,0 +1,9 @@
1
+ import type { ScreenInterpolationProps, ScreenTransitionAccessor } from "../../../../types/animation.types";
2
+ import type { ScreenInterpolatorFrame } from "../../animation/helpers/pipeline";
3
+ import type { SelectedInterpolatorFrame } from "./select-interpolator-frame";
4
+ export declare const createInterpolatorScope: ({ frame, selectedFrame, transition, }: {
5
+ frame: ScreenInterpolatorFrame;
6
+ selectedFrame: SelectedInterpolatorFrame;
7
+ transition: ScreenTransitionAccessor;
8
+ }) => ScreenInterpolationProps;
9
+ //# sourceMappingURL=create-interpolator-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-interpolator-scope.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/styles/helpers/create-interpolator-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,wBAAwB,EACxB,wBAAwB,EACxB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAChF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAE7E,eAAO,MAAM,uBAAuB,GAAI,uCAIrC;IACF,KAAK,EAAE,uBAAuB,CAAC;IAC/B,aAAa,EAAE,yBAAyB,CAAC;IACzC,UAAU,EAAE,wBAAwB,CAAC;CACrC,KAAG,wBA4BH,CAAC"}
@@ -1,12 +1,10 @@
1
1
  import type { NormalizedTransitionInterpolatedStyle } from "../../../../types/animation.types";
2
2
  import type { LocalStyleLayers } from "./resolve-slot-styles";
3
- export declare const resolveInterpolatorStyleHandoff: ({ currentOwnsInterpolator, currentStylesMap, nextStylesMap, frozenCurrentStylesMap, }: {
3
+ export declare const resolveInterpolatorStyleHandoff: ({ currentOwnsInterpolator, currentStylesMap, nextStylesMap, }: {
4
4
  currentOwnsInterpolator: boolean;
5
5
  currentStylesMap: NormalizedTransitionInterpolatedStyle | undefined;
6
6
  nextStylesMap: NormalizedTransitionInterpolatedStyle | undefined;
7
- frozenCurrentStylesMap: NormalizedTransitionInterpolatedStyle;
8
7
  }) => {
9
8
  localStylesMaps: LocalStyleLayers;
10
- nextFrozenCurrentStylesMap: NormalizedTransitionInterpolatedStyle;
11
9
  };
12
10
  //# sourceMappingURL=resolve-interpolator-style-handoff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-interpolator-style-handoff.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,qCAAqC,EAErC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAiG9D,eAAO,MAAM,+BAA+B,GAAI,uFAK7C;IACF,uBAAuB,EAAE,OAAO,CAAC;IACjC,gBAAgB,EAAE,qCAAqC,GAAG,SAAS,CAAC;IACpE,aAAa,EAAE,qCAAqC,GAAG,SAAS,CAAC;IACjE,sBAAsB,EAAE,qCAAqC,CAAC;CAC9D,KAAG;IACH,eAAe,EAAE,gBAAgB,CAAC;IAClC,0BAA0B,EAAE,qCAAqC,CAAC;CAwBlE,CAAC"}
1
+ {"version":3,"file":"resolve-interpolator-style-handoff.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/styles/helpers/resolve-interpolator-style-handoff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,qCAAqC,EAErC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAiG9D,eAAO,MAAM,+BAA+B,GAAI,+DAI7C;IACF,uBAAuB,EAAE,OAAO,CAAC;IACjC,gBAAgB,EAAE,qCAAqC,GAAG,SAAS,CAAC;IACpE,aAAa,EAAE,qCAAqC,GAAG,SAAS,CAAC;CACjE,KAAG;IACH,eAAe,EAAE,gBAAgB,CAAC;CA2BlC,CAAC"}
@@ -16,10 +16,10 @@ import type { LocalStyleLayers } from "../helpers/resolve-slot-styles";
16
16
  * normal interpolator selection once the gesture-driven close is no longer in
17
17
  * play.
18
18
  *
19
- * At an ownership handoff, the last current-owner styles are frozen. The next
20
- * owner replaces matching scalar keys and composes its live transforms after
21
- * the frozen transforms. The previous interpolator is not evaluated again until
22
- * it regains ownership.
19
+ * At an ownership handoff, the current interpolator remains live but is
20
+ * evaluated without the next-screen relationship. The next owner replaces
21
+ * matching scalar keys and composes its live transforms after the current
22
+ * screen's self-owned transforms.
23
23
  */
24
24
  export declare const useInterpolatedStylesMap: ({ enabled, visibilityBlocked, }: {
25
25
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"use-interpolated-style-maps.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,WAAW,EAIhB,MAAM,yBAAyB,CAAC;AA2BjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AA8EvE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,wBAAwB,GAAI,iCAGtC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACxC;;;CA0MA,CAAC"}
1
+ {"version":3,"file":"use-interpolated-style-maps.d.ts","sourceRoot":"","sources":["../../../../../../../src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,WAAW,EAIhB,MAAM,yBAAyB,CAAC;AA2BjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AA6EvE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,wBAAwB,GAAI,iCAGtC;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACxC;;;CAoMA,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { Entry, EntryPatch, ScreenKey, TagID } from "../types";
2
2
  declare function getEntry(tag: TagID, key: ScreenKey): Entry | null;
3
+ declare function getMatchingSourceScreenKey(tag: TagID, destinationScreenKey: ScreenKey, preferredScreenKey?: ScreenKey, excludedScreenKeys?: readonly ScreenKey[]): ScreenKey | null;
3
4
  declare function setEntry(tag: TagID, screenKey: ScreenKey, patch: EntryPatch): void;
4
5
  declare function removeEntry(tag: TagID, screenKey: ScreenKey): void;
5
- export { getEntry, removeEntry, setEntry };
6
+ export { getEntry, getMatchingSourceScreenKey, removeEntry, setEntry };
6
7
  //# sourceMappingURL=entries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/stores/bounds/internals/entries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AA0DpE,iBAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI,CAG1D;AAED,iBAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,QAQpE;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,QAgBpD;AAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/stores/bounds/internals/entries.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AA0DpE,iBAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI,CAG1D;AAED,iBAAS,0BAA0B,CAClC,GAAG,EAAE,KAAK,EACV,oBAAoB,EAAE,SAAS,EAC/B,kBAAkB,CAAC,EAAE,SAAS,EAC9B,kBAAkB,CAAC,EAAE,SAAS,SAAS,EAAE,GACvC,SAAS,GAAG,IAAI,CA8BlB;AAED,iBAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,QAQpE;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,QAgBpD;AAED,OAAO,EAAE,QAAQ,EAAE,0BAA0B,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC"}
@@ -10,7 +10,9 @@ declare function getResolvedLink(pairKey: ScreenPairKey, tag: TagID): {
10
10
  tag: TagID;
11
11
  link: TagLink | null;
12
12
  };
13
+ declare function getPairKeyForSource(tag: TagID, screenKey: ScreenKey): ScreenPairKey | null;
14
+ declare function getPairKeyForDestination(tag: TagID, screenKey: ScreenKey): ScreenPairKey | null;
13
15
  declare function getSource(pairKey: ScreenPairKey, tag: TagID): TagLink["source"] | null;
14
16
  declare function getDestination(pairKey: ScreenPairKey, tag: TagID): TagLink["destination"] | null;
15
- export { getActiveGroupId, getDestination, getLink, getResolvedLink, getSource, requestSourceMeasure, setActiveGroupId, setDestination, setSource, };
17
+ export { getActiveGroupId, getDestination, getLink, getPairKeyForDestination, getPairKeyForSource, getResolvedLink, getSource, requestSourceMeasure, setActiveGroupId, setDestination, setSource, };
16
18
  //# sourceMappingURL=links.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/stores/bounds/internals/links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAa9E,OAAO,KAAK,EACX,oBAAoB,EACpB,QAAQ,EACR,OAAO,EAEP,SAAS,EACT,aAAa,EAEb,KAAK,EACL,OAAO,EACP,MAAM,UAAU,CAAC;AAgOlB,iBAAS,SAAS,CACjB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,UAAe,EACvB,KAAK,CAAC,EAAE,QAAQ,EAChB,YAAY,GAAE,oBAAyB,QAoCvC;AAED,iBAAS,cAAc,CACtB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,UAAe,EACvB,KAAK,CAAC,EAAE,QAAQ,EAChB,YAAY,GAAE,oBAAyB,QAmBvC;AAED,iBAAS,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,QAO5E;AAED,iBAAS,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,QAe/D;AAED,iBAAS,gBAAgB,CACxB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,GACb,OAAO,GAAG,IAAI,CAGhB;AAED,iBAAS,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAGnE;AASD,iBAAS,eAAe,CACvB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,GACR;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,CAiCtC;AAED,iBAAS,SAAS,CACjB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,GACR,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAG1B;AAED,iBAAS,cAAc,CACtB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,GACR,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAG/B;AAED,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,SAAS,GACT,CAAC"}
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/stores/bounds/internals/links.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAe9E,OAAO,KAAK,EACX,oBAAoB,EACpB,QAAQ,EACR,OAAO,EAEP,SAAS,EACT,aAAa,EAEb,KAAK,EACL,OAAO,EACP,MAAM,UAAU,CAAC;AAgOlB,iBAAS,SAAS,CACjB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,UAAe,EACvB,KAAK,CAAC,EAAE,QAAQ,EAChB,YAAY,GAAE,oBAAyB,QAoCvC;AAED,iBAAS,cAAc,CACtB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,UAAe,EACvB,KAAK,CAAC,EAAE,QAAQ,EAChB,YAAY,GAAE,oBAAyB,QAmBvC;AAED,iBAAS,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,QAO5E;AAED,iBAAS,oBAAoB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,QAe/D;AAED,iBAAS,gBAAgB,CACxB,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,QAAQ,GACb,OAAO,GAAG,IAAI,CAGhB;AAED,iBAAS,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAGnE;AASD,iBAAS,eAAe,CACvB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,GACR;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,CAiCtC;AAED,iBAAS,mBAAmB,CAC3B,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,SAAS,GAClB,aAAa,GAAG,IAAI,CActB;AAED,iBAAS,wBAAwB,CAChC,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,SAAS,GAClB,aAAa,GAAG,IAAI,CAQtB;AAED,iBAAS,SAAS,CACjB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,GACR,OAAO,CAAC,QAAQ,CAAC,GAAG,IAAI,CAG1B;AAED,iBAAS,cAAc,CACtB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,KAAK,GACR,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAG/B;AAED,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,SAAS,GACT,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/stores/bounds/internals/resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,sBAAsB,EACtB,wBAAwB,EAExB,KAAK,EACL,MAAM,UAAU,CAAC;AAoBlB,iBAAS,qBAAqB,CAC7B,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,wBAAwB,GAC/B,sBAAsB,CAaxB;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/stores/bounds/internals/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,sBAAsB,EACtB,wBAAwB,EACxB,KAAK,EACL,MAAM,UAAU,CAAC;AAGlB,iBAAS,qBAAqB,CAC7B,GAAG,EAAE,KAAK,EACV,OAAO,EAAE,wBAAwB,GAC/B,sBAAsB,CAkBxB;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-link-accessor.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/bounds/helpers/create-link-accessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,wBAAwB,EACxB,UAAU,EACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,KAAK,QAAQ,GAAG,MAAM,wBAAwB,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,UAAU,QAAQ,KAAG,YAsBvD,CAAC"}
1
+ {"version":3,"file":"create-link-accessor.d.ts","sourceRoot":"","sources":["../../../../../../src/shared/utils/bounds/helpers/create-link-accessor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,wBAAwB,EACxB,UAAU,EACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,KAAK,QAAQ,GAAG,MAAM,wBAAwB,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,UAAU,GAAG,IAAI,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,UAAU,QAAQ,KAAG,YA0BvD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screen-transitions",
3
- "version": "3.11.0",
3
+ "version": "3.11.2",
4
4
  "description": "Easy screen transitions for React Native and Expo",
5
5
  "author": "Ed",
6
6
  "license": "MIT",
@@ -1,4 +1,4 @@
1
- import { useCallback, useLayoutEffect } from "react";
1
+ import { useCallback, useLayoutEffect, useMemo } from "react";
2
2
  import {
3
3
  cancelAnimation,
4
4
  runOnUI,
@@ -7,10 +7,17 @@ import {
7
7
  withDelay,
8
8
  withTiming,
9
9
  } from "react-native-reanimated";
10
+ import { useStack } from "../../../../hooks/navigation/use-stack";
10
11
  import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
11
12
  import { AnimationStore } from "../../../../stores/animation.store";
12
- import { getSourceScreenKeyFromPairKey } from "../../../../stores/bounds/helpers/link-pairs.helpers";
13
- import { getEntry } from "../../../../stores/bounds/internals/entries";
13
+ import {
14
+ createScreenPairKey,
15
+ getSourceScreenKeyFromPairKey,
16
+ } from "../../../../stores/bounds/helpers/link-pairs.helpers";
17
+ import {
18
+ getEntry,
19
+ getMatchingSourceScreenKey,
20
+ } from "../../../../stores/bounds/internals/entries";
14
21
  import { getLink } from "../../../../stores/bounds/internals/links";
15
22
  import { pairs } from "../../../../stores/bounds/internals/state";
16
23
  import type { BoundTag } from "../../../../stores/bounds/types";
@@ -50,12 +57,21 @@ export const useInitialDestinationMeasurement = ({
50
57
  const destinationPairKey = useDescriptorsStore(
51
58
  (s) => s.derivations.destinationPairKey,
52
59
  );
53
- const ancestorDestinationPairKey = useDescriptorsStore(
54
- (s) => s.derivations.ancestorDestinationPairKey,
55
- );
56
60
  const destinationEnabled = enabled && !nextScreenKey;
57
- const initialDestinationPairKey =
58
- destinationPairKey ?? ancestorDestinationPairKey;
61
+ const canReceiveDestination = destinationEnabled && !!destinationPairKey;
62
+ const preferredSourceScreenKey = destinationPairKey
63
+ ? getSourceScreenKeyFromPairKey(destinationPairKey)
64
+ : undefined;
65
+ const stackScenes = useStack((store) => store.scenes);
66
+ // A retained closing screen can still have registered boundaries, but it
67
+ // cannot own a new transition link.
68
+ const closingSourceScreenKeys = useMemo(
69
+ () =>
70
+ stackScenes
71
+ .filter((scene) => scene.activity === "closing")
72
+ .map((scene) => scene.route.key),
73
+ [stackScenes],
74
+ );
59
75
  const progress = AnimationStore.getValue(
60
76
  currentScreenKey,
61
77
  "transitionProgress",
@@ -69,6 +85,7 @@ export const useInitialDestinationMeasurement = ({
69
85
  const retryToken = useSharedValue(0);
70
86
  const handshakeRetries = useSharedValue(0);
71
87
  const hasGivenUp = useSharedValue(0);
88
+ const hasFinishedInitialMeasurement = useSharedValue(0);
72
89
 
73
90
  const releaseLifecycleStartBlock = useCallback(() => {
74
91
  "worklet";
@@ -78,12 +95,25 @@ export const useInitialDestinationMeasurement = ({
78
95
  return;
79
96
  }
80
97
 
98
+ hasFinishedInitialMeasurement.set(1);
81
99
  isBlockingLifecycleStart.set(0);
82
100
  unblockLifecycleStart();
83
- }, [isBlockingLifecycleStart, retryToken, unblockLifecycleStart]);
101
+ }, [
102
+ hasFinishedInitialMeasurement,
103
+ isBlockingLifecycleStart,
104
+ retryToken,
105
+ unblockLifecycleStart,
106
+ ]);
84
107
 
85
108
  const claimLifecycleStartBlock = useCallback(() => {
86
109
  "worklet";
110
+ if (
111
+ !canReceiveDestination ||
112
+ hasFinishedInitialMeasurement.get() ||
113
+ !getMatchingSourceScreenKey(tag, currentScreenKey)
114
+ ) {
115
+ return;
116
+ }
87
117
 
88
118
  // The progress check and block claim must share one UI-thread operation.
89
119
  // Otherwise a JS-thread layout effect can observe zero, enqueue the block,
@@ -94,10 +124,18 @@ export const useInitialDestinationMeasurement = ({
94
124
 
95
125
  blockLifecycleStart();
96
126
  isBlockingLifecycleStart.set(1);
97
- }, [blockLifecycleStart, isBlockingLifecycleStart, progress]);
127
+ }, [
128
+ blockLifecycleStart,
129
+ canReceiveDestination,
130
+ currentScreenKey,
131
+ hasFinishedInitialMeasurement,
132
+ isBlockingLifecycleStart,
133
+ progress,
134
+ tag,
135
+ ]);
98
136
 
99
137
  useLayoutEffect(() => {
100
- if (!destinationEnabled || !initialDestinationPairKey) {
138
+ if (!canReceiveDestination) {
101
139
  return;
102
140
  }
103
141
 
@@ -115,9 +153,8 @@ export const useInitialDestinationMeasurement = ({
115
153
  };
116
154
  }, [
117
155
  claimLifecycleStartBlock,
118
- destinationEnabled,
119
156
  escapeClipping,
120
- initialDestinationPairKey,
157
+ canReceiveDestination,
121
158
  releaseLifecycleStartBlock,
122
159
  ]);
123
160
 
@@ -126,8 +163,8 @@ export const useInitialDestinationMeasurement = ({
126
163
  "worklet";
127
164
 
128
165
  if (
129
- !destinationEnabled ||
130
- !initialDestinationPairKey ||
166
+ !canReceiveDestination ||
167
+ hasFinishedInitialMeasurement.get() ||
131
168
  isBlockingLifecycleStart.get() <= 0
132
169
  ) {
133
170
  return null;
@@ -138,17 +175,22 @@ export const useInitialDestinationMeasurement = ({
138
175
  }
139
176
 
140
177
  const retryTick = retryToken.get();
141
- const sourceScreenKey = getSourceScreenKeyFromPairKey(
142
- initialDestinationPairKey,
178
+ const sourceScreenKey = getMatchingSourceScreenKey(
179
+ tag,
180
+ currentScreenKey,
181
+ preferredSourceScreenKey,
182
+ closingSourceScreenKeys,
143
183
  );
184
+ const pairKey = sourceScreenKey
185
+ ? createScreenPairKey(sourceScreenKey, currentScreenKey)
186
+ : undefined;
144
187
  const signal = getInitialDestinationMeasurementSignal({
145
188
  enabled: destinationEnabled,
146
- destinationPairKey,
147
- ancestorDestinationPairKey,
189
+ pairKey,
148
190
  linkId: linkKey,
149
191
  group,
150
192
  destinationPresent: getEntry(tag, currentScreenKey) !== null,
151
- sourcePresent: getEntry(tag, sourceScreenKey) !== null,
193
+ sourcePresent: sourceScreenKey !== null,
152
194
  linkState: pairs.get(),
153
195
  });
154
196
 
@@ -160,12 +202,12 @@ export const useInitialDestinationMeasurement = ({
160
202
  },
161
203
  (next, previous) => {
162
204
  "worklet";
163
- if (!next) {
205
+ if (!next || hasFinishedInitialMeasurement.get()) {
164
206
  return;
165
207
  }
166
208
 
167
209
  const [measurePairKey, action, retryTick] = next;
168
- if (!measurePairKey || !action) {
210
+ if (!action) {
169
211
  return;
170
212
  }
171
213
 
@@ -191,19 +233,20 @@ export const useInitialDestinationMeasurement = ({
191
233
  return;
192
234
  }
193
235
 
194
- if (action === "measure") {
236
+ if (action === "measure" && measurePairKey) {
195
237
  measureBoundary({
196
238
  type: "destination",
197
239
  pairKey: measurePairKey,
198
240
  });
199
241
  }
200
242
 
201
- const link = getLink(measurePairKey, linkKey);
243
+ const link = measurePairKey ? getLink(measurePairKey, linkKey) : null;
202
244
  const linkComplete = !!link?.source && !!link.destination;
203
245
 
204
246
  if (linkComplete || action === "complete") {
205
247
  cancelAnimation(retryToken);
206
248
  handshakeRetries.set(0);
249
+ hasFinishedInitialMeasurement.set(1);
207
250
  if (escapeClipping) {
208
251
  // Screen-level escape has a second readiness phase after destination
209
252
  // matching: the host must commit before the transition starts, or
@@ -1,5 +1,6 @@
1
1
  import { useAnimatedReaction, useSharedValue } from "react-native-reanimated";
2
2
  import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
3
+ import { getPairKeyForSource } from "../../../../stores/bounds/internals/links";
3
4
  import { pairs } from "../../../../stores/bounds/internals/state";
4
5
  import type { BoundTag } from "../../../../stores/bounds/types";
5
6
  import type { MeasureBoundary } from "../../types";
@@ -11,12 +12,16 @@ export const useInitialSourceMeasurement = (params: {
11
12
  boundTag: BoundTag;
12
13
  }) => {
13
14
  const { enabled, measureBoundary, boundTag } = params;
14
- const sourcePairKey = useDescriptorsStore((s) => s.derivations.sourcePairKey);
15
+ const currentScreenKey = useDescriptorsStore(
16
+ (s) => s.derivations.currentScreenKey,
17
+ );
15
18
  const lastSourceCaptureSignal = useSharedValue<string | null>(null);
16
19
 
17
20
  useAnimatedReaction(
18
21
  () => {
19
22
  "worklet";
23
+ const sourcePairKey =
24
+ getPairKeyForSource(boundTag.tag, currentScreenKey) ?? undefined;
20
25
  return getInitialSourceCaptureSignal({
21
26
  enabled,
22
27
  sourcePairKey,
@@ -1,6 +1,10 @@
1
1
  import { useAnimatedReaction } from "react-native-reanimated";
2
2
  import { useDescriptorsStore } from "../../../../providers/screen/descriptors";
3
3
  import { AnimationStore } from "../../../../stores/animation.store";
4
+ import {
5
+ getPairKeyForDestination,
6
+ getPairKeyForSource,
7
+ } from "../../../../stores/bounds/internals/links";
4
8
  import { pairs } from "../../../../stores/bounds/internals/state";
5
9
  import type { BoundTag } from "../../../../stores/bounds/types";
6
10
  import type { MeasureBoundary } from "../../types";
@@ -22,13 +26,6 @@ export const useRefreshBoundary = ({
22
26
  (s) => s.derivations.currentScreenKey,
23
27
  );
24
28
  const nextScreenKey = useDescriptorsStore((s) => s.derivations.nextScreenKey);
25
- const sourcePairKey = useDescriptorsStore((s) => s.derivations.sourcePairKey);
26
- const destinationPairKey = useDescriptorsStore(
27
- (s) => s.derivations.destinationPairKey,
28
- );
29
- const ancestorDestinationPairKey = useDescriptorsStore(
30
- (s) => s.derivations.ancestorDestinationPairKey,
31
- );
32
29
  // Source-side boundaries refresh from the next screen's lifecycle pulse.
33
30
  // Destination-side boundaries have no next screen, so they refresh from self.
34
31
  const refreshScreenKey = nextScreenKey ?? currentScreenKey;
@@ -46,14 +43,16 @@ export const useRefreshBoundary = ({
46
43
  if (!shouldRefresh) {
47
44
  return null;
48
45
  }
46
+ const sourcePairKey =
47
+ getPairKeyForSource(boundTag.tag, currentScreenKey) ?? undefined;
48
+ const destinationPairKey =
49
+ getPairKeyForDestination(boundTag.tag, currentScreenKey) ?? undefined;
49
50
 
50
51
  return getRefreshBoundarySignal({
51
52
  enabled,
52
53
  currentScreenKey,
53
54
  sourcePairKey,
54
55
  destinationPairKey,
55
- ancestorDestinationPairKey,
56
- nextScreenKey,
57
56
  linkId: linkKey,
58
57
  group,
59
58
  shouldRefresh,
@@ -60,10 +60,11 @@ export const useBoundaryMeasurement = ({
60
60
  escapeClipping,
61
61
  });
62
62
 
63
- // Register/unregister this boundary in the presence map so source/destination
64
- // matching can resolve across concrete screen keys.
63
+ // Presence and source capture must not depend on this screen owning an
64
+ // interpolator: a nested source can participate in a transition owned by a
65
+ // different navigator.
65
66
  useBoundaryPresence({
66
- enabled: runtimeEnabled,
67
+ enabled,
67
68
  boundTag,
68
69
  currentScreenKey,
69
70
  boundaryConfig,
@@ -72,7 +73,7 @@ export const useBoundaryMeasurement = ({
72
73
  });
73
74
 
74
75
  useInitialSourceMeasurement({
75
- enabled: runtimeEnabled,
76
+ enabled,
76
77
  measureBoundary,
77
78
  boundTag,
78
79
  });
@@ -46,7 +46,7 @@ export const BoundaryContentPortalHost = memo(
46
46
 
47
47
  const styles = StyleSheet.create({
48
48
  host: {
49
- ...StyleSheet.absoluteFillObject,
49
+ ...StyleSheet.flatten(StyleSheet.absoluteFill),
50
50
  overflow: "visible",
51
51
  },
52
52
  });
@@ -16,7 +16,6 @@ import { getLink } from "../../../../../../stores/bounds/internals/links";
16
16
  import { SystemStore } from "../../../../../../stores/system.store";
17
17
  import type { ScrollMeasuredDimensions } from "../../../../utils/measured-bounds";
18
18
  import { NativePortalHost, PORTAL_POINTER_EVENTS } from "../../../teleport";
19
- import { hasLocalSlot } from "../helpers/has-local-slot";
20
19
  import { resolvePortalOffsetStyle } from "../helpers/offset-style";
21
20
  import { getPortalHostBounds } from "../stores/host-bounds.store";
22
21
  import type { ActivePortalBoundaryHost } from "../stores/portal-boundary-host.store";
@@ -44,11 +43,10 @@ export const PortalBoundaryHost = memo(function PortalBoundaryHost({
44
43
  }
45
44
 
46
45
  const link = getLink(host.pairKey, host.boundaryId);
47
- const hasGeometry =
48
- link?.source !== null &&
49
- link !== undefined &&
50
- getPortalHostBounds(host.hostKey) !== null &&
51
- hasLocalSlot(host.localStylesMaps.get(), host.boundaryId);
46
+ const hasSource = !!link?.source;
47
+ const hasHostBounds = getPortalHostBounds(host.hostKey) !== null;
48
+ const hasSlot = host.slotsMap.get()[host.boundaryId] !== undefined;
49
+ const hasGeometry = hasSource && hasHostBounds && hasSlot;
52
50
 
53
51
  if (!hasGeometry) {
54
52
  geometryReadyFrames.set(0);
@@ -103,20 +101,6 @@ export const PortalBoundaryHost = memo(function PortalBoundaryHost({
103
101
  });
104
102
  const slotStyle = useAnimatedStyle(() => {
105
103
  "worklet";
106
- // `slotsMap` is the resolved map: it may contain real interpolator output,
107
- // inherited styles, or resolver-created reset patches for slots that just
108
- // disappeared. Normal components need those reset patches so stale styles
109
- // clear correctly.
110
- //
111
- // A screen-level portal host is different. It is only the temporary visual
112
- // receiver for teleported content, not the original component that needs a
113
- // cleanup frame. If the current local interpolator layers did not emit this
114
- // boundary id, any resolved style here is cleanup/stale residue and should
115
- // not be drawn by the host.
116
- if (!hasLocalSlot(host.localStylesMaps.get(), host.boundaryId)) {
117
- return NO_STYLES;
118
- }
119
-
120
104
  const slot = host.slotsMap.get()[host.boundaryId];
121
105
 
122
106
  return composeSlotStyleWithLocalTransform(