@remotion/player 4.0.212 → 4.0.214

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 (113) hide show
  1. package/dist/cjs/DefaultPlayPauseButton.d.ts +0 -1
  2. package/dist/cjs/PlayerControls.js +2 -2
  3. package/dist/cjs/PlayerSeekBar.d.ts +0 -1
  4. package/dist/cjs/PlayerSeekBar.js +1 -2
  5. package/dist/cjs/PlayerUI.d.ts +3 -3
  6. package/dist/cjs/PlayerUI.js +8 -2
  7. package/dist/cjs/ThumbnailUI.d.ts +1 -1
  8. package/dist/cjs/ThumbnailUI.js +8 -2
  9. package/dist/cjs/calculate-scale.d.ts +3 -2
  10. package/dist/cjs/calculate-scale.js +2 -1
  11. package/dist/cjs/index.d.ts +7 -8
  12. package/dist/cjs/is-backgrounded.d.ts +0 -1
  13. package/dist/cjs/test/test-utils.d.ts +1 -1
  14. package/dist/cjs/utils/calculate-player-size.d.ts +2 -2
  15. package/dist/cjs/utils/use-component-visible.d.ts +0 -1
  16. package/dist/cjs/utils/use-component-visible.js +1 -1
  17. package/dist/esm/index.mjs +19 -5
  18. package/package.json +3 -3
  19. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/BufferingIndicator.d.ts +0 -5
  20. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/BufferingIndicator.js +0 -38
  21. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/DefaultPlayPauseButton.d.ts +0 -5
  22. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/DefaultPlayPauseButton.js +0 -12
  23. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/EmitterProvider.d.ts +0 -5
  24. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/EmitterProvider.js +0 -20
  25. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/MediaVolumeSlider.d.ts +0 -5
  26. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/MediaVolumeSlider.js +0 -129
  27. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/PlaybackrateControl.d.ts +0 -8
  28. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/PlaybackrateControl.js +0 -156
  29. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/Player.d.ts +0 -56
  30. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/Player.js +0 -143
  31. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/PlayerControls.d.ts +0 -47
  32. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/PlayerControls.js +0 -176
  33. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/PlayerSeekBar.d.ts +0 -8
  34. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/PlayerSeekBar.js +0 -145
  35. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/PlayerUI.d.ts +0 -46
  36. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/PlayerUI.js +0 -369
  37. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/SharedPlayerContext.d.ts +0 -15
  38. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/SharedPlayerContext.js +0 -55
  39. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/Thumbnail.d.ts +0 -23
  40. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/Thumbnail.js +0 -48
  41. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/ThumbnailUI.d.ts +0 -11
  42. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/ThumbnailUI.js +0 -89
  43. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/calculate-next-frame.d.ts +0 -14
  44. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/calculate-next-frame.js +0 -24
  45. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/calculate-scale.d.ts +0 -50
  46. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/calculate-scale.js +0 -72
  47. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/emitter-context.d.ts +0 -4
  48. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/emitter-context.js +0 -3
  49. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/error-boundary.d.ts +0 -19
  50. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/error-boundary.js +0 -32
  51. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/event-emitter.d.ts +0 -91
  52. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/event-emitter.js +0 -114
  53. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/format-time.d.ts +0 -1
  54. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/format-time.js +0 -5
  55. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/icons.d.ts +0 -10
  56. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/icons.js +0 -39
  57. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/index.d.ts +0 -64
  58. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/index.js +0 -23
  59. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/is-backgrounded.d.ts +0 -2
  60. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/is-backgrounded.js +0 -20
  61. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/player-css-classname.d.ts +0 -1
  62. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/player-css-classname.js +0 -1
  63. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/player-methods.d.ts +0 -25
  64. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/player-methods.js +0 -1
  65. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/test/index.test.d.ts +0 -1
  66. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/test/index.test.js +0 -7
  67. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/test/test-utils.d.ts +0 -6
  68. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/test/test-utils.js +0 -14
  69. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/test/validate-in-out-frames.test.d.ts +0 -1
  70. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/test/validate-in-out-frames.test.js +0 -54
  71. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/test/validate-prop.test.d.ts +0 -1
  72. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/test/validate-prop.test.js +0 -129
  73. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-buffer-state-emitter.d.ts +0 -2
  74. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-buffer-state-emitter.js +0 -22
  75. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-hover-state.d.ts +0 -1
  76. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-hover-state.js +0 -43
  77. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-playback.d.ts +0 -8
  78. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-playback.js +0 -157
  79. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-player.d.ts +0 -24
  80. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-player.js +0 -157
  81. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-thumbnail.d.ts +0 -6
  82. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-thumbnail.js +0 -14
  83. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-video-controls-resize.d.ts +0 -11
  84. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/use-video-controls-resize.js +0 -35
  85. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/calculate-player-size.d.ts +0 -9
  86. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/calculate-player-size.js +0 -24
  87. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/cancellable-promise.d.ts +0 -5
  88. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/cancellable-promise.js +0 -22
  89. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/delay.d.ts +0 -1
  90. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/delay.js +0 -2
  91. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/is-node.d.ts +0 -1
  92. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/is-node.js +0 -1
  93. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/props-if-has-props.d.ts +0 -10
  94. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/props-if-has-props.js +0 -1
  95. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/use-cancellable-promises.d.ts +0 -7
  96. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/use-cancellable-promises.js +0 -18
  97. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/use-click-prevention-on-double-click.d.ts +0 -3
  98. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/use-click-prevention-on-double-click.js +0 -41
  99. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/use-component-visible.d.ts +0 -6
  100. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/use-component-visible.js +0 -18
  101. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/use-element-size.d.ts +0 -16
  102. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/use-element-size.js +0 -127
  103. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/validate-in-out-frame.d.ts +0 -6
  104. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/validate-in-out-frame.js +0 -49
  105. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/validate-initial-frame.d.ts +0 -4
  106. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/validate-initial-frame.js +0 -23
  107. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/validate-playbackrate.d.ts +0 -1
  108. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/utils/validate-playbackrate.js +0 -14
  109. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/validate.d.ts +0 -5
  110. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/validate.js +0 -6
  111. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/volume-persistance.d.ts +0 -2
  112. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/esm/volume-persistance.js +0 -29
  113. package/.rollup.cache/Users/jonathanburger/remotion/packages/player/dist/tsconfig-esm.tsbuildinfo +0 -1
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const DefaultPlayPauseButton: React.FC<{
3
2
  playing: boolean;
4
3
  buffering: boolean;
@@ -174,10 +174,10 @@ const Controls = ({ durationInFrames, isFullscreen, fps, player, showVolumeContr
174
174
  onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e);
175
175
  }
176
176
  }, [onDoubleClick]);
177
- return ((0, jsx_runtime_1.jsxs)("div", { ref: ref, style: containerCss, onPointerDown: onPointerDownIfContainer, onDoubleClick: onDoubleClickIfContainer, children: [(0, jsx_runtime_1.jsxs)("div", { ref: flexRef, style: controlsRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: leftPartStyle, children: [(0, jsx_runtime_1.jsx)("button", { ref: playButtonRef, type: "button", style: PlaybackrateControl_js_1.playerButtonStyle, onClick: player.playing ? player.pause : player.play, "aria-label": player.playing ? 'Pause video' : 'Play video', title: player.playing ? 'Pause video' : 'Play video', children: renderPlayPauseButton === null ? ((0, jsx_runtime_1.jsx)(DefaultPlayPauseButton_js_1.DefaultPlayPauseButton, { buffering: buffering, playing: player.playing })) : ((_b = renderPlayPauseButton({
177
+ return ((0, jsx_runtime_1.jsxs)("div", { ref: ref, style: containerCss, onPointerDown: onPointerDownIfContainer, onDoubleClick: onDoubleClickIfContainer, children: [(0, jsx_runtime_1.jsxs)("div", { ref: flexRef, style: controlsRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: leftPartStyle, children: [(0, jsx_runtime_1.jsx)("button", { ref: playButtonRef, type: "button", style: PlaybackrateControl_js_1.playerButtonStyle, onClick: player.playing ? player.pause : player.play, "aria-label": player.playing ? 'Pause video' : 'Play video', title: player.playing ? 'Pause video' : 'Play video', children: renderPlayPauseButton === null ? ((0, jsx_runtime_1.jsx)(DefaultPlayPauseButton_js_1.DefaultPlayPauseButton, { buffering: buffering, playing: player.playing })) : (((_b = renderPlayPauseButton({
178
178
  playing: player.playing,
179
179
  isBuffering: buffering,
180
- })) !== null && _b !== void 0 ? _b : ((0, jsx_runtime_1.jsx)(DefaultPlayPauseButton_js_1.DefaultPlayPauseButton, { buffering: buffering, playing: player.playing }))) }), showVolumeControls ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: xSpacer }), (0, jsx_runtime_1.jsx)(MediaVolumeSlider_js_1.MediaVolumeSlider, { renderMuteButton: renderMuteButton, renderVolumeSlider: renderVolumeSlider, displayVerticalVolumeSlider: displayVerticalVolumeSlider })] })) : null, (0, jsx_runtime_1.jsx)("div", { style: xSpacer }), (0, jsx_runtime_1.jsxs)("div", { style: timeLabel, children: [(0, format_time_js_1.formatTime)(frame / fps), " / ", (0, format_time_js_1.formatTime)(durationInFrames / fps)] }), (0, jsx_runtime_1.jsx)("div", { style: xSpacer })] }), (0, jsx_runtime_1.jsx)("div", { style: flex1 }), playbackRates && canvasSize && ((0, jsx_runtime_1.jsx)(PlaybackrateControl_js_1.PlaybackrateControl, { canvasSize: canvasSize, playbackRates: playbackRates })), playbackRates && supportsFullscreen && allowFullscreen ? ((0, jsx_runtime_1.jsx)("div", { style: xSpacer })) : null, (0, jsx_runtime_1.jsx)("div", { style: fullscreen, children: supportsFullscreen && allowFullscreen ? ((0, jsx_runtime_1.jsx)("button", { type: "button", "aria-label": isFullscreen ? 'Exit fullscreen' : 'Enter Fullscreen', title: isFullscreen ? 'Exit fullscreen' : 'Enter Fullscreen', style: PlaybackrateControl_js_1.playerButtonStyle, onClick: isFullscreen
180
+ })) !== null && _b !== void 0 ? _b : ((0, jsx_runtime_1.jsx)(DefaultPlayPauseButton_js_1.DefaultPlayPauseButton, { buffering: buffering, playing: player.playing })))) }), showVolumeControls ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: xSpacer }), (0, jsx_runtime_1.jsx)(MediaVolumeSlider_js_1.MediaVolumeSlider, { renderMuteButton: renderMuteButton, renderVolumeSlider: renderVolumeSlider, displayVerticalVolumeSlider: displayVerticalVolumeSlider })] })) : null, (0, jsx_runtime_1.jsx)("div", { style: xSpacer }), (0, jsx_runtime_1.jsxs)("div", { style: timeLabel, children: [(0, format_time_js_1.formatTime)(frame / fps), " / ", (0, format_time_js_1.formatTime)(durationInFrames / fps)] }), (0, jsx_runtime_1.jsx)("div", { style: xSpacer })] }), (0, jsx_runtime_1.jsx)("div", { style: flex1 }), playbackRates && canvasSize && ((0, jsx_runtime_1.jsx)(PlaybackrateControl_js_1.PlaybackrateControl, { canvasSize: canvasSize, playbackRates: playbackRates })), playbackRates && supportsFullscreen && allowFullscreen ? ((0, jsx_runtime_1.jsx)("div", { style: xSpacer })) : null, (0, jsx_runtime_1.jsx)("div", { style: fullscreen, children: supportsFullscreen && allowFullscreen ? ((0, jsx_runtime_1.jsx)("button", { type: "button", "aria-label": isFullscreen ? 'Exit fullscreen' : 'Enter Fullscreen', title: isFullscreen ? 'Exit fullscreen' : 'Enter Fullscreen', style: PlaybackrateControl_js_1.playerButtonStyle, onClick: isFullscreen
181
181
  ? onExitFullscreenButtonClick
182
182
  : onFullscreenButtonClick, children: renderFullscreenButton === null ? ((0, jsx_runtime_1.jsx)(icons_js_1.FullscreenIcon, { isFullscreen: isFullscreen })) : (renderFullscreenButton({ isFullscreen })) })) : null })] }), (0, jsx_runtime_1.jsx)("div", { style: ySpacer }), (0, jsx_runtime_1.jsx)(PlayerSeekBar_js_1.PlayerSeekBar, { onSeekEnd: onSeekEnd, onSeekStart: onSeekStart, durationInFrames: durationInFrames, inFrame: inFrame, outFrame: outFrame })] }));
183
183
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const PlayerSeekBar: React.FC<{
3
2
  durationInFrames: number;
4
3
  onSeekStart: () => void;
@@ -8,9 +8,8 @@ const use_hover_state_js_1 = require("./use-hover-state.js");
8
8
  const use_player_js_1 = require("./use-player.js");
9
9
  const use_element_size_js_1 = require("./utils/use-element-size.js");
10
10
  const getFrameFromX = (clientX, durationInFrames, width) => {
11
- var _a;
12
11
  const pos = clientX;
13
- const frame = Math.round((0, remotion_1.interpolate)(pos, [0, width], [0, (_a = durationInFrames - 1) !== null && _a !== void 0 ? _a : 0], {
12
+ const frame = Math.round((0, remotion_1.interpolate)(pos, [0, width], [0, durationInFrames - 1], {
14
13
  extrapolateLeft: 'clamp',
15
14
  extrapolateRight: 'clamp',
16
15
  }));
@@ -20,14 +20,14 @@ declare const _default: React.ForwardRefExoticComponent<{
20
20
  readonly allowFullscreen: boolean;
21
21
  readonly inputProps: Record<string, unknown>;
22
22
  readonly showVolumeControls: boolean;
23
- readonly style?: React.CSSProperties | undefined;
23
+ readonly style?: React.CSSProperties;
24
24
  readonly clickToPlay: boolean;
25
25
  readonly doubleClickToFullscreen: boolean;
26
26
  readonly spaceKeyToPlayOrPause: boolean;
27
27
  readonly errorFallback: ErrorFallback;
28
28
  readonly playbackRate: number;
29
29
  readonly renderLoading: RenderLoading | undefined;
30
- readonly renderPoster: RenderLoading | undefined;
30
+ readonly renderPoster: RenderPoster | undefined;
31
31
  readonly className: string | undefined;
32
32
  readonly moveToBeginningWhenEnded: boolean;
33
33
  readonly showPosterWhenPaused: boolean;
@@ -45,7 +45,7 @@ declare const _default: React.ForwardRefExoticComponent<{
45
45
  readonly showPlaybackRateControl: boolean | number[];
46
46
  readonly posterFillMode: PosterFillMode;
47
47
  readonly bufferStateDelayInMilliseconds: number;
48
- readonly hideControlsWhenPointerDoesntMove: number | boolean;
48
+ readonly hideControlsWhenPointerDoesntMove: boolean | number;
49
49
  readonly overflowVisible: boolean;
50
50
  } & React.RefAttributes<PlayerRef>>;
51
51
  export default _default;
@@ -317,8 +317,14 @@ const PlayerUI = ({ controls, style, loop, autoPlay, allowFullscreen, inputProps
317
317
  ]);
318
318
  const VideoComponent = video ? video.component : null;
319
319
  const outerStyle = (0, react_1.useMemo)(() => {
320
- return (0, calculate_scale_js_1.calculateOuterStyle)({ canvasSize, config, style, overflowVisible });
321
- }, [canvasSize, config, overflowVisible, style]);
320
+ return (0, calculate_scale_js_1.calculateOuterStyle)({
321
+ canvasSize,
322
+ config,
323
+ style,
324
+ overflowVisible,
325
+ layout,
326
+ });
327
+ }, [canvasSize, config, layout, overflowVisible, style]);
322
328
  const outer = (0, react_1.useMemo)(() => {
323
329
  return (0, calculate_scale_js_1.calculateOuter)({ config, layout, scale, overflowVisible });
324
330
  }, [config, layout, overflowVisible, scale]);
@@ -3,7 +3,7 @@ import type { ThumbnailMethods } from './player-methods.js';
3
3
  import type { ErrorFallback, RenderLoading } from './PlayerUI.js';
4
4
  declare const _default: React.ForwardRefExoticComponent<{
5
5
  inputProps: Record<string, unknown>;
6
- style?: React.CSSProperties | undefined;
6
+ style?: React.CSSProperties;
7
7
  errorFallback: ErrorFallback;
8
8
  renderLoading: RenderLoading | undefined;
9
9
  className: string | undefined;
@@ -70,8 +70,14 @@ const ThumbnailUI = ({ style, inputProps, errorFallback, renderLoading, classNam
70
70
  }, [scale, thumbnail.emitter]);
71
71
  const VideoComponent = video ? video.component : null;
72
72
  const outerStyle = (0, react_1.useMemo)(() => {
73
- return (0, calculate_scale_js_1.calculateOuterStyle)({ config, style, canvasSize, overflowVisible });
74
- }, [canvasSize, config, overflowVisible, style]);
73
+ return (0, calculate_scale_js_1.calculateOuterStyle)({
74
+ config,
75
+ style,
76
+ canvasSize,
77
+ overflowVisible,
78
+ layout,
79
+ });
80
+ }, [canvasSize, config, layout, overflowVisible, style]);
75
81
  const outer = (0, react_1.useMemo)(() => {
76
82
  return (0, calculate_scale_js_1.calculateOuter)({ config, layout, scale, overflowVisible });
77
83
  }, [config, layout, overflowVisible, scale]);
@@ -8,16 +8,17 @@ type Layout = {
8
8
  scale: number;
9
9
  };
10
10
  export declare const calculateCanvasTransformation: ({ previewSize, compositionWidth, compositionHeight, canvasSize, }: {
11
- previewSize: PreviewSize['size'];
11
+ previewSize: PreviewSize["size"];
12
12
  compositionWidth: number;
13
13
  compositionHeight: number;
14
14
  canvasSize: Size;
15
15
  }) => Layout;
16
- export declare const calculateOuterStyle: ({ config, style, canvasSize, overflowVisible, }: {
16
+ export declare const calculateOuterStyle: ({ config, style, canvasSize, overflowVisible, layout, }: {
17
17
  config: VideoConfig | null;
18
18
  style: React.CSSProperties | undefined;
19
19
  canvasSize: Size | null;
20
20
  overflowVisible: boolean;
21
+ layout: Layout | null;
21
22
  }) => React.CSSProperties;
22
23
  export declare const calculateContainerStyle: ({ config, canvasSize, layout, scale, overflowVisible, }: {
23
24
  config: VideoConfig | null;
@@ -26,7 +26,7 @@ const calculateCanvasTransformation = ({ previewSize, compositionWidth, composit
26
26
  };
27
27
  };
28
28
  exports.calculateCanvasTransformation = calculateCanvasTransformation;
29
- const calculateOuterStyle = ({ config, style, canvasSize, overflowVisible, }) => {
29
+ const calculateOuterStyle = ({ config, style, canvasSize, overflowVisible, layout, }) => {
30
30
  if (!config) {
31
31
  return {};
32
32
  }
@@ -40,6 +40,7 @@ const calculateOuterStyle = ({ config, style, canvasSize, overflowVisible, }) =>
40
40
  height: style === null || style === void 0 ? void 0 : style.height,
41
41
  width: style === null || style === void 0 ? void 0 : style.width,
42
42
  }),
43
+ opacity: layout ? 1 : 0,
43
44
  ...style,
44
45
  };
45
46
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import './_check-rsc.js';
3
2
  import type { CallbackListener, PlayerEventTypes } from './event-emitter.js';
4
3
  import { PlayerEmitter } from './event-emitter.js';
@@ -23,7 +22,7 @@ export declare const PlayerInternals: {
23
22
  isFirstFrame: boolean;
24
23
  emitter: PlayerEmitter;
25
24
  playing: boolean;
26
- play: (e?: PointerEvent | import("react").SyntheticEvent<Element, Event> | undefined) => void;
25
+ play: (e?: import("react").SyntheticEvent | PointerEvent) => void;
27
26
  pause: () => void;
28
27
  pauseAndReturnToPlayStart: () => void;
29
28
  seek: (newFrame: number) => void;
@@ -31,7 +30,7 @@ export declare const PlayerInternals: {
31
30
  isPlaying: () => boolean;
32
31
  hasPlayed: boolean;
33
32
  isBuffering: () => boolean;
34
- remotionInternal_currentFrameRef: import("react").MutableRefObject<number>;
33
+ remotionInternal_currentFrameRef: React.MutableRefObject<number>;
35
34
  };
36
35
  usePlayback: ({ loop, playbackRate, moveToBeginningWhenEnded, inFrame, outFrame, frameRef, }: {
37
36
  loop: boolean;
@@ -39,14 +38,14 @@ export declare const PlayerInternals: {
39
38
  moveToBeginningWhenEnded: boolean;
40
39
  inFrame: number | null;
41
40
  outFrame: number | null;
42
- frameRef: import("react").MutableRefObject<number>;
41
+ frameRef: React.MutableRefObject<number>;
43
42
  }) => void;
44
- useElementSize: (ref: import("react").RefObject<HTMLElement>, options: {
43
+ useElementSize: (ref: React.RefObject<HTMLElement>, options: {
45
44
  triggerOnWindowResize: boolean;
46
45
  shouldApplyCssTransforms: boolean;
47
46
  }) => import("./utils/use-element-size.js").Size | null;
48
47
  calculateCanvasTransformation: ({ previewSize, compositionWidth, compositionHeight, canvasSize, }: {
49
- previewSize: number | "auto";
48
+ previewSize: import("remotion").PreviewSize["size"];
50
49
  compositionWidth: number;
51
50
  compositionHeight: number;
52
51
  canvasSize: import("./utils/use-element-size.js").Size;
@@ -57,10 +56,10 @@ export declare const PlayerInternals: {
57
56
  yCorrection: number;
58
57
  scale: number;
59
58
  };
60
- useHoverState: (ref: import("react").RefObject<HTMLDivElement>, hideControlsWhenPointerDoesntMove: number | boolean) => boolean;
59
+ useHoverState: (ref: React.RefObject<HTMLDivElement>, hideControlsWhenPointerDoesntMove: boolean | number) => boolean;
61
60
  updateAllElementsSizes: () => void;
62
61
  PlayerEmitterProvider: import("react").FC<{
63
- children: import("react").ReactNode;
62
+ children: React.ReactNode;
64
63
  currentPlaybackRate: number | null;
65
64
  }>;
66
65
  BufferingIndicator: import("react").FC<{
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const useIsBackgrounded: () => import("react").MutableRefObject<boolean>;
@@ -1,6 +1,6 @@
1
1
  import type { queries, RenderOptions } from '@testing-library/react';
2
2
  import type { FC, ReactElement } from 'react';
3
3
  declare const HelloWorld: FC;
4
- declare const customRender: (ui: ReactElement, options?: Omit<RenderOptions, 'queries'>) => import("@testing-library/react").RenderResult<typeof queries, HTMLElement, HTMLElement>;
4
+ declare const customRender: (ui: ReactElement, options?: Omit<RenderOptions, "queries">) => import("@testing-library/react").RenderResult<typeof queries, HTMLElement, HTMLElement>;
5
5
  export * from '@testing-library/react';
6
6
  export { HelloWorld, customRender as render };
@@ -2,8 +2,8 @@ import type { StandardLonghandProperties } from 'csstype';
2
2
  import type { Size } from './use-element-size.js';
3
3
  export declare const calculatePlayerSize: ({ currentSize, width, height, compositionWidth, compositionHeight, }: {
4
4
  currentSize: Size | null;
5
- width: StandardLonghandProperties['width'] | undefined;
6
- height: StandardLonghandProperties['height'] | undefined;
5
+ width: StandardLonghandProperties["width"] | undefined;
6
+ height: StandardLonghandProperties["height"] | undefined;
7
7
  compositionWidth: number;
8
8
  compositionHeight: number;
9
9
  }) => React.CSSProperties;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export default function useComponentVisible(initialIsVisible: boolean): {
3
2
  ref: import("react").RefObject<HTMLDivElement>;
4
3
  isComponentVisible: boolean;
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = useComponentVisible;
3
4
  const react_1 = require("react");
4
5
  // hook to hide a popup/modal when clicked outside
5
6
  function useComponentVisible(initialIsVisible) {
@@ -18,4 +19,3 @@ function useComponentVisible(initialIsVisible) {
18
19
  }, []);
19
20
  return { ref, isComponentVisible, setIsComponentVisible };
20
21
  }
21
- exports.default = useComponentVisible;
@@ -254,7 +254,8 @@ var calculateOuterStyle = ({
254
254
  config,
255
255
  style,
256
256
  canvasSize,
257
- overflowVisible
257
+ overflowVisible,
258
+ layout
258
259
  }) => {
259
260
  if (!config) {
260
261
  return {};
@@ -269,6 +270,7 @@ var calculateOuterStyle = ({
269
270
  height: style?.height,
270
271
  width: style?.width
271
272
  }),
273
+ opacity: layout ? 1 : 0,
272
274
  ...style
273
275
  };
274
276
  };
@@ -2422,8 +2424,14 @@ var PlayerUI = ({
2422
2424
  ]);
2423
2425
  const VideoComponent = video ? video.component : null;
2424
2426
  const outerStyle = useMemo11(() => {
2425
- return calculateOuterStyle({ canvasSize, config, style, overflowVisible });
2426
- }, [canvasSize, config, overflowVisible, style]);
2427
+ return calculateOuterStyle({
2428
+ canvasSize,
2429
+ config,
2430
+ style,
2431
+ overflowVisible,
2432
+ layout
2433
+ });
2434
+ }, [canvasSize, config, layout, overflowVisible, style]);
2427
2435
  const outer = useMemo11(() => {
2428
2436
  return calculateOuter({ config, layout, scale, overflowVisible });
2429
2437
  }, [config, layout, overflowVisible, scale]);
@@ -3121,8 +3129,14 @@ var ThumbnailUI = ({ style, inputProps, errorFallback, renderLoading, className:
3121
3129
  }, [scale, thumbnail.emitter]);
3122
3130
  const VideoComponent = video ? video.component : null;
3123
3131
  const outerStyle = useMemo15(() => {
3124
- return calculateOuterStyle({ config, style, canvasSize, overflowVisible });
3125
- }, [canvasSize, config, overflowVisible, style]);
3132
+ return calculateOuterStyle({
3133
+ config,
3134
+ style,
3135
+ canvasSize,
3136
+ overflowVisible,
3137
+ layout
3138
+ });
3139
+ }, [canvasSize, config, layout, overflowVisible, style]);
3126
3140
  const outer = useMemo15(() => {
3127
3141
  return calculateOuter({ config, layout, scale, overflowVisible });
3128
3142
  }, [config, layout, overflowVisible, scale]);
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/player"
4
4
  },
5
5
  "name": "@remotion/player",
6
- "version": "4.0.212",
6
+ "version": "4.0.214",
7
7
  "description": "React component for embedding a Remotion preview into your app",
8
8
  "main": "dist/cjs/index.js",
9
9
  "types": "dist/cjs/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  ],
29
29
  "license": "SEE LICENSE IN LICENSE.md",
30
30
  "dependencies": {
31
- "remotion": "4.0.212"
31
+ "remotion": "4.0.214"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "react": ">=16.8.0",
@@ -57,7 +57,7 @@
57
57
  "scripts": {
58
58
  "formatting": "prettier src --check",
59
59
  "lint": "eslint src --ext ts,tsx",
60
- "build": "bun ensure-correct-version.ts && bun --env-file=../.env.bundle bundle.ts",
60
+ "make": "bun ensure-correct-version.ts && bun --env-file=../.env.bundle bundle.ts",
61
61
  "test": "bun test src",
62
62
  "prerelease": "cp ../../README.md ."
63
63
  }
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- export declare const bufferingIndicatorStrokeWidth = 3;
3
- export declare const BufferingIndicator: React.FC<{
4
- type: 'player' | 'studio';
5
- }>;
@@ -1,38 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ICON_SIZE } from './icons.js';
3
- const className = '__remotion_buffering_indicator';
4
- const remotionBufferingAnimation = '__remotion_buffering_animation';
5
- export const bufferingIndicatorStrokeWidth = 3;
6
- const playerStyle = {
7
- width: ICON_SIZE,
8
- height: ICON_SIZE,
9
- overflow: 'hidden',
10
- lineHeight: 'normal',
11
- fontSize: 'inherit',
12
- };
13
- const studioStyle = {
14
- width: 14,
15
- height: 14,
16
- overflow: 'hidden',
17
- lineHeight: 'normal',
18
- fontSize: 'inherit',
19
- };
20
- export const BufferingIndicator = ({ type }) => {
21
- const style = type === 'player' ? playerStyle : studioStyle;
22
- return (_jsxs(_Fragment, { children: [_jsx("style", { type: "text/css", children: `
23
- @keyframes ${remotionBufferingAnimation} {
24
- 0% {
25
- rotate: 0deg;
26
- }
27
- 100% {
28
- rotate: 360deg;
29
- }
30
- }
31
-
32
- .${className} {
33
- animation: ${remotionBufferingAnimation} 1s linear infinite;
34
- }
35
- ` }), _jsx("div", { style: style, children: _jsx("svg", { viewBox: type === 'player' ? '0 0 22 22' : '0 0 18 18', style: style, className: className, children: _jsx("path", { d: type === 'player'
36
- ? 'M 11 4 A 7 7 0 0 1 15.1145 16.66312'
37
- : 'M 9 2 A 7 7 0 0 1 13.1145 14.66312', stroke: "white", strokeLinecap: "round", fill: "none", strokeWidth: 3 }) }) })] }));
38
- };
@@ -1,5 +0,0 @@
1
- /// <reference types="react" />
2
- export declare const DefaultPlayPauseButton: React.FC<{
3
- playing: boolean;
4
- buffering: boolean;
5
- }>;
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { BufferingIndicator } from './BufferingIndicator.js';
3
- import { PauseIcon, PlayIcon } from './icons.js';
4
- export const DefaultPlayPauseButton = ({ playing, buffering }) => {
5
- if (playing && buffering) {
6
- return _jsx(BufferingIndicator, { type: "player" });
7
- }
8
- if (playing) {
9
- return _jsx(PauseIcon, {});
10
- }
11
- return _jsx(PlayIcon, {});
12
- };
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- export declare const PlayerEmitterProvider: React.FC<{
3
- children: React.ReactNode;
4
- currentPlaybackRate: number | null;
5
- }>;
@@ -1,20 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useContext, useEffect, useState } from 'react';
3
- import { Internals } from 'remotion';
4
- import { PlayerEventEmitterContext } from './emitter-context.js';
5
- import { PlayerEmitter } from './event-emitter.js';
6
- import { useBufferStateEmitter } from './use-buffer-state-emitter.js';
7
- export const PlayerEmitterProvider = ({ children, currentPlaybackRate }) => {
8
- const [emitter] = useState(() => new PlayerEmitter());
9
- const bufferManager = useContext(Internals.BufferingContextReact);
10
- if (!bufferManager) {
11
- throw new Error('BufferingContextReact not found');
12
- }
13
- useEffect(() => {
14
- if (currentPlaybackRate) {
15
- emitter.dispatchRateChange(currentPlaybackRate);
16
- }
17
- }, [emitter, currentPlaybackRate]);
18
- useBufferStateEmitter(emitter);
19
- return (_jsx(PlayerEventEmitterContext.Provider, { value: emitter, children: children }));
20
- };
@@ -1,5 +0,0 @@
1
- import React from 'react';
2
- export declare const VOLUME_SLIDER_WIDTH = 100;
3
- export declare const MediaVolumeSlider: React.FC<{
4
- displayVerticalVolumeSlider: Boolean;
5
- }>;
@@ -1,129 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useCallback, useMemo, useRef, useState } from 'react';
3
- import { Internals, random } from 'remotion';
4
- import { ICON_SIZE, VolumeOffIcon, VolumeOnIcon } from './icons.js';
5
- import { useHoverState } from './use-hover-state.js';
6
- const BAR_HEIGHT = 5;
7
- const KNOB_SIZE = 12;
8
- export const VOLUME_SLIDER_WIDTH = 100;
9
- export const MediaVolumeSlider = ({ displayVerticalVolumeSlider }) => {
10
- const [mediaMuted, setMediaMuted] = Internals.useMediaMutedState();
11
- const [mediaVolume, setMediaVolume] = Internals.useMediaVolumeState();
12
- const [focused, setFocused] = useState(false);
13
- const parentDivRef = useRef(null);
14
- const inputRef = useRef(null);
15
- const hover = useHoverState(parentDivRef, false);
16
- // Need to import it from React to fix React 17 ESM support.
17
- const randomId =
18
- // eslint-disable-next-line react-hooks/rules-of-hooks
19
- typeof React.useId === 'undefined' ? 'volume-slider' : React.useId();
20
- const [randomClass] = useState(() => `__remotion-volume-slider-${random(randomId)}`.replace('.', ''));
21
- const isMutedOrZero = mediaMuted || mediaVolume === 0;
22
- const onVolumeChange = useCallback((e) => {
23
- setMediaVolume(parseFloat(e.target.value));
24
- }, [setMediaVolume]);
25
- const onBlur = () => {
26
- setTimeout(() => {
27
- // We need a small delay to check which element was focused next,
28
- // and if it wasn't the volume slider, we hide it
29
- if (document.activeElement !== inputRef.current) {
30
- setFocused(false);
31
- }
32
- }, 10);
33
- };
34
- const isVolume0 = mediaVolume === 0;
35
- const onClick = useCallback(() => {
36
- if (isVolume0) {
37
- setMediaVolume(1);
38
- setMediaMuted(false);
39
- return;
40
- }
41
- setMediaMuted((mute) => !mute);
42
- }, [isVolume0, setMediaMuted, setMediaVolume]);
43
- const parentDivStyle = useMemo(() => {
44
- return {
45
- display: 'inline-flex',
46
- background: 'none',
47
- border: 'none',
48
- justifyContent: 'center',
49
- alignItems: 'center',
50
- touchAction: 'none',
51
- ...(displayVerticalVolumeSlider && { position: 'relative' }),
52
- };
53
- }, [displayVerticalVolumeSlider]);
54
- const volumeContainer = useMemo(() => {
55
- return {
56
- display: 'inline',
57
- width: ICON_SIZE,
58
- height: ICON_SIZE,
59
- cursor: 'pointer',
60
- appearance: 'none',
61
- background: 'none',
62
- border: 'none',
63
- padding: 0,
64
- };
65
- }, []);
66
- const sliderContainer = useMemo(() => {
67
- const paddingLeft = 5;
68
- const common = {
69
- paddingLeft,
70
- height: ICON_SIZE,
71
- width: VOLUME_SLIDER_WIDTH,
72
- };
73
- if (displayVerticalVolumeSlider) {
74
- return {
75
- ...common,
76
- position: 'absolute',
77
- transform: `rotate(-90deg) translateX(${VOLUME_SLIDER_WIDTH / 2 + ICON_SIZE / 2}px)`,
78
- };
79
- }
80
- return {
81
- ...common,
82
- };
83
- }, [displayVerticalVolumeSlider]);
84
- const inputStyle = useMemo(() => {
85
- const commonStyle = {
86
- WebkitAppearance: 'none',
87
- backgroundColor: 'rgba(255, 255, 255, 0.5)',
88
- borderRadius: BAR_HEIGHT / 2,
89
- cursor: 'pointer',
90
- height: BAR_HEIGHT,
91
- width: VOLUME_SLIDER_WIDTH,
92
- backgroundImage: `linear-gradient(
93
- to right,
94
- white ${mediaVolume * 100}%, rgba(255, 255, 255, 0) ${mediaVolume * 100}%
95
- )`,
96
- };
97
- if (displayVerticalVolumeSlider) {
98
- return {
99
- ...commonStyle,
100
- bottom: ICON_SIZE + VOLUME_SLIDER_WIDTH / 2,
101
- };
102
- }
103
- return commonStyle;
104
- }, [displayVerticalVolumeSlider, mediaVolume]);
105
- const sliderStyle = `
106
- .${randomClass}::-webkit-slider-thumb {
107
- -webkit-appearance: none;
108
- background-color: white;
109
- border-radius: ${KNOB_SIZE / 2}px;
110
- box-shadow: 0 0 2px black;
111
- height: ${KNOB_SIZE}px;
112
- width: ${KNOB_SIZE}px;
113
- }
114
-
115
- .${randomClass}::-moz-range-thumb {
116
- -webkit-appearance: none;
117
- background-color: white;
118
- border-radius: ${KNOB_SIZE / 2}px;
119
- box-shadow: 0 0 2px black;
120
- height: ${KNOB_SIZE}px;
121
- width: ${KNOB_SIZE}px;
122
- }
123
- `;
124
- return (_jsxs("div", { ref: parentDivRef, style: parentDivStyle, children: [_jsx("style", {
125
- // eslint-disable-next-line react/no-danger
126
- dangerouslySetInnerHTML: {
127
- __html: sliderStyle,
128
- } }), _jsx("button", { "aria-label": isMutedOrZero ? 'Unmute sound' : 'Mute sound', title: isMutedOrZero ? 'Unmute sound' : 'Mute sound', onClick: onClick, onBlur: onBlur, onFocus: () => setFocused(true), style: volumeContainer, type: "button", children: isMutedOrZero ? _jsx(VolumeOffIcon, {}) : _jsx(VolumeOnIcon, {}) }), (focused || hover) && !mediaMuted && !Internals.isIosSafari() ? (_jsx("div", { style: sliderContainer, children: _jsx("input", { ref: inputRef, "aria-label": "Change volume", className: randomClass, max: 1, min: 0, onBlur: () => setFocused(false), onChange: onVolumeChange, step: 0.01, type: "range", value: mediaVolume, style: inputStyle }) })) : null] }));
129
- };
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import type { Size } from './utils/use-element-size.js';
3
- export declare const Checkmark: () => import("react/jsx-runtime.js").JSX.Element;
4
- export declare const playerButtonStyle: React.CSSProperties;
5
- export declare const PlaybackrateControl: React.FC<{
6
- playbackRates: number[];
7
- canvasSize: Size;
8
- }>;