@remotion/studio 4.0.462 → 4.0.464

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 (83) hide show
  1. package/dist/components/AssetSelector.js +2 -6
  2. package/dist/components/CanvasOrLoading.js +1 -1
  3. package/dist/components/ColorPicker/AlphaSlider.d.ts +9 -0
  4. package/dist/components/ColorPicker/AlphaSlider.js +88 -0
  5. package/dist/components/ColorPicker/ColorPicker.d.ts +18 -0
  6. package/dist/components/ColorPicker/ColorPicker.js +176 -0
  7. package/dist/components/ColorPicker/ColorPickerPopup.d.ts +8 -0
  8. package/dist/components/ColorPicker/ColorPickerPopup.js +276 -0
  9. package/dist/components/ColorPicker/HueSlider.d.ts +6 -0
  10. package/dist/components/ColorPicker/HueSlider.js +68 -0
  11. package/dist/components/ColorPicker/SaturationValueArea.d.ts +14 -0
  12. package/dist/components/ColorPicker/SaturationValueArea.js +93 -0
  13. package/dist/components/ColorPicker/checker.d.ts +4 -0
  14. package/dist/components/ColorPicker/checker.js +9 -0
  15. package/dist/components/CompSelectorRef.js +2 -6
  16. package/dist/components/ExpandedTracksProvider.d.ts +2 -0
  17. package/dist/components/ExpandedTracksProvider.js +23 -21
  18. package/dist/components/RenderModal/SchemaEditor/ZodColorEditor.js +8 -47
  19. package/dist/components/Timeline/Padder.js +2 -2
  20. package/dist/components/Timeline/SubscribeToNodePaths.d.ts +1 -1
  21. package/dist/components/Timeline/SubscribeToNodePaths.js +3 -3
  22. package/dist/components/Timeline/Timeline.js +4 -7
  23. package/dist/components/Timeline/TimelineColorField.js +18 -156
  24. package/dist/components/Timeline/TimelineEffectFieldRow.d.ts +1 -2
  25. package/dist/components/Timeline/TimelineEffectFieldRow.js +38 -57
  26. package/dist/components/Timeline/TimelineEffectGroupRow.d.ts +16 -0
  27. package/dist/components/Timeline/TimelineEffectGroupRow.js +76 -0
  28. package/dist/components/Timeline/TimelineExpandedRow.js +18 -29
  29. package/dist/components/Timeline/TimelineFieldRow.d.ts +1 -2
  30. package/dist/components/Timeline/TimelineFieldRow.js +24 -55
  31. package/dist/components/Timeline/TimelineImageInfo.js +5 -17
  32. package/dist/components/Timeline/TimelineLayerEye.d.ts +5 -3
  33. package/dist/components/Timeline/TimelineLayerEye.js +18 -1
  34. package/dist/components/Timeline/TimelineListItem.d.ts +0 -1
  35. package/dist/components/Timeline/TimelineListItem.js +64 -23
  36. package/dist/components/Timeline/TimelineRowChrome.d.ts +8 -0
  37. package/dist/components/Timeline/TimelineRowChrome.js +21 -0
  38. package/dist/components/Timeline/TimelineTracks.js +0 -4
  39. package/dist/components/Timeline/save-effect-prop.d.ts +13 -0
  40. package/dist/components/Timeline/save-effect-prop.js +31 -0
  41. package/dist/components/Timeline/save-prop-queue.d.ts +11 -0
  42. package/dist/components/Timeline/save-prop-queue.js +54 -0
  43. package/dist/components/Timeline/save-sequence-prop.d.ts +12 -0
  44. package/dist/components/Timeline/save-sequence-prop.js +29 -0
  45. package/dist/components/Timeline/should-show-track-in-timeline.d.ts +2 -0
  46. package/dist/components/Timeline/should-show-track-in-timeline.js +23 -0
  47. package/dist/components/Timeline/timeline-field-row-layout.d.ts +2 -0
  48. package/dist/components/Timeline/timeline-field-row-layout.js +14 -0
  49. package/dist/components/Timeline/timeline-indent.d.ts +1 -0
  50. package/dist/components/Timeline/timeline-indent.js +4 -0
  51. package/dist/components/Timeline/timeline-row-layout.d.ts +11 -0
  52. package/dist/components/Timeline/timeline-row-layout.js +27 -0
  53. package/dist/components/Timeline/use-resolved-stack-react-to-change.d.ts +2 -0
  54. package/dist/components/Timeline/use-resolved-stack-react-to-change.js +59 -0
  55. package/dist/components/Timeline/use-sequence-props-subscription.js +27 -1
  56. package/dist/error-overlay/remotion-overlay/ShortcutHint.js +5 -3
  57. package/dist/esm/{chunk-yvg1f56k.js → chunk-mawnnpzg.js} +5147 -4012
  58. package/dist/esm/internals.mjs +5147 -4012
  59. package/dist/esm/previewEntry.mjs +5159 -4025
  60. package/dist/esm/renderEntry.mjs +1 -1
  61. package/dist/helpers/client-id.d.ts +2 -9
  62. package/dist/helpers/client-id.js +15 -40
  63. package/dist/helpers/color-conversion.d.ts +36 -0
  64. package/dist/helpers/color-conversion.js +121 -0
  65. package/dist/helpers/inject-css.js +4 -7
  66. package/dist/helpers/migrate-expanded-tracks-for-subscription-key.d.ts +3 -0
  67. package/dist/helpers/migrate-expanded-tracks-for-subscription-key.js +26 -0
  68. package/dist/helpers/persist-boolean-map.d.ts +5 -0
  69. package/dist/helpers/persist-boolean-map.js +56 -0
  70. package/dist/helpers/persist-open-folders.d.ts +4 -3
  71. package/dist/helpers/persist-open-folders.js +4 -7
  72. package/dist/helpers/preview-server-events.d.ts +15 -0
  73. package/dist/helpers/preview-server-events.js +81 -0
  74. package/dist/helpers/timeline-layout.d.ts +6 -2
  75. package/dist/helpers/timeline-layout.js +31 -25
  76. package/dist/hot-middleware-client/client.js +10 -16
  77. package/package.json +10 -10
  78. package/dist/components/NewComposition/RemInputTypeColor.d.ts +0 -8
  79. package/dist/components/NewComposition/RemInputTypeColor.js +0 -53
  80. package/dist/components/Timeline/is-collapsed.d.ts +0 -2
  81. package/dist/components/Timeline/is-collapsed.js +0 -10
  82. package/dist/helpers/color-math.d.ts +0 -1
  83. package/dist/helpers/color-math.js +0 -13
@@ -4,6 +4,7 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.enableHotMiddleware = void 0;
6
6
  const studio_shared_1 = require("@remotion/studio-shared");
7
+ const preview_server_events_1 = require("../helpers/preview-server-events");
7
8
  const process_update_1 = require("./process-update");
8
9
  function createReporter() {
9
10
  const styles = {
@@ -88,6 +89,7 @@ function processMessage(obj) {
88
89
  }
89
90
  let reporter;
90
91
  const singletonKey = '__webpack_hot_middleware_reporter__';
92
+ let unsubscribeFromPreviewServerEvents = null;
91
93
  const enableHotMiddleware = () => {
92
94
  if (typeof window !== 'undefined') {
93
95
  if (!window[singletonKey]) {
@@ -98,24 +100,16 @@ const enableHotMiddleware = () => {
98
100
  window.__remotion_processHmrEvent = (hmrEvent) => {
99
101
  processMessage(hmrEvent);
100
102
  };
101
- // Create a standalone SSE listener for HMR events immediately.
102
- // This is needed because lazy-compiled modules require HMR updates
103
- // to deliver compiled code, but the React-managed /events SSE
104
- // (in PreviewServerConnection) only connects after React mounts —
105
- // which itself depends on lazy modules loading first.
103
+ // Connect to /events immediately so HMR works before React mounts.
104
+ // PreviewServerConnection reuses the same EventSource via preview-server-events.
106
105
  if (typeof window !== 'undefined' && typeof EventSource !== 'undefined') {
107
- const source = new EventSource('/events');
108
- source.addEventListener('message', (event) => {
109
- try {
110
- const parsed = JSON.parse(event.data);
111
- if (parsed.type === 'hmr') {
112
- processMessage(parsed.hmrEvent);
106
+ if (!unsubscribeFromPreviewServerEvents) {
107
+ unsubscribeFromPreviewServerEvents = (0, preview_server_events_1.subscribeToPreviewServerEvents)((event) => {
108
+ if (event.type === 'hmr') {
109
+ processMessage(event.hmrEvent);
113
110
  }
114
- }
115
- catch (_a) {
116
- // Ignore parse errors
117
- }
118
- });
111
+ });
112
+ }
119
113
  }
120
114
  };
121
115
  exports.enableHotMiddleware = enableHotMiddleware;
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
4
4
  },
5
5
  "name": "@remotion/studio",
6
- "version": "4.0.462",
6
+ "version": "4.0.464",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "scripts": {
@@ -25,14 +25,14 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "semver": "7.5.3",
28
- "remotion": "4.0.462",
29
- "@remotion/player": "4.0.462",
30
- "@remotion/media-utils": "4.0.462",
31
- "@remotion/renderer": "4.0.462",
32
- "@remotion/web-renderer": "4.0.462",
33
- "@remotion/studio-shared": "4.0.462",
34
- "@remotion/timeline-utils": "4.0.462",
35
- "@remotion/zod-types": "4.0.462",
28
+ "remotion": "4.0.464",
29
+ "@remotion/player": "4.0.464",
30
+ "@remotion/media-utils": "4.0.464",
31
+ "@remotion/renderer": "4.0.464",
32
+ "@remotion/web-renderer": "4.0.464",
33
+ "@remotion/studio-shared": "4.0.464",
34
+ "@remotion/timeline-utils": "4.0.464",
35
+ "@remotion/zod-types": "4.0.464",
36
36
  "@jridgewell/trace-mapping": "0.3.31",
37
37
  "mediabunny": "1.45.0",
38
38
  "memfs": "3.4.3",
@@ -43,7 +43,7 @@
43
43
  "react": "19.2.3",
44
44
  "react-dom": "19.2.3",
45
45
  "@types/semver": "7.5.3",
46
- "@remotion/eslint-config-internal": "4.0.462",
46
+ "@remotion/eslint-config-internal": "4.0.464",
47
47
  "eslint": "9.19.0",
48
48
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
49
49
  },
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import type { RemInputStatus } from './RemInput';
3
- type Props = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement> & {
4
- readonly status: RemInputStatus;
5
- readonly name: string;
6
- };
7
- export declare const RemInputTypeColor: React.ForwardRefExoticComponent<Omit<Props, "ref"> & React.RefAttributes<HTMLInputElement>>;
8
- export {};
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RemInputTypeColor = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const colors_1 = require("../../helpers/colors");
7
- const z_index_1 = require("../../state/z-index");
8
- const RemInput_1 = require("./RemInput");
9
- const inputBaseStyle = {
10
- padding: 0,
11
- borderStyle: 'solid',
12
- borderWidth: 1,
13
- };
14
- const RemInputTypeColorForwardRef = ({ status, ...props }, ref) => {
15
- const [isFocused, setIsFocused] = (0, react_1.useState)(false);
16
- const [isHovered, setIsHovered] = (0, react_1.useState)(false);
17
- const inputRef = (0, react_1.useRef)(null);
18
- const { tabIndex } = (0, z_index_1.useZIndex)();
19
- const style = (0, react_1.useMemo)(() => {
20
- var _a;
21
- return {
22
- backgroundColor: colors_1.INPUT_BACKGROUND,
23
- ...inputBaseStyle,
24
- borderColor: (0, RemInput_1.getInputBorderColor)({ isFocused, isHovered, status }),
25
- ...((_a = props.style) !== null && _a !== void 0 ? _a : {}),
26
- };
27
- }, [isFocused, isHovered, props.style, status]);
28
- (0, react_1.useImperativeHandle)(ref, () => {
29
- return inputRef.current;
30
- }, []);
31
- (0, react_1.useEffect)(() => {
32
- if (!inputRef.current) {
33
- return;
34
- }
35
- const { current } = inputRef;
36
- const onFocus = () => setIsFocused(true);
37
- const onBlur = () => setIsFocused(false);
38
- const onMouseEnter = () => setIsHovered(true);
39
- const onMouseLeave = () => setIsHovered(false);
40
- current.addEventListener('focus', onFocus);
41
- current.addEventListener('blur', onBlur);
42
- current.addEventListener('mouseenter', onMouseEnter);
43
- current.addEventListener('mouseleave', onMouseLeave);
44
- return () => {
45
- current.removeEventListener('focus', onFocus);
46
- current.removeEventListener('blur', onBlur);
47
- current.removeEventListener('mouseenter', onMouseEnter);
48
- current.removeEventListener('mouseleave', onMouseLeave);
49
- };
50
- }, [inputRef]);
51
- return (jsx_runtime_1.jsx("input", { ref: inputRef, type: "color", tabIndex: tabIndex, ...props, name: props.name, style: style }));
52
- };
53
- exports.RemInputTypeColor = (0, react_1.forwardRef)(RemInputTypeColorForwardRef);
@@ -1,2 +0,0 @@
1
- import type { TrackWithHash } from '../../helpers/get-timeline-sequence-sort-key';
2
- export declare const isTrackHidden: (track: TrackWithHash) => boolean;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTrackHidden = void 0;
4
- const isTrackHidden = (track) => {
5
- if (!track.sequence.parent) {
6
- return false;
7
- }
8
- return !track.sequence.showInTimeline;
9
- };
10
- exports.isTrackHidden = isTrackHidden;
@@ -1 +0,0 @@
1
- export declare const colorWithNewOpacity: (color: string, opacity: number, zodTypes: typeof import("@remotion/zod-types")) => string;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.colorWithNewOpacity = void 0;
4
- const colorWithNewOpacity = (color, opacity, zodTypes) => {
5
- const { r, g, b } = zodTypes.ZodZypesInternals.parseColor(color);
6
- if (opacity >= 255) {
7
- return `#${r.toString(16).padStart(2, '0')}${g
8
- .toString(16)
9
- .padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;
10
- }
11
- return `rgba(${r}, ${g}, ${b}, ${(opacity / 255).toFixed(2)})`;
12
- };
13
- exports.colorWithNewOpacity = colorWithNewOpacity;