@remotion/studio 4.0.503 → 4.0.505

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 (181) hide show
  1. package/dist/api/install-package.d.ts +2 -1
  2. package/dist/api/install-package.js +6 -2
  3. package/dist/components/AssetSelectorItem.js +4 -16
  4. package/dist/components/AudioWaveform.d.ts +1 -1
  5. package/dist/components/AudioWaveform.js +36 -3
  6. package/dist/components/Canvas.js +12 -5
  7. package/dist/components/CheckboardToggle.js +3 -1
  8. package/dist/components/CompositionContextButton.d.ts +1 -1
  9. package/dist/components/CompositionContextButton.js +2 -2
  10. package/dist/components/CompositionSelector.js +2 -2
  11. package/dist/components/CompositionSelectorItem.js +6 -7
  12. package/dist/components/ContextMenu.d.ts +5 -7
  13. package/dist/components/ContextMenu.js +54 -21
  14. package/dist/components/ControlButton.d.ts +4 -2
  15. package/dist/components/ControlButton.js +6 -20
  16. package/dist/components/EditorContent.js +1 -1
  17. package/dist/components/EditorGuides/Guide.js +2 -2
  18. package/dist/components/EffectPickerModal.js +70 -9
  19. package/dist/components/FullscreenToggle.js +1 -2
  20. package/dist/components/InitialCompositionLoader.js +1 -14
  21. package/dist/components/InlineAction.d.ts +3 -4
  22. package/dist/components/InlineAction.js +16 -13
  23. package/dist/components/InlineDropdown.d.ts +3 -2
  24. package/dist/components/InlineDropdown.js +16 -5
  25. package/dist/components/InspectorPanel/CompositionMetadata.js +7 -6
  26. package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +2 -2
  27. package/dist/components/InspectorPanel/KeyframeInspector.js +2 -3
  28. package/dist/components/InspectorPanel/SequenceSelectionInspector.js +1 -1
  29. package/dist/components/InspectorPanel/common.js +24 -34
  30. package/dist/components/InspectorPanel/styles.js +4 -0
  31. package/dist/components/InspectorSequenceSection.js +1 -1
  32. package/dist/components/LoopToggle.js +1 -1
  33. package/dist/components/Menu/MenuItem.js +16 -12
  34. package/dist/components/MenuBuildIndicator.d.ts +3 -1
  35. package/dist/components/MenuBuildIndicator.js +14 -59
  36. package/dist/components/MenuCompositionName.js +3 -63
  37. package/dist/components/MenuToolbar.js +23 -3
  38. package/dist/components/MobilePanel.d.ts +1 -2
  39. package/dist/components/MobilePanel.js +6 -10
  40. package/dist/components/MuteToggle.js +2 -1
  41. package/dist/components/NewComposition/ComboBox.d.ts +1 -0
  42. package/dist/components/NewComposition/ComboBox.js +2 -2
  43. package/dist/components/NewComposition/InputDragger.d.ts +5 -0
  44. package/dist/components/NewComposition/InputDragger.js +11 -6
  45. package/dist/components/NewComposition/MenuContent.d.ts +1 -1
  46. package/dist/components/NewComposition/menu-typeahead.d.ts +1 -1
  47. package/dist/components/Notifications/NotificationCenter.js +12 -2
  48. package/dist/components/OutlineToggle.js +10 -2
  49. package/dist/components/PlayPause.js +2 -6
  50. package/dist/components/PlaybackRateSelector.js +4 -9
  51. package/dist/components/PreviewToolbar.js +12 -8
  52. package/dist/components/PreviewToolbarOverflowButton.d.ts +0 -1
  53. package/dist/components/PreviewToolbarOverflowButton.js +2 -75
  54. package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -2
  55. package/dist/components/RenderButton.d.ts +1 -1
  56. package/dist/components/RenderButton.js +55 -37
  57. package/dist/components/RenderModal/FrameRangeSetting.js +6 -1
  58. package/dist/components/RenderModal/MultiRangeSlider.js +8 -8
  59. package/dist/components/RenderModal/RenderModalEnvironmentVariables.js +1 -9
  60. package/dist/components/RenderModal/RenderModalOutputName.js +11 -2
  61. package/dist/components/RenderModal/ServerRenderModal.js +2 -17
  62. package/dist/components/RenderModal/WebRenderModal.js +3 -17
  63. package/dist/components/RenderModal/layout.js +7 -5
  64. package/dist/components/RenderModal/render-modals.js +18 -15
  65. package/dist/components/RenderQueue/RenderQueueRepeat.js +1 -14
  66. package/dist/components/SelectedOutlineElement.js +13 -22
  67. package/dist/components/SelectedOutlineOverlay.js +5 -1
  68. package/dist/components/SidebarRenderButton.js +1 -15
  69. package/dist/components/SizeSelector.js +4 -9
  70. package/dist/components/SnappingToggle.js +1 -2
  71. package/dist/components/Spinner.d.ts +1 -0
  72. package/dist/components/Spinner.js +2 -2
  73. package/dist/components/Splitter/SplitterContainer.d.ts +1 -0
  74. package/dist/components/Splitter/SplitterContainer.js +4 -1
  75. package/dist/components/Splitter/SplitterContext.d.ts +4 -3
  76. package/dist/components/Splitter/SplitterContext.js +3 -2
  77. package/dist/components/Splitter/SplitterElement.js +6 -1
  78. package/dist/components/Splitter/SplitterHandle.js +1 -0
  79. package/dist/components/Tabs/vertical.d.ts +1 -0
  80. package/dist/components/Tabs/vertical.js +8 -10
  81. package/dist/components/TimeValue.js +26 -8
  82. package/dist/components/Timeline/Timeline.js +5 -5
  83. package/dist/components/Timeline/TimelineClipboardKeybindings.js +3 -6
  84. package/dist/components/Timeline/TimelineDeleteKeybindings.js +5 -7
  85. package/dist/components/Timeline/TimelineDragHandler.js +3 -0
  86. package/dist/components/Timeline/TimelineEffectItem.js +6 -2
  87. package/dist/components/Timeline/TimelineEffectPropItem.js +6 -3
  88. package/dist/components/Timeline/TimelineExpandedKeyframeRow.d.ts +6 -6
  89. package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +34 -2
  90. package/dist/components/Timeline/TimelineHeightContainer.d.ts +1 -0
  91. package/dist/components/Timeline/TimelineHeightContainer.js +2 -2
  92. package/dist/components/Timeline/TimelineInOutDragHandler.js +3 -3
  93. package/dist/components/Timeline/TimelineKeyframeEasingLine.d.ts +5 -3
  94. package/dist/components/Timeline/TimelineKeyframeEasingLine.js +32 -30
  95. package/dist/components/Timeline/TimelineList.d.ts +1 -0
  96. package/dist/components/Timeline/TimelineList.js +2 -3
  97. package/dist/components/Timeline/TimelineScaleField.js +1 -1
  98. package/dist/components/Timeline/TimelineSelection.js +2 -3
  99. package/dist/components/Timeline/TimelineSequence.js +34 -28
  100. package/dist/components/Timeline/TimelineSequenceItem.d.ts +3 -3
  101. package/dist/components/Timeline/TimelineSequenceItem.js +34 -23
  102. package/dist/components/Timeline/TimelineSequencePropItem.d.ts +10 -2
  103. package/dist/components/Timeline/TimelineSequencePropItem.js +64 -12
  104. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +2 -2
  105. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +38 -5
  106. package/dist/components/Timeline/TimelineTimeIndicators.js +36 -3
  107. package/dist/components/Timeline/TimelineVideoInfo.d.ts +1 -1
  108. package/dist/components/Timeline/TimelineVideoInfo.js +36 -3
  109. package/dist/components/Timeline/TimelineZoomControls.d.ts +3 -1
  110. package/dist/components/Timeline/TimelineZoomControls.js +59 -20
  111. package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +2 -3
  112. package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.d.ts +1 -1
  113. package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.js +7 -18
  114. package/dist/components/Timeline/use-timeline-asset-drop.js +3 -3
  115. package/dist/components/Timeline/use-timeline-height.d.ts +2 -1
  116. package/dist/components/Timeline/use-timeline-height.js +3 -2
  117. package/dist/components/TimelineCombobox.d.ts +11 -0
  118. package/dist/components/TimelineCombobox.js +181 -0
  119. package/dist/components/TimelineInOutToggle.js +3 -3
  120. package/dist/components/TopPanel.js +8 -8
  121. package/dist/components/UndoRedoButtons.js +6 -5
  122. package/dist/components/UpdateCheck.js +18 -5
  123. package/dist/components/UpdateModal/UpdateModal.js +35 -12
  124. package/dist/components/composition-menu-items.d.ts +2 -4
  125. package/dist/components/composition-menu-items.js +31 -54
  126. package/dist/components/import-assets.d.ts +2 -1
  127. package/dist/components/import-assets.js +1 -1
  128. package/dist/components/selected-outline-types.d.ts +1 -1
  129. package/dist/esm/{chunk-bj1r1hh5.js → chunk-7pgk8h5m.js} +9174 -8486
  130. package/dist/esm/internals.mjs +9174 -8486
  131. package/dist/esm/previewEntry.mjs +8991 -8303
  132. package/dist/esm/renderEntry.mjs +1 -1
  133. package/dist/helpers/hoverable.d.ts +11 -0
  134. package/dist/helpers/hoverable.js +70 -0
  135. package/dist/helpers/inject-css.js +43 -23
  136. package/dist/helpers/install-required-package.d.ts +3 -2
  137. package/dist/helpers/install-required-package.js +20 -15
  138. package/dist/helpers/use-is-fullscreen.d.ts +1 -0
  139. package/dist/helpers/use-is-fullscreen.js +25 -0
  140. package/dist/helpers/use-menu-structure.js +88 -59
  141. package/dist/icons/audio.d.ts +1 -1
  142. package/dist/icons/audio.js +1 -1
  143. package/dist/icons/canvas-zoom.d.ts +10 -0
  144. package/dist/icons/canvas-zoom.js +21 -0
  145. package/dist/icons/caret.js +1 -1
  146. package/dist/icons/certificate.d.ts +1 -1
  147. package/dist/icons/certificate.js +1 -1
  148. package/dist/icons/data.d.ts +1 -1
  149. package/dist/icons/data.js +2 -2
  150. package/dist/icons/effects.d.ts +5 -0
  151. package/dist/icons/effects.js +8 -0
  152. package/dist/icons/ellipsis.js +1 -1
  153. package/dist/icons/external-link.d.ts +5 -0
  154. package/dist/icons/external-link.js +10 -0
  155. package/dist/icons/fullscreen.js +1 -1
  156. package/dist/icons/gear.d.ts +1 -1
  157. package/dist/icons/gear.js +1 -1
  158. package/dist/icons/gif.d.ts +1 -1
  159. package/dist/icons/gif.js +1 -1
  160. package/dist/icons/input-props.d.ts +2 -0
  161. package/dist/icons/input-props.js +9 -0
  162. package/dist/icons/jump-to-start.js +2 -2
  163. package/dist/icons/magnet.d.ts +3 -1
  164. package/dist/icons/magnet.js +2 -2
  165. package/dist/icons/media-volume.d.ts +6 -2
  166. package/dist/icons/media-volume.js +8 -6
  167. package/dist/icons/minus.d.ts +3 -1
  168. package/dist/icons/minus.js +2 -2
  169. package/dist/icons/pause.js +1 -1
  170. package/dist/icons/play.js +1 -1
  171. package/dist/icons/playback-rate.d.ts +5 -0
  172. package/dist/icons/playback-rate.js +31 -0
  173. package/dist/icons/plus.js +1 -1
  174. package/dist/icons/redo.js +2 -2
  175. package/dist/icons/search.d.ts +5 -0
  176. package/dist/icons/search.js +10 -0
  177. package/dist/icons/step-back.js +2 -2
  178. package/dist/icons/step-forward.js +2 -2
  179. package/dist/icons/timelineInOutPointer.js +2 -2
  180. package/dist/icons/undo.js +2 -2
  181. package/package.json +12 -12
@@ -8,10 +8,10 @@ const react_1 = require("react");
8
8
  const ShortcutHint_1 = require("../../error-overlay/remotion-overlay/ShortcutHint");
9
9
  const audio_1 = require("../../icons/audio");
10
10
  const certificate_1 = require("../../icons/certificate");
11
- const data_1 = require("../../icons/data");
12
11
  const file_1 = require("../../icons/file");
13
12
  const frame_1 = require("../../icons/frame");
14
13
  const gear_1 = require("../../icons/gear");
14
+ const input_props_1 = require("../../icons/input-props");
15
15
  const modals_1 = require("../../state/modals");
16
16
  const sidebar_1 = require("../../state/sidebar");
17
17
  const Button_1 = require("../Button");
@@ -414,24 +414,10 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
414
414
  jsx_runtime_1.jsx(SegmentedControl_1.SegmentedControl, { items: renderTabOptions, needsWrapping: false }), jsx_runtime_1.jsx("div", { style: render_modals_1.flexer }), jsx_runtime_1.jsxs(Button_1.Button, { autoFocus: true, onClick: onAddToQueue, style: render_modals_1.buttonStyle, disabled: !outnameValidation.valid, children: ["Render ", renderMode, jsx_runtime_1.jsx(ShortcutHint_1.ShortcutHint, { keyToPress: "\u21B5", cmdOrCtrl: true })
415
415
  ] })
416
416
  ] }), jsx_runtime_1.jsxs("div", { style: render_modals_1.horizontalLayout, children: [
417
- jsx_runtime_1.jsxs("div", { style: render_modals_1.leftSidebar, children: [
418
- jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'general', onClick: () => setTab('general'), children: [
419
- jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(file_1.FileIcon, { style: render_modals_1.icon }) }),
420
- "General"] }), jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'data', onClick: () => setTab('data'), children: [
421
- jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(data_1.DataIcon, { style: render_modals_1.icon }) }),
422
- "Input Props"] }), renderMode !== 'audio' ? (jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'picture', onClick: () => setTab('picture'), children: [
423
- jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(frame_1.PicIcon, { style: render_modals_1.icon }) }),
424
- "Picture"] })) : null, renderMode === 'video' || renderMode === 'audio' ? (jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'audio', onClick: () => setTab('audio'), children: [
425
- jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(audio_1.AudioIcon, { style: render_modals_1.icon }) }),
426
- "Audio"] })) : null, jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'advanced', onClick: () => setTab('advanced'), children: [
427
- jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(gear_1.GearIcon, { style: render_modals_1.icon }) }),
428
- "Other"] }), jsx_runtime_1.jsxs(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: false, onClick: () => setSelectedModal({
417
+ jsx_runtime_1.jsxs("div", { style: render_modals_1.leftSidebar, children: [jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'general', onClick: () => setTab('general'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(file_1.FileIcon, { color: color, style: render_modals_1.icon }) })), children: "General" }), jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'data', onClick: () => setTab('data'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(input_props_1.InputPropsIcon, { color: color, style: render_modals_1.icon }) })), children: "Input Props" }), renderMode !== 'audio' ? (jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'picture', onClick: () => setTab('picture'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(frame_1.PicIcon, { color: color, style: render_modals_1.icon }) })), children: "Picture" })) : null, renderMode === 'video' || renderMode === 'audio' ? (jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'audio', onClick: () => setTab('audio'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(audio_1.AudioIcon, { color: color, style: render_modals_1.icon }) })), children: "Audio" })) : null, jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: tab === 'advanced', onClick: () => setTab('advanced'), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(gear_1.GearIcon, { color: color, style: render_modals_1.icon }) })), children: "Other" }), jsx_runtime_1.jsx(vertical_1.VerticalTab, { style: render_modals_1.horizontalTab, selected: false, onClick: () => setSelectedModal({
429
418
  type: 'configure-license',
430
419
  initialPublicLicenseKey: publicLicenseKey,
431
- }), children: [
432
- jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(certificate_1.CertificateIcon, { style: render_modals_1.icon }) }),
433
- "License"] })
434
- ] }), jsx_runtime_1.jsx("div", { style: render_modals_1.optionsPanel, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: tab === 'general' ? (jsx_runtime_1.jsx(WebRenderModalBasic_1.WebRenderModalBasic, { renderMode: renderMode, resolvedComposition: resolvedComposition, imageFormat: imageFormat, setStillFormat: setStillFormat, frame: frame, onFrameChanged: onFrameChanged, onFrameSetDirectly: onFrameSetDirectly, container: container, setContainerFormat: setContainerFormat, setCodec: setCodecWithContainer, encodableVideoCodecs: encodableVideoCodecs, effectiveVideoCodec: effectiveVideoCodec, startFrame: finalStartFrame, setStartFrame: setStartFrame, endFrame: finalEndFrame, setEndFrame: setEndFrame, outName: outName, onOutNameChange: onOutNameChange, validationMessage: outnameValidation.valid ? null : outnameValidation.error.message, logLevel: logLevel, setLogLevel: setLogLevel })) : tab === 'data' ? (jsx_runtime_1.jsx(DataEditor_1.DataEditor, { defaultProps: inputProps, setDefaultProps: setInputProps, unresolvedComposition: unresolvedComposition, propsEditType: "input-props", canSaveDefaultProps: {
420
+ }), renderIcon: (color) => (jsx_runtime_1.jsx("div", { style: render_modals_1.iconContainer, children: jsx_runtime_1.jsx(certificate_1.CertificateIcon, { color: color, style: render_modals_1.icon }) })), children: "License" })] }), jsx_runtime_1.jsx("div", { style: render_modals_1.optionsPanel, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: tab === 'general' ? (jsx_runtime_1.jsx(WebRenderModalBasic_1.WebRenderModalBasic, { renderMode: renderMode, resolvedComposition: resolvedComposition, imageFormat: imageFormat, setStillFormat: setStillFormat, frame: frame, onFrameChanged: onFrameChanged, onFrameSetDirectly: onFrameSetDirectly, container: container, setContainerFormat: setContainerFormat, setCodec: setCodecWithContainer, encodableVideoCodecs: encodableVideoCodecs, effectiveVideoCodec: effectiveVideoCodec, startFrame: finalStartFrame, setStartFrame: setStartFrame, endFrame: finalEndFrame, setEndFrame: setEndFrame, outName: outName, onOutNameChange: onOutNameChange, validationMessage: outnameValidation.valid ? null : outnameValidation.error.message, logLevel: logLevel, setLogLevel: setLogLevel })) : tab === 'data' ? (jsx_runtime_1.jsx(DataEditor_1.DataEditor, { defaultProps: inputProps, setDefaultProps: setInputProps, unresolvedComposition: unresolvedComposition, propsEditType: "input-props", canSaveDefaultProps: {
435
421
  canUpdate: false,
436
422
  reason: 'render dialogue',
437
423
  determined: false,
@@ -8,12 +8,12 @@ exports.optionRow = {
8
8
  minHeight: 40,
9
9
  paddingLeft: 16,
10
10
  paddingRight: 16,
11
- paddingTop: 8,
12
- paddingBottom: 8,
11
+ paddingTop: 4,
12
+ paddingBottom: 4,
13
13
  };
14
14
  exports.label = {
15
- width: 290,
16
- fontSize: 15,
15
+ minWidth: 0,
16
+ fontSize: 14,
17
17
  lineHeight: '40px',
18
18
  color: colors_1.LIGHT_TEXT,
19
19
  fontFamily: 'sans-serif',
@@ -24,12 +24,14 @@ exports.label = {
24
24
  exports.rightRow = {
25
25
  display: 'flex',
26
26
  flexDirection: 'row',
27
+ alignItems: 'center',
27
28
  justifyContent: 'flex-end',
28
29
  alignSelf: 'center',
29
30
  flex: 1,
31
+ minWidth: 0,
30
32
  };
31
33
  exports.input = {
32
- minWidth: 250,
34
+ minWidth: 0,
33
35
  };
34
36
  exports.fieldSetText = {
35
37
  color: colors_1.LIGHT_TEXT,
@@ -4,8 +4,8 @@ exports.flexer = exports.buttonStyle = exports.icon = exports.iconContainer = ex
4
4
  const colors_1 = require("../../helpers/colors");
5
5
  const ModalContainer_1 = require("../ModalContainer");
6
6
  exports.outerModalStyle = {
7
- width: (0, ModalContainer_1.getMaxModalWidth)(1000),
8
- height: (0, ModalContainer_1.getMaxModalHeight)(640),
7
+ width: (0, ModalContainer_1.getMaxModalWidth)(800),
8
+ height: (0, ModalContainer_1.getMaxModalHeight)(490),
9
9
  overflow: 'hidden',
10
10
  display: 'flex',
11
11
  flexDirection: 'column',
@@ -19,7 +19,8 @@ exports.container = {
19
19
  };
20
20
  exports.optionsPanel = {
21
21
  display: 'flex',
22
- width: '100%',
22
+ flex: 1,
23
+ minWidth: 0,
23
24
  };
24
25
  exports.horizontalLayout = {
25
26
  display: 'flex',
@@ -28,31 +29,33 @@ exports.horizontalLayout = {
28
29
  flex: 1,
29
30
  };
30
31
  exports.leftSidebar = {
31
- padding: 12,
32
+ padding: 6,
32
33
  };
33
34
  exports.horizontalTab = {
34
- width: 250,
35
+ width: 150,
35
36
  display: 'flex',
36
37
  flexDirection: 'row',
37
38
  alignItems: 'center',
38
39
  textAlign: 'left',
39
- fontSize: 16,
40
- fontWeight: 'bold',
41
- paddingLeft: 15,
42
- paddingTop: 12,
43
- paddingBottom: 12,
40
+ fontSize: 14,
41
+ fontWeight: 'normal',
42
+ paddingLeft: 8,
43
+ paddingTop: 6,
44
+ paddingBottom: 6,
45
+ borderRadius: 4,
44
46
  };
45
47
  exports.iconContainer = {
46
- width: 20,
47
- height: 20,
48
- marginRight: 15,
48
+ width: 18,
49
+ height: 18,
50
+ marginRight: 8,
51
+ color: 'inherit',
49
52
  display: 'inline-flex',
50
53
  justifyContent: 'center',
51
54
  alignItems: 'center',
52
55
  };
53
56
  exports.icon = {
54
- color: colors_1.CURRENT_COLOR_LOWERCASE,
55
- height: 20,
57
+ color: 'inherit',
58
+ height: 18,
56
59
  };
57
60
  exports.buttonStyle = {
58
61
  backgroundColor: colors_1.BLUE,
@@ -4,16 +4,12 @@ exports.RenderQueueRepeatItem = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const colors_1 = require("../../helpers/colors");
7
- const mobile_layout_1 = require("../../helpers/mobile-layout");
8
7
  const retry_payload_1 = require("../../helpers/retry-payload");
9
8
  const modals_1 = require("../../state/modals");
10
- const sidebar_1 = require("../../state/sidebar");
11
9
  const InlineAction_1 = require("../InlineAction");
12
10
  const context_1 = require("./context");
13
11
  const RenderQueueRepeatItem = ({ job }) => {
14
12
  const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
15
- const isMobileLayout = (0, mobile_layout_1.useMobileLayout)();
16
- const { setSidebarCollapsedState } = (0, react_1.useContext)(sidebar_1.SidebarContext);
17
13
  const isClientJob = (0, context_1.isClientRenderJob)(job);
18
14
  const onClick = (0, react_1.useCallback)((e) => {
19
15
  e.stopPropagation();
@@ -25,16 +21,7 @@ const RenderQueueRepeatItem = ({ job }) => {
25
21
  const retryPayload = (0, retry_payload_1.makeRetryPayload)(job);
26
22
  setSelectedModal(retryPayload);
27
23
  }
28
- if (isMobileLayout) {
29
- setSidebarCollapsedState({ left: 'collapsed', right: 'collapsed' });
30
- }
31
- }, [
32
- isMobileLayout,
33
- job,
34
- isClientJob,
35
- setSelectedModal,
36
- setSidebarCollapsedState,
37
- ]);
24
+ }, [job, isClientJob, setSelectedModal]);
38
25
  const icon = (0, react_1.useMemo)(() => {
39
26
  return {
40
27
  height: 12,
@@ -66,13 +66,13 @@ const disable_sequence_interactivity_1 = require("./Timeline/disable-sequence-in
66
66
  const duplicate_selected_timeline_item_1 = require("./Timeline/duplicate-selected-timeline-item");
67
67
  const focus_inspector_field_1 = require("./Timeline/focus-inspector-field");
68
68
  const get_sequence_context_menu_items_1 = require("./Timeline/get-sequence-context-menu-items");
69
+ const imperative_state_1 = require("./Timeline/imperative-state");
69
70
  const save_sequence_prop_1 = require("./Timeline/save-sequence-prop");
70
71
  const timeline_asset_link_1 = require("./Timeline/timeline-asset-link");
71
72
  const timeline_translate_utils_1 = require("./Timeline/timeline-translate-utils");
72
73
  const get_stack_1 = require("./Timeline/TimelineStack/get-stack");
73
74
  const transform_origin_utils_1 = require("./Timeline/transform-origin-utils");
74
75
  const use_select_asset_1 = require("./use-select-asset");
75
- const emptyContextMenuValues = [];
76
76
  const SelectedOutlineTransformOriginHandle = ({ outline, onDraggingChange, target }) => {
77
77
  var _a, _b;
78
78
  const { setDragOverrides, clearDragOverrides, setPropStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
@@ -304,14 +304,11 @@ const SelectedOutlineTransformOriginHandle = ({ outline, onDraggingChange, targe
304
304
  ] }));
305
305
  };
306
306
  exports.SelectedOutlineTransformOriginHandle = SelectedOutlineTransformOriginHandle;
307
- const SelectedOutlinePolygon = ({ allDragTargets, allDragOutlines, contextMenuValues, dragging, hovered, onContextMenuOpen, outline, onDraggingChange, onHoverChange, onSnapPointsChange, onSelect, onDoubleClickTarget, scale, snapTargets, target, }) => {
307
+ const SelectedOutlinePolygon = ({ allDragTargets, allDragOutlines, dragging, hovered, onContextMenuOpen, outline, onDraggingChange, onHoverChange, onSnapPointsChange, onSelect, onDoubleClickTarget, scale, snapTargets, target, }) => {
308
308
  var _a, _b, _c, _d;
309
309
  const { getDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeDragOverridesContext);
310
310
  const { setPropStatuses, setDragOverrides, clearDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
311
311
  const { editorSnapping } = (0, react_1.useContext)(editor_snapping_1.EditorSnappingContext);
312
- const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
313
- const timelinePositionRef = (0, react_1.useRef)(timelinePosition);
314
- timelinePositionRef.current = timelinePosition;
315
312
  const polygonRef = (0, react_1.useRef)(null);
316
313
  const points = (0, react_1.useMemo)(() => outline.points.map(selected_outline_measurement_1.pointToString).join(' '), [outline.points]);
317
314
  const drag = (_a = target === null || target === void 0 ? void 0 : target.drag) !== null && _a !== void 0 ? _a : null;
@@ -342,7 +339,7 @@ const SelectedOutlinePolygon = ({ allDragTargets, allDragOutlines, contextMenuVa
342
339
  const dragStates = (0, selected_outline_drag_1.getSelectedOutlineDragStates)({
343
340
  dragTargets: selected ? allDragTargets : [drag],
344
341
  getDragOverrides,
345
- timelinePosition: timelinePositionRef.current,
342
+ timelinePosition: (0, imperative_state_1.getCurrentFrame)(),
346
343
  });
347
344
  let lastValues = new Map();
348
345
  let currentPointerX = startPointerX;
@@ -568,16 +565,13 @@ const SelectedOutlinePolygon = ({ allDragTargets, allDragOutlines, contextMenuVa
568
565
  if (!dragging) {
569
566
  onHoverChange(null);
570
567
  }
571
- }, onPointerDown: onPointerDown, onDoubleClick: onDoubleClick, onDragOver: effectDrop === null ? undefined : onEffectDragOver, onDragLeave: effectDrop === null ? undefined : onEffectDragLeave, onDrop: effectDrop === null ? undefined : onEffectDrop }), jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: polygonRef, values: [...contextMenuValues], onOpen: onContextMenuOpen })
568
+ }, onPointerDown: onPointerDown, onDoubleClick: onDoubleClick, onDragOver: effectDrop === null ? undefined : onEffectDragOver, onDragLeave: effectDrop === null ? undefined : onEffectDragLeave, onDrop: effectDrop === null ? undefined : onEffectDrop }), jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: polygonRef, getItems: onContextMenuOpen })
572
569
  ] }));
573
570
  };
574
- const SelectedOutlineScaleEdgeLine = ({ allScaleDragTargets, contextMenuValues, dragging, edge, outline, onDraggingChange, onContextMenuOpen, onHoverChange, onSelect, target, }) => {
571
+ const SelectedOutlineScaleEdgeLine = ({ allScaleDragTargets, dragging, edge, outline, onDraggingChange, onContextMenuOpen, onHoverChange, onSelect, target, }) => {
575
572
  var _a, _b;
576
573
  const { getDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeDragOverridesContext);
577
574
  const { setPropStatuses, setDragOverrides, clearDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
578
- const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
579
- const timelinePositionRef = (0, react_1.useRef)(timelinePosition);
580
- timelinePositionRef.current = timelinePosition;
581
575
  const scaleDrag = (_a = target === null || target === void 0 ? void 0 : target.scaleDrag) !== null && _a !== void 0 ? _a : null;
582
576
  const selected = (_b = target === null || target === void 0 ? void 0 : target.selected) !== null && _b !== void 0 ? _b : false;
583
577
  const lineRef = (0, react_1.useRef)(null);
@@ -603,7 +597,7 @@ const SelectedOutlineScaleEdgeLine = ({ allScaleDragTargets, contextMenuValues,
603
597
  const dragStates = (0, selected_outline_drag_1.getSelectedOutlineScaleDragStates)({
604
598
  dragTargets: selected ? allScaleDragTargets : [scaleDrag],
605
599
  getDragOverrides,
606
- timelinePosition: timelinePositionRef.current,
600
+ timelinePosition: (0, imperative_state_1.getCurrentFrame)(),
607
601
  });
608
602
  let lastValues = new Map();
609
603
  let dragStarted = false;
@@ -730,7 +724,7 @@ const SelectedOutlineScaleEdgeLine = ({ allScaleDragTargets, contextMenuValues,
730
724
  if (!dragging) {
731
725
  onHoverChange(null);
732
726
  }
733
- }, onPointerDown: onPointerDown }), jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: lineRef, values: [...contextMenuValues], onOpen: onContextMenuOpen })
727
+ }, onPointerDown: onPointerDown }), jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: lineRef, getItems: onContextMenuOpen })
734
728
  ] }));
735
729
  };
736
730
  const svgPointToClientPoint = (point, rect) => {
@@ -739,14 +733,11 @@ const svgPointToClientPoint = (point, rect) => {
739
733
  y: point.y + rect.top,
740
734
  };
741
735
  };
742
- const SelectedOutlineRotationCornerHandle = ({ allRotationDragTargets, contextMenuValues, corner, dragging, outline, onDraggingChange, onContextMenuOpen, onHoverChange, onSelect, target, }) => {
736
+ const SelectedOutlineRotationCornerHandle = ({ allRotationDragTargets, corner, dragging, outline, onDraggingChange, onContextMenuOpen, onHoverChange, onSelect, target, }) => {
743
737
  var _a, _b;
744
738
  const { getDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeDragOverridesContext);
745
739
  const { setPropStatuses, setDragOverrides, clearDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
746
740
  const { editorSnapping } = (0, react_1.useContext)(editor_snapping_1.EditorSnappingContext);
747
- const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
748
- const timelinePositionRef = (0, react_1.useRef)(timelinePosition);
749
- timelinePositionRef.current = timelinePosition;
750
741
  const rotationDrag = (_a = target === null || target === void 0 ? void 0 : target.rotationDrag) !== null && _a !== void 0 ? _a : null;
751
742
  const selected = (_b = target === null || target === void 0 ? void 0 : target.selected) !== null && _b !== void 0 ? _b : false;
752
743
  const circleRef = (0, react_1.useRef)(null);
@@ -786,7 +777,7 @@ const SelectedOutlineRotationCornerHandle = ({ allRotationDragTargets, contextMe
786
777
  const dragStates = (0, selected_outline_drag_1.getSelectedOutlineRotationDragStates)({
787
778
  dragTargets: selected ? allRotationDragTargets : [rotationDrag],
788
779
  getDragOverrides,
789
- timelinePosition: timelinePositionRef.current,
780
+ timelinePosition: (0, imperative_state_1.getCurrentFrame)(),
790
781
  });
791
782
  let previousAngle = (0, selected_outline_measurement_1.getAngleDegrees)(center, {
792
783
  x: event.clientX,
@@ -954,7 +945,7 @@ const SelectedOutlineRotationCornerHandle = ({ allRotationDragTargets, contextMe
954
945
  if (!dragging) {
955
946
  onHoverChange(null);
956
947
  }
957
- }, onPointerDown: onPointerDown }), jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: circleRef, values: [...contextMenuValues], onOpen: onContextMenuOpen })
948
+ }, onPointerDown: onPointerDown }), jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: circleRef, getItems: onContextMenuOpen })
958
949
  ] }));
959
950
  };
960
951
  const SelectedOutlineElement = ({ allDragTargets, allDragOutlines, allRotationDragTargets, allScaleDragTargets, dragging, hovered, outline, onDraggingChange, onHoverChange, onSnapPointsChange, onSelect, scale, snapTargets, target, }) => {
@@ -1187,10 +1178,10 @@ const SelectedOutlineElement = ({ allDragTargets, allDragOutlines, allRotationDr
1187
1178
  target,
1188
1179
  ]);
1189
1180
  return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
1190
- jsx_runtime_1.jsx(SelectedOutlinePolygon, { allDragTargets: allDragTargets, allDragOutlines: allDragOutlines, contextMenuValues: emptyContextMenuValues, dragging: dragging, hovered: hovered, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSnapPointsChange: onSnapPointsChange, onSelect: onSelect, onDoubleClickTarget: onDoubleClickTarget, scale: scale, snapTargets: snapTargets, target: target }), jsx_runtime_1.jsx(SelectedOutlineCropControls_1.SelectedOutlineCropControls, { outline: outline, onDraggingChange: onDraggingChange, target: target }), (target === null || target === void 0 ? void 0 : target.cropDrag) === null && (target.containsSelection || hovered)
1191
- ? ['top', 'right', 'bottom', 'left'].map((edge) => (jsx_runtime_1.jsx(SelectedOutlineScaleEdgeLine, { allScaleDragTargets: allScaleDragTargets, contextMenuValues: emptyContextMenuValues, dragging: dragging, edge: edge, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSelect: onSelect, target: target }, edge)))
1181
+ jsx_runtime_1.jsx(SelectedOutlinePolygon, { allDragTargets: allDragTargets, allDragOutlines: allDragOutlines, dragging: dragging, hovered: hovered, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSnapPointsChange: onSnapPointsChange, onSelect: onSelect, onDoubleClickTarget: onDoubleClickTarget, scale: scale, snapTargets: snapTargets, target: target }), jsx_runtime_1.jsx(SelectedOutlineCropControls_1.SelectedOutlineCropControls, { outline: outline, onDraggingChange: onDraggingChange, target: target }), (target === null || target === void 0 ? void 0 : target.cropDrag) === null && (target.containsSelection || hovered)
1182
+ ? ['top', 'right', 'bottom', 'left'].map((edge) => (jsx_runtime_1.jsx(SelectedOutlineScaleEdgeLine, { allScaleDragTargets: allScaleDragTargets, dragging: dragging, edge: edge, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSelect: onSelect, target: target }, edge)))
1192
1183
  : null, (target === null || target === void 0 ? void 0 : target.cropDrag) === null && (target.containsSelection || hovered)
1193
- ? ['top-left', 'top-right', 'bottom-right', 'bottom-left'].map((corner) => (jsx_runtime_1.jsx(SelectedOutlineRotationCornerHandle, { allRotationDragTargets: allRotationDragTargets, contextMenuValues: emptyContextMenuValues, corner: corner, dragging: dragging, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSelect: onSelect, target: target }, corner)))
1184
+ ? ['top-left', 'top-right', 'bottom-right', 'bottom-left'].map((corner) => (jsx_runtime_1.jsx(SelectedOutlineRotationCornerHandle, { allRotationDragTargets: allRotationDragTargets, corner: corner, dragging: dragging, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSelect: onSelect, target: target }, corner)))
1194
1185
  : null] }));
1195
1186
  };
1196
1187
  exports.SelectedOutlineElement = SelectedOutlineElement;
@@ -41,6 +41,7 @@ const remotion_1 = require("remotion");
41
41
  const no_react_1 = require("remotion/no-react");
42
42
  const client_id_1 = require("../helpers/client-id");
43
43
  const interactivity_enabled_1 = require("../helpers/interactivity-enabled");
44
+ const use_is_fullscreen_1 = require("../helpers/use-is-fullscreen");
44
45
  const use_keybinding_1 = require("../helpers/use-keybinding");
45
46
  const editor_guides_1 = require("../state/editor-guides");
46
47
  const editor_outlines_1 = require("../state/editor-outlines");
@@ -422,6 +423,7 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
422
423
  const { editorShowOutlines } = (0, react_1.useContext)(editor_outlines_1.EditorShowOutlinesContext);
423
424
  const { hoveredSequence, setHoveredSequence } = (0, react_1.useContext)(timeline_sequence_hover_1.TimelineSequenceHoverContext);
424
425
  const { editorShowGuides, guidesList } = (0, react_1.useContext)(editor_guides_1.EditorShowGuidesContext);
426
+ const isFullscreen = (0, use_is_fullscreen_1.useIsFullscreen)();
425
427
  const { frameBack, frameForward, getCurrentFrame, seek } = player_1.PlayerInternals.usePlayer();
426
428
  const keybindings = (0, use_keybinding_1.useKeybinding)();
427
429
  const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
@@ -457,7 +459,8 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
457
459
  selectItem(item, interaction, undefined, { reveal: true });
458
460
  }, [selectItem]);
459
461
  const outlineTargets = (0, react_1.useMemo)(() => {
460
- if (!(0, interactivity_enabled_1.isStudioSelectionEnabled)() ||
462
+ if (isFullscreen ||
463
+ !(0, interactivity_enabled_1.isStudioSelectionEnabled)() ||
461
464
  !previewSelectionAvailable ||
462
465
  !editorShowOutlines) {
463
466
  return [];
@@ -756,6 +759,7 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
756
759
  getEffectDragOverrides,
757
760
  getScaleLockState,
758
761
  editorShowOutlines,
762
+ isFullscreen,
759
763
  overrideIdToNodePathMappings,
760
764
  previewInteractive,
761
765
  previewSelectionAvailable,
@@ -5,15 +5,11 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const remotion_1 = require("remotion");
7
7
  const client_id_1 = require("../helpers/client-id");
8
- const mobile_layout_1 = require("../helpers/mobile-layout");
9
8
  const render_1 = require("../icons/render");
10
9
  const modals_1 = require("../state/modals");
11
- const sidebar_1 = require("../state/sidebar");
12
10
  const InlineAction_1 = require("./InlineAction");
13
11
  const SidebarRenderButton = ({ composition, visible }) => {
14
12
  const { setSelectedModal } = (0, react_1.useContext)(modals_1.ModalsContext);
15
- const { setSidebarCollapsedState } = (0, react_1.useContext)(sidebar_1.SidebarContext);
16
- const isMobileLayout = (0, mobile_layout_1.useMobileLayout)();
17
13
  const iconStyle = (0, react_1.useMemo)(() => {
18
14
  return {
19
15
  style: {
@@ -84,17 +80,7 @@ const SidebarRenderButton = ({ composition, visible }) => {
84
80
  initialDarkMode: defaults.darkMode,
85
81
  readOnlyStudio: false,
86
82
  });
87
- if (isMobileLayout) {
88
- setSidebarCollapsedState({ left: 'collapsed', right: 'collapsed' });
89
- }
90
- }, [
91
- composition.defaultProps,
92
- composition.id,
93
- isMobileLayout,
94
- props,
95
- setSelectedModal,
96
- setSidebarCollapsedState,
97
- ]);
83
+ }, [composition.defaultProps, composition.id, props, setSelectedModal]);
98
84
  const renderAction = (0, react_1.useCallback)((color) => {
99
85
  return jsx_runtime_1.jsx(render_1.ThinRenderIcon, { fill: color, svgProps: iconStyle });
100
86
  }, [iconStyle]);
@@ -4,10 +4,11 @@ exports.SizeSelector = exports.usePreviewSizeMenuItems = exports.getUniqueSizes
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const remotion_1 = require("remotion");
7
+ const colors_1 = require("../helpers/colors");
7
8
  const get_preview_file_type_1 = require("../helpers/get-preview-file-type");
9
+ const canvas_zoom_1 = require("../icons/canvas-zoom");
8
10
  const Checkmark_1 = require("../icons/Checkmark");
9
- const ControlButton_1 = require("./ControlButton");
10
- const ComboBox_1 = require("./NewComposition/ComboBox");
11
+ const TimelineCombobox_1 = require("./TimelineCombobox");
11
12
  const commonPreviewSizes = [
12
13
  {
13
14
  size: 'auto',
@@ -46,7 +47,6 @@ const getPreviewSizeLabel = (previewSize) => {
46
47
  };
47
48
  exports.getPreviewSizeLabel = getPreviewSizeLabel;
48
49
  const accessibilityLabel = 'Preview Size';
49
- const comboStyle = { width: 64 };
50
50
  const getUniqueSizes = (size) => {
51
51
  const customPreviewSizes = [size, ...commonPreviewSizes];
52
52
  const uniqueSizes = [];
@@ -115,14 +115,9 @@ const usePreviewSizeMenuItems = () => {
115
115
  exports.usePreviewSizeMenuItems = usePreviewSizeMenuItems;
116
116
  const SizeSelector = () => {
117
117
  const { items, selectedId, zoomable } = (0, exports.usePreviewSizeMenuItems)();
118
- const style = (0, react_1.useMemo)(() => {
119
- return {
120
- padding: ControlButton_1.CONTROL_BUTTON_PADDING - 2,
121
- };
122
- }, []);
123
118
  if (!zoomable) {
124
119
  return null;
125
120
  }
126
- return (jsx_runtime_1.jsx("div", { style: style, "aria-label": accessibilityLabel, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { size: "compact", title: accessibilityLabel, style: comboStyle, selectedId: selectedId, values: items }) }));
121
+ return (jsx_runtime_1.jsx(TimelineCombobox_1.TimelineCombobox, { title: accessibilityLabel, selectedId: selectedId, values: items, renderLeftItem: (color) => selectedId === 'auto' ? (jsx_runtime_1.jsx(canvas_zoom_1.CanvasFitIcon, { color: color })) : Number(selectedId) < 1 ? (jsx_runtime_1.jsx(canvas_zoom_1.CanvasZoomOutIcon, { color: color })) : (jsx_runtime_1.jsx(canvas_zoom_1.CanvasZoomIcon, { color: color })), unhoveredIconColor: colors_1.WHITE_ALPHA_80 }));
127
122
  };
128
123
  exports.SizeSelector = SizeSelector;
@@ -14,13 +14,12 @@ const SnappingToggle = () => {
14
14
  const onClick = (0, react_1.useCallback)(() => {
15
15
  setEditorSnapping((current) => !current);
16
16
  }, [setEditorSnapping]);
17
- const color = editorSnapping ? colors_1.BLUE : colors_1.WHITE;
18
17
  const accessibilityLabel = [
19
18
  editorSnapping ? 'Disable snapping' : 'Enable snapping',
20
19
  (0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? null : '(Shift+M)',
21
20
  ]
22
21
  .filter(no_react_1.NoReactInternals.truthy)
23
22
  .join(' ');
24
- return (jsx_runtime_1.jsx(ControlButton_1.ControlButton, { title: accessibilityLabel, "aria-label": accessibilityLabel, "aria-pressed": editorSnapping, "aria-keyshortcuts": "Shift+M", onClick: onClick, children: jsx_runtime_1.jsx(magnet_1.MagnetIcon, { style: { width: 17, height: 17 }, fill: color, "aria-hidden": "true", focusable: "false" }) }));
23
+ return (jsx_runtime_1.jsx(ControlButton_1.ControlButton, { title: accessibilityLabel, "aria-label": accessibilityLabel, "aria-pressed": editorSnapping, "aria-keyshortcuts": "Shift+M", onClick: onClick, children: (color) => (jsx_runtime_1.jsx(magnet_1.MagnetIcon, { style: { width: 18, height: 18, transform: 'translateY(1px)' }, color: editorSnapping ? colors_1.BLUE : color, "aria-hidden": "true", focusable: "false" })) }));
25
24
  };
26
25
  exports.SnappingToggle = SnappingToggle;
@@ -2,4 +2,5 @@ import React from 'react';
2
2
  export declare const Spinner: React.FC<{
3
3
  readonly size: number;
4
4
  readonly duration: number;
5
+ readonly color?: string;
5
6
  }>;
@@ -10,7 +10,7 @@ const className = '__remotion_spinner_line';
10
10
  const remotionSpinnerAnimation = '__remotion_spinner_animation';
11
11
  // Generated from https://github.com/remotion-dev/template-next/commit/9282c93f7c51ada31a42e18a94680fa09a14eee3
12
12
  const translated = 'M 44 0 L 50 0 a 6 6 0 0 1 6 6 L 56 26 a 6 6 0 0 1 -6 6 L 50 32 a 6 6 0 0 1 -6 -6 L 44 6 a 6 6 0 0 1 6 -6 Z';
13
- const Spinner = ({ size, duration }) => {
13
+ const Spinner = ({ size, duration, color = colors_1.LIGHT_TEXT }) => {
14
14
  const style = (0, react_1.useMemo)(() => {
15
15
  return {
16
16
  width: size,
@@ -36,7 +36,7 @@ const Spinner = ({ size, duration }) => {
36
36
  rotate: `${(index * Math.PI * 2) / lines}rad`,
37
37
  transformOrigin: 'center center',
38
38
  animationDelay: `${index * (duration / lines) - duration}s`,
39
- }, d: translated, fill: colors_1.LIGHT_TEXT }, index));
39
+ }, d: translated, fill: color }, index));
40
40
  }) })
41
41
  ] }));
42
42
  };
@@ -8,6 +8,7 @@ export declare const SplitterContainer: React.FC<{
8
8
  readonly maxFlexerSize: number | null;
9
9
  readonly minFlexerSize: number | null;
10
10
  readonly maxAntiFlexerSize: number | null;
11
+ readonly minAntiFlexerSize: number | null;
11
12
  readonly id: string;
12
13
  readonly defaultFlex: number;
13
14
  readonly children: React.ReactNode;
@@ -20,7 +20,7 @@ exports.containerColumn = {
20
20
  flex: 1,
21
21
  height: 0,
22
22
  };
23
- const SplitterContainer = ({ orientation, children, defaultFlex, maxFlex, minFlex, maxFlexerSize, minFlexerSize, maxAntiFlexerSize, id, }) => {
23
+ const SplitterContainer = ({ orientation, children, defaultFlex, maxFlex, minFlex, maxFlexerSize, minFlexerSize, maxAntiFlexerSize, minAntiFlexerSize, id, }) => {
24
24
  const [initialTimelineFlex, persistFlex] = (0, timeline_1.useTimelineFlex)(id);
25
25
  const [flexValue, setFlexValue] = (0, react_1.useState)(initialTimelineFlex !== null && initialTimelineFlex !== void 0 ? initialTimelineFlex : defaultFlex);
26
26
  const ref = (0, react_1.useRef)(null);
@@ -39,6 +39,7 @@ const SplitterContainer = ({ orientation, children, defaultFlex, maxFlex, minFle
39
39
  maxAntiFlexerSize,
40
40
  maxFlex,
41
41
  maxFlexerSize,
42
+ minAntiFlexerSize,
42
43
  minFlex,
43
44
  minFlexerSize,
44
45
  });
@@ -55,6 +56,7 @@ const SplitterContainer = ({ orientation, children, defaultFlex, maxFlex, minFle
55
56
  maxFlexerSize,
56
57
  minFlexerSize,
57
58
  maxAntiFlexerSize,
59
+ minAntiFlexerSize,
58
60
  defaultFlex,
59
61
  persistFlex,
60
62
  };
@@ -66,6 +68,7 @@ const SplitterContainer = ({ orientation, children, defaultFlex, maxFlex, minFle
66
68
  maxFlexerSize,
67
69
  minFlexerSize,
68
70
  maxAntiFlexerSize,
71
+ minAntiFlexerSize,
69
72
  minFlex,
70
73
  orientation,
71
74
  persistFlex,
@@ -14,6 +14,7 @@ export type TSplitterContext = {
14
14
  maxFlexerSize: number | null;
15
15
  minFlexerSize: number | null;
16
16
  maxAntiFlexerSize: number | null;
17
+ minAntiFlexerSize: number | null;
17
18
  defaultFlex: number;
18
19
  id: string;
19
20
  persistFlex: (value: number) => void;
@@ -22,14 +23,14 @@ export type TSplitterContext = {
22
23
  y: number;
23
24
  }>;
24
25
  };
25
- type SplitterFlexBounds = Pick<TSplitterContext, 'maxAntiFlexerSize' | 'maxFlex' | 'maxFlexerSize' | 'minFlex' | 'minFlexerSize'> & {
26
+ type SplitterFlexBounds = Pick<TSplitterContext, 'maxAntiFlexerSize' | 'maxFlex' | 'maxFlexerSize' | 'minAntiFlexerSize' | 'minFlex' | 'minFlexerSize'> & {
26
27
  readonly availableSize: number | null;
27
28
  };
28
- export declare const getSplitterFlexBounds: ({ availableSize, maxAntiFlexerSize, maxFlex, maxFlexerSize, minFlex, minFlexerSize, }: SplitterFlexBounds) => {
29
+ export declare const getSplitterFlexBounds: ({ availableSize, maxAntiFlexerSize, maxFlex, maxFlexerSize, minAntiFlexerSize, minFlex, minFlexerSize, }: SplitterFlexBounds) => {
29
30
  minFlex: number;
30
31
  maxFlex: number;
31
32
  };
32
- export declare const getClampedSplitterFlex: ({ flexValue, ...bounds }: Pick<TSplitterContext, "maxAntiFlexerSize" | "maxFlex" | "maxFlexerSize" | "minFlex" | "minFlexerSize"> & {
33
+ export declare const getClampedSplitterFlex: ({ flexValue, ...bounds }: Pick<TSplitterContext, "maxAntiFlexerSize" | "maxFlex" | "maxFlexerSize" | "minAntiFlexerSize" | "minFlex" | "minFlexerSize"> & {
33
34
  readonly availableSize: number | null;
34
35
  } & {
35
36
  readonly flexValue: number;
@@ -5,12 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SplitterContext = exports.getClampedSplitterFlex = exports.getSplitterFlexBounds = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
- const getSplitterFlexBounds = ({ availableSize, maxAntiFlexerSize, maxFlex, maxFlexerSize, minFlex, minFlexerSize, }) => {
8
+ const getSplitterFlexBounds = ({ availableSize, maxAntiFlexerSize, maxFlex, maxFlexerSize, minAntiFlexerSize, minFlex, minFlexerSize, }) => {
9
9
  if (availableSize === null || availableSize <= 0) {
10
10
  return { minFlex, maxFlex };
11
11
  }
12
12
  const minimum = Math.min(1, Math.max(minFlex, minFlexerSize === null ? 0 : minFlexerSize / availableSize, maxAntiFlexerSize === null ? 0 : 1 - maxAntiFlexerSize / availableSize));
13
- const maximum = Math.max(minimum, Math.min(maxFlex, maxFlexerSize === null ? 1 : maxFlexerSize / availableSize));
13
+ const maximum = Math.max(minimum, Math.min(maxFlex, maxFlexerSize === null ? 1 : maxFlexerSize / availableSize, minAntiFlexerSize === null ? 1 : 1 - minAntiFlexerSize / availableSize));
14
14
  return { minFlex: minimum, maxFlex: maximum };
15
15
  };
16
16
  exports.getSplitterFlexBounds = getSplitterFlexBounds;
@@ -30,6 +30,7 @@ exports.SplitterContext = react_1.default.createContext({
30
30
  maxFlexerSize: null,
31
31
  minFlexerSize: null,
32
32
  maxAntiFlexerSize: null,
33
+ minAntiFlexerSize: null,
33
34
  defaultFlex: 1,
34
35
  id: '--',
35
36
  persistFlex: () => undefined,
@@ -9,6 +9,7 @@ const SplitterContext_1 = require("./SplitterContext");
9
9
  const SplitterElement = ({ children, type, sticky }) => {
10
10
  const context = (0, react_1.useContext)(SplitterContext_1.SplitterContext);
11
11
  const maxSize = type === 'flexer' ? context.maxFlexerSize : context.maxAntiFlexerSize;
12
+ const minSize = type === 'flexer' ? context.minFlexerSize : context.minAntiFlexerSize;
12
13
  const style = (0, react_1.useMemo)(() => {
13
14
  return {
14
15
  flex:
@@ -22,8 +23,12 @@ const SplitterElement = ({ children, type, sticky }) => {
22
23
  maxHeight: context.orientation === 'horizontal'
23
24
  ? (maxSize !== null && maxSize !== void 0 ? maxSize : undefined)
24
25
  : undefined,
26
+ minWidth: context.orientation === 'vertical' ? (minSize !== null && minSize !== void 0 ? minSize : undefined) : undefined,
27
+ minHeight: context.orientation === 'horizontal'
28
+ ? (minSize !== null && minSize !== void 0 ? minSize : undefined)
29
+ : undefined,
25
30
  };
26
- }, [context.flexValue, context.orientation, maxSize, type]);
31
+ }, [context.flexValue, context.orientation, maxSize, minSize, type]);
27
32
  const stickStyle = (0, react_1.useMemo)(() => {
28
33
  return {
29
34
  position: 'absolute',
@@ -54,6 +54,7 @@ const SplitterHandle = ({ allowToCollapse, onCollapse }) => {
54
54
  maxAntiFlexerSize: dragContext.maxAntiFlexerSize,
55
55
  maxFlex: dragContext.maxFlex,
56
56
  maxFlexerSize: dragContext.maxFlexerSize,
57
+ minAntiFlexerSize: dragContext.minAntiFlexerSize,
57
58
  minFlex: dragContext.minFlex,
58
59
  minFlexerSize: dragContext.minFlexerSize,
59
60
  });
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  export declare const VerticalTab: React.FC<{
3
3
  readonly children: React.ReactNode;
4
4
  readonly onClick: React.MouseEventHandler<HTMLButtonElement>;
5
+ readonly renderIcon?: (color: string) => React.ReactNode;
5
6
  readonly style?: React.CSSProperties;
6
7
  readonly selected: boolean;
7
8
  }>;