@oxyhq/bloom 1.5.0 → 1.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 (50) hide show
  1. package/NOTICE +46 -0
  2. package/docs/media-flight.mdx +162 -3
  3. package/lib/commonjs/media-flight/MediaFlightHost.js +14 -1
  4. package/lib/commonjs/media-flight/MediaFlightHost.js.map +1 -1
  5. package/lib/commonjs/media-flight/MediaFlightHost.web.js +9 -1
  6. package/lib/commonjs/media-flight/MediaFlightHost.web.js.map +1 -1
  7. package/lib/commonjs/media-flight/MediaFlightLayer.js +4 -5
  8. package/lib/commonjs/media-flight/MediaFlightLayer.js.map +1 -1
  9. package/lib/commonjs/media-flight/media-node.web.js +37 -1
  10. package/lib/commonjs/media-flight/media-node.web.js.map +1 -1
  11. package/lib/module/media-flight/MediaFlightHost.js +14 -1
  12. package/lib/module/media-flight/MediaFlightHost.js.map +1 -1
  13. package/lib/module/media-flight/MediaFlightHost.web.js +9 -1
  14. package/lib/module/media-flight/MediaFlightHost.web.js.map +1 -1
  15. package/lib/module/media-flight/MediaFlightLayer.js +4 -5
  16. package/lib/module/media-flight/MediaFlightLayer.js.map +1 -1
  17. package/lib/module/media-flight/media-node.web.js +37 -1
  18. package/lib/module/media-flight/media-node.web.js.map +1 -1
  19. package/lib/typescript/commonjs/media-flight/MediaFlightHost.d.ts +2 -1
  20. package/lib/typescript/commonjs/media-flight/MediaFlightHost.d.ts.map +1 -1
  21. package/lib/typescript/commonjs/media-flight/MediaFlightHost.web.d.ts +9 -1
  22. package/lib/typescript/commonjs/media-flight/MediaFlightHost.web.d.ts.map +1 -1
  23. package/lib/typescript/commonjs/media-flight/MediaFlightLayer.d.ts.map +1 -1
  24. package/lib/typescript/commonjs/media-flight/index.d.ts +1 -1
  25. package/lib/typescript/commonjs/media-flight/index.d.ts.map +1 -1
  26. package/lib/typescript/commonjs/media-flight/index.web.d.ts +1 -1
  27. package/lib/typescript/commonjs/media-flight/index.web.d.ts.map +1 -1
  28. package/lib/typescript/commonjs/media-flight/media-node.web.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/media-flight/types.d.ts +24 -7
  30. package/lib/typescript/commonjs/media-flight/types.d.ts.map +1 -1
  31. package/lib/typescript/module/media-flight/MediaFlightHost.d.ts +2 -1
  32. package/lib/typescript/module/media-flight/MediaFlightHost.d.ts.map +1 -1
  33. package/lib/typescript/module/media-flight/MediaFlightHost.web.d.ts +9 -1
  34. package/lib/typescript/module/media-flight/MediaFlightHost.web.d.ts.map +1 -1
  35. package/lib/typescript/module/media-flight/MediaFlightLayer.d.ts.map +1 -1
  36. package/lib/typescript/module/media-flight/index.d.ts +1 -1
  37. package/lib/typescript/module/media-flight/index.d.ts.map +1 -1
  38. package/lib/typescript/module/media-flight/index.web.d.ts +1 -1
  39. package/lib/typescript/module/media-flight/index.web.d.ts.map +1 -1
  40. package/lib/typescript/module/media-flight/media-node.web.d.ts.map +1 -1
  41. package/lib/typescript/module/media-flight/types.d.ts +24 -7
  42. package/lib/typescript/module/media-flight/types.d.ts.map +1 -1
  43. package/package.json +2 -1
  44. package/src/media-flight/MediaFlightHost.tsx +21 -4
  45. package/src/media-flight/MediaFlightHost.web.tsx +20 -4
  46. package/src/media-flight/MediaFlightLayer.tsx +4 -5
  47. package/src/media-flight/index.ts +3 -0
  48. package/src/media-flight/index.web.ts +3 -0
  49. package/src/media-flight/media-node.web.ts +42 -1
  50. package/src/media-flight/types.ts +27 -7
@@ -162,6 +162,42 @@ function pick(claims) {
162
162
  return best;
163
163
  }
164
164
 
165
+ /**
166
+ * An element that can be MOVED rather than removed and re-inserted.
167
+ *
168
+ * `moveBefore` is newer than TypeScript's DOM library, so the capability is
169
+ * named here and checked at runtime rather than assumed.
170
+ */
171
+
172
+ /**
173
+ * DERIVED FROM react-native-teleport 1.2.0 — `src/views/Portal/index.tsx`,
174
+ * its `moveElementTo`. MIT, Copyright (c) 2025 Kiryl Ziusko; see `NOTICE`.
175
+ *
176
+ * Changed: typed for TypeScript's DOM library, which does not know `moveBefore`
177
+ * yet, and reduced to the append case Bloom needs (no `before` sibling).
178
+ *
179
+ * Why it is worth taking rather than keeping `appendChild`: `appendChild` of an
180
+ * ATTACHED node is a remove followed by an insert, and the only reason media
181
+ * survives it is that HTML's removal steps await a stable state and abort if
182
+ * the node is back in a document by then. `moveBefore` does not run the removal
183
+ * steps at all — it is the state-preserving primitive, which matters for
184
+ * anything the abort does not cover: focus, `<iframe>`s, CSS animations.
185
+ *
186
+ * Measured for a playing `<video>` in Chrome 151: indistinguishable from
187
+ * `appendChild` (ct 0.60 -> 1.00, never paused, 6 frames, worst frame gap
188
+ * 100 ms — the clip's own cadence — under both), while a real removal pauses
189
+ * and freezes. So this is not a fix for a defect Bloom has; it is the correct
190
+ * primitive for the ones it does not have yet.
191
+ */
192
+ function moveInto(parent, child) {
193
+ if (supportsMoveBefore && child.parentNode !== null) {
194
+ parent.moveBefore(child, null);
195
+ return;
196
+ }
197
+ parent.appendChild(child);
198
+ }
199
+ const supportsMoveBefore = typeof Element !== 'undefined' && 'moveBefore' in Element.prototype;
200
+
165
201
  /**
166
202
  * Put the wrapper where its top claim says, in ONE synchronous move.
167
203
  *
@@ -174,7 +210,7 @@ function place(record) {
174
210
  const target = topClaim(record)?.el ?? holder(reg);
175
211
  if (target === null) return;
176
212
  if (record.wrapper.parentElement === target) return;
177
- target.appendChild(record.wrapper);
213
+ moveInto(target, record.wrapper);
178
214
  }
179
215
  function sameRender(a, b) {
180
216
  if (a.contentFit !== b.contentFit) return false;
@@ -1 +1 @@
1
- {"version":3,"names":["hasFlight","HOST_RANK","FLIGHT_RANK","registry","globalThis","__oxyhq_bloom_media_nodes__","nodes","Map","listeners","Set","snapshot","holder","seq","HOLDER_ID","reg","document","isConnected","existing","getElementById","created","createElement","id","style","cssText","setAttribute","body","appendChild","makeWrapper","wrapper","recordFor","render","record","get","claims","EMPTY_RENDER","set","content","uri","contentFit","renderVideo","undefined","nativeControls","accessibilityLabel","flightId","topClaim","pick","topRender","filter","claim","best","rank","place","target","el","parentElement","sameRender","a","b","x","y","kind","player","poster","publish","next","push","previous","unchanged","length","every","view","i","candidate","listener","claimMediaNode","find","releaseMediaNode","before","delete","remove","hasMediaNode","subscribeToMediaNodes","add","getMediaNodes","resetMediaNodes","values","clear"],"sourceRoot":"../../../src","sources":["media-flight/media-node.web.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["hasFlight","HOST_RANK","FLIGHT_RANK","registry","globalThis","__oxyhq_bloom_media_nodes__","nodes","Map","listeners","Set","snapshot","holder","seq","HOLDER_ID","reg","document","isConnected","existing","getElementById","created","createElement","id","style","cssText","setAttribute","body","appendChild","makeWrapper","wrapper","recordFor","render","record","get","claims","EMPTY_RENDER","set","content","uri","contentFit","renderVideo","undefined","nativeControls","accessibilityLabel","flightId","topClaim","pick","topRender","filter","claim","best","rank","moveInto","parent","child","supportsMoveBefore","parentNode","moveBefore","Element","prototype","place","target","el","parentElement","sameRender","a","b","x","y","kind","player","poster","publish","next","push","previous","unchanged","length","every","view","i","candidate","listener","claimMediaNode","find","releaseMediaNode","before","delete","remove","hasMediaNode","subscribeToMediaNodes","add","getMediaNodes","resetMediaNodes","values","clear"],"sourceRoot":"../../../src","sources":["media-flight/media-node.web.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
+ import type { VideoPlayerLike } from './expo-video-module';
1
2
  import type { MediaFlightHostProps } from './types';
2
- export declare function MediaFlightHost({ id, content, style, contentFit, renderVideo, nativeControls, accessibilityLabel, surfaceType, pointerEvents, flightId, }: MediaFlightHostProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare function MediaFlightHost<P extends VideoPlayerLike = VideoPlayerLike>({ id, content, style, contentFit, renderVideo, nativeControls, accessibilityLabel, surfaceType, pointerEvents, flightId, }: MediaFlightHostProps<P>): import("react/jsx-runtime").JSX.Element;
3
4
  export declare namespace MediaFlightHost {
4
5
  var displayName: string;
5
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFlightHost.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightHost.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,WAAW,EACX,cAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,QAAQ,GACT,EAAE,oBAAoB,2CAsBtB;yBAjCe,eAAe"}
1
+ {"version":3,"file":"MediaFlightHost.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightHost.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,SAAS,CAAC;AAkBpE,wBAAgB,eAAe,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,EAC3E,EAAE,EACF,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,WAAW,EACX,cAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,QAAQ,GACT,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CAsBzB;yBAjCe,eAAe"}
@@ -1,5 +1,13 @@
1
+ import type { VideoPlayerLike } from './expo-video-module';
1
2
  import type { MediaFlightHostProps } from './types';
2
- export declare function MediaFlightHost({ id, content, style, contentFit, renderVideo, nativeControls, accessibilityLabel, pointerEvents, flightId, }: MediaFlightHostProps): import("react/jsx-runtime").JSX.Element;
3
+ /**
4
+ * The web host publishes its slot to the layer, which paints every shared node
5
+ * through one non-generic `MediaSurface`. Widening is sound for the same reason
6
+ * as the native host's `widenSlot`: the only player Bloom ever hands a slot is
7
+ * the one it took out of that slot's own `content`. Bloom transports the
8
+ * object; it never substitutes one.
9
+ */
10
+ export declare function MediaFlightHost<P extends VideoPlayerLike = VideoPlayerLike>({ id, content, style, contentFit, renderVideo, nativeControls, accessibilityLabel, pointerEvents, flightId, }: MediaFlightHostProps<P>): import("react/jsx-runtime").JSX.Element;
3
11
  export declare namespace MediaFlightHost {
4
12
  var displayName: string;
5
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFlightHost.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightHost.web.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,WAAW,EACX,cAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,QAAQ,GACT,EAAE,oBAAoB,2CA6CtB;yBAvDe,eAAe"}
1
+ {"version":3,"file":"MediaFlightHost.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightHost.web.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,SAAS,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,EAC3E,EAAE,EACF,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,WAAW,EACX,cAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,QAAQ,GACT,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CAqDzB;yBA/De,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFlightLayer.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightLayer.tsx"],"names":[],"mappings":"AA+CA;;;;;GAKG;AACH,wBAAgB,gBAAgB,mDAkB/B;yBAlBe,gBAAgB"}
1
+ {"version":3,"file":"MediaFlightLayer.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightLayer.tsx"],"names":[],"mappings":"AA8CA;;;;;GAKG;AACH,wBAAgB,gBAAgB,mDAkB/B;yBAlBe,gBAAgB"}
@@ -5,6 +5,6 @@ export { useMediaFlight } from './use-media-flight';
5
5
  export { DEFAULT_FLIGHT_CORNER_RADIUS, flightProgress, handOffFlight, hasFlight, releaseFlight, resetMediaFlight, } from './store';
6
6
  export { SURFACE_MOUNT_TIMEOUT_MS } from './constants';
7
7
  export { loadExpoVideo, warnExpoVideoUnavailable, provideExpoVideo, resetExpoVideoModule, type ExpoVideoLike, type VideoPlayerLike, type VideoSurfaceContentFit, type VideoSurfaceType, type VideoViewLikeProps, } from './expo-video-module';
8
- export type { MediaFlight, MediaFlightAnchorNode, MediaFlightController, MediaFlightHostProps, MediaFlightOptions, MediaSurfaceContent, MediaSurfaceImage, MediaSurfaceVideo, MeasuredRect, } from './types';
8
+ export type { MediaFlight, MediaFlightAnchorNode, MediaFlightController, MediaFlightHostProps, MediaSurfaceVideoOf, MediaVideoSlot, MediaVideoSlotProps, MediaFlightOptions, MediaSurfaceContent, MediaSurfaceImage, MediaSurfaceVideo, MeasuredRect, } from './types';
9
9
  export type { MediaSurfaceProps } from './MediaSurface';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -14,6 +14,6 @@ export { useMediaFlight } from './use-media-flight';
14
14
  export { DEFAULT_FLIGHT_CORNER_RADIUS, flightProgress, handOffFlight, hasFlight, releaseFlight, resetMediaFlight, } from './store';
15
15
  export { SURFACE_MOUNT_TIMEOUT_MS } from './constants';
16
16
  export { loadExpoVideo, warnExpoVideoUnavailable, provideExpoVideo, resetExpoVideoModule, type ExpoVideoLike, type VideoPlayerLike, type VideoSurfaceContentFit, type VideoSurfaceType, type VideoViewLikeProps, } from './expo-video-module';
17
- export type { MediaFlight, MediaFlightAnchorNode, MediaFlightController, MediaFlightHostProps, MediaFlightOptions, MediaSurfaceContent, MediaSurfaceImage, MediaSurfaceVideo, MeasuredRect, } from './types';
17
+ export type { MediaFlight, MediaFlightAnchorNode, MediaFlightController, MediaFlightHostProps, MediaSurfaceVideoOf, MediaVideoSlot, MediaVideoSlotProps, MediaFlightOptions, MediaSurfaceContent, MediaSurfaceImage, MediaSurfaceVideo, MeasuredRect, } from './types';
18
18
  export type { MediaSurfaceProps } from './MediaSurface';
19
19
  //# sourceMappingURL=index.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/index.web.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/index.web.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"media-node.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/media-node.web.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEnE,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;IAChC,iFAAiF;IACjF,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,6EAA6E;AAC7E,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,UAAU,cAAc;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB;;;;;;;;OAQG;IACH,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpC,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,2BAA2B,EAAE,YAAY,GAAG,SAAS,CAAC;CAC3D;AAuJD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,GACvB,IAAI,CAgBN;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAehF;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAMtE;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,SAAS,aAAa,EAAE,CAExD;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,IAAI,CAUtC"}
1
+ {"version":3,"file":"media-node.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/media-node.web.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEnE,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;IAChC,iFAAiF;IACjF,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,6EAA6E;AAC7E,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,UAAU,cAAc;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB;;;;;;;;OAQG;IACH,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpC,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,2BAA2B,EAAE,YAAY,GAAG,SAAS,CAAC;CAC3D;AAgMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,GACvB,IAAI,CAgBN;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAehF;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAMtE;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,SAAS,aAAa,EAAE,CAExD;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,IAAI,CAUtC"}
@@ -57,6 +57,18 @@ export interface MediaSurfaceVideo {
57
57
  }
58
58
  /** What a media surface paints: a still image, or a consumer-owned video. */
59
59
  export type MediaSurfaceContent = MediaSurfaceImage | MediaSurfaceVideo;
60
+ /**
61
+ * `MediaSurfaceVideo` carrying the consumer's OWN player type.
62
+ *
63
+ * Bloom transports that object; it never reads it. Narrowing it to
64
+ * `VideoPlayerLike` on the way through would be Bloom asserting something about
65
+ * cargo — and it would land on the consumer, who then has to cast the player
66
+ * back before handing it to expo-video's `VideoView`. A contract that pushes a
67
+ * consumer towards `as` ends up as an `as any` in someone's repo.
68
+ */
69
+ export interface MediaSurfaceVideoOf<P extends VideoPlayerLike> extends MediaSurfaceVideo {
70
+ player: P;
71
+ }
60
72
  /**
61
73
  * A media surface currently owned by the flight layer.
62
74
  *
@@ -216,7 +228,7 @@ export interface MediaFlightController {
216
228
  * INTRINSIC size (300x150) instead of stretching — so a slot that drops this
217
229
  * style paints a 300x150 video inside whatever box it was given. Spread it.
218
230
  */
219
- export interface MediaVideoSlotProps {
231
+ export interface MediaVideoSlotProps<P extends VideoPlayerLike = VideoPlayerLike> {
220
232
  /**
221
233
  * The player Bloom was given — never one Bloom created.
222
234
  *
@@ -227,7 +239,7 @@ export interface MediaVideoSlotProps {
227
239
  * anything else here — keeping the old player, unmounting instead — brings
228
240
  * that defect back. See `releaseFlight`.
229
241
  */
230
- player: VideoPlayerLike | null;
242
+ player: P | null;
231
243
  /** Fills the box. Spread it — see above. */
232
244
  style: StyleProp<ViewStyle>;
233
245
  contentFit: 'contain' | 'cover';
@@ -249,7 +261,7 @@ export interface MediaVideoSlotProps {
249
261
  * layer, compared by identity — a new function every render republishes every
250
262
  * render. Correct either way, wasteful if you skip it.
251
263
  */
252
- export type MediaVideoSlot = (props: MediaVideoSlotProps) => ReactNode;
264
+ export type MediaVideoSlot<P extends VideoPlayerLike = VideoPlayerLike> = (props: MediaVideoSlotProps<P>) => ReactNode;
253
265
  /**
254
266
  * A place a media surface may live: the feed row it starts in, the fullscreen
255
267
  * player it lands in, and every other end of a flight.
@@ -260,11 +272,16 @@ export type MediaVideoSlot = (props: MediaVideoSlotProps) => ReactNode;
260
272
  * ever leaving the document. On native a host renders its media inline, which
261
273
  * is what it has always done and what the platform makes correct there.
262
274
  */
263
- export interface MediaFlightHostProps {
275
+ export interface MediaFlightHostProps<P extends VideoPlayerLike = VideoPlayerLike> {
264
276
  /** The id this host shares with the flight and with the other end. */
265
277
  id: string;
266
- /** What to paint: a still image, or a consumer-owned expo-video player. */
267
- content: MediaSurfaceContent;
278
+ /**
279
+ * What to paint: a still image, or a consumer-owned expo-video player.
280
+ *
281
+ * The player's own type flows from here into {@link renderVideo}, so a slot
282
+ * gets back exactly what it put in and hands it to `VideoView` with no cast.
283
+ */
284
+ content: MediaSurfaceImage | MediaSurfaceVideoOf<P>;
268
285
  /** Style of the host BOX. Give it the radius and `overflow: 'hidden'` you want. */
269
286
  style?: StyleProp<ViewStyle>;
270
287
  /** How the media fills the box. Defaults to `'cover'`. */
@@ -273,7 +290,7 @@ export interface MediaFlightHostProps {
273
290
  * Paint the video yourself, keeping your own `ref` and expo-video props. See
274
291
  * {@link MediaVideoSlot}; memoise it.
275
292
  */
276
- renderVideo?: MediaVideoSlot;
293
+ renderVideo?: MediaVideoSlot<P>;
277
294
  /** Whether the video arm shows expo-video's own controls. Defaults to `false`. */
278
295
  nativeControls?: boolean;
279
296
  accessibilityLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import type { VideoPlayerLike } from './expo-video-module';
1
2
  import type { MediaFlightHostProps } from './types';
2
- export declare function MediaFlightHost({ id, content, style, contentFit, renderVideo, nativeControls, accessibilityLabel, surfaceType, pointerEvents, flightId, }: MediaFlightHostProps): import("react/jsx-runtime").JSX.Element;
3
+ export declare function MediaFlightHost<P extends VideoPlayerLike = VideoPlayerLike>({ id, content, style, contentFit, renderVideo, nativeControls, accessibilityLabel, surfaceType, pointerEvents, flightId, }: MediaFlightHostProps<P>): import("react/jsx-runtime").JSX.Element;
3
4
  export declare namespace MediaFlightHost {
4
5
  var displayName: string;
5
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFlightHost.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightHost.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,WAAW,EACX,cAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,QAAQ,GACT,EAAE,oBAAoB,2CAsBtB;yBAjCe,eAAe"}
1
+ {"version":3,"file":"MediaFlightHost.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightHost.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,SAAS,CAAC;AAkBpE,wBAAgB,eAAe,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,EAC3E,EAAE,EACF,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,WAAW,EACX,cAAsB,EACtB,kBAAkB,EAClB,WAAW,EACX,aAAa,EACb,QAAQ,GACT,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CAsBzB;yBAjCe,eAAe"}
@@ -1,5 +1,13 @@
1
+ import type { VideoPlayerLike } from './expo-video-module';
1
2
  import type { MediaFlightHostProps } from './types';
2
- export declare function MediaFlightHost({ id, content, style, contentFit, renderVideo, nativeControls, accessibilityLabel, pointerEvents, flightId, }: MediaFlightHostProps): import("react/jsx-runtime").JSX.Element;
3
+ /**
4
+ * The web host publishes its slot to the layer, which paints every shared node
5
+ * through one non-generic `MediaSurface`. Widening is sound for the same reason
6
+ * as the native host's `widenSlot`: the only player Bloom ever hands a slot is
7
+ * the one it took out of that slot's own `content`. Bloom transports the
8
+ * object; it never substitutes one.
9
+ */
10
+ export declare function MediaFlightHost<P extends VideoPlayerLike = VideoPlayerLike>({ id, content, style, contentFit, renderVideo, nativeControls, accessibilityLabel, pointerEvents, flightId, }: MediaFlightHostProps<P>): import("react/jsx-runtime").JSX.Element;
3
11
  export declare namespace MediaFlightHost {
4
12
  var displayName: string;
5
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFlightHost.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightHost.web.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,WAAW,EACX,cAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,QAAQ,GACT,EAAE,oBAAoB,2CA6CtB;yBAvDe,eAAe"}
1
+ {"version":3,"file":"MediaFlightHost.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightHost.web.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,SAAS,CAAC;AAEpE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAAE,EAC3E,EAAE,EACF,OAAO,EACP,KAAK,EACL,UAAoB,EACpB,WAAW,EACX,cAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,QAAQ,GACT,EAAE,oBAAoB,CAAC,CAAC,CAAC,2CAqDzB;yBA/De,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"MediaFlightLayer.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightLayer.tsx"],"names":[],"mappings":"AA+CA;;;;;GAKG;AACH,wBAAgB,gBAAgB,mDAkB/B;yBAlBe,gBAAgB"}
1
+ {"version":3,"file":"MediaFlightLayer.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/MediaFlightLayer.tsx"],"names":[],"mappings":"AA8CA;;;;;GAKG;AACH,wBAAgB,gBAAgB,mDAkB/B;yBAlBe,gBAAgB"}
@@ -5,6 +5,6 @@ export { useMediaFlight } from './use-media-flight';
5
5
  export { DEFAULT_FLIGHT_CORNER_RADIUS, flightProgress, handOffFlight, hasFlight, releaseFlight, resetMediaFlight, } from './store';
6
6
  export { SURFACE_MOUNT_TIMEOUT_MS } from './constants';
7
7
  export { loadExpoVideo, warnExpoVideoUnavailable, provideExpoVideo, resetExpoVideoModule, type ExpoVideoLike, type VideoPlayerLike, type VideoSurfaceContentFit, type VideoSurfaceType, type VideoViewLikeProps, } from './expo-video-module';
8
- export type { MediaFlight, MediaFlightAnchorNode, MediaFlightController, MediaFlightHostProps, MediaFlightOptions, MediaSurfaceContent, MediaSurfaceImage, MediaSurfaceVideo, MeasuredRect, } from './types';
8
+ export type { MediaFlight, MediaFlightAnchorNode, MediaFlightController, MediaFlightHostProps, MediaSurfaceVideoOf, MediaVideoSlot, MediaVideoSlotProps, MediaFlightOptions, MediaSurfaceContent, MediaSurfaceImage, MediaSurfaceVideo, MeasuredRect, } from './types';
9
9
  export type { MediaSurfaceProps } from './MediaSurface';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -14,6 +14,6 @@ export { useMediaFlight } from './use-media-flight';
14
14
  export { DEFAULT_FLIGHT_CORNER_RADIUS, flightProgress, handOffFlight, hasFlight, releaseFlight, resetMediaFlight, } from './store';
15
15
  export { SURFACE_MOUNT_TIMEOUT_MS } from './constants';
16
16
  export { loadExpoVideo, warnExpoVideoUnavailable, provideExpoVideo, resetExpoVideoModule, type ExpoVideoLike, type VideoPlayerLike, type VideoSurfaceContentFit, type VideoSurfaceType, type VideoViewLikeProps, } from './expo-video-module';
17
- export type { MediaFlight, MediaFlightAnchorNode, MediaFlightController, MediaFlightHostProps, MediaFlightOptions, MediaSurfaceContent, MediaSurfaceImage, MediaSurfaceVideo, MeasuredRect, } from './types';
17
+ export type { MediaFlight, MediaFlightAnchorNode, MediaFlightController, MediaFlightHostProps, MediaSurfaceVideoOf, MediaVideoSlot, MediaVideoSlotProps, MediaFlightOptions, MediaSurfaceContent, MediaSurfaceImage, MediaSurfaceVideo, MeasuredRect, } from './types';
18
18
  export type { MediaSurfaceProps } from './MediaSurface';
19
19
  //# sourceMappingURL=index.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/index.web.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/index.web.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"media-node.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/media-node.web.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEnE,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;IAChC,iFAAiF;IACjF,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,6EAA6E;AAC7E,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,UAAU,cAAc;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB;;;;;;;;OAQG;IACH,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpC,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,2BAA2B,EAAE,YAAY,GAAG,SAAS,CAAC;CAC3D;AAuJD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,GACvB,IAAI,CAgBN;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAehF;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAMtE;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,SAAS,aAAa,EAAE,CAExD;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,IAAI,CAUtC"}
1
+ {"version":3,"file":"media-node.web.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/media-node.web.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEnE,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;IAChC,iFAAiF;IACjF,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,6EAA6E;AAC7E,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B,UAAU,cAAc;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,GAAG,EAAE,MAAM,CAAC;IACZ;;;;;;;;;;;OAWG;IACH,MAAM,EAAE,eAAe,GAAG,SAAS,CAAC;CACrC;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB;;;;;;;;OAQG;IACH,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,8DAA8D;AAC9D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpC,SAAS,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,2BAA2B,EAAE,YAAY,GAAG,SAAS,CAAC;CAC3D;AAgMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,eAAe,GACvB,IAAI,CAgBN;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAehF;AAED,wDAAwD;AACxD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAGhD;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAMtE;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,SAAS,aAAa,EAAE,CAExD;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,IAAI,CAUtC"}
@@ -57,6 +57,18 @@ export interface MediaSurfaceVideo {
57
57
  }
58
58
  /** What a media surface paints: a still image, or a consumer-owned video. */
59
59
  export type MediaSurfaceContent = MediaSurfaceImage | MediaSurfaceVideo;
60
+ /**
61
+ * `MediaSurfaceVideo` carrying the consumer's OWN player type.
62
+ *
63
+ * Bloom transports that object; it never reads it. Narrowing it to
64
+ * `VideoPlayerLike` on the way through would be Bloom asserting something about
65
+ * cargo — and it would land on the consumer, who then has to cast the player
66
+ * back before handing it to expo-video's `VideoView`. A contract that pushes a
67
+ * consumer towards `as` ends up as an `as any` in someone's repo.
68
+ */
69
+ export interface MediaSurfaceVideoOf<P extends VideoPlayerLike> extends MediaSurfaceVideo {
70
+ player: P;
71
+ }
60
72
  /**
61
73
  * A media surface currently owned by the flight layer.
62
74
  *
@@ -216,7 +228,7 @@ export interface MediaFlightController {
216
228
  * INTRINSIC size (300x150) instead of stretching — so a slot that drops this
217
229
  * style paints a 300x150 video inside whatever box it was given. Spread it.
218
230
  */
219
- export interface MediaVideoSlotProps {
231
+ export interface MediaVideoSlotProps<P extends VideoPlayerLike = VideoPlayerLike> {
220
232
  /**
221
233
  * The player Bloom was given — never one Bloom created.
222
234
  *
@@ -227,7 +239,7 @@ export interface MediaVideoSlotProps {
227
239
  * anything else here — keeping the old player, unmounting instead — brings
228
240
  * that defect back. See `releaseFlight`.
229
241
  */
230
- player: VideoPlayerLike | null;
242
+ player: P | null;
231
243
  /** Fills the box. Spread it — see above. */
232
244
  style: StyleProp<ViewStyle>;
233
245
  contentFit: 'contain' | 'cover';
@@ -249,7 +261,7 @@ export interface MediaVideoSlotProps {
249
261
  * layer, compared by identity — a new function every render republishes every
250
262
  * render. Correct either way, wasteful if you skip it.
251
263
  */
252
- export type MediaVideoSlot = (props: MediaVideoSlotProps) => ReactNode;
264
+ export type MediaVideoSlot<P extends VideoPlayerLike = VideoPlayerLike> = (props: MediaVideoSlotProps<P>) => ReactNode;
253
265
  /**
254
266
  * A place a media surface may live: the feed row it starts in, the fullscreen
255
267
  * player it lands in, and every other end of a flight.
@@ -260,11 +272,16 @@ export type MediaVideoSlot = (props: MediaVideoSlotProps) => ReactNode;
260
272
  * ever leaving the document. On native a host renders its media inline, which
261
273
  * is what it has always done and what the platform makes correct there.
262
274
  */
263
- export interface MediaFlightHostProps {
275
+ export interface MediaFlightHostProps<P extends VideoPlayerLike = VideoPlayerLike> {
264
276
  /** The id this host shares with the flight and with the other end. */
265
277
  id: string;
266
- /** What to paint: a still image, or a consumer-owned expo-video player. */
267
- content: MediaSurfaceContent;
278
+ /**
279
+ * What to paint: a still image, or a consumer-owned expo-video player.
280
+ *
281
+ * The player's own type flows from here into {@link renderVideo}, so a slot
282
+ * gets back exactly what it put in and hands it to `VideoView` with no cast.
283
+ */
284
+ content: MediaSurfaceImage | MediaSurfaceVideoOf<P>;
268
285
  /** Style of the host BOX. Give it the radius and `overflow: 'hidden'` you want. */
269
286
  style?: StyleProp<ViewStyle>;
270
287
  /** How the media fills the box. Defaults to `'cover'`. */
@@ -273,7 +290,7 @@ export interface MediaFlightHostProps {
273
290
  * Paint the video yourself, keeping your own `ref` and expo-video props. See
274
291
  * {@link MediaVideoSlot}; memoise it.
275
292
  */
276
- renderVideo?: MediaVideoSlot;
293
+ renderVideo?: MediaVideoSlot<P>;
277
294
  /** Whether the video arm shows expo-video's own controls. Defaults to `false`. */
278
295
  nativeControls?: boolean;
279
296
  accessibilityLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,CACb,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GACtE,IAAI,CAAC;CACT;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,kEAAkE;IAClE,MAAM,EAAE,eAAe,CAAC;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,6EAA6E;AAC7E,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;AAExE;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,mBAAmB,CAAC;IAC7B,wCAAwC;IACxC,IAAI,EAAE,YAAY,CAAC;IACnB,oCAAoC;IACpC,EAAE,EAAE,YAAY,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;IAChC,gFAAgF;IAChF,WAAW,EAAE,gBAAgB,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;;OAWG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,KAAK,IAAI,CAAC;IACzE;;;;OAIG;IACH,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC5D;;;;;;;;;;;;;OAaG;IACH,KAAK,EAAE,CACL,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,CAAC,EAAE,kBAAkB,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;;;OAIG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B;;;;;;;;;OASG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;OASG;IACH,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,4CAA4C;IAC5C,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5B,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,mBAAmB,KAAK,SAAS,CAAC;AAEvE;;;;;;;;;GASG;AACH,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,OAAO,EAAE,mBAAmB,CAAC;IAC7B,mFAAmF;IACnF,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,0DAA0D;IAC1D,UAAU,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IAC1D;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/media-flight/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/bloom",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "packageManager": "bun@1.3.14",
5
5
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
6
6
  "main": "lib/commonjs/index.js",
@@ -1457,6 +1457,7 @@
1457
1457
  "./package.json": "./package.json"
1458
1458
  },
1459
1459
  "files": [
1460
+ "NOTICE",
1460
1461
  "src",
1461
1462
  "lib",
1462
1463
  "docs/*.mdx",
@@ -15,10 +15,27 @@ import { useCallback } from 'react';
15
15
  import { StyleSheet, View } from 'react-native';
16
16
 
17
17
  import { MediaSurface } from './MediaSurface';
18
+ import type { VideoPlayerLike } from './expo-video-module';
18
19
  import { registerAnchor } from './store';
19
- import type { MediaFlightHostProps } from './types';
20
+ import type { MediaFlightHostProps, MediaVideoSlot } from './types';
20
21
 
21
- export function MediaFlightHost({
22
+ /**
23
+ * Hand a consumer's slot to `MediaSurface`, which is not generic.
24
+ *
25
+ * SOUND, and the reason is the invariant this whole family is built on: the
26
+ * only player Bloom ever passes to a slot is the one it took out of that
27
+ * slot's own `content`. Bloom transports the object and never substitutes one,
28
+ * so the value really is a `P` at runtime — the assertion says what the types
29
+ * cannot follow through a `memo`'d component, and it lives HERE, once, rather
30
+ * than in every consumer's `renderVideo`.
31
+ */
32
+ function widenSlot<P extends VideoPlayerLike>(
33
+ slot: MediaVideoSlot<P> | undefined,
34
+ ): MediaVideoSlot | undefined {
35
+ return slot as MediaVideoSlot | undefined;
36
+ }
37
+
38
+ export function MediaFlightHost<P extends VideoPlayerLike = VideoPlayerLike>({
22
39
  id,
23
40
  content,
24
41
  style,
@@ -29,7 +46,7 @@ export function MediaFlightHost({
29
46
  surfaceType,
30
47
  pointerEvents,
31
48
  flightId,
32
- }: MediaFlightHostProps) {
49
+ }: MediaFlightHostProps<P>) {
33
50
  // A callback ref rather than an effect: the anchor must be measurable the
34
51
  // moment the box is on screen, and a tap can come one frame later.
35
52
  const setNode = useCallback(
@@ -42,7 +59,7 @@ export function MediaFlightHost({
42
59
  <MediaSurface
43
60
  content={content}
44
61
  contentFit={contentFit}
45
- renderVideo={renderVideo}
62
+ renderVideo={widenSlot(renderVideo)}
46
63
  nativeControls={nativeControls}
47
64
  accessibilityLabel={accessibilityLabel}
48
65
  surfaceType={surfaceType}
@@ -22,10 +22,18 @@ import {
22
22
  releaseMediaNode,
23
23
  type MediaNodeRender,
24
24
  } from './media-node.web';
25
+ import type { VideoPlayerLike } from './expo-video-module';
25
26
  import { handOffFlight, hasFlight, registerAnchor } from './store';
26
- import type { MediaFlightHostProps } from './types';
27
+ import type { MediaFlightHostProps, MediaVideoSlot } from './types';
27
28
 
28
- export function MediaFlightHost({
29
+ /**
30
+ * The web host publishes its slot to the layer, which paints every shared node
31
+ * through one non-generic `MediaSurface`. Widening is sound for the same reason
32
+ * as the native host's `widenSlot`: the only player Bloom ever hands a slot is
33
+ * the one it took out of that slot's own `content`. Bloom transports the
34
+ * object; it never substitutes one.
35
+ */
36
+ export function MediaFlightHost<P extends VideoPlayerLike = VideoPlayerLike>({
29
37
  id,
30
38
  content,
31
39
  style,
@@ -35,7 +43,7 @@ export function MediaFlightHost({
35
43
  accessibilityLabel,
36
44
  pointerEvents,
37
45
  flightId,
38
- }: MediaFlightHostProps) {
46
+ }: MediaFlightHostProps<P>) {
39
47
  // State rather than a ref, because the claim runs in a layout effect and an
40
48
  // effect cannot depend on a ref's mutation. One extra render at mount.
41
49
  const [node, setNode] = useState<View | null>(null);
@@ -49,7 +57,15 @@ export function MediaFlightHost({
49
57
  );
50
58
 
51
59
  const render = useMemo<MediaNodeRender>(
52
- () => ({ content, contentFit, renderVideo, nativeControls, accessibilityLabel, flightId }),
60
+ () => ({
61
+ content,
62
+ contentFit,
63
+ // See `widenSlot`: the player a slot gets back is the one it put in.
64
+ renderVideo: renderVideo as MediaVideoSlot | undefined,
65
+ nativeControls,
66
+ accessibilityLabel,
67
+ flightId,
68
+ }),
53
69
  [content, contentFit, renderVideo, nativeControls, accessibilityLabel, flightId],
54
70
  );
55
71
  const renderRef = useRef(render);
@@ -4,11 +4,10 @@
4
4
  * ## The problem it exists for
5
5
  *
6
6
  * A shared-element transition normally assumes the ORIGIN screen is still
7
- * mounted while the element travels which is why `react-native-teleport` needs
8
- * `presentation: 'transparentModal'` and has no web story at all. Under
9
- * expo-router on web the origin route is UNMOUNTED the moment the URL changes,
10
- * so anything the origin was rendering (a `VideoView`, a decoded image) is gone
11
- * before the first frame of the transition.
7
+ * mounted while the element travels. Under expo-router on web the origin route
8
+ * is UNMOUNTED the moment the URL changes, so anything the origin was rendering
9
+ * (a `VideoView`, a decoded image) is gone before the first frame of the
10
+ * transition.
12
11
  *
13
12
  * The fix is to move the surface OUT of both screens for the duration of the
14
13
  * flight. `<MediaFlightLayer>` is mounted ONCE at the app root and renders